diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000000..e69de29bb2 diff --git a/2022-08-12-network/index.html b/2022-08-12-network/index.html new file mode 100644 index 0000000000..d3e600cd54 --- /dev/null +++ b/2022-08-12-network/index.html @@ -0,0 +1,39 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· One min read
Marcin Szamotulski

The networking team took an active part in the project iteration (PI) planning +session, see cardano-node backlog for detailed +outcomes.

  • We started working on a detailed design / implementation plan for gossip.

  • We merged input-output-hk/ouroboros-network#3859 which +sets the ouroboros-network repository for the single relay release.

  • We identified a bug in the network simulator, which is fixed in the +input-output-hk/ouroboros-network#3852. +The above PR was reviewed.

  • We set the tracing configuration for nodes which we deploy and fixed and +identified some deployment hiccups. We identified some bugs in the RT view +which were registered by the maintainers. +input-output-hk/ouroboros-network-ops#4

  • We fixed typos in network-mux library: +input-output-hk/ouroboros-network#3921

  • For easy of debugging we renamed a trace point: +input-output-hk/ouroboros-network#3922

  • Duncan iterated on his simulation / visualisation. He also was able to +identify and fix a bug in the simulator. The simulation contains 50 nodes. +Dashed lines indicate and established connection, while solid lines indicate +a TCP connection with fully open TCP window.

+ + + + \ No newline at end of file diff --git a/2022-08-12-sre/index.html b/2022-08-12-sre/index.html new file mode 100644 index 0000000000..57a50cf6db --- /dev/null +++ b/2022-08-12-sre/index.html @@ -0,0 +1,48 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 4 min read
Michael Fellinger

High level summary

The SRE team is heavily working on the Equinix Metal migration, replacing Hydra +with Cicero, and a new version of Spongix.

Lower level summary

OpenZiti

  • Work is ongoing on our OpenZiti integration into Bitte in [bitte-zt].
  • CI-World deployment of Darwin CI Ziti service in [ci-world-commit-d40f4d].
  • Multiple issues filed, and a lot of discussion with the OpenZiti developers, +we're making pretty rapid progress thanks to them.
  • Work on getting Equinix baremetal machines integrated into AWS World Bitte +clusters utilizing a Ziti ZTNA network overlay to bridge the networking of +the two environments and get IAM extension to Equinix machine for Nomad +client onboarding.
  • A Nix Flake for most of our OpenZiti dependencies including the Console, +Controller, Edge Tunnel, and Router is now at [openziti-bins].
  • The Flake also includes a WiP NixOS modules for these components.
  • Tested Ziti Desktop Edge official app for Darwin x86_64 w/ GUI -- works with +no issues seen so far
  • Moved the console to traefik routing service (zac.$DOMAIN) and +controller/edge router stay at zt.$DOMAIN, but have registered consul +services

Cicero & Tullia Integrations

Cicero & Tullia Features

  • Improvements to Tullia task aggregation to make [cardano-addresses] build +correctly.
  • Better tullia CUE lib default for tags [tullia-commit-4df3c5d].
  • Put cache.nixos.org back in cache.iog.io's upstreams. This is now +considered a public cache again, and without it some Cicero evaluations had +to build huge packages.
  • Started working on a flake-parts module for Tullia.
  • Started working on cutting down Tullia task build time by putting facts in +JSON files.
  • Fixed running into kernel arg limit by reading tullia's DAG from a file
  • Merged [tullia-pull-9] that fixes several issues related to error reporting. +and escaping.
  • Added Mac builders in Cicero on CI-World.
  • Started work on Tullia invocation caching.

Spongix

  • A lot of progress on an SQlite backed version of Spongix, it already supports +the full HTTP binary cache protocol but still lacks comprehensive testing and +some tuning, as well as recursive lookups.
  • First steps in the implementation of the nix-daemon ssh-ng protocol so +Spongix can be used via SSH and we can get rid of basic auth.

Bugs

  • Discovered Cicero bug where Nomad reschedules cause the Github commit status +to get stuck in pending
  • Discovered Cicero race condition bug around concurrent transactions for +codependent actions.
  • Fixed tullia task order bug in [cardano-addresses]
  • Diagnose Cicero action not triggered in [abcirdc]
  • Fixed meta/description of the Tullia package in [tullia-pull-7]
  • Add Vault token loop alerts in [bitte-cells-pull-40]
  • Ongoing investigation on recurring Patroni and nomad-follower issues related +to token rotation.
+ + + + \ No newline at end of file diff --git a/2022-08-31-consensus/index.html b/2022-08-31-consensus/index.html new file mode 100644 index 0000000000..4dabeb20e7 --- /dev/null +++ b/2022-08-31-consensus/index.html @@ -0,0 +1,111 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 9 min read
Damian Nadales

Executive summary

  • We did most of the heavy lifting required to integrate the Conway era.
  • We have property tests for the UTxO HD backing store API implementations. A +possible bug was identified. Work is ongoing to make sure the property-tests +cover all the relevant cases.
  • We implemented and benchmarked the "anti-diff" prototype to speed up the UTxO +HD functionality. Results show a rough speedup of 4x to 5.5x across +several scenarios. Note that: "Data reported by tasty-bench is only of +indicative and comparative significance.". +We are investigating additional performance improvements. The "anti-diff" +prototype and benchmarks are still pending code review.
  • We elaborated a draft specification for the Genesis implementation and +ChainSync jumping optimization.

Workstreams

Conway

  • Integration PR of the minimal Conway era (Issue #3963, PR +#3971).
  • Discussions with Ledger revealed possible sources of confusion about which +data should be changed in the Conway era. As a result, a new technical debt +issue was raised, which does not block the integration of the Conway era +(Issue #3976).

UTxO HD

  • Issue #3954, branch: The functionality of a +backing store, which is the interface to the on-disk part of ledger state in +UTxO-HD, is tested at a high level through the OnDisk tests. However, some +functionalities remain untested, e.g., reads of ranges of keys. As such, we +have implemented quickcheck-state-machine tests that exercise backing stores +directly. The tests are reusable for different backing store implementations +because the tests are implementation-agnostic: Any backing store that conforms +to the backing store interface can be plugged into the tests. Work is still +ongoing to label/monitor the tests, such that we can verify that interesting +cases are being tested. Furthermore, a possible bug has been identified in the +LMDB backing store with respect to range reads, though the bug has not been +resolved yet.

  • Issue #3946, branch, PR #3882: The +"anti-diff" prototype proposes an alternative approach to keeping track of +sequences (more specifically, FingerTrees) of diffs. These diff sequences +are a component of the in-memory parts of the ledger state in UTxO-HD. Since +the consensus code often requires the cumulative diff of a sequence of diffs, +the current implementation "caches" cumulative diffs of each subtree in the +diff sequence. This caching allows relatively fast reconstruction of the total +cumulative diff, but this caching proved to incur a non-negligible cost: when +we manipulate diff sequences through splits and appends, we force re-computing +a logarithmic number of caches. This is problematic, since we often split and +append in consensus: we split when we flush diffs to a backing store or when +we roll back blocks, and we append when pushing blocks. The new approach +should reduce the overhead of this caching.

    We implemented micro-benchmarks for the "anti-diff" prototype: we +first generate a sequence of commands (Forward, Push, Flush, or +Rollback) through a simulation, after which we measure the performance of +applying the commands to a diff sequence. In this context, Forward means +forwarding of values through a diff, whereas Rollback means switching to +a different fork by rolling back diffs/blocks and pushing new ones. +Moreover, we compare the performance for the two implementations: the +"legacy" approach, and the anti-diff approach.

    Some preliminary results were positive, but we needed to revisit the +benchmark's configuration to obtain more definitive results. After a +discussion with @dcoutts and the consensus team about this configuration +(e.g., number of commands generated, choice of the security parameter k), +the benchmarks should now be closer to the realistic setting. The following +configuration specifies the default configuration that is used in the +benchmarking code:

    • Number of commands generated: 10_000
    • Security parameter k: 2160
    • Number of initial backing values: 100
    • Number of key-value pairs deleted by a push: 50
    • Number of key-value pairs inserted by a push: 50
    • Number of key-value pairs forwarded by a forward: 50
    • Probability of a large (in the range [1000, 2000]) rollback: 0.05
    • Probability of a small (in the range [1, 10]) rollback: 0.95
    • Order of commands:
      • An equal number of forward and pushes.
      • 1 flush every 10 pushes.
      • 1 rollback every 100 pushes

    Moreover, we run four benchmark scenarios:

    • Default configuration
    • Without rollbacks
    • With only small rollbacks
    • Without rollbacks, larger flushes (1 flush every 100 pushes)

    How to read results

    Note: this section uses documentation from the +tasty-bench package to +explain how to read the results of running our benchmarks.

    Running a benchmark scenario gives us the following (curated) output:

    ...
    AntiDiff: OK (18.27s)
    2.527 s ± 47 ms, 2.1 GB allocated, 544 MB copied, 2.2 GB peak memory, 0.23x
    LegacyDiff: OK (32.73s)
    10.829 s ± 148 ms, 6.8 GB allocated, 2.3 GB copied, 2.2 GB peak memory
    ...

    The output says that the first benchmark, which exercises the anti-diff +prototype, was repeatedly executed for 18.27 seconds (wall-clock time), +its predicted mean CPU time was 2.527 seconds and means of individual +samples do not often diverge from it further than ± 47 milliseconds +(double standard deviation). We also configure the RTS to collect GC +statistics, which enables tasty-bench to estimate and report memory usage. +This data is reported as per RTSStats fields: allocated_bytes, +copied_bytes and max_mem_in_use_bytes. So, the output of the first +benchmark says that a total of 2.1 GB of memory was allocated, that a +total of 544 MB of memory were copied, and that the peak memory in usage +was 2.2 GB. We read the output for the second benchmark in the same way.

    Furthermore, the benchmark compares the mean CPU times for +both the anti-diff and legacy approaches: In this case, the mean CPU time +for the anti-diff approach is ~0.23x the mean CPU time for the legacy +approach. Conversely, the mean CPU time for the legacy approach is +1 / 0.23 ~= 4.35x the mean CPU time for the anti-diff approach. We will +call 0.23x the improvement factor. We will call 4.35x the speedup.

    Note that these improvement factors (and reported results) are subject to +noise, randomness, the specific configuration parameters, and the whims +of statistics. Data reported by tasty-bench is only of indicative and +comparative significance.

    Results

    For each of the 4 scenarios, we list the results of running the anti-diff and +legacy approaches 5 times. We run the benchmarks 5 times to get an indication +of whether the results are similar across multiple runs. Furthermore, we +calculate the accompanying ranges (if applicable) of improvement factors and +speedups.

    Note also the decrease in total bytes allocated and total bytes copied for +the anti-diff approach compared to the legacy approach.

    Default configuration

    NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
    Run 1: AntiDiff2.533 s (0.23x)4.7 ms2.1 GB557 MB2.4 GB
    Run 1: LegacyDiff10.792 s162 ms6.8 GB2.3 GB2.4 GB
    Run 2: AntiDiff2.508 s (0.23x)245 ms2.1 GB515 MB2.2 GB
    Run 2: LegacyDiff10.850 s30 ms6.9 GB2.3 GB2.2 GB
    Run 3: AntiDiff2.562 s (0.23x)5.0 ms2.1 GB552 MB2.2 GB
    Run 3: LegacyDiff10.993 s149 ms6.9 GB2.3 GB2.2 GB
    Run 4: AntiDiff2.168 s (0.22x)5.3 ms1.8 GB434 MB2.0 GB
    Run 4: LegacyDiff9.976 s39 ms6.3 GB2.0 GB2.0 GB
    Run 5: AntiDiff2.527 s (0.23x)47 ms2.1 GB544 MB2.2 GB
    Run 5: LegacyDiff10.829 s148 ms6.8 GB2.3 GB2.2 GB
    • Improvement factor: [0.22, 0.23]
    • Speedup : [1 / 0.23 ~= 4.35, 1 / 0.22 ~= 4.55]

    No rollbacks

    NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
    Run 1: AntiDiff1.638 s (0.19x)36 ms1.4 GB181 MB2.4 GB
    Run 1: LegacyDiff8.656 s207 ms5.7 GB1.5 GB2.4 GB
    Run 2: AntiDiff1.638 s (0.19x)75 ms1.4 GB181 MB2.2 GB
    Run 2: LegacyDiff8.654 s322 ms5.7 GB1.5 GB2.2 GB
    Run 3: AntiDiff1.663 s (0.19x)74 ms1.4 GB181 MB2.2 GB
    Run 3: LegacyDiff8.799 s216 ms5.7 GB1.5 GB2.2 GB
    Run 4: AntiDiff1.645 s (0.19x)51 ms1.4 GB181 MB2.0 GB
    Run 4: LegacyDiff8.732 s261 ms5.7 GB1.5 GB2.0 GB
    Run 5: AntiDiff1.639 s (0.19x)19 ms1.4 GB181 MB2.2 GB
    Run 5: LegacyDiff8.653 s234 ms5.7 GB1.5 GB2.2 GB
    • Improvement factor: 0.19
    • Speedup : 1 / 0.19 ~= 5.25

Only small rollbacks

NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
Run 1: AntiDiff1.833 s (0.18x)36 ms1.5 GB185 MB2.4 GB
Run 1: LegacyDiff10.362 s867 ms5.8 GB1.6 GB2.4 GB
Run 2: AntiDiff1.696 s (0.19x)30 ms1.5 GB185 MB2.2 GB
Run 2: LegacyDiff8.822 s106 ms5.8 GB1.5 GB2.2 GB
Run 3: AntiDiff1.702 s (0.19x)44 ms1.5 GB186 MB2.2 GB
Run 3: LegacyDiff8.906 s147 ms5.8 GB1.5 GB2.2 GB
Run 4: AntiDiff1.701 s (0.19x)47 ms1.5 GB185 MB2.0 GB
Run 4: LegacyDiff8.949 s197 ms5.8 GB1.5 GB2.0 GB
Run 5: AntiDiff1.677 s (0.19x)55 ms1.5 GB186 MB2.2 GB
Run 5: LegacyDiff8.856 s177 ms5.8 GB1.5 GB2.2 GB
  • Improvement factor: [0.18, 0.19]

  • Speedup : [1 / 0.19 ~= 5.25, 1 / 0.18 ~= 5.55]

    No rollbacks, larger flushes (every 100 pushes)

    NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
    Run 1: AntiDiff1.643 s (0.25x)21 ms1.5 GB196 MB2.4 GB
    Run 1: LegacyDiff6.591 s351 ms4.0 GB1.4 GB2.4 GB
    Run 2: AntiDiff1.616 s (0.25x)47 ms1.5 GB196 MB2.2 GB
    Run 2: LegacyDiff6.520 s232 ms4.0 GB1.4 GB2.2 GB
    Run 3: AntiDiff1.640 s (0.25x)34 ms1.5 GB196 MB2.2 GB
    Run 3: LegacyDiff6.540 s150 ms4.0 GB1.4 GB2.2 GB
    Run 4: AntiDiff1.635 s (0.25x)76 ms1.5 GB196 MB2.0 GB
    Run 4: LegacyDiff6.589 s131 ms4.0 GB1.4 GB2.0 GB
    Run 5: AntiDiff1.628 s (0.25x)19 ms1.5 GB196 MB2.2 GB
    Run 5: LegacyDiff6.490 s5.9 ms4.0 GB1.4 GB2.2 GB
  • Improvement factor: 0.25

  • Speedup : 1 / 0.25 ~= 4

Genesis

  • We elaborated a draft of the specification of the Genesis implementation and +the ChainSync Jumping optimization. In particular, this includes a proof +sketch that the latter preserves liveness and safety in all cases (Issue +3964).
    • @nfrisby's main realization during this sprint was that he had been +focusing so far on the case where the selected chain is an extension of +the intersection of our peers' ChainSync candidates.
    • This is the main case, ie an "absorbing" state, but it's not the only +case.
    • The new proof sketch begins by case splitting on that predicate, and +that made the sketch quite a bit easier to follow.
  • We continued working on the "happy path" ChainSync Jumping prototype (Issue +3960).

Technical debt

  • We started working on the issues required to re-enable nightly CI runs.. +Nightly CI runs have far more lax time constraints, which gives the option to +run significantly more property tests than in our regular CI. To this end, we +merged a PR to easily adapt the number of tests globally (PR +#3947).
+ + + + \ No newline at end of file diff --git a/2022-09-01-ledger/index.html b/2022-09-01-ledger/index.html new file mode 100644 index 0000000000..98c8c6bfd5 --- /dev/null +++ b/2022-09-01-ledger/index.html @@ -0,0 +1,48 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Jared Corduan

Ledger Update

Since finishing up support for the Vasil Hardfork, the ledger team has been +focused on two main things: a new ledger era and technical debt.

New minimal ledger era

We have implemented a new ledger era named conway which is nearly identical +to the babbage era. This has been the first time that we have been able to see +what a minimal ledger era looks like. We have finished this task, modulo any +integration issues that might come up. The only thing that the conway era +does differently from the babbage era is provide support for rotating +the master keys using the hardfork combinator's state translation. +We may end up adding features to the conway era, but it is a nice exercise +seeing what it looks like to get a minimal ledger era supported in all the +downstream components.

Addressing technical debt

We have been addressing technical debt, mostly in an effort to make the +repository a more friendly code base to work in.

  • We have begun work on a ledger API, called cardano-ledger-api.
  • We have done a big re-design of the major type classes used in the ledger. +With hindsight on our side, we now have something much more organized and +easier to use.
  • We have done a lot of re-naming. The names across eras are now much more +uniform, avoid certain confusions that plagued us, and are clearer in where +they are from.
  • We have reduced a lot of code duplication that could lead to bugs if you +do not have the whole code base in your head.
  • We have added a handful of performance improvements.
  • We added type safety in a number of locations. In particular, the type of +values that can be minted in a transaction no longer allow for Lovelace +in the type, and some functions which used to handle both timelock scripts +and plutus script now correctly enoforce at the type level that only one of +them can be used.
  • We made our generators so that they now produce a much richer set of +valid serializations. There is room within CBOR to serialize the same +data structure in multiple ways, and it is helpful to have the generators +use a wide variety.
  • We have begun re-organizing our test suites.
+ + + + \ No newline at end of file diff --git a/2022-09-16-ledger/index.html b/2022-09-16-ledger/index.html new file mode 100644 index 0000000000..896086ae57 --- /dev/null +++ b/2022-09-16-ledger/index.html @@ -0,0 +1,51 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Jared Corduan

Ledger Update

We have been focused nearly entirely on addressing technical debt.

  • We introduced more consistent naming across eras, this time for the auxiliary data. +See 3032.
  • We made clear how the consumed functions differs between eras (which was a previous source of +confusion), and added some related support to the fledgling ledger API. +See 3016.
  • We added clarity and organizational consistency to the main ledger era type synonyms. +See 3017.
  • We removed code duplication related to the input data hashes. +See 3018.
  • We split up a large module into smaller components. The large module was actually causing our +CI to time out. +See 3020.
  • We cleaned up stale information in our cabal files, and upgraded cabal 3.8. +See 3023, +3031, +and 3028.
  • We made consistent, standalone TxOut (transaction output) modules for every era. +See 3024.
  • We brought consistency to a maddening inconsistent use of type variables indicating the specific +choice of cryptographic primitives. In particular, all uses of crypto have been renamed to c. +See 3027.
  • We did a clean up of the types in the Alonzo era. In particular, we switched to more parametric +types that will compose better in the future and which simplifies the constraints. +See 3029.
  • We consolidated some existing fragmented logic regarding how we gather the scripts needed for a +given transaction. This is a much needed cleanup to prevent future mistakes. +See 3019.
  • We fixed a problem with our generators that was causing a fair number of our property tests to +fail in CI. +See 3039.
  • We have started the work to update Plutus. This will bring support for SECP in the next major +protocol version, and also address a +problem +that we current have evolving the cost models. +See 3030.
  • We addressed a small issue that came up when integrating the conway era downstream, namely +the lack of some serialization instances. +See 3022.
+ + + + \ No newline at end of file diff --git a/2022-09-19-db-sync/index.html b/2022-09-19-db-sync/index.html new file mode 100644 index 0000000000..c6d860b3fd --- /dev/null +++ b/2022-09-19-db-sync/index.html @@ -0,0 +1,45 @@ + + + + + +DB Sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB Sync Team Update

· 2 min read
Kostas Dermentzis

DBSync Update

New Tag

We created a new db-sync tag 13.0.5 which addresses shortcomings of the last +release 13.0.4. It is currently under testing. +The Changelog is +here and in more details:

  • We fixed fees for tx with phase 2 failure that didn't include a total collateral field. +1248

  • We fixed an issue that could cause db-sync to crash if a specific rollback occured. +1247

  • DBSync will now avoid reserialising data, especially Datums, which not only slows down db-sync but +could result in the wrong CBOR encoding being inserted. +1217

  • All the fixes above come with unit tests which validates the fix.

  • Added support for preprod and preview from docker. DBSync no longer needs to include the configs +for different networks, these are directly fetched from the cardano world. +1254

  • We added better support from docker for the new disable options and the overall documentation. +1260

All the above were also backported to the master branch

Open source

We made the db-sync board public, so +everyone can have access on the issues we prioritise. +We also added new tasks to the board, some of them could be approachable to newcomers or people who +want to contribute.

Progress on tech debt and new features

  • 1223 was merged, which removes the +foreign keys from the db schema. This opens the road to a number of optimizations.

  • An additional fix on top of the previous work was added +1250

  • An initial version where DBSync does not rollback on restart is done here +1266. +This allows db-sync to restart much faster, without the need to delete data and reinsert them. In +the future it can also facilitate migrations in cases where the ledger snapshots have a breaking +change, without the need to resync everything from genesis.

+ + + + \ No newline at end of file diff --git a/2022-09-20-consensus/index.html b/2022-09-20-consensus/index.html new file mode 100644 index 0000000000..b9be5fc7d0 --- /dev/null +++ b/2022-09-20-consensus/index.html @@ -0,0 +1,79 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 4 min read
Damian Nadales
  • We proposed a fix for the performance degradation observed when running +distributed multi-node benchmarks in the UTxO HD feature branch. While this +fixed the problems observed when running local benchmarks, it broke the +ThreadNet tests due to concurrency issues. Therefore, we think it is wise to +start redesigning the UTxO HD mempool integration.
  • We did several rounds of code review on the alternative implementation of +diff-sequences required by the UTxO HD feature based on the idea of +anti-diffs. This alternative implementation is close to being merged, and the +next step is to integrate this to the UTxO HD branch, so that we can run +ad-hoc replaying and syncing from scratch benchmarks and compare these with +the baseline. The micro-benchmarks we elaborated for the alternative +implementation show speedups of up to 4x, so we are optimistic about the +performance of replaying and syncing from scratch benchmarks, however it is +important to notice that due to the nature of UTxO HD we will still be +slower than the baseline.
  • The final draft of the Genesis implementation specification is ready for +review.
  • We implemented a prototype for the happy path of Genesis' ChainSync Jumping +(CSJ). The prototype is slower than the baseline, however it is not the latest +version of the prototype and the jump interval is very small.
  • Work on integrating Conway has stopped since +priorities have changed.
  • We started work on benchmarking epoch-boundaries and epoch overhead +pr-4014. To this end, we made use of a modified version of our +db-analyser tool. We ran the new benchmarking setup using the Cardano +mainnet chain, and we can see that block tick and application take +substantially longer at epoch boundaries, although there are a couple of slots +during an epoch in which these computations take more than normal. We notified +the ledger team about these findings. We will use this modified version of +db-analyser to investigate the epoch overhead.

Workstreams

UTxO HD

  • Spent quite some time investigating the root cause of the degradation in +performance observed in the benchmarks. We run the make forge-stress +benchmarks locally in order to debug this behavior.

    • Transaction batching doesn't make a notable difference in the outcome +(considering we are using the in-memory backend).

    • The mempool batching implementation required asynchronous transaction +validation which is a violation of the LocalTxSubmission protocol +contract and therefore if we continued on that route, the impact would +have been quite big.

    • The STM logic we implemented by using a TMVar for the mempool internal +state was buggy and under certain circumstances it seemed to lock. +Reverting the mempool internal state to be stored in a TVar seems to +solve this problem.

    • The results we get after this change look almost identical to the ones +from the baseline.

  • The anti-diff prototype (PR +#3997) has +been reviewed and is close to being merged.

    • A follow-up issue (issue +#4010) +to integrate the anti-diff prototype in the various consensus packages +was created. A first version of the integration exists, and all tests +pass. A next step is to get some indication of the "real" performance gain +by profiling db-analyser (or cardano-node).

Genesis

  • Final draft of the Genesis implementation specification, now up for review.

  • Local benchmark setup for parameter tuning via the happy path ChainSync +Jumping (CSJ) prototype (Issue 3987).

    • Context: Our Genesis design requires us to check in with a large (~20) +number of servers periodically while syncing. These servers are offered +jump requests via the ChainSync protocol (hence the name), which they can +accept or decline. If a peer declines, the Genesis rule allows us to +determine whether a node actually has a better chain.

    • The "happy path" is when no peer declines a jump. We want this to have +close to no overhead compared to status quo, i.e. syncing without Genesis.

    • We implemented a prototype for this happy path, and are now starting to +test in various configurations (number of peers, latency, bandwidth) to +tune the performance of ChainSync jumping, i.e. how complicated our logic +of choosing when to jump needs to be.

      Example:

    • Simulated connection: 50 MBit/s, 50ms latency

    • Jump interval: 3000 slots (on the low end, could be increased to up to +3k/f)

    • Red: baseline (1.35.3), one peer in topology file

    • Blue: Preliminary version of our prototype, with 10 peers.

      It is slower by about ~30%, but it is not the latest version of the +prototype, and the jump interval is very small, making CSJ more of a +bottleneck.

Technical debt

  • Fix flakiness in ChainDB QSM tests (PR 3990).
+ + + + \ No newline at end of file diff --git a/2022-09-27-network/index.html b/2022-09-27-network/index.html new file mode 100644 index 0000000000..ba8fe3a1ef --- /dev/null +++ b/2022-09-27-network/index.html @@ -0,0 +1,57 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 3 min read
Marcin Szamotulski

Network Update

Ouroboros Network

Ouroboros Consensus

  • Recently we found out that the consensus does not log exceptions thrown during +intiialisation. This was fixed in +PR input-output-hk/ouroboros-network#4015 +As part of this pull request we also changed that all exceptions rethrown by +the connection handler thread are wrapped in ExceptionInHandler.

Some older items, which were not announced

  • We identified and fixed an issue related to socket activation (socket options +where not set for sockets passed through socket activation). +PR input-output-hk/cardano-node#3979 +This fix will be released in the next cardano-node release.

Cardano Node

  • We extended the NixOs service module so that one can modify socketPath, +runtimeDir, databasePath, traceSocketPathAccept, +traceSocketPathConnect and stateDir options. +PR input-output-hk/cardano-node#4196

IO-Sim

We resolved a number of issues before release of io-sim on hackage:

See PR #24.

We also improved experience for contributors of io-sim and typed-protocols by adding issue templates:

Typed Protocols

Input Endorsers Simulation

New features include:

  • Histograms of block arrival frequency, for both network (inbound) and CPU +(block validation). This is interesting to check that we're not overloading +the CPU block validation capacity, or network link capacity. Or alternatively +to observe the behaviour in an overload situation if we set the block +generation rate high enough.

  • Pie chart of utilisation of TCP links. This shows how small a fraction of +links are being used at any one time, and shows that once the system "warms +up" and is operating stably, most block delivery is ballistic.

  • Showing off the new screen layout combinators, that let us put multiple +charts, titles etc on screen at once and scale them to whatever screen or +video resolution we like without having to tweak numbers (this example is +scaled to fit 1080HD video resolution).

+ + + + \ No newline at end of file diff --git a/2022-09-30-ledger/index.html b/2022-09-30-ledger/index.html new file mode 100644 index 0000000000..e617d9fffd --- /dev/null +++ b/2022-09-30-ledger/index.html @@ -0,0 +1,52 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Jared Corduan

Ledger Update

We have continued focusing nearly entirely on addressing technical debt. +A lot of design work has begun for the next ledger era, +but we do not yet have anything concrete to share.

Technical debt issues completed

  • [issue-1676][pull-2992] We have finally removed the ledger dependency on the +cardano-prelude package. It was barely used in the ledger repository, and it added a dependency +that we did not want to maintain. It was a bit difficult to remove, and we had +to coordinate removing it from cardano-base. +A lot ended up going into pull-2992, due to the coordination effort, and we ended +up updating Plutus as well. +This means that we've now also made a lot of progress on the problematic cost model serialization +issues described in issue-2902. +In particular, after we resolve issue-3014, we will not have to wait an epoch before +releasing a cost model for a new version of Plutus, as we had to do for the Vasil HF.
  • [issue-3046][pull-3055] We moved a module that is now only used in Byron to a Byron package.
  • [issue-3047][pull-3054] We improved the interface to the Value (multi-asset) type.
  • [pull-3044] We debugged and fixed a tricky compilation issue. Certain kinds of field updates +were adding approximately 20 minutes to our compile time!
  • [issue-2932][pull-3036] As a part of our ongoing re-organization of the codebase, we +have added a Cardano.Ledger.[Era].Core module to each ledger era that has a TxBody class. +Most classes defined in the era should go in this new module. +We also re-export the Cardno.Ledger.Core module and the previous Cardano.Ledger.[Era].Core +modules from each era.

Technical debt in progress

  • [issue-3034][issue-3035][node-issue-4421] We are continuing to write benchmarks to understand exactly where +all the time is being spent on executing the TICKF transition. +The consolidation of the per-stake-credential stake distribution to the per-stake-pool +distribution does seem to account for a large amount of time (near a second as written, which we +have down to about half a second with some optimizations), +but this does not account for everything. +Applying the reward update may also be a big contributing factor.
  • [pull-3033][pull-3038][pull-3041] A separate team is working on upgrading all the +cardano-node repositories to work with ghc 9.2.4. We have been helping out with this effort.
  • The nix scripts used to build our new +formal ledger model +do not work consistently for everyone, and we have been working on fixing these issues.
  • [issue-3014] We are still working on adding a versioning scheme to all of the ledger +serializers.
+ + + + \ No newline at end of file diff --git a/2022-10-02-consensus/index.html b/2022-10-02-consensus/index.html new file mode 100644 index 0000000000..9914c5f9d4 --- /dev/null +++ b/2022-10-02-consensus/index.html @@ -0,0 +1,78 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 4 min read
Damian Nadales

High-level summary

During the past two weeks, the consensus team continued its work on testing the +UTxO HD prototype. We completed the era-transition and backing store tests, and +the mempool tests are advancing at a steady pace. Regarding our work in the +Genesis design, we continued our collaboration with the research and networking +teams, and we continue investigating strategies for making the chain-sync +jumping prototype faster.

High-level status report

  • Finish the UTxO HD prototype: on track.
    • We worked on state-machine tests for the mempool, and spotted potential bugs +in the implementation. Investigation is ongoing.
    • We have a set of property tests for the backing store. We still need to +incorporate the improvements to the LMDB cursor API that these tests +made possible.
    • We merged the era-transition tests PR.
  • Genesis: on track.
    • Design work around Genesis continues in collaboration with researchers and +the networking team.
    • We continued trying to improve the performance of the chain-sync jumping +prototype. We gained additional insight on which parameters to tweak next. +In spite of the baseline still being faster, the current prototype already +achieves a significant speedup when compared to the naive approach of simply +running full chain-sync with all peers.
  • Tech debt: on track.
    • We clarified a common source of confusion around VRF tie-breaking and +cross-era chain selection.

Workstreams

Finish the UTxO HD prototype

We continued working on property-tests for the UTxO HD prototype. In particular +we merged the era-transition tests +PR.

Backing store property tests

The backing store property tests +PR has been +reviewed. The next steps are:

  • Improve error handling and command generation.
  • Add coverage testing to check that we are not failing to cover interesting +test cases.

The monadic cursor API +went through its first review round. The API is in a relatively stable state. +This PR also unifies the cborg and serialise-based interfaces to LMDB +operations. The next steps are:

  • Write +quickcheck-dynamic +state-machine tests for this API.
  • Adapt the changes in the serialisation interface in the backing store property +tests. This will involve adding boilerplate code in consensus to make up for +the removal of the cborg-based interface.

LSM tree implementation

We worked on the LSM tree +prototype. In +particular, we focused on tuning the LSM tree design to the different workloads +that consensus has (eg syncing, normal node operation, etc).

Benchmarking the CSJ prototype

Work on improving the chain-sync jumping performance is ongoing. In particular +we compared the performance of different jump intervals, which, somewhat +surprisingly, do not make a significant difference. In particular, we are seeing +periodic "plateaus" where the chain-sync tip does not progress, but they are +much longer for the prototype. Our hypothesis is that this seem to be due to a +combination of the garbage collector (GC) pauses, and the actual time it takes +the non-dynamo chain-sync peers to jump to the tip of the slot of the dynamo +fragment.

In the coming weeks we will try to shorten these plateaus via a combination of +tweaking GC options and less synchronisation in the CSJ governor.

The following plot shows the performance of the chain-sync jumping prototype +using different jumping intervals. It compares the syncing progress by plotting +the slots of adopted blocks against time. The baseline is still faster, however +it is worth noting that the current prototype already achieves a significant +speedup when compared to the naive approach of simply running full chain-sync +with all peers.

The second plot shows the syncing progress sliced to a chosen ~5min interval, +and includes, in addition to the slots of adopted blocks, the slots of the tip +of the ChainSync fragment. This allows us to see how far ahead of the selected +tip the CS dynamo is, i.e. how much room we have for BlockFetch not to get +stalled. It shows periodic behaviour (due to the forecasting limit), and shows +that the CS fragment tip is not progressing for significant periods +("plateaus").

Technical debt

We clarified a +common source of confusion around VRF tie-breaking and cross-era chain +selection. This PR involved correcting potentially misleading names of +VRF-related functions, and providing context for a particular VRF value is +used for tie-breaking.

+ + + + \ No newline at end of file diff --git a/2022-10-04-db-sync/index.html b/2022-10-04-db-sync/index.html new file mode 100644 index 0000000000..1e0f8c2ed0 --- /dev/null +++ b/2022-10-04-db-sync/index.html @@ -0,0 +1,45 @@ + + + + + +DB Sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB Sync Team Update

· 2 min read
Kostas Dermentzis

DBSync Update

Fast restarts

We fixed a long overdue issue in db-sync which caused long delays on restarts +1266. This has been +one of db-sync main objectives for this period. Restarts are now very fast, +because db-sync deletes almost nothing from the db, it just replays the ledger rules until it +reaches the tip of the db. The fix also improves reconnection speed, in cases where the node +restarts or the connection is temporarily lost. It also speeds up even more in cases where due to a +deployment mess up a very old snapshot or no snapshot at all is used.

Property based testing

We added stateful property based testing, using quickcheck-state-machine +1269. These tests use empty or +almost empty blocks to test the new behaviour of restarts and rollbacks.

These tests generate arbitrarily a list of symbolic commands from these:

RollForward Int
RollBack BlockNo
StopDBSync
StartDBSync
RestartNode
AssertBlockNo BlockNo

The commands are translated into real commands. For example RollForward Int will forge a new block +that fits on the current chain. These real commands are executed against db-sync using the mock +chain-sync server. The symbolic commands are executed against a vesy simplistic Model of db-sync +which looks like this:

  Model
{ serverTip :: BlockNo
, dbSyncTip :: BlockNo
, dbSynsIsOn :: Bool
, dbSynsHasSynced :: Bool
}

Finally a number of postconditions are checked, related to the eventual block number of db-sync.

Tech Debt

We handled a number of tech debt in +1275 +This improves the code format of db-sync, deletes many queries that were never used and groups the +others. This tech debt resolution not only improves the experience of working in db-sync, but can +facilitate some of our other objectives, as it makes it very explicit which queries are used +during syncing and which indexes are necessary.

Smash

We worked on fixing an issue related to fetching pool metadata +1276. +The issue which is described in +1270

+ + + + \ No newline at end of file diff --git a/2022-10-04-node-cli-api/index.html b/2022-10-04-node-cli-api/index.html new file mode 100644 index 0000000000..7762348ecd --- /dev/null +++ b/2022-10-04-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· One min read
Jordan Millar

Node-Api-Cli Update

2022-10-04 - 2022-10-18

Executive Summary

The majority of the team's time was spent between getting 1.34.4 ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to cardano-cli.

Completed

cardano-cli

cardano-api

cardano-node

In Progress

cardano-cli

cardano-api

cardano-node

+ + + + \ No newline at end of file diff --git a/2022-10-05-consensus/index.html b/2022-10-05-consensus/index.html new file mode 100644 index 0000000000..92c368c700 --- /dev/null +++ b/2022-10-05-consensus/index.html @@ -0,0 +1,54 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales

High level summary

During the past two weeks, the consensus team worked on improving the +performance of the ChainSync jumping logic, which is needed for Genesis. We also +rewrote the implementation of the mempool in the UTxO HD prototype which solved +the issues that prevented us from running system level benchmarks. Also on the +UTxO HD front, we have an improved implementation of the sequence-of-differences +(a crucial piece of UTxO HD), and we also elaborated a test sign-off list for +the UTxO HD feature.

Executive summary

  • With the latest implementation of ChainSync jumping we are closer to the +baseline performance. In particular, the prototype seems to benefit from the +extra concurrency provided by additional capabilities.
  • We rewrote the implementation of the mempool in the UTxO HD prototype. This +rewrite was required due to performance problems we observed when running the +workbench. +These performance problems prevented us from running system level benchmarks. +The rewrite solved these issues. After the UTxO-HD: mempool +rewrite PR is +merged, we will contact the Benchmarking team so that they run the system +level benchmarks.
  • The implementation of sequences of differences based on anti-diffs was +integrated into the UTxO HD prototype. It is pending +review and +we also need to run replay and syncing benchmarks to confirm that this will +deliver a performance improvement, as observed in our micro-benchmarks.
  • The UTxO HD prototype +inspection +resulted in a list of +tests +needed for consensus to consider the UTxO HD prototype as fully tested.

Additional information

Genesis

Benchmarking setup: 50MBit/s, 50ms latency

  • Red: baseline
  • Green: Current CSJ prototype, 10 peers, jumps every 3000/f slots.

As ChainSync Jumping involves many concurrent network operations at every jump, +we tried to run the node with 6 instead of the default 2 capabilties.

  • Orange: baseline with 6 capabilities
  • Blue: CSJ prototype with 6 capabilities

This diagram shows the respective syncing progress, starting at Genesis and +continuing a good part into Shelley (with the dashed line indicating the +Byron-to-Shelley transition).

Further work includes whether we can tune the prototype to better handle few +capabilities, or to adapt the default number of capabilities (potentially just +while syncing).

+ + + + \ No newline at end of file diff --git a/2022-10-14-hydra/index.html b/2022-10-14-hydra/index.html new file mode 100644 index 0000000000..4cfd19d068 --- /dev/null +++ b/2022-10-14-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High level summary

This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the hydra-node over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks "past the opening of a Head". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.

What did the team achieve this week

  • Last week we thought we were done with ADR18, but were not ...
  • ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.
  • Implemented a first version for persistence #187 in response.
  • Enhanced CI to publish test results on our website
  • Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!
  • Pulled static executable feature #200 into scope, implemented it and merged it!
  • Received and read through a project proposal by a vendor (building a Hydra platform).

What are the goals of next week

  • Get backup/recovery #187 done with proper event sourcing (ADR18)
  • Cut the next release, version 0.8.0
  • Address open comments on specification document & complete the list of identified gaps between specification and implementation #452
  • Have the CI build macos artifacts
+ + + + \ No newline at end of file diff --git a/2022-10-14-ledger/index.html b/2022-10-14-ledger/index.html new file mode 100644 index 0000000000..2c7c56e9ef --- /dev/null +++ b/2022-10-14-ledger/index.html @@ -0,0 +1,55 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Jared Corduan

High level summary

The ledger team is still primarily focused on addressing +technical +debt. +We now have the infrastructure for versioning our serialization schemes, +which we continue to put into action. +We have made first steps towards getting proper support for the +formal ledger repository +(in particular, we've added nix builds and +continuous integration support). +We are wrapping up an investigation of the performance of a critical +function used by the consensus layer for leader checks. +Finally, we are improving the packaging and versioning of our code.

Lower level summary

Completed Technical Debt

  • Because the Shelley ledger era was a complete re-write of the Byron ledger era, a lot of +our code lives in the cardano-ledger-shelley package, though with hindsight we can say that +much of it should live in cardano-ledger-core. +We continue to move things to cardano-ledger-core, and have much more to come. [pull-3059]
  • We now have the infrastructure to support versioned serialization schemes. +The inability to do this has caused us a lot difficulties, +such as [issue-3003], [issue-2965] and [issue-2444]. +We are still in the process of switching to the versioned serialization scheme +(such as [pull-3078]), +but the infrastructure was completed in [pull-3063].
  • We now have proper nix and CI support for the formal ledger project. [pull-19]
  • A separate team is helping bring support for +CHaP +to all the cardano-node repositories. +We have been helping out with this effort.
  • A separate team continues working on upgrading all the +cardano-node repositories to work with ghc 9.2.4. +We have been helping out with this effort.

In-progress Technical Debt

We also have several fairly large pull-requests in review +that we are working on.

  • In an on-going attempt to build out a more user-friendly API, +we continue to remove HasField instances in place of using micro-lenses. +The protocol parameters, in particular, are being worked on. [pull-3045]
  • We are also renaming record fields to be consistent across the repository. [pull-3062]
  • We are now cleaning up all the work we did to understand the performance +of the TICKF transition. We have some improvements to the computatation +as well. [pull-3068]
  • We are adding more documentation, in particular to our Twiddler functionality. [pull-3073]
  • The formal ledger is adding support for finite set theory. [pull-20]
+ + + + \ No newline at end of file diff --git a/2022-10-18-consensus/index.html b/2022-10-18-consensus/index.html new file mode 100644 index 0000000000..7bd6c33701 --- /dev/null +++ b/2022-10-18-consensus/index.html @@ -0,0 +1,66 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 4 min read
Damian Nadales

High-level summary

During the past two weeks, the consensus team worked on adding property test for +different aspects of the UTxO HD prototype: era transitions, mempool, and +backing store. Thanks to these tests we were able to uncover a bug in the +prototype. On the Genesis front, we benchmarked a different version of the +ChainSync jumping prototype to try to improve its performance, but this did not +result in any noticeable speedup.

High-level status report

  • Finish the UTxO HD prototype: on track.
    • We focused on increasing test coverage for the UTxO-HD prototype:
      • We started implementing Cadano-eras transition property-tests.
      • We started implementing state-machine property-tests for the mempool.
      • We merged the mempool rewrite.
      • We started working on state-machine tests for the backing store. This +uncovered a bug in the range-read implementation of the LMDB backing +store.
  • Genesis: on track.
    • We benchmarked a version of the Genesis ChainSync Jumping prototype that +spreads out the ChainSync updates over a longer period of time. This did not +result in any noticeable speedup.
    • We investigated the overhead introduced by non-ChainSync components, but no +conclusions could be drawn from the benchmarks we ran.

Workstreams

Finish the UTxO HD prototype

We focused on increasing test coverage for the UTxO HD prototype. We also merged +the mempool +rewrite.

Era transition property tests

We started implementing Cardano era transition property +tests, +which are needed for making sure that the ledger tables get updated in the +right way when we move from one era to the next. There are at the moment two +important transitions.

  • Byron to Shelley: where all the UTxO is transferred from in-memory Byron +state (which has no tables) to the ledger tables of the Shelley state.
  • Shelley to Allegra: where the AVVM addresses must be deleted.

We have tests for the Byron to Shelley transitions. We are working on adding +the remaining ones.

Mempool state-machine tests

We started implementing state-machine property tests for the +mempool. +The mempool is currently tested via pure property tests, and use a ledger +state without tables. With the introduction of UTxO HD, testing the concurrent +behavior of the mempool became of crucial importance (eg now we have to +acquire locks to flush the backing store). In addition, we need to test a +ledger state with tables. These needs led to the creation of a new set of +property tests. In particular we aim to run parallel state-machine tests that +exercise the mempool in a way similar to how the node would make use of it.

Backing store property tests

We started working on state-machine tests for the backing +store that UTxO +HD uses. The property tests uncovered errors in the range-reads implementation +of the LMDB backing store. To facilitate fixing this bug, we made +changes to the Haskell +LMDB bindings.

Benchmarking the CSJ prototype

Prompted by previous benchmarks showing significant improvements in sync time by +using more capabilities, we implemented a way to spread out the ChainSync +updates over a larger period instead of firing them all at the same time. This +didn't result in a noticeable speedup.

We also benchmarked the prototype with CSJ disabled (such that just the dynamo +peer is running ChainSync, but e.g. BlockFetch still sees all peers) to rule +out/confirm overhead by non-ChainSync (mainly BlockFetch) related components. +This results in era-specific behavior (speed is like the prototype in Byron, but +like the baseline in Shelley). This deserves a closer look in the future.

This diagram shows the respective syncing progress, starting at Genesis and +continuing a good part into Shelley (with the dashed line indicating the +Byron-to-Shelley transition).

  • Red: baseline
  • Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps.
  • Blue: like Green, jumps are spread out.
  • Orange: variant with no jumping, to measure unrelated overhead.

+ + + + \ No newline at end of file diff --git a/2022-10-19-node-cli-api/index.html b/2022-10-19-node-cli-api/index.html new file mode 100644 index 0000000000..36f6992d76 --- /dev/null +++ b/2022-10-19-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Jordan Millar

2022-10-19 - 2022-11-01

High level summary

This sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node's mempool for the following information:

  • Ask the node about the current mempool's capacity and sizes
  • Request the next transaction from the mempool's current list
  • Query if a particular transaction exists in the mempool

Outside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric tx_submit_fail_count has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:

  • Documentation improvments
  • Release 1.35.4 was merged & released
  • Exported various types from cardano-api that were requested by community members

Completed

cardano-cli

cardano-api

cardano-submit-api

cardano-node

cardano-testnet

  • None

In Progress

cardano-cli

cardano-api

cardano-node

+ + + + \ No newline at end of file diff --git a/2022-10-21-hydra/index.html b/2022-10-21-hydra/index.html new file mode 100644 index 0000000000..0ec3a37884 --- /dev/null +++ b/2022-10-21-hydra/index.html @@ -0,0 +1,31 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High level summary

This week, the hydra team reviewed and addressed several open comments on the +new HeadV1 specification, completing a list the of identified gaps between +specification and implementation while doing so. In the wake of the recent +demonstration of SundaeSwap running their DEX in a Hydra Head, they met with +them to capture feature ideas & incorporate their feedback on the roadmap, as +well as potential research avenues.

What did the team achieve this week

What are the goals of next week

  • Complete the last two items required for a version 0.8.0.
  • Cut the next release, version 0.8.0
  • Get backup/recovery #187 done with proper event sourcing (ADR18)
  • Have the CI build macos artifacts
+ + + + \ No newline at end of file diff --git a/2022-10-27-crypto/index.html b/2022-10-27-crypto/index.html new file mode 100644 index 0000000000..90f4eaa68c --- /dev/null +++ b/2022-10-27-crypto/index.html @@ -0,0 +1,30 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· 2 min read
Iñigo Querejeta Azurmendi

High level overview

The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to +meeting the acceptance criteria in cardano-base, +which lacks some editorial comments on the style of dQuandrant's PR, the inclusion of one additional test, and +we are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution, +but also progressing on the implementation.

Low level overview

SECP built-ins

  • (missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in PR 313
  • CIP-0049 was addressed in the editors meeting, and PR 250 was merged
  • The unit-tests PR 320 is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.

KES agent

  • We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them.
  • We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s).
+ + + + \ No newline at end of file diff --git a/2022-10-28-hydra/index.html b/2022-10-28-hydra/index.html new file mode 100644 index 0000000000..2da46683f9 --- /dev/null +++ b/2022-10-28-hydra/index.html @@ -0,0 +1,31 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High level summary

This week, the hydra team completed several user experience improvements to the +hydra-tui and hydra-node, and delivered a first version of persisted head +states by publishing release version +0.8.0. +Besides this, they met with researchers on topic of the HeadV1 specification and +kicked-off work on the RFP for an external audit of the Hydra Head protocol and implementation.

What did the team achieve this week

  • Completed the UX improvements on the hydra-tui
  • Released version 0.8.0, which delivers a first version of persisted head states
  • Met with researchers on the HeadV1 specification
  • Started work on the RFP for our external audit

What are the goals of next week

  • Complete ADR18 implementation and get it merged
  • Start work on event-sourced persistence #580
  • Have a first plutus script gap closed #452
  • Revamp CI to use flakes and build macos artifacts (stretch goal: migrate to cicero for nix builds)
+ + + + \ No newline at end of file diff --git a/2022-10-28-network/index.html b/2022-10-28-network/index.html new file mode 100644 index 0000000000..0c4efa054d --- /dev/null +++ b/2022-10-28-network/index.html @@ -0,0 +1,62 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 3 min read
Marcin Szamotulski

High-level summary

The team has focused on debuging & fixing bugs for the P2P single relay release, which included

  • diagnosing, fixing and writing tests for a bug in peer-state-actions which +fortunately hasn't been released;
  • diagnosing & preventing misconfiguration of DNS

We also focused on developing peer sharing. We also held a session with +the scientists on eclipse evasion.

Detailed description

P2P Network Stack

During the past two weeks the team focused on p2p single relay release and peer +sharing. We found and fixed an important bug recently introduced in one of the +components of p2p networking stack (fortunately never released). Together with +a fix, we designed a unit test diffusion simulation as well as quickcheck +property test (both could reproduce it). We also changed the code in a way that +if such a bug is reintroduced in the future, it will be obvious to diagnose. +For more see:

Initial benchmarking run of the P2P code was executed. The results where +unlike what we see on the mainnet. We found a possible misconfiguration of the +cluster (caused by 0 TTL on domain names), which could be the direct cause of +it. We wrote a PR which rules out such misconfiguration. We are awaiting on +the next benchmarking results. See more at:

ouroboros-network#4106

We also started working on P2P single relay release. The PR +ouroboros-network#4120 +includes 108 patches cherry-picked from the master branch. We started +working toward integration these changes against the release branch of +cardano-node. Early next week we ought to be able to have an early version +of cardano-node with non experimental P2P support!

For more detailed release plan please see P2P - Single +Relay +issue.

Consensus

We identified and fixed missing error reporting in consensus +initialisation phase. See more at +ouroboros-network#4015

Cardano Node

We also made changes in cardano-node in order to give better experience for +node operators. This includes updating severities of some of the traces as +well as implementing new format of the p2p topology file. For more see:

Peer Sharing

We continued working on implementation of peer sharing. We have an early +implementation which will be reviewed and analysed in next weeks. We started +working on cardano-node integration. We need +PR #4392 to be merged +before such integration will be able to land in cardano-node, although this +is not blocking us currently. See more at:

Eclipse Evasion

We held a session which included Alexander Russel, Sandro Coretti-Drayton and +Nick Frisby from the consensus team. We discussed high lever design of the +eclipse evasion scheme, which is important for the design and implementation of +ouroboros-genesis. We got a positive feedback from the researchers.

IO-Sim

In this period we made little progress towards releasing IO-Sim on Hackage. +A single PR which added +a few missing instances of the STM monad.

Open Source

We made sure the CI runs for PRs which comes from forks (which is important to +accept contributions from 3rd parties).

Mithril Cardano Integration

We held initial discussions with Arnaud Bailly about possible path to integrate +mithril to cardano-node and take advantage of the ouroboros-network +diffusion layer.

+ + + + \ No newline at end of file diff --git a/2022-10-28-performance-and-tracing/index.html b/2022-10-28-performance-and-tracing/index.html new file mode 100644 index 0000000000..b073b2e38e --- /dev/null +++ b/2022-10-28-performance-and-tracing/index.html @@ -0,0 +1,26 @@ + + + + + +Performance & Tracing Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & Tracing Team Update

· 2 min read
Serge Kosyrev

High level summary

On the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline.

On the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario.

Executive summary

  • The new tracing system public release is getting closer, as we're resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale.
  • The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment.
  • The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE.
+ + + + \ No newline at end of file diff --git a/2022-10-31-open-source/index.html b/2022-10-31-open-source/index.html new file mode 100644 index 0000000000..be3cab3ecf --- /dev/null +++ b/2022-10-31-open-source/index.html @@ -0,0 +1,47 @@ + + + + + +Open-Source Team | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Open-Source Team

· 2 min read
Marcin Szamotulski

High Level Summary

  • We've been working toward publishing Cardano Backlog, currently its in +review by the IOG communication team.
  • We identified a number of libraries which can be published.
  • We setup and enhanced cardano-updates.

Detailed description

I am glad to announce that I was given the role of open-source advocate for +cardano project. In last few weeks we were making steps towards publishing our +backlog. It's currently under review by the communication team, although most +of the issues are already visible across various repositories.

The open-source initiatives have their own +project. It is set up +to help us track our major open-source activities. Right now there are two +work streams:

We identifies a number of libraries across all the teams which contribute to +Cardano which we would like publish to publish, see the following +link. Arnauld Bailly recently published +quickcheck-dynamic +library on Hackage. The networking team is slowly progressing towards +publishing io-sim and related packages, checkout the progress +here.

Thanks to Arnaud Bailly our Cardano Updates website has +a new look & feel! It's using docusaurus.io.

Christian Taylor carried recently a detailed analysis of our open-source +repositories. He collected many interesting metrics, which allows us to see +where we need to improve as an open-source project to make the Cardano project +and many smaller related libraries which we maintain be more open and available +for open-source contributors.

The graph below shows which documents the 55 most important Cardano +repositories are missing the most: +Documentation Adoption +You can expect we will improve in these metrics in the coming weeks.

+ + + + \ No newline at end of file diff --git a/2022-11-01-db-sync/index.html b/2022-11-01-db-sync/index.html new file mode 100644 index 0000000000..41e3adc007 --- /dev/null +++ b/2022-11-01-db-sync/index.html @@ -0,0 +1,37 @@ + + + + + +DB Sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB Sync Team Update

· One min read
Kostas Dermentzis

High level summary

The DBSync team is preparing a release which introduces schema simplifications, removes indexes, +unique and foreign keys. It also provides a way to fix older values and migrates without the need to +resync from genesis.

Lower level summary

Schema simplifications

Indexes, Unique and Foreign keys are removed in order to speedup syncing +#1295 +The same pr also introduces a different way to rollback, which doesn't rely on foreign keys and +indexes.

Performance

The DBSync team ran a big number of benchmarks and investigated ways to speedup syncing. A +conservative number of these will be included in the next release and the rest can be found in +performance view.

Migrations and resyncing

The next release will be 13.1.0, it will enable a migration without the need to resync. It will also +introduce a procedure that fixes bytes values of Datum and RedeemerData in existing databases +#1294

Release

The release has been mostly cherry-picked from master +#1294 and its scope can be seen +release view

+ + + + \ No newline at end of file diff --git a/2022-11-02-ledger/index.html b/2022-11-02-ledger/index.html new file mode 100644 index 0000000000..413d98a39d --- /dev/null +++ b/2022-11-02-ledger/index.html @@ -0,0 +1,54 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Jared Corduan

High level summary

We have made the decision to use the +formal ledger repository +in place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure +to the model. In particular, we now have a lot of support for axiomatic set theory. +While the next ledger era is still in the design phase, most of the team remains working +on technical debt. +In particular, we have moved a lot more code out of the Shelley specific modules and into +a ledger core module, we have finished up our benchmarking around the problematic TICKF +ledger transition (while improving the performance), made conveniences to the development +environment, cleaned up all the recent changes to the cost model, added a lot of documentation, +fixed some flaky tests, and deleted some dead code.

Lower level summary

Axiomatic Set Theory

The formal ledger model now has support for much of the set theory that we make use of in +the formal ledger specifications. See [pull-20].

Completed Technical Debt

  • We have addressed issues with two of our most problematic and flaky tests. +See [pull-3039] and [pull-3093].
  • We have added more documentation and tests to the Twiddler module. This is a module which +makes our CBOR serialization round-trip tests much more robust, and will also hopefully +help enforce the mandate for downstream libraries to never re-serialize data that needs +to be hashed. See [pull-3073] and [pull-3095] +(we cannot merge 3095 just yet, due to a preference for merging other features).
  • We have finished our long analysis of the problematic TICKF transition. +We now have a lot of benchmarks surrounding this code, and have added performance improvements. +See [pull-3068] and [issue-3035].
  • We have restored support for +ghcid +in our repository. This is a tool for developing with Haskell that many of us find greatly +improves our productivity by providing us with constant feedback from the type checker. +See [pull-3112].
  • After much activity on the cost model, we have done some final clean up of the code. +See [pull-3075] and [pull-3101].
  • We moved a lot of the existing user facing documentation regarding native tokens into the +ledger repository, and cleaned it up +(most of the heavy lifting was done by our amazing technical writers). +See [pull-3091].
  • We removed dead code. See [pull-3089].
  • We moved a lot of code from the Shelley specific libraries to the ledger core library. +See [pull-3109] and [pull-3110].
  • We've removed more of the awkward legacy template Haskell names. +See [pull-3108].
+ + + + \ No newline at end of file diff --git a/2022-11-02-node-cli-api/index.html b/2022-11-02-node-cli-api/index.html new file mode 100644 index 0000000000..dee58d3b9d --- /dev/null +++ b/2022-11-02-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Jordan Millar

2022-11-02 - 2022-11-15

High level summary

  • Documentation improvments
  • Merged community contributions
  • Exposing types from cardano-api requested by the community/other teamss
  • Test output has been improved so diagnosing failures is now easier
  • Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)
  • Refactoring of cardano-testnet making it more useable as a library (ongoing)
  • Release 1.35.4 was merged & released

Completed

cardano-cli

cardano-api

cardano-node

cardano-testnet

In Progress

cardano-cli

cardano-api

cardano-node

+ + + + \ No newline at end of file diff --git a/2022-11-02-release/index.html b/2022-11-02-release/index.html new file mode 100644 index 0000000000..1ec8990cbb --- /dev/null +++ b/2022-11-02-release/index.html @@ -0,0 +1,27 @@ + + + + + +Node Release Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node Release Team Update

· One min read
Samuel Leathers

Node Reelease Update

2022-10-19 - 2022-11-02

Executive Summary

The team is formalizing the new release process and team structure. Both preview/preprod environments have been reset, +a temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8.

1.35.4 release candidates have been created and are being tested internally and externally.

Completed

In Progress

+ + + + \ No newline at end of file diff --git a/2022-11-02-system-test/index.html b/2022-11-02-system-test/index.html new file mode 100644 index 0000000000..b2a07bee4f --- /dev/null +++ b/2022-11-02-system-test/index.html @@ -0,0 +1,26 @@ + + + + + +System Test Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

System Test Team Update

· One min read
Dorin Solomon

High level summary

We have been focused on:

  • Fully opening our test results (on top of the existing tests & tools):
    See cardano-node-tests webpage.
  • Started to test and automate the new functionalities added in the 1.35.4-rc1 node tag
    See test results tracking page.
  • Made some improvements to the automated db-sync sync tests
    See db-sync tests.
  • Multiple cleanups and updates to the cardano-node-tests framework
  • Updated the nightly pipelines for the cardano-node-tests after the Babbage HF
+ + + + \ No newline at end of file diff --git a/2022-11-03-embedding-quality/index.html b/2022-11-03-embedding-quality/index.html new file mode 100644 index 0000000000..7b7e8e253d --- /dev/null +++ b/2022-11-03-embedding-quality/index.html @@ -0,0 +1,27 @@ + + + + + +Embedding Quality Workstream | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Embedding Quality Workstream

· One min read
Dorin Solomon

High level summary

We made good progress on most of the Action Items we agreed on Lisbon, like:

  • Cardano System Tests was fully open to public (tools, tests, results) +See cardano-node-tests webpage
  • We defined an user-facing-functionality template that is used with the cardano-cli team
    • this includes acceptance criteria & user stories, and definition of done
  • We are in the process of running the cardano-node-tests at commit & PR level in cardano-node (we are affected by the Cicero migration right now but we did most of the work already)
  • We started to apply a labelling convention on cardano-node issues that will be used to generate some visual dashboards with some metrics [TBD]
  • Ziyand Liu started an End-to-End Development and Testing Process for Plutus Features
+ + + + \ No newline at end of file diff --git a/2022-11-04-hydra/index.html b/2022-11-04-hydra/index.html new file mode 100644 index 0000000000..8162d45993 --- /dev/null +++ b/2022-11-04-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High level summary

This week, the hydra team first re-deployed the latest Hydra scripts to the re-spun preview network, see 0.8.0 release notes. They also completed implementation of ADR18 and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates #195 and alignment of the specification document with auditors.

What did the team achieve this week

  • Complete and merge ADR18 #579
  • Re-deploy hydra scripts to respun preview network, see 0.8.0 release notes #595
  • Have first gap of #452 in review.
  • Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.
  • Engineering meeting to discuss hard forks and protocol parameter updates #195
  • Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.
  • Drafted project scope for an external audit RFP.

What are the goals of next week

  • Implement event-sourced persistence #580
  • Answer the internal auditors questions
  • Have a draft RFP ready for a first review internally
  • Close some gaps #452
+ + + + \ No newline at end of file diff --git a/2022-11-04-mithril/index.html b/2022-11-04-mithril/index.html new file mode 100644 index 0000000000..19c18d61a7 --- /dev/null +++ b/2022-11-04-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Iñigo Querejeta Azurmendi

This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.

Low level overview

  • We have been moving forward on the implementation of the release process #500:
    • Setup of the new hosted environments for testing-preview, pre-release-preview and release-preprod with their terraform and GitHub environments #542
    • Adapted the CI workflows to work with the new release process #543
    • Publication of an ADR3
    • Publication of a dev blog post about Mithril networks evolution
    • Releasing our first Mithril distribution 2244.0
  • Worked on the API versioning mechanism #565
  • Worked on the implementation of the stores migration process for the signer and aggregator nodes #562
  • Prepared a Mithril devnet video demo #526
  • Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably #484
+ + + + \ No newline at end of file diff --git a/2022-11-11-crypto/index.html b/2022-11-11-crypto/index.html new file mode 100644 index 0000000000..cd3430e078 --- /dev/null +++ b/2022-11-11-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· 2 min read
Iñigo Querejeta Azurmendi

High level overview

The SECP primitives AC has been met, and the test-vectors PR has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool PR has been merged, and we've adapted the KES secure PR to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (PR#). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork.

Low level overview

  • With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation.
  • We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool.
  • In parallel, we keep progressing on the KES agent
  • VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification.
  • Our libsodium fork now links directly to upstream libsodium.
+ + + + \ No newline at end of file diff --git a/2022-11-11-hydra/index.html b/2022-11-11-hydra/index.html new file mode 100644 index 0000000000..fa6839af76 --- /dev/null +++ b/2022-11-11-hydra/index.html @@ -0,0 +1,27 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team published together with Obsidian Systems a light paper +on our "Hydra for Payments" project (Link). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of hydra-node processes.

What did the team achieve this week

  • Published Hydra for Payments light paper (Link)
  • Have a draft RFP ready for a first review internally
  • Answered the internal auditors questions
  • Fixed a bug with following the chain when starting with persistence (#599)
  • Minor improvements to logging for better observability (#598, #600)
  • Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look (#590)

What are the goals of next week

  • Implement event-sourced persistence #580
  • Close more gaps #452
  • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
+ + + + \ No newline at end of file diff --git a/2022-11-11-ledger/index.html b/2022-11-11-ledger/index.html new file mode 100644 index 0000000000..3416ea501d --- /dev/null +++ b/2022-11-11-ledger/index.html @@ -0,0 +1,58 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Jared Corduan

High level summary

I am extremely excited to say that we now have a pull request up which introduces our new versioned +CBOR serialization. This was an enormous effort, but it will solve a host of problems that we have +had since the Shelley phase. It will take time to properly review it, and we will +need to put in a lot of effort to integrate it with the downstream components, but this is a huge +milestone. Additionally, we have a new CIP proposing a deprecation cycle for the transaction +serialization schemes.

We also have a draft pull request that reworks how deposits are tracked. Users of the system will +not notice any difference, but it is a necessary change needed to prepare the way for +decentralizing the governance of Cardano.

Finally, we continued to address technical debt. In particular, we continued to make progress on +bringing coherency and consistency to the code base with a common naming convention, and +improving some error messages.

Lower level summary

  • We have a pull request up for our new versioned CBOR serialization. +When we encounter a problem with our deserializers, it can be very difficult to implement a fix. +It is difficult because we can only fix such issues during a hard fork, and leading up to the +hard fork we must maintain two serializations for the same type in order to not cause unintended +network splitting (the problematic version must be used before the hard fork, +and the fixed version is used afterwards). +This can be especially tricky with the FromCBOR typeclass, since it is not always easy to +search for where all the problematic uses are located. +The new versioned CBOR serialization allows us to gracefully handle this transition. +See [pull-3138].
  • We proposed a CIP for backwards compatibility of the transaction serialization schemes. +See [pull-372].
  • We have draft for the new deposit tracking. +This draft is not as memory efficient as the final version will be, +but it is a sufficient proof of concept that we can write property tests against, ensuring +that we have not changed the semantics. +We will optimize after we are sure of the correctness. +See [pull-3127].
  • We now provide better support for debugging failed Plutus scripts in an important helper +function, named evaluateTransactionExecutionUnits. +In particular, it now returns all the information needed to rerun the script with exactly the +same arguments. This feature will end up appearing in the CLI and other tools from the Plutus +tools team. +See [pull-3135].
  • We did a lot more renaming to bring coherency and consistency to the code base. +See [pull-3126], [pull-3120], [pull-3118], and [pull-3116].
  • We have added a few things to the ledger repository to make it conform to the +Cardano Engineering Handbook +See [pull-3139].
+ + + + \ No newline at end of file diff --git a/2022-11-11-network/index.html b/2022-11-11-network/index.html new file mode 100644 index 0000000000..3088ee0a22 --- /dev/null +++ b/2022-11-11-network/index.html @@ -0,0 +1,39 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High-level summary

In last sprint we got a performance report of P2P performance testing cluster +(which consists of 50 nodes). There is a performance regression in the header +notification metric. The P2P cluster is constructed with the same +topology as the non-p2p reference one this indicates some regression which +needs to be further investigated. This poses a risk for releasing P2P.

We also continued to work on peer sharing: pull #4019.

We continued working on dynamic block production which is required for P2P +release for BP nodes: pull #3159.

We simplified the P2P topology format: issue #4559, pull #3888.

We added a new trace point for asynchronous demotions of local peers with +Warning severity. This trace is important for SPOs.

Detail description

Performance regression

Below we include a graph which shows the performance regression of the P2P code base vs non P2P.

On the x axis is time in seconds which measures the delay from the start of +the slot to when a header was received. The y axis is the percentile of nodes +that received a header. We are currently investigating possible causes of the +regression.

New P2P topology form

The new topology file format is described in this issue #4559.

Tracing improvements

  • We improved a handshake error reporting, pull #4136
  • We added TraceDemoteLocalAsynchronous rendered as DemoteLocalAsynchronous +in json format, pull #4127. Such demotions should be investigated by the +pool operator. They can indicate a problem in the deployed system, but also +they could indicate a remote problem in arranged connections with other SPOs.

Open Source Improvements

We improved documentation of io-sim and typed-protocols for open-source +contributors and/or maintenance tasks: pull #22, pull #45, pull #48.

+ + + + \ No newline at end of file diff --git a/2022-11-16-consensus/index.html b/2022-11-16-consensus/index.html new file mode 100644 index 0000000000..13a0f9c1bf --- /dev/null +++ b/2022-11-16-consensus/index.html @@ -0,0 +1,86 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 6 min read
Damian Nadales

High-level summary

During the past two weeks, the consensus team started documenting the +implementation of the UTxO HD feature and continued developing tests for it. As +part of our work on UTxO HD, we improved the Haskell support for LMDB. We also +spent time working on the LSM tree prototype, and designed a parameter tuning +algorithm for it. Regarding our work on Genesis, our investigation of the +"plateaus" pointed at the TICKF slowdown on era boundaries as culprit. This +led us to developing a caching strategy that will not only remove the +aforementioned "plateaus", but can help alleviating the growing block production +delay on epoch switch. We also helped reviewing the block forge credential +hotswap feature, which is intended for use in the adoption of P2P.

We also worked on paying technical debt and fostering collaboration. In +particular, we improved the io-sim framework, which is crucial for testing and +simulating Cardano components. We also removed thunks that appeared on era +translations, and improved our diffusion pipelining feature. We are working on a +presentation for explaining Praos and Genesis.

High-level status report

  • Finish the UTxO HD prototype: in progress.
    • We added documentation for this feature.
    • We developed the second version of the mempool tests.
    • We fixed benchmarks that were inflating the speedup we observed in the +anti-diff implementation of sequences of differences. Speedups are now in the +range of [3.33, 4.75], which remain significant.
    • We continued improving Haskell LMDB support.
    • We finished implementing a "parameter tuning algorithm" for the LSM tree +prototype. This enables us to run experiments to check the correctness of +the algorithm.
  • Genesis: in progress.
    • Work investigating the "plateaus" in the ChainSync jumping prototype +pointed to the TICKF slowdown on era boundaries as culprit.
  • Tech debt:
    • We improved the capabilities of our io-sim library, which is crucial for +testing and simulating Cardano components.
    • We removed thunks from epoch translations in the ledger.
    • We added Linux CI support for lmdb-simple.
    • We got pending diffusion pipelining improvements merged.
  • Fostering collaboration:
    • We are working on a explanation of Praos and Genesis protocols.
  • Support:
    • Investigation of CSJ "plateaus" led us to developing a caching strategy for +TICKF that will not only remove these "plateaus", but can help alleviating +the growing block production delay on epoch switch.
    • We reviewed the block forge credential hotswapping feature which is intended +for use in the adoption of P2P.

Workstreams

Finish the UTxO HD prototype

We merged PR #4060, which adds a report documenting the UTxO HD +feature, and puts emphasis in explaining how the mempool works in combination +with UTxO HD.

We opened a draft PR with the second iteration of the property tests for the +mempool (#4076).

We fixed the Arbitrary instances for keys and values in DiffSeq benchmarks +(#4143). The problem was that we were testing with mostly small +values, which artificially boosted the performance gains we saw on benhcmarks. +Speedups are now in the range of [3.33, 4.75] across the different +configurations.

Backing store property tests

We focused on incorporating feedback on the monadic cursor API PR (#1). +This required us to make small tweaks to quickcheck-lockstep to test the new +API. We also updated the backing store property tests to use the new version of +the monadic cursor API.

LSM tree implementation

We worked on the LSM tree prototype. In particular: finished implementing a +"parameter tuning algorithm" that adapts the LSM tree design based on factors +like:

  • workload
  • machine specs,
  • and characteristics of the data being stored.

We are now running experiments to gather results and cross-reference them with +existing experimental results from the LSM tree paper to see if the algorithm is +working correctly.

Benchmarking the CSJ prototype

We focused on investigating the "plateaus" in the ChainSync tip, which turned +out to be due to the TICKF bug which we previously were only aware of in the +context of the long forging times near epoch boundaries. For the most drastic +patch by @nfrisby to speed up TICKF, full sync is speeding up by 7%.

The following plot shows that by caching the TICKF the ChainSync tip and the +VolatileDB tip progress at the same rate.

The plot below shows the speedup observed by caching the TICKF rule wrt the +baseline.

Technical debt

After addressing the PR comments, we merged PR #16, which implements +the MonadCatch instance for STM. This extends the capability of our io-sim +library, which is crucial for testing and simulating Cardano components PR #16 +closed #1461. This new feature was published as version 0.4.0.0 +of io-sim.

We continued with our work fixing the NoThunk errors required for enabling +nightly tests, with the help of TVarInvariant checks in strict-stm and +nothunks libraries. We proposed fixes in cardano-ledger that took care of +thunks that appeared in era translations (#3143). The fixes will be +integrated back into consensus when cardano-ledger approves and publish the +changes introduced in #3143.

We added CI support for lmdb-simple (#2). We currently test the build on +a Linux environment only.

We got pending diffusion pipelining PRs (#3857, #3860, +#3856) merged, after rebasing and addressing feedback.

Fostering collaboration

@nfrisby finished a visualisation tool and outlined scripts for the Praos and +Genesis explanation presentations. The idea is to produce a video that gives an +overview of these protocols.

Support

We started working on caching the computation of the TICKF rule +(#4054), since this was blocking our benchmarking work for +Genesis. In addition, this issue has the Cardano community quite +concerned, so we are hoping the work done in caching the +computation of the TICKF rule can help alleviating the growing block +production delay on epoch switch.

We reviewed the block forge credential hotswapping PR #3800 from the +networking team, which is intended for use in the adoption of P2P.

+ + + + \ No newline at end of file diff --git a/2022-11-16-node-cli-api/index.html b/2022-11-16-node-cli-api/index.html new file mode 100644 index 0000000000..107ca4c725 --- /dev/null +++ b/2022-11-16-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content
+ + + + \ No newline at end of file diff --git a/2022-11-16-performance-and-tracing/index.html b/2022-11-16-performance-and-tracing/index.html new file mode 100644 index 0000000000..d27c1dcd0a --- /dev/null +++ b/2022-11-16-performance-and-tracing/index.html @@ -0,0 +1,26 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 2 min read
Serge Kosyrev

High level summary

  1. P2P performance investigation is ongoing, in support of the networking team.
  2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.
  3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.
  4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.
  5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.

Performance

We are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.

Tracing

We ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.

Infrastructure

The first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.

We designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.

A number of smaller workbench, data analysis & reporting improvements have been made.

+ + + + \ No newline at end of file diff --git a/2022-11-18-hydra/index.html b/2022-11-18-hydra/index.html new file mode 100644 index 0000000000..5d769307d6 --- /dev/null +++ b/2022-11-18-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team released version 0.8.1, which includes several fixes and a user-wished extension of the persistence introduced by 0.8.0 of replaying server outputs to make clients like the hydra-tui be aware of the latest hydra-node state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from hydra-poc to hydra!

What did the team achieve this week

  • Implemented replaying of server outputs to address #580
  • Released version 0.8.1 containing this and other fixes Release notes
  • Worked on the bounded tx validity as one of the on-chain script fixes, but couldnt finish it just yet #615
  • Collaborated with the education team on a Hydra tutorial.
  • Discovered and discussed issues with the seen ledger.
  • Renamed the Hydra repository hydra-poc -> hydra

What are the goals of next week

  • Create and discuss an ADR about handling tx validity correctly.
  • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
  • Have a team workshop / hackathon after the summit:
    • Retrospective
    • Roadmapping session
    • Hack on something complex or useful
+ + + + \ No newline at end of file diff --git a/2022-11-18-mithril/index.html b/2022-11-18-mithril/index.html new file mode 100644 index 0000000000..796c014a57 --- /dev/null +++ b/2022-11-18-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Iñigo Querejeta Azurmendi

High level overview

The Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks.

Finally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer.

Low level overview

  • Released a new Mithril distribution 2246.1
  • Completed the first stage of the store migrations process #562
  • Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes #565
  • Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage #576
  • Prepared a Daedalus synchronization benchmark video with/without Mithril #606
  • Upgraded the Cardano nodes of the testing Mithril networks to 1.35.4 #594
  • Worked on implementing SPO tests nodes on testing Mithril networks #563
  • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #588
  • Worked on the refactorizaton of the aggregator multi signer engine #398
+ + + + \ No newline at end of file diff --git a/2022-11-23-ledger/index.html b/2022-11-23-ledger/index.html new file mode 100644 index 0000000000..3575117177 --- /dev/null +++ b/2022-11-23-ledger/index.html @@ -0,0 +1,52 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Jared Corduan

High level summary

We released CIP-1694, +our proposal for entering the Voltaire phase. +Please come join the discussion, this will be an incredibly exciting transition for +Cardano and we want everyone to participate!

We now have a sensible way to version all of the serialization schemes used in the ledger. +The draft pull request was polished, reviewed, and merged this week. +This solves many problems that have vexed us since the beginning of the Shelley ledger era.

Everyone working on the Cardano node is working together to improve our release process, +and the ledger team in particular dedicated one engineer to help with these efforts +for the next release.

Lower level summary

The Conway ledger era

The current proposal in CIP-1694 encompasses two new ledger eras. +The first era will be called Conway, after the English mathematician John Horton Conway. +The community facing aspects of the Conway ledger era will be very minimal, +but it will pave the way for introducing liquid democracy. +The details can be viewed here. +We do not yet have a formal specification for the Conway era. +Our plan is to debut the +formal ledger model. +Briefly, the Conway ledger era will:

  • introduce SPO voting for hard forks (in the spirit of the now abandoned CIP-47)
  • provide an on-chain mechanism for rotating the governance keys
  • re-plumb the ledger rules involving governance to be in line with CIP-1694

Versioned CBOR

We now have the ability to easily tie our serialization schemes to the Cardano +major protocol version. +We still aim to preserve backwards compatibility as much as possible, but we now have a principled +plan for resolving problems (see CIP-ledger-cbor). +In particular, we can now address several long standing issues, such as +issue-2444, issue-2965, and issue-3003.

The final (and massive!) pull request which brought us the versioning is pull-3138.

Deposit tracking

The draft pull request which was exploring how best to track individual deposits +is much closer now to being ready to take out of draft (pull-3127). +For background on the issue, see issue-3113. +This is quite an invasive change which effects many of our tests, which we are now addressing.

Technical debt

As always, we keep working on technical debt. +We have deduplicated a some things: pull-3129, pull-3162. +We have memoized a problematic computation (though more due diligence is needed before we can +merge): pull-3141.

Node release

We have been helping with the node release efforts. See pull-4608.

+ + + + \ No newline at end of file diff --git a/2022-11-25-crypto/index.html b/2022-11-25-crypto/index.html new file mode 100644 index 0000000000..fbb6f8242e --- /dev/null +++ b/2022-11-25-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· 2 min read
Iñigo Querejeta Azurmendi

High level summary

The four open fronts that the crypto team is working on are:

  • MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team.
  • Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes
  • cardano-base: The VRF and BLS branchs are still open and in progress
  • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

Low level summary

MuSig2

  • We redesigned the library so that MuSig2 lib users don't need to be aware of the underlying secp256k1 library PR#31
  • We are introducing a more granular error handling mechanism PR#33
  • We rethought the API and made it more consistent with the underlying secp256k1 library PR#35

Mithril

  • The mithril crates in general will be published in crates.io, and we adapted the core library's README PR#616
  • We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information PR#620

cardano-base

  • We've been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) PR#341
  • SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions PR#344
  • Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus PR#266

KES agent

  • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
  • Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation.
+ + + + \ No newline at end of file diff --git a/2022-11-25-hydra/index.html b/2022-11-25-hydra/index.html new file mode 100644 index 0000000000..09f571f66c --- /dev/null +++ b/2022-11-25-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a presentation about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.

What did the team achieve this week

What are the goals of next week

  • Monthly report & review meeting
  • Tie up several loose ends / branches.
  • Resolve Tx validity discussions & PRs.
  • Review cicero PR & try it out.
+ + + + \ No newline at end of file diff --git a/2022-11-28-network/index.html b/2022-11-28-network/index.html new file mode 100644 index 0000000000..34fdd4994d --- /dev/null +++ b/2022-11-28-network/index.html @@ -0,0 +1,66 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 4 min read
Marcin Szamotulski

Stake-Driven Data Diffusion Release for Relays

IOG networking team decided to release the Stake-Driven Data Diffusion with +Robust Optimised Peer Selection also more commonly known as P2P. In the +last update, we informed about a performance regression, but it turns out it +only affects block producers, and thus we highly advise against running it on +such nodes. Further investigation is required to find the cause of it.

On IOG's benchmarking cluster we have seen quite a good performance improvement +on block propagation itself. The cluster is running a static topology with +valency 6 (each node is connected to 6 other nodes). In which every of the 50 +nodes are block producers. The setup of this network is the same as mainnet. +We've seen 40-50% performance improvement on block propagation comparing to the +same cluster deployed with the same topology but using non-P2P nodes. We think +this performance improvement is caused by using full duplex connections. Quite +likely the transaction traffic floating in both directions on the same TCP +connection helps to keep the TCP window open. Note that in a cluster of 50 +nodes with valency 6 the probability of having at least one duplex connection +is more than 50%. We don't expect the same improvement on mainnet because the +network is much wider and the transaction traffic is not as large.

Just before the release we squashed two small bugs:

  • issue #4163 - top level integration bug in keep-alive;
  • issue #4177 - a bug in outbound-governor;
  • PR #4165 - a fix cardano-ping support of NodeToNodeV_10.

Peer Sharing

We were carrying a review of peer sharing PR.

DeltaQ

Neil Davies was invited to give a guest lecture entitled Avoiding System Catastrophes at UCLouvain.

What have we achieve last sprint

  • issue #4163: we found out that a control message is not passed to the +keep-alive mini-protocol, this results in every demotion executing demotion +timeout rather than a graceful termination. With the fix the node will no longer log:

    { "kind": "PeerStatusChangeFailure"
    , "peerStatusChangeType": "WarmToCold (ConnectionId {localAddress = 192.168.0.10:7000, remoteAddress = 3.129.186.40:3000})"
    , "reason": "TimeoutError"
    }
  • issue #4177: we fixed an assertion failure in the outbound-governor; now +we don't try demoted peers which are being demoted already.

  • PR #4155: we refactored ouroboros-network packages. There's a top level +ouroboros-consensus-diffusion package which integrates network +& consensus code. We also introduced:

    • ouroboros-network-api package which contains the API shared between +network & conensus;
    • ouroboros-network-mock package which contains mock API used for testing +(e.g. a mock chain & chain producer, etc.)
    • ouroboros-network-protocols package which contains implementation of all +(but handshake) mini-protocols, exposes a testlib and contains test +and cddl components.

    This made the dependency tree of network & consensus packages much +cleaner.

  • PR #4169: we described the usage of release branches in CONTRIBUTING.md +doc.

  • PR #4165: we fixed cardano-ping support of NodeToNodeV_10 protocol.

DeltaQ

The abstract of the talk:

An essential step to ensuring that distributed systems are fit for +purpose.

Distributed systems have become an integral part of our society and +daily lives. We are, both implicitly and explicitly, individually as well as +collectively, placing ever more trust in them.

Are they worthy of this trust? Our need for them to be ‘fit-for-purpose’ goes +well beyond notions of functional correctness (i.e. never getting the wrong +answer). We need them to deliver the desired outcomes in a timely, robust, +reliable, resilient fashion, at scale and in a sustainable way (both +economically and environmentally).

This all sounds like a worthy aspiration, but what would be a practical +approach to capturing and reasoning about these issues? How can we ensure that +systems can meet their fit-for-purpose objectives, not just in their design but +as they are deployed, encounter the imperfect world, are scaled to become +economic, and proceed into ongoing maintenance?

This talk will illustrate how the notions of Outcomes and Quality Attenuation +(as captured by ‘∆Q’) are being used to both frame the necessary notions and +provide a basis for assuring the refinement and reification of such systems, +from initial concept to operational infrastructure.

You can download the slides from here.

+ + + + \ No newline at end of file diff --git a/2022-11-30-consensus/index.html b/2022-11-30-consensus/index.html new file mode 100644 index 0000000000..6d394faf74 --- /dev/null +++ b/2022-11-30-consensus/index.html @@ -0,0 +1,56 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 3 min read
Damian Nadales

High level summary

During the past two weeks, the consensus team merged improvements to the monadic +cursor API that was needed to implement LMDB range reads, which is in turn +required for the implementation of the UTxO HD feature. We added tables to +several tests in for the UTxO HD feature, which increases our confidence in the +correctness of the prototype. The mempool property tests are close to being +completed. Also, we finished the LSM tree tuning algorithm.

On the Genesis front we started simplifying the BlockFetch logic with +CSJ-specific workloads in mind.

We are also documenting the Block Diffusion Pipelining feature, and added a +high-level overview of consensus to the top level documentation of +ouroboros-network.

Workstreams

UTxO HD prototype

We merged the implementation of a monadic cursor API (#1)) which was +needed to solve a bug with LMDB range-reads. After this PR was merged, we focused on +bridging the gap between the lmdb-simple interface and consensus by facilitating +using lmdb-simple's cursor API without Serialise constraints (#3).

We refactored the backing store property tests to use quickcheck-lockstep +(#4081).

We added tables to the mock ledger in the UTxO-HD feature branch +(#4184). Every test that used to run with SimpleBlocks now uses +tables. This will enable us to exercise the UTxO HD mempool integration by +leveraging the existing mempool property-tests. The new state-machine +property-tests are still needed for testing the parallel behaviour of the +mempool.

Our work on the mempool state-machine tests revealed the need for improvements +in the quickcheck-state-machine library. Parallel testing assumed that the +state machine did not have access to mutable references. However, the mempool +tests require the use of such mutable references for mocking the ledger +interface. As a result, our parallel tests were failing with rather obscure +messages. @Jasagredo submitted a pull request (#12) that allows for +new mutable references to be created at each run of the state machine.

Backing store property tests

LSM tree implementation

We finished the LSM Tree tuning algorithm. We are currently tidying up the code +and gathering results (i.e., plots and their interpretation).

CSJ prototype

We started simplifying the BlockFetch logic with CSJ-specific workloads in mind.

New VRF and KES crypto integration

Started working on supporting new version of StandardCrypto which uses compact +KES and batched VRF (#4151).

Technical debt

We reviewed the existing state of the Block Diffusion Pipelining document. We +are now working on the "Implementation" section (#4020).

Fostering collaboration

We cleared up our understanding of the error dynamics of forecasting +(#4146 and #4174).

We submitted a pull request that adds an overview of consensus to the top level +documentation of +ouroboros-network (#4197). This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

https://github.com/input-output-hk/ouroboros-network/pull/4197

+ + + + \ No newline at end of file diff --git a/2022-11-30-node-cli-api/index.html b/2022-11-30-node-cli-api/index.html new file mode 100644 index 0000000000..74ba8f9125 --- /dev/null +++ b/2022-11-30-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Jordan Millar

2022-11-30 - 2022-12-13

High level summary

PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

Completed

docs

cardano-cli

cardano-api

cardano-node

cardano-testnet

In Progress

cardano-cli

cardano-api

cardano-node

+ + + + \ No newline at end of file diff --git a/2022-11-30-performance-and-tracing/index.html b/2022-11-30-performance-and-tracing/index.html new file mode 100644 index 0000000000..8e798d3938 --- /dev/null +++ b/2022-11-30-performance-and-tracing/index.html @@ -0,0 +1,28 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 2 min read
Serge Kosyrev

High level summary

  1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.
  2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.
  3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.
  4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.
  5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.

Performance

We have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don't see any significant performance changes. The component bumps are therefore clear for release.

Tracing

For the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them. +The idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time.

To support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics.

Infrastructure

Generation support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation.

In addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model.

The intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged. +We are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration.

We continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability.

We are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP.

As usual, a number of smaller workbench, data analysis & reporting improvements have been made.

+ + + + \ No newline at end of file diff --git a/2022-12-01-db-sync/index.html b/2022-12-01-db-sync/index.html new file mode 100644 index 0000000000..bc23dee8c1 --- /dev/null +++ b/2022-12-01-db-sync/index.html @@ -0,0 +1,38 @@ + + + + + +DB sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB sync Team Update

· One min read
Kostas Dermentzis

High level summary

The DB Sync team prepared a release 13.1.0.0-rc2 which includes many improvements for db-sync, +it makes rollbacks and syncing much faster, simplifies the schema, fixes bugs and introduces +migrations. This release finalises the objectives that were set for db-sync for the previous +3 months period and part of the syncing speed objective set for the next period +Changelog

Lower level summary

  • Branch release/13.1.0.x +includes all the improvements related to the release. The release is passing through the testing +phase and a number of bugs and issues have been fixed, like +#1312 +#1311. +Also many new unit tests have been added.

  • Part of the release branch is cherry-picked back into master, in a way that it respects the new +release and development process, so that it takes into account migrations +release process

  • The DB Sync team has also tagged release 13.0.6 which better supports preview and preprod for +docker.

+ + + + \ No newline at end of file diff --git a/2022-12-01-mithril/index.html b/2022-12-01-mithril/index.html new file mode 100644 index 0000000000..642ecf9941 --- /dev/null +++ b/2022-12-01-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes.

Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.

Low level overview

  • Implemented custom Mithril SPOs on testing/pre-release networks #563
  • Deprecated Signer Declarative Pool Id registration mode #585
  • Completed the second stage of the store automatic migration process #600
  • Completed the deployment pipelines to crates.io registry #588
  • Completed automatic generation of nodes/libraries versions manifest in releases notes #599
  • Completed CI/CD handling of PR from forks #597
  • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #586
  • Worked on signing the artifacts released in the distributions by the CI/CD #587
  • Worked on multi-platforms end to end test #601
  • Worked on the refactorizaton of the aggregator multi-signer engine #398
+ + + + \ No newline at end of file diff --git a/2022-12-01-system-test/index.html b/2022-12-01-system-test/index.html new file mode 100644 index 0000000000..6d8d4e69d9 --- /dev/null +++ b/2022-12-01-system-test/index.html @@ -0,0 +1,27 @@ + + + + + +System Test Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

System Test Team Update

· One min read
Dorin Solomon

High level summary

During the last 2 weeks we did more improvements on our Test Framework, planned the testing of the P2P Single +Relay functionality, and also tested some DB-Sync tags.

Workstreams

Framework improvements:

  • moved the System Test CLI Pipelines from BuildKite to Github Actions
  • improved the reporting tools to support the rerun of the failled tests and update of the reports
  • added support for Github API in report-aggregator, so reports will be generated from the GitHub nightly jobs from now on
  • added support for mixed topology - P2P, legacy, mixed topologies
  • planned the P2P Single Relay system test activities
  • added support to start regression tests with PV8 + better selection of tests

DB-Sync:

  • confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)
  • tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2
+ + + + \ No newline at end of file diff --git a/2022-12-02-hydra/index.html b/2022-12-02-hydra/index.html new file mode 100644 index 0000000000..eb74925a6c --- /dev/null +++ b/2022-12-02-hydra/index.html @@ -0,0 +1,33 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team has worked on cleaning up several things in progress +after last week's summit. They have extended their model-based testing (MBT) +approach with transaction creation & observation +#410, solved +AcquirePointTooOld problems of the hydra-node with by changing the wallet +initialization #439. +Also, the Hydra researchers updated the security proofs of the Coordinated Hydra +Head, which are bound to be included in the Hydra HeadV1 specification.

What did the team achieve this week

  • Monthly review & report - will also be published on our website #644
  • Extended the model-based testing (MBT) with transaction creation/observation #410
  • Solve AcquirePointTooOld problems with new wallet initialization #439
  • Fixed our hydraw deployments (EC2 instances)
  • Created & discussed ADR21 within tx validity work
  • Received & discussed security proofs of Coordinated Hydra Head (requires more work)

What are the goals of next week

  • Get ADR21 accepted & close tx validity gap in our implementation
  • Complete review & integrate the Hydra tutorial
  • Review latest hydra-pay work
  • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec
  • Get Cicero (new CI) working
+ + + + \ No newline at end of file diff --git a/2022-12-09-crypto/index.html b/2022-12-09-crypto/index.html new file mode 100644 index 0000000000..dc49d3e9bc --- /dev/null +++ b/2022-12-09-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· 2 min read
Iñigo Querejeta Azurmendi

High level summary

The four open fronts that the crypto team is working on are:

  • MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency.
  • Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe.
  • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack.
  • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

Low level summary

MuSig2

  • [Still in progress] We are introducing a more granular error handling mechanism PR#33
  • We merged the API redesig PR#35
  • We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future PR#36

Mithril

  • We merged the individual signature PR#620
  • We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (kes repo)

cardano-base

  • Nothing new to report. Still working in merging these PRs.
  • We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a bug in GHC

KES agent

  • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
  • Fixed a 'use-after-free' bug in the KES agent.
+ + + + \ No newline at end of file diff --git a/2022-12-09-hydra/index.html b/2022-12-09-hydra/index.html new file mode 100644 index 0000000000..bb50106125 --- /dev/null +++ b/2022-12-09-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team has worked on completing to "Validate coordinated head protocol against formal model", this is a huge step to verify the implementation is secure. They also worked on implementing ADR21 related to bounded tx validity which is now under review. HydraPay project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of issues they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.

What did the team achieve this week

  • Document model based testing #194 & #641
  • Got ADR21, reducing gaps between implementation and specification, under review.
  • Complete review on hydra-tutorial.
  • Complete first round of review on HydraPay work #634
  • Meeting with Director of CyberSecurity frio IOG to unblock "the RFP prepared for the external audit" #606
  • Remove vasil-dev and testnet from smoke-test because they were not working #630
  • Fix flaky plutus-merkle-tree test #642
  • Refactor NetworkSpec to improve legilibility.
  • Fix benchmark cost for abortTx #631
  • Adapt nix.conf to the recent hydra-ci nix cache migration.

What are the goals of next week

  • Get ADR21 accepted & close tx validity gap in our implementation.
  • Integrate the hydra-tutorial.
  • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
  • Get Cicero (new CI) working.
  • Use reference inputs to reduce the cost of the commitTx.
+ + + + \ No newline at end of file diff --git a/2022-12-09-ledger/index.html b/2022-12-09-ledger/index.html new file mode 100644 index 0000000000..8c20e333cd --- /dev/null +++ b/2022-12-09-ledger/index.html @@ -0,0 +1,61 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Jared Corduan

High level summary

The Plutus tools team at IOG has started helping the ledger team to build out a user friendly +cardano-ledger-api package! +A GitHub project +will be filled out in the days ahead, +people interested in the API can use it to follow along and join in on the conversations.

The ledger team has started using +architectural decision records +to leave a record of important decisions that the team makes. +We will retroactively go back through past decisions and make ADRs for them.

The logic to track individual deposits is now nearly in place. +We are prioritizing correctness with our first pull request, and will follow up with +performance optimizations and general cleanup next.

Pointer addresses are being deprecated with the Cardano major protocol version 8. +See CPS-0002 +for more context.

Lower level summary

Cardano ledger API

The Plutus tools team has taken our minimal cardano-ledger-api package and started filling it +out and adding much needed documentation. +They have also added doctests! +In the days to come, the Plutus tools team will map out a lot more work for the API and record +it in this +GitHub project.

See

Architectural Decision Records (ADRs)

We are now providing more context and leaving a record of important decisions that are made +in the ledger. The first ADR explains the very lightweight process.

See

Tracking individual deposits

See ADR-3 +for background. +We now have the logic in place to track individual deposits, and a host of property tests +to make sure that the logic is correct. +The current implementation uses more memory than it needs to, and we will address that next, +with our hope being to only use one word (8 bytes) per registered stake credential. +There is a fair amount of other cleanup needed for general maintainability.

See

Removing pointer addresses

Pointer addresses, which have never seen any real use +(there are something like eleven on mainnet), are being deprecated starting at Cardano major +version 9. +CPS-0002 gives the context. +We are disabling them by first preventing transaction outputs containing them +from being serialized by the node at the moment we switch to version 9. +At the hard fork after that, we will translate the existing few pointer addresses +to enterprise addresses.

See

Technical debt

  • pull-3162 - Sometimes we have to put safeguards in place for hard forks which may never +be exercised. After we have passed the given hardfork, we are able to clean up the code +and simplify our logic. We removed all of the ones that we are currently easily able to.
  • pull-3165 - We improved the type safety of our code while also discovering and fixing +a serialization bug.
  • pull-3172 - We removed dead code.
  • pull-3175 - The Allegra and the Mary code used to be coupled in a particular way the we grew to +dislike. We made these two ledger eras now uniform with the rest of our code base.
  • pull-3184 - We organized our property testing code.
  • pull-3200 - The Plutus tools teams fixed an outstanding bug in the translation from the +ledger state to the Plutus script context.
+ + + + \ No newline at end of file diff --git a/2022-12-12-network/index.html b/2022-12-12-network/index.html new file mode 100644 index 0000000000..0ffe8f93eb --- /dev/null +++ b/2022-12-12-network/index.html @@ -0,0 +1,30 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· One min read
Marcin Szamotulski

High level summary

In last sprint the team focused on preparations for the conference talk at +OPODIS 2022. We also worked on preparations to publish io-sim and related +packages on Hackage (PR #57, PR #60).

We also started reviewing:

  • ouroboros-network
  • cardano-node
  • cardano-ledger +repositories for open-source readiness (PR #4128).

We prepared a PR which changes how node-to-node and node-to-client protocol +versiones are serialised in cardano-node log (PR #4691).

+ + + + \ No newline at end of file diff --git a/2022-12-14-consensus/index.html b/2022-12-14-consensus/index.html new file mode 100644 index 0000000000..84fc526266 --- /dev/null +++ b/2022-12-14-consensus/index.html @@ -0,0 +1,67 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 3 min read
Damian Nadales

High level summary

During the past two weeks, the Consensus team finalized the QSM tests for the +backing store and Mempool on the UTxO-HD branch with important discoveries +regarding parallel QSM testing. We also worked with the Ledger team to envisage +the modifications that are required in Ledger and Consensus to accommodate the +changes in the crypto VRF and KES. The db-analyser now supports bechmarking +the ledger operations, which will allow us to identify, debug, and profile +potential performance problems. We drafted a document that defines how to manage +the versions of Consensus-related packages. The top level documentation of +ouroboros-network now features a description of the consensus components and +provides a hyperlinked map to the modules documentation.

Workstreams

UTxO HD prototype

Whereas we had passing sequential state-machine tests for the mempool, the +parallel case proved to be more challenging than we thought. The operation of +adding a list of transactions to the mempool is not atomic and, as a result, +when adding a list of transactions, transactions from other processes can be +added in between. The mempool implementation handles this correctly, however +this required us to redesign the parallel model we had to take +the lack of atomicity into account.

Backing store property tests

We finished refactoring the backing store property tests. The second review +round is ongoing.

LSM tree implementation

We are working on benchmarking (in terms of time and number of IO operations) +fetching/looking up data from disk.

Genesis

We worked on the design of a mechanism to prevent a DoS attack on our Genesis +design related to rollbacks. This was arguably the biggest outstanding question.

During the discussions around Genesis, we noticed a design boundary that nicely +delineates a fundamental component. We almost have a full Haskell prototype of +it. It will be very nicely self-contained, perhaps even usable in the ultimate +implementation!

New VRF and KES crypto integration

We collaborated with the Ledger team on preparing the ledger state and crypto +types to avoid huge allocation on the epoch boundary when changing aspects of +the crypto that will only manifest in headers, not in the ledger states.

Technical debt

We merged the pull-request that adds a support to db-analyser for +benchmarking ledger operations. This will allow us to identify, debug, and +profile potential performance problems. The benchmark focus on the main 5 ledger +operations that are involved in chain syncing, block forging, and block +validation, namely:

  1. Forecast.
  2. Header tick.
  3. Header application.
  4. Block tick.
  5. Block application.

The following figure shows a plot of the benchmarking results for the first 65 +million blocks (approximately) of the Cardano chain. The thin yellow lines under +the x-axis show the epoch boundaries, whereas the thick yellow lines correspond +to the era transitions.

As we can see in this figure, era and epoch boundaries require more computation +time. The ledger team are aware of this problem, and we are working to improve +this situation.

Fostering collaboration

We drafted a document motivating and defining how Consensus (and +possibly other core teams) will/should manage our package versions. This +pull-request garnered many great discussions from our team members and other +teams too: Sebastian Nagel, Arnaud Bailly, Michael Peyton-Jones, Ziyang Liu, et +al. We want to thank you all for your input, and we found this discussion very +enlightening!

We merged the pull request that adds an overview of consensus to +the top level +documentation of +ouroboros-network. This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

+ + + + \ No newline at end of file diff --git a/2022-12-14-db-sync/index.html b/2022-12-14-db-sync/index.html new file mode 100644 index 0000000000..404e185607 --- /dev/null +++ b/2022-12-14-db-sync/index.html @@ -0,0 +1,35 @@ + + + + + +DB-sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB-sync Team Update

· One min read
Kostas Dermentzis

High level summary

The DBSync team continued testing release 13.1.0.0. The QA team has reported that no issues have +been found. The DBSync team also worked on cherry-picks back to master and on fixing bugs.

Lower level summary

  • Release is cherry-picked back to master, which uses the new rollback mechanism which uses +reverse indexes, same as the release +#1320 +This also fixes a bug number of issues on master.
  • Depenencies upgrade and CHaP integration +#1324
  • AdaPots fix #1323. This +fixes an issue where the per epoch AdaPots didn't match the epoch boundary, but +they also included changes from the first block of the epoch.
  • Deposits Event fix #3212. This pr +adjusts the Deposits ledger events, so that it can be better used by db-sync. This can reduce the +number of queries that db-sync does during syncing an make syncing faster.
+ + + + \ No newline at end of file diff --git a/2022-12-14-node-cli-api/index.html b/2022-12-14-node-cli-api/index.html new file mode 100644 index 0000000000..51d8edb19b --- /dev/null +++ b/2022-12-14-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Jordan Millar

2022-12-14 - 2022-12-27

High level summary

PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

Completed

docs

CI & project maintenance

Developer experience

cardano-cli

cardano-api

cardano-node

cardano-testnet

In Progress

CI & project mainteance

cardano-cli

cardano-api

cardano-node

cardano-testnet

+ + + + \ No newline at end of file diff --git a/2022-12-14-performance-and-tracing/index.html b/2022-12-14-performance-and-tracing/index.html new file mode 100644 index 0000000000..2b5e8ba7d5 --- /dev/null +++ b/2022-12-14-performance-and-tracing/index.html @@ -0,0 +1,30 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 4 min read
Serge Kosyrev

High level summary

  1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.
  2. A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery.
  3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals.
  4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.
  5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.

Performance

The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload.

We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.

Tracing

After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.

To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:

  1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.
  2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.

All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further.

In addition, we're still pursuing our performance-enhancing rework of the new tracing internals.

Infrastructure

After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.

Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it. +This means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis. +This will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports.

A new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches. +Previously we only had automation for two aspects separately, so we only could either:

  • compare individual runs (used for different node configurations / versions)
  • collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version) +Naturally, combining these two capabilities was a long-desired feature of our analysis pipeline.
+ + + + \ No newline at end of file diff --git a/2022-12-15-mithril/index.html b/2022-12-15-mithril/index.html new file mode 100644 index 0000000000..427562e4f9 --- /dev/null +++ b/2022-12-15-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team has released the new distribution 2248.1 of their nodes. They have published the first version of the Mithril cryptographic library on crates.io, the Rust community’s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.

Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities.

Low level overview

  • Implemented removing verification key and stake from single signatures #619
  • Completed the extraction of the signer registration from the multi-signer #642
  • Completed the extraction of the certificate creation from the multi-signer #638
  • Implemented a workflow to test client binaries (Linux / MacOS / Windows) #601
  • Completed the signature of the artifacts produced by the CI #587
  • Fixed the protocol parameters transition #627
  • Worked on optimizing the snapshot digest computation #510
  • Worked on enforcing the API protocol versions in the client and signer #633
  • Worked on deactivating the non certified signer registration mode #621
  • Worked on the re-genesis of the test networks #651
+ + + + \ No newline at end of file diff --git a/2022-12-16-hydra/index.html b/2022-12-16-hydra/index.html new file mode 100644 index 0000000000..b61d7a281c --- /dev/null +++ b/2022-12-16-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on the website and reduced the cost for commit transactions by ~30% with the help of reference scripts.

The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.

What did the team achieve this week

  • Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.
  • Reduce commit transaction costs by ~30% with reference scripts.
  • Prepared an RFP for external audit of the Hydra Head solution.
  • Fixed transaction cost benchmarks for abort tx #631.
  • Recorded decision to use model-based testing (ADR22) and improved Model documentation.
    • Concluding the first increment on Validate coordinated Head protocol #194.
    • Formulated next step / follow-up on testing the Soundness property of our protocol #656.
  • Switched to using nix flakes for development setup and CI build #646.

What are the goals of next week

  • Push ADR21 & tx validity gap over the finish line (smoke tests missing).
  • Integrate the hydra-tutorial.
  • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
  • Close & recap on the year with another monthly report (+ blog post).
+ + + + \ No newline at end of file diff --git a/2022-12-28-node-cli-api/index.html b/2022-12-28-node-cli-api/index.html new file mode 100644 index 0000000000..0bb42fb06b --- /dev/null +++ b/2022-12-28-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Jordan Millar

2022-12-28 - 2023-01-10

High level summary

Completed

docs

CI & project maintenance

Developer experience

cardano-cli

cardano-api

cardano-node

cardano-testnet

In Progress

CI & project mainteance

cardano-cli

cardano-api

cardano-node

cardano-testnet

+ + + + \ No newline at end of file diff --git a/2023-01-05-ledger/index.html b/2023-01-05-ledger/index.html new file mode 100644 index 0000000000..697a893335 --- /dev/null +++ b/2023-01-05-ledger/index.html @@ -0,0 +1,73 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 5 min read
Jared Corduan

High level summary

The ledger team finished up the remaining work for tracking individual depots, +built out the new Conway era transaction body (in line with CIP-1694), +greatly reduce some problematically large calculations on the epoch boundary, +and addressed technical debt.

Lower level summary

Finishing the deposit tracking

The initial work on the individual deposit tracking project focused only on correctness. +As this is a large data structure +(since its size is linear with respect to the number of registered stake credentials), +it is very important that we also reduce the memory overhead as much as possible. +Fortunately, we were able to add very little overhead for the deposits by using existing +efficient data structures. The extra tracking now only incurs one word (8 bytes) +per registered stake credential.

See:

New Conway era transaction

We implemented the Conway era transaction body, which is in line with CIP-1694. +Note that the Conway era implements, losing speaking, the parts of CIP-1694 that are not +related to the liquid democracy (the "DReps"). +The new transaction body adds the new governance actions and votes, +while also deprecating the old governance structures +(i.e. the old protocol parameter updates and MIR certificates).

We also now have the wire specification (CDDL file) and serialization code in place. +The wire specification is still subject to change while we work on the Conway era, +but it is now usable and has proper testing support +(so that, for example, the serialization round-trips, etc).

See:

Optimizing the TICKF transition

Every since the release of the Shelley era, we have been working to reduce the computational load +placed on the node by the ledger at the epoch boundary. +While still not perfect, we believe that we have removed one of the final problematically long +epoch boundary computations that exacerbate situations like +this. +In particular, the problem involved the way in which the consensus layer obtains a view of the +ledger for the purposes of checking the leadership schedule in a new epoch. +We implemented a stopgap measure which now only incurs a single multi-second cost once per epoch +instead of potentially several multi-second costs while the networks waits for the first block +of a new epoch to be minted.

See:

Technical debt

We closed the year out with a lot of reduction to the technical debt!

Improved ledger event

  • pull-3212 - The ledger events are not guaranteed to appear in any given order within a block. +For this reason, motivated by the use case in db-sync, the TotalDeposits event now +includes a transaction ID and emits the change in deposits instead of the value.

Improved type saftey

  • pull-3208 - We replaced NominalDiffTime with a newtype wrapper. The problem was that our CBOR +encoders and decoders were using the wrong level of precision, having to due with with +the Shelley genesis file. We removed the potential problem with a newtype wrapper.
  • pull-3167 - We now use a GADT to ensure consistency of the Plutus language in the types +for TransactionScriptFailure and PlutusDebug.

Code/Module organization

  • pull-3175 - The Allegra and Mary eras had an unusual relationship in our codebase, +due to the uncertainly of release dates while we were implementing them. +In particular, they were coupled in way that is different from the rest of the code base. +With hindsight on our side, we split the combined shelley-ma Haskell package into two +separate ledger era packages, which is now consistent with the rest of the repository +and module structure.
  • pull-3184 - We created a core test sub-library, cleaning up a lot of our property test +generator code.
  • pull-3210 - We moved the KeyPair type to the test library. Outside of testing, +the ledger does not need to deal with signing keys, and since this is a topic that +deserves the utmost care, it is best to make it clear that our use of signing keys +is only for testing.
  • pull-3229 - We split the Cardano.Ledger.Alonzo.Data module, which is more consistent with the rest +of the codebase.

Revert pointer address deprecation

Thanks to one of our excellent internal auditors, +@jmhrpr, +we now have a better plan for deprecating pointer addresses. +This meant that we had to revert the previous work to deprecate them.

See:

Miscellaneous

  • pull-3205 - We removed deprecated type synonyms.
  • pull-3218 - We cleaned up the address deserialization.
  • pull-3223 - We fixed faulty address deserialization tests.
  • pull-3222 - We switched to a general type family TxOut from concrete ones, +reducing many constraints.
  • pull-3224 - ShelleyGenesis is now parameterized by crypto instead of by era.
  • pull-3170 - We set the cabal-version to 3.0 in our projects.
  • pull-3172 - We removed the now useless EncodeMint/DecodeMint classes.
  • pull-3225 - We switch from ormolu to +fourmolu. +The reason was to be able to finally have more diff friendly code!
+ + + + \ No newline at end of file diff --git a/2023-01-06-crypto/index.html b/2023-01-06-crypto/index.html new file mode 100644 index 0000000000..b07eebd219 --- /dev/null +++ b/2023-01-06-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· 2 min read
Iñigo Querejeta Azurmendi

High level summary

The four open fronts that the crypto team is working on are:

  • MuSig2: The API features (error handling) has been merged.
  • Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures.
  • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI.
  • KES agent: We keep progressing with KES secure forgetting implementation.

We also started working in the cryptography engineering handbook, which will be a cross team effort.

Low level summary

MuSig2

  • Merged the more granular error handling mechanism PR#33

Mithril

  • Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in Version 0.1.1, which was published in crates.io.
  • Updated new KES format to mithril library PR 674
  • We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync PR 531
  • We keep progressing on reducing the use of transmute in mithril-stm.

cardano-base

  • Nothing new to report. Still working in merging these PRs. We are only missing nix merge of PR#520 and the updates on VRF will be merged.

KES agent

  • We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests PR#255.

Cryptography handbook

We have made available the (temporary) cryptography handbook https://input-output-hk.github.io/cryptography_spec/, and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives.

+ + + + \ No newline at end of file diff --git a/2023-01-11-consensus/index.html b/2023-01-11-consensus/index.html new file mode 100644 index 0000000000..af8d100d98 --- /dev/null +++ b/2023-01-11-consensus/index.html @@ -0,0 +1,55 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 3 min read
Damian Nadales

High level summary

The consensus team is resuming its activities after the Christmas break. During +these weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and +discussing with the Ledger team the changes that might be required for the next +iterations. The pull request that adds the Conway era is waiting for a second +review round and we hope to merge it soon. On the technical debt side we are +looking into a property-test failure found in the iterators. We are +investigating if this is an error in the model or in the implementation. We also +improved the documentation of our testing code.

Workstreams

UTxO HD Prototype

We worked with the Ledger team to start preparing the next versions of UTxO-HD. +The Ledger team is concerned that for the remaining maps we might need the full +ledger state on epoch boundaries. Since the main consumer of the ledger rules is +Consensus, the code that requires access to a full state could be moved from the +ledger to some Ledger-Consensus bridge. Eg. the traversal of rewards could take +place in such bridge, instead of querying the ledger for the values that are +required in the epoch-transition computations.

We relocated some UTxO-HD definitions, in preparation for merging +the prototype into master.

We also completed updated local benchmarks comparing the replay time and memory +consumption of:

  • the baseline node (f2fc76ef45647275c98634da1718290b976ff364)
  • the UTxO-HD node with the in-memory backend
  • the UTxO-HD node with the LMDB backend

The following plot shows the results: we can see that the LMDB node barely +reaches 8GB of memory, but it takes 1.78 times longer to replay the chain. The +in-memory backend is about 30 minutes faster, but still slower than the baseline +version. We are aware of this phenomenon and it is inherent to the problem of +maintaining sequences of differences of the last k ledger states that allows +us to perform rollback and roll-forward. We are in the process of measuring +syncing from scratch times.

We also added StaticEither accessors that helped us to simplify +the UTxO-HD prototype.

New Conway era

We incorporated the feedback of the pull request, and rebased this +branch on top of master. The PR is pending a second review round and we hope +to merge this soon.

Technical debt

We are investigating a property-testing failure involving +iterators. Solving this requires understanding the expected behavior of +iterators in the counterexample found by QuickCheck to determine if the error +is in the model or in the implementation.

Fostering collaboration

We moved the contents of docs/Testing.md closer to the code, so that the +explanations about the tests are easier to find in the relevant modules, and the +documentation is easier to keep up to date.

+ + + + \ No newline at end of file diff --git a/2023-01-11-performance-and-tracing/index.html b/2023-01-11-performance-and-tracing/index.html new file mode 100644 index 0000000000..a09ebf840a --- /dev/null +++ b/2023-01-11-performance-and-tracing/index.html @@ -0,0 +1,28 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 2 min read
Serge Kosyrev

High level summary

Since our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:

  1. SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress.
  2. The new tracing system: the improved API of the new tracing system was implemented, and we're now porting the tracing integration layer over.
  3. Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks.
  4. New benchmark deployment infrastructure: we've made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs.
  5. Legacy benchmarking: we've started merging the legacy benchmark deployment infrastructure into the workbench.
  6. Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.

Performance

The AWS cluster infrastructure necessary for SECP benchmarking is still being worked on.

Tracing

The improved tracing internals were implemented, and we're now into the phase of updating the tracing integration, which is also mostly done.

Infrastructure

Thanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components.

On the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters. +We now have a very clear and granular method to keep track of protocol parameter evolution -- e.g. the mainnet history changes are now tracked at epoch granularity, while also allowing for systematically described change overlays. This makes the benchmark profile definition much more clear and robust against mistakes.

We also started a merge of the legacy benchmarking environment (based on cardano-ops) into the workbench. The separation between environments was too costly, causing us to reimplement any benchmarking change twice -- first, during development, in the workbench, then in cardano-ops. In addition, maintenance of compatibility code was incurring additional costs, slowing benchmark data analysis development. +Once this merge is complete, this will allow us to sharply cut the benchmark development cycle and overheads.

+ + + + \ No newline at end of file diff --git a/2023-01-12-mithril/index.html b/2023-01-12-mithril/index.html new file mode 100644 index 0000000000..a2903aa8af --- /dev/null +++ b/2023-01-12-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ADR. They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.

Finally, they have worked on upgrading the devnet and fixing some flakiness in the end to end tests of the CI.

Low level overview

  • Implemented the redaction of an ADR for handling graceful updates of the Mithril Network #671
  • Worked on a proof of concept to handle backward compatibilty of exchanged messages with protobuf #677
  • Worked on a proof of concept to handle backward compatibilty of exchanged messages with avro #678
  • Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction #672
  • Worked on upgrading the Cardano node of the Mithril devnet, as well as fixing flakiness of the CI #523
  • Prepared and tested the new 2302 distribution pre-release 2302.0-prerelease
  • Updated the documentation for SPO to build a signer node in order to better reflect the new release process #681
+ + + + \ No newline at end of file diff --git a/2023-01-13-hydra/index.html b/2023-01-13-hydra/index.html new file mode 100644 index 0000000000..ecf2502911 --- /dev/null +++ b/2023-01-13-hydra/index.html @@ -0,0 +1,39 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

Since last weekly update before christmas, the Hydra team worked on the +technical specification, closed gaps in hydra-plutus scripts, made the unique +headId available to Hydra clients through the API, allow the hydra-node to +explicitly synchronize from genesis (if configured), and fixed smaller log and +build issues reported by new users.

Besides this, a retrospective blog +post +was published by Matthias Benkort (CF) on Hydra, summarizing our progress made +in 2022 also an outlook where Hydra is headed for in 2023. Also, the team had +some first sessions on the voting project with Catalyst and the CF.

A full digest monthly digest for December 2022 can be found on the hydra +website.

What did the team achieve this week

  • Had some first sessions on the voting project with Catalyst and CF
  • Published retrospective blog +post +by Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also +an outlook where Hydra is headed for in 2023.
  • Worked on the LaTeX spec for HydraHeadV1, not final or published yet - latest +version in this repository.
  • Add unique headId to API and hence make it available to clients.
  • Allow hydra-node to explicitly synchronize from genesis using --start-chain-from 0.
  • Closed gaps in hydra-plutus scripts
    • bounded transaction validity (ADR21)
    • enforcing contract continuity via state token in output
  • Fixed JSON for some logs and smaller build issues reported by new users.

What are the goals of next week

  • Reach out to have hydra-tutorial integrated.
  • Plan the next couple of months.
  • Complete checking reimbursing of commits in head validator.
  • Align plutus scripts to spec and simplify them (identified some simplifications)
  • Improve mutation framework to be sure we fail tests for the right reasons
  • Complete the spec except the open points (<5) and also discuss them with researchers.
+ + + + \ No newline at end of file diff --git a/2023-01-13-release/index.html b/2023-01-13-release/index.html new file mode 100644 index 0000000000..9f81be76ed --- /dev/null +++ b/2023-01-13-release/index.html @@ -0,0 +1,28 @@ + + + + + +Node Release Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node Release Team Update

· One min read
Samuel Leathers

Node Reelease Update

2022-11-02 - 2023-01-13

Executive Summary

A 1.35.5 release for single relay P2P is nearly completed and should be released this month. This release is based on +release/1.35 branch and does not bump cardano-ledger.

The team successfully integrated an interim release bump of ledger and consensus into cardano-node master. +This work will not be released in a node version, but will be continued by the current dependency bump in progress.

We anticipate once this dependency bump is completed, regular 2 week releases will be feasible again.

The 1.35.4 release is being ran by more than 70% of stake pools. Planning for the mainnet hard fork date is in progress.

Completed

In Progress

+ + + + \ No newline at end of file diff --git a/2023-01-13-system-test/index.html b/2023-01-13-system-test/index.html new file mode 100644 index 0000000000..8f1eca355c --- /dev/null +++ b/2023-01-13-system-test/index.html @@ -0,0 +1,29 @@ + + + + + +System Test Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

System Test Team Update

· One min read
Dorin Solomon

High level summary

During the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the P2P Single +Relay functionality.

We also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level.

Workstreams

Framework improvements:

  • extended the cardano-node-tests with the ability for anybody to fork the repo and run all our System Tests on GitHub Actions
  • added 2 new nightly pipelines - nightly-mixed and nightly-p2p - details here
  • some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;

=== 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) === + to + === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===

Node:

  • ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled
  • started the preparations for testing the next tag - details here

DB-Sync:

  • some improvements on db-sync sync tests
+ + + + \ No newline at end of file diff --git a/2023-01-14-db-sync/index.html b/2023-01-14-db-sync/index.html new file mode 100644 index 0000000000..1aa8e42664 --- /dev/null +++ b/2023-01-14-db-sync/index.html @@ -0,0 +1,31 @@ + + + + + +DB-sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB-sync Team Update

· One min read
Kostas Dermentzis

High level summary

After spending the last months on improving DBSync and releasing 13.1.0.0 the DBSync team focused +the last weeks on integrating upstream changes and tech debt. This includes integrating CHaP, the +new leger core and ghc-9.2.4

Lower level summary

  • Integrate CHaP +#1331
  • Integrate new ledger core 0.1.1.1 and ghc-9.2 +#1332
  • Technical debt: Add code formatter fourmolu +#1334
  • Preparing and tracking Conway and UTxO integration
+ + + + \ No newline at end of file diff --git a/2023-01-19-ledger/index.html b/2023-01-19-ledger/index.html new file mode 100644 index 0000000000..9262da7f7f --- /dev/null +++ b/2023-01-19-ledger/index.html @@ -0,0 +1,50 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Jared Corduan

High level summary

The ledger team completed some preliminary ground work in preparation for CIP-1694 +(restructuring the ledger state), +fixed the PDF hosting problem (mostly the formal specs), +built out more of the new user-friendly ledger API, +finished a proof of concept for constraint-based generators for property tests +(with the hopes of being able to replace our trace generators one day), +and addressed technical debt.

Lower level summary

Restructuring the ledger state

The existing governance structures will be replace in the conway ledger era, +as described in CIP-1694. +In particular, the ledger rules will be restructured as follows:

   BBODY
|
|-------------------------------|
v v
TICK LEDGERS
| |
|---------| |
v v v
RUPD ~NEWEPOCH~ ~LEDGER~
| |
|----------| |--------|-------------------|-----------|
v v v v v
~EPOCH~ +ENACTMENT+ DELEGS UTXOW +TALLY+
| | |
|---------|------------| v |
v v v DELPL v
SNAP POOLREAP -UPEC- | UTXO
|--------| |
v v v
POOL DELEG ~UTXOS~

-..- Removed
+..+ Added
~..~ Modified

Moreover, the ledger state will also be restructured in accordance with the new rules. +In the conway code, we have now removed UPEC, added TALLY, and stubbed ENACTMENT. +We have also adapted all the data structures in the ledger state.

See:

PDF hosting

We now build all of our PDFs using a GitHub action which is triggered by pushing a tag +with a specific form, cardano-ledger-spec-YYYY-MM-DD. +The action creates a GitHub release containing the PDFs. +The links in the main ledger README now point to the PDFs in the latest release.

See:

Powering the new ledger API

We have now removed all the HasField instances from the protocol parameter data types, +and replaced them with lenses. +This is probably the last major restructuring that the ledger team will do on the code base +for the API for a while +(the Plutus tools team will be working on it next, see here). +We also added a new helpful function ensureMinCoinTxOut.

See:

Constraint-based generators

Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks +which span several epochs, mimicking a real network. +These tests are, in theory, excellent for checking properties. +They are, however, very difficult to maintain and are not as random as we would like +(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

We would like to switch to tests which instead generate a random ledger state representative +of not just an initial state, generate a single random valid block, and then test our properties. +The hope is that these will be much more random and easier to maintain.

We have finished a proof of concept are encouraged that this approach could work!

See:

Technical debt

  • pull-3244 massive CI speedup
  • pull-3249 better types for fees in the protocol parameters
  • pull-3264 move our annotator code to the cardano-ledger-binary package where it belongs
  • pull-3239 move the Wdrls type to the Core module.
+ + + + \ No newline at end of file diff --git a/2023-01-20-crypto/index.html b/2023-01-20-crypto/index.html new file mode 100644 index 0000000000..01ca37fc9c --- /dev/null +++ b/2023-01-20-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· 2 min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • Mithril: We explored whether some uses of transmute could be removed, but it resulted in considerable regression.
  • cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision.
  • KES agent: An inconsistency between contra-tracer available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the contra-tracer used by consensus.

Low level summary

Mithril

  • We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average PR#675. We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing.
  • We are writing a RFP for the audit of the core library.

cardano-base

  • A problem with Nix is blocking merge of PR#341
  • Plutus team ran benchmarks of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution.
  • Team is fully digesting the Plonk paper.
  • There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used.

KES agent

  • A little unforseen delay has been caused by a mismatch in the use of contra-tracer. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are doing the change, but still the CI is not happy.
  • The same was needed for the KES agents prerequisites PR#317.
  • We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency
+ + + + \ No newline at end of file diff --git a/2023-01-20-hydra/index.html b/2023-01-20-hydra/index.html new file mode 100644 index 0000000000..ac49c426f6 --- /dev/null +++ b/2023-01-20-hydra/index.html @@ -0,0 +1,33 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team has been focusing on the write-up of the Hydra HeadV1 +specification. Of which a first version has been aggregated and is currently +under review. They aligned the on-chain scripts of reimbursing funds on abort +like defined in the specification, improved the mutation test framework to have +more control when testing plutus scripts. The added HeadId in the API and the +TUI example client make hydra-node easier to use and a first experiment of a +Hydra Head explorer was showing the utility of this - see what Heads exist on +the preview network here.

What did the team achieve this week

  • HeadId to API and display in the TUI #678
  • Experiment of creating a hydra explorer, first result hosted here
  • Improved mutation framework allowing to fail for the right reason #679
  • Correctly reimburse funds in abort (matching the spec) #670
  • Finished a first write-up of the Hydra HeadV1 spec: Read it on overleaf (Communication channels for feedback)

What are the goals of next week

  • Monthly review meeting with a broader audience
  • Groom & plan actions required for a maintainable Head explorer
  • Break “align gaps” feature into smaller chunks (at least on- /off-chain) and groom it
  • Review the spec & discuss individual aborts with researchers (a bigger open question)
+ + + + \ No newline at end of file diff --git a/2023-01-20-network/index.html b/2023-01-20-network/index.html new file mode 100644 index 0000000000..eb918ab425 --- /dev/null +++ b/2023-01-20-network/index.html @@ -0,0 +1,36 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High level summary

We have been working towards cardano-node-1.35.5 release. QA & benchmarking +teams gave a green light for the release, and we made decent progress with some +CI problem which we encountered on the way (PR #4612). We are also working on +peer sharing, making improvements in our testing infrastructure, reducing +technical debt and making progress towards io-sim-1.0.0.0. Galois is making +progress on Handshake improvements.

Low level summary

Our diffusion simulation network now includes a mixed network of initiator +only and initiator and responder nodes. issue #4222

We are now reviewing the peer sharing pull request.

We are also reviewing pull request which introduces handshake query flag. PR #4256

We fixed a bug in our network simulator. The bug was triggered when a node +died when performing a simultaneous TCP open (a corner case of a corner case!). PR #4265

We also refactored Snocket interface and removed the bearer construction from +its methods. PR #4260

We are working towards releasing io-sim-1.0.0.0 on Hackage, which includes +reviewing two PRs: PR #57 and PR #60 as well as writing an announcement +blog post.

+ + + + \ No newline at end of file diff --git a/2023-01-20-sre/index.html b/2023-01-20-sre/index.html new file mode 100644 index 0000000000..dad050426d --- /dev/null +++ b/2023-01-20-sre/index.html @@ -0,0 +1,27 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
Michael Fellinger

High level summary

The SRE team continues work on Cicero, Tullia, and Bitte, as well as providing +support for cardano-world.

Lower level summary

Cicero

  • Fixed various race conditions around transformers.
  • Brought our CI up to date.
  • Migrated to the Nomad exec driver with Nix support for many actions.
  • Moved Nix builds to the Nomad clients for much better cache locality.
  • Ongoing work on vastly improving the action matching and evaluation speed.

Tullia

  • Made it easier to support cloning from a PR's fork
  • Update to latest std
  • Add workaround for cgroup issue: nomad#12877
  • github preset: add github.ci.remote and (read|get)Repository functions
  • Fix various issues around CUE handling

Bitte

  • Upgrade to NixOS 22.11
  • Prototype usage of Colmena for deploys instead of deploy-rs
  • Finalized work on Equinix Metal support
  • Prototype better secrets management with ragenix instead of sops-nix
  • Improve CI and bring it up to date

cardano-world

  • Fixd various OOM issues on preview and preprod
  • Rotated KES keys on preview and preprod
  • Optimize mainnet db-sync to cope with higher load
  • Fix an issue where PostgreSQL would fail after a reboot

bitte-world

  • Updated to NixOS 22.11

ci-world

  • Updated to NixOS 22.11
  • Added Equnix cluster
  • Improve caching of Nix builds
+ + + + \ No newline at end of file diff --git a/2023-01-25-consensus/index.html b/2023-01-25-consensus/index.html new file mode 100644 index 0000000000..5550234e0c --- /dev/null +++ b/2023-01-25-consensus/index.html @@ -0,0 +1,55 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 3 min read
Damian Nadales

High level summary

During the past two weeks, the consensus team finished the testing activities +around the UTxO-HD prototype. This is a very important milestone which will +enable us to run system-level tests and benchmarks, as well as start refactoring +and cleaning the prototype. Regarding our Genesis workstream, we elaborated a +roadmap that gives an indication of the remaining work. We also continued our +work on benchmarking chain-sync-jumping. We also continued working on improving +the way we handle blocks from the future, and advancing the integration of the +new VRF and KES crypto.

Workstreams

UTxO HD Prototype

As the prototype is nearing its completion, it was important to have enough +confidence that we will be able to move additional parts of the ledger state +onto disk. We worked together with the Ledger team to elaborate a +sketch on how the UTxO-HD design would accommodate the migration of +additional data from memory to disk. This gave us enough confidence that the +current architecture will be extensible in the future.

On the testing front, we added property-based tests for the UTxO-HD +type classes.

We also enabled disabled components, and addressed several +technical debt issues:

  • Implement splitSized anti-diff split (#4269), and integrate it +into consensus (#4273).
  • Renaming of peekVal to peekMDBVal (#7).

We ran ad-hoc benchmarks for syncing a chain from scratch and replaying. We +found a race condition in the LMDB backing store, which we fixed. +After the fix we were able to successfully run these benchmarks. The results +were published by this pull request.

We used our db-analyser tool to benchmark the cost of reading keys and +flushing values to disk. The following plot shows the duration of these disk +operation in relation to the main ledger operations, where we can see that the +cost of the former are comparatively low. The spike at the beginning of the +graph is when, at the start of the Shelley era, the entire UTxO set is flushed +to disk.

UTxO-HD read and flush benchmarks

After months of hard work adding tests for the prototype, we are ready to run +end-to-end tests on the node, and system level benchmarks. This signals a very +important milestone for the UTxO-HD workstream 🎉.

Genesis

We elaborated a high-level decomposition of the remaining +work for Genesis. We also continued benchmarking the chain-sync-jumping +happy-path.

Technical debt

We continued working on improving the way we handle blocks from the future.

Support

We completed the mapping of Crypto to HeaderCrypto and body Crypto. +HeaderCrypto is moved to cardano-protocol-tpraos. We created a draft pull +request to facilitate compiling consensus.

+ + + + \ No newline at end of file diff --git a/2023-01-25-node-cli-api/index.html b/2023-01-25-node-cli-api/index.html new file mode 100644 index 0000000000..cb570ea2c9 --- /dev/null +++ b/2023-01-25-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Jordan Millar

2023-01-25 - 2023-02-07

High level summary

General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the cardano-cli query stake-snapshot command.

Completed

docs

CI & project maintenance

Developer experience

cardano-cli

cardano-api

cardano-node

cardano-testnet

In Progress

CI & project mainteance

cardano-cli

cardano-api

cardano-node

cardano-testnet

+ + + + \ No newline at end of file diff --git a/2023-01-26-mithril/index.html b/2023-01-26-mithril/index.html new file mode 100644 index 0000000000..066eddcf85 --- /dev/null +++ b/2023-01-26-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team released a new 2302.0 distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.

Finally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.

Low level overview

  • Released the new distribution 2302.0
  • Implemented a backward/forward compatibility mechanism for API messages #688:
    • Implement the mechanism for the signer registration #689
    • Implement the mechanism for the signature registration #693
    • Implement the mechanism for epoch settings #695
    • Implement the mechanism for certificate pending #696
    • Implement the mechanism for certificate #697
    • Implement the mechanism for snapshots list #698
    • Implement the mechanism for snapshot #699
    • Update enforcement of API version with Semver #705
  • Completed the PoC implementation of backward compatibility with protobuf #677
  • Completed the PoC implementation of backward compatibility with avro #678
  • Completed the PoC to Read/Write transaction on chain for Era activations #672
  • Completed the upgrade Cardano devnet to 1.35.4 #523
+ + + + \ No newline at end of file diff --git a/2023-01-27-hydra/index.html b/2023-01-27-hydra/index.html new file mode 100644 index 0000000000..6218159aa2 --- /dev/null +++ b/2023-01-27-hydra/index.html @@ -0,0 +1,34 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team had a monthly review meeting with their stakeholders, +contributors and interested people from the community. The monthly repot for +January 2023 is a digest +of the things presented and also includes a summary of the meeting. The Hydra +specification was getting discussed and the team is incorporating suggested +changes of reviewers. Last but not least, they compute and publish script +information on every PR and also on the +website +now.

What did the team achieve this week

  • Had the monthly review meeting with a broader audience
  • Published the monthly report for January 2023
  • Reviewed the spec and discussed individual aborts with researchers
  • Compute and publish script information along benchmarks on every PR and website

What are the goals of next week

  • Add rollback section to Hydra spec, update pictures and publish it as part of repository
  • Discuss bigger spec findings (full minting policy, individual aborts, split fanout) as change/pull requests on the spec in the repository.
  • Groom & plan actions required for a maintainable Head explorer + break down align gaps feature.
+ + + + \ No newline at end of file diff --git a/2023-02-02-ledger/index.html b/2023-02-02-ledger/index.html new file mode 100644 index 0000000000..1d8a4709ea --- /dev/null +++ b/2023-02-02-ledger/index.html @@ -0,0 +1,37 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Jared Corduan

High level summary

Much of the work the past two weeks involved integration efforts, +cleaning up and debugging some serialization issues, +adding tests, and work on large projects that are still ongoing. +We also released a CIP this week that aims to make the ledger +a registered CIP category.

Lower level summary

Ledger evolution CIP

We published a +CIP +that will make the Cardano ledger a registered category of the CIP process.

Serialization issues

We had previously thought that we had found a serialization problem with the redeemers, +but it turned out to just be particularly confusing code. +We have now clarified the issue for the future.

See pull-3263, pull-3269, and pull-3268.

Starting in protocol version 9, we will no longer accept duplicate keys in CBOR maps.

See pull-3277.

New tests

We added a new property test suite for some of our custom containers.

See pull-3270.

Progress on a better cost model serialization situation.

We are still working our way through issue-2902. +Towards this end, we are now properly gating the new flexible encoders +until version 9.

See pull-3274.

Nightly tests

We are still experimenting with moving more CI actions to GitHub actions.

See pull-3276.

Constraint based generators

We continue to add to our proof of concept for constraint based generators. +See the previous ledger update for more information about this project.

+ + + + \ No newline at end of file diff --git a/2023-02-03-crypto/index.html b/2023-02-03-crypto/index.html new file mode 100644 index 0000000000..42b69daf88 --- /dev/null +++ b/2023-02-03-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· 3 min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril.
  • cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting.
  • KES agent: using snockets and making things testable in IOSim
  • MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.

Low level summary

Mithril

  • Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing PR#722
  • We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.
  • We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.

cardano-base

  • There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381.
  • The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.
  • The update VRF PR#341 is finally merged, and we are ready to merge PR#344, which implements conversion functions from the compatible types between Praos and PraosBatchCompat.

KES agent

  • Use of snockets to send the data directly from the socket to secure memory.
  • We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives
  • Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.

MuSig2

The GitHub Action linelint is used to check the files.

  • A new job for linting is added to the file /.github/workflows/ci.yml. The rules are configured in the file /.github/workflows/.linelint.yml. Some files from the configuration of libsecp were failing, so in the rules in .linelint.yml the failing files are denoted to be ignored by the linter.
  • Folders are reorganized. We created a folder to handle the example. This folder includes the examplemusig2.c, a distinct config.h, and helper.c. The example is enhanced by implementing the functions in the helper for the configuration given in config.h. The number of messages is different than the tests. The example is made more generic to run with a loop.
+ + + + \ No newline at end of file diff --git a/2023-02-03-goedel/index.html b/2023-02-03-goedel/index.html new file mode 100644 index 0000000000..8213e4ae33 --- /dev/null +++ b/2023-02-03-goedel/index.html @@ -0,0 +1,32 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the team has been preparing several papers for peer review +and knowledge sharing and consulting within IO and the community.

Details

  • R&D Seminar on experience participating in a member based organisation
  • Full day tutorial on performance engineering presented at HiPEAC +2023 conference
  • Finished preparing and submitted a paper on performance engineering +to an ACM workshop
  • Preparing a draft paper for future submission about verifying design +refinements for distributed system design
  • Consulting on performance design of other IO projects
+ + + + \ No newline at end of file diff --git a/2023-02-03-hydra/index.html b/2023-02-03-hydra/index.html new file mode 100644 index 0000000000..4c6cd491d8 --- /dev/null +++ b/2023-02-03-hydra/index.html @@ -0,0 +1,33 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team completed the Hydra specification with a section about +rollbacks and updated graphs +(#448). In a next step, +the specification will be made more approachable and an open standard. They +improved their hydra-cluster tool to launch a local --devnet sandbox +environment and continued aligning the hydra-plutus scripts with the +specification by hardening the checks on close and contest transactions.

What did the team achieve this week

  • Completed the specification with a section about rollbacks and updated graphs +#448, with a follow-up on making it more approachable and an open standard.
  • Continued spec review with internal auditor and incorporated changes.
  • Talked to TxPipe about how Demeter and Hydra could work together
  • The hydra-cluster executable can be used to launch a local --devnet sandbox environment.
  • Reproduced the “head being stuck on network outage” bug
    • relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed.
  • Progressed with higher velocity by addressing more and more gaps #677

What are the goals of next week

  • Upstream our JSON instances to the ledger
  • Close all transaction security related on-chain gaps
  • Ideally release 0.9.0 with updated scripts
  • Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap
+ + + + \ No newline at end of file diff --git a/2023-02-08-consensus/index.html b/2023-02-08-consensus/index.html new file mode 100644 index 0000000000..f58892976a --- /dev/null +++ b/2023-02-08-consensus/index.html @@ -0,0 +1,44 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales

High level summary

We continue refactoring the UTxO HD prototype while we wait for the system level +benchmarks. We have created a new repository that contains the anti-diff +packages used in this prototype.

On the Genesis front, we are preparing another meeting with the researchers to +audit the implementation design, and we continued working on basic tests and +simplifications.

During the past two weeks we also introduced two new tools. One for dumping CBOR +encoded blocks to JSON, and another to serve a local immutable DB.

Workstreams

UTxO HD Prototype

We are in the process of refactoring the UTxO HD prototype, while we wait for +the system level benchmarks to confirm if the performance of the prototype is +satisfactory.

We also set up a repository for the anti-diff package, which +required us to refactor the code, write documentation, and prepare a release to +CHaP.

Genesis

We worked on basic tests for the Limit on Eagerness property of +Genesis. We also introduced further robustness and simplifications in the +Genesis Density governor. Finally, we developed a presentation to engage again +with the researchers on our Genesis implementation design.

Technical debt

Fostering collaboration

We are in the process of polishing the ouroboros-consensus +documentation site, which we will use a the entry point for Consensus related +documentation. The first version will not be complete, but we plan on +systematically improving it.

Support

We added a tool to ouroboros-consensus-cardano-tools which allows +to dump the Chain DB blocks or any given CBOR encoded blocks as JSON.

We also added another tool that serves an existing immutable DB via +BlockFetch and ChainSync. This tool can help in assisting our local benchmarking +efforts (for instance Genesis' ChainSync jumping prototype).

+ + + + \ No newline at end of file diff --git a/2023-02-08-node-cli-api/index.html b/2023-02-08-node-cli-api/index.html new file mode 100644 index 0000000000..bf63ad2322 --- /dev/null +++ b/2023-02-08-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Jordan Millar

2023-02-08 - 2023-02-21

High level summary

More maintenance and resolving raised issues.

Completed

docs

CI & project maintenance

Developer experience

cardano-cli

cardano-api

cardano-node

cardano-testnet

In Progress

CI & project mainteance

cardano-cli

cardano-api

cardano-node

cardano-testnet

+ + + + \ No newline at end of file diff --git a/2023-02-08-performance-and-tracing/index.html b/2023-02-08-performance-and-tracing/index.html new file mode 100644 index 0000000000..b6fa343971 --- /dev/null +++ b/2023-02-08-performance-and-tracing/index.html @@ -0,0 +1,26 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 3 min read
Serge Kosyrev

High level summary

  1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we're currently running what we consider the final benchmark, to validate the underlying assumptions.
  2. Release benchmarking: we've performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.
  3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.
  4. New tracing: before going live, we're performing the documentation update, as well as reworking the end user migration guide.
  5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.
  6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.
  7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.

Performance

We are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:

  • we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,
  • after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,
  • finally, we're redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.

In addition, we started benchmarks of the 1.35.6 release.

Tracing

A rework of the new tracing system's internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.

Specifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.

Infrastructure

On the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we'll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.

The work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.

The Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops.

+ + + + \ No newline at end of file diff --git a/2023-02-09-mithril/index.html b/2023-02-09-mithril/index.html new file mode 100644 index 0000000000..2658d7b455 --- /dev/null +++ b/2023-02-09-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team released a new 2304.1 distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.

Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version 1.35.5 on their devnet and infrastructure.

Low level overview

  • Released the new distribution 2304.1
  • Fixed a bug that prevented some signers to sign with 2304.0-prerelease #716
  • Completed the implementation of an EraChecker that checks if an era is active #708
  • Completed the implementation of an EraReader that gathers era activation data #709
  • Completed the implementation of an EraReader adapter with on chain transaction as source #710
  • Completed the relational design of the aggregator store #476
  • Completed adding a new SPO on the testing-preview network #729
  • Completed the upgrade of the Cardano node to 1.35.5 #725
  • Fixed flakiness in the CI #734
+ + + + \ No newline at end of file diff --git a/2023-02-10-hydra/index.html b/2023-02-10-hydra/index.html new file mode 100644 index 0000000000..28b50d06bf --- /dev/null +++ b/2023-02-10-hydra/index.html @@ -0,0 +1,33 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team closed several gaps to align the Hydra scripts +implementation further with the specification. This also resulted in a slight +improvement on Hydra script size and costs. They consequently analysed the +asymptotic complexity of collect and fanout and how they relate. Also plutus-tx +profiling toolchain was evaluated and set up for future improvements on Hydra +on-chain performance. In discussions with researchers and internal auditors, +they also uncovered next steps on further securing the Head protocl using a +"full" minting policy.

What did the team achieve this week

  • Closed several gaps to align script implementation with specification #452
    • Allow contest only once #680
    • Optimization through head output at index 0 #700
    • Value is preserved #702 + optimized exact value equality #709
  • Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to #721
  • Fixed our tooling around the Haskell language server
  • Discussed full minting policy with researchers
  • Started grooming “what we need for mainnet” on this idea ticket and milestone

What are the goals of next week

  • Implement full minting policy
  • All remaining protocol discrepancies are implemented or groomed as individual features
  • Ideally release 0.9.0 with updated scripts
  • Discuss what we need for mainnet (milestone planning)
  • Redraw transaction graphs for specification (upon feedback)
+ + + + \ No newline at end of file diff --git a/2023-02-17-crypto/index.html b/2023-02-17-crypto/index.html new file mode 100644 index 0000000000..afe46de6eb --- /dev/null +++ b/2023-02-17-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· 2 min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril's core library (decided to add audit of KES). Design proposal for viable registration.
  • cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus.
  • KES agent: using snockets and making things testable in IOSim
  • MuSig2: started implementation in rust.

Low level summary

Mithril

  • Transmute helpers merged PR#722
  • We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope.
  • We are working in a modification of KES to require caller to allocate the secret key buffer.
  • Proposed a solution for signer registration of Mithril.

cardano-base

  • Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 proof.
    • Results are promising, with using only 23% of the execution budget to verify a realistic proof.
    • Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril.
  • KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this.
  • Conversion finally merged PR#344.

KES agent

  • Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation
  • Figuring out how to go from fake file descriptor to write the raw bytes

MuSig2

  • Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental.
+ + + + \ No newline at end of file diff --git a/2023-02-17-goedel/index.html b/2023-02-17-goedel/index.html new file mode 100644 index 0000000000..1f67b48d8f --- /dev/null +++ b/2023-02-17-goedel/index.html @@ -0,0 +1,33 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the team has been working on drafts of two papers and one +technical report, distributivity properties of deltaQ, and consulting +on performance design with the Marlowe team.

Details

  • Processing reviews on performance engineering paper and planning +paper revisions accordingly

  • Investigating distributivity properties of DeltaQ

  • Preparing sections on the thorn calculus and idempotency laws for +draft paper about verifying design refinements for distributed +system design

  • Consulting on performance design with Marlowe team

+ + + + \ No newline at end of file diff --git a/2023-02-17-hydra/index.html b/2023-02-17-hydra/index.html new file mode 100644 index 0000000000..1bc52b579a --- /dev/null +++ b/2023-02-17-hydra/index.html @@ -0,0 +1,30 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team completed work on dealing differently with contests +during the contestation period. These will now always push out the deadline and +hence contestation periods are easier to pick (depending on the network a Head +runs on). Furthermore, they added an important acceptance test and completed +internal refactoring of the protocol logic making future changes easier.

What did the team achieve this week

  • Push contestation deadline on each contest #716
  • Wrote an acceptance (property) test can always close/fanout when collect is successful
  • Internal refactoring of our HeadLogic
  • Groomed remaining things from #452 into dedicated features

What are the goals of next week

  • Complete full minting policy #720
  • Release 0.9.0 with updated scripts
  • Plan mainnet milestone and a 0.10.0 version
  • Redraw transaction graphs for specification (upon feedback)
  • Have smoke tests fixed and running regularly
+ + + + \ No newline at end of file diff --git a/2023-02-17-ledger/index.html b/2023-02-17-ledger/index.html new file mode 100644 index 0000000000..e2d8087ce7 --- /dev/null +++ b/2023-02-17-ledger/index.html @@ -0,0 +1,49 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Jared Corduan

High level summary

This past two weeks saw many months worth of ledger changes integrated with the cardano-base +and ouroboros-network repositories. +The vast majority of the effort involved all the changes to the ledger serialization libraries +(and the interplay with cardano-base) which now support proper versioning. +Supporting the conway ledger era, and in particular allowing the ledger state to transition +to a whole new system of governance, also played a noticeable part in the integration.

Besides the integration work, the team continues to address technical debt, improve the +documentation, make our testing infrastructure better (such as experimenting with better +nightly tests), and formally specifying more parts of CIP-1694.

Lower level summary

Integration work

Below is all the integration work completed, which will enable a release to node from +the current ledger master. Many thanks to +Alexey for this colossal undertaking!

Technical debt

Starting in major protocol version 9, zero-valued multi-assets will no longer be permitted +in the CBOR specification. See pull-3241.

We now have our .cabal files being checked for a consistent formatting given by +cabal format in our CI. See pull-3286.

We are still experimenting with better nightly tests for our long running +property based tests. See pull-3276 and pull-3296.

Small documentation improvements

The hand proofs of the preservation ADA property have been added back to the +Shelley ledger specification. See pull-3295.

We have clarified how the script integrity hash is computed in the CDDL description. +See pull-3290.

Specifying CIP-1694

Our new formal specifications backed by Agda have seen a lot of progress! +Upgrading to Agda 2.6.3 fixed our main build infrastructure problems, +and we no longer have to rely on our custom fork. See pull-50.

Our progress on formally specifying CIP-1694 can be followed here:

Constraint based testing

We are still actively working on our new constraint based property testing framework. +We have nearly all of the constraints for an entire ledger state +hooked into generators, and tests that the generators do indeed obey the constraints. +The variable count in the constraints is over 100! +There is still much work to do on shrinking, making the generators faster, +and writing actual property tests for the ledger, but the approach still seems viable and +we are hopeful that it could replace our trace generators. +The WIP can be followed here: pull-3219.

+ + + + \ No newline at end of file diff --git a/2023-02-17-network/index.html b/2023-02-17-network/index.html new file mode 100644 index 0000000000..2188ac5ce4 --- /dev/null +++ b/2023-02-17-network/index.html @@ -0,0 +1,34 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· One min read
Marcin Szamotulski

High level summary

Recently QA found a bug in P2P code, which results in busy loops. We added one +fix to 1.35.6 release, another one will likely be part of next release. The +first one is already included in ouroboros-network-0.3.0.1 release. These +bugs could only affect nodes which are out of sync and thus should not impose +risk on well maintained nodes on mainnet. We also advertise to deploy at most +one of the relays as a P2P node, which shields from possible consequences.

We recently finished design phase of eclipse evasion and we started +implementing it (see issue #3886 for progress).

Galois finished implementing Handshake extension which will allow to query +network protocol versions (see pr #4256).

We also recently released a newer set of network packages to be integrated with +cardano-node master branch, this includes:

* monoidal-synchronisation-0.1.0.2
* cardano-client-0.1.0.2
* network-mux-0.3.0.0
* ouroboros-network-api-0.1.0.0
* ouroboros-network-protocols-0.2.0.0
* ouroboros-network-testing-0.2.0.1
* ouroboros-network-mock-0.1.0.0
* ouroboros-network-framework-0.3.0.0
* ouroboros-network-0.4.0.0 (it doesn't not yet include the fix we included
in `0.3.0.1`)
+ + + + \ No newline at end of file diff --git a/2023-02-21-db-sync/index.html b/2023-02-21-db-sync/index.html new file mode 100644 index 0000000000..14daabaeff --- /dev/null +++ b/2023-02-21-db-sync/index.html @@ -0,0 +1,37 @@ + + + + + +DB-sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB-sync Team Update

· One min read
Kostas Dermentzis

High level summary

The db-sync team created a new tag 13.1.0.2 which is ready to release. +We also investigated and had the first working UTxO-HD integration which is one +of the potential future risks for db-sync.

Low level summary

  • Integrated the UTxO-HD feauture branch in kderme/utxo-hd-1. This doesn't +use the full on disk storage but keeps things in memory and the plan is to keep +it this way for the first iteration. The integration still has some performance +issues which we investigate
  • Created tag 13.1.0.2 which upgrades the dependencies of db-sync
  • Fixed an issue related to errors appearing in SMASH +#1353
  • Continued with ghc-9.2 integration +#1339
  • Worked on an new fixing procedure for +#1348. +We try to make these procedures work also on older schema version, without the +need to migrate to newer schema, which can be very useful for fixing existing +snapshots.
+ + + + \ No newline at end of file diff --git a/2023-02-22-consensus/index.html b/2023-02-22-consensus/index.html new file mode 100644 index 0000000000..8fb6355d0c --- /dev/null +++ b/2023-02-22-consensus/index.html @@ -0,0 +1,61 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 3 min read
Damian Nadales

High level summary

During the past two weeks we got the results from the system level benchmarks +for UTxO HD. They showed a substantial performance regression, so we spent some +time analyzing the results. We found out the frequency at which ledger snapshots +were taken was too high, so we requested the benchmarking team a new run with a +more realistic snapshotting policy. We continued refactoring and improving the +prototype, and we released UTxO-HD related packages to CHaP.

We met with IOG researchers and networking specialists to discuss the Genesis +design, which was well received. We continued working on testing and +benchmarking different Genesis prototypes.

We are also working on solving a test failure related to iterators. This work +derived in several improvements such as better documentation, a framework for +writing unit (and regression) tests, and the possibility of debugging +QuickCheck counter examples in the REPL.

Finally, we released ouroboros-consensus 0.2.0.0 and +ouroboros-consensus-cardano 0.3.0.0 to CHaP

Workstreams

UTxO HD Prototype

We got the results of the first system level benchmarks for UTxO HD. They seemed +to indicate a significant regression in performance. After looking into the +benchmark logs we found that the benchmark runs took ledger state snapshots too +often, due to the default snapshotting policy depending on k, and k being so +small in the benchmark runs. Therefore, the next step is to re-run the +benchmarks with a snapshotting policy that more closely resembles the one from +mainnet.

At the same time, we continued refactoring and cleaning up the prototype.

Also, we prepared the anti-diff packages (fingertree-rm, diff-containers, +simple-semigroupoids) and the lmdb related packages (cardano-lmdb and +cardano-lmdb-simple) to CHaP.

Genesis

The Genesis design was presented to the IOG researchers and Peter Thompson from +NSol. It was well received. They pointed out one blindspot, but we think it'll +be relatively simple to mitigate.

In parallel, we continued developing test and benchmarks for the Genesis +prototypes. I particular we tested and implemented a potential fix for +increased ChainDB dequeue timings, which partly +behaved as we expected, but still needs further investigation. Also we obtained +new benchmarking data for the prototype.

Technical debt

Related to #4183, we developed a DSL for specifying +ChainDB unit tests. This will allow us to better understand the +counter-examples returned by QuickCheck tests, and to write regression +tests for them. Also, we added a module to enable +QuickCheck counter-examples to be run on the REPL, allowing for faster debugging +feedback. Also, we improved the documentation related to followers +(#4372).

We are also working on a design for optimizing the way we handle blocks from the +future.

Support

We released ouroboros-consensus 0.2.0.0 and ouroboros-consensus-cardano +0.3.0.0 to CHaP. Remember that we decided to split the packages related to +Consensus into two bundles, one with the core functionality, Cardano-agnostic +code, and another bundle with instantiations specific to Cardano.

+ + + + \ No newline at end of file diff --git a/2023-02-22-node-cli-api/index.html b/2023-02-22-node-cli-api/index.html new file mode 100644 index 0000000000..54fcc6b841 --- /dev/null +++ b/2023-02-22-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Jordan Millar

2023-02-22 - 2023-03-07

High level summary

General bug fixes

Completed

docs

CI & project maintenance

Developer experience

cardano-cli

cardano-api

cardano-node

cardano-testnet

In Progress

Documentation

CI & project mainteance

cardano-cli

cardano-api

cardano-node

cardano-testnet

+ + + + \ No newline at end of file diff --git a/2023-02-23-mithril/index.html b/2023-02-23-mithril/index.html new file mode 100644 index 0000000000..9393e9e26d --- /dev/null +++ b/2023-02-23-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team released a new 2306.0 distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes’ CLI that allows generating and signing an era marker’s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.

Low level overview

  • Released the new distribution 2306.0
  • Completed the epic that implements signer versions deployment monitoring #718:
    • Completed the implementation an event producer/consumer via channel #738
    • Completed the creation of a database and its configuration to save the events on the consumer side #740
    • Completed the creation of events and sending them on the channel on the producer side #741
    • Completed the creation of the signer registration event #742
    • Completed the creation a query to extract the node versions stakes distribution #743
  • Worked on the epic that implements eras behavior switch #707:
    • Completed the loading of era reader adapters from config in the signer and the aggregator #732
    • Completed the implementation of an era cli command in the aggregator #755
    • Completed the implementation of a dynamic matrix of cases in CI end to end tests #760
  • Fixed some bugs:
    • Fixed the unsupported unixepoch() function #757
    • Fixed the problem that prevented some signers from signing on the testing-preview network #730
    • Update SQLite version to 3.40 in aggregator infrastructure #765
+ + + + \ No newline at end of file diff --git a/2023-02-23-performance-and-tracing/index.html b/2023-02-23-performance-and-tracing/index.html new file mode 100644 index 0000000000..9f4b3aa67c --- /dev/null +++ b/2023-02-23-performance-and-tracing/index.html @@ -0,0 +1,26 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 3 min read
Michael Karg
  • SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.
  • Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.
  • UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.
  • New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.
  • Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.
  • Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.

Performance

SECP

  1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.
  2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.
  3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking.

UTxO-HD

  1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.
  2. We're currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.

1.35.6 release

Benchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.

Tracing

Work on the new tracing system's introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.

Infrastructure

Nomad backend

  1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.
  2. Locality assumptions were removed and job monitoring was refactored.
  3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.
  4. We're currently evaluating different options for genesis distribution in said cluster.

NixOps backend

The NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery.

+ + + + \ No newline at end of file diff --git a/2023-02-24-hydra/index.html b/2023-02-24-hydra/index.html new file mode 100644 index 0000000000..91416a0bda --- /dev/null +++ b/2023-02-24-hydra/index.html @@ -0,0 +1,39 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Franco Testagrossa

High-level summary

This week, the Hydra team continue closing many gaps and aligning the +implementation with the specification. More over, they have groomed a plan to +make Hydra Mainnet compatible. Also, they continue moving forward with the +internal auditing and have published some auditing guidelines to receive +contributions from the community.

What did the team achieve this week

  • Completed #452 (what is +remaining in there)
  • Aligned the Head protocol logic implementation with the specification
  • Completed full minting policy implementation and spec +#720
  • Clarified message authentication with researchers
  • Groomed what is left to do for Mainnet compatibility +#713 and drafted a +0.10.0 version
  • Added a tutorial by @perturbing to the +website LINK
  • Published auditing guidelines +LINK
  • Made hydra-node work for macos +#746 and added support +for building on aarch64 +#673
  • Met with a potential customer of Hydra for Payments

What are the goals of next week

  • Have the monthly review meeting incl. the report
  • Have smoke tests fixed and running regularly
  • Release 0.9.0 with updated scripts
  • Redraw transaction graphs for specification
+ + + + \ No newline at end of file diff --git a/2023-03-02-network/index.html b/2023-03-02-network/index.html new file mode 100644 index 0000000000..d7a8ab45a6 --- /dev/null +++ b/2023-03-02-network/index.html @@ -0,0 +1,46 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High level summary

In the current sprint the networking team focused on fixing bugs and pushing +forward implementation of eclipse evasion. We also found a bug in our +simulation testing setup (in integration of test node). We also overviewed the +work on extending handshake protocol which is delivered by Galois Inc.

We published ouroboros-network-0.4.0.1 and +ouroboros-network-protocols-0.3.0.0 to CHaP.

We also fixed a bug in cardano-node which results in not being able to +configure inbound connection limits, see PR #4902.

Together with Karl Knutsson (CF) we realised an issue in cardano-cli: it's +validation of DNS names, IP address & ports when registering a stake pool +should be more strict to protect against common mistakes which we identified on +the chain. See issue #4929.

Detailed work log

In PR #4385 we fixed two bugs in peer state actions. First one results in +a busy loop if demotion from hot to warm times outs. This busy loop is +eventually exited when mux exits (we reported this in our previous report). +This fix made it to 1.35.6 release as well.

In addition the PR #4385 also fixes another bug which results in hot -> warm +-> hot demotion / promotion busy loop.

The PR #4385 also fixed a bug in a node only used in simulation which +resulted in not using chain-sync or block-fetch mini-protocols. In the +review process, we realised that the header-body split in the simulated node +requires further work (see PR #4419, which is under review).

The PR #4385 also extend our generators, which together with the above fix, +cover the hot -> warm -> hot demotion / promotion busy loop.

In PR #4419 we introduce a ChainDB for our simulation node, which plays +similar role to ChainDB in the ouroboros-consensus: a persistent (across +simulated restarts) store of blocks which does chain selection. This ensures +that the simulated node is using block-fetch to download blocks announced by +chain-sync mini-protocol.

We also made progress with reviewing PR #4019 - peer sharing.

We also fixed issue #4370 - a connection manager test failure, see PR #4384.

+ + + + \ No newline at end of file diff --git a/2023-03-03-crypto/index.html b/2023-03-03-crypto/index.html new file mode 100644 index 0000000000..13c02eb2b2 --- /dev/null +++ b/2023-03-03-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· 2 min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.
  • cardano-base: BLS branch is now ready for review. We are workign forward its merge.
  • KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.
  • Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs

Low level summary

Mithril

  • Bumped to version 0.2.0 the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using mlock.
  • Opened PR#783 to update dependency
  • Improved testing for batch opening of mtree, PR#773
  • Improved testing for batch verification of STM sigs PR#774
  • RFP for crypto audit almost ready.

cardano-base

  • BLS12-381 branch finally ready for review PR#266

KES agent

Team off for one week. Other progress:

  • Learning about raw direct-bearer abstraction. An interface for sockets in consensus.
  • use that for direct ser/deser
  • written those syntaxes for ouroboros (coming PR)
  • the kes agent will depend on that.

Sidechains

Progress with familiarisation of Halo2 library to write circuits.

+ + + + \ No newline at end of file diff --git a/2023-03-03-goedel/index.html b/2023-03-03-goedel/index.html new file mode 100644 index 0000000000..67c8e8c10a --- /dev/null +++ b/2023-03-03-goedel/index.html @@ -0,0 +1,36 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the team has been working on drafts of two papers and one +technical report, improving the deltaQ tutorial, consulting on +performance design, and the Djed paper has been accepted for +publication.

Details

  • Preparing draft of DeltaQSD algebra paper for FORTE 2023

  • Extending the technical report on which the above paper is based

  • Consulting with an external company on performance engineering of Plutus contracts

  • Planning improvements and collecting material for the deltaQ +tutorial based on experience with systems that manage risk at +multiple timescales

  • Preparing sections on the communication language and idempontency +laws for draft paper about verifying design refinements for +distributed system design

  • Studying Cardano chain sync protocol

  • "Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin +Protocol" has been accepted for publication at IEEE ICBC 2023

+ + + + \ No newline at end of file diff --git a/2023-03-03-hydra/index.html b/2023-03-03-hydra/index.html new file mode 100644 index 0000000000..7ac7be650b --- /dev/null +++ b/2023-03-03-hydra/index.html @@ -0,0 +1,35 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team released version +0.9.0 - a version +of the hydra-node with fully specified behavior of on-chain scripts and +off-chain head-logic, decreased costs for opening/closing a Head and scalable +contestation deadline semantics. Check out the full release notes for details.

Furthermore, they published the monthly +report of the Hydra project +and conducted a review meeting with an increasingly wider audience. The team +plans to extend invitations through the new Hydra +#announcements discord channel for the next +months, stay tuned!

What did the team achieve this week

  • Monthly review meeting with report published on website
  • Fixed smoke tests #726
  • Reduced the cost of opening/closing a Head (error codes #748 + head reference script #701)
  • Released version 0.9.0
  • Conducted a first experiment on mainnet compatibility #713
  • New discord category with #announcements channel
  • Received a demo about the Hydra for Voting project
  • Lightning talk on mutation-based testing (to be shared)
  • New themes view in on our roadmap and some rearranging as we align it with high-level objectives
  • Clarified things with researchers, but mostly identified action items for them

What are the goals of next week

  • Redraw transaction graphs and address TODOs specification
  • Run hydraw with 0.9.0 on preprod
  • Make smoke tests on mainnet possible
  • Groom the explorer item
  • Unblock the auctions projecth with commit from script a solution
+ + + + \ No newline at end of file diff --git a/2023-03-03-ledger/index.html b/2023-03-03-ledger/index.html new file mode 100644 index 0000000000..7df6a13b78 --- /dev/null +++ b/2023-03-03-ledger/index.html @@ -0,0 +1,37 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Jared Corduan

High level summary

We have focused the last two weeks on CIP-1694, integration of the last several months of ledger +work into consensus and node, and testing infrastrutcture that we will use in the conway ledger era.

Low level summary

Conway rules

We made a major update to the conway era so that the implementation is now in sync with the spec +with respect to the ratification and enactment logic.

See the notes in pull-3291 for more details.

Constraint based generators

This week we hit a major milestone in our efforts to build out better property based testing +support for the main ledger properties. +The new constraint based generators can now generate full ledger states with what is probably +very close to the real constraints (if anything, it is under constrained). +Next we will work on generating a transaction in the context of a ledger state, which would allow +us to actually start using these generators for real tests.

See pull-3219.

Preparing a release, now with proper versioning

After quite some time, we are ready to release a version of ledger that will work with a new +version of consensus, using CHaPs.

See pull-3308.

Technical debt

  • We cleaned up the redeemer serialization code (to prevent future mistakes). See pull-3269.
  • We added a note to the Alonzo spec, specifying that the transaction inputs are +lexicographically ordered in the Plutus script context. See pull-3306.
  • We fixed a problem with the address deserialiazation +(we mistakenly fixed a bug in the Babbage era which cannot be fixed until Conway). +See pull-3307.
  • We fixed a problem with our nix build. See pull-3311.
  • We fixed a problem with our NoThunks tests. See pull-3310.
  • We improved our nightly tests. See pull-3316.
+ + + + \ No newline at end of file diff --git a/2023-03-08-consensus/index.html b/2023-03-08-consensus/index.html new file mode 100644 index 0000000000..12d4f76cd8 --- /dev/null +++ b/2023-03-08-consensus/index.html @@ -0,0 +1,55 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 3 min read
Damian Nadales

High level summary

The Consensus team continued working on refactoring and improving the UTxO-HD +prototype, and introducing improvements to the lmdb related packages. In +particular we identified an opportunity to gain performance by handling locks in +a more optimal way.

On the Genesis front, we sketched a mitigation for an issue that PNSol and +Researchers caught. We also came op with a road map for not only testing the +Genesis prototypes, but also for enriching the tests we already have.

Regarding technical debt, next to some minor improvements, we created +component-level micro-benchmarks for adding transactions to the mempool. The +results of these benchmarks will be published in the ouroboros-consensus web +page.

We also finished moving the Consensus documentation to the ouroboros-consensus +repository, released ouroboros-consensus 0.3.0.0, and reduced the time +GitHub actions take in ouroboros-network.

Workstreams

UTxO HD Prototype

We continued working on refactoring and improving the UTxO-HD prototype. As a +result of the first round of sytem-level benchmarks, we identified an +opportunity to optimise the way we handle locks to improve performance +(#4393).

Also, we introduced several improvements to the lmdb related packages:

Genesis

We sketched out a mitigation of the issue that PNSol and Researchers caught in +the Genesis design.

We came up with a road map for testing the Genesis prototypes, including early +milestones that are applicable to today's master branch, ie tests that are +useful before Genesis, and that will be nicely enriched when we do add Genesis.

We developed the aforementioned tests, specifically a QuickCheck generator for +the Honest leader schedule and one as-aggressive-as-possible Adversarial +leader schedule that together satisfy the Praos properties that the Consensus +design takes as invariants.

We investigated why the improved ChainDB queueing implementation behaves +differently in the baseline compared to the prototype, and we are close to +having a full picture of how the Consensus components interact during bulk sync.

Technical debt

We created component-level micro-benchmarks for adding transactions +to the mempool. We plan on extending this to more mempool actions and different +types of blocks. We store the benchmark data to make it available +to the GitHub action that publishes the benchmarks results.

Other minor improvements include:

  • Removal of Test.Util.Classify in favour of Test.StateMachine.Labelling.
  • Addition of -Wunused-packages to the default ghc-options for Consensus +packages.

Fostering collaboration

We finished moving the Consensus documentation from +ouroboros-network to ouroboros-consensus, in preparation for +migrating the code to the latter repository.

Support

We released ouroboros-consensus 0.3.0.0.

We reduced the load in the ouroboros-network GitHub actions, +thereby reducing the time CI jobs take.

+ + + + \ No newline at end of file diff --git a/2023-03-08-node-cli-api/index.html b/2023-03-08-node-cli-api/index.html new file mode 100644 index 0000000000..36fce3a407 --- /dev/null +++ b/2023-03-08-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· One min read
Jordan Millar

2023-03-08 - 2023-03-21

High level summary

General bug fixes and some refactoring

Completed

docs

CI & project maintenance

Developer experience

cardano-cli

cardano-api

cardano-node

cardano-testnet

+ + + + \ No newline at end of file diff --git a/2023-03-08-performance-and-tracing/index.html b/2023-03-08-performance-and-tracing/index.html new file mode 100644 index 0000000000..a2da8fa4f3 --- /dev/null +++ b/2023-03-08-performance-and-tracing/index.html @@ -0,0 +1,31 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 2 min read
Michael Karg
  • Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.
  • New tracing: Backwards compatibility with legacy tracer nomenclature is being implemented to smoothe the transition for end users.
  • Analysis pipeline: A major refinement of benchmarking metrics has been realized, along with a structural improvementents regarding metrics denomination.
  • Open Sourcing: Work on going live with our benchmarking data has begun, as well as creating an API demo and documentation.
  • Nomad backend: The backend was adapted to a major refactoring in workbench and is being equipped with a nomad-exec based task driver.

Performance

1.35.6 release

Benchmarking the second release candidate for 1.35.6 could again attest to a perfectly clean bill of health.

Analysis pipeline

Our analysis pipeline has seen an introduction of additional metrics, especially when focusing on the block producing node. They allow us to better +differentiate the timing of ledger ticking and mempool snapshotting in the forging loop - a feature that promises much deeper insight into UTxO-HD performance. +Additionally, a restructuring of metrics names has been undertaken along with improvements in their data dictionary; a measure that will make benchmarking +data more easily accessible.

Open Sourcing

As a prerequisite for going live with our benchmarking data, we're currently working on consolidation of existing analyses, such as to provide a common foundation when accessing them externally. Additionally, we've begun working on a small visualization demo and interactive API documentation. Those will enable +third parties to make use of that data much more easily, by having reliable guidelines and a working example.

Tracing

The new tracing system is being outfitted with a comprehensive mapping of its structure to the legacy tracer nomenclature. This feature will make +the switch to the new system as smooth as possible for end users, allowing them to gradually adapt their tooling without breaking any functionality in the process.

Infrastructure

Nomad backend

The Nomad backend was adapted to the latest major refactoring in workbench. Work was done on making stateful Nomad clients more autonomous, which will greatly facilitate any automation building on that backend. A task driver based on nomad-exec is currently being implemented.

+ + + + \ No newline at end of file diff --git a/2023-03-09-mithril/index.html b/2023-03-09-mithril/index.html new file mode 100644 index 0000000000..3db09ece0a --- /dev/null +++ b/2023-03-09-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano mainnet and computes the stake distribution with the optimized unreleased Cardano CLI command.

Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.

Low level overview

  • Worked on the epic that implements eras behavior switch #707:
    • Completed the deployment of the era behavior switch to the test networks #752
    • Completed the enhancement of datum generation for era markers #786
    • Worked on handling the API version with an era switch #727
  • Worked on the epic that implements a relational store in the aggregator #779:
    • Worked on the migration/adaptation of the stake_pool table #787
  • Completed the refactoring of errors in the signer and aggregator state machines #665
  • Worked on testing Mithril with a mainnet Cardano network #777
  • Worked on fixing bugs with the Docker client image:
    • Fixed a bug that made the Docker client container crash at startup #769
    • Fixed a bug that prevented the restoration of a snapshot with a Docker client #791
    • Worked on testing the Docker client in the Mithril Client multi-platform test workflow #794
+ + + + \ No newline at end of file diff --git a/2023-03-10-hydra/index.html b/2023-03-10-hydra/index.html new file mode 100644 index 0000000000..f3bf6d028c --- /dev/null +++ b/2023-03-10-hydra/index.html @@ -0,0 +1,30 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team addressed issues with committing complex UTxOs into a +Hydra Head, prepared the hydra-node to be run on mainnet (soon) and improved +the test suite of the hydra-plutus scripts. The specification is constantly +getting improved upon reviewer feedback on overleaf - this week the graphical +notation was refined to be more transaction-focused.

What did the team achieve this week

  • Clarified bug of committing UTxOs with reference scripts to a Hydra head #737
  • Prepare usage of hydra-node on mainnet by updating command line options #715
  • Improved our mutation test suite to all expected errors #705
  • Re-opened our persistent hydraw demo head on preprod using version 0.9.0
  • Updated on-chain graphs to be more transaction-focused in the specification

What are the goals of next week

  • Complete mainnet compatibility feature
  • Prepare the Hydra workshop
  • Address all todo’s in the Hydra specification
  • Unblock the auctions project with commit from script a solution
+ + + + \ No newline at end of file diff --git a/2023-03-16-goedel/index.html b/2023-03-16-goedel/index.html new file mode 100644 index 0000000000..8fd2145731 --- /dev/null +++ b/2023-03-16-goedel/index.html @@ -0,0 +1,33 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the team has been working on drafts of two papers +improving the deltaQ tutorial, consulting on performance design, and +the final version of the Djed paper.

Details

  • Preparing draft of DeltaQSD algebra paper for ICE 2023

  • Successful outcome of Marlowe consultancy leading to substantial +improvement in performance

  • Preparing sections on the communication language and bisimulation +proofs for draft paper about verifying design refinements for +distributed system design

  • Camera ready version of Djed paper under preparation

+ + + + \ No newline at end of file diff --git a/2023-03-17-crypto/index.html b/2023-03-17-crypto/index.html new file mode 100644 index 0000000000..94fad2e3d1 --- /dev/null +++ b/2023-03-17-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· 2 min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • Mithril: RFP finished. Code ready for audit.
  • cardano-base: BLS12-381's PR approved, only blocker is Windows' CI. Preparing extensive testing strategy together with Plutus and Testing teams.
  • KES agent: Working on a desing on how to use IO sim in order to allow for proper network simulation testing.
  • Sidechains: Preparing proving system to use the curves needed for main-net PoC.

Low level summary

Mithril

  • Merged PR#783
  • RFP for crypto audit ready.

cardano-base

  • BLS12-381 branch approved PR#266. Blocker is Windown's CI. Working on it
  • Testing strategy for BLS bindings:
    • Preparing test-vectors for Groth16, and simple BLS signatures
    • Finding community projects to help write their use cases
    • Designing AC, and expected tests for higher levels of development (Plutus team, E2E tests, etc)
  • Wrote blogpost on how using the same key for ed25519 and VRF completely breaks the security of both systems

KES agent

  • Started integration of sockets interface used in consensus
  • Use that for de/ser
  • Resolving problems with block memory in IOSim. Can't use withForeignPtr in IOSim
  • Results in having to parametrise for IOSim in KES and DSIGN for testing

Sidechains

  • Prepared an API for proof generation in sidechains, with it's C API for integration with JVM languages.
  • Design document and start interacting with researchers for concrete instantiation of SNARK-based ATMS.
  • EdDSA over JubJub ready
+ + + + \ No newline at end of file diff --git a/2023-03-17-hydra/index.html b/2023-03-17-hydra/index.html new file mode 100644 index 0000000000..0d780e338d --- /dev/null +++ b/2023-03-17-hydra/index.html @@ -0,0 +1,38 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team has continued work on the mainnet compatibility of the +hydra-node. They added a golden test suite for hydra-plutus scripts, added +some detection of hydra-node misconfiguration, established a limit of 100 ADA +per commit and other smaller tasks to prepare for a mainnet beta release.

Next week there will be a small team workshop to push for demonstrating a Hydra +Head on the Cardano mainnet, ideally just in time for the monthly review +meeting. See the hydra channels on the IOG Technical Community discord server +for details.

What did the team achieve this week

  • Implement a 100 ADA hard-coded commit limit in the hydra-node +#763
  • Pay back funds to faucet after smoke-test run +#773
  • Setup custom github runner for smoke-tests on mainnet +#775
  • Created golden tests to assure the script hash stays the same between +changes #772
  • Removed hardcoded error codes in plutus scripts +#768
  • Detect misconfiguration of a hydra-node given persistent state +#767
  • Met with potential users for hydra-pay
  • Prepared hydra workshop

What are the goals of next week

  • Hydra monthly meeting
  • Open a multi-party head on mainnet
  • Complete mainnet compatibility feature
+ + + + \ No newline at end of file diff --git a/2023-03-17-ledger/index.html b/2023-03-17-ledger/index.html new file mode 100644 index 0000000000..3d8976296a --- /dev/null +++ b/2023-03-17-ledger/index.html @@ -0,0 +1,35 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Jared Corduan

High level summary

We made further progress on the conway ledger era. +In particular, we expanded the ledger API significantly, including lots of governance features. +We also made progress on the specification and corresponding work in the Haskell implementation.

We also continued to integrate the latest ledger packages into cardano node and addressed +technical debt.

Low level summary

Expanded ledger API

The ledger API was significantly expanded to include:

  • a lot of protocol parameter support
  • versioning support (type level ledger eras and protocol versions)
  • auxiliary data support
  • many new lenses
  • support for witnesses
  • support for conway governance

See pull-3328.

Conway ledger rules

We have made progress on the formal ledger specification for the Conway era. +Moreover, the corresponding Haskell updates were also completed:

Incremental SPO/DRep stake distribution computation

We have a working (and correct) proof of concept for how to use the incremental lambda calculus +to maintain several of the stake distributions incrementally. +For the per-SPO distribution, this is a performance improvement. +For the (conway) per-DRep distribution, this is will allow those who have delegated their votes +to a DRep to have time to react to any votes that they disapprove of. +(Sorry, no code to share just yet, more to come.)

Technical debt

+ + + + \ No newline at end of file diff --git a/2023-03-21-network/index.html b/2023-03-21-network/index.html new file mode 100644 index 0000000000..696373d6c6 --- /dev/null +++ b/2023-03-21-network/index.html @@ -0,0 +1,43 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High level summary

In the last spring we released cardano-node-1.35.6 with dynamic P2P +functionality.

We received reports from some SPOs who encountered problems with their non +P2P block producing nodes not being able to connect to their P2P relay. Karl +Knutsson (from Cardano Foundation) reproduced this issue between two nodes (a +non P2P and a P2P one) on mainnet. Karl and the IOG Networking Team analysed +it and found a bug in the legacy non p2p code. The bug is only possible to +trigger with a P2P node which is binding its outbound connection port to +a fixed IP address and port (default in p2p). A possible solution was found. +For more information see #4465.

We released cardano-ping-0.1.0.0 package to CHaP. cardano-ping is no +longer available as a standalone binary, but instead it will become part of +cardano-cli (see #4664)

We are testing cardano-node with peer sharing functionality (#4019).

We are working on eclipse evasion. We added new class of peers: big ledger +peers to the outbound governor, implemented tests and fixed found issues +(#4462). We also made the information if a given peer plays the role of +a big ledger peer to the mini-protocols. This will allow to modify +mini-protocol applications for such peers. As part of this functionality we +refactored some core types in the network code which simplifies exposed API.

Together with Moritz Angerman we started to update io-sim to ghc-9.6.1 (see +#73).

We merged a fix of configuration of accepted connections limit in +cardano-node (see #4902).

+ + + + \ No newline at end of file diff --git a/2023-03-22-consensus/index.html b/2023-03-22-consensus/index.html new file mode 100644 index 0000000000..bf39d76dd4 --- /dev/null +++ b/2023-03-22-consensus/index.html @@ -0,0 +1,32 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

This week the consensus team continued working on the refactoring of the UTxO HD +prototype, and design and testing of Genesis. We also extracted the fs-sim +package, which provides a file-system abstraction layer that can be used for +testing and simulation. This makes the Consensus code base smaller, while +providing a package that the community can reuse and contribute to. We also +fixed a failing property test related to iterators. We are also working on +mempool and VRF improvements.

Low-level details

+ + + + \ No newline at end of file diff --git a/2023-03-22-node-cli-api/index.html b/2023-03-22-node-cli-api/index.html new file mode 100644 index 0000000000..0f8d8f72f5 --- /dev/null +++ b/2023-03-22-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content
+ + + + \ No newline at end of file diff --git a/2023-03-22-performance-and-tracing/index.html b/2023-03-22-performance-and-tracing/index.html new file mode 100644 index 0000000000..18b964a9bc --- /dev/null +++ b/2023-03-22-performance-and-tracing/index.html @@ -0,0 +1,32 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 3 min read
Michael Karg
  • Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.
  • New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we're currently improving documentation and creating setup guidelines for end users.
  • Analysis pipeline: Our refined metrics PR has been merged. We're working on including variance analysis to our reporting machinery.
  • Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we're laying the groundwork for enabling GHC 9.2 in our benchmarks.
  • Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing.
  • Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.

Performance

New tracing

The new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe +a slight shift in the resource usage profile from memory to CPU, but no regressions in block propagation metrics. Variance was observed to be notably smaller, which gives the new system a much better predictability. From this angle, we consider the new system fit for production use.

GHC RTS parametrization

We're currently prerforming various runs on the cluster to explore the space of different GHC RTS settings for running nodes. The main focus lies +on different configurations for the garbage collector, as well as increasing the number of CPU cores the node may use.

Open Sourcing

Our API demo has reached prototype stage, and operates on live data from the production database. Making use of the experience gained, we're refining version 1 of the API to provide optimized usability, and creating documentation that both is descriptive of the API endpoints, and focuses on practical, exemplary use cases.

Tracing

For the new tracing system we're currently undertaking an effort to multi-layered documentation: a condensed version, as well +as a setup guide with pragmatical focus, will be provided alongside the in-depth documentation. This effort should cater to different audiences, and provide distinct entry points +for users of the new system, depending on their wants and needs.

Infrastructure & Analysis

General

Having included Conway genesis in the workbench, as a next step in future-proofing out benchmarking infrastructure, we're laying the foundation for a switch in compiler version to GHC 9.2. Additionally, we considered variance analysis of our runs to merit inclusion into our reporting pipeling - which will +increase confidence in specific metrics.

Nomad backend

We have implemented an appropriate mechanism for genesis distribution: Only after a benchmarking cluster has been deployed successfully, genesis +is patched and uploaded to an AWS S3 bucket for the nodes to retrieve - as a final step before initiating the actual run. We're confident that this deferred approach will provide clearer evidence for genesis patches, as well as minimize startup time for all runs by factoring in deployment re-tries.

+ + + + \ No newline at end of file diff --git a/2023-03-23-db-sync/index.html b/2023-03-23-db-sync/index.html new file mode 100644 index 0000000000..616c1c0456 --- /dev/null +++ b/2023-03-23-db-sync/index.html @@ -0,0 +1,35 @@ + + + + + +DB-sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB-sync Team Update

· One min read
Kostas Dermentzis

High level summary

The DBSync team worked in performance enhancements issues, on providing new db-sync options and on +technical debt and bug fixing. The DBSync team also on boarded a new member.

Low level summary

  • Worked on an issue which causes ada_pots tables to include the values related not only to an +epoch, but also the first epoch of the last epoch. +#1367
  • Fixed an issue where the epoch table didn't rollback and caused wrong values +#1370
  • Fixed an issue were users with disable-ledger option had to provide the state dir option, even +though it was never used. Also refactored the no ledger part of the codebase. +#1378
  • Improved the perforance by using the cache more. Also provided many new options which enables or +disables parts of db-sync. In addition a new --turbo mode is enables which allows db-sync to sync +mainnet in hours. +#1379
+ + + + \ No newline at end of file diff --git a/2023-03-23-mithril/index.html b/2023-03-23-mithril/index.html new file mode 100644 index 0000000000..2689d0ac28 --- /dev/null +++ b/2023-03-23-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team released a new 2310.0 distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images.

Finally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano mainnet and they have fixed some bugs.

Low level overview

  • Completed the epic that implements eras behavior switch #707:
    • Completed handling the API version switch at era transition #727
  • Worked on the epic that implements a relational store in the aggregator #779:
    • Completed on the migration/adaptation of the stake_pool table #787
    • Worked on the migration/adaptation of the epoch_settings table #813
    • Worked on the migration/adaptation of the signed-entity-type table #815
    • Completed the creation of a stake distribution service #799
  • Completed the testing of Mithril with Cardano mainnet network #777
  • Completed qualifying the computation of the stake distribution #810
  • Completed the testing of the Docker client in the Mithril Client multi-platform test workflow #794
  • Worked on bugs and optimizations:
    • Fixed a bug that made computation of the stake distribution occur multiple times during an epoch #804
    • Fixed a bug that created deadlocks on the SQLite connection #807
    • Optimized the error message and the behavior of the signer node when KES keys have expired #820
    • Upgraded the infrastructure of the testing-preview and pre-release-preview networks #801
    • Re-genesis of the testing-preview network #803
    • Re-genesis of the pre-release-preview network #818
+ + + + \ No newline at end of file diff --git a/2023-03-24-hydra/index.html b/2023-03-24-hydra/index.html new file mode 100644 index 0000000000..dc15803710 --- /dev/null +++ b/2023-03-24-hydra/index.html @@ -0,0 +1,31 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra had a team workshop and conducted the monthly review +meeting for March. They demonstrated a Hydra Head on mainnet, which was running +the hydraw demo application. While this marks an important milestone, they also +emphasized that more features are still to be added as needed for applications +to run on Hydra. Besides this, the roadmap is getting cleaned up to encourage +discussions and provide more space for user requests.

What did the team achieve this week

  • Monthly review meeting slides/recording, full report of March next week
    • Opened a head on mainnet with hydraw demonstration
    • Hydra pay updates
  • Team workshop in Austria
    • Hydra presentation at the Cardano Foundation in Zurich
    • In-person grooming session, marked many items as candidates to be rather :idea: dicussions
    • Improved head protocol #786 and investigated a potential bug in rollback handling #784
    • Team building and retrospective

What are the goals of next week

  • Follow-up on backlog and roadmap clean-up
  • Complete mainnet compatibility feature (documentation updates)
  • Make API more configurable #380
  • Integrate Hydra specification into repository #693
+ + + + \ No newline at end of file diff --git a/2023-03-27-system-test/index.html b/2023-03-27-system-test/index.html new file mode 100644 index 0000000000..975b6a4844 --- /dev/null +++ b/2023-03-27-system-test/index.html @@ -0,0 +1,26 @@ + + + + + +System Test Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

System Test Team Update

· One min read
Martin Kourim

High level summary

Since the last update (2023-1-13) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.5 and 1.35.6 releases (and their predecessing release candidates) and ran tests on branch with the UTxO-HD functionality.

Workstreams

Framework improvements:

  • improvements in searching for unexpected error messages in log files during test run
  • added support for UTxO-HD testing
  • added support for the new P2P topology format
  • added local cluster variant that has the same properties as mainnet (epoch length, fees, etc.)
  • added preliminary support for the Conway era
  • added support for running tests on the Preview testnet

Full list of closed PRs

Node:

  • ran tests on node branch with the UTxO-HD functionality
  • tested the 1.35.5 release
  • tested the 1.35.6 release

DB-Sync:

  • improvements in db-sync sync tests
  • improvements in db-sync functional tests
+ + + + \ No newline at end of file diff --git a/2023-03-31-crypto/index.html b/2023-03-31-crypto/index.html new file mode 100644 index 0000000000..9902ef3871 --- /dev/null +++ b/2023-03-31-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· 2 min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • Mithril: Started looking into full-node verifier
  • cardano-base: BLS12-381's PR merged. Creating test-vectors for verifying basic pairing properties.
  • KES agent: Blockers overcome. Reaching a first MVP level of the KES-agent.
  • Sidechains: Included BLS12-381 & JubJub to halo2curves
  • MuSig2: Final modifs to C version.

Low level summary

Mithril

  • Started designing how a full-node verifier would work. Issue comming in the next couple of weeks.

cardano-base

  • BLS12-381 branch merged PR#266.
  • Testing strategy for BLS bindings:
    • Test-vectors for Groth16, and simple BLS signatures ready.
    • Test-vectors with different library, and created by different engineer.

KES agent

  • Resolved issues of circular dependency
  • Got rid of separate DSIGN and DSIGNM, we now have DSIGN over mlocked keys, but the phantom type is the same.
  • Opened a PR for raw bearer branch in ouroboros network PR4395
  • Resolved a bug where the agent node did not properly closed connections
  • Updated version of IOSim allowed us to finish a first version of KES agent.

Sidechains

  • Included BLS12-381 curve to our branch of halo2curves
  • Included JubJub to our branch of halo2curves

MuSig2

  • Minor reorg PR#42
  • Started including fuzz testing for deserialisation PR#
+ + + + \ No newline at end of file diff --git a/2023-03-31-goedel/index.html b/2023-03-31-goedel/index.html new file mode 100644 index 0000000000..c9a4491f54 --- /dev/null +++ b/2023-03-31-goedel/index.html @@ -0,0 +1,31 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the team has been working on final drafts of two papers +for internal review and planning next steps of analysis of consensus +design refiniments.

Details

  • Preparing final draft of DeltaQSD algebra paper for internal review

  • Preparing final draft of verifying design refinements for +distributed system design for internal review

  • Planning next phase of consensus design refinement analysis

+ + + + \ No newline at end of file diff --git a/2023-03-31-hydra/index.html b/2023-03-31-hydra/index.html new file mode 100644 index 0000000000..01e963f02f --- /dev/null +++ b/2023-03-31-hydra/index.html @@ -0,0 +1,31 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra continued work on finishing mainnet compatibility. The +semi-automated smoke tests and some missing documentation is still preventing +from calling that fully done. They fixed smaller issues and made a step in the +Head protocol more robust. Besides development, they met with interested people +from the community who want to get started collaborating on communication and +marketing materials.

What did the team achieve this week

  • Groomed and followed-up on GetUTxO user request discussion #797
  • Fixed hydra-node crashes after forks #560
  • Made collectCom more robust and aligned with spec #786
  • Completed configurable API feature #380
  • Met potential contributors about Hydra communication and marketing materials
  • Versioned documentation: we have a unstable bleeding edge version available as well now, seperate from the last released version

What are the goals of next week

  • Follow-up backlog and roadmap clean-up
  • Complete mainnet compatibility feature #713 (documentation updates)
  • Integrate Hydra specification into repository #693
+ + + + \ No newline at end of file diff --git a/2023-03-31-ledger/index.html b/2023-03-31-ledger/index.html new file mode 100644 index 0000000000..a51fd1cc7a --- /dev/null +++ b/2023-03-31-ledger/index.html @@ -0,0 +1,39 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Jared Corduan

High level summary

We are still heavily involved in work related to preparing the next release. +The other main thing we have worked on is experimentation about how we will +handle the DRep stake distribution for CIP-1694 in the conway ledger era. +Lastly, we merged a fix for +node-4826 +into our main branch (there will be a post-mortem shortly).

Low level summary

Support for the next release

  • pull-3363 - Fix problems relating to Arbitrary instances used by consensus.
  • pull-3361 - Remove the alonze genesis from the conway genesis.
  • pull-3360 - Translate bad pointer addresses to valid ones in conway.
  • pull-3357 - Fix a bug relating to zero valued ADA in the script context.
  • pull-3356 - Added needed instances (Arbitrary and Serialization) for conway integration.
  • pull-3345 - Added helper functions for the CLI.
  • pull-3342 - Fix a bug with a CLI helper function (having to do with deposit tracking).

Experiments for DRep stake distribution

Adding another stake distribution to the ledger state presents some new challenges. +We would like to be able to use the current stake distribution at the epoch boundary +for DRep voting so that people can always vote themselves in time for any proposal. +To this end, we have a prototype of an incremental computation based on the incremental +lambda calculus, together with tests and benchmarks (which are very promising). +See pull-3344.

Additionally, more of the ledger state is going to need to be rearranged to accomodate +the new incremental computations. +We have two draft PRs up for possibles solution. +See pull-3353 and pull-3364.

Technical debt and bug fixes

Documentation changes

  • pull-3354 - Rename "optional datums" with "supplemental datums" in the alonzo spec.
  • pull-3352 - Add a section to the Shelly errata about the individual deposit tracking.
  • pull-3351 - Further clarify the details regarding the script integrity hash.
  • pull-3350 - Some cleanup of the Babbage spec.
+ + + + \ No newline at end of file diff --git a/2023-04-05-consensus/index.html b/2023-04-05-consensus/index.html new file mode 100644 index 0000000000..7240381187 --- /dev/null +++ b/2023-04-05-consensus/index.html @@ -0,0 +1,35 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

This week the consensus team finished the UTxO-HD prototype refactoring. We are +now working on improving the DB lock mechanism to improve performance. We also +introduced several improvements to the file system abstraction and simulation +layer (fs-sim), which culminated in the release of fs-sim-0.1.0.0 and +fs-api-0.1.0.0 to CHaP.

On the Genesis front we distributed the updated Genesis design document, +soliciting feedback from Networking Team and IOG Researchers. We also opened up +a PR for the adversarial leader schedule QuickCheck generator, which is being +reviewed.

On the support front, we got a new Consensus version that can use different +fundamental VRF crypto primitives for Babbage and Conway eras.

On the tech debt front we fixed an bug in the followers logic, which was +discovered by our QuickCheck property tests.

+ + + + \ No newline at end of file diff --git a/2023-04-05-node-cli-api/index.html b/2023-04-05-node-cli-api/index.html new file mode 100644 index 0000000000..d804e07ef8 --- /dev/null +++ b/2023-04-05-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Jordan Millar

2023-04-05 - 2023-04-19

High level summary

  • Introduce new governance commands create, answer and verify. This allows us to have onchain polls.
  • Begin making changes in cardano-api to accomodate for CIP-1694
  • Rename TestEnableDevelopmentHardForkEras to ExperimentalHardForksEnabled and TestEnableDevelopmentNetworkProtocols to ExperimentalProtocolsEnabled
  • Various bug fixes and improvements

docs

CI & project maintenance

Developer experience

cardano-cli

cardano-api

cardano-node

cardano-testnet

+ + + + \ No newline at end of file diff --git a/2023-04-05-performance-and-tracing/index.html b/2023-04-05-performance-and-tracing/index.html new file mode 100644 index 0000000000..6501bd4846 --- /dev/null +++ b/2023-04-05-performance-and-tracing/index.html @@ -0,0 +1,34 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 3 min read
Michael Karg
  • Benchmarking: We worked on adjusting our infrastructure to the new 8.0 release branch and performed a (very) early run.
  • New tracing: We're profiling the new tracing system for minimizing its resource footprint and guarantee high throughput.
  • Analysis pipeline: Variance analysis both for reporting and for serving as a point of comparison has been merged.
  • Infrastructure: A library for Plutus scripts will be integrated in our tooling and benchmarking profiles. Also, a profile family aimed at the tracing systems has been added.
  • Nomad backend: Various specializations of the backend are currently being implemented, along with streamlining credentials management.

Benchmarking

We have adapted our benchmarking cluster to the requirements of the 8.0 release branch. Testing runs of a very early feature branch for 8.0 +helped us localize an important issue in collaboration with the other teams. We look forward to gathering preliminary metrics for 8.0 soon.

Tracing

Analysis of resource usage profiles of both the legacy and new tracing system, with and without trace forwarding, have lead us to gather very +detailed profiling data for each possible setup. This is to ensure we keep resource usage within the node to an absolute minimum, while still providing +the highest possible throughput of data for forwarding to cardano-tracer.

Additionally, we've worked on a very practically-oriented document targeted at end users of the new tracing system. It provides tested step-by-step instructions +for tunneling trace forwarding from a node to cardano-tracer via an easy to manage system service, which will match the production setup of most users.

Infrastructure & Analysis

General

Variance analysis as a full-fledged entity in our tooling has been merged. Not only is this type of analysis now part of our reporting pipeline - variance +analysis can be fed back and serve as an additional point of comparison.

Furthermore, we've created a profile family for the workbench that's specifically aimed at measuring and comparing tracing system configurations.

Plutus library

We opened a PR containing a new package for benchmarking - an extendable library that holds all Plutus scripts we use in our benchmarking profiles. +This will enable us in the future to iteratively work on customizing any given script, and the way is called in the context of a specific profile. +It is a refinement of current affairs, where we have additional build inputs solely to generate a static script file tied to an external commit.

Nomad backend

The nomad backend is being specialized in three ways: using a podman driver locally, using nomad agents supporting nix installables, and using nomad cloud agents. This supports having a common surface independent of the actual backend driver being used. In addition, vault retrieval and management of cloud access credentials is +being improved to minimize any friction for the backend user.

+ + + + \ No newline at end of file diff --git a/2023-04-06-mithril/index.html b/2023-04-06-mithril/index.html new file mode 100644 index 0000000000..0fa5b19873 --- /dev/null +++ b/2023-04-06-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team released a new 2313.0 distribution that implements minor improvements and bug fixes. They continued implementing the migration of the aggregator stores to a relational design. They finished adaptating and migrating the certificate, epoch settings, signed entity type, signer registration and open message stores. Additionally, they completed the refactoring of the dependency injector of the aggregator and simplified its multi-signer in order for it to sign multiple concurrent messages.

Finally, the team has worked on designing the new architecture of the network to support signing multiple types of data and upgraded the version of the Cardano node used in the Mithril testnets and devnet to 1.35.6.

Low level overview

  • Released the new distribution 2313.0
  • Worked on the epic that implements a relational store in the aggregator #779:
    • Completed the migration/adaptation of the epoch_settings table #813
    • Completed the migration/adaptation of the signed-entity-type table #815
    • Completed the migration/adaptation of the certificate table #817
    • Completed the migration/adaptation of the open_message table #827
    • Completed the migration/adaptation of the signer_registration table #828
  • Completed the refactoring of the dependency injection of the aggregator #823
  • Completed the cleanup of the multi-signer of the aggregator #824
  • Completed the upgrade of the Cardano node to 1.35.6 #843
+ + + + \ No newline at end of file diff --git a/2023-04-07-hydra/index.html b/2023-04-07-hydra/index.html new file mode 100644 index 0000000000..53e41c4c02 --- /dev/null +++ b/2023-04-07-hydra/index.html @@ -0,0 +1,33 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team published the monthly report for March, created +separate links for different versions of documentation, and clarified potential +solutions for the Rollbacks bug. The team also discussed Query API requests for +the Hydra Voting project and met with community members to answer questions +about Hydra. Moving forward, the team plans to integrate the specification into +the repository, implement a short-term fix for the Rollbacks issue, and draft a +Query API ADR.

What did the team achieve this week

  • Published monthly reports on website
  • Separate last released and latest versions of docs (e.g. normal released vs. /unstable)
  • Discussed Query API concerns from Hydra Voting project (link)
  • Clarified rollbacks bug and defined possible solutions (short and long term) #784
  • Met with community members to answer questions about Hydra

What are the goals of next week

  • Finally get the docs integrated into the repository #693
  • Dirt road fix for rollbacks #784
  • Disclaimer text and detail known issues about mainnet compatibility +#713
+ + + + \ No newline at end of file diff --git a/2023-04-14-goedel/index.html b/2023-04-14-goedel/index.html new file mode 100644 index 0000000000..317e7280a5 --- /dev/null +++ b/2023-04-14-goedel/index.html @@ -0,0 +1,29 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the team has submitted two papers for publication, carried +out consultancy with other teams and has an opening for an intern.

Details

+ + + + \ No newline at end of file diff --git a/2023-04-14-hydra/index.html b/2023-04-14-hydra/index.html new file mode 100644 index 0000000000..d230b0ffc1 --- /dev/null +++ b/2023-04-14-hydra/index.html @@ -0,0 +1,32 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team focused on improving the smoke test, fixing developer +tooling, and improving the API for voting use cases. They reviewed progress on +auction, payments, and voting projects and made worked on reproducing a bug with +handling rollbacks. Moving forward, the team plans to update dependencies, +implement a dirt road fix for the rollbacks bug, and explore adding Hydra +support to kupo.

What did the team achieve this week

  • Reviewed progress on auction, payments and voting projects
  • Improved smoke tests so they can run on mainnet
  • Fixed a regression in the development environment and updated cardano-node +used in tests
  • Improved API with more configurability to unblock voting use case
    • Exclude utxo in SnapshotConfirmed outputs #808
    • Addressed a user request by only sending Greetings once #813
  • Reproduced the rollback bug by improving our model-based test suite #784

What are the goals of next week

  • Update dependencies to match cardano-node master
  • Dirt road fix for rollbacks #784
  • Update Hydraw to maintain state locally
  • Explore adding Hydra support to kupo
  • Put disclaimer texts and closing mainnet compatibility feature #713
+ + + + \ No newline at end of file diff --git a/2023-04-17-ledger/index.html b/2023-04-17-ledger/index.html new file mode 100644 index 0000000000..38e098ae56 --- /dev/null +++ b/2023-04-17-ledger/index.html @@ -0,0 +1,29 @@ + + + + + +Cardano Block Production Temporary Outage | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Cardano Block Production Temporary Outage

· 2 min read
Kevin Hammond

Cardano block production temporary outage

On Sunday, January 22, 2023, an incident occurred resulting in block production pausing for a brief period of time (approximately two minutes, similar to the usual pause at an epoch boundary). Around 50% of block-producing nodes and relays restarted during this period. Having restarted, nodes continued to produce blocks without failure. While the network continued to operate, the issue did have the potential to affect network integrity, so was flagged as a ‘critical’ incident, thus warranting immediate response and investigation by IOG engineers. +The investigation (with SPO & Cardano Foundation collaboration) quickly revealed the cause of the issue – a complex bug in data structure handling code related to the precise order of insertion/deletion of multi-asset tokens into the internal ledger record. Input Output Global (IOG) engineers, along with SPOs and DApp developers, collectively identified how to reproduce the issue as a unit test that could be included in the standard Cardano node test suite. +Following successful testing, this led to a bug fix being implemented, tested, benchmarked, and deployed as a hotfix in the node v.1.35.5 release on Friday, January 27, 2023. Care was taken not to highlight the exact cause of the bug during this process so that it could not be exploited prior to SPOs deploying this new node version. +With the fix deployed, the Cardano SPO and developer community have not seen any further instances of this issue.

Further Details

You can read more details on the incident and how it was managed from SundaeSwap’s Pi Lanningham here. Thanks again to all the community for its support in identifying and fixing this bug.

+ + + + \ No newline at end of file diff --git a/2023-04-19-consensus/index.html b/2023-04-19-consensus/index.html new file mode 100644 index 0000000000..46abdabb36 --- /dev/null +++ b/2023-04-19-consensus/index.html @@ -0,0 +1,37 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

This week the consensus team continued working on the improved DB lock mechanism +for UTxO-HD, and modifications to the mempool benchmarks that this prototype +requires.

On the Genesis front we validated that the fragment size calculation in +BlockFetch is a major performance sink for ChainSync Jumping. By removing it +we will get performance that is acceptably close to that of the baseline. We +also started investigating a performance fix that does not alter the existing +baseline behavior too much. In addition we reviewed our Genesis attack vector +calculations.

On the support front we released Consensus 0.4, and we are working on improving +our release process, to support the Cardano-wide efforts in this area. We also +performed an analysis on the number of file descriptors that consensus use. This +information can be used by the node operators to check if the number of file +descriptors they want to support are enough.

+ + + + \ No newline at end of file diff --git a/2023-04-19-performance-and-tracing/index.html b/2023-04-19-performance-and-tracing/index.html new file mode 100644 index 0000000000..ea1f4755e2 --- /dev/null +++ b/2023-04-19-performance-and-tracing/index.html @@ -0,0 +1,39 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 3 min read
Michael Karg
  • Benchmarking: We performed a series of benchmarks aimed at the new 8.0 release branch and built a timeline from the 1.35 releases to that branch.
  • New tracing: Work on safeguarding the new tracing system performance-wise is ongoing. A practical use case for data points is being tackled with Galois.
  • Analysis pipeline: We're working on automatically obtaining a detailed manifest for each run.
  • Infrastructure: The library for benchmarking Plutus scripts has been merged. Also, we've laid the ground for including GHC profiling data into our workbench.
  • Nomad backend: The first iteration of a distributed / multi-client Nomad cluster has been merged.

Benchmarking

We have performed various cluster runs targeting the 8.0 release branch. That way we were able to catch an inconsistency in behaviour early on. This led to the creation of a specialized workbench profile epoch-transition for local reproduction of what we observed on the benchmarking cluster.

Furthermore, we bridged the gap between the run data from the 1.35.x releases to the the new 8.0.x release branch. This included walking the +master branch backwards and pinpointing the order, as well as the dates and commits of all relevant component bumps. This timeline is absolutely crucial +in locating possible regressions for the new release branch, as it provides the exact points in history we would need to target with a comprehensive set of +benchmarks.

Tracing

In-depth performance analysis of the new tracing system has already yielded results and helped us smoothing some rough edges. However, this work is still +ongoing.

In coordination with Galois, who are developing a system assurance service by observing a number of cardano-nodes, we're working with the implementation +of data points which the node provides during runtime. While making the view on data points expressive enough for the external service, the computational +burden inside the node needs to be kept to an absolute minimum. We're currently in ideation about whether cardano-tracer could be extended with a richer +feature set to that end.

Infrastructure & Analysis

Detailed manifest

A run manifest documents, among other things, the component dependencies that were used for a specific build the run has been performed with. +These dependencies come from different package sources, have different versioning policies, and an identical package version might provide different +performance characteristics depending on the exact commit used for the build. This manifest will greatly increase insight into where changes in measured behaviour might have originated +by making all component bumps visible and accessible.

GHC profiling inside workbench

The workbench has been equipped with a new -profnix profile flavour. This enforces a -fprof-auto build for all node-related packages. The type of +profiling data generated by the GHC runtime can be customized and will enter statistical analysis. The relevant PR for this new feature has already +been merged to master.

Nomad backend

The added feature for a multi-client Nomad cluster greatly enhances how jobs are organized by the backend and mapped within specific instances. +This results in great maintainability while not giving up on flexibility. However, work on that feature is still ongoing.

+ + + + \ No newline at end of file diff --git a/2023-04-20-mithril/index.html b/2023-04-20-mithril/index.html new file mode 100644 index 0000000000..64109b2cf6 --- /dev/null +++ b/2023-04-20-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team released a new 2315.0 distribution that implements the first part of the migration of the aggregator stores along with minor improvements and bug fixes. They finished the migration of the aggregator stores to a relational design by completing the adaptation and migration of the signed entity, signer and single signature stores. They also created a new tick service that provides beacons to other services of the aggregator. Additionally, they started implementing the new new certifier service of the aggregator that is in charge of producing certificates for multi-signatures.

Finally, they completed the design and definition of the interfaces that must be implemented to provide certification for a new type of data in a Mithril network.

Low level overview

  • Released the new distribution 2315.0
  • Completed the epic that implements a relational store in the aggregator #779:
    • Completed the migration/adaptation of the signed_entity table #816
    • Completed the creation of the signer table #814
    • Completed the migration/adaptation of the single_signature table #829
  • Worked on the epic that designs and implement generic signing/verification of entity services #780:
    • Completed the definition of the interface of the generic entity service for signing #847
    • Worked on the implementation of the Certifier service in the aggregator #850
    • Completed the extension of the SignedEntityType type #848
    • Completed the implementation of the Tick service in the aggregator #849
    • Worked on implementing the signable builder for the Mithril Stake Distribution #851
+ + + + \ No newline at end of file diff --git a/2023-04-20-node-cli-api/index.html b/2023-04-20-node-cli-api/index.html new file mode 100644 index 0000000000..ff9d1924f8 --- /dev/null +++ b/2023-04-20-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content
+ + + + \ No newline at end of file diff --git a/2023-04-21-hydra/index.html b/2023-04-21-hydra/index.html new file mode 100644 index 0000000000..3d65096f31 --- /dev/null +++ b/2023-04-21-hydra/index.html @@ -0,0 +1,32 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team worked on several fronts, including fixing state +machine continuity on-chain, discussing voting project solutions, exploring +adding Hydra support to kupo, and improving API navigation with a sidebar. The +team also updated dependencies and fixed issues in their test suites. Moving +forward, the team plans to hold the next monthly review meeting, address a user +issue, prepare for the 0.10.0 release, and work on a dirt road fix for the +rollbacks issue with proper test coverage.

What did the team achieve this week

  • Fixed scripts to enforce state machine continuity on-chain #777.
  • Took part in a twitter space on Scaling Cardano.
  • Joined a CBIA meeting to discuss Cardano network protocols & how to specify them.
  • Discussed potential solutions of ensuring vote uniqueness in the voting project.
  • Updated dependencies to match cardano-node master to prepare for upcoming releases and hard-forks
  • Explored adding Hydra support to kupo, a lightweight Cardano chain indexer - some more work required.
  • Improved navigation of the API Reference with a sidebar, see unstable API version.
  • Fixed two things in our test suites (random port conflicts and an arithmetic underflow in smoke test)

What are the goals of next week

  • Monthly review meeting (join via Discord or AddEvent) & report
  • Dirt road fix for rollbacks #784 properly covered by a test.
  • Groom and ideally address user issue #823.
  • Put the spec into the repo #693 and prepare release 0.10.0.
+ + + + \ No newline at end of file diff --git a/2023-04-21-ledger/index.html b/2023-04-21-ledger/index.html new file mode 100644 index 0000000000..61d27e3751 --- /dev/null +++ b/2023-04-21-ledger/index.html @@ -0,0 +1,29 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· One min read
Jared Corduan

High level summary

We continued to make progress on CIP-1694 and the conway ledger era. +In particular, the conway era now supports Plutus V3. +Finally, we made small improvements to the ledger API and now host +our Haskell code documentation (haddocks) on github pages.

Low level summary

Conway ledger era

Haddocks hosted on github pages

Small improvements to the API

Technical Debt

  • [pull-3367] Fix cost model json instances.
  • [pull-3371] UMap cleanup.
  • [pull-3373] Upgrade to ghc 9.2.7 and cabal 3.10.1.
  • [pull-3375] Sadly, we had to revert the TICKF optimizations. There was a regression we do not yet understand.
  • [pull-3377] Fix cabal warnings.
  • [pull-3383] Fix multi-asset test.
+ + + + \ No newline at end of file diff --git a/2023-04-27-hydra/index.html b/2023-04-27-hydra/index.html new file mode 100644 index 0000000000..392e25a863 --- /dev/null +++ b/2023-04-27-hydra/index.html @@ -0,0 +1,36 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team held their Monthly review meeting and drafted the +report which likely is published next week. They put the spec into the +repository and website, addressed a user issue and fixed the TUI peer list. +Furthermore, they updated dependencies, conducted a Twitter space on Auctions +use cases, covered the rollback bug with tests and implemented a solution. +Looking ahead, their goals for next week include releasing 0.10.0, implementing +timed transactions support, writing a Query API ADR, and grooming work items +like off-chain benchmarks.

What did the team achieve this week

  • Held the Monthly review meeting and drafted the report (to be published next week)
  • Added the spec into the repository +#693 and published on +the +website
  • Groom and addressed user issue #823
  • Covered the rollback bug with tests and implemented a solution (to be reviewed) #784
  • Fixed the TUI peer list
  • Updated dependencies to match cardano-node master
  • Conducted a twitter space on Auctions use cases

What are the goals of next week

  • Release 0.10.0
  • Support timed transactions solution drafted and validated API with users
  • Write Query API ADR and groom a concrete step
  • Groom and solve PostTxOnChainFailed UX problem #832
  • Groom off-chain benchmarks idea #186 and turn it into a feature
+ + + + \ No newline at end of file diff --git a/2023-04-28-crypto/index.html b/2023-04-28-crypto/index.html new file mode 100644 index 0000000000..a30735fc6a --- /dev/null +++ b/2023-04-28-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· 2 min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • cardano-base: New KES structure finally merged. Included additional tests to BLS, and including test vectors created with zkcrypto's library.
  • KES agent: Reaching state of MVP. Rewriting KES agent networking code to use the Snockets abstraction.
  • Sidechains: Started implementing ECC chip of JubJub over BLS12-381.

Low level summary

cardano-base

  • #255 finally merged 🎉
  • Additional tests for BLS bindings #384
  • Open PR for including test vectors created with zkscrypto's library, PR#397

KES agent

  • Introducing the SignKeyWithPeriodKES wrapper type, which bundles a KES key with its corresponding KES period PR#389.
  • Introducing the DirectSerialise API into cardano-base, which allows us to write mlocked memory directly to a file descriptor, without going through intermediate encodings stored on the GHC heap (which is a no-no due to secure forgetting requirements) #317.
  • Figuring out how to generalize the KES, DSIGN, and mlocking code in cardano-base such that it can run in IOSim
  • Rewriting KES agent networking code to use the Snockets abstraction, which gives us a platform-independent sockets layer (i.e., it will also work on Windows), and also allows us to run networked code in IOSim for testing purposes
  • Refactor MonadSodium into MonadMLock PR#388.

Sidechains

  • Started working on ECC chip for JubJub over BLS (problems still with the multiplication constraint)
  • Use macros used by PSE library to try and merge our fork of halo2curves into PSE's repo
+ + + + \ No newline at end of file diff --git a/2023-04-28-goedel/index.html b/2023-04-28-goedel/index.html new file mode 100644 index 0000000000..4fa3b12297 --- /dev/null +++ b/2023-04-28-goedel/index.html @@ -0,0 +1,29 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is working on porting an existing formalisation of Ouroboros +Praos to a newer foundation.

Details

+ + + + \ No newline at end of file diff --git a/2023-04-28-network/index.html b/2023-04-28-network/index.html new file mode 100644 index 0000000000..c86d7e2354 --- /dev/null +++ b/2023-04-28-network/index.html @@ -0,0 +1,33 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High level summary

The networking team has released the following packages to Hackage:

We published an announcement blog post. We made progress +also on another blog post which will describes the design of the P2P networking +layer.

After moving ouroboros-consensus to its own repository, we made +ouroboros-network compatible with GHC 9.4 and 9.6.

We made cardano-client library independent of +ouroboros-consensus-diffusion.

We prepared release of network packages for cardano-node-8.0.

Detailed log

Ouroboros-Network

IO-Sim

  • io-classes-1.0.0.0, and following up releases: 1.0.0.1 (ghc-9.6 +support), 1.1.0.0 (documentation fix).
  • Fixed timeouts and delays in io-sim in a series of PRs: io-sim#81, +io-sim#82, io-sim#86, io-sim#87.
  • Renamed a module: io-sim#88.
  • Fixed a failing registerDelayCancellable test: [io-sim#80].
  • Use GitHub merge queue in io-sim repository.
  • CI: download stylish-haskell: io-sim#83.

Typed Protocols

+ + + + \ No newline at end of file diff --git a/2023-05-01-db-sync/index.html b/2023-05-01-db-sync/index.html new file mode 100644 index 0000000000..51b89ad647 --- /dev/null +++ b/2023-05-01-db-sync/index.html @@ -0,0 +1,31 @@ + + + + + +DB-sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB-sync Team Update

· One min read
Kostas Dermentzis

High level summary

Lower level summary

  • Prepared a schema change which is expected to speed up queries and help clients +#1389.
  • Ran a big number of benchmarks on the above to evaluate if this change is reasonable.
  • Performance optimization related to rewards +#1382
  • Using the cache in more places to reduce recourses usage +#1380
  • Evaluated risks related to UTXO-HD integration
  • Worked on a feauture request to split the tx_out to an address table +#1396
  • Worked on another feauture request to prune the consumed entries from the tx_out table +#1398
  • Prepared for CIP-1694 integration
+ + + + \ No newline at end of file diff --git a/2023-05-03-consensus/index.html b/2023-05-03-consensus/index.html new file mode 100644 index 0000000000..ce1120d4cf --- /dev/null +++ b/2023-05-03-consensus/index.html @@ -0,0 +1,52 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales

High level summary

During the past two weeks we made some important progress in the Genesis design. +It seems the BlockFetch logic need not be modified for Genesis, although this +needs to be confirmed. We started a DoS mitigation handbook and updated our +conceptual component diagram to guide the Genesis design. We engaged with the +IOG researchers to work on the Limit on Patience attack vector, work in this +area is still ongoing. We sketched a design to decouple the CPU load of the node +from its responsiveness to the socket. Finally, we discussed with Networking our +approach to lower the performance impact of the BlockFetch decision logic, and +got green light from them.

We migrated the consensus code to a new +repository, splitting +it from the ouroboros-network repository, and released version 0.6 of +Consensus.

We also merged the mempool fairness improvement to main branch.

Another significant enhancement to our documentation was the addition of an +explanation of the hardfork combinator forecast horizon.

See the sections below for more details.

Genesis

We reviewed the BlockFetch design documentation, and added some source-code +comments that emphasize certain properties of the decisions the BlockFetch +logic makes that are helping us confirm that Genesis does not require any +changes to BlockFetch. We are waiting on input from our former system +architect to verify this.

We migrated and updated the conceptual component diagram in the ouroboros-consensus +repository which helps us situate the Genesis design and argument.

We engaged with the IOG researchers about the Genesis design. We sketched out a +way to address the concern that the Limit on Patiente (LoP) attack vector duty +cycle is indeed low, but it's still non-trivial to ultimately conclude it's +sufficiently low.

We also sketched a design to decouple the CPU load of the node from its +responsiveness to the socket, since the LoP is a relatively tight timeout, and +node performance bugs inducing seconds-worth of latency are unfortunately +familiar phenomena.

Fostering collaboration

We added an +explanation of +a question that we had to explain many times about the exact behavior of the +hardfork combinator forecast horizon.

+ + + + \ No newline at end of file diff --git a/2023-05-03-performance-and-tracing/index.html b/2023-05-03-performance-and-tracing/index.html new file mode 100644 index 0000000000..1aade70614 --- /dev/null +++ b/2023-05-03-performance-and-tracing/index.html @@ -0,0 +1,34 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 2 min read
Michael Karg
  • Benchmarking: The benchmarks and performance investigations for the new 8.0 release branch are ongoing.
  • New tracing: Performance optimization of the new tracing system is paying off and we could notably shrink its resource footprint.
  • Analysis pipeline: An exhaustive documentation and dataflow diagram for our analyses is being worked on.
  • Infrastructure: The plutus-apps flake input for cardano-node has finally been removed.
  • Nomad backend: A PR implementing placement of benchmarking clusters has been merged.

Benchmarking

The performance investigations on the 8.0 release branch have lead to pinpointing and addressing incosistent behaviour. For that, +we created yet another local reproduction with the workbench's forge-stress benchmark.

Currently we're working on scaling up the dataset size (UTxO and delegations) on the AWS cluster to gain further insight into 8.0 and +subsequent releases.

Additionally, we've refined the trace-bench family of profiles that target benchmarking our own new tracing system.

Tracing

Optimization of the tracing system has identified several locations where inefficient serializations were used; those were not originally +intended to run on a performance-critical codepath. We've worked on improving those, as well as eliminating cases of redundant +conversion between different serialization formats. This has brought down both memory and CPU impact of the tracing system.

Infrastructure & Analysis

Dataflow documentation

The LogObject CLI locli is at the heart of our analysis and reporting pipeline. To increase its accessibility and facilitate +further development, we're creating a detailed and illustrated documentation of all dataflows that happen during analysis and reporting.

Remove redundant Plutus flake input

This step is the conclusion of porting Plutus benchmarking scripts to our own library. By finally removing the now unnecessary flake input, +we simplify the dependency graph for cardano-node, as well as enable immediate feedback when developing Plutus benchmarks.

Nomad backend

Sophisticated placement of nodes across various regions of the globe is a cornerstone of the model cluster we use for benchmarking. +This capability has now been added to the Nomad backend and can be controlled with Nomad job descriptions. A PR with this, along +with various quality-of-life improvements, has been merged to master.

+ + + + \ No newline at end of file diff --git a/2023-05-04-mithril/index.html b/2023-05-04-mithril/index.html new file mode 100644 index 0000000000..e2da077dda --- /dev/null +++ b/2023-05-04-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team completed the implementation of the new certifier service of the aggregator, which is in charge of producing certificates for multi-signatures. They also finished implementing the interfaces defined to provide certification for the full immutable Cardano files snapshot and the Mithril stake distribution. Additionally, they have completed the refactoring of the multi-signer in the aggregator. The team also fixed the bug in the signer registration that was responsible for gaps during the signature phase for some signers, and they upgraded the Cardano node used in the Mithril testnets and devnet to version 1.35.7.

Finally, they have worked on designing a decentralized registration for the signers that takes place on the Cardano chain.

Low level overview

  • Worked on the epic that designs and implements generic signing/verification of entity services #780:
    • Completed the implementation of the Certifier service in the aggregator #850
    • Completed the implementation of the signable builder for the Mithril Stake Distribution #851
    • Completed the implementation of the artifact builder for the Mithril Stake Distribution #870
    • Completed the implementation of the signable builder for the Full Immutables Snapshot #852
    • Completed the implementation of the artifact builder for the Full Immutables Snapshot #871
    • Completed the adaptation of the aggregator runtime to use the signable builder service #853
    • Worked on the adaptation of the signer runtime to use the signable builder service #854
    • Completed the definition of the entity service interface for verification/restoration #868
    • Completed the refactoring of the OpenMessage type #878
  • Completed the epic that simplifies the multi-signer in the aggregator #398:
    • Completed the extraction of the single signature registration from the multi-signer #643
  • Completed the upgrade of the Cardano node to version 1.35.7 #881
  • Fixed the bug that created a discrepancy of the signer verification keys between signers and aggregators #873
+ + + + \ No newline at end of file diff --git a/2023-05-05-ledger/index.html b/2023-05-05-ledger/index.html new file mode 100644 index 0000000000..93508bccf7 --- /dev/null +++ b/2023-05-05-ledger/index.html @@ -0,0 +1,38 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Jared Corduan

High level summary

The ledger team focused mainly on the conway ledger era and node integration. +For conway, we completed a large structural change that now allows +for delegation certificates to be parameterized by era, and introducing +new certificates for the first time since Shelley. +We also continue to build out our contraint based generators that we will +use to property test the conway era. +In particular, we can now generate an entire ledger state and a +transaction which is balanced with respect to the ledger state.

Low level summary

Conway certificates

Certificiates are now abstracted as a type family in the ledger codebase. +Moreover, there are new certificates in the Conway era to support CIP-1694, +and MIR certificates have been removed.

Constraint based testing

Our plan for property testing in the conway era is to no longer use the trace generators, +but instead generate ledger states and transactions based on constraints. +We hit a milestone this week, namely the ability to generate a balanced transaction in the context +of a ledger state, all based on our ever growing constaint language.

Integration work

Technical debt

+ + + + \ No newline at end of file diff --git a/2023-05-05-node-cli-api/index.html b/2023-05-05-node-cli-api/index.html new file mode 100644 index 0000000000..3d8dc0344f --- /dev/null +++ b/2023-05-05-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Jordan Millar

2023-05-05 - 2023-05-23

High level summary

  • Golden tests for cardano-cli command help output were added.
  • Documentation was updated with new libsodium installation instructions.
  • There were several updates for the cardano-cli:
    • Deletion of the deprecated shelley command group.
    • Addition of golden tests for CLI help.
    • An improvement to avoid bare IO in tests, allowing better error reporting in failed tests.
    • Generation of UTCTime test values without leap seconds (avoids erroneous test failures)
    • Support for signing transactions with GenesisDelegateSigningKey_ed25519_bip32.
  • The cardano-api underwent multiple refinements:
    • Implementing deposit handling when balancing transactions (necessary for Conway)
    • Cleaning up socket file path code.
  • Several changes were made to the cardano-testnet:
    • Adding golden tests for cardano-testnet help.
    • Removing all hardcoded yaml files in cardano-testnet
    • Improving cardano-testnet help output.
    • Parameterizing default yaml configuration value, allowing for easier hardforking to the era of choice.

docs

CI & project maintenance

Developer experience

cardano-cli

cardano-api

cardano-node

cardano-testnet

+ + + + \ No newline at end of file diff --git a/2023-05-12-crypto/index.html b/2023-05-12-crypto/index.html new file mode 100644 index 0000000000..512f172093 --- /dev/null +++ b/2023-05-12-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· 2 min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • cardano-base: Include final tests for BLS signature. Further adaptations for KES agent.
  • Sidechains: Implement BLS and JubJub using upstream's macros to merge these curves in halo2curves.

Low level summary

cardano-base

Sidechains

  • Opened PR in halo2curves to include BLS12-381 and JubJub, #38
  • Addition constraint over JubJub merged #10
+ + + + \ No newline at end of file diff --git a/2023-05-12-goedel/index.html b/2023-05-12-goedel/index.html new file mode 100644 index 0000000000..40493db853 --- /dev/null +++ b/2023-05-12-goedel/index.html @@ -0,0 +1,30 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the team had two paper accepted for ICE 2023 +(https://www.discotec.org/2023/ice). The event will be held in Lisbon +on 19th June 2023. The papers will be published in EPTCS.

Details

+ + + + \ No newline at end of file diff --git a/2023-05-12-hydra/index.html b/2023-05-12-hydra/index.html new file mode 100644 index 0000000000..a93f3a8cad --- /dev/null +++ b/2023-05-12-hydra/index.html @@ -0,0 +1,35 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team achieved a number of milestones, including the release +of the first mainnet compatible version. Besides this they also addressed +inconsistencies in rollback handling, added an architecture page to the website, +reducing the size of logs using event IDs. They also had productive discussions +with researchers on plans for incremental commits/decommits and had a whiteboard +session on DeFi and lending protocols. The goals for next week include +completing the validation of the timed transactions feature, exploring stateless +observation, refining the Hydra explorer ticket, writing ops instructions and +troubleshooting, and implementing the first end-to-end journey for external +commits.

What did the team achieve this week

  • Released first mainnnet compatible version 0.10.0
  • Addressed inconsist handling of rollbacks #784
  • Added architecture page and fixed haddock links on our website #838
  • Opened a new hydra head on mainnet
  • Talked with researchers on initial plan for incremental commits/decommits
  • Had a Whiteboard session on DeFi and lending protocols
  • Reduced size of logs using event ids #859
  • Published the monthly report for April

What are the goals of next week

  • Complete validation of timed transactions feature #196
  • Explored stateless observation and refined hydra explorer ticket #696
  • Write ops instructions and troubleshooting #569 and improve logs
  • Have a first end-to-end journey for external commits implemented #215
+ + + + \ No newline at end of file diff --git a/2023-05-12-network/index.html b/2023-05-12-network/index.html new file mode 100644 index 0000000000..d3e103abe1 --- /dev/null +++ b/2023-05-12-network/index.html @@ -0,0 +1,43 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High level summary

We started working on a new way to switch between root & ledger peers (see +below). We continued to work on eclipse-evasion. We merged changes to +Handshake contributed by Galois Inc. We made improvements to our tests (fixed +a flaky test, added cddl specs for NodeToNodeVersionData and +NodeToClientVersionData). We improved our CI and automated the process of +releasing new package version to CHaP.

Detailed summary

We continued to work on testing eclipse-evasion.

We came up with an idea to limit how full node wallets relay on root peers +(currently operated by IOG, in future also CF and Emurgo). We designed +a switch to use ledger peers if the node tip is close enough to the current +time. For more details see #4530.

We merged changes to the handshake mini-protocol which allow one to query +server's node-to-node / node-to-client parameters. We are grateful to +Galois Inc. for implementing it, #4256 and #4538. We published new version +of packages to CHaP chap-#253.

We added DiffusionError wrapper. Thanks to it, ouroboros-consensus will +not duplicate diffusion errors messages in the log, #4537.

We fixed an issue which caused one of our tests to be flaky, #4515.

We added cddl tests for NodeToNodeVersionData and NodeToClientVersionData: +#4540, #4544 (in review).

We wrote scripts which will help us release packages as well as verify that we +released all the package necessary to build the newest set of packages, +#4542.

We renamed the consensus startup tracer and make sure it doesn't log +ExitSuccess exceptions, consensus-#71.

We reviewed PR which adds RawBearer API, #4395.

We made series of improvements to our CI:

  • #4539: we don't need to install cryptographic libraries in CI;
  • #4545: Javier Sagredo (consensus) cleaned up CI after consensus moved +to a new repo;
  • #4546: we switched to use GitHub merge queues;
  • #4549: we made it possible to trigger building haddocks manually;
  • #4553: we fixed and enhanced caching of building dependencies.
+ + + + \ No newline at end of file diff --git a/2023-05-17-consensus/index.html b/2023-05-17-consensus/index.html new file mode 100644 index 0000000000..8902595c9c --- /dev/null +++ b/2023-05-17-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales

High level summary

During the past two weeks we brought further improvements into the Genesis design in collaboration with the IO Research and Networking teams. These improvements concern the Genesis selection rule, candidate rule, and root peers usage. See the [Genesis][#genesis] section for more details.

Regarding our UTxO-HD prototype, during the past two weeks we put together a pull-request that improves the DB locking mechanism, started porting the mempool fairness improvements from our main branch, and integrated a new open source library (that implements cancellative monoids) that allowed us to simplify our code and get a small performance gain.

We improved our tooling by releasing an immutable DB server, which can be used for testing and benchmarking purposes, and a db-truncater program, which can be used in disaster recovery and benchmarking scenarios.

Genesis

The consensus team working on Genesis:

  • Improved the genesis selection rule as a result of our interaction with IO Research.
  • Studied how the hard-fork combinator handles forecasting at era transitions, and improved our documentation.
  • Determined that the simplest candidate rule we had considered will work for the Genesis window at era transitions, at least for the MVP.
  • Elaborated concrete proposal for the Genesis State Machine.
  • Met with the Networking Team and advised/co-designed how to implement the stop gap usage of public trusted root peers before Genesis is released (it's similar to the Genesis State Machine).

The team is currently re-analyzing the Limit on Patience, which can be less aggressive now that we've re-introduced the Genesis State Machine.

+ + + + \ No newline at end of file diff --git a/2023-05-17-mithril/index.html b/2023-05-17-mithril/index.html new file mode 100644 index 0000000000..be232d73dd --- /dev/null +++ b/2023-05-17-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team released a new 2318.0 distribution that implements the last migration phase of the aggregator stores and embeds a bug fix for the signer registration. They also completed the implementation of the interfaces defined to provide certification for the immutable full snapshot of Cardano files and Mithril stake distribution. They finalized the implementation of the framework to sign generic types of data in the aggregator and the signer nodes. They also updated the runtime of the aggregator to handle open messages associated with the available types, and evolved the REST API of the aggregator to deliver the artifacts for these types. Additionally, they have upgraded the network explorer in order to display the artifacts and certificates for these different types.

Finally, the team started designing an on-chain decentralized signer registration process, and started implementing the new stake distribution computation available from Cardano node 8.0.0 (along with the backward compatibility for previous 1.35.x versions).

Low level overview

  • Worked on the epic that designs and implements generic signing/verification of entity services #780:
    • Completed the handling of multiple types of signed entity in the aggregator runtime #907
    • Completed the adaptation of the signer runtime to use the signable builder service #854
    • Completed the adaptation of the aggregator runtime to use the artifact builder service #869
    • Completed the appending of the next AVK to all protocol messages #888
    • Completed the adaptation of the aggregator REST API to retrieve the list/details of the artifacts produced #893
    • Completed the adaptation of the explorer to handle new artifact routes of the aggregator #927
  • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
    • Completed the implementation of the new stake distribution computation in the chain observer #919
    • Worked on upgrading the Cardano node to 8.0.0 #920
+ + + + \ No newline at end of file diff --git a/2023-05-17-performance-and-tracing/index.html b/2023-05-17-performance-and-tracing/index.html new file mode 100644 index 0000000000..62fa5f621f --- /dev/null +++ b/2023-05-17-performance-and-tracing/index.html @@ -0,0 +1,39 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 4 min read
Michael Karg

High level summary

  • Benchmarking: We're preparing our model cluster to perform GHC9.2 benchmarks, as well as experimenting with increased dataset sizes.
  • New tracing: After optimization work on the new tracing system, another cycle of validation and documentation is due.
  • Analysis pipeline: First steps on implementing incremental analysis have been untertaken.
  • Open Sourcing: Exhaustive dataflow charts for both our analysis tool locli and our workbanch have been merged to master
  • Nomad backend: The first set of CI-centric workbench profiles have been adjusted and run on the nomad backend; currently we're porting the definition of our model cluster.
  • P&T Meetup: We had a very productive personal meetup in Lugano, Switzerland.
  • Offboarding: Sadly, we have to say goodbye to our team lead. Currently, we're busy with the handover.

Low level overview

Benchmarking

As a compiler switch to GHC 9.2.7 for cardano-node's default build environment is around the corner, we're setting up our benchmarking cluster to +handle the new version. Special attention is given to the fact that we might need more flexibility in switching compiler versions in the future. This +also involves choosing a reliable baseline as reference point for inter-version comparisons.

Additionally we've been working on refining our model cluster: by increasing UTxO and delegation map sizes to closer match those of current mainnet, +we strive to have a more accurate model - and thus be able to make more detailed predictions regarding performance. However, this still needs to +be balanced against resource demand for all our cluster's nodes.

Tracing

For our new tracing system, we're currently validating the behaviour of the system after optimizations have been applied. Furthermore, some +quality-of-life details that have changed required us to revision the system documentation.

Analysis

As a mid-term goal, we aim to provide incremental analysis of our benchmarking metrics. While currently, we can only reliably process runs that have been +normally (or abnormally) terminated, we see the possibility of incrementally analysing ongoing runs, or any data source yielding our key metrics, as a +huge opportunity to increase our operational flexibility. All in all, this approach entails building completely new features for our pipeline. A first effort to accomodate incrementally incoming data points has been undertaken.

Open Sourcing

A very involved and exhaustive documentation and visualization effort has been undertaken to make the data flow through our key benchmarking +copmonents more accessible. As a result, detailed charts for both our LogObject CLI locli and our workbench have been merged to master.

Nomad backend

While our Nomad backend is reaching completion, and hardware setup is being implemented in collaboration with SRE, we've been adjusting +those profiles of our workbench that target CI-oriented workloads to the new backend. Those profiles should demonstrate the full functionality +of the nomad cloud backend.

Additionally, we're porting a first deployable version of our model cluster to nomad cloud, which will form the basis for validation of our actual key metrics with regard to those from the existing cluster.

Performance & Tracing Meetup

We held a personal team meetup in Lugano, Switzerland. In an amazing location, and with a great seminar room to focus, we had 2 very productive +days together. Being able to discuss live and in colour, we could effectively synchronize on where the team is at, and how we want to develop in the future. +Also, it was a great opportunity to finally meet in person.

Offboarding

Last not least we regret that our team lead is leaving at the end of May. Currently, he's handing over all his obligations, which requires reorganisation +of team structure, and responsabilities of team members for specific tasks. Serge, we all want to thank you for your excellent and reliable lead; we very much enjoyed the time with you, and wish you all the best for your future endeavours!

+ + + + \ No newline at end of file diff --git a/2023-05-19-hydra/index.html b/2023-05-19-hydra/index.html new file mode 100644 index 0000000000..94e852bbe6 --- /dev/null +++ b/2023-05-19-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Franco Testagrossa

High-level summary

This week, the Hydra team has worked on several fronts, including improvements of their CI speed, logs, documentation pages and adding the support for timed transactions. They also updated the "Coding Standards" for the project, improved the troubleshooting page on their website and wrote a section about how to operate a hydra node. Finally the team completed a feature request that allows clients to submit and validate transactions to their hydra nodes using time validity ranges, ensuring isomorphism with L1.

What did the team achieve this week

  • Complete validation of timed transactions feature #196.
  • Write ops instructions and troubleshooting #569 and improve logs.
  • Remove --ledger-genesis argument to hydra-node options #863.
  • Fix issue with garbage collected caches by using a new cardano-scaling.cachix in more workflows #877.
  • Use nix to build test binaries to increase CI speed #867.
  • Updated our Coding Standards.

What are the goals of next week

  • Monthly report & review meeting.
  • Have a first end-to-end journey for external commits implementing "Option A" #215.
  • Integrate spanish translation #866.
  • Improve and provide regular benchmarks for Hydra #186.
  • Allow commit transactions with multiple UTxO #774.
  • Explored stateless observation and refined hydra explorer ticket #696.
+ + + + \ No newline at end of file diff --git a/2023-05-24-node-cli-api/index.html b/2023-05-24-node-cli-api/index.html new file mode 100644 index 0000000000..ce38505ee7 --- /dev/null +++ b/2023-05-24-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· One min read
Jordan Millar

2023-05-24 - 2023-06-06

High level summary

  • The last sprint focused on removing cardano-cli and cardano-api from the cardano-node repository. We have successfully moved cardano-api to its own repository and will do the same for cardano-cli after the 8.1 node is released.
  • We provided assitance where needed in the release
  • An integration repository https://github.com/input-output-hk/fusion-flamingo was created to enable my team to more easily work on cardano-cli and cardano-api

docs

CI & project maintenance

Developer experience

cardano-cli

cardano-api

cardano-node

cardano-testnet

+ + + + \ No newline at end of file diff --git a/2023-05-26-goedel/index.html b/2023-05-26-goedel/index.html new file mode 100644 index 0000000000..948628f8e7 --- /dev/null +++ b/2023-05-26-goedel/index.html @@ -0,0 +1,29 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the team has been working on final revisions for the +pre-proceedings versions of two ICE 2023 papers.

Details

+ + + + \ No newline at end of file diff --git a/2023-05-26-hydra/index.html b/2023-05-26-hydra/index.html new file mode 100644 index 0000000000..15144cff69 --- /dev/null +++ b/2023-05-26-hydra/index.html @@ -0,0 +1,34 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team accomplished several important tasks. They held their +monthly review meeting and drafted the report for May. They made progress on +implementing the first end-to-end journey for external commits using "Option A" +for normal UTxOs, while still considering "Option B". The team also integrated a +Spanish translation contributed by the community, created micro-benchmarks for +transaction validation and deserialization, and made improvements to +hydra-node's version reporting. Last but not least, they implemented the ability +to commit multiple UTxOs to a head at once.

What did the team achieve this week

  • Held the monthly review meeting (recording + slides) & drafted the report for May.
  • Have a first end-to-end journey for external commits implementing Option A +for normal UTxOs #887 (still considering Option B).
  • Integrated the spanish translation #866.
  • Created micro-benchmarks for transaction validation and deserialization #884.
  • Improve hydra-node version reporting on non-released builds #849
  • Some minor CI improvements following up last weeks changes.
  • Allow commit transactions with multiple UTxO #774.

What are the goals of next week

  • Investigate and re-open our team-internal head on mainnet.
  • Improve and provide regular benchmarks for Hydra #186.
  • Complete external commits with script UTxOs #215.
  • Authenticate network messages #727.
  • Add hydra as tool to developr platform #872.
+ + + + \ No newline at end of file diff --git a/2023-05-26-ledger/index.html b/2023-05-26-ledger/index.html new file mode 100644 index 0000000000..7eca1a8818 --- /dev/null +++ b/2023-05-26-ledger/index.html @@ -0,0 +1,30 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Jared Corduan

High level summary

The ledger team made progress on the conway ledger era. In particular, the design and implementation +of the new certificates is near complete, we refactored some of our data structures +to be able to support DReps, we cleaned up the serialization format, and renamed things to make +clearer the differences with Shelley.

The team also completed integration work for the next node release, namely 8.1.0. +And, as always, we continue to address technical debt.

Low level summary

Conway progress

  • pull-3408 - Improve conway delegation certificates
  • pull-3428 - Get rid of Constitutional in favor of Genesis and Committee
  • pull-3426 - Add DRep to internal data struture (UMap)
  • pull-3425 - Improve witness logic needed for conway
  • pull-3423 - Rename ShelleyDelegCerts constructors to distinguish them from Conway
  • pull-3421 - Rename DCert -> TxCert
  • pull-3454 - conway CDDL minor fixes

Improve testing

  • pull-3403 - Add Plutus script context golden tests

Integration work

  • pull-3410 - Update chaps index
  • pull-3416 - Bump cardano-ledger-alonzo-test version
  • pull-3414 - Bump cardano-ledger-shelley-test minor version
  • pull-3420 - Bump cardano-ledger-shelley-ma-test version
  • pull-3441 - Release cardano-ledger-[alonzo|babbage]-1.2.1

Technical debt

  • pull-3409 - Unit test - no such thing as a reference datum
  • pull-3407 - Fixup release process documentation
  • pull-3404 - Create TotalDeposits events during all eras
  • pull-3402 - Fix broken references in the Shelley spec
  • pull-3424 - Remove no longer used cardano-ledger-shelley-ma package
  • pull-3432 - Add an example on how to bump up versions in the changelog
  • pull-3440 - Revert back to the group serialization for ProtVer for PParams
+ + + + \ No newline at end of file diff --git a/2023-05-26-network/index.html b/2023-05-26-network/index.html new file mode 100644 index 0000000000..88eac2aa8b --- /dev/null +++ b/2023-05-26-network/index.html @@ -0,0 +1,30 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· One min read
Marcin Szamotulski

High level summary

We continued working on eclipse-evasion. We also analysed and fixed a bug +when using DNS names in local root peers. We continued working on engineering +blog post about P2P. We released a new version of packages for +cardano-node-8.1.0 release.

We improved our CI, removed obsolete scripts add extra validation which checks +if CHANGELOG.md files were updated.

We also improved release scripts.

Detailed summary

  • Eclipse evasion: #4462
  • Local root peers bug fix: #4559
  • Release to CHaP: #4573
  • CI improvements: #4572
  • Release script improvements: #4573
+ + + + \ No newline at end of file diff --git a/2023-05-31-consensus/index.html b/2023-05-31-consensus/index.html new file mode 100644 index 0000000000..334829255d --- /dev/null +++ b/2023-05-31-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

During the Past two weeks we drafted an implementation path for concluding that a node is caught up, which will also be used to back Network's ledger-peer selection (see this issue). We also carried a thorough investigation into the exact feasibility of applying the Genesis rule to certain historical parts of the chain.

On the UTxO-HD front, we are working on improving the ledger tables design and wrapping up the improved DB locking mechanism. We also released packages that are required not only by UTxO-HD but are already used in cardano.

UTxO-HD

  • We have a plan for making the ledger tables in UTxO-HD more ergonomic by mimicking SOP classes like HPure and HAp . In short, we implement generalised versions of important classes like Applicative and Traversable.

Support

  • fs-sim-0.1.0.2 and fs-api-0.1.0.2 were released, which makes them now compatible with GHC up to 9.6.
  • ouroboros-consensus-0.7.0.0 was released for cardano-node 8.1, including query serialization fixes for backwards compatibility.
+ + + + \ No newline at end of file diff --git a/2023-05-31-performance-and-tracing/index.html b/2023-05-31-performance-and-tracing/index.html new file mode 100644 index 0000000000..b017466fc8 --- /dev/null +++ b/2023-05-31-performance-and-tracing/index.html @@ -0,0 +1,37 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 3 min read
Michael Karg

High level summary

  • Benchmarking: We've performed and analysed first benchmarks with GHC9.2 builds. Additionally we have developed an early indicator for how build config changes might reflect on metrics from our model cluster.
  • New tracing: Collaboration with Galois led to the new tracing system to be equipped with a re-forwarding mechanism.
  • Nomad backend: Porting the 52 node model cluster to nomad cloud is ongoing, with the focus on deployment and health checks.

Low level overview

Benchmarking

The first set of runs with GHC9.2 as a build platform are in. We've discovered a significant difference in resource profile usage compared to GHC8.10. Further investigation uncovered the need for benchmarking another parameter change in the build +configuration: As it stands, the ghc-bignum package is using the Haskell native-backend as a default. We strive +to benchmark a build with the gmp-backend next.

A variant of our forge-stress local benchmark has been set up to serve as an early indicator for the resource usage profile +we'd expect to observe on the model cluster. This provides us with a much tighter feedback loop, as local run duration is way +shorter. This indicator is specific to changes in the configuration of build and the runtime systems, and will be of great +support when evaluating different compiler versions or RTS flags incrementally.

Tracing

The hub of the new tracing system cardano-tracer is designed with a fixed output behaviour, which is limited to various +logging options. Thanks to the contribution from Galois, that design is now extended to be able to re-forward all, or a pre-filtered portion, of traces from the node in a configurable manner. This will enable downstream applications to +directly receive the set of trace values relevant to their logic, without any additional cost for the node itself at all.

Nomad backend

We're currently working out the details of efficiently deploying and monitoring a fleet of 50+ nodes, along with +job definitions for tracing and transaction generation. Scaling up to those many instances, and monitoring an ongoing +benchmarking run required us to fine-tune communications with the nomad server.

Related to that, the new cloud backend will provide a monitoring and health-checking mechanism which is far more flexible +and offers more detailed insight than the previous iteration in cardano-ops. The backend will enable you to formulate +very specific conditions for an ongoing run to be considered healthy, and offer automation of certain actions should these conditions not be met.

+ + + + \ No newline at end of file diff --git a/2023-06-01-mithril/index.html b/2023-06-01-mithril/index.html new file mode 100644 index 0000000000..d3fe3ee8f4 --- /dev/null +++ b/2023-06-01-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team released a new 2321.1 distribution that fully implements the mechanism developed to sign generic data. They completed the upgrade of the Cardano node in the Mithril networks to v.8.0.0 and the implementation of the new computation of the stake distribution. They refactored the state machines of the signer and aggregator, and the signed entity service of the aggregator. Additionally, they worked on adapting the client and implementing a new sub-command for restoring the Cardano immutable file snapshots.

Finally, the team worked on adding a new certificate list route in the aggregator REST API, and started enhancing the infrastructure of the Mithril networks.

Low level overview

  • Released the new distribution 2321.1
  • Worked on the epic that designs and implements generic signing/verification of entity services #780:
    • Completed the issue Enhance MessageAdapter for Artifact in aggregator REST API #925
    • Completed the issue Create the sub-command for 'Cardano Immutable Files Full' in client #895
    • Completed the issue Enhance state machines Aggregator/Signer #933
    • Completed the issue Adapt the aggregator REST API to list certificates #892
    • Worked on the issue Adapt end to end tests to handle new types of data #899
    • Worked on the issue Update client documentation #897
    • Worked on the issue Update architecture documentations for new types of data #898
  • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
    • Worked on the issue Enhance terraform infrastructure #930
  • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
    • Completed the issue Upgrade Cardano node to '8.0.0' #920
  • Completed the issue Add export path in Client CLI #512
+ + + + \ No newline at end of file diff --git a/2023-06-02-hydra/index.html b/2023-06-02-hydra/index.html new file mode 100644 index 0000000000..8648bf2c63 --- /dev/null +++ b/2023-06-02-hydra/index.html @@ -0,0 +1,35 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Franco Testagrossa

High-level summary

This week, the Hydra team has put their effort on finding solutions on many +different problems, such as our broken head on mainnet +#897, our fragile monthly +report publications on the website and implementing Option A for +external commits #215. +Although most of these items are still open, huge progress has been made. To +accelerate the investigation, they improved their logging to give more precise +errors when a transition requirement fails, and to reduce duplication on effets +logged content. Last but not least, the team is exploring formal methods and +attended a workshop on formalizing cryptographic protocols in Agda.

What did the team achieve this week

  • Continued investigating broken head and opened an issue to keep track #897.

    As part of this issue, improvements were made to the node logs:

    • Give a precise error when a transition requirement fails #895.

    • Reduce duplication for effects logged content by using sequential eventId and effectId pair #896.

  • Fixed references in the hydra specification #893.

  • Attended a workshop on formal methods and crypto in Agda.

What are the goals of next week

  • Investigate and re-open our team-internal head on mainnet.
  • Improve and provide regular benchmarks for Hydra #186.
  • Complete journey for external commits implementing Option A and start implementing Option B #215.
  • Authenticate network messages #727.
  • Add hydra as tool to developr platform #872.
  • Fix monthly report publication on docs website.
+ + + + \ No newline at end of file diff --git a/2023-06-07-node-cli-api/index.html b/2023-06-07-node-cli-api/index.html new file mode 100644 index 0000000000..348e686224 --- /dev/null +++ b/2023-06-07-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2023-06-07 - 2023-06-20

High level summary

  • Completed cardano-cli migration to input-output-hk/cardano-cli
  • cardano-cli ping now uses cardano-ping-0.2.0.5
  • New queries on API:
    • queryCurrentEpochState
    • queryDebugLedgerState
    • queryGenesisParameters
    • queryPoolDistribution
    • queryPoolState
    • queryProtocolParameters
    • queryProtocolParametersUpdate
    • queryProtocolState
    • queryStakeAddresses
    • queryStakeDistribution
    • queryStakePoolParameters
    • queryStakeSnapshot
  • Deprecate:
    • queryPparams
  • Export query API as functions
    • genFeatureValueInEra
    • featureInShelleyBasedEra
    • isFeatureValue
    • valueOrDefault
    • asFeatureValue
    • asFeatureValueInShelleyBasedEra
    • queryEpoch
    • requireShelleyBasedEra
  • Restructure cardano-testnet (WIP)

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2023-06-08-db-sync/index.html b/2023-06-08-db-sync/index.html new file mode 100644 index 0000000000..01fe943efe --- /dev/null +++ b/2023-06-08-db-sync/index.html @@ -0,0 +1,33 @@ + + + + + +DB-sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB-sync Team Update

· One min read
Kostas Dermentzis

High level summary

We've made progress in all high level objectives

  • CIP-1694 integration design
  • UTxO-HD integration proof of concept
  • schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2
  • A new hire will help us with devx issues.

Lower level summary

+ + + + \ No newline at end of file diff --git a/2023-06-08-goedel/index.html b/2023-06-08-goedel/index.html new file mode 100644 index 0000000000..79d8f6704f --- /dev/null +++ b/2023-06-08-goedel/index.html @@ -0,0 +1,33 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the team has been working on giving and preparing public +talks, also on preparing final versions of their ICE 2023 papers, and +on analysing chain selection.

This sprint the team has been working on final revisions for the +pre-proceedings versions of two ICE 2023 papers.

Details

+ + + + \ No newline at end of file diff --git a/2023-06-08-sre/index.html b/2023-06-08-sre/index.html new file mode 100644 index 0000000000..5004e6a0b5 --- /dev/null +++ b/2023-06-08-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include: expanding the darwin CI cluster and providing new aarch64 builder support; adding bare metal bitte cluster capability with network overlay for high IOPS workload performance, such as explorer.

Lower level summary

Bitte

  • Equinix bare metal capability was added to bitte: bitte-pull-194
  • Update bitte nixpkgs, nix version, nomad driver, equinix lifecycle, misc bug fixes: bitte-pull-201

Bitte-cells

Cardano-graphql

Cardano-node

Cardano-ops

Cardano-world

Ci-ops

  • Update legacy darwin builders and buildkite agent for ci-world network overlay and monitoring: ci-ops-pull-108

Ci-world

Cicero

  • Implement a cicero webhook backoff with exponential decay plus jitter: cicero-pull-79

Iohk-nix

Openziti

+ + + + \ No newline at end of file diff --git a/2023-06-08-system-test/index.html b/2023-06-08-system-test/index.html new file mode 100644 index 0000000000..8147e07157 --- /dev/null +++ b/2023-06-08-system-test/index.html @@ -0,0 +1,26 @@ + + + + + +System Test Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

System Test Team Update

· 2 min read
Martin Kourim

High level summary

Since the last update (2023-03-26) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.7 and 8.0.0 releases.

Workstreams

Full list of closed PRs

Framework improvements:

  • Make cardano-submit-api REST API service available and run corresponding regression tests by default
  • Update cabal build testing for 8.0.0
  • Add support for testing governance SPO poll
  • Use Poetry for Python dependency management
  • Check status of known GH issues during tests runtime and finish the test accordingly
  • Generate topology files with both IP addresses and DNS names
  • Log issues like failure to start a cluster instance and report errors during tests runtime

Testing improvements

  • Add rollback testing:
    1. global consensus is reached after rollback, in situation where less than securityParam blocks were produced since cluster split
    2. global consensus is not reached when more than securityParam blocks were produced, and the result is permanent fork
  • Add tests to governance SPO poll commands

Node:

DB-Sync:

  • improvements in db-sync sync tests
  • improvements in db-sync functional tests
+ + + + \ No newline at end of file diff --git a/2023-06-09-crypto/index.html b/2023-06-09-crypto/index.html new file mode 100644 index 0000000000..28f5fda722 --- /dev/null +++ b/2023-06-09-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· One min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • cardano-base: E2E tests for BLS bindings and KES agent
  • Sidechains: Implement ECC chip and Rescue hash primitives for ATMS
  • mithril: Full node verifier

Low level summary

cardano-base

  • RawBearer API in ouroboros-network-framework (https://github.com/input-output-hk/ouroboros-network/pull/4395); blocked due to issue with windows' localSnocket. Trying to resolve.
  • Adapting cardano-base for direct memory transfers between mlocked RAM and file descriptors #317.
  • Above, blocked by the simplification of typeclasses #404.
  • Provided e2e test cases to the testing team with aggregated signatures and schnorr signatures for the BLS bindings

Mithril

  • Implementation of Full Node Verifier #939

Sidechains

  • ECC chip implemented for JubJub over BLS12-381
  • Rescue chip implemented for hashing.
  • Currently working on Schnorr signature (which uses the above constraints)
+ + + + \ No newline at end of file diff --git a/2023-06-09-developer-experience/index.html b/2023-06-09-developer-experience/index.html new file mode 100644 index 0000000000..763e6d999c --- /dev/null +++ b/2023-06-09-developer-experience/index.html @@ -0,0 +1,26 @@ + + + + + +Developer Experience Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Developer Experience Update

· 3 min read
Moritz Angermann

High level summary

The Developer Experience team has been devoted to day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, the maintaince of our cardano-haskell-packages (CHaP), and infrastructure like GitHub Actions, iohk-nix, haskell.nix, and devx. Furthermore, we have also contributed to upstream tooling improvements.

Lower level summary

build support & maintainance

Our DevX team has been instrumental in troubleshooting and fixing a wide range of issues, from broken windows builds and obscure LoadDLL errors to blst integration across Nix and Github CI. We've also initiated automatic uploads for release assets. Our efforts in streamlining complex CI setups have paid off, with some repositories like cardano-base experiencing significant reductions in CI complexity.

compiler upgrades

After the support for 9.2 across our libraries, we have started working on 9.6 compabilitiy as well. This move brings us closer to the upstream compiler, facilitating the contribution of patches and enabling early detection of regressions. In addition, we're prioritizing compaining even stronger for better backwards compatibility.

CHaP (cardano-haskell-packages)

We relocated the underlying tooling, (foliage), for CHaP into the IOG organization. Furthermore, we have introduced improved tooling to quickly add constraints to packages, better error reporting for add-revision and better hackage url compatibility to facilitate easer usage of CHaP.

GitHub Actions

Our repository, input-output-hk/actions, now houses the necessary actions for installing pre-requisites to build Cardano projects using GitHub Actions. Leveraging the base and haskell install actions has allowed us to simplify workflows in the repos, focusing primarily on invoking cabal.

iohk-nix

The iohk-nix repository has undergone a major revamp and now provides pre-built packages of the cryptographic libraries IOG utilizes for GitHub Runners. The key components we use, sodium, blst, and secp256k1, are also fixed to certain revisions within the iohk-nix repository.

haskell.nix

Haskell.nix has been maintained and updated with the addition of GHC 9.6.2 and GHC 8.2.8. After discovering performance regression in the native bignum backend, we switched the default bignum backend to gmp.

devx

The relatively new devx repository is where we experiment with a single nix development shell that aims to suffice for most use-cases at IOG. This initiative is expected to eliminate a number of CI failures related to project-build and shell interaction problems. The devx repository's readme has been updated to reflect its purpose and usage guidelines.

upstream tooling

Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

+ + + + \ No newline at end of file diff --git a/2023-06-09-hydra/index.html b/2023-06-09-hydra/index.html new file mode 100644 index 0000000000..2ae7ea3e5d --- /dev/null +++ b/2023-06-09-hydra/index.html @@ -0,0 +1,34 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Franco Testagrossa

High-level summary

This week, the Hydra team worked on multiple fronts. They finished the +investigation about the broken head on mainnet and re-opened their persistent +head instance. The team also fixed the monthly report publication on their +website and started sketching ideas and further improvements. Also, they are on +the last mile to deliver a new feature which will allow parties to commit funds +from extern wallets. Finally the team started to work on optimizing the +performance on their benchmarks.

What did the team achieve this week

  • Finished investigation on broken head on mainnet #897 and re-opened it.
  • Added support for externally committing regular utxo #887
  • Fix monthly report publication on docs website and published the monthly report. Odd problems when publishing monthly report:
    • Make us think about if we should change something about the website #908
    • Open issue to docusaurus #9036
  • Fixed a bug in the benchmark process #910
  • Explored performance of the hydra-node{.verbatim} and identified a +bottleneck.
  • Timed transaction feature is being used by the auction project 🎉

What are the goals of next week

  • Complete performance analysis and start/plan improvements and provide +regular benchmarks for Hydra #186
  • Add hydra as tool to developer platform #872.
  • Authenticate network messages #727.
  • Complete journey for external commits using multiple script UTxOs #903
  • Start implementing Option B for external commits #215.
+ + + + \ No newline at end of file diff --git a/2023-06-12-network/index.html b/2023-06-12-network/index.html new file mode 100644 index 0000000000..0e2e796f5a --- /dev/null +++ b/2023-06-12-network/index.html @@ -0,0 +1,45 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 3 min read
Marcin Szamotulski

Network Update

Key contributions and advances

We merged light peer sharing feature, which allows to include inbound peers +into outbound governor known peers. This is the primary way for new +unregistered nodes to enter the network, which then can be shared using peer +sharing. Note that peer sharing is an experimental feature which is disabled +until genesis & eclipse evasion as fully implemented. See #3596.

We are making progress reviewing eclipse evasion, #3886.

We fixed another bug in local root peers. We found out that if the local roots +where ignored until the first domain name was resolved, see #4583. The bug +fix was backported and released in ouroboros-network-0.8.1.1.

We re-started working on dynamically enabling block forging to address issue +#3159, which will enable us to release P2P on block producing nodes. See #140.

New cardano-ping / cardano-cli ping release

We prepared a new release of cardano-ping library which supports the new +query feature (query supported versions). See #4589, #4593 and #5313. +The new version of cardano-cli ping will use ISO8601 formatted +timestamps; also the formatting of ping results is slightly improved, and it +will introduce the new --query-versions (-Q) switch. If the remote site +supports the query parameter, the command will print:

redacted-ip:port network rtt: 0.064
redacted-ip:port handshake rtt: 0.064010896s
redacted-ip:port Queried versions [NodeToNodeVersionV11 764824073 InitiatorAndResponder,NodeToNodeVersionV10 764824073 InitiatorAndResponder,NodeToNodeVersionV9 764824073 Initiat
orAndResponder,NodeToNodeVersionV8 764824073 InitiatorAndResponder,NodeToNodeVersionV7 764824073 InitiatorAndResponder]

otherwise it will print the negotiation results

redacted-ip:port network rtt: 0.045
redacted-ip:port handshake rtt: 0.101867615s
redacted-ip:port Negotiated version NodeToNodeVersionV10 764824073 InitiatorAndResponder

Note that in that case cardano-cli ping offers InitiatorAndResponder, which +allows us to detect whether the remote side is an InitiatorOnly or +InitiatorAndResponder. Also cardano-cli ping will no longer announce +itself as InitiatorAndResponder, except for the case mentioned above.

Other smaller contributions

On a request from the Marlow Team, we published haddocks of typed-protocols, +which are now available here (#40, #41).

We made a new release of strict-stm-1.1.0.1 on Hackage, which fixed a bug in +package description file, #101 .

We also helped to debug a deadlock when using named pipes on Windows in the new +RawBearer API. The API is being used to store secret keys only in memory. +The PR #4395 is under review.

We also have two more PRs which are under review:

  • #4530: enabling ledger peers on a fixed number of slots before the tip of the chain;
  • #4580: a PR which fixes inconsistencies in one of our cddl specs.
+ + + + \ No newline at end of file diff --git a/2023-06-14-consensus/index.html b/2023-06-14-consensus/index.html new file mode 100644 index 0000000000..2f3cdb223e --- /dev/null +++ b/2023-06-14-consensus/index.html @@ -0,0 +1,29 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales

High level summary

The Consensus team had a very productive meeting with IOG Researchers. We now seem to be in alignment in regards to a strong argument that the Byron and TPraos eras do not need to be checkpointed for an MVP. +There is one remaining question (which applies also to the Praos era): how to assess the threat that short forks pose against historical windows that underperformed? We are currently collaborating on that. We also drafted an argument that the updated "Limit on Patience" timeout sufficiently bounds how long the adversary can inflate a victim's overall sync time.

On the UTxO-HD front, the prototype branch was rebased on top of the latest ouroboros-consensus main branch and integrated on top of cardano-node 8.1.1-pre. As a result, the mempool fairness fix that was released recently is now integrated into UTxO-HD. +We managed to run a node again with UTxO-HD enabled. +We also identified a race condition in the UTxO-HD prototype and fixed it. In addition, we started performing UTxO-HD ad-hoc benchmarks for cardano-node, which uncovered a performance regression on the Network component when using GHC-9.2/9.4. This is being addressed.

Regarding our support activities, we Released fs-sim-0.2.0.0 and are in the process of preparing the 8.2 release of cardano-node. We also identified and started fixing incorrectly-unevaluated thunks in preparation for enabling CI NoThunks tests.

+ + + + \ No newline at end of file diff --git a/2023-06-14-performance-and-tracing/index.html b/2023-06-14-performance-and-tracing/index.html new file mode 100644 index 0000000000..852df0b61b --- /dev/null +++ b/2023-06-14-performance-and-tracing/index.html @@ -0,0 +1,32 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 2 min read
Michael Karg

High level summary

  • Benchmarking: We've continued release benchmarking and established a new baseline for 8.0.0.
  • New tracing: Our benchmarking profile for measuring new vs. legacy tracing performance has been refined.
  • Nomad backend: The healthcheck system for the the nomad cloud has been completed. We've performed the first full runs on the new backend.

Low level overview

Benchmarking

In our release benchmarking cycle, we established a new performance baseline for 8.0.0. Additionally, we've measured +performance under various workloads for 8.1.1-pre; the results look promising and validate the optimization efforts +done on several system components.

In the meantime, we've finalized a build plan with GHC9.2 that matches the current one with GHC8.10; a requirement for +benchmarking as a large amount of differences in the dependency graph can confound the results for the application code proper.

Tracing

The legacy and the new tracing system differ fundamentally in design, implementation and handling. So for metrics to be +meaningful in a comparison, benchmarking profiles have to be tuned such that not only log line frequency but frequency of specific +trace messages are closely aligned. We've found that higher granularity in this regard was necessary, and done additional work on our dedicated profiles.

Additionally, we've had a first glance of what additional traces could be valuable in the context of benchmarking UTxO-HD.

Nomad backend

As the new backend's healthcheck system in its first iteration can now serve as a guardrail to ensure sanity of a full-length run, we've performed our first 52-node cluster runs on nomad cloud. We're currently smoothing the edges around cluster deployment, and analysing the metrics gathered from those runs.

This means the backend is entering validation phase, where we systematically compare all metrics taken from the new +infrastructure to the existing ones, including determining reproducibility and variance.

+ + + + \ No newline at end of file diff --git a/2023-06-15-mithril/index.html b/2023-06-15-mithril/index.html new file mode 100644 index 0000000000..34017bffaf --- /dev/null +++ b/2023-06-15-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team completed the implementation of the new sub-command for restoring a Mithril stake distribution in the client. They also updated the client’s developer documentation and architecture documentation, and did some refactoring on the client and its dependency injection mechanism. Additionally, they completed and deployed infrastructure enhancements on the test Mithril networks. They also completed the performance tests of the new stake distribution computation on the Cardano mainnet.

Finally, the team worked on fixing a bug on the client multi-platform test, a bug on the aggregator state machine, and some flakiness on the CI.

Low level overview

  • Completed on the epic that designs and implements generic signing/verification of entity services #780:
    • Completed the issue Create the sub-command for 'Mithril Stake Distribution' in client #896
    • Completed the issue Adapt end to end tests to handle new types of data #899
    • Completed the issue Update client documentation #897
    • Completed the issue Update architecture documentations for new types of data #898
    • Completed the issue Refactoring client #960
  • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
    • Completed the issue Enhance terraform infrastructure #930
  • Completed the epic that implements the computation of the stake distribution for mainnet #880:
    • Completed the issue Check performance impact of new stake distribution command on the 'mainnet' #962
  • Worked on the epic Prepare Mithril Signer deployment model for SPO #862:
    • Worked on the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
  • Worked on bugs and optimizations:
    • Completed the issue Aggregator does not always detect new immutable file #953
    • Completed the issue CI tests fail with Rust '1.70.0' #958
    • Worked on the issue End to end tests are flaky #954
    • Worked on the issue Certificate dates in metadata are not on the same timezone #946
    • Worked on the issue Refactor 'MithrilStakeDistribution' entity #967
    • Completed the issue Fix 'Mithril Client multi-platform test' with new client interface #956
    • Completed the issue Enhance 'ImmutableDigesterError::NotEnoughImmutable' error #969
    • Completed the issue Client 'snapshot download' command fails with option '--download-dir' #979
+ + + + \ No newline at end of file diff --git a/2023-06-16-hydra/index.html b/2023-06-16-hydra/index.html new file mode 100644 index 0000000000..72d7af8816 --- /dev/null +++ b/2023-06-16-hydra/index.html @@ -0,0 +1,29 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Franco Testagrossa

High-level summary

This week, the Hydra team focused their efforts on continuing to investigate and +experiment operating a head on mainnet. They collected several bugs and issues +and worked on fixing them. Now the team is soon to release a new version, +0.11.0, which comes with a lot of improvements and bug fixes.

What did the team achieve this week

  • Restored and fixed a bug which stalled our head on mainnet #927
  • Solved one user issue #914
  • Reduced significantly local state size and logs by removing the full scripts from it #928
  • (pending review) Reduced snapshot size in the API, by only including tx ids #922

What are the goals of next week

  • New release 0.11.0
  • Monthly report & review meeting.
  • Fix some minor bugs discovered when operating our head on mainnet
  • Complete journey for external commits using multiple script UTxOs #903
  • Publish benchmarks and provide regular benchmarks for Hydra #186
+ + + + \ No newline at end of file diff --git a/2023-06-23-goedel/index.html b/2023-06-23-goedel/index.html new file mode 100644 index 0000000000..088404a0be --- /dev/null +++ b/2023-06-23-goedel/index.html @@ -0,0 +1,28 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the teams presented two papers at ICE 2023.

Details

+ + + + \ No newline at end of file diff --git a/2023-06-23-hydra/index.html b/2023-06-23-hydra/index.html new file mode 100644 index 0000000000..1454bec26f --- /dev/null +++ b/2023-06-23-hydra/index.html @@ -0,0 +1,36 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Franco Testagrossa
Pascal Grange

High-level summary

This week, the Hydra team shared progress updates during the monthly review +meeting (monthly report and video recording available soon) and started +experimenting on preview network with the new commit from external wallet +feature.

What did the team achieve this week

  • Monthly report & review meeting, demonstrating commit from external +wallet
  • Published regular benchmarks for +Hydra
  • Moved forward the journey for external commits using multiple script UTxOs +#903
  • Changed the API to only put transaction id in snapshots, instead of the full +transactions #922 -> this +is now evolved into fully addressing #728
  • Fuel marking is now optional as one can now commit from an external wallet +#924
  • Add flag option to display node version on tui +#934

What are the goals of next week

  • Complete external commits using multiple script UTxOs #903
  • New release 0.11.0
  • Dirtroad solution of improved persistence performance #913
+ + + + \ No newline at end of file diff --git a/2023-06-23-network/index.html b/2023-06-23-network/index.html new file mode 100644 index 0000000000..c144eeb2af --- /dev/null +++ b/2023-06-23-network/index.html @@ -0,0 +1,45 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

Network Update

Key contributions

We held a series of session to review the implementation of big ledger peers +(eclipse evasion). See #4462.

We get a request from a 3rd party to clarify an inconsistency between CDDL spec +and protocol implementation. We worked out a nice solution which takes +advantage of the any notion available in CDDL. On the Haskell side we +provide Any type which gen generate almost any CBOR term (some are excluded +only because they are not decoded back to the same form, and we relay on that +property). See #4580.

We fixed a bunch of problems of the cardano-cli ping command. It also now has +a limited support of node-to-client mini-protocol (the -c option is +ignored, as it cannot be supported by node-to-client protocol). Note that +the format of messages has changed, timestamps are printed in ISO8601 format. +See #4601, #5326, #5313, #30

In order to provide a new flag in the topology file which enables ledger peers +when the chain is close to the tip, we continued to work on #4530. This is +currently in review, the consensus team will need to provide us with the new +api. This feature is useful for two reasons: makes it easier to maintain +a topology file, it will also limit the traffic on public roots generated by +for example full node wallets and distribute it to ledger peers.

We also continued to work on a blog post which describes the journey of design +& implementation of the dynamic P2P network layer. Too be announced soon :).

Other smaller changes

We limit the concurrency of resolving dns names. Up to 8 root peers or ledger +peers DNS names are resolved concurrently, and at most 2 local root peer DNS +names. See #4596.

We fixed handshake query timeout in #4603.

We renamed one of the block-fetch decision constructors as requested by the +consensus team, see #4608.

+ + + + \ No newline at end of file diff --git a/2023-06-23-sre/index.html b/2023-06-23-sre/index.html new file mode 100644 index 0000000000..bce94046e7 --- /dev/null +++ b/2023-06-23-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· One min read
John Lotoski

High level summary

The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include:

  • A devx-ci cluster containing a Hydra build server and Linux build farm was stood up and is intended to replace Cicero functionality
  • Cardano Sanchonet environment was stood up to test Conway era functionality
  • Cardano-node nixos service was updated to support the latest p2p topology format and non-systemd socket activation use case
  • Cardano-node 8.1.1 was deployed to preview, preprod and mainnet environments

Lower level summary

Cardano-node

  • Update cardano-node nixos service for updated p2p topology and non-systemd socket activation: cardano-node-pull-5318

Cardano-ops

Cardano-world

Ci-ops

Ci-world

  • Add devx-ci cluster integration for caching, monitoring during cicero to devx-ci transition: ci-world-compare

Devx-ci

  • A CI cluster with a hydra build server was stood up and is intended to replace usage of Cicero: devx-ci-repo

Iohk-nix

+ + + + \ No newline at end of file diff --git a/2023-06-28-consensus/index.html b/2023-06-28-consensus/index.html new file mode 100644 index 0000000000..8a73319f6d --- /dev/null +++ b/2023-06-28-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales

High level summary

During the past two weeks the team working on the Genesis implementation continued to engage with the researchers, which resulted in various simplifications of the correctness argument for the historical Genesis window. They also decided on an approach for a syncing node to decide that it is (no longer) caught up. This functionality was requested by the networking team.

The team working on the UTxO-HD implementation ran ad-hoc benchmarks that showed performance issues, which are being investigated. They also merged several improvements required for the first UTxO-HD release, and added a package for easing integration with other downstream components.

Regarding our support activities, we integrated the latest Ledger changes into Consensus in preparation for release 8.2 of node.

Genesis

  • We continued to engage with the researchers on our probabilistic model for historical Genesis window, resulting in various simplifications that make the correctness argument more clear while not being excessively conservative.

  • We decided on an approach of how to implement functionality requested by the Networking team; namely, how a syncing node can safely conclude that it is (no longer) caught up. Certain parameters are still subject to discussion with the researchers, and we have still have to agree on a concrete API for this functionality with the Networking team.

UTxO-HD

  • We merged the last of the PRs that were part of UTxO-HD improvements for version 0.1: expose UTxO-HD configuration options in the node, refactor ledger tables, and expose a method of computing the UTxO set size.
  • We added a new "legacy" cardano block in a new ouroboros-consensus-cardano-legacy-block package that should ease the transition for some downstream packages to UTxO-HD, like db-sync. This is really only useful for downstream packages that use the parts of consensus that don't involve the storage components, in which case we can largely ignore ledger tables. Ignoring ledger tables could also make functionality like block (re-)application more performant for the legacy Cardano block as compared to the actual (UTxO-HD compatible) Cardano block.
  • We performed ad-hoc benchmarks of the UTxO-HD implementation, observing a regression in sync speed in the LMDB implementation as well as a regression in memory usage on the in-memory implementation. We are investigating this.
+ + + + \ No newline at end of file diff --git a/2023-06-28-performance-and-tracing/index.html b/2023-06-28-performance-and-tracing/index.html new file mode 100644 index 0000000000..dd91f5bae4 --- /dev/null +++ b/2023-06-28-performance-and-tracing/index.html @@ -0,0 +1,26 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 2 min read
Michael Karg

High level summary

  • Benchmarking: We've performed several new benchmarks and a performance investigation in preparation of switching the default compiler to GHC9.
  • Infrastructure: The first batch of refactoring and documentation for our tx-generator has been merged to master.
  • Tracing: We've looked into an issue where the tracing system's concurrency could prevent a graceful node shutdown.
  • Nomad backend: Our new cloud backend has seen various improvements regarding deployment and monitoring; validation runs for the backend are ongoing.

Low level overview

Benchmarking

The compiler switch to GHC9 as the default build platform for cardano-node and its components still has noticeable effects on system-wide performance metrics. An investigation into the different resource usage profiles of compiler versions does seem to indicate GHC9's significantly different inlining behaviour may produce those effects. We're currently locating the specific places in component code that have the most extensive effect in that regard.

Using the forge-stress approximation we set up, we could determine that above effect is not due to a range of RTS parameters, as for example the number of capabilites used by the node.

Infrastructure

The tx-generator is a crucial part of our tooling responsible for producing very specific workloads for our benchmarking cluster. In an effort to flesh out an API to make it reusable for more general use cases, a first set of refactorings has been merged to master. Additionally, this merge contained systematic documentation both for internal and for exposed areas of the code base.

Tracing

The tracing system's concurrency could under certain conditions prevent a graceful shutdown of the node. This issue did occur only after adding specific new traces on a development branch. We could localize and address that issue.

Nomad backend

With the data gathered from running the new nomad cloud backend, we've been able to address many, many small and medium-sized improvements. The deployment process has been restructured for better efficiency, and the healthcheck system could be fine-tuned to recognize severity of various conditions that might occur. Optimization of fetching all run data from the cloud for evaluation is in progress.

Additionally, we're continuing the new backend's validation by setting up test runs and looking into comparative analyses with metrics gathered from the current cluster backend.

+ + + + \ No newline at end of file diff --git a/2023-06-29-mithril/index.html b/2023-06-29-mithril/index.html new file mode 100644 index 0000000000..0636596196 --- /dev/null +++ b/2023-06-29-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 3 min read
Jean-Philippe Raynaud

High level overview

The Mithril team completed the design of the signer deployment model for the SPOs to run Mithril on their Cardano mainnet infrastructure, and implemented the associated Mithril Relay in the Mithril networks. They started working on the design and implementation of a stress test tool for benchmarking the aggregator performances. They worked on the refactoring of the Mithril Stake Distribution entity and the uniformization of the date types in the nodes. They also worked on implementing a new tool command in the aggregator and its first sub-command that helps avoiding re-genesis of the certificate chain when the structure of the certificate is updated. Additionally, they worked on implementing some monitoring for the Mithril infrastructure, and worked on a retry mechanism for the artifact creation of the aggregator.

Finally, they fixed some bugs, and they completed the upgrade of the Mithril networks to Cardano node v.8.1.1.

Low level overview

  • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
    • Worked on the issue Add infrastructure monitoring #987
  • Completed the epic Prepare Mithril Signer deployment model for SPO #862:
    • Completed the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
    • Completed the issue Adapt infrastructure to use Mithril Relay #1018
    • Completed the issue Announce the new signer deployment model in a dev blog post #1017
  • Worked on the epic Benchmark performances of Mithril Aggregator #904:
    • Worked on the issue Design & implement basic stress test tool for aggregator #991
  • Worked on bugs:
    • Completed the issue Aggregator does not exit on critical error #993
    • Completed the issue Computation of master certificate of an epoch is incorrect #1006
    • Completed the issue End to end tests are flaky #954
    • Worked on the issue 'testing-preview' network does not create certificates #1015
  • Worked on optimizations:
    • Completed the issue Dates format is not standardized #946
    • Completed the issue Add 'recompute-certificates-hash' command to aggregator #1001
    • Completed the issue Add a retry mechanism for artifact creation in aggregator #984
    • Completed the issue Log node version at startup in Aggregator/Signer #944
    • Completed the issue Reactivate Publish Results job in CI #978
    • Completed the issue Clean 'pending_snapshot' directory of aggregator #983
    • Completed the issue Update OpenAPI spec examples #1000
  • Worked on refactoring:
    • Completed the issue Refactor 'MithrilStakeDistribution' entity #967
    • Completed the issue Refactoring client #982
    • Completed the issue Refactor download code in client #1010
    • Worked on the issue Factorize protocol crypto operations #669
  • Worked on dependencies:
    • Completed the issue Upgrade Cardano node to '8.1.1' #973
+ + + + \ No newline at end of file diff --git a/2023-06-30-hydra/index.html b/2023-06-30-hydra/index.html new file mode 100644 index 0000000000..997e75283a --- /dev/null +++ b/2023-06-30-hydra/index.html @@ -0,0 +1,32 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team wrote and published the monthly report for June, +implemented the end-to-end functionality for external commits, and tested it on +the preview environment. They also listed Hydra as a tool on the Cardano +developer portal, providing more visibility for the project. The team clarified +the path forward for L2 protocol improvements and explored an alternative CI +approach using cabal instead of nix. Additionally, they released version 0.11.0, +marking another milestone in the projects development.

What did the team achieve this week

  • Written and published the monthly report for June
  • Implemented external commits end-to-end incl. tested it on preview #215
  • Listed Hydra as a tool on cardano developer portal
  • Cleared up path forward on L2 protocol improvements #728
  • Established an alternative CI using more cabal tools #923
  • Release version 0.11.0

What are the goals of next week

  • Spike on performance improvements of event sourced persistence #913
  • Complete ReqSn only sends transaction ids #728
  • Groom and plan last items for 0.12.0 (remove internal commit)
  • Improve reliability of benchmarks
+ + + + \ No newline at end of file diff --git a/2023-07-04-db-sync/index.html b/2023-07-04-db-sync/index.html new file mode 100644 index 0000000000..94dd7e0dfb --- /dev/null +++ b/2023-07-04-db-sync/index.html @@ -0,0 +1,32 @@ + + + + + +DB-sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB-sync Team Update

· One min read
Kostas Dermentzis

High level summary

We've made progress in all high level objectives

  • CIP-1694 integration design
  • UTxO-HD integration proof of concept
  • schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2 and tested
  • Many devx issues resolved

Lower level summary

  • We have improved and validated the design for the Conway integration in db-sync
  • Improved the initial integration of the UTxO-HD feauture branches which are under test
  • Prepared a new release 13.1.1.3 which supports node 8.1.1 +#1455.
  • This also fixes a bug +#1451
  • Added new tests to the new tx_out options +#1429
  • Fixed a chronic issue in db-sync related to exception handling and concurrency +This fixes many other issues and simplifies the logic in db-sync +#1447
  • A number of fixes and improvements in ci, docker, devx, docs +#1436#1442#1448#1452
+ + + + \ No newline at end of file diff --git a/2023-07-04-node-cli-api/index.html b/2023-07-04-node-cli-api/index.html new file mode 100644 index 0000000000..2853a2b78d --- /dev/null +++ b/2023-07-04-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2023-06-21 - 2023-07-04

High level summary

  • Started integration of conway era into the cardano-api,
  • Pre-release of cardano-cli 8.2.1 which enables creating goveranance "Update constitution" governance actionsas well as voting. Both only as SPO. DREP and CC will come in future releases.
  • Cardano-cli is moving to a top-level era command structure (i.e. cardano-cli conway, cardano-cli babbage, etc to accomodate for different fucntionalities available in diferent eras. In particular between Babbage and Conway governance-related functionalities.
  • Continue refactoring cardano-testnet
  • CI and docs house keeping on the new cardnao-cli and cardano-api repositories

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2023-07-06-developer-experience/index.html b/2023-07-06-developer-experience/index.html new file mode 100644 index 0000000000..23c9c8a987 --- /dev/null +++ b/2023-07-06-developer-experience/index.html @@ -0,0 +1,26 @@ + + + + + +Developer Experience Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Developer Experience Update

· 2 min read
Moritz Angermann

High level summary

The Developer Experience team has been dealing with day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, CI migration from Cicero to Hydra, and Buildkite to GitHub Actions. iohk-nix, haskell.nix, and devx have seen improvements.

Lower level summary

build support & maintainance

The DevX team has helped troubleshoot a few CI issues, and focused on helping to migrate from Cicero to Hydra, as well as from Buildkite to GitHub Actions.

compiler upgrades

Compatibility with 9.6 has been continued and most of our libraries are not 9.6 compatible. Only a few are not, we hope to have this done by the end of the month. We've also started preliminarily adding GHC 9.8 to our infrastructure for early compiler regression tests.

Hydra Tools

Our repository, input-output-hk/actions, has seen quite some improvements to facility the hydra <-> github integration.

haskell.nix

Haskell.nix has been maintained and updated with the addition of preliminary GHC 9.8 support.

devx

The devx repository has seen significant improvements, including the addition of GitHub Codespaces, and DevContainers. Integrated with our actions/devx GitHub Actions, we have a consistent set of tooling for

  • nix develop shells
  • GitHub CodeSpaces integration
  • VSCode DevContainer support
  • GitHub Actions integration

upstream tooling

Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

+ + + + \ No newline at end of file diff --git a/2023-07-07-crypto/index.html b/2023-07-07-crypto/index.html new file mode 100644 index 0000000000..9068ca527b --- /dev/null +++ b/2023-07-07-crypto/index.html @@ -0,0 +1,27 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· One min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • Sidechains: First version of snark-based ATMS
  • mithril: Full node verifier
  • kes_agent: Keep progress, and prepare CIP and CPS
  • CIPs and community: Finishing BLS12-381 CIP and working on a KECCAK CIP

Low level summary

kes_agent

Mithril

  • Final review of the implementation of Full Node Verifier #939. +Included benchmarks and further tests.

Sidechains

  • Schnorr signature implemented
  • ATMS signature implemented
  • First benchmarks show that for the committe size we expect, we need 2^21 constraints.

CIPs and community

  • Addressed some review comments in #PR506
  • Worked with the communityt on #PR524 to include Keccak as part of the next Plutus release.
+ + + + \ No newline at end of file diff --git a/2023-07-07-goedel/index.html b/2023-07-07-goedel/index.html new file mode 100644 index 0000000000..650c6da3f0 --- /dev/null +++ b/2023-07-07-goedel/index.html @@ -0,0 +1,30 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the teams have been working on finalising their ICE papers +for publication in EPTCS, formalising concensus, and investigating chain +sync.

Details

  • Preparing final versions of ICE papers

  • Reviewing the chain sync design and documentation

  • Refactoring the thorn calculus

  • First draft of Praos specification

  • Developing bounding factors on timeouts

+ + + + \ No newline at end of file diff --git a/2023-07-07-hydra/index.html b/2023-07-07-hydra/index.html new file mode 100644 index 0000000000..9020141962 --- /dev/null +++ b/2023-07-07-hydra/index.html @@ -0,0 +1,33 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Franco Testagrossa
Sasha Bogicevic

High-level summary

This week the Hydra team accomplished some nice progress. They secured the +network layer further by implementing authentication of the messages between the +peers in the Head protocol. In the process they also managed to separate +HeartBeat messages from the protocol ones which somewhat improved the quality of +code in Hydra. The team also finished work related to sending only transaction +ids in ReqSn messages, fixed an issue in the smoke tests, and improved benchmark +publishing on the website.

What did the team achieve this week

What are the goals of next week

  • Spike on performance improvements of event sourced persistence #913
  • Add new endpoint for submitting client transactions
  • Remove commit from internal wallet
+ + + + \ No newline at end of file diff --git a/2023-07-07-sre/index.html b/2023-07-07-sre/index.html new file mode 100644 index 0000000000..ed261fa98d --- /dev/null +++ b/2023-07-07-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· One min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements, supporting CI improvements, and general environment maintenance.

Some notable recent improvements include:

  • Improved cardano-node entrypoint handling to allow for clean restarts in the Nomad environment
  • Explorer component updates
  • Spongix caching server rewrite for R2 Cloudflare support and various performance improvements

Lower level summary

Cardano-node

Cardano-ogmios

Cardano-ops

  • Improve storage resize script, workaround systemd node signal handling, rescale p2p relays: cardano-ops-compare

Cardano-rosetta

Cardano-world

Spongix

  • Spongix caching server rewrite for Cloudflare R2 backend support plus misc improvements: spongix-simple-branch
+ + + + \ No newline at end of file diff --git a/2023-07-12-consensus/index.html b/2023-07-12-consensus/index.html new file mode 100644 index 0000000000..67050b4da2 --- /dev/null +++ b/2023-07-12-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

This week the team working on UTxO-HD discovered a space leak in the peer metrics code. This was communicated to the Networking team who has a proposed fix. The ad-hoc benchmarks that the team ran using a local immutable DB server showed good memory and time performance. We still have to check the performance on a memory constrained machine.

The team working on the Genesis design started onboarding the team of engineers that will implement the new Genesis protocol. This team is also finalizing the statistical model for historical Genesis feasibility.

On the support front, the team drafted an information exchange requirement (IER) for the Networking team to safely and efficiently control peer load.

+ + + + \ No newline at end of file diff --git a/2023-07-12-performance-and-tracing/index.html b/2023-07-12-performance-and-tracing/index.html new file mode 100644 index 0000000000..f5fe9e6306 --- /dev/null +++ b/2023-07-12-performance-and-tracing/index.html @@ -0,0 +1,26 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 3 min read
Michael Karg

High level summary

  • Benchmarking: The peformance investigation into the compiler switch to GHC9 is ongoing. Additionally, a roadmap for implementing Consensus QTAs has been developed.
  • Infrastructure: Our workbench has undergone some refactoring to seamlessly integrate its profiles into all available backends.
  • Tracing: Optimization of the new tracing system is ongoing and yielding good performance results.
  • Nomad backend: We developed a new feature for the nomad backend which allows pinning deployments to specific machines.

Low level overview

Benchmarking

Our analysis of the GHC9 build of cardano-node has produced several locations in the code base where the new compiler seems to miss opportunities for optimization. Our hypothesis is, that those can account for the difference in resource usage we observe when benchmarking with a full cluster run. Instructing the compiler on how to perform the optimizations which GHC8 apparently applied out of the box requires further investigation.

In an effort to define Quantitative Timeliness Agreements (QTAs) on a per-component basis, we have coordinated with the Consensus team and developed a roadmap for providing those on consensus level. Making use of the insight that system-level benchmarks allow, we intend to set up and calibrate a benchmark that can reliably predict a regression or optimization for select metrics before needing full integration into cardano-node. This will help tremendously in various ways: catching regressions much earlier, localizing them much easier, avoiding repeated component integration and much shorter feedback cycle.

Infrastructure

We have worked on seamless integration of our benchmarking profiles into the many available backends that the workbench provides. The goal was to be backend-agnostic, to guarantee that all benchmarking run artifacts be structurally identical as far as their file name, format and location are concerned. This lead to refactoring work and has already landed in master.

Tracing

Much effort went into further optimization of the new tracing system. After working on configuration to align both new and legacy tracing system with regard to their trace frequencies, we could uncover some increase in resource usage. This occurred for corner cases under very heavy load. These cases have been addressed already, and do now surpass the legacy tracing system in terms of performance.

Nomad backend

For reliable benchmarking results it is vital to introduce as few confounding factors as possible when performing runs. This includes hardware and network topology. The nomad backend has been outfitted with a mechanism to pin the nomad job for some node in our benhcmarking cluster to a specific machine instance. This greatly increases confidence in the metrics observed from a run.

Furthermore this feature will detect any change in the underlying hardware or topology so it can be taken into account. The new feature has been merged to master.

+ + + + \ No newline at end of file diff --git a/2023-07-13-mithril/index.html b/2023-07-13-mithril/index.html new file mode 100644 index 0000000000..e30eceb4eb --- /dev/null +++ b/2023-07-13-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team created a new 2327.0 distribution. They focused on preparing the beta launch on the mainnet: they tested the new production signer deployment model with the pioneer SPOs, they prepared an SPO on-boarding guide, and they kept working on the deployment and monitoring of the mainnet infrastructure. The team also worked on the implementation of a simple stress test tool for benchmarking the aggregator. Additionally, they completed the refactoring of the interface to the cryptographic library.

Finally, they fixed a bug that sporadically prevented the latest signer registration of a SPO to be used in the associated signing epoch, they fixed a bug in the epoch gap detection of the certificate chain in the aggregator, and worked on multiple other optimizations and bugs.

Low level overview

  • Released the new distribution 2327.0
  • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
    • Completed the issue Add infrastructure monitoring #987
    • Worked on the issue Deploy 'mainnet' infrastructure #988
    • Worked on the issue Handle Secrets management #989
  • Worked on the epic Benchmark performances of Mithril Aggregator #904:
    • Worked on the issue Design & implement basic stress test tool for aggregator #991
  • Worked on optimizations:
    • Completed the issue Remove certificate hash from Artifact #932
    • Completed the issue Check vulnerabilities in CI #1037
    • Completed the issue Add 'created_at' in Mithril Stake Distribution messages #1030
    • Completed the issue Add a 'run-only' option in end to end test #1048
  • Worked on refactoring:
    • Completed the issue Factorize protocol crypto operations #669
    • Completed the issue Refactor aggregator dependency injection and services #1058
    • Completed the issue Build static binaries in CI #874
  • Worked on documentation:
    • Completed the issue Prepare SPO on-boarding guide #1049
    • Completed the issue Add instructions to set firewall using iptables #1040
    • Completed the issue Update ufw command to set firewall on Mithril Signer installation instructions #1041
  • Worked on bugs:
    • Completed the issue Aggregator does not detect certificate chain epoch gap #952
    • Completed the issue 'testing-preview' network does not create certificates #1015
    • Completed the issue SQLite compatibility in aggregator #837
    • Completed the issue Q&A followup fixes #1035
    • Completed the issue E2E tests are flaky in CI #1023
+ + + + \ No newline at end of file diff --git a/2023-07-14-hydra/index.html b/2023-07-14-hydra/index.html new file mode 100644 index 0000000000..544a34f23e --- /dev/null +++ b/2023-07-14-hydra/index.html @@ -0,0 +1,31 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Franco Testagrossa
Sasha Bogicevic

High-level summary

This week the team focused on exploring the event sourced persistence in order +to improve hydra-node performance. Because of this work the team noticed we +need to refactor the emit snapshot emission logic and update the spec in the +light of new changes. They also took the time to revisit their goals and product +plans for the next quarter as well as doing some security fixes related to +multisignatures.

What did the team achieve this week

  • Finished spike about performance improvements of event sourced persistence #963.
  • Refactor snapshot emission in protocol logic.
  • Revisited our roadmap and goals.
  • Prepared and conducated a learning session on lean-waste.
  • Improve security of multi-signature checks, see this Github security advisory.
  • Implemented a cache friendly way to version our binaries #962.

What are the goals of next week

  • Implement Event sourced persistence #913.
  • Remove deprecated internal commit #954 and close #728.
+ + + + \ No newline at end of file diff --git a/2023-07-18-node-cli-api/index.html b/2023-07-18-node-cli-api/index.html new file mode 100644 index 0000000000..cb6210aa9e --- /dev/null +++ b/2023-07-18-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2023-07-05 - 2023-07-18

High level summary

  • Integrate Conway certificates in cardano-api
  • Prepare cardano-cli and cardano-api for cardano-node 8.1.2
  • Tagged cardano-cli 8.3.0.0
    • Query for the hash of the constitution (Conway)
    • Ability to create votes and governance actions
  • Tagged cardano-cli 8.3.1.0
    • Make it build with ghc-9.6
  • Upgrade to optparse-applicative-fork-0.18.1.0 for parsing command line options

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2023-07-20-goedel/index.html b/2023-07-20-goedel/index.html new file mode 100644 index 0000000000..a38b146683 --- /dev/null +++ b/2023-07-20-goedel/index.html @@ -0,0 +1,32 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is working on formalising mini protocols, the performance +modelling prototype and also finishing off their ICE papers.

Details

  • Formalization of the chain synchronization mini-protocol in the +thorn calculus

  • Final pre-publication steps for ICE 2023 papers

  • Developing approach for specification and verification of +mini-protocols

  • Started work on porting the DeltaQ framework to a new, more concrete +backend based on piecewise-polynomials

+ + + + \ No newline at end of file diff --git a/2023-07-21-hydra/index.html b/2023-07-21-hydra/index.html new file mode 100644 index 0000000000..81ac654b01 --- /dev/null +++ b/2023-07-21-hydra/index.html @@ -0,0 +1,36 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team updated the specification to align with recent +off-chain protocol changes, completed refactoring the snapshot emission +in preparation for event-sourced protocol logic, and updated to GHC +9.2.7, resulting in improved compile times and slightly smaller Plutus +scripts.

What did the team achieve this week

  • Updated the specification to match the recent off-chain protocol +changes to complete +#728
  • Refactored the snapshot emission logic in preparation for event +sourced protocol logic.
  • Updated to GHC 9.2.7, which led to improved compile times and +slightly smaller plutus scripts.

What are the goals of next week

  • Monthly review meeting next wednesday and July report
  • Reflect latest information onto our roadmap.
  • Actual implemention of event-sourced persistence +#913.
  • Update the use cases section on https://hydra.family
  • Remove deprecated internal commit +#954.
+ + + + \ No newline at end of file diff --git a/2023-07-21-ledger/index.html b/2023-07-21-ledger/index.html new file mode 100644 index 0000000000..71fcdf6773 --- /dev/null +++ b/2023-07-21-ledger/index.html @@ -0,0 +1,30 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

Our focus was on planning and implementing Conway features that we would like to see deployed and running on Sanchonet. +All members of the ledger team participated in the CIP-1694 workshop and had an in-person meeting, where we discussed plans forward for the Conway era. +We also investigated some transaction validation issues that occurred on preview with the latest node (for 8.2 release). +Additionally, we did some preparatory work that will help us define the types we need for Plutus V3 and integrate with the new version when it will become available. +We also made progress on the constraint-based generators, which can now generate valid transactions and ledger states.

What we achieved

  • [pull-3521] [pull-3554] Improved Governance model (GovernanceProcedures, ProposalProcedure)
  • [pull-3520] Improved Governance-related naming (Renamed Tally to Gov and VDel to GovCert )
  • [pull-3531] Refactored and simplified code interacting with Plutus
  • [pull-3558] Fixed a bug that was breaking validation on preview, related to refernce inputs witnesses. We backported and released the fix.
  • [pull-3550] For Conway to run on Sanchonet, we updated the era Translation to remove zero-ADA outputs. This was necessary because such outputs exist on mainnet, but in Conway they are not allowed.
  • [pull-3551] [pull-3546] [pull-3472] Updated tools and added some small improvements
  • [issue-3146] [pull-3498] Introduced Conway protocol parameters
  • [issue-2948] [pull-3499] Implemented ConwayGenesis with the new protocol parameters

What is currently in progress

+ + + + \ No newline at end of file diff --git a/2023-07-21-sre/index.html b/2023-07-21-sre/index.html new file mode 100644 index 0000000000..9a0deeda32 --- /dev/null +++ b/2023-07-21-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· One min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent improvements include:

  • Re-spin sanchonet for testing a new node version followed by fork to Conway
  • Deploying a sanchonet compatible faucet to sanchonet
  • Migrate shelley qa legacy environment to cardano-world

Lower level summary

Cardano-node

Cardano-ops

  • Mainnet relays are 50% migrated to p2p topology and 1 relay per region dedicated for ledger peers: cardano-ops-compare

Cardano-world

Iohk-nix

+ + + + \ No newline at end of file diff --git a/2023-07-26-consensus/index.html b/2023-07-26-consensus/index.html new file mode 100644 index 0000000000..f8e1685d41 --- /dev/null +++ b/2023-07-26-consensus/index.html @@ -0,0 +1,28 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

The db-sync team confirmed that the adaptor module the Consensus team provided for UTxO-HD integration, shows no performance degradation. Other clients who wish to integrate with UTxO-HD without using a on-disk storage could use that same approach for now. +We also focused on completing tracing support for UTxO-HD in cardano-node. +Currently we are working on UTxO-HD documentation, both for downstream consumers and for the general public; and generalizing the implementation further.

The team working on Genesis decided on a Genesis-motivated change of the epoch structure with the researchers, wrote a self-contained description of the statistical model for historical Genesis windows and eclipse durations, and merged two small improvements to the ChainSync client as part of the onboarding efforts for the team that will implement Genesis.

The Consensus team also investigated an issue on sanchonet (the Conway testnet) manifesting in long syncing pauses; identified a ledger bug which was promptly fixed by the Ledger team.

Genesis liaising

Improvements to the ChainSync client:

+ + + + \ No newline at end of file diff --git a/2023-07-27-mithril/index.html b/2023-07-27-mithril/index.html new file mode 100644 index 0000000000..230e2aaeb9 --- /dev/null +++ b/2023-07-27-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team launched Mithril protocol’s mainnet beta: the release-mainnet network is now open for signer registrations, and its genesis certificate has been created. The team is monitoring the network, and expects it to start producing certificates during the next Cardano epoch.

They have released a new distribution 2329.0, which is running on the release-mainnet network. They also kept working on the implementation of the stress test tool for benchmarking the aggregator. The team kept working on the refactoring of the serialization/deserialization of the entities of the cryptographic library. Additionally, they completed the cleanup of the legacy store adapters in the aggregator.

Finally, they have worked on enhancing the documentation for onboarding SPOs and setting up a Mithril signer, and fixing installation bugs of the binary artifacts produced in the CI.

Low level overview

  • Created the dev blog post Mithril Protocol’s Mainnet Beta Launch
  • Released the new distribution 2329.0
  • Closed the epic that prepares the Mithril infrastructure for mainnet #767:
    • Completed the issue Deploy 'mainnet' infrastructure #988
    • Completed the issue Handle Secrets management #989
  • Worked on the epic Release 'mainnet' Mithril network #918
    • Completed the issue Prepare SPO on-boarding guide #1049
  • Worked on the epic Benchmark performances of Mithril Aggregator #904:
    • Worked on the issue Design & implement basic stress test tool for aggregator #991
  • Worked on optimizations:
    • Completed the issue Enhance the configuration of Mithril relay #1080
    • Completed the issue Remove legacy store adapters from aggregator #1053
    • Completed the issue Add a 'sign' sub-command to 'genesis' command in aggregator #1081
  • Worked on refactoring:
    • Worked on the issue Refactor (de)serialization of crypto entities #668
  • Worked on documentation:
    • Completed the issue Enhance 'Run a Mithril Signer node (SPO)' guide #1055
  • Worked on bugs:
    • Completed the issue Shared library error in CI binaries #1073
    • Completed the issue Debian package does not install cleanly on older ubuntu versions #834
    • Completed the issue Aggregator panics with new (de)serialization of 'ProtocolVerificationKey' #1083
+ + + + \ No newline at end of file diff --git a/2023-07-28-hydra/index.html b/2023-07-28-hydra/index.html new file mode 100644 index 0000000000..ef9421eb5d --- /dev/null +++ b/2023-07-28-hydra/index.html @@ -0,0 +1,33 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

During this week, the Hydra team achieved significant progress in various areas. +They conducted the monthly review meeting for July, which continously ensures +transparent communication and project evaluation. The team migrated the core +logic of the node to an event-sourced architecture and incremental writes of +events to persistence, enhancing the projects performance and maintainability. +Furthermore, the team added the ability to read protocol parameters via the API +and fixed the CI workflows to support pull requests from forks of external +contributors, streamlining the development process for community involvement.

What did the team achieve this week

  • Held the monthly review meeting for July (recording)
  • Migrate the core logic of the node to an event-sourced architecture #999
  • Updated persistence to faster incremental writes of events #1000
  • Added ability to read protocol parameters via API #735
  • Fix CI workflows to support pull requests from forks of external contributors #993
  • Updated to GHC 9.2.8 #1005
  • Prepared an updated use cases section on https://hydra.family (published with next release)

What are the goals of next week

  • Publish monthly report
  • Complete user transaction submission work #966
  • Remove commit from internal wallet (deprecated) #954
+ + + + \ No newline at end of file diff --git a/2023-07-31-network/index.html b/2023-07-31-network/index.html new file mode 100644 index 0000000000..53bc22b5cf --- /dev/null +++ b/2023-07-31-network/index.html @@ -0,0 +1,40 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 3 min read
Marcin Szamotulski

Network Update (Sprints 39 & 40)

The network updates got distracted. Mostly because of me leaving for the meeting in Edinburgh, Scotland and the being away. +It was great to see and talk to so many of the community members.

Sprint 39 (Jun 26 - Jul 09)

Major changes

Now the following list of traces will be turned on by default:

node-to-client protocol
  • LocalConnectionManagerTracer
  • LocalInboundGovernor
  • LocalHandshake
  • LocalServer
node-to-node protocol
  • Server

See cardano-node#5353. This will be released in node-8.2.0.

We made sure that cardano-client-0.1.0.x library (which is db-sync) is not using the experimental node-to-client protocol. +The cardano-client-0.2.0.0 was not affected. +See ouroboros-network#4612.

We merged the dynamic block production feature to ouroboros-consensus (also available in the cardano-node-8.2.0 release). +Dynamic block production enables hot-swap p2p nodes, which are important for the p2p deployment of block-producing nodes. +See ouroboros-network#3159, [ouroboros-consensu#140].

We continued to review the implementation of big ledger peers for eclipse evasion, see ouroboros-network#4462.

Minor changes

Sprint 40 (Jul 09 - Jul 23)

Major changes

We integrated ouroboros-network-0.8.2.0 with the master branch of cardano-node for the 8.2.0 release (the version match between ouroboros-network and cardano-node is purely accidental). +This includes:

  • integration with dynamic block production feature. +This feature is documented in the following PR.
  • Warm valency for local root peers (see below).

For the full list of features included in the 8.2.0 release from the network side, please take a look at the pre-release nodes.

We improved the memory footprint of peer metrics measured by the P2P stack. +Peer metrics are used to decide which peers to demote every churn interval (roughly every hour with some probabilistic fluctuation). +See ouroboros-network#4620. +The improvement will be available in cardano-node-8.2.0.

We added an optional explicit warm valency to local root peers of the P2P topology file. +Previously we used an implicit valency, e.g. the node keeps connections to all of the local roots; with local warm valency the node will pick only that many peers from the local root peers group to connect to. +The hot valency (previously known simply as valency) hasn't changed, but it must be smaller than the warm valency as hot peers are selected from warm ones. +Warm valency is a useful feature to limit resource consumption if one of the domain names in the local root peer group resolves to many IP addresses. +See ouroboros-network#4575, cardano-node#5409.

+ + + + \ No newline at end of file diff --git a/2023-08-01-node-cli-api/index.html b/2023-08-01-node-cli-api/index.html new file mode 100644 index 0000000000..58268d729f --- /dev/null +++ b/2023-08-01-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2023-07-19 - 2023-08-01

High level summary

  • Release of Node 8.2.0
    • Updates to the ledger packages extend progress on the Conway ledger era to support new governance features via CIP-1694.
    • This release is phase 1 of the SanchoNet roll out
    • Allows SPOs to vote on changes to the on-chain constitution.
    • Ability to start the node in block production mode with no secrets loaded using the --non-producing-node flag.
    • Updates to the networking packages prepare the road for peer sharing.
  • cardano-cli and cardano-api continue to integrate Conway era features
  • Continue refactoring of cardano-testnet

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2023-08-04-crypto/index.html b/2023-08-04-crypto/index.html new file mode 100644 index 0000000000..bae3e4ad45 --- /dev/null +++ b/2023-08-04-crypto/index.html @@ -0,0 +1,27 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· One min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
  • mithril: Full node verifier
  • musig2: Finalised the missing fuzz tests
  • kes_agent: engineer on PTO. Work halted

Low level summary

Mithril

  • Work on a mithril flaky test #1105
  • Keep working on Full Node Verifier #939. +Should be merged in the coming week.

MuSig2

  • Finalised the fuzz tests #43

Sidechains

  • Analysis of Halo2 verifier. Necessary for a future implementation of a plutus verifier.
+ + + + \ No newline at end of file diff --git a/2023-08-04-goedel/index.html b/2023-08-04-goedel/index.html new file mode 100644 index 0000000000..af3395f434 --- /dev/null +++ b/2023-08-04-goedel/index.html @@ -0,0 +1,31 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is formalising mini protocols and also further developing the +performance modelling prototype.

Details

  • Developing new framework for specification and verification of +mini-protocols which is closer to the Haskell implementation.

  • Developed a new internal representation for the DeltaQ algebra that +allows for more modularity in backend implementations

  • Discussions regarding the Cardano networking specification

+ + + + \ No newline at end of file diff --git a/2023-08-04-hydra/index.html b/2023-08-04-hydra/index.html new file mode 100644 index 0000000000..2674b03011 --- /dev/null +++ b/2023-08-04-hydra/index.html @@ -0,0 +1,33 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team achieved notable progress in various aspects of the +project. The team updated the use case section for auctions on the /unstable +branch of the website, improving the understanding of Hydras applicability.

From the development side, the team successfully completed event-sourced +persistence, a key enhancement in the projects architecture which improves +off-chain transaction processing performance. They also added a +submit-transaction endpoint to the API.

In addition to project-related progress, the team actively engaged in community +reviews for several catalyst proposals related to Hydra and Mithril, +contributing to the wider Cardano ecosystem.

Finally, the full report for the month of July was also published here.

What did the team achieve this week

  • Published the monthly report for July
  • Updated the use case section for auctions (published on /unstable branch)
  • Completed event sourced persistence #913
  • Added a submit-transaction endpoint to the API #966
  • Community reviews for several catalyst proposals related to Hydra and Mithril
  • Created a network testing tool (hydra-net) #1006

What are the goals of next week

  • Update hydra-node to work with cardano-node version 8.x
  • Remove the internal commit functionality
  • Release version 0.12.0
  • Update & streamline tutorial to work with latest version of hydra-node
+ + + + \ No newline at end of file diff --git a/2023-08-04-ledger/index.html b/2023-08-04-ledger/index.html new file mode 100644 index 0000000000..f3c068adaa --- /dev/null +++ b/2023-08-04-ledger/index.html @@ -0,0 +1,29 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

The ledger team was working almost exclusively on the Conway era implementation. In +particular, the main focus was directed towards solidifying transaction related types and +their binary representation. We also directed some effort into unblocking Plutus team with +respect to PlutusV3 integration.

Low level summary

Conway progress

  • pull-3552 - Allow Constitutional Committee Hot Key to be ScriptHash
  • pull-3581 - Make Constitutional Committee Cold Key to be ScriptHash
  • pull-3571 - Implement a portion of the TICKF rule.
  • pull-3556 - Add Script to Constitution
  • pull-3576 - Add optional Anchor to ConwayRegDRep certificate
  • pull-3495 - Implement refund logic for Proposal deposits
  • pull-3579 - Change voting procedure in the transaction to a nested Map
  • pull-3585 - Rename CommitteeCert into a GovCert
  • pull-3587 - Remove DelegStakeTxCert from the COMPLETE pragma for TxCert
  • pull-3586 - Add CurrentTreasuryValue to TxBody
  • pull-3588 - Rename key roles
  • pull-3557 - Update NewCommittee action to use RewardAcnt and add more info
  • pull-3595 - Add ConwayUpdateDRep constructor to ConwayTxCertGov type
  • pull-3600 - Filter out zero TxOuts on Byron/Shelley boundary instead of Babbage/Conway
  • pull-3597 - Update ProposalProcedure return address to be a RewardAcnt

Testing

  • pull-3374 - New features for generation subject to constraints
  • pull-3519 - Basic Conway features test

Bugfixes

Plutus integration

  • issue-3538 - A fairly complete specification was created for the PlutusV3 context
  • pull-3593 - Conway TxInfo for PlutusV3 is now compatible with all pre-Conway functionality

Improvements and releasing

  • pull-3574 - Improve clarity and performance of collateral Non-ADA validation:
  • pull-3573 - Update top-level CHANGELOG.md with cardano-node relevant changes
  • pull-3555 - Bump pygments from 2.12.0 to 2.15.0 in /doc
  • pull-3575 - Bump certifi from 2022.12.7 to 2023.7.22 in /doc
  • pull-3567 - Backport mint field translation bugfix
  • pull-3568 - Fixed typo in byron ledger spec
  • pull-3572 - Release/backport tickf bugfix
+ + + + \ No newline at end of file diff --git a/2023-08-04-network/index.html b/2023-08-04-network/index.html new file mode 100644 index 0000000000..f8e900e391 --- /dev/null +++ b/2023-08-04-network/index.html @@ -0,0 +1,46 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High-level overview of sprint 41

24th July - 6th August 2023

We started the implementation of bootstrap peers. Bootstrap peers are designed +to provide a safety guarantee for nodes joining the network while still taking +advantage of the distributed network for nodes that are synced. This will be +an intermediate step before Genesis which will allow for further distribute the +system. The bootstrap peers will be run by some trusted partners like CF, +Emurgo or IOG. They are primarily designed for leaf nodes (e.g. full node +wallets), which often end up syncing and require access to the honest chain. See +ouroboros-network#4615 for a more detailed implementation plan.

Other contributions

We started to use nothunks library to discover if we have any unevaluated +thunks which can lead to memory leaks ouroboros-network#4633. We found +a small one in the peer metric component of the P2P networking stack. Fixing +it put us on a small detour of fixing the API of the strict-checked-vars +package: cardano-base#431, cardano-base#432, as well as adding NFData +instance to io-classes. We also improved nothunks +library to make debugging easier and we provided a NoThunks instance for +ThreadId which we will need in the future (see nothunks#33).

We released a new version of io-classes (version 1.2.0.0) and related +packages to Hackage.

We addressed all review comments on the eclipse evasion PR which introduces big +ledger peers, ouroboros-network#3886.

We fixed how SIGHUP signal handlers are registered, so it's not possible to +shutdown a node which was starting while trying to update network topology, +see cardano-node#5421.

I didn't mention that in the previous update, so here it goes: in the previous +sprint we released ouroboros-network-0.8.2.0 and +ouroboros-network-framework-0.7.0.0.

+ + + + \ No newline at end of file diff --git a/2023-08-04-performance-and-tracing/index.html b/2023-08-04-performance-and-tracing/index.html new file mode 100644 index 0000000000..2b881b6e47 --- /dev/null +++ b/2023-08-04-performance-and-tracing/index.html @@ -0,0 +1,33 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 2 min read
Michael Karg

High level summary

  • Benchmarking: We're adjusting the benchmarking cluster to handle runs for node version 8.2.0.
  • Tracing: We've finished optimization of the new tracing system and added extra robustness with regard to namespacing.
  • Infrastructure: We've been working on making all benchmarking code compliant with the latest GHC9.6.
  • Nomad backend: The new backend has seen adjustments due to a change of underlying hardware. Additionally, we've successfully performed various benchmarking runs on it.

Low level overview

Benchmarking

The 8.2.0 version of cardano-node required adjustment of some of the sanity checks that are part of our benchmarking +cluster automation. We've pinpointed the necessary changes and are currently setting up the cluster for the new node version.

Tracing

The optimization efforts for the new tracing system have been completed and have significantly reduced the resource footprint +when using it as default for a running node.

A linchpin of the new system is the organization of traces into a namespace hierarchy. This affects configuration, self-documentation as well as rendering of desired trace messages. The new system is now equipped to detect any +inconsistency in the whole set of tracers, defined across all components, even if they are never turned on in a running node. +This feature adds another layer of robustness to the whole system.

Infrastructure

A potential switch to GHC9.6 (or higher) required some work on our code bases to make it compliant with recent compiler +versions. We've future-proofed our benchmarking code.

Nomad backend

The hardware cluster that our nomad backend was accessing has been changed, and we were able to adjust our backend +accordingly without touching its higher level abstractions and functionality. Moreover, with the new hardware and cluster setup, certain tasks such as retrieving run artifacts or healthcheck monitoring have become more performant.

The validation phase is ongoing. We were able to perform successful runs and analyses for various 8.x node versions, including 8.2.0-pre. With parallel runs on the current cluster, we hope to measure the same effects we've observed with the +nomad backend - which will be a big step towards production use.

+ + + + \ No newline at end of file diff --git a/2023-08-04-sre/index.html b/2023-08-04-sre/index.html new file mode 100644 index 0000000000..b55ccc1672 --- /dev/null +++ b/2023-08-04-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· One min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent updates or improvements include:

  • Preprod and preview envionments were updated to 8.1.2.
  • Sanchonet and shelley-qa environments were updated to 8.2.0-pre.
  • Work on a new cardano performance repo which utilizes a lightweight Cloudformation/Rain to Terraform infra bootstrap and Nomad environment has begun.

Lower level summary

Cardano-ops

Cardano-perf

Cardano-world

+ + + + \ No newline at end of file diff --git a/2023-08-09-consensus/index.html b/2023-08-09-consensus/index.html new file mode 100644 index 0000000000..bc40f32dec --- /dev/null +++ b/2023-08-09-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales

High level summary

This week the Consensus team worked on integrating the latest node release into the UTxO HD branch. Our ad-hoc benchmarks in which we sync a node from scratch showed that the LMDB backend uses around 8GB of memory. We also released new versions of fs-sim and fs-api, and released strict-checked-vars.

UTxO-HD

  • Rebased UTxO-HD on top of node 8.2 (issue)
  • Address new Maybe translations for UTxOs in Conway 1.6. (PR).
  • Performed ad-hoc benchmarking syncs with both implementations. The LMDB backend uses around 8GB of memory.
  • Fixed an infinite loop on the mempool tracing code that was preventing the node from shutting down gracefully.
  • Fixed an infinite loop on the ledger state query for traversing queries that prevented the node from running QueryUTxOByAddress (PR).
  • Measured the speed of QueryUTxOByAddress under different queryBatchSize values. There is a significant performance degradation for these queries when using the UTxO-HD version. Using the mainnet UTxO set at slot 90 million, querying an address took 40 seconds using the in-memory backend and 90 seconds using the LMDB backend, whereas the baseline took 7 seconds. We need to investigate if we can improve this situation or whether an external service that runs alongside the node is a better solution.
  • Refactored and implemented ledgertable-related classes for the general HardforkBlock.

Genesis

  • Frisby and Esgen continue to engage with the Researchers on grinding against the Genesis design.

Fostering collaboration

  • Drafted a document explaining versioning of local state queries #273.

Support

  • Frisby is the release engineer this cycle.
  • Successfully created work-in-progress ouroboros-consensus and cardano-api commits that integrate the 2023 Aug 7 tip of cardano-ledger. This will require a release of ouroboros-consensus, which hasn't happened yet.
+ + + + \ No newline at end of file diff --git a/2023-08-10-mithril/index.html b/2023-08-10-mithril/index.html new file mode 100644 index 0000000000..d6b10141e8 --- /dev/null +++ b/2023-08-10-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team completed the Mithril protocol’s mainnet beta launch: the release-mainnet network is now consistently producing new certificates and snapshots! The team has released a new distribution 2331.1 which includes some optimizations and bug fixes: the bootstrap time of a Cardano node restored from a Mithril snapshot has been significantly reduced, and a bug that made the aggregator produce corrupted archives has been fixed. They also kept working on the implementation of the stress test tool for benchmarking the aggregator: the first phase has been implemented, as well as a monitoring feature. Additionally, they kept implementing the refactoring of the serialization/deserialization of the entities of the cryptographic library, and working on the post deployment of the mainnet infrastructure.

Finally, they completed the rewriting and enhancements of the documentation website, and they completed the runbook for operating a production Mithril network.

Low level overview

  • Released the new distribution 2331.1
  • Completed the epic Release 'mainnet' Mithril network #918
  • Worked on the epic Benchmark performances of Mithril Aggregator #904:
    • Completed the issue Design & implement basic stress test tool for aggregator - phase 1 #991
  • Worked on the epic Post deployment 'mainnet' infrastructure #1091:
    • Completed the issue Create Production Infrastructure Runbook #1085
    • Completed the issue Ingest 'mainnet' metrics/logs in Grafana #1122
  • Worked on optimizations:
    • Completed the issue Add a 'clean' file to extracted database in client #1131
    • Worked on the issue Create explorer page with registered signers #1097
  • Worked on refactoring:
    • Worked on the issue Refactor (de)serialization of crypto entities #668
  • Worked on bugs:
    • Completed the issue Client fails to unpack some snapshot archive #1137
    • Completed the issue The 'release-preprod' network stopped producing certificates #1114
    • Completed the issue The 'release-mainnet' network does not show up in the explorer #1111
  • Worked on dependencies:
    • Completed the issue Upgrade Cardano node to '8.1.2' #1090
  • Worked on troubleshooting:
    • Completed the issue Signer can't sign with 'Invalid signature for party' error #1125
+ + + + \ No newline at end of file diff --git a/2023-08-11-hydra/index.html b/2023-08-11-hydra/index.html new file mode 100644 index 0000000000..0aa569da29 --- /dev/null +++ b/2023-08-11-hydra/index.html @@ -0,0 +1,34 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Franco Testagrossa
Sebastian Nagel

High-level summary

This week, the Hydra team updated hydra-node to support cardano-node version +8.1.2, ensuring compatibility with the latest mainnet release. The team also +participated in discussions about a "cardanonical" JSON schema and added it as a +submodule to the project, contributing to improved data modeling and +interoperability.

In terms of community engagement, the team successfully onboarded a new +contributor, also participated in a RareEvo Twitter space, and continued +preparations for the Hydra master-class.

What did the team achieve this week

  • Updated dependencies to support cardano-node 8.1.2 #1007
  • Engaged in discussions about a cardanonical json schema and +add it as submodule to the project +#1013
  • Onboarded a new contributor to the hydra project (@locallycompact)
  • Joined RareEvo twitter space and continued preparation of hydra master-class

What are the goals of next week

  • Update & streamline tutorial to work with latest version of hydra-node
  • Remove the internal commit functionality #954
  • Release 0.12.0
+ + + + \ No newline at end of file diff --git a/2023-08-11-performance-and-tracing/index.html b/2023-08-11-performance-and-tracing/index.html new file mode 100644 index 0000000000..d9e4f33b8a --- /dev/null +++ b/2023-08-11-performance-and-tracing/index.html @@ -0,0 +1,30 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 2 min read
Michael Karg

High level summary

  • Benchmarking: We've concluded benchmarking node version 8.2.0.
  • Tracing: Optimization of the new tracing system has been merged; we're currently working on self-documenting tracing configuration.
  • Nomad backend: A PR that makes our backend take advantage of added flexibility of the new hardware cluster has been merged.

Low level overview

Benchmarking

As part of our release benchmarking cycle, we've completed and analysed the runs for the 8.2.0 version of cardano-node. In addition to the adjustment of sanity checks in our automation, we had to implement small changes in the analysis pipeline as well to accomodate the new version.

Tracing

A significant amount of optimizations for the new tracing system has finally been merged to master. At the moment, +we're working on having a trace message self-document the final tracing configuration of a running node. Apart from adding +insight into the system, this feature also aims at making future hot reloading of tracing configuration explicit and straightforward.

Furthermore, we're setting up a final round of system integration level benchmarks comparing new against legacy tracing.

Nomad backend

The new hardware cluster permits greater flexibility as far as SSH access is concerned. By using nomad for a consistent +and reliable deployment, but taking advantage of direct connections for healthchecks and data transfer we believe we were +able to reduce overall network latency in the nomad cluster. This improves confidence when capturing all network related measurements during our benchmarks.

A PR that adds these capabalities to our nomad backend - along with very many quality-of-life improvements - has been merged to master.

+ + + + \ No newline at end of file diff --git a/2023-08-15-node-cli-api/index.html b/2023-08-15-node-cli-api/index.html new file mode 100644 index 0000000000..0ddc463b41 --- /dev/null +++ b/2023-08-15-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2023-08-02 - 2023-08-15

High level summary

  • cardano-node 8.2.1 (pre-release) to SanchoNet
  • Continue moving CLI into era-based top level command structure
  • Wire-up DREP key generation,
  • Fix DREP deregistration certificates
  • Implement Constitutional Committee Key generation on the CLI
  • Introducing era-based protocol parameters on the API
  • Removing depracated functions and types on the API

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

Fix broken links in docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2023-08-17-crypto/index.html b/2023-08-17-crypto/index.html new file mode 100644 index 0000000000..81a7c88b19 --- /dev/null +++ b/2023-08-17-crypto/index.html @@ -0,0 +1,26 @@ + + + + + +Crypto Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Crypto Team Update

· One min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
  • mithril: Full node verifier
  • musig2: Include MuSig2 description in cryptography handbook
  • kes_agent: Finilising test and CI. Working on KES binary

Low level summary

Mithril

  • Full Node Verifier merged #939.

MuSig2

  • Started describing MuSig2 to include it as part of the cryptography handbook

Sidechains

  • Analysis of Halo2 verifier with the goal of implementing SNARK verifier in Plutus. Implemented ad-hoc IPA verifier. Work progress in this fork.

KES agent

  • KES agent is ready:
    • CI ready #19
    • Receipt confirmation message #20
    • KES agent binary ready #21
    • Control client implemented #11
+ + + + \ No newline at end of file diff --git a/2023-08-17-db-sync/index.html b/2023-08-17-db-sync/index.html new file mode 100644 index 0000000000..16a5cf1126 --- /dev/null +++ b/2023-08-17-db-sync/index.html @@ -0,0 +1,34 @@ + + + + + +DB-sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB-sync Team Update

· One min read
Kostas Dermentzis

High level summary

We have integrated many new Conway feutures and allow db-sync to sync sanchonet. +We also continued testing and improving the new db-sync options.

Lower level summary

  • Conway integration +#1484
  • Support for Sanchonet +#1476
  • Stake distribution is computed earlier +#1484
  • Deposit ledger events are now used. This reduces the db queries and makes syncing faster +#1484
  • Testing new db-sync options +#1466
  • Added support for ghc-9.6 +#1479
  • Tech debt: improve exceptions +#1471
+ + + + \ No newline at end of file diff --git a/2023-08-17-secp-issue/index.html b/2023-08-17-secp-issue/index.html new file mode 100644 index 0000000000..4a4151a004 --- /dev/null +++ b/2023-08-17-secp-issue/index.html @@ -0,0 +1,33 @@ + + + + + +SECP bindings Security Issue Report | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SECP bindings Security Issue Report

· 4 min read
Iñigo Querejeta Azurmendi

Security Issue Report: SECP256k1 bug

Date Occurred: July 15, 2022 +Severity: Potentially Very High if exploited on Mainnet +Authors: Iñigo Querejeta Azurmendi

Date of Report: August 17, 2023

Summary of Issue

Criticality Level

Actually low (since the issue was detected prior to deployment) but potentially very high if it had been deployed to mainnet +Context

New SECP256k1 Plutus bindings were being introduced in order to support interoperability with other major chains, such as Bitcoin and Ethereum. The intention was to deploy these as part of the Vasil hard-fork. The bindings were considered to be a low-security risk since the underlying library functions were well tested and had been deployed on other blockchains. +How was the Issue Detected

The issue was detected via specific End-to-End tests that had been commissioned. It was (accidentally) triggered on the Cardano Testnet before a fix could be deployed there.

What Action was Taken

The Cardano Testnet was permanently halted, and new test environments were deployed (Preview and Pre-Prod). +Fixes were applied to prevent the use of the primitives. +A full security audit was carried out on the bindings. +The rollout of the primitives was postponed to a new hard fork (Valentine)

Potential Effect

The potential effect was that an adversary might be able to craft invalid Plutus transactions to crash any node, requiring execution of the Cardano disaster recovery plan to revert to a safe state and bypass the transaction.

Actual Effect

  • Delay to the Vasil hard-fork
  • Temporary removal of SECP256k1 primitives
  • Additional hard-fork to introduce SECP256k1 primitives

Ongoing Mitigations Needed, if any

None

Responsibility for Mitigations

Core team

Detailed description of Incident

New Plutus secp256k1 cryptographic primitives for Plutus v2 failed to apply the necessary validity checks on the input data, meaning that the primitives could theoretically be used in an unsafe environment. The vulnerability was present in recent node versions (1.35.0 onwards), including ones deployed to Cardano Testnet.

The problem was not in the deserialization functions of the underlying library (Bitcoin's library) but rather that the Haskell functions that implemented the Plutus builtins were not calling them correctly. In particular, the library functions were designed to take structured data as input. However, the Haskell FFI implementation that was produced for the Plutus builtins allowed a caller to pass in (possibly) unstructured data. There were no checks that these data were structured in the correct way. This issue was detected during End-to-End testing.

  • This is the ECDSA signature verification algorithm that was used. It takes a SECP256k1_pubkey as input. That type is an opaque type with an expected structure: a parsed and valid public key. It was not immediately obvious that structured data needed to be passed to allow the function to be used safely.
  • The same happened with the Schnorr verification function. It takes as input a SECP256k1_xonly_pubkey, which is again an opaque structure that holds a parsed and valid public key.

The FFI skipped checks over these structured keys and directly passed the raw bytes that were given as arguments. If an adversary were to pass in data that was not properly structured, then it could result in unexpected behavior of the library. This could perhaps translate into an adversary being able to crash the nodes that ran these functions. All nodes in the network could be crashed by a single transaction that would then be executed repeatedly, so stalling the network until the disaster recovery process was initiated.

The fix was addressed in this PR. It consisted of using the external representation that the deserialization function expects and running the deserialization prior to signature verification. This was audited by security experts.

Recommendations

  • Check all new Plutus bindings for correct use.
  • Audit all new Plutus built-in bindings.
  • Continue to develop specific End-to-End tests for all new Plutus features.
  • Do not assume that any existing library functions are "safe". Treat all external calls circumspectly.
+ + + + \ No newline at end of file diff --git a/2023-08-18-goedel/index.html b/2023-08-18-goedel/index.html new file mode 100644 index 0000000000..15af2b0245 --- /dev/null +++ b/2023-08-18-goedel/index.html @@ -0,0 +1,35 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

Details

  • Development of an automated prover for showing conformance of +programs to state machines (as part of the mini-protocol framework)

  • Completion of the documentation of the (current state of the) +mini-protocol framework

  • Discussion about two DeltaQ lectures with two practical sessions as part +of 4th year masters course on distributed systemsby colleagues at UC +Louvain in the Autumn

  • Discussion about four DeltaQ lectures by colleagues at U. Bergen as part +of a 5th year Masters course in the Autumn

  • Adapted original DeltaQ implementation to the new typeclasses and +wrote property tests for its algebraic laws

+ + + + \ No newline at end of file diff --git a/2023-08-18-hydra/index.html b/2023-08-18-hydra/index.html new file mode 100644 index 0000000000..7db4048b9b --- /dev/null +++ b/2023-08-18-hydra/index.html @@ -0,0 +1,36 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team released version 0.12.0, a significant update that +brings support for cardano-node 8.1.2, along with performance enhancements and +various API improvements. Additionally, the team successfully onboarded a new +contributor who is now actively participating in operating a Hydra Head. They +took part in a meeting of the Intersect open source committee and prepared the +Hydra master-class for RareEvo, an educational initiative for the community.

If you happen to be at RareEvo, register for the Hydra master-class using this +form. +We hope to make it possible to follow along on-line as well and will announce +details on the Hydra announcements channel on the IOG discord +server.

What did the team achieve this week

  • Released version 0.12.0 which adds support for cardano-node 8.1.2, performance +and several API improvements. Release notes
  • Replaced commit via websocket with external draft + submit. #954
  • Onboarded new contributor to the point where he actively participates in operating a Head now.
  • Joined a first meeting of the Intersect open source committee
  • Prepared the Hydra master-class for RareEvo.

What are the goals of next week

  • Monthly review meeting
  • Run the Hydra master-class at RareEvo!
  • Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff
  • Clear out red bin items (technical debt)
  • Groom network resilience and explorer features
+ + + + \ No newline at end of file diff --git a/2023-08-18-ledger/index.html b/2023-08-18-ledger/index.html new file mode 100644 index 0000000000..aebfdf8512 --- /dev/null +++ b/2023-08-18-ledger/index.html @@ -0,0 +1,31 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

The ledger team made great progress in advancing Conway era forward. In particular, voting +for DRep and Stake Pool Operators is now at the state that can be used by downstream +components. Addition of new ledger state queries makes it possible to verify changes to +the governance state, such as placement of votes, submission of governance proposals, +inspecting DRep stake distribution and more. Addition of treasury withdrawals concludes the +ability to enact all of the governance actions, except for the hard fork initiation.

Low level summary

Conway progress

  • pull-3577 - Move PParams to GovState
  • pull-3609 - Adjust thresholds for sanchonet
  • pull-3604 - README: update CIP-1694 link
  • pull-3616 - Switch TreasuryWithdrawals to use RewardAcnt
  • pull-3599 - Add governance action well-formedness check
  • pull-3607 - Rename governance to gov
  • pull-3601 - Added DRep anchors
  • pull-3615 - Add optional previous GovActionId in some ProposalProcedures
  • pull-3596 - Upgradeable families
  • pull-3625 - Change constitution to use Anchor
  • pull-3592 - Added pulsing incremental computation of the DRep distribution
  • pull-3523 - Treasury donations
  • pull-3633 - Prevent state changes on phase2 failure
  • pull-3634 - Disable serialization of protocolVersion param update
  • pull-3630 - Implemented DRep refreshing
  • pull-3640 - Remove crypto parameterization from AnchorData
  • pull-3636 - Implement DRep ratification with an "always passing"; threshold
  • pull-3648 - Governance queries
  • pull-3650 - Change environment for ShelleyPOOLREAP rule
  • pull-3658 - Set DRep ratify threshold to 51%
  • pull-3628 - DELEG, POOL, GOVCERT conformance with Spec v0.8

Testing

Improvements and releasing

  • pull-3660 - Fix bounds and versions
  • pull-3661 - Adjust versions, bounds and CHANGELOGs to account for the latest release
+ + + + \ No newline at end of file diff --git a/2023-08-18-network/index.html b/2023-08-18-network/index.html new file mode 100644 index 0000000000..260dbc055c --- /dev/null +++ b/2023-08-18-network/index.html @@ -0,0 +1,48 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 3 min read
Marcin Szamotulski

High-level overview of sprint 42

Eclipse Evasion

We merged and released a new version of the ouroboros-network package (version +0.9.0.0) which includes big ledger peers feature. +This is the primary peer selection mechanism to defend against eclipses. We +also prepared a PR to updated ouroboros-cosnensus +and ekg-forward packages.

CDDL specs for protocol codecs

We made the cddl spec for network codec more inline with the implementation +which is highly polymorphic. cddl doesn't have the notion of polymorphism, +but has any which can generate any valid cbor term. We matched it with an +Any type on the Haskell side and made all remaining tests & specs use it. +This simplified the specifications and made it easier to understand which parts +are defined in the spec, and which parts are left unspecified. See +ouroboros-network#4595.

Ouroboros-Network-Framework API changes

We also released ouroboros-network-framework and other network components. +The ouroboros-network-framework package contains a redesign of API exposed to +ouroboros-consensus. We consolidated, cleaned it and made it easier to +extend in the future if there will be new arguments that need to be passed to +mini-protocol initiator and responders which comes from the low-level network +layer.

Nix setup (CI)

We also made a major review of our nix setup. With help from our DevX team +we ended up with a clean flake.nix file which can:

  • compile & test the code on x86_64-linux, x86_64-darwin and aarch64-darwin
  • cross-compile to Windows on x86_64-linux

And provides a shell which contains all the build tools, including ghc-9.6, +hls, cddl, and more. See ouroboros-network#4640, +ouroboros-network#4643.

Other contributions

Cardano Network Service Assurance

  • The work and writeup in finishing up the CNSA, first stage (first +contract).
  • Getting Sam Cowger (Galois Inc) up to speed.
  • The IOG Networking team carried a reivew of CNSA project progress: a limitted +code & design review.

Galois Review

Sam Cowger and Mark Tullsen (Galois Inc) have made some progress on each of the tech debt issues

scoping, requirements, and getting started.

CI

We added a nightly run for GitHub actions and made the GitHub actions test be +executed with extra concurrency ouroboros-network#4637, ouroboros-network#4649.

We also added GitHub's dependabot ouroboros-network#4650.

Bootstrap Peers

We settled on implementation design of bootstrap peers which is being +implemented, ouroboros-network#4615.

+ + + + \ No newline at end of file diff --git a/2023-08-18-sre/index.html b/2023-08-18-sre/index.html new file mode 100644 index 0000000000..dbe7206d8c --- /dev/null +++ b/2023-08-18-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· One min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent updates or improvements include:

  • Sanchonet and shelley-qa environments were updated to 8.2.1-pre.
  • Work on two new repos utilizing flake parts for cardano cluster generation, automation and operation.

Lower level summary

Cardano-ops

Cardano-parts

Cardano-perf

Cardano-playground

Cardano-world

Inputs-check

  • A flake parts module to check input closure sizes recursively for optimization considerations: inputs-check
+ + + + \ No newline at end of file diff --git a/2023-08-23-consensus/index.html b/2023-08-23-consensus/index.html new file mode 100644 index 0000000000..ab154358fd --- /dev/null +++ b/2023-08-23-consensus/index.html @@ -0,0 +1,27 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales

High level summary

On the UTxO-HD front we reached another important milestone, where we handed over the implementation for benchmarking and testing. We are working on addressing the first issues that were found during the integration tests. +On the Genesis front we are finalizing the argument that a checkpoint is not necessary for the initial release, including supporting to support said argument. We are also working on the new node release, and several improvements to our code-base.

UTxO-HD

  • We addressed the issues that came from the benchmarking and testing phase (see #314).
    • We fixed the operational-certificate update exception (#305).

Tech debt

  • We elaborated an inventory of the symbols used by downstream clients in an effort to clearly define the Consensus API, which will help managing changes and their impact to the downstream clients (see this branch).
  • We extracted the SOP modules to a separate package as part of our effort to reduce the Consensus API surface area (see this branch).
  • We took the first step towards improving how the Cardano hard-fork block is instantiated when running a node (see #275).
  • We decreased the flakiness for our test suite (#284).
  • We incorporated and merged the pull-request on query versioning (#273).
  • We started working on new performance-based regression tests for mempool operations.

Support

  • Nick Frisby continues with his engineer responsibilities. Notably getting the Consensus release out for node pre-release 8.3. Nick also began integrating it into downstream branches (cardano{-api,-cli,-node}). The Node team has now taken over, since Nick had progressed up to the point where they needed to start making new design decisions. Related PRs:
+ + + + \ No newline at end of file diff --git a/2023-08-24-performance-and-tracing/index.html b/2023-08-24-performance-and-tracing/index.html new file mode 100644 index 0000000000..17ce17c73c --- /dev/null +++ b/2023-08-24-performance-and-tracing/index.html @@ -0,0 +1,28 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 2 min read
Michael Karg

High level summary

  • Benchmarking: Benchmarking node version 8.2.1 has concluded. Additionally we're developing benchmarking setups for GHC9.6 and UTxO-HD.
  • Infrastructure: Our analysis pipeline has received improvements reducing memory footprint.
  • Tracing: Another batch of optimizations for the new tracing system has been merged; work on namespace consistency guarantees is ongoing.
  • Nomad backend: We're performing and analysing various runs for validation purposes on the new hardware cluster.

Low level overview

Benchmarking

We've performed and analysed the benchmarks for the 8.2.1 version of cardano-node as part of our release benchmarking cycle.

Setting up cluster benchmarks requires completing full system integration. This applies to both supporting a new build platform, as is GHC9.6, as well as targeting a specific feature, like a UTxO-HD enabled node. Currently, we're working on respective integrations on both those paths.

Infrastructure

As cluster runs increase in duration, more and more data is accumulated for analysis. Batch analysis mode needs all data to be held +in memory, which wouldn't fit anymore even on a 64GB RAM machine. Changes to the in-memory data representation improving on compactness were able to reduce the RAM requirements of our analysis pipeline.

Tracing

The next portion of optimizations has been completed and merged to master, getting rid of Haskell's native String representation on critical code paths. This concludes the optimization phase of the new tracing system for all its components used by cardano-node.

The implementation for validation of consistent naming and configuration is ongoing. We're splitting out everything that's verifiable at compile time into a seperate test case which we hope to integrate into CI - leaving only configuration constraints to be verified at or before node startup.

Nomad backend

The verification phase of the nomad cloud backend is ongoing. We're able to perform full runs on the new hardware cluster +and porting profiles and configurations from the legacy one. The goal is to reproduce with confidence known regressions, or improvements, between runs performed on the legacy cluster and runs performed with the new backend.

+ + + + \ No newline at end of file diff --git a/2023-08-25-hydra/index.html b/2023-08-25-hydra/index.html new file mode 100644 index 0000000000..cab40c497e --- /dev/null +++ b/2023-08-25-hydra/index.html @@ -0,0 +1,32 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Franco Testagrossa

High-level summary

This week, the Hydra team conducted the monthly review meeting for Agust,which +continously ensures transparent communication and project evaluation.

In terms of community engagement, the Hydra team gave a Hydra master-class at +RareEvo workshop as an educational initiative for the community. +Additionally, the team updated the Hydra demo and tutorial to include Mithril +and latest release changes.

They also focused on exploring the Hydra network resiliance in order to improve +hydra-node availability, as it becomes stuck very easily and that leads to a +bad user experience.

What did the team achieve this week

  • Hydra master-class at RareEvo workshop!
  • Monthly report & review meeting
  • Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff
  • Groomed network resilience and explorer features #188
  • New ADR for “Resourced based API” #1028

What are the goals of next week

  • Have a poc on network resilience working #188
  • Fix issue #931: “Chain state in head state not updated on replayed observation”
  • Fix issue #1039: "Close transaction dropped from cardano-node"
+ + + + \ No newline at end of file diff --git a/2023-08-28-mithril/index.html b/2023-08-28-mithril/index.html new file mode 100644 index 0000000000..387d3ad722 --- /dev/null +++ b/2023-08-28-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· One min read
Jean-Philippe Raynaud

High level overview

The Mithril team created an explorer page with the registered signers to give recognition to the SPOs already running on mainnet. They also worked on refactoring and standardizing errors in the Mithril nodes, and they enhanced the clarity and reduced verbosity of the logs for the signer and aggregator nodes. Additionally, they started working on the implementation of zstandard compression of the snapshot archive, and streaming its download and decompression in the client.

Finally, they implemented machine readable progress information in the client, and streamlined the process of verifying the registration status of a signer.

Low level overview

  • Completed the issue Create explorer page with registered signers #1097
  • Completed the issue Simplify logs on the Signer/Aggregator #1106
  • Completed the issue Refactor (de)serialization of crypto entities #668
  • Completed the issue Mithril client last snapshot download #1078
  • Completed the issue Use the '/signers/registered' route to verify if a signer is registered #1152
  • Worked on the issue Provide progress information with '--json' option in Client #1095
  • Worked on the issue Use 'zstandard' compression for snapshot archives #876
  • Worked on the issue Make client download and extract the archive simultaneously #1115
+ + + + \ No newline at end of file diff --git a/2023-08-29-node-cli-api/index.html b/2023-08-29-node-cli-api/index.html new file mode 100644 index 0000000000..52378bbc58 --- /dev/null +++ b/2023-08-29-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2023-08-16 - 2023-08-29

High level summary

CLI is making progress towards phases 3 and 4 of SanchoNet.

  • Ability to create info, no-confidence and new committee governance actions.

  • Voting as DREP is possible now on the CLI

  • API is now using Ledger's PParams and VotingProcedures

  • Expose following queries from consensus:

    - GetGovState
    - GetDRepState
    - GetDRepStakeDistr
    - GetCommitteeState
    - GetConstitution

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2023-09-01-goedel/index.html b/2023-09-01-goedel/index.html new file mode 100644 index 0000000000..5993fdc863 --- /dev/null +++ b/2023-09-01-goedel/index.html @@ -0,0 +1,30 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

Details

  • finalising a presenting performance analysis internship work to the +formal methods team

  • developed a new Isabelle mini-protocol framework and examples

  • planning an extended version of the ICE DeltaQ paper

  • working on algebraic rules for properisation of any-to-finish

+ + + + \ No newline at end of file diff --git a/2023-09-01-hydra/index.html b/2023-09-01-hydra/index.html new file mode 100644 index 0000000000..ae6bc2aaa4 --- /dev/null +++ b/2023-09-01-hydra/index.html @@ -0,0 +1,30 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sasha Bogicevic

High-level summary

This week, the Hydra team focused primarily on changes needed in the network +layer and have the first draft document related to needed design. They also +improved the user experience by allowing a commit using inline datums. +Discussed the off-chain governance with researchers and improved internal model +tests.

What did the team achieve this week

  • Monthly report published
  • Small changes to hydraw and tutorial in light of the Masterclass
  • Investigated a bug and saw it was solved by recent developments
  • Improved the model tests by fully validating L1 transactions
  • Enhanced the /commit API to also allow commit from scripts with inline datums (user request)
  • Discussed off-chain governance with IOG and CF researchers
  • Drafted a first network specification document in the context of Network resilience

What are the goals of next week

  • Have a clear understanding of the changes we need for the "Improve network resiliency" feature
  • Groomed and agreed plan on incremental commits/decommits
  • Updated tutorials including CI workflows to check consistency
  • Update to GHC 9.6 and latest cardano dependencies (ledger/plutus)
+ + + + \ No newline at end of file diff --git a/2023-09-01-ledger/index.html b/2023-09-01-ledger/index.html new file mode 100644 index 0000000000..6af05f3a62 --- /dev/null +++ b/2023-09-01-ledger/index.html @@ -0,0 +1,26 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

Broadly speaking the Ledger team focused on a few main areas of Conway era:

  • Creation of voting state snapshots in order to correctly delay ratification for one epoch
  • Validation of the Governance Actions sequencing and ordering
  • Proper expiry of DReps and Proposal Procedures
  • Expanding Conway Genesis functionality
  • Utilization of some of the new Protocol Parameters in ledger validation rules

Low level summary

Conway era

  • pull-3659 - Validate Network for ProposalProcedure and TreasuryWithdrawal
  • pull-3637 - Avoid using sequence of tuples, by adding GovActionId to GovActionState
  • pull-3651 - Inactive DReps
  • pull-3664 - Track proposal expiry
  • pull-3668 - Add min committee size predicate to NewCommittee
  • pull-3669 - Add Proposal deposit check against PParam
  • pull-3676 - Fix inactive PoolStake not counting as Drep Stake
  • pull-3635 - Make snapshots of GovActionsState
  • pull-3670 - Validate previously enacted govAction
  • pull-3694 - Improve error reporting on the positive coin decoder
  • pull-3674 - Added RATIFY thresholds
  • pull-3684 - Add proposal delaying, remove predicate failure from ENACT
  • pull-3688 - DRep Refunds and update evalTransactionBalance

Improvements and releasing

  • pull-3677 - Minor patch that fixes the DRep distribution computation
  • pull-3686 - Post patch release fixup
  • pull-3695 - Changelog for cardano-node-8.3 release
  • pull-3683 - Add two new bench mark programs

Testing

+ + + + \ No newline at end of file diff --git a/2023-09-01-network/index.html b/2023-09-01-network/index.html new file mode 100644 index 0000000000..b905023e3c --- /dev/null +++ b/2023-09-01-network/index.html @@ -0,0 +1,55 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 3 min read
Marcin Szamotulski

High-level overview of sprint 43

In this sprint, we received contributions from CF & Galois. Karl Knutsson +(CF) has addressed various issues regarding peer churning in P2P, timeouts +and our WireShark dissector. While the Galois developers focused on +addressing issues from their review last year. See below for more details.

We continued working on bootstrap peers ouroboros-network-#4661.

We refactored our test suites: they are split into io-tests which require to +be run natively on all platforms (these tests mostly contain tests that +require IO system calls) and sim-tests which are platform independent. We +run io-tests on all supported platforms (e.g. x86_64-linux, +x86-64-darwin, aarch64-darwin and x86_64-w64-mingw32 (Windows)) natively. +The sim-tests are not executed on Windows due to memory limitations on +GitHub Actions runners. ouroboros-network-#4653

We also started rebasing typed-protocols refactoring branches.

Marcin was appointed as the cardano-node release engineer for the 8.4.0-pre +version. So far he integrated cardano-ledger-conway-1.8 and +ouroboros-network-0.9.1.0 to ouroboros-consensus, cardano-cli and +cardano-api. Once we will have an integration branch for cardano-node, +cardano-ledger-conway-1.8 and ouroboros-consensus packages can be released +to CHaP and PRs can be merged once they go through review & CI.

We also fixed some smaller issues regarding peer sharing (both were discovered +by Karl from CF). More details are included below.

Progress on P2P addoption

SPO relays

There are currently ~2000 relays running P2P +enabled nodes that belong to 557 pools with a combined stake of 7900Mil Ada. On +16th of August it was ~1700 relays, 531 pools with a combined stake of 7700Mil +Ada.

P2P relays

The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays, which slowly +increase over time. The V9 and earlier versions of the node-to-node +the protocol indicates nodes version 1.35.x or earlier. +node versions

Data has been kindly provided by CF and their mainnet monitoring +infrastructure.

IOG relays

As of this week, 90% of IOG relays are running a P2P setup. In the next sprint all +IOG relays will be running P2P.

Detailed description

In this sprint, we got a few contributions from CF:

  • Karl made peer churning mechanism less aggressive ouroboros-network-#4656; and
  • he added timeouts for idle states in ChainSync & KeepAlive +miniprotocols. These timeouts help a node remove idle connections from the +responder (server) side ouroboros-network-#4648.
  • he improved the WireShark dissector by adding support for the peer-sharing mini-protocol ouroboros-network-#4656.

Galois has been making progress in addressing some of the issues they raised in their review (last year):

Peer Sharing

  • Light peer sharing is only enabled when peer sharing is turned on ouroboros-network-#4652;
  • Handshake incorrectly reports peer sharing value. It's supposed to relay the +remote value, but instead, it returns the local value. ouroboros-network-#4642 (in review).

Async Demotion Test Fix

  • We fixed an async demotion test failure which turned out to be a weakness of +the test itself rather than a bug in the connection manager. ouroboros-network-#4655
+ + + + \ No newline at end of file diff --git a/2023-09-01-sre/index.html b/2023-09-01-sre/index.html new file mode 100644 index 0000000000..bf099c4719 --- /dev/null +++ b/2023-09-01-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent updates or improvements include:

  • Work on cardano-parts repo continues and was utilized by the sanchonet-demo repository for demonstration purposes
  • Work on a new capkgs repository started -- "Content Addressed Packages"
    • This repository provides common Cardano release and pre-release binaries in a pure content addressed nix package type via flake output
    • These packages don't have the associated IFD, long eval times and large source dependencies that the originating source repositories often do
    • Consumers of such packages, such as devShells or nixos machines, can benefit from the improved performance this offers

Lower level summary

Capkgs

  • Content addressed packages -- new repo: capkgs

Cardano-ops

  • Cardano p2p relay updates, dbSync snapshots server update, monitoring adjustments: cardano-ops-compare

Cardano-parts

Cardano-perf

Cardano-world

Sanchonet-demo

+ + + + \ No newline at end of file diff --git a/2023-09-06-consensus/index.html b/2023-09-06-consensus/index.html new file mode 100644 index 0000000000..9918144401 --- /dev/null +++ b/2023-09-06-consensus/index.html @@ -0,0 +1,28 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 3 min read
Damian Nadales

High level summary

We were able to successfully run the system-level benchmarks for the UTxO-HD implementation, for the first time. There was an important regression in block forging performance that will have to be addressed before UTxO-HD is released. We also revisited the implementation of our query processing logic, which was needed to address the performance regression found in the query-by-address command. The preliminary performance results show that now the performance of this query is on-par with the Cardano baseline version, but we need further confirmation. +On the Genesis front, we presented the grinding-aware safety argument for the proposed historical Cardano Genesis windows to the IOG Researchers. +The Consensus release engineer finished his rotation: version 8.3.0-pre of cardano-node is releasing 2023 September 5.

UTxO-HD

  • We ran the first successful system-level benchmarks for UTxO-HD (see #203) using the in-memory backend.
    • We observed a factor 12 regression in the forging performance, which we will have to address. There are strong indications that the regression is due to the backing store accesses that take place when taking a mempool snapshot.
    • After the mempool regression is fixed the benchmarks need to be ran again.
    • System-level UTxO-HD benchmarks with the LMDB are still pending.
  • UTxO-HD will eventually be necessary due to the growth of the UTxO set and other ledger state structures that live in memory at the moment. However, we are trying a strategy by which we could preserve the baseline performance of the node, in case SPOs and other node users are not ready to migrate yet (see #344).
  • We implemented a new way of processing queries at the hard-fork block level, which resolves the performance regression observed in GetUTxOByAddress (see this comment). Preliminary results are promising.
  • Regarding the roll out plan, UTxO-HD requires a significant change in the Consensus codebase. Even though we might be able to hide any potential performance impact in the node by keeping all data in memory (#344), the Consensus component was significantly changed, so we might have to postpone releasing this feature to mitigate any risks of conflicting with the implementation of CIP-1694 and release of Conway.

Tech debt

  • We added tests that Consensus emits valid CBOR (#3099). This helped us detect a couple of serialization bugs. The tests still need to be merged into the main branch (#323).

Support

  • Nick Frisby finished his release engineer rotation; cardano-node 8.3.0-pre is releasing 2023 September 5.
  • We helped to investigate a protocol version bug in Sanchonet (see #3491).
  • We started to implement the Network interface for bootstrap peer functionality, from which Genesis will benefit as well (see #91.
+ + + + \ No newline at end of file diff --git a/2023-09-07-mithril/index.html b/2023-09-07-mithril/index.html new file mode 100644 index 0000000000..0ed3c7d583 --- /dev/null +++ b/2023-09-07-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team has released a new distribution 2335.0 which brings enhancements to the client: support for simultaneous downloading and unpacking of the snapshot archives, support for one line command restoration of the latest snapshot, and availability of machine readable progress information.

They have also worked on snapshots enhancements: implementation of the zstandard compression to produce smaller archives, and providing the version of the Cardano node used to create the archive in the snapshot artifacts. They have completed the second phase of the implementation of the stress test tool to benchamrk the aggregator. Additionally, they have kept working on refactoring and standardizing errors in the Mithril nodes.

Finally, they have worked on adding Cloudflare protection to the infrastructure, and they have fixed some bugs that occurred during restoration of a snapshot by a client.

Low level overview

  • Completed the issue Use 'zstandard' compression for snapshot archives #876
  • Completed the issue Design & implement stress test tool for aggregator - phase 2 #1155
  • Completed the issue Provide progress information with '--json' option in Client #1095
  • Completed the issue Make client download and extract the archive simultaneously #1115
  • Completed the issue Add aggregator Cardano node version in snapshot artifact #948
  • Completed the issue Make Cardano node version part of the Mithril network configuration #947
  • Completed the issue Post deployment 'mainnet' infrastructure #1091
  • Worked on the issue Errors refactoring #798
  • Worked on the issue Add Cloudflare protection of infrastructure #986
  • Completed the issue Failed to restore recent snapshot with strange error #1160
  • Completed the issue Update 'ed25519-dalek' to '2.0.0' #1188
  • Completed the issue Add target networks blocks in release notes #1151
  • Completed the issue Fix end to end 'wait_for_the_expected_time' test #1191
  • Completed the issue Fix docs 'git checkout' command #1174
+ + + + \ No newline at end of file diff --git a/2023-09-07-performance-and-tracing/index.html b/2023-09-07-performance-and-tracing/index.html new file mode 100644 index 0000000000..34a2f05918 --- /dev/null +++ b/2023-09-07-performance-and-tracing/index.html @@ -0,0 +1,31 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 3 min read
Michael Karg

High level summary

  • Benchmarking: We've performed and analysed feature benchmarks for both UTxO-HD and the current P2P stack.
  • Infrastructure: Various improvements of our analysis pipeline have been merged to master, supporting safe log truncation.
  • Tracing: Namespace consistency checks have been merged to master along with a curated configuration for benchmarking.
  • Nomad backend: We're productively using the new backend to measure new vs. legacy tracing system, adding many quality-of-life improvements.

Low level overview

Benchmarking

We've completed various runs and analyses targeting two distinct features of the node: UTxO-HD and Peer2Peer.

With our UTxO-HD benchmark we could clearly localize one point where this new way of maintaining ledger state is still costly, but at the same time confirm that in basically all other aspects UTxO-HD makes no difference in performance.

The Peer2Peer benchmarks focused on the effects that enabling this feature on a block producing node has on propagation times, as well as scrutinized a proposed change to the Peer2Peer network stack.

Infrastructure

As a result of optimizing in-memory representation of log objects, which are constructed from a node's traces, we can now analyse runs that last longer in total. For runs that exceed their expected duration, analysis now supports a truncation +operation that keeps the interdependencies of block events intact.

Truncation might happen at a slightly different point +in time - and therefore in its log object stream - for each node in the cluster. An additional step validating the block hash timeline of the cluster has been implemented for the pipeline. It provides early feedback on whether a specific truncation will lead to a valid full analysis, which requires much more time.

Tracing

Consistency checking of namespace implementation and configuration when using the new system has been completed. +This feature enables feedback on when tracer implementation details in some component might have changed. It's also able to detect when a configuration used for operating a cardano-node shows inconsistencies with the namespaces the system provides - and hence needs attention.

Furthermore, we've created a fine-grained configuration of the new system that caters to benchmarking's need of very many +detailed trace messages. It's aimed at mirroring the same amount of trace messages, and information, we're seeing from our usage of the legacy system; an important step in making benchmarks between systems comparable.

Nomad backend

The new backend is currently being used for further validation with regard to the existing cluster. Additionally, we're using it in production mode to comparatively benchmark both tracing systems after merging past month's optimizations - which is the +first real-life application of the nomad cluster. Hands-on experience in that phase translates into many small improvements which can be immediately applied to enhance user experience for the new backend.

+ + + + \ No newline at end of file diff --git a/2023-09-08-hydra/index.html b/2023-09-08-hydra/index.html new file mode 100644 index 0000000000..58e2cf23eb --- /dev/null +++ b/2023-09-08-hydra/index.html @@ -0,0 +1,43 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team improved the commit process with support for inline +datums. They simplified the chain layer by refactoring how the chain state is +persisted. Updates to the Hydra tutorial were completed, including CI workflows +to keep it up-to-date. The team engaged in discussions with researchers about +incremental commits & decommits, and drafted an architectural decision record +for a resource-based API. They also explored simpler solutions for the upcoming +network resilience feature.

What did the team achieve this week

  • Support InlineScriptDatum in commit +#1043
  • Refactored chain state persistency +#1049
  • Completed tutorial updates (by adding CI and some cleanup) +#997
  • Intersect Open Source committee meeting
  • Experimented with various models to better express the \"Network +resilience problem\" to find a KISS solution for +#188
  • Drafted and discussed incremental de-/commit features within team +and with researchers +#199 and +#1057
  • Created ADR for a resource based overhaul of the API +#1028

What are the goals of next week

  • Meetup of Hydra & Mithril contributors in Nantes, France
  • Integrated cardano-api 8.15 to have GHC 9.6 support
  • A clear design for incremental commits (decommits are already +understood)
  • An ADR for improving tx construction & observation to not need chain +state
+ + + + \ No newline at end of file diff --git a/2023-09-12-node-cli-api/index.html b/2023-09-12-node-cli-api/index.html new file mode 100644 index 0000000000..16d9bba40a --- /dev/null +++ b/2023-09-12-node-cli-api/index.html @@ -0,0 +1,30 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 3 min read
Carlos LopezDeLara

2023-08-30 - 2023-09-12

High level summary

Release of Cardano-node 8.3.0-pre for SanchoNet. Adds DReps to the Conway governance rules. Allows registration of DReps, delegation to DReps and voting on constitution action with DReps and SPOs. +This release completes phase 2 of SanchoNet feature roll out plan

CLI continues on its migration to a era-based top-level commands. This sprint we moved text-view, key, query, genesis, node, stake-address, transaction and address into this new command structure. This is the initial migration, there is still some clean-up to do on future sprints.

We are moving the drep delegation-certificate to the stake-address command so delegating to a drep is done via stake-addres vote-delegation-certificate. Along the same lines, we are renaming +stake-address delegation-certificate (delagating to a stake pool) to stake-address stake-delegation-certificate to distinguish between stake delegation to a pool and votes delegation to a drep. On top +of that, there is a new type of delegation certificate to delegate (stake) to a stake pool and (votes) to a drep simultaneosuly stake-address stake-and-vote-delegation-certificate. Note that change is not included on 8.3 but will come on 8.4. +Removing --conway-era flag from all the transaction sub-commands.

Update description fields in delegation certificates from Stake Address Delegation Certificate to respectively (Conway onwards):

  • Stake Delegation Certificate
  • Vote Delegation Certificate
  • Stake and Vote Delegation Certificate

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2023-09-14-db-sync/index.html b/2023-09-14-db-sync/index.html new file mode 100644 index 0000000000..d39253928e --- /dev/null +++ b/2023-09-14-db-sync/index.html @@ -0,0 +1,34 @@ + + + + + +DB-sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB-sync Team Update

· One min read
Kostas Dermentzis

High level summary

We have created a DBSync tag sancho-1-1-0 which can follow sanchonet. Also +the team has ran a number of benchmarks and tests for the new options/flavours of DBSync +and prepared a blogpost which summorises them, for downstream components.

Lower level summary

  • Integration of node-8.3.x and support for Sanchonet on Conway +#1498
  • Simplifications of new feautures +#1496
  • Makes it impossible to restart DBSync with different schema options and adds +tests for them +#1466
  • CI fixes +#1494#1491
  • Prepared a blogpost about different DBSync options +blog
+ + + + \ No newline at end of file diff --git a/2023-09-15-goedel/index.html b/2023-09-15-goedel/index.html new file mode 100644 index 0000000000..ef911433f4 --- /dev/null +++ b/2023-09-15-goedel/index.html @@ -0,0 +1,29 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

Details

  • working on collating and open sourcing performance analysis prototype

  • improvements to Ouroboros Praos specification in Isabelle

  • working on formalising chain sync mini-protocol

  • reviewing an alternatice semantics for DeltaQ

  • Seminar talk at U. Bergen on algebraic properties of timeliness

+ + + + \ No newline at end of file diff --git a/2023-09-15-hydra/index.html b/2023-09-15-hydra/index.html new file mode 100644 index 0000000000..42bbaf3e17 --- /dev/null +++ b/2023-09-15-hydra/index.html @@ -0,0 +1,32 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sasha Bogicevic
Sebastian Nagel

High-level summary

This week, most of the Hydra team was attending a cardano scaling workshop in +Nantes, France. They used this oportunity to meet fellow mithril team and spend +some time together to hack on some code and, as always, reflect on the past work +and find optimal path forward for both projects. They also fixed a bug that +caused hydra-node to crash when querying L1, worked on a new network resillience +proof-of-concept and accepted a new ADR related to stateless transaction +observation.

What did the team achieve this week

  • Cardano scaling workshop with members of hydra and mithril teams
  • Accepted user contribution for possible new use-case #1048
  • Fix for the hydra-node crash related to internal wallet query #1053
  • Collected experimental CI findings #1070
  • Propose first POC for the network resilience #1074

What are the goals of next week

  • Monthly review meeting & report including updates from Mithril
  • Review POC and discuss our options for the network resilience
  • Update cardano-api to version 8.20
  • Address TODOs on aiken commit validator #1072
  • Complete hydra-support in kupo kupo#117
+ + + + \ No newline at end of file diff --git a/2023-09-15-ledger/index.html b/2023-09-15-ledger/index.html new file mode 100644 index 0000000000..af6f78e90c --- /dev/null +++ b/2023-09-15-ledger/index.html @@ -0,0 +1,32 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

The Ledger team's focus is still mainly on the Conway era implementation.

We were able to add ability to specify initial Constitutional Comittee and the initial +version of Constitution. Priority in which Governance Action are now enacted matches the +specification. DRep's deposits are now properly accounted for. Governance actions that are +not allowed to be voted on by Stake Pool operators and Constitutional Committee members +are prevented by transaction submission failure, rather than simply being ignored. There +was a few important CDDL fixes as well as a lot of new round trip serialization +tests. Constraint based testing framework has also received a lot of improvements.

Low level summary

Conway era

  • pull-3681 - Conway Genesis additions
  • pull-3690 - Preserve the order of ProposalProcedures
  • pull-3705 - Removed ProtVer from EnactState
  • pull-3700 - Add conway-specific certs to deposit/refunds
  • pull-3704 - Add comments on deprecating certs to Conway CDDL
  • pull-3698 - Reordering of governance actions
  • pull-3712 - Disallow empty fields in ConwayTxBodyRaw
  • pull-3716 - Abstract threshold calculation
  • pull-3725 - Fix mistaken use of dollar sign in cddl files
  • pull-3718 - Predicate failure for mismatched Voter GovAction
  • pull-3721 - Committee expiration, validation and modification

Improvements and releasing

Testing

  • pull-3730 - Implement Show instance for Rep using IsTypeable
  • pull-3697 - Rewrite testEql using Typeable to make it impossible to forget cases
  • pull-3709 - Add many new features to the Constrained modues in cardano-ledger-test
  • pull-3726 - Conway and other eras serialization roundtrip tests
  • pull-3713 - Improve CI resiliency against GitHub issues
+ + + + \ No newline at end of file diff --git a/2023-09-15-network/index.html b/2023-09-15-network/index.html new file mode 100644 index 0000000000..07b09459bf --- /dev/null +++ b/2023-09-15-network/index.html @@ -0,0 +1,44 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High-level overview of sprint 44

Bootstrap Peers

In this sprint, we focused on developing bootstrap peers.

Thanks to the input from Samuel Leathers (IOG) and John Lotoski (IOG), we +identified a possible improvement to bootstrap peers. A more detailed +description is available here.

Cardano-Node-8.4.0 Release

We also were responsible for the cardano-node-8.4.0-pre release. A final +integration PR is currently being merged. We published +new versions of ouroboros-consensus, cardano-api and cardano-cli.

Towards Typed Protocols 0.2.0.0

We also updated the future typed-protocols-0.2.0.0 and its integration with +cardano-node. This is towards our goal which we planned for the next +quarter. The identified tasks are to fix breaking tests, and then measure and +address possible performance regressions.

Tech Debt

Mark Tullsen (Galois) submitted two more PRs: ouroboros-network-#4663, +ouroboros-network-#4664. We provided feedback on their other pull requests: ouroboros-network-#4661 and +ouroboros-network-#4660.

P2P adoption

In the last two weeks, there was a regression in P2P adoption concerning +the number of SPOs or stakes, although the number of overall P2P relays has +increased. Karl Knutsson (Cardano Foundation) is investigating +this issue. +P2P relays

The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays, which slowly +increase over time. The V9 and earlier versions of the node-to-node +the protocol indicates nodes version 1.35.x or earlier. +node versions

Data has been kindly provided by Cardano Foundation and their mainnet +monitoring infrastructure.

Open Source

We are in the process of upstreaming our ffi to Windows Named Pipes API to the Win32 package, see [win32-220].

+ + + + \ No newline at end of file diff --git a/2023-09-15-sre/index.html b/2023-09-15-sre/index.html new file mode 100644 index 0000000000..2f38282d7a --- /dev/null +++ b/2023-09-15-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent updates or improvements include:

  • Sanchonet environment was updated to 8.3.0-pre.
  • Cardano-parts now enables downstream consumers to spin up multiple cardano-networks per repository, an example of which is here.

Lower level summary

Capkgs

  • Add a readme, optimize flake inputs, improve nu and ruby parsing scripts: capkgs-compare

Cardano-ops

Cardano-parts

  • Utilize content addressed binaries to significantly improve eval, build and devShell performance: cardano-parts-pull-8
  • Add an aws flakeModule for obtaining ec2 specs, fix node.socket devShell error: cardano-parts-pull-10
  • Fix warns thrown during some builds and devShell usage: cardano-parts-pull-11
  • Add flakeModules and nixosModules in preparation for cardano-node grouped deployments: cardano-parts-pull-12
  • Enable group deployments by: adding several module, profile and role nixosModules; updating flakeModules; adding sops age secrets handling: cardano-parts-pull-13

Cardano-perf

  • Modify the wireguard network from mesh to star, enable ICMP, enable Nomad raw_exec and add hydraJobs: cardano-perf-compare

Cardano-playground

Cardano-world

+ + + + \ No newline at end of file diff --git a/2023-09-20-consensus/index.html b/2023-09-20-consensus/index.html new file mode 100644 index 0000000000..a167c7256d --- /dev/null +++ b/2023-09-20-consensus/index.html @@ -0,0 +1,32 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales

High level summary

We have a proposed fix for the mempool forging regression observed in the UTxO-HD branch. We need to confirm this by running system level benchmarks. +We are still working on a fall back mechanism for keeping the baseline performance of Cardano node, if the performance of the UTxO-HD is not enough. +On the Genesis front, we confirmed with the researchers that the proposed Genesis design is satisfactory for the historical Cardano chain. +We also have a proposed fix for the wrong protocol version bug, found in the Sanchonet, after transitioning to Conway.

UTxO-HD

  • We optimized the mempool revalidation process, which in turn ought to solve the regression observed during system-level benchmarks in the in-memory version (349). System level benchmark results are pending.
  • Regarding the workaround to keep the node's baseline performance if that of the in-memory backend turns out not to be enough for our stakeholders (344), we are still expanding the legacy block package such that we could at some point run the node with a legacy Cardano block. There are some loose ends to wrap up before we can begin the first test run.
  • We also brought the UTxO-HD branch up to date with node version 8.4.0.

Genesis

  • We finished the discussion with the Researchers on how to argue that the proposed Genesis design is satisfactory for the existing historical Cardano chain. +We are now drafting the final self-contained argument. (4157)

Support

  • We debugged a bad parameter update on the Babbage to Conway transition in the SanchoNet testnet (339). +A superficial patch is within reach and we are in the process of reviewing the PRs related to this fix (340, 354, and 355) +However we are investigating a more principled redesign of the epoch transition logic, which required us to revisit the existing interfaces of the ConsensusProtocol type class and the HardForkBlock combinator (345 and 346). This is important to prevent these kind of errors in the future. This is an overdue step in the process of taking full ownership of the HFC: reconsidering original HFC design decisions for which we now have much more context, a few years later.
+ + + + \ No newline at end of file diff --git a/2023-09-20-mithril/index.html b/2023-09-20-mithril/index.html new file mode 100644 index 0000000000..5a2a8daa7d --- /dev/null +++ b/2023-09-20-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· One min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team has completed the refactoring of the terraform deployment workflows in GitHub actions, and the implementation of snapshot compression parameters in the deployments. They kept working on the refactoring and standardization of the errors in the Mithril nodes. The team also completed the implementation of Cloudflare protection for the aggregator infrastructure and started working on its deployment and activation in the Mithril networks. Additionally, they worked on recording download statistics on the aggregator which will be used to produce usage reports.

Finally, they kept working on the aggregator performance bottleneck that occurs with high client traffic and started creating a new distribution.

Low level overview

  • Completed the issue Add snapshot compression parameters in infrastructure deployments #1200
  • Completed the issue Add Cloudflare protection of infrastructure #986
  • Worked on the issue Record statistics about the downloaded snapshot in the aggregator #1127
  • Worked on the issue Error refactoring #798
  • Worked on the issue Activate Cloudflare protection of infrastructure #1230
  • Worked on the issue Release new 2337 distribution #1219
  • Completed the issue Upgrade dependencies #1238
+ + + + \ No newline at end of file diff --git a/2023-09-22-hydra/index.html b/2023-09-22-hydra/index.html new file mode 100644 index 0000000000..048a3332b0 --- /dev/null +++ b/2023-09-22-hydra/index.html @@ -0,0 +1,48 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team conducted the monthly review meeting in +collaboration with Mithril, enhancing project coordination.

The team improved the gen-hydra-key node command for smoother usability +and identified concrete steps to enhance network resiliency in feature +items #188, +#1080, and +#1079. +Additionally, they contributed the aiken-mode editor integration to the +aiken-lang organization, updated dependencies to utilize cardano-api +8.20, and published the Hydra security advisory CVE-2023-42806 with a +workaround available for users.

These efforts demonstrate the team\'s commitment to project improvement, +security, and open-source community collaboration.

What did the team achieve this week

  • Conducted the monthly review meeting together with Mithril
  • Improved gen-hydra-key node command +#1077
  • Established a clear plan to improve resiliency of network and manifested +feature items #188, +#1080 and +#1079
  • Moved aiken-mode (created by SN) +to aiken-lang organization
  • Updated dependencies to using cardano-api 8.20 +#1075
  • Published security advisory +CVE-2023-42806 +(workaround available)

What are the goals of next week

  • Write-up the monthly report for September
  • Finish "network resilience to disconnects" +#188
  • Finish kupo integration with hydra +#1078
  • Discuss and decide on using aiken or not
  • Address the published security advisory +CVE-2023-42806 +(to not require workaround)
  • Ideally, release 0.13.0
+ + + + \ No newline at end of file diff --git a/2023-09-22-performance-and-tracing/index.html b/2023-09-22-performance-and-tracing/index.html new file mode 100644 index 0000000000..cf7db3d154 --- /dev/null +++ b/2023-09-22-performance-and-tracing/index.html @@ -0,0 +1,37 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 3 min read
Michael Karg

High level summary

  • Benchmarking: We've performed both low-level network and high-level variance analysis of our benchmarking clusters.
  • Infrastructure: Our reporting pipeline was adjusted to classify various workloads easily reducing rework time.
  • Tracing: Work on machine-readable tracing of tracer configuration is ongoing.
  • Nomad backend: We've been able to eliminate several possible confounders on the nomad cluster.
  • Team: We're currently onboarding a new team member: Welcome to Cardano Performance & Tracing, Baldur Blöndal!

Low level overview

Benchmarking

As part of the effort to bring the Nomad backend into production use, we've been equipping both that and the existing benchmarking +backend with means to measure and document network latency for each run. Furthermore we've implemented means to +capture TCP packets for a limited time window during a benchmarking run - which will allow us to spot differences +in the behaviour of the underlying networking stack at OS level.

Additionally, we're running variance analysis in parallel on both backends to ascertain confidence in metrics originating from either. We've concluded that baseline profile runs aren't directly comparable between the two, so we decided +to compare standard deviations instead to validate the measurements from nomad.

Infrastructure

Reporting on benchmarks does require human time and effort to rework the final document. Improvements to the reporting pipeline +have been merged to master. They reduce the time necessary to do so by various changes to the template and the workload classification logic in analysis.

Beyond that, we've looked into issues where services would quit with an unjustified exit failure upon shutdown - under rare circumstances. By reworking shutdown logic for trace-dispatcher and tx-generator we were able to address those issues.

Tracing

After various steps in constructing a configuration upon node startup, it is vital to document +which runtime configuration the node arrived eventually. We're working on providing a machine-readable JSON/YAML +trace message for that purpose.

This will facilitate hot-reloading a node's tracer configuration in the future: users will be able to take such a trace message, apply their intended change and hot-reload it immediately into the node.

Nomad backend

As with the existing benchmarking cluster, nomad is currently under scrutiny with regard to the reliability of metrics it +produces, as well as the behaviour of its OS-level network stack. For instance, differing kernel versions can have an +impact on our measurements, as we'd be basically using two different instruments to take them.

Along the way we've already been successful in eliminating some possible confounders that had been introduced by the nomad service +or the slightly different system architecture of the new cluster.

New team member

Baldur Blöndal is an extremely capable and experienced Haskell developer. Also, he's an excellent fit for our existing team. +So I'm very pleased to welcome him onboard with IOG, and with Performance & Tracing. He will be working on cardano-tracer, the component receiving, processing and making available node traces and metrics.

+ + + + \ No newline at end of file diff --git a/2023-09-26-node-cli-api/index.html b/2023-09-26-node-cli-api/index.html new file mode 100644 index 0000000000..72741c5436 --- /dev/null +++ b/2023-09-26-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2023-09-13 - 2023-09-26

High level summary

  • cardano-node 8.4.0-pre release suitable for SanchoNet.
  • CLI continues making progress integrating governance features. During this sprint we integrated the info and new-committee governance actions.
  • The team continued moving to the ERA top-level commands structure. Removed --conway-era flag from the legacy commands making conway era commands only accessible via cardano-cli conway.
  • stake-pool command is now under the ERA top level structure.
  • API continues integration with governance features, it is worth to higlight that now ProposeNewCommitee uses the right key type (cc-cold)

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2023-09-27-mithril/index.html b/2023-09-27-mithril/index.html new file mode 100644 index 0000000000..8fb8a1fa20 --- /dev/null +++ b/2023-09-27-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· One min read
Jean-Philippe Raynaud

High level overview

The Mithril team has released a new distribution 2337.0, which includes the following enhancements: support for zstandard compression of snapshot archives, support for the Cardano node version in snapshot metadata, and support for recording snapshot download statistics in the aggregator.

They also completed the refactoring and standardization of the errors in the Mithril nodes and published an Architectural decision record on the documentation website. Additionally, they kept working on adding Cloudflare protection to the infrastructure.

Finally, the team fixed a performance issue on the stress test tool for the aggregator and made some improvements to the documentation for SPOs.

Low level overview

  • Completed the issue Release new 2337 distribution #1219
  • Completed the issue Errors refactoring #798
  • Completed the issue Client traffic creates performance bottleneck in aggregator #1207
  • Completed the issue Record statistics about the downloaded snapshot in the aggregator #1127
  • Completed the issue Create a SPO checklist for KES keys update #1267
  • Worked on the issue Spike: Run client in browser WASM PoC #1254
  • Worked on the issue Benchmark aggregator performances #1220
  • Worked on the issue Activate Cloudflare protection of infrastructure #1230
+ + + + \ No newline at end of file diff --git a/2023-09-29-goedel/index.html b/2023-09-29-goedel/index.html new file mode 100644 index 0000000000..07830d1ccc --- /dev/null +++ b/2023-09-29-goedel/index.html @@ -0,0 +1,30 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and testing the +performance analysis tool

Details

  • drafting processs calculus semantics of mini protocol programs

  • testing the new performance modelling tool

  • further work on specification of mini protocols

  • extension of mini protocol framework to support communication of +programs with local environments via synchronous channels

+ + + + \ No newline at end of file diff --git a/2023-09-29-hydra/index.html b/2023-09-29-hydra/index.html new file mode 100644 index 0000000000..ccffa24030 --- /dev/null +++ b/2023-09-29-hydra/index.html @@ -0,0 +1,29 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Franco Testagrossa

High-level summary

This week, the Hydra team mainly focused on having a working new reliability +network layer; and specified its expected behavior in a new ADR.

They also revisited the security policy and vulnerability disclosure policy on +how to handle security vulnerability within Hydra, and in particular how to +handle so-called "Silent fixes".

What did the team achieve this week

  • Updated security policy and vulnerability disclosure policy #1088
  • Adr/network reliability #1082

What are the goals of next week

+ + + + \ No newline at end of file diff --git a/2023-09-29-ledger/index.html b/2023-09-29-ledger/index.html new file mode 100644 index 0000000000..1656fcc74c --- /dev/null +++ b/2023-09-29-ledger/index.html @@ -0,0 +1,34 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Alexey Kuleshevich

High level summary

Few important Conway related features were completed in this two week period:

  • Constitutional Committee was the last missing Conway related entity that has now been +fully implemented.
  • Treasury withdrawals governance actions have been fixed and now behave as expected.
  • Current treasury amount supplied in the transaction is now enforced by the rules.
  • DRep's expiry is prevented by delaying the expiry for all DReps whenever there are no +proposals to vote on.
  • Semantics of how CostModels are updated with Protocol Parameters have been changed to +allow for individual Plutus language version updates, rather than requiring a complete +replacement of all CostModels

Besides the new features there were also important performance and testing improvements:

  • In particular stake distribution computation and native script handling received some +optimizations.
  • New testing DSL has been implemented that drastically simplifies writing unit tests for +ledger rules.
  • Integration tests and benchmarks are now possible for Conway era because of the overhaul +of functionality for initial funds and staking injection whenever node starts up in +Conway, while bypassing all previous eras.

Low level summary

Conway era

  • pull-3729 - DRep expiry update after a contiguous set of epochs with no proposals to vote on
  • pull-3739 - Rename some PParams to be consistent with Agda specification
  • pull-3743 - Move DRepDistr from VState to ConwayGovState
  • pull-3746 - Implement tcTranslationContextL for Shelley
  • pull-3737 - Implement EraTransition
  • pull-3749 - Add predicate failure: current treasury value mismatch in LEDGER
  • pull-3748 - Apply enacted treasury withdrawals
  • pull-3745 - Constitutional Committee Ratification
  • pull-3763 - Plutus interface improvements
  • pull-3771 - Changed how costmodel updates are applied
  • pull-3766 - Prevent updating protocol version with PParamUpdate

Performance

  • pull-3765 - Improve native script handling
  • pull-3747 - Use (CompactForm Coin) in IncrementalStake, DRepDistr (and other places) instead of Coin
  • pull-3758 - Cardano-Perf regression: UMap.size regression fix
  • pull-3754 - Use Alonzo-style TxOut encoder when possible

Releasing

  • pull-3742 - Update fourmolu, ghcid and hls. Update haskellNix and iohkNix flakes
  • pull-3744 - Changelog 8.4
  • pull-3752 - Patch release of cardano ledger conway 1.8.1.0
  • pull-3753 - Minor cleanup and changelog entries
  • pull-3760 - Fixup issues for release
  • pull-3764 - Bump plutus deps to 1.13

Testing

  • pull-3734 - Removed Shaped instance for Rep
  • pull-3735 - Simplify the implementations of hasOrd and hasEq
  • pull-3728 - STS tests based on constraints
  • pull-3714 - Implement the remaining upgradable families
  • pull-3733 - Add some unit tests for Conway features
  • pull-3762 - Update CDDL for praos headers.
+ + + + \ No newline at end of file diff --git a/2023-09-29-sre/index.html b/2023-09-29-sre/index.html new file mode 100644 index 0000000000..66dcb4976e --- /dev/null +++ b/2023-09-29-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· One min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • Sanchonet environment was re-spun starting from slot 7171200 and updated to cardano-node 8.4.0-pre.
  • The use of cardano-node docker hub will be deprecated in preference of GHCR

Lower level summary

Capkgs

  • Refactor parsing scripts, add github action automation, various bugfixes and cleanup: capkgs-compare

Cardano-parts

  • Updates secrets layout scheme, adds sops enc/dec for jobs, adds cloud monitoring profile, updates flake templates and other improvements/fixes: cardano-parts-pull-8

Cardano-playground

  • Updates for new cardano-parts secrets handling and layout, TF workspace handling, group multivalue DNS support, grafana cloud monitoring and other improvements: cardano-playground

Cardano-world

+ + + + \ No newline at end of file diff --git a/2023-10-02-network/index.html b/2023-10-02-network/index.html new file mode 100644 index 0000000000..4ee59028e6 --- /dev/null +++ b/2023-10-02-network/index.html @@ -0,0 +1,44 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 3 min read
Marcin Szamotulski

High-level overview of sprint 45

Bootstrap Peers

We started reviewing the bootstrap peers PR, ouroboros-network#4615.

Towards Typed Protocols 0.2.0.0

We discovered a performance regression when using typed-protocols-0.2.0.0, and we +started investigating where it comes from. Currently, we see that +typed-protocols-0.2.0.0 can outperform typed-protocols-0.1.0.0 when running +in isolation with a simple ping-pong protocol, so the regression might be in +the new block fetch implementation which comes with typed-protocols-0.2.0.0 +See typed-protocols#3.

Tech Debt

We merged two PRs written by Galois engineers:

  • a pull request which refactors the main entry function for P2P, see ouroboros-network#3834;
  • a pull request which reviews usage of unsafe function in the network code based.

Galois also made progress with the following two issues:

IO-Sim

IOSimPOR

We found and fixed a bug in IOSimPOR. We'd like to thank Prof. John Hughes +(Quviq AB) for helping us with debugging the issue.

We also provided a more uniform API for IOSimPOR, and added ways to make the +debugging similar problems in the future easier.

Technical Details on IOSim refactoring
We removed the usage of `unsafePerformIO` from `IOSimPOR`, which also means removing parallel evaluation of discovered races. We found out that it gives only 25% better performance. In the future QuickCheck will offer running different cases in parallel which should provide better performance as there are no dependencies between the evaluation of different test cases, while schedules are discovered while running which limits the possible gains from running them concurrently. The performance was not the only factor though. When using parallelism in the lazy `ST` monad we'd need to rely on memory guarantees of `STRefs`. In `GHC-9.6` they share the implementation with `IORef`s, but it might not be the case in the future.

IOSim

To prepare for the next release, we consolidate packages taking advantage of +the public sublibraries supported now both by cabal and Hackage. This is +a work in progress, io-sim#114.

Cardano Newtork Service Assurance

Galois made the following progress:

  • A test run of spinning up a CNSA instance was done, as a result documentation +was updated.
  • Based on the IOG code review of the CNSA code, updates to the CNSA code were +made.
  • Galois has started the design for adding a CNSA analysis for "fetched bytes +over time while node is syncing".

P2P adoption

In the last two weeks, we've seen increase in P2P adoption. +P2P relays

The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays. +node versions

Open Source

We upstreamed our FFI bindings to Windows named pipes to Win32 package, the +PR was accepted and merged.

We also received an external contribution which enhanced our documentation, see +ouroboros-network#4676.

+ + + + \ No newline at end of file diff --git a/2023-10-04-consensus/index.html b/2023-10-04-consensus/index.html new file mode 100644 index 0000000000..03bd38f0c0 --- /dev/null +++ b/2023-10-04-consensus/index.html @@ -0,0 +1,27 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales

High level summary

The value-only workload benchmarks showed that the mempool forging regression observed in the UTxO-HD branch was fixed by the latest patch. In spite of the higher resource demands, for the metrics of interest (forging, peer-propagation, end-to-end propagation) we see no regression when using the UTxO-HD version of Cardano node, with the in-memory backend.

On the Genesis front the Researchers continue reviewing different aspects of the design, in particular the argument that the Genesis rule will select the Cardano historical chain. +We also merged a fix for the Babbage to Conway transition, and released a new version of Consensus.

Genesis

  • We elicited review from the Researchers on a final draft of the argument that the Genesis rule will select the Cardano historical chain (392).

Support

  • We merged a minimal patch that fixes parameter update bug during the Babbage to Conway transition (366).
  • We enabled richer tracers in cardano-node that can be useful in future debugging (384).
  • Esgen continues with his release engineer activities, and created a new Consensus release.

Fostering collaboration

  • We merged a new section into our documentation that explains the existing hard-fork combinator (HFC) interface and its complexities, which are relate do why the Babagge to Conway transition surprised us in this way. This explanation is step one towards improving the HFC interface (369).
+ + + + \ No newline at end of file diff --git a/2023-10-04-mithril/index.html b/2023-10-04-mithril/index.html new file mode 100644 index 0000000000..77f81d14f9 --- /dev/null +++ b/2023-10-04-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team updated a proposal for implementing Mithril in a light wallet and created a discussion on implementing Mithril in a light wallet to receive feedback and contributions from the community.

They also completed a proof of concept to run a Mithril client in a browser with WASM and worked on enhancing the explorer UI with SPO tickers displayed next to the pool IDs. Additionally, the team finalized a tool for benchmarking aggregator performance over a range of signer and client loads and for visualizing the results of these benchmarks.

Finally, the team added a root page to the aggregator endpoint, created a status page for the Mithril networks, and added a section about KES key rotation in the signer documentation for SPOs.

Low level overview

  • Created the discussion Implement Mithril in a light wallet #1273
  • Completed the issue Run client in browser WASM PoC #1254
  • Completed the issue Benchmark aggregator performances #1220
  • Worked on the issue Add SPO tickers in explorer #1185
  • Completed the issue Add a non 404 status code on the aggregator endpoint #1103
  • Completed the issue Use source attribute in errors #1265
  • Completed the issue Create a SPO checklist for KES keys update #1267
  • Completed the issue Configure status page and alerting #1277
  • Completed the issue Upgrade dependencies #1274
+ + + + \ No newline at end of file diff --git a/2023-10-06-hydra/index.html b/2023-10-06-hydra/index.html new file mode 100644 index 0000000000..27eab147a8 --- /dev/null +++ b/2023-10-06-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Franco Testagrossa

High-level summary

This week, the Hydra team released version 0.13.0, which includes fixes and extensions for state persistency and the ability to draft a commit transaction using inline datums.

The team also delivered the first version of the network resilience layer, significantly increasing head availability.

Additionally, they have been providing support to several funded Catalyst projects that want to build on Hydra.

Last but not least, they updated and published security policy and vulnerability disclosure policy reports on how to handle security vulnerabilities within Hydra.

What did the team achieve this week

  • Release 0.13.0
  • Published vulnerability reports #1088
  • Merged network resilience work part I #1074
  • Planning for Cardano Summit participation
  • Discussions with funded Catalyst projects wanting to build on Hydra for support
  • Merged typos fix PR from @omahs #1095

What are the goals of next week

  • Complete Aiken commit validator script #1072
  • Complete Kupo integration #1078
  • Brick upgrade on TUI #1103
  • Clean backlog
  • Prepare and rehearse demo and talk for Cardano Summit
+ + + + \ No newline at end of file diff --git a/2023-10-06-performance-and-tracing/index.html b/2023-10-06-performance-and-tracing/index.html new file mode 100644 index 0000000000..25e59b55cf --- /dev/null +++ b/2023-10-06-performance-and-tracing/index.html @@ -0,0 +1,34 @@ + + + + + +Performance & tracing update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & tracing update

· 3 min read
Michael Karg

High level summary

  • Benchmarking: Continued benchmarking of UTxO-HD and performed benchmarks for the new tracing system.
  • Consensus QTAs: Our protoype approach is applied to potential regression fixes with GHC 9.2.7.
  • Development: We've developed strategies for future benchmarks of PlutusV3 and UTxO-HD's on-disk backing store.
  • Tracing: The machine-readable tracer configuration has been merged. Optimization of cardano-tracer started.
  • Nomad backend: Ongoing variance analysis and refined cluster topology.

Low level overview

Benchmarking

Performing and analyzing benchmarks for the UTxO-HD feature is an ongoing effort; we can reliably assess the +performance of the in-memory backing store and evaluate possible optimizations (or regressions) for it.

Furthermore, benchmarks of our new tracing system after several rounds of optimization have been performed. The results +show all key metrics now being unaffected by the choice of tracing system (legacy or new) - with the new system being able to provide more features and flexibility in comparison. The benchmarks also highlighted further points for optimization, with the focus now on the cardano-tracer service.

Consensus QTAs

The Quantitative Timeliness Agreements (QTA) prototype is being used in coordination with Consensus and DevX to validate a series of patches that address optmization opportunities which GHC8.10 seizes, but GHC9.2 misses. The +feedback from this approach is much more immediate than running benchmarks at system integration level. But once we eventually do, we expect to reproduce the relevant observations - which would mean a big step towards maturing the prototype.

Development

Benchmarking UTxO-HD's on-disk backing store needs special attention: in virtualized environments, disk I/O is not a reliable metric as it passes several layers of indirection. As this is the very metric which will influence overall performance of this UTxO-HD flavour, we developed a plan to monitor such nodes, connected to a running network, on dedicated hardware - having direct SSD access. Replicating this setup for an entire benchmarking cluster of such nodes will be a future effort.

PlutusV3 will come with new builtins and a new cost model. It will take a specialized benchmark to ascertain the soundness of that model running a full cluster of nodes, possibly stressing expensive builtins. At the same time, +we'd like to validate the many improvements that have gone into the Plutus evaluator.

Tracing

The focus for further optimization of the new tracing system has shifted to cardano-tracer - the service +receiving and processing traces from one (or more) nodes. Whilst undisputed that the code living in cardano-node is +more performance critical, the receiving service must still minimize its resource footprint. Moreover, it can +generate load for a running node when querying data points from it - which calls for tight control of that mechanism and its possible configurations.

Nomad backend

Variance analysis of new nomad backend has revealed a necessary adjustment of the cluster's topology. We repeated +the same analysis and now see even better confidence in the measurements taken with nomad. This concludes the work on the backend proper for the time being. The last steps before production use will focus on the interface between backend and our workbench, which provides all high-level benchmark definitions and analysis machinery.

+ + + + \ No newline at end of file diff --git a/2023-10-10-node-cli-api/index.html b/2023-10-10-node-cli-api/index.html new file mode 100644 index 0000000000..265ff1842e --- /dev/null +++ b/2023-10-10-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2023-09-27 - 2023-10-10

High level summary

CARDANO-NODE

CARDANO-CLI

  • Depracated governance query commands and moved all governance related queries to cardano-cli <era> query
  • Drep registration certificates now allow to include an anchor
  • Integrated Drep retirement ceriticates
  • clean up of Drep registration certificates.

CARDANO-API

  • Add support for committee hot key witnesses
  • Require conway onwards for voting
  • Conway drep registration: expose ledger anchor parameter
  • Add certs to txbody of Conway transactions

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2023-10-11-mithril/index.html b/2023-10-11-mithril/index.html new file mode 100644 index 0000000000..0345302010 --- /dev/null +++ b/2023-10-11-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· One min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team worked on the distribution of the Mithril client as a library that will be distributed on crates.io, the Rust dependencies repository. The team also worked on the deterministic computation of the transaction history of an address from the immutable files and started fixing a bottleneck in the aggregator that limits the ingestion of signatures.

Finally, they kept working on the activation of Cloudflare on the infrastructure and fixed some bugs in the Nix CI.

Low level overview

  • Worked on the issue Make mithril-client crate a library #1141
  • Worked on the issue Compute deterministic Cardano transactions history PoC #1283
  • Worked on the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
  • Completed the issue Update Rust compiler in nix CI #1282
  • Worked on the issue Mithril networks infrastructure maintenance #1218
  • Worked on the issue Activate Cloudflare protection of infrastructure #1230
+ + + + \ No newline at end of file diff --git a/2023-10-13-goedel/index.html b/2023-10-13-goedel/index.html new file mode 100644 index 0000000000..893fe4f343 --- /dev/null +++ b/2023-10-13-goedel/index.html @@ -0,0 +1,30 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and testing the +performance analysis tool

Details

  • extending thorn-calculus to support synchronous channels

  • extending mini-protocol framework to support communication with the +environment

  • working on chain sync mini-protocol

  • planning for JLAMP journal paper submission

  • analysying any-to-finish

+ + + + \ No newline at end of file diff --git a/2023-10-13-hydra/index.html b/2023-10-13-hydra/index.html new file mode 100644 index 0000000000..56c0bb04ea --- /dev/null +++ b/2023-10-13-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Franco Testagrossa

High-level summary

This week, the Hydra team's primary focus was on finalizing the new network resilience layer. This involved adding persistency to ensure data integrity.

They also completed the exploration of potentially moving the Plutus validator scripts to Aiken.

Additionally, the team dedicated some attention to our TUI by upgrading the Brick framework. They also undertook a comprehensive refactoring of the project's structure and addressed various bug fixes. These efforts are aimed at enhancing the overall user experience of our project.

What did the team achieve this week

  • Network Resilience Persistence (#1101)[https://github.com/input-output-hk/hydra/pull/1101].
  • Upgrade brick on TUI (#1103)[https://github.com/input-output-hk/hydra/pull/1103].
  • Aiken commit validator translation (#1072)[https://github.com/input-output-hk/hydra/pull/1072].
  • Fixed some bugs in our TUI client.

What are the goals of next week

  • Prepare presentation and workshop for Cardano Summit.
  • Work on hydra-poll dApp for Cardano summit.
  • Start the work on packaging hydra-node and related services.
+ + + + \ No newline at end of file diff --git a/2023-10-13-ledger/index.html b/2023-10-13-ledger/index.html new file mode 100644 index 0000000000..44c34c7680 --- /dev/null +++ b/2023-10-13-ledger/index.html @@ -0,0 +1,32 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· One min read
Alexey Kuleshevich

High level summary

The Ledger team has been shifting focus from implementing Conway related features to +testing. For this reason there is a very little amount features that are reported this +time aorund. Notable Conway related changes are a specialized ledger query for getting +Constitutional Committee state and prevention of submitting proposal procedures that have +no valid path to enactment.

Testing related work was mainly on a constraint base system as well as on roundtrip +serialization. As a result of this extra testing a bug in Conway Genesis serialization +was eliminated.

Low level summary

Conway era

Integration and releasing

Testing

  • pull-3769 - Add roundtrip testing by validating FlatTerm
  • pull-3783 - Update TranslationInstance.hs
  • pull-3775 - Refactor and improve constraint based STS tests
  • pull-3793 - Fix sums with negative RHS.
+ + + + \ No newline at end of file diff --git a/2023-10-13-sre/index.html b/2023-10-13-sre/index.html new file mode 100644 index 0000000000..caf3b601ca --- /dev/null +++ b/2023-10-13-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 3 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • Sanchonet environment was updated to 8.5.0-pre.
  • Cardano-parts now supports cardano-db-sync, cardano-smash, cardano-faucet and grafana cloud monitoring

Lower level summary

Capkgs

  • Various improvements and fixes including:
    • Add GHA cron schedule
    • Add nix auto-gc to avoid running out of storage during large package set builds
    • Add new packages to capkgs
    • Reduce runner storage requirement leaving more room for builds
    • Restructure capkgs attribute names to avoid package name collisions
    • Return to non-musl builds for cardano packages to retain journald compatability
    • Update cache usage to from file level to folder level to reduce network and latency overhead
    • Commit diff: capkgs-compare

Cardano-parts

  • Updates cardano-node-ng to 8.5.0-pre and adds a Conway era automation job: cardano-parts-pull-16
  • Dbsync, smash, faucet and more: cardano-parts-pull-15
    • Adds cardano-db-sync, cardano-faucet, cardano-postgres, cardano-smash, profiles and/or services and related changes
    • Adds nginx vhost metrics exporter profile
    • Adds smash registered-relay-dump service and exporter for use until legacy relay nodes are scaled down
    • Adds bash *-ng autocompletion compatible wrappers
    • Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview
    • Adds downstream grafana cloud dashboard as templates
    • Adds downstream grafana cloud alerts as templates
    • Updates grafana-agent profile with new exporter scrape hooks: cardano-db-sync, cardano-faucet, nginx-vts, varnish
    • Updates the basic profile with IOG cache and commonly used bins
    • Updates the pre-release profile to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning
    • Updates flakeModule jobs with new conway era automation and additional IO encryption shimming and file type checks
    • Updates .sops.yaml template for supporting faucet secrets, workbench secrets, state-demo secrets
    • Updates the Justfile template with terraform fixes for workspace switching and provider auto-reconfiguration
    • Updates the cloudFormation terraformState template with stack modifications to preserve all resources in case of deletion
    • Updates the colmena template with dbsync, smash, faucet machines profiles and roles
    • Improves prior cardano-postgres modules to now automatically tune pg parameters based on machine cpuCount, memMiB and desired conns
    • Bumps capkgs node-ng to 8.5.0-pre

Cardano-playground

  • Dbsync, smash, faucet and more: cardano-playground-pull-3
    • Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview
    • Adds dbsync, smash, faucet machines and corresponding metrics exporters, dashboards and alerts
    • Moves the flake.cardano-parts.cluster.group attrSet name to groups to accurately reflect the plurality and the upstream corresponding change
    • Optimizes machine sizes
    • Updates .sops.yaml for supporting faucet secrets, workbench secrets, state-demo secrets
    • Updates the cloudFormation terraformState file with stack modifications to preserve all resources in case of deletion
    • Updates the cluster isNg definition to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning
    • Updates the Justfile with terraform fixes for workspace switching and provider auto-reconfiguration

Cardano-world

Sanchonet-demo

  • Update for cardano-node 8.5.0, conway job recipes and cardano-parts interface changes: sanchonet-demo-commit
+ + + + \ No newline at end of file diff --git a/2023-10-15-network/index.html b/2023-10-15-network/index.html new file mode 100644 index 0000000000..330c730340 --- /dev/null +++ b/2023-10-15-network/index.html @@ -0,0 +1,32 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· One min read
Marcin Szamotulski

High-level overview of sprint 46

Bootstrap Peers

We continued reviewing of bootstrap peers, see ouroboros-network#4555.

Towards Typed Protocols 0.2.0.0

We diagnosed the performance regression of the new design. The work on +typed-protocols will be postponed. For more details see the +typed-protocols#3. As an outcome of the performance debugging we prepared +PR which updates the demo-ping-pong and +demo-chain-sync applications.

Peer Sharing

We made progress in review of ouroboros-network#4644, which simplifies the +peer sharing and fixes the ouroboros-network#4642 issue.

Tech Debt

We reviewed the ouroboros-network#3836 PR which inspects all the uses of +error in ouroboros-network. The PR was prepared by Galois.

+ + + + \ No newline at end of file diff --git a/2023-10-18-consensus/index.html b/2023-10-18-consensus/index.html new file mode 100644 index 0000000000..4ff8e13daf --- /dev/null +++ b/2023-10-18-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales

High level summary

During the past two weeks the Consensus team received additional benchmark results for the UTxO-HD feature that show the resource usage for the in-memory backend is not satisfactory for a mainnet release, and we need to wait on the implementation of a new infrastructure to benchmark the LMDB backend (not likely to happen before next year). While we wait on this, we are evaluating the feasibility of making the UTxO-HD feature switchable, which will enable us to release it as an experimental feature. On the Genesis front we produced the first draft for a Survivable Eclipse Duration Model. We released version 8.5.0 of Cardano node, resumed work on subpar handling of blocks from the future, and improved our tracing system to assist problem troubleshooting in the node.

UTxO-HD

  • The Plutus workload benchmark for the in-memory backend showed no regressions for the metrics of interest, but it does show an increase in resource usage.
  • We got additional ad-hoc measurements on memory UTxO-HD consumption. The memory usage of the in-memory backend is not satisfactory for a release. The memory usage of the LMDB backend is considerably lower, but we need to see how much lower we can bring it by running a node whose memory is constrained to 8GB.
  • We resumed work on an alternative solution that will make the UTxO-HD switchable. This will enable us to keep the baseline performance by totally disabling UTxO-HD, while allowing users to experiment with the feature if they wish to do so.

Genesis

  • We produced the first draft for a Survivable Eclipse Duration Model (422).

Support

  • Esgen finished his cycle as release engineer. Node 8.5.0 has been released.
  • We resumed work on the subpar handling of block from the future (4251).
  • We prepared the integration of new tracing events for the next node release. These tracing events will help debugging potential issues in the node (such as the previously mentioned issue).
+ + + + \ No newline at end of file diff --git a/2023-10-18-mithril/index.html b/2023-10-18-mithril/index.html new file mode 100644 index 0000000000..1c41910942 --- /dev/null +++ b/2023-10-18-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team started working on the decentralization of the Mithril networks with a proof of concept of peer-to-peer (P2P) networking between nodes. The team kept working on the adaptation of the Mithril client as a library, on the deterministic computation of the transaction history of an address from the immutable files, and on the refactoring that will fix the bottleneck of the key registration in the aggregator. Additionally, they published a security advisory for the Mithril relay.

Finally, they enhanced the CI/CD to publish multiple packages to crates.io and started improving the developer experience with the Mithril devnet.

Low level overview

  • Published the security advisory Mithril relay could expose Cardano block producer internal IP when updated #GHSA-9m3h-72xj-x2gq
  • Worked on the issue P2P Networking - Proof of Concept #1300
  • Worked on the issue Make mithril-client crate a library #1141
  • Worked on the issue Compute deterministic Cardano transactions history PoC #1283
  • Worked on the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
  • Completed the issue Publish multiple packages to crates.io #1298
  • Completed the issue Rename public key published in releases #1292
  • Completed the issue Mithril networks infrastructure maintenance #1218
  • Worked on the issue Fix devnet Mithril Docker images #1272
+ + + + \ No newline at end of file diff --git a/2023-10-20-hydra/index.html b/2023-10-20-hydra/index.html new file mode 100644 index 0000000000..cab94004f5 --- /dev/null +++ b/2023-10-20-hydra/index.html @@ -0,0 +1,28 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Franco Testagrossa

High-level summary

This week, the Hydra team mainly focused on preparing a masterclass and workshop for #CardanoSummit2023.

In addition, they improved the Hydra node API's submit-transaction endpoint to accept three different encoding types: Base16 encoded CBOR string, TextEnvelope type, and JSON. +This improvement offers users greater flexibility and ease of interaction with the API.

Finally, the team has followed up on the TUI brick upgrade to version 1.10. +This effort has resulted in addressing minor details and enhancing the overall user experience with the TUI.

What did the team achieve this week

  • Prepare presentation and workshop for Cardano Summit.
  • More TUI fixes and improvements.
  • Upgrade GHC from 9.2.8 -> 9.6.2 #1105
  • Solved user issue related to submitting transactions in cbor format #1111.
  • Fix hydraw connection issue making it more stable #1121.

What are the goals of next week

  • Work on hydra-poll dApp for Cardano summit.
  • Start the work on packaging hydra-node and related services.
+ + + + \ No newline at end of file diff --git a/2023-10-24-node-cli-api/index.html b/2023-10-24-node-cli-api/index.html new file mode 100644 index 0000000000..4f696656c0 --- /dev/null +++ b/2023-10-24-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2023-10-11 - 2023-10-24

High level summary

CARDANO-CLI

  • Disambiguate cardano-cli stake credential related flags on treasury withdrawal governance actions making it easy to identify which is used for the deposit refund and which for the destination of the funds from the treasury if the action is ratified.
  • stake-address-info now shows deposits balance.
  • Added conway governance action view to allow to inspect governance action files before submitting them on a transaction.
  • build-raw support for --vote-file and --proposal-file

CARDANO-API

  • Support DRep extended keys
  • Support Plutus V1 in Conway

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2023-10-25-mithril/index.html b/2023-10-25-mithril/index.html new file mode 100644 index 0000000000..5417b8c435 --- /dev/null +++ b/2023-10-25-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team released a new distribution 2342.0. This release includes support for SPO tickers displayed in the Mithril explorer and the ability to produce slim Docker images for Mithril nodes.

They also kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, progressed with the adaptation of the Mithril client as a library, and worked on the deterministic computation of the UTXO set from the immutable files.

Finally, they fixed the bottleneck of the key registration in the aggregator, investigated some unreachability on the release-mainnet aggregator, and enhanced the Mithril explorer UI.

Low level overview

  • Worked on the issue P2P Networking - Proof of Concept #1300
  • Completed the issue Make mithril-client crate a library #1141
  • Worked on the issue Compute deterministic Cardano UTxO set PoC #1283
  • Completed the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
  • Worked on the issue Fix devnet Mithril Docker images #1272
  • Worked on the issue release-mainnet aggregator is unreachable #1310
  • Worked on the issue Build mithril-common and mithril-client in WASM PoC #1284
  • Completed the issue Display a summary of signers before the full list in explorer #1133
  • Completed the issue Add certificates list in explorer #1184
  • Completed the issue CoreVerifier setup does not compute total_stake correctly #1306
+ + + + \ No newline at end of file diff --git a/2023-10-27-goedel/index.html b/2023-10-27-goedel/index.html new file mode 100644 index 0000000000..56b37a29d7 --- /dev/null +++ b/2023-10-27-goedel/index.html @@ -0,0 +1,29 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and writing a paper +on performance modelling

Details

  • completing work on chain sync mini-protocol

  • outline for JLAMP journal paper submission

  • analysing timeouts

+ + + + \ No newline at end of file diff --git a/2023-10-27-hydra/index.html b/2023-10-27-hydra/index.html new file mode 100644 index 0000000000..6b1456bda2 --- /dev/null +++ b/2023-10-27-hydra/index.html @@ -0,0 +1,36 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team fixed the gen-hydra-keys command to avoid +overwriting existing keys, and resolved issues related to the rewritten +hydra-tui. They also worked on a \"dirt road\" implementation for the +\"Ignored init tx\" notification, improving the robustness of the system.

The team finalized preparations for the Cardano Summit presentation, including +implementation of the hydra-poll example DApp.

If you happen to read this and attend the Summit in Dubai, make sure to check +out our Masterclass about \"Developing Hydra + Mithril for Scaling Cardano\" on +Friday, November 3 at 14:00-15:30 local time in the \"Al Dar\" room!

What did the team achieve this week

  • Fix gen-hydra-keys command to not overwrite existing keys +#1136
  • Fixed the rewritten hydra-tui#1113#1137
  • Finalized cardano summit preparation +#1109
  • Implemented the hydra-poll example DApp link to +repository
  • Dirt road implementation for \"Ignored init tx\" notification +#529

What are the goals of next week

  • Attend cardano summit and deliver presentation
  • Clarify / close user created issues
  • Build aarch64-darwin binaries in CI
+ + + + \ No newline at end of file diff --git a/2023-10-27-network/index.html b/2023-10-27-network/index.html new file mode 100644 index 0000000000..05ecec001f --- /dev/null +++ b/2023-10-27-network/index.html @@ -0,0 +1,37 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High-level overview of sprint 47

Bootstrap Peers

We continued to review the process of bootstrap peers, see ouroboros-network#4555

CI / Tests

We investigated our CI issues. We found a memory leak in typed-protocols +function used for testing codecs which triggered out of memory manager (OOM) on +some platforms (typed-protocols#43); we also found a bug in the connection manager which resulted in CI +timeouts (see connection-manager-fix).

KeepAlive client

We found two small issues with the keep-alive client, which were addressed +by Karl Knutsson (Cardano Foundation), ouroboros-network#4689.

Galois

We merged two large PRs prepared by Galois:

Cardano Network Service Assurance (CNSA)

Galois made the following progress on CNSA:

  • a simple [InfuxDB] database backend has been added;
  • the documentation has been updated;
  • internal improvements to the code;
  • progress on a new "CSNA analysis" that provides, for each sampler node, the +block download throughput in bytes over time.

New CHaP Release

We cut a new release of ouroboros-netowrk packages to CHaP: chap#547

More details

CI / Tests

We improved the memory footprint of some of our tests by analysing a stream of +IOSim traces without retaining them, see ouroboros-network#4696

As a safety measure, we introduced an upper bound for heap memory used by test +artefacts in our nix tests. We use 200MB limit for all tests except for +network-mux tests which use 350MB limit, see ouroboros-network#4702.

We refactored one of our tests to use ephemeral ports thus allowing it to +run concurrently, see ouroboros-network#4702.

We merged ouroboros-network#4623 which fixes a bunch of test failures.

All of them were due to a bug in test logic rather than a bug in production +code.

Release Process

We updated our release process & associated scripts, see +ouroboros-network#4705.

+ + + + \ No newline at end of file diff --git a/2023-10-27-sre/index.html b/2023-10-27-sre/index.html new file mode 100644 index 0000000000..21e9b9010c --- /dev/null +++ b/2023-10-27-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-world testnets of preprod, preview, sanchonet and some private test chains are in the process of being migrated to the cardano-playground stack

Lower level summary

Capkgs

  • Adds offchain-metadata-tools, dbsync sanchonet updates: capkgs-compare

Cardano-parts

  • General package updates, modules improvements and template recipes to support network migration from world to playground cardano-parts-pull-17
    • Bumps cardano-db-sync-ng to sancho-2-0-0 tag
    • Bumps iohk-nix-ng to mig-sancho branch for sanchonet pool migration from world to play
    • Adds more machine system bins and devShell bins for scripting and debug purposes
    • Adds cardano-show-kes-period alias on any node machine importing profile-cardano-node-group module
    • Adds profile-cardano-node-topology module for a simplified interface to most common topology needs
    • Adds a job-delegate-rewards-stake-key job as an optional follow on to pool creation and registration jobs
    • Adds a topology function to filter self from group machines with an allowList for matching infixes
    • Adds metadata-server and related offchain-metadata-tools bins from capkgs
    • Updates justfile template with:
      • a new query-all recipe for getting status of multiple concurrent running environments
      • a new set-default-cardano-env recipe for fast switching between environments
      • a new start-demo recipe for forking a custom env into conway
      • a new start-node recipe for generic environment start
      • a new stop-node recipe for generic environment stop
      • updated list-machines recipe for handling of empty nixos machine config and empty ssh_config conditions
      • updated query-tip recipe to a generic query tip compatible with each environment

Cardano-playground

+ + + + \ No newline at end of file diff --git a/2023-11-01-consensus/index.html b/2023-11-01-consensus/index.html new file mode 100644 index 0000000000..7bc78f243a --- /dev/null +++ b/2023-11-01-consensus/index.html @@ -0,0 +1,28 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

This week the Consensus team made progress on two fronts: the question of survivable eclipse duration, which is part of our work supporting Genesis delivery, and how to improve the handling of blocks from the future. +Regarding the UTxO-HD branch, we managed to run a node with legacy blocks, which is syncing with mainnet, up to including Alonzo. +We also investigated a regression in mempool snapshotting, which was ultimately solved by a Ledger update, and will be fixed in the upcoming Node 8.6 release.

+ + + + \ No newline at end of file diff --git a/2023-11-01-mithril/index.html b/2023-11-01-mithril/index.html new file mode 100644 index 0000000000..dad61faa9f --- /dev/null +++ b/2023-11-01-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· One min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept. They progressed with the adaptation of the Mithril client as a library, and worked on its full WASM compatibility in a proof of concept. The team kept working on the deterministic computation of the transactions from the immutable files, and fixed some unreachability issue on the release-mainnet aggregator.

Finally, they implemented new Docker images that build the Mithril nodes on the 'devnet' faster and fixed some regressions in the Mithril client CLI.

Low level overview

  • Worked on the issue P2P Networking - Proof of Concept #1300
  • Completed the issue Build mithril-common and mithril-client in WASM PoC #1284
  • Completed the issue Fix devnet Mithril Docker images [#1272](https://github.com/input-output-hk/mithril/issues/1272
  • Worked on the issue Light Wallet: Release mithril-client library #1311
  • Worked on the issue Compute deterministic Cardano UTxO set PoC #1283
  • Worked on the issue release-mainnet aggregator is unreachable #1310
  • Completed the issue Client regressions in snapshot list and download #1321
+ + + + \ No newline at end of file diff --git a/2023-11-08-ledger/index.html b/2023-11-08-ledger/index.html new file mode 100644 index 0000000000..769bfaa8b3 --- /dev/null +++ b/2023-11-08-ledger/index.html @@ -0,0 +1,36 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Alexey Kuleshevich

High level summary

This update contains mostly improvements to quality of Conway era implementation and +tooling that we use for testing Ledger. Major Conway bugs that were discovered and +squashed are:

  • PParamsUpdate proposals will now correctly use DRep thresholds for ratification
  • Treasury withdrawals are now properly enacted.
  • Corrected snapshotting and DRep Stake Distribution Pulser initialization
  • Delegation to non-existent Stake pool is no longer possible

Other important quality of life improvements are addition of reusable interfaces for an +ordered set OSet and ordered map OMap. Which allowed us to disable duplicate +certificates and proposals in a transaction. As a precursor to PlutusV3 integration, a +serious reorganization of Plutus related functionality was performed.

Conway related additions that are noteworthy: Conway Ledger events, disallowing voting on +expired proposals, addition of Anchor to Constitutional Committee resignation proposals.

Significant improvements have been made to a specialized "Imp" test library that allows us +writing concise stateful unit tests for verifying the Ledger logic. Serious progress has +been made on the conformance testing, where we can now interface with Haskell generated +code from the Agda specification. Serialization testing has been extended to increase +binary conformance coverage.

Low level summary

Conway

  • pull-3808 - Enhance CommitteeMembersState query to return quorum and NoConfidence
  • pull-3801 - Fix epoch rule and tests
  • pull-3803 - Fix delegation validation
  • pull-3759 - Reshuffle things to the DRepPulser incorporates some snap shot things
  • pull-3779 - Prevent duplicate certs and proposals
  • pull-3794 - Added anchor to resign certs
  • pull-3797 - Cleanup JSON instances for Conway governance
  • pull-3848 - Plutus modules restructure
  • pull-3840 - Fix anomalies in Deposits in the Conway Era
  • pull-3856 - Add governance related ledger events
  • pull-3825 - Prevent voting on expired GovActions
  • pull-3831 - Treasury withdrawal fix
  • pull-3791 - Use a Data.OMap.Strict to replace ProposalsSnapshot
  • pull-3836 - PParamsUpdate enactment fix
  • pull-3846 - Revert argument order swap.

Testing

  • pull-3782 - Move ImpTest to Shelley testlib
  • pull-3842 - Imp improvements
  • pull-3844 - Add mappings to Agda types
  • pull-3853 - Fix strange assertion failure, which hides real Block too big problem.
  • pull-3809 - CDDL roundtrip testing
  • pull-3832 - Treasury withdrawals tests
  • pull-3839 - Added cardano-ledger-conformance
  • pull-3841 - Add sha256 to cardano-ledger-executable-spec

Improvements and releasing

  • pull-3843 - Add ...WithLogs versions of evalScripts and friends
  • pull-3795 - Bump plutus to 1.15
  • pull-3798 - Bump urllib3 from 1.26.17 to 1.26.18 in /doc
  • pull-3799 - Changes needed for 8.6 release
  • pull-3807 - Add invalidBeforeL and invalidHereAfterL functions
  • pull-3819 - Fixups needed for a release
  • pull-3829 - Post release CHANGELOG version bumps
  • pull-3830 - Bump aeson to 2.2
  • pull-3833 - Backport release cardano-ledger-conway-1.10.1.0
  • pull-3828 - Add changelog for node release 8.6
+ + + + \ No newline at end of file diff --git a/2023-11-08-mithril/index.html b/2023-11-08-mithril/index.html new file mode 100644 index 0000000000..89c9c0bd49 --- /dev/null +++ b/2023-11-08-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· One min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued working on completing the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, achieving the implementation of a very basic working demo with a peer-to-peer publish-subscribe (pub-sub) mechanism. Additionally, the team continued working on the deterministic computation of the UTXO/transactions set from the immutable files.

Finally, they resolved the naming issue of the Docker package responsible for storing images of the new Mithril client CLI, and continued addressing a performance issue associated with the 'release-mainnet' aggregator.

Low level overview

  • Worked on the issue Prototype a P2P relay with libp2p #1300
  • Worked on the issue Light Wallet: Release mithril-client library #1311
  • Worked on the issue Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283
  • Worked on the issue release-mainnet aggregator is unreachable #1310
  • Completed the issue Client Docker package is incorrect #1322
+ + + + \ No newline at end of file diff --git a/2023-11-09-db-sync/index.html b/2023-11-09-db-sync/index.html new file mode 100644 index 0000000000..699d4919c6 --- /dev/null +++ b/2023-11-09-db-sync/index.html @@ -0,0 +1,34 @@ + + + + + +DB-sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB-sync Team Update

· One min read
Kostas Dermentzis

High level summary

We have created new tag sancho-2-2-0, which integrates missing Conway feautures and some minor fix +tags sancho-2-1-0, sancho-2-0-1. +We have completed the initial implementation for the bootstrap instance objective.

Lower level summary

  • Add a new --disable-gov flag which disabled Conway ferautures +#1558
  • Fix of the committee key size +#1544
  • Workaround a ledger issue with unregistered pools +#1542
  • Implemented a mechanism that loads the UTxO from the ledger resulting is way faster syncs +#1539
  • Rename offline to offchain +#1533
  • Transfer existing tests to Conway era +#1529#1547
+ + + + \ No newline at end of file diff --git a/2023-11-10-goedel/index.html b/2023-11-10-goedel/index.html new file mode 100644 index 0000000000..fb20ed9804 --- /dev/null +++ b/2023-11-10-goedel/index.html @@ -0,0 +1,29 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and working on a +performance modelling paper

Details

  • completing work on chain sync mini-protocol

  • specifying correctness property of chain sync mini-protocol

  • creating diagrams for JLAMP paper

  • finalising structure of JLAMP paper

+ + + + \ No newline at end of file diff --git a/2023-11-10-hydra/index.html b/2023-11-10-hydra/index.html new file mode 100644 index 0000000000..fc6decf286 --- /dev/null +++ b/2023-11-10-hydra/index.html @@ -0,0 +1,53 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

The last two weeks, the Hydra team achieved several milestones. They published +the monthly report for October, providing updates on project developments. The +team delivered a presentation and workshop at the Cardano Summit, contributing +to community engagement. They implemented a \"dirt road\" solution for the +\"Ignored init tx\" notification and moved the hydra-poll example project to a +dedicated repository. Additionally, the team built a hydra-chain-observer tool +for Hydra Heads, updated the toolchain to GHC 9.6.3, and made various +improvements to tooling and code formatting. They addressed specific issues, +such as fixing the gen-hydra-keys command and resolving concerns with the +rewritten hydra-tui. The team also enhanced the hydra-cluster smoke test +suite by fetching network configurations dynamically. Lastly, they actively +reviewed pull requests and architectural decision records from the community, +including contributions from SundaeSwap. An experiment, the Hydra tally, was +completed and successfully deployed to the mainnet by the Cardano Foundation.

What did the team achieve this week

  • Published the monthly report for +october
  • Given a presentation / workshop at the Cardano summit +#1109
  • Dirt road implementation for \"Ignored init tx\" notification +#529 (without +stateless observation)
  • Completed and moved hydra-poll example project into a +dedicated +repository
  • Built a first version of a chain observation tool for Hydra Heads +#1096
  • Switched toolchain to GHC 9.6.3 and various improvements on tooling +and code formatting +#1135#1152#1151#1154
  • Fix gen-hydra-keys command to not overwrite existing +keys #1136
  • Fixed the rewritten hydra-tui#1113#1137
  • Fetch network configurations instead of packaging them into +hydra-cluster (smoke) test suite +#1156
  • Reviewing PRs and ADRs from the community (SundaeSwap) +#1118#1157
  • Hydra tally experiment (Cardano Foundation) deployed to mainnet

What are the goals of next week

  • Tackle reported bugs
  • Shepherd contributed off-line mode PR to the main codeline
  • Improve chain observation tool to include more data and refactor +existing code towards more stateless observation
  • Start work on incremental decommits
+ + + + \ No newline at end of file diff --git a/2023-11-10-sre/index.html b/2023-11-10-sre/index.html new file mode 100644 index 0000000000..2529195e80 --- /dev/null +++ b/2023-11-10-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 3 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-world testnets of preprod, preview, sanchonet and some private test chains have largely completed their migration to the cardano-playground stack

Lower level summary

Capkgs

Cardano-parts

  • General migration support PR for cardano-world to cardano-playground cardano-parts-pull-18
    • Iohk-nix and iohk-nix-ng were updated support the migration of cardano-world networks to cardano-playground
    • Sops-secrets dependent systemd services were fixed to ensure restart upon sops secrets changes
    • Db chain utilities (db-{analyser,synthesizer,truncater}) had -ng variants created to operate on both release and pre-release network chains
    • The profile-cardano-postgres nixos module received preset variables and prepared statements via pgsqlrc for faster and easier analysis of network state
    • The flakeModule jobs now has support for the cardano-cli era command in each of the job scripts by passing the $ERA_CMD variable
    • Default cardano-node-ng package is now 8.6.0-pre, dbsync on sanchonet is now sancho-2-2-0
    • For scripts using a nix-shell shebang, the cardano-parts devShell menu can be disabled from injecting itself into stdout by passing NOMENU=true
    • Template updates include:
      • Adds optional TF AZ declaration on ec2 resources
      • Adds a cardano node p2p dashboard to the grafana cloud stack
      • Adds a dbsync pool performance analysis query
      • Updates python distribute and delegation scripts from world for playground compatibility
      • Starts a python script lib to reduce shared code among the python scripts
      • Several justfile improvements and new recipes
    • More detail is available in the PR description
  • Update submit action script for 8.6 cardano-parts-pull-19
  • Update scripts for 8.6.0-pre cardano-parts-pull-21
    • Fixes subcommand names based on ERA_CMD
    • Adds deposits to some commands
    • Separates CC cold/hot key generation as host authorization has to occur after action is approved
    • CC voting enabled in vote job

Cardano-playground

  • Migration PR to largely complete the network migration from cardano-world to cardano-playground: cardano-playground-pull-5
    • Adds re-spun private chain network
    • Migrates shelley-qa chain network from world
    • Justfile improvements and new recipes
    • Improve concurrent environment chain support
    • More detail is available in the PR description

Iohk-nix

  • Migration to play: iohk-nix-pull-561
    • Migrate cardano-lib networks from world.dev.cardano.org to play.dev.cardano.org
    • Remove deprecated cardano-lib p2p network environment
    • Update sanchonet chain with respin changes
    • Update private chain with respin changes
    • Bump private and shelley-qa chains to sanchonet equivalent conway genesis
    • Bump preview, preprod chains to sanchonet equivalent conway genesis for node 8.6.0-pre pre-release testing

Sanchonet-demo

+ + + + \ No newline at end of file diff --git a/2023-11-14-node-cli-api/index.html b/2023-11-14-node-cli-api/index.html new file mode 100644 index 0000000000..1a048fa922 --- /dev/null +++ b/2023-11-14-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2023-11-01 - 2023-11-14

High level summary

CARDANO-NODE

CARDANO-CLI

  • Improve golden tests
  • Clean-up of conway era commands

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2023-11-15-consensus/index.html b/2023-11-15-consensus/index.html new file mode 100644 index 0000000000..6c63592670 --- /dev/null +++ b/2023-11-15-consensus/index.html @@ -0,0 +1,30 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales

High level summary

Over the last two weeks, we managed to run a UTxO-HD capable node in legacy mode, which maintains the baseline memory usage while keeping all the ledger state in memory (as the current node does). +This legacy mode could provide an alternative for releasing a UTxO-HD capable node where people can choose whether to store the large part of the UTxO set on disk or not. +However, legacy mode involves code duplication, requires several weeks of work before it is production ready (more integration and testing). Moreover, we will not release UTxO-HD before Conway to avoid the risk of delaying the latter. +On the other hand, to integrate the LSM-tree backend for UTxO-HD we need to redesign the Consensus storage layer, and this new design might enable us to implement an alternative in-memory backing store that will have a very similar performance and resource requirements as the current Cardano node. +Therefore, during the coming months we will focus our efforts on the redesign of the storage layer and the LSM-tree backend.

On the Genesis front, we reviewed the peer simulator for Genesis tests, which was implemented by Tweag and was signed-off by the Consensus team.

We also continued our work on improving the handling of blocks from the future. We presented possible approaches to handling blocks from the future in the Chief Scientist Meeting at IOG, which was very well-received. The discussion with the IOG scientists touched upon the relationship of this approach to Ouroboros Chronos.

Javier Sagredo continues his cycle as release engineer, and he is working on version 8.7 of Cardano node.

+ + + + \ No newline at end of file diff --git a/2023-11-15-mithril/index.html b/2023-11-15-mithril/index.html new file mode 100644 index 0000000000..7f2d48f22e --- /dev/null +++ b/2023-11-15-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· One min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team completed the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof-of-concept, achieving the implementation of P2P signatures broadcast with the relay in the end-to-end tests. Additionally, the team completed the proof-of-concept for the deterministic computation of the UTXO/transactions set from the immutable files.

Finally, they continued addressing some performance issue associated with the 'release-mainnet' aggregator, and fixed a bug with the tool used to process batch certificate hash re-computation.

Low level overview

  • Worked on the issue Prototype a P2P relay with libp2p #1300
  • Completed the issue Light Wallet: Release mithril-client library #1311
  • Completed the issue Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283
  • Completed the issue release-mainnet aggregator is unreachable #1310
  • Completed the issue Fix certificate hashes re-computation in aggregator #1343
  • Completed the issue Remove unstable tag in unstable release #1235
  • Worked on the issue Enhance aggregator REST API performances #1327
  • Worked on the issue Signer runtime is stuck for some SPO #1312
+ + + + \ No newline at end of file diff --git a/2023-11-16-network/index.html b/2023-11-16-network/index.html new file mode 100644 index 0000000000..4f216f60e9 --- /dev/null +++ b/2023-11-16-network/index.html @@ -0,0 +1,30 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· One min read
Marcin Szamotulski

High-level overview of sprint 48

Bootstrap Peers

We continued reviewing bootstrap peers, ouroboros-network#4555.

IOClasses / IOSim

We prepared slides for a Haskell meetup were we presented a talk on IOSimPOR. +The recording will be availble on YouTube.

We also used the opportunity to do some refactoring of the IOSim code base: io-sim#117. +We released io-sim-1.3.0.0 on Hackage: io-sim#119.

We also added forkFinally to MonadFork (not included in 1.3.0.0 release): io-sim#123.

Tech debt

We refactored Resource used by the DNS subsystem: ouroboros-network#4707. +We continued reviewing the ouroboros-network#4625 PR, which refactors +RootPeersDNS module.

+ + + + \ No newline at end of file diff --git a/2023-11-17-hydra/index.html b/2023-11-17-hydra/index.html new file mode 100644 index 0000000000..51f3f57566 --- /dev/null +++ b/2023-11-17-hydra/index.html @@ -0,0 +1,33 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team made several impactful updates. They addressed +misleading errors regarding collect com transactions, resolved a security +advisory (CVE-2023-42806), and simplified the Hydra Head protocol by using +inline datums. The team also tackled minor inconsistencies in specifications and +implementation, documented reasons for potentially dropped close transactions by +the cardano-node, and collaborated with SundaeLabs on an offline mode for +hydra-node. Additionally, they engaged in discussions with researchers about +incremental de-/commits.

What did the team achieve this week

  • Removed misleading errors about collect com transactions #839
  • Addressed security advisory CVE-2023-42806 in PR #1161
  • Changed the head protocol to use inline datums, simplifying things in the hydra-node #1162
  • Addressed minor inconsistencies in spec and implementation #1104
  • Documented why close transacations might be dropped by the cardano-node (cant fix) #1039
  • Tidy up a few things here and there
  • Worked with SundaeLabs on the offline mode for hydra-node
  • Discussed incremental de-/commits with researchers

What are the goals of next week

  • Start work on incremental decommits protocol specification #1057
  • Provide support to Hypix
  • Address all open bugs
  • Release version 0.14.0 with this scope
  • Update dependencies to prepare for Conway #1114
  • Shepherd off-line mode PR over the finish line
  • Complete tidying up chain layer via stateless observation changes in hydra-node #1096
+ + + + \ No newline at end of file diff --git a/2023-11-17-performance-and-tracing/index.html b/2023-11-17-performance-and-tracing/index.html new file mode 100644 index 0000000000..95b4b84d57 --- /dev/null +++ b/2023-11-17-performance-and-tracing/index.html @@ -0,0 +1,36 @@ + + + + + +Performance & Tracing Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & Tracing Update

· 3 min read
Michael Karg

High level summary

  • Benchmarking: Release benchmarking for node 8.6.0 as well as benchmarks scrutinizing GHC versions and the new tracing system.
  • Development: PlutusV3 capability of our workload generator has been implemented.
  • Tracing: First round of optimization of the cardano-tracer service has completed, awaiting validation.
  • Nomad backend: A significant PR has landed addressing automation features and debugging capabilites.
  • Workbench: Configurable remote environments and improvements to run documentation have been merged to master.

Low level overview

Benchmarking

We've performed and analyzed a full set of benchmarks for node 8.6.0, both in comparison to recent release tags +and mainnet version 8.1.2. A lot of development work has entered the system since then, so it is crucial +we can rule out any potential performance risks for the next mainnet release.

Additionally, we've been benchmarking GHC9.6.3 builds of cardano-node. Overall, we've observed reliable optimization behaviour by that compiler version - which is much more in line with expectations than what we've seen on GHC9.2.7. Getting evidence on how predictable (and malleable, by code annotations) performance is when building with a certain compiler version is essential for settling on a version as supported release platform.

A last set of benchmarks was dedicated to the new tracing system with node 8.6.0. We were able to show that +there is no performance risk to enabling the new system, even when forwarding all trace messages to a cardano-tracer +service on the receiving end. Key metrics for block forging, as well as block diffusion, did not exhibit any regression.

Development

For future benchmarks to be built around PlutusV3, we've equipped our transaction generator with basic integration and tests for the upcoming Plutus version. This enables us to target the new cost model and potential changes +to the execution budgets by developing specialized workloads.

Tracing

The cardano-tracer service has received its first batch of optimizations. Profiling output is promising; to measure +performance for a long service run time, we're currently equipping the service binary with the same capability to +emit regular resource traces as cardano-node. Analysis of those will be the basis for validating this and possible future optimization efforts.

Nomad backend

Many improvements for the nomad backend have been implemented and merged to master. This encompasses a unified naming schema for all nomad profiles, improved internal management of cluster topology, a more fine-grained healthcheck service, +more detailed automated documentation of underlying hardware, as well as lazy resource release. The latter enables +our team to investigate and debug interrupted runs for the exact moment and in the exact cluster state a potential failure occurred.

Workbench

Our performance workbench has seen upgrades in documenting and reporting cardano-node builds. This ranges from capturing package versions and commit ids of key dependencies, to querying a deployed node for its build compiler. +When alternating between compiler versions and benchmarking custom built branches, automating such documentation is essential.

Furthermore, the workbench is now able to access several remote deployments on all active clusters. This allows for fetching data, analyzing, comparing and reporting on all benchmarks from just one centralized workbench instance.

+ + + + \ No newline at end of file diff --git a/2023-11-20-cip1694/index.html b/2023-11-20-cip1694/index.html new file mode 100644 index 0000000000..8a43751e52 --- /dev/null +++ b/2023-11-20-cip1694/index.html @@ -0,0 +1,27 @@ + + + + + +Initial CIP 1694 Security Analysis and Responses | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Initial CIP 1694 Security Analysis and Responses

· 6 min read
Kevin Hammond

High level summary

We have undertaken an initial high-level security analysis of the CIP-1694 design. We summarise the analysis and our responses here.

Initial CIP-1694 Security Analysis and Responses

Section: The constitutional committee


  • “For example, if we consider the hypothetical Constitution rule "The Cardano network must always be able to produce new blocks" - In this example, if the governance action to reduce block size to 0 is passed, then there will be no way of passing or enacting further proposals. That is, this governance action is completely non-reversable. Suggestion: Instating a built-in mechanism that checks (and perhaps enforces) that the proposed governance actions, if passed, can be reverted in the future.

There is a 'guardrails document' in preparation which captures issues such as these. Some of them may be automatable, as suggested; others will need to be evaluated by humans.


Section: Size of the constitutional committee


  • A possible issue with very large committee sizes (or large number of proposals/voters in general) is that it may take longer to have votes appear on-chain, which in extreme cases may require longer voting periods.

Thanks. Yes, we’ve been thinking about this issue for a long time, see for example the section ‘Final safety measure, post bootstrapping’. We don’t consider this as an issue for the CC since they need to be elected while DReps can just register, so we expect the number of CC members to be much less than the number of DReps


Section: Terms


  • The following sentence is a bit awkward to read: “For example, a committee of size five with a threshold of 3/5 a minimum size of three and two expired members can still pass governance actions if two non-expired members vote Yes.” —> Suggestion: “For example, if we have a committee of size five with a threshold of 3/5, then a committee of three non-expired and two expired members can still pass governance actions if two non-expired members vote Yes.”

Thanks. Yes, that suggestion is a bit easier to read.


Section: Registered DReps


  • “Additionally, registered DReps will need to vote regularly to still be considered active.” - There is a minor issue with requiring “voting regularly”. That is, if there are no proposals to vote on for a long time, this means that no DRep can vote regularly (or they have to issue bogus proposals just to vote on them).

Thanks. We’ve added a mechanism to prevent that issue in the spec/code where if there’s nothing to vote on for an entire epoch, we increment the epoch that each DRep expires.


Section: Ratification


  • It is a bit unclear why protocol changes: network group and technical group are two separate groups.

These correspond exactly to the groups that are administered by the Parameter Committee.


  • I didn’t understand the rationale for requiring 100% “Yes” votes to pass “Info” type governance actions? It seems they have the least potential to harm the system.

Yes, it’s not about harming the system, since Info +actions have no direct effect on the operation of Cardano. The motivation is simply to record the actual level of support for the action.

Once an action is enacted it’s no longer possible to vote on it. So if there was e.g. a threshold of 50%, then there is no way of telling whether the support for it might eventually have reached 90% or higher if it was not immediately enacted when the threshold was reached.


Section: Content


  • For Hard-fork initiation, the changed parameters should probably also be required as part of Additional data.

Protocol parameters can be changed in arbitrary ways by the hard fork and new ones might be introduced, so anything this action pins down might not actually be the value that will be present after the hard fork.


Section: Protocol Parameter groups


  • It is a bit unclear to the reader what some of these parameters mean, for example: monetary expansion (rho) and treasury expansion (tau). Suggestion: Include brief explanations for the non-obvious parameters.

These are existing protocol parameters, described in e.g. https://cips.cardano.org/cips/cip9/9 or The Cardano Protocol Parameters Guide.


  • With the current set of governance actions, it seems that it is not possible to add new types of protocol parameters, or categories of governance voting thresholds. Suggestion: Consider possibility of incorporating governance actions that allow addition of new protocol parameters, deletion of defunct protocol parameters, or modification of governance voting threshold categories.

All of this needs to be done via a hard fork. If we had an action that added a parameter then there is no way of giving it semantics anyway, since that must be done by logic in the code.


Section: Votes


  • Is a constitutional committee member also a DRep? If so, do they vote twice, once as a committee member and once as a DRep?

They may or may not be (and they could also be an SPO). Note that this is fine, since these are completely separate tallies. This is also not preventable, since we don’t have an on-chain mechanism for identity. And yes, each credential gets to vote on each action for all roles in the governance system it has.


Section: Separation of Hard Fork Initiation from Standard Protocol Parameter Changes


  • It is unclear whether there would be automated checks for whether a proposal is indeed a soft fork or hard fork, which would reduce human error in categorising proposals.

There is no on-chain mechanism that could enforce this, the best we could do is some kind of certificate. However, this may not be trustworthy, of course. We will consider this in future versions of Voltaire.


Section: Changes post Edinburgh workshop (July 2023)


  • “All governance actions are enacted one epoch after they are ratified.” - I’m not sure if this line is currently in the main body of the CIP?

It is, but it is phrased differently: ‘All governance actions are enacted on the epoch boundary after their ratification.’


Section: Reduced deposits for some government actions


  • Another downside of requiring endorsement from the constitutional committee is that this likely does not apply to constitutional committee-related proposals, such as no-confidence votes.

Indeed. We have no plans for this at the moment.

+ + + + \ No newline at end of file diff --git a/2023-11-22-ledger/index.html b/2023-11-22-ledger/index.html new file mode 100644 index 0000000000..3c68f6c4fb --- /dev/null +++ b/2023-11-22-ledger/index.html @@ -0,0 +1,30 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

Last two weeks progress was mainly on testing, bug fixes and improvements to clarity of +CDDL specification. Important bugfixes include:

  • Fix deserialization of ValueNotConservedUTxO predicate failure that could not +previously report zero ADA.
  • Fix deserialization of CostModels in the PParamsUpdate. Invalid CostModels are no +longer allowed, only CostModels for unrecognized Plutus versions are allowed starting +with Conway
  • Fix returning of Deposits for ProposalProcedures

Testing tooling has been improved and new tests have been implemented for Conway era.

Low level summary

Conway

  • pull-3858 - Restructure computing Refunds and Deposits in a TxBody across all eras
  • pull-3860 - Removed mock/crypto.cddl, added optional tag to sets
  • pull-3864 - Fix Proposal deposits and add deposit tests to imp tests
  • pull-3859 - Rename ProposalsSnapshot to Proposals
  • pull-3867 - MaryValue fixes
  • pull-3869 - Indicate that tag 258 is optional for OSet. Fix rational CDDL
  • pull-3863 - Improve deposits refunds re-usability
  • pull-3861 - Fail PParamsUpdate deserialization for invalid costmodels in Conway
  • pull-3875 - Fix cddl spec for CostModels in Conway
  • pull-3876 - Change 4 PParam fields from EpochNo to EpochInterval
  • pull-3884 - Relax requirement on the Set tag 258 to be enforced in the next era

Testing

  • pull-3868 - Improvements to support property tests on Traces with simple Tx with DRep related Certs
  • pull-3792 - RATIFY and GOV constraint tests
  • pull-3885 - Added a test for genTxAndNewEpoch
  • pull-3886 - QuickCheck Imp integration

Improvements and releasing

+ + + + \ No newline at end of file diff --git a/2023-11-22-mithril/index.html b/2023-11-22-mithril/index.html new file mode 100644 index 0000000000..bd3f241611 --- /dev/null +++ b/2023-11-22-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· One min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team made progress in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, completing the first prototype implementation of the Mithril relay, which enables P2P signature broadcasting. They also made progress in optimizing the performance of the aggregator. Additionally, the team completed some enhancements on the CI/CD that will help manually deploy experimental Mithril networks for SanchoNet, as well as for the new P2P network layer.

Finally, they investigated occasional runtime issues causing delays for certain SPOs and started preparing for the next distribution release.

Low level overview

  • Completed the issue Prototype a P2P relay with libp2p #1326
  • Worked on the issue Enhance aggregator REST API performances #1327
  • Worked on the issue Signer runtime is stuck for some SPO #1312
  • Completed the issue Manually deploy a test Mithril network #1356
  • Completed the issue Make Cardano node version custom in CI/CD #1355
  • Worked on the issue Support P2P relay in infrastructure #1361
  • Completed the issue mithril-client fails to extract archive #1352
+ + + + \ No newline at end of file diff --git a/2023-11-24-goedel/index.html b/2023-11-24-goedel/index.html new file mode 100644 index 0000000000..ed3b1aab91 --- /dev/null +++ b/2023-11-24-goedel/index.html @@ -0,0 +1,29 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and working on a +performance modelling paper

Details

  • completing work on chain sync mini-protocol

  • proof sketch of conformance property of chain sync mini-protocol

  • onboarding new performance modelling intern

  • new content for JLAMP paper

+ + + + \ No newline at end of file diff --git a/2023-11-24-hydra/index.html b/2023-11-24-hydra/index.html new file mode 100644 index 0000000000..dc993569ff --- /dev/null +++ b/2023-11-24-hydra/index.html @@ -0,0 +1,49 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team spent significant time opening a head among +themselves on mainnet using the release candidate, revealing and +addressing lurking bugs such as +#1174. Also +required was this change to dynamically calculate the min utxo value +#1176, a +necessary adjustment following the switch to inline datums. The team +engaged with cardano-cli / cardano-api maintainers to discuss recent +changes and collaborated on drafting feature ideas, including providing +Conway support +for the Hydra roadmap. As part of ongoing improvements, they +experimented with writing the specification in markdown instead of +LaTex.

What did the team achieve this week

  • Opened head among us on mainnet and uncovered a few lurking bugs like +#1174 in the +release candidate
  • Calculate the min utxo value instead of hard-coding it +#1176, which is +needed since we switched to inline datums.
  • Met with the cardano-cli / cardano-api maintainers to discuss +recent changes and way forward
  • Drafted features ideas to provide Conway +support on the +Hydra roadmap
  • Experimented in writing the specification in markdown instead of LaTex

What are the goals of next week

  • Have the Monthly review meeting with several demos
  • Release version 0.14.0 with this +scope
  • Complete tidying up chain layer via stateless observation changes in +hydra-node +#1096
  • Update dependencies to prepare for Conway +#1114
+ + + + \ No newline at end of file diff --git a/2023-11-24-sre/index.html b/2023-11-24-sre/index.html new file mode 100644 index 0000000000..c44ff24628 --- /dev/null +++ b/2023-11-24-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 4 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • The cardano-node nixos service now supports SIGHUP p2p topology reloading when the useSystemdReload option is enabled

Lower level summary

Capkgs

  • Update cardano-db-sync and offchain-metadata-tools package paths and/or references: capkgs-compare

Cardano-node

  • Optionally have cardano-node nixos service utilize SIGHUP p2p topology reload: cardano-node-pull-5537
    • Creates a useSystemdReload bool option for the cardano-node nixos service
    • This will move the topology file(s) to /etc/cardano-node/topology-$i.yaml and inject systemd reload hooks for p2p configured cardano-node instances
    • Moving topology files to /etc also allows for manual topology updates when a quick test is needed and full service re-deployment isn't desired

Cardano-parts

  • Adds a metadata server profile and a number of other features and improvements: cardano-parts-pull-20
    • Adds a new metadata-service profile
    • Adds metadata service and pkg configuration options for cardano-groups to utilize the metadata-server profile
    • Adds a cardano-webserver profile for multiple virtualHosts and TLS ACME server aliases for a cluster's static needs, with each cached behind varnish
    • Adds extra node list producers and public producers for cardano-node-topology profile
    • Adds delegation amounts to cardano-postgres psql prepared query show_pools_block_history_in_epoch
    • Adds select systemd metrics reporting to grafana-agent profile
    • Adds a bookRelay multivalue DNS option to disambiguate with groupRelay multivalue DNS
    • Adds an opsLib library to the cardano-parts lib flakeModule and refactors some common code into it
    • Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo
    • Adds job-gen-env-config for both release and pre-release configuration files to support configuration book generation
    • Adds support for grafana recording rules in the template files
    • Improves cardano-group profile handling of producers with respect to multiple instance nodes
    • Improves grafana-agent profile metrics handling for multi-instance cardano-node servers
    • Improves smash service preStart handling while waiting for a node socket
    • Updates Justfile for ERA_CMD demo support
    • Migrates default grafana cloud node exporter, varnish alert and recording rules to grafana alert and recording rule templates
    • Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile
    • Defaults cardano-postgres profile psqlrc use to false

Cardano-playground

  • Adds a new testnet metadata server, cluster webserver, and other improvements: cardano-playground-pull-6
    • Adds a new metadata server
    • Adds a new webserver for the cluster's static virtualhost needs
    • Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo
    • Adds systemd metrics monitoring to the cluster
    • Resizes sanchonet machines to support the growing chain
    • Completes migration of preprod from world
    • Updates groups to utilize both bookRelay and groupRelay multivalue DNS attributes
    • Updates Justfile for ERA_CMD demo support
    • Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile
    • Migrates book static code to playground from world, with refactor, cleanup and updates
    • Migrates default grafana cloud node exporter, varnish alert and recording rules to declarative grafana alert and recording rules

Offchain-metadata-tools

  • Adds db password option with obfuscation plus misc improvements: offchain-metadata-tools-pull-61
    • Adds db password connection option and obfuscates passwords in output for metadata server, sync, webhook services
    • Updates the nixos service for metadata-webhook service to optionally use an environmentFile for secrets: cfg.environmentFile
    • Moves from std use in the nix flake to standard flake schema
    • Fixes hydra CI failures
    • Builds update-docs in hydra to avoid long local build times
    • Removes deprecated tullia
    • Removes deprecated check-hydra from pkgs
    • Removes deprecated bors files and references
+ + + + \ No newline at end of file diff --git a/2023-11-29-consensus/index.html b/2023-11-29-consensus/index.html new file mode 100644 index 0000000000..d8ea7571ec --- /dev/null +++ b/2023-11-29-consensus/index.html @@ -0,0 +1,31 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

The Consensus team implemented and tested a patch that does not propagate future headers. +It is under review, and we expect it can be released in the next Cardano node version. +On the UTxO-HD front, we finished prototyping the LedgerDB and BackingStore redesign, which is required for the LSM-tree integration and might help us implement a more resource efficient in-memory backend. +With this prototype finished we can start integrating the rest of the code. +We investigated the unexpected performance degradation observed when acquiring the block context. +We also released Cardano node 8.7.0 and moved tree-diff outside cardano-ledger libraries.

+ + + + \ No newline at end of file diff --git a/2023-11-29-mithril/index.html b/2023-11-29-mithril/index.html new file mode 100644 index 0000000000..a6ffd0a034 --- /dev/null +++ b/2023-11-29-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team released the initial version of the Mithril client library, enabling developers to integrate core Mithril features into their applications. They also released a new distribution, 2347.0, which includes support for slim certificate production by the aggregator, along with bug fixes and performance improvements.

The team also introduced the initial version of Cardano/Mithril node communication enhancements, implemented by TxPipe as part of the Catalyst project. They made progress in decentralizing Mithril networks, including testing the Mithril peer-to-peer (P2P) relay on a test network and conducting threat modeling and risk analysis for P2P networking. Additionally, they started working on adapting the Mithril client library for WASM compilation and made progress in optimizing aggregator performance.

Finally, they fixed inaccuracies in the verbosity level of logs across most nodes and worked on troubleshooting for some users.

Low level overview

  • Release of the mithril-client library crate
  • Publication of a dev blog post about the released Mithril library
  • Released the new distribution 2347.0
  • Worked on the issue Light Wallet: Release mithril-client WASM library #1336
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Enhance aggregator REST API performances #1327
  • Worked on the issue Signer runtime is stuck for some SPO #1312
  • Completed the issue Support P2P relay in infrastructure #1361
  • Completed the issue Make Cardano node version custom in CI/CD #1355
  • Completed the issue Manually deploy a test Mithril network #1356
  • Completed the issue mithril-client verbosity not following usage menu #1325
  • Completed the issue Error message for mithril-client snapshot download #1375
+ + + + \ No newline at end of file diff --git a/2023-12-01-hydra/index.html b/2023-12-01-hydra/index.html new file mode 100644 index 0000000000..b0af16a273 --- /dev/null +++ b/2023-12-01-hydra/index.html @@ -0,0 +1,40 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team conducted a packed Monthly Review meeting, +featuring demonstrations and the preparation of the monthly report. They +addressed flakiness in tests and enhanced the logs json schema, +improving overall test reliability. Additionally, the team successfully +built MacOS ARM64 (aarch64-darwin) binaries in CI, expanding platform +support. They further improved the network configuration by detecting +incompatible persisted states, contributing to overall system +robustness. Finally, the team released version 0.14.0, highlighting +their commitment to delivering regular updates and improvements.

What did the team achieve this week

  • Monthly Review +meeting +packed with demonstrations and prepared monthly report +#1189
  • Fixed several flaky tests and improved the logs json schema +#1188#1190#1192
  • Built MacOS ARM64 (aarch64-darwin) binaries in CI +#1182
  • Improved network configuration by detecting incompatible persisted +states #1174
  • Released version 0.14.0

What are the goals of next week

  • Start work on incremental decommit
  • Continue shepherding contributed PRs to completion
  • Finish stateless-observation work
  • Open a head on a Conway network
+ + + + \ No newline at end of file diff --git a/2023-12-04-performance-and-tracing/index.html b/2023-12-04-performance-and-tracing/index.html new file mode 100644 index 0000000000..52a450a6e0 --- /dev/null +++ b/2023-12-04-performance-and-tracing/index.html @@ -0,0 +1,30 @@ + + + + + +Performance & Tracing Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & Tracing Update

· 3 min read
Michael Karg

High level summary

  • Benchmarking: Release benchmarking for node 8.7.0. Also, we performed the first-ever Conway benchmarks.
  • Development: Conway capability of our workload generator has been implemented and merged to master.
  • Infrastructure: Changes to our workbench facilitating easy access and archiving of raw benchmarking data.
  • Tracing: Quality-of-life improvements to tracing output and addition of a test suite.
  • Nomad cluster: Expand the list of benchmarking profiles that can be run on Nomad; generalize cluster topology generation.

Low level overview

Benchmarking

A full set of benchmarks for node 8.7.0 has been performed, with the focus of enabling the next mainnet release. We've measured slight performance improvements of 8.7.0 over 8.6.0, and can confirm no regressions have been introduced.

Furthermore, we've run system integration level benchmarks in the Conway era for the first time, on the same node version. +Only Babbage-compatible workloads have entered comparison as to ascertain performance consequences of only changing the ledger version, and nothing else. The results are very promising, as we could show that switching ledger versions for existing workloads does not come with a performance penalty.

Development

Our transaction generator has been extended to be able to submit all present benchmarking workflows in the Conway era. +Currently, we're looking into adding Conway-exclusive features, such as DRep registration. Those would be submitted at the very beginning of a run, as we're interested in seeing potential performance implications of maintaining DRep sets of varying size in ledger. Furthermore, this will serve as the basis for future development Conway-exclusive workloads, such as governance actions or vote tallying.

Infrastructure

As our workbench will be pivotal in orchestrating and organizing benchmarking runs on the Nomad cloud backend, we've +improved how raw benchmark data is tagged, which metadata is documented in an automated manner. This enhances both access to existing run sets, as well as maintaining an archive for benchmarking data.

Tracing

The new tracing system is currently receiving usability improvements as we're reworking the output of several trace messages. +Additionally, we're setting up a rigorous test suite to provide safety for future development of and component integration inte the system.

Nomad backend

We've been working on adapting various benchmarking workloads, which are defined by our workbench's profiles, to running on the new infrastructure. This mainly concerns a workload utilizing Plutus, as well as peer-to-peer flavoured workloads. Furthermore, we're implementing a solution to create all possible cluster topologies algorithmically, instead of still using fixed literal definitions for some cases.

+ + + + \ No newline at end of file diff --git a/2023-12-06-ledger/index.html b/2023-12-06-ledger/index.html new file mode 100644 index 0000000000..881687de9c --- /dev/null +++ b/2023-12-06-ledger/index.html @@ -0,0 +1,32 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

This period we reached a major milestone, namely we now have an initial version of Conway +conformance testing working. We are now able to generate random valid data with the help +of constraint based testing framework, apply that data to Conway Ledger rules and verify +that the output matches to the one produced by the executable version of the Formal Ledger +Specification, when it is applied to the same random data.

We also had a couple of Conway bugs fixed and a few new predicate check implemented. Get +Constitutional Committee query is complete and tested. Various improvements to the +testing tools. Addition of more test cases.

Low level summary

Conway

  • pull-3888 - Add checks for valid ProtVer when a proposal is a HardFork
  • pull-3902 - Fix pvCanFollow usage in Conway and improve clarity in Shelley
  • pull-3855 - Remove unreachable proposals
  • pull-3903 - Add lenient decoder for Addr
  • pull-3878 - Committee query - implement next epoch change

Testing

  • pull-3893 - Move tree-diff dependency to tests together with all instances
  • pull-3896 - Fix Brute force failure
  • pull-3904 - New ListWhere Pred added to the Constrained Solver.
  • pull-3907 - cardano-ledger-conformance: Remove CHANGELOG.md from cabal file
  • pull-3883 - Committee QuerySpec Imp Test
  • pull-3909 - Make impAnn a bit more useful, by making the logs scoped by impAnn
  • pull-3908 - Use upstream testing instances for very basic types
  • pull-3912 - Removed call to tail, and the 'watchPulser' test
  • pull-3852 - Added constrained generators to conformance tests - Part 1

Improvements and releasing

+ + + + \ No newline at end of file diff --git a/2023-12-06-mithril/index.html b/2023-12-06-mithril/index.html new file mode 100644 index 0000000000..dbfc81e7cc --- /dev/null +++ b/2023-12-06-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team made progress in adapting the Mithril client library for WASM compilation and providing a JavaScript API for it. They also completed the optimization of the aggregator's performance. Additionally, the team initiated the implementation of a testing Mithril network for SanchoNet and conducted threat modeling and risk analysis for P2P networking.

Finally, they enhanced the developer experience of the Mithril client library by providing ready-to-run examples in the repository and implemented a workflow to manually publish libraries on crates.io.

Low level overview

  • Worked on the issue Light Wallet: Release mithril-client WASM library #1336
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Create a test network on Sanchonet #1173
  • Worked on the issue Upgrade breaking changes crates #1357
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Completed the issue Enhance aggregator REST API performances #1327
  • Completed the issue Signer runtime is stuck for some SPO #1312
  • Completed the issue Make mithril-client examples full crates #1385
  • Completed the issue Manual publication to crates.io with GitHub action #1380
  • Completed the issue Remove sqlite dependency from mithril-client crate #1390
+ + + + \ No newline at end of file diff --git a/2023-12-08-goedel/index.html b/2023-12-08-goedel/index.html new file mode 100644 index 0000000000..16513927e0 --- /dev/null +++ b/2023-12-08-goedel/index.html @@ -0,0 +1,30 @@ + + + + + +Goedel Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Goedel Team Update

· One min read
James Chapman

The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols, working on a +performance modelling paper and working on a performance modelling +prototype tool

Details

  • completing work on chain sync mini-protocol

  • proof sketch of conformance property of chain sync mini-protocol

  • new content for JLAMP paper

  • NWPT talk

+ + + + \ No newline at end of file diff --git a/2023-12-08-hydra/index.html b/2023-12-08-hydra/index.html new file mode 100644 index 0000000000..90a0d45310 --- /dev/null +++ b/2023-12-08-hydra/index.html @@ -0,0 +1,40 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team made progress by releasing version +0.14.0, +incorporating updates and improvements. They also updated dependencies +in preparation for Conway support, addressing +#1114. +Additionally, the team completed substantial refactoring in hydra-node +using stateless observation, aiming to enhance system efficiency and +performance +#1096. Lastly, +they investigated regressions related to JSON serialized transactions +and consider dropping this in favor of CBOR only submission.

What did the team achieve this week

  • Released version +0.14.0
  • Updated dependencies to prepare for Conway support +#1114
  • Completed substantial refactoring in hydra-node using stateless +observation +#1096
  • Investigated regressions about JSON serialized transactions

What are the goals of next week

  • Analysed our mainnet head and why some transactions were invalid
  • Detect incompatible blocks and provide better UX
  • Update to newer cardano-node and Conway support in hydra-node
  • Draft the end-to-end workflow for incremental decommits
+ + + + \ No newline at end of file diff --git a/2023-12-08-network/index.html b/2023-12-08-network/index.html new file mode 100644 index 0000000000..42b4ffdd3b --- /dev/null +++ b/2023-12-08-network/index.html @@ -0,0 +1,52 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 3 min read
Marcin Szamotulski

High-level overview of sprint 49 & sprint 50

Fixed PeerSelection bug

Karl Knutsson (Cardano Foundation (CF)) found a bug in +the cardano-node-8.7.0 version used on the Sancho Net which was fixed in 8.7.1. +It resulted in a node not being able to reconnect to an upstream peer once it +was demoted by an asynchronous exception. This bug would be caught by Q&A in +a mainet release, but for testnet releases, Q&A test suite is not used. We also +developed a test which covers the bug in the ouroboros-network, we also identified +a missing PeerSelection test which we need to port to our simulation network. +See ouroboros-network#4734, ouroboros-network#4665.

Bootstrap Peers

Still under review, ouroboros-network#4555. The consensus team is now +implementing the API we need for bootstrap peers. Once consensus API is implemented we will integrate changes in an experimental branch of +cardano-node.

Tx-Submission

We started working on a new implementation of the tx-submission application. No +tx-submission protocol changes are foreseen, but we want to be able to +download each tx from just one upstream peer and share the results between +different connections. We want to distribute the bandwidth between multiple +clients. We also think that this work will prepare us for the future +Ouroboros-Leios changes, which will contain various versions of tx-submission +like mini-protocols. See ouroboros-network#4701.

Peer Sharing

Various fixes and improvements were implemented:

  • ouroboros-network#4725

    • disabled peer sharing with initiator-only nodes: currently it's not +possible to get peers from initiator-only nodes (edge nodes, e.g. +wallets). In the future, we might change this, which will require running +a server-side of the peer-sharing protocol by such nodes. See +ouroboros-network#4726.
    • fixed peer-sharing codec
    • fixed a handshake bug which returned a wrong peer-sharing option
  • ouroboros-network#4728

    • disabled peer-sharing for NodeToNodeV_11 and NodeToNodeV_12
  • Karl Knutsson (CF) has been working on additional improvements, e.g. ouroboros-network#4735

With these fixes, Karl Knutsson (CF) was able to see that two peers on the mainnet +can discover themselves through peer-sharing and keep being mutually useful +and thus the connection surviving outbound-governor churn events.

IOSim

We improved the memory footprint of IOSim in io-sim#126, see +ouroboros-network#4721 for heap profile improvements on large test cases.

We are working on optimising the memory footprint of IOSimPOR. We are +reimplementing VectorClocks using a trie, instead of a map which leads to +significant improvements.

Cardano-Ping

cardano-node-0.2.0.10 was released to CHaP, ouroboros-network#4746. This +version exports more APIs which turned out to be useful in cardano-node test +suite, see cardano-node#5536.

Technical Debt

We addressed some small tech-debt issues in ouroboros-network#4722:

  • fixed some typos
  • using bracket instead of onException in withSnocket
  • improved haddocks
  • organised TracePeerSelection constructors

We improved the memory footprint of some of our tests in ouroboros-network#4721.

+ + + + \ No newline at end of file diff --git a/2023-12-08-node-cli-api/index.html b/2023-12-08-node-cli-api/index.html new file mode 100644 index 0000000000..c4d0488729 --- /dev/null +++ b/2023-12-08-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 3 min read
Carlos LopezDeLara

2023-11-15 - 2023-12-08

High level summary

This is sprint was mostly about bug fixing, code clean-ups and optimizations in preparation for a mainnet suitable release.

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2023-12-08-sre/index.html b/2023-12-08-sre/index.html new file mode 100644 index 0000000000..bf9e645ef2 --- /dev/null +++ b/2023-12-08-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • Sanchonet was respun to cardano-node 8.7.0-pre, and upgraded to cardano-node 8.7.1-pre shortly afterwards
  • Cardano-node 8.7.2 was released and all environments were then upgraded to 8.7.2
  • Cardano-parts deployed machines were upgraded to nixpkgs 23.11 and nix 2.19.3
  • Cardano-parts resource deployed environments were switched from the use of Terraform to OpenTofu

Lower level summary

Capkgs

  • Updated for cardano-node 8.7.2 and process-compose packages: capkgs-compare

Cardano-parts

Cardano-ops

Cardano-playground

Cardano-world

  • Sanchonet update PR: cardano-world-pull-111
    • Merge the long running sanchonet-updated branch
    • Migrate explorers from ziti to wireguard tunnel usage
    • Remove remaining ziti code and provisioned resources
    • Retire remaining nomad jobs in preference of the cardano-playground environments
    • Downsize the cluster in preference of the cardano-playground environments

Iohk-nix

+ + + + \ No newline at end of file diff --git a/2023-12-11-performance-and-tracing/index.html b/2023-12-11-performance-and-tracing/index.html new file mode 100644 index 0000000000..582e675621 --- /dev/null +++ b/2023-12-11-performance-and-tracing/index.html @@ -0,0 +1,28 @@ + + + + + +Performance & Tracing Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & Tracing Update

· 4 min read
Michael Karg

High level summary

  • Benchmarking: Release benchmarking for node 8.7.2, as well as P2P benchmarks - the latter being a premiere for the Nomad cluster.
  • Development: Work on automating the submission of Conway transactions for registration of and stake delegation to DReps is ongoing.
  • Infrastructure: We're preparing to safely retire our current benchmarking cluster.
  • Tracing: The documentation for the new tracing system is being reworked. Additionally, we've added a feature to cardano-tracer to capture performance over a long runtime.
  • Nomad cluster: The Nomad backend has been successfully equipped with support for up-to-date P2P topology, as well as deployment for Plutus script data.

Low level overview

Benchmarking

We've performed a full set of release benchmarks for node 8.7.2. From a performance perspective, it has been greenlit for mainnet release. Starting with this version, our team will publish observations alongside the original comparative analysis of benchmarks, providing insight into key metrics and resource usage. Hence, for the post on version 8.7.2, see here.

Additionally, we're running P2P versus no-P2P benchmarks on the same version. We intend to establish future baseline runs using P2P topology as the default setting. All our cluster nodes being block producers, it is crucial to establish the P2P stack does not exhibit any regression regarding block forging. Furthermore, the evidence gathered from those benchmarks forms the base for a recommended setting for P2P on mainnet block producers.

It deserves special mention that those P2P benchmarks are our first production runs with the Nomad cluster - and using the new tracing system exclusively. Having finalized all optimization rounds of the latter, and having meticulously eliminated all confounding factors from the Nomad infrastructure, we're confident in the measurements being subject to extremely low variance - which we made sure of in many past validation runs on Nomad.

Development

Orchestrating DRep actions into benchmarking workflows has opened up a fairly large design space. Currently, we're focusing on having stake delegated to DReps, in order to trigger ledger pulses for calculations particular to DRep actions. We can benchmark a possible +performance impact of those pulses - even if there are no actions ongoing - as a first step.

The contributing factors to the cost of those pulses are both the number of DReps registered, and the number of delegations to them. It is still under debate which values represent a probable model for mainnet, and whether we can achieve stake delegation programmatically (i.e. by submitting transactions), or if, for large numbers, we need means to inject those delegations into genesis.

Infrastructure

With the switch of all production benchmarks to the Nomad cluster, we will retire the legacy cardano-ops cluster very shortly. Currently, we're making sure that when all its resources are released, we keep an archive for all runs performed, including all raw log data - with the oldest runs dating back as far as December 2019.

Tracing

We've outfitted the cardano-tracer service with the same kind of resource tracing machinery that's used by cardano-node - as well as created a dedicated benchmarking profile for it. It puts very little pressure on the node; instead it causes 6 nodes to emit traces at a rate of >35 messages per second, putting pressure on cardano-tracer via trace forwarding at >200 messages per second for an extended period of time. Analysis of these traces will form the ground for various optimizations of cardano-tracer that are currently being worked on.

As we aim for early 2024 to be able to recommend the new tracing system as default in production use, we're currently also reworking the comprehensive documentation to reflect all changes made over the last months.

Nomad backend

In addition to being able to deploy Plutus script data and redeemers seperately (instead of inlining them as the legacy cluster did), the Nomad cluster now supports being set up with recent P2P topology. No-P2P topology format will still be supported +for occasional regression benchmarking of the P2P stack, when desired. Furthermore, we've completed porting all benchmarking profiles from the legacy cluster to Nomad.

+ + + + \ No newline at end of file diff --git a/2023-12-13-mithril/index.html b/2023-12-13-mithril/index.html new file mode 100644 index 0000000000..96acafa44e --- /dev/null +++ b/2023-12-13-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team completed the adaptation of the Mithril client library for WASM compilation, providing a JavaScript API for it. They also completed the proof of concept to demonstrate that a subset of Cardano transactions is part of the entire transactions set. The refactoring of the Mithril client CLI with the Mithril client library was also finalized. Additionally, the team kept working on the threat modeling and risk analysis for P2P networking, along with progressing in the implementation of a testing Mithril network for SanchoNet.

Finally, they started implementing an expiration mechanism for the open messages in the aggregator, and they completed the upgrade of Rust dependencies with breaking changes.

Low level overview

  • Completed the issue Light Wallet: Implement mithril-client WASM library #1336
  • Completed the issue Light Wallet: Certify Cardano UTXO/transactions set PoC #1393
  • Completed the issue Refactor mithril-client-cli with mithril-client library #1335
  • Worked on the issue Implement open_message timeout in aggregator #1387
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Enhance machine readable logs in client #1234
  • Worked on the issue Create a test network on SanchoNet #1173
  • Completed the issue Upgrade breaking changes crates #1357
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
+ + + + \ No newline at end of file diff --git a/2023-12-15-hydra/index.html b/2023-12-15-hydra/index.html new file mode 100644 index 0000000000..864c64c276 --- /dev/null +++ b/2023-12-15-hydra/index.html @@ -0,0 +1,47 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team identified and resolved issues with a malfunctioning +head on mainnet, implementing preventive measures. They edited and merged a new +Architectural Decision Record (ADR) proposed by SundaeLabs, upgraded +cardano-node to version 8.7.2, and improved the TUI user experience. +Preparations for "Conway support" were initiated, and updates were made to logs +and API schemas. Additionally, initial steps were taken towards incremental +decommits.

What did the team achieve this week

  • Troubleshoot and recover a broken head on mainnet. Opened issue +#1202 and PR +avoiding this in-flight +#1211
  • Designed and proposed a new ADR to generalize EventSource and +EventSinks#1157, +contributed by SundaeLabs.
  • Upgrade cardano-node to 8.7.2 +#1199 and +re-enables e2e nix-shell support on Darwin +#1203
  • UX enhancement on TUI +#1201
  • Preparations for "Conway support" +#1177[#1206 & +#1207]
  • Update logs and api schemas +#1212
  • First steps on incremental decommits +#1057:
    • Drafted the e2e workflow +#1205
    • Added decommit API endpoints +#1209

What are the goals of next week

  • Detect incompatible blocks and provide better UX
  • Conway support in hydra-node
  • Off-chain logic for incremental decommits
+ + + + \ No newline at end of file diff --git a/2023-12-20-mithril/index.html b/2023-12-20-mithril/index.html new file mode 100644 index 0000000000..2aac596abe --- /dev/null +++ b/2023-12-20-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team completed aggregator optimizations, enabling the certification of new data types without introducing a new era. They also facilitated the selection of these data types through a simple configuration parameter. Additionally, the team started implementing a mock aggregator to strengthen Mithril client tests in WASM, kept working on threat modeling and risk analysis for P2P networking, and progressed with the implementation of a testing Mithril network for SanchoNet.

Finally, they worked on some optimizations and refactoring of the Mithril client CLI and started upgrading the Cardano node topology used in the Mithril networks' infrastructure.

Low level overview

  • Completed the issue Implement open_message timeout in aggregator #1387
  • Completed the issue Implement configurable signed entity types in aggregator #1388
  • Completed the issue Enhance machine readable logs in client #1234
  • Completed the issue Manual publication to npm registry with GitHub action #1411
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Implement a fake standalone aggregator #1397
  • Worked on the issue Simplify Mithril client CLI download command #1406
  • Worked on the issue Make all infra Cardano nodes use P2P topology #1405
  • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
+ + + + \ No newline at end of file diff --git a/2023-12-22-hydra/index.html b/2023-12-22-hydra/index.html new file mode 100644 index 0000000000..63acb9f617 --- /dev/null +++ b/2023-12-22-hydra/index.html @@ -0,0 +1,33 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team made significant progress, implementing an offline mode with associated refactoring. They enhanced user experience by detecting incompatible eras in hydra-node. Protocol changes were implemented for incremental decommits, addressing off-chain logic. Additionally, the team contributed fixes to cardano-ledger and coordinated with the Eternl team on enabling committing into a head from their wallet.

What did the team achieve this week

  • Offline mode implementation +#1118 and +refactoring +#1222
  • Detect incompatible era in hydra-node and provide better UX +#1216
  • Implemented protocol changes for incremental decommits (off-chain +logic) #1057
  • Contributed fixes to cardano-ledger#3949 and +#3953
  • Synced up with the Eternl team on enabling committing into a head from +their wallet

What are the goals of next week

  • Maybe cut a release 0.15.0 to ship offline-mode and unsupported era UX
  • Full conway support in hydra-node
  • Transaction creation and observation for incremental decommits
+ + + + \ No newline at end of file diff --git a/2023-12-22-network/index.html b/2023-12-22-network/index.html new file mode 100644 index 0000000000..040fb1c64b --- /dev/null +++ b/2023-12-22-network/index.html @@ -0,0 +1,51 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High-level overview of sprint 51

Outbound Governor Bug in cardano-node-8.7.2

In the current sprint, we received a bunch of reports from SPOs about nodes not +maintaining some connection when using cardano-node-8.7.2 (running in P2P +mode). Such regressions are very important to us since they can lead to lost +blocks. We were able to reproduce this issue. Every time there's a longer +pause of block production (due to the statistical nature of Ouroboros), there +is a chance that the bug will be armed. For this reason cardano-node-8.7.2 +needs to be closely monitored.

We found the bug and developed a fix, ref. Karl +Kntusson (CF) wasn't able to reproduce the bug with the patched version of +the node for long enough (almost two weeks now) for us to belive that the fix +is correct.

Advise for SPOs

We created a release branch for 8.7.3. The advice from +the network team is to either downgrade to the previous release, e.g. 8.1.2 +or use the above release branch (note that there were no benchmarks made or Q&A +tests yet).

Testing plans

We were also able to reproduce the bug using IOSim, ouroboros-network#4757. +However, the bug relies on a particular schedule of two threads which are +involved and we needed to artificailly modify IOSim schedule in production +code - something that we don't want to commit to the master branch. We also +experimented with a randomised scheduler for IOSim, but that did not lead to +finding the schedule which arms the bug: the search space grows exponentially +with the number of steps in the threads, partial order reduction techniques +implemented in IOSimPOR are more appropriate - unfortunatelly the simulation +test is too large to be executed in IOSimPOR even with large amounts of +RAM. To use IOSimPOR we need to implement a test which includes the two +interacting components:

  • connection-manager
  • outbound-governor (where the bug was located)

which communicate through PeerStateActions, without including all the +diffusion components as we do in our sim-net tests. More in style of +outbound-governor tests where there is just a single outbound-governor, +unlike in the sim-net which runs multiple communicating diffusions.

Bootstrap peers

We continued working on bootstrap peers, ouroboros-network#4555

TxSubmission Decision Logic

We continued working on tx-submission decision logic, ouroboros-network#3311

+ + + + \ No newline at end of file diff --git a/2023-12-22-sre/index.html b/2023-12-22-sre/index.html new file mode 100644 index 0000000000..0a899f7b60 --- /dev/null +++ b/2023-12-22-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • A new repository was created which enables agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: cardano-monitoring
  • The govtool backend swagger interface was nix flake packaged and deployed for Voltaire private chain testing usage
  • Grafana cloud monitoring stacks were migrated to new EC2 cardano-monitoring servers
  • Cardano-db-sync state snapshots now support client range requests, details here
  • In addition to monitoring server centralized grafana metrics, sysstat collected system metrics are now available locally on all cluster machines at high time resolution
  • Code changes required due to repository migrations to IntersectMBO have largely been completed

Lower level summary

Auth-keys-hub

Cardano-monitoring

  • A new repository enabling agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: cardano-monitoring

Cardano-parts

  • Migrate from grafana cloud monitoring to ec2 monitoring, add resource tagging support, declarative route53 CNAME list, and additional improvements and fixes: cardano-parts-pull-25
  • Improve ssh key handling and edge cases, resolve misc issues, add IOPS and throughput gp3 openTofu support: cardano-parts-pull-26

Cardano-playground

+ + + + \ No newline at end of file diff --git a/2023-12-30-node-cli-api/index.html b/2023-12-30-node-cli-api/index.html new file mode 100644 index 0000000000..ea86a5535f --- /dev/null +++ b/2023-12-30-node-cli-api/index.html @@ -0,0 +1,27 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· One min read
Carlos LopezDeLara

2023-12-09 - 2023-12-30

High level summary

  • Migrated reposotiries to IntersectMBO.
  • Improved era handling on cardano-api. Instead of enumerating every possible era, we use two constructors: +'CurrentEra' and 'UpcomingEra'. This design simplifies the handling of eras, especially for cardano-api consumers who are primarily concerned with the current mainnet era and the next era for an upcoming hardfork.
  • Cleaning-up the cardano-cli, in particular to the babbage era commands where some Conway options had spilled.

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2024-01-05-hydra/index.html b/2024-01-05-hydra/index.html new file mode 100644 index 0000000000..3eaf6a134a --- /dev/null +++ b/2024-01-05-hydra/index.html @@ -0,0 +1,32 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

In between the end-of-year holidays, the Hydra team completed the implementation +of the Conway support feature, fixed a minor bug that was hindering tests from +running on MacOS, and addressed a regression in the protocol-parameter formats +used by the hydra-node. They also worked on off-chain code for incremental +decommits, specifically focusing on transaction creation. Furthermore, they +conducted a spike on implementing a Chess game using Hydra, with an experience +report provided.

What did the team achieve this week

  • Fixed a regression on protocol-parameter formats used by the hydra-node #1226
  • Fixed a minor bug prohibiting tests running on MacOS #1218
  • Complete conway support feature #1227
  • Transaction creation off-chain code for incremental decommits #1218
  • First spike on implementing a Chess game on Hydra report, related to: #1098

What are the goals of next week

  • Fully resolve protocol parameter misalignment #1234
  • Cut a release 0.15.0 to ship offline-mode and conway support
  • Prepare demo for conway support
  • Complete transaction creation and observation for incremental decommits
  • Backend for a hydra-explorer that can track all heads on-chain
+ + + + \ No newline at end of file diff --git a/2024-01-05-sre/index.html b/2024-01-05-sre/index.html new file mode 100644 index 0000000000..327968e3cf --- /dev/null +++ b/2024-01-05-sre/index.html @@ -0,0 +1,30 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· One min read
John Lotoski

High level summary

During the lightly staffed holiday period for node SRE, the emphasis was on +maintaining environment stability, tuning and resolving any noisey alerts.

Investigation into and testing around the following two topics also +started during this period:

  • Ledger snapshots causing a small number of missed slots for forgers on mainnet: +ouroboros-consensus-issue-868

  • A cardano-node rare file descriptor leak, with a more detailed description +here

+ + + + \ No newline at end of file diff --git a/2024-01-09-network/index.html b/2024-01-09-network/index.html new file mode 100644 index 0000000000..73fc4ebc63 --- /dev/null +++ b/2024-01-09-network/index.html @@ -0,0 +1,42 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High-level overview of sprint 52

Happy New Year!

In this short sprint we analysed a failure which happened on a new large +cluster that's run by IOG. The process exhausted all file handles and was left +without any functional connections. The issues apparently is rare, and thus +doesn't impose a high risk.

We also continued working on tx-submission: ouroboros-network-3311.

Detailed description

It turned out that the process exhausted the number of file handles leaking +multiple /proc/{PID}/stat files open. We suspect that the bug is caused by

  • using lazy IO in iohk-monitoring-framework, and
  • using a recent kernel version

With lazy IO file handles are read as long as the data is required and they are +closed only when EOF is reached. We currently suspect that a new linux kernel +added something at the end of the /proc/{PID}/stat which is not parsed by +iohk-monitoring-framework, so whenever the file is read we leak it (it's +never closed) and eventually, there are no file handles to be used by the +network layer: the accept loop doesn't return any inbound connection, neither +an outbound connection can be created. This issue will be addressed by the +profiling team (which owns the logging subsystem).

The fix will be proposed in the future release, in the meantime we suggest to +keep observing file handles used by the node.

I would like to thank John Lotoski (IOG), Karl Knutsson (CF), Neil Davies +(PNSol) and Michael Karg (IOG) who all contributed to this analysis.

While analysing the log we also found a few smaller issues in the outbound +governor which were fixed in [ouroboros-network-#4764].

The IO error indicating exhausting file handles is not currently visible. It +is not re-thrown nor logged. This needs to be fixed in a future version. See +ouroboros-network-4769.

+ + + + \ No newline at end of file diff --git a/2024-01-10-consensus/index.html b/2024-01-10-consensus/index.html new file mode 100644 index 0000000000..b13eb6cba1 --- /dev/null +++ b/2024-01-10-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

For the past two weeks the Consensus team:

  • Resumed work on implementing the initialization and internals of the second iteration of the in-memory ledger database.
  • Resumed work on integrating the new ledger database API for UTxO HD.
  • Simplified query versioning for downstream users (863 and 403).
  • Confirmed the cause of missed leadership checks due to ledger snapshots (868).
  • Derived principles for the versioning/declaration of queries, since Conway complicates it (864 and 866).
  • Unblocked the Node Team in the work on rollback-insensitive leadership schedule queries (4765).
  • Drafted the (Pre-Genesis) Bootstrap State Machine (808).
+ + + + \ No newline at end of file diff --git a/2024-01-10-ledger/index.html b/2024-01-10-ledger/index.html new file mode 100644 index 0000000000..67c0d8d470 --- /dev/null +++ b/2024-01-10-ledger/index.html @@ -0,0 +1,32 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 4 min read
Alexey Kuleshevich

High level summary

Major Conway related development was the refactoring of how we distinguish Plutus +language versions in every era, thus drasticly improving the type safety and getting us +much closer to PlutusV3 integration.

There has also been many bug fixes and improvements since the last update. Some important bug +fixes are:

  • missing "protocolVersion" field in JSON instance for Babbage and Conway protocol parameters
  • requiring witnesses for DRep registration
  • new committee governance action ratification was implemented incorrectly
  • guard against invalid protocol versions in hard fork initiation proposals
  • failures during updates of Plutus CostModels were not retained
  • fixed the types for some protocol parameters in order to prevent values that are too large
  • serialization and CDDL fixes

A few useful features have been also implemented, like new ledger events, doubling the +limit for Url length, consensus query, JSON instances and so on. It was also required +for testing to implement a reliable transaction fee estimation function, which is now +available not only for testing, but also for cardano-cli.

Low level summary

Conway

  • pull-3915 - Utilize Inject type class for Val's inject
  • pull-3899 - Bring Plutus language version to the type level
  • pull-3917 - Ensure DRepRegistration certificate requires a witness
  • pull-3921 - Fix committee validation in Ratify
  • pull-3935 - Fixed a bug in Conway.Rules.Gov
  • pull-3956 - Allow 128 byte Url and DnsNames for decoder version atleast 9.
  • pull-3954 - Fix how we update CostModels
  • pull-3947 - Change the type of some pparam fields to align with how they are represented in Consensus
  • pull-3951 - Conway genesis DRep injection
  • pull-3961 - Switch ContextError to an injective type family from a data family
  • pull-3963 - Abstract getWitsVKeyNeeded
  • pull-3933 - Improve cbor serialization of TxWits in Conway
  • pull-3971 - ToJson instances for context error
  • pull-3977 - Added GetAccountStateQuery
  • pull-3975 - Add policy hash protection to TreasuryWithdrawals and ParameterChange

Testing

  • pull-3892 - Translate DRep expiry test from ConwayFeatures to Imp GovSpec
  • pull-3913 - Add certs to conformance testing
  • pull-3911 - Add a Preds to generate valid GovActionStates.
  • pull-3929 - Improve comment on unit_interval in cddl
  • pull-3950 - Use discard to avoid bad traces for fixOutput
  • pull-3935 - Add some Imp tests for HardForkInitiation.
  • pull-3964 - Ignore thunks in utxosDeposited
  • pull-3962 - Add estimateMinFeeTx
  • pull-3976 - Introduce accurate min fee calculation function: calcMinFeeTx

Improvements

  • pull-3930 - Change type of mintedTxBodyL to PolicyID
  • pull-3924 - Split type classes out of eras Core module
  • pull-3934 - Type safety bugfixes
  • pull-3949 - Add FromJSON BabbagePParams instance
  • pull-3953 - Babbage / Conway PParams JSON serialization
  • pull-3946 - Epoch interval instances
  • pull-3932 - Add ledger event TxUTxODiff
  • pull-3969 - Add missing stake key deposit in formal spec
  • pull-3973 - Move functionality of Cardano.Ledger.Pretty to Test.Cardano.Ledger.Generic.PrettyCore

Releasing

+ + + + \ No newline at end of file diff --git a/2024-01-10-mithril/index.html b/2024-01-10-mithril/index.html new file mode 100644 index 0000000000..2528d17ee1 --- /dev/null +++ b/2024-01-10-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team worked on implementing the client in the explorer to enable direct verification of certificates from the browser. They also addressed the configuration issue in the signer node service, which occasionally resulted in signers not registering their keys after a restart. Additionally, the team kept implementing a mock aggregator to strengthen Mithril client tests in WASM, continued working on threat modeling and risk analysis for P2P networking, and progressed with the devnet upgrade to support the Conway era.

Finally, they worked on enhancing node communications between Mithril and Cardano and completed the upgrade of the Cardano node topology used in the Mithril networks' infrastructure.

Low level overview

  • Published a development blog post Mithril signer service new configuration
  • Completed the issue Simplify Mithril client CLI download command #1406
  • Completed the issue Make all infra Cardano nodes use P2P topology #1405
  • Completed the issue Implement ChainObserver adapter configuration in aggregator #1396
  • Completed the issue Fix signer node service setup #1404
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Implement a fake standalone aggregator #1397
  • Worked on the issue Implement the mithril client WASM package in the explorer #1409
  • Worked on the issue Light Wallet: Implement browser tests with fake aggregator #1407
  • Worked on the issue Activate babbage/conway eras on devnet #1425
  • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
+ + + + \ No newline at end of file diff --git a/2024-01-12-hydra/index.html b/2024-01-12-hydra/index.html new file mode 100644 index 0000000000..78b98b2483 --- /dev/null +++ b/2024-01-12-hydra/index.html @@ -0,0 +1,35 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team improved Github actions workflows, addressed protocol +parameter schema consistency in hydra-node, and made enhancements to log schema +tests. They created an Architectural Decision Record (ADR) for Cardano +transactions serialization in APIs, moved the hydra-chess project to a dedicated +repository, and resolved a bug in quickcheck-dynamic and model tests.

There will be the monthly review meeting with demos on Hydra, Mithril and +related projects. If this sounds interesting, join us in Google Meet +https://meet.google.com/udc-zgyw-agd next week, January 19 2024 at 17:30 UTC.

What did the team achieve this week

  • Github actions improvements and small fixes to the smoke tests #1242, #1233
  • Fixed protocol parameter schema consistency around hydra-node #1234
  • Log schema tests improvements and fixes #1244
  • Created ADR about Cardano transactions serialisation in our APIs +#1215
  • Moved hydra-chess #1237 to a dedicated cardano-scaling organisation repository https://github.com/cardano-scaling/hydra-chess
  • Identified bug on quickcheck-dynamic / our model tests #1239

What are the goals of next week

  • Monthly review meeting (January 19, 17:30 UTC) including several demos (from team and contributors)
  • Do release 0.15.0
  • Improve quickcheck-dynamic model to be more robust and cover more +behaviour.
  • Draft POC about backend for a hydra-explorer that can track all +heads on-chain.
+ + + + \ No newline at end of file diff --git a/2024-01-15-node-cli-api/index.html b/2024-01-15-node-cli-api/index.html new file mode 100644 index 0000000000..864d9ef1b5 --- /dev/null +++ b/2024-01-15-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content
+ + + + \ No newline at end of file diff --git a/2024-01-17-ledger/index.html b/2024-01-17-ledger/index.html new file mode 100644 index 0000000000..ca8c5a53bc --- /dev/null +++ b/2024-01-17-ledger/index.html @@ -0,0 +1,26 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· One min read
Alexey Kuleshevich

High level summary

Last week's achievement was that we finished PlutusV3 integration, which a massive piece of work.

Low level summary

Conway

Testing

  • pull-3989 - Fix too many discards.
  • pull-3986 - Remove libs/cardano-ledger-pretty
  • pull-3991 - Imp native script support
  • pull-3993 - Change Test.Cardano.Ledger.Generic.Proof so that there is no more Crypto Evidence.

Releasing

  • pull-3988 - Bump jinja2 from 3.1.2 to 3.1.3 in /doc
+ + + + \ No newline at end of file diff --git a/2024-01-17-mithril/index.html b/2024-01-17-mithril/index.html new file mode 100644 index 0000000000..4bb1ccea5d --- /dev/null +++ b/2024-01-17-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team completed the implementation of the client in the explorer, enabling direct certificate verification from the browser. They initiated the implementation of a new entity type for signing to certify the Cardano transactions set in Mithril networks. The team also upgraded the devnet to support the Conway era and activated the Mithril era marker reader on the Cardano chain in the end-to-end test. Additionally, they kept implementing a mock aggregator to strengthen Mithril client tests in WASM and continued working on threat modeling and risk analysis for P2P networking.

Finally, they worked on enhancing node communications between Mithril and Cardano, and they started rolling out the Cardano node in the infrastructure to version 8.7.3.

Low level overview

  • Completed the issue Light Wallet: Create new signed entity type for CardanoTransactions #1434
  • Completed the issue Implement the mithril client WASM package in the explorer #1409
  • Completed the issue Activate babbage/conway eras on devnet #1425
  • Completed the issue Transition Mithril Era Reader adapter to CardanoChain in devnet #1428
  • Completed the issue Upgrade Cardano node to 8.7.3 #1410
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Implement a fake standalone aggregator #1397
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
+ + + + \ No newline at end of file diff --git a/2024-01-19-hydra/index.html b/2024-01-19-hydra/index.html new file mode 100644 index 0000000000..ddc2792708 --- /dev/null +++ b/2024-01-19-hydra/index.html @@ -0,0 +1,38 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Arnaud Bailly

High-level Summary

The team made good progress this week, with the release of version +0.15.0 marking a milestone, along with the monthly review including +both Mithril and Hydra work. We addressed issues in smoke tests and +website publishing workflows, ensuring a more robust development +environment, and along the way included more "dogfooding" through the +use of Mithril to synchronize nodes in smoke tests.

What did the team achieve this week

  • Release of Version +0.15.0. This +release enhances the overall stability and functionality of our +product.
  • Monthly Review and Community Demos
  • Smoke Tests and Website Publishing Workflow Fixes: #1246
    • Resolved glitches in the website publishing workflows, enhancing +the efficiency of our deployment processes.
  • Integration of Mithril for Smoke Test Synchronization: #1252
  • Polishing of Hydra-Chess v0.1.0: #1237
    • Worked on polishing hydra-chess v0.1.0, treating it as an example +application running on Hydra. This not only demonstrates the +capabilities of our platform but also aims at providing a reference for future Hydra +developers.

What are the goals of next week

  • Merge Off-Chain Protocol Logic for incremental decommits
  • Initiate work on the on-chain portion of incremental decommits
  • Merge CBOR API Change #1240
  • Troubleshoot Dangling Fanout Issue #1260
+ + + + \ No newline at end of file diff --git a/2024-01-19-sre/index.html b/2024-01-19-sre/index.html new file mode 100644 index 0000000000..9d792e7bac --- /dev/null +++ b/2024-01-19-sre/index.html @@ -0,0 +1,48 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-node 8.7.3 is now generally deployed to all testnet and mainnet environments +managed by coretech SRE

  • Dbsync and node stack process-compose jobs are now available from +cardano-parts for users running nix >= 2.17.0 and nix experimental-features += nix-command flakes fetch-closure

  • These can be run with:

     nix run github:input-output-hk/cardano-parts#run-process-compose-node-stack
    nix run github:input-output-hk/cardano-parts#run-process-compose-dbsync-$NETWORK
  • For more details, see the merged cardano-parts process-compose +PR

Lower level summary

Cardano-monitoring

Cardano-mainnet

  • Adds a readme, switches to nonmoving gc for producers, plus misc improvements +from cardano-parts: +cardano-mainnet-pull-6

Cardano-ops

  • Merged a long standing branch converting legacy mainnet relays to p2p, node -> +8.7.2, db-sync snapshots -> 13.1.1.3, and other improvements: +cardano-ops-pull-417

Cardano-parts

  • Adds a readme, provides misc improvements, service optimizations, alert tuning, +sql pool performance analysis fix, package updates: +cardano-parts-pull-27
  • Adds process-compose dbsync and node stacks: +cardano-parts-pull-28

Cardano-playground

Upstream Contributions

  • Contributions to upstream process-compose related repos were made in order to +complete the process-compose dbsync and node stacks in cardano-parts, +including the following:

Process-compose-flake

Services-flake

+ + + + \ No newline at end of file diff --git a/2024-01-22-network/index.html b/2024-01-22-network/index.html new file mode 100644 index 0000000000..d0e70ff32d --- /dev/null +++ b/2024-01-22-network/index.html @@ -0,0 +1,37 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High level overview of sprint 53

We integrated bootstrap peers with cardano-node in an experimental branch +([cardano-node-5485], ouroboros-network-4615). We continued working on +tx-submission: ouroboros-network-3311.

Karl Knutsson (CF) worked on peer sharing improvements: ouroboros-network-4778.

Erik de Castro Lopo made ouroboros-network packages compile with GHC-9.8: +ouroboros-network-4727.

Nick Frisby (Tweag, Consensus Team), modified local-state-query mini-protocol +so that one can acquire the immutable tip and thus get information which is not +subject to rollbacks: ouroboros-network-4765.

Low level summary

Other, less significant changes / improvements include:

+ + + + \ No newline at end of file diff --git a/2024-01-24-consensus/index.html b/2024-01-24-consensus/index.html new file mode 100644 index 0000000000..b6d67defbd --- /dev/null +++ b/2024-01-24-consensus/index.html @@ -0,0 +1,28 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

This week the team continued working on the second iteration of the Ledger DB API for UTxO-HD, as well as on Genesis. +We incorporated further improvements to the onboarding documentation, and wrote a document explaining a specific subtlety of our chain orders. +For Conway, we integrated DReps and initial delegates injection, which will allow the Performance and Tracing team to run benchmarks for this era.

+ + + + \ No newline at end of file diff --git a/2024-01-24-mithril/index.html b/2024-01-24-mithril/index.html new file mode 100644 index 0000000000..8f4da71027 --- /dev/null +++ b/2024-01-24-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team released the initial version of the Mithril client NPM package, enabling developers to integrate core Mithril features into their web applications running in a browser. They also released a new distribution, 2403.1, which includes support for Cardano node version 8.7.3, a new chain observer based on the Pallas library, along with bug fixes and performance improvements.

The team kept implementing a new entity type for certifying the Cardano transactions set in Mithril networks and made good progress on retrieving transactions and combining them into a Mithril protocol message. Additionally, they finished implementing a mock aggregator and using it in the browser tests for the Mithril client in WASM.

Finally, they worked on enhancing node communications between Mithril and Cardano and continued working on threat modeling and risk analysis for P2P networking.

Low level overview

  • Release of the mithril-client npm package library crate
  • Publication of a dev blog post about the released Mithril client npm package
  • Released the new distribution 2403.1
  • Completed the issue Light Wallet: Gather transactions from immutable files and store them in the database #1435
  • Completed the issue Light Wallet: Implement browser tests with fake aggregator #1407
  • Completed the issue Implement a fake standalone aggregator #1397
  • Worked on the issue Light Wallet: Compute message to sign for CardanoTransactions #1436
  • Worked on the issue Enhance ImmutableFile list computation resilience #1450
  • Worked on the issue Add WASM client step in Mithril Client multi-platform test #1408
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Completed the issue Add warn missing docs in mithril client cli #1439
+ + + + \ No newline at end of file diff --git a/2024-01-26-hydra/index.html b/2024-01-26-hydra/index.html new file mode 100644 index 0000000000..49a6c5b6bd --- /dev/null +++ b/2024-01-26-hydra/index.html @@ -0,0 +1,29 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level Summary

This week, the Hydra team conducted yearly roadmapping sessions, introduced a +breaking API change to eliminate JSON encoding of transactions (refer to issue +#1213 for details), completed off-chain logic for incremental decommits through, +and implemented a hydra-explorer backend.

What did the team achieve this week

  • Conducted yearly roadmapping sessions
  • Merged a breaking API change to drop JSON encoding of transactions #1213 - contact us if you were relying on this.
  • Completed off-chain logic for incremental decommits #1223
  • Implemented a hydra-explorer backend #1235

What are the goals of next week

  • Publish the monthly report
  • Prepare PRs for hydra clients to switch to CBOR due to the changed API (see above)
  • Enhance the model testing framework to cover close/contest (needed to fix a bug and incremental decommit development)
  • Fix new bugs (all minors) and finish things before starting new
+ + + + \ No newline at end of file diff --git a/2024-01-30-db-sync/index.html b/2024-01-30-db-sync/index.html new file mode 100644 index 0000000000..c5f8ba74ab --- /dev/null +++ b/2024-01-30-db-sync/index.html @@ -0,0 +1,36 @@ + + + + + +DB Sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB Sync Team Update

· One min read
Kostas Dermentzis

High level summary

The DBSync team has prepared and tested a new db-sync version for mainnet, we have continued our +integration and update for Conway and have extended its modularity.

Lower level summary

  • We attempt to turn db-sync into a modular project that can run with wither low or high recourses +#1610 +#1613 +#1590

  • Moving the flags above to a config file +#1609

  • Optimizations +#1595 +#1607

  • Conway Support and updates +#1581 +#1573 +#1570

+ + + + \ No newline at end of file diff --git a/2024-01-31-ledger/index.html b/2024-01-31-ledger/index.html new file mode 100644 index 0000000000..d3ad7bd65e --- /dev/null +++ b/2024-01-31-ledger/index.html @@ -0,0 +1,31 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

One very important Conway feature that became available since last report is the ability +for Stake Pool Operators to vote on some of the security relevant protocol parameter +updates. We organized proposal hierarchy into a cohesive implementation, which together +with good tests gives us confidence in its correctness.

We also fixed a few important bugs:

  • Preventing Constitutional Committee Members from voting on governance actions that they +should not be allowed to vote on.
  • Prevent deposits from appearing in orphaned reward accounts after the staking credential +has been unregistered, but before the proposal procedure deposit has been returned.
  • Ensure Sets are encoded in CBOR with tag 258 by default

Further improvements in testing tools and addition of more tests.

Low level summary

Conway

  • pull-3982 - Added SPO voting thresholds for security relevant parameters
  • pull-3978 - Proposals pruning rewrite
  • pull-4003 - Prefix Set encoding with tag 258
  • pull-3999 - Add PParamUpdates to the plutus context, by transforming them to Plutus Data
  • pull-4008 - Fixed a bug in GOV rule
  • pull-4013 - Remove EnactState from ConwayGovState
  • pull-4025 - Further improvements to Proposals
  • pull-4021 - Move unclaimed rewards from proposals to treasury

Testing

  • pull-3997 - Added DRep delegation injections to Conway
  • pull-4023 - Add a function registerInState to EraTransition
  • pull-4005 - Fixes in Shelley Imp framework and other small things
  • pull-4004 - Verify that enacted gov action is removed
  • pull-4016 - Fix Arbitrary instance and invariant checking for Proposals

Improvements

Releasing

+ + + + \ No newline at end of file diff --git a/2024-01-31-mithril/index.html b/2024-01-31-mithril/index.html new file mode 100644 index 0000000000..a1f010084d --- /dev/null +++ b/2024-01-31-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the signature of the transactions set and implemented the aggregator route, responsible for generating proofs of membership for a list of Cardano transactions. Additionally, they finalized the manual workflow to test the NPM client package in the CI and enhanced the resilience of computing the list of immutable files in a Cardano node database. The team also expanded the coverage of end-to-end tests in the CI to accommodate multiple versions of the Cardano node and various hard fork scenarios.

Finally, they completed the enhanced node communications between Mithril and Cardano for retrieving UTXOs and kept working on the threat modeling and risk analysis for P2P networking.

Low level overview

  • Completed the issue Light Wallet: Compute message to sign for CardanoTransactions #1436
  • Completed the issue Light Wallet: Implement proof generation route in the aggregator #1467
  • Completed the issue Enhance ImmutableFile list computation resilience #1450
  • Completed the issue Enhance end to end test for Cardano hard forks #1464
  • Completed the issue Add WASM client step in Mithril Client multi-platform test #1408
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Worked on the issue Generate automatic documentation for CLIs #1471
+ + + + \ No newline at end of file diff --git a/2024-01-31-node-cli-api/index.html b/2024-01-31-node-cli-api/index.html new file mode 100644 index 0000000000..351a739a63 --- /dev/null +++ b/2024-01-31-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· One min read
Carlos LopezDeLara

2024-01-16 - 2024-01-31

High level summary

  • cardano-cli: Adapt the output of the protocol-parameters query to show all parameters in Conway. Improved help on various commands. New command create-testnet-data to eventually replace create-staked.

cardano-cli

cardano-api

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2024-01-31-performance-and-tracing/index.html b/2024-01-31-performance-and-tracing/index.html new file mode 100644 index 0000000000..deb274239a --- /dev/null +++ b/2024-01-31-performance-and-tracing/index.html @@ -0,0 +1,32 @@ + + + + + +Performance & Tracing Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & Tracing Update

· 2 min read
Michael Karg

High level summary

  • Benchmarking: GHC 9.6.3 benchmarks for node 8.7.2 have been performed.
  • Development: Additional features for our reporting pipeline, while simultaneously reducing dependency footprint.
  • Tracing: Implementation for cardano-tracer to work on handles instead of files; work on New Tracing Quickstart document has begun.
  • Nomad cluster: We're preparing an upgrade to the latest Nomad version.

Low level overview

Benchmarking

We've performed a full set of GHC 9.6.3 benchmarks for node 8.7.2. For recommending GHC9.6 as a default build platform for cardano-node - from a performance perspective - we observe only one residual issue. As a way to +address this, we've decided to create a reproduction benchmark targeting the affected component.

Development

Our reporting pipeline will be expanded to support a wider range of rendering formats, as well as report templates. As the pipeline is part of our workbench - and thus gets downloaded and built when entering the workbench shell - it's +good practice to keep a small dependency footprint. When reworking the pipeline, we aim to simultaneously reduce dependencies.

Tracing

So far, cardano-tracer has internally been using files, or file names, for the purpose of logging trace messages it receives via forwarding. This is simple, but induces quite some overhead at runtime: files have to be opened and closed for each message. +Using and managing open file handles inside cardano-tracer does remove that overhead, but unsurprisingly introduces some complexity into the application code. Currently, we're working on implementing that change.

Furthermore, we're working on a Quickstart document for the new tracing system, with end users as its intended audience. It will contain recommended production use setup(s), and how to efficiently configure and run them step by step. Additionally, it +will provide a brief, but comprehensive overview over the features at the user's disposal.

Nomad backend

On the Nomad cluster, we've experienced undesired system behaviour when the heartbeat between the Nomad server and a client is interrupted temporarily - although the Nomad job itself is still 100% functional. A Nomad +upgrade to the latest version promises to fix that, but it turn comes with other issues. We're currently working on adapting our automation and deployment around those known issues, before we can eventually +apply the upgrade.

+ + + + \ No newline at end of file diff --git a/2024-02-02-hydra/index.html b/2024-02-02-hydra/index.html new file mode 100644 index 0000000000..f013fcc237 --- /dev/null +++ b/2024-02-02-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level Summary

This week, the Hydra team authored and published the monthly report for January 2024, enhanced user feedback for failed commands, updated cardano-api dependency and GHC to newer versions, re-opened their persistent head in preparation for the hard-fork, extended the model-based testing suite to cover the closing of heads, fixed a bug in io-sim, and contributed to cardano-node.

What did the team achieve this week

What are the goals of next week

  • Fix the fanout after contest bug #1260
  • Run Hydra smoke tests on sanchonet #1257
  • Specify the on-chain validators for incremental decommits #1057
  • Have the explorer hosted #696
  • Prepare PRs for dropped JSON instances from API #1213
+ + + + \ No newline at end of file diff --git a/2024-02-02-sre/index.html b/2024-02-02-sre/index.html new file mode 100644 index 0000000000..0fe87c31b6 --- /dev/null +++ b/2024-02-02-sre/index.html @@ -0,0 +1,44 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· One min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano explorer is being sunset and will soon be replaced by a new Cardano +Foundation explorer
  • IOG mainnet pools are now participating in propagation time reporting using +Cardano Foundation's blockperf +tool
  • Cardano-parts node nixosConfigurations, node entrypoint and process-compose +node jobs now utilize mithril +client automatically on preview and preprod networks for faster +synchronization of first start up. Mainnet mithril client use as well as +signer modules will be available soon.

Lower level summary

Cardano-mainnet

Cardano-parts

  • Adds a block performance module which utilizes cardano-foundation's blockperf +for aggregate block propagation reporting: +cardano-parts-pull-29
  • Adds a mithril client for nixosConfigurations, process-compose cardano-node +processes and cardano-node entrypoint: +cardano-parts-pull-30

Iohk-nix

  • Adds required mithril client environment information for preview, preprod, +mainnet: +iohk-nix-pull-570

Cardano-world

Upstream Contributions

Blockperf

+ + + + \ No newline at end of file diff --git a/2024-02-05-network/index.html b/2024-02-05-network/index.html new file mode 100644 index 0000000000..946fbfc650 --- /dev/null +++ b/2024-02-05-network/index.html @@ -0,0 +1,38 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High-level overview of sprint 54

In this sprint, we merged the bootstrap peers (aka weak genesis) changes to +the ouroboros-network repository (ouroboros-network#4615). We continued +working on integration & testing it using an early development version of +cardano-node (cardano-node#5485).

Andrew Westberg (DripDropz) noticed and fixed a mistake in the cddl spec which resulted in +misleading documentation; ouroboros-network#4790. The Handshake protocol flag +should be called initiatorOnlyDiffusionMode. Library authors providing +connectivity with other nodes via the node-to-node protocol are advised to review +their implementation.

We continued working on the tx-submission decision logic; +ouroboros-network#3311.

Karl Knutsson (CF) implemented:

Open Source Contributions

IOSim

We released a new version of io-sim to Hackage:

NoThunks

We released a new version of nothunks to Hackage:

Low-level summary

+ + + + \ No newline at end of file diff --git a/2024-02-07-consensus/index.html b/2024-02-07-consensus/index.html new file mode 100644 index 0000000000..958b5d4f46 --- /dev/null +++ b/2024-02-07-consensus/index.html @@ -0,0 +1,28 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

This week we managed to integrate in the node the Consensus version of the UTxO-HD prototype that features the second version of the Ledger DB API. +We also changed the epoch structure for Conway, made progress towards the Bootstrap State Machine and Peras planning. +On the support front, we are investigating the impact of snapshots on missed leadership checks.

+ + + + \ No newline at end of file diff --git a/2024-02-07-mithril/index.html b/2024-02-07-mithril/index.html new file mode 100644 index 0000000000..4ca56debf7 --- /dev/null +++ b/2024-02-07-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the aggregator routes responsible for generating proofs of membership for a list of Cardano transactions and for listing produced artifacts. Additionally, they worked on extending the Mithril client library to support the verification of Cardano transactions, and on the creation of the new Mithril network running on SanchoNet.

Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and investigated some flakiness occurring in the end-to-end tests in the CI.

Low level overview

  • Completed the issue Implement proof generation route in the aggregator #1467
  • Completed the issue Implement artifact routes in the aggregator #1478
  • Completed the issue Enhance ImmutableFile list computation resilience #1450
  • Completed the issue Add WASM client step in Mithril Client multi-platform test #1408
  • Completed the issue Enhance end to end test for Cardano hard forks #1464
  • Worked on the issue Implement transactions verification in client library #1468
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Worked on the issue Some end to end tests are flaky in the CI #1147
  • Worked on the issue Handle cancellation of certificate verification in WASM client #1480
  • Worked on the issue Upgrade http dependency #1474
  • Worked on the issue Generate automatic documentation for CLIs #1471
+ + + + \ No newline at end of file diff --git a/2024-02-09-hydra/index.html b/2024-02-09-hydra/index.html new file mode 100644 index 0000000000..de79de6e05 --- /dev/null +++ b/2024-02-09-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Daniel Firth

High-level Summary

This week, the Hydra team worked on forward compatibility for Conway support, deployed the hydra explorer tool, and improved the model based testing to support more actions (Fanout and Rollbacks).

What did the team achieve this week

  • Addressed flakyness in two types of integration tests
  • Fixed our tooling (HLS 2.6 on GHC 9.6.4)
  • Fixed configuration of running head in preview
  • Added Fanout and Rollbacks to our Model basd test suite #1296
  • Deployed the hydra explorer to http://explorer.hydra.family:9090/heads (url will change a bit more)
  • Updated smoke test to run sanchonet

What are the goals of next week

  • Fix the fanout after contest bug
  • Specify the on-chain validators for incremental decommits
  • Complete smoke tests on sanchonet
+ + + + \ No newline at end of file diff --git a/2024-02-14-ledger/index.html b/2024-02-14-ledger/index.html new file mode 100644 index 0000000000..7f6635e528 --- /dev/null +++ b/2024-02-14-ledger/index.html @@ -0,0 +1,39 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Alexey Kuleshevich

High level summary

Last few weeks were spent mostly on implementing various fixes, writing tests and +improving capabilities of our testing frameworks. Important bug fixes are:

  • Retention of Anchor for proposal procedures in the ledger state in order for users to be +able to query the node for those anchors
  • JSON serialization of rational numbers in protocol parameters and governance procedures +are encoded without loss of precision

Feature wise, we've added a new protocol parameter that controls the contribution of +reference scripts sizes in the transaction fee calculation formula.

Major achievement that is worth announcing is a Haskell package named +cuddle that we developed over the last few +months. Soon we will be transitioning to specifying CDDL in Haskell for all eras using +that package. It will be used to compile the CDDL specification that developers in the +community rely on so much. There are enormous benefits in using this tool, when compared +to writing CDDL specification manually. Namely it allows us to reduce duplication and +reuse common and unchanged specification from previous eras. It also improves safety and +correctness of our specification and decoders, because it ensures that the specification +is well typed and it uses QuickCheck to generate random data for validating that our +decoders are implemented according to the spec.

Low level summary

Conway

  • pull-4031 - Further proposals improvements. Take 2
  • pull-3996 - Index aware PlutusPurpose
  • pull-3983 - Include reference scripts size in min fee calculation
  • pull-4040 - Redeemers serialization fixes
  • pull-4033 - Make Conway-specific queries only available in Conway
  • pull-4028 - Embed ProposalProcedure in GovActionState
  • pull-4056 - Reduce duplication in Conway UTXOW rule
  • pull-4055 - Update MinFeeRefScriptCoinsPerByte.
  • pull-4053 - Rename committeeQuorum to committeeThreshold
  • pull-4058 - Fix ToJSON instance of BoundedRatio to avoid precision loss
  • pull-4070 - Rename AsIndex to AsIx
  • pull-4065 - Remove ConwayPool rule definition

Improvements

  • pull-4037 - Add capability to hash Plutus scripts directly
  • pull-4030 - Report Plutus ScriptHash upon execution failure

Testing

  • pull-3895 - Constrained v2
  • pull-3981 - Test proposals rewrite
  • pull-4051 - Full support of random and quickcheck-transformers in impTest
  • pull-4050 - Fixed the "All Tx are valid on traces of length 150" intermittent bug
  • pull-4049 - Support for Plutus scripts in ImpTest
  • pull-4075 - Discontinue the mingw target in the nix build
  • pull-4072 - Fix ouroborus-consensus serialization roundtrip test
  • pull-4080 - Test that a resigned CC cannot be reelected without removal
  • pull-4083 - Fix flakyness at the cost of turning test on during development
  • pull-4084 - Fix intermittent test failures in leader-proportion test

Specification

  • pull-4015 - Shelley ledger spec: amend erratum on nonce stabilization window
  • pull-4064 - Fix wrong prose for new epoch environment
  • pull-4081 - Fix MIR rule using wrong values for treasury and reserves

Releasing

+ + + + \ No newline at end of file diff --git a/2024-02-14-mithril/index.html b/2024-02-14-mithril/index.html new file mode 100644 index 0000000000..b34017622a --- /dev/null +++ b/2024-02-14-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the upgrade of the client library and the CLI to support the verification of Cardano transactions. They also released the new Mithril network running on SanchoNet. Additionally, the team rolled out a new feature of the Pallas chain observer (that now supports the retrieval of Mithril era markers), and kept investigating some flakiness occurring in the CI end-to-end tests.

Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and updated the Mithril network architecture documentation.

Low level overview

  • Published a development blog post Mithril SanchoNet network released
  • Completed the issue Implement transactions verification in client library #1468
  • Completed the issue Implement Cardano Transactions commands in the client binary #1469
  • Completed the issue Create a test network on SanchoNet #1173
  • Completed the issue Update Mithril network architecture documentation #1488
  • Completed the issue Upgrade http dependency #1474
  • Completed the issue Extract database feature from common crate #1492
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Worked on the issue Some end to end tests are flaky in the CI #1147
  • Worked on the issue Add an example crate for the CardanoTransactions type #1495
  • Worked on the issue Generate automatic documentation for CLIs #1471
+ + + + \ No newline at end of file diff --git a/2024-02-15-node-cli-api/index.html b/2024-02-15-node-cli-api/index.html new file mode 100644 index 0000000000..fc6ccb2523 --- /dev/null +++ b/2024-02-15-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2024-02-01 - 2024-02-15

High level summary

  • cardano-cli: Added the 'immutable' tip parameter to conway queries that allow the user to query either the current volatile tip (default) or the immutable tip. The committee keys can now sign transactions, required to submit votes.

  • cardano-api: Fix Conway PlutusV3 script hash mismatch. Make committee hash prefixes CIP-5 compliant.

cardano-cli

cardano-api

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2024-02-16-hydra/index.html b/2024-02-16-hydra/index.html new file mode 100644 index 0000000000..b5969c5124 --- /dev/null +++ b/2024-02-16-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level Summary

This week, the team made finally progress on the model based testing framework (and reproducing a bug) by fixing issues related to fully validating Cardano transactions. They also enabled continuous deployment of hydra-explorer to http://explorer.hydra.family/heads, facilitating easier access for users. Furthermore, they improved code quality by incorporating Haskell linting into their CI workflow and addeda user-ished conversion of HeadId to CurrencySymbol.

What did the team achieve this week

  • Fixed model based testing framework to fully validate Cardano transactions
  • Enabled continuous deployment of hydra-explorer to http://explorer.hydra.family/heads
  • Identified need for cardano-node 8.8 and cardano-api 8.38 (breaking changes) to continue integration with Conway networks
  • Added Haskell linting to our CI workflow - Minor addition to convert HeadId into CurrencySymbol #919
  • Reviewed a small refactor PR on our model-based test runner #1300

What are the goals of next week

  • Fix the fanout after contest bug
  • Bite the bullet and have a non-mainnet compatible master to complete smoke tests on sanchonet
  • Specify the on-chain validators for incremental decommits
+ + + + \ No newline at end of file diff --git a/2024-02-16-performance-and-tracing/index.html b/2024-02-16-performance-and-tracing/index.html new file mode 100644 index 0000000000..cbe7972048 --- /dev/null +++ b/2024-02-16-performance-and-tracing/index.html @@ -0,0 +1,40 @@ + + + + + +Performance & Tracing Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & Tracing Update

· 3 min read
Michael Karg

High level summary

  • Benchmarking: Release benchmarks for 8.8.0 have been performed; we created a local repro for a residual issue.
  • Performance: We've implemented and benchmarked two candidates investigating residual issues with GHC9.6.
  • Development: Work on the reporting pipeline is ongoing; integration of DReps into benchmarking workloads has begun.
  • Workbench: Implementation of high-level profile definition is ongoing.
  • Tracing: The handle registry feature for cardano-tracer is completed; currently in testing.
  • Nomad cluster: Increased robustness of deployment and run monitoring has been merged; work on garbage collection has started.

Low level overview

Benchmarking

We've performed a full set of release benchmarks for Node 8.8.0-pre. Comparing with release 8.7.2, we could +not detect any performance risks for that version. We even saw a slight improvement in block fetch related metrics, which led to slightly improved block diffusion times.

Furthermore, we've managed to boil down a complex residual performance issue measured on the cluster to a local reproduction. This enables our DevX team, with highly specialized knowledge of GHC's compiler internals, to +investigate each step in code generation and optimzation, and independently observe the effects of code changes to the affected component.

Performance

Work on the remaining performance issue with GHC9.6 led us to produce two candidates based on Node 8.7.2, benchmarking +the implacations local small changes have for GHC9.6's optimizer. Though those candidates did not uncover the +issue's root cause, they were able to disprove a hypothesis as to its nature, and quantify the performance impact of said small changes.

Development

Node 8.8.0 comes with capabilities to inject DReps and DRep delegations into Conway genesis. We've started work +on integrating those into our automations, and setting sensible values for benchmarking. The aforementioned +delegations representing a new data structure in the Conway ledger, we aim to run +existing workflows extended with varying sizes of that new structure, measuring their pressure on ledger queries and operations.

Workbench

The performance workbench relies heavily on shell scripting and manipulating JSON data for a great part of its features. This approach +is very effective for quick experimentation, but lacks in verifiable properties as well as accessibility for new users of workbench.

After the successful Haskell port of cluster topology creation, and verification, we're currently applying +the same model in porting the entirety of benchmarking profiles to Haskell. The obvious gains are widening workbench's +audience both for users and developers, as well as implementing a principled approach to all workbench data structures and transformations.

At the same time, we're porting workbench's many options to create fine-tuned geneses, following the same approach.

Tracing

We've outfitted cardano-tracer with a handle registry feature that lets the service work on file handles internally, rather than opening and closing files for each operation. The feature is completed; at the moment we're adding +appropriate test cases to the service's test suite for validation of its behaviour, and for safeguarding future development.

Nomad backend

Several improvements for our cluster backend have been merged to master, increasing its overall robustness. We can now safely handle some corner cases where Nomad processes unexpectedly exited, or deployments errored out. Furthermore, an ongoing +run can now reliably survive a temporary loss of heartbeat connection between Nomad client and server, without +the benchmarking metrics being affected.

Currently, we're working on a reliable automation of garbage collecting old nix store entries on the cluster machines, as they fill up disk space. The design has to consider both not interfering with ongoing benchmarks, and +avoiding deployment overhead caused by cleaning the store too frequently.

+ + + + \ No newline at end of file diff --git a/2024-02-16-sre/index.html b/2024-02-16-sre/index.html new file mode 100644 index 0000000000..63fd73d3d1 --- /dev/null +++ b/2024-02-16-sre/index.html @@ -0,0 +1,43 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Sanchonet state was respun from slot 14255995 for cardano-node 8.8.0-pre
  • Cardano node 8.8.0-pre is now deployed to sanchonet, shelley-qa, two-thirds +of preprod and one-third of preview networks
  • IOG pool block producers are now signing mithril certificates for preview, +preprod and mainnet networks
  • A cardano performance dashboard is now available for both playground and +cardano-mainnet deployments

Lower level summary

Cardano-mainnet

  • Adds mithril signers and perf dashboard to the mainnet cluster; improves +network docs, tunes alerts, plus misc fixes: +cardano-mainnet-pull-8

Cardano-parts

  • Adds mithril signer capability to role-block-producer nixosModule, adds a +profile-mithril-relay nixosModule and includes misc other improvements and +fixes: +cardano-parts-pull-31

  • Updates packages for sanchonet respin, adds a node performance dashboard +template and fixes misc issues: +cardano-parts-pull-32

Cardano-parts

  • Adds mithril signers and mithril relays to preview and preprod networks and +includes misc other improvements and fixes: +cardano-playground-pull-15

  • Updates machines and pin for sanchonet respin, adds a node performance +dashboard and fixes misc issues: +cardano-playground-pull-16

Iohk-nix

+ + + + \ No newline at end of file diff --git a/2024-02-19-network/index.html b/2024-02-19-network/index.html new file mode 100644 index 0000000000..95694e95dc --- /dev/null +++ b/2024-02-19-network/index.html @@ -0,0 +1,37 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High-level overview of sprint 55

This sprint the networking was nominated for the Cardano Release Engineer role and +we've been working on the integration of bootstrap peers with cardano-node. This +is a work in progress: cardano-node-5485. cardano-node-8.9 will be the first +node which supports the bootstrap peers feature, but we anticipate additional +improvements needed before this is used at scale.

We disabled mean reward for new peers in the churn mechanism which was hurting +connection in remote destinations. Thanks to Karl Knutsson (CF) for +providing evidence and a patch. In future, this mechanism will be further +changed, but this requires more analysis. ouroboros-network#4800

We continued working on tx-submission, ouroboros-network#3311

We welcome Marcin Wójtowicz as part of the Networking +Team of Cardano Core Tech. He reviewed our documentation as part of his +onboarding process: ouroboros-network#4802.

Andrew Westberg (DripDropz) corrected documentation regarding which +node-to-node protocol version introduced P2P.

Low-level summary

Open Source Contributions

IOSim

We released io-sim-1.4.1.0 with some new features & improvements:

+ + + + \ No newline at end of file diff --git a/2024-02-21-consensus/index.html b/2024-02-21-consensus/index.html new file mode 100644 index 0000000000..53e10f7afa --- /dev/null +++ b/2024-02-21-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

  • Triaged an issue where blocks were unnecessarily downloaded, and coded a prototype for a partial solution.
  • Discovered an io-sim bug while developing the Genesis state machine tests. The bug was already fixed upstream.
  • Added support for making the number of ledger state snapshots to be kept configurable. This needs to be integrated in the node.
+ + + + \ No newline at end of file diff --git a/2024-02-21-mithril/index.html b/2024-02-21-mithril/index.html new file mode 100644 index 0000000000..d1e175b17e --- /dev/null +++ b/2024-02-21-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They worked on enhancing the client CLI output and almost completed the support for the verification of Cardano transactions in the browser with the WASM client. The team also worked on a new feature of the Pallas chain observer to support stake distribution retrieval, and fixed the majority of the flakiness occurring in the CI end-to-end tests. Additionally, they have deployed the new Mithril network running on SanchoNet.

Finally, the team created a new example crate for using the client library to verify Cardano transactions, kept working on the threat modeling and risk analysis for the Mithril network, and completed their new tool for automatic documentation generation for the CLIs.

Low level overview

  • Worked on the issue Implement Cardano Transactions commands in the client binary #1469
  • Worked on the issue Implement Cardano Transactions verification in the WASM client #1470
  • Worked on the issue Some end to end tests are flaky in the CI #1147
  • Completed the issue Re-spin Sanchonet network #1503
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Completed the issue Add signing capabilities to the root route of the aggregator #1496
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Completed the issue Add an example crate for the CardanoTransactions type #1495
  • Worked on the issue Unify test folder generation #1508
  • Completed the issue Generate automatic documentation for CLIs #1471
+ + + + \ No newline at end of file diff --git a/2024-02-23-hydra/index.html b/2024-02-23-hydra/index.html new file mode 100644 index 0000000000..2d55131226 --- /dev/null +++ b/2024-02-23-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level Summary

This week, the Hydra team successfully fixed the fanout after contest bug using their significantly improved model-based test suite. Additionally, they transitioned to cardano-api version 8.38 and started testing against cardano-node version 8.8. Furthermore, they enhanced fee estimation within the hydra-node internal wallet resulting in cheaper head opening / closing transactions and added transaction metadata to help identifying Hydra protocol transactions.

What did the team achieve this week

  • Fixed the fanout after contest bug using our signifcantly improved model-based test suite #1260
  • Switched to cardano-api 8.38 and run tests against cardano-node 8.8 #1297
  • Improved fee estimation in hydra-node internal wallet #1315
  • Added transaction metadata to identify Hydra protocol transactions (on L1) #1311

What are the goals of next week

  • Have the monthly review meeting + write a report
  • Explorer targeting and showing data of the latest released hydra version
  • Implement off-chain incremental commit protocol changes
  • Review EventSource and EventSink refactor done by SundaeLabs
  • See smoke tests passing consistently on Sanchonet
+ + + + \ No newline at end of file diff --git a/2024-02-28-ledger/index.html b/2024-02-28-ledger/index.html new file mode 100644 index 0000000000..dd6c6ff98c --- /dev/null +++ b/2024-02-28-ledger/index.html @@ -0,0 +1,31 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

Quite a useful and desired feature described in +CIP-0110 of allowing reference +scripts for PlutusV1 has been implemented for Conway.

For the most part we are now spending time on writing tests and enhancing out tooling that +we use for testing. This is paying out dividends since we are finding and fixing important +Conway related bugs. Notable bugs that were squashed this time around are related to using +incorrect stake distribution for both DReps and Stake Pools.

Low level summary

Conway

  • pull-4059 - Enable Plutus v1 reference scripts in Conway
  • pull-4088 - Committee query improvements
  • pull-4115 - Switch to using the correct stake pool distribution for voting
  • pull-4116 - Fix Drep stake distribution

Testing

  • pull-4100 - PPU wellformedness tests
  • pull-4097 - Test that unwithdrawn rewards contribute to voting power
  • pull-4102 - fix prop_DELEG in STS tests
  • pull-4106 - Imp script fixes
  • pull-4118 - Add test for maps with small domains
  • pull-4119 - NewConstraints phase1. Add BoolFn And and Or and tests
  • pull-4120 - Newconstaints phase2 rename IsUniverse (BaseUniverse), Fn (BaseFn)
  • pull-4130 - Added tests for checking proposal network IDs
  • pull-4114 - Imp Bootstrap address support

Improvements

Specification

Releasing

  • pull-4105 - Update RELEASING with revisioning instructions
  • pull-4117 - Use plutus-ledger-api 1.22.1
+ + + + \ No newline at end of file diff --git a/2024-02-28-mithril/index.html b/2024-02-28-mithril/index.html new file mode 100644 index 0000000000..d352cc91a4 --- /dev/null +++ b/2024-02-28-mithril/index.html @@ -0,0 +1,27 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week the Mithril team announced the release of a new Mithril distribution 2408.0. This release includes several critical updates and enhancements, such as improved support for stake distribution, Mithril era markers retrieval in the Pallas chain observer, enhanced support for the Conway era and Sanchonet network, as well as various bug fixes and performance improvements. +In addition, the team has made changes to the Mithril client CLI, changing the log output from stdout to stderr from v0.7.0. This announcement was made in the developer blog post.

The team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the support for the verification in the browser with the WASM client, they worked on enhancing the associated client CLI API, and implemented smoke tests. Additionally, the team has activated the signature of Cardano transactions on the testing-sanchonet network, and they have investigated a bug that prevents the signature of some transactions on this network.

Finally, the team worked on reorganizing the repository structure, fixed an issue with test folder generation on MacOS, and worked on some documentation improvements.

Low level overview

  • Released the new distribution 2408.0
  • Publication of a dev blog post about the Mithril SanchoNet network release.
  • Publication of a dev blog post about a breaking change in the Mithril client CLI.
  • Completed the issue Implement Cardano Transactions commands in the client binary #1469
  • Completed the issue Implement Cardano Transactions verification in the WASM client #1470
  • Completed the issue Some end to end tests are flaky in the CI #1147
  • Completed the issue Release 2408 distribution #1500
  • Completed the issue Unify test folder generation #1508
  • Completed the issue Adapt Mithril Client multi-platform test for Cardano Transactions #1510
  • Completed the issue Document Mithril signer footprint #1519
  • Completed the issue Add a runbook for running Client multi-platform tests #1530
  • Completed the issue Update workflow github actions to node-20 #1520
  • Worked on the issue Cardano transactions are not all signed in testing-sanchonet #1537
  • Worked on the issue Make HTTP server tests more robust #1524
  • Worked on the issue Stabilize namings in Cardano Transactions API #1535
  • Worked on the issue Reorganize crates in the repository #1528
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Worked on the issue P2P threat modeling and risk analysis #1350
+ + + + \ No newline at end of file diff --git a/2024-02-29-node-cli-api/index.html b/2024-02-29-node-cli-api/index.html new file mode 100644 index 0000000000..1523feb481 --- /dev/null +++ b/2024-02-29-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content
+ + + + \ No newline at end of file diff --git a/2024-03-01-hydra/index.html b/2024-03-01-hydra/index.html new file mode 100644 index 0000000000..ac39a4bbbe --- /dev/null +++ b/2024-03-01-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level Summary

This week the Hydra team, in addition to the usual maintenance and bug fixing, has been working on the preparation for the switch to Conway making the codebase less babbage specific. The team also conducted the monthly review meeting and published the monthly report on a new website (to keep those reports separate of main repository). They also added a basic UI to the Hydra explorer, switched to aggregating sanchonet data and also fixed the smoke tests to work on sanchonet. Finally, they continued progress the off-chain incremental commit protocol changes.

What did the team achieve this week

What are the goals of next week

  • Complete preparation for #1178 to switch to Conway (by "flipping" a switch)
  • Complete off-chain incremental commit protocol changes #199 (and focus on the on-chain part after).
  • Re-align with SundaeLabs on EventSource and EventSink refactoring.
+ + + + \ No newline at end of file diff --git a/2024-03-01-sre/index.html b/2024-03-01-sre/index.html new file mode 100644 index 0000000000..8aac213e01 --- /dev/null +++ b/2024-03-01-sre/index.html @@ -0,0 +1,41 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-node 8.8.1-pre is now deployed to sanchonet, two-thirds of preprod, +one-third of preview and also voltaire private chain networks.

  • Catalyst Voltaire private chain was respun and an updated db-sync and govtool +backend deployed after hard fork to Conway era.

  • IOG sanchonet pool block producers are now also signing mithril +certificates.

  • A mithril-signer-verifier service now runs on all IOG SRE mithril signers and +generates alerts if no recent mithril certificates have been signed.

  • All cardano-parts mithril clients, whether via nixosConfiguration, +process-compose jobs or the nix cardano-node entrypoint, will now +automatically verify that a trusted IOG pool has signed a mithril certificate +prior to using the associated mithril state. If no trusted IOG pool has +signed a recent mithril certificate, mithril state usage with be skipped and +a classic sync from genesis to tip will be performed.

  • A significant amount of effort was applied towards the upcoming cardano-node +8.9.x-pre release in order to align nixos service module code between +cardano-node nixos services, iohk-nix topology generation, cardano-ops legacy +code, and cardano-parts module compatibility.

Lower level summary

Work in progress

+ + + + \ No newline at end of file diff --git a/2024-03-04-network/index.html b/2024-03-04-network/index.html new file mode 100644 index 0000000000..fd1fc45e60 --- /dev/null +++ b/2024-03-04-network/index.html @@ -0,0 +1,39 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High-level overview of sprint 56

Cardano-Node, Cardano-API, Cardano-CLI

In the last sprint, the network team was designated to take the Release +Engineering Role, as the coming release contains mostly network advances. +Armando Santos has been making progress on it. The following packages were +published to CHaP:

and other ouroboros-network packages with minor changes. The following +packages were also published:

The work on cardano-node is in progress, see cardano-node#5485

We would like to thank Karl Knutsson (CF) for helping us to test the upcoming +cardano-node release.

Ouroboros-Network

We continued working on tx-submission, ouroboros-network#3311

We started to execute an idea to put all configuration values used by the +diffusion layer Ouroboros.Network.Diffusion.Configuration module. Currently, +default values are spread in different repositories (e.g. cardano-node, +ouroboros-consensus). See ouroboros-network#4805.

We restored how syncing works in bootstrap mode to get the same performance +characteristics, see ouroboros-network#4809, ouroboros-network#4810.

We started working on Outbound-Governor Genesis mode, see +ouroboros-network#4813.

Ouroboros-Consensus

We requested to modify how bulk-sync mode works to make it use the same +mechanism that the newly added LedgerStateJudgement. See +ouroboros-consensus#958.

Low-level summary

We also addressed a minor issue regarding tracing LedgerStateJudgement +changes, see ouroboros-network#4816.

+ + + + \ No newline at end of file diff --git a/2024-03-06-consensus/index.html b/2024-03-06-consensus/index.html new file mode 100644 index 0000000000..f8cccb4256 --- /dev/null +++ b/2024-03-06-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

  • Completed the rebase of the production libraries for UTXO-HD on 8.9, both in ouroboros-consensus, cardano-api and cardano-node.
  • Measured sync and replay times and memory in UTXO-HD. The latest result are reported here.
  • Bugfixed the snapshot interval.
  • Added an extra case to isIncorrectClaimedFlag for Babbage and Conway eras.
  • Added a db-analyser analysis to get the UTXO size per slot. The result of the analysis is illustrated here.
  • Started integration work for Node release 8.10.
  • Reviewed the Genesis pull-requests submitted by Tweag. They are pending a final round of review.
  • Helped the current release engineer prepare the 8.9 release candidate.
  • The Consensus Team has also been helping troubleshoot known issues with 8.9 (eg snapshots causing missed leadership schedules, unexpected snapshot interval, integration tests, etc).
+ + + + \ No newline at end of file diff --git a/2024-03-06-mithril/index.html b/2024-03-06-mithril/index.html new file mode 100644 index 0000000000..325b57f203 --- /dev/null +++ b/2024-03-06-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they worked on adapting the Mithril explorer to support Cardano transaction verification, started implementing a more efficient transaction signing scheme, stabilized the type names in the API, and kept investigating a bug that prevents the signature of some Conway era transactions. Additionally, they have completed the first version of the Prometheus monitoring endpoint for the signer.

Finally, the team fixed a bug occuring in the publication of the npm packages of the client, enhanced the HTTP tests of the aggregator, and kept working on the KES period computation in the Pallas chain observer.

Low level overview

  • Completed the issue Expose Prometheus metrics for Mithril signer #1096
  • Completed the issue Make HTTP server tests more robust #1524
  • Completed the issue Stabilize namings in Cardano Transactions API #1535
  • Completed the issue Reorganize crates in the repository #1528
  • Worked on the issue Implement Cardano Transactions in explorer #1497
  • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
  • Worked on the issue Output CLIs logs to stderr #1515
  • Worked on the issue npm publish fails on latest when next exists #1531
  • Worked on the issue Cardano transactions are not all signed in testing-sanchonet #1537
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Worked on the issue P2P threat modeling and risk analysis #1350
+ + + + \ No newline at end of file diff --git a/2024-03-08-hydra/index.html b/2024-03-08-hydra/index.html new file mode 100644 index 0000000000..b100897b49 --- /dev/null +++ b/2024-03-08-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team has been working on a new library cardano-api-classy containing type class instances for era witnesses and also switched nix code to use flake-parts. They also further improved the Hydra Head [explorer](http://explorer.hydra.family) UI. The team also improved error reporting on integration tests and refactored the outcome algebra in the hydra-node protocol logic. Finally, they reviewed the incremental decommit specification with researchers. Meanwhile, SundeaLabs already implemented first UDP and Kinesis event sinks based on the EventSource / EventSink refactoring.

What did the team achieve this week

  • New library cardano-api-classy containing type class instances for era witnesses.
  • Switched the nix code to use flake-parts.
  • Completed another increment on the head explorer UI #1333.
  • Improved error reporting on integration tests #1335.
  • Refactored the outcome algebra in the hydra-node protocol logic #1340.
  • Reviewed incremental decommit specification with researchers.
  • SundaeLabs implemented first UDP and Kinesis event sinks based on #1267.

What are the goals of next week

  • Prepare #1178 on a branch for users to try out Conway on hydra.
  • Align specification with incremental decommit implementation
  • Improve MTB in terms of new Decommit input
  • Prepare a PR for Kupo using new Hydra transaction format
  • Spike on literate Agda specification pdf
+ + + + \ No newline at end of file diff --git a/2024-03-08-performance-and-tracing/index.html b/2024-03-08-performance-and-tracing/index.html new file mode 100644 index 0000000000..da9108c24d --- /dev/null +++ b/2024-03-08-performance-and-tracing/index.html @@ -0,0 +1,45 @@ + + + + + +Performance & Tracing Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & Tracing Update

· 5 min read
Michael Karg

High level summary

  • Benchmarking: We've performed release benchmarks for Node 8.9.0. Additionally, we benchmarked different GC settings for cardano-node.
  • Development: Ongoing work on the reporting pipeline and high-level profile definitions.
  • Workbench: In conjunction with DRep delegations in genesis, we're working on adjustments to a new cardano-cli command.
  • Tracing: Test coverage for the new handle registry feature in cardano-tracer is complete.
  • UTxO Growth: Currently, we're developing a series of benchmarks targeting performance implications of increased UTxO set size.
  • Nomad cluster: Disk storage safety net; better admin access to Nomad nodes; basic backend support for more than 1 cluster; new latency service.

Low level overview

Benchmarking

We've performed a full set of release benchmarks for Node 8.9.0. Initially, we identified a performance regression in connection to ledger snapshots. This has been addressed very swiftly. +Having re-run the fixed version, we could detect no performance risks in comparison with 8.7.2 / 8.7.3.

In an additional set of benchmarks, we targeted the garbage collector (GC) settings that cardano-node is built with by default. Specifically, we compared these (copying, sequential GC) as a baseline +to using the parallel GC, the compacting GC and the non-moving GC - all of which are supported by GHC's runtime system. As GC always is a trade-off between space and time (and as a consequence, responsiveness); +we could measure the parallel GC offering a slight increase in responsiveness at the cost of delaying some evaluations - which is suboptimal for a block forger. The compacting GC could clearly +achieve a smaller RAM footprint, but only at the cost of increased CPU usage - and clearly worsened responsiveness. The non-moving GC could greatly enhance responsiveness - but increased the RAM footprint tremendously, as +well as introduced delays in the forging loop. In conclusion: the existing default is still the best choice by far for cardano-node - validated both on GHC8.10.7 and GHC9.6.3.

Development

The work on moving benchmark profile, and genesis, definitions out of the bash scripting / JSON data transformation space is still ongoing. Type safety and a test suite for those tasks +will allow for a much more principled approach.

The implementation of additional rendering formats and report templates for our reporting pipeline has been completed; it is currently in testing and validation phase.

Workbench

We're working on integrating new cardano-cli functionality in our automations. Injecting DRep delegations into genesis - for Conway ledger benchmarks - will require us +to use a new CLI command, which differs in in output structure and options provided from the one we're using to inject stake pool delegations. This requires us to +implement and additional post-processing step for backends to find everything as expected.

Furthermore, a PR has been merged which refactors and cleans up benchmarking profiles, with a focus on fine-tuning solo-node benchmarks which scrutinize a single cardano-node process.

Tracing

The test suite for cardano-tracer's new handle registry feature is complete, and the new feature passes all tests. At the moment, we're +preparing it for merging into master.

UTxO Growth

We're developing a series of benchmarks that will provide insight into possible changes to the Node's performance characteristics given different UTxO set sizes and numbers of delegated wallets. +What we aim to capture in these benchmarks is the system's capability to scale with UTxO growth - while simultaneously evaluating hardware requirements. The workloads will be based on existing release benchmarks, but allow for flexibility regarding UTxO set and delegations. They will target the existing in-memory solution, and at the same time permit feasability testing UTxO-HD's on-disk +flavour - which does not keep the entire UTxO set in RAM permanently.

Nomad cluster

Implementation of cluster machine disk space checking and garbage collection is complete. A requirement was that no +monitoring process interferes with a running benchmark, so a non-synchronous approach was chosen to guarantee enough disk space. This prevents failing +runs, and thus the necessity to repeat them.

In the process, the workbench backend was equipped with a wider range of cluster commands and abstractions, which makes administrating cluster +machines more flexible. This includes a new service to create a network latency matrix for deployed cluster hardware - generalizing the approach +chosen during the Nomad cluster's initial validation phase. This can guarantee the validity of existing baselines in case of hardware reboots, or changes +in topology.

Last not least, the backend is currently receiving an additional feature: supporting more than 1 hardware cluster. This will enable us, +in the future, to benchmark on ephemeral clusters - without interfering with the hard requirements, or the schedule, of release benchmarking +on our default deployment. The motivation is being able to benchmark different hardware configurations, along with varying cardano-node options and +initial ledger states on a parallel schedule - also, without having to keep those clusters running at all times.

+ + + + \ No newline at end of file diff --git a/2024-03-13-ledger/index.html b/2024-03-13-ledger/index.html new file mode 100644 index 0000000000..915cc8a77c --- /dev/null +++ b/2024-03-13-ledger/index.html @@ -0,0 +1,28 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Alexey Kuleshevich

High level summary

Focus has been on testing: adding tests and improving our testing framework to make it easier to write tests for various Conway features. +We also did some cleanup and reorganisation of code, to make it more manageable and easier to release. +We have started work on Hardfork Initiation: support for intra-era hardfork initiation and necessary updates the SPO stake distribution calculation.

Low level summary

Conway

  • pull-4140 - Intra era hardfork initiation
  • pull-4154 - SPO stake distr calc for HardForkInitiation
  • pull-4150 - Add ConwayUtxosPredFailure
  • pull-4162 - Add ConwayDRepIncorrectRefund and tests for GovCert
  • pull-4112 - Fail when conway features are present in transactions that use Plutus v1/v2
  • pull-4164 - Change hot credential representation in CommitteeState
  • pull-4178 - Remove code repetition in Conway era CDDL

Testing

  • pull-4096 - Add a collection of test Plutus scripts for use in ImpTests
  • pull-4144 - Add imptests for delaying actions enactment
  • pull-4104 - Governance policy tests
  • pull-4123 - Add the ability to do constraints over trees in constrained-generators
  • pull-4163 - Reorganise GovSpec, add GovCertSpec
  • pull-4152 - Add extra type-safety to ensure that all predicate failures have roundtrip tests
  • pull-4172 - Add imptests for some more GOV predicate failures
  • pull-4139 - Add extra time from 1 sec to 2 sec for prop_soundness test.
  • pull-4173 - Update profiling instructions
  • pull-4177 - Plutusv3 initialization tests
  • pull-4155 - Fix nightly build failures

Improvements

  • pull-4141 - Add boom placeholder
  • pull-4157 - Split Conway governance
  • pull-4188 - Simplify implementation of ToJSON1 of ListMap
  • pull-4129 - Modify PParams to use similar naming to ProtocolParams in cardano-api
  • pull-4160 - Make shelley TxWits consistent with other eras
  • pull-4168 - Add missing InjectFailure instances for ConwayUtxosPredFailure
  • pull-4086 - Change applySTS to return NonEmpty (PredicateFailure s)
  • pull-4176 - Add CARDANO_MAINNET_MIRROR to Nix shell
  • pull-4174 - Convert small-steps-test into a sublibrary
  • pull-4159 - Shelley rules cleanup

Specification

  • pull-4042 - Fix the prose being inconsistent with the figure
  • pull-4151 - Fix an issue with txinfo and unusual notation in Babbage UTXO rule

Releasing

+ + + + \ No newline at end of file diff --git a/2024-03-13-mithril/index.html b/2024-03-13-mithril/index.html new file mode 100644 index 0000000000..bfcb90a035 --- /dev/null +++ b/2024-03-13-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the adaptation of the Mithril explorer to support Cardano transaction verification, kept improving its UI, fixed the bug that prevented the signature of some Conway era transactions, implemented a more robust transactions parser, and started providing metadata about the point of the chain used during the verification process. Additionally, they have completed the optimization of the communications of the Mithril nodes and the Cardano node with the finalization of the Pallas chain observer.

Finally, the team enhanced the handling of logs in the CLI of the Mithril nodes and investigated some remaining flakiness in the end-to-end test in the CI.

Low level overview

  • Completed the issue Output CLIs logs to stderr #1515
  • Completed the issue Implement Cardano Transactions in explorer #1497
  • Completed the issue Enhance Mithril/Cardano node communication #1315
  • Completed the issue npm publish fails on latest when next exists #1531
  • Completed the issue Cardano transactions are not all signed in testing-sanchonet #1537
  • Completed the issue Enhance www demonstration in mithril-client-wasm #1552
  • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
  • Worked on the issue Provide latest immutable file number with certified Cardano transactions in client #1536
  • Worked on the issue Explorer improvements Cardano transactions #1554
  • Worked on the issue Refactor the Cardano transactions parser with pallas-hardano #1557
  • Worked on the issue End to end tests are flaky in CI #1558
  • Worked on the issue P2P threat modeling and risk analysis #1350
+ + + + \ No newline at end of file diff --git a/2024-03-15-hydra/index.html b/2024-03-15-hydra/index.html new file mode 100644 index 0000000000..f03c9ac5fb --- /dev/null +++ b/2024-03-15-hydra/index.html @@ -0,0 +1,36 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team worked on aligning the specification with the current +incremental decommit implementation, added decommit to model-based tests and +also discussed the incremental commit protocol extension with researchers. The +team also updated to cardano-api 8.40 and tests against cardano-node 8.9.0, +which unblocked a possible release and re-enabled smoke tests on public +networks. They also groomed a new /commit endpoint interface from a user +discussion and discussed restructuring of the Hydra documentation. The team also +prepared a Conway-supporting hydra-node on branch lc/conway-support for +early adopters (Hi @Juantxu and @ash 👋). Some internal refactoring prepared for +upcoming streaming plugins by SundaeLabs and minor fixes to the TUI and +hydra-explorer rounded off the week.

What did the team achieve this week

  • Aligned specification with current incremental decommit implementation and added Decommit to model based tests.
  • Discussed and explored further on incremental commits with researchers.
  • Refactored Event -> Input #1348 to prepare for streaming plugins #1325.
  • Minor fixes to the TUI and hydra-explorer clients.
  • Updated to cardano-node 8.9.0 and cardano-api 8.40 - this unblocked a possible release and re-enabled smoke tests on public networks.
  • Groomed new /commit endpoint interface #1350 from a user discussion #1337.
  • Discussed restructuring of the Hydra documentation #1349.
  • Prepared a Conway-supporting hydra-node on branch lc/conway-support #1178 (will be merged only after the hard-fork).

What are the goals of next week

  • Prepare a PR for Kupo using new Hydra transaction format (to prepare for 0.16.0 release)
  • Review and merge streaming plugins #1325
  • Improve the /commit endpoint to unblock users
  • Test corner cases of incremental decommit transaction traces
+ + + + \ No newline at end of file diff --git a/2024-03-15-node-cli-api/index.html b/2024-03-15-node-cli-api/index.html new file mode 100644 index 0000000000..e567686065 --- /dev/null +++ b/2024-03-15-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2024-03-01 - 2024-03-15

High level summary

  • cardano-cli: Focus is on testing Conway features. Several improvements to create-testnet-data command, useful for creating/deploying local clusters for testing. Enable parallel execution of tests.

cardano-cli

cardano-api

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2024-03-15-sre/index.html b/2024-03-15-sre/index.html new file mode 100644 index 0000000000..40ec94fb08 --- /dev/null +++ b/2024-03-15-sre/index.html @@ -0,0 +1,55 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-node 8.9.0 is now deployed to all environments.

  • A new profile-cardano-db-sync-snapshots nixosModule is available for +snapshotting dbsync state.

Lower level summary

Cardano-mainnet

  • Updates cardano node and cli pre-release (-ng) to 8.9.0. Adds a new +cardano-db-sync snapshots server. Bumps mithril and enhances mithril +usability with IOG trusted pool signature verification for clients and +mithril verifier service for signers. Adds miscellaneous other small +improvements, bug fixes and tuning. See the pull request description for +more details: +cardano-mainnet-pull-8

Cardano-node

  • Adds nixos service and topology updates related to cardano-node 8.9.0 +release: +cardano-node-compare

Cardano-ops

  • Bumps to cardano-node 8.9.0, fixes metadata server module, removes the legacy +snapshots server: +cardano-ops-compare

Cardano-parts

  • Updates cardano node and cli pre-release (-ng) to 8.9.0 and enables new +bootstrapPeers features and compatibility in the topology functions. Bumps +mithril and enhances mithril usability with IOG trusted pool signature +verification for clients, mithril verifier service for signers, mithril +capability for process-compose and node entrypoint jobs. Adds miscellaneous +other small improvements, bug fixes and tuning. See the pull request +description for more details: +cardano-parts-pull-34

Cardano-playground

  • Updates cardano node and cli pre-release (-ng) to 8.9.0. Bumps mithril and +enhances mithril usability with IOG trusted pool signature verification for +clients, mithril verifier service for signers, mithril capability for +process-compose and node entrypoint jobs. Adds miscellaneous other small +improvements, bug fixes and tuning. See the pull request description for +more details: +cardano-playground-pull-18

Govtool

  • Fixes a coalesce function sql query bug in the govtool backend: +govtool-commit

Iohk-nix

  • Adds support for bootstrap peers and sanchonet mithril configuration: +iohk-nix-pull-574

Sanchonet-demo

  • Bumps cardano-parts for cardano-node 8.9.0 and brings the justfile demo +recipes up to 8.9.0 compatibility: +sanchonet-demo-compare
+ + + + \ No newline at end of file diff --git a/2024-03-18-network/index.html b/2024-03-18-network/index.html new file mode 100644 index 0000000000..3f3a975756 --- /dev/null +++ b/2024-03-18-network/index.html @@ -0,0 +1,40 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High-level overview of sprint 57

We released cardano-node-8.9.0 (which includes +ouroboros-newtork-0.12.0.0). This release contains the following network +upgrades:

Soon we will release [cardano-node-8.9.1] (which includes +ouroboros-network-0.12.0.0). This release will contain:

  • Peer sharing improvements & fixes. Contributed and tested by Karl Knutsson CF.
  • cardano-ping updates to support NodeToNode_V13 & peer sharing.
  • Some smaller maintenance changes.

The list of network features included in ouroboros-network-0.12.0.0 and +ouroboros-network-0.13.0.0 can be found here.

We also continued working on tx-submission, ouroboros-network#3311. Mostly +working on the pure internal API for decision-making and testing it with +property-based tests. The next step is to get all the information needed to run +the decision logic in an efficient way and later write a mini-protocol client +which is using the new API and testing it.

We also started working on thing to finalise the Genesis support from the +network. We have a PR under review, ouroboros-network#4832. We also started +to investigate how to support big ledger peer snapshots. This requires changes +in the topology file as well as cardano-node & ouroboros-network to +understand the snapshots; and on the other hand creation of such snapshots by +cardano-cli.

Low-level summary

This time everything was high-level, 😉.

+ + + + \ No newline at end of file diff --git a/2024-03-20-consensus/index.html b/2024-03-20-consensus/index.html new file mode 100644 index 0000000000..a4e0b1ecfe --- /dev/null +++ b/2024-03-20-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

  • Merged the alternative fs-api interface for I/O using user-supplied buffers. This feature is important because it defines lower-level primitives for the filesystem API, which opens op avenues for more use cases and more efficient I/O operations (for instance when implementing lsm-tree, which is part of our efforts to move the ledger state to disk). This feature has not been released yet.
  • Implemented new diffusion pipelining criterion .
  • Released Consensus packages containing backports for Node 8.9.1.
  • Focused on fixing the tests for ouroboros-consensus in the UTXO-HD branch. Work is ongoing.
+ + + + \ No newline at end of file diff --git a/2024-03-20-mithril/index.html b/2024-03-20-mithril/index.html new file mode 100644 index 0000000000..388249d02f --- /dev/null +++ b/2024-03-20-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed UI improvements for the explorer, provided metadata about the point of the chain used during the verification process, and investigated a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they began prototyping the implementation of a more versatile beaconing mechanism to sign transactions with low latency.

Finally, the team started implementing some community-requested features to verify the output folder structure made by the client, and fixed a source of flakiness in the CI end-to-end test.

Low level overview

  • Completed the issue Upgrade Cardano node to 8.9.0 #1570
  • Completed the issue Explorer improvements for Cardano transactions #1554
  • Completed the issue Refactor the Cardano transactions parser with pallas-hardano #1557
  • Completed the issue Provide latest immutable file number with certified transactions in client #1536
  • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
  • Worked on the issue Support multiple beacon types in signer/aggregator #1562
  • Worked on the issue Do not require the mithril client to create the DB directory #1572
  • Worked on the issue Some transactions are not signed in testing-sanchonet #1577
  • Worked on the issue End to end tests are flaky in CI #1558
  • Worked on the issue P2P threat modeling and risk analysis #1350
+ + + + \ No newline at end of file diff --git a/2024-03-22-hydra/index.html b/2024-03-22-hydra/index.html new file mode 100644 index 0000000000..8992ab5b93 --- /dev/null +++ b/2024-03-22-hydra/index.html @@ -0,0 +1,27 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team restored test compatibility with all networks, reviewed and merged streaming plugins contributed by SundaeLabs. The team also fixed tutorial instructions for downloading the latest cardano-node, fixed the observed contesters bug, prepared a PRs for downstream clients to use the new API format for transactions (preparing the release with this breaking change). Finally, they also recorded a walkthrough video on how the hydra project is run: https://www.youtube.com/watch?v=JGUeO7A6mMU

What did the team achieve this week

  • Restored compatibility with all networks #1355.
  • Reviewed and merged streaming plugins (only missing a how-to) #1325.
  • Fixed tutorial instructions for downloading cardano-node 8.9.0 #1367.
  • Fixed the observed contesters bug #1266.
  • Prepared a PR for Kupo using new Hydra transaction format kupo#166.
  • Recorded a walkthrough on how the hydra project is run (uncut) https://www.youtube.com/watch?v=JGUeO7A6mMU.

What are the goals of next week

  • Conduct the monthly review meeting
  • Improve the /commit endpoint to unblock users
  • Stateful testing of transaction traces to verify corner cases for +incremental decommit
  • Release 0.16.0
+ + + + \ No newline at end of file diff --git a/2024-03-27-ledger/index.html b/2024-03-27-ledger/index.html new file mode 100644 index 0000000000..b37791dcf7 --- /dev/null +++ b/2024-03-27-ledger/index.html @@ -0,0 +1,26 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· One min read
Alexey Kuleshevich

High level summary

We continued focusing on adding tests and improving the test frameworks, including the quality of the generated data used in tests.

Low level summary

Conway

  • pull-4205 - Disable CC ratification when number of members is below ppCommitteeMinSize
  • pull-4169 - Add GovInfoEvent and add event testing capabilities to ImpTest
  • pull-4208 - Remove missingScriptsSymmetricDifference

Testing

  • pull-4121 - Newconstraints phase3, Add newtypes: Size, SizeSpec and class Sized.
  • pull-4197 - add unsafeMkProposals to be used for testing
  • pull-4200 - Fix prop_GOV so that it runs again
  • pull-4216 - improve the GOV generator to generate more interesting signals

Improvements

Releasing

+ + + + \ No newline at end of file diff --git a/2024-03-27-mithril/index.html b/2024-03-27-mithril/index.html new file mode 100644 index 0000000000..4eb5cb3bd2 --- /dev/null +++ b/2024-03-27-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team released a new Mithril distribution 2412.0. This release includes several critical updates and enhancements, such as support for the Prometheus metrics endpoint in signer, deprecation of the snapshot command in the client CLI, full Pallas-based implementation of the chain observer, and support for Cardano node v.8.9.0.

The team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, kept implementing a more versatile beaconing mechanism, reducing the latency of transactions signature, and continued investigating a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they started working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.

Finally, the team completed the implementation of some community-requested features to verify the output folder structure made by the client, and kept investigating a source of flakiness in the CI end-to-end test.

Low level overview

  • Released the new distribution 2412.0
  • Publication of a dev blog post about the Mithril signer Prometheus endpoint release
  • Publication of a dev blog post about the Mithril client CLI snapshot command deprecation
  • Completed the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
  • Completed the issue Do not require the mithril client to create the DB directory #1572
  • Worked on the issue Support multiple beacon types in signer/aggregator #1562
  • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
  • Worked on the issue Provide fake aggregator data in an aggregated form #1594
  • Worked on the issue Some transactions are not signed in testing-sanchonet #1577
  • Worked on the issue End to end tests are flaky in CI #1558
+ + + + \ No newline at end of file diff --git a/2024-03-27-performance-and-tracing/index.html b/2024-03-27-performance-and-tracing/index.html new file mode 100644 index 0000000000..f7910021ea --- /dev/null +++ b/2024-03-27-performance-and-tracing/index.html @@ -0,0 +1,36 @@ + + + + + +Performance & Tracing Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & Tracing Update

· 3 min read
Michael Karg

High level summary

  • Benchmarking: Release benchmarks for 8.9.1 have been performed and analysed.
  • Development: We've implemented a benchmarking setup for UTxO-HD's LMDB (on-disk) backend.
  • Workbench: The now modular, nix-based genesis creation has been merged to master; DRep delegation and integration of a new cardano-cli command are ongoing.
  • Tracing: Benchmarking the new handle registry feature in cardano-tracer is complete; quality-of-life improvements to Prometheus output.
  • UTxO Growth: We've adjusted our framework to support running UTxO scaling benchmarks on both a single node and a cluster.
  • Nomad cluster: new multi-cluster support with the capability to quickly adjust to changes in deployed hardware

Low level overview

Benchmarking

We've performed a full set of release benchmarks for Node 8.9.1. Comparing with release 8.9.0, we could not detect any performance risks for that version.

Development

In context of UTxO scaling, we want to assess the feasability of the current on-disk solution (which is LMDB) of a UTxO-HD enabled node. Using that, the UTxO set will be kept +in live tables and snapshots on disk, significantly reducing memory requirements.

We've implemented a benchmark setting, and a node service configuration, supporting direct disk access to a dedicated device which can be initialized with optimized +file system and mount settings. It's purpose is to serve as storage for the highly performance-critical disk I/O of the LMDB component.

Workbench

Our automation for creating all flavours of geneses has seen cleanup and refactoring - which has been merged to master. It can now use a more principled, and rigorously checked, modular approach +to define, create and cache the desired genesis files.

Working on integrating new cardano-cli functionality in our automation is ongoing. The performance workbench will support a different, and updated, CLI command which will allow injection of DRep delegations into genesis.

Tracing

Benchmarking cardano-tracer's new handle registry feature has been performed and evaluated. We're satisfied with seeing clear performance improvements along with cleaner code, and much better test coverage. +Especially allocation rate and number of garbage collections (GC) could be significantly reduced, along with the CPU time required for performing GCs. This will allow for higher trace message throughput given +identiacal system resources - plus less system calls issued to the OS in the process.

Furthermore, the new tracing system is getting improvements for its Prometheus output - like providing version numbers as metrics, or annotating metrics with their type - enhancing the output's overall utility.

UTxO Growth

The performance workbench now supports profiles aimed at simulating UTxO growth both for a single node and an entire cluster. Additionally, simulating different +RAM sizes in combination with specific UTxO set sizes is supported. For a single block producing node, the focus is on quick turnaround when running +a benchmark, gaining insight into the node's RAM usage and possible impact on the forging loop.

The cluster profiles enable capturing block diffusion metrics as well, however they require a much longer runtime. We can now successfully benchmark the node's behaviour +when dealing with UTxO set sizes 4x - 5x of current mainnet, as well as a possible change in behaviour when operating close to phsyical RAM limit due to that.

Nomad cluster

Our backend now supports allocating and deploying Nomad jobs for multiple clusters simultaneously - all while keeping existing automations operational. We've taken special precautions +a cluster, as seen by the backend, can be efficiently and easily modified to reflect newly deployed, or changed, hardware. Additionally, we've added support for host volumes inside a Nomad +allocation - which will be needed for benchmarking UTxO-HD's on-disk solution.

+ + + + \ No newline at end of file diff --git a/2024-03-28-hydra/index.html b/2024-03-28-hydra/index.html new file mode 100644 index 0000000000..0b3e2ff428 --- /dev/null +++ b/2024-03-28-hydra/index.html @@ -0,0 +1,31 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team conducted the monthly review meeting and investigated +a broken head situation. The team slightly improved conway forward compatibility +in explorer / hydra-node, enhanced hydra-cluster --devnet which allows e2e +testing of kupo, extended smoke test to also include committing ADA into the +head, documented the anticipated behavior of incremental decommits, and added +decommits to the tutorial.

What did the team achieve this week

  • Conducted the monthly review meeting (link to recording already?)
  • Investigated a broken head situation #1374
  • Slightly improved conway forward compatibility in explorer / hydra-node #1373
  • Busy hydra-cluster --devnet sandbox which allows e2e testing of kupo #1378
  • Extended smoke test to also include committing ADA into the head #1377
  • Documented the anticipated behavior of incremental decommits and added decommits to tutorial
  • Another write-up of how the incremental commit/decommit could work (without needing merkle trees or L2/L1 interleaving) on this issue

What are the goals of next week

  • Complete the written monthly report
  • Update our head and hydraw instance to master (a release candidate)
  • Complete the improved /commit endpoint to unblock users
  • Release 0.16.0 (likely without incremental decommits)
  • Reproduce close > contest > contest scenarios using stateful testing
+ + + + \ No newline at end of file diff --git a/2024-03-29-sre/index.html b/2024-03-29-sre/index.html new file mode 100644 index 0000000000..9a54e1e5e6 --- /dev/null +++ b/2024-03-29-sre/index.html @@ -0,0 +1,47 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-node 8.9.1 is now deployed to all environments.

  • The legacy IOG mainnet metadata server has been retired with CF now providing +metadata server services going forward.

  • Cardano-parts PR#35, merged and linked below, offers ip information +integration into nixosConfiguration modules as well as template-diff and +template-patch recipes for easier upgrades going forward.

Lower level summary

Capkgs

  • Adds a shortRev suffix to package names, fixes an rclone recipe, fixes a CI +push action, defaults to recursively dereferenced object hashes, cleans up +reference patterns. See the PR description for more details: +capkgs-pull-2

Cardano-mainnet

  • Bumps to cardano-node 8.9.1 and deploys all machines, makes ip information +available in nixosCfgs, adds new expected machine alerts, tunes snapshot +alerts and implements all updates in cardano-parts PR#35. See the PR +description for more details: +cardano-mainnet-pull-10

Cardano-ops

Cardano-parts

  • Upgrades cardano-node to 8.9.1 for both release and pre-release, integrates +machine ip information into nixosConfigurations, enables /etc/hosts file +usage in cardano-node topology, enhances cardano-node topology producer +generation with customizable address types, introduces template patching +recipes for easier cardano-parts updates to existing clusters. Much more +detail is available in the PR description: +cardano-parts-pull-35

Cardano-playground

  • Bumps to cardano-node 8.9.1 and deploys all envs, rotates KES keys in most +envs, makes ip information available in nixosCfgs and implements all updates +in cardano-parts PR#35. See the PR description for more details: +cardano-playground-pull-18
+ + + + \ No newline at end of file diff --git a/2024-03-30-node-cli-api/index.html b/2024-03-30-node-cli-api/index.html new file mode 100644 index 0000000000..01e7445fbe --- /dev/null +++ b/2024-03-30-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2024-03-16 - 2024-03-30

High level summary

Adding support for script based committee and dreps. This includes queries and using script as arguments instead of keys on various command.

cardano-cli

cardano-api

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2024-04-03-consensus/index.html b/2024-04-03-consensus/index.html new file mode 100644 index 0000000000..b064cef46e --- /dev/null +++ b/2024-04-03-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

  • Made the LocalTxMonitor HasTx cross-era behavior less surprising.
  • Finalized the tests in ouroboros-consensus for the UTXO-HD branch, except the mempool-parallel test which is still failing sometimes.
  • Fixed an upstream complication in quickcheck-state-machine related to Parallel state machines which should allow us for an easier and more understandable setup of the parallel mempool tests.
  • Drafted parallel state machine testing infrastructure for quickcheck-dynamic. Eventually could be used to replace the QSM infra for mempool parallel tests.
  • Cleaned up the Cardano.API.LedgerState module, required for UTXO-HD integration.
  • We have been working on Node release 8.10. The changes upstream are integrated all the way to Node. Tests and benchmarks are pending. The versions of Consensus, Ledger, and Networking are released, and we will focus next on releasing CLI, API, and finally Node.
+ + + + \ No newline at end of file diff --git a/2024-04-03-mithril/index.html b/2024-04-03-mithril/index.html new file mode 100644 index 0000000000..9d9bbc907c --- /dev/null +++ b/2024-04-03-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed the implementation of a more versatile beaconing mechanism, worked on implementing incremental storage of transactions, and fixed the bug in the block parser that prevented some Conway transactions from being signed. Additionally, they continued working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.

Finally, they enhanced the internal storage of data on the test aggregator server and addressed a source of flakiness in the CI end-to-end test.

Low level overview

  • Worked on the issue Implement incremental storage of Cardano transactions in signer/aggregator #1591
  • Completed the issue Support multiple beacon types in signer/aggregator #1562
  • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
  • Completed the issue Provide fake aggregator data in an aggregated form #1594
  • Completed the issue Some transactions are not signed in testing-sanchonet #1577
  • Completed the issue End to end tests are flaky in CI #1558
  • Completed the issue npm publication fails in the release workflow #1595
  • Completed the issue Add indexes on foreign keys of SQLite stores #1603
+ + + + \ No newline at end of file diff --git a/2024-04-05-hydra/index.html b/2024-04-05-hydra/index.html new file mode 100644 index 0000000000..b4d970b2b7 --- /dev/null +++ b/2024-04-05-hydra/index.html @@ -0,0 +1,28 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Daniel Firth

High-level summary

This week, the Hydra team released hydra 0.16.0, which supports cardano-node 8.9.0 +and can interpret conway blocks on the cardano-node. We have also updated some hydra +clients to be compatible with the new hydra api format, including hydraw and kupo.

What did the team achieve this week

  • Update our head and hydraw instance to master (a release candidate)
  • Release 0.16.0 (without incremental decommits)
  • Reproduce close > contest > contest scenarios using stateful testing
  • Have end-to-end scenarios working for the improved /commit endpoint

What are the goals of next week

  • Complete the improved /commit endpoint to unblock users
  • Potentially release 0.17.0 (with improved /commit endpoint)
  • Wrap up the incremental decommit work including the decommit action into the new TxTrace tests
  • Use Versioned Ouroboros protocol for handshaking between nodes.
  • Update to cardano-api-8.44.
+ + + + \ No newline at end of file diff --git a/2024-04-10-ledger/index.html b/2024-04-10-ledger/index.html new file mode 100644 index 0000000000..a66a4d881e --- /dev/null +++ b/2024-04-10-ledger/index.html @@ -0,0 +1,28 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

Most notable progress is on testing. In particular data generation for conformance test +has been improved and the implementation organized. Addition of various Conway related +unit and property tests.

Conway

  • pull-4236 - Fix typo in ToJSON of ConwayGovState
  • pull-4250 - Add some ToJSON instances needed by cardano-node

Testing

  • pull-4221 - Fix a NoThunks test failure on nightly builds
  • pull-4214 - Fix estimateMinFeeTx w/ bootstrap test
  • pull-4189 - Imptests - treasury withdrawals
  • pull-4207 - Added tests from a bug report
  • pull-4238 - Imptests: ParameterChange affects ratification for in-flight proposals
  • pull-4243 - Convert small-steps testsuite to Hspec
  • pull-4248 - Fix withdrawals test data generation in EnactSpec
  • pull-4212 - Update and reorganize conformance tests
  • pull-4242 - Added UnitTestTools and IncrementalStakeTest

Infrastructure and releasing

Low level summary

+ + + + \ No newline at end of file diff --git a/2024-04-10-mithril/index.html b/2024-04-10-mithril/index.html new file mode 100644 index 0000000000..ff7d761d77 --- /dev/null +++ b/2024-04-10-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed the incremental storage of transactions, activated the signature of the transactions on the testing-preview network, and prepared a new network to test the scaling on mainnet data. The team also made progress on a prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they worked on refactoring the database providers of the aggregator.

Finally, the team delivered a community requested feature that displays the minimum versions of the Cardano node that the signer supports in a machine-readable format. They also provided a manual setup guide for the relay in the SPO user guide.

Low level overview

  • Completed the issue Implement incremental storage of Cardano transactions in signer/aggregator #1591
  • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
  • Worked on the issue Refactor database module in aggregator #1583
  • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
  • Worked on the issue Create file with Cardano minimum versions in repository #1615
  • Worked on the issue Deploy testing-mainnet network #1617
  • Worked on the issue Add section for manual setup of squid in SPO guide #1610
  • Completed the issue Signer metrics server displays confusing log message #1620
+ + + + \ No newline at end of file diff --git a/2024-04-12-hydra/index.html b/2024-04-12-hydra/index.html new file mode 100644 index 0000000000..030b9b6947 --- /dev/null +++ b/2024-04-12-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team fixed a bug in the smoke test and refactored to allow network functions to distinguish between inbound and outbound. The team also prepared a cardano-api 8.44 branch for cardano-node 8.10 once it gets released. They also contributed to the cardano-ledger-api by undeprecating and exposing redeemerPointer.

What did the team achieve this week

  • Fix FaucetFailedToBuildTx in smoke test #1384
  • Refactoring to allow network functions to distinguish between inbound and outbound
  • Prepared a cardano-api 8.44 branch, but got blocked 👇
  • Undeprecate redeemerPointer and expose it in cardano-ledger-api cardano-ledger#4259

What are the goals of next week

  • Complete new /commit endpoint interface #1350
  • Refactor to allow NodeLogic to pass through connection messages, to unblock 👇
  • Use versioned handshake when connecting hydra-nodes #1010
  • Test all combinations of decrement/close/fanout for #1057
  • Meet with tech writers about the landing page
+ + + + \ No newline at end of file diff --git a/2024-04-12-sre/index.html b/2024-04-12-sre/index.html new file mode 100644 index 0000000000..6de307462d --- /dev/null +++ b/2024-04-12-sre/index.html @@ -0,0 +1,48 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Private chain for Voltaire team was respun for cardano-node 8.10.0-pre +pre-release and re-hard forked into Conway era.

  • Sanchonet was respun for cardano-node 8.10.0-pre pre-release and re-hard +forked into Conway era.

  • Cardano-node 8.10.0-pre was also deployed to one-third of IOGs preprod +environment nodes and two-thirds of IOGs preview environment nodes.

Lower level summary

Cardano-parts

  • Sets cardano-node|cli-ng to 8.10.0-pre, dbsync-ng to sancho-4.1.0; bumps +nixpkgs (23.11) and nixpkgs-unstable; improves, adds new and fixes a number +of just recipes; allows repo custom recipes to be kept as a separate import +for easy justfile maintenance; refactors ip module checking into its own +nixosModule and adds an extra abort option for safety. Much more detail is +available in the PR description: +cardano-parts-pull-36

Cardano-mainnet

  • Bumps cardano-parts for a number of recipe additions, improvements, fixes. +Fixes blockperf dnsmasq looksups and adjusts colmena topology code to account +for intra-cluster localRoots now defaulting to trustable true and implements +all updates in cardano-parts PR#36. See the PR description for more details: +cardano-mainnet-pull-11

Cardano-perf

  • Add a new perf-ssd machine class and deployment for ssd related performance +testing and benchmarking. Add new just recipes and cluster resource tagging. +cardano-perf-compare

Cardano-playground

  • Bumps cardano-parts for a number of recipe additions, improvements, fixes, +and node 8.10.0-pre. Respins private chain and sanchonet for node 8.10.0-pre +with corresponding book updates and implements all updates in cardano-parts +PR#36. See the PR description for more details: +cardano-playground-pull-20

Iohk-nix

  • WIP: Prepares block producer configurations to accomodate upcoming peerSharing default change: +iohk-nix-pull-575

  • Provides iohk-nix updates for node 8.10: +iohk-nix-pull-576

+ + + + \ No newline at end of file diff --git a/2024-04-15-network/index.html b/2024-04-15-network/index.html new file mode 100644 index 0000000000..9880145ab5 --- /dev/null +++ b/2024-04-15-network/index.html @@ -0,0 +1,56 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 4 min read
Marcin Szamotulski

High-level overview of sprint 58 and sprint 59

Releases

We released cardano-node-8.9.1, and we tagged a soon to be released +cardano-node-8.9.2 +The 8.9.2 release will have a fixed peer sharing support, which we +incidentally broke in 8.9.1. We expanded our test suite to cover discovered +bugs (see below for more details). Please also see the release +tab in our project to see which PRs / issues were +included in a given release, the following mapping might also be useful:

  • ouroboros-network-0.13.1.0 -> cardano-node-8.9.1
  • ouroboros-entwork-0.14.0.0 -> cardano-node-8.9.2

Genesis

We continued working on network Genesis support:

  • ouroboros-network#3396 - churn policy for Genesis;
  • ouroboros-network#4813 - outbound governor support for Genesis;
  • support for cardano-cli to write a big ledger peers snapshot to disk and +for cardano-node to pass it to ouroboros-network.

As well as a feature required by consensus:

TxSubmission

Only a little progress was made due to one of us being on vacation.

Churn and EKG metrics

While working on ouroboros-network#4815, we addressed technical debt +in churn. The PR removes implicit synchronisation (in terms of delays) in +favour of explicit synchronisation with the outbound governor. The PR extends +EKG counters traced by the node. See below for some graphs.

Documentation

We updated the documentation on peer sharing, see +cardano-node-wiki#44.

Low level details

Peer Sharing Testing

We wrote a testing scenario for peer sharing, which simulates a node setup: +A -> B <- C, where neither of the nodes B and C have any local roots; they only learn about other nodes through (light) peer sharing. B learns +about A and C because they connect to it, while C should learn about A +through peer sharing. This test scenario should prevent us from breaking peer sharing in the +future in some obvious ways. In the future, we will also work on extending our +test suite with peer sharing in mind. See ouroboros-network#4839, +ouroboros-network#4841.

EKG / Prometheus Counters

Note that this is in progress, so some things might still change.

We will provide counters for active (also known as hot) peers, +established (e.g. hot & warm) peers and known (e.g. hot, warm and +cold) peers. This is the same way one specifies targets in the node's +configuration. In addition, the three groups are split into five categories:

  • ledger peers
  • big ledger peers
  • local root peers
  • bootstrap peers
  • shared peers

In addition, we also provide a counter for root peers, which counts ledger peers, +big ledger peers, local roots and bootstrap peers, which correspond to the +root peers target TargetNumberOfRootPeers in the configuration.

We also provide counters for ongoing promotions and demotions.

Ledger peers are affected by TargetNumberOf{Known,Established,Active}Peers and TargetNumberOfRootPeers. +The gap between TargetNumberOfRootPeers and TargetNumberOfKnownPeers will +be filled either with ledger peers or peers, which the node discovered through +peer sharing. +Big ledger peers are affected by TargetNumberOf{Known,Established,Active}BigLedgerPeers.

Below are some Grafana graphs from an experimental cardano-node branch:

Deprecation policy

The previous hot, warm / cold EKG counters will also be available, +although deprecated after the new ones are released. Sometime in the future +they will be removed.

Grafana graphs

The screenshots are from a node, which is configured without any bootstrap +peers, which is why all bootstrap metrics are 0. The node is configured with the following targets:

  "TargetNumberOfRootPeers": 60,
"TargetNumberOfKnownPeers": 100,
"TargetNumberOfEstablishedPeers": 40,
"TargetNumberOfActivePeers": 15,
"TargetNumberOfKnownBigLedgerPeers": 15,
"TargetNumberOfEstablishedBigLedgerPeers": 10,
"TargetNumberOfActiveBigLedgerPeers": 5,

and has a small number of local root peers and one peer in its publicRoots +configuration.

Active Peers Metrics

P2P relays

Established Peers Metrics

P2P relays

Known Peers Metrics

P2P relays

Churn Metrics

P2P relays

+ + + + \ No newline at end of file diff --git a/2024-04-15-node-cli-api/index.html b/2024-04-15-node-cli-api/index.html new file mode 100644 index 0000000000..f6ab478787 --- /dev/null +++ b/2024-04-15-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2024-04-01 - 2024-04-15

High level summary

Adding support for script based committee members certificates: authorization and resignation. It is now possible to convert extended signing Drep and Committee keys to a Shelley-format key. Improvements to Conway era tests. Use threshold instead of quorum for committee members.

cardano-cli

cardano-api

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2024-04-17-consensus/index.html b/2024-04-17-consensus/index.html new file mode 100644 index 0000000000..ef5b0e4a66 --- /dev/null +++ b/2024-04-17-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

  • Implemented the new diffusion pipelining criterion.
  • Presented, reviewed and merged the March milestone for Genesis.
  • Integrated latest changes into Node version 8.10.
  • Regarding the UTXO-HD feature we:
    • Completed fixes in test-suites from cardano-node, cardano-api, and ouroboros-consensus. All tests are passing in latest prototype.
    • Prepared UTXO-HD prototype for LMDB benchmarking.
    • Fixed tracing in cardano-node.
    • Started merging code from the UTXO-HD branch into main (1053, 1052, and 1054).
  • We're currently working on getting rid of NoThunks errors in Consensus, so that we can enable these tests in CI, for extra assurance.
+ + + + \ No newline at end of file diff --git a/2024-04-17-db-sync/index.html b/2024-04-17-db-sync/index.html new file mode 100644 index 0000000000..d8518ceb4a --- /dev/null +++ b/2024-04-17-db-sync/index.html @@ -0,0 +1,41 @@ + + + + + +DB Sync Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

DB Sync Team Update

· One min read
Kostas Dermentzis

High level summary

The DBSync team has released 1 version for mainnet 13.2.0.1 and 3 pre-releases for sanchonet +4.0.0, 4.1.0, 4.2.0. We have continued the integration of Conway (CIP-1694) and the support +of off-chain data (CIP-100)

Lower level summary

  • CI build and docker fixes +#1670 +#1668 +#1667 +#1662

  • Improved committee representation +#1662 +#1571 +#1633

  • Offchain metadata partial support +#1654

  • Refactoring and tech-debt +#1635

  • Fixing epoch_stake_progress +#1620

  • Config and modulatirty improvements +#1653 +#1652

  • Updating to node-8.10-pre. Better support for deposits, refunds and proposal state +#1673

+ + + + \ No newline at end of file diff --git a/2024-04-17-mithril/index.html b/2024-04-17-mithril/index.html new file mode 100644 index 0000000000..f93b650dd6 --- /dev/null +++ b/2024-04-17-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling the signature and proof generation for mainnet with the compression of the transaction Merkle tree by using sub-Merkle trees of transactions by block ranges. They also made progress in designing low latency certification, investigated a memory leak in the signature/proof process, and worked on retrieving the tip of the chain with the Pallas chain observer. The team almost completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they completed the refactoring of the database providers of the aggregator and re-span the testing-sanchonet network following the release of Cardano node 8.10.0-pre.

Finally, the team made some optimizations on the compilation of their pre-built binaries to fix panics occurring on CPUs without ADX instructions, and created a network configuration file on the repository to facilitate automatic compatibility checks.

Low level overview

  • Completed the issue Create file with Cardano minimum versions in repository #1615
  • Completed the issue Deploy testing-mainnet network #1617
  • Completed the issue Refactor database module in aggregator #1583
  • Completed the issue Client deprecation notice should be written in JSON when --json option is used #1616
  • Completed the issue Activate portable feature in mithril-stm by default #1613
  • Completed the issue Prepare testing-sanchonet for respin with Cardano 8.10 #1618
  • Worked on the issue Store Block Range Merkle roots in signer and aggregator databases #1633
  • Worked on the issue Memory leak in Cardano transactions signature/proof #1629
  • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
  • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
  • Worked on the issue Add section for manual setup of squid in SPO guide #1610
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
+ + + + \ No newline at end of file diff --git a/2024-04-19-hydra/index.html b/2024-04-19-hydra/index.html new file mode 100644 index 0000000000..1a5cba172b --- /dev/null +++ b/2024-04-19-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team refactored the heartbeat logic to prepare for the versioned network protocol. They have also switched http://explorer.hydra.family to run on the preview network. Additionally, the team has added property tests to the /commit endpoint changes.

What did the team achieve this week

  • Refactor heartbeat logic to prepare for versioned network protocol.
  • Switch http://explorer.hydra.family to run on preview network.
  • Add property tests to /commit endpoint changes

What are the goals of next week

  • Attend and connect with community on Cardano Builder Fest
  • Merge new /commit endpoint changes
+ + + + \ No newline at end of file diff --git a/2024-04-19-performance-and-tracing/index.html b/2024-04-19-performance-and-tracing/index.html new file mode 100644 index 0000000000..55958194d3 --- /dev/null +++ b/2024-04-19-performance-and-tracing/index.html @@ -0,0 +1,32 @@ + + + + + +Performance & Tracing Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & Tracing Update

· 3 min read
Michael Karg

High level summary

  • Benchmarking: We've performed benchmarks and analyses for Node versions 8.9.2 and 8.10.0.
  • Development: Design phase for implementing quick queries in the analysis pipeline has begun.
  • Workbench: We're finishing up the new features for the reporting pipeline; Haskell profile definition work is ongoing.
  • Tracing: Improving the Prometheus output is ongoing; the node's build info will be accessible as a Prometheus label.
  • UTxO Growth: Our tooling has been augmented to support benchmarks starting with a non-empty chain.

Low level overview

Benchmarking

We've performed a full set of release benchmarks for Node 8.9.2. Comparing with release 8.9.1, we could not detect any performance risks for that version.

The benchmarks for 8.10.0 have shown a slight improvement in the time the block forging loop needs to evaluate, whilst additionally, resource usage of the cardano-node process was also slightly reduced - a nice performance improvement.

Development

Our analysis pipeline is based on batch analysis of data from over 50 cluster nodes; it consumes very large amounts of trace output ex post facto, when the actual benchmark has terminated. +This is very time-intensive, and not viable for obeserving an additional metric that you later on determine might need consideration.

We're planning to add quick queries into a benchmarking run's trace data to our analysis pipeline. These will be structured such that parameterizable, ad-hoc querying is supported. Initial tests showed that evaluation speed +of such queries is fast enough to merit designing a principled, and generalized, syntax for them - and a subsequent implementation.

Workbench

The reporting pipeline has been augmented with direct support for customizable, and stylable, TeX rendering - currently receiving final touches.

Porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is ongoing work. It is our goal to both increase reliable profile definition and validation, and +facilitate usage by engineers less familiar with the workbench.

Tracing

The work to improve system metrics as presented to Prometheus is still ongoing. Type annotations, as well as introducing Prometheus labels for certain metrics to convey (like e.g. build information), will make that interface +more versatile. It also facilitates configuration of monitoring or dashboards like Grafana on top of those Prometheus metrics.

UTxO Growth

For the UTxO scaling benchmarks, we've augmented the workbench with the capability to support injection of a custom synthesized chain into the deployment, and start a benchmark only after replaying that chain - whereas +our benchmarks usually start just with a genesis block.

To achieve that, different components of our tooling needed addition of features: distributing that chain to the node cluster, having analysis work without necessarily providing trace evidence of each block in the chain being forged by a benchmarking node. Cluster timing had to be adjusted to account for the gap between genesis start time and the chain tip. However, this entire mechanism opens up the possibility of having a very distinct ledger state at hand for a benchmark - one, that's been particularly crafted via a series of +pre-defined transactions constituting the blocks during creation of the synthesized chain.

In the future, we plan to flesh out a more general design of that mechanism, which currently is tied to a very specific use case only.

+ + + + \ No newline at end of file diff --git a/2024-04-24-ledger/index.html b/2024-04-24-ledger/index.html new file mode 100644 index 0000000000..14b7b3e7ea --- /dev/null +++ b/2024-04-24-ledger/index.html @@ -0,0 +1,33 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

Ability to specify CostModel for PlutusV3 in the genesis file was implemented, which +will allow us to execute PlutusV3 as soon as we enter Conway era, which is essential +for guardrails script. Important bugs that have been fixed:

  • Invalid reporting of InsufficientCollateral and ValueNotConservedUTxO predicate +failures. In case of validation failure a confusing deserialization was reported instead +of those predicate failures.
  • Calculation of votes for Constitutional Committee Members did not consider expired +members correctly.
  • Useful function redeemerPointer was deprecated without good justification.

Besides bugfixes there was a lot of work done on the testing side. Constraint based data +generation is receiving continuous improvements. More unit and property tests for Conway +era functionality.

Low level summary

Conway

  • pull-4259 - Undeprecate redeemerPointer and expose it in cardano-ledger-api
  • pull-4252 - Add PlutusV3 CostModel to UpgradeConwayPParams
  • pull-4247 - Change the balance in InsufficientCollateral to DeltaCoin
  • pull-4267 - Expand TxAuxData interface
  • pull-4265 - Inline UTxO and UTxOW PredFailure for Conway
  • pull-4281 - Discount expired CC from CC-size calculation
  • pull-4290 - Add NoThunks instance for UTxO pred failures
  • pull-4288 - Fix burning tokens predicate failure

Testing

  • pull-4241 - Add fixup combinators to ImpTest framework
  • pull-4229 - Shrinking for constrained-generators
  • pull-4244 - Imptests: CommitteeMinSize affects in-flight props
  • pull-4269 - Fix generation bug for sums of positive member spec
  • pull-4266 - Add imptest to propose and enact unknown costmodels
  • pull-4261 - constrained-generators cleanup for hackage
  • pull-4279 - constrained-generators: Fix bug in toPreds for maps + add additional tests
  • pull-4272 - simplify foldMap interface to higher order syntax
  • pull-4283 - constrained-generators: add new test to test suite
  • pull-4286 - constrained-generators: refactor reify to reduce the number of binding sites + delay simplification more to avoid variable capture in higher order syntax

Infrastructure and releasing

  • pull-4260 - Bump idna from 3.3 to 3.7 in /doc
  • pull-4277 - Fixed formatting in HowToProfileLedger.md
  • pull-4282 - Bump plutus deps to 1.26
  • pull-4294 - Avoid cancelling scheduled CI when a new merge happens on master
+ + + + \ No newline at end of file diff --git a/2024-04-24-mithril/index.html b/2024-04-24-mithril/index.html new file mode 100644 index 0000000000..852d7497b9 --- /dev/null +++ b/2024-04-24-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, most of the Mithril team attended the Cardano Buidler Fest #1 in Toulouse, France. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet by compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges. The team identified the source of an issue preventing proper memory release during the signing/proving of a large set of transactions and developed a fix for it. Additionally, they completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network.

Finally, the team implemented a configurable feature for test networks to log unparsable blocks instead of panicking and investigated some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.

Low level overview

  • Completed the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
  • Worked on the issue Store Block Range Merkle roots in signer and aggregator databases #1633
  • Worked on the issue Stream import of Cardano transactions #1646
  • Worked on the issue Memory leak in Cardano transactions signature/proof #1629
  • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
  • Worked on the issue Add section for manual setup of squid in SPO guide #1610
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
+ + + + \ No newline at end of file diff --git a/2024-04-26-sre/index.html b/2024-04-26-sre/index.html new file mode 100644 index 0000000000..863d0a707c --- /dev/null +++ b/2024-04-26-sre/index.html @@ -0,0 +1,66 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 3 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-node 8.9.2 is now deployed to mainnet, preprod, preview and +shelley-qa environments.

  • Cardano-node 8.10.1-pre is now deployed to sanchonet and also to one-third of +IOGs preprod environment nodes and two-thirds of IOGs preview environment +nodes.

  • Private chain for Voltaire team was paused with plans for a future respin.

  • The network team's ouroboros-network-ops machine cluster was re-written using +the cardano-parts stack to upgrade from the nixops/terraform/niv stack it was +previously using.

Lower level summary

Cardano-parts

  • Sets cardano-node to 8.9.2, dbsync-ng to sancho-4.2.0; mithril to 2412.0, +iohk-nix to include new peerSharing defaults and introduce a new block +producer config. Adds a new truncate-chain recipe and improves mithril +related services. More detail is available in the PR description: +cardano-parts-pull-38

  • Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2; mithril pre (-ng) +to unstable, iohk-nix and iohk-nix-ng pin includes new Cardano Foundation +bootstrap relays. Adds new aws machine management and other recipes, metadata +job support for pool creation, misc fixes and improvements. More detail is +available in the PR description: +cardano-parts-pull-39

Cardano-mainnet

  • Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new +peerSharing defaults and colmena.nix cluster refactor for peerSharing +adjustments and implements all updates in cardano-parts PR#38. See the PR +description for more details: +cardano-mainnet-pull-12

  • Sets dbsync to 13.2.0.2, iohk-nix and iohk-nix-ng to include new CF relays, +adds new aws machine management recipes and implements all updates in +cardano-parts PR#39. See the PR description for more details: +cardano-mainnet-pull-13

Cardano-node

  • Default peerSharing true and add block producer config to release binaries. +See the PR description for more details: +cardano-node-pull-5789

Cardano-ops

Cardano-perf

  • Adds a caddy webserver for run reviews and tunes the NVME FS mounts for performance: +cardano-perf-compare

Cardano-playground

  • Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new +peerSharing defaults, refactors mdbook out of docs dir, adds example chain +manipulation doc and implements all updates in cardano-parts PR#38. See the +PR description for more details: +cardano-playground-pull-21

  • Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2, mithril pre (-ng) +to unstable, iohk-nix and iohk-nix-ng to include new CF relays, adds a public +TLS dbsync user connection option, stops private chain cluster and implements +all updates in cardano-parts PR#39. See the PR description for more details: +cardano-playground-pull-22

Iohk-nix

  • Creates block producer configurations to accomodate PeerSharing set true by default: +iohk-nix-pull-575

  • Adds Cardano Foundation mainnet bootstrap peers: +iohk-nix-pull-578

Ouroboros-network-ops

Sanchonet

Sanchonet-demo

+ + + + \ No newline at end of file diff --git a/2024-04-27-node-cli-api/index.html b/2024-04-27-node-cli-api/index.html new file mode 100644 index 0000000000..b6d1dc3b9e --- /dev/null +++ b/2024-04-27-node-cli-api/index.html @@ -0,0 +1,27 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· One min read
Carlos LopezDeLara

2024-04-16 - 2024-04-26

High level summary

8.10.1-pre was released to SanchoNet.

The team continues focused on implementing tests for the Conway era on the cardano-node repository. This sprint the team made various improvements to +CI pipelines on cardano-cli.

  • Cardano-cli: implemented build-estimate to facilitate automatic transaction balancing without access to a live node; and added minFeeRefScriptCostPerByte as an option to create-protocol-parameters-update command.

cardano-node

cardano-cli

cardano-api

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2024-04-30-mithril/index.html b/2024-04-30-mithril/index.html new file mode 100644 index 0000000000..f1d6efa90a --- /dev/null +++ b/2024-04-30-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team prepared a new pre-release distribution 2418.1-pre, which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes to prevent memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet by leveraging the compression of the transaction Merkle tree using sub-Merkle trees based on transaction block ranges during signature and proving. Additionally, they implemented a stream mechanism for importing transactions into the signer and aggregator stores.

Finally, the team started implementing a global Mithril networks configuration file and continued investigating some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.

Low level overview

  • Created a pre-release for the new distribution 2418.1-pre
  • Completed the issue Store Block Range Merkle roots in signer and aggregator databases #1633
  • Completed the issue Stream import of Cardano transactions #1646
  • Completed the issue Memory leak in Cardano transactions signature/proof #1629
  • Completed the issue Handle unparsed blocks in Cardano transactions parser #1567
  • Worked on the issue Use Block Range Merkle roots to sign Cardano transactions #1634
  • Worked on the issue Use Block Range Merkle roots to prove Cardano transactions #1635
  • Worked on the issue Use SQLite transactions when inserting Cardano Transactions and Block Range Roots #1656
  • Worked on the issue Add Mithril networks configurations in networks.json #1638
  • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
  • Worked on the issue Add section for manual setup of squid in SPO guide #1610
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
+ + + + \ No newline at end of file diff --git a/2024-05-01-consensus/index.html b/2024-05-01-consensus/index.html new file mode 100644 index 0000000000..7dda6fabe6 --- /dev/null +++ b/2024-05-01-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

  • Reworked the argument for the different databases used in Consensus, in preparation for UTxO-HD (#1059).
  • Helped review the first Peras Innovation draft report.
  • Continued working on VRF restriction based on slot distance. The corresponding PR (#1047) went through its first round of reviews.
  • Provided support to the Networking team to review their work on querying big ledger peers (#1067).
  • Continued working on open-sourcing fs-api and fs-sim.
  • Performed other minor refactorings in the codebase (#1073 and #1070).
+ + + + \ No newline at end of file diff --git a/2024-05-03-hydra/index.html b/2024-05-03-hydra/index.html new file mode 100644 index 0000000000..512b12d7aa --- /dev/null +++ b/2024-05-03-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team has been working on refactoring and detecting network protocol version mismatches. They have also merged the /commit endpoint changes including a follow-up fix about fee calculation. Besides this, they applied minor workflow fixes by adding docker images to nix checks and disabling mithril integration testing on preview (until mithril 2418 is released).

What did the team achieve this week

  • Refactor connectivity and detect network protocol version mismatches #1381
  • Merged and completed #1350, including a follow-up fix about fee calculation
  • Add docker images to nix checks
  • Disable mithril-client testing on Preview

What are the goals of next week

  • Restructure documentation including a how to about streaming plugins #1325
  • Add arm64 docker images as requested in #1404
  • Release 0.17.0
+ + + + \ No newline at end of file diff --git a/2024-05-06-network/index.html b/2024-05-06-network/index.html new file mode 100644 index 0000000000..71c0649fa4 --- /dev/null +++ b/2024-05-06-network/index.html @@ -0,0 +1,54 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 3 min read
Marcin Szamotulski

High-level overview of sprint 60

Edited on 8th of May: new EGK counters will be included in `cardano-node-8.9.3`, added links to `cardano-node-8.9.3` PR and `ouroboros-network-0.15` release.

Peer-Sharing Improvements

We continued working on improving peer sharing. As part of this work light +peer sharing (e.g. including inbound peers to the known set of outbound +governor), was restructured. Now, sending more peers than what was requested by +the peer-sharing client is a protocol error, and the connection will be terminated; +This hasn't been a resource attack vector since we always limited the number of +peers taken by the outbound-governor and the number of peers has always been +limited by the size of the mux ingress queue reserved for peer-sharing +mini-protocol. These changes will be released in cardano-node-8.9.3. See +ouroboros-network#4868

We also merged the work on outbound governor counters, which initially started +as just an extension for peer-sharing counters but turned into a larger +refactorisation. We announced it in the previous report. These changes will +be included in 8.9.3. See ouroboros-network#4845, +ouroboros-network#4861.

Light peer sharing (inbound peers) refactorisation allowed us to refactor the +inbound governor loop: we restructured it so that the internal state is kept +pure (and thus not shared with other threads), while the public part is +computed incrementally (with good amortised costs and thus leading to good performance) and exposed to other +components (e.g. the outbound-governor), see ouroboros-network#4871 (which +is built on top of ouroboros-network#4868).

The PR [cardano-nod#5831] integrates ouroboros-network-0.15 with +cardano-node-8.9.x branch. All included PRs / issues in +ouroboros-network-0.15 are listed here.

Genesis

We implemented the API needed by the consensus layer for Genesis; see +ouroboros-network#4815, ouroboros-network#4846.

We continued working on outbound governor changes to support Genesis:

Bootstrap Peers

Karl Knutsson ([CF]) found and fixed some problems related to big-ledger and +public root peers. Here's an excerpt from the changelog file:

  • updated the big-ledger retry state in case of an exception;
  • reset public root retry state when transitioning between LedgerStateJudgements;
  • reduced public root retry timer;
  • don't classify a config file with public-root/bootstrap-peers IP addresses only +as a DNS error. +See ouroboros-network#4867.

Churn

We merged a refactorisation which synchronises churn with the outbound +governor, see ouroboros-network#4617.

Minor Improvements

A few other minor improvements were merged:

Testing

We added quickcheck-monoids package and also submitted an upstream patch to +QuickCheck to include a version of the standard All / Any monoids, which +are helpful when writing more complex properties. We will use +quickcheck-monoids until the upstream PR will be released. It will be +available from CHaP. See quickcheck#397.

+ + + + \ No newline at end of file diff --git a/2024-05-07-performance-and-tracing/index.html b/2024-05-07-performance-and-tracing/index.html new file mode 100644 index 0000000000..9e3c9474ec --- /dev/null +++ b/2024-05-07-performance-and-tracing/index.html @@ -0,0 +1,40 @@ + + + + + +Performance & Tracing Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & Tracing Update

· 5 min read
Michael Karg

High level summary

  • Benchmarking: We've performed and analysed benchmarks in the Conway era, with DReps injected.
  • Development: Tracing DRep data has been implemented; improved error reporting in tx-generator and analysis quick queries are ongoing work.
  • Workbench: We now fully supports the new CLI create-testnet-data command and DRep injection into Conway genesis. Haskell profile definition work is ongoing.
  • Tracing: Various additions to Node metrics are being worked on, such as build info and block producer role. Metrics naming will be further harmonized.
  • UTxO Growth: We've finalized analysis and reports of all benchmarks targeting UTxO scaling scenarios.
  • UTxO-HD / LMDB: We've performed multiple runs benchmarking the LMDB (on-disk) backend of UTxO-HD.

Low level overview

Benchmarking

We've run and analyzed a full set of benchmarks comparing the Conway ledger against the Babbage one, on Node 8.10.1-pre. For Conway, our additional goal was to measure a vanilla ledger state against one with a large amount of DReps - and delegations to those DReps - present. The +benchmarks used our existing value and Plutus workloads to remain comparable to each other.

Development

Additional ledger queries for the tracing system have been implemented and merged to master. Those capture the amount of, and the number +of existing delegations to, DReps as trace output - and thus enable creating a metric on top of it, which can then be monitored.

The (in our case) non-deterministic nature of shutting down different cluster setups - both local and cloud-based - carries the possibility +that our transaction generation service occasionally misclassifies a regular shutdown as an error. Furthermore, in the case of network malfunctions, the service's errors are too unspecific. By implementing thread labels for submission threads, corresponding to each +submission target, and by adding custom smart signal handlers, we'll improve the generator's error reporting significantly.

The initial tests for quick queries are being developed further. We're moving towards a principled, and generalized, syntax that supports both +prepared, parametrizable queries from the application code, as well as ad-hoc queries stated e.g. on the command line.

Workbench

The performance workbench now fully supports the new cardano-cli command create-test-data. We use it to inject both stake +delegated to stake pools into genesis, and - recently added - stake delegated to DReps as well. It has been proven very useful +and versatile so far, and will eventually replace the current create-staked command.

Work on porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is still ongoing; currently, we're integrating all new profile families that came out of the UTxO growth scenarios.

Tracing

New metrics are being implemented for the tracing system. They will also be part of Prometheus output and as such accessible to +monitoring services. There'll be cardano-node's detailed build info, as well as a node's block producer status, meaning the presence of forger credentials. Those new metrics are being backported to the legacy tracing system, too.

Furthermore, we've determined the need to revisit metrics naming. There's still a divergence between naming in the legacy +and the new system. While this could be mitigated by passing in extra config options, we think that a transition to the new system +should not impose any unnecessary effort for node operators. A design to fully harmonize the existing naming schemata is currently being +set up.

UTxO Growth

The UTxO Growth benchmarking series has been finalized. We've finished analyses and reports for all scenarios that +were tested and explored.

The overarching questions were, given a network of 32GB host systems, how large can the UTxO set grow in general, +how large can it grow before the nodes have to operate close to the RAM limit over extended periods of time, and how does scaling the UTxO set size affect network metrics, such as block diffusion.

A dedicated "UTxO Scaling Squad" was set up, who was driving the entire process, and we enjoyed a very focused and productive collaboration with them.

UTxO-HD / LMDB

Last not least, we were able to benchmark UTxO-HD's on-disk backend on a network of block producing nodes, on a recent 8.9.1 version +of cardano-node. The setup allowed of using a direct access SSD device for performance critical disk I/O, whereas the bulk of ChainDB and ledger snapshots remained on a standard AWS EBS volume.

The benchmarks comprised both optimistic and pessimistic RAM assumptions for the host OS to further optimize I/O via page cache, as well as medium and large UTxO set sizes - the latter almost tripling current mainnet's size. The results were promising; the LMDB backend has proven to be able to accomodate large UTxO sets using significantly less RAM than the default all-in-memory node - and with a more than reasonable trade-off performance-wise. Furthermore, running with pessimistic assumptions, the performance impact on LMDB was very moderate only.

+ + + + \ No newline at end of file diff --git a/2024-05-08-ledger/index.html b/2024-05-08-ledger/index.html new file mode 100644 index 0000000000..9251c412cb --- /dev/null +++ b/2024-05-08-ledger/index.html @@ -0,0 +1,33 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Alexey Kuleshevich

High level summary

Some of the most important and final Conway features were implemented since the last report:

  • Bootstrap phase is fully implemented
  • HardForkInitiaztion governance action will now correctly take us into the next era +that will follow the Conway era.
  • DRep stake distribution now also includes the amount in the reward account and deposits +that were left for the governance proposals.
  • CostModels updates for plutus scripts made more flexible, which will allow us adding +new primitives for all plutus versions starting with the Conway era.

As always, besides new features, we also wrote a lot of testing functionality. We now have +our first and fully functional conformance test for a GOV rule, with a few more in the +works. Many improvements and bugfixes to constraint based generating functionality. Last, +but not least, we did a major and long awaited improvement to our CI setup that makes it +much easier to spot failing tests and deal with potential flakiness.

Low level summary

Conway

  • pull-4275 - Restrict gov actions during bootstrap
  • pull-4253 - Hardfork Initiation into a new era
  • pull-4273 - DRepDistr: Iterate over the DRep delegations in UMap
  • pull-4309 - Add proposal deposits to DRep active voting stake.
  • pull-4284 - Flexible costmodel params
  • pull-4328 - Disable drep thresholds in bootstrap

Testing

  • pull-4295 - Improve generator in ImpTestsState
  • pull-4292 - constrained-generators: add genHint for maps
  • pull-4298 - constrained-generators: utility function for asserting over a reified value
  • pull-4300 - constrained-generators: hotfix of latest derp...
  • pull-4297 - constrained-generators: Fix ifElse dependencies
  • pull-4301 - constrained-generators: Add monitoring capability to get a handle on test case distribution
  • pull-4315 - constrained-generators: Improve error messages and make the tree generator reasonably sized
  • pull-4317 - constrained-generators: Fix bug in reifies
  • pull-4299 - Fix strange CI failure.
  • pull-4285 - Start Conway Imp tests with an initial committee and constitution
  • pull-4303 - Fix test caused by erroneous merge
  • pull-4310 - Fix OMap.assocList
  • pull-4268 - Enable conformance tests for GOV rule

Infrastructure and releasing

  • pull-4276 - Use a separate job for each test suite in GitHub CI
  • pull-4304 - Ensure the CI complete step fails when tests fail
  • pull-4308 - Add a CI status check to prevent merging PRs that contain merges
  • pull-4305 - Use the correct iohk action for installing Haskell in GitHub CI
  • pull-4322 - Bump jinja2 from 3.1.3 to 3.1.4 in /doc
+ + + + \ No newline at end of file diff --git a/2024-05-10-hydra/index.html b/2024-05-10-hydra/index.html new file mode 100644 index 0000000000..edb7523f0a --- /dev/null +++ b/2024-05-10-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Daniel Firth

High-level summary

This week, the Hydra team upgraded the hydra-node networking layer to use a versioned handshake protocol, as well as extensive documentation restructuring and bug fixes to the hydra-tui.

What did the team achieve this week

  • Use versioned hadshake when connecting hydra-nodes.
  • Restructure documentation.
  • Fixed the transaction envelope type parsing in order to be compatible with cardano-cli and update our docs.
  • Show the contestations in the hydra-tui
  • Experiment with removing persistence in the reliability layer and adding custom command to Reset the head state to the last confirmed snapshot

What are the goals of next week

  • Provide aarch64-linux docker images for hydra-node.
  • Release hydra-node 0.17.0
  • Finish new model spec changes related to decommit testing
+ + + + \ No newline at end of file diff --git a/2024-05-10-sre/index.html b/2024-05-10-sre/index.html new file mode 100644 index 0000000000..19edbb4c9a --- /dev/null +++ b/2024-05-10-sre/index.html @@ -0,0 +1,53 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • A preview of the new cardano tracing system is available by using the +profile-cardano-node-new-tracing new nixosModule from cardano-parts and is +complemented with new tracing system dashboards and alerts

  • Custom cardano metrics can be pushed to a statsd server and then scraped to a +monitoring solution using the profile-cardano-custom-metrics new +nixosModule from cardano-parts

  • A new cardano-parts job for spinning up clusters using a recent cardano-cli +command, create-testnet-data, was implemented: .#job-gen-custom-node-config-data

Lower level summary

Cardano-faucet

Cardano-parts

  • Sets cardano-faucet-ng to 8.10, and mithril[-ng] to 2418-1. A preview +nixosModule for cardano-node's new tracing system has been added as well as a +cardano custom-metrics module. Dashboards have been added for the new tracing +system. Cardano-node alerts have been refactored into several rulesets which +include some new alerts as well as new tracing system alerts. A job for +spinning a cardano cluster up using a new underlying cardano-cli mechanism, +create-testnet-data, was added. More detail is available in the PR description: +cardano-parts-pull-40

Cardano-mainnet

  • Sets mithril to 2418-1. Cardano-node alerts have been refactored into +several rulesets which include some new alerts as well as new tracing system +alerts. See the PR description for more details: +cardano-mainnet-pull-14

Cardano-perf

Cardano-playground

  • Sets cardano-faucet-ng to 8.10 which fixes a sanchonet faucet instability, and +mithril[-ng] to 2418-1. Adds a new cardano-node tracing system preview to some +machines with corresponding dashboards. Cardano-node alerts have been +refactored into several rulesets which include some new alerts as well as new +tracing system alerts. A job for spinning a cardano cluster up using a new +underlying cardano-cli mechanism, create-testnet-data, was added and integrated +with the Justfile start-demo recipe. Includes other misc tuning and +improvements. See the PR description for more details: +cardano-playground-pull-23
+ + + + \ No newline at end of file diff --git a/2024-05-13-node-cli-api/index.html b/2024-05-13-node-cli-api/index.html new file mode 100644 index 0000000000..1bc3d30fdb --- /dev/null +++ b/2024-05-13-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2024-04-27 - 2024-05-13

High level summary

Enhancements to the CLI encompass several noteworthy additions. These include the introduction of a new hardfork initiation command, rendering --prev-governance-action-tx-id optional for create-no-confidence actions, addressing scenarios where the committee is defined in the Conway Genesis file, and refining help texts. Additionally, there have been updates to the description fields in governance action files.

Adjust maximum understood protocol version from 9 to 10 when the experimental hardforks flag is enabled. This allows us to bypass Conway's bootstrap phase in testing

Continued work in testing implementation of CIP1694 with cardano-testnet.

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

+ + + + \ No newline at end of file diff --git a/2024-05-15-consensus/index.html b/2024-05-15-consensus/index.html new file mode 100644 index 0000000000..7417d8ce10 --- /dev/null +++ b/2024-05-15-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

  • Released Consensus for Node 8.11 (#1101)
  • Improved the Praos chain order:
    • Restricted VRF tiebreaker based on slot distance (#1047)
    • Small tweak to the issue number tiebreaker (#1086)
  • Wrote overview on the statistics on the leader schedule (#1096)
  • Integrated robustness refinement for concluding that a node is caught up in the context of bootstrap peers (#1031)
  • The P&T team managed to complete the UTXO-HD benchmarks using the LMDB backend and the results are promising.
  • We're working on setting up the Consensus Technical Working Group within Intersect, so if you'd like to participate please reach out to Damian Nadales.
+ + + + \ No newline at end of file diff --git a/2024-05-15-mithril/index.html b/2024-05-15-mithril/index.html new file mode 100644 index 0000000000..b8f5b71626 --- /dev/null +++ b/2024-05-15-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team released the new distribution 2418.1, which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes aimed at preventing memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet. Specifically, they completed the implementation of compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges and initiated testing and assessing performance on mainnet in a test Mithril network. Additionally, they started working on minimizing the extra disk space requirements for the signer on the SPO infrastructure.

Finally, the team implemented some optimizations for the aggregator, fixed some bugs on the client, and introduced new documentation for compiling the Mithril relay from source.

Low level overview

  • Released the new distribution 2418.1
  • Completed the issue Use Block Range Merkle roots to sign Cardano transactions #1634
  • Completed the issue Use Block Range Merkle roots to prove Cardano transactions #1635
  • Completed the issue Deploy Cardano transactions to testing-mainnet #1647
  • Completed the issue Consistent sorting of transactions from GetCardanoTransactionProvider in signer and aggregator #1657
  • Completed the issue Use SQLite transactions when inserting Cardano Transactions and Block Range Roots #1656
  • Completed the issue Implement Ord on SignedEntityTypeDiscriminants #1648
  • Completed the issue Merkle roots don't have fixed size in the block_range_root table #1668
  • Completed the issue Refactor Cardano transactions database layer in persistence for signer and aggregator #1677
  • Completed the issue Some timing tests fail on ARM #1466
  • Completed the issue Add Mithril networks configurations in networks.json #1638
  • Completed the issue Add section for manual setup of squid in SPO guide #1610
  • Worked on the issue Aggregator stress test crashes during signer registration #1676
  • Worked on the issue Prune Cardano transactions stored on signer #1645
  • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
  • Worked on the issue Retrieves Cardano blocks with chainsync in pallas PoC #1590
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
+ + + + \ No newline at end of file diff --git a/2024-05-22-ledger/index.html b/2024-05-22-ledger/index.html new file mode 100644 index 0000000000..1fc092acd3 --- /dev/null +++ b/2024-05-22-ledger/index.html @@ -0,0 +1,32 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

Most of the focus was on the conformance testing this time around. We had completed +conformance tests for CERT and RATIFY rules and progressed on some of the others. This +also resulted in some improvements to the constraint-generators framework. Besides that +we've also fixed Stake Pool Operator stake distribution calculation that is used for +voting by including proposal deposits that are currently locked in the system. One of the +Ledger team members was also performing duties of a release engineer, so we also +facilitated the latest cardano-node-8.11 release.

Low level summary

Features and fixes

  • pull-4324 - Proposal deposits in SPO voting stake
  • pull-4316 - Complete EraScript hierarchy with missing classes
  • pull-4287 - Fix various minor issues in the Shelley & Babbage specs

Testing

  • pull-4320 - CERT conformance
  • pull-4334 - RATIFY conformance
  • pull-4337 - Fix RATIFY conformance
  • pull-4325 - constrained-generators: soundness tests and bugfixes
  • pull-4323 - constrained-generators: clean up interface
  • pull-4336 - constrained-generators: Introduce fromList_ :: (HasSpec fn a, Ord a) =&gt; Term fn [a] -&gt; Term fn (Set a)

Infrastructure and releasing

  • pull-4333 - Fix babbage-test and conway-test versions
  • pull-4332 - Update CHANGELOGs
  • pull-4343 - Bump requests from 2.31.0 to 2.32.0 in /doc
+ + + + \ No newline at end of file diff --git a/2024-05-22-mithril/index.html b/2024-05-22-mithril/index.html new file mode 100644 index 0000000000..9094a76737 --- /dev/null +++ b/2024-05-22-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling proof generation for mainnet by prototyping optimizations and benchmarking performance improvements. They also made progress on low-latency certification by completing the retrieval of the chain tip and importing transactions from the Cardano mini-protocol with Pallas. Additionally, they worked on a new explorer page to display in/out SPOs for the latest Cardano epochs.

Finally, the team upgraded the testing-sanchonet network following the SanchoNet network respin, created a module for building test transactions, and began removing the deprecated snapshot command from the client CLI.

Low level overview

  • Completed the issue Aggregator stress test crashes during signer registration #1676
  • Completed the issue Prune Cardano transactions stored on signer #1645
  • Completed the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
  • Completed the issue Prepare testing-sanchonet for respin with Cardano 8.11-pre #1694
  • Completed the issue MacOS Rust tests are flaky in CI #1556
  • Worked on the issue Prototype optimizations for increasing Cardano transactions proof generation throughput #1687
  • Worked on the issue Retrieve Cardano blocks with chainsync in pallas PoC #1590
  • Worked on the issue Explorer display in/out SPOs in registered signers page #1686
  • Worked on the issue Create a test Cardano transactions builder #1667
  • Worked on the issue Cardano signatures are not produced on testing-sanchonet and testing-mainnet #1681
  • Worked on the issue Remove snapshot command in client CLI #1690
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
+ + + + \ No newline at end of file diff --git a/2024-05-24-performance-and-tracing/index.html b/2024-05-24-performance-and-tracing/index.html new file mode 100644 index 0000000000..2380073746 --- /dev/null +++ b/2024-05-24-performance-and-tracing/index.html @@ -0,0 +1,37 @@ + + + + + +Performance & Tracing Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & Tracing Update

· 4 min read
Michael Karg

High level summary

  • Benchmarking: Node versions 8.9.3 and 8.11.0; new PlutusV3 plus addtional DRep benchmarks; re-evaluation of network latency.
  • Development: BLST workload for PlutusV3 was implemented; improved error/shutdown behaviour for tx-generator is in testing phase.
  • Workbench: UTxO-HD tracer configs harmonized. New plutusv3 profiles supporting experimental budgets. Work on Haskell profile definition is in validation phase.
  • Tracing: New metrics and handle registry feature merged to master. Work on metrics naming ongoing. Factoring out RTView component has begun.

Low level overview

Benchmarking

Runs and analyses of full sets of release benchmarks have been performed for Node versions 8.9.3 and 8.11.0.

For comparison of how the Conway ledger performs when injecting large amounts of DReps and delegations versus one with zero DReps we've run additional configurations with existing workloads from release benchmarking. So far we've found +that the number of DReps in ledger scales well and does not lead to notable performance penalties.

Additionally, we've successfully run the baseline for the upcoming PlutusV3 benchmarks on our Nomad cluster. Those will, given the new V3 cost model, serve to determine headroom, or constraint, regarding resource usage and network metrics when +operating under various execution budgets.

Last not least, with much appreciated support and feedback from the network team, we performed a re-evaluation of the network the latency matrix for our benchmarking cluster. The cluster stretches over three regions globally. Due to unknown changes in the underlying +hardware infrastructure, a slight delay between Europe and Asia/Pacific regions could be measured. We needed to adjust some existing baselines accordingly - otherwise, this delay could be falsely attributed to a software regression.

Development

We have implemented a benchmarking workload using PlutusV3's new BLST internals. As those do little memory allocation, but require more CPU steps, this workload will allow us to focus on that particular aspect of block and transaction budgets.

The tx-generator service will now label each submission thread with its submission target. Additionally, it has been equipped with custom signal handlers. This will improve both how gracefully shutdowns can be performed, and how +precise error reporting is done when losing connection to a submission target. Last not least, the service now supports a configurable KeepAlive timeout for the NodeToNode mini-protocol - accounting for very long major GC pauses on +submission targets under very specific benchmarking workloads. Those features have entered testing phase.

Workbench

Thanks to feedback from the consensus team, we've harmonized tracing configurations for our benchmarks between regular and UTxO-HD node. As the latter is more verbose by default, this is a confounding factor for our metrics: We're analysing north +of 90 traces per second per cluster node, so all node flavours are required to be equally verbose.

The benchmarks based on the BLST workload now additionally support scaling budget components up or down at will. This means we can run a given cost model against custom execution budgets, controlling the point where the workload will exhaust it. This enables comparison +of performance impact of potential changes to those budgets.

Porting our performance workbench's profile definitions to Haskell has been nearly completed, and an adequate test suite been implemented. This new component has now entered validation phase to make sure it correctly replicates all existing profile content.

Tracing

Two new metrics for cardano-node have landed in master - both for new and legacy tracing systems. They provide detailed build info, and indicate wether the node is a block producer or not.

We're now working on closing the gap in the metric naming schema between new and legacy tracing. The aim is to allow for a seamless interchange, without additional configuration required, so that all existing monitoring services can rely on identical metric +names with identical semantics.

Furthermore, work has begun to factor out the RTView ("real-time view") component of cardano-tracer in the new tracing system. Unfortunately, the component has remained in prototype stage for over a year, and has revealed some design shortcomings. It's aim +is to provide an interactive, real-time dashboard based on metrics from all nodes connected to cardano-tracer. The current design has all front-end side code baked into the backend service, requiring to rebuild the entire service in Haskell even for simple changes in the +dashboard. We decided to isolate the component in the current code base, which still allows for optionally enabling it for a build. The long term goal however is to convert it into a downstream service: It will ingest metrics by reforwarding, or querying a REST API, and will provide +a clear separation of frontend facing code. Thus we, and anybody, can use their favourite web technology for visualization of metrics.

+ + + + \ No newline at end of file diff --git a/2024-05-24-sre/index.html b/2024-05-24-sre/index.html new file mode 100644 index 0000000000..8c5840e1f1 --- /dev/null +++ b/2024-05-24-sre/index.html @@ -0,0 +1,52 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Sanchonet was respun for cardano-node 8.11.0-pre

  • Private chain was respun twice for pre-sancho respin testing and short epoch +testing with cardano-node 8.11.0-pre

  • Shelley-qa, two-thirds of preview and one-third of preprod networks were +deployed to cardano-node 8.11.0-pre

  • Sanchonet, private chain and shelley-qa networks had dbsync sancho-4-3-0 +deployed

  • A dbsync show_current_forging prepared statement was added to the +cardano-parts profile-cardano-postgres nixosModule to aid with debugging +chain quality issues

  • Three documents were added to cardano-playground to better explain some +operations procedures: KES rotation, chain quality debugging and new network +creation. Found at: +docs/explain

  • A new mithril dashboard template is available in cardano-parts

Lower level summary

Capkgs:

  • Avoid git API rate limit errors on update github action via netrc usage and +corresponding secret: +capkgs-commit

Cardano-parts

  • Sets cardano-node-ng to 8.11.0-pre and cardano-db-sync-ng to sancho-4-3-0. +Adds a dbsync prepared statement, mithril dashboard template, updates the +node application dashboard template, improves justfile recipe templates and +tunes some systemd dependencies. Iohk-nix-ng was updated for sanchonet and +private chain respins. More detail is available in the PR description: +cardano-parts-pull-41

Cardano-mainnet

  • Rotates KES, pins iogp4 as -ng, adds a mithril dashboard, updates the node +application dashboard, improves justfile recipes and tunes systemd node and +mithril services to avoid some edge case errors. See the PR description for +more details: +cardano-mainnet-pull-15

Cardano-ogmios

Cardano-playground

  • Respins sancho and private chains and deploys cardano-node 8.11.0-pre and +cardano-db-sync sancho-4-3-0 to appropriate envs and machines. Adds a mithril +dashboard template, updates the node application dashboard template, improves +justfile recipe templates. Adds three new explainer readme documents. See the +PR description for more details: +cardano-playground-pull-24
+ + + + \ No newline at end of file diff --git a/2024-05-27-hydra/index.html b/2024-05-27-hydra/index.html new file mode 100644 index 0000000000..0c5003d2c1 --- /dev/null +++ b/2024-05-27-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Daniel Firth

High-level Summary

This sprint, the Hydra team released version 0.17.0 of the hydra-node, containing the new blueprint commit transaction mechanism and upgrades to the networking protocol incorporated over the last several weeks. We also completed several documentation upgrades.

Next sprint, we aim to focus the outstanding increment decommit work, completing the model tests for it as well as investigating adversarial attacks on the smart contract.

What did the team achieve this sprint?

  • Combine blueprint and commit tx metadata #1409
  • Diagnose currently stuck head. #1415
  • Document offline mode #1414
  • Document writing an Event Sink and Source #1413
  • Streaming Plugins #1325
  • Ensure -Werror is running in CI. #1426
  • Release hydra-node-0.17.0

What are the goal of the next sprint?

  • Update to cardano-node 8.11-pre #1439
  • Incremental decommit #1057
  • Make progress on the design for incremental commit #199
  • Reopen a head to test blueprint commits.
  • Test combinations of decrement/close/fanout #1390
+ + + + \ No newline at end of file diff --git a/2024-05-29-consensus/index.html b/2024-05-29-consensus/index.html new file mode 100644 index 0000000000..de215aba59 --- /dev/null +++ b/2024-05-29-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

  • Updated UTXO-HD to use simple diffs which drastically improved the mempool benchmarks (#1114).
  • Helped quickcheck-state-machine to release version 0.10.0 (#48). We rely on this library for our high-assurance property-tests.
  • Rebased UTXO-HD on top of node 8.11 (#1121). A replay with the in-memory backend took 5:05 hours up to slot 124M.
+ + + + \ No newline at end of file diff --git a/2024-05-29-mithril/index.html b/2024-05-29-mithril/index.html new file mode 100644 index 0000000000..221f3497d9 --- /dev/null +++ b/2024-05-29-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team released a new Mithril protocol insights dashboard and a new explorer page displaying active and deregistered SPOs for the latest Cardano epochs. They also continued implementing the certification of Cardano transactions in Mithril networks by improving the throughput of the prover route of the aggregator and making progress on low-latency certification by completing the implementation of a chain block reader from the Cardano mini-protocol with Pallas.

Additionally, the team started working on a new beacon for signing Cardano transactions based on the chain point. Finally, they refactored the persistence library, enhanced their testing tools for Cardano transactions, and fixed a block parsing problem that prevented the signature of Cardano transactions in the test networks.

Low level overview

  • Released the Mithril Protocol Insights Dashboard
  • Completed the issue Prototype optimizations for increasing Cardano transactions proof generation throughput #1687
  • Completed the issue Retrieve Cardano blocks with chainsync in pallas PoC #1590
  • Completed the issue Explorer display in/out SPOs in registered signers page #1686
  • Completed the issue Create a test Cardano transactions builder #1667
  • Completed the issue Cardano signatures are not produced on testing-sanchonet and testing-mainnet #1681
  • Completed the issue Remove snapshot command in client CLI #1690
  • Completed the issue Block Streamer returns ChainScannedBlocks #1704
  • Completed the issue Remove connections coupling with providers in database #1711
  • Worked on the issue Implement Resource Pooling for Block Range Merkle maps #1698
  • Worked on the issue Sign Cardano transactions with ChainPoint based beacon #1697
  • Worked on the issue Import Cardano transactions with ChainReader #1705
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
+ + + + \ No newline at end of file diff --git a/2024-06-05-ledger/index.html b/2024-06-05-ledger/index.html new file mode 100644 index 0000000000..f59941a99d --- /dev/null +++ b/2024-06-05-ledger/index.html @@ -0,0 +1,33 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 3 min read
Alexey Kuleshevich

High level summary

This time around we continued on testing the Conway era and improving our conformance +tests. Thanks to this extensive testing we found and fixed a few more bugs in the Conway +implementation. We fixed bugs related to DRep expiry and the choice of correct threshold for +the committee voting. One important feature that was implemented is ignoring the +minimun committee size during the bootstrap phase, in order to avoid a deadlock situation in +case that enough committeee members were to resign. We've also improved the correctness of +our CDDL specification and improved the safety by restricting some of the types of +protocol parameters.

Low level summary

Conway

  • pull-4350 - Add identity instance for Inject
  • pull-4361 - Fixed a bug in RATIFY
  • pull-4358 - DRep expiry update with number of dormant epochs
  • pull-4365 - Create pool stake distribution query for voting
  • pull-4376 - Ignore ppCommitteeMinSize during bootstrap
  • pull-4364 - DRep state query and related tests
  • pull-4357 - Specify numeric ranges explicitly in conway cddl files

Testing and formal spec

  • pull-4339 - constrained-generators: introduce tools for controlling test case distribution
  • pull-4348 - Conformance: GOVCERT
  • pull-4213 - Utxow Predicate failure tests
  • pull-4351 - Enable retrying flaky tests in nightly CI
  • pull-4345 - constrained-generators: Add explanation :: [String] -&gt; Pred fn -&gt; Pred fn
  • pull-4362 - Threshold translation in conformance testing
  • pull-4369 - constrained-generators: Add flip_ to avoid having to add new native functions
  • pull-4377 - constrained-generators: propagate information backwards in the solver
  • pull-4389 - Fixed issue #4340. Problem with futurePParams not adequate in Conway.
  • pull-4378 - Conformance: POOL
  • pull-4388 - Improved the translation of PParamUpdate in conformance
  • pull-4355 - Fix order of arguments to verifyVrf

Infrastructure and releasing

  • pull-4352 - Remove dependency on deprecated ansi-wl-print package
  • pull-4344 - constrained-generators: identify and fix an issue with big bodies to ifElse
  • pull-4338 - Add conformance testing for ENACT
  • pull-4354 - Added conformance test for DELEG
  • pull-4367 - Fixed 8.10 not building
  • pull-4368 - Ensure GitHub CI fails when tests are skipped due to a build failure
  • pull-4373 - Add -rtsopts to all test suites
+ + + + \ No newline at end of file diff --git a/2024-06-05-mithril/index.html b/2024-06-05-mithril/index.html new file mode 100644 index 0000000000..1a1009d63f --- /dev/null +++ b/2024-06-05-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They improved the throughput of the prover route of the aggregator by using resource pooling and made progress on low-latency certification by transitioning to a chain point-based beacon, which allows for faster transaction signing. They also kept investigating prover performance bottlenecks, worked on fixing a bug that caused unsigned transactions to appear as signed, and continued implementing the import of transactions with the ChainSync mini-protocol and Pallas.

Additionally, the team started preparing the threat modeling explainer for the documentation website and kept investigating some Cardano node error messages that could be caused by how the Pallas client handles connections to mini-protocols.

Low level overview

  • Completed the issue Implement Resource Pooling for Block Range Merkle maps #1698
  • Completed the issue Sign Cardano transactions with ChainPoint based beacon #1697
  • Completed the issue Cardano transactions prover performances drop with more than 5 transactions #1722
  • Worked on the issue Import Cardano transactions with ChainReader #1705
  • Worked on the issue Client verification fails with an already stored but non certified yet transaction #1719
  • Worked on the issue Computation of Merkle proof has bottleneck with multiple transactions #1730
  • Worked on the issue Threat modeling and risk analysis #1350
  • Worked on the issue Release 2423 distribution #1695
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
+ + + + \ No newline at end of file diff --git a/2024-06-05-node-cli-api/index.html b/2024-06-05-node-cli-api/index.html new file mode 100644 index 0000000000..ed160abfc5 --- /dev/null +++ b/2024-06-05-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Node API & CLI Team Update

· 2 min read
Carlos LopezDeLara

2024-05-13 - 2024-06-05

High level summary

CARDANO NODE

  • In order to avoid an accidental hardfork, when "ConwayGenesisFile" is not set in the node configuration file, by default the node can only understand protocol version 8 (Babbage era).

CARDANO CLI

  • query protocol-parameters now shows Conway era protocol parameters when in Conway.
  • transaction view now shows proposales and votes inside a transaction body.
  • Release of cardano-cli 8.23.1.0
  • We now publish pre-compiled binaries of each release together with the corresponding SHA256Sum.

CARDANO-API

  • Release of 8.46.0.0

Details

cardano-cli

cardano-api

  • Release cardano-api-8.46.0.0
    • Updated cardano-ledger, ouroboros-consensus and plutus packages.
    • Added FailT dependency.
    • Updated conwayGenesisDefaults and alonzoGenesisDefaults.
    • Changed CostModel to use Int64 instead of Integer.
    • Fixed ProtocolParameters golden test to account for the Integer -> Int64 change in the CostModel. (breaking, test) PR 523

cardano-node

cardano-testnet

+ + + + \ No newline at end of file diff --git a/2024-06-10-hydra/index.html b/2024-06-10-hydra/index.html new file mode 100644 index 0000000000..57a9e23590 --- /dev/null +++ b/2024-06-10-hydra/index.html @@ -0,0 +1,26 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Daniel Firth

High-level Summary

This sprint, the Hydra team updated the node to be compatible with cardano-node 8.11-pre. We continued work on increment decommits, investigating adversarial attacks on the smart contract and preparing it to be merged. We also discussed options for the incremental commit work, including designs for a hydra-ledger.

Next sprint we aim to merge incremental decommits and make further progress on the incremental commit design.

What did the team achieve this sprint?

  • Update to cardano-node 8.11-pre #1439
  • Allow committing internal wallet utxos #1442
  • Rewrite introduction section and fknown issues section. #1451
  • Make specification editing in markdown possible #1187
  • Fix ignored hydra-plutus tests #1458
  • Re-open internal head with blueprint commits.

What are the goals of the next sprint?

  • Incremental decommit #1057
  • Make progress on the design for incremental commit #199
  • Test combinations of decrement/close/fanout #1390
+ + + + \ No newline at end of file diff --git a/2024-06-12-mithril/index.html b/2024-06-12-mithril/index.html new file mode 100644 index 0000000000..3c9d412bb8 --- /dev/null +++ b/2024-06-12-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team released the new distribution 2423.0, which includes the removal of the snaphot command of the client CLI, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks and improved the throughput of the prover route of the aggregator by fixing some bottlenecks in the Merkle proof computation. Additionally, the team made progress on low-latency certification by working on the retrieval of the transactions with the chain sync mini-protocol and Pallas, as well as the handling of rollbacks of the chain.

Finally, they kept working on the threat modeling explainer for the documentation website and provided support for multiple TLS implementations in the client library thanks to a community contribution.

Low level overview

  • Released the new distribution 2423.0
  • Publication of a dev blog post about the removed Mithril client CLI 'snapshot' command
  • Completed the issue Client verification fails with an already stored but non certified yet transaction #1719
  • Completed the issue Computation of Merkle proof has bottleneck with multiple transactions #1730
  • Completed the issue Automatic rollback on SQL transactions #1741
  • Completed the issue Allow the underlying TLS implementation to be selectable when using a library. #1737
  • Completed the issue Release 2423 distribution #1695
  • Completed the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
  • Worked on the issue Handle rollbacks in Cardano transactions #1724
  • Worked on the issue Pooled resources should be reset when given back #1743
  • Worked on the issue Threat modeling and risk analysis #1350
  • Worked on the issue Import Cardano transactions with ChainReader #1705
+ + + + \ No newline at end of file diff --git a/2024-06-19-ledger/index.html b/2024-06-19-ledger/index.html new file mode 100644 index 0000000000..3cb6131b05 --- /dev/null +++ b/2024-06-19-ledger/index.html @@ -0,0 +1,33 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

Major milestone was reached this period. We've implemented +CIP-0069 that improves +PlutusV3 functionality by making spending datums optional and enforcing all scripts to +have exactly one argument. This feature allows for spending scripts to be usable for other +purposes, like minting for example.

Couple of important bugs have been fixed:

  • Script execution for certificates with the same plutus script did not execute correctly.
  • Prevent delegation to a non-existent pool.

With this feature complete and a few bug fixes we were also able to mark Conway era and +CIP-1694 as feature +complete and ready for release. Naturally, testing of Conway era will continue all the way +into the hard fork.

Low level summary

Conway

  • pull-4374 - CIP-0069
  • pull-4394 - Fix Certifying Redeemer issue
  • pull-4400 - Check that the pool being delegated to exists for ConwayDelegCert
  • pull-4409 - Update to plutus-ledger-api-1.30

Testing

  • pull-4384 - Re-enabled Full NewEpochstate test
  • pull-4397 - Add a lens to HasSubState
  • pull-4399 - New simple examples for maps
  • pull-4403 - constrained-generators: Add lookup_ for maps
  • pull-4414 - constrained-generators: Hotfix failing test
  • pull-4411 - constrained-generators: introduce a hook for naming variables

Infrastructure and releasing

  • pull-4424 - GHA: Downgrade the version of actions/upload-artifact
  • pull-4426 - Take care of all compiler warnings for GHC-9.8
  • pull-4407 - Change the default ghc version to 9.6.5
  • pull-4416 - Bump urllib3 from 1.26.18 to 1.26.19 in /doc
+ + + + \ No newline at end of file diff --git a/2024-06-19-mithril/index.html b/2024-06-19-mithril/index.html new file mode 100644 index 0000000000..97aad2a0d3 --- /dev/null +++ b/2024-06-19-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They implemented a warmup strategy for the signer and aggregator to begin importing transactions as early as possible, thus minimizing the impact of network activation on certification. They also significantly improved the throughput of the prover route of the aggregator by addressing database access bottlenecks. Additionally, the team made progress on low-latency certification by completing the handling of chain rollbacks and nearly completing the retrieval of transactions using the chain sync mini-protocol and Pallas.

Finally, they made final modifications to the threat modeling explainer for the documentation website, which will be released shortly, and worked on a bug that occurs when parsing some blocks of the SanchoNet network.

Low level overview

  • Completed the issue Handle rollbacks in Cardano transactions #1724
  • Completed the issue Pooled resources should be reset when given back #1743
  • Completed the issue Lock signature of signed entity types during warm-up #1693
  • Completed the issue Warmup import Cardano transactions at node startup #1692
  • Completed the issue Build, test and package arm64 binaries in CI #1751
  • Worked on the issue Threat modeling and risk analysis #1350
  • Worked on the issue Import Cardano transactions with ChainReader #1705
  • Worked on the issue Import Cardano transactions by sequences of block ranges #1766
  • Worked on the issue Implement database connection pooling for Cardano transaction repository #1760
  • Worked on the issue Cardano signatures are not produced on testing-sanchonet #1750
+ + + + \ No newline at end of file diff --git a/2024-06-25-performance-and-tracing/index.html b/2024-06-25-performance-and-tracing/index.html new file mode 100644 index 0000000000..dd61e511f7 --- /dev/null +++ b/2024-06-25-performance-and-tracing/index.html @@ -0,0 +1,35 @@ + + + + + +Performance & Tracing Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Performance & Tracing Update

· 4 min read
Michael Karg

High level summary

  • Benchmarking: Release benchmarks for Node 8.12.0; DRep benchmarks with 100k DReps.
  • Development: Merged a performance fix on 8.11; kicked off development of governance action workload.
  • Workbench: Adjusted automations to latest 8.12 Conway features and Plutus cost model; implementation of CIP-69 and CIP-117 for our tooling is in validation phase.
  • Tracing: Work on metrics naming ongoing. Factoring out RTView component is completed and has entered testing.
  • IOI Tech Meetup: Our team contributed two presentations at the meetup in Zurich; worked on community report of UTxO scaling benchmarks.

Low level overview

Benchmarking

We've run and analyzed a full set of release benchmarks for Node versions 8.12.0. In comparison with the latest mainnet release 8.9.3, we could not observe any regressions. In fact, 8.12.0 was able to deliver equal network +performance at a slightly reduced resource cost - both for CPU and memory.

Another benchmark of the Conway ledger with large amounts of DReps has been performed. This time, 100000 DReps were chosen - this amount aims to simulate a scenario where lots of self-delegation takes place. While a performance +impact is observable in this instance, we can still see that the number of DReps scales well overall, and poses no concern for network peformance.

Development

We have contributed and merged a performance fix on 8.11 which adresses a regressing metric in the forging loop. The regression was only observable under specific conditions. Benchmarks on 8.12 +have already confirmed the fix to be successful.

We've kicked off governance action workloads for benchmarking. This will be an entirely new workload type for Conway era, targeting performance measurements of its decentralized decision making process. The workload will feature +registering proposals, acting as multiple DReps to vote on active proposals, vote tallying and proposal enactment. We're very grateful for the Ledger team's helpful support so far in creating a workload design for benchmarking - one that evenly stresses +the network over extended periods of time.

Workbench

The workbench automations have been upgraded to handle Node 8.12 and the corresponding integrations of Cardano API and CLI.

Furthermore, we've updated to the latest PlutusV3 costmodel in our benchmarks - as well as implemented CIP-69 and CIP-117 for all our PlutusV3 benchmarking scripts, pending validation by the Plutus team.

Tracing

The work on aligning of metrics naming and semantics of new and legacy tracing is ongoing. Additionally, we're adding a handful of metrics to the new tracing system which currently exist in legacy tracing only.

Factoring out the RTView ("real-time view") component of cardano-tracer in the new tracing system has finished. This includes a considerable refactoring of cardano-tracer's codebase, so that we're currently running test on the new codebase. Isolating +RTView is due to its being in prototype stage for too long, and the design decisions taken. In the short term, this will make several package dependencies optional, which have become troublesome for CI, as well as making cardano-tracer more lightweight. +RTView remains as an opt-in.

IOI Tech Meetup

Our entire team traveled to Zurich, Switzerland to attend ZuriHac'24 and the IOI Tech Meetup. It was fantastic to meet everyone in person, and we all had an amazing and very productive time. A big Thank You to everyone involved in making that happen, and making it a success.

We contributed two presentations for the meetup: a thourough introduction of the new tracing system aimed at developers - as it's not tailored exclusively to cardano-node, but can be used in other (Haskell) services as well. And secondly, +an overview over the benchmarking framework based on Quantitative Timeliness Agreements which we're building - as well as a show-and-tell of our prototype, implementing part of said framework. We're grateful for the great interest and feedback from all +the participants.

Last not least, we worked on creating a community report of the UTxO scaling benchmarks performed during March and April - to be released soon.

+ + + + \ No newline at end of file diff --git a/2024-06-26-consensus/index.html b/2024-06-26-consensus/index.html new file mode 100644 index 0000000000..27518e5ca5 --- /dev/null +++ b/2024-06-26-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

  • Supported debugging activities related to bootstrap nodes.
  • Merged various improvements to the db-X tools; in particular, db-truncater (which is used regularly by community members on sanchonet) got much faster.
+ + + + \ No newline at end of file diff --git a/2024-06-26-mithril/index.html b/2024-06-26-mithril/index.html new file mode 100644 index 0000000000..181ebf6e1d --- /dev/null +++ b/2024-06-26-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team released the threat modeling explainer for the documentation website. They also continued implementing the certification of Cardano transactions in Mithril networks and the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas. Additionally, the team started redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

Finally, they fixed a bug that prevented the verification of the transactions included in the last certified block and improved the WASM client's documentation.

Low level overview

  • Completed the issue Threat modeling and risk analysis #1350
  • Completed the issue Implement database connection pooling for Cardano transaction repository #1760
  • Completed the issue Import Cardano transactions by sequences of block ranges #1766
  • Completed the issue Limit Cardano transactions prover input #1757
  • Completed the issue Transactions of the block number in the artifact are never certified by the prover #1762
  • Completed the issue Add missing pre-requisite to build WASM client #1753
  • Worked on the issue Import Cardano transactions with ChainReader #1705
  • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
  • Worked on the issue Optimize Cardano transaction prover performances with parallelization #1756
  • Worked on the issue Cardano signatures are not produced on testing-sanchonet #1750
  • Worked on the issue Lint Markdown/JavaScript files in repository #1754
+ + + + \ No newline at end of file diff --git a/2024-07-03-ledger/index.html b/2024-07-03-ledger/index.html new file mode 100644 index 0000000000..56127da5e9 --- /dev/null +++ b/2024-07-03-ledger/index.html @@ -0,0 +1,31 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Ledger Team Update

· 2 min read
Alexey Kuleshevich

High level summary

This period we added some last minute changes that were necessary for improving resilience +and safety of Conway implementation:

  • Authorization of hot credentials for constitutional committee members is now only possible +for cold credentials that are present in the ledger state, either in the current committee +or in one of the proposals.
  • Voting is restricted to entities that are present in the ledger state
  • DRep votes will be removed whenever DRep unregisters
  • Pricing model for the size of reference scripts was changed from linear to +exponential. Moreover, extra limits on the total size of reference scripts being used +have been put in place.

Low level summary

Conway

  • pull-4430 - CostModel json parsing
  • pull-4438 - Fix UTXOW era in diagrams for Conway
  • pull-4443 - Make reference scripts fee grow exponentially with size
  • pull-4436 - Authorize known cc members only
  • pull-4433 - Improve resilience of future PParams
  • pull-4453 - Tx refscript size check
  • pull-4452 - Prevent votes for non existent entities
  • pull-4450 - BBODY refscript size check

Testing

  • pull-4417 - constrained-generators: use consistent warning pragma
  • pull-4431 - constrained-generators: fix flakyness in set generator
  • pull-4312 - Convert AlonzoValidTxUTXOW to ImpTest (Part 1)
  • pull-4386 - Increase the size of the committee for testing
  • pull-4425 - Conformance test plumbing: EPOCH
  • pull-4442 - Update executable-spec SRP
  • pull-4405 - Add more scripts to alonzo utxosspec
  • pull-4445 - Conformance tests plumbing: NEWEPOCH
  • pull-4460 - Remove unnecessary allocation in non-integral reference code
  • pull-4457 - Conformance: POOL: Translate and adjust

Infrastructure and releasing

+ + + + \ No newline at end of file diff --git a/2024-07-03-mithril/index.html b/2024-07-03-mithril/index.html new file mode 100644 index 0000000000..c2be2ce9ae --- /dev/null +++ b/2024-07-03-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They completed the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas and worked on fixing some bugs occurring during the warmup phase of the signer and aggregator. They also worked on supporting the new Cardano node version 8.12 and kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

Finally, the team fixed a bug that prevented the parsing of some blocks in the SanchoNet network and made some optimizations on the databases of the signer and aggregator.

Low level overview

  • Completed the issue Import Cardano transactions with ChainReader #1705
  • Completed the issue Cardano signatures are not produced on testing-sanchonet #1750
  • Completed the issue SQLite WAL files are not truncated in signer and aggregator #1707
  • Completed the issue Conditional embedding of Cardano CLI in Docker images #1725
  • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
  • Worked on the issue Optimize Cardano transaction prover performances with parallelization #1756
  • Worked on the issue Upgrade Cardano node 8.12.2 #1787
  • Worked on the issue Aggregator/Signer preload transactions when Cardano transactions certification is not activated #1782
  • Worked on the issue Cardano transaction importer does not import the last block advertised as certified #1785
  • Worked on the issue Lint Markdown/JavaScript files in repository #1754
+ + + + \ No newline at end of file diff --git a/2024-07-05-sre/index.html b/2024-07-05-sre/index.html new file mode 100644 index 0000000000..2db1024c41 --- /dev/null +++ b/2024-07-05-sre/index.html @@ -0,0 +1,68 @@ + + + + + +SRE Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

SRE Team Update

· 3 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-node 9.0.0 is now deployed to mainnet, preprod, preview, private and +shelley-qa environments. The last several weeks have been very busy with +pre-release and release activity and environment upgrades involving +cardano-node versions 8.9.3, 8.9.4, 8.12.0-pre, 8.12.1, 8.12.2 and +now 9.0.0 as of this update.

  • Sanchonet environment remains pinned at cardano-node version 8.11.0-pre until +the next respin which will support 9.0.0 or greater.

  • Ogmios service and package options were added to cardano-parts.

  • Four documents were added to cardano-playground to better explain some +operational procedures: debugging of peer-to-peer connections; governance +voting with the playground stakepools; faucet setup; faucet pool +de-delegation. Found at: +docs/explain

  • One document was added to cardano-mainnet to explain cardano-snapshot +operations. Found at: +docs/explain

  • Private chain was stopped and re-spun with 2 hr epochs for testing.

  • Hydra and performance cluster machines had their configuration updated to be +more robust to transient nix store caches outages which may re-occur in the +future.

  • All machines in cardano-playground and cardano-mainnet clusters were updated +to nixpkgs 24.05.

Lower level summary

Cardano-mainnet

  • Sets cardano-node to 8.12.2 as well as usage of a custom gc delay parameter +branch for bootstrap nodes. Updates all machines to nixpkgs to 24.05 with +openssh 9.8p1. Adds one new explainer readme document, new alerts and various +script, recipe, and other improvements. See the PR description for more +details: +cardano-mainnet-pull-16

Cardano-ops

  • Bumps to cardano-node 9.0.0, adds coredump metrics, adds OOM/coredump +alerting, adjusts systemd stop timeout to avoid some unneccesary chain +replays: +cardano-ops-compare

Cardano-parts

  • Sets cardano-node (release) and cardano-node-ng (pre-release) versions to +8.12.2 and cardano-db-sync-ng to sancho-5-0-0. Updates nixpkgs to +24.05. Includes nixosModule, dashboard, metric, alert and recipe +improvements and new features. More detail is available in the PR +description: +cardano-parts-pull-43

Cardano-perf

  • Adjusts nix config to avoid R2 500 errors on transient cache problems and +adds explorer to perf class: +cardano-perf-compare

Cardano-playground

  • Sets cardano-node (release) and cardano-node-ng (pre-release) versions to +8.12.2 and cardano-db-sync-ng to sancho-5-0-0. Updates all machines to +nixpkgs to 24.05 with openssh 9.8p1. Respins private chain and KES +rotates multiple chains. Adds four new explainer readme documents, new alerts +and various script, recipe, and other improvements. See the PR description +for more details: +cardano-playground-pull-27

Iohk-nix

Ops-lib

  • Updates deployers with recent nixpkgs, nix, refactors to preserve legacy +nixops usage, adds starship and fzf: +ops-lib-pull-134

  • Bumps openssh to 9.8p1 +ops-lib-pull-135

+ + + + \ No newline at end of file diff --git a/2024-07-08-network/index.html b/2024-07-08-network/index.html new file mode 100644 index 0000000000..7c75513558 --- /dev/null +++ b/2024-07-08-network/index.html @@ -0,0 +1,34 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Network Team Update

· 2 min read
Marcin Szamotulski

High-level overview of sprint 65

Karl Knutsson (CF) fixed a bug which prevented a node using bootstrap peers +to sync using them, for a more detailed description see ouroboros-network#4899.

Earlier this year we fixed bugs in IOSimPOR which prevent us from using it in +ouroboros-network (io-sim#153, io-sim#159); since +ouroboros-network#4872 was merged we have a large number of tests that are +using IOSimPOR's schedule exploration. In the last sprint we fixed +some bugs discovered by IOSimPOR in ouroboros-network:

We continued working on new tx-submission logic: ouroboros-network#3311 as +well as on Genesis. The work on Genesis is split in a few PRs which are +currently in review process:

  • Big Ledger Peer Targets for Genesis - ouroboros-network#4832
  • Feed peer selection governor with big ledger peers obtained from a snapshot - ouroboros-network#4850
  • Introduction of serialization instances in support of ledger peer snapshot - ouroboros-network#4851
  • Verification of big ledger peer snapshot file - [ouroboros-network#4888]

High-level overview of sprint 64

Karl Knutsson (CF) modified peer sharing behaviour to not share peers whith +which connections failed, see ouroboros-network#4883 for more details.

We fixed inbound governor counters tracer, see ouroboros-network#4885.

+ + + + \ No newline at end of file diff --git a/2024-07-10-consensus/index.html b/2024-07-10-consensus/index.html new file mode 100644 index 0000000000..c339d6c632 --- /dev/null +++ b/2024-07-10-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Consensus Team Update

· One min read
Damian Nadales

High level summary

  • Assisted with Node release 9.0:
    • Performed security audits, engaged with other teams, implemented improvements, and released Consensus packages.
  • We are now running additional NoThunks tests, which help us safeguard against memory leaks in the node.
  • Reviewed Milestone 13 of Genesis, which improves the code documentation of Genesis, and implements some fixes and optimizations.
+ + + + \ No newline at end of file diff --git a/2024-07-10-mithril/index.html b/2024-07-10-mithril/index.html new file mode 100644 index 0000000000..5c7f3c79aa --- /dev/null +++ b/2024-07-10-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team worked on supporting Cardano node version 9.0.0 and started working on a new Mithril distribution. They also continued implementing the certification of Cardano transactions in Mithril networks. They fixed some bugs blocking the REST API during transactions import, causing resource exhaustion on the aggregator Cardano node, and creating some exceptions in the explorer. They also kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

Finally, the team worked on enhancing the artifact production in the aggregator to avoid blocking the certification and finalized enforcing the linting of all the files in the repository with the CI.

Low level overview

  • Completed the issue Upgrade Cardano node 9.0.0 #1787
  • Completed the issue Aggregator/Signer preload transactions when Cardano transactions certification is not activated #1782
  • Completed the issue Explorer does not handle invalid transaction hashes #1784
  • Completed the issue Cardano transactions import blocks aggregator and signer #1797
  • Completed the issue Resource exhausted on Cardano node socket #1803
  • Completed the issue Certificate pending route overwhelms the Cardano node in aggregator #1804
  • Completed the issue Optimize Cardano transaction prover performances with parallelization #1756
  • Completed the issue Lint Markdown/JavaScript files in repository #1754
  • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
  • Worked on the issue Release 2428 distribution #1810
  • Worked on the issue Non blocking artifact production in aggregator #1792
  • Worked on the issue Cardano transaction importer does not import the last block advertised as certified #1785
+ + + + \ No newline at end of file diff --git a/2024-07-17-hydra/index.html b/2024-07-17-hydra/index.html new file mode 100644 index 0000000000..bb180a7588 --- /dev/null +++ b/2024-07-17-hydra/index.html @@ -0,0 +1,33 @@ + + + + + +Hydra Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Hydra Team Update

· One min read
Noon van der Silk

High-level summary

This week, the Hydra team made significant progress on incremental decommits +by closing the last gaps and cleaning up the specification. They collected +scenarios and prepared for incremental commits, updated dependencies for +compatibility with cardano-node 9.0.0, and continued tidying up documentation. +Work continued on an easy spin-up of the getting-started demo via +process-compose. Additionally, the team onboarded a new contributor and held +an early design meeting about payment channels and Blockfrost. They also +refined the SDK wallet idea.

What did the team achieve?

  • Incremental decommit progress: closed last gaps, cleanup specification #1483
  • Collected scenarios and preparing for incremental commit #1484
  • Updated dependencies, compatibility cardano-node 9.0.0 #1481
  • Continued documentation tidyups
  • WIP easy spin-up of the getting-started demo via process-compose #1503
  • Onboarded new contributor
  • Early design meeting about payment channels and Blockfrost #1305
  • SDK wallet idea refinement #1509

What's next?

  • Merge and release incremental decommit
  • Continued work on incremental commit
  • Support Hydra demo at Rare Evo
  • Have a Head open on preview to see it working through the upcoming hard fork
+ + + + \ No newline at end of file diff --git a/2024-07-17-mithril/index.html b/2024-07-17-mithril/index.html new file mode 100644 index 0000000000..3f0fede73f --- /dev/null +++ b/2024-07-17-mithril/index.html @@ -0,0 +1,26 @@ + + + + + +Mithril Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team released the new distribution 2428.0, which includes support for Cardano node version 9.0.0, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks by calibrating the signature parameters for mainnet, fixing a bug preventing the signature of the last block advertised as certified, optimizing a part of the artifact production that was blocking the certification, and starting removing the code reading transactions from the immutable files.

Finally, the team started working on the certification of the Cardano stake distribution and continued redacting a CIP for the diffusion of Mithril signatures through the Cardano network.

Low level overview

  • Released the new distribution 2428.0
  • Completed the issue Release 2428 distribution #1810
  • Completed the issue Calibrate Cardano transaction signature parameters #1814
  • Completed the issue Non blocking artifact production in aggregator #1792
  • Completed the issue Cardano transaction importer does not import the last block advertised as certified #1785
  • Completed the issue A recorded but non certified Cardano transaction creates an error in prover #1819
  • Completed the issue Signer make test command fails #1816
  • Completed the issue Document Prometheus metrics and Grafana Dahsboard for signer #1834
  • Completed the issue Explorer keeps previous Cardano transaction error #1818
  • Worked on the issue Implement signable and artifacts builders for Cardano Stake Distribution #1832
  • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
  • Worked on the issue Cleanup Immutable File in Cardano transaction #1825
  • Worked on the issue Upgrade testing-sanchonet for respin with Cardano 9.0.0 #1822
+ + + + \ No newline at end of file diff --git a/404.html b/404.html new file mode 100644 index 0000000000..deeb8aa3c7 --- /dev/null +++ b/404.html @@ -0,0 +1,26 @@ + + + + + +Page Not Found | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + + + \ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 0000000000..17cdd622fe --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +updates.cardano.intersectmbo.org \ No newline at end of file diff --git a/archive/index.html b/archive/index.html new file mode 100644 index 0000000000..5521e24097 --- /dev/null +++ b/archive/index.html @@ -0,0 +1,26 @@ + + + + + +Archive | Cardano Development Updates + + + + + + + + + + + + + + +
+
Skip to main content

Archive

Archive

2022

2023

2024

+ + + + \ No newline at end of file diff --git a/assets/css/styles.1b2b551c.css b/assets/css/styles.1b2b551c.css new file mode 100644 index 0000000000..f7a74aae29 --- /dev/null +++ b/assets/css/styles.1b2b551c.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2e8555;--ifm-color-primary-dark:#29784c;--ifm-color-primary-darker:#277148;--ifm-color-primary-darkest:#205d3b;--ifm-color-primary-light:#33925d;--ifm-color-primary-lighter:#359962;--ifm-color-primary-lightest:#3cad6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area.breadcrumbs__link[href]:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.sidebar_re4s,.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.docsWrapper_BCFX,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-duration:.25s;transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-duration:.1s;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.sidebarItemTitle_pO2u,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#25c2a0;--ifm-color-primary-dark:#21af90;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#29d5b0;--ifm-color-primary-lighter:#32d8b4;--ifm-color-primary-lightest:#4fddbf;--docusaurus-highlighted-code-line-bg:#0000004d}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#docusaurus-base-url-issue-banner-container,.collapseSidebarButton_PEFL,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{flex:1 0 auto}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_re4s{position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity .2s ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:.15s;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.blogPostFooterDetailsFull_mRVl{flex-direction:column}.tableOfContents_bqdL{position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.breadcrumbHomeIcon_OVgt{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg);position:sticky}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;max-height:100vh;padding-top:var(--ifm-navbar-height);position:sticky;top:0;transition:opacity 50ms;width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{height:0;opacity:0;overflow:hidden;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;max-height:100vh;top:0;transition:background-color var(--ifm-transition-fast) ease}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/files/2022-11-24-UCL-60c46564c5dee25b0060304c060ab1cf.pdf b/assets/files/2022-11-24-UCL-60c46564c5dee25b0060304c060ab1cf.pdf new file mode 100644 index 0000000000..724ed4392d Binary files /dev/null and b/assets/files/2022-11-24-UCL-60c46564c5dee25b0060304c060ab1cf.pdf differ diff --git a/assets/files/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.plutus-f38724e73290c55323955558c17f2590.pdf b/assets/files/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.plutus-f38724e73290c55323955558c17f2590.pdf new file mode 100644 index 0000000000..b290993bd4 Binary files /dev/null and b/assets/files/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.plutus-f38724e73290c55323955558c17f2590.pdf differ diff --git a/assets/files/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.value-only-fdb343a09234cd47578ec1ec47c4610e.pdf b/assets/files/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.value-only-fdb343a09234cd47578ec1ec47c4610e.pdf new file mode 100644 index 0000000000..f5ed53ffbc Binary files /dev/null and b/assets/files/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.value-only-fdb343a09234cd47578ec1ec47c4610e.pdf differ diff --git a/assets/files/release-8.12.1.plutus-bcf8b8e638f9a7d18710f76fc89e33da.pdf b/assets/files/release-8.12.1.plutus-bcf8b8e638f9a7d18710f76fc89e33da.pdf new file mode 100644 index 0000000000..a0a6c01d8a Binary files /dev/null and b/assets/files/release-8.12.1.plutus-bcf8b8e638f9a7d18710f76fc89e33da.pdf differ diff --git a/assets/files/release-8.12.1.value-only-d18eaee4dbf2ffb1c471c1b82e7ba499.pdf b/assets/files/release-8.12.1.value-only-d18eaee4dbf2ffb1c471c1b82e7ba499.pdf new file mode 100644 index 0000000000..5215973f99 Binary files /dev/null and b/assets/files/release-8.12.1.value-only-d18eaee4dbf2ffb1c471c1b82e7ba499.pdf differ diff --git a/assets/files/release-8.9.0.plutus-2153f07c96f823ebea49f0bd3ed93e44.pdf b/assets/files/release-8.9.0.plutus-2153f07c96f823ebea49f0bd3ed93e44.pdf new file mode 100644 index 0000000000..9863d1944d Binary files /dev/null and b/assets/files/release-8.9.0.plutus-2153f07c96f823ebea49f0bd3ed93e44.pdf differ diff --git a/assets/files/release-8.9.0.value-only-acff1460799d3a362997dc37816d39dd.pdf b/assets/files/release-8.9.0.value-only-acff1460799d3a362997dc37816d39dd.pdf new file mode 100644 index 0000000000..1838dd106a Binary files /dev/null and b/assets/files/release-8.9.0.value-only-acff1460799d3a362997dc37816d39dd.pdf differ diff --git a/assets/files/release-8.9.1.plutus-d9187a701bca584d89b3560f59a5e472.pdf b/assets/files/release-8.9.1.plutus-d9187a701bca584d89b3560f59a5e472.pdf new file mode 100644 index 0000000000..4457775094 Binary files /dev/null and b/assets/files/release-8.9.1.plutus-d9187a701bca584d89b3560f59a5e472.pdf differ diff --git a/assets/files/release-8.9.1.value-only-16f821f38b547d88c701881f741afffb.pdf b/assets/files/release-8.9.1.value-only-16f821f38b547d88c701881f741afffb.pdf new file mode 100644 index 0000000000..f87a7f9ae5 Binary files /dev/null and b/assets/files/release-8.9.1.value-only-16f821f38b547d88c701881f741afffb.pdf differ diff --git a/assets/files/release-8.9.3.plutus-afc8f7bbf2f6f18fb56aede6169fff68.pdf b/assets/files/release-8.9.3.plutus-afc8f7bbf2f6f18fb56aede6169fff68.pdf new file mode 100644 index 0000000000..9b8deb95e7 Binary files /dev/null and b/assets/files/release-8.9.3.plutus-afc8f7bbf2f6f18fb56aede6169fff68.pdf differ diff --git a/assets/files/release-8.9.3.value-only-f08f2a51ca31fad16e2cb3e3ad28ee42.pdf b/assets/files/release-8.9.3.value-only-f08f2a51ca31fad16e2cb3e3ad28ee42.pdf new file mode 100644 index 0000000000..c2bb812d90 Binary files /dev/null and b/assets/files/release-8.9.3.value-only-f08f2a51ca31fad16e2cb3e3ad28ee42.pdf differ diff --git a/assets/files/release-9.0.0.plutus-8385e89a67774584329c93e59dcfe545.pdf b/assets/files/release-9.0.0.plutus-8385e89a67774584329c93e59dcfe545.pdf new file mode 100644 index 0000000000..fa5b6e07c4 Binary files /dev/null and b/assets/files/release-9.0.0.plutus-8385e89a67774584329c93e59dcfe545.pdf differ diff --git a/assets/files/release-9.0.0.value-only-8ef8064d6bb04de733985e12e9a9e5ea.pdf b/assets/files/release-9.0.0.value-only-8ef8064d6bb04de733985e12e9a9e5ea.pdf new file mode 100644 index 0000000000..92b129249b Binary files /dev/null and b/assets/files/release-9.0.0.value-only-8ef8064d6bb04de733985e12e9a9e5ea.pdf differ diff --git a/assets/images/2022-11-02-csj-vs-baseline-9fd0e0e080975cc6cfbe035731b4f38d.svg b/assets/images/2022-11-02-csj-vs-baseline-9fd0e0e080975cc6cfbe035731b4f38d.svg new file mode 100644 index 0000000000..8c8eeb6606 --- /dev/null +++ b/assets/images/2022-11-02-csj-vs-baseline-9fd0e0e080975cc6cfbe035731b4f38d.svg @@ -0,0 +1,2277 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.5.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/2022-11-02-csj-vs-baseline-sliced-77ff018af70191b4122b1e7cf56c79b8.svg b/assets/images/2022-11-02-csj-vs-baseline-sliced-77ff018af70191b4122b1e7cf56c79b8.svg new file mode 100644 index 0000000000..e75d1eaf09 --- /dev/null +++ b/assets/images/2022-11-02-csj-vs-baseline-sliced-77ff018af70191b4122b1e7cf56c79b8.svg @@ -0,0 +1,2041 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.5.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/2022-11-11-noticed-headers-55bb0b4d41e8f0cff0066e1bec91bdd2.png b/assets/images/2022-11-11-noticed-headers-55bb0b4d41e8f0cff0066e1bec91bdd2.png new file mode 100644 index 0000000000..98f661897e Binary files /dev/null and b/assets/images/2022-11-11-noticed-headers-55bb0b4d41e8f0cff0066e1bec91bdd2.png differ diff --git a/assets/images/2022-11-16-comparing-TICKF-batch-c6570a71c4a5d53b10cb7309d2cc742c.png b/assets/images/2022-11-16-comparing-TICKF-batch-c6570a71c4a5d53b10cb7309d2cc742c.png new file mode 100644 index 0000000000..15e1c6e0b0 Binary files /dev/null and b/assets/images/2022-11-16-comparing-TICKF-batch-c6570a71c4a5d53b10cb7309d2cc742c.png differ diff --git a/assets/images/2022-11-16-removed-stuttering-e49aa27a0e549f0195373203da971ba7.png b/assets/images/2022-11-16-removed-stuttering-e49aa27a0e549f0195373203da971ba7.png new file mode 100644 index 0000000000..606656fac3 Binary files /dev/null and b/assets/images/2022-11-16-removed-stuttering-e49aa27a0e549f0195373203da971ba7.png differ diff --git a/assets/images/2022-12-14-ledger-ops-benchmark-c46be3db45ff5480ed104e0d520711a6.png b/assets/images/2022-12-14-ledger-ops-benchmark-c46be3db45ff5480ed104e0d520711a6.png new file mode 100644 index 0000000000..69a3758ff5 Binary files /dev/null and b/assets/images/2022-12-14-ledger-ops-benchmark-c46be3db45ff5480ed104e0d520711a6.png differ diff --git a/assets/images/2023-01-11-utxo-hd-replay-benchmarks-dcf6daaf5460de7591a60db1457d2e58.png b/assets/images/2023-01-11-utxo-hd-replay-benchmarks-dcf6daaf5460de7591a60db1457d2e58.png new file mode 100644 index 0000000000..906827f577 Binary files /dev/null and b/assets/images/2023-01-11-utxo-hd-replay-benchmarks-dcf6daaf5460de7591a60db1457d2e58.png differ diff --git a/assets/images/2023-01-25-consensus-utxo-hd-read-and-flush-benchmarks-6b129a1acaa4bb48443ee81add51fd39.png b/assets/images/2023-01-25-consensus-utxo-hd-read-and-flush-benchmarks-6b129a1acaa4bb48443ee81add51fd39.png new file mode 100644 index 0000000000..2e9cbe7de3 Binary files /dev/null and b/assets/images/2023-01-25-consensus-utxo-hd-read-and-flush-benchmarks-6b129a1acaa4bb48443ee81add51fd39.png differ diff --git a/assets/images/2023-07-06-p2p-progress-194a909569eebb016b1f24fb8941e2cc.png b/assets/images/2023-07-06-p2p-progress-194a909569eebb016b1f24fb8941e2cc.png new file mode 100644 index 0000000000..59cde79f6a Binary files /dev/null and b/assets/images/2023-07-06-p2p-progress-194a909569eebb016b1f24fb8941e2cc.png differ diff --git a/assets/images/2023-08-31-p2p-relays-8e5be189ad8437375c5067026c003556.png b/assets/images/2023-08-31-p2p-relays-8e5be189ad8437375c5067026c003556.png new file mode 100644 index 0000000000..7298d24bed Binary files /dev/null and b/assets/images/2023-08-31-p2p-relays-8e5be189ad8437375c5067026c003556.png differ diff --git a/assets/images/2023-08-31-relay-versions-0a8d445e1b0f3a793ccdd94f4aacd421.png b/assets/images/2023-08-31-relay-versions-0a8d445e1b0f3a793ccdd94f4aacd421.png new file mode 100644 index 0000000000..a9721ebe81 Binary files /dev/null and b/assets/images/2023-08-31-relay-versions-0a8d445e1b0f3a793ccdd94f4aacd421.png differ diff --git a/assets/images/2023-09-14-p2p-relays-1b3da3da7ec3915f63ca8668bd38aff9.png b/assets/images/2023-09-14-p2p-relays-1b3da3da7ec3915f63ca8668bd38aff9.png new file mode 100644 index 0000000000..8960e26e7e Binary files /dev/null and b/assets/images/2023-09-14-p2p-relays-1b3da3da7ec3915f63ca8668bd38aff9.png differ diff --git a/assets/images/2023-09-14-relay-versions-a689a96e93e12ee1c78dfe14229f0ea9.png b/assets/images/2023-09-14-relay-versions-a689a96e93e12ee1c78dfe14229f0ea9.png new file mode 100644 index 0000000000..b611d86543 Binary files /dev/null and b/assets/images/2023-09-14-relay-versions-a689a96e93e12ee1c78dfe14229f0ea9.png differ diff --git a/assets/images/2023-10-04-p2p-relays-75c2baf57ea9346a40f0098b2abb4a99.png b/assets/images/2023-10-04-p2p-relays-75c2baf57ea9346a40f0098b2abb4a99.png new file mode 100644 index 0000000000..76b781b81d Binary files /dev/null and b/assets/images/2023-10-04-p2p-relays-75c2baf57ea9346a40f0098b2abb4a99.png differ diff --git a/assets/images/2023-10-04-relay-versions-5168d3ed0ad365a18e86263fcccffd23.png b/assets/images/2023-10-04-relay-versions-5168d3ed0ad365a18e86263fcccffd23.png new file mode 100644 index 0000000000..afcec84876 Binary files /dev/null and b/assets/images/2023-10-04-relay-versions-5168d3ed0ad365a18e86263fcccffd23.png differ diff --git a/assets/images/2023-Q2-beacon-graph-ded65e814bfe6d927faa1c5c66bbbfad.png b/assets/images/2023-Q2-beacon-graph-ded65e814bfe6d927faa1c5c66bbbfad.png new file mode 100644 index 0000000000..32c77ec19f Binary files /dev/null and b/assets/images/2023-Q2-beacon-graph-ded65e814bfe6d927faa1c5c66bbbfad.png differ diff --git a/assets/images/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks-74f9d76c2602f09652f584cc4d6a0962.png b/assets/images/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks-74f9d76c2602f09652f584cc4d6a0962.png new file mode 100644 index 0000000000..75c58abe23 Binary files /dev/null and b/assets/images/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks-74f9d76c2602f09652f584cc4d6a0962.png differ diff --git a/assets/images/2024-04-15-active-peers-1048a75d3033f9e32ea51c0b817e0cd1.png b/assets/images/2024-04-15-active-peers-1048a75d3033f9e32ea51c0b817e0cd1.png new file mode 100644 index 0000000000..24a283ecba Binary files /dev/null and b/assets/images/2024-04-15-active-peers-1048a75d3033f9e32ea51c0b817e0cd1.png differ diff --git a/assets/images/2024-04-15-churn-d816c6f07c8e3ee8d28de78989e2ed65.png b/assets/images/2024-04-15-churn-d816c6f07c8e3ee8d28de78989e2ed65.png new file mode 100644 index 0000000000..4a9adb715f Binary files /dev/null and b/assets/images/2024-04-15-churn-d816c6f07c8e3ee8d28de78989e2ed65.png differ diff --git a/assets/images/2024-04-15-established-peers-fbb9abf021fc68a884b86b8b3fd415d4.png b/assets/images/2024-04-15-established-peers-fbb9abf021fc68a884b86b8b3fd415d4.png new file mode 100644 index 0000000000..fd0445844e Binary files /dev/null and b/assets/images/2024-04-15-established-peers-fbb9abf021fc68a884b86b8b3fd415d4.png differ diff --git a/assets/images/2024-04-15-known-peers-f59994b77d7964be1157d0ed55b21261.png b/assets/images/2024-04-15-known-peers-f59994b77d7964be1157d0ed55b21261.png new file mode 100644 index 0000000000..493a9f3747 Binary files /dev/null and b/assets/images/2024-04-15-known-peers-f59994b77d7964be1157d0ed55b21261.png differ diff --git a/assets/images/doc-adoption-cd944582f02809777c58be53e13453c5.png b/assets/images/doc-adoption-cd944582f02809777c58be53e13453c5.png new file mode 100644 index 0000000000..fe32333d9f Binary files /dev/null and b/assets/images/doc-adoption-cd944582f02809777c58be53e13453c5.png differ diff --git a/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png b/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png new file mode 100644 index 0000000000..97e4164618 Binary files /dev/null and b/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png differ diff --git a/assets/images/happy-path-csj-prototype-bench-1-2c33ba45f44a086415e703fe8f0f7ad1.svg b/assets/images/happy-path-csj-prototype-bench-1-2c33ba45f44a086415e703fe8f0f7ad1.svg new file mode 100644 index 0000000000..71262d6b9f --- /dev/null +++ b/assets/images/happy-path-csj-prototype-bench-1-2c33ba45f44a086415e703fe8f0f7ad1.svg @@ -0,0 +1,1812 @@ + + + + + + + + 2022-10-05T14:01:43.231609 + image/svg+xml + + + Matplotlib v3.5.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/happy-path-csj-prototype-bench-2-e23d2986ddef0a187df9ce336b2db116.svg b/assets/images/happy-path-csj-prototype-bench-2-e23d2986ddef0a187df9ce336b2db116.svg new file mode 100644 index 0000000000..bdfae76e61 --- /dev/null +++ b/assets/images/happy-path-csj-prototype-bench-2-e23d2986ddef0a187df9ce336b2db116.svg @@ -0,0 +1,1888 @@ + + + + + + + + 2022-10-19T12:30:35.894508 + image/svg+xml + + + Matplotlib v3.5.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/happy-path-csj-prototype-prelim-5bbe2e2a20a2740e6238a7c73e618168.svg b/assets/images/happy-path-csj-prototype-prelim-5bbe2e2a20a2740e6238a7c73e618168.svg new file mode 100644 index 0000000000..a35a5935f8 --- /dev/null +++ b/assets/images/happy-path-csj-prototype-prelim-5bbe2e2a20a2740e6238a7c73e618168.svg @@ -0,0 +1,1424 @@ + + + + + + + + 2022-09-21T14:18:47.635974 + image/svg+xml + + + Matplotlib v3.5.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png b/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png new file mode 100644 index 0000000000..e257edc1f9 Binary files /dev/null and b/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png differ diff --git a/assets/js/0048047b.e5b31236.js b/assets/js/0048047b.e5b31236.js new file mode 100644 index 0000000000..0acb6ee04e --- /dev/null +++ b/assets/js/0048047b.e5b31236.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[38518],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function o(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),u=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(p.Provider,{value:e},t.children)},d="mdxType",h={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},m=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,o=t.originalType,p=t.parentName,c=i(t,["components","mdxType","originalType","parentName"]),d=u(a),m=r,s=d["".concat(p,".").concat(m)]||d[m]||h[m]||o;return a?n.createElement(s,l(l({ref:e},c),{},{components:a})):n.createElement(s,l({ref:e},c))}));function s(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var p in e)hasOwnProperty.call(e,p)&&(i[p]=e[p]);i.originalType=t,i[d]="string"==typeof t?t:r,l[1]=i;for(var u=2;u{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-12-28-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2022-12-28-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-28-node-cli-api.md",source:"@site/blog/2022-12-28-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2022-12-28T00:00:00.000Z",formattedDate:"December 28, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.325,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-12-28-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-01-05-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2022-12-16-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"CI & project mainteance",id:"ci--project-mainteance",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3},{value:"cardano-testnet",id:"cardano-testnet-1",level:3}],c={toc:u},d="wrapper";function h(t){let{components:e,...a}=t;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2022-12-28---2023-01-10"},"2022-12-28 - 2023-01-10"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4762"},"Fix hedgehog-extras sha hash")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4759"},"Update hegehog-extras bounds")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4751"},"GitHub token fix")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4743"},"Use setup-haskell action")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4738"},"Use Github Action to install libsecp256k1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4714"},"Update index state and hedgehog-extras.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4710"},"Cleaned cabal files")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4737"},"Add cache versioning")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4742"},"Delete obsolete scripts")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4746"},"Use SECURITY.md published in Cardano Engineering Handbook"))),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4749"},"Filter out duplicate collateral inputs in tx build cmds")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4754"},"Optimise query stake-snapshot command"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h2",{id:"ci--project-mainteance"},"CI & project mainteance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4755"},"Copyright updates"))),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4761"},"Fix bug in hash computation in cardano-cli genesis create-cardano")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4636"},"Cleanup exports of cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4659"},"Render consistent plutus script failure output")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4666"},"Read network ID from environment")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4647"},"CLI option to append additional signatures to a transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"Cardano ping")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4777"},"Better error message for query utxo on oops"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4763"},"Remove simple script distinction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4753"},"Export SubmitResult from Cardano.Api"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))),(0,r.kt)("h3",{id:"cardano-testnet-1"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4845"},"Use Haskell variables for passing values"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/007e4c05.12fcc797.js b/assets/js/007e4c05.12fcc797.js new file mode 100644 index 0000000000..032c80a0a4 --- /dev/null +++ b/assets/js/007e4c05.12fcc797.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73800],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=u(a),h=r,s=d["".concat(p,".").concat(h)]||d[h]||m[h]||i;return a?n.createElement(s,l(l({ref:t},c),{},{components:a})):n.createElement(s,l({ref:t},c))}));function s(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=h;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[d]="string"==typeof e?e:r,l[1]=o;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-07-18-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",o={permalink:"/2023-07-18-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-18-node-cli-api.md",source:"@site/blog/2023-07-18-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-07-18T00:00:00.000Z",formattedDate:"July 18, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.065,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-07-18-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-07-20-goedel"},nextItem:{title:"Hydra Team Update",permalink:"/2023-07-14-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-07-05---2023-07-18"},"2023-07-05 - 2023-07-18"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Integrate Conway certificates in cardano-api"),(0,r.kt)("li",{parentName:"ul"},"Prepare cardano-cli and cardano-api for cardano-node 8.1.2"),(0,r.kt)("li",{parentName:"ul"},"Tagged cardano-cli 8.3.0.0",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Query for the hash of the constitution (Conway)"),(0,r.kt)("li",{parentName:"ul"},"Ability to create votes and governance actions"))),(0,r.kt)("li",{parentName:"ul"},"Tagged cardano-cli 8.3.1.0",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Make it build with ghc-9.6"))),(0,r.kt)("li",{parentName:"ul"},"Upgrade to optparse-applicative-fork-0.18.1.0 for parsing command line options")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/74"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"optparse-applicative-fork-0.18.1.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/72"},"Integrate cardano-api changes for fixed Show and Eq instances for Proposal type")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/68"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli-8.3.1.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/67"},"Add alonzo era to ",(0,r.kt)("inlineCode",{parentName:"a"},"Parser AnyShelleyBasedEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/66"},"Use ",(0,r.kt)("inlineCode",{parentName:"a"},"sbe")," variable name for the type is ",(0,r.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/65"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli-8.3.0.0")))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/123"},"Fix ghc version CPP")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/122"},"Add a HasTypeProxy constraint to getVerificationKey")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/119"},"Incorporate remaining ledger certificates")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/117"},"Release cardano-api 8.8.1.0, cardano-api-gen 8.1.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/115"},"Fix Eq, Show for Proposal type")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/112"},"Wire up remaining governance actions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/108"},"Export ",(0,r.kt)("inlineCode",{parentName:"a"},"withShelleyBasedEraConstraintsForLedger"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/106"},"Remove unnecessary constraint")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/104"},"Make it build with ghc-9.6")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/103"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"shelleyBasedEraConstraints")," function")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/102"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.8.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/101"},"Add CastVerificationKeyRole StakePoolKey StakeKey instance")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/99"},"Update ledger and consensus")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/98"},"Rename ",(0,r.kt)("inlineCode",{parentName:"a"},"era")," to ",(0,r.kt)("inlineCode",{parentName:"a"},"sbe")," when type is ",(0,r.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra")))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5391"},"Fix Shutdown test for new exit codes"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5387"},"Fix markdown links"))),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/69"},"Apply ",(0,r.kt)("inlineCode",{parentName:"a"},"stylish-haskell")," to project"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/00ae3d77.927cde2c.js b/assets/js/00ae3d77.927cde2c.js new file mode 100644 index 0000000000..283651f6b4 --- /dev/null +++ b/assets/js/00ae3d77.927cde2c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24216],{42533:a=>{a.exports=JSON.parse('{"label":"crypto","permalink":"/tags/crypto","allTagsPath":"/tags","count":18}')}}]); \ No newline at end of file diff --git a/assets/js/011c86a6.b56afe76.js b/assets/js/011c86a6.b56afe76.js new file mode 100644 index 0000000000..baa52935ac --- /dev/null +++ b/assets/js/011c86a6.b56afe76.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94507],{43452:a=>{a.exports=JSON.parse('{"title":"Tutorial - Extras","slug":"/category/tutorial---extras","permalink":"/docs/category/tutorial---extras","navigation":{"previous":{"title":"Congratulations!","permalink":"/docs/tutorial-basics/congratulations"},"next":{"title":"Manage Docs Versions","permalink":"/docs/tutorial-extras/manage-docs-versions"}}}')}}]); \ No newline at end of file diff --git a/assets/js/012b1d34.4f13a527.js b/assets/js/012b1d34.4f13a527.js new file mode 100644 index 0000000000..6439056de3 --- /dev/null +++ b/assets/js/012b1d34.4f13a527.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70160],{3905:(t,e,a)=>{a.d(e,{Zo:()=>h,kt:()=>d});var r=a(67294);function n(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,r)}return a}function l(t){for(var e=1;e=0||(n[a]=t[a]);return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(n[a]=t[a])}return n}var p=r.createContext({}),u=function(t){var e=r.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},h=function(t){var e=u(t.components);return r.createElement(p.Provider,{value:e},t.children)},c="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},s=r.forwardRef((function(t,e){var a=t.components,n=t.mdxType,i=t.originalType,p=t.parentName,h=o(t,["components","mdxType","originalType","parentName"]),c=u(a),s=n,d=c["".concat(p,".").concat(s)]||c[s]||m[s]||i;return a?r.createElement(d,l(l({ref:e},h),{},{components:a})):r.createElement(d,l({ref:e},h))}));function d(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var i=a.length,l=new Array(i);l[0]=s;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[c]="string"==typeof t?t:n,l[1]=o;for(var u=2;u{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-05-27-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2024-05-27-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-27-hydra.md",source:"@site/blog/2024-05-27-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-05-27T00:00:00.000Z",formattedDate:"May 27, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.8,hasTruncateMarker:!1,authors:[{name:"Daniel Firth",title:"Hydra Software Engineer",url:"https://github.com/locallycompact",imageURL:"https://github.com/locallycompact.png",key:"locallycompact"}],frontMatter:{title:"Hydra Team Update",slug:"2024-05-27-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-05-29-mithril"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-05-24-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this sprint?",id:"what-did-the-team-achieve-this-sprint",level:3},{value:"What are the goal of the next sprint?",id:"what-are-the-goal-of-the-next-sprint",level:3}],h={toc:u},c="wrapper";function m(t){let{components:e,...a}=t;return(0,n.kt)(c,(0,r.Z)({},h,a,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This sprint, the Hydra team released version 0.17.0 of the hydra-node, containing the new blueprint commit transaction mechanism and upgrades to the networking protocol incorporated over the last several weeks. We also completed several documentation upgrades."),(0,n.kt)("p",null,"Next sprint, we aim to focus the outstanding increment decommit work, completing the model tests for it as well as investigating adversarial attacks on the smart contract."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-sprint"},"What did the team achieve this sprint?"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Combine blueprint and commit tx metadata ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1409"},"#1409")),(0,n.kt)("li",{parentName:"ul"},"Diagnose currently stuck head. ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1415"},"#1415")),(0,n.kt)("li",{parentName:"ul"},"Document offline mode ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1414"},"#1414")),(0,n.kt)("li",{parentName:"ul"},"Document writing an Event Sink and Source ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1413"},"#1413")),(0,n.kt)("li",{parentName:"ul"},"Streaming Plugins ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1325"},"#1325")),(0,n.kt)("li",{parentName:"ul"},"Ensure -Werror is running in CI. ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1426"},"#1426")),(0,n.kt)("li",{parentName:"ul"},"Release ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/blob/0.17.0/CHANGELOG.md"},"hydra-node-0.17.0"))),(0,n.kt)("h3",{id:"what-are-the-goal-of-the-next-sprint"},"What are the goal of the next sprint?"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update to cardano-node 8.11-pre ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1439"},"#1439")),(0,n.kt)("li",{parentName:"ul"},"Incremental decommit ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1057"},"#1057")),(0,n.kt)("li",{parentName:"ul"},"Make progress on the design for incremental commit ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/199"},"#199")),(0,n.kt)("li",{parentName:"ul"},"Reopen a head to test blueprint commits."),(0,n.kt)("li",{parentName:"ul"},"Test combinations of decrement/close/fanout ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1390"},"#1390"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/013c921c.e07fe431.js b/assets/js/013c921c.e07fe431.js new file mode 100644 index 0000000000..87d8adce8e --- /dev/null +++ b/assets/js/013c921c.e07fe431.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28098],{77081:e=>{e.exports=JSON.parse('{"permalink":"/tags/crypto/page/2","page":2,"postsPerPage":5,"totalPages":4,"totalCount":18,"previousPage":"/tags/crypto","nextPage":"/tags/crypto/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/015be621.34adb8a0.js b/assets/js/015be621.34adb8a0.js new file mode 100644 index 0000000000..2b2682ef0c --- /dev/null +++ b/assets/js/015be621.34adb8a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80613],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),m=p(n),h=r,d=m["".concat(l,".").concat(h)]||m[h]||c[h]||o;return n?a.createElement(d,i(i({ref:t},u),{},{components:n})):a.createElement(d,i({ref:t},u))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[m]="string"==typeof e?e:r,i[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2022-09-20-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i="Executive summary",s={permalink:"/2022-09-20-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-20-consensus.md",source:"@site/blog/2022-09-20-consensus.md",title:"Consensus Team Update",description:"- We proposed a fix for the performance degradation observed when running",date:"2022-09-20T00:00:00.000Z",formattedDate:"September 20, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:3.895,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-09-20-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2022-09-27-network"},nextItem:{title:"DB Sync Team Update",permalink:"/2022-09-19-db-sync"}},l={authorsImageUrls:[void 0]},p=[{value:"UTxO HD",id:"utxo-hd",level:2},{value:"Genesis",id:"genesis",level:2},{value:"Technical debt",id:"technical-debt",level:2}],u={toc:p},m="wrapper";function c(e){let{components:t,...o}=e;return(0,r.kt)(m,(0,a.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We proposed a fix for the performance degradation observed when running\ndistributed multi-node benchmarks in the UTxO HD feature branch. While this\nfixed the problems observed when running local benchmarks, it broke the\n",(0,r.kt)("inlineCode",{parentName:"li"},"ThreadNet")," tests due to concurrency issues. Therefore, we think it is wise to\nstart redesigning the UTxO HD mempool integration."),(0,r.kt)("li",{parentName:"ul"},"We did several rounds of code review on the alternative implementation of\ndiff-sequences required by the UTxO HD feature based on the idea of\nanti-diffs. This alternative implementation is close to being merged, and the\nnext step is to integrate this to the UTxO HD branch, so that we can run\nad-hoc replaying and syncing from scratch benchmarks and compare these with\nthe baseline. The micro-benchmarks we elaborated for the alternative\nimplementation show speedups of up to 4x, so we are optimistic about the\nperformance of replaying and syncing from scratch benchmarks, however it is\nimportant to notice that ",(0,r.kt)("em",{parentName:"li"},"due to the nature of UTxO HD")," we will still be\nslower than the baseline."),(0,r.kt)("li",{parentName:"ul"},"The final draft of the Genesis implementation specification is ready for\nreview."),(0,r.kt)("li",{parentName:"ul"},"We implemented a prototype for the happy path of Genesis' ChainSync Jumping\n(CSJ). The prototype is slower than the baseline, however it is not the latest\nversion of the prototype and the jump interval is very small."),(0,r.kt)("li",{parentName:"ul"},"Work on integrating Conway has ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3971#issuecomment-1252524031"},"stopped")," since\npriorities have changed."),(0,r.kt)("li",{parentName:"ul"},"We started work on benchmarking epoch-boundaries and epoch overhead\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4014"},"pr-4014"),". To this end, we made use of a modified version of our\n",(0,r.kt)("inlineCode",{parentName:"li"},"db-analyser")," tool. We ran the new benchmarking setup using the Cardano\nmainnet chain, and we can see that block tick and application take\nsubstantially longer at epoch boundaries, although there are a couple of slots\nduring an epoch in which these computations take more than normal. We notified\nthe ledger team about these findings. We will use this modified version of\n",(0,r.kt)("inlineCode",{parentName:"li"},"db-analyser")," to investigate the epoch overhead.")),(0,r.kt)("h1",{id:"workstreams"},"Workstreams"),(0,r.kt)("h2",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Spent quite some time investigating the root cause of the degradation in\nperformance observed in the benchmarks. We run the ",(0,r.kt)("inlineCode",{parentName:"p"},"make forge-stress"),"\nbenchmarks locally in order to debug this behavior."),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Transaction batching doesn't make a notable difference in the outcome\n(considering we are using the in-memory backend).")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The mempool batching implementation required asynchronous transaction\nvalidation which is a violation of the ",(0,r.kt)("inlineCode",{parentName:"p"},"LocalTxSubmission")," protocol\ncontract and therefore if we continued on that route, the impact would\nhave been quite big.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The STM logic we implemented by using a ",(0,r.kt)("inlineCode",{parentName:"p"},"TMVar")," for the mempool internal\nstate was buggy and under certain circumstances it seemed to lock.\nReverting the mempool internal state to be stored in a ",(0,r.kt)("inlineCode",{parentName:"p"},"TVar")," seems to\nsolve this problem.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The results we get after this change look almost identical to the ones\nfrom the baseline.")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3997"},"The anti-diff prototype (PR\n#3997)")," has\nbeen reviewed and is close to being merged."),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"A follow-up issue (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4010"},"issue\n#4010"),")\nto integrate the anti-diff prototype in the various ",(0,r.kt)("inlineCode",{parentName:"li"},"consensus"),' packages\nwas created. A first version of the integration exists, and all tests\npass. A next step is to get some indication of the "real" performance gain\nby profiling ',(0,r.kt)("inlineCode",{parentName:"li"},"db-analyser")," (or ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-node"),").")))),(0,r.kt)("h2",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Final draft of the Genesis implementation specification, now up for review.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Local benchmark setup for parameter tuning via the happy path ChainSync\nJumping (CSJ) prototype (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3987"},"Issue 3987"),")."),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Context: Our Genesis design requires us to check in with a large (~20)\nnumber of servers periodically while syncing. These servers are offered\njump requests via the ChainSync protocol (hence the name), which they can\naccept or decline. If a peer declines, the Genesis rule allows us to\ndetermine whether a node actually has a better chain.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'The "happy path" is when no peer declines a jump. We want this to have\nclose to no overhead compared to status quo, i.e. syncing without Genesis.')),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a prototype for this happy path, and are now starting to\ntest in various configurations (number of peers, latency, bandwidth) to\ntune the performance of ChainSync jumping, i.e. how complicated our logic\nof choosing when to jump needs to be."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"Example:"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Simulated connection: 50 MBit/s, 50ms latency")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Jump interval: 3000 slots (on the low end, could be increased to up to\n",(0,r.kt)("inlineCode",{parentName:"p"},"3k/f"),")")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Red: baseline (1.35.3), one peer in topology file")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Blue: Preliminary version of our prototype, with 10 peers."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{src:n(88213).Z,width:"654",height:"459"})),(0,r.kt)("p",{parentName:"li"},"It is slower by about ~30%, but it is not the latest version of the\nprototype, and the jump interval is very small, making CSJ more of a\nbottleneck."))))),(0,r.kt)("h2",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Fix flakiness in ChainDB QSM tests (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3990"},"PR 3990"),").")))}c.isMDXComponent=!0},88213:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/happy-path-csj-prototype-prelim-5bbe2e2a20a2740e6238a7c73e618168.svg"}}]); \ No newline at end of file diff --git a/assets/js/017cd6b7.37598484.js b/assets/js/017cd6b7.37598484.js new file mode 100644 index 0000000000..92ca24fa03 --- /dev/null +++ b/assets/js/017cd6b7.37598484.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3649],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),h=p(a),c=n,m=h["".concat(s,".").concat(c)]||h[c]||u[c]||i;return a?r.createElement(m,o(o({ref:t},d),{},{components:a})):r.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2022-11-18-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-11-18-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-18-hydra.md",source:"@site/blog/2022-11-18-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2022-11-18T00:00:00.000Z",formattedDate:"November 18, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.085,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-11-18-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-11-23-ledger"},nextItem:{title:"Mithril Team Update",permalink:"/2022-11-18-mithril"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:p},h="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team released version ",(0,n.kt)("inlineCode",{parentName:"p"},"0.8.1"),", which includes several fixes and a user-wished extension of the persistence introduced by ",(0,n.kt)("inlineCode",{parentName:"p"},"0.8.0")," of replaying server outputs to make clients like the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-tui")," be aware of the latest ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-poc")," to ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra"},(0,n.kt)("inlineCode",{parentName:"a"},"hydra")),"!"),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implemented replaying of server outputs to address ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/580"},"#580")),(0,n.kt)("li",{parentName:"ul"},"Released version 0.8.1 containing this and other fixes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.8.1"},"Release notes")),(0,n.kt)("li",{parentName:"ul"},"Worked on the bounded tx validity as one of the on-chain script fixes, but couldn","\u2019","t finish it just yet ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/615"},"#615")),(0,n.kt)("li",{parentName:"ul"},"Collaborated with the education team on a Hydra tutorial."),(0,n.kt)("li",{parentName:"ul"},"Discovered and discussed issues with the ","\u201c","seen ledger","\u201d","."),(0,n.kt)("li",{parentName:"ul"},"Renamed the Hydra repository ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-poc")," -> ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Create and discuss an ADR about handling tx validity correctly."),(0,n.kt)("li",{parentName:"ul"},"Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: ",(0,n.kt)("strong",{parentName:"li"},'"Developing Hydra" on Day 2, Nov 21st, 13:50 CET')),(0,n.kt)("li",{parentName:"ul"},"Have a team workshop / hackathon after the summit:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Retrospective"),(0,n.kt)("li",{parentName:"ul"},"Roadmapping session"),(0,n.kt)("li",{parentName:"ul"},"Hack on something complex or useful")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/019bb279.725868f2.js b/assets/js/019bb279.725868f2.js new file mode 100644 index 0000000000..a55dc21b26 --- /dev/null +++ b/assets/js/019bb279.725868f2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[83167],{3905:(t,e,a)=>{a.d(e,{Zo:()=>u,kt:()=>N});var n=a(67294);function l(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function i(t){for(var e=1;e=0||(l[a]=t[a]);return l}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(l[a]=t[a])}return l}var m=n.createContext({}),o=function(t){var e=n.useContext(m),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},u=function(t){var e=o(t.components);return n.createElement(m.Provider,{value:e},t.children)},s="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},k=n.forwardRef((function(t,e){var a=t.components,l=t.mdxType,r=t.originalType,m=t.parentName,u=p(t,["components","mdxType","originalType","parentName"]),s=o(a),k=l,N=s["".concat(m,".").concat(k)]||s[k]||d[k]||r;return a?n.createElement(N,i(i({ref:e},u),{},{components:a})):n.createElement(N,i({ref:e},u))}));function N(t,e){var a=arguments,l=e&&e.mdxType;if("string"==typeof t||l){var r=a.length,i=new Array(r);i[0]=k;var p={};for(var m in e)hasOwnProperty.call(e,m)&&(p[m]=e[m]);p.originalType=t,p[s]="string"==typeof t?t:l,i[1]=p;for(var o=2;o{a.r(e),a.d(e,{assets:()=>m,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>p,toc:()=>o});var n=a(87462),l=(a(67294),a(3905));const r={title:"Consensus Team Update",slug:"2022-08-31-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2022-08-31-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-08-31-consensus.md",source:"@site/blog/2022-08-31-consensus.md",title:"Consensus Team Update",description:"Executive summary",date:"2022-08-31T00:00:00.000Z",formattedDate:"August 31, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:8.925,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-08-31-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-09-01-ledger"},nextItem:{title:"Network Team Update",permalink:"/2022-08-12-network"}},m={authorsImageUrls:[void 0]},o=[{value:"Executive summary",id:"executive-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Conway",id:"conway",level:3},{value:"UTxO HD",id:"utxo-hd",level:3},{value:"Only small rollbacks",id:"only-small-rollbacks",level:4},{value:"Genesis",id:"genesis",level:3},{value:"Technical debt",id:"technical-debt",level:3}],u={toc:o},s="wrapper";function d(t){let{components:e,...a}=t;return(0,l.kt)(s,(0,n.Z)({},u,a,{components:e,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"executive-summary"},"Executive summary"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"We did most of the heavy lifting required to integrate the Conway era."),(0,l.kt)("li",{parentName:"ul"},"We have property tests for the UTxO HD backing store API implementations. A\npossible bug was identified. Work is ongoing to make sure the property-tests\ncover all the relevant cases."),(0,l.kt)("li",{parentName:"ul"},'We implemented and benchmarked the "anti-diff" prototype to speed up the UTxO\nHD functionality. Results show a rough speedup of ',(0,l.kt)("inlineCode",{parentName:"li"},"4x")," to ",(0,l.kt)("inlineCode",{parentName:"li"},"5.5x")," across\nseveral scenarios. Note that: ",(0,l.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/tasty-bench-0.3.2/docs/Test-Tasty-Bench.html"},'"Data reported by ',(0,l.kt)("inlineCode",{parentName:"a"},"tasty-bench"),' is only of\nindicative and comparative significance."'),'.\nWe are investigating additional performance improvements. The "anti-diff"\nprototype and benchmarks are still pending code review.'),(0,l.kt)("li",{parentName:"ul"},"We elaborated a draft specification for the Genesis implementation and\n",(0,l.kt)("inlineCode",{parentName:"li"},"ChainSync")," jumping optimization.")),(0,l.kt)("h2",{id:"workstreams"},"Workstreams"),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Integration PR of the minimal Conway era (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3962"},"Issue #3963"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3971"},"PR\n#3971"),")."),(0,l.kt)("li",{parentName:"ul"},"Discussions with Ledger revealed possible sources of confusion about which\ndata should be changed in the Conway era. As a result, a new technical debt\nissue was raised, which does not block the integration of the Conway era\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3976"},"Issue #3976"),").")),(0,l.kt)("h3",{id:"utxo-hd"},"UTxO HD"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},(0,l.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3954"},"Issue #3954"),", ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/tree/jdral/3954-backingstore-property-tests"},"branch"),": The functionality of a\nbacking store, which is the interface to the on-disk part of ledger state in\nUTxO-HD, is tested at a high level through the ",(0,l.kt)("inlineCode",{parentName:"p"},"OnDisk")," tests. However, some\nfunctionalities remain untested, e.g., reads of ranges of keys. As such, we\nhave implemented ",(0,l.kt)("inlineCode",{parentName:"p"},"quickcheck-state-machine")," tests that exercise backing stores\ndirectly. The tests are reusable for different backing store implementations\nbecause the tests are implementation-agnostic: Any backing store that conforms\nto the backing store interface can be plugged into the tests. Work is still\nongoing to label/monitor the tests, such that we can verify that interesting\ncases are being tested. Furthermore, a possible bug has been identified in the\nLMDB backing store with respect to range reads, though the bug has not been\nresolved yet.")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},(0,l.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3946"},"Issue #3946"),", ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/tree/jdral/CAD-4199-prototype-anti-diffs"},"branch"),", ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3882"},"PR #3882"),': The\n"anti-diff" prototype proposes an alternative approach to keeping track of\nsequences (more specifically, ',(0,l.kt)("inlineCode",{parentName:"p"},"FingerTree"),'s) of diffs. These diff sequences\nare a component of the in-memory parts of the ledger state in UTxO-HD. Since\nthe consensus code often requires the cumulative diff of a sequence of diffs,\nthe current implementation "caches" cumulative diffs of each subtree in the\ndiff sequence. This caching allows relatively fast reconstruction of the total\ncumulative diff, but this caching proved to incur a non-negligible cost: when\nwe manipulate diff sequences through splits and appends, we force re-computing\na logarithmic number of caches. This is problematic, since we often split and\nappend in consensus: we split when we flush diffs to a backing store or when\nwe roll back blocks, and we append when pushing blocks. The new approach\nshould reduce the overhead of this caching.'),(0,l.kt)("p",{parentName:"li"},'We implemented micro-benchmarks for the "anti-diff" prototype: we\nfirst generate a sequence of commands (',(0,l.kt)("inlineCode",{parentName:"p"},"Forward"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"Push"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"Flush"),", or\n",(0,l.kt)("inlineCode",{parentName:"p"},"Rollback"),") through a simulation, after which we measure the performance of\napplying the commands to a diff sequence. In this context, ",(0,l.kt)("inlineCode",{parentName:"p"},"Forward")," means\nforwarding of values through a diff, whereas ",(0,l.kt)("inlineCode",{parentName:"p"},"Rollback"),' means switching to\na different fork by rolling back diffs/blocks and pushing new ones.\nMoreover, we compare the performance for the two implementations: the\n"legacy" approach, and the anti-diff approach.'),(0,l.kt)("p",{parentName:"li"},"Some preliminary results were positive, but we needed to revisit the\nbenchmark's configuration to obtain more definitive results. After a\ndiscussion with @dcoutts and the consensus team about this configuration\n(e.g., number of commands generated, choice of the security parameter ",(0,l.kt)("inlineCode",{parentName:"p"},"k"),"),\nthe benchmarks should now be closer to the realistic setting. The following\nconfiguration specifies the default configuration that is used in the\nbenchmarking code:"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Number of commands generated: ",(0,l.kt)("inlineCode",{parentName:"li"},"10_000")),(0,l.kt)("li",{parentName:"ul"},"Security parameter ",(0,l.kt)("inlineCode",{parentName:"li"},"k"),": ",(0,l.kt)("inlineCode",{parentName:"li"},"2160")),(0,l.kt)("li",{parentName:"ul"},"Number of initial backing values: ",(0,l.kt)("inlineCode",{parentName:"li"},"100")),(0,l.kt)("li",{parentName:"ul"},"Number of key-value pairs deleted by a push: ",(0,l.kt)("inlineCode",{parentName:"li"},"50")),(0,l.kt)("li",{parentName:"ul"},"Number of key-value pairs inserted by a push: ",(0,l.kt)("inlineCode",{parentName:"li"},"50")),(0,l.kt)("li",{parentName:"ul"},"Number of key-value pairs forwarded by a forward: ",(0,l.kt)("inlineCode",{parentName:"li"},"50")),(0,l.kt)("li",{parentName:"ul"},"Probability of a large (in the range ",(0,l.kt)("inlineCode",{parentName:"li"},"[1000, 2000]"),") rollback: ",(0,l.kt)("inlineCode",{parentName:"li"},"0.05")),(0,l.kt)("li",{parentName:"ul"},"Probability of a small (in the range ",(0,l.kt)("inlineCode",{parentName:"li"},"[1, 10]"),") rollback: ",(0,l.kt)("inlineCode",{parentName:"li"},"0.95")),(0,l.kt)("li",{parentName:"ul"},"Order of commands:",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"An equal number of forward and pushes."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"1")," flush every ",(0,l.kt)("inlineCode",{parentName:"li"},"10")," pushes."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"1")," rollback every ",(0,l.kt)("inlineCode",{parentName:"li"},"100")," pushes")))),(0,l.kt)("p",{parentName:"li"},"Moreover, we run four benchmark scenarios:"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Default configuration"),(0,l.kt)("li",{parentName:"ul"},"Without rollbacks"),(0,l.kt)("li",{parentName:"ul"},"With only small rollbacks"),(0,l.kt)("li",{parentName:"ul"},"Without rollbacks, larger flushes (",(0,l.kt)("inlineCode",{parentName:"li"},"1")," flush every ",(0,l.kt)("inlineCode",{parentName:"li"},"100")," pushes)")),(0,l.kt)("h3",{parentName:"li",id:"how-to-read-results"},"How to read results"),(0,l.kt)("p",{parentName:"li"},"Note: this section uses documentation from the\n",(0,l.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/tasty-bench"},"tasty-bench")," package to\nexplain how to read the results of running our benchmarks."),(0,l.kt)("p",{parentName:"li"},"Running a benchmark scenario gives us the following (curated) output:"),(0,l.kt)("pre",{parentName:"li"},(0,l.kt)("code",{parentName:"pre",className:"language-text"},"...\nAntiDiff: OK (18.27s)\n 2.527 s \xb1 47 ms, 2.1 GB allocated, 544 MB copied, 2.2 GB peak memory, 0.23x\nLegacyDiff: OK (32.73s)\n 10.829 s \xb1 148 ms, 6.8 GB allocated, 2.3 GB copied, 2.2 GB peak memory\n...\n")),(0,l.kt)("p",{parentName:"li"},"The output says that the first benchmark, which exercises the anti-diff\nprototype, was repeatedly executed for ",(0,l.kt)("inlineCode",{parentName:"p"},"18.27")," seconds (wall-clock time),\nits predicted mean CPU time was ",(0,l.kt)("inlineCode",{parentName:"p"},"2.527")," seconds and means of individual\nsamples do not often diverge from it further than ",(0,l.kt)("inlineCode",{parentName:"p"},"\xb1 47")," milliseconds\n(double standard deviation). We also configure the RTS to collect GC\nstatistics, which enables ",(0,l.kt)("inlineCode",{parentName:"p"},"tasty-bench")," to estimate and report memory usage.\nThis data is reported as per ",(0,l.kt)("inlineCode",{parentName:"p"},"RTSStats")," fields: ",(0,l.kt)("inlineCode",{parentName:"p"},"allocated_bytes"),",\n",(0,l.kt)("inlineCode",{parentName:"p"},"copied_bytes")," and ",(0,l.kt)("inlineCode",{parentName:"p"},"max_mem_in_use_bytes"),". So, the output of the first\nbenchmark says that a total of ",(0,l.kt)("inlineCode",{parentName:"p"},"2.1 GB")," of memory was allocated, that a\ntotal of ",(0,l.kt)("inlineCode",{parentName:"p"},"544 MB")," of memory were copied, and that the peak memory in usage\nwas ",(0,l.kt)("inlineCode",{parentName:"p"},"2.2 GB"),". We read the output for the second benchmark in the same way."),(0,l.kt)("p",{parentName:"li"},"Furthermore, the benchmark compares the mean CPU times for\nboth the anti-diff and legacy approaches: In this case, the mean CPU time\nfor the anti-diff approach is ",(0,l.kt)("inlineCode",{parentName:"p"},"~0.23x")," the mean CPU time for the legacy\napproach. Conversely, the mean CPU time for the legacy approach is\n",(0,l.kt)("inlineCode",{parentName:"p"},"1 / 0.23 ~= 4.35x")," the mean CPU time for the anti-diff approach. We will\ncall ",(0,l.kt)("inlineCode",{parentName:"p"},"0.23x")," the ",(0,l.kt)("em",{parentName:"p"},"improvement factor"),". We will call ",(0,l.kt)("inlineCode",{parentName:"p"},"4.35x")," the ",(0,l.kt)("em",{parentName:"p"},"speedup"),"."),(0,l.kt)("p",{parentName:"li"},"Note that these improvement factors (and reported results) are subject to\nnoise, randomness, the specific configuration parameters, and the whims\nof statistics. Data reported by ",(0,l.kt)("inlineCode",{parentName:"p"},"tasty-bench")," is only of indicative and\ncomparative significance."),(0,l.kt)("h3",{parentName:"li",id:"results"},"Results"),(0,l.kt)("p",{parentName:"li"},"For each of the 4 scenarios, we list the results of running the anti-diff and\nlegacy approaches 5 times. We run the benchmarks 5 times to get an indication\nof whether the results are similar across multiple runs. Furthermore, we\ncalculate the accompanying ",(0,l.kt)("em",{parentName:"p"},"ranges")," (if applicable) of improvement factors and\nspeedups."),(0,l.kt)("p",{parentName:"li"},"Note also the decrease in total bytes allocated and total bytes copied for\nthe anti-diff approach compared to the legacy approach."),(0,l.kt)("h4",{parentName:"li",id:"default-configuration"},"Default configuration"),(0,l.kt)("table",{parentName:"li"},(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Mean CPU time"),(0,l.kt)("th",{parentName:"tr",align:null},"2*Stdev (CPU time)"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes allocated"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes copied"),(0,l.kt)("th",{parentName:"tr",align:null},"Peak memory"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"2.533 s (0.23x)"),(0,l.kt)("td",{parentName:"tr",align:null},"4.7 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"2.1 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"557 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"10.792 s"),(0,l.kt)("td",{parentName:"tr",align:null},"162 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"6.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.3 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"2.508 s (0.23x)"),(0,l.kt)("td",{parentName:"tr",align:null},"245 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"2.1 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"515 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"10.850 s"),(0,l.kt)("td",{parentName:"tr",align:null},"30 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"6.9 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.3 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"2.562 s (0.23x)"),(0,l.kt)("td",{parentName:"tr",align:null},"5.0 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"2.1 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"552 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"10.993 s"),(0,l.kt)("td",{parentName:"tr",align:null},"149 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"6.9 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.3 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"2.168 s (0.22x)"),(0,l.kt)("td",{parentName:"tr",align:null},"5.3 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"434 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"9.976 s"),(0,l.kt)("td",{parentName:"tr",align:null},"39 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"6.3 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"2.527 s (0.23x)"),(0,l.kt)("td",{parentName:"tr",align:null},"47 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"2.1 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"544 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"10.829 s"),(0,l.kt)("td",{parentName:"tr",align:null},"148 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"6.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.3 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")))),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Improvement factor: ",(0,l.kt)("inlineCode",{parentName:"li"},"[0.22, 0.23]")),(0,l.kt)("li",{parentName:"ul"},"Speedup : ",(0,l.kt)("inlineCode",{parentName:"li"},"[1 / 0.23 ~= 4.35, 1 / 0.22 ~= 4.55]"))),(0,l.kt)("h4",{parentName:"li",id:"no-rollbacks"},"No rollbacks"),(0,l.kt)("table",{parentName:"li"},(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Mean CPU time"),(0,l.kt)("th",{parentName:"tr",align:null},"2*Stdev (CPU time)"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes allocated"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes copied"),(0,l.kt)("th",{parentName:"tr",align:null},"Peak memory"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.638 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"36 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"181 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.656 s"),(0,l.kt)("td",{parentName:"tr",align:null},"207 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.7 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.638 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"75 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"181 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.654 s"),(0,l.kt)("td",{parentName:"tr",align:null},"322 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.7 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.663 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"74 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"181 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.799 s"),(0,l.kt)("td",{parentName:"tr",align:null},"216 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.7 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.645 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"51 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"181 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.732 s"),(0,l.kt)("td",{parentName:"tr",align:null},"261 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.7 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.639 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"19 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"181 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.653 s"),(0,l.kt)("td",{parentName:"tr",align:null},"234 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.7 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")))),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Improvement factor: ",(0,l.kt)("inlineCode",{parentName:"li"},"0.19")),(0,l.kt)("li",{parentName:"ul"},"Speedup : ",(0,l.kt)("inlineCode",{parentName:"li"},"1 / 0.19 ~= 5.25"))))),(0,l.kt)("h4",{id:"only-small-rollbacks"},"Only small rollbacks"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Mean CPU time"),(0,l.kt)("th",{parentName:"tr",align:null},"2*Stdev (CPU time)"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes allocated"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes copied"),(0,l.kt)("th",{parentName:"tr",align:null},"Peak memory"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.833 s (0.18x)"),(0,l.kt)("td",{parentName:"tr",align:null},"36 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"185 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"10.362 s"),(0,l.kt)("td",{parentName:"tr",align:null},"867 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.6 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.696 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"30 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"185 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.822 s"),(0,l.kt)("td",{parentName:"tr",align:null},"106 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.702 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"44 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"186 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.906 s"),(0,l.kt)("td",{parentName:"tr",align:null},"147 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.701 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"47 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"185 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.949 s"),(0,l.kt)("td",{parentName:"tr",align:null},"197 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.677 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"55 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"186 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.856 s"),(0,l.kt)("td",{parentName:"tr",align:null},"177 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")))),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"Improvement factor: ",(0,l.kt)("inlineCode",{parentName:"p"},"[0.18, 0.19]"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"Speedup : ",(0,l.kt)("inlineCode",{parentName:"p"},"[1 / 0.19 ~= 5.25, 1 / 0.18 ~= 5.55]")),(0,l.kt)("h4",{parentName:"li",id:"no-rollbacks-larger-flushes-every-100-pushes"},"No rollbacks, larger flushes (every 100 pushes)"),(0,l.kt)("table",{parentName:"li"},(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Mean CPU time"),(0,l.kt)("th",{parentName:"tr",align:null},"2*Stdev (CPU time)"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes allocated"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes copied"),(0,l.kt)("th",{parentName:"tr",align:null},"Peak memory"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.643 s (0.25x)"),(0,l.kt)("td",{parentName:"tr",align:null},"21 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"196 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"6.591 s"),(0,l.kt)("td",{parentName:"tr",align:null},"351 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"4.0 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.616 s (0.25x)"),(0,l.kt)("td",{parentName:"tr",align:null},"47 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"196 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"6.520 s"),(0,l.kt)("td",{parentName:"tr",align:null},"232 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"4.0 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.640 s (0.25x)"),(0,l.kt)("td",{parentName:"tr",align:null},"34 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"196 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"6.540 s"),(0,l.kt)("td",{parentName:"tr",align:null},"150 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"4.0 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.635 s (0.25x)"),(0,l.kt)("td",{parentName:"tr",align:null},"76 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"196 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"6.589 s"),(0,l.kt)("td",{parentName:"tr",align:null},"131 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"4.0 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.628 s (0.25x)"),(0,l.kt)("td",{parentName:"tr",align:null},"19 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"196 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"6.490 s"),(0,l.kt)("td",{parentName:"tr",align:null},"5.9 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"4.0 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB"))))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"Improvement factor: ",(0,l.kt)("inlineCode",{parentName:"p"},"0.25"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"Speedup : ",(0,l.kt)("inlineCode",{parentName:"p"},"1 / 0.25 ~= 4")))),(0,l.kt)("h3",{id:"genesis"},"Genesis"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"We elaborated a draft of the specification of the Genesis implementation and\nthe ChainSync Jumping optimization. In particular, this includes a proof\nsketch that the latter preserves liveness and safety in all cases (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3964"},"Issue\n3964"),").",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"@nfrisby's main realization during this sprint was that he had been\nfocusing so far on the case where the selected chain is an extension of\nthe intersection of our peers' ChainSync candidates."),(0,l.kt)("li",{parentName:"ul"},'This is the main case, ie an "absorbing" state, but it\'s not the only\ncase.'),(0,l.kt)("li",{parentName:"ul"},"The new proof sketch begins by case splitting on that predicate, and\nthat made the sketch quite a bit easier to follow."))),(0,l.kt)("li",{parentName:"ul"},'We continued working on the "happy path" ',(0,l.kt)("inlineCode",{parentName:"li"},"ChainSync")," Jumping prototype (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3960"},"Issue\n3960"),").")),(0,l.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"We started working on the issues required to re-enable nightly CI runs..\nNightly CI runs have far more lax time constraints, which gives the option to\nrun significantly more property tests than in our regular CI. To this end, we\nmerged a PR to easily adapt the number of tests globally (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3947"},"PR\n#3947"),").")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/01a85c17.545379d8.js b/assets/js/01a85c17.545379d8.js new file mode 100644 index 0000000000..3548879dfe --- /dev/null +++ b/assets/js/01a85c17.545379d8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64013],{39058:(e,t,a)=>{a.d(t,{Z:()=>p});var l=a(67294),r=a(86010),n=a(93285),s=a(87524),i=a(39960),c=a(95999);const m={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};function o(e){let{sidebar:t}=e;return l.createElement("aside",{className:"col col--3"},l.createElement("nav",{className:(0,r.Z)(m.sidebar,"thin-scrollbar"),"aria-label":(0,c.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},l.createElement("div",{className:(0,r.Z)(m.sidebarItemTitle,"margin-bottom--md")},t.title),l.createElement("ul",{className:(0,r.Z)(m.sidebarItemList,"clean-list")},t.items.map((e=>l.createElement("li",{key:e.permalink,className:m.sidebarItem},l.createElement(i.Z,{isNavLink:!0,to:e.permalink,className:m.sidebarItemLink,activeClassName:m.sidebarItemLinkActive},e.title)))))))}var u=a(13102);function d(e){let{sidebar:t}=e;return l.createElement("ul",{className:"menu__list"},t.items.map((e=>l.createElement("li",{key:e.permalink,className:"menu__list-item"},l.createElement(i.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active"},e.title)))))}function g(e){return l.createElement(u.Zo,{component:d,props:e})}function b(e){let{sidebar:t}=e;const a=(0,s.i)();return t?.items.length?"mobile"===a?l.createElement(g,{sidebar:t}):l.createElement(o,{sidebar:t}):null}function p(e){const{sidebar:t,toc:a,children:s,...i}=e,c=t&&t.items.length>0;return l.createElement(n.Z,i,l.createElement("div",{className:"container margin-vert--lg"},l.createElement("div",{className:"row"},l.createElement(b,{sidebar:t}),l.createElement("main",{className:(0,r.Z)("col",{"col--7":c,"col--9 col--offset-1":!c}),itemScope:!0,itemType:"http://schema.org/Blog"},s),a&&l.createElement("div",{className:"col col--2"},a))))}},91223:(e,t,a)=>{a.r(t),a.d(t,{default:()=>p});var l=a(67294),r=a(86010),n=a(95999);const s=()=>(0,n.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});var i=a(1944),c=a(35281),m=a(39058),o=a(13008);const u={tag:"tag_Nnez"};function d(e){let{letterEntry:t}=e;return l.createElement("article",null,l.createElement("h2",null,t.letter),l.createElement("ul",{className:"padding--none"},t.tags.map((e=>l.createElement("li",{key:e.permalink,className:u.tag},l.createElement(o.Z,e))))),l.createElement("hr",null))}function g(e){let{tags:t}=e;const a=function(e){const t={};return Object.values(e).forEach((e=>{const a=function(e){return e[0].toUpperCase()}(e.label);t[a]??=[],t[a].push(e)})),Object.entries(t).sort(((e,t)=>{let[a]=e,[l]=t;return a.localeCompare(l)})).map((e=>{let[t,a]=e;return{letter:t,tags:a.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}(t);return l.createElement("section",{className:"margin-vert--lg"},a.map((e=>l.createElement(d,{key:e.letter,letterEntry:e}))))}var b=a(90197);function p(e){let{tags:t,sidebar:a}=e;const n=s();return l.createElement(i.FG,{className:(0,r.Z)(c.k.wrapper.blogPages,c.k.page.blogTagsListPage)},l.createElement(i.d,{title:n}),l.createElement(b.Z,{tag:"blog_tags_list"}),l.createElement(m.Z,{sidebar:a},l.createElement("h1",null,n),l.createElement(g,{tags:t})))}},13008:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(67294),r=a(86010),n=a(39960);const s={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function i(e){let{permalink:t,label:a,count:i}=e;return l.createElement(n.Z,{href:t,className:(0,r.Z)(s.tag,i?s.tagWithCount:s.tagRegular)},a,i&&l.createElement("span",null,i))}}}]); \ No newline at end of file diff --git a/assets/js/02208e51.ff194e36.js b/assets/js/02208e51.ff194e36.js new file mode 100644 index 0000000000..c5d2f17f5d --- /dev/null +++ b/assets/js/02208e51.ff194e36.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[42451],{60013:e=>{e.exports=JSON.parse('{"permalink":"/tags/crypto/page/3","page":3,"postsPerPage":5,"totalPages":4,"totalCount":18,"previousPage":"/tags/crypto/page/2","nextPage":"/tags/crypto/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/022c437b.8f358b43.js b/assets/js/022c437b.8f358b43.js new file mode 100644 index 0000000000..599cebe64f --- /dev/null +++ b/assets/js/022c437b.8f358b43.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92988],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),d=s(n),m=a,h=d["".concat(l,".").concat(m)]||d[m]||u[m]||i;return n?r.createElement(h,o(o({ref:t},c),{},{components:n})):r.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[d]="string"==typeof e?e:a,o[1]=p;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>p,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const i={title:"SRE Q2 2024 Update",slug:"2024-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},o=void 0,p={permalink:"/quarterly/2024-Q2-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2024-Q2-sre.md",source:"@site/quarterly/2024-Q2-sre.md",title:"SRE Q2 2024 Update",description:"2024-04 - 2024-06",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"sre",permalink:"/quarterly/tags/sre"}],readingTime:1.355,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q2 2024 Update",slug:"2024-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"SRE Q1 2024 Update",permalink:"/quarterly/2024-Q1-sre"},nextItem:{title:"Consensus Quarterly Update",permalink:"/quarterly/2023-04-25-consensus"}},l={authorsImageUrls:[void 0]},s=[{value:"2024-04 - 2024-06",id:"2024-04---2024-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],c={toc:s},d="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"2024-04---2024-06"},"2024-04 - 2024-06"),(0,a.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,a.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments,\nmain SRE achievements for this quarter include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"All cardano release environments, including preview, preprod, mainnet legacy\nand mainnet new clusters were upgraded through various cardano-node releases of\n",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.2"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.3"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.4"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.1"),", and finally into ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.2")," by the end of\nJune")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Cardano pre-release environments additionally iterated through pre-release\nupgrades of ",(0,a.kt)("inlineCode",{parentName:"p"},"8.11.0-pre"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0-pre"),", and finally into ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.2")," by the end\nof June with the exception of sanchonet which remains pinned at ",(0,a.kt)("inlineCode",{parentName:"p"},"8.11.0-pre"),"\nuntil the next respin to support node version ",(0,a.kt)("inlineCode",{parentName:"p"},"9.0.0")," or greater")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Sanchonet environment was re-spun two times for pre-release Conway testing of\ncardano-node versions ",(0,a.kt)("inlineCode",{parentName:"p"},"8.10.0-pre")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"8.11.0-pre")," respectively")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Private chain environment was re-spun three times to support fast epoch\nConway testing")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Cardano-playground and cardano-mainnet repos have added ten operations\noriented documents for knowledge transfer")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Block producers which participate in mithril signing will now produce metrics\nand can have them scraped with the default metrics agent")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"A cluster spin-up job to utilize the new cardano-cli ",(0,a.kt)("inlineCode",{parentName:"p"},"create-testnet-data"),"\nsub-command was created")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"A nixosModule, dashboards and alerts were added supporting the new cardano\ntracing system")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Many new operations scripts and features were added, including a template\ndiff and patch recipe to pull the latest cardano-parts improvements to\nconsuming repositories more easily"))),(0,a.kt)("h3",{id:"next-steps"},"Next steps"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Finalize support for the new cardano-node tracing system once the service is\nrewritten for general consumption")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Add IPv6 cardano-parts support")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Extend govtool frontend and backend to a process-compose stack once govtool\nis publicly buildable again")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Continue cardano-parts and operations improvements"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0281a492.0fd9d1e3.js b/assets/js/0281a492.0fd9d1e3.js new file mode 100644 index 0000000000..eeb95d2672 --- /dev/null +++ b/assets/js/0281a492.0fd9d1e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[79503],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function n(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):n(n({},t),e)),a},d=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,o=e.originalType,p=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=u(a),s=l,h=c["".concat(p,".").concat(s)]||c[s]||m[s]||o;return a?r.createElement(h,n(n({ref:t},d),{},{components:a})):r.createElement(h,n({ref:t},d))}));function h(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=a.length,n=new Array(o);n[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:l,n[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>n,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=a(87462),l=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-06-08-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},n=void 0,i={permalink:"/2023-06-08-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-08-sre.md",source:"@site/blog/2023-06-08-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-06-08T00:00:00.000Z",formattedDate:"June 8, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.795,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-06-08-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-06-08-goedel"},nextItem:{title:"System Test Team Update",permalink:"/2023-06-08-system-test"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Bitte",id:"bitte",level:3},{value:"Bitte-cells",id:"bitte-cells",level:3},{value:"Cardano-graphql",id:"cardano-graphql",level:3},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Ci-ops",id:"ci-ops",level:3},{value:"Ci-world",id:"ci-world",level:3},{value:"Cicero",id:"cicero",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3},{value:"Openziti",id:"openziti",level:3}],d={toc:u},c="wrapper";function m(e){let{components:t,...a}=e;return(0,l.kt)(c,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include: expanding the darwin CI cluster and providing new aarch64 builder support; adding bare metal bitte cluster capability with network overlay for high IOPS workload performance, such as explorer."),(0,l.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,l.kt)("h3",{id:"bitte"},"Bitte"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Equinix bare metal capability was added to bitte: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/bitte/pull/194"},"bitte-pull-194")),(0,l.kt)("li",{parentName:"ul"},"Update bitte nixpkgs, nix version, nomad driver, equinix lifecycle, misc bug fixes: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/bitte/pull/201"},"bitte-pull-201"))),(0,l.kt)("h3",{id:"bitte-cells"},"Bitte-cells"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improvements made for patroni cluster recovery of large databases: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/bitte-cells/compare/main...patroni-flex"},"bitte-cells-branch"))),(0,l.kt)("h3",{id:"cardano-graphql"},"Cardano-graphql"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Update cardano-graphql and nixos service: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-graphql/pull/815"},"cardano-graphql-pull-815"))),(0,l.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Update cardano-node to use the updated iohk-nix environments: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5241"},"cardano-node-pull-5241"))),(0,l.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Update cardano-graphql, adds monitoring improvements and misc bug fixes: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/pull/411"},"cardano-ops-pull-411")),(0,l.kt)("li",{parentName:"ul"},"Work in progress on mixed legacy and p2p topology clusters in cardano-ops: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/master...ops-local"},"cardano-ops-branch"))),(0,l.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add a declarative cardano-faucet dashboard: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/e7d40d34aff52bbeb309f87939bd0d40f585e60a"},"cardano-world-commit")),(0,l.kt)("li",{parentName:"ul"},"Remove a requirement for root user in Nomad docker images: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/68"},"cardano-world-pull-68")),(0,l.kt)("li",{parentName:"ul"},"Enable explorer in cardano-world for high IOPS metal access: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/69"},"cardano-world-pull-69")),(0,l.kt)("li",{parentName:"ul"},"Migrate explorer cluster to cardano-world: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/75"},"cardano-world-pull-75")),(0,l.kt)("li",{parentName:"ul"},"Migrate testnet metadata server to cardano-world, cleanup envs: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/77"},"cardano-world-pull-77")),(0,l.kt)("li",{parentName:"ul"},"Add a faucet restore delegation script to cardano-world for non-functioning delegated pools: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/79"},"cardano-world-pull-79")),(0,l.kt)("li",{parentName:"ul"},"Integrate node 8.x into cardano-world: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/84"},"cardano-world-pull-84")),(0,l.kt)("li",{parentName:"ul"},"Update cardano-world to use iohk-nix for node environments: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/87"},"cardano-world-pull-87")),(0,l.kt)("li",{parentName:"ul"},"Create a stakepool analysis query for cluster pool performance overview: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/64fe3b9d4067c24eef028ac1c561d6f9a7d5a9a8"},"cardano-world-commit")),(0,l.kt)("li",{parentName:"ul"},"Added an iptables fixup script for broken bridged networking nomad jobs: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/02550206e4e34d121135794b6e54084635e55a50"},"cardano-world-commit")),(0,l.kt)("li",{parentName:"ul"},"Improve cardano-world job automation with additional parameterization: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/92"},"cardano-world-pr-92")),(0,l.kt)("li",{parentName:"ul"},"Update preview network experimental config defaults: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/93"},"cardano-world-pr-93"))),(0,l.kt)("h3",{id:"ci-ops"},"Ci-ops"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Update legacy darwin builders and buildkite agent for ci-world network overlay and monitoring: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-ops/pull/108"},"ci-ops-pull-108"))),(0,l.kt)("h3",{id:"ci-world"},"Ci-world"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Resolve ci-world linux buildkite agent cleanup bug: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-world/commit/3d053b202a6e40fab23db49801de7d6e580fab1f"},"ci-world-commit")),(0,l.kt)("li",{parentName:"ul"},"Integrate new darwin builders into ci-world: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-world/pull/22"},"ci-world-pull-22")),(0,l.kt)("li",{parentName:"ul"},"Migrate patroni HA db to it's own namespace in ci-world: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-world/pull/24"},"ci-world-pull-24"))),(0,l.kt)("h3",{id:"cicero"},"Cicero"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Implement a cicero webhook backoff with exponential decay plus jitter: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cicero/pull/79"},"cicero-pull-79"))),(0,l.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Update iohk-nix to be source of truth for node environments: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/534"},"iohk-nix-pull-534")),(0,l.kt)("li",{parentName:"ul"},"Update preview network experimental config defaults: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/544"},"iohk-nix-pull-544"))),(0,l.kt)("h3",{id:"openziti"},"Openziti"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add darwin intel and arm support to ziti-edge-tunnel nix modules: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/johnalotoski/openziti-bins/pull/1"},"openziti-bins-pull-1"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/034a14a6.d0e40c06.js b/assets/js/034a14a6.d0e40c06.js new file mode 100644 index 0000000000..8b59c39e1e --- /dev/null +++ b/assets/js/034a14a6.d0e40c06.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95018],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=s(n),p=a,f=u["".concat(l,".").concat(p)]||u[p]||m[p]||o;return n?r.createElement(f,i(i({ref:t},d),{},{components:n})):r.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & tracing update",slug:"2023-06-28-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,c={permalink:"/2023-06-28-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-28-performance-and-tracing.md",source:"@site/blog/2023-06-28-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-06-28T00:00:00.000Z",formattedDate:"June 28, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.885,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-06-28-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-06-28-consensus"},nextItem:{title:"Goedel Team Update",permalink:"/2023-06-23-goedel"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],d={toc:s},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've performed several new benchmarks and a performance investigation in preparation of switching the default compiler to GHC9."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: The first batch of refactoring and documentation for our ",(0,a.kt)("inlineCode",{parentName:"li"},"tx-generator")," has been merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master"),"."),(0,a.kt)("li",{parentName:"ul"},"Tracing: We've looked into an issue where the tracing system's concurrency could prevent a graceful node shutdown."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: Our new cloud backend has seen various improvements regarding deployment and monitoring; validation runs for the backend are ongoing.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"The compiler switch to GHC9 as the default build platform for ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," and its components still has noticeable effects on system-wide performance metrics. An investigation into the different resource usage profiles of compiler versions does seem to indicate GHC9's significantly different inlining behaviour may produce those effects. We're currently locating the specific places in component code that have the most extensive effect in that regard. "),(0,a.kt)("p",null,"Using the ",(0,a.kt)("inlineCode",{parentName:"p"},"forge-stress")," approximation we set up, we could determine that above effect is not due to a range of RTS parameters, as for example the number of capabilites used by the node."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"tx-generator")," is a crucial part of our tooling responsible for producing very specific workloads for our benchmarking cluster. In an effort to flesh out an API to make it reusable for more general use cases, a first set of refactorings has been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". Additionally, this merge contained systematic documentation both for internal and for exposed areas of the code base."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The tracing system's concurrency could under certain conditions prevent a graceful shutdown of the node. This issue did occur only after adding specific new traces on a development branch. We could localize and address that issue."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"With the data gathered from running the new nomad cloud backend, we've been able to address many, many small and medium-sized improvements. The deployment process has been restructured for better efficiency, and the healthcheck system could be fine-tuned to recognize severity of various conditions that might occur. Optimization of fetching all run data from the cloud for evaluation is in progress."),(0,a.kt)("p",null,"Additionally, we're continuing the new backend's validation by setting up test runs and looking into comparative analyses with metrics gathered from the current cluster backend."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0350d52d.41e046dc.js b/assets/js/0350d52d.41e046dc.js new file mode 100644 index 0000000000..cb1ac54c00 --- /dev/null +++ b/assets/js/0350d52d.41e046dc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17878],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(r),d=a,f=u["".concat(s,".").concat(d)]||u[d]||m[d]||o;return r?n.createElement(f,i(i({ref:t},c),{},{components:r})):n.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2024-01-05-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-01-05-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-05-sre.md",source:"@site/blog/2024-01-05-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-01-05T00:00:00.000Z",formattedDate:"January 5, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.34,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-01-05-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-01-05-hydra"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-12-30-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:p},u="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the lightly staffed holiday period for node SRE, the emphasis was on\nmaintaining environment stability, tuning and resolving any noisey alerts."),(0,a.kt)("p",null,"Investigation into and testing around the following two topics also\nstarted during this period:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Ledger snapshots causing a small number of missed slots for forgers on mainnet:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/868"},"ouroboros-consensus-issue-868"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"A cardano-node rare file descriptor leak, with a more detailed description\n",(0,a.kt)("a",{parentName:"p",href:"/2024-01-09-network"},"here")))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/03d856aa.2fa5e6e2.js b/assets/js/03d856aa.2fa5e6e2.js new file mode 100644 index 0000000000..6f53e13ec7 --- /dev/null +++ b/assets/js/03d856aa.2fa5e6e2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6413],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=o.createContext({}),l=function(e){var t=o.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),c=l(r),h=n,d=c["".concat(s,".").concat(h)]||c[h]||m[h]||a;return r?o.createElement(d,i(i({ref:t},u),{},{components:r})):o.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=h;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[c]="string"==typeof e?e:n,i[1]=p;for(var l=2;l{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var o=r(87462),n=(r(67294),r(3905)),a=r(80175);const i={title:"Network Team Update",slug:"2022-11-11-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},p=void 0,s={permalink:"/2022-11-11-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-11-network.md",source:"@site/blog/2022-11-11-network.md",title:"Network Team Update",description:"High-level summary",date:"2022-11-11T00:00:00.000Z",formattedDate:"November 11, 2022",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.595,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-11-11-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-11-11-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2022-11-04-hydra"}},l={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"Detail description",id:"detail-description",level:2},{value:"Performance regression",id:"performance-regression",level:3},{value:"New P2P topology form",id:"new-p2p-topology-form",level:3},{value:"Tracing improvements",id:"tracing-improvements",level:3},{value:"Open Source Improvements",id:"open-source-improvements",level:3}],c={toc:u},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"In last sprint we got a performance report of P2P performance testing cluster\n(which consists of 50 nodes). There is a performance regression in the header\nnotification metric. The P2P cluster is constructed with the same\ntopology as the non-p2p reference one this indicates some regression which\nneeds to be further investigated. This poses a risk for releasing P2P."),(0,n.kt)("p",null,"We also continued to work on peer sharing: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"pull #4019"),"."),(0,n.kt)("p",null,"We continued working on dynamic block production which is required for P2P\nrelease for BP nodes: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3159"},"pull #3159"),"."),(0,n.kt)("p",null,"We simplified the P2P topology format: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/issues/4559"},"issue #4559"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3888"},"pull #3888"),"."),(0,n.kt)("p",null,"We added a new trace point for asynchronous demotions of local peers with\n",(0,n.kt)("inlineCode",{parentName:"p"},"Warning")," severity. This trace is ",(0,n.kt)("strong",{parentName:"p"},"important")," for SPOs."),(0,n.kt)("h2",{id:"detail-description"},"Detail description"),(0,n.kt)("h3",{id:"performance-regression"},"Performance regression"),(0,n.kt)("p",null,"Below we include a graph which shows the performance regression of the P2P code base vs non P2P."),(0,n.kt)("img",{src:a.Z}),(0,n.kt)("p",null,"On the ",(0,n.kt)("inlineCode",{parentName:"p"},"x")," axis is time in seconds which measures the delay from the start of\nthe slot to when a header was received. The ",(0,n.kt)("inlineCode",{parentName:"p"},"y")," axis is the percentile of nodes\nthat received a header. We are currently investigating possible causes of the\nregression. "),(0,n.kt)("h3",{id:"new-p2p-topology-form"},"New P2P topology form"),(0,n.kt)("p",null,"The new topology file format is described in this ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/issues/4559"},"issue #4559"),"."),(0,n.kt)("h3",{id:"tracing-improvements"},"Tracing improvements"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We improved a handshake error reporting, ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4136"},"pull #4136")),(0,n.kt)("li",{parentName:"ul"},"We added ",(0,n.kt)("inlineCode",{parentName:"li"},"TraceDemoteLocalAsynchronous")," rendered as ",(0,n.kt)("inlineCode",{parentName:"li"},"DemoteLocalAsynchronous"),"\nin ",(0,n.kt)("inlineCode",{parentName:"li"},"json")," format, ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4127"},"pull #4127"),". Such demotions should be investigated by the\npool operator. They can indicate a problem in the deployed system, but also\nthey could indicate a remote problem in arranged connections with other SPOs.")),(0,n.kt)("h3",{id:"open-source-improvements"},"Open Source Improvements"),(0,n.kt)("p",null,"We improved documentation of ",(0,n.kt)("inlineCode",{parentName:"p"},"io-sim")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"typed-protocols")," for open-source\ncontributors and/or maintenance tasks: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/22"},"pull #22"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/45"},"pull #45"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/48"},"pull #48"),". "))}h.isMDXComponent=!0},80175:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/2022-11-11-noticed-headers-55bb0b4d41e8f0cff0066e1bec91bdd2.png"}}]); \ No newline at end of file diff --git a/assets/js/042169f6.28635291.js b/assets/js/042169f6.28635291.js new file mode 100644 index 0000000000..47b0538b07 --- /dev/null +++ b/assets/js/042169f6.28635291.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27449],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2022-12-01-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-12-01-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-01-mithril.md",source:"@site/blog/2022-12-01-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2022-12-01T00:00:00.000Z",formattedDate:"December 1, 2022",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.04,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2022-12-01-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"DB sync Team Update",permalink:"/2022-12-01-db-sync"},nextItem:{title:"System Test Team Update",permalink:"/2022-12-01-system-test"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes. "),(0,n.kt)("p",null,"Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implemented custom Mithril SPOs on testing/pre-release networks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/563"},"#563")),(0,n.kt)("li",{parentName:"ul"},"Deprecated Signer Declarative Pool Id registration mode ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/585"},"#585")),(0,n.kt)("li",{parentName:"ul"},"Completed the second stage of the store automatic migration process ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/600"},"#600")),(0,n.kt)("li",{parentName:"ul"},"Completed the deployment pipelines to crates.io registry ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/588"},"#588")),(0,n.kt)("li",{parentName:"ul"},"Completed automatic generation of nodes/libraries versions manifest in releases notes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/599"},"#599")),(0,n.kt)("li",{parentName:"ul"},"Completed CI/CD handling of PR from forks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/597"},"#597")),(0,n.kt)("li",{parentName:"ul"},"Worked on the CIP design for Mithril piggybacked on the Cardano network layer ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/586"},"#586")),(0,n.kt)("li",{parentName:"ul"},"Worked on signing the artifacts released in the distributions by the CI/CD ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/587"},"#587")),(0,n.kt)("li",{parentName:"ul"},"Worked on multi-platforms end to end test ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/601"},"#601")),(0,n.kt)("li",{parentName:"ul"},"Worked on the refactorizaton of the aggregator multi-signer engine ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/398"},"#398"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0431617f.23f0bae1.js b/assets/js/0431617f.23f0bae1.js new file mode 100644 index 0000000000..71a5c24f9f --- /dev/null +++ b/assets/js/0431617f.23f0bae1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[68153],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(f,l(l({ref:t},m),{},{components:r})):n.createElement(f,l({ref:t},m))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-04-28-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-04-28-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-28-goedel.md",source:"@site/blog/2023-04-28-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-04-28T00:00:00.000Z",formattedDate:"April 28, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.375,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-04-28-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-04-28-crypto"},nextItem:{title:"Network Team Update",permalink:"/2023-04-28-network"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is working on porting an existing formalisation of Ouroboros\nPraos to a newer foundation."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The team worked on documentation.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The team worked on an application layer for the Praos formalisation.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The team is hiring a performance engineering intern - ",(0,a.kt)("a",{parentName:"p",href:"https://apply.workable.com/io-global/j/BFEC5B0AFF/"},"https://apply.workable.com/io-global/j/BFEC5B0AFF/")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/04326247.04bcdd0e.js b/assets/js/04326247.04bcdd0e.js new file mode 100644 index 0000000000..bb8b58ad12 --- /dev/null +++ b/assets/js/04326247.04bcdd0e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25759],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(a),m=r,s=d["".concat(p,".").concat(m)]||d[m]||h[m]||o;return a?n.createElement(s,l(l({ref:t},c),{},{components:a})):n.createElement(s,l({ref:t},c))}));function s(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-01-25-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2023-01-25-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-25-node-cli-api.md",source:"@site/blog/2023-01-25-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-01-25T00:00:00.000Z",formattedDate:"January 25, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.585,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-01-25-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-01-25-consensus"},nextItem:{title:"Crypto Team Update",permalink:"/2023-01-20-crypto"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"CI & project mainteance",id:"ci--project-mainteance",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3},{value:"cardano-testnet",id:"cardano-testnet-1",level:3}],c={toc:u},d="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-01-25---2023-02-07"},"2023-01-25 - 2023-02-07"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli query stake-snapshot")," command. "),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4853"},"Fix how changed files are selected in stylish-haskell CI check")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4755"},"Copyright updates")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4848"},"Remove hlint from nix required CI")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4838"},"Remove reconfigure-hlint.sh script")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4837"},"Fix hlint warnings")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4833"},"Implement ADR-2: Restructure modules for generators")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4803"},"Stylish Haskell in CI")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4802"},"Revert skip doc in ci")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4800"},"Skip CI on doc only changes")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4792"},"Skip CI if only changes are documentation")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4776"},"Build all of cardano-node in CI")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4766"},"Check cabal files in CI"))),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4785"},"Straight line error handling")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4787"},"New NodeToClientVersionOf typeclass")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4832"},"Remove NoImplicitPrelude from cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4809"},"Add ReaderT of NodeToClientVersion to LocalStateQueryExpr")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4808"},"Use hoistMaybe")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4788"},"Better error message for query utxo without oops"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4805"},"New query stake-snapshot integration test")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4671"},"Make leadership-schedule test less flaky"))),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h2",{id:"ci--project-mainteance"},"CI & project mainteance"),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4761"},"Fix bug in hash computation in cardano-cli genesis create-cardano")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4636"},"Cleanup exports of cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4659"},"Render consistent plutus script failure output")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4666"},"Read network ID from environment")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4647"},"CLI option to append additional signatures to a transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"Cardano ping")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4777"},"Better error message for query utxo on oops"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4763"},"Remove simple script distinction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4753"},"Export SubmitResult from Cardano.Api"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))),(0,r.kt)("h3",{id:"cardano-testnet-1"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4845"},"Use Haskell variables for passing values"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/046dd16d.bb001f1a.js b/assets/js/046dd16d.bb001f1a.js new file mode 100644 index 0000000000..c43ac2cf57 --- /dev/null +++ b/assets/js/046dd16d.bb001f1a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[49237],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=o.createContext({}),l=function(e){var t=o.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=l(e.components);return o.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=l(r),h=n,m=u["".concat(p,".").concat(h)]||u[h]||c[h]||a;return r?o.createElement(m,i(i({ref:t},d),{},{components:r})):o.createElement(m,i({ref:t},d))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=h;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var o=r(87462),n=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-09-15-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-09-15-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-network.md",source:"@site/blog/2023-09-15-network.md",title:"Network Team Update",description:"High-level overview of sprint 44",date:"2023-09-15T00:00:00.000Z",formattedDate:"September 15, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.41,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-09-15-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-09-15-ledger"},nextItem:{title:"SRE Team Update",permalink:"/2023-09-15-sre"}},p={authorsImageUrls:[void 0]},l=[{value:"High-level overview of sprint 44",id:"high-level-overview-of-sprint-44",level:2},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"Cardano-Node-8.4.0 Release",id:"cardano-node-840-release",level:3},{value:"Towards Typed Protocols 0.2.0.0",id:"towards-typed-protocols-0200",level:3},{value:"Tech Debt",id:"tech-debt",level:3},{value:"P2P adoption",id:"p2p-adoption",level:3},{value:"Open Source",id:"open-source",level:3}],d={toc:l},u="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,o.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-44"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+44%22"},"sprint 44")),(0,n.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,n.kt)("p",null,"In this sprint, we focused on developing bootstrap peers."),(0,n.kt)("p",null,"Thanks to the input from Samuel Leathers (IOG) and John Lotoski (IOG), we\nidentified a possible improvement to bootstrap peers. A more detailed\ndescription is available ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4675"},"here"),"."),(0,n.kt)("h3",{id:"cardano-node-840-release"},"Cardano-Node-8.4.0 Release"),(0,n.kt)("p",null,"We also were responsible for the ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node-8.4.0-pre")," release. A final\nintegration ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5467"},"PR")," is currently being merged. We published\nnew versions of ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-api")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-cli"),"."),(0,n.kt)("h3",{id:"towards-typed-protocols-0200"},"Towards Typed Protocols 0.2.0.0"),(0,n.kt)("p",null,"We also updated the future ",(0,n.kt)("inlineCode",{parentName:"p"},"typed-protocols-0.2.0.0")," and its integration with\n",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node"),". This is towards our goal which we planned for the next\nquarter. The identified tasks are to fix breaking tests, and then measure and\naddress possible performance regressions."),(0,n.kt)("h3",{id:"tech-debt"},"Tech Debt"),(0,n.kt)("p",null,"Mark Tullsen (Galois) submitted two more PRs: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4663"},"ouroboros-network-#4663"),",\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4664"},"ouroboros-network-#4664"),". We provided feedback on their other pull requests: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4661"},"ouroboros-network-#4661")," and\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4660"},"ouroboros-network-#4660"),"."),(0,n.kt)("h3",{id:"p2p-adoption"},"P2P adoption"),(0,n.kt)("p",null,"In the last two weeks, there was a regression in P2P adoption concerning\nthe number of SPOs or stakes, although the number of overall P2P relays has\nincreased. Karl Knutsson (",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"Cardano Foundation"),") is investigating\nthis issue.\n",(0,n.kt)("img",{alt:"P2P relays",src:r(70480).Z,width:"2014",height:"1586"})),(0,n.kt)("p",null,"The following graphs show several different versions of relays running on the mainnet. The\ngreen line ",(0,n.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionV10.True")," denotes P2P relays, which slowly\nincrease over time. The ",(0,n.kt)("inlineCode",{parentName:"p"},"V9")," and earlier versions of the ",(0,n.kt)("inlineCode",{parentName:"p"},"node-to-node"),"\nthe protocol indicates nodes version ",(0,n.kt)("inlineCode",{parentName:"p"},"1.35.x")," or earlier.\n",(0,n.kt)("img",{alt:"node versions",src:r(20669).Z,width:"2016",height:"1576"})),(0,n.kt)("p",null,"Data has been kindly provided by ",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"Cardano Foundation")," and their mainnet\nmonitoring infrastructure."),(0,n.kt)("h3",{id:"open-source"},"Open Source"),(0,n.kt)("p",null,"We are in the process of upstreaming our ffi to Windows Named Pipes API to the ",(0,n.kt)("inlineCode",{parentName:"p"},"Win32")," package, see ","[win32-220]","."))}c.isMDXComponent=!0},70480:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/2023-09-14-p2p-relays-1b3da3da7ec3915f63ca8668bd38aff9.png"},20669:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/2023-09-14-relay-versions-a689a96e93e12ee1c78dfe14229f0ea9.png"}}]); \ No newline at end of file diff --git a/assets/js/04ae583b.291ccae9.js b/assets/js/04ae583b.291ccae9.js new file mode 100644 index 0000000000..f2f3a6dd37 --- /dev/null +++ b/assets/js/04ae583b.291ccae9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70057],{2851:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"reports"}')}}]); \ No newline at end of file diff --git a/assets/js/04c3317f.1984c407.js b/assets/js/04c3317f.1984c407.js new file mode 100644 index 0000000000..c0ae15ec25 --- /dev/null +++ b/assets/js/04c3317f.1984c407.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[83050],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),m=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=m(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=m(r),c=a,h=u["".concat(i,".").concat(c)]||u[c]||d[c]||s;return r?n.createElement(h,o(o({ref:t},p),{},{components:r})):n.createElement(h,o({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,o=new Array(s);o[0]=c;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var m=2;m{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var n=r(87462),a=(r(67294),r(3905));const s={title:"System Test Team Update",slug:"2023-03-27-system-test",authors:"mkoura",tags:["system-test"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-27-system-test",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-27-system-test.md",source:"@site/blog/2023-03-27-system-test.md",title:"System Test Team Update",description:"High level summary",date:"2023-03-27T00:00:00.000Z",formattedDate:"March 27, 2023",tags:[{label:"system-test",permalink:"/tags/system-test"}],readingTime:.785,hasTruncateMarker:!1,authors:[{name:"Martin Kourim",title:"System Test Engineer",url:"https://github.com/mkoura",imageURL:"https://github.com/mkoura.png",key:"mkoura"}],frontMatter:{title:"System Test Team Update",slug:"2023-03-27-system-test",authors:"mkoura",tags:["system-test"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-03-31-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2023-03-24-hydra"}},i={authorsImageUrls:[void 0]},m=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Framework improvements:",id:"framework-improvements",level:3},{value:"Node:",id:"node",level:3},{value:"DB-Sync:",id:"db-sync",level:3}],p={toc:m},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"Since the last update (2023-1-13) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the ",(0,a.kt)("em",{parentName:"p"},"1.35.5")," and ",(0,a.kt)("em",{parentName:"p"},"1.35.6")," releases (and their predecessing release candidates) and ran tests on branch with the ",(0,a.kt)("em",{parentName:"p"},"UTxO-HD")," functionality."),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"framework-improvements"},"Framework improvements:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"improvements in searching for unexpected error messages in log files during test run"),(0,a.kt)("li",{parentName:"ul"},"added support for UTxO-HD testing"),(0,a.kt)("li",{parentName:"ul"},"added support for the new P2P topology format"),(0,a.kt)("li",{parentName:"ul"},"added local cluster variant that has the same properties as mainnet (epoch length, fees, etc.)"),(0,a.kt)("li",{parentName:"ul"},"added preliminary support for the Conway era"),(0,a.kt)("li",{parentName:"ul"},"added support for running tests on the ",(0,a.kt)("em",{parentName:"li"},"Preview")," testnet")),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node-tests/pulls?q=is%3Apr+is%3Aclosed+updated%3A2023-01-13..2023-03-26"},"Full list of closed PRs")),(0,a.kt)("h3",{id:"node"},"Node:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"ran tests on node branch with the UTxO-HD functionality"),(0,a.kt)("li",{parentName:"ul"},"tested the ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/test_results/node/tag_1_35_5.html"},"1.35.5")," release"),(0,a.kt)("li",{parentName:"ul"},"tested the ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/test_results/node/tag_1_35_6.html"},"1.35.6")," release")),(0,a.kt)("h3",{id:"db-sync"},"DB-Sync:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"improvements in db-sync sync tests"),(0,a.kt)("li",{parentName:"ul"},"improvements in db-sync functional tests")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/04d19f61.5e25ea99.js b/assets/js/04d19f61.5e25ea99.js new file mode 100644 index 0000000000..f4d8ac06e8 --- /dev/null +++ b/assets/js/04d19f61.5e25ea99.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[57071],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),u=p(a),d=n,h=u["".concat(c,".").concat(d)]||u[d]||m[d]||l;return a?r.createElement(h,i(i({ref:t},s),{},{components:a})):r.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=d;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[u]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-02-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",o={permalink:"/2024-02-15-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-15-node-cli-api.md",source:"@site/blog/2024-02-15-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-02-15T00:00:00.000Z",formattedDate:"February 15, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.01,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-02-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-02-16-sre"},nextItem:{title:"Ledger Team Update",permalink:"/2024-02-14-ledger"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],s={toc:p},u="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-02-01---2024-02-15"},"2024-02-01 - 2024-02-15"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"cardano-cli: Added the 'immutable' tip parameter to conway queries that allow the user to query either the current volatile tip (default) or the immutable tip. The committee keys can now sign transactions, required to submit votes. ")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"cardano-api: Fix Conway PlutusV3 script hash mismatch. Make committee hash prefixes CIP-5 compliant. "))),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/608"},"Release 8.20.1.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/607"},"Upgrade cardano-api to 8.38.0.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/605"},"Fix error messages as CLI format is no longer supported")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/603"},"Add immutable tip parameter to conway queries")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/600"},"Update 8.20.0.0 changelog")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/599"},"Fix create-testnet-data creating negative supply")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/597"},"Release 8.20.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/596"},"Make committee keys able to sign transactions")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/595"},"Cl/testnetdata")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/594"},"Make it build with ghc-9.8"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/452"},"Fix Conway script hash mismatch")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/451"},"Release 8.38.0.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/446"},"Release 8.38.0.1")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/445"},"Fix removal of toScriptIndex export")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/443"},"Fix haddock in checkLedgerState")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/442"},"Release 8.38.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/441"},"Make committee keys able to sign transactions")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/440"},"Make committee hash prefixes CIP-5 compliant"))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5664"},"cardano-testnet: read JSON from the CLI more easily")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5658"},"Use environment variable for network magic instead of CLI arg in testnet tests"))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/610"},"Fix git revision reported by --version on nix build"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/051bf5d6.73ef6219.js b/assets/js/051bf5d6.73ef6219.js new file mode 100644 index 0000000000..810d13aa73 --- /dev/null +++ b/assets/js/051bf5d6.73ef6219.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1088],{30547:a=>{a.exports=JSON.parse('{"permalink":"/tags/cli-api/page/7","page":7,"postsPerPage":5,"totalPages":8,"totalCount":39,"previousPage":"/tags/cli-api/page/6","nextPage":"/tags/cli-api/page/8","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/053dec63.cb709b05.js b/assets/js/053dec63.cb709b05.js new file mode 100644 index 0000000000..bacbbaaa90 --- /dev/null +++ b/assets/js/053dec63.cb709b05.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[38951],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),c=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=c(a),d=n,h=u["".concat(p,".").concat(d)]||u[d]||m[d]||l;return a?r.createElement(h,o(o({ref:t},s),{},{components:a})):r.createElement(h,o({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:n,o[1]=i;for(var c=2;c{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-03-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",i={permalink:"/2024-03-15-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-15-node-cli-api.md",source:"@site/blog/2024-03-15-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-03-15T00:00:00.000Z",formattedDate:"March 15, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.15,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-03-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-03-15-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2024-03-15-sre"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],s={toc:c},u="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-03-01---2024-03-15"},"2024-03-01 - 2024-03-15"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-cli: Focus is on testing Conway features. Several improvements to create-testnet-data command, useful for creating/deploying local clusters for testing. Enable parallel execution of tests. ")),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/648"},"Update cardano-api-8.40.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/644"},"create-testnet-data: fix that treasury could be unexpectedly negative")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/640"},"Fix parallel ",(0,n.kt)("inlineCode",{parentName:"a"},"create-testnet-data")," stdout contents test ")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/639"},"cardano-cli-test: remove compatibility shim that is now useless")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/638"},"create-testnet-data: fix computation of not-delegated amount")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/636"},"Follow-ups of create-testnet-data+relays")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/635"},"Allow an output file to be specified for query pool-state")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/633"},"Bump cardano-ping")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/632"},"create-testnet-data: allow to specify relays for SPOs (like create-staked)"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/483"},"Fix for foldEpochState haddock"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/482"},"Expose default genesis for Conway and Alonzo, and DRepState constructors"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/480"},"New version ",(0,n.kt)("inlineCode",{parentName:"a"},"cardano-api-8.40.0.0")))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/478"},"Remove error ",(0,n.kt)("inlineCode",{parentName:"a"},'"evaluateTransactionFee: TODO support Byron key witnesses"')))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/475"},"Use the ledger's Coin instead of our custom Lovelace type"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/472"},'Revert "Remove unused constraint"'))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/470"},"Add ",(0,n.kt)("inlineCode",{parentName:"a"},"SlotNo")," and ",(0,n.kt)("inlineCode",{parentName:"a"},"BlockNo")," parameters to ",(0,n.kt)("inlineCode",{parentName:"a"},"foldEpochState"),"'s callback function"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/468"},"Expose Block constructors")))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5710"},"Update cardano-ping to the same version as cardano-cli")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5707"},"Remove flaky calls to by ",(0,n.kt)("inlineCode",{parentName:"a"},"byDeadlineM")," in ",(0,n.kt)("inlineCode",{parentName:"a"},"cardano-testnet"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5706"},"Add PARALLEL_TESTNETS flag")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5701"},"testnet: reduce log length significantly, by not logging the config")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5700"},"Use more realistic default conway genesis")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5699"},"Make testnet's nodes' ports allocation dynamic"))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/637"},"Enable parallel execution of tests (cli)")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/471"},"Enable parallel execution of tests (api)"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/05bee9ec.db3f3656.js b/assets/js/05bee9ec.db3f3656.js new file mode 100644 index 0000000000..faa66bff8f --- /dev/null +++ b/assets/js/05bee9ec.db3f3656.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[87618],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),s=p(a),m=r,h=s["".concat(c,".").concat(m)]||s[m]||u[m]||o;return a?n.createElement(h,i(i({ref:t},d),{},{components:a})):n.createElement(h,i({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:r,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2024-04-27-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2024-04-27-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-26-node-cli-api.md",source:"@site/blog/2024-04-26-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-04-26T00:00:00.000Z",formattedDate:"April 26, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.69,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-04-27-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-04-30-mithril"},nextItem:{title:"SRE Team Update",permalink:"/2024-04-26-sre"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],d={toc:p},s="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(s,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2024-04-16---2024-04-26"},"2024-04-16 - 2024-04-26"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/releases/tag/8.10.1-pre"},"8.10.1-pre")," was released to SanchoNet. "),(0,r.kt)("p",null,"The team continues focused on implementing tests for the Conway era on the cardano-node repository. This sprint the team made various improvements to\nCI pipelines on cardano-cli. "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Cardano-cli: implemented ",(0,r.kt)("inlineCode",{parentName:"li"},"build-estimate")," to facilitate automatic transaction balancing without access to a live node; and added ",(0,r.kt)("inlineCode",{parentName:"li"},"minFeeRefScriptCostPerByte")," as an option to ",(0,r.kt)("inlineCode",{parentName:"li"},"create-protocol-parameters-update")," command. ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5794"},"version bumps for 8.10.1-pre")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5802"},"Rename new 'can_forge_blocks' metric to 'forging_enabled'"))),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/736"},"add minFeeRefScriptCostPerByte to create-protocol-param-update + bump cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/728"},"Introduce new ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli latest transaction build-estimate")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/726"},"Fix misunderstanding in generated README")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/724"},"Better use of golden files in CI"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/526"},"cardano-api 8.45.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/524"},"adding MinFeeRefScriptCostPerByte to Conway PParams"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5791"},"Use random port number when starting cardano-testnet"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/05e38d95.1116f1b6.js b/assets/js/05e38d95.1116f1b6.js new file mode 100644 index 0000000000..7782ca6011 --- /dev/null +++ b/assets/js/05e38d95.1116f1b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40718],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=a,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||i;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:a,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const i={title:"Mithril Team Update",slug:"2024-02-14-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-02-14-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-14-mithril.md",source:"@site/blog/2024-02-14-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-02-14T00:00:00.000Z",formattedDate:"February 14, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.235,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-02-14-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-02-14-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2024-02-09-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the upgrade of the client library and the CLI to support the verification of Cardano transactions. They also released the new Mithril network running on SanchoNet. Additionally, the team rolled out a new feature of the Pallas chain observer (that now supports the retrieval of Mithril era markers), and kept investigating some flakiness occurring in the CI end-to-end tests."),(0,a.kt)("p",null,"Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and updated the Mithril network architecture documentation."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Published a development blog post ",(0,a.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/02/08/testing-sanchonet-network-available"},(0,a.kt)("strong",{parentName:"a"},"Mithril SanchoNet network released"))),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Implement transactions verification in client library")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1468"},"#1468")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Implement ",(0,a.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," commands in the client binary")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1469"},"#1469")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Create a test network on ",(0,a.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Update Mithril network architecture documentation")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1488"},"#1488")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Upgrade ",(0,a.kt)("inlineCode",{parentName:"strong"},"http")," dependency")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1474"},"#1474")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Extract database feature from common crate")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1492"},"#1492")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Some end to end tests are flaky in the CI")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1147"},"#1147")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Add an example crate for the ",(0,a.kt)("inlineCode",{parentName:"strong"},"CardanoTransactions")," type")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1495"},"#1495")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Generate automatic documentation for CLIs")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1471"},"#1471"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/05f2862f.d21d4e42.js b/assets/js/05f2862f.d21d4e42.js new file mode 100644 index 0000000000..e7e70a2f51 --- /dev/null +++ b/assets/js/05f2862f.d21d4e42.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18479],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),h=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=h(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=h(r),m=n,d=p["".concat(s,".").concat(m)]||p[m]||c[m]||o;return r?a.createElement(d,i(i({ref:t},u),{},{components:r})):a.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var h=2;h{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>h});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-04-07-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-04-07-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-07-hydra.md",source:"@site/blog/2023-04-07-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-04-07T00:00:00.000Z",formattedDate:"April 7, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.875,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-04-07-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-04-14-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-04-06-mithril"}},s={authorsImageUrls:[void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:h},p="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team published the monthly report for March, created\nseparate links for different versions of documentation, and clarified potential\nsolutions for the Rollbacks bug. The team also discussed Query API requests for\nthe Hydra Voting project and met with community members to answer questions\nabout Hydra. Moving forward, the team plans to integrate the specification into\nthe repository, implement a short-term fix for the Rollbacks issue, and draft a\nQuery API ADR."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Published monthly reports on ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-03"},"website")),(0,n.kt)("li",{parentName:"ul"},"Separate last released and latest versions of docs (e.g. normal ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/core-concepts/behavior/#replay-of-past-server-outputs"},"released")," vs. ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/unstable/core-concepts/behavior/#replay-of-past-server-outputs"},"/unstable"),")"),(0,n.kt)("li",{parentName:"ul"},"Discussed Query API concerns from Hydra Voting project (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/discussions/797"},"link"),")"),(0,n.kt)("li",{parentName:"ul"},"Clarified rollbacks bug and defined possible solutions (short and long term) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Met with community members to answer questions about Hydra")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Finally get the docs integrated into the repository ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/693"},"#693")),(0,n.kt)("li",{parentName:"ul"},"Dirt road fix for rollbacks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Disclaimer text and detail known issues about mainnet compatibility\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/713"},"#713"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0645cd02.3fc1c02a.js b/assets/js/0645cd02.3fc1c02a.js new file mode 100644 index 0000000000..d4b5976129 --- /dev/null +++ b/assets/js/0645cd02.3fc1c02a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46982],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,m=h["".concat(u,".").concat(c)]||h[c]||d[c]||l;return r?a.createElement(m,o(o({ref:t},s),{},{components:r})):a.createElement(m,o({ref:t},s))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=c;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[h]="string"==typeof e?e:n,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-07-21-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-07-21-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-21-ledger.md",source:"@site/blog/2023-07-21-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-07-21T00:00:00.000Z",formattedDate:"July 21, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.715,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-07-21-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-07-21-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-07-21-sre"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"What we achieved",id:"what-we-achieved",level:2},{value:"What is currently in progress",id:"what-is-currently-in-progress",level:2}],s={toc:p},h="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Our focus was on planning and implementing Conway features that we would like to see deployed and running on Sanchonet.\nAll members of the ledger team participated in the CIP-1694 workshop and had an in-person meeting, where we discussed plans forward for the Conway era.\nWe also investigated some transaction validation issues that occurred on preview with the latest node (for 8.2 release).\nAdditionally, we did some preparatory work that will help us define the types we need for Plutus V3 and integrate with the new version when it will become available.\nWe also made progress on the constraint-based generators, which can now generate valid transactions and ledger states. "),(0,n.kt)("h2",{id:"what-we-achieved"},"What we achieved"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3521"},"pull-3521"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3554"},"pull-3554"),"] Improved Governance model (GovernanceProcedures, ProposalProcedure)"),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3520"},"pull-3520"),"] Improved Governance-related naming (Renamed Tally to Gov and VDel to GovCert ) "),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3531"},"pull-3531"),"] Refactored and simplified code interacting with Plutus"),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3558"},"pull-3558"),"] Fixed a bug that was breaking validation on preview, related to refernce inputs witnesses. We backported and released the fix. "),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3550"},"pull-3550"),"] For Conway to run on Sanchonet, we updated the era Translation to remove zero-ADA outputs. This was necessary because such outputs exist on mainnet, but in Conway they are not allowed."),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3551"},"pull-3551"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3546"},"pull-3546"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3472"},"pull-3472"),"] Updated tools and added some small improvements "),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3146"},"issue-3146"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3498"},"pull-3498"),"] Introduced Conway protocol parameters "),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/2948"},"issue-2948"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3499"},"pull-3499"),"] Implemented ConwayGenesis with the new protocol parameters")),(0,n.kt)("h2",{id:"what-is-currently-in-progress"},"What is currently in progress"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3494"},"issue-3494"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3495"},"pull-3495"),"] Implement returning of proposal deposits"),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3436"},"issue-3436"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3523"},"pull-3523"),"] Implement transferring lovelace from UTxO to treasury"),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3509"},"issue-3509"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3552"},"pull-3552"),"] Add script-support for the committee hot key"),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3532"},"issue-3532"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3556"},"pull-3556"),"] Add script-support for the constitution"),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3543"},"issue-3543"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3557"},"pull-3557"),"] Improve the 'new committee' governance action by specifying the members to be replaced, expiration epoch of new members and adding script-support")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0646a177.d00a7946.js b/assets/js/0646a177.d00a7946.js new file mode 100644 index 0000000000..bbe2fd6942 --- /dev/null +++ b/assets/js/0646a177.d00a7946.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[36303],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var a=r(67294);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=a.createContext({}),s=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=l,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||n;return r?a.createElement(h,i(i({ref:t},u),{},{components:r})):a.createElement(h,i({ref:t},u))}));function h(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=r.length,i=new Array(n);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>n,metadata:()=>o,toc:()=>s});var a=r(87462),l=(r(67294),r(3905));const n={title:"Ledger Team Update",slug:"2024-02-28-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-02-28-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-28-ledger.md",source:"@site/blog/2024-02-28-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-02-28T00:00:00.000Z",formattedDate:"February 28, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.495,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-02-28-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-02-29-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2024-02-28-mithril"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements",id:"improvements",level:3},{value:"Specification",id:"specification",level:3},{value:"Releasing",id:"releasing",level:3}],u={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,l.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"Quite a useful and desired feature described in\n",(0,l.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/679"},"CIP-0110")," of allowing reference\nscripts for PlutusV1 has been implemented for Conway."),(0,l.kt)("p",null,"For the most part we are now spending time on writing tests and enhancing out tooling that\nwe use for testing. This is paying out dividends since we are finding and fixing important\nConway related bugs. Notable bugs that were squashed this time around are related to using\nincorrect stake distribution for both DReps and Stake Pools."),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4059"},"pull-4059")," - Enable Plutus v1 reference scripts in Conway"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4088"},"pull-4088")," - Committee query improvements"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4115"},"pull-4115")," - Switch to using the correct stake pool distribution for voting"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4116"},"pull-4116")," - Fix Drep stake distribution")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4100"},"pull-4100")," - PPU wellformedness tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4097"},"pull-4097")," - Test that unwithdrawn rewards contribute to voting power"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4102"},"pull-4102")," - fix ",(0,l.kt)("inlineCode",{parentName:"li"},"prop_DELEG")," in STS tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4106"},"pull-4106")," - Imp script fixes"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4118"},"pull-4118")," - Add test for maps with small domains"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4119"},"pull-4119")," - NewConstraints phase1. Add BoolFn And and Or and tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4120"},"pull-4120")," - Newconstaints phase2 rename IsUniverse (BaseUniverse), Fn (BaseFn)"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4130"},"pull-4130")," - Added tests for checking proposal network IDs"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4114"},"pull-4114")," - Imp Bootstrap address support")),(0,l.kt)("h3",{id:"improvements"},"Improvements"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4071"},"pull-4071")," - Introduction of InjectRuleFailure"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4082"},"pull-4082")," - Deprecate ",(0,l.kt)("inlineCode",{parentName:"li"},"PPUPPredFailure")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4087"},"pull-4087")," - Move ",(0,l.kt)("inlineCode",{parentName:"li"},"EpochInterval")," to ",(0,l.kt)("inlineCode",{parentName:"li"},"cardano-base")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4122"},"pull-4122")," - Use ",(0,l.kt)("inlineCode",{parentName:"li"},"MemoBytes")," in ",(0,l.kt)("inlineCode",{parentName:"li"},"ShelleyTxAuxData"))),(0,l.kt)("h3",{id:"specification"},"Specification"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4093"},"pull-4093")," - Fix small error in the prose")),(0,l.kt)("h3",{id:"releasing"},"Releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4105"},"pull-4105")," - Update ",(0,l.kt)("inlineCode",{parentName:"li"},"RELEASING")," with revisioning instructions"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4117"},"pull-4117")," - Use plutus-ledger-api 1.22.1")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0660f60e.decdff3e.js b/assets/js/0660f60e.decdff3e.js new file mode 100644 index 0000000000..c6fbbd5292 --- /dev/null +++ b/assets/js/0660f60e.decdff3e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[76131],{73340:e=>{e.exports=JSON.parse('{"permalink":"/tags/network/page/5","page":5,"postsPerPage":5,"totalPages":7,"totalCount":35,"previousPage":"/tags/network/page/4","nextPage":"/tags/network/page/6","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/066b9f60.ad98ad25.js b/assets/js/066b9f60.ad98ad25.js new file mode 100644 index 0000000000..cf72aa650a --- /dev/null +++ b/assets/js/066b9f60.ad98ad25.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[42181],{73021:a=>{a.exports=JSON.parse('{"permalink":"/tags/cli-api/page/6","page":6,"postsPerPage":5,"totalPages":8,"totalCount":39,"previousPage":"/tags/cli-api/page/5","nextPage":"/tags/cli-api/page/7","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/06a283ef.efcbc83d.js b/assets/js/06a283ef.efcbc83d.js new file mode 100644 index 0000000000..05931006fa --- /dev/null +++ b/assets/js/06a283ef.efcbc83d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2307],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=l(n),h=a,m=p["".concat(c,".").concat(h)]||p[h]||u[h]||o;return n?r.createElement(m,s(s({ref:t},d),{},{components:n})):r.createElement(m,s({ref:t},d))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=h;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB Sync Team Update",slug:"2022-10-04-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2022-10-04-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-04-db-sync.md",source:"@site/blog/2022-10-04-db-sync.md",title:"DB Sync Team Update",description:"DBSync Update",date:"2022-10-04T00:00:00.000Z",formattedDate:"October 4, 2022",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:1.65,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB Sync Team Update",slug:"2022-10-04-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-10-05-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-10-04-node-cli-api"}},c={authorsImageUrls:[void 0]},l=[{value:"DBSync Update",id:"dbsync-update",level:2},{value:"Fast restarts",id:"fast-restarts",level:3},{value:"Property based testing",id:"property-based-testing",level:3},{value:"Tech Debt",id:"tech-debt",level:3},{value:"Smash",id:"smash",level:3}],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"dbsync-update"},"DBSync Update"),(0,a.kt)("h3",{id:"fast-restarts"},"Fast restarts"),(0,a.kt)("p",null," We fixed a long overdue issue in db-sync which caused long delays on restarts\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1266"},"1266"),". This has been\none of db-sync main objectives for this period. Restarts are now very fast,\nbecause db-sync deletes almost nothing from the db, it just replays the ledger rules until it\nreaches the tip of the db. The fix also improves reconnection speed, in cases where the node\nrestarts or the connection is temporarily lost. It also speeds up even more in cases where due to a\ndeployment mess up a very old snapshot or no snapshot at all is used."),(0,a.kt)("h3",{id:"property-based-testing"},"Property based testing"),(0,a.kt)("p",null,"We added stateful property based testing, using ",(0,a.kt)("inlineCode",{parentName:"p"},"quickcheck-state-machine"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1269"},"1269"),". These tests use empty or\nalmost empty blocks to test the new behaviour of restarts and rollbacks."),(0,a.kt)("p",null," These tests generate arbitrarily a list of symbolic commands from these:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"RollForward Int\nRollBack BlockNo\nStopDBSync\nStartDBSync\nRestartNode\nAssertBlockNo BlockNo\n")),(0,a.kt)("p",null,"The commands are translated into real commands. For example ",(0,a.kt)("inlineCode",{parentName:"p"},"RollForward Int")," will forge a new block\nthat fits on the current chain. These real commands are executed against db-sync using the mock\nchain-sync server. The symbolic commands are executed against a vesy simplistic Model of db-sync\nwhich looks like this:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-haskell"}," Model\n { serverTip :: BlockNo\n , dbSyncTip :: BlockNo\n , dbSynsIsOn :: Bool\n , dbSynsHasSynced :: Bool\n }\n")),(0,a.kt)("p",null,"Finally a number of postconditions are checked, related to the eventual block number of db-sync."),(0,a.kt)("h3",{id:"tech-debt"},"Tech Debt"),(0,a.kt)("p",null,"We handled a number of tech debt in\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1275"},"1275"),"\nThis improves the code format of db-sync, deletes many queries that were never used and groups the\nothers. This tech debt resolution not only improves the experience of working in db-sync, but can\nfacilitate some of our other objectives, as it makes it very explicit which queries are used\nduring syncing and which indexes are necessary."),(0,a.kt)("h3",{id:"smash"},"Smash"),(0,a.kt)("p",null,"We worked on fixing an issue related to fetching pool metadata\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1276"},"1276"),".\nThe issue which is described in\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/issues/1270"},"1270")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/06ca6baf.3d32b254.js b/assets/js/06ca6baf.3d32b254.js new file mode 100644 index 0000000000..478bfe1452 --- /dev/null +++ b/assets/js/06ca6baf.3d32b254.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67644],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||i;return r?a.createElement(d,o(o({ref:t},u),{},{components:r})):a.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const i={title:"Mithril Team Update",slug:"2024-05-29-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-05-29-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-29-mithril.md",source:"@site/blog/2024-05-29-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-05-29T00:00:00.000Z",formattedDate:"May 29, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.425,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-05-29-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-05-29-consensus"},nextItem:{title:"Hydra Team Update",permalink:"/2024-05-27-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team released a new ",(0,n.kt)("a",{parentName:"p",href:"https://lookerstudio.google.com/u/0/reporting/8b05ea4b-6a43-45ea-aef2-237906ec7a42/page/kem0D?s=oi6CR5eZrnQ"},(0,n.kt)("strong",{parentName:"a"},"Mithril protocol insights dashboard"))," and a new explorer page displaying active and deregistered SPOs for the latest Cardano epochs. They also continued implementing the certification of Cardano transactions in Mithril networks by improving the throughput of the prover route of the aggregator and making progress on low-latency certification by completing the implementation of a chain block reader from the Cardano mini-protocol with Pallas."),(0,n.kt)("p",null,"Additionally, the team started working on a new beacon for signing Cardano transactions based on the chain point. Finally, they refactored the persistence library, enhanced their testing tools for Cardano transactions, and fixed a block parsing problem that prevented the signature of Cardano transactions in the test networks."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released the ",(0,n.kt)("a",{parentName:"li",href:"https://lookerstudio.google.com/u/0/reporting/8b05ea4b-6a43-45ea-aef2-237906ec7a42/page/kem0D?s=oi6CR5eZrnQ"},(0,n.kt)("strong",{parentName:"a"},"Mithril Protocol Insights Dashboard"))),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Prototype optimizations for increasing Cardano transactions proof generation throughput")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1687"},"#1687")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Retrieve Cardano blocks with ",(0,n.kt)("inlineCode",{parentName:"strong"},"chainsync")," in ",(0,n.kt)("inlineCode",{parentName:"strong"},"pallas")," PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1590"},"#1590")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Explorer display in/out SPOs in registered signers page")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1686"},"#1686")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a test Cardano transactions builder")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1667"},"#1667")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Cardano signatures are not produced on ",(0,n.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet")," and ",(0,n.kt)("inlineCode",{parentName:"strong"},"testing-mainnet"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1681"},"#1681")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Remove ",(0,n.kt)("inlineCode",{parentName:"strong"},"snapshot")," command in client CLI")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1690"},"#1690")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Block Streamer returns ",(0,n.kt)("inlineCode",{parentName:"strong"},"ChainScannedBlocks"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1704"},"#1704")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Remove connections coupling with providers in database")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1711"},"#1711")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement Resource Pooling for Block Range Merkle maps")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1698"},"#1698")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Sign Cardano transactions with ChainPoint based beacon")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1697"},"#1697")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Import Cardano transactions with ",(0,n.kt)("inlineCode",{parentName:"strong"},"ChainReader"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1705"},"#1705")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/077b979c.1d873c11.js b/assets/js/077b979c.1d873c11.js new file mode 100644 index 0000000000..a0feb2a071 --- /dev/null +++ b/assets/js/077b979c.1d873c11.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80500],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,s(s({ref:t},c),{},{components:n})):r.createElement(f,s({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-03-20-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-03-20-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-20-consensus.md",source:"@site/blog/2024-03-20-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-03-20T00:00:00.000Z",formattedDate:"March 20, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.485,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-03-20-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-03-22-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-03-20-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/46"},"Merged")," the alternative ",(0,a.kt)("inlineCode",{parentName:"li"},"fs-api")," interface for I/O using user-supplied buffers. This feature is important because it defines lower-level primitives for the filesystem API, which opens op avenues for more use cases and more efficient I/O operations (for instance when implementing ",(0,a.kt)("inlineCode",{parentName:"li"},"lsm-tree"),", which is part of our efforts to move the ledger state to disk). This feature has not been released yet."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/955"},"Implemented")," new diffusion pipelining criterion ."),(0,a.kt)("li",{parentName:"ul"},"Released Consensus packages containing backports for Node ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1"),"."),(0,a.kt)("li",{parentName:"ul"},"Focused on fixing the tests for ",(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus")," in the UTXO-HD branch. Work is ongoing.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/078fe100.234ccb45.js b/assets/js/078fe100.234ccb45.js new file mode 100644 index 0000000000..b134378bbb --- /dev/null +++ b/assets/js/078fe100.234ccb45.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[69321],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,f=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(f,i(i({ref:t},c),{},{components:r})):n.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"SRE Q4 2023 Update",slug:"2023-Q4-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2023-Q4-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q4-sre.md",source:"@site/quarterly/2023-Q4-sre.md",title:"SRE Q4 2023 Update",description:"2023-10 - 2023-12",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"sre",permalink:"/quarterly/tags/sre"}],readingTime:.915,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q4 2023 Update",slug:"2023-Q4-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Q4 2023 Update",permalink:"/quarterly/2023-Q4-performance-and-tracing"},nextItem:{title:"SRE Q1 2024 Update",permalink:"/quarterly/2024-Q1-sre"}},p={authorsImageUrls:[void 0]},s=[{value:"2023-10 - 2023-12",id:"2023-10---2023-12",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],c={toc:s},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"2023-10---2023-12"},"2023-10 - 2023-12"),(0,a.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,a.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments,\nmain SRE achievements for this quarter include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Cardano-parts support was added for cardano-db-sync, cardano-smash,\ncardano-faucet, cardano-metadata, grafana monitoring along with a number of\nother features")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Completed migration of testnets from cardano-world to the cardano-playground cluster")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Completed migration of the cardano book from cardano-world to the cardano-playground\ncluster")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Completed migration of pools from cardano-ops to the cardano-mainnet cluster")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Creation of a mainnet p2p bootstrap cluster")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Cardano sanchonet environment respins during the quarter for testing new\ncardano-node pre-release Conway era functionality")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"All environments were upgraded to cardano-node 8.7.2 or 8.7.3 by the end of\nthe quarter")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Completion of a govtool backend deployment for Voltaire chain testing")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Creation of a cardano-monitoring repository,\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-monitoring"},"cardano-monitoring"),":"),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"A new repository enabling agile deployment of EC2 monitoring servers,\ncompatible with OpenTofu grafana and mimir providers")))),(0,a.kt)("h3",{id:"next-steps"},"Next steps"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Scale down the mainnet non-p2p legacy cluster")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Add deployment support for new network services, such as Mithril")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Continue cardano-parts and operations improvements"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/07948597.c81519f9.js b/assets/js/07948597.c81519f9.js new file mode 100644 index 0000000000..9344882ffc --- /dev/null +++ b/assets/js/07948597.c81519f9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[57998],{88796:a=>{a.exports=JSON.parse('{"label":"open-source","permalink":"/tags/open-source","allTagsPath":"/tags","count":1}')}}]); \ No newline at end of file diff --git a/assets/js/07fdf123.dc46cb53.js b/assets/js/07fdf123.dc46cb53.js new file mode 100644 index 0000000000..b688b1ebd2 --- /dev/null +++ b/assets/js/07fdf123.dc46cb53.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[39439],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>b});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=a.createContext({}),p=function(e){var t=a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(i.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,i=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(r),m=n,b=c["".concat(i,".").concat(m)]||c[m]||d[m]||l;return r?a.createElement(b,o(o({ref:t},u),{},{components:r})):a.createElement(b,o({ref:t},u))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=m;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[c]="string"==typeof e?e:n,o[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>s,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const l={title:"Node Release Team Update",slug:"2023-01-13-release",authors:"disassembler",tags:["release"],hide_table_of_contents:!1},o=void 0,s={permalink:"/2023-01-13-release",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-13-release.md",source:"@site/blog/2023-01-13-release.md",title:"Node Release Team Update",description:"Node Reelease Update",date:"2023-01-13T00:00:00.000Z",formattedDate:"January 13, 2023",tags:[{label:"release",permalink:"/tags/release"}],readingTime:.64,hasTruncateMarker:!1,authors:[{name:"Samuel Leathers",title:"Service Reliability Manager",url:"https://github.com/disassembler",imageURL:"https://github.com/disassembler.png",key:"disassembler"}],frontMatter:{title:"Node Release Team Update",slug:"2023-01-13-release",authors:"disassembler",tags:["release"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-01-13-hydra"},nextItem:{title:"System Test Team Update",permalink:"/2023-01-13-system-test"}},i={authorsImageUrls:[void 0]},p=[{value:"Node Reelease Update",id:"node-reelease-update",level:2},{value:"2022-11-02 - 2023-01-13",id:"2022-11-02---2023-01-13",level:2},{value:"Executive Summary",id:"executive-summary",level:3},{value:"Completed",id:"completed",level:3},{value:"In Progress",id:"in-progress",level:3}],u={toc:p},c="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"node-reelease-update"},"Node Reelease Update"),(0,n.kt)("h2",{id:"2022-11-02---2023-01-13"},"2022-11-02 - 2023-01-13"),(0,n.kt)("h3",{id:"executive-summary"},"Executive Summary"),(0,n.kt)("p",null,"A 1.35.5 release for single relay P2P is nearly completed and should be released this month. This release is based on\n",(0,n.kt)("inlineCode",{parentName:"p"},"release/1.35")," branch and does not bump cardano-ledger."),(0,n.kt)("p",null,"The team successfully integrated an interim release bump of ledger and consensus into cardano-node master.\nThis work will not be released in a node version, but will be continued by the current dependency bump in progress."),(0,n.kt)("p",null,"We anticipate once this dependency bump is completed, regular 2 week releases will be feasible again."),(0,n.kt)("p",null,"The 1.35.4 release is being ran by more than 70% of stake pools. Planning for the mainnet hard fork date is in progress."),(0,n.kt)("h3",{id:"completed"},"Completed"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/1.35.4"},"Release 1.35.4"))),(0,n.kt)("h3",{id:"in-progress"},"In Progress"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/commits/release/1.35"},"Release 1.35.5")),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.5_rc1/src_docs/source/test_results/node/tag_1_35_5_rc1.rst"},"Test Status"))))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0801ba5a.d1bd4071.js b/assets/js/0801ba5a.d1bd4071.js new file mode 100644 index 0000000000..3fe0dc9e30 --- /dev/null +++ b/assets/js/0801ba5a.d1bd4071.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[19644],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),m=s(a),d=n,c=m["".concat(p,".").concat(d)]||m[d]||u[d]||i;return a?r.createElement(c,o(o({ref:t},h),{},{components:a})):r.createElement(c,o({ref:t},h))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-05-26-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-26-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-26-hydra.md",source:"@site/blog/2023-05-26-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-05-26T00:00:00.000Z",formattedDate:"May 26, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.11,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-05-26-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-05-26-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-05-26-ledger"}},p={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:s},m="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,'This week, the Hydra team accomplished several important tasks. They held their\nmonthly review meeting and drafted the report for May. They made progress on\nimplementing the first end-to-end journey for external commits using "Option A"\nfor normal UTxOs, while still considering "Option B". The team also integrated a\nSpanish translation contributed by the community, created micro-benchmarks for\ntransaction validation and deserialization, and made improvements to\nhydra-node\'s version reporting. Last but not least, they implemented the ability\nto commit multiple UTxOs to a head at once.'),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Held the monthly review meeting (",(0,n.kt)("a",{parentName:"li",href:"https://drive.google.com/file/d/1_N6b4RDe579TgLawiJzbE0NLofD3ljE6/view"},"recording")," + ",(0,n.kt)("a",{parentName:"li",href:"https://docs.google.com/presentation/d/1anUC3Z1idloyR6uwiSHLZtV6-LQvUcByHPMUgCBOVIA"},"slides"),") & drafted the report for May."),(0,n.kt)("li",{parentName:"ul"},"Have a first end-to-end journey for external commits implementing ","\u201c","Option A","\u201d","\nfor normal UTxOs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/887"},"#887")," (still considering ","\u201c","Option B","\u201d",")."),(0,n.kt)("li",{parentName:"ul"},"Integrated the spanish translation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/866"},"#866"),"."),(0,n.kt)("li",{parentName:"ul"},"Created micro-benchmarks for transaction validation and deserialization ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/884"},"#884"),"."),(0,n.kt)("li",{parentName:"ul"},"Improve hydra-node ","\u2013","version reporting on non-released builds ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/849"},"#849")),(0,n.kt)("li",{parentName:"ul"},"Some minor CI improvements following up last weeks changes."),(0,n.kt)("li",{parentName:"ul"},"Allow commit transactions with multiple UTxO ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/774"},"#774"),".")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Investigate and re-open our team-internal head on mainnet."),(0,n.kt)("li",{parentName:"ul"},"Improve and provide regular benchmarks for Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/186"},"#186"),"."),(0,n.kt)("li",{parentName:"ul"},"Complete external commits with script UTxOs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215"),"."),(0,n.kt)("li",{parentName:"ul"},"Authenticate network messages ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/727"},"#727"),"."),(0,n.kt)("li",{parentName:"ul"},"Add hydra as tool to developr platform ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/872"},"#872"),".")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0813fe0c.ea93897e.js b/assets/js/0813fe0c.ea93897e.js new file mode 100644 index 0000000000..b0b5af5faf --- /dev/null +++ b/assets/js/0813fe0c.ea93897e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91705],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),s=p(a),u=n,h=s["".concat(c,".").concat(u)]||s[u]||m[u]||o;return a?r.createElement(h,i(i({ref:t},d),{},{components:a})):r.createElement(h,i({ref:t},d))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-04-05-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-04-05-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-05-hydra.md",source:"@site/blog/2024-04-05-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-04-05T00:00:00.000Z",formattedDate:"April 5, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.72,hasTruncateMarker:!1,authors:[{name:"Daniel Firth",title:"Hydra Software Engineer",url:"https://github.com/locallycompact",imageURL:"https://github.com/locallycompact.png",key:"locallycompact"}],frontMatter:{title:"Hydra Team Update",slug:"2024-04-05-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-04-10-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2024-04-03-consensus"}},c={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],d={toc:p},s="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team released hydra 0.16.0, which supports cardano-node 8.9.0\nand can interpret conway blocks on the cardano-node. We have also updated some hydra\nclients to be compatible with the new hydra api format, including hydraw and kupo."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update our head and ",(0,n.kt)("inlineCode",{parentName:"li"},"hydraw")," instance to ",(0,n.kt)("inlineCode",{parentName:"li"},"master")," (a release candidate)"),(0,n.kt)("li",{parentName:"ul"},"Release 0.16.0 (without incremental decommits)"),(0,n.kt)("li",{parentName:"ul"},"Reproduce close > contest > contest scenarios using stateful testing"),(0,n.kt)("li",{parentName:"ul"},"Have end-to-end scenarios working for the improved ",(0,n.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete the improved ",(0,n.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint to unblock users"),(0,n.kt)("li",{parentName:"ul"},"Potentially release 0.17.0 (with improved ",(0,n.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint)"),(0,n.kt)("li",{parentName:"ul"},"Wrap up the incremental decommit work including the decommit action into the new TxTrace tests"),(0,n.kt)("li",{parentName:"ul"},"Use Versioned Ouroboros protocol for handshaking between nodes."),(0,n.kt)("li",{parentName:"ul"},"Update to cardano-api-8.44.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/089154c4.7c188c1d.js b/assets/js/089154c4.7c188c1d.js new file mode 100644 index 0000000000..3f50e7730a --- /dev/null +++ b/assets/js/089154c4.7c188c1d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[72344],{3905:(t,e,a)=>{a.d(e,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function o(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),u=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},d=function(t){var e=u(t.components);return n.createElement(p.Provider,{value:e},t.children)},c="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},s=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,o=t.originalType,p=t.parentName,d=i(t,["components","mdxType","originalType","parentName"]),c=u(a),s=r,h=c["".concat(p,".").concat(s)]||c[s]||m[s]||o;return a?n.createElement(h,l(l({ref:e},d),{},{components:a})):n.createElement(h,l({ref:e},d))}));function h(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=a.length,l=new Array(o);l[0]=s;var i={};for(var p in e)hasOwnProperty.call(e,p)&&(i[p]=e[p]);i.originalType=t,i[c]="string"==typeof t?t:r,l[1]=i;for(var u=2;u{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-11-02-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2022-11-02-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-node-cli-api.md",source:"@site/blog/2022-11-02-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2022-11-02T00:00:00.000Z",formattedDate:"November 2, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.265,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-11-02-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-11-02-ledger"},nextItem:{title:"Node Release Team Update",permalink:"/2022-11-02-release"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3}],d={toc:u},c="wrapper";function m(t){let{components:e,...a}=t;return(0,r.kt)(c,(0,n.Z)({},d,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2022-11-02---2022-11-15"},"2022-11-02 - 2022-11-15"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Documentation improvments"),(0,r.kt)("li",{parentName:"ul"},"Merged community contributions"),(0,r.kt)("li",{parentName:"ul"},"Exposing types from cardano-api requested by the community/other teamss"),(0,r.kt)("li",{parentName:"ul"},"Test output has been improved so diagnosing failures is now easier"),(0,r.kt)("li",{parentName:"ul"},"Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)"),(0,r.kt)("li",{parentName:"ul"},"Refactoring of cardano-testnet making it more useable as a library (ongoing)"),(0,r.kt)("li",{parentName:"ul"},"Release 1.35.4 was merged & released")),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4567"},"Community contributions - doc fixes and spelling errors"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4546"},"Reduce exposed modules in cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4587"},"Add Ord instance for AddressInEra")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4496"},"Export TxTotalAndReturnCollateralSupportedInEra from Cardano.Api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4635"},"Expose TextEnvelopeCddl from Cardano.Api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4628"},"Expose txScriptValidityToScriptValidity in Cardano.Api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4599"},"export RawBytesHexError"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/2883"},"Add Plutus minting script doc")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4575/files"},"Improve test output")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4586"},"Enable stale bot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4557"},"Add link to troubleshooting page in the wiki")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4550"},"Use environment files in Github Actions"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4544"},"Add single entrypoint for starting testnets")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4575"},"Improve cardano-testnet test output")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4595"},"Reorder module hierarchy"))),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4250"},"Optimise query leadership schedule command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4179"},"Optimise query stake snapshot command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/089f77bc.b2f37131.js b/assets/js/089f77bc.b2f37131.js new file mode 100644 index 0000000000..9ee4bf9786 --- /dev/null +++ b/assets/js/089f77bc.b2f37131.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20017],{97418:e=>{e.exports=JSON.parse('{"permalink":"/page/8","page":8,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/7","nextPage":"/page/9","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/08c82b6d.8647aa4f.js b/assets/js/08c82b6d.8647aa4f.js new file mode 100644 index 0000000000..0dc44ac252 --- /dev/null +++ b/assets/js/08c82b6d.8647aa4f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[81],{7232:a=>{a.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"updates"}')}}]); \ No newline at end of file diff --git a/assets/js/08d15232.2d6be30e.js b/assets/js/08d15232.2d6be30e.js new file mode 100644 index 0000000000..52115b73c2 --- /dev/null +++ b/assets/js/08d15232.2d6be30e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46215],{99578:a=>{a.exports=JSON.parse('{"label":"cli-api","permalink":"/tags/cli-api","allTagsPath":"/tags","count":39}')}}]); \ No newline at end of file diff --git a/assets/js/0915a78d.337eab00.js b/assets/js/0915a78d.337eab00.js new file mode 100644 index 0000000000..9658ee4ee2 --- /dev/null +++ b/assets/js/0915a78d.337eab00.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[10440],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=i,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-02-21-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-02-21-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-21-mithril.md",source:"@site/blog/2024-02-21-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-02-21T00:00:00.000Z",formattedDate:"February 21, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.29,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-02-21-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-02-21-consensus"},nextItem:{title:"Network Team Update",permalink:"/2024-02-19-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They worked on enhancing the client CLI output and almost completed the support for the verification of Cardano transactions in the browser with the WASM client. The team also worked on a new feature of the Pallas chain observer to support stake distribution retrieval, and fixed the majority of the flakiness occurring in the CI end-to-end tests. Additionally, they have deployed the new Mithril network running on SanchoNet."),(0,i.kt)("p",null,"Finally, the team created a new example crate for using the client library to verify Cardano transactions, kept working on the threat modeling and risk analysis for the Mithril network, and completed their new tool for automatic documentation generation for the CLIs."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," commands in the client binary")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1469"},"#1469")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," verification in the WASM client")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1470"},"#1470")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Some end to end tests are flaky in the CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1147"},"#1147")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Re-spin ",(0,i.kt)("inlineCode",{parentName:"strong"},"Sanchonet")," network")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1503"},"#1503")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add signing capabilities to the root route of the aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1496"},"#1496")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add an example crate for the ",(0,i.kt)("inlineCode",{parentName:"strong"},"CardanoTransactions")," type")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1495"},"#1495")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Unify test folder generation")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1508"},"#1508")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Generate automatic documentation for CLIs")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1471"},"#1471"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/092cb4d9.630fcade.js b/assets/js/092cb4d9.630fcade.js new file mode 100644 index 0000000000..f210847f00 --- /dev/null +++ b/assets/js/092cb4d9.630fcade.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43640],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Benchmarking -- Node 8.9.1",slug:"2024-03-performance-8.9.1",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},i=void 0,l={permalink:"/reports/2024-03-performance-8.9.1",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-03-performance-8.9.1.md",source:"@site/reports/2024-03-performance-8.9.1.md",title:"Benchmarking -- Node 8.9.1",description:"Setup",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"benchmarking-reports",permalink:"/reports/tags/benchmarking-reports"}],readingTime:2.285,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Benchmarking -- Node 8.9.1",slug:"2024-03-performance-8.9.1",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},prevItem:{title:"Benchmarking -- Node 8.9.0",permalink:"/reports/2024-03-performance-8.9.0"},nextItem:{title:"Benchmarking -- Node 8.9.3",permalink:"/reports/2024-05-performance-8.9.3"}},s={authorsImageUrls:[void 0]},c=[{value:"Setup",id:"setup",level:2},{value:"Observations",id:"observations",level:2},{value:"Resource Usage",id:"resource-usage",level:3},{value:"Forging Loop",id:"forging-loop",level:3},{value:"Peer propagation",id:"peer-propagation",level:3},{value:"End-to-end propagation",id:"end-to-end-propagation",level:3},{value:"Conclusion",id:"conclusion",level:3},{value:"Contact",id:"contact",level:2},{value:"Attachments",id:"attachments",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"setup"},"Setup"),(0,a.kt)("p",null,"As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0")," - baseline for previous mainnet release"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1")," - the next mainnet release")),(0,a.kt)("p",null,"For each version, we're gathering various metrics under 2 different workloads:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"value-only"),": Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"Plutus"),": Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.")),(0,a.kt)("p",null,"Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\nwere performed in the Babbage era."),(0,a.kt)("h2",{id:"observations"},"Observations"),(0,a.kt)("p",null,"These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet. "),(0,a.kt)("h3",{id:"resource-usage"},"Resource Usage"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"We can observe an overall decrease in CPU usage (2% - 4%); only GC CPU usage under value workload increases by 3%."),(0,a.kt)("li",{parentName:"ol"},"Under value workload only, Allocation rate is very slightly decreased (1%) with no change to Heap Size.")),(0,a.kt)("p",null,"Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness."),(0,a.kt)("h3",{id:"forging-loop"},"Forging Loop"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Mempool Snapshot duration increases slightly by 2ms under value workload."),(0,a.kt)("li",{parentName:"ol"},"Self-Adoption time increases by 3ms."),(0,a.kt)("li",{parentName:"ol"},"All other forger metrics do not exhibit significant change.")),(0,a.kt)("p",null,"The metric ",(0,a.kt)("em",{parentName:"p"},"'Slot start to announced'")," (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header."),(0,a.kt)("h3",{id:"peer-propagation"},"Peer propagation"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload only, Block Fetch duration and Fetched to Sending show a slight increase of 2ms each.")),(0,a.kt)("h3",{id:"end-to-end-propagation"},"End-to-end propagation"),(0,a.kt)("p",null,"This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. "),(0,a.kt)("p",null,"End-to-end propagation times on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.1")," exhibit a small increase by 1% - 2% for full blocks, while remaining virtually unchanged for small blocks."),(0,a.kt)("h3",{id:"conclusion"},"Conclusion"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The performance changes measured between ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0")," are very minor. Mainnnet performance of ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1")," is expected to be akin to ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0"),"."),(0,a.kt)("li",{parentName:"ul"},"We have not observed any performance regression being introduced in ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1"),".")),(0,a.kt)("h2",{id:"contact"},"Contact"),(0,a.kt)("p",null,"As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. "),(0,a.kt)("p",null,"We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future."),(0,a.kt)("h2",{id:"attachments"},"Attachments"),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"value-only workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(975).Z},"here"),"."),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"Plutus workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(80897).Z},"here"),"."))}d.isMDXComponent=!0},80897:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.9.1.plutus-d9187a701bca584d89b3560f59a5e472.pdf"},975:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.9.1.value-only-16f821f38b547d88c701881f741afffb.pdf"}}]); \ No newline at end of file diff --git a/assets/js/09719837.c7a3d8fc.js b/assets/js/09719837.c7a3d8fc.js new file mode 100644 index 0000000000..dd1089da3b --- /dev/null +++ b/assets/js/09719837.c7a3d8fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97618],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(f,l(l({ref:t},m),{},{components:r})):n.createElement(f,l({ref:t},m))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-11-24-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-11-24-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-24-goedel.md",source:"@site/blog/2023-11-24-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-11-24T00:00:00.000Z",formattedDate:"November 24, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.365,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-11-24-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-11-29-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-11-24-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and working on a\nperformance modelling paper"),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"completing work on chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"proof sketch of conformance property of chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"onboarding new performance modelling intern")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"new content for JLAMP paper"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/09dc29d3.e5316a48.js b/assets/js/09dc29d3.e5316a48.js new file mode 100644 index 0000000000..6809c7492b --- /dev/null +++ b/assets/js/09dc29d3.e5316a48.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18513],{62327:e=>{e.exports=JSON.parse('{"permalink":"/tags/sre/page/2","page":2,"postsPerPage":5,"totalPages":6,"totalCount":29,"previousPage":"/tags/sre","nextPage":"/tags/sre/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/09e2328d.b05813d1.js b/assets/js/09e2328d.b05813d1.js new file mode 100644 index 0000000000..8a8ae8b310 --- /dev/null +++ b/assets/js/09e2328d.b05813d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[74813],{86955:a=>{a.exports=JSON.parse('{"label":"ledger","permalink":"/tags/ledger","allTagsPath":"/tags","count":44}')}}]); \ No newline at end of file diff --git a/assets/js/0a44a251.f39d86d2.js b/assets/js/0a44a251.f39d86d2.js new file mode 100644 index 0000000000..57274873d3 --- /dev/null +++ b/assets/js/0a44a251.f39d86d2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[63565],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(a),s=r,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,l(l({ref:t},c),{},{components:a})):n.createElement(h,l({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-12-14-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2022-12-14-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-14-node-cli-api.md",source:"@site/blog/2022-12-14-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2022-12-14T00:00:00.000Z",formattedDate:"December 14, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.46,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-12-14-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2022-12-14-db-sync"},nextItem:{title:"Performance & tracing update",permalink:"/2022-12-14-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"CI & project mainteance",id:"ci--project-mainteance",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3},{value:"cardano-testnet",id:"cardano-testnet-1",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2022-12-14---2022-12-27"},"2022-12-14 - 2022-12-27"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped. "),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4703"},"Move style guide to wiki"))),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4734"},"Cache secp256k1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4717"},"Use cabal-cache")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4699"},"build(deps): bump certifi from 2020.4.5.2 to 2022.12.7 in /doc/.sphinx")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4724"},"Update cabal.project"))),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4125"},"Add aarch64-darwin to nix-shell"))),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4626"},"Improved error message for failed asset name decode")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4250"},"Optimise query leadership schedule command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4700"},"Remove cardano-cli address build-script"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4698"},"Move signing key reading to cardano-api"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4712"},"Only run chairman test on latest era")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4679"},"Add fix and test for ",(0,r.kt)("inlineCode",{parentName:"a"},"foldBlocks")))),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h2",{id:"ci--project-mainteance"},"CI & project mainteance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4755"},"Copyright updates"))),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4250"},"Optimise query leadership schedule command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4179"},"Optimise query stake snapshot command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4659"},"Render consistent plutus script failure output")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4666"},"Read network ID from environment")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4647"},"CLI option to append additional signatures to a transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"Cardano ping"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))),(0,r.kt)("h3",{id:"cardano-testnet-1"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4636"},"Cleanup exports of cardano-testnet"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0a497e30.5b3ebd5f.js b/assets/js/0a497e30.5b3ebd5f.js new file mode 100644 index 0000000000..7598d7cfb8 --- /dev/null +++ b/assets/js/0a497e30.5b3ebd5f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[35794],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=c(a),m=r,h=u["".concat(s,".").concat(m)]||u[m]||p[m]||o;return a?n.createElement(h,l(l({ref:t},d),{},{components:a})):n.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:r,l[1]=i;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=a(87462),r=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2024-05-10-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-05-10-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-10-sre.md",source:"@site/blog/2024-05-10-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-05-10T00:00:00.000Z",formattedDate:"May 10, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.69,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-05-10-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-05-10-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2024-05-08-ledger"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-faucet",id:"cardano-faucet",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3}],d={toc:c},u="wrapper";function p(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A preview of the new cardano tracing system is available by using the\n",(0,r.kt)("inlineCode",{parentName:"p"},"profile-cardano-node-new-tracing")," new nixosModule from cardano-parts and is\ncomplemented with new tracing system dashboards and alerts")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Custom cardano metrics can be pushed to a statsd server and then scraped to a\nmonitoring solution using the ",(0,r.kt)("inlineCode",{parentName:"p"},"profile-cardano-custom-metrics")," new\nnixosModule from cardano-parts")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A new cardano-parts job for spinning up clusters using a recent cardano-cli\ncommand, create-testnet-data, was implemented: ",(0,r.kt)("inlineCode",{parentName:"p"},".#job-gen-custom-node-config-data")))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"cardano-faucet"},"Cardano-faucet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Cardano-faucet was upgraded to use the latest cardano-api and cardano-cli\nversions:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-faucet/pull/10"},"cardano-faucet-pull-10"))),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-faucet-ng to 8.10, and mithril","[","-ng","]"," to 2418-1. A preview\nnixosModule for cardano-node's new tracing system has been added as well as a\ncardano custom-metrics module. Dashboards have been added for the new tracing\nsystem. Cardano-node alerts have been refactored into several rulesets which\ninclude some new alerts as well as new tracing system alerts. A job for\nspinning a cardano cluster up using a new underlying cardano-cli mechanism,\ncreate-testnet-data, was added. More detail is available in the PR description:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/40"},"cardano-parts-pull-40"))),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets mithril to 2418-1. Cardano-node alerts have been refactored into\nseveral rulesets which include some new alerts as well as new tracing system\nalerts. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/14"},"cardano-mainnet-pull-14"))),(0,r.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Cluster scaling changes and minor improvments to the perf machine cluster:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/3cce0de...5631a13"},"cardano-perf-compare"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-faucet-ng to 8.10 which fixes a sanchonet faucet instability, and\nmithril","[","-ng","]"," to 2418-1. Adds a new cardano-node tracing system preview to some\nmachines with corresponding dashboards. Cardano-node alerts have been\nrefactored into several rulesets which include some new alerts as well as new\ntracing system alerts. A job for spinning a cardano cluster up using a new\nunderlying cardano-cli mechanism, create-testnet-data, was added and integrated\nwith the Justfile start-demo recipe. Includes other misc tuning and\nimprovements. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/23"},"cardano-playground-pull-23"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0a60fad7.b0318f8e.js b/assets/js/0a60fad7.b0318f8e.js new file mode 100644 index 0000000000..848ea82a9f --- /dev/null +++ b/assets/js/0a60fad7.b0318f8e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43650],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,g=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(g,l(l({ref:t},m),{},{components:r})):n.createElement(g,l({ref:t},m))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-10-27-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-10-27-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-27-goedel.md",source:"@site/blog/2023-10-27-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-10-27T00:00:00.000Z",formattedDate:"October 27, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.305,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-10-27-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-11-01-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-10-27-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and writing a paper\non performance modelling"),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"completing work on chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"outline for JLAMP journal paper submission")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"analysing timeouts"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0a8f6579.9adf14c8.js b/assets/js/0a8f6579.9adf14c8.js new file mode 100644 index 0000000000..441d8ac37f --- /dev/null +++ b/assets/js/0a8f6579.9adf14c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40521],{61670:e=>{e.exports=JSON.parse('{"permalink":"/page/23","page":23,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/22","nextPage":"/page/24","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/0ade4266.ca05a8c7.js b/assets/js/0ade4266.ca05a8c7.js new file mode 100644 index 0000000000..6213f80d10 --- /dev/null +++ b/assets/js/0ade4266.ca05a8c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16227],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(a),c=n,m=h["".concat(s,".").concat(c)]||h[c]||d[c]||i;return a?r.createElement(m,o(o({ref:t},u),{},{components:a})):r.createElement(m,o({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-11-17-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-11-17-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-17-hydra.md",source:"@site/blog/2023-11-17-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-11-17T00:00:00.000Z",formattedDate:"November 17, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.135,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-11-17-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Initial CIP 1694 Security Analysis and Responses",permalink:"/2023-11-20-cip1694"},nextItem:{title:"Performance & Tracing Update",permalink:"/2023-11-17-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:p},h="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team made several impactful updates. They addressed\nmisleading errors regarding collect com transactions, resolved a security\nadvisory (CVE-2023-42806), and simplified the Hydra Head protocol by using\ninline datums. The team also tackled minor inconsistencies in specifications and\nimplementation, documented reasons for potentially dropped close transactions by\nthe cardano-node, and collaborated with SundaeLabs on an offline mode for\n",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node"),". Additionally, they engaged in discussions with researchers about\nincremental de-/commits."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Removed misleading errors about collect com transactions ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/839"},"#839")),(0,n.kt)("li",{parentName:"ul"},"Addressed security advisory ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/security/advisories/GHSA-gr36-mc6v-72qq"},"CVE-2023-42806")," in PR ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1161"},"#1161")),(0,n.kt)("li",{parentName:"ul"},"Changed the head protocol to use inline datums, simplifying things in the hydra-node ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1162"},"#1162")),(0,n.kt)("li",{parentName:"ul"},"Addressed minor inconsistencies in spec and implementation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1104"},"#1104")),(0,n.kt)("li",{parentName:"ul"},"Documented why close transacations might be dropped by the cardano-node (can","\u2019","t fix) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1039"},"#1039")),(0,n.kt)("li",{parentName:"ul"},"Tidy up a few things here and there"),(0,n.kt)("li",{parentName:"ul"},"Worked with SundaeLabs on the offline mode for ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")),(0,n.kt)("li",{parentName:"ul"},"Discussed incremental de-/commits with researchers")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Start work on incremental decommits protocol specification ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1057"},"#1057")),(0,n.kt)("li",{parentName:"ul"},"Provide support to Hypix"),(0,n.kt)("li",{parentName:"ul"},"Address all ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/labels/bug%20%3Abug%3A"},"open bugs")),(0,n.kt)("li",{parentName:"ul"},"Release version 0.14.0 with ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/milestone/14?closed=1"},"this scope")),(0,n.kt)("li",{parentName:"ul"},"Update dependencies to prepare for Conway ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1114"},"#1114")),(0,n.kt)("li",{parentName:"ul"},"Shepherd off-line mode PR over the finish line"),(0,n.kt)("li",{parentName:"ul"},"Complete tidying up chain layer via stateless observation changes in hydra-node ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1096"},"#1096"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0af81f82.de9ddace.js b/assets/js/0af81f82.de9ddace.js new file mode 100644 index 0000000000..6c678f8b2b --- /dev/null +++ b/assets/js/0af81f82.de9ddace.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[10114],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=p(a),c=n,m=d["".concat(u,".").concat(c)]||d[c]||h[c]||l;return a?r.createElement(m,o(o({ref:t},s),{},{components:a})):r.createElement(m,o({ref:t},s))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=c;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:n,o[1]=i;for(var p=2;p{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2023-03-31-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-03-31-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-31-ledger.md",source:"@site/blog/2023-03-31-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-03-31T00:00:00.000Z",formattedDate:"March 31, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.97,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-03-31-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-03-31-hydra"},nextItem:{title:"System Test Team Update",permalink:"/2023-03-27-system-test"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Support for the next release",id:"support-for-the-next-release",level:3},{value:"Experiments for DRep stake distribution",id:"experiments-for-drep-stake-distribution",level:3},{value:"Technical debt and bug fixes",id:"technical-debt-and-bug-fixes",level:3},{value:"Documentation changes",id:"documentation-changes",level:3}],s={toc:p},d="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"We are still heavily involved in work related to preparing the next release.\nThe other main thing we have worked on is experimentation about how we will\nhandle the DRep stake distribution for CIP-1694 in the conway ledger era.\nLastly, we merged a fix for\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/issues/4826"},"node-4826"),"\ninto our main branch (there will be a post-mortem shortly)."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"support-for-the-next-release"},"Support for the next release"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3363"},"pull-3363")," - Fix problems relating to Arbitrary instances used by consensus."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3361"},"pull-3361")," - Remove the alonze genesis from the conway genesis."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3360"},"pull-3360")," - Translate bad pointer addresses to valid ones in conway."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3357"},"pull-3357")," - Fix a bug relating to zero valued ADA in the script context."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3356"},"pull-3356")," - Added needed instances (Arbitrary and Serialization) for conway integration."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3345"},"pull-3345")," - Added helper functions for the CLI."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3342"},"pull-3342")," - Fix a bug with a CLI helper function (having to do with deposit tracking).")),(0,n.kt)("h3",{id:"experiments-for-drep-stake-distribution"},"Experiments for DRep stake distribution"),(0,n.kt)("p",null,"Adding another stake distribution to the ledger state presents some new challenges.\nWe would like to be able to use the current stake distribution at the epoch boundary\nfor DRep voting so that people can always vote themselves in time for any proposal.\nTo this end, we have a prototype of an incremental computation based on the incremental\nlambda calculus, together with tests and benchmarks (which are very promising).\nSee ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3344"},"pull-3344"),"."),(0,n.kt)("p",null,"Additionally, more of the ledger state is going to need to be rearranged to accomodate\nthe new incremental computations.\nWe have two draft PRs up for possibles solution.\nSee ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3353"},"pull-3353")," and ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3364"},"pull-3364"),"."),(0,n.kt)("h3",{id:"technical-debt-and-bug-fixes"},"Technical debt and bug fixes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3343"},"pull-3343")," - A fix ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/issues/4826"},"node-4826"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3333"},"pull-3333")," - Moving more code out of the shelley packages. "),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3347"},"pull-3347")," - Bug fix for the multi-asset generators."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3341"},"pull-3341")," - Removal of code duplication.")),(0,n.kt)("h3",{id:"documentation-changes"},"Documentation changes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3354"},"pull-3354"),' - Rename "optional datums" with "supplemental datums" in the alonzo spec.'),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3352"},"pull-3352")," - Add a section to the Shelly errata about the individual deposit tracking."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3351"},"pull-3351")," - Further clarify the details regarding the script integrity hash."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3350"},"pull-3350")," - Some cleanup of the Babbage spec.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0b0bfceb.f6487362.js b/assets/js/0b0bfceb.f6487362.js new file mode 100644 index 0000000000..f2fa6988e7 --- /dev/null +++ b/assets/js/0b0bfceb.f6487362.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[60903],{3905:(e,a,t)=>{t.d(a,{Zo:()=>p,kt:()=>h});var r=t(67294);function n(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function o(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);a&&(r=r.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var a=1;a=0||(n[t]=e[t]);return n}(e,a);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var i=r.createContext({}),c=function(e){var a=r.useContext(i),t=a;return e&&(t="function"==typeof e?e(a):l(l({},a),e)),t},p=function(e){var a=c(e.components);return r.createElement(i.Provider,{value:a},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var a=e.children;return r.createElement(r.Fragment,{},a)}},m=r.forwardRef((function(e,a){var t=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(t),m=n,h=u["".concat(i,".").concat(m)]||u[m]||d[m]||o;return t?r.createElement(h,l(l({ref:a},p),{},{components:t})):r.createElement(h,l({ref:a},p))}));function h(e,a){var t=arguments,n=a&&a.mdxType;if("string"==typeof e||n){var o=t.length,l=new Array(o);l[0]=m;var s={};for(var i in a)hasOwnProperty.call(a,i)&&(s[i]=a[i]);s.originalType=e,s[u]="string"==typeof e?e:n,l[1]=s;for(var c=2;c{t.r(a),t.d(a,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=t(87462),n=(t(67294),t(3905));const o={title:"SRE Team Update",slug:"2023-10-13-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,s={permalink:"/2023-10-13-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-13-sre.md",source:"@site/blog/2023-10-13-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-10-13T00:00:00.000Z",formattedDate:"October 13, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:2.595,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-10-13-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-10-13-ledger"},nextItem:{title:"Mithril Team Update",permalink:"/2023-10-11-mithril"}},i={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Sanchonet-demo",id:"sanchonet-demo",level:3}],p={toc:c},u="wrapper";function d(e){let{components:a,...t}=e;return(0,n.kt)(u,(0,r.Z)({},p,t,{components:a,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet environment was updated to 8.5.0-pre."),(0,n.kt)("li",{parentName:"ul"},"Cardano-parts now supports cardano-db-sync, cardano-smash, cardano-faucet and grafana cloud monitoring")),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Various improvements and fixes including:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add GHA cron schedule"),(0,n.kt)("li",{parentName:"ul"},"Add nix auto-gc to avoid running out of storage during large package set builds"),(0,n.kt)("li",{parentName:"ul"},"Add new packages to capkgs"),(0,n.kt)("li",{parentName:"ul"},"Reduce runner storage requirement leaving more room for builds"),(0,n.kt)("li",{parentName:"ul"},"Restructure capkgs attribute names to avoid package name collisions"),(0,n.kt)("li",{parentName:"ul"},"Return to non-musl builds for cardano packages to retain journald compatability"),(0,n.kt)("li",{parentName:"ul"},"Update cache usage to from file level to folder level to reduce network and latency overhead"),(0,n.kt)("li",{parentName:"ul"},"Commit diff: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/a274b72...b197e22"},"capkgs-compare"))))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updates cardano-node-ng to 8.5.0-pre and adds a Conway era automation job: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/16"},"cardano-parts-pull-16")),(0,n.kt)("li",{parentName:"ul"},"Dbsync, smash, faucet and more: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/15"},"cardano-parts-pull-15"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Adds cardano-db-sync, cardano-faucet, cardano-postgres, cardano-smash, profiles and/or services and related changes"),(0,n.kt)("li",{parentName:"ul"},"Adds nginx vhost metrics exporter profile"),(0,n.kt)("li",{parentName:"ul"},"Adds smash registered-relay-dump service and exporter for use until legacy relay nodes are scaled down"),(0,n.kt)("li",{parentName:"ul"},"Adds bash *-ng autocompletion compatible wrappers"),(0,n.kt)("li",{parentName:"ul"},"Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview"),(0,n.kt)("li",{parentName:"ul"},"Adds downstream grafana cloud dashboard as templates"),(0,n.kt)("li",{parentName:"ul"},"Adds downstream grafana cloud alerts as templates"),(0,n.kt)("li",{parentName:"ul"},"Updates grafana-agent profile with new exporter scrape hooks: cardano-db-sync, cardano-faucet, nginx-vts, varnish"),(0,n.kt)("li",{parentName:"ul"},"Updates the basic profile with IOG cache and commonly used bins"),(0,n.kt)("li",{parentName:"ul"},"Updates the pre-release profile to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning"),(0,n.kt)("li",{parentName:"ul"},"Updates flakeModule jobs with new conway era automation and additional IO encryption shimming and file type checks"),(0,n.kt)("li",{parentName:"ul"},"Updates .sops.yaml template for supporting faucet secrets, workbench secrets, state-demo secrets"),(0,n.kt)("li",{parentName:"ul"},"Updates the Justfile template with terraform fixes for workspace switching and provider auto-reconfiguration"),(0,n.kt)("li",{parentName:"ul"},"Updates the cloudFormation terraformState template with stack modifications to preserve all resources in case of deletion"),(0,n.kt)("li",{parentName:"ul"},"Updates the colmena template with dbsync, smash, faucet machines profiles and roles"),(0,n.kt)("li",{parentName:"ul"},"Improves prior cardano-postgres modules to now automatically tune pg parameters based on machine cpuCount, memMiB and desired conns"),(0,n.kt)("li",{parentName:"ul"},"Bumps capkgs node-ng to 8.5.0-pre")))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Dbsync, smash, faucet and more: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/3"},"cardano-playground-pull-3"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview"),(0,n.kt)("li",{parentName:"ul"},"Adds dbsync, smash, faucet machines and corresponding metrics exporters, dashboards and alerts"),(0,n.kt)("li",{parentName:"ul"},"Moves the flake.cardano-parts.cluster.group attrSet name to groups to accurately reflect the plurality and the upstream corresponding change"),(0,n.kt)("li",{parentName:"ul"},"Optimizes machine sizes"),(0,n.kt)("li",{parentName:"ul"},"Updates .sops.yaml for supporting faucet secrets, workbench secrets, state-demo secrets"),(0,n.kt)("li",{parentName:"ul"},"Updates the cloudFormation terraformState file with stack modifications to preserve all resources in case of deletion"),(0,n.kt)("li",{parentName:"ul"},"Updates the cluster isNg definition to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning"),(0,n.kt)("li",{parentName:"ul"},"Updates the Justfile with terraform fixes for workspace switching and provider auto-reconfiguration")))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update sanchonet network to cardano-node 8.5.0: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/c8a480fa7cdb6eff4f8b4565450c57361ddfdec4"},"cardano-world-commit"))),(0,n.kt)("h3",{id:"sanchonet-demo"},"Sanchonet-demo"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update for cardano-node 8.5.0, conway job recipes and cardano-parts interface changes: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet-demo/commit/4124465c0c663d11c8cf4ef80af18a5246f89b31"},"sanchonet-demo-commit"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0b1b72af.c3bb6e44.js b/assets/js/0b1b72af.c3bb6e44.js new file mode 100644 index 0000000000..ec9412c247 --- /dev/null +++ b/assets/js/0b1b72af.c3bb6e44.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[26276],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=s(r),h=n,g=m["".concat(u,".").concat(h)]||m[h]||c[h]||i;return r?a.createElement(g,l(l({ref:t},p),{},{components:r})):a.createElement(g,l({ref:t},p))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,l=new Array(i);l[0]=h;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2022-12-09-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2022-12-09-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-09-crypto.md",source:"@site/blog/2022-12-09-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2022-12-09T00:00:00.000Z",formattedDate:"December 9, 2022",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.39,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2022-12-09-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2022-12-12-network"},nextItem:{title:"Hydra Team Update",permalink:"/2022-12-09-hydra"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"MuSig2",id:"musig2",level:3},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:2}],p={toc:s},m="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The four open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency. "),(0,n.kt)("li",{parentName:"ul"},"Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe. "),(0,n.kt)("li",{parentName:"ul"},"cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack. "),(0,n.kt)("li",{parentName:"ul"},"KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"musig2"},"MuSig2"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"[Still in progress]"," We are introducing a more granular error handling mechanism ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/33"},"PR#33")),(0,n.kt)("li",{parentName:"ul"},"We merged the API redesig ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/35"},"PR#35")),(0,n.kt)("li",{parentName:"ul"},"We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/36"},"PR#36"))),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We merged the individual signature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/620"},"PR#620")),(0,n.kt)("li",{parentName:"ul"},"We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes/commits/master"},"kes repo"),") ")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Nothing new to report. Still working in merging these PRs. "),(0,n.kt)("li",{parentName:"ul"},"We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a ",(0,n.kt)("a",{parentName:"li",href:"https://gitlab.haskell.org/ghc/ghc/-/issues/22564"},"bug in GHC"))),(0,n.kt)("h2",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We keep progressing in the secure forgetting PR and resolving some bugs on memory handling ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/255"},"PR#255")),(0,n.kt)("li",{parentName:"ul"},"Fixed a 'use-after-free' bug in the KES agent.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0b5e25e7.b695abc4.js b/assets/js/0b5e25e7.b695abc4.js new file mode 100644 index 0000000000..a0f300b7c5 --- /dev/null +++ b/assets/js/0b5e25e7.b695abc4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23621],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=l(n),h=o,d=c["".concat(u,".").concat(h)]||c[h]||m[h]||a;return n?r.createElement(d,s(s({ref:t},p),{},{components:n})):r.createElement(d,s({ref:t},p))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,s=new Array(a);s[0]=h;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:o,s[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var r=n(87462),o=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-11-01-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-11-01-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-01-consensus.md",source:"@site/blog/2023-11-01-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-11-01T00:00:00.000Z",formattedDate:"November 1, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.44,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-11-01-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-11-08-mithril"},nextItem:{title:"Mithril Team Update",permalink:"/2023-11-01-mithril"}},u={authorsImageUrls:[void 0]},l=[{value:"High level summary",id:"high-level-summary",level:2}],p={toc:l},c="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"This week the Consensus team made progress on two fronts: the question of ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/422"},"survivable eclipse duration"),", which is part of our work ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/427"},"supporting Genesis delivery"),", and how to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4251"},"improve the handling of blocks from the future"),".\nRegarding the UTxO-HD branch, we managed to run a node with ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/344"},"legacy blocks"),", which is syncing with mainnet, up to including Alonzo.\nWe also ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/465#issuecomment-1788685122"},"investigated")," a regression in mempool snapshotting, which was ultimately solved by a Ledger update, and will be fixed in the upcoming Node 8.6 release."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0bbf8a95.2da884ff.js b/assets/js/0bbf8a95.2da884ff.js new file mode 100644 index 0000000000..e5e46ac4e9 --- /dev/null +++ b/assets/js/0bbf8a95.2da884ff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25456],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>u});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),c=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=c(e.components);return a.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),d=c(r),s=n,u=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return r?a.createElement(u,i(i({ref:t},h),{},{components:r})):a.createElement(u,i({ref:t},h))}));function u(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:n,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2024-04-19-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-04-19-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-19-hydra.md",source:"@site/blog/2024-04-19-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-04-19T00:00:00.000Z",formattedDate:"April 19, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.5,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-04-19-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-04-24-mithril"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-04-19-performance-and-tracing"}},p={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:c},d="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team refactored the heartbeat logic to prepare for the versioned network protocol. They have also switched ",(0,n.kt)("a",{parentName:"p",href:"http://explorer.hydra.family"},"http://explorer.hydra.family")," to run on the ",(0,n.kt)("inlineCode",{parentName:"p"},"preview")," network. Additionally, the team has added property tests to the ",(0,n.kt)("inlineCode",{parentName:"p"},"/commit")," endpoint changes."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Refactor heartbeat logic to prepare for versioned network protocol."),(0,n.kt)("li",{parentName:"ul"},"Switch ",(0,n.kt)("a",{parentName:"li",href:"http://explorer.hydra.family"},"http://explorer.hydra.family")," to run on ",(0,n.kt)("inlineCode",{parentName:"li"},"preview")," network."),(0,n.kt)("li",{parentName:"ul"},"Add property tests to ",(0,n.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint changes")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Attend and connect with community on Cardano Builder Fest"),(0,n.kt)("li",{parentName:"ul"},"Merge new ",(0,n.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint changes")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0bfabad2.4c2eca52.js b/assets/js/0bfabad2.4c2eca52.js new file mode 100644 index 0000000000..9e9ab9de7e --- /dev/null +++ b/assets/js/0bfabad2.4c2eca52.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[62670],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(h,l(l({ref:t},p),{},{components:n})):r.createElement(h,l({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Benchmarking -- Node 9.0.0",slug:"2024-07-performance-9.0.0",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},l=void 0,i={permalink:"/reports/2024-07-performance-9.0.0",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-07-performance-9.0.0.md",source:"@site/reports/2024-07-performance-9.0.0.md",title:"Benchmarking -- Node 9.0.0",description:"Setup",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"benchmarking-reports",permalink:"/reports/tags/benchmarking-reports"}],readingTime:3.255,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Benchmarking -- Node 9.0.0",slug:"2024-07-performance-9.0.0",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},prevItem:{title:"Benchmarking -- Node 8.12.1",permalink:"/reports/2024-06-performance-8.12.1"}},s={authorsImageUrls:[void 0]},c=[{value:"Setup",id:"setup",level:2},{value:"Observations",id:"observations",level:2},{value:"Resource Usage",id:"resource-usage",level:3},{value:"Forging Loop",id:"forging-loop",level:3},{value:"Peer propagation",id:"peer-propagation",level:3},{value:"End-to-end propagation",id:"end-to-end-propagation",level:3},{value:"Conclusion",id:"conclusion",level:3},{value:"Contact",id:"contact",level:2},{value:"Attachments",id:"attachments",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"setup"},"Setup"),(0,a.kt)("p",null,"As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.12.1")," - baseline from a previous mainnet release"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"9.0.0")," - the current mainnet release")),(0,a.kt)("p",null,"For each version, we're gathering various metrics under 2 different workloads:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"value-only"),": Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"Plutus"),": Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.")),(0,a.kt)("p",null,"Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\nwere performed in the Conway era."),(0,a.kt)("h2",{id:"observations"},"Observations"),(0,a.kt)("p",null,"These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet. "),(0,a.kt)("h3",{id:"resource-usage"},"Resource Usage"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload Process and Mutator CPU usage are slightly higher on ",(0,a.kt)("inlineCode",{parentName:"li"},"9.0")," - 7% - 8% (4% each under Plutus workload). GC CPU is increased by 11%, but decreases under Putus workload by 3%."),(0,a.kt)("li",{parentName:"ol"},"Only under value workload, Allocation Rate and Minor GCs increase by 5% and the live GC dataset grows by 3%. Heap size is constant."),(0,a.kt)("li",{parentName:"ol"},"CPU 85% spans are 8% shorter (3% under Plutus workload).")),(0,a.kt)("p",null,"Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness."),(0,a.kt)("h3",{id:"forging-loop"},"Forging Loop"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Mempool Snapshotting and Self Adoption time on the block producer increase very slightly under value workload - 2ms (or 3%) each."),(0,a.kt)("li",{parentName:"ol"},"Under Plutus workload, however, a decrease in Self Adoption time by 2ms (or 4%) is the only significant change in the forging loop.")),(0,a.kt)("p",null,"The metric ",(0,a.kt)("em",{parentName:"p"},"'Slot start to announced'")," (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header."),(0,a.kt)("h3",{id:"peer-propagation"},"Peer propagation"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Block Fetch duration is 21ms faster (6%) - 7ms or 5% under Plutus workload."),(0,a.kt)("li",{parentName:"ol"},"Fetched to Sending increases slightly by 3ms (7%) - only under value workload."),(0,a.kt)("li",{parentName:"ol"},"Adoption times on the peers increase slightly by 4ms (5%) - under Plutus workload, however, they are 3ms (6%) faster.")),(0,a.kt)("h3",{id:"end-to-end-propagation"},"End-to-end propagation"),(0,a.kt)("p",null,"This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. "),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload / full blocks on ",(0,a.kt)("inlineCode",{parentName:"li"},"9.0"),", we can observe a 4% - 5% improvement of cluster adoption times in the 80th centile and above."),(0,a.kt)("li",{parentName:"ol"},"Under Plutus workload / small blocks, the corresponding improvement is 5% - 6%."),(0,a.kt)("li",{parentName:"ol"},"The main contributing factor is the improvement in Block Fetch duration.")),(0,a.kt)("h3",{id:"conclusion"},"Conclusion"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Network performance clearly improves by ~%5 for 80% to full cluster adoption - independent of workload."),(0,a.kt)("li",{parentName:"ul"},"RAM usage is unchanged on ",(0,a.kt)("inlineCode",{parentName:"li"},"9.0"),". The slight rise in CPU usage is expected, given improved network performance, and does not pose cause for concern."),(0,a.kt)("li",{parentName:"ul"},"We have not observed any performance regression being introduced in ",(0,a.kt)("inlineCode",{parentName:"li"},"9.0.0."),".")),(0,a.kt)("p",null,"NB. These benchmarks were performed in the Conway ledger era. As such, they do not cover the one-time performance cost of transitioning from Babbage and enabling the new features of the Conway ledger."),(0,a.kt)("h2",{id:"contact"},"Contact"),(0,a.kt)("p",null,"As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. "),(0,a.kt)("p",null,"We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future."),(0,a.kt)("h2",{id:"attachments"},"Attachments"),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"value-only workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(27243).Z},"here"),"."),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"Plutus workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(87728).Z},"here"),"."),(0,a.kt)("p",null,"NB. The release benchmarks for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.1")," were performed on tag ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0-pre"),". The patch version bump did not include changes relevant to performance; thus, measurements taken on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0-pre")," remain valid."))}d.isMDXComponent=!0},87728:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-9.0.0.plutus-8385e89a67774584329c93e59dcfe545.pdf"},27243:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-9.0.0.value-only-8ef8064d6bb04de733985e12e9a9e5ea.pdf"}}]); \ No newline at end of file diff --git a/assets/js/0c10bcf4.b4a8688c.js b/assets/js/0c10bcf4.b4a8688c.js new file mode 100644 index 0000000000..aee9583264 --- /dev/null +++ b/assets/js/0c10bcf4.b4a8688c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[72872],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),u=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),h=u(a),m=n,c=h["".concat(s,".").concat(m)]||h[m]||d[m]||i;return a?r.createElement(c,o(o({ref:t},p),{},{components:a})):r.createElement(c,o({ref:t},p))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-05-19-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-19-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-19-hydra.md",source:"@site/blog/2023-05-19-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-05-19T00:00:00.000Z",formattedDate:"May 19, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.045,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-05-19-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-05-24-node-cli-api"},nextItem:{title:"Consensus Team Update",permalink:"/2023-05-17-consensus"}},s={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:u},h="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,'This week, the Hydra team has worked on several fronts, including improvements of their CI speed, logs, documentation pages and adding the support for timed transactions. They also updated the "Coding Standards" for the project, improved the troubleshooting page on their website and wrote a section about how to operate a hydra node. Finally the team completed a feature request that allows clients to submit and validate transactions to their hydra nodes using time validity ranges, ensuring isomorphism with L1.'),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete validation of timed transactions feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/196"},"#196"),"."),(0,n.kt)("li",{parentName:"ul"},"Write ","\u201c","ops","\u201d"," instructions and troubleshooting ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/569"},"#569")," and improve logs."),(0,n.kt)("li",{parentName:"ul"},"Remove ",(0,n.kt)("inlineCode",{parentName:"li"},"--ledger-genesis")," argument to hydra-node options ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/863"},"#863"),"."),(0,n.kt)("li",{parentName:"ul"},"Fix issue with garbage collected caches by using a new cardano-scaling.cachix in more workflows ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/877"},"#877"),"."),(0,n.kt)("li",{parentName:"ul"},"Use nix to build test binaries to increase CI speed ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/867"},"#867"),"."),(0,n.kt)("li",{parentName:"ul"},"Updated our ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/wiki/Coding-Standards"},"Coding Standards"),".")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly report & review meeting."),(0,n.kt)("li",{parentName:"ul"},'Have a first end-to-end journey for external commits implementing "Option A" ',(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215"),"."),(0,n.kt)("li",{parentName:"ul"},"Integrate spanish translation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/866"},"#866"),"."),(0,n.kt)("li",{parentName:"ul"},"Improve and provide regular benchmarks for Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/186"},"#186"),"."),(0,n.kt)("li",{parentName:"ul"},"Allow commit transactions with multiple UTxO ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/774"},"#774"),"."),(0,n.kt)("li",{parentName:"ul"},"Explored stateless observation and refined hydra explorer ticket ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/696"},"#696"),".")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0c11045c.3d1a986e.js b/assets/js/0c11045c.3d1a986e.js new file mode 100644 index 0000000000..31dd546f34 --- /dev/null +++ b/assets/js/0c11045c.3d1a986e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[39745],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,g=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(g,i(i({ref:t},c),{},{components:r})):n.createElement(g,i({ref:t},c))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-02-03-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-02-03-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-03-goedel.md",source:"@site/blog/2023-02-03-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-02-03T00:00:00.000Z",formattedDate:"February 3, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.57,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-02-03-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-02-03-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-02-03-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],c={toc:s},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the team has been preparing several papers for peer review\nand knowledge sharing and consulting within IO and the community."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"R&D Seminar on experience participating in a member based organisation"),(0,a.kt)("li",{parentName:"ul"},"Full day tutorial on performance engineering presented at HiPEAC\n2023 conference"),(0,a.kt)("li",{parentName:"ul"},"Finished preparing and submitted a paper on performance engineering\nto an ACM workshop"),(0,a.kt)("li",{parentName:"ul"},"Preparing a draft paper for future submission about verifying design\nrefinements for distributed system design"),(0,a.kt)("li",{parentName:"ul"},"Consulting on performance design of other IO projects")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0c48efb1.1f4e1be7.js b/assets/js/0c48efb1.1f4e1be7.js new file mode 100644 index 0000000000..e2a32aa71a --- /dev/null +++ b/assets/js/0c48efb1.1f4e1be7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[41794],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),s=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=s(a),h=n,m=p["".concat(c,".").concat(h)]||p[h]||d[h]||o;return a?r.createElement(m,i(i({ref:t},u),{},{components:a})):r.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=h;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-02-17-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-02-17-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-hydra.md",source:"@site/blog/2023-02-17-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-02-17T00:00:00.000Z",formattedDate:"February 17, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.75,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-02-17-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-02-17-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-02-17-ledger"}},c={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:s},p="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team completed work on dealing differently with contests\nduring the contestation period. These will now always push out the deadline and\nhence contestation periods are easier to pick (depending on the network a Head\nruns on). Furthermore, they added an important acceptance test and completed\ninternal refactoring of the protocol logic making future changes easier."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Push contestation deadline on each contest ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/716"},"#716")),(0,n.kt)("li",{parentName:"ul"},"Wrote an acceptance (property) test ","\u201c","can always close/fanout when collect is successful","\u201d"),(0,n.kt)("li",{parentName:"ul"},"Internal refactoring of our ",(0,n.kt)("inlineCode",{parentName:"li"},"HeadLogic")),(0,n.kt)("li",{parentName:"ul"},"Groomed remaining things from ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/452"},"#452")," into dedicated features")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete full minting policy ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/720"},"#720")),(0,n.kt)("li",{parentName:"ul"},"Release 0.9.0 with updated scripts"),(0,n.kt)("li",{parentName:"ul"},"Plan mainnet milestone and a 0.10.0 version"),(0,n.kt)("li",{parentName:"ul"},"Redraw transaction graphs for specification (upon feedback)"),(0,n.kt)("li",{parentName:"ul"},"Have smoke tests fixed and running regularly")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0c58c296.a46e3724.js b/assets/js/0c58c296.a46e3724.js new file mode 100644 index 0000000000..01926ac324 --- /dev/null +++ b/assets/js/0c58c296.a46e3724.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[68237],{83833:a=>{a.exports=JSON.parse('{"permalink":"/tags/cli-api/page/4","page":4,"postsPerPage":5,"totalPages":8,"totalCount":39,"previousPage":"/tags/cli-api/page/3","nextPage":"/tags/cli-api/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/0c8d8623.10c744cc.js b/assets/js/0c8d8623.10c744cc.js new file mode 100644 index 0000000000..cca5309a7e --- /dev/null +++ b/assets/js/0c8d8623.10c744cc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21404],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),s=u(a),m=n,c=s["".concat(p,".").concat(m)]||s[m]||d[m]||i;return a?r.createElement(c,o(o({ref:t},h),{},{components:a})):r.createElement(c,o({ref:t},h))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:n,o[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-12-15-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-12-15-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-15-hydra.md",source:"@site/blog/2023-12-15-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-12-15T00:00:00.000Z",formattedDate:"December 15, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.96,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-12-15-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-12-20-mithril"},nextItem:{title:"Mithril Team Update",permalink:"/2023-12-13-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:u},s="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,'This week, the Hydra team identified and resolved issues with a malfunctioning\nhead on mainnet, implementing preventive measures. They edited and merged a new\nArchitectural Decision Record (ADR) proposed by SundaeLabs, upgraded\ncardano-node to version 8.7.2, and improved the TUI user experience.\nPreparations for "Conway support" were initiated, and updates were made to logs\nand API schemas. Additionally, initial steps were taken towards incremental\ndecommits.'),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Troubleshoot and recover a broken head on mainnet. Opened issue\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1202"},"#","1202")," and PR\navoiding this in-flight\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1211"},"#","1211")),(0,n.kt)("li",{parentName:"ul"},"Designed and proposed a new ADR to generalize ",(0,n.kt)("inlineCode",{parentName:"li"},"EventSource")," and\n",(0,n.kt)("inlineCode",{parentName:"li"},"EventSinks"),(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1157"},"#","1157"),",\ncontributed by SundaeLabs."),(0,n.kt)("li",{parentName:"ul"},"Upgrade cardano-node to 8.7.2\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1199"},"#","1199")," and\nre-enables e2e nix-shell support on Darwin\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1203"},"#","1203")),(0,n.kt)("li",{parentName:"ul"},"UX enhancement on TUI\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1201"},"#","1201")),(0,n.kt)("li",{parentName:"ul"},'Preparations for "Conway support"\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1177"},"#","1177"),"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1206"},"#","1206")," &\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1207"},"#","1207"),"]"),(0,n.kt)("li",{parentName:"ul"},"Update logs and api schemas\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1212"},"#","1212")),(0,n.kt)("li",{parentName:"ul"},"First steps on incremental decommits\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1057"},"#","1057"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Drafted the e2e workflow\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1205"},"#","1205")),(0,n.kt)("li",{parentName:"ul"},"Added decommit API endpoints\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1209"},"#","1209"))))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Detect incompatible blocks and provide better UX"),(0,n.kt)("li",{parentName:"ul"},"Conway support in hydra-node"),(0,n.kt)("li",{parentName:"ul"},"Off-chain logic for incremental decommits")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0ca75f19.c36625a0.js b/assets/js/0ca75f19.c36625a0.js new file mode 100644 index 0000000000..3badeba6cd --- /dev/null +++ b/assets/js/0ca75f19.c36625a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[42228],{12864:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/0ca860fc.1836c504.js b/assets/js/0ca860fc.1836c504.js new file mode 100644 index 0000000000..2080bf493e --- /dev/null +++ b/assets/js/0ca860fc.1836c504.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15315],{7593:e=>{e.exports=JSON.parse('{"permalink":"/tags/network/page/4","page":4,"postsPerPage":5,"totalPages":7,"totalCount":35,"previousPage":"/tags/network/page/3","nextPage":"/tags/network/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/0d671897.431072f0.js b/assets/js/0d671897.431072f0.js new file mode 100644 index 0000000000..a4225bcbf7 --- /dev/null +++ b/assets/js/0d671897.431072f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29059],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>y});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(n),d=a,y=u["".concat(l,".").concat(d)]||u[d]||m[d]||i;return n?r.createElement(y,o(o({ref:t},p),{},{components:n})):r.createElement(y,o({ref:t},p))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const i={title:"DB Sync Team Update",slug:"2022-11-01-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},o=void 0,s={permalink:"/2022-11-01-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-01-db-sync.md",source:"@site/blog/2022-11-01-db-sync.md",title:"DB Sync Team Update",description:"High level summary",date:"2022-11-01T00:00:00.000Z",formattedDate:"November 1, 2022",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.86,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB Sync Team Update",slug:"2022-11-01-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"System Test Team Update",permalink:"/2022-11-02-system-test"},nextItem:{title:"Hydra Team Update",permalink:"/2022-10-28-hydra"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Schema simplifications",id:"schema-simplifications",level:3},{value:"Performance",id:"performance",level:3},{value:"Migrations and resyncing",id:"migrations-and-resyncing",level:3},{value:"Release",id:"release",level:3}],p={toc:c},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team is preparing a release which introduces schema simplifications, removes indexes,\nunique and foreign keys. It also provides a way to fix older values and migrates without the need to\nresync from genesis."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"schema-simplifications"},"Schema simplifications"),(0,a.kt)("p",null,"Indexes, Unique and Foreign keys are removed in order to speedup syncing\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1295"},"#1295"),"\nThe same pr also introduces a different way to rollback, which doesn't rely on foreign keys and\nindexes."),(0,a.kt)("h3",{id:"performance"},"Performance"),(0,a.kt)("p",null,"The DBSync team ran a big number of benchmarks and investigated ways to speedup syncing. A\nconservative number of these will be included in the next release and the rest can be found in\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/52/views/7"},"performance view"),"."),(0,a.kt)("h3",{id:"migrations-and-resyncing"},"Migrations and resyncing"),(0,a.kt)("p",null,"The next release will be 13.1.0, it will enable a migration without the need to resync. It will also\nintroduce a procedure that fixes bytes values of Datum and RedeemerData in existing databases\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1294"},"#1294")),(0,a.kt)("h3",{id:"release"},"Release"),(0,a.kt)("p",null,"The release has been mostly cherry-picked from master\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1294"},"#1294")," and its scope can be seen\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/52/views/6"},"release view")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0d6ce706.9fff3953.js b/assets/js/0d6ce706.9fff3953.js new file mode 100644 index 0000000000..3fa19688e1 --- /dev/null +++ b/assets/js/0d6ce706.9fff3953.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96256],{95017:e=>{e.exports=JSON.parse('{"permalink":"/tags/ledger/page/7","page":7,"postsPerPage":5,"totalPages":9,"totalCount":44,"previousPage":"/tags/ledger/page/6","nextPage":"/tags/ledger/page/8","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/0d889cfb.2e692128.js b/assets/js/0d889cfb.2e692128.js new file mode 100644 index 0000000000..51f0e8992f --- /dev/null +++ b/assets/js/0d889cfb.2e692128.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27237],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var h=r.createContext({}),p=function(e){var t=r.useContext(h),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return r.createElement(h.Provider,{value:t},e.children)},m="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,h=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(a),d=n,c=m["".concat(h,".").concat(d)]||m[d]||s[d]||o;return a?r.createElement(c,i(i({ref:t},u),{},{components:a})):r.createElement(c,i({ref:t},u))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=d;var l={};for(var h in t)hasOwnProperty.call(t,h)&&(l[h]=t[h]);l.originalType=e,l[m]="string"==typeof e?e:n,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>h,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-03-17-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-03-17-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-17-hydra.md",source:"@site/blog/2023-03-17-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-03-17T00:00:00.000Z",formattedDate:"March 17, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.015,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-03-17-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-03-17-crypto"},nextItem:{title:"Ledger Team Update",permalink:"/2023-03-17-ledger"}},h={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:p},m="wrapper";function s(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team has continued work on the mainnet compatibility of the\nhydra-node. They added a golden test suite for ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-plutus")," scripts, added\nsome detection of ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," misconfiguration, established a limit of 100 ADA\nper commit and other smaller tasks to prepare for a mainnet beta release."),(0,n.kt)("p",null,"Next week there will be a small team workshop to push for demonstrating a Hydra\nHead on the Cardano mainnet, ideally just in time for the monthly review\nmeeting. See the hydra channels on the IOG Technical Community discord server\nfor details."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implement a 100 ADA hard-coded commit limit in the hydra-node\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/763"},"#763")),(0,n.kt)("li",{parentName:"ul"},"Pay back funds to faucet after smoke-test run\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/773"},"#773")),(0,n.kt)("li",{parentName:"ul"},"Setup custom github runner for smoke-tests on mainnet\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/775"},"#775")),(0,n.kt)("li",{parentName:"ul"},"Created golden tests to assure the script hash stays the same between\nchanges ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/772"},"#772")),(0,n.kt)("li",{parentName:"ul"},"Removed hardcoded error codes in plutus scripts\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/768"},"#768")),(0,n.kt)("li",{parentName:"ul"},"Detect misconfiguration of a hydra-node given persistent state\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/767"},"#767")),(0,n.kt)("li",{parentName:"ul"},"Met with potential users for hydra-pay"),(0,n.kt)("li",{parentName:"ul"},"Prepared hydra workshop")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Hydra monthly meeting"),(0,n.kt)("li",{parentName:"ul"},"Open a multi-party head on mainnet"),(0,n.kt)("li",{parentName:"ul"},"Complete mainnet compatibility feature")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0d954d74.cb67ae44.js b/assets/js/0d954d74.cb67ae44.js new file mode 100644 index 0000000000..70fed48460 --- /dev/null +++ b/assets/js/0d954d74.cb67ae44.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91599],{36062:s=>{s.exports=JSON.parse('{"label":"consensus","permalink":"/tags/consensus","allTagsPath":"/tags","count":45}')}}]); \ No newline at end of file diff --git a/assets/js/0db650db.2f6a554c.js b/assets/js/0db650db.2f6a554c.js new file mode 100644 index 0000000000..88ac00f5cb --- /dev/null +++ b/assets/js/0db650db.2f6a554c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[74607],{3905:(t,e,n)=>{n.d(e,{Zo:()=>p,kt:()=>d});var a=n(67294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function o(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var u=a.createContext({}),s=function(t){var e=a.useContext(u),n=e;return t&&(n="function"==typeof t?t(e):o(o({},e),t)),n},p=function(t){var e=s(t.components);return a.createElement(u.Provider,{value:e},t.children)},m="mdxType",c={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},h=a.forwardRef((function(t,e){var n=t.components,r=t.mdxType,l=t.originalType,u=t.parentName,p=i(t,["components","mdxType","originalType","parentName"]),m=s(n),h=r,d=m["".concat(u,".").concat(h)]||m[h]||c[h]||l;return n?a.createElement(d,o(o({ref:e},p),{},{components:n})):a.createElement(d,o({ref:e},p))}));function d(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=n.length,o=new Array(l);o[0]=h;var i={};for(var u in e)hasOwnProperty.call(e,u)&&(i[u]=e[u]);i.originalType=t,i[m]="string"==typeof t?t:r,o[1]=i;for(var s=2;s{n.r(e),n.d(e,{assets:()=>u,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));const l={title:"Consensus Team Update",slug:"2023-03-22-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-03-22-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-22-consensus.md",source:"@site/blog/2023-03-22-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-03-22T00:00:00.000Z",formattedDate:"March 22, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.63,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-03-22-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-03-23-mithril"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-03-22-node-cli-api"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low-level details",id:"low-level-details",level:2}],p={toc:s},m="wrapper";function c(t){let{components:e,...n}=t;return(0,r.kt)(m,(0,a.Z)({},p,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"This week the consensus team continued working on the refactoring of the UTxO HD\nprototype, and design and testing of Genesis. We also extracted the ",(0,r.kt)("inlineCode",{parentName:"p"},"fs-sim"),"\npackage, which provides a file-system abstraction layer that can be used for\ntesting and simulation. This makes the Consensus code base smaller, while\nproviding a package that the community can reuse and contribute to. We also\nfixed a failing property test related to iterators. We are also working on\nmempool and VRF improvements."),(0,r.kt)("h2",{id:"low-level-details"},"Low-level details"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Extraction of ",(0,r.kt)("inlineCode",{parentName:"li"},"fs-sim")," code from ",(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-network"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4425"},"https://github.com/input-output-hk/ouroboros-network/pull/4425")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/1"},"https://github.com/input-output-hk/fs-sim/pull/1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/2"},"https://github.com/input-output-hk/fs-sim/pull/2")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4460"},"https://github.com/input-output-hk/ouroboros-network/pull/4460")))),(0,r.kt)("li",{parentName:"ul"},"Smaller changes in ",(0,r.kt)("inlineCode",{parentName:"li"},"fs-sim")," code (some required by ",(0,r.kt)("inlineCode",{parentName:"li"},"UTxO-HD"),"):",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/5"},"https://github.com/input-output-hk/fs-sim/pull/5")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/6"},"https://github.com/input-output-hk/fs-sim/pull/6")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/7"},"https://github.com/input-output-hk/fs-sim/pull/7")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/8"},"https://github.com/input-output-hk/fs-sim/pull/8")))),(0,r.kt)("li",{parentName:"ul"},"Released cardano-lmdb-simple-0.6.0.0",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/lmdb-simple/pull/20"},"https://github.com/input-output-hk/lmdb-simple/pull/20")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-haskell-packages/pull/150"},"https://github.com/input-output-hk/cardano-haskell-packages/pull/150"))))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0dea9a3b.85072ff7.js b/assets/js/0dea9a3b.85072ff7.js new file mode 100644 index 0000000000..cc156fbe8c --- /dev/null +++ b/assets/js/0dea9a3b.85072ff7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4910],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),c=s(r),h=a,m=c["".concat(l,".").concat(h)]||c[h]||d[h]||o;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=h;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[c]="string"==typeof e?e:a,i[1]=p;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Open-Source Update",slug:"2023-01-13-open-source",authors:"coot",tags:["open-source"],hide_table_of_contents:!1},i=void 0,p={permalink:"/quarterly/2023-01-13-open-source",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-01-13-open-source.md",source:"@site/quarterly/2023-01-13-open-source.md",title:"Open-Source Update",description:"Open Source Quarterly Update",date:"2023-01-13T00:00:00.000Z",formattedDate:"January 13, 2023",tags:[{label:"open-source",permalink:"/quarterly/tags/open-source"}],readingTime:2.215,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Open-Source Update",slug:"2023-01-13-open-source",authors:"coot",tags:["open-source"],hide_table_of_contents:!1},prevItem:{title:"Network Quarterly Update",permalink:"/quarterly/2023-01-13-network"},nextItem:{title:"Consensus Quarterly Update",permalink:"/quarterly/2022-11-15-consensus"}},l={authorsImageUrls:[void 0]},s=[{value:"Open Source Quarterly Update",id:"open-source-quarterly-update",level:2},{value:"2022-11 - 2023-01",id:"2022-11---2023-01",level:2},{value:"Summary",id:"summary",level:3},{value:"Detailed log",id:"detailed-log",level:3}],u={toc:s},c="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"open-source-quarterly-update"},"Open Source Quarterly Update"),(0,a.kt)("h2",{id:"2022-11---2023-01"},"2022-11 - 2023-01"),(0,a.kt)("h3",{id:"summary"},"Summary"),(0,a.kt)("p",null,"In the last quarter the open-source initiative delivered a comprehensive report\non the state of our repositories. As part of this work stream we\nidentified the key open-source repositories for the cardano project across all\nthe projects From a list of more than 500 repositories (some of which are\nforks) we identified key repositories which constitute the core of Cardano.\n20 of them were identified as to be transferred to the future MBO which will\ngovern Cardano development. Some where excluded (like ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim"},(0,a.kt)("inlineCode",{parentName:"a"},"io-sim"))," and\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols"},(0,a.kt)("inlineCode",{parentName:"a"},"typed-protocols")),"), to be govern by IOG, since they have a much broader\napplication than Cardano itself, and thus we think their open-source future\nwill be better outside of the Cardano umbrella."),(0,a.kt)("p",null,"Christian Taylor identified a number of ways we can improve our repositories to\nmake them more attractive for open-source contributions by analysing each of\nthem. This includes adding or improving various documentation files, like\n",(0,a.kt)("inlineCode",{parentName:"p"},"CONTRIBUTING")," files, adding code of conduct, improving readme files, issue\n& pull request templates etc. Christian also computed various interesting\nmetrics which gives a very good insight into the development practices: e.g.\naverage merge ratio, average number of reviews, comments and many more! The\npresentation is available ",(0,a.kt)("a",{parentName:"p",href:"https://docs.google.com/presentation/d/127IFEavlrZeeoFrVXFYWzSt0ugOkSL7isxjyM1vmMzQ"},"here"),"."),(0,a.kt)("p",null,"We followed with work on the ",(0,a.kt)("a",{parentName:"p",href:"https://input-output-hk.github.io/cardano-engineering-handbook/"},"Cardano Engineering Handbook"),". We included\na standard code of conduct which is now used by most important projects in the\nCardano space. We included ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),"'s security policy and added\na responsible disclosure policy. We also described how roles and\nresponsibilities should be clarified. This progress was made by\na collaborative effort of the Cardano Core, Plutus and Architecture teams, and\nit wouldn't be possible without Michael Peyton Jones, Arnaud Bailly, Kevin\nHammond, Jared Corduan and Marcin Szamotulski."),(0,a.kt)("p",null,"We also improved the documentation of key repositories, by adding description,\nimproving their ",(0,a.kt)("inlineCode",{parentName:"p"},"README")," file & ",(0,a.kt)("inlineCode",{parentName:"p"},"CONTRIBUTING")," files, adding code of conducts\nfollowing the ",(0,a.kt)("a",{parentName:"p",href:"https://input-output-hk.github.io/cardano-engineering-handbook/"},"Cardano Engineering Handbook"),". This includes improvements to:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network"},(0,a.kt)("inlineCode",{parentName:"a"},"ouroboros-network"))," (both ",(0,a.kt)("inlineCode",{parentName:"li"},"network")," & ",(0,a.kt)("inlineCode",{parentName:"li"},"consensus"),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger"},(0,a.kt)("inlineCode",{parentName:"a"},"cardano-ledger"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node"},(0,a.kt)("inlineCode",{parentName:"a"},"cardano-node")))),(0,a.kt)("p",null,"And also"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim"},(0,a.kt)("inlineCode",{parentName:"a"},"io-sim"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/typed-protocols"},(0,a.kt)("inlineCode",{parentName:"a"},"typed-protocols"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-prelude"},(0,a.kt)("inlineCode",{parentName:"a"},"cardano-prelude"))," (work in progress)")),(0,a.kt)("p",null,"The work was carried by Marcin Szamotulski, Addie Girouard and Jared Corduan. "),(0,a.kt)("p",null,"In this quarter we also identified a number of projects which can be published to\n",(0,a.kt)("inlineCode",{parentName:"p"},"Hackage")," (Haskell's package repository) or ",(0,a.kt)("inlineCode",{parentName:"p"},"crate")," (Rust package repository).\nThe list contains 21 packages, 2 of which (",(0,a.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/hedgehog-extras"},(0,a.kt)("inlineCode",{parentName:"a"},"hedgehog-extras"))," and\n",(0,a.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/quickcheck-dynamic"},(0,a.kt)("inlineCode",{parentName:"a"},"quickcheck-dynamic")),") are already published on Hackage and another 5 (from\nthe ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim"},(0,a.kt)("inlineCode",{parentName:"a"},"io-sim"))," repository) are close to be published."),(0,a.kt)("h3",{id:"detailed-log"},"Detailed log"),(0,a.kt)("p",null,"The progress of the open-source project is tracked in ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/60/views/1"},"this project"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0dfea636.11847a5d.js b/assets/js/0dfea636.11847a5d.js new file mode 100644 index 0000000000..70d4cae86a --- /dev/null +++ b/assets/js/0dfea636.11847a5d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21200],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=s(n),d=a,h=c["".concat(u,".").concat(d)]||c[d]||m[d]||i;return n?r.createElement(h,o(o({ref:t},p),{},{components:n})):r.createElement(h,o({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const i={title:"DB-sync Team Update",slug:"2023-07-04-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-07-04-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-04-db-sync.md",source:"@site/blog/2023-07-04-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-07-04T00:00:00.000Z",formattedDate:"July 4, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.73,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-07-04-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Developer Experience Update",permalink:"/2023-07-06-developer-experience"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-07-04-node-cli-api"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],p={toc:s},c="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We've made progress in all high level objectives"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"CIP-1694 integration design"),(0,a.kt)("li",{parentName:"ul"},"UTxO-HD integration proof of concept"),(0,a.kt)("li",{parentName:"ul"},"schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2 and tested"),(0,a.kt)("li",{parentName:"ul"},"Many devx issues resolved")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We have improved and validated the design for the Conway integration in db-sync"),(0,a.kt)("li",{parentName:"ul"},"Improved the initial integration of the UTxO-HD feauture branches which are under test"),(0,a.kt)("li",{parentName:"ul"},"Prepared a new release 13.1.1.3 which supports node 8.1.1\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1455"},"#1455"),"."),(0,a.kt)("li",{parentName:"ul"},"This also fixes a bug\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/issues/1451"},"#1451")),(0,a.kt)("li",{parentName:"ul"},"Added new tests to the new tx_out options\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1429"},"#1429")),(0,a.kt)("li",{parentName:"ul"},"Fixed a chronic issue in db-sync related to exception handling and concurrency\nThis fixes many other issues and simplifies the logic in db-sync\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1447"},"#1447")),(0,a.kt)("li",{parentName:"ul"},"A number of fixes and improvements in ci, docker, devx, docs\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1436"},"#1436"),(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1442"},"#1442"),(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1448"},"#1448"),(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1452"},"#1452"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e0c98f4.605642f2.js b/assets/js/0e0c98f4.605642f2.js new file mode 100644 index 0000000000..e5fad5eef9 --- /dev/null +++ b/assets/js/0e0c98f4.605642f2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[60280],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>k});var r=o(67294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function i(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var p=r.createContext({}),l=function(e){var t=r.useContext(p),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=l(o),h=n,k=c["".concat(p,".").concat(h)]||c[h]||d[h]||a;return o?r.createElement(k,i(i({ref:t},u),{},{components:o})):r.createElement(k,i({ref:t},u))}));function k(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,i=new Array(a);i[0]=h;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var l=2;l{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=o(87462),n=(o(67294),o(3905));const a={title:"Network Team Update",slug:"2023-08-18-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-08-18-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-network.md",source:"@site/blog/2023-08-18-network.md",title:"Network Team Update",description:"High-level overview of sprint 42",date:"2023-08-18T00:00:00.000Z",formattedDate:"August 18, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.09,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-08-18-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-08-18-ledger"},nextItem:{title:"SRE Team Update",permalink:"/2023-08-18-sre"}},p={authorsImageUrls:[void 0]},l=[{value:"High-level overview of sprint 42",id:"high-level-overview-of-sprint-42",level:2},{value:"Eclipse Evasion",id:"eclipse-evasion",level:3},{value:"CDDL specs for protocol codecs",id:"cddl-specs-for-protocol-codecs",level:3},{value:"Ouroboros-Network-Framework API changes",id:"ouroboros-network-framework-api-changes",level:3},{value:"Nix setup (CI)",id:"nix-setup-ci",level:3},{value:"Other contributions",id:"other-contributions",level:2},{value:"Cardano Network Service Assurance",id:"cardano-network-service-assurance",level:3},{value:"Galois Review",id:"galois-review",level:3},{value:"CI",id:"ci",level:3},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3}],u={toc:l},c="wrapper";function d(e){let{components:t,...o}=e;return(0,n.kt)(c,(0,r.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-42"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+42%22"},"sprint 42")),(0,n.kt)("h3",{id:"eclipse-evasion"},"Eclipse Evasion"),(0,n.kt)("p",null,"We merged and released a new version of the ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," package (version\n",(0,n.kt)("inlineCode",{parentName:"p"},"0.9.0.0"),") which includes ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3886"},"big ledger peers feature"),".\nThis is the primary peer selection mechanism to defend against eclipses. We\nalso prepared a PR to updated ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/165"},(0,n.kt)("inlineCode",{parentName:"a"},"ouroboros-cosnensus")),"\nand ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ekg-forward/pull/30"},(0,n.kt)("inlineCode",{parentName:"a"},"ekg-forward"))," packages."),(0,n.kt)("h3",{id:"cddl-specs-for-protocol-codecs"},"CDDL specs for protocol codecs"),(0,n.kt)("p",null,"We made the ",(0,n.kt)("inlineCode",{parentName:"p"},"cddl")," spec for network codec more inline with the implementation\nwhich is highly polymorphic. ",(0,n.kt)("inlineCode",{parentName:"p"},"cddl")," doesn't have the notion of polymorphism,\nbut has ",(0,n.kt)("inlineCode",{parentName:"p"},"any")," which can generate any valid cbor term. We matched it with an\n",(0,n.kt)("inlineCode",{parentName:"p"},"Any")," type on the Haskell side and made all remaining tests & specs use it.\nThis simplified the specifications and made it easier to understand which parts\nare defined in the spec, and which parts are left unspecified. See\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4595"},"ouroboros-network#4595"),"."),(0,n.kt)("h3",{id:"ouroboros-network-framework-api-changes"},"Ouroboros-Network-Framework API changes"),(0,n.kt)("p",null,"We also released ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network-framework")," and other network components.\nThe ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network-framework")," package contains a redesign of API exposed to\n",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),". We consolidated, cleaned it and made it easier to\nextend in the future if there will be new arguments that need to be passed to\nmini-protocol initiator and responders which comes from the low-level network\nlayer."),(0,n.kt)("h3",{id:"nix-setup-ci"},"Nix setup (CI)"),(0,n.kt)("p",null,"We also made a major review of our ",(0,n.kt)("inlineCode",{parentName:"p"},"nix")," setup. With help from our DevX team\nwe ended up with a clean ",(0,n.kt)("inlineCode",{parentName:"p"},"flake.nix")," file which can:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"compile & test the code on ",(0,n.kt)("inlineCode",{parentName:"li"},"x86_64-linux"),", ",(0,n.kt)("inlineCode",{parentName:"li"},"x86_64-darwin")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"aarch64-darwin")),(0,n.kt)("li",{parentName:"ul"},"cross-compile to ",(0,n.kt)("inlineCode",{parentName:"li"},"Windows")," on ",(0,n.kt)("inlineCode",{parentName:"li"},"x86_64-linux")," ")),(0,n.kt)("p",null,"And provides a shell which contains all the build tools, including ",(0,n.kt)("inlineCode",{parentName:"p"},"ghc-9.6"),",\n",(0,n.kt)("inlineCode",{parentName:"p"},"hls"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"cddl"),", and more. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4640"},"ouroboros-network#4640"),",\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4643"},"ouroboros-network#4643"),"."),(0,n.kt)("h2",{id:"other-contributions"},"Other contributions"),(0,n.kt)("h3",{id:"cardano-network-service-assurance"},"Cardano Network Service Assurance"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The work and writeup in finishing up the CNSA, first stage (first\ncontract)."),(0,n.kt)("li",{parentName:"ul"},"Getting Sam Cowger (Galois Inc) up to speed."),(0,n.kt)("li",{parentName:"ul"},"The IOG Networking team carried a reivew of CNSA project progress: a limitted\ncode & design review.")),(0,n.kt)("h3",{id:"galois-review"},"Galois Review"),(0,n.kt)("p",null,"Sam Cowger and Mark Tullsen (Galois Inc) have made some progress on each of the tech debt issues"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3832"},"ouroboros-network#3832"),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3834"},"ouroboros-network#3834"),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3835"},"ouroboros-network#3835"),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3836"},"ouroboros-network#3836"),";")),(0,n.kt)("p",null,"scoping, requirements, and getting started."),(0,n.kt)("h3",{id:"ci"},"CI"),(0,n.kt)("p",null,"We added a nightly run for GitHub actions and made the GitHub actions test be\nexecuted with extra concurrency ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4637"},"ouroboros-network#4637"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4649"},"ouroboros-network#4649"),"."),(0,n.kt)("p",null,"We also added GitHub's dependabot ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4650"},"ouroboros-network#4650"),"."),(0,n.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,n.kt)("p",null,"We settled on implementation design of bootstrap peers which is being\nimplemented, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4615"},"ouroboros-network#4615"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e384e19.7d1a9476.js b/assets/js/0e384e19.7d1a9476.js new file mode 100644 index 0000000000..44a2098b3a --- /dev/null +++ b/assets/js/0e384e19.7d1a9476.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[59671],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>y});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(r),m=a,y=p["".concat(s,".").concat(m)]||p[m]||d[m]||o;return r?n.createElement(y,l(l({ref:t},c),{},{components:r})):n.createElement(y,l({ref:t},c))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={sidebar_position:1},l="Tutorial Intro",i={unversionedId:"intro",id:"intro",title:"Tutorial Intro",description:"Let's discover Docusaurus in less than 5 minutes.",source:"@site/docs/intro.md",sourceDirName:".",slug:"/intro",permalink:"/docs/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"defaultSidebar",next:{title:"Tutorial - Basics",permalink:"/docs/category/tutorial---basics"}},s={},u=[{value:"Getting Started",id:"getting-started",level:2},{value:"What you'll need",id:"what-youll-need",level:3},{value:"Generate a new site",id:"generate-a-new-site",level:2},{value:"Start your site",id:"start-your-site",level:2}],c={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"tutorial-intro"},"Tutorial Intro"),(0,a.kt)("p",null,"Let's discover ",(0,a.kt)("strong",{parentName:"p"},"Docusaurus in less than 5 minutes"),"."),(0,a.kt)("h2",{id:"getting-started"},"Getting Started"),(0,a.kt)("p",null,"Get started by ",(0,a.kt)("strong",{parentName:"p"},"creating a new site"),"."),(0,a.kt)("p",null,"Or ",(0,a.kt)("strong",{parentName:"p"},"try Docusaurus immediately")," with ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("a",{parentName:"strong",href:"https://docusaurus.new"},"docusaurus.new")),"."),(0,a.kt)("h3",{id:"what-youll-need"},"What you'll need"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://nodejs.org/en/download/"},"Node.js")," version 16.14 or above:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"When installing Node.js, you are recommended to check all checkboxes related to dependencies.")))),(0,a.kt)("h2",{id:"generate-a-new-site"},"Generate a new site"),(0,a.kt)("p",null,"Generate a new Docusaurus site using the ",(0,a.kt)("strong",{parentName:"p"},"classic template"),"."),(0,a.kt)("p",null,"The classic template will automatically be added to your project after you run the command:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm init docusaurus@latest my-website classic\n")),(0,a.kt)("p",null,"You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor."),(0,a.kt)("p",null,"The command also installs all necessary dependencies you need to run Docusaurus."),(0,a.kt)("h2",{id:"start-your-site"},"Start your site"),(0,a.kt)("p",null,"Run the development server:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"cd my-website\nnpm run start\n")),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"cd")," command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there."),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"npm run start")," command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/."),(0,a.kt)("p",null,"Open ",(0,a.kt)("inlineCode",{parentName:"p"},"docs/intro.md")," (this page) and edit some lines: the site ",(0,a.kt)("strong",{parentName:"p"},"reloads automatically")," and displays your changes."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e717c32.46b4b879.js b/assets/js/0e717c32.46b4b879.js new file mode 100644 index 0000000000..78a64866e0 --- /dev/null +++ b/assets/js/0e717c32.46b4b879.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[26397],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),h=p(r),c=a,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||n;return r?i.createElement(d,l(l({ref:t},u),{},{components:r})):i.createElement(d,l({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,l=new Array(n);l[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[h]="string"==typeof e?e:a,l[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>n,metadata:()=>o,toc:()=>p});var i=r(87462),a=(r(67294),r(3905));const n={title:"Mithril Team Update",slug:"2023-11-29-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-11-29-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-29-mithril.md",source:"@site/blog/2023-11-29-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-11-29T00:00:00.000Z",formattedDate:"November 29, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.415,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-11-29-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-11-29-consensus"},nextItem:{title:"Goedel Team Update",permalink:"/2023-11-24-goedel"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"This week, the Mithril team released the initial version of the ",(0,a.kt)("a",{parentName:"p",href:"https://crates.io/crates/mithril-client"},"Mithril client library"),", enabling developers to integrate core Mithril features into their applications. They also released a new distribution, ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2347.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2347.0")),", which includes support for slim certificate production by the aggregator, along with bug fixes and performance improvements."),(0,a.kt)("p",null,"The team also introduced the initial version of Cardano/Mithril node communication enhancements, implemented by TxPipe as part of the Catalyst project. They made progress in decentralizing Mithril networks, including testing the Mithril peer-to-peer (P2P) relay on a test network and conducting threat modeling and risk analysis for P2P networking. Additionally, they started working on adapting the Mithril client library for WASM compilation and made progress in optimizing aggregator performance. "),(0,a.kt)("p",null,"Finally, they fixed inaccuracies in the verbosity level of logs across most nodes and worked on troubleshooting for some users."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Release of the ",(0,a.kt)("a",{parentName:"li",href:"https://crates.io/crates/mithril-client"},(0,a.kt)("inlineCode",{parentName:"a"},"mithril-client"))," library crate"),(0,a.kt)("li",{parentName:"ul"},"Publication of a ",(0,a.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2023/11/27/mithril-client-library-released"},"dev blog post")," about the released Mithril library"),(0,a.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2347.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2347.0"))),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Light Wallet: Release ",(0,a.kt)("inlineCode",{parentName:"strong"},"mithril-client")," WASM library")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1336"},"#1336")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Enhance aggregator REST API performances")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1327"},"#1327")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Signer runtime is stuck for some SPO")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1312"},"#1312")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Support P2P relay in infrastructure")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1361"},"#1361")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Make Cardano node version custom in CI/CD")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1355"},"#1355")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Manually deploy a test Mithril network")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1356"},"#1356")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"mithril-client verbosity not following usage menu")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1325"},"#1325")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Error message for mithril-client snapshot download")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1375"},"#1375"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e828f3a.3ee2e898.js b/assets/js/0e828f3a.3ee2e898.js new file mode 100644 index 0000000000..0feb964a63 --- /dev/null +++ b/assets/js/0e828f3a.3ee2e898.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[77338],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=u(a),c=n,h=m["".concat(p,".").concat(c)]||m[c]||d[c]||l;return a?r.createElement(h,i(i({ref:t},s),{},{components:a})):r.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:n,i[1]=o;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2023-09-15-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2023-09-15-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-ledger.md",source:"@site/blog/2023-09-15-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-09-15T00:00:00.000Z",formattedDate:"September 15, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.645,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-09-15-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-09-15-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-09-15-network"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway era",id:"conway-era",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3},{value:"Testing",id:"testing",level:3}],s={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The Ledger team's focus is still mainly on the Conway era implementation."),(0,n.kt)("p",null,"We were able to add ability to specify initial Constitutional Comittee and the initial\nversion of Constitution. Priority in which Governance Action are now enacted matches the\nspecification. DRep's deposits are now properly accounted for. Governance actions that are\nnot allowed to be voted on by Stake Pool operators and Constitutional Committee members\nare prevented by transaction submission failure, rather than simply being ignored. There\nwas a few important CDDL fixes as well as a lot of new round trip serialization\ntests. Constraint based testing framework has also received a lot of improvements."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway-era"},"Conway era"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3681"},"pull-3681")," - Conway Genesis additions"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3690"},"pull-3690")," - Preserve the order of ProposalProcedures"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3705"},"pull-3705")," - Removed ProtVer from EnactState"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3700"},"pull-3700")," - Add conway-specific certs to deposit/refunds"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3704"},"pull-3704")," - Add comments on deprecating certs to Conway CDDL"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3698"},"pull-3698")," - Reordering of governance actions"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3712"},"pull-3712")," - Disallow empty fields in ConwayTxBodyRaw"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3716"},"pull-3716")," - Abstract threshold calculation"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3725"},"pull-3725")," - Fix mistaken use of dollar sign in cddl files"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3718"},"pull-3718")," - Predicate failure for mismatched Voter GovAction"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3721"},"pull-3721")," - Committee expiration, validation and modification")),(0,n.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3629"},"pull-3629")," - Add rule-transition diagrams in dot syntax"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3680"},"pull-3680")," - Bump Plutus deps to 1.11"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3708"},"pull-3708")," - Post release changes")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3730"},"pull-3730")," - Implement ",(0,n.kt)("inlineCode",{parentName:"li"},"Show")," instance for ",(0,n.kt)("inlineCode",{parentName:"li"},"Rep")," using ",(0,n.kt)("inlineCode",{parentName:"li"},"IsTypeable")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3697"},"pull-3697")," - Rewrite testEql using Typeable to make it impossible to forget cases"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3709"},"pull-3709")," - Add many new features to the Constrained modues in cardano-ledger-test"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3726"},"pull-3726")," - Conway and other eras serialization roundtrip tests"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3713"},"pull-3713")," - Improve CI resiliency against GitHub issues")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e8f60e3.9a09806c.js b/assets/js/0e8f60e3.9a09806c.js new file mode 100644 index 0000000000..81db266914 --- /dev/null +++ b/assets/js/0e8f60e3.9a09806c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[39236],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=s(n),c=a,h=d["".concat(p,".").concat(c)]||d[c]||m[c]||o;return n?r.createElement(h,l(l({ref:t},u),{},{components:n})):r.createElement(h,l({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=c;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"SRE Team Update",slug:"2024-02-16-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-02-16-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-16-sre.md",source:"@site/blog/2024-02-16-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-02-16T00:00:00.000Z",formattedDate:"February 16, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.03,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-02-16-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-02-16-performance-and-tracing"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-02-15-node-cli-api"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-parts",id:"cardano-parts-1",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3}],u={toc:s},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,a.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sanchonet state was respun from slot 14255995 for cardano-node 8.8.0-pre"),(0,a.kt)("li",{parentName:"ul"},"Cardano node 8.8.0-pre is now deployed to sanchonet, shelley-qa, two-thirds\nof preprod and one-third of preview networks"),(0,a.kt)("li",{parentName:"ul"},"IOG pool block producers are now signing mithril certificates for preview,\npreprod and mainnet networks"),(0,a.kt)("li",{parentName:"ul"},"A cardano performance dashboard is now available for both playground and\ncardano-mainnet deployments")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Adds mithril signers and perf dashboard to the mainnet cluster; improves\nnetwork docs, tunes alerts, plus misc fixes:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/8"},"cardano-mainnet-pull-8"))),(0,a.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Adds mithril signer capability to role-block-producer nixosModule, adds a\nprofile-mithril-relay nixosModule and includes misc other improvements and\nfixes:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-parts/pull/31"},"cardano-parts-pull-31"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Updates packages for sanchonet respin, adds a node performance dashboard\ntemplate and fixes misc issues:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-parts/pull/32"},"cardano-parts-pull-32")))),(0,a.kt)("h3",{id:"cardano-parts-1"},"Cardano-parts"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Adds mithril signers and mithril relays to preview and preprod networks and\nincludes misc other improvements and fixes:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-playground/pull/15"},"cardano-playground-pull-15"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Updates machines and pin for sanchonet respin, adds a node performance\ndashboard and fixes misc issues:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-playground/pull/16"},"cardano-playground-pull-16")))),(0,a.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Updates conway-genesis for node 8.8.0-pre:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/571"},"iohk-nix-pull-571"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Updates useLedgerAfterSlot for respin of sanchonet:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/572"},"iohk-nix-pull-572")))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0eb9e1ad.8b492717.js b/assets/js/0eb9e1ad.8b492717.js new file mode 100644 index 0000000000..68d2210e90 --- /dev/null +++ b/assets/js/0eb9e1ad.8b492717.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93751],{32270:a=>{a.exports=JSON.parse('{"label":"ledger","permalink":"/tags/ledger","allTagsPath":"/tags","count":44}')}}]); \ No newline at end of file diff --git a/assets/js/0edd4eae.e11f57e3.js b/assets/js/0edd4eae.e11f57e3.js new file mode 100644 index 0000000000..5f6ed0bdc1 --- /dev/null +++ b/assets/js/0edd4eae.e11f57e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97478],{81536:e=>{e.exports=JSON.parse('{"permalink":"/tags/mithril/page/6","page":6,"postsPerPage":5,"totalPages":13,"totalCount":63,"previousPage":"/tags/mithril/page/5","nextPage":"/tags/mithril/page/7","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/0f191e9d.d411f954.js b/assets/js/0f191e9d.d411f954.js new file mode 100644 index 0000000000..0bb8135688 --- /dev/null +++ b/assets/js/0f191e9d.d411f954.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97983],{75552:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/0fa2fd29.8658f186.js b/assets/js/0fa2fd29.8658f186.js new file mode 100644 index 0000000000..b1449968ad --- /dev/null +++ b/assets/js/0fa2fd29.8658f186.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[83646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},h=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),p=s(r),c=n,d=p["".concat(u,".").concat(c)]||p[c]||m[c]||i;return r?a.createElement(d,o(o({ref:t},h),{},{components:r})):a.createElement(d,o({ref:t},h))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2023-06-16-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-06-16-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-16-hydra.md",source:"@site/blog/2023-06-16-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-06-16T00:00:00.000Z",formattedDate:"June 16, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.815,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-06-16-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-06-23-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2023-06-15-mithril"}},u={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:s},p="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,a.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team focused their efforts on continuing to investigate and\nexperiment operating a head on mainnet. They collected several bugs and issues\nand worked on fixing them. Now the team is soon to release a new version,\n0.11.0, which comes with a lot of improvements and bug fixes."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Restored and fixed a bug which stalled our head on mainnet ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/927"},"#927")),(0,n.kt)("li",{parentName:"ul"},"Solved one user issue ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/914"},"#914")),(0,n.kt)("li",{parentName:"ul"},"Reduced significantly local state size and logs by removing the full scripts from it ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/928"},"#928")),(0,n.kt)("li",{parentName:"ul"},"(pending review) Reduced snapshot size in the API, by only including tx ids ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/922"},"#922"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"New release 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"Monthly report & review meeting."),(0,n.kt)("li",{parentName:"ul"},"Fix some minor bugs discovered when operating our head on mainnet"),(0,n.kt)("li",{parentName:"ul"},"Complete journey for external commits using multiple script UTxOs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/903"},"#903")),(0,n.kt)("li",{parentName:"ul"},"Publish benchmarks and provide regular benchmarks for Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/186"},"#186"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0fc579d4.bb0d5e29.js b/assets/js/0fc579d4.bb0d5e29.js new file mode 100644 index 0000000000..563e1c1dc3 --- /dev/null +++ b/assets/js/0fc579d4.bb0d5e29.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[76442],{68216:e=>{e.exports=JSON.parse('{"permalink":"/tags/db-sync","page":1,"postsPerPage":5,"totalPages":4,"totalCount":16,"nextPage":"/tags/db-sync/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/10532414.34ec8bc6.js b/assets/js/10532414.34ec8bc6.js new file mode 100644 index 0000000000..3bcec38dfa --- /dev/null +++ b/assets/js/10532414.34ec8bc6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6890],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),u=a,f=s["".concat(p,".").concat(u)]||s[u]||d[u]||o;return r?n.createElement(f,l(l({ref:t},m),{},{components:r})):n.createElement(f,l({ref:t},m))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-08-04-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-08-04-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-goedel.md",source:"@site/blog/2023-08-04-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.43,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-08-04-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-08-04-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-08-04-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is formalising mini protocols and also further developing the\nperformance modelling prototype."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Developing new framework for specification and verification of\nmini-protocols which is closer to the Haskell implementation.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Developed a new internal representation for the DeltaQ algebra that\nallows for more modularity in backend implementations")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Discussions regarding the Cardano networking specification"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/10659ce5.e4151fc8.js b/assets/js/10659ce5.e4151fc8.js new file mode 100644 index 0000000000..f64d92c5b1 --- /dev/null +++ b/assets/js/10659ce5.e4151fc8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40400],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(a),m=r,h=d["".concat(p,".").concat(m)]||d[m]||s[m]||o;return a?n.createElement(h,l(l({ref:t},c),{},{components:a})):n.createElement(h,l({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-11-16-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2022-11-16-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-16-node-cli-api.md",source:"@site/blog/2022-11-16-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2022-11-16T00:00:00.000Z",formattedDate:"November 16, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.68,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-11-16-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-11-16-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2022-11-16-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3}],c={toc:u},d="wrapper";function s(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2022-11-16---2022-11-29"},"2022-11-16 - 2022-11-29"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4562"},"Add a native tokens tutorial and exercises"))),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4674"},"Update cardano-cli's help")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4644"},"Remove error calls in renderShelleyTxCmdError"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4639"},"Implement Cardano.Api.DeserialiseAnyOf"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4650"},"Fix windows CI"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4250"},"Optimise query leadership schedule command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4179"},"Optimise query stake snapshot command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/10ca2666.4e7718c1.js b/assets/js/10ca2666.4e7718c1.js new file mode 100644 index 0000000000..53b1f08fb2 --- /dev/null +++ b/assets/js/10ca2666.4e7718c1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[86769],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,s(s({ref:t},u),{},{components:n})):r.createElement(f,s({ref:t},u))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-01-24-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-01-24-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-24-consensus.md",source:"@site/blog/2024-01-24-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-01-24T00:00:00.000Z",formattedDate:"January 24, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.345,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-01-24-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-01-26-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-01-24-mithril"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This week the team continued working on the second iteration of the Ledger DB API for UTxO-HD, as well as on Genesis.\nWe incorporated further improvements to the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/879"},"onboarding documentation"),", and ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/891"},"wrote a document")," explaining a specific subtlety of our chain orders.\nFor Conway, we integrated ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/894"},"DReps and initial delegates injection"),", which will allow the Performance and Tracing team to run benchmarks for this era."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/10dfceb5.bea6467e.js b/assets/js/10dfceb5.bea6467e.js new file mode 100644 index 0000000000..88f2a67eab --- /dev/null +++ b/assets/js/10dfceb5.bea6467e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53545],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||i;return r?a.createElement(d,o(o({ref:t},u),{},{components:r})):a.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const i={title:"Mithril Team Update",slug:"2024-05-29-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-05-29-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-29-mithril.md",source:"@site/blog/2024-05-29-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-05-29T00:00:00.000Z",formattedDate:"May 29, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.425,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-05-29-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-05-29-consensus"},nextItem:{title:"Hydra Team Update",permalink:"/2024-05-27-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team released a new ",(0,n.kt)("a",{parentName:"p",href:"https://lookerstudio.google.com/u/0/reporting/8b05ea4b-6a43-45ea-aef2-237906ec7a42/page/kem0D?s=oi6CR5eZrnQ"},(0,n.kt)("strong",{parentName:"a"},"Mithril protocol insights dashboard"))," and a new explorer page displaying active and deregistered SPOs for the latest Cardano epochs. They also continued implementing the certification of Cardano transactions in Mithril networks by improving the throughput of the prover route of the aggregator and making progress on low-latency certification by completing the implementation of a chain block reader from the Cardano mini-protocol with Pallas."),(0,n.kt)("p",null,"Additionally, the team started working on a new beacon for signing Cardano transactions based on the chain point. Finally, they refactored the persistence library, enhanced their testing tools for Cardano transactions, and fixed a block parsing problem that prevented the signature of Cardano transactions in the test networks."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released the ",(0,n.kt)("a",{parentName:"li",href:"https://lookerstudio.google.com/u/0/reporting/8b05ea4b-6a43-45ea-aef2-237906ec7a42/page/kem0D?s=oi6CR5eZrnQ"},(0,n.kt)("strong",{parentName:"a"},"Mithril Protocol Insights Dashboard"))),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Prototype optimizations for increasing Cardano transactions proof generation throughput")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1687"},"#1687")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Retrieve Cardano blocks with ",(0,n.kt)("inlineCode",{parentName:"strong"},"chainsync")," in ",(0,n.kt)("inlineCode",{parentName:"strong"},"pallas")," PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1590"},"#1590")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Explorer display in/out SPOs in registered signers page")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1686"},"#1686")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a test Cardano transactions builder")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1667"},"#1667")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Cardano signatures are not produced on ",(0,n.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet")," and ",(0,n.kt)("inlineCode",{parentName:"strong"},"testing-mainnet"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1681"},"#1681")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Remove ",(0,n.kt)("inlineCode",{parentName:"strong"},"snapshot")," command in client CLI")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1690"},"#1690")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Block Streamer returns ",(0,n.kt)("inlineCode",{parentName:"strong"},"ChainScannedBlocks"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1704"},"#1704")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Remove connections coupling with providers in database")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1711"},"#1711")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement Resource Pooling for Block Range Merkle maps")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1698"},"#1698")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Sign Cardano transactions with ChainPoint based beacon")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1697"},"#1697")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Import Cardano transactions with ",(0,n.kt)("inlineCode",{parentName:"strong"},"ChainReader"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1705"},"#1705")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1112c086.ad3e2eca.js b/assets/js/1112c086.ad3e2eca.js new file mode 100644 index 0000000000..93f6b2fcf5 --- /dev/null +++ b/assets/js/1112c086.ad3e2eca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[61263],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=i.createContext({}),s=function(e){var t=i.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},h=function(e){var t=s(e.components);return i.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),m=s(r),c=n,d=m["".concat(p,".").concat(c)]||m[c]||u[c]||a;return r?i.createElement(d,o(o({ref:t},h),{},{components:r})):i.createElement(d,o({ref:t},h))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-12-13-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-12-13-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-13-mithril.md",source:"@site/blog/2023-12-13-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-12-13T00:00:00.000Z",formattedDate:"December 13, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.095,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-12-13-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-12-15-hydra"},nextItem:{title:"Performance & Tracing Update",permalink:"/2023-12-11-performance-and-tracing"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],h={toc:s},m="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team completed the adaptation of the Mithril client library for WASM compilation, providing a JavaScript API for it. They also completed the proof of concept to demonstrate that a subset of Cardano transactions is part of the entire transactions set. The refactoring of the Mithril client CLI with the Mithril client library was also finalized. Additionally, the team kept working on the threat modeling and risk analysis for P2P networking, along with progressing in the implementation of a testing Mithril network for SanchoNet."),(0,n.kt)("p",null,"Finally, they started implementing an expiration mechanism for the open messages in the aggregator, and they completed the upgrade of Rust dependencies with breaking changes."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Implement ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," WASM library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1336"},"#1336")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Certify Cardano UTXO/transactions set PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1393"},"#1393")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Refactor ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client-cli")," with ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1335"},"#1335")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement ",(0,n.kt)("inlineCode",{parentName:"strong"},"open_message")," timeout in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1387"},"#1387")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance machine readable logs in client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1234"},"#1234")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a test network on ",(0,n.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Upgrade breaking changes crates")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1357"},"#1357")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1121299e.3804508b.js b/assets/js/1121299e.3804508b.js new file mode 100644 index 0000000000..9328eeeec2 --- /dev/null +++ b/assets/js/1121299e.3804508b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[84213],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-04-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-04-10-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-10-mithril.md",source:"@site/blog/2024-04-10-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-04-10T00:00:00.000Z",formattedDate:"April 10, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.2,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-04-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-04-10-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2024-04-05-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet"),", completed the incremental storage of transactions, activated the signature of the transactions on the ",(0,i.kt)("inlineCode",{parentName:"p"},"testing-preview")," network, and prepared a new network to test the scaling on ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet")," data. The team also made progress on a prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they worked on refactoring the database providers of the aggregator."),(0,i.kt)("p",null,"Finally, the team delivered a community requested feature that displays the minimum versions of the Cardano node that the signer supports in a machine-readable format. They also provided a manual setup guide for the relay in the SPO user guide."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement incremental storage of Cardano transactions in signer/aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1591"},"#1591")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril relay broadcasts signer registrations with P2P PubSub")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1587"},"#1587")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Refactor ",(0,i.kt)("inlineCode",{parentName:"strong"},"database")," module in aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1583"},"#1583")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," supports retrieving the Chain Point of the tip of the chain")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1589"},"#1589")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Create file with Cardano minimum versions in repository")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1615"},"#1615")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Deploy ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-mainnet")," network")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1617"},"#1617")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Add section for manual setup of squid in SPO guide")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1610"},"#1610")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Signer metrics server displays confusing log message")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1620"},"#1620"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/113fed8c.19100b50.js b/assets/js/113fed8c.19100b50.js new file mode 100644 index 0000000000..20e40e4e88 --- /dev/null +++ b/assets/js/113fed8c.19100b50.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[33215],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},u),{},{components:n})):r.createElement(h,s({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-07-12-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-07-12-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-12-consensus.md",source:"@site/blog/2023-07-12-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-07-12T00:00:00.000Z",formattedDate:"July 12, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.59,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-07-12-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-07-13-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-07-12-performance-and-tracing"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This week the team working on UTxO-HD discovered a space leak in the peer metrics code. This was communicated to the Networking team who has a ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4620"},"proposed fix"),". The ad-hoc benchmarks that the team ran using a local immutable DB server showed good memory and time performance. We still have to check the performance on a memory constrained machine."),(0,a.kt)("p",null,"The team working on the Genesis design started onboarding the team of engineers that will implement the new Genesis protocol. This team is also finalizing the statistical model for historical Genesis feasibility."),(0,a.kt)("p",null,"On the support front, the team ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/200"},"drafted")," an information exchange requirement (IER) for the Networking team to safely and efficiently control peer load."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/11423591.db804c98.js b/assets/js/11423591.db804c98.js new file mode 100644 index 0000000000..171777c56a --- /dev/null +++ b/assets/js/11423591.db804c98.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96410],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function n(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):n(n({},t),e)),a},d=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,o=e.originalType,p=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=u(a),s=l,h=c["".concat(p,".").concat(s)]||c[s]||m[s]||o;return a?r.createElement(h,n(n({ref:t},d),{},{components:a})):r.createElement(h,n({ref:t},d))}));function h(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=a.length,n=new Array(o);n[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:l,n[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>n,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=a(87462),l=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-06-08-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},n=void 0,i={permalink:"/2023-06-08-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-08-sre.md",source:"@site/blog/2023-06-08-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-06-08T00:00:00.000Z",formattedDate:"June 8, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.795,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-06-08-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-06-08-goedel"},nextItem:{title:"System Test Team Update",permalink:"/2023-06-08-system-test"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Bitte",id:"bitte",level:3},{value:"Bitte-cells",id:"bitte-cells",level:3},{value:"Cardano-graphql",id:"cardano-graphql",level:3},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Ci-ops",id:"ci-ops",level:3},{value:"Ci-world",id:"ci-world",level:3},{value:"Cicero",id:"cicero",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3},{value:"Openziti",id:"openziti",level:3}],d={toc:u},c="wrapper";function m(e){let{components:t,...a}=e;return(0,l.kt)(c,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include: expanding the darwin CI cluster and providing new aarch64 builder support; adding bare metal bitte cluster capability with network overlay for high IOPS workload performance, such as explorer."),(0,l.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,l.kt)("h3",{id:"bitte"},"Bitte"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Equinix bare metal capability was added to bitte: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/bitte/pull/194"},"bitte-pull-194")),(0,l.kt)("li",{parentName:"ul"},"Update bitte nixpkgs, nix version, nomad driver, equinix lifecycle, misc bug fixes: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/bitte/pull/201"},"bitte-pull-201"))),(0,l.kt)("h3",{id:"bitte-cells"},"Bitte-cells"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improvements made for patroni cluster recovery of large databases: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/bitte-cells/compare/main...patroni-flex"},"bitte-cells-branch"))),(0,l.kt)("h3",{id:"cardano-graphql"},"Cardano-graphql"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Update cardano-graphql and nixos service: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-graphql/pull/815"},"cardano-graphql-pull-815"))),(0,l.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Update cardano-node to use the updated iohk-nix environments: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5241"},"cardano-node-pull-5241"))),(0,l.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Update cardano-graphql, adds monitoring improvements and misc bug fixes: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/pull/411"},"cardano-ops-pull-411")),(0,l.kt)("li",{parentName:"ul"},"Work in progress on mixed legacy and p2p topology clusters in cardano-ops: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/master...ops-local"},"cardano-ops-branch"))),(0,l.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add a declarative cardano-faucet dashboard: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/e7d40d34aff52bbeb309f87939bd0d40f585e60a"},"cardano-world-commit")),(0,l.kt)("li",{parentName:"ul"},"Remove a requirement for root user in Nomad docker images: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/68"},"cardano-world-pull-68")),(0,l.kt)("li",{parentName:"ul"},"Enable explorer in cardano-world for high IOPS metal access: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/69"},"cardano-world-pull-69")),(0,l.kt)("li",{parentName:"ul"},"Migrate explorer cluster to cardano-world: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/75"},"cardano-world-pull-75")),(0,l.kt)("li",{parentName:"ul"},"Migrate testnet metadata server to cardano-world, cleanup envs: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/77"},"cardano-world-pull-77")),(0,l.kt)("li",{parentName:"ul"},"Add a faucet restore delegation script to cardano-world for non-functioning delegated pools: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/79"},"cardano-world-pull-79")),(0,l.kt)("li",{parentName:"ul"},"Integrate node 8.x into cardano-world: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/84"},"cardano-world-pull-84")),(0,l.kt)("li",{parentName:"ul"},"Update cardano-world to use iohk-nix for node environments: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/87"},"cardano-world-pull-87")),(0,l.kt)("li",{parentName:"ul"},"Create a stakepool analysis query for cluster pool performance overview: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/64fe3b9d4067c24eef028ac1c561d6f9a7d5a9a8"},"cardano-world-commit")),(0,l.kt)("li",{parentName:"ul"},"Added an iptables fixup script for broken bridged networking nomad jobs: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/02550206e4e34d121135794b6e54084635e55a50"},"cardano-world-commit")),(0,l.kt)("li",{parentName:"ul"},"Improve cardano-world job automation with additional parameterization: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/92"},"cardano-world-pr-92")),(0,l.kt)("li",{parentName:"ul"},"Update preview network experimental config defaults: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/93"},"cardano-world-pr-93"))),(0,l.kt)("h3",{id:"ci-ops"},"Ci-ops"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Update legacy darwin builders and buildkite agent for ci-world network overlay and monitoring: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-ops/pull/108"},"ci-ops-pull-108"))),(0,l.kt)("h3",{id:"ci-world"},"Ci-world"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Resolve ci-world linux buildkite agent cleanup bug: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-world/commit/3d053b202a6e40fab23db49801de7d6e580fab1f"},"ci-world-commit")),(0,l.kt)("li",{parentName:"ul"},"Integrate new darwin builders into ci-world: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-world/pull/22"},"ci-world-pull-22")),(0,l.kt)("li",{parentName:"ul"},"Migrate patroni HA db to it's own namespace in ci-world: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-world/pull/24"},"ci-world-pull-24"))),(0,l.kt)("h3",{id:"cicero"},"Cicero"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Implement a cicero webhook backoff with exponential decay plus jitter: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cicero/pull/79"},"cicero-pull-79"))),(0,l.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Update iohk-nix to be source of truth for node environments: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/534"},"iohk-nix-pull-534")),(0,l.kt)("li",{parentName:"ul"},"Update preview network experimental config defaults: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/544"},"iohk-nix-pull-544"))),(0,l.kt)("h3",{id:"openziti"},"Openziti"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add darwin intel and arm support to ziti-edge-tunnel nix modules: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/johnalotoski/openziti-bins/pull/1"},"openziti-bins-pull-1"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1147f4da.825e8b96.js b/assets/js/1147f4da.825e8b96.js new file mode 100644 index 0000000000..30ec064459 --- /dev/null +++ b/assets/js/1147f4da.825e8b96.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21463],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>g});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),c=u(n),p=a,g=c["".concat(s,".").concat(p)]||c[p]||d[p]||o;return n?r.createElement(g,i(i({ref:t},m),{},{components:n})):r.createElement(g,i({ref:t},m))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Embedding Quality Workstream",slug:"2022-11-03-embedding-quality",authors:"dorin100",tags:["embedding-quality"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-03-embedding-quality",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-03-embedding-quality.md",source:"@site/blog/2022-11-03-embedding-quality.md",title:"Embedding Quality Workstream",description:"High level summary",date:"2022-11-03T00:00:00.000Z",formattedDate:"November 3, 2022",tags:[{label:"embedding-quality",permalink:"/tags/embedding-quality"}],readingTime:.65,hasTruncateMarker:!1,authors:[{name:"Dorin Solomon",title:"System Test Team Lead",url:"https://github.com/dorin100",imageURL:"https://github.com/dorin100.png",key:"dorin100"}],frontMatter:{title:"Embedding Quality Workstream",slug:"2022-11-03-embedding-quality",authors:"dorin100",tags:["embedding-quality"],hide_table_of_contents:!1},prevItem:{title:"Open-Source Team",permalink:"/2022-10-31-open-source"},nextItem:{title:"Consensus Team Update",permalink:"/2022-10-02-consensus"}},s={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],m={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We made good progress on most of the Action Items we agreed on Lisbon, like:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Cardano System Tests was fully open to public (tools, tests, results)\nSee ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org"},"cardano-node-tests webpage")),(0,a.kt)("li",{parentName:"ul"},"We defined an ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/blob/master/.github/ISSUE_TEMPLATE/user-facing-feature.md"},"user-facing-functionality template")," that is used with the cardano-cli team",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"this includes acceptance criteria & user stories, and definition of done"))),(0,a.kt)("li",{parentName:"ul"},"We are in the process of running the cardano-node-tests at commit & PR level in cardano-node (we are affected by the Cicero migration right now but we did most of the work already)"),(0,a.kt)("li",{parentName:"ul"},"We started to apply a ",(0,a.kt)("em",{parentName:"li"},"labelling convention")," on ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/issues"},"cardano-node issues")," that will be used to generate some visual dashboards with some metrics ","[TBD]"),(0,a.kt)("li",{parentName:"ul"},"Ziyand Liu started an ",(0,a.kt)("em",{parentName:"li"},"End-to-End Development and Testing Process for Plutus Features"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1150db26.5f247a6a.js b/assets/js/1150db26.5f247a6a.js new file mode 100644 index 0000000000..c5e4096ff6 --- /dev/null +++ b/assets/js/1150db26.5f247a6a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7268],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(r),d=l,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||n;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=r.length,i=new Array(n);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>n,metadata:()=>o,toc:()=>u});var a=r(87462),l=(r(67294),r(3905));const n={title:"Ledger Team Update",slug:"2024-04-10-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-04-10-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-10-ledger.md",source:"@site/blog/2024-04-10-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-04-10T00:00:00.000Z",formattedDate:"April 10, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.22,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-04-10-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-04-12-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2024-04-10-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3},{value:"Low level summary",id:"low-level-summary",level:2}],s={toc:u},c="wrapper";function m(e){let{components:t,...r}=e;return(0,l.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"Most notable progress is on testing. In particular data generation for conformance test\nhas been improved and the implementation organized. Addition of various Conway related\nunit and property tests."),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4236"},"pull-4236")," - Fix typo in ",(0,l.kt)("inlineCode",{parentName:"li"},"ToJSON")," of ",(0,l.kt)("inlineCode",{parentName:"li"},"ConwayGovState")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4250"},"pull-4250")," - Add some ToJSON instances needed by cardano-node")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4221"},"pull-4221")," - Fix a NoThunks test failure on nightly builds"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4214"},"pull-4214")," - Fix ",(0,l.kt)("inlineCode",{parentName:"li"},"estimateMinFeeTx")," w/ bootstrap test"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4189"},"pull-4189")," - Imptests - treasury withdrawals"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4207"},"pull-4207")," - Added tests from a bug report"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4238"},"pull-4238")," - Imptests: ParameterChange affects ratification for in-flight proposals"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4243"},"pull-4243")," - Convert ",(0,l.kt)("inlineCode",{parentName:"li"},"small-steps")," testsuite to ",(0,l.kt)("inlineCode",{parentName:"li"},"Hspec")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4248"},"pull-4248")," - Fix withdrawals test data generation in ",(0,l.kt)("inlineCode",{parentName:"li"},"EnactSpec")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4212"},"pull-4212")," - Update and reorganize conformance tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4242"},"pull-4242")," - Added UnitTestTools and IncrementalStakeTest")),(0,l.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4219"},"pull-4219")," - Fixes for 8.10 release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4225"},"pull-4225")," - Post release updates"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4235"},"pull-4235")," - Revert to full formolu runs on CI"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4239"},"pull-4239")," - Use the Cabal-syntax package instead of the Cabal package"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4234"},"pull-4234")," - Add separate ",(0,l.kt)("inlineCode",{parentName:"li"},"devShell")," for ",(0,l.kt)("inlineCode",{parentName:"li"},"pre-commit")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4245"},"pull-4245")," - Plutus 1.25.0.0"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4246"},"pull-4246")," - Changelog for node release 8.10"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4249"},"pull-4249")," - Update tooling and minor fixups")),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/120c0b00.31df5ba4.js b/assets/js/120c0b00.31df5ba4.js new file mode 100644 index 0000000000..286d8827f6 --- /dev/null +++ b/assets/js/120c0b00.31df5ba4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[59955],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(a),m=r,h=d["".concat(p,".").concat(m)]||d[m]||s[m]||o;return a?n.createElement(h,i(i({ref:t},c),{},{components:a})):n.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-11-30-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2022-11-30-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-30-node-cli-api.md",source:"@site/blog/2022-11-30-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2022-11-30T00:00:00.000Z",formattedDate:"November 30, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.01,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-11-30-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-11-30-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2022-11-30-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3}],c={toc:u},d="wrapper";function s(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2022-11-30---2022-12-13"},"2022-11-30 - 2022-12-13"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped. "),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4675"},"Append tx output in cli transaction build command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4592"},"Update Error messages in cardano-cli"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4675"},"Replace Data.Map with Data.Map.Strict")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4708"},"Update Github actions"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4250"},"Optimise query leadership schedule command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4179"},"Optimise query stake snapshot command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4659"},"Render consistent plutus script failure output"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/12208c5e.f4ec2b41.js b/assets/js/12208c5e.f4ec2b41.js new file mode 100644 index 0000000000..9a4207caaf --- /dev/null +++ b/assets/js/12208c5e.f4ec2b41.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32852],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),c=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=c(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=c(r),m=n,d=u["".concat(p,".").concat(m)]||u[m]||h[m]||o;return r?a.createElement(d,i(i({ref:t},s),{},{components:r})):a.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-07-21-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-07-21-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-21-hydra.md",source:"@site/blog/2023-07-21-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-07-21T00:00:00.000Z",formattedDate:"July 21, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.7,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-07-21-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-07-26-consensus"},nextItem:{title:"Ledger Team Update",permalink:"/2023-07-21-ledger"}},p={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:c},u="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team updated the specification to align with recent\noff-chain protocol changes, completed refactoring the snapshot emission\nin preparation for event-sourced protocol logic, and updated to GHC\n9.2.7, resulting in improved compile times and slightly smaller Plutus\nscripts."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated the specification to match the recent off-chain protocol\nchanges to complete\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/728"},"#728")),(0,n.kt)("li",{parentName:"ul"},"Refactored the snapshot emission logic in preparation for event\nsourced protocol logic."),(0,n.kt)("li",{parentName:"ul"},"Updated to GHC 9.2.7, which led to improved compile times and\nslightly smaller plutus scripts.")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting next wednesday and July report"),(0,n.kt)("li",{parentName:"ul"},"Reflect latest information onto our roadmap."),(0,n.kt)("li",{parentName:"ul"},"Actual implemention of event-sourced persistence\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/913"},"#913"),"."),(0,n.kt)("li",{parentName:"ul"},"Update the use cases section on ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family"},"https://hydra.family")),(0,n.kt)("li",{parentName:"ul"},"Remove deprecated internal commit\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/954"},"#954"),".")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/12525f14.7f52fc0e.js b/assets/js/12525f14.7f52fc0e.js new file mode 100644 index 0000000000..2a984972a7 --- /dev/null +++ b/assets/js/12525f14.7f52fc0e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46207],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function p(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=r.createContext({}),i=function(e){var t=r.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):p(p({},t),e)),a},h=function(e){var t=i(e.components);return r.createElement(o.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,h=u(e,["components","mdxType","originalType","parentName"]),d=i(a),c=n,m=d["".concat(o,".").concat(c)]||d[c]||s[c]||l;return a?r.createElement(m,p(p({ref:t},h),{},{components:a})):r.createElement(m,p({ref:t},h))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,p=new Array(l);p[0]=c;var u={};for(var o in t)hasOwnProperty.call(t,o)&&(u[o]=t[o]);u.originalType=e,u[d]="string"==typeof e?e:n,p[1]=u;for(var i=2;i{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>p,default:()=>s,frontMatter:()=>l,metadata:()=>u,toc:()=>i});var r=a(87462),n=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2023-04-03-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},p=void 0,u={permalink:"/quarterly/2023-04-03-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-04-03-ledger.md",source:"@site/quarterly/2023-04-03-ledger.md",title:"Ledger Team Update",description:"Ledger Quarterly Update",date:"2023-04-03T00:00:00.000Z",formattedDate:"April 3, 2023",tags:[{label:"ledger",permalink:"/quarterly/tags/ledger"}],readingTime:6.405,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-04-03-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Network Q1 2023 Update",permalink:"/quarterly/2023-04-04-network"},nextItem:{title:"Consensus Quarterly Update",permalink:"/quarterly/2023-01-18-consensus"}},o={authorsImageUrls:[void 0]},i=[{value:"Ledger Quarterly Update",id:"ledger-quarterly-update",level:2},{value:"2023-01 - 2023-03",id:"2023-01---2023-03",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"CIPs",id:"cips",level:4},{value:"Formal ledger model",id:"formal-ledger-model",level:4},{value:"Conway ledger era",id:"conway-ledger-era",level:4},{value:"DRep stake distribution computation",id:"drep-stake-distribution-computation",level:4},{value:"Integration work",id:"integration-work",level:4},{value:"Deposit tracking",id:"deposit-tracking",level:4},{value:"New ledger API",id:"new-ledger-api",level:4},{value:"Constraint-based generators",id:"constraint-based-generators",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Critical fixes",id:"critical-fixes",level:5},{value:"Next steps",id:"next-steps",level:3},{value:"More details",id:"more-details",level:3}],h={toc:i},d="wrapper";function s(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"ledger-quarterly-update"},"Ledger Quarterly Update"),(0,n.kt)("h2",{id:"2023-01---2023-03"},"2023-01 - 2023-03"),(0,n.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,n.kt)("h4",{id:"cips"},"CIPs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Entering the Voltaire phase")," -\nCIP-1694 received a major update after participation in the design has expanded to\nmore and more people, including those who attended the Colorado workshop.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/380"},"CIP-1694"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Ledger CIP category")," -\nThe ledger team continues to embrace the CIP process, and has begun the process of\nregistering the ledger as an official CIP category.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/456"},"CIP-84"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Ledger serialization")," -\nA CIP for the ledger serialization deprecation cycle has been accepted.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/tree/master/CIP-0080"},"CIP-80"),".")),(0,n.kt)("h4",{id:"formal-ledger-model"},"Formal ledger model"),(0,n.kt)("p",null,"Our new formal specifications backed by Agda have seen a lot of progress.\nThe majority of the ideas in CIP-1694 are now present, and we have made enough progress\nthat we can now safely say that the PDF produced by the Agda model will be the\nofficial ledger specification for the Conway ledger era.\nSee ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/formal-ledger-specifications"},"the repository"),"."),(0,n.kt)("h4",{id:"conway-ledger-era"},"Conway ledger era"),(0,n.kt)("p",null,"Progress on the Haskell implementation of CIP-1694 has gone hand in hand with the formal model.\nThe major component still missing is the DRep stake distribution, which still presents some\ntechnical challenges."),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3176"},"pull-3176"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3216"},"pull-3216"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3226"},"pull-3226"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3291"},"pull-3291"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3326"},"pull-3326"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3330"},"pull-3330"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3339"},"pull-3339"),"]"),(0,n.kt)("h4",{id:"drep-stake-distribution-computation"},"DRep stake distribution computation"),(0,n.kt)("p",null,"Adding another large stake distribution to the ledger state must proceed with caution.\nWe do not want the memory used by the node to increase too much,\nand performance problems can lead to reduced block production.\nWe have prototyped, tested, and benchmarked several approaches that could give us\nthe current DRep stake distribution at each epoch boundary.\nThis has very important implications, since we want every ADA holder to be able to at any\ntime (such as during a contentious vote) register themselves as a DRep and still have time\nto vote themselves on the issue."),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3344"},"pull-3344"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3353"},"pull-3353"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3364"},"pull-3364"),"]"),(0,n.kt)("h4",{id:"integration-work"},"Integration work"),(0,n.kt)("p",null,"The ledger has made some wonderful improvements over the past six months,\nbut which entail a significant amount of integration efforts:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Our new versioned CBOR schemes"),(0,n.kt)("li",{parentName:"ul"},"Individual deposit tracking"),(0,n.kt)("li",{parentName:"ul"},"An improved cross-era interface utilizing lenses"),(0,n.kt)("li",{parentName:"ul"},"A new ledger API"),(0,n.kt)("li",{parentName:"ul"},"Re-arranging the ledger stake in preparation for CIP-1694"),(0,n.kt)("li",{parentName:"ul"},"Versioning our Haskell packages\nusing ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-haskell-packages"},"CHaPs"),"."),(0,n.kt)("li",{parentName:"ul"},"Consistent conventions for variable names")),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3279"},"pull-3279"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3282"},"pull-3282"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3288"},"pull-3288"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3289"},"pull-3289"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3292"},"pull-3292"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3297"},"pull-3297"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3298"},"pull-3298"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3299"},"pull-3299"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3300"},"pull-3300"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3302"},"pull-3302"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3303"},"pull-3303"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3308"},"pull-3308"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3342"},"pull-3342"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3345"},"pull-3345"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3356"},"pull-3356"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3357"},"pull-3357"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3360"},"pull-3360"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3361"},"pull-3361"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3363"},"pull-3363"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4349"},"pull-4349"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/378"},"pull-378"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/376"},"pull-376"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/373"},"pull-373"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/370"},"pull-370"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/361"},"pull-361"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4976"},"pull-4976"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5013"},"pull-5013"),"]"),(0,n.kt)("h4",{id:"deposit-tracking"},"Deposit tracking"),(0,n.kt)("p",null,"Individual deposits (for stake credential and stake pool registrations) were not tracked by the ledger.\nDeposits were returned according to the current protocol parameters.\nWhen the values of these two protocol parameters change, the deposit pot\nis adjusted by adding to, or removing from, the reserves."),(0,n.kt)("p",null,"This has several problems:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Most people expect a deposit to be paid back exactly."),(0,n.kt)("li",{parentName:"ul"},"We cannot increase the deposit amount once the reserves hits zero."),(0,n.kt)("li",{parentName:"ul"},"If it becomes known that the deposit amount is going to be increased, free Lovelace can be earned by registering credentials."),(0,n.kt)("li",{parentName:"ul"},"Because of the problems above, it is going to be incredibly hard to ever change the values."),(0,n.kt)("li",{parentName:"ul"},"There is a serious issue involving hard forks.\nThe consensus layer makes the decision about whether or not to enact a hard fork based on\nthe protocol parameter update state two stability windows before the end of the epoch.\nHowever, the ledger will reject a protocol parameter update on the epoch boundary\nif the deposit pot adjustments cannot be reconciled with the reseve pot.\nThis means that if quorum is met regarding changing the major protocol version,\nbut the update is rejected on the epoch boundary, consensus will change the era but the\nledger will not change the major protocol version, leaving the ledger in a split-brain state.")),(0,n.kt)("p",null,"Because we never actually changed the values of the two deposits amounts in the protocol parameters\non mainnet, we were able to retroactively change the behavior.\nWe made the following changes:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Individual deposits are tracked in the ",(0,n.kt)("inlineCode",{parentName:"li"},"DState"),"."),(0,n.kt)("li",{parentName:"ul"},"The amount deposited is always returned.")),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3195"},"pull-3195"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3202"},"pull-3202"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3217"},"pull-3217"),"]"),(0,n.kt)("h4",{id:"new-ledger-api"},"New ledger API"),(0,n.kt)("p",null,"We have significantly built up the ledger API.\nWe will eventually replace much of the ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-api")," in the node repository with this ledger API."),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3242"},"pull-3242"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3248"},"pull-3248"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3328"},"pull-3328"),"]"),(0,n.kt)("h4",{id:"constraint-based-generators"},"Constraint-based generators"),(0,n.kt)("p",null,"Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks\nwhich span several epochs, mimicking a real network.\nThese tests are, in theory, excellent for checking properties.\nThey are, however, very difficult to maintain and are not as random as we would like\n(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks)."),(0,n.kt)("p",null,"We have a new declaritive infrastructure for building constraint-based generators,\nwhich instead generate a random ledger state representative of not just an initial state,\nbut also those representative of the end result of a long sequence of valid blocks.\nMoreover, these generators are very fast and are much more random than our old generators.\nBefore we can start using them for our existing property tests, however, we still need to\nexpand them to generate a valid block for a given ledger state."),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3219"},"pull-3219"),"]"),(0,n.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,n.kt)("p",null,"We continued to address technical debt as much as we can."),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3167"},"pull-3167"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3170"},"pull-3170"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3172"},"pull-3172"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3175"},"pull-3175"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3184"},"pull-3184"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3205"},"pull-3205"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3208"},"pull-3208"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3210"},"pull-3210"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3212"},"pull-3212"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3218"},"pull-3218"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3222"},"pull-3222"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3223"},"pull-3223"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3224"},"pull-3224"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3225"},"pull-3225"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3229"},"pull-3229"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3239"},"pull-3239"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3241"},"pull-3241"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3244"},"pull-3244"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3245"},"pull-3245"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3249"},"pull-3249"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3260"},"pull-3260"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3263"},"pull-3263"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3264"},"pull-3264"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3268"},"pull-3268"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3269"},"pull-3269"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3270"},"pull-3270"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3274"},"pull-3274"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3276"},"pull-3276"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3277"},"pull-3277"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3286"},"pull-3286"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3290"},"pull-3290"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3295"},"pull-3295"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3296"},"pull-3296"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3306"},"pull-3306"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3307"},"pull-3307"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3310"},"pull-3310"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3311"},"pull-3311"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3316"},"pull-3316"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3320"},"pull-3320"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3323"},"pull-3323"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3327"},"pull-3327"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3331"},"pull-3331"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3332"},"pull-3332"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3333"},"pull-3333"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3338"},"pull-3338"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3341"},"pull-3341"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3347"},"pull-3347"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3350"},"pull-3350"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3351"},"pull-3351"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3352"},"pull-3352"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3354"},"pull-3354"),"]"),(0,n.kt)("h5",{id:"critical-fixes"},"Critical fixes"),(0,n.kt)("p",null,"We fixed two critical issues:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Growing block production delay on the epoch boundary: [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3209"},"pull-3209"),"]"),(0,n.kt)("li",{parentName:"ul"},"Unexpected node shutdown from ",(0,n.kt)("inlineCode",{parentName:"li"},"balanceR"),": [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3343"},"pull-3343"),"]")),(0,n.kt)("h3",{id:"next-steps"},"Next steps"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Conway spec")," -\nComplete the first version of the conway formal specification."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"DRep stake distribution")," -\nHave the ledger compute the DRep stake distribution with acceptible performance."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Devnet ready")," -\nHave the Haskell implementation of the conway era in sync with the formal specification,\nand integrate the changes with consensus and node.\nAll the details might not be finalized, but the wire specification and the API should\nbe stable so that conway can be placed on a devnet for tool builders to start integrating with."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Plutus V3")," -\nIntegrate Plutus V3 into the ledger, including a new script context which supports DReps.")),(0,n.kt)("h3",{id:"more-details"},"More details"),(0,n.kt)("p",null,"This quarterly report was based off of the following fortnightly ones:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-01-05-ledger"},"2023-01-05")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-01-19-ledger"},"2023-01-19")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-02-02-ledger"},"2023-02-02")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-02-17-ledger"},"2023-02-17")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-03-03-ledger"},"2023-03-03")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-03-17-ledger"},"2023-03-17")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-03-31-ledger"},"2023-03-31"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/12637b23.62c1478c.js b/assets/js/12637b23.62c1478c.js new file mode 100644 index 0000000000..12c11f424d --- /dev/null +++ b/assets/js/12637b23.62c1478c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32706],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(a),s=r,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,i(i({ref:t},c),{},{components:a})):n.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-05-24-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2023-05-24-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-24-node-cli-api.md",source:"@site/blog/2023-05-24-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-05-24T00:00:00.000Z",formattedDate:"May 24, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-05-24-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-05-26-network"},nextItem:{title:"Hydra Team Update",permalink:"/2023-05-19-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-05-24---2023-06-06"},"2023-05-24 - 2023-06-06"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The last sprint focused on removing cardano-cli and cardano-api from the cardano-node repository. We have successfully moved cardano-api to its own repository and will do the same for cardano-cli after the 8.1 node is released. "),(0,r.kt)("li",{parentName:"ul"},"We provided assitance where needed in the release"),(0,r.kt)("li",{parentName:"ul"},"An integration repository ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fusion-flamingo"},"https://github.com/input-output-hk/fusion-flamingo")," was created to enable my team to more easily work on cardano-cli and cardano-api")),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5290"},"Update ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli")," changelog")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5197"},"Propagate protocol parameters conversion errors")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5149"},"Command line option for parsing UTC time to slot number")," ")),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/31"},"Switch to ",(0,r.kt)("inlineCode",{parentName:"a"},"tasty-discover"))," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/30"},"Move tests to standard locations")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/26"},"Make cardano-api:internal component public")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/24"},"update chaps index")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/18"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"ErrorSpec")," check for all constructors, move golden tests together")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/17"},"Expose toAlonzoCostModels")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/9"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"ErrorsSpec")," use generated types and constructors names")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/32"},"Check changelog in tag script")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/34"},"Use tag script from ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-dev")," repository instead")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/38"},"Use .x suffix for release branches")," ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5291"},"Use ",(0,r.kt)("inlineCode",{parentName:"a"},"cryptoInit")," instead of ",(0,r.kt)("inlineCode",{parentName:"a"},"sodiumInit"))," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5284"},"Move configuration tests to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-node")," tests")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5243"},"update chaps & integration")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5240"},"#5222 Remove ",(0,r.kt)("inlineCode",{parentName:"a"},"ApplicationName")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"ApplicationVersion")," config parameters")," ")),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/126e82e6.da48ff44.js b/assets/js/126e82e6.da48ff44.js new file mode 100644 index 0000000000..4728ee1f40 --- /dev/null +++ b/assets/js/126e82e6.da48ff44.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96871],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=p(a),s=n,m=c["".concat(u,".").concat(s)]||c[s]||h[s]||o;return a?r.createElement(m,l(l({ref:t},d),{},{components:a})):r.createElement(m,l({ref:t},d))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=s;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:n,l[1]=i;for(var p=2;p{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Ledger Team Update",slug:"2022-11-02-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2022-11-02-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-ledger.md",source:"@site/blog/2022-11-02-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2022-11-02T00:00:00.000Z",formattedDate:"November 2, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.275,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-11-02-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-10-02-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-11-02-node-cli-api"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Axiomatic Set Theory",id:"axiomatic-set-theory",level:3},{value:"Completed Technical Debt",id:"completed-technical-debt",level:3}],d={toc:p},c="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"We have made the decision to use the\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/formal-ledger-specifications"},"formal ledger repository"),"\nin place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure\nto the model. In particular, we now have a lot of support for axiomatic set theory.\nWhile the next ledger era is still in the design phase, most of the team remains working\non technical debt.\nIn particular, we have moved a lot more code out of the Shelley specific modules and into\na ledger core module, we have finished up our benchmarking around the problematic ",(0,n.kt)("inlineCode",{parentName:"p"},"TICKF"),"\nledger transition (while improving the performance), made conveniences to the development\nenvironment, cleaned up all the recent changes to the cost model, added a lot of documentation,\nfixed some flaky tests, and deleted some dead code."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"axiomatic-set-theory"},"Axiomatic Set Theory"),(0,n.kt)("p",null,"The formal ledger model now has support for much of the set theory that we make use of in\nthe formal ledger specifications. See [",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/formal-ledger-specifications/pull/20"},"pull-20"),"]."),(0,n.kt)("h3",{id:"completed-technical-debt"},"Completed Technical Debt"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We have addressed issues with two of our most problematic and flaky tests.\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3039"},"pull-3039"),"] and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3093"},"pull-3093"),"]."),(0,n.kt)("li",{parentName:"ul"},"We have added more documentation and tests to the Twiddler module. This is a module which\nmakes our CBOR serialization round-trip tests much more robust, and will also hopefully\nhelp enforce the mandate for downstream libraries to never re-serialize data that needs\nto be hashed. See [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3073"},"pull-3073"),"] and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3095"},"pull-3095"),"]\n(we cannot merge 3095 just yet, due to a preference for merging other features)."),(0,n.kt)("li",{parentName:"ul"},"We have finished our long analysis of the problematic ",(0,n.kt)("inlineCode",{parentName:"li"},"TICKF")," transition.\nWe now have a lot of benchmarks surrounding this code, and have added performance improvements.\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3068"},"pull-3068"),"] and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3035"},"issue-3035"),"]."),(0,n.kt)("li",{parentName:"ul"},"We have restored support for\n",(0,n.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/ghcid"},"ghcid"),"\nin our repository. This is a tool for developing with Haskell that many of us find greatly\nimproves our productivity by providing us with constant feedback from the type checker.\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3112"},"pull-3112"),"]."),(0,n.kt)("li",{parentName:"ul"},"After much activity on the cost model, we have done some final clean up of the code.\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3075"},"pull-3075"),"] and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3101"},"pull-3101"),"]."),(0,n.kt)("li",{parentName:"ul"},"We moved a lot of the existing user facing documentation regarding native tokens into the\nledger repository, and cleaned it up\n(most of the heavy lifting was done by our amazing technical writers).\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3091"},"pull-3091"),"]."),(0,n.kt)("li",{parentName:"ul"},"We removed dead code. See [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3089"},"pull-3089"),"]."),(0,n.kt)("li",{parentName:"ul"},"We moved a lot of code from the Shelley specific libraries to the ledger core library.\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3109"},"pull-3109"),"] and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3110"},"pull-3110"),"]."),(0,n.kt)("li",{parentName:"ul"},"We've removed more of the awkward legacy template Haskell names.\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3108"},"pull-3108"),"].")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/12a1613f.8986c60c.js b/assets/js/12a1613f.8986c60c.js new file mode 100644 index 0000000000..34e91d7812 --- /dev/null +++ b/assets/js/12a1613f.8986c60c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4615],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>g});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),m=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=m(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=m(n),p=a,g=d["".concat(c,".").concat(p)]||d[p]||u[p]||i;return n?r.createElement(g,o(o({ref:t},s),{},{components:n})):r.createElement(g,o({ref:t},s))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var m=2;m{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>m});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-08-11-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-08-11-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-11-performance-and-tracing.md",source:"@site/blog/2023-08-11-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-08-11T00:00:00.000Z",formattedDate:"August 11, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.335,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-08-11-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-08-11-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-08-10-mithril"}},c={authorsImageUrls:[void 0]},m=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],s={toc:m},d="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've concluded benchmarking node version ",(0,a.kt)("inlineCode",{parentName:"li"},"8.2.0"),"."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Optimization of the new tracing system has been merged; we're currently working on self-documenting tracing configuration."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: A PR that makes our backend take advantage of added flexibility of the new hardware cluster has been merged.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"As part of our release benchmarking cycle, we've completed and analysed the runs for the ",(0,a.kt)("inlineCode",{parentName:"p"},"8.2.0")," version of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". In addition to the adjustment of sanity checks in our automation, we had to implement small changes in the analysis pipeline as well to accomodate the new version."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"A significant amount of optimizations for the new tracing system has finally been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". At the moment,\nwe're working on having a trace message self-document the final tracing configuration of a running node. Apart from adding\ninsight into the system, this feature also aims at making future hot reloading of tracing configuration explicit and straightforward. "),(0,a.kt)("p",null,"Furthermore, we're setting up a final round of system integration level benchmarks comparing new against legacy tracing."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"The new hardware cluster permits greater flexibility as far as SSH access is concerned. By using nomad for a consistent\nand reliable deployment, but taking advantage of direct connections for healthchecks and data transfer we believe we were\nable to reduce overall network latency in the nomad cluster. This improves confidence when capturing all network related measurements during our benchmarks. "),(0,a.kt)("p",null,"A PR that adds these capabalities to our nomad backend - along with very many quality-of-life improvements - has been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/12ba2af2.76fcec32.js b/assets/js/12ba2af2.76fcec32.js new file mode 100644 index 0000000000..763973221a --- /dev/null +++ b/assets/js/12ba2af2.76fcec32.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3203],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-06-26-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-06-26-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-26-mithril.md",source:"@site/blog/2024-06-26-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-06-26T00:00:00.000Z",formattedDate:"June 26, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.155,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-06-26-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-06-26-consensus"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-06-25-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team released the ",(0,n.kt)("a",{parentName:"p",href:"https://mithril.network/doc/next/mithril/threat-model"},"threat modeling explainer")," for the documentation website. They also continued implementing the certification of Cardano transactions in Mithril networks and the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas. Additionally, the team started redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network."),(0,n.kt)("p",null,"Finally, they fixed a bug that prevented the verification of the transactions included in the last certified block and improved the WASM client's documentation."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Threat modeling and risk analysis")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement database connection pooling for Cardano transaction repository")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1760"},"#1760")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Import Cardano transactions by sequences of block ranges")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1766"},"#1766")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Limit Cardano transactions prover input")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1757"},"#1757")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Transactions of the block number in the artifact are never certified by the prover")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1762"},"#1762")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Add missing pre-requisite to build WASM client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1753"},"#1753")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Import Cardano transactions with ",(0,n.kt)("inlineCode",{parentName:"strong"},"ChainReader"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1705"},"#1705")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"CIP for Mithril signature diffusion through Cardano network")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1775"},"#1775")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Optimize Cardano transaction prover performances with parallelization")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1756"},"#1756")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Cardano signatures are not produced on ",(0,n.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1750"},"#1750")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Lint Markdown/JavaScript files in repository")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1754"},"#1754"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/12c83d8a.181ac276.js b/assets/js/12c83d8a.181ac276.js new file mode 100644 index 0000000000..848efa08cd --- /dev/null +++ b/assets/js/12c83d8a.181ac276.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58774],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),s=p(r),m=n,d=s["".concat(u,".").concat(m)]||s[m]||c[m]||o;return r?a.createElement(d,i(i({ref:t},h),{},{components:r})):a.createElement(d,i({ref:t},h))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-07-28-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-07-28-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-28-hydra.md",source:"@site/blog/2023-07-28-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-07-28T00:00:00.000Z",formattedDate:"July 28, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.005,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-07-28-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-07-31-network"},nextItem:{title:"Mithril Team Update",permalink:"/2023-07-27-mithril"}},u={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:p},s="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"During this week, the Hydra team achieved significant progress in various areas.\nThey conducted the monthly review meeting for July, which continously ensures\ntransparent communication and project evaluation. The team migrated the core\nlogic of the node to an event-sourced architecture and incremental writes of\nevents to persistence, enhancing the project","\u2019","s performance and maintainability.\nFurthermore, the team added the ability to read protocol parameters via the API\nand fixed the CI workflows to support pull requests from forks of external\ncontributors, streamlining the development process for community involvement."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Held the monthly review meeting for July (",(0,n.kt)("a",{parentName:"li",href:"https://drive.google.com/file/d/14ANZ3efuxgXpYK94EBWxZLR9TtN7voru/"},"recording"),")"),(0,n.kt)("li",{parentName:"ul"},"Migrate the core logic of the node to an event-sourced architecture ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/999"},"#999")),(0,n.kt)("li",{parentName:"ul"},"Updated persistence to faster incremental writes of events ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1000"},"#1000")),(0,n.kt)("li",{parentName:"ul"},"Added ability to read protocol parameters via API ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/735"},"#735")),(0,n.kt)("li",{parentName:"ul"},"Fix CI workflows to support pull requests from forks of external contributors ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/993"},"#993")),(0,n.kt)("li",{parentName:"ul"},"Updated to GHC 9.2.8 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1005"},"#1005")),(0,n.kt)("li",{parentName:"ul"},"Prepared an updated use cases section on ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family"},"https://hydra.family")," (published with next release)")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Publish monthly report"),(0,n.kt)("li",{parentName:"ul"},"Complete user transaction submission work ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/966"},"#966")),(0,n.kt)("li",{parentName:"ul"},"Remove commit from internal wallet (deprecated) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/954"},"#954"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/12d5d907.4b4f6c05.js b/assets/js/12d5d907.4b4f6c05.js new file mode 100644 index 0000000000..15ad7821b4 --- /dev/null +++ b/assets/js/12d5d907.4b4f6c05.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16348],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),h=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=h(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=h(r),m=n,d=p["".concat(s,".").concat(m)]||p[m]||c[m]||o;return r?a.createElement(d,i(i({ref:t},u),{},{components:r})):a.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var h=2;h{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>h});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-04-07-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-04-07-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-07-hydra.md",source:"@site/blog/2023-04-07-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-04-07T00:00:00.000Z",formattedDate:"April 7, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.875,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-04-07-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-04-14-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-04-06-mithril"}},s={authorsImageUrls:[void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:h},p="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team published the monthly report for March, created\nseparate links for different versions of documentation, and clarified potential\nsolutions for the Rollbacks bug. The team also discussed Query API requests for\nthe Hydra Voting project and met with community members to answer questions\nabout Hydra. Moving forward, the team plans to integrate the specification into\nthe repository, implement a short-term fix for the Rollbacks issue, and draft a\nQuery API ADR."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Published monthly reports on ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-03"},"website")),(0,n.kt)("li",{parentName:"ul"},"Separate last released and latest versions of docs (e.g. normal ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/core-concepts/behavior/#replay-of-past-server-outputs"},"released")," vs. ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/unstable/core-concepts/behavior/#replay-of-past-server-outputs"},"/unstable"),")"),(0,n.kt)("li",{parentName:"ul"},"Discussed Query API concerns from Hydra Voting project (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/discussions/797"},"link"),")"),(0,n.kt)("li",{parentName:"ul"},"Clarified rollbacks bug and defined possible solutions (short and long term) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Met with community members to answer questions about Hydra")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Finally get the docs integrated into the repository ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/693"},"#693")),(0,n.kt)("li",{parentName:"ul"},"Dirt road fix for rollbacks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Disclaimer text and detail known issues about mainnet compatibility\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/713"},"#713"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/133ddf45.1d864212.js b/assets/js/133ddf45.1d864212.js new file mode 100644 index 0000000000..165eb3709f --- /dev/null +++ b/assets/js/133ddf45.1d864212.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73716],{25601:e=>{e.exports=JSON.parse('{"permalink":"/page/51","page":51,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/50","nextPage":"/page/52","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/1377d1fa.ebb55dd5.js b/assets/js/1377d1fa.ebb55dd5.js new file mode 100644 index 0000000000..2afe394ab8 --- /dev/null +++ b/assets/js/1377d1fa.ebb55dd5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[79841],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var u=n.createContext({}),p=function(e){var t=n.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,u=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=p(a),s=r,h=c["".concat(u,".").concat(s)]||c[s]||m[s]||o;return a?n.createElement(h,l(l({ref:t},d),{},{components:a})):n.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=s;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:r,l[1]=i;for(var p=2;p{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-10-19-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2022-10-19-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-19-node-cli-api.md",source:"@site/blog/2022-10-19-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2022-10-19T00:00:00.000Z",formattedDate:"October 19, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.57,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-10-19-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-10-21-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2022-10-18-consensus"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-submit-api",id:"cardano-submit-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3}],d={toc:p},c="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2022-10-19---2022-11-01"},"2022-10-19 - 2022-11-01"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"This sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node's mempool for the following information:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Ask the node about the current mempool's capacity and sizes"),(0,r.kt)("li",{parentName:"ul"},"Request the next transaction from the mempool's current list"),(0,r.kt)("li",{parentName:"ul"},"Query if a particular transaction exists in the mempool")),(0,r.kt)("p",null,"Outside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric ",(0,r.kt)("inlineCode",{parentName:"p"},"tx_submit_fail_count")," has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Documentation improvments"),(0,r.kt)("li",{parentName:"ul"},"Release 1.35.4 was merged & released"),(0,r.kt)("li",{parentName:"ul"},"Exported various types from cardano-api that were requested by community members")),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4508"},"Release 1.35.4"))),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4276"},"Add tx-mempool command to CLI")),(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4538"},"Fix query era mismatch bug in transaction build command")),(0,r.kt)("li",{parentName:"ul"},"[Serenity]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4516"},"Condense Read and Validation modules in cardano-cli"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4482"},"Return Lovelace for calculateMinimumUTxO")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4554"},"Export IsPlutusScriptLanguage from cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4546"},"Reduce exposed modules in cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4568"},"Add ToJSON and FromJSON instances for Address")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4565"},"Export TxIns type alias from Cardano.Api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4534"},"Export more generators from cardano-api"))),(0,r.kt)("h3",{id:"cardano-submit-api"},"cardano-submit-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4566"},"Add tx_submit_fail_count metric"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4549"},"Upgrade to cabal-3.8.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4613"},"Update building-the-node-using-nix.md"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"None")),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4250"},"Optimise query leadership schedule command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4179"},"Optimise query stake snapshot command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/142448a1.51281420.js b/assets/js/142448a1.51281420.js new file mode 100644 index 0000000000..958fa06aa0 --- /dev/null +++ b/assets/js/142448a1.51281420.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[61705],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=c(a),m=r,h=u["".concat(s,".").concat(m)]||u[m]||p[m]||o;return a?n.createElement(h,l(l({ref:t},d),{},{components:a})):n.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:r,l[1]=i;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=a(87462),r=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2024-05-10-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-05-10-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-10-sre.md",source:"@site/blog/2024-05-10-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-05-10T00:00:00.000Z",formattedDate:"May 10, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.69,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-05-10-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-05-10-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2024-05-08-ledger"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-faucet",id:"cardano-faucet",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3}],d={toc:c},u="wrapper";function p(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A preview of the new cardano tracing system is available by using the\n",(0,r.kt)("inlineCode",{parentName:"p"},"profile-cardano-node-new-tracing")," new nixosModule from cardano-parts and is\ncomplemented with new tracing system dashboards and alerts")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Custom cardano metrics can be pushed to a statsd server and then scraped to a\nmonitoring solution using the ",(0,r.kt)("inlineCode",{parentName:"p"},"profile-cardano-custom-metrics")," new\nnixosModule from cardano-parts")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A new cardano-parts job for spinning up clusters using a recent cardano-cli\ncommand, create-testnet-data, was implemented: ",(0,r.kt)("inlineCode",{parentName:"p"},".#job-gen-custom-node-config-data")))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"cardano-faucet"},"Cardano-faucet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Cardano-faucet was upgraded to use the latest cardano-api and cardano-cli\nversions:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-faucet/pull/10"},"cardano-faucet-pull-10"))),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-faucet-ng to 8.10, and mithril","[","-ng","]"," to 2418-1. A preview\nnixosModule for cardano-node's new tracing system has been added as well as a\ncardano custom-metrics module. Dashboards have been added for the new tracing\nsystem. Cardano-node alerts have been refactored into several rulesets which\ninclude some new alerts as well as new tracing system alerts. A job for\nspinning a cardano cluster up using a new underlying cardano-cli mechanism,\ncreate-testnet-data, was added. More detail is available in the PR description:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/40"},"cardano-parts-pull-40"))),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets mithril to 2418-1. Cardano-node alerts have been refactored into\nseveral rulesets which include some new alerts as well as new tracing system\nalerts. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/14"},"cardano-mainnet-pull-14"))),(0,r.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Cluster scaling changes and minor improvments to the perf machine cluster:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/3cce0de...5631a13"},"cardano-perf-compare"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-faucet-ng to 8.10 which fixes a sanchonet faucet instability, and\nmithril","[","-ng","]"," to 2418-1. Adds a new cardano-node tracing system preview to some\nmachines with corresponding dashboards. Cardano-node alerts have been\nrefactored into several rulesets which include some new alerts as well as new\ntracing system alerts. A job for spinning a cardano cluster up using a new\nunderlying cardano-cli mechanism, create-testnet-data, was added and integrated\nwith the Justfile start-demo recipe. Includes other misc tuning and\nimprovements. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/23"},"cardano-playground-pull-23"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/144cea98.8a95dc33.js b/assets/js/144cea98.8a95dc33.js new file mode 100644 index 0000000000..50a076599c --- /dev/null +++ b/assets/js/144cea98.8a95dc33.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50881],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>s});var n=a(67294);function o(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e=0||(o[a]=t[a]);return o}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(o[a]=t[a])}return o}var p=n.createContext({}),u=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(p.Provider,{value:e},t.children)},d="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,o=t.mdxType,r=t.originalType,p=t.parentName,c=i(t,["components","mdxType","originalType","parentName"]),d=u(a),h=o,s=d["".concat(p,".").concat(h)]||d[h]||m[h]||r;return a?n.createElement(s,l(l({ref:e},c),{},{components:a})):n.createElement(s,l({ref:e},c))}));function s(t,e){var a=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var r=a.length,l=new Array(r);l[0]=h;var i={};for(var p in e)hasOwnProperty.call(e,p)&&(i[p]=e[p]);i.originalType=t,i[d]="string"==typeof t?t:o,l[1]=i;for(var u=2;u{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>r,metadata:()=>i,toc:()=>u});var n=a(87462),o=(a(67294),a(3905));const r={title:"Node API & CLI Team Update",slug:"2023-02-22-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2023-02-22-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-22-node-cli-api.md",source:"@site/blog/2023-02-22-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-02-22T00:00:00.000Z",formattedDate:"February 22, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.385,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-02-22-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-02-22-consensus"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-02-21-db-sync"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"Documentation",id:"documentation",level:2},{value:"CI & project mainteance",id:"ci--project-mainteance",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3},{value:"cardano-testnet",id:"cardano-testnet-1",level:3}],c={toc:u},d="wrapper";function m(t){let{components:e,...a}=t;return(0,o.kt)(d,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"2023-02-22---2023-03-07"},"2023-02-22 - 2023-03-07"),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"General bug fixes "),(0,o.kt)("h2",{id:"completed"},"Completed"),(0,o.kt)("h3",{id:"docs"},"docs"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4882"},"Fix some markdown links")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4881"},"Update changelog with PR4788 changes"))),(0,o.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,o.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,o.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4761"},"Fix bug in hash computation in cardano-cli genesis create-cardano")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4636"},"Cleanup exports of cardano-testnet")),(0,o.kt)("li",{parentName:"ul"},"[BUGFIX]"," - ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4753"},"Export SubmitResult from Cardano.Api"))),(0,o.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4901"},"Remove pattern Tx"))),(0,o.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs"))),(0,o.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,o.kt)("h2",{id:"in-progress"},"In Progress"),(0,o.kt)("h2",{id:"documentation"},"Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4949"},"Fix path to mkfiles.sh script in documentation"))),(0,o.kt)("h2",{id:"ci--project-mainteance"},"CI & project mainteance"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4932"},"New build complete job")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4764"},"Update ouroboros-network"))),(0,o.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4659"},"Render consistent plutus script failure output")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4666"},"Read network ID from environment")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4647"},"CLI option to append additional signatures to a transactions")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"Cardano ping")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4777"},"Better error message for query utxo on oops")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4910"},"New --node-socket-path cli option")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4909"},"Fix qKesKesKeyExpiry to not always be null")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4880"},"Detect invalid counter and certificate")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4823"},"Straight line code for tx commands")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"New cardano-cli ping command.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4655"},"Move cardano-ping from ouroboros-network to cardano-node project"))),(0,o.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4763"},"Remove simple script distinction")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4941"},"Combinators for TxBodyCon\u017btent and related types")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4903"},"Reduce number of calls to toLedgerPParams")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4825"},"Better error message for query utxo without oops 2"))),(0,o.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4911"},"Less verbose node-to-client and node-to-node version logging"))),(0,o.kt)("h3",{id:"cardano-testnet-1"},"cardano-testnet"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4845"},"Use Haskell variables for passing values")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4879"},"Re-enable kes-period-info test")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3783"},"Transaction debug script command"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/144cf255.aeff65f8.js b/assets/js/144cf255.aeff65f8.js new file mode 100644 index 0000000000..0955e3ddac --- /dev/null +++ b/assets/js/144cf255.aeff65f8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[55553],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},h=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),m=s(r),c=i,d=m["".concat(p,".").concat(c)]||m[c]||u[c]||a;return r?n.createElement(d,o(o({ref:t},h),{},{components:r})):n.createElement(d,o({ref:t},h))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2022-11-04-mithril",authors:"iquerejeta",tags:["mithril"],hide_table_of_contents:!1},o="High level overview",l={permalink:"/2022-11-04-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-04-mithril.md",source:"@site/blog/2022-11-04-mithril.md",title:"Mithril Team Update",description:"This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.",date:"2022-11-04T00:00:00.000Z",formattedDate:"November 4, 2022",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.015,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Mithril Team Update",slug:"2022-11-04-mithril",authors:"iquerejeta",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-11-04-hydra"},nextItem:{title:"Open-Source Team",permalink:"/2022-10-31-open-source"}},p={authorsImageUrls:[void 0]},s=[],h={toc:s},m="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates."),(0,i.kt)("h1",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"We have been moving forward on the implementation of the release process ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/500"},"#500"),":",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Setup of the new hosted environments for ",(0,i.kt)("inlineCode",{parentName:"li"},"testing-preview"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"pre-release-preview")," and ",(0,i.kt)("inlineCode",{parentName:"li"},"release-preprod")," with their terraform and GitHub environments ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/542"},"#542")),(0,i.kt)("li",{parentName:"ul"},"Adapted the CI workflows to work with the new release process ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/543"},"#543")),(0,i.kt)("li",{parentName:"ul"},"Publication of an ",(0,i.kt)("a",{parentName:"li",href:"https://mithril.network/doc/adr/3"},"ADR3")),(0,i.kt)("li",{parentName:"ul"},"Publication of a ",(0,i.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2022/10/28/updated-environments"},"dev blog post")," about Mithril networks evolution "),(0,i.kt)("li",{parentName:"ul"},"Releasing our first Mithril distribution ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2244.0"},"2244.0")))),(0,i.kt)("li",{parentName:"ul"},"Worked on the API versioning mechanism ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/565"},"#565")),(0,i.kt)("li",{parentName:"ul"},"Worked on the implementation of the stores migration process for the signer and aggregator nodes ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/562"},"#562")),(0,i.kt)("li",{parentName:"ul"},"Prepared a Mithril ",(0,i.kt)("inlineCode",{parentName:"li"},"devnet")," video demo ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/526"},"#526")),(0,i.kt)("li",{parentName:"ul"},"Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/484"},"#484"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/14db8e4c.2c8af609.js b/assets/js/14db8e4c.2c8af609.js new file mode 100644 index 0000000000..41d94a5b26 --- /dev/null +++ b/assets/js/14db8e4c.2c8af609.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[33815],{26528:a=>{a.exports=JSON.parse('{"label":"mithril","permalink":"/tags/mithril","allTagsPath":"/tags","count":63}')}}]); \ No newline at end of file diff --git a/assets/js/14eb3368.75d4fe89.js b/assets/js/14eb3368.75d4fe89.js new file mode 100644 index 0000000000..b68945b7bc --- /dev/null +++ b/assets/js/14eb3368.75d4fe89.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9817],{31986:(e,t,a)=>{a.d(t,{Z:()=>p});var n=a(87462),r=a(67294),i=a(86010),l=a(35281),s=a(52802),c=a(48596),o=a(39960),m=a(44996),d=a(95999);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbsContainer:"breadcrumbsContainer_Z_bl",breadcrumbHomeIcon:"breadcrumbHomeIcon_OVgt"};function b(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function v(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function g(){const e=(0,m.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:(0,i.Z)("breadcrumbs__link",h.breadcrumbsItemLink),href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}function p(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,h.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(g,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(v,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(b,{href:t.href,isLast:n},t.label))})))):null}},34228:(e,t,a)=>{a.r(t),a.d(t,{default:()=>I});var n=a(67294),r=a(1944),i=a(52802),l=a(44996),s=a(86010),c=a(39960),o=a(13919),m=a(95999);const d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function u(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer)},a)}function h(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",d.cardTitle),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:i},i))}function b(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(h,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(h,{href:t.href,icon:a,title:t.label,description:r?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(v,{item:t});case"category":return n.createElement(b,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function p(e){let{className:t}=e;const a=(0,i.jA)();return n.createElement(E,{items:a.items,className:t})}function E(e){const{items:t,className:a}=e;if(!t)return n.createElement(p,e);const r=(0,i.MN)(t);return n.createElement("section",{className:(0,s.Z)("row",a)},r.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(g,{item:e})))))}var f=a(80049),N=a(23120),Z=a(44364),k=a(31986),_=a(92503);const L={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function T(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function x(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:L.generatedIndexPage},n.createElement(N.Z,null),n.createElement(k.Z,null),n.createElement(Z.Z,null),n.createElement("header",null,n.createElement(_.Z,{as:"h1",className:L.title},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(E,{items:a.items,className:L.list})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(f.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function I(e){return n.createElement(n.Fragment,null,n.createElement(T,e),n.createElement(x,e))}},80049:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(87462),r=a(67294),i=a(95999),l=a(32244);function s(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},t&&r.createElement(l.Z,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(l.Z,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},44364:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(67294),r=a(86010),i=a(95999),l=a(35281),s=a(74477);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},23120:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(67294),r=a(86010),i=a(52263),l=a(39960),s=a(95999),c=a(80143),o=a(35281),m=a(60373),d=a(74477);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},92503:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(87462),r=a(67294),i=a(86010),l=a(95999),s=a(86668);const c={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function o(e){let{as:t,id:a,...o}=e;const{navbar:{hideOnScroll:m}}=(0,s.L)();return"h1"!==t&&a?r.createElement(t,(0,n.Z)({},o,{className:(0,i.Z)("anchor",m?c.anchorWithHideOnScrollNavbar:c.anchorWithStickyNavbar),id:a}),o.children,r.createElement("a",{className:"hash-link",href:`#${a}`,title:(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"\u200b")):r.createElement(t,(0,n.Z)({},o,{id:void 0}))}},32244:(e,t,a)=>{a.d(t,{Z:()=>l});var n=a(67294),r=a(86010),i=a(39960);function l(e){const{permalink:t,title:a,subLabel:l,isNext:s}=e;return n.createElement(i.Z,{className:(0,r.Z)("pagination-nav__link",s?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},l&&n.createElement("div",{className:"pagination-nav__sublabel"},l),n.createElement("div",{className:"pagination-nav__label"},a))}}}]); \ No newline at end of file diff --git a/assets/js/14ffac04.f94b9dba.js b/assets/js/14ffac04.f94b9dba.js new file mode 100644 index 0000000000..92c18fcb96 --- /dev/null +++ b/assets/js/14ffac04.f94b9dba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[59494],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>h});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},m=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),d=u(a),s=l,h=d["".concat(p,".").concat(s)]||d[s]||c[s]||n;return a?r.createElement(h,o(o({ref:t},m),{},{components:a})):r.createElement(h,o({ref:t},m))}));function h(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,o=new Array(n);o[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:l,o[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>c,frontMatter:()=>n,metadata:()=>i,toc:()=>u});var r=a(87462),l=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2023-09-01-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-09-01-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-ledger.md",source:"@site/blog/2023-09-01-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-09-01T00:00:00.000Z",formattedDate:"September 1, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.355,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-09-01-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-09-01-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-09-01-network"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway era",id:"conway-era",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3},{value:"Testing",id:"testing",level:3}],m={toc:u},d="wrapper";function c(e){let{components:t,...a}=e;return(0,l.kt)(d,(0,r.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"Broadly speaking the Ledger team focused on a few main areas of Conway era:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Creation of voting state snapshots in order to correctly delay ratification for one epoch"),(0,l.kt)("li",{parentName:"ul"},"Validation of the Governance Actions sequencing and ordering"),(0,l.kt)("li",{parentName:"ul"},"Proper expiry of DReps and Proposal Procedures"),(0,l.kt)("li",{parentName:"ul"},"Expanding Conway Genesis functionality"),(0,l.kt)("li",{parentName:"ul"},"Utilization of some of the new Protocol Parameters in ledger validation rules")),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway-era"},"Conway era"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3659"},"pull-3659")," - Validate Network for ProposalProcedure and TreasuryWithdrawal"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3637"},"pull-3637")," - Avoid using sequence of tuples, by adding GovActionId to GovActionState"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3651"},"pull-3651")," - Inactive DReps"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3664"},"pull-3664")," - Track proposal expiry"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3668"},"pull-3668")," - Add min committee size predicate to NewCommittee"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3669"},"pull-3669")," - Add Proposal deposit check against PParam"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3676"},"pull-3676")," - Fix inactive PoolStake not counting as Drep Stake"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3635"},"pull-3635")," - Make snapshots of GovActionsState"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3670"},"pull-3670")," - Validate previously enacted govAction"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3694"},"pull-3694")," - Improve error reporting on the positive coin decoder"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3674"},"pull-3674")," - Added RATIFY thresholds"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3684"},"pull-3684")," - Add proposal delaying, remove predicate failure from ENACT"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3688"},"pull-3688")," - DRep Refunds and update evalTransactionBalance")),(0,l.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3677"},"pull-3677")," - Minor patch that fixes the DRep distribution computation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3686"},"pull-3686")," - Post patch release fixup"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3695"},"pull-3695")," - Changelog for cardano-node-8.3 release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3683"},"pull-3683")," - Add two new bench mark programs")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3662"},"pull-3662")," - Equality on raw types")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/15072f11.a2e928ce.js b/assets/js/15072f11.a2e928ce.js new file mode 100644 index 0000000000..48c22cdadd --- /dev/null +++ b/assets/js/15072f11.a2e928ce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[83129],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),d=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=d(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=d(r),m=n,g=s["".concat(u,".").concat(m)]||s[m]||c[m]||o;return r?a.createElement(g,l(l({ref:t},p),{},{components:r})):a.createElement(g,l({ref:t},p))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:n,l[1]=i;for(var d=2;d{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var a=r(87462),n=(r(67294),r(3905));const o={title:"Ledger Team Update",slug:"2022-11-07-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},l=void 0,i={permalink:"/quarterly/2022-11-07-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2022-11-07-ledger.md",source:"@site/quarterly/2022-11-07-ledger.md",title:"Ledger Team Update",description:"Ledger Quarterly Update",date:"2022-11-07T00:00:00.000Z",formattedDate:"November 7, 2022",tags:[{label:"ledger",permalink:"/quarterly/tags/ledger"}],readingTime:1.255,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-11-07-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/quarterly/2022-11-09-network"},nextItem:{title:"Node API & CLI Team Update",permalink:"/quarterly/2022-10-07-node-cli-api"}},u={authorsImageUrls:[void 0]},d=[{value:"Ledger Quarterly Update",id:"ledger-quarterly-update",level:2},{value:"2022-09 - 2022-11-04",id:"2022-09---2022-11-04",level:2},{value:"Next steps",id:"next-steps",level:2}],p={toc:d},s="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"ledger-quarterly-update"},"Ledger Quarterly Update"),(0,n.kt)("h2",{id:"2022-09---2022-11-04"},"2022-09 - 2022-11-04"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We finished a minimal ledger era capable of master key rotation.\nThis will be re-purposed our upcoming work."),(0,n.kt)("li",{parentName:"ul"},"We have the humble beginnings of a proper ledger API."),(0,n.kt)("li",{parentName:"ul"},"We improved the problematic cost model serialization\n(recall the song and dance about updating the cost model one epoch after the hard fork)."),(0,n.kt)("li",{parentName:"ul"},"We have added benchmarks for problematic areas."),(0,n.kt)("li",{parentName:"ul"},"Massive repository restructure and cleanup.",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Unified and consistent variable name schemes (not completely finished, but nearly there)."),(0,n.kt)("li",{parentName:"ul"},"Massive reduction in type constraints, which causes a lot of developer friction,\nin our code and also downstream."),(0,n.kt)("li",{parentName:"ul"},"More organized module structures."),(0,n.kt)("li",{parentName:"ul"},"Improved generators for our property tests."),(0,n.kt)("li",{parentName:"ul"},"We removed our dependency on cardano-prelude."))),(0,n.kt)("li",{parentName:"ul"},"The formal ledger model has come a long way.",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"We created a fork of Agda that provides some meta-programming support for the ledger rules."),(0,n.kt)("li",{parentName:"ul"},"We have a large amount of the basic UTxO support in the model."),(0,n.kt)("li",{parentName:"ul"},"We can generate a good looking PDF from the model."),(0,n.kt)("li",{parentName:"ul"},"We can produce Haskell from the model."),(0,n.kt)("li",{parentName:"ul"},"We have a nice finite set theory library that we can use for many of the ledger rules."),(0,n.kt)("li",{parentName:"ul"},"We have nix support for the model.")))),(0,n.kt)("h2",{id:"next-steps"},"Next steps"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Individual tracking of deposits. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3113"},"issue-3113"),"]"),(0,n.kt)("li",{parentName:"ul"},"Versioned CBOR encoders/decoders. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3014"},"issue-3014"),"]"),(0,n.kt)("li",{parentName:"ul"},"New ledger era transaction body (and the surround work associated with it)."),(0,n.kt)("li",{parentName:"ul"},"Designs for the next ledger era.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1558d884.458bb7a8.js b/assets/js/1558d884.458bb7a8.js new file mode 100644 index 0000000000..e432a07d41 --- /dev/null +++ b/assets/js/1558d884.458bb7a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2906],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),m=c(n),u=a,h=m["".concat(s,".").concat(u)]||m[u]||p[u]||o;return n?r.createElement(h,i(i({ref:t},d),{},{components:n})):r.createElement(h,i({ref:t},d))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & Tracing Update",slug:"2024-05-07-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-05-07-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-07-performance-and-tracing.md",source:"@site/blog/2024-05-07-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-05-07T00:00:00.000Z",formattedDate:"May 7, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:4.045,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-05-07-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-05-08-ledger"},nextItem:{title:"Network Team Update",permalink:"/2024-05-06-network"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3},{value:"UTxO Growth",id:"utxo-growth",level:3},{value:"UTxO-HD / LMDB",id:"utxo-hd--lmdb",level:3}],d={toc:c},m="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've performed and analysed benchmarks in the Conway era, with ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep"),"s injected."),(0,a.kt)("li",{parentName:"ul"},"Development: Tracing ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep")," data has been implemented; improved error reporting in ",(0,a.kt)("inlineCode",{parentName:"li"},"tx-generator")," and analysis quick queries are ongoing work."),(0,a.kt)("li",{parentName:"ul"},"Workbench: We now fully supports the new CLI ",(0,a.kt)("inlineCode",{parentName:"li"},"create-testnet-data")," command and ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep")," injection into Conway genesis. Haskell profile definition work is ongoing."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Various additions to Node metrics are being worked on, such as build info and block producer role. Metrics naming will be further harmonized."),(0,a.kt)("li",{parentName:"ul"},"UTxO Growth: We've finalized analysis and reports of all benchmarks targeting UTxO scaling scenarios."),(0,a.kt)("li",{parentName:"ul"},"UTxO-HD / LMDB: We've performed multiple runs benchmarking the LMDB (on-disk) backend of UTxO-HD.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've run and analyzed a full set of benchmarks comparing the Conway ledger against the Babbage one, on Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.10.1-pre"),". For Conway, our additional goal was to measure a vanilla ledger state against one with a large amount of ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s - and delegations to those ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s - present. The\nbenchmarks used our existing value and Plutus workloads to remain comparable to each other."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Additional ledger queries for the tracing system have been implemented and merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". Those capture the amount of, and the number\nof existing delegations to, ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s as trace output - and thus enable creating a metric on top of it, which can then be monitored."),(0,a.kt)("p",null,"The (in our case) non-deterministic nature of shutting down different cluster setups - both local and cloud-based - carries the possibility\nthat our transaction generation service occasionally misclassifies a regular shutdown as an error. Furthermore, in the case of network malfunctions, the service's errors are too unspecific. By implementing thread labels for submission threads, corresponding to each\nsubmission target, and by adding custom smart signal handlers, we'll improve the generator's error reporting significantly."),(0,a.kt)("p",null,"The initial tests for quick queries are being developed further. We're moving towards a principled, and generalized, syntax that supports both\nprepared, parametrizable queries from the application code, as well as ad-hoc queries stated e.g. on the command line."),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"The performance workbench now fully supports the new ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-cli")," command ",(0,a.kt)("inlineCode",{parentName:"p"},"create-test-data"),". We use it to inject both stake\ndelegated to stake pools into genesis, and - recently added - stake delegated to ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s as well. It has been proven very useful\nand versatile so far, and will eventually replace the current ",(0,a.kt)("inlineCode",{parentName:"p"},"create-staked")," command. "),(0,a.kt)("p",null,"Work on porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is still ongoing; currently, we're integrating all new profile families that came out of the UTxO growth scenarios."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"New metrics are being implemented for the tracing system. They will also be part of Prometheus output and as such accessible to\nmonitoring services. There'll be ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),"'s detailed build info, as well as a node's block producer status, meaning the presence of forger credentials. Those new metrics are being backported to the legacy tracing system, too. "),(0,a.kt)("p",null,"Furthermore, we've determined the need to revisit metrics naming. There's still a divergence between naming in the legacy\nand the new system. While this could be mitigated by passing in extra config options, we think that a transition to the new system\nshould not impose any unnecessary effort for node operators. A design to fully harmonize the existing naming schemata is currently being\nset up."),(0,a.kt)("h3",{id:"utxo-growth"},"UTxO Growth"),(0,a.kt)("p",null,"The UTxO Growth benchmarking series has been finalized. We've finished analyses and reports for all scenarios that\nwere tested and explored. "),(0,a.kt)("p",null,"The overarching questions were, given a network of 32GB host systems, how large can the UTxO set grow in general,\nhow large can it grow before the nodes have to operate close to the RAM limit over extended periods of time, and how does scaling the UTxO set size affect network metrics, such as block diffusion. "),(0,a.kt)("p",null,'A dedicated "UTxO Scaling Squad" was set up, who was driving the entire process, and we enjoyed a very focused and productive collaboration with them.'),(0,a.kt)("h3",{id:"utxo-hd--lmdb"},"UTxO-HD / LMDB"),(0,a.kt)("p",null,"Last not least, we were able to benchmark UTxO-HD's on-disk backend on a network of block producing nodes, on a recent ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.1")," version\nof ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". The setup allowed of using a direct access SSD device for performance critical disk I/O, whereas the bulk of ChainDB and ledger snapshots remained on a standard AWS EBS volume. "),(0,a.kt)("p",null,"The benchmarks comprised both optimistic and pessimistic RAM assumptions for the host OS to further optimize I/O via page cache, as well as medium and large UTxO set sizes - the latter almost tripling current mainnet's size. The results were promising; the LMDB backend has proven to be able to accomodate large UTxO sets using significantly less RAM than the default all-in-memory node - and with a more than reasonable trade-off performance-wise. Furthermore, running with pessimistic assumptions, the performance impact on LMDB was very moderate only."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/15691c1d.1473ccd3.js b/assets/js/15691c1d.1473ccd3.js new file mode 100644 index 0000000000..c8facf7d77 --- /dev/null +++ b/assets/js/15691c1d.1473ccd3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43729],{3905:(e,t,i)=>{i.d(t,{Zo:()=>c,kt:()=>y});var n=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function o(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l=n.createContext({}),u=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},c=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(i),h=a,y=d["".concat(l,".").concat(h)]||d[h]||p[h]||r;return i?n.createElement(y,o(o({ref:t},c),{},{components:i})):n.createElement(y,o({ref:t},c))}));function y(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=i.length,o=new Array(r);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,o[1]=s;for(var u=2;u{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var n=i(87462),a=(i(67294),i(3905));const r={title:"SECP bindings Security Issue Report",slug:"2023-08-17-secp-issue",authors:"iquerejeta",tags:["crypto","incident"],hide_table_of_contents:!1},o=void 0,s={permalink:"/2023-08-17-secp-issue",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-17-secp-security-issue-report.md",source:"@site/blog/2023-08-17-secp-security-issue-report.md",title:"SECP bindings Security Issue Report",description:"Security Issue Report: SECP256k1 bug",date:"2023-08-17T00:00:00.000Z",formattedDate:"August 17, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"},{label:"incident",permalink:"/tags/incident"}],readingTime:3.3,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"SECP bindings Security Issue Report",slug:"2023-08-17-secp-issue",authors:"iquerejeta",tags:["crypto","incident"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-08-17-db-sync"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-08-15-node-cli-api"}},l={authorsImageUrls:[void 0]},u=[{value:"Security Issue Report: SECP256k1 bug",id:"security-issue-report-secp256k1-bug",level:2},{value:"Summary of Issue",id:"summary-of-issue",level:3},{value:"Criticality Level",id:"criticality-level",level:4},{value:"What Action was Taken",id:"what-action-was-taken",level:4},{value:"Potential Effect",id:"potential-effect",level:4},{value:"Actual Effect",id:"actual-effect",level:4},{value:"Ongoing Mitigations Needed, if any",id:"ongoing-mitigations-needed-if-any",level:4},{value:"Responsibility for Mitigations",id:"responsibility-for-mitigations",level:4},{value:"Detailed description of Incident",id:"detailed-description-of-incident",level:3},{value:"Recommendations",id:"recommendations",level:3}],c={toc:u},d="wrapper";function p(e){let{components:t,...i}=e;return(0,a.kt)(d,(0,n.Z)({},c,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"security-issue-report-secp256k1-bug"},"Security Issue Report: SECP256k1 bug"),(0,a.kt)("p",null,"Date Occurred: July 15, 2022\nSeverity: Potentially Very High if exploited on Mainnet\nAuthors: I\xf1igo Querejeta Azurmendi"),(0,a.kt)("p",null,"Date of Report: August 17, 2023"),(0,a.kt)("h3",{id:"summary-of-issue"},"Summary of Issue"),(0,a.kt)("h4",{id:"criticality-level"},"Criticality Level"),(0,a.kt)("p",null,"Actually low (since the issue was detected prior to deployment) but potentially very high if it had been deployed to mainnet\nContext"),(0,a.kt)("p",null,"New SECP256k1 Plutus bindings were being introduced in order to support interoperability with other major chains, such as Bitcoin and Ethereum. The intention was to deploy these as part of the Vasil hard-fork. The bindings were considered to be a low-security risk since the underlying library functions were well tested and had been deployed on other blockchains.\nHow was the Issue Detected"),(0,a.kt)("p",null,"The issue was detected via specific End-to-End tests that had been commissioned. It was (accidentally) triggered on the Cardano Testnet before a fix could be deployed there."),(0,a.kt)("h4",{id:"what-action-was-taken"},"What Action was Taken"),(0,a.kt)("p",null,"The Cardano Testnet was permanently halted, and new test environments were deployed (Preview and Pre-Prod).\nFixes were applied to prevent the use of the primitives.\nA full security audit was carried out on the bindings.\nThe rollout of the primitives was postponed to a new hard fork (Valentine)"),(0,a.kt)("h4",{id:"potential-effect"},"Potential Effect"),(0,a.kt)("p",null,"The potential effect was that an adversary might be able to craft invalid Plutus transactions to crash any node, requiring execution of the Cardano disaster recovery plan to revert to a safe state and bypass the transaction."),(0,a.kt)("h4",{id:"actual-effect"},"Actual Effect"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Delay to the Vasil hard-fork"),(0,a.kt)("li",{parentName:"ul"},"Temporary removal of SECP256k1 primitives"),(0,a.kt)("li",{parentName:"ul"},"Additional hard-fork to introduce SECP256k1 primitives")),(0,a.kt)("h4",{id:"ongoing-mitigations-needed-if-any"},"Ongoing Mitigations Needed, if any"),(0,a.kt)("p",null,"None"),(0,a.kt)("h4",{id:"responsibility-for-mitigations"},"Responsibility for Mitigations"),(0,a.kt)("p",null,"Core team"),(0,a.kt)("h3",{id:"detailed-description-of-incident"},"Detailed description of Incident"),(0,a.kt)("p",null,"New Plutus ",(0,a.kt)("strong",{parentName:"p"},"secp256k1")," cryptographic primitives for Plutus v2 failed to apply the necessary validity checks on the input data, meaning that the primitives could theoretically be used in an unsafe environment. The vulnerability was present in recent node versions (1.35.0 onwards), including ones deployed to Cardano Testnet."),(0,a.kt)("p",null,"The problem was not in the deserialization functions of the underlying library (Bitcoin's library) but rather that the Haskell functions that implemented the Plutus builtins were not calling them correctly. In particular, the library functions were designed to take structured data as input. However, the Haskell FFI implementation that was produced for the Plutus builtins allowed a caller to pass in (possibly) unstructured data. There were no checks that these data were structured in the correct way. This issue was detected during End-to-End testing."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/bitcoin-core/secp256k1/blob/master/include/secp256k1.h#L518"},"This")," is the ECDSA signature verification algorithm that was used. It takes a SECP256k1_pubkey as input. That type is an opaque type with an ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/bitcoin-core/secp256k1/blob/master/include/secp256k1.h#L61"},"expected")," structure: a parsed and valid public key. It was not immediately obvious that structured data needed to be passed to allow the function to be used safely."),(0,a.kt)("li",{parentName:"ul"},"The same happened with the Schnorr ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/bitcoin-core/secp256k1/blob/master/include/secp256k1_schnorrsig.h#L170"},"verification function"),". It takes as input a SECP256k1_xonly_pubkey, which is again an ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/bitcoin-core/secp256k1/blob/master/include/secp256k1_extrakeys.h#L10"},"opaque structure")," that holds a parsed and valid public key.")),(0,a.kt)("p",null,"The FFI skipped checks over these structured keys and directly passed the raw bytes that were given as arguments. If an adversary were to pass in data that was not properly structured, then it could result in unexpected behavior of the library. This could perhaps translate into an adversary being able to crash the nodes that ran these functions. All nodes in the network could be crashed by a single transaction that would then be executed repeatedly, so stalling the network until the disaster recovery process was initiated."),(0,a.kt)("p",null,"The fix was addressed in ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/289"},"this")," PR. It consisted of using the external representation that the deserialization function expects and running the deserialization prior to signature verification. This was audited by security experts."),(0,a.kt)("h3",{id:"recommendations"},"Recommendations"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Check all new Plutus bindings for correct use."),(0,a.kt)("li",{parentName:"ul"},"Audit all new Plutus built-in bindings."),(0,a.kt)("li",{parentName:"ul"},"Continue to develop specific End-to-End tests for all new Plutus features."),(0,a.kt)("li",{parentName:"ul"},'Do not assume that any existing library functions are "safe". Treat all external calls circumspectly.')))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/15dc596d.b562aa25.js b/assets/js/15dc596d.b562aa25.js new file mode 100644 index 0000000000..c9586803e6 --- /dev/null +++ b/assets/js/15dc596d.b562aa25.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6962],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>y});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=c(r),d=a,y=m["".concat(i,".").concat(d)]||m[d]||u[d]||s;return r?n.createElement(y,o(o({ref:t},p),{},{components:r})):n.createElement(y,o({ref:t},p))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,o=new Array(s);o[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const s={title:"System Test Team Update",slug:"2022-11-02-system-test",authors:"dorin100",tags:["system-test"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-11-02-system-test",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-system-test.md",source:"@site/blog/2022-11-02-system-test.md",title:"System Test Team Update",description:"High level summary",date:"2022-11-02T00:00:00.000Z",formattedDate:"November 2, 2022",tags:[{label:"system-test",permalink:"/tags/system-test"}],readingTime:.4,hasTruncateMarker:!1,authors:[{name:"Dorin Solomon",title:"System Test Team Lead",url:"https://github.com/dorin100",imageURL:"https://github.com/dorin100.png",key:"dorin100"}],frontMatter:{title:"System Test Team Update",slug:"2022-11-02-system-test",authors:"dorin100",tags:["system-test"],hide_table_of_contents:!1},prevItem:{title:"Node Release Team Update",permalink:"/2022-11-02-release"},nextItem:{title:"DB Sync Team Update",permalink:"/2022-11-01-db-sync"}},i={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],p={toc:c},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We have been focused on:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Fully opening our test results (on top of the existing tests & tools):",(0,a.kt)("br",{parentName:"li"}),"See ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/"},"cardano-node-tests webpage"),"."),(0,a.kt)("li",{parentName:"ul"},"Started to test and automate the new functionalities added in the ",(0,a.kt)("inlineCode",{parentName:"li"},"1.35.4-rc1")," node tag",(0,a.kt)("br",{parentName:"li"}),"See ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.4_rc1/src_docs/source/test_results/node/tag_1_35_4_rc1.rst"},"test results tracking page"),"."),(0,a.kt)("li",{parentName:"ul"},"Made some improvements to the automated db-sync sync tests",(0,a.kt)("br",{parentName:"li"}),"See ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node-tests/tree/db_sync_tests/db_sync_tests"},"db-sync tests"),"."),(0,a.kt)("li",{parentName:"ul"},"Multiple cleanups and updates to the cardano-node-tests framework"),(0,a.kt)("li",{parentName:"ul"},"Updated the nightly pipelines for the cardano-node-tests after the Babbage HF")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/161d96eb.5f0ef66a.js b/assets/js/161d96eb.5f0ef66a.js new file mode 100644 index 0000000000..6eeeb74256 --- /dev/null +++ b/assets/js/161d96eb.5f0ef66a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[41867],{54420:a=>{a.exports=JSON.parse('{"label":"network","permalink":"/tags/network","allTagsPath":"/tags","count":35}')}}]); \ No newline at end of file diff --git a/assets/js/163cc15d.0c0545d7.js b/assets/js/163cc15d.0c0545d7.js new file mode 100644 index 0000000000..f04450c844 --- /dev/null +++ b/assets/js/163cc15d.0c0545d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25588],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=p(r),d=a,g=c["".concat(s,".").concat(d)]||c[d]||m[d]||l;return r?n.createElement(g,i(i({ref:t},u),{},{components:r})):n.createElement(g,i({ref:t},u))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[c]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-05-22-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-05-22-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-22-ledger.md",source:"@site/blog/2024-05-22-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-05-22T00:00:00.000Z",formattedDate:"May 22, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.185,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-05-22-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-05-24-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2024-05-22-mithril"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Features and fixes",id:"features-and-fixes",level:3},{value:"Testing",id:"testing",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3}],u={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"Most of the focus was on the conformance testing this time around. We had completed\nconformance tests for ",(0,a.kt)("inlineCode",{parentName:"p"},"CERT")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"RATIFY")," rules and progressed on some of the others. This\nalso resulted in some improvements to the ",(0,a.kt)("inlineCode",{parentName:"p"},"constraint-generators")," framework. Besides that\nwe've also fixed Stake Pool Operator stake distribution calculation that is used for\nvoting by including proposal deposits that are currently locked in the system. One of the\nLedger team members was also performing duties of a release engineer, so we also\nfacilitated the latest ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node-8.11")," release."),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("h3",{id:"features-and-fixes"},"Features and fixes"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4324"},"pull-4324")," - Proposal deposits in SPO voting stake"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4316"},"pull-4316")," - Complete ",(0,a.kt)("inlineCode",{parentName:"li"},"EraScript")," hierarchy with missing classes"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4287"},"pull-4287")," - Fix various minor issues in the Shelley ","&"," Babbage specs")),(0,a.kt)("h3",{id:"testing"},"Testing"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4320"},"pull-4320")," - ",(0,a.kt)("inlineCode",{parentName:"li"},"CERT")," conformance"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4334"},"pull-4334")," - ",(0,a.kt)("inlineCode",{parentName:"li"},"RATIFY")," conformance"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4337"},"pull-4337")," - Fix ",(0,a.kt)("inlineCode",{parentName:"li"},"RATIFY")," conformance"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4325"},"pull-4325")," - ",(0,a.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": soundness tests and bugfixes"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4323"},"pull-4323")," - ",(0,a.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": clean up interface"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4336"},"pull-4336")," - ",(0,a.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Introduce ",(0,a.kt)("inlineCode",{parentName:"li"},"fromList_ :: (HasSpec fn a, Ord a) => Term fn [a] -> Term fn (Set a)"))),(0,a.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4333"},"pull-4333")," - Fix ",(0,a.kt)("inlineCode",{parentName:"li"},"babbage-test")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"conway-test")," versions"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4332"},"pull-4332")," - Update ",(0,a.kt)("inlineCode",{parentName:"li"},"CHANGELOG"),"s"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4343"},"pull-4343")," - Bump requests from 2.31.0 to 2.32.0 in /doc")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/16833806.00840d0e.js b/assets/js/16833806.00840d0e.js new file mode 100644 index 0000000000..c5165e96f7 --- /dev/null +++ b/assets/js/16833806.00840d0e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67658],{63600:a=>{a.exports=JSON.parse('{"label":"devx","permalink":"/tags/devx","allTagsPath":"/tags","count":2}')}}]); \ No newline at end of file diff --git a/assets/js/16a93549.f1566f8d.js b/assets/js/16a93549.f1566f8d.js new file mode 100644 index 0000000000..05f61083e6 --- /dev/null +++ b/assets/js/16a93549.f1566f8d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4307],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(r),m=n,h=d["".concat(p,".").concat(m)]||d[m]||s[m]||o;return r?a.createElement(h,l(l({ref:t},c),{},{components:r})):a.createElement(h,l({ref:t},c))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2023-07-07-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-07-07-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-07-sre.md",source:"@site/blog/2023-07-07-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-07-07T00:00:00.000Z",formattedDate:"July 7, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.815,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-07-07-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-07-07-hydra"},nextItem:{title:"Developer Experience Update",permalink:"/2023-07-06-developer-experience"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-ogmios",id:"cardano-ogmios",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-rosetta",id:"cardano-rosetta",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Spongix",id:"spongix",level:3}],c={toc:u},d="wrapper";function s(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements, supporting CI improvements, and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Improved cardano-node entrypoint handling to allow for clean restarts in the Nomad environment"),(0,n.kt)("li",{parentName:"ul"},"Explorer component updates"),(0,n.kt)("li",{parentName:"ul"},"Spongix caching server rewrite for R2 Cloudflare support and various performance improvements")),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Nixos service update to enable non-systemd socket activation multi-node relays: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5360"},"cardano-node-pull-5360"))),(0,n.kt)("h3",{id:"cardano-ogmios"},"Cardano-ogmios"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano ogmios bump to 5.6.0 for nixos service: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ogmios/pull/6"},"cardano-ogmios-pull-6"))),(0,n.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Improve storage resize script, workaround systemd node signal handling, rescale p2p relays: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/88a17c9...dfde751"},"cardano-ops-compare"))),(0,n.kt)("h3",{id:"cardano-rosetta"},"Cardano-rosetta"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano-rosetta nixos modifications for rosetta 2.1.0 service: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/cardano-rosetta/pull/532"},"cardano-rosetta-pull-532"))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano-node entrypoint improvements: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/99"},"cardano-world-pull-99")),(0,n.kt)("li",{parentName:"ul"},"Further automate pool performance SQL query: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/100"},"cardano-world-pull-100")),(0,n.kt)("li",{parentName:"ul"},"Performance and benchmark job related tweaks: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/02f1ba424d3e36bd114df6f53b769d2cd25301c3"},"cardano-world-commit")),(0,n.kt)("li",{parentName:"ul"},"Explorer related component version bumps and traefik definition handline: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/101"},"cardano-world-pull-101"))),(0,n.kt)("h3",{id:"spongix"},"Spongix"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Spongix caching server rewrite for Cloudflare R2 backend support plus misc improvements: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/spongix/compare/afd77728f5823d61732425df52a363949096e163...4890ff93308f45584bea8443cc13fbc16c8ce911"},"spongix-simple-branch"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/16b5fa1e.ae1e5412.js b/assets/js/16b5fa1e.ae1e5412.js new file mode 100644 index 0000000000..d864d704b2 --- /dev/null +++ b/assets/js/16b5fa1e.ae1e5412.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[72074],{39259:a=>{a.exports=JSON.parse('{"label":"network","permalink":"/tags/network","allTagsPath":"/tags","count":35}')}}]); \ No newline at end of file diff --git a/assets/js/16f9706c.ba6de1d6.js b/assets/js/16f9706c.ba6de1d6.js new file mode 100644 index 0000000000..fac475b8d3 --- /dev/null +++ b/assets/js/16f9706c.ba6de1d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54316],{85216:a=>{a.exports=JSON.parse('{"label":"ledger","permalink":"/tags/ledger","allTagsPath":"/tags","count":44}')}}]); \ No newline at end of file diff --git a/assets/js/170ad9f9.9a595295.js b/assets/js/170ad9f9.9a595295.js new file mode 100644 index 0000000000..56a1157acb --- /dev/null +++ b/assets/js/170ad9f9.9a595295.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[59256],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,s(s({ref:t},c),{},{components:n})):r.createElement(f,s({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-03-20-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-03-20-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-20-consensus.md",source:"@site/blog/2024-03-20-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-03-20T00:00:00.000Z",formattedDate:"March 20, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.485,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-03-20-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-03-22-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-03-20-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/46"},"Merged")," the alternative ",(0,a.kt)("inlineCode",{parentName:"li"},"fs-api")," interface for I/O using user-supplied buffers. This feature is important because it defines lower-level primitives for the filesystem API, which opens op avenues for more use cases and more efficient I/O operations (for instance when implementing ",(0,a.kt)("inlineCode",{parentName:"li"},"lsm-tree"),", which is part of our efforts to move the ledger state to disk). This feature has not been released yet."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/955"},"Implemented")," new diffusion pipelining criterion ."),(0,a.kt)("li",{parentName:"ul"},"Released Consensus packages containing backports for Node ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1"),"."),(0,a.kt)("li",{parentName:"ul"},"Focused on fixing the tests for ",(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus")," in the UTXO-HD branch. Work is ongoing.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/17254497.72cf589e.js b/assets/js/17254497.72cf589e.js new file mode 100644 index 0000000000..b398dc24e7 --- /dev/null +++ b/assets/js/17254497.72cf589e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27921],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-03-06-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-06-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-06-mithril.md",source:"@site/blog/2024-03-06-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-03-06T00:00:00.000Z",formattedDate:"March 6, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.24,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-03-06-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-03-06-consensus"},nextItem:{title:"Network Team Update",permalink:"/2024-03-04-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they worked on adapting the Mithril explorer to support Cardano transaction verification, started implementing a more efficient transaction signing scheme, stabilized the type names in the API, and kept investigating a bug that prevents the signature of some Conway era transactions. Additionally, they have completed the first version of the Prometheus monitoring endpoint for the signer."),(0,i.kt)("p",null,"Finally, the team fixed a bug occuring in the publication of the ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," packages of the client, enhanced the HTTP tests of the aggregator, and kept working on the KES period computation in the Pallas chain observer."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Expose Prometheus metrics for Mithril signer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1096"},"#1096")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Make HTTP server tests more robust")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1524"},"#1524")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Stabilize namings in ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," API")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1535"},"#1535")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Reorganize crates in the repository")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1528"},"#1528")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," in explorer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1497"},"#1497")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement a Block Range Merkle Tree for ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1533"},"#1533")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Output CLIs logs to ",(0,i.kt)("inlineCode",{parentName:"strong"},"stderr"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1515"},"#1515")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"npm")," publish fails on ",(0,i.kt)("inlineCode",{parentName:"strong"},"latest")," when ",(0,i.kt)("inlineCode",{parentName:"strong"},"next")," exists")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1531"},"#1531")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Cardano transactions are not all signed in ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1537"},"#1537")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1752e4e5.72e246c3.js b/assets/js/1752e4e5.72e246c3.js new file mode 100644 index 0000000000..8dc56a7769 --- /dev/null +++ b/assets/js/1752e4e5.72e246c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[770],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,d=c["".concat(l,".").concat(m)]||c[m]||h[m]||o;return n?r.createElement(d,s(s({ref:t},p),{},{components:n})):r.createElement(d,s({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-10-18-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-10-18-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-18-consensus.md",source:"@site/blog/2023-10-18-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-10-18T00:00:00.000Z",formattedDate:"October 18, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.65,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-10-18-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-10-20-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-10-18-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"UTxO-HD",id:"utxo-hd",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Support",id:"support",level:3}],p={toc:u},c="wrapper";function h(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the past two weeks the Consensus team received additional benchmark results for the UTxO-HD feature that show the resource usage for the in-memory backend is not satisfactory for a mainnet release, and we need to wait on the implementation of a new infrastructure to benchmark the LMDB backend (not likely to happen before next year). While we wait on this, we are evaluating the feasibility of making the UTxO-HD feature switchable, which will enable us to release it as an experimental feature. On the Genesis front we produced the first draft for a Survivable Eclipse Duration Model. We released version 8.5.0 of Cardano node, resumed work on subpar handling of blocks from the future, and improved our tracing system to assist problem troubleshooting in the node."),(0,a.kt)("h3",{id:"utxo-hd"},"UTxO-HD"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The Plutus workload benchmark for the in-memory backend ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/203#issuecomment-1768560330"},"showed no regressions")," for the metrics of interest, but it does show an increase in resource usage."),(0,a.kt)("li",{parentName:"ul"},"We got additional ad-hoc ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/issues/5495#issuecomment-1768593069"},"measurements")," on memory UTxO-HD consumption. The memory usage of the in-memory backend is not satisfactory for a release. The memory usage of the LMDB backend is considerably lower, but we need to see how much lower we can bring it by running a node whose memory is constrained to 8GB."),(0,a.kt)("li",{parentName:"ul"},"We resumed work on an alternative solution that will make the UTxO-HD switchable. This will enable us to keep the baseline performance by totally disabling UTxO-HD, while allowing users to experiment with the feature if they wish to do so.")),(0,a.kt)("h3",{id:"genesis"},"Genesis"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We produced the first draft for a Survivable Eclipse Duration Model (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/422"},"422"),").")),(0,a.kt)("h3",{id:"support"},"Support"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/amesgen"},"Esgen")," finished his cycle as release engineer. Node ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.5.0-pre"},"8.5.0")," has been released."),(0,a.kt)("li",{parentName:"ul"},"We resumed work on the subpar handling of block from the future (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4251"},"4251"),")."),(0,a.kt)("li",{parentName:"ul"},"We prepared the integration of ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5502"},"new tracing events")," for the next node release. These tracing events will help debugging potential issues in the node (such as the previously mentioned ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4251"},"issue"),").")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/17630979.b59bc8a1.js b/assets/js/17630979.b59bc8a1.js new file mode 100644 index 0000000000..df170aa709 --- /dev/null +++ b/assets/js/17630979.b59bc8a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93724],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>y});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=c(r),d=a,y=m["".concat(i,".").concat(d)]||m[d]||u[d]||s;return r?n.createElement(y,o(o({ref:t},p),{},{components:r})):n.createElement(y,o({ref:t},p))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,o=new Array(s);o[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const s={title:"System Test Team Update",slug:"2022-11-02-system-test",authors:"dorin100",tags:["system-test"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-11-02-system-test",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-system-test.md",source:"@site/blog/2022-11-02-system-test.md",title:"System Test Team Update",description:"High level summary",date:"2022-11-02T00:00:00.000Z",formattedDate:"November 2, 2022",tags:[{label:"system-test",permalink:"/tags/system-test"}],readingTime:.4,hasTruncateMarker:!1,authors:[{name:"Dorin Solomon",title:"System Test Team Lead",url:"https://github.com/dorin100",imageURL:"https://github.com/dorin100.png",key:"dorin100"}],frontMatter:{title:"System Test Team Update",slug:"2022-11-02-system-test",authors:"dorin100",tags:["system-test"],hide_table_of_contents:!1},prevItem:{title:"Node Release Team Update",permalink:"/2022-11-02-release"},nextItem:{title:"DB Sync Team Update",permalink:"/2022-11-01-db-sync"}},i={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],p={toc:c},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We have been focused on:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Fully opening our test results (on top of the existing tests & tools):",(0,a.kt)("br",{parentName:"li"}),"See ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/"},"cardano-node-tests webpage"),"."),(0,a.kt)("li",{parentName:"ul"},"Started to test and automate the new functionalities added in the ",(0,a.kt)("inlineCode",{parentName:"li"},"1.35.4-rc1")," node tag",(0,a.kt)("br",{parentName:"li"}),"See ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.4_rc1/src_docs/source/test_results/node/tag_1_35_4_rc1.rst"},"test results tracking page"),"."),(0,a.kt)("li",{parentName:"ul"},"Made some improvements to the automated db-sync sync tests",(0,a.kt)("br",{parentName:"li"}),"See ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node-tests/tree/db_sync_tests/db_sync_tests"},"db-sync tests"),"."),(0,a.kt)("li",{parentName:"ul"},"Multiple cleanups and updates to the cardano-node-tests framework"),(0,a.kt)("li",{parentName:"ul"},"Updated the nightly pipelines for the cardano-node-tests after the Babbage HF")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/177280a4.a531d46e.js b/assets/js/177280a4.a531d46e.js new file mode 100644 index 0000000000..0bab9c472c --- /dev/null +++ b/assets/js/177280a4.a531d46e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95447],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},h=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=s(a),d=n,m=u["".concat(p,".").concat(d)]||u[d]||c[d]||o;return a?r.createElement(m,i(i({ref:t},h),{},{components:a})):r.createElement(m,i({ref:t},h))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2022-11-11-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-11-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-11-hydra.md",source:"@site/blog/2022-11-11-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2022-11-11T00:00:00.000Z",formattedDate:"November 11, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.94,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-11-11-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2022-11-11-crypto"},nextItem:{title:"Ledger Team Update",permalink:"/2022-11-11-ledger"}},p={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:s},u="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,'This week, the Hydra team published together with Obsidian Systems a light paper\non our "Hydra for Payments" project (',(0,n.kt)("a",{parentName:"p",href:"https://iohk.io/en/blog/posts/2022/11/10/hydra-for-payments-introducing-developer-tooling-to-unlock-micropayments-on-cardano/"},"Link"),"). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," processes. "),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Published Hydra for Payments light paper (",(0,n.kt)("a",{parentName:"li",href:"https://iohk.io/en/blog/posts/2022/11/10/hydra-for-payments-introducing-developer-tooling-to-unlock-micropayments-on-cardano/"},"Link"),")"),(0,n.kt)("li",{parentName:"ul"},"Have a draft RFP ready for a first review internally"),(0,n.kt)("li",{parentName:"ul"},"Answered the internal auditor","\u2019","s questions"),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug with following the chain when starting with persistence (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/599"},"#599"),")"),(0,n.kt)("li",{parentName:"ul"},"Minor improvements to logging for better observability (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/598"},"#598"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/600"},"#600"),")"),(0,n.kt)("li",{parentName:"ul"},"Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/590"},"#590"),")")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implement event-sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/580"},"#580")),(0,n.kt)("li",{parentName:"ul"},"Close more gaps ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/pull/452"},"#452")),(0,n.kt)("li",{parentName:"ul"},"Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: ",(0,n.kt)("strong",{parentName:"li"},'"Developing Hydra" on Day 2, Nov 21st, 13:50 CET'))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/17896441.12db7610.js b/assets/js/17896441.12db7610.js new file mode 100644 index 0000000000..549ad1bade --- /dev/null +++ b/assets/js/17896441.12db7610.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27918],{31986:(e,t,n)=>{n.d(t,{Z:()=>g});var a=n(87462),l=n(67294),r=n(86010),o=n(35281),s=n(52802),c=n(48596),i=n(39960),d=n(44996),m=n(95999);function u(e){return l.createElement("svg",(0,a.Z)({viewBox:"0 0 24 24"},e),l.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl",breadcrumbHomeIcon:"breadcrumbHomeIcon_OVgt"};function b(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?l.createElement("span",{className:r,itemProp:"name"},t):n?l.createElement(i.Z,{className:r,href:n,itemProp:"item"},l.createElement("span",{itemProp:"name"},t)):l.createElement("span",{className:r},t)}function p(e){let{children:t,active:n,index:o,addMicrodata:s}=e;return l.createElement("li",(0,a.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,l.createElement("meta",{itemProp:"position",content:String(o+1)}))}function h(){const e=(0,d.Z)("/");return l.createElement("li",{className:"breadcrumbs__item"},l.createElement(i.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:(0,r.Z)("breadcrumbs__link",v.breadcrumbsItemLink),href:e},l.createElement(u,{className:v.breadcrumbHomeIcon})))}function g(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?l.createElement("nav",{className:(0,r.Z)(o.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},l.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&l.createElement(h,null),e.map(((t,n)=>{const a=n===e.length-1;return l.createElement(p,{key:n,active:a,index:n,addMicrodata:!!t.href},l.createElement(b,{href:t.href,isLast:a},t.label))})))):null}},15154:(e,t,n)=>{n.r(t),n.d(t,{default:()=>j});var a=n(67294),l=n(1944),r=n(902);const o=a.createContext(null);function s(e){let{children:t,content:n}=e;const l=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(o.Provider,{value:l},t)}function c(){const e=(0,a.useContext)(o);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=c();return a.createElement(l.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(86010),m=n(87524),u=n(80049);function v(){const{metadata:e}=c();return a.createElement(u.Z,{previous:e.previous,next:e.next})}var b=n(23120),p=n(44364),h=n(35281),g=n(95999);function E(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(g.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function f(e){let{lastUpdatedBy:t}=e;return a.createElement(g.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function L(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:l}=e;return a.createElement("span",{className:h.k.common.lastUpdated},a.createElement(g.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(E,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:l?a.createElement(f,{lastUpdatedBy:l}):""}},"Last updated{atDate}{byUser}"),!1)}var Z=n(84881),N=n(71526);const C={lastUpdated:"lastUpdated_vwxv"};function _(e){return a.createElement("div",{className:(0,d.Z)(h.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(N.Z,e)))}function k(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:l,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(h.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(Z.Z,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",C.lastUpdated)},(n||l)&&a.createElement(L,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:l})))}function x(){const{metadata:e}=c(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:l,lastUpdatedBy:r,tags:o}=e,s=o.length>0,i=!!(t||n||r);return s||i?a.createElement("footer",{className:(0,d.Z)(h.k.docs.docFooter,"docusaurus-mt-lg")},s&&a.createElement(_,{tags:o}),i&&a.createElement(k,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:l})):null}var T=n(86043),H=n(93743),U=n(87462);const y={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function A(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,U.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",y.tocCollapsibleButton,!t&&y.tocCollapsibleButtonExpanded,n.className)}),a.createElement(g.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const w={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function I(e){let{toc:t,className:n,minHeadingLevel:l,maxHeadingLevel:r}=e;const{collapsed:o,toggleCollapsed:s}=(0,T.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(w.tocCollapsible,!o&&w.tocCollapsibleExpanded,n)},a.createElement(A,{collapsed:o,onClick:s}),a.createElement(T.z,{lazy:!0,className:w.tocCollapsibleContent,collapsed:o},a.createElement(H.Z,{toc:t,minHeadingLevel:l,maxHeadingLevel:r})))}const M={tocMobile:"tocMobile_ITEo"};function B(){const{toc:e,frontMatter:t}=c();return a.createElement(I,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(h.k.docs.docTocMobile,M.tocMobile)})}var O=n(39407);function V(){const{toc:e,frontMatter:t}=c();return a.createElement(O.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:h.k.docs.docTocDesktop})}var S=n(92503),P=n(80210);function R(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=c();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(h.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(S.Z,{as:"h1"},n)),a.createElement(P.Z,null,t))}var D=n(31986);const z={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function F(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=c(),n=(0,m.i)(),l=e.hide_table_of_contents,r=!l&&t.length>0;return{hidden:l,mobile:r?a.createElement(B,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(V,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&z.docItemCol)},a.createElement(b.Z,null),a.createElement("div",{className:z.docItemContainer},a.createElement("article",null,a.createElement(D.Z,null),a.createElement(p.Z,null),n.mobile,a.createElement(R,null,t),a.createElement(x,null)),a.createElement(v,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function j(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(s,{content:e.content},a.createElement(l.FG,{className:t},a.createElement(i,null),a.createElement(F,null,a.createElement(n,null))))}},80049:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(87462),l=n(67294),r=n(95999),o=n(32244);function s(e){const{previous:t,next:n}=e;return l.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},t&&l.createElement(o.Z,(0,a.Z)({},t,{subLabel:l.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&l.createElement(o.Z,(0,a.Z)({},n,{subLabel:l.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},44364:(e,t,n)=>{n.d(t,{Z:()=>c});var a=n(67294),l=n(86010),r=n(95999),o=n(35281),s=n(74477);function c(e){let{className:t}=e;const n=(0,s.E)();return n.badge?a.createElement("span",{className:(0,l.Z)(t,o.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},23120:(e,t,n)=>{n.d(t,{Z:()=>h});var a=n(67294),l=n(86010),r=n(52263),o=n(39960),s=n(95999),c=n(80143),i=n(35281),d=n(60373),m=n(74477);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function v(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function b(e){let{versionLabel:t,to:n,onClick:l}=e;return a.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(o.Z,{to:n,onClick:l},a.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function p(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:o}}=(0,r.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:p}=(0,c.Jo)(s),h=u??(g=p).docs.find((e=>e.id===g.mainDocId));var g;return a.createElement("div",{className:(0,l.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(v,{siteTitle:o,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(b,{versionLabel:p.label,to:h.path,onClick:()=>m(p.name)})))}function h(e){let{className:t}=e;const n=(0,m.E)();return n.banner?a.createElement(p,{className:t,versionMetadata:n}):null}},84881:(e,t,n)=>{n.d(t,{Z:()=>d});var a=n(67294),l=n(95999),r=n(35281),o=n(87462),s=n(86010);const c={iconEdit:"iconEdit_Z9Sw"};function i(e){let{className:t,...n}=e;return a.createElement("svg",(0,o.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.Z)(c.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function d(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:r.k.common.editThisPage},a.createElement(i,null),a.createElement(l.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},32244:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(67294),l=n(86010),r=n(39960);function o(e){const{permalink:t,title:n,subLabel:o,isNext:s}=e;return a.createElement(r.Z,{className:(0,l.Z)("pagination-nav__link",s?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},o&&a.createElement("div",{className:"pagination-nav__sublabel"},o),a.createElement("div",{className:"pagination-nav__label"},n))}},39407:(e,t,n)=>{n.d(t,{Z:()=>d});var a=n(87462),l=n(67294),r=n(86010),o=n(93743);const s={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},c="table-of-contents__link toc-highlight",i="table-of-contents__link--active";function d(e){let{className:t,...n}=e;return l.createElement("div",{className:(0,r.Z)(s.tableOfContents,"thin-scrollbar",t)},l.createElement(o.Z,(0,a.Z)({},n,{linkClassName:c,linkActiveClassName:i})))}},93743:(e,t,n)=>{n.d(t,{Z:()=>b});var a=n(87462),l=n(67294),r=n(86668);function o(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...l}=e;n>=0?t[n].children.push(l):a.push(l)})),a}function s(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=s({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function c(e){const t=e.getBoundingClientRect();return t.top===t.bottom?c(e.parentNode):t}function i(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>c(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function m(e){const t=(0,l.useRef)(void 0),n=d();(0,l.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:r,maxHeadingLevel:o}=e;function s(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),s=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let l=t;l<=n;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:o}),c=i(s,{anchorTopOffset:n.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(l),e.classList.add(l),t.current=e):e.classList.remove(l)}(e,e===d)}))}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}}),[e,n])}function u(e){let{toc:t,className:n,linkClassName:a,isChild:r}=e;return t.length?l.createElement("ul",{className:r?void 0:n},t.map((e=>l.createElement("li",{key:e.id},l.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),l.createElement(u,{isChild:!0,toc:e.children,className:n,linkClassName:a}))))):null}const v=l.memo(u);function b(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:c="table-of-contents__link",linkActiveClassName:i,minHeadingLevel:d,maxHeadingLevel:u,...b}=e;const p=(0,r.L)(),h=d??p.tableOfContents.minHeadingLevel,g=u??p.tableOfContents.maxHeadingLevel,E=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,l.useMemo)((()=>s({toc:o(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:h,maxHeadingLevel:g});return m((0,l.useMemo)((()=>{if(c&&i)return{linkClassName:c,linkActiveClassName:i,minHeadingLevel:h,maxHeadingLevel:g}}),[c,i,h,g])),l.createElement(v,(0,a.Z)({toc:E,className:n,linkClassName:c},b))}},13008:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(67294),l=n(86010),r=n(39960);const o={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function s(e){let{permalink:t,label:n,count:s}=e;return a.createElement(r.Z,{href:t,className:(0,l.Z)(o.tag,s?o.tagWithCount:o.tagRegular)},n,s&&a.createElement("span",null,s))}},71526:(e,t,n)=>{n.d(t,{Z:()=>c});var a=n(67294),l=n(86010),r=n(95999),o=n(13008);const s={tags:"tags_jXut",tag:"tag_QGVx"};function c(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(r.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,l.Z)(s.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:s.tag},a.createElement(o.Z,{label:t,permalink:n}))}))))}}}]); \ No newline at end of file diff --git a/assets/js/17e76f05.768fd49e.js b/assets/js/17e76f05.768fd49e.js new file mode 100644 index 0000000000..47d922652e --- /dev/null +++ b/assets/js/17e76f05.768fd49e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64966],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),h=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=h(a),c=n,m=p["".concat(s,".").concat(c)]||p[c]||u[c]||i;return a?r.createElement(m,o(o({ref:t},d),{},{components:a})):r.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var h=2;h{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-05-12-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-12-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-12-hydra.md",source:"@site/blog/2023-05-12-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-05-12T00:00:00.000Z",formattedDate:"May 12, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.145,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-05-12-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-05-12-goedel"},nextItem:{title:"Network Team Update",permalink:"/2023-05-12-network"}},s={authorsImageUrls:[void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:h},p="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team achieved a number of milestones, including the release\nof the first mainnet compatible version. Besides this they also addressed\ninconsistencies in rollback handling, added an architecture page to the website,\nreducing the size of logs using event IDs. They also had productive discussions\nwith researchers on plans for incremental commits/decommits and had a whiteboard\nsession on DeFi and lending protocols. The goals for next week include\ncompleting the validation of the timed transactions feature, exploring stateless\nobservation, refining the Hydra explorer ticket, writing ops instructions and\ntroubleshooting, and implementing the first end-to-end journey for external\ncommits."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released first mainnnet compatible version ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.10.0"},"0.10.0")),(0,n.kt)("li",{parentName:"ul"},"Addressed inconsist handling of rollbacks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Added ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/core-concepts/architecture/"},"architecture page")," and fixed haddock links on our website ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/838"},"#838")),(0,n.kt)("li",{parentName:"ul"},"Opened a new hydra head on mainnet"),(0,n.kt)("li",{parentName:"ul"},"Talked with researchers on initial plan for incremental commits/decommits"),(0,n.kt)("li",{parentName:"ul"},"Had a Whiteboard session on DeFi and lending protocols"),(0,n.kt)("li",{parentName:"ul"},"Reduced size of logs using event ids ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/859"},"#859")),(0,n.kt)("li",{parentName:"ul"},"Published the ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-04"},"monthly report for April"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete validation of timed transactions feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/196"},"#196")),(0,n.kt)("li",{parentName:"ul"},"Explored stateless observation and refined hydra explorer ticket ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/696"},"#696")),(0,n.kt)("li",{parentName:"ul"},"Write ","\u201c","ops","\u201d"," instructions and troubleshooting ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/569"},"#569")," and improve logs"),(0,n.kt)("li",{parentName:"ul"},"Have a first end-to-end journey for external commits implemented ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/187056c8.0491b26d.js b/assets/js/187056c8.0491b26d.js new file mode 100644 index 0000000000..bf494c0ab1 --- /dev/null +++ b/assets/js/187056c8.0491b26d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40430],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),s=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=s(r),h=n,d=c["".concat(p,".").concat(h)]||c[h]||m[h]||o;return r?a.createElement(d,i(i({ref:t},u),{},{components:r})):a.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const o={title:"Crypto Team Update",slug:"2022-11-11-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-11-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-11-crypto.md",source:"@site/blog/2022-11-11-crypto.md",title:"Crypto Team Update",description:"High level overview",date:"2022-11-11T00:00:00.000Z",formattedDate:"November 11, 2022",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.305,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2022-11-11-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2022-11-16-performance-and-tracing"},nextItem:{title:"Hydra Team Update",permalink:"/2022-11-11-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The SECP primitives AC has been met, and the test-vectors ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/320"},"PR")," has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/336"},"PR")," has been merged, and we've adapted the KES secure ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/255"},"PR")," to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/341"},"PR#"),"). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork. "),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation. "),(0,n.kt)("li",{parentName:"ul"},"We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool. "),(0,n.kt)("li",{parentName:"ul"},"In parallel, we keep progressing on the ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes-agent"},"KES agent")),(0,n.kt)("li",{parentName:"ul"},"VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification. "),(0,n.kt)("li",{parentName:"ul"},"Our libsodium fork now links directly to upstream libsodium.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/189b9341.7a4ea899.js b/assets/js/189b9341.7a4ea899.js new file mode 100644 index 0000000000..a44fde72f9 --- /dev/null +++ b/assets/js/189b9341.7a4ea899.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[815],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var i=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=i.createContext({}),u=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=u(r),c=a,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||n;return r?i.createElement(d,o(o({ref:t},p),{},{components:r})):i.createElement(d,o({ref:t},p))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,o=new Array(n);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>n,metadata:()=>l,toc:()=>u});var i=r(87462),a=(r(67294),r(3905));const n={title:"Mithril Team Update",slug:"2024-07-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-07-17-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-17-mithril.md",source:"@site/blog/2024-07-17-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-07-17T00:00:00.000Z",formattedDate:"July 17, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.365,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-07-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-07-17-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2024-07-10-consensus"}},s={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],p={toc:u},m="wrapper";function h(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,i.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"This week, the Mithril team released the new distribution ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2428.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2428.0")),", which includes support for Cardano node version ",(0,a.kt)("inlineCode",{parentName:"p"},"9.0.0"),", as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks by calibrating the signature parameters for mainnet, fixing a bug preventing the signature of the last block advertised as certified, optimizing a part of the artifact production that was blocking the certification, and starting removing the code reading transactions from the immutable files."),(0,a.kt)("p",null,"Finally, the team started working on the certification of the Cardano stake distribution and continued redacting a CIP for the diffusion of Mithril signatures through the Cardano network."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2428.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2428.0"))),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Release ",(0,a.kt)("inlineCode",{parentName:"strong"},"2428")," distribution")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1810"},"#1810")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Calibrate Cardano transaction signature parameters")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1814"},"#1814")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Non blocking artifact production in aggregator")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1792"},"#1792")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Cardano transaction importer does not import the last block advertised as certified")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1785"},"#1785")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"A recorded but non certified Cardano transaction creates an error in prover")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1819"},"#1819")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Signer ",(0,a.kt)("inlineCode",{parentName:"strong"},"make test")," command fails")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1816"},"#1816")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Document Prometheus metrics and Grafana Dahsboard for signer")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1834"},"#1834")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Explorer keeps previous Cardano transaction error")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1818"},"#1818")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Implement signable and artifacts builders for Cardano Stake Distribution")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1832"},"#1832")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"CIP for Mithril signature diffusion through Cardano network")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1775"},"#1775")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Cleanup Immutable File in Cardano transaction")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1825"},"#1825")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Upgrade ",(0,a.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet")," for respin with Cardano ",(0,a.kt)("inlineCode",{parentName:"strong"},"9.0.0"))," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1822"},"#1822"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/18c41134.2ac91b95.js b/assets/js/18c41134.2ac91b95.js new file mode 100644 index 0000000000..d2bcdbd35f --- /dev/null +++ b/assets/js/18c41134.2ac91b95.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[82859],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>k});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(n),m=a,k=d["".concat(l,".").concat(m)]||d[m]||p[m]||o;return n?r.createElement(k,s(s({ref:t},c),{},{components:n})):r.createElement(k,s({ref:t},c))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[d]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.r(t),n.d(t,{Highlight:()=>c,assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={sidebar_position:4},s="Markdown Features",i={unversionedId:"tutorial-basics/markdown-features",id:"tutorial-basics/markdown-features",title:"Markdown Features",description:"Docusaurus supports Markdown and a few additional features.",source:"@site/docs/tutorial-basics/markdown-features.mdx",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/markdown-features",permalink:"/docs/tutorial-basics/markdown-features",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"defaultSidebar",previous:{title:"Create a Blog Post",permalink:"/docs/tutorial-basics/create-a-blog-post"},next:{title:"Deploy your site",permalink:"/docs/tutorial-basics/deploy-your-site"}},l={},u=[{value:"Front Matter",id:"front-matter",level:2},{value:"Links",id:"links",level:2},{value:"Images",id:"images",level:2},{value:"Code Blocks",id:"code-blocks",level:2},{value:"Admonitions",id:"admonitions",level:2},{value:"MDX and React Components",id:"mdx-and-react-components",level:2}],c=e=>{let{children:t,color:n}=e;return(0,a.kt)("span",{style:{backgroundColor:n,borderRadius:"20px",color:"#fff",padding:"10px",cursor:"pointer"},onClick:()=>{alert(`You clicked the color ${n} with label ${t}`)}},t)},d={toc:u,Highlight:c},p="wrapper";function m(e){let{components:t,...o}=e;return(0,a.kt)(p,(0,r.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"markdown-features"},"Markdown Features"),(0,a.kt)("p",null,"Docusaurus supports ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("a",{parentName:"strong",href:"https://daringfireball.net/projects/markdown/syntax"},"Markdown"))," and a few ",(0,a.kt)("strong",{parentName:"p"},"additional features"),"."),(0,a.kt)("h2",{id:"front-matter"},"Front Matter"),(0,a.kt)("p",null,"Markdown documents have metadata at the top called ",(0,a.kt)("a",{parentName:"p",href:"https://jekyllrb.com/docs/front-matter/"},"Front Matter"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-text",metastring:'title="my-doc.md"',title:'"my-doc.md"'},"// highlight-start\n---\nid: my-doc-id\ntitle: My document title\ndescription: My document description\nslug: /my-custom-url\n---\n// highlight-end\n\n## Markdown heading\n\nMarkdown text with [links](./hello.md)\n")),(0,a.kt)("h2",{id:"links"},"Links"),(0,a.kt)("p",null,"Regular Markdown links are supported, using url paths or relative file paths."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-md"},"Let's see how to [Create a page](/create-a-page).\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-md"},"Let's see how to [Create a page](./create-a-page.md).\n")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Result:")," Let's see how to ",(0,a.kt)("a",{parentName:"p",href:"/docs/tutorial-basics/create-a-page"},"Create a page"),"."),(0,a.kt)("h2",{id:"images"},"Images"),(0,a.kt)("p",null,"Regular Markdown images are supported."),(0,a.kt)("p",null,"You can use absolute paths to reference images in the static directory (",(0,a.kt)("inlineCode",{parentName:"p"},"static/img/docusaurus.png"),"):"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-md"},"![Docusaurus logo](/img/docusaurus.png)\n")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Docusaurus logo",src:n(6097).Z,width:"200",height:"200"})),(0,a.kt)("p",null,"You can reference images relative to the current file as well, as shown in ",(0,a.kt)("a",{parentName:"p",href:"/docs/tutorial-extras/manage-docs-versions"},"the extra guides"),"."),(0,a.kt)("h2",{id:"code-blocks"},"Code Blocks"),(0,a.kt)("p",null,"Markdown code blocks are supported with Syntax highlighting."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},'```jsx title="src/components/HelloDocusaurus.js"\nfunction HelloDocusaurus() {\n return (\n

Hello, Docusaurus!

\n )\n}\n```\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-jsx",metastring:'title="src/components/HelloDocusaurus.js"',title:'"src/components/HelloDocusaurus.js"'},"function HelloDocusaurus() {\n return

Hello, Docusaurus!

;\n}\n")),(0,a.kt)("h2",{id:"admonitions"},"Admonitions"),(0,a.kt)("p",null,"Docusaurus has a special syntax to create admonitions and callouts:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},":::tip My tip\n\nUse this awesome feature option\n\n:::\n\n:::danger Take care\n\nThis action is dangerous\n\n:::\n")),(0,a.kt)("admonition",{title:"My tip",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"Use this awesome feature option")),(0,a.kt)("admonition",{title:"Take care",type:"danger"},(0,a.kt)("p",{parentName:"admonition"},"This action is dangerous")),(0,a.kt)("h2",{id:"mdx-and-react-components"},"MDX and React Components"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://mdxjs.com/"},"MDX")," can make your documentation more ",(0,a.kt)("strong",{parentName:"p"},"interactive")," and allows using any ",(0,a.kt)("strong",{parentName:"p"},"React components inside Markdown"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-jsx"},"export const Highlight = ({children, color}) => (\n {\n alert(`You clicked the color ${color} with label ${children}`)\n }}>\n {children}\n \n);\n\nThis is Docusaurus green !\n\nThis is Facebook blue !\n")),(0,a.kt)("p",null,"This is ",(0,a.kt)(c,{color:"#25c2a0",mdxType:"Highlight"},"Docusaurus green")," !"),(0,a.kt)("p",null,"This is ",(0,a.kt)(c,{color:"#1877F2",mdxType:"Highlight"},"Facebook blue")," !"))}m.isMDXComponent=!0},6097:(e,t,n)=>{n.d(t,{Z:()=>r});const r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAT3UlEQVR42u1dCVQVV5pWXNt2N0czykl33KImZ7IgKgqIghq3KCDK+qowCek2c2K0Mx3idBxakzYxJnZiq3Gf6Bg7UdN2R51MxnTSia3gew9Rwccm7oqiiIK4sPxTt1hEHo9XvPVW1fed852Dr+67UNb/1f3/+9/731atAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8i2CxGjDUJXzMGmcSZnmoHAF7B6GMJvYPNwq5gk1AmMS/YJMbaahtkNsRLbeghmoU4d7cDAO+NCEbhQCMjrZbe5q81bhdyVOwuXbtqZdDSZ+yau9oBgNcgGeIvmzDQJkUy1ix8ZKMtsWvuagcAXsNYs/iyLSNlIgk2GebLQjKJQ6R/32+mbcWYI8KTrm6HJwR4170yCV80Y6T1I4kklH122lFNG9e2wxMC3Ao/U1KnQLPgF2SK/xeri5TiIxlikX1DBXVANpoXSy/DzGCjYfdYs2FRiFkcxWxEu/GF0RAm3fT1Bv8JJyV+LLlV08ccnNuFCQeGAdrheWkkXxaSGueruZFDurlrzfn4QSbDGRgAqJD3JK4NMcU8oo3RIz1hOB4q6AZeCzKK0aoXCIs58DBBt9Esfip5Ke3UPkN1Eg8TdB8N+5grr+JRxPAJHiLoTgaZhf97MiuqvVqTgNPxEEEPcK0qBTIyNa6rnWw1CLooJjHMUZc6KMWnNs9xDg8Q9ACLQtMMvbhfeFi7tuoLZMhBz1NczaUw2H4OFizhAYFe5l0uM+61m53wgMAWM+C7aBr425Ey2c8umPpdxmO+oxQPWz8cvnOmTGf7Gf1DDHXs25lYxMrIfmafOdnvOe4WONZsk4XhaD7nkJpAPQN96w2a/cw+c7S/QYsC6vuq46D/CHD+7zQaRvDmYsXVbG6CEWmZQ5YGWRk0+8zR/phb1bg/9pkLgvVk/twso+EViETbfPw1PyuDHrDQ36n4o6GL1eHRn7skDhlrEnZyuvbKMN/TIglKM9AzmyfLbzL2sBjZz89sniJfg2G7Nvbwad+m3qB9OrQh/z0RTschzK1yXZAu8zi/CxQ9NJL4fT6d+kwdQG27drB6q9WxXbcO1GfaAPL78wswcBfx6Y2T6ZHxv5DJfuY1acj5Kl55JHHPtOCBaOozZQC18mltUxhWlNoyobjwDQVyng/hVhyBaYbBrEKhW0aNL2Y85LO2lB37daHhX86AAemAPC4z6R5sEt9j6nWXONr8vJ3D4qhj287tIRIIxMP7PmrKd151p1vV3MjRtmt7eiT0F+QbN4z6xQ6T/eO2XdrbbP8z3y5wtyAQT+VAxAh336wcczQVhPfsKM+ANJWsYp+xRFS7Hh2b/C6LSWBIEIgnsuh73T1b1VRA3ql/dxq5d5bd74/4OlJu21TgjtktCMT9uwbdFJDXjx5TBzQ5cigRR71I/hZJ7bpbTwf3mT4QxgSBuHtbrSHcnUlAlstwxXqdgcmjmsyTIJkIgag2SGcZ8qYCckcWyAUdTpBnsBr398yWKTAoCESd07xD3rFeHMdmqxztj81uNe5v6B+CYVAQiAeD9qPiIOkP/NIVN9l//nArg/ZNeNLh/nzjn7Tqr//rw2FQEIg6M+lN7RcY/LvR3PQHupdh6S9R+LH5ZMh8i17NfoeS81bSO6fX0cfn/ps2X/wL7bzyv/TNtYP0z5KjdLw0hwrKL1DR/Rt0r+q+Plys0d/HyMtDGib4nNlx5ur+QPcZuLPQTSa9bjk0oyuM2dX9adm4Zx57jeIzk+lXliX0Ru4KSjm1hlac/S/69MKXtP3yXvrr1b/Td8WplHbzOGWV5dPZO5fo+v0Slxi4ZgTiiUw66BoD/32BPQO/zI2Ba0cgbs6kg9aMPfFbWn5mM/258H80a+CaEYi7M+ngA7JR4ERpHgFqEogbM+lgDSelv0LfFx+B1SNIBxtzWsarlH27ABavZoF4YsOUHhliEuX4AlCOwsJC2rVrF7+JwjHGuU8Em4X9MHDn+afzOzRtzGVlZbR69WqKjY2lqKgoev/996m4uNihvqqrqyklJYU6dKhf3Kq/Pel6izuKK246bYQXLlygvXv30ldffUWZmZlO9cX6CAwMpI4dO1Lbtm3pueeeo61btzrUV1ZWFj3++ONWKxseffRRMpvNLe7vzTffrClF5ONDEydOhIuldb53ZqNTxpyfn08RERFWBsiM2mQytbi/+fPn29zCnJSU1KK+ioqKyNe3poTpU089RRs3bqTt27dTQEBAvUiuXr2quL8ff/xRFgYT7e7duxGk64E/FBsdFsfhw4epR48eNTsvO3WioKAgmjRpEvXu3Vv+rHPnzvTTTz8p7u/dd9+tqXwouS/Lly+nS5cuUUlJCa1fv17ui11j7pFSTJs2Tf4O+7tu3bpV//ndu3fr3v40Y8YMRX1VVFTQkCFD5O8sW7YMmXS98MLdQofEYbFYqFu3brLBsBGEBa11KC0tpcTERPkaa8NGGXs4ePCg/HZu06YN7du3z+r6/v3769/e6enpdvvbs2dPTeHrnj1l968xLl68SN2712yR/vbbb+3299lnn8ltn3jiCbp37x4y6XphedWdFouDBbiDBw+WDWb27NlUWVlp1aaqqooiIyPlNsOHD3/IqBrj9u3bNGjQILnt4sWLbbZbuHCh3Mbf37/J31kH9rvq+mPBuS2w0Yi18fPzk4NvW2C/iwmDtd22bRsy6RAINWvM48aNq48z2L9tgblH/fv3l9suWLDAZrt58+bJbZ5++ulmhcRGpscee8yu4a9YsUJuM2zYMNk1soXy8nLq16+f3Hbnzp0227EJAtZm4MCBVv0hkw4XS8aNGzdkV4S9bZmxMMM6f/683e+lpaVR+/Y1W5A//PBDq+vr1q2Tr7E2GRkZil2nrl27Um5ubpOTBuwaa/PNN9/Y7a/u97MRgsUmjcE+Y8JgbbZs2YJMut6oZGnJ6NGjHz5bQzKYggLlWXf2BmbxA/suC+LZbNKOHTsoLi6OWrduLXPz5s2K+2P5DNYXC5rz8h6sGbt8+bI8qrFrrI3S4JuNNOw7ycnJVtfffvvtZkcjTPNqnMtOb7BrRGPGjJFnlpiRfPDBB826VbbABNGrVy/rii/t2tGqVata7OY9++yz8ve7dOkiC41NAdfNng0dOlR2x5TCaDTKfwf77tKlS2UhsJiEuXFs0oCJ+9ChQ+pYauKOPel65sT0JJckCpXmJVhgzLLZM2fOpEWLFj00ArR0oqCp/AuLj9hI0lIwkbKRrG7mqy42YVyyZIl61mJhqYnruercdtUuI2HTzZs2baK1a9fSkSPOrURm8U1droOxb9++tGHDBixWxGJFkVJLjmEFYoMcCYuxmpsBQ5Cuu+Xu8+hk2SmoQ63L3ZFJ90w8cuD6YVi9KgWCTLrHuDB3uVwep5qqoQC1CASZdM8z+sQb9P6ZTbSjcD+KNnAvEGTSUfYHAkGQDoGhcBymeUGUHkUmHdS6wG5VlmFPOgjq/gAdEMQRbCCoZYEgkw5CIMikgxAIMukgBIJMOgiBIEgHIRBM84KgegSCTDoIgSCTzvcWXbNAv7bE0/oL0fSPG1F0+k4k3aoMp4rqmUSkL8LFAus563gCbb88h4ruR+hOCKoQCIJ07/CFDAP9rWg23a+GILgVCDLp3uGSghi6WREOMXAvEGTSPcrxUpzxtTRqQAQqEQgCck9WNzFQasksCEBVAkEm3WMjB8SBIB20QbhVmOYFbXBpQazLDYjlR25XhetGIJOyXuw5JntuF2TSNVd61EAlLpytqpa4sjCWJmSLMtdcidG2QKhV67CcxHVh2WJVLVcik65zjmVZ9QyRxmcKFHpSJMkoaGqOSHGnDPTGuXj53w1pLIvSnECk+yoPzRZPh2Un/r3x/YZZEifBxdLrcpOMB6JQyt3Fc7QokOb4OoJ0vdEs0LgTLRNGHQ/cnE07JZEcLo2SXTCtC2RCdmJ8aI64MNSSOI25YMik64COiqMxPy6M0cMI0oDCGmTSdeBWuUIcYbWBe6kGZrdacM/VIafF7sikazggb2nMYU8gJZURehJIVUhO0iPIpGt29HCdOBj/qDMXS3ohfIogXctLUDJd516xaeCvb8yhMv24WGekQP2VsFNJ3TDNq1G60r2qY4IkFLWLpIX3fMojIkEm3QsV0LMFlwuEcfS/P0N+ft29ypdf/qWnBEJhFiEJmXQIRDH7RQ2uP5fcW+zbt6PHBDIhJ/EluFhwsRRxzsl4OmgeTyZTiFdZXDzVUwLJd6uLhSBdO0H63huzdRWkM9fKreJAJl07SULGjy7H6iuTbhHXI5Ou8URhGBKFHCcKEZB7fxQ5iqUm/C41QSadk8WKrhHJJ4X6crFCLeKfkEnXiavl7HL31LJZutgPUrfcPSxXmIoNU3rcMGURsGGKpw1TyKTzKZTxmWJtnkT6OSOBxhyYRX6fPW9lML0C+3k9KdgUR47s4dSWW4kF3Gy5RSbdtXTUMEaM6NG84bVuRUNSAiThSCNNlkCDk/25FAfjqFE9XVO0IVtcW1uwoTLMInyEsj86FohSllaGU7mOyv5MPR7bIyRrXmcUjoNAQFR3h0BAVHeHQEBUdwchEFR3ByEQVHdHkA6BQCCY5oVAIBBk0tUrEH//Htwm/jyZSedWIMikc55JVxFdkkmHiwWBgAjSIRAQmXQQAkEmHYRAkEkHeRDIP0ujaOG5eJqWK8j8jfQzOyQHAkEmXfcC2XA12uaOuk1F0RAIgnRtC4Qd4XyifBZZ7kRaHefMRg5722wbjySsD9YX61MLx0OH5cwNnJwX1xXTvDoTyF3JeD8pjKHncx4Y+xTp51VXYuRrrM3CJk6ybUx22u2D/mLlPuquTc4RavqrVv2e9LthOcKqgPNRP0MmXQcCqZAMdsFZ28b/unTNf1QvGpceZ1cg48xx5NPOh4Z/PsVmG79tz1Prtj5q3ZPekD/4mZLaIZOu9dpXx+1XKBl3XFlFk9BMAw1+a4Tddo8Zhqkyk95EQbz5cLG0Xsk9S3TLUQfN8ddnErRS9seMIF3rZ4FYPC+QF3IFrQjkFjLpOAvE5UwsMGhFIBZk0rV+FsgJweMC+Vilp95a34uwBpl0rdffNXtWIKzS+9Hbs2hlYSwZThnkqWA2onx+LZr7KeDGFdxDsw3jwnIS18mnSWWLd9iIEmpJfMvtU8DIpHtwBMny/Ahii/8mBe88JxRb8BJIc3tCEUG6Nt0re/zgcozqBVLrfm3GNK+aC1Ef408cjBM5Po2qhfdS6dZTppBJd2/cEWoRuRQIY8/RfdWQSbfP3LlhSoPuxSGpcb7IpMO1UsIe/n1UkUm3OxrmCsF2jTs09aU+0kO5zQwcLhYHTBe5Fgdb1HirMlwLLtbdSVkv9lSS01ha93CCzMpP4UGQzve5g+7iHzk+z7CF97JWadIvr8EDqmJZcmTSvUSzd5aWKOX8swn1y+tVLpCD001JnezHHkdE/yYe1B17IkEm3U3BeTq/o8faK9Hy0nvVn3JrET5SvAxeeii/sfGwqqSY5DVk0j3sXh3jd/Rgm7V43+Ou8F7uSyyT+P1EizjdnkC+sDPk7x+TPrcvMukemr3K5DtA532PuyP3EZojvtvc9G6mggd3LcgoLAg49PD6FQTp7li5K6hGIE3tcVejQGSRWBKn2RpBLrXgAbK2vws0zu2PaV7t7P1whnV73NUuEHZstC2B3HFwtuVIkEn8cKxRiJFGkn8NyZgbGGw07IaROzmCZKtLIGyPu6oz6fY2VkkP5R4MEwJxlCGmOG4y6ferw525l5u2BHIdhsmRQOBiOUy2gNLhGCRb/M6ZIB3U8PZaZ5haNosbgRTcjXT8XnKFqbZGkK9gmDxtjlKPOLZwNs37j1uzHbwXYWlzOwMXwTCRKFSaKJyeK8huFU8jh5K6xNaJQqGUuVU2R476aVqzOAqGiaUmSnjmXiTXy0xePZOgLN7ISxymfL06pfhID+YcjJMTgXAah7xymu9CclfuR8jFJhTcy1EHSvgYlsE41VVq1NPccX0O1wJhFVcU3UuOmNzyfeWpcb7Ih/C1YYqnfAirsnijkt8l7iz/EZ1vUJQMnJif0NvRQnBrYZw8bZriRyDbrvE9euwpnqOs1E+OsNjhogsBh17sKT2YIhgnLxunRC7WZc3OF6ic4w1SN6WRLTJP0ehxOSRrXmfn6lwZxWgYJ8r+NKywmMbhdG5DLrkYp+ReqsbnGCa7qij1pzBOVDdh3HqN7zMN/3pjttLA/D9dVt8q6suoNmNNwl9gnPreRPV76c1czbE4WKJyUo6il8euFErxcWkROD9TUqdgk2EfjJOf3IgnRfLepViqrOY37mCbtKbmKhLH1pDvU9q6pVIi29SOmS19zWxNqC3MUM25W6Vg5KhmhRlaUavWHjgoxzAHs1scBe4ZclUOl4sjJt9AxrIoboVRUhmuNCA/F2ZJnOTRs0BC0wy9gk3iamyr5ad2lquCd1alZM2VGG6PNGBJQJbnCM+ze7+sSslKr56RPj7D0K92WQrWbnEiFLYsxZG1W2zEYMszeC0herUiQv77FGTIz7EDcRSVEPUYKMUnyGgYIY0qyVIAuVN6WMdrdyZiuYqXgvixRwX5KOjxmTWLHdnORLZchfnrEdLb9+XTCZKLEiv78GfvRXA0QsykmxXhlF8eST8UR9G6i9H0q7x4Cm10H2HZQoUkhmsSj0/IFnZOyBFeDctNGNoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsI3/BxVeQNnL1kBuAAAAAElFTkSuQmCC"}}]); \ No newline at end of file diff --git a/assets/js/199b4690.31196232.js b/assets/js/199b4690.31196232.js new file mode 100644 index 0000000000..9b12fa28f1 --- /dev/null +++ b/assets/js/199b4690.31196232.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[38370],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-04-03-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-04-03-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-03-mithril.md",source:"@site/blog/2024-04-03-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-04-03T00:00:00.000Z",formattedDate:"April 3, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.055,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-04-03-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-04-03-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-03-30-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet"),", completed the implementation of a more versatile beaconing mechanism, worked on implementing incremental storage of transactions, and fixed the bug in the block parser that prevented some Conway transactions from being signed. Additionally, they continued working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network."),(0,i.kt)("p",null,"Finally, they enhanced the internal storage of data on the test aggregator server and addressed a source of flakiness in the CI end-to-end test."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement incremental storage of Cardano transactions in signer/aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1591"},"#1591")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Support multiple beacon types in signer/aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1562"},"#1562")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril relay broadcasts signer registrations with P2P PubSub")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1587"},"#1587")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Provide fake aggregator data in an aggregated form")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1594"},"#1594")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Some transactions are not signed in ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1577"},"#1577")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"End to end tests are flaky in CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1558"},"#1558")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"npm")," publication fails in the release workflow")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1595"},"#1595")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add indexes on foreign keys of SQLite stores")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1603"},"#1603"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/19b42e4a.e64c8d0c.js b/assets/js/19b42e4a.e64c8d0c.js new file mode 100644 index 0000000000..2b8985c85e --- /dev/null +++ b/assets/js/19b42e4a.e64c8d0c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[47089],{52616:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/3","page":3,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/2","nextPage":"/tags/hydra/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/1a6775b2.35eb131d.js b/assets/js/1a6775b2.35eb131d.js new file mode 100644 index 0000000000..b9ecfe4c3c --- /dev/null +++ b/assets/js/1a6775b2.35eb131d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29867],{97531:e=>{e.exports=JSON.parse('{"permalink":"/page/35","page":35,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/34","nextPage":"/page/36","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/1a6b5039.be02918c.js b/assets/js/1a6b5039.be02918c.js new file mode 100644 index 0000000000..b6a18612e3 --- /dev/null +++ b/assets/js/1a6b5039.be02918c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52463],{40239:e=>{e.exports=JSON.parse('{"permalink":"/page/44","page":44,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/43","nextPage":"/page/45","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/1a932c01.f28371e3.js b/assets/js/1a932c01.f28371e3.js new file mode 100644 index 0000000000..81414590b7 --- /dev/null +++ b/assets/js/1a932c01.f28371e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2348],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>y});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),p=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=p(n),d=a,y=s["".concat(u,".").concat(d)]||s[d]||m[d]||o;return n?r.createElement(y,l(l({ref:t},c),{},{components:n})):r.createElement(y,l({ref:t},c))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-08-17-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-08-17-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-17-db-sync.md",source:"@site/blog/2023-08-17-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-08-17T00:00:00.000Z",formattedDate:"August 17, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.41,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-08-17-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-08-17-crypto"},nextItem:{title:"SECP bindings Security Issue Report",permalink:"/2023-08-17-secp-issue"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],c={toc:p},s="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We have integrated many new Conway feutures and allow db-sync to sync sanchonet.\nWe also continued testing and improving the new db-sync options."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Conway integration\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1484"},"#1484")),(0,a.kt)("li",{parentName:"ul"},"Support for Sanchonet\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1476"},"#1476")),(0,a.kt)("li",{parentName:"ul"},"Stake distribution is computed earlier\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1484"},"#1484")),(0,a.kt)("li",{parentName:"ul"},"Deposit ledger events are now used. This reduces the db queries and makes syncing faster\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1484"},"#1484")),(0,a.kt)("li",{parentName:"ul"},"Testing new db-sync options\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1466"},"#1466")),(0,a.kt)("li",{parentName:"ul"},"Added support for ghc-9.6\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1479"},"#1479")),(0,a.kt)("li",{parentName:"ul"},"Tech debt: improve exceptions\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1471"},"#1471"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1a982bed.23ae968b.js b/assets/js/1a982bed.23ae968b.js new file mode 100644 index 0000000000..8fa757642c --- /dev/null +++ b/assets/js/1a982bed.23ae968b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27885],{97247:a=>{a.exports=JSON.parse('{"permalink":"/quarterly/tags/cli-api-quarterly","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/1aa68a01.e34d36ae.js b/assets/js/1aa68a01.e34d36ae.js new file mode 100644 index 0000000000..88b5c91366 --- /dev/null +++ b/assets/js/1aa68a01.e34d36ae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5507],{84408:e=>{e.exports=JSON.parse('{"permalink":"/reports","page":1,"postsPerPage":10,"totalPages":1,"totalCount":6,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/1ac6d9a0.460a45c7.js b/assets/js/1ac6d9a0.460a45c7.js new file mode 100644 index 0000000000..c7cfed9a83 --- /dev/null +++ b/assets/js/1ac6d9a0.460a45c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[86243],{2993:a=>{a.exports=JSON.parse('{"permalink":"/tags/cli-api/page/3","page":3,"postsPerPage":5,"totalPages":8,"totalCount":39,"previousPage":"/tags/cli-api/page/2","nextPage":"/tags/cli-api/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/1adaa071.de0ffd94.js b/assets/js/1adaa071.de0ffd94.js new file mode 100644 index 0000000000..a51a9f2df3 --- /dev/null +++ b/assets/js/1adaa071.de0ffd94.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11164],{18712:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/1afca88e.62a4bc03.js b/assets/js/1afca88e.62a4bc03.js new file mode 100644 index 0000000000..5a7fb582a9 --- /dev/null +++ b/assets/js/1afca88e.62a4bc03.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[49835],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>m});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var l=n.createContext({}),p=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(o),h=r,m=c["".concat(l,".").concat(h)]||c[h]||d[h]||i;return o?n.createElement(m,a(a({ref:t},u),{},{components:o})):n.createElement(m,a({ref:t},u))}));function m(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,a[1]=s;for(var p=2;p{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var n=o(87462),r=(o(67294),o(3905));const i={title:"Network Team Update",slug:"2023-10-02-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},a=void 0,s={permalink:"/2023-10-02-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-02-network.md",source:"@site/blog/2023-10-02-network.md",title:"Network Team Update",description:"High-level overview of sprint 45",date:"2023-10-02T00:00:00.000Z",formattedDate:"October 2, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.485,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-10-02-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-10-04-mithril"},nextItem:{title:"Goedel Team Update",permalink:"/2023-09-29-goedel"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 45",id:"high-level-overview-of-sprint-45",level:2},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"Towards Typed Protocols 0.2.0.0",id:"towards-typed-protocols-0200",level:3},{value:"Tech Debt",id:"tech-debt",level:3},{value:"IO-Sim",id:"io-sim",level:3},{value:"IOSimPOR",id:"iosimpor",level:4},{value:"IOSim",id:"iosim",level:4},{value:"Cardano Newtork Service Assurance",id:"cardano-newtork-service-assurance",level:3},{value:"P2P adoption",id:"p2p-adoption",level:3},{value:"Open Source",id:"open-source",level:3}],u={toc:p},c="wrapper";function d(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,n.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-overview-of-sprint-45"},"High-level overview of ",(0,r.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+45%22"},"sprint 45")),(0,r.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,r.kt)("p",null,"We started reviewing the bootstrap peers PR, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4615"},"ouroboros-network#4615"),"."),(0,r.kt)("h3",{id:"towards-typed-protocols-0200"},"Towards Typed Protocols 0.2.0.0"),(0,r.kt)("p",null,"We discovered a performance regression when using ",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols-0.2.0.0"),", and we\nstarted investigating where it comes from. Currently, we see that\n",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols-0.2.0.0")," can outperform ",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols-0.1.0.0")," when running\nin isolation with a simple ",(0,r.kt)("inlineCode",{parentName:"p"},"ping-pong")," protocol, so the regression might be in\nthe new block fetch implementation which comes with ",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols-0.2.0.0"),"\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/3"},"typed-protocols#3"),"."),(0,r.kt)("h3",{id:"tech-debt"},"Tech Debt"),(0,r.kt)("p",null,"We merged two PRs written by Galois engineers:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"a pull request which refactors the main entry function for P2P, see ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3834"},"ouroboros-network#3834"),"; "),(0,r.kt)("li",{parentName:"ul"},"a pull request which reviews usage of ",(0,r.kt)("inlineCode",{parentName:"li"},"unsafe")," function in the network code based.")),(0,r.kt)("p",null,"Galois also made progress with the following two issues:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"add microbenchmarks to some of our tests: ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3832"},"ouroboros-network#3832")),(0,r.kt)("li",{parentName:"ul"},"inspect use of ",(0,r.kt)("inlineCode",{parentName:"li"},"error")," in ",(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-network")," repository:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3836"},"ouroboros-network#3836"))),(0,r.kt)("h3",{id:"io-sim"},"IO-Sim"),(0,r.kt)("h4",{id:"iosimpor"},"IOSimPOR"),(0,r.kt)("p",null,"We found and fixed a bug in ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSimPOR"),". We'd like to thank Prof. John Hughes\n(Quviq AB) for helping us with debugging the issue."),(0,r.kt)("p",null,"We also provided a more uniform API for ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSimPOR"),", and added ways to make the\ndebugging similar problems in the future easier."),(0,r.kt)("details",null,(0,r.kt)("summary",null,"Technical Details on IOSim refactoring"),"We removed the usage of `unsafePerformIO` from `IOSimPOR`, which also means removing parallel evaluation of discovered races. We found out that it gives only 25% better performance. In the future QuickCheck will offer running different cases in parallel which should provide better performance as there are no dependencies between the evaluation of different test cases, while schedules are discovered while running which limits the possible gains from running them concurrently. The performance was not the only factor though. When using parallelism in the lazy `ST` monad we'd need to rely on memory guarantees of `STRefs`. In `GHC-9.6` they share the implementation with `IORef`s, but it might not be the case in the future."),(0,r.kt)("h4",{id:"iosim"},"IOSim"),(0,r.kt)("p",null,"To prepare for the next release, we consolidate packages taking advantage of\nthe public sublibraries supported now both by ",(0,r.kt)("inlineCode",{parentName:"p"},"cabal")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"Hackage"),". This is\na work in progress, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/issues/114"},"io-sim#114"),"."),(0,r.kt)("h3",{id:"cardano-newtork-service-assurance"},"Cardano Newtork Service Assurance"),(0,r.kt)("p",null,"Galois made the following progress:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"A test run of spinning up a CNSA instance was done, as a result documentation\nwas updated."),(0,r.kt)("li",{parentName:"ul"},"Based on the IOG code review of the CNSA code, updates to the CNSA code were\nmade."),(0,r.kt)("li",{parentName:"ul"},'Galois has started the design for adding a CNSA analysis for "fetched bytes\nover time while node is syncing".')),(0,r.kt)("h3",{id:"p2p-adoption"},"P2P adoption"),(0,r.kt)("p",null,"In the last two weeks, we've seen increase in P2P adoption.\n",(0,r.kt)("img",{alt:"P2P relays",src:o(53101).Z,width:"2668",height:"1576"})),(0,r.kt)("p",null,"The following graphs show several different versions of relays running on the mainnet. The\ngreen line ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionV10.True")," denotes P2P relays.\n",(0,r.kt)("img",{alt:"node versions",src:o(40970).Z,width:"2674",height:"1580"})),(0,r.kt)("h3",{id:"open-source"},"Open Source"),(0,r.kt)("p",null,"We upstreamed our FFI bindings to Windows named pipes to ",(0,r.kt)("inlineCode",{parentName:"p"},"Win32")," package, the\nPR was accepted and merged."),(0,r.kt)("p",null,"We also received an external contribution which enhanced our documentation, see\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4676"},"ouroboros-network#4676"),"."))}d.isMDXComponent=!0},53101:(e,t,o)=>{o.d(t,{Z:()=>n});const n=o.p+"assets/images/2023-10-04-p2p-relays-75c2baf57ea9346a40f0098b2abb4a99.png"},40970:(e,t,o)=>{o.d(t,{Z:()=>n});const n=o.p+"assets/images/2023-10-04-relay-versions-5168d3ed0ad365a18e86263fcccffd23.png"}}]); \ No newline at end of file diff --git a/assets/js/1b2a226f.21adb695.js b/assets/js/1b2a226f.21adb695.js new file mode 100644 index 0000000000..d3d6a96c2f --- /dev/null +++ b/assets/js/1b2a226f.21adb695.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[88782],{3905:(e,t,i)=>{i.d(t,{Zo:()=>u,kt:()=>c});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(i),d=n,c=h["".concat(s,".").concat(d)]||h[d]||m[d]||a;return i?r.createElement(c,o(o({ref:t},u),{},{components:i})):r.createElement(c,o({ref:t},u))}));function c(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,o=new Array(a);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{i.r(t),i.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-09-07-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-07-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-07-mithril.md",source:"@site/blog/2023-09-07-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-09-07T00:00:00.000Z",formattedDate:"September 7, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.53,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-09-07-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-09-08-hydra"},nextItem:{title:"Performance & tracing update",permalink:"/2023-09-07-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(h,(0,r.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team has released a new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2335.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2335.0"))," which brings enhancements to the client: support for simultaneous downloading and unpacking of the snapshot archives, support for one line command restoration of the latest snapshot, and availability of machine readable progress information."),(0,n.kt)("p",null,"They have also worked on snapshots enhancements: implementation of the ",(0,n.kt)("inlineCode",{parentName:"p"},"zstandard")," compression to produce smaller archives, and providing the version of the Cardano node used to create the archive in the snapshot artifacts. They have completed the second phase of the implementation of the stress test tool to benchamrk the aggregator. Additionally, they have kept working on refactoring and standardizing errors in the Mithril nodes."),(0,n.kt)("p",null,"Finally, they have worked on adding Cloudflare protection to the infrastructure, and they have fixed some bugs that occurred during restoration of a snapshot by a client."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Use 'zstandard' compression for snapshot archives")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/876"},"#876")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Design & implement stress test tool for aggregator - phase 2")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1155"},"#1155")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Provide progress information with '--json' option in Client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1095"},"#1095")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Make client download and extract the archive simultaneously")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1115"},"#1115")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add aggregator Cardano node version in snapshot artifact")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/948"},"#948")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Make Cardano node version part of the Mithril network configuration")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/947"},"#947")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Post deployment 'mainnet' infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1091"},"#1091")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Errors refactoring")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/798"},"#798")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add Cloudflare protection of infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/986"},"#986")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Failed to restore recent snapshot with strange error")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1160"},"#1160")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Update 'ed25519-dalek' to '2.0.0'")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1188"},"#1188")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add target networks blocks in release notes")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1151"},"#1151")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Fix end to end 'wait_for_the_expected_time' test")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1191"},"#1191")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Fix docs 'git checkout' command")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1174"},"#1174"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1b34f23d.fd6d2091.js b/assets/js/1b34f23d.fd6d2091.js new file mode 100644 index 0000000000..c1ba940c9e --- /dev/null +++ b/assets/js/1b34f23d.fd6d2091.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91990],{3905:(e,t,o)=>{o.d(t,{Zo:()=>h,kt:()=>m});var n=o(67294);function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},h=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=c(o),d=a,m=u["".concat(l,".").concat(d)]||u[d]||p[d]||r;return o?n.createElement(m,i(i({ref:t},h),{},{components:o})):n.createElement(m,i({ref:t},h))}));function m(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=o.length,i=new Array(r);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var n=o(87462),a=(o(67294),o(3905));const r={title:"Initial CIP 1694 Security Analysis and Responses",slug:"2023-11-20-cip1694",authors:"kevinhammond",tags:["ledger","cip1694","security"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-11-20-cip1694",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-20-cip1694.md",source:"@site/blog/2023-11-20-cip1694.md",title:"Initial CIP 1694 Security Analysis and Responses",description:"High level summary",date:"2023-11-20T00:00:00.000Z",formattedDate:"November 20, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"},{label:"cip1694",permalink:"/tags/cip-1694"},{label:"security",permalink:"/tags/security"}],readingTime:5.345,hasTruncateMarker:!1,authors:[{name:"Kevin Hammond",title:"Head of Software Engineering, Cardano Core",url:"https://github.com/kevinhammond",imageURL:"https://github.com/kevinhammond.png",key:"kevinhammond"}],frontMatter:{title:"Initial CIP 1694 Security Analysis and Responses",slug:"2023-11-20-cip1694",authors:"kevinhammond",tags:["ledger","cip1694","security"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-11-22-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-11-17-hydra"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Initial CIP-1694 Security Analysis and Responses",id:"initial-cip-1694-security-analysis-and-responses",level:2},{value:"Section: The constitutional committee",id:"section-the-constitutional-committee",level:3},{value:"Section: Size of the constitutional committee",id:"section-size-of-the-constitutional-committee",level:3},{value:"Section: Terms",id:"section-terms",level:3},{value:"Section: Registered DReps",id:"section-registered-dreps",level:3},{value:"Section: Ratification",id:"section-ratification",level:3},{value:"Section: Content",id:"section-content",level:3},{value:"Section: Protocol Parameter groups",id:"section-protocol-parameter-groups",level:3},{value:"Section: Votes",id:"section-votes",level:3},{value:"Section: Separation of Hard Fork Initiation from Standard Protocol Parameter Changes",id:"section-separation-of-hard-fork-initiation-from-standard-protocol-parameter-changes",level:3},{value:"Section: Changes post Edinburgh workshop (July 2023)",id:"section-changes-post-edinburgh-workshop-july-2023",level:3},{value:"Section: Reduced deposits for some government actions",id:"section-reduced-deposits-for-some-government-actions",level:3}],h={toc:c},u="wrapper";function p(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,n.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We have undertaken an initial high-level security analysis of the CIP-1694 design. We summarise the analysis and our responses here."),(0,a.kt)("h2",{id:"initial-cip-1694-security-analysis-and-responses"},"Initial CIP-1694 Security Analysis and Responses"),(0,a.kt)("h3",{id:"section-the-constitutional-committee"},"Section: The constitutional committee"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},'\u201cFor example, if we consider the hypothetical Constitution rule "The Cardano network must always be able to produce new blocks" - In this example, if the governance action to reduce block size to 0 is passed, then there will be no way of passing or enacting further proposals. That is, this governance action is completely non-reversable. Suggestion: Instating a built-in mechanism that checks (and perhaps enforces) that the proposed governance actions, if passed, can be reverted in the future.')),(0,a.kt)("p",null,"There is a 'guardrails document' in preparation which captures issues such as these. Some of them may be automatable, as suggested; others will need to be evaluated by humans."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-size-of-the-constitutional-committee"},"Section: Size of the constitutional committee"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"A possible issue with very large committee sizes (or large number of proposals/voters in general) is that it may take longer to have votes appear on-chain, which in extreme cases may require longer voting periods.")),(0,a.kt)("p",null,"Thanks. Yes, we\u2019ve been thinking about this issue for a long time, see for example the section \u2018Final safety measure, post bootstrapping\u2019. We don\u2019t consider this as an issue for the CC since they need to be elected while DReps can just register, so we expect the number of CC members to be much less than the number of DReps"),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-terms"},"Section: Terms"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The following sentence is a bit awkward to read: \u201cFor example, a committee of size five with a threshold of 3/5 a minimum size of three and two expired members can still pass governance actions if two non-expired members vote Yes.\u201d \u2014> Suggestion: \u201cFor example, if we have a committee of size five with a threshold of 3/5, then a committee of three non-expired and two expired members can still pass governance actions if two non-expired members vote Yes.\u201d ")),(0,a.kt)("p",null,"Thanks. Yes, that suggestion is a bit easier to read."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-registered-dreps"},"Section: Registered DReps"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u201cAdditionally, registered DReps will need to vote regularly to still be considered active.\u201d - There is a minor issue with requiring \u201cvoting regularly\u201d. That is, if there are no proposals to vote on for a long time, this means that no DRep can vote regularly (or they have to issue bogus proposals just to vote on them).")),(0,a.kt)("p",null,"Thanks. We\u2019ve added a mechanism to prevent that issue in the spec/code where if there\u2019s nothing to vote on for an entire epoch, we increment the epoch that each DRep expires."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-ratification"},"Section: Ratification"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"It is a bit unclear why protocol changes: network group and technical group are two separate groups.")),(0,a.kt)("p",null,"These correspond exactly to the groups that are administered by the Parameter Committee."),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"I didn\u2019t understand the rationale for requiring 100% \u201cYes\u201d votes to pass \u201cInfo\u201d type governance actions? It seems they have the least potential to harm the system.")),(0,a.kt)("p",null,"Yes, it\u2019s not about harming the system, since ",(0,a.kt)("inlineCode",{parentName:"p"},"Info"),"\nactions have no direct effect on the operation of Cardano. The motivation is simply to record the actual level of support for the action. "),(0,a.kt)("p",null,"Once an action is enacted it\u2019s no longer possible to vote on it. So if there was e.g. a threshold of 50%, then there is no way of telling whether the support for it might eventually have reached 90% or higher if it was not immediately enacted when the threshold was reached."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-content"},"Section: Content"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"For Hard-fork initiation, the changed parameters should probably also be required as part of Additional data.")),(0,a.kt)("p",null,"Protocol parameters can be changed in arbitrary ways by the hard fork and new ones might be introduced, so anything this action pins down might not actually be the value that will be present after the hard fork."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-protocol-parameter-groups"},"Section: Protocol Parameter groups"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"It is a bit unclear to the reader what some of these parameters mean, for example: monetary expansion (rho) and treasury expansion (tau). Suggestion: Include brief explanations for the non-obvious parameters.")),(0,a.kt)("p",null,"These are existing protocol parameters, described in e.g. ",(0,a.kt)("a",{parentName:"p",href:"https://docs.cardano.org/explore-cardano/parameter-guide/#:~:text=Protocol%20parameters%20on%20Cardano%20are,to%20changing%20conditions%20over%20time."},"https://cips.cardano.org/cips/cip9/"),"9 or ",(0,a.kt)("a",{parentName:"p",href:"https://docs.cardano.org/explore-cardano/parameter-guide/#:~:text=Protocol%20parameters%20on%20Cardano%20are,to%20changing%20conditions%20over%20time."},"The Cardano Protocol Parameters Guide"),"."),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"With the current set of governance actions, it seems that it is not possible to add new types of protocol parameters, or categories of governance voting thresholds. Suggestion: Consider possibility of incorporating governance actions that allow addition of new protocol parameters, deletion of defunct protocol parameters, or modification of governance voting threshold categories. ")),(0,a.kt)("p",null,"All of this needs to be done via a hard fork. If we had an action that added a parameter then there is no way of giving it semantics anyway, since that must be done by logic in the code."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-votes"},"Section: Votes"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Is a constitutional committee member also a DRep? If so, do they vote twice, once as a committee member and once as a DRep?")),(0,a.kt)("p",null,"They may or may not be (and they could also be an SPO). Note that this is fine, since these are completely separate tallies. This is also not preventable, since we don\u2019t have an on-chain mechanism for identity. And yes, each credential gets to vote on each action for all roles in the governance system it has."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-separation-of-hard-fork-initiation-from-standard-protocol-parameter-changes"},"Section: Separation of Hard Fork Initiation from Standard Protocol Parameter Changes"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"It is unclear whether there would be automated checks for whether a proposal is indeed a soft fork or hard fork, which would reduce human error in categorising proposals.")),(0,a.kt)("p",null,"There is no on-chain mechanism that could enforce this, the best we could do is some kind of certificate. However, this may not be trustworthy, of course. We will consider this in future versions of Voltaire."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-changes-post-edinburgh-workshop-july-2023"},"Section: Changes post Edinburgh workshop (July 2023)"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u201cAll governance actions are enacted one epoch after they are ratified.\u201d - I\u2019m not sure if this line is currently in the main body of the CIP?")),(0,a.kt)("p",null,"It is, but it is phrased differently: \u2018All governance actions are enacted on the epoch boundary after their ratification.\u2019"),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-reduced-deposits-for-some-government-actions"},"Section: Reduced deposits for some government actions"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Another downside of requiring endorsement from the constitutional committee is that this likely does not apply to constitutional committee-related proposals, such as no-confidence votes.")),(0,a.kt)("p",null,"Indeed. We have no plans for this at the moment."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1b386b52.966d03fb.js b/assets/js/1b386b52.966d03fb.js new file mode 100644 index 0000000000..c30952820b --- /dev/null +++ b/assets/js/1b386b52.966d03fb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7939],{2385:e=>{e.exports=JSON.parse('{"permalink":"/tags/release","page":1,"postsPerPage":5,"totalPages":1,"totalCount":5,"blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/1b89036f.10d5decc.js b/assets/js/1b89036f.10d5decc.js new file mode 100644 index 0000000000..9980a83e8b --- /dev/null +++ b/assets/js/1b89036f.10d5decc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[42408],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-07-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-07-10-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-10-mithril.md",source:"@site/blog/2024-07-10-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-07-10T00:00:00.000Z",formattedDate:"July 10, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.315,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-07-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-07-10-consensus"},nextItem:{title:"Network Team Update",permalink:"/2024-07-08-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team worked on supporting Cardano node version ",(0,n.kt)("inlineCode",{parentName:"p"},"9.0.0")," and started working on a new Mithril distribution. They also continued implementing the certification of Cardano transactions in Mithril networks. They fixed some bugs blocking the REST API during transactions import, causing resource exhaustion on the aggregator Cardano node, and creating some exceptions in the explorer. They also kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network."),(0,n.kt)("p",null,"Finally, the team worked on enhancing the artifact production in the aggregator to avoid blocking the certification and finalized enforcing the linting of all the files in the repository with the CI."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Upgrade Cardano node ",(0,n.kt)("inlineCode",{parentName:"strong"},"9.0.0"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1787"},"#1787")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Aggregator/Signer preload transactions when Cardano transactions certification is not activated")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1782"},"#1782")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Explorer does not handle invalid transaction hashes")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1784"},"#1784")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Cardano transactions import blocks aggregator and signer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1797"},"#1797")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Resource exhausted on Cardano node socket")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1803"},"#1803")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Certificate pending route overwhelms the Cardano node in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1804"},"#1804")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Optimize Cardano transaction prover performances with parallelization")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1756"},"#1756")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Lint Markdown/JavaScript files in repository")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1754"},"#1754")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"CIP for Mithril signature diffusion through Cardano network")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1775"},"#1775")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Release ",(0,n.kt)("inlineCode",{parentName:"strong"},"2428")," distribution")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1810"},"#1810")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Non blocking artifact production in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1792"},"#1792")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Cardano transaction importer does not import the last block advertised as certified")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1785"},"#1785"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1be78505.eb072735.js b/assets/js/1be78505.eb072735.js new file mode 100644 index 0000000000..836136e8eb --- /dev/null +++ b/assets/js/1be78505.eb072735.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29514,4972],{19963:(e,t,n)=>{n.r(t),n.d(t,{default:()=>fe});var a=n(67294),l=n(86010),o=n(1944),r=n(35281),c=n(43320),i=n(52802),s=n(74477),d=n(1116),m=n(93285),u=n(95999),b=n(12466),p=n(85936);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(16550),g=n(87524),k=n(86668),_=n(21327),v=n(87462);function C(e){return a.createElement("svg",(0,v.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const S={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function I(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",S.collapseSidebarButton),onClick:t},a.createElement(C,{className:S.collapseSidebarButtonIcon}))}var N=n(59689),T=n(902);const Z=Symbol("EmptyContext"),x=a.createContext(Z);function B(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(x.Provider,{value:o},t)}var y=n(86043),L=n(48596),w=n(39960),A=n(72389);function M(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function F(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,k.L)(),f=function(e){const t=(0,A.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),g=(0,i._F)(t,o),_=(0,L.Mg)(h,o),{collapsed:C,setCollapsed:S}=(0,y.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(x);if(e===Z)throw new T.i6("DocSidebarItemsExpandedStateProvider");return e}(),B=function(e){void 0===e&&(e=!C),N(e?null:s),S(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,T.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:g,collapsed:C,updateCollapsed:B}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&S(!0)}),[b,I,s,S,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":C},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":_})},a.createElement(w.Z,(0,v.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?B(!1):(e.preventDefault(),B())}:()=>{n?.(t)},"aria-current":_?"page":void 0,"aria-expanded":b?!C:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(M,{categoryLabel:u,onClick:e=>{e.preventDefault(),B()}})),a.createElement(y.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:C},a.createElement(V,{items:m,tabIndex:C?-1:0,onItemClick:n,activePath:o,level:c+1})))}var H=n(13919),P=n(39471);const W={menuExternalLink:"menuExternalLink_NmtK"};function D(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,H.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(w.Z,(0,v.Z)({className:(0,l.Z)("menu__link",!E&&W.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(P.Z,null)))}const R={menuHtmlItem:"menuHtmlItem_M9Kj"};function z(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[R.menuHtmlItem,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function U(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(F,(0,v.Z)({item:t},n));case"html":return a.createElement(z,(0,v.Z)({item:t},n));default:return a.createElement(D,(0,v.Z)({item:t},n))}}function K(e){let{items:t,...n}=e;return a.createElement(B,null,t.map(((e,t)=>a.createElement(U,(0,v.Z)({key:t,item:e,index:t},n)))))}const V=(0,a.memo)(K),j={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function G(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,N.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{className:(0,l.Z)("menu thin-scrollbar",j.menu,c&&j.menuWithAnnouncementBar,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(V,{items:n,activePath:t,level:1})))}const Y="sidebar_njMd",q="sidebarWithHideableNavbar_wUlq",O="sidebarHidden_VK0M",X="sidebarLogo_isFc";function J(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,k.L)();return a.createElement("div",{className:(0,l.Z)(Y,c&&q,r&&O)},c&&a.createElement(_.Z,{tabIndex:-1,className:X}),a.createElement(G,{path:t,sidebar:n}),i&&a.createElement(I,{onClick:o}))}const Q=a.memo(J);var $=n(13102),ee=n(72961);const te=e=>{let{sidebar:t,path:n}=e;const o=(0,ee.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function ne(e){return a.createElement($.Zo,{component:te,props:e})}const ae=a.memo(ne);function le(e){const t=(0,g.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement(Q,e),l&&a.createElement(ae,e))}const oe={expandButton:"expandButton_m80_",expandButtonIcon:"expandButtonIcon_BlDH"};function re(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:oe.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(C,{className:oe.expandButtonIcon}))}const ce={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry"};function ie(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function se(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,f.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,ce.docSidebarContainer,n&&ce.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ce.docSidebarContainer)&&n&&s(!0)}},a.createElement(ie,null,a.createElement(le,{sidebar:t,path:c,onCollapse:d,isHidden:i})),i&&a.createElement(re,{toggleSidebar:d}))}const de={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function me(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(de.docMainContainer,(t||!o)&&de.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",de.docItemWrapper,t&&de.docItemWrapperEnhanced)},n))}const ue={docPage:"docPage__5DB",docsWrapper:"docsWrapper_BCFX"};function be(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:ue.docsWrapper},a.createElement(E,null),a.createElement("div",{className:ue.docPage},n&&a.createElement(se,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(me,{hiddenSidebarContainer:l},t)))}var pe=n(4972),he=n(90197);function Ee(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(he.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function fe(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(pe.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(Ee,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(be,null,c)))))}},4972:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(67294),l=n(95999),o=n(1944),r=n(93285);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/1be923a7.5b820cfb.js b/assets/js/1be923a7.5b820cfb.js new file mode 100644 index 0000000000..2aa4c6493c --- /dev/null +++ b/assets/js/1be923a7.5b820cfb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[47658],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),d=l(n),h=o,m=d["".concat(s,".").concat(h)]||d[h]||c[h]||a;return n?r.createElement(m,i(i({ref:t},u),{},{components:n})):r.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=h;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[d]="string"==typeof e?e:o,i[1]=p;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-06-12-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2023-06-12-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-12-network.md",source:"@site/blog/2023-06-12-network.md",title:"Network Team Update",description:"Network Update",date:"2023-06-12T00:00:00.000Z",formattedDate:"June 12, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.205,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-06-12-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-06-14-performance-and-tracing"},nextItem:{title:"Crypto Team Update",permalink:"/2023-06-09-crypto"}},s={authorsImageUrls:[void 0]},l=[{value:"Network Update",id:"network-update",level:2},{value:"Key contributions and advances",id:"key-contributions-and-advances",level:3},{value:"New cardano-ping / cardano-cli ping release",id:"new-cardano-ping--cardano-cli-ping-release",level:4},{value:"Other smaller contributions",id:"other-smaller-contributions",level:3}],u={toc:l},d="wrapper";function c(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"network-update"},"Network Update"),(0,o.kt)("h3",{id:"key-contributions-and-advances"},"Key contributions and advances"),(0,o.kt)("p",null,"We merged ",(0,o.kt)("inlineCode",{parentName:"p"},"light peer sharing")," feature, which allows to include inbound peers\ninto outbound governor known peers. This is the primary way for new\nunregistered nodes to enter the network, which then can be shared using peer\nsharing. Note that peer sharing is an experimental feature which is disabled\nuntil genesis & eclipse evasion as fully implemented. See ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3596"},"#3596"),"."),(0,o.kt)("p",null,"We are making progress reviewing eclipse evasion, ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3886"},"#3886"),"."),(0,o.kt)("p",null,"We fixed another bug in local root peers. We found out that if the local roots\nwhere ignored until the first domain name was resolved, see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4583"},"#4583"),". The bug\nfix was backported and released in ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.8.1.1"),"."),(0,o.kt)("p",null,"We re-started working on dynamically enabling block forging to address issue\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3159"},"#3159"),", which will enable us to release ",(0,o.kt)("inlineCode",{parentName:"p"},"P2P")," on block producing nodes. See ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"#140"),"."),(0,o.kt)("h4",{id:"new-cardano-ping--cardano-cli-ping-release"},"New ",(0,o.kt)("inlineCode",{parentName:"h4"},"cardano-ping")," / ",(0,o.kt)("inlineCode",{parentName:"h4"},"cardano-cli ping")," release"),(0,o.kt)("p",null,"We prepared a new release of ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-ping")," library which supports the new\nquery feature (query supported versions). See ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4589"},"#4589"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4593"},"#4593")," and ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5313"},"#5313"),".\nThe new version of ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," will use ",(0,o.kt)("inlineCode",{parentName:"p"},"ISO8601")," formatted\ntimestamps; also the formatting of ping results is slightly improved, and it\nwill introduce the new ",(0,o.kt)("inlineCode",{parentName:"p"},"--query-versions")," (",(0,o.kt)("inlineCode",{parentName:"p"},"-Q"),") switch. If the remote site\nsupports the query parameter, the command will print:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"redacted-ip:port network rtt: 0.064\nredacted-ip:port handshake rtt: 0.064010896s\nredacted-ip:port Queried versions [NodeToNodeVersionV11 764824073 InitiatorAndResponder,NodeToNodeVersionV10 764824073 InitiatorAndResponder,NodeToNodeVersionV9 764824073 Initiat\norAndResponder,NodeToNodeVersionV8 764824073 InitiatorAndResponder,NodeToNodeVersionV7 764824073 InitiatorAndResponder]\n")),(0,o.kt)("p",null,"otherwise it will print the negotiation results"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"redacted-ip:port network rtt: 0.045\nredacted-ip:port handshake rtt: 0.101867615s\nredacted-ip:port Negotiated version NodeToNodeVersionV10 764824073 InitiatorAndResponder\n")),(0,o.kt)("p",null,"Note that in that case ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," offers ",(0,o.kt)("inlineCode",{parentName:"p"},"InitiatorAndResponder"),", which\nallows us to detect whether the remote side is an ",(0,o.kt)("inlineCode",{parentName:"p"},"InitiatorOnly")," or\n",(0,o.kt)("inlineCode",{parentName:"p"},"InitiatorAndResponder"),". Also ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," will no longer announce\nitself as ",(0,o.kt)("inlineCode",{parentName:"p"},"InitiatorAndResponder"),", except for the case mentioned above."),(0,o.kt)("h3",{id:"other-smaller-contributions"},"Other smaller contributions"),(0,o.kt)("p",null,"On a request from the Marlow Team, we published haddocks of ",(0,o.kt)("inlineCode",{parentName:"p"},"typed-protocols"),",\nwhich are now available ",(0,o.kt)("a",{parentName:"p",href:"https://input-output-hk.github.io/typed-protocols/"},"here")," (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/40"},"#40"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/41"},"#41"),")."),(0,o.kt)("p",null,"We made a new release of ",(0,o.kt)("inlineCode",{parentName:"p"},"strict-stm-1.1.0.1")," on Hackage, which fixed a bug in\npackage description file, ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/101"},"#101")," ."),(0,o.kt)("p",null,"We also helped to debug a deadlock when using named pipes on Windows in the new\n",(0,o.kt)("inlineCode",{parentName:"p"},"RawBearer")," API. The API is being used to store secret keys only in memory.\nThe PR ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4395"},"#4395")," is under review."),(0,o.kt)("p",null,"We also have two more PRs which are under review:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4530"},"#4530"),": enabling ledger peers on a fixed number of slots before the tip of the chain;"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4580"},"#4580"),": a PR which fixes inconsistencies in one of our cddl specs.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1bfd87fe.93258ad9.js b/assets/js/1bfd87fe.93258ad9.js new file mode 100644 index 0000000000..126e04ff0d --- /dev/null +++ b/assets/js/1bfd87fe.93258ad9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93762],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(n),m=r,h=c["".concat(l,".").concat(m)]||c[m]||d[m]||a;return n?o.createElement(h,i(i({ref:t},u),{},{components:n})):o.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,i[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var o=n(87462),r=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-12-22-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-12-22-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-22-network.md",source:"@site/blog/2023-12-22-network.md",title:"Network Team Update",description:"High-level overview of sprint 51",date:"2023-12-22T00:00:00.000Z",formattedDate:"December 22, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.97,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-12-22-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-12-22-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-12-22-sre"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 51",id:"high-level-overview-of-sprint-51",level:2},{value:"Outbound Governor Bug in cardano-node-8.7.2",id:"outbound-governor-bug-in-cardano-node-872",level:3},{value:"Advise for SPOs",id:"advise-for-spos",level:3},{value:"Testing plans",id:"testing-plans",level:3},{value:"Bootstrap peers",id:"bootstrap-peers",level:3},{value:"TxSubmission Decision Logic",id:"txsubmission-decision-logic",level:3}],u={toc:p},c="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-overview-of-sprint-51"},"High-level overview of ",(0,r.kt)("a",{parentName:"h2",href:"https://github.com/orgs/intersectmbo/projects/5/views/1?filterQuery=sprint%3A%22sprint+51%22"},"sprint 51")),(0,r.kt)("h3",{id:"outbound-governor-bug-in-cardano-node-872"},"Outbound Governor Bug in ",(0,r.kt)("inlineCode",{parentName:"h3"},"cardano-node-8.7.2")),(0,r.kt)("p",null,"In the current sprint, we received a bunch of reports from SPOs about nodes not\nmaintaining some connection when using ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.7.2")," (running in P2P\nmode). Such regressions are very important to us since they can lead to lost\nblocks. We were able to reproduce this issue. Every time there's a longer\npause of block production (due to the statistical nature of Ouroboros), there\nis a chance that the bug will be armed. For this reason ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.7.2"),"\nneeds to be closely monitored."),(0,r.kt)("p",null,"We found the bug and developed a fix, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4748"},"ref"),". Karl\nKntusson (",(0,r.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") wasn't able to reproduce the bug with the patched version of\nthe node for long enough (almost two weeks now) for us to belive that the fix\nis correct. "),(0,r.kt)("h3",{id:"advise-for-spos"},"Advise for SPOs"),(0,r.kt)("p",null,"We created a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/tree/release/8.7"},"release branch for ",(0,r.kt)("inlineCode",{parentName:"a"},"8.7.3")),". The advice from\nthe ",(0,r.kt)("em",{parentName:"p"},"network team")," is to either downgrade to the previous release, e.g. ",(0,r.kt)("inlineCode",{parentName:"p"},"8.1.2"),"\nor use the above release branch (note that there were no benchmarks made or Q&A\ntests yet)."),(0,r.kt)("h3",{id:"testing-plans"},"Testing plans"),(0,r.kt)("p",null,"We were also able to reproduce the bug using ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSim"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4757"},"ouroboros-network#4757"),".\nHowever, the bug relies on a particular schedule of two threads which are\ninvolved and we needed to artificailly modify ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSim")," schedule in production\ncode - something that we don't want to commit to the ",(0,r.kt)("inlineCode",{parentName:"p"},"master")," branch. We also\nexperimented with a randomised scheduler for ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSim"),", but that did not lead to\nfinding the schedule which arms the bug: the search space grows exponentially\nwith the number of steps in the threads, partial order reduction techniques\nimplemented in ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSimPOR")," are more appropriate - unfortunatelly the simulation\ntest is too large to be executed in ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSimPOR")," even with large amounts of\n",(0,r.kt)("inlineCode",{parentName:"p"},"RAM"),". To use ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSimPOR")," we need to implement a test which includes the two\ninteracting components:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"connection-manager")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"outbound-governor")," (where the bug was located)")),(0,r.kt)("p",null,"which communicate through ",(0,r.kt)("inlineCode",{parentName:"p"},"PeerStateActions"),", without including all the\ndiffusion components as we do in our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Testnet.hs"},"sim-net")," tests. More in style of\n",(0,r.kt)("inlineCode",{parentName:"p"},"outbound-governor")," tests where there is just a single ",(0,r.kt)("inlineCode",{parentName:"p"},"outbound-governor"),",\nunlike in the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Testnet.hs"},"sim-net")," which runs multiple communicating diffusions."),(0,r.kt)("h3",{id:"bootstrap-peers"},"Bootstrap peers"),(0,r.kt)("p",null,"We continued working on bootstrap peers, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4555"},"ouroboros-network#4555")),(0,r.kt)("h3",{id:"txsubmission-decision-logic"},"TxSubmission Decision Logic"),(0,r.kt)("p",null,"We continued working on tx-submission decision logic, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3311"},"ouroboros-network#3311")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1c192ca4.d9184ffd.js b/assets/js/1c192ca4.d9184ffd.js new file mode 100644 index 0000000000..ddabb250ba --- /dev/null +++ b/assets/js/1c192ca4.d9184ffd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23146],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=n,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-11-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-11-15-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-15-mithril.md",source:"@site/blog/2023-11-15-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-11-15T00:00:00.000Z",formattedDate:"November 15, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.92,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-11-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-11-15-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-11-14-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team completed the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof-of-concept, achieving the implementation of P2P signatures broadcast with the relay in the end-to-end tests. Additionally, the team completed the proof-of-concept for the deterministic computation of the UTXO/transactions set from the immutable files."),(0,n.kt)("p",null,"Finally, they continued addressing some performance issue associated with the 'release-mainnet' aggregator, and fixed a bug with the tool used to process batch certificate hash re-computation."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Prototype a P2P relay with ",(0,n.kt)("inlineCode",{parentName:"strong"},"libp2p"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1300"},"#1300")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Release ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1311"},"#1311")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1283"},"#1283")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"release-mainnet")," aggregator is unreachable")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1310"},"#1310")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Fix certificate hashes re-computation in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1343"},"#1343")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Remove ",(0,n.kt)("inlineCode",{parentName:"strong"},"unstable")," tag in ",(0,n.kt)("inlineCode",{parentName:"strong"},"unstable")," release")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1235"},"#1235")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance aggregator REST API performances")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1327"},"#1327")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Signer runtime is stuck for some SPO")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1312"},"#1312"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1c273fb9.78e3d4c4.js b/assets/js/1c273fb9.78e3d4c4.js new file mode 100644 index 0000000000..d39bdff4e9 --- /dev/null +++ b/assets/js/1c273fb9.78e3d4c4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[38292],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-03-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-20-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-20-mithril.md",source:"@site/blog/2024-03-20-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-03-20T00:00:00.000Z",formattedDate:"March 20, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.23,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-03-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-03-20-consensus"},nextItem:{title:"Network Team Update",permalink:"/2024-03-18-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet"),", completed UI improvements for the explorer, provided metadata about the point of the chain used during the verification process, and investigated a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they began prototyping the implementation of a more versatile beaconing mechanism to sign transactions with low latency."),(0,i.kt)("p",null,"Finally, the team started implementing some community-requested features to verify the output folder structure made by the client, and fixed a source of flakiness in the CI end-to-end test."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Upgrade Cardano node to ",(0,i.kt)("inlineCode",{parentName:"strong"},"8.9.0"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1570"},"#1570")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Explorer improvements for Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1554"},"#1554")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Refactor the Cardano transactions parser with ",(0,i.kt)("inlineCode",{parentName:"strong"},"pallas-hardano"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1557"},"#1557")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Provide latest immutable file number with certified transactions in client")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1536"},"#1536")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement a Block Range Merkle Tree for ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1533"},"#1533")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Support multiple beacon types in signer/aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1562"},"#1562")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Do not require the mithril client to create the DB directory")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1572"},"#1572")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Some transactions are not signed in ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1577"},"#1577")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"End to end tests are flaky in CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1558"},"#1558")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1caacab6.50670748.js b/assets/js/1caacab6.50670748.js new file mode 100644 index 0000000000..a68869dbb7 --- /dev/null +++ b/assets/js/1caacab6.50670748.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[85442],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=s(a),h=n,m=u["".concat(p,".").concat(h)]||u[h]||d[h]||i;return a?r.createElement(m,o(o({ref:t},c),{},{components:a})):r.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-03-10-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-10-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-10-hydra.md",source:"@site/blog/2023-03-10-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-03-10T00:00:00.000Z",formattedDate:"March 10, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.825,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-03-10-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-03-16-goedel"},nextItem:{title:"Mithril Team Update",permalink:"/2023-03-09-mithril"}},p={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],c={toc:s},u="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team addressed issues with committing complex UTxOs into a\nHydra Head, prepared the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," to be run on mainnet (soon) and improved\nthe test suite of the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-plutus")," scripts. The specification is constantly\ngetting improved upon reviewer feedback on overleaf - this week the graphical\nnotation was refined to be more transaction-focused."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Clarified ","\u201c","bug","\u201d"," of committing UTxOs with reference scripts to a Hydra head ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/737"},"#737")),(0,n.kt)("li",{parentName:"ul"},"Prepare usage of ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")," on mainnet by updating command line options ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/715"},"#715")),(0,n.kt)("li",{parentName:"ul"},"Improved our mutation test suite to all expected errors ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/705"},"#705")),(0,n.kt)("li",{parentName:"ul"},"Re-opened our persistent hydraw demo head on ",(0,n.kt)("inlineCode",{parentName:"li"},"preprod")," using version ",(0,n.kt)("inlineCode",{parentName:"li"},"0.9.0")),(0,n.kt)("li",{parentName:"ul"},"Updated on-chain graphs to be more transaction-focused in the specification")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete mainnet compatibility feature"),(0,n.kt)("li",{parentName:"ul"},"Prepare the Hydra workshop"),(0,n.kt)("li",{parentName:"ul"},"Address all todo\u2019s in the Hydra specification"),(0,n.kt)("li",{parentName:"ul"},"Unblock the auctions project with ","\u201c","commit from script","\u201d"," a solution")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1cb5298b.22f7fd22.js b/assets/js/1cb5298b.22f7fd22.js new file mode 100644 index 0000000000..415df4d4e8 --- /dev/null +++ b/assets/js/1cb5298b.22f7fd22.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9009],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=p(r),d=a,g=c["".concat(s,".").concat(d)]||c[d]||m[d]||l;return r?n.createElement(g,i(i({ref:t},u),{},{components:r})):n.createElement(g,i({ref:t},u))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[c]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-05-22-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-05-22-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-22-ledger.md",source:"@site/blog/2024-05-22-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-05-22T00:00:00.000Z",formattedDate:"May 22, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.185,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-05-22-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-05-24-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2024-05-22-mithril"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Features and fixes",id:"features-and-fixes",level:3},{value:"Testing",id:"testing",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3}],u={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"Most of the focus was on the conformance testing this time around. We had completed\nconformance tests for ",(0,a.kt)("inlineCode",{parentName:"p"},"CERT")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"RATIFY")," rules and progressed on some of the others. This\nalso resulted in some improvements to the ",(0,a.kt)("inlineCode",{parentName:"p"},"constraint-generators")," framework. Besides that\nwe've also fixed Stake Pool Operator stake distribution calculation that is used for\nvoting by including proposal deposits that are currently locked in the system. One of the\nLedger team members was also performing duties of a release engineer, so we also\nfacilitated the latest ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node-8.11")," release."),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("h3",{id:"features-and-fixes"},"Features and fixes"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4324"},"pull-4324")," - Proposal deposits in SPO voting stake"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4316"},"pull-4316")," - Complete ",(0,a.kt)("inlineCode",{parentName:"li"},"EraScript")," hierarchy with missing classes"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4287"},"pull-4287")," - Fix various minor issues in the Shelley ","&"," Babbage specs")),(0,a.kt)("h3",{id:"testing"},"Testing"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4320"},"pull-4320")," - ",(0,a.kt)("inlineCode",{parentName:"li"},"CERT")," conformance"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4334"},"pull-4334")," - ",(0,a.kt)("inlineCode",{parentName:"li"},"RATIFY")," conformance"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4337"},"pull-4337")," - Fix ",(0,a.kt)("inlineCode",{parentName:"li"},"RATIFY")," conformance"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4325"},"pull-4325")," - ",(0,a.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": soundness tests and bugfixes"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4323"},"pull-4323")," - ",(0,a.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": clean up interface"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4336"},"pull-4336")," - ",(0,a.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Introduce ",(0,a.kt)("inlineCode",{parentName:"li"},"fromList_ :: (HasSpec fn a, Ord a) => Term fn [a] -> Term fn (Set a)"))),(0,a.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4333"},"pull-4333")," - Fix ",(0,a.kt)("inlineCode",{parentName:"li"},"babbage-test")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"conway-test")," versions"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4332"},"pull-4332")," - Update ",(0,a.kt)("inlineCode",{parentName:"li"},"CHANGELOG"),"s"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4343"},"pull-4343")," - Bump requests from 2.31.0 to 2.32.0 in /doc")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1cfb0a67.18f12216.js b/assets/js/1cfb0a67.18f12216.js new file mode 100644 index 0000000000..ed37cf855d --- /dev/null +++ b/assets/js/1cfb0a67.18f12216.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[30066],{23143:a=>{a.exports=JSON.parse('{"label":"incident","permalink":"/tags/incident","allTagsPath":"/tags","count":2}')}}]); \ No newline at end of file diff --git a/assets/js/1d10bd9e.148e968d.js b/assets/js/1d10bd9e.148e968d.js new file mode 100644 index 0000000000..a95260e28a --- /dev/null +++ b/assets/js/1d10bd9e.148e968d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5978],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(a),s=r,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,i(i({ref:t},c),{},{components:a})):n.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-03-08-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2023-03-08-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-08-node-cli-api.md",source:"@site/blog/2023-03-08-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-03-08T00:00:00.000Z",formattedDate:"March 8, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.795,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-03-08-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-03-08-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2023-03-08-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-03-08---2023-03-21"},"2023-03-08 - 2023-03-21"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"General bug fixes and some refactoring "),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4958"},"Remove error calls in Cardano.CLI.Shelley.Run.Transaction")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4880"},"Detect invalid counter and certificate")," ")),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5003"},"Add missing imports")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5001"},"Add LedgerStateBabbage and LedgerStateConway pattern synonyms")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4967"},"Remove unnecessary functions")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4953"},"Remove duplicate scripts when building transaction body for Mary, Alonzo and Babbage")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4903"},"Reduce number of calls to toLedgerPParams")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4763"},"Remove simple script distinction")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4686"},"Add ToJSON/FromJSON instances for ChainPoint")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4683"},"Derive Eq instance for AcquiringFailure")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4682"},"Export ",(0,r.kt)("inlineCode",{parentName:"a"},"fromShelleyBasedScript")," from Cardano.Api")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4344"},"Remove unnecessary validation of Data")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3775"},'Remove hint of "string" support for ScriptData')," ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4988"},"Conway hard forks on prot-ver 9")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4968"},"Reinstate -Werror for cardano-node and fix errors")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4921"},"Take all dependencies from Hackage or CHaP")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4911"},"Less verbose node-to-client and node-to-node version logging")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4902"},"Get AcceptedConnectionsLimit from the configuration")," ")),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4729"},"fix cardano-testnet Babbage genesis.json"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1da92289.1543cf46.js b/assets/js/1da92289.1543cf46.js new file mode 100644 index 0000000000..a6ba16a50e --- /dev/null +++ b/assets/js/1da92289.1543cf46.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[22954],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>g});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),c=u(n),p=a,g=c["".concat(s,".").concat(p)]||c[p]||d[p]||o;return n?r.createElement(g,i(i({ref:t},m),{},{components:n})):r.createElement(g,i({ref:t},m))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Embedding Quality Workstream",slug:"2022-11-03-embedding-quality",authors:"dorin100",tags:["embedding-quality"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-03-embedding-quality",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-03-embedding-quality.md",source:"@site/blog/2022-11-03-embedding-quality.md",title:"Embedding Quality Workstream",description:"High level summary",date:"2022-11-03T00:00:00.000Z",formattedDate:"November 3, 2022",tags:[{label:"embedding-quality",permalink:"/tags/embedding-quality"}],readingTime:.65,hasTruncateMarker:!1,authors:[{name:"Dorin Solomon",title:"System Test Team Lead",url:"https://github.com/dorin100",imageURL:"https://github.com/dorin100.png",key:"dorin100"}],frontMatter:{title:"Embedding Quality Workstream",slug:"2022-11-03-embedding-quality",authors:"dorin100",tags:["embedding-quality"],hide_table_of_contents:!1},prevItem:{title:"Open-Source Team",permalink:"/2022-10-31-open-source"},nextItem:{title:"Consensus Team Update",permalink:"/2022-10-02-consensus"}},s={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],m={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We made good progress on most of the Action Items we agreed on Lisbon, like:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Cardano System Tests was fully open to public (tools, tests, results)\nSee ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org"},"cardano-node-tests webpage")),(0,a.kt)("li",{parentName:"ul"},"We defined an ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/blob/master/.github/ISSUE_TEMPLATE/user-facing-feature.md"},"user-facing-functionality template")," that is used with the cardano-cli team",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"this includes acceptance criteria & user stories, and definition of done"))),(0,a.kt)("li",{parentName:"ul"},"We are in the process of running the cardano-node-tests at commit & PR level in cardano-node (we are affected by the Cicero migration right now but we did most of the work already)"),(0,a.kt)("li",{parentName:"ul"},"We started to apply a ",(0,a.kt)("em",{parentName:"li"},"labelling convention")," on ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/issues"},"cardano-node issues")," that will be used to generate some visual dashboards with some metrics ","[TBD]"),(0,a.kt)("li",{parentName:"ul"},"Ziyand Liu started an ",(0,a.kt)("em",{parentName:"li"},"End-to-End Development and Testing Process for Plutus Features"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1dd82bf1.6e39d4cc.js b/assets/js/1dd82bf1.6e39d4cc.js new file mode 100644 index 0000000000..2828862776 --- /dev/null +++ b/assets/js/1dd82bf1.6e39d4cc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[74475],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,h=p["".concat(i,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},c),{},{components:n})):r.createElement(h,s({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[p]="string"==typeof e?e:a,s[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-05-15-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,l={permalink:"/2024-05-15-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-15-consensus.md",source:"@site/blog/2024-05-15-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-05-15T00:00:00.000Z",formattedDate:"May 15, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.545,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-05-15-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-05-22-mithril"},nextItem:{title:"Mithril Team Update",permalink:"/2024-05-15-mithril"}},i={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Released Consensus for Node 8.11 (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1101"},"#1101"),")"),(0,a.kt)("li",{parentName:"ul"},"Improved the Praos chain order:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Restricted VRF tiebreaker based on slot distance (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1047"},"#1047"),")"),(0,a.kt)("li",{parentName:"ul"},"Small tweak to the issue number tiebreaker (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1086"},"#1086"),")"))),(0,a.kt)("li",{parentName:"ul"},"Wrote overview on the statistics on the leader schedule (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1096"},"#1096"),")"),(0,a.kt)("li",{parentName:"ul"},"Integrated robustness refinement for concluding that a node is caught up in the context of bootstrap peers (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1031"},"#1031"),")"),(0,a.kt)("li",{parentName:"ul"},"The P&T team managed to complete the UTXO-HD benchmarks using the LMDB backend and the ",(0,a.kt)("a",{parentName:"li",href:"https://updates.cardano.intersectmbo.org/2024-05-07-performance-and-tracing#utxo-hd--lmdb"},"results")," are promising."),(0,a.kt)("li",{parentName:"ul"},"We're working on setting up the Consensus Technical Working Group within Intersect, so if you'd like to participate please reach out to ",(0,a.kt)("a",{parentName:"li",href:"mailto:damian.nadales@iohk.io"},"Damian Nadales"),".")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1e4232ab.d24b0c09.js b/assets/js/1e4232ab.d24b0c09.js new file mode 100644 index 0000000000..ca1df6466d --- /dev/null +++ b/assets/js/1e4232ab.d24b0c09.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[88818],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),c=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(r),m=n,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||o;return r?a.createElement(f,i(i({ref:t},u),{},{components:r})):a.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const o={sidebar_position:2},i="Create a Document",l={unversionedId:"tutorial-basics/create-a-document",id:"tutorial-basics/create-a-document",title:"Create a Document",description:"Documents are groups of pages connected through:",source:"@site/docs/tutorial-basics/create-a-document.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/create-a-document",permalink:"/docs/tutorial-basics/create-a-document",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"defaultSidebar",previous:{title:"Create a Page",permalink:"/docs/tutorial-basics/create-a-page"},next:{title:"Create a Blog Post",permalink:"/docs/tutorial-basics/create-a-blog-post"}},s={},c=[{value:"Create your first Doc",id:"create-your-first-doc",level:2},{value:"Configure the Sidebar",id:"configure-the-sidebar",level:2}],u={toc:c},p="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"create-a-document"},"Create a Document"),(0,n.kt)("p",null,"Documents are ",(0,n.kt)("strong",{parentName:"p"},"groups of pages")," connected through:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"a ",(0,n.kt)("strong",{parentName:"li"},"sidebar")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"previous/next navigation")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"versioning"))),(0,n.kt)("h2",{id:"create-your-first-doc"},"Create your first Doc"),(0,n.kt)("p",null,"Create a Markdown file at ",(0,n.kt)("inlineCode",{parentName:"p"},"docs/hello.md"),":"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-md",metastring:'title="docs/hello.md"',title:'"docs/hello.md"'},"# Hello\n\nThis is my **first Docusaurus document**!\n")),(0,n.kt)("p",null,"A new document is now available at ",(0,n.kt)("a",{parentName:"p",href:"http://localhost:3000/docs/hello"},"http://localhost:3000/docs/hello"),"."),(0,n.kt)("h2",{id:"configure-the-sidebar"},"Configure the Sidebar"),(0,n.kt)("p",null,"Docusaurus automatically ",(0,n.kt)("strong",{parentName:"p"},"creates a sidebar")," from the ",(0,n.kt)("inlineCode",{parentName:"p"},"docs")," folder."),(0,n.kt)("p",null,"Add metadata to customize the sidebar label and position:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-md",metastring:'title="docs/hello.md" {1-4}',title:'"docs/hello.md"',"{1-4}":!0},"---\nsidebar_label: 'Hi!'\nsidebar_position: 3\n---\n\n# Hello\n\nThis is my **first Docusaurus document**!\n")),(0,n.kt)("p",null,"It is also possible to create your sidebar explicitly in ",(0,n.kt)("inlineCode",{parentName:"p"},"sidebars.js"),":"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-js",metastring:'title="sidebars.js"',title:'"sidebars.js"'},"module.exports = {\n tutorialSidebar: [\n 'intro',\n // highlight-next-line\n 'hello',\n {\n type: 'category',\n label: 'Tutorial',\n items: ['tutorial-basics/create-a-document'],\n },\n ],\n};\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1e57c0e2.e69b15e3.js b/assets/js/1e57c0e2.e69b15e3.js new file mode 100644 index 0000000000..18b1eee126 --- /dev/null +++ b/assets/js/1e57c0e2.e69b15e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64313],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=p(r),d=n,f=m["".concat(s,".").concat(d)]||m[d]||u[d]||o;return r?a.createElement(f,l(l({ref:t},c),{},{components:r})):a.createElement(f,l({ref:t},c))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[m]="string"==typeof e?e:n,l[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-08-18-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-08-18-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-goedel.md",source:"@site/blog/2023-08-18-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-08-18T00:00:00.000Z",formattedDate:"August 18, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.72,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-08-18-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-08-23-consensus"},nextItem:{title:"Hydra Team Update",permalink:"/2023-08-18-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],c={toc:p},m="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The team is currently formalising mini protocols and also further\ndeveloping the performance modelling prototype."),(0,n.kt)("h2",{id:"details"},"Details"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Development of an automated prover for showing conformance of\nprograms to state machines (as part of the mini-protocol framework)")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Completion of the documentation of the (current state of the)\nmini-protocol framework")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Discussion about two DeltaQ lectures with two practical sessions as part\nof 4th year masters course on distributed systemsby colleagues at UC\nLouvain in the Autumn")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Discussion about four DeltaQ lectures by colleagues at U. Bergen as part\nof a 5th year Masters course in the Autumn")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Adapted original DeltaQ implementation to the new typeclasses and\nwrote property tests for its algebraic laws"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1e9d3edd.cd937061.js b/assets/js/1e9d3edd.cd937061.js new file mode 100644 index 0000000000..e44e2f36bd --- /dev/null +++ b/assets/js/1e9d3edd.cd937061.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91660],{87202:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/14","page":14,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/13","nextPage":"/tags/hydra/page/15","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/1eaa900a.9c8fa138.js b/assets/js/1eaa900a.9c8fa138.js new file mode 100644 index 0000000000..0600e94b5c --- /dev/null +++ b/assets/js/1eaa900a.9c8fa138.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[68107],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),d=s(n),m=a,h=d["".concat(l,".").concat(m)]||d[m]||u[m]||i;return n?r.createElement(h,o(o({ref:t},c),{},{components:n})):r.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[d]="string"==typeof e?e:a,o[1]=p;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>p,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const i={title:"SRE Q2 2024 Update",slug:"2024-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},o=void 0,p={permalink:"/quarterly/2024-Q2-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2024-Q2-sre.md",source:"@site/quarterly/2024-Q2-sre.md",title:"SRE Q2 2024 Update",description:"2024-04 - 2024-06",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"sre",permalink:"/quarterly/tags/sre"}],readingTime:1.355,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q2 2024 Update",slug:"2024-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"SRE Q1 2024 Update",permalink:"/quarterly/2024-Q1-sre"},nextItem:{title:"Consensus Quarterly Update",permalink:"/quarterly/2023-04-25-consensus"}},l={authorsImageUrls:[void 0]},s=[{value:"2024-04 - 2024-06",id:"2024-04---2024-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],c={toc:s},d="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"2024-04---2024-06"},"2024-04 - 2024-06"),(0,a.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,a.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments,\nmain SRE achievements for this quarter include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"All cardano release environments, including preview, preprod, mainnet legacy\nand mainnet new clusters were upgraded through various cardano-node releases of\n",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.2"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.3"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.4"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.1"),", and finally into ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.2")," by the end of\nJune")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Cardano pre-release environments additionally iterated through pre-release\nupgrades of ",(0,a.kt)("inlineCode",{parentName:"p"},"8.11.0-pre"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0-pre"),", and finally into ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.2")," by the end\nof June with the exception of sanchonet which remains pinned at ",(0,a.kt)("inlineCode",{parentName:"p"},"8.11.0-pre"),"\nuntil the next respin to support node version ",(0,a.kt)("inlineCode",{parentName:"p"},"9.0.0")," or greater")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Sanchonet environment was re-spun two times for pre-release Conway testing of\ncardano-node versions ",(0,a.kt)("inlineCode",{parentName:"p"},"8.10.0-pre")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"8.11.0-pre")," respectively")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Private chain environment was re-spun three times to support fast epoch\nConway testing")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Cardano-playground and cardano-mainnet repos have added ten operations\noriented documents for knowledge transfer")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Block producers which participate in mithril signing will now produce metrics\nand can have them scraped with the default metrics agent")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"A cluster spin-up job to utilize the new cardano-cli ",(0,a.kt)("inlineCode",{parentName:"p"},"create-testnet-data"),"\nsub-command was created")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"A nixosModule, dashboards and alerts were added supporting the new cardano\ntracing system")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Many new operations scripts and features were added, including a template\ndiff and patch recipe to pull the latest cardano-parts improvements to\nconsuming repositories more easily"))),(0,a.kt)("h3",{id:"next-steps"},"Next steps"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Finalize support for the new cardano-node tracing system once the service is\nrewritten for general consumption")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Add IPv6 cardano-parts support")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Extend govtool frontend and backend to a process-compose stack once govtool\nis publicly buildable again")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Continue cardano-parts and operations improvements"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1eb5f871.57d724e4.js b/assets/js/1eb5f871.57d724e4.js new file mode 100644 index 0000000000..2889fcf1ad --- /dev/null +++ b/assets/js/1eb5f871.57d724e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50685],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},c),{},{components:n})):r.createElement(h,s({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-02-21-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-02-21-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-21-consensus.md",source:"@site/blog/2024-02-21-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-02-21T00:00:00.000Z",formattedDate:"February 21, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.31,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-02-21-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-02-23-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-02-21-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Triaged an ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/952"},"issue")," where blocks were unnecessarily downloaded, and coded a prototype for a partial solution."),(0,a.kt)("li",{parentName:"ul"},"Discovered an ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim"},"io-sim")," bug while developing the ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/808"},"Genesis state machine tests"),". The bug was already fixed upstream."),(0,a.kt)("li",{parentName:"ul"},"Added support for making the number of ledger state snapshots to be kept ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/943"},"configurable"),". This needs to be integrated in the node.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1edde1a1.824bef08.js b/assets/js/1edde1a1.824bef08.js new file mode 100644 index 0000000000..35ba6c6abc --- /dev/null +++ b/assets/js/1edde1a1.824bef08.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3721],{29814:e=>{e.exports=JSON.parse('{"permalink":"/tags/system-test","page":1,"postsPerPage":5,"totalPages":1,"totalCount":5,"blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/1f391b9e.4c243540.js b/assets/js/1f391b9e.4c243540.js new file mode 100644 index 0000000000..029ae36202 --- /dev/null +++ b/assets/js/1f391b9e.4c243540.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[13085],{14247:(e,n,t)=>{t.r(n),t.d(n,{default:()=>d});var a=t(67294),l=t(86010),r=t(1944),c=t(35281),i=t(93285),o=t(80210),s=t(39407);const m={mdxPageWrapper:"mdxPageWrapper_j9I6"};function d(e){const{content:n}=e,{metadata:{title:t,description:d,frontMatter:u}}=n,{wrapperClassName:f,hide_table_of_contents:v}=u;return a.createElement(r.FG,{className:(0,l.Z)(f??c.k.wrapper.mdxPages,c.k.page.mdxPage)},a.createElement(r.d,{title:t,description:d}),a.createElement(i.Z,null,a.createElement("main",{className:"container container--fluid margin-vert--lg"},a.createElement("div",{className:(0,l.Z)("row",m.mdxPageWrapper)},a.createElement("div",{className:(0,l.Z)("col",!v&&"col--8")},a.createElement("article",null,a.createElement(o.Z,null,a.createElement(n,null)))),!v&&n.toc.length>0&&a.createElement("div",{className:"col col--2"},a.createElement(s.Z,{toc:n.toc,minHeadingLevel:u.toc_min_heading_level,maxHeadingLevel:u.toc_max_heading_level}))))))}},39407:(e,n,t)=>{t.d(n,{Z:()=>m});var a=t(87462),l=t(67294),r=t(86010),c=t(93743);const i={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},o="table-of-contents__link toc-highlight",s="table-of-contents__link--active";function m(e){let{className:n,...t}=e;return l.createElement("div",{className:(0,r.Z)(i.tableOfContents,"thin-scrollbar",n)},l.createElement(c.Z,(0,a.Z)({},t,{linkClassName:o,linkActiveClassName:s})))}},93743:(e,n,t)=>{t.d(n,{Z:()=>v});var a=t(87462),l=t(67294),r=t(86668);function c(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const a=t.slice(2,e.level);e.parentIndex=Math.max(...a),t[e.level]=n}));const a=[];return n.forEach((e=>{const{parentIndex:t,...l}=e;t>=0?n[t].children.push(l):a.push(l)})),a}function i(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return n.flatMap((e=>{const n=i({toc:e.children,minHeadingLevel:t,maxHeadingLevel:a});return function(e){return e.level>=t&&e.level<=a}(e)?[{...e,children:n}]:n}))}function o(e){const n=e.getBoundingClientRect();return n.top===n.bottom?o(e.parentNode):n}function s(e,n){let{anchorTopOffset:t}=n;const a=e.find((e=>o(e).top>=t));if(a){return function(e){return e.top>0&&e.bottom{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,l.useRef)(void 0),t=m();(0,l.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:r,maxHeadingLevel:c}=e;function i(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),i=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const a=[];for(let l=n;l<=t;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:c}),o=s(i,{anchorTopOffset:t.current}),m=e.find((e=>o&&o.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(l),e.classList.add(l),n.current=e):e.classList.remove(l)}(e,e===m)}))}return document.addEventListener("scroll",i),document.addEventListener("resize",i),i(),()=>{document.removeEventListener("scroll",i),document.removeEventListener("resize",i)}}),[e,t])}function u(e){let{toc:n,className:t,linkClassName:a,isChild:r}=e;return n.length?l.createElement("ul",{className:r?void 0:t},n.map((e=>l.createElement("li",{key:e.id},l.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),l.createElement(u,{isChild:!0,toc:e.children,className:t,linkClassName:a}))))):null}const f=l.memo(u);function v(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:s,minHeadingLevel:m,maxHeadingLevel:u,...v}=e;const g=(0,r.L)(),h=m??g.tableOfContents.minHeadingLevel,L=u??g.tableOfContents.maxHeadingLevel,p=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return(0,l.useMemo)((()=>i({toc:c(n),minHeadingLevel:t,maxHeadingLevel:a})),[n,t,a])}({toc:n,minHeadingLevel:h,maxHeadingLevel:L});return d((0,l.useMemo)((()=>{if(o&&s)return{linkClassName:o,linkActiveClassName:s,minHeadingLevel:h,maxHeadingLevel:L}}),[o,s,h,L])),l.createElement(f,(0,a.Z)({toc:p,className:t,linkClassName:o},v))}}}]); \ No newline at end of file diff --git a/assets/js/1f9c0c9c.8cea1177.js b/assets/js/1f9c0c9c.8cea1177.js new file mode 100644 index 0000000000..4d4bdcc913 --- /dev/null +++ b/assets/js/1f9c0c9c.8cea1177.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28323],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=i,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-09-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-20-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-20-mithril.md",source:"@site/blog/2023-09-20-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-09-20T00:00:00.000Z",formattedDate:"September 20, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.935,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-09-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-09-20-consensus"},nextItem:{title:"Goedel Team Update",permalink:"/2023-09-15-goedel"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team has completed the refactoring of the terraform deployment workflows in GitHub actions, and the implementation of snapshot compression parameters in the deployments. They kept working on the refactoring and standardization of the errors in the Mithril nodes. The team also completed the implementation of Cloudflare protection for the aggregator infrastructure and started working on its deployment and activation in the Mithril networks. Additionally, they worked on recording download statistics on the aggregator which will be used to produce usage reports. "),(0,i.kt)("p",null,"Finally, they kept working on the aggregator performance bottleneck that occurs with high client traffic and started creating a new distribution."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add snapshot compression parameters in infrastructure deployments")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1200"},"#1200")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add Cloudflare protection of infrastructure")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/986"},"#986")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Record statistics about the downloaded snapshot in the aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1127"},"#1127")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Error refactoring")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/798"},"#798")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Activate Cloudflare protection of infrastructure")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1230"},"#1230")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Release new ",(0,i.kt)("inlineCode",{parentName:"strong"},"2337")," distribution")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1219"},"#1219")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Upgrade dependencies")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1238"},"#1238"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/20441287.88a8fb18.js b/assets/js/20441287.88a8fb18.js new file mode 100644 index 0000000000..fb8f1a5a8b --- /dev/null +++ b/assets/js/20441287.88a8fb18.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[879],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(r),h=o,d=c["".concat(l,".").concat(h)]||c[h]||m[h]||a;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2024-03-18-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2024-03-18-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-18-network.md",source:"@site/blog/2024-03-18-network.md",title:"Network Team Update",description:"High-level overview of sprint 57",date:"2024-03-18T00:00:00.000Z",formattedDate:"March 18, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.26,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-03-18-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-03-20-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-03-15-hydra"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 57",id:"high-level-overview-of-sprint-57",level:2},{value:"Low-level summary",id:"low-level-summary",level:2}],u={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(c,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-57"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+57%22"},"sprint 57")),(0,o.kt)("p",null,"We released ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/releases/tag/8.9.0"},(0,o.kt)("inlineCode",{parentName:"a"},"cardano-node-8.9.0"))," ","(","which includes\n",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-newtork-0.12.0.0"),"). This release contains the following network\nupgrades:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"bootstrap peers (aka ",(0,o.kt)("em",{parentName:"li"},"Light Genesis"),"): ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4555"},"ouroboros-network#4555"),",\n",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4799"},"ouroboros-network#4799"),", ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4810"},"ouroboros-network#4810"),"; "),(0,o.kt)("li",{parentName:"ul"},"churn changes: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4800"},"ouroboros-network#4800"),";"),(0,o.kt)("li",{parentName:"ul"},"peer sharing changes: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4778"},"ouroboros-network#4778"),", ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4788"},"ouroboros-network#4788"),", ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4793"},"ouroboros-network#4793"),";"),(0,o.kt)("li",{parentName:"ul"},"code refactoring & documentation fixes.")),(0,o.kt)("p",null,"Soon we will release ","[",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node-8.9.1"),"]"," ","(","which includes\n",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.12.0.0"),"). This release will contain:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Peer sharing improvements & fixes. Contributed and tested by Karl Knutsson ",(0,o.kt)("a",{parentName:"li",href:"https://cardanofoundation.org"},"CF"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"cardano-ping")," updates to support ",(0,o.kt)("inlineCode",{parentName:"li"},"NodeToNode_V13")," & peer sharing."),(0,o.kt)("li",{parentName:"ul"},"Some smaller maintenance changes.")),(0,o.kt)("p",null,"The list of network features included in ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.12.0.0")," and\n",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.13.0.0")," can be found ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/orgs/IntersectMBO/projects/5/views/18"},"here"),"."),(0,o.kt)("p",null,"We also continued working on ",(0,o.kt)("inlineCode",{parentName:"p"},"tx-submission"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network#3311"),". Mostly\nworking on the pure internal API for decision-making and testing it with\nproperty-based tests. The next step is to get all the information needed to run\nthe decision logic in an efficient way and later write a mini-protocol client\nwhich is using the new API and testing it."),(0,o.kt)("p",null,"We also started working on thing to finalise the Genesis support from the\nnetwork. We have a PR under review, ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4832"},"ouroboros-network#4832"),". We also started\nto investigate how to support big ledger peer snapshots. This requires changes\nin the topology file as well as ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," & ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," to\nunderstand the snapshots; and on the other hand creation of such snapshots by\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-cli"),"."),(0,o.kt)("h2",{id:"low-level-summary"},"Low-level summary"),(0,o.kt)("p",null,"This time everything was ",(0,o.kt)("em",{parentName:"p"},"high-level"),", \ud83d\ude09."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2073b851.819d19a2.js b/assets/js/2073b851.819d19a2.js new file mode 100644 index 0000000000..6c21c8b317 --- /dev/null +++ b/assets/js/2073b851.819d19a2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[47704],{3529:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>u,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=o(87462),i=(o(67294),o(3905)),a=o(22004);const r={title:"Network Team Update",slug:"2022-09-27-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},u=void 0,s={permalink:"/2022-09-27-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-27-network.md",source:"@site/blog/2022-09-27-network.md",title:"Network Team Update",description:"Network Update",date:"2022-09-27T00:00:00.000Z",formattedDate:"September 27, 2022",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.24,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-09-27-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-09-30-ledger"},nextItem:{title:"Consensus Team Update",permalink:"/2022-09-20-consensus"}},l={authorsImageUrls:[void 0]},p=[{value:"Network Update",id:"network-update",level:2},{value:"Ouroboros Network",id:"ouroboros-network",level:3},{value:"Ouroboros Consensus",id:"ouroboros-consensus",level:3},{value:"Some older items, which were not announced",id:"some-older-items-which-were-not-announced",level:4},{value:"Cardano Node",id:"cardano-node",level:3},{value:"IO-Sim",id:"io-sim",level:3},{value:"Typed Protocols",id:"typed-protocols",level:3},{value:"Input Endorsers Simulation",id:"input-endorsers-simulation",level:3}],k={toc:p},h="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(h,(0,n.Z)({},k,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"network-update"},"Network Update"),(0,i.kt)("h3",{id:"ouroboros-network"},"Ouroboros Network"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"We finished high and low level ",(0,i.kt)("em",{parentName:"li"},"peer sharing")," design. See\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/wiki/Peer-Sharing-Implementation-Plan"},"Peer Sharing Implementation Plan")),(0,i.kt)("li",{parentName:"ul"},"We started working on low-level design of ",(0,i.kt)("em",{parentName:"li"},"eclipse evasion")," (work in\nprogress)."),(0,i.kt)("li",{parentName:"ul"},"We decided to use ",(0,i.kt)("strong",{parentName:"li"},"peer sharing")," instead of overloaded and ambiguous ",(0,i.kt)("em",{parentName:"li"},"gossip")," term.\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3980"},"PR input-output-hk/ouroboros-network#3980")),(0,i.kt)("li",{parentName:"ul"},"We fixed technical dept\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3905"},"issue input-output-hk/cardano-node#3905")," in\nthe simulation testing of diffusion\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4004"},"PR input-output-hk/cardano-node#4004")),(0,i.kt)("li",{parentName:"ul"},"We deployed all our nodes using our new nix based deployment architecture.\nWhen deploying we found an issue in the\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/issues/3752"},(0,i.kt)("inlineCode",{parentName:"a"},"RTView")),".")),(0,i.kt)("h3",{id:"ouroboros-consensus"},"Ouroboros Consensus"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Recently we found out that the consensus does not log exceptions thrown during\nintiialisation. This was fixed in\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4015"},"PR input-output-hk/ouroboros-network#4015"),"\nAs part of this pull request we also changed that all exceptions rethrown by\nthe connection handler thread are wrapped in ",(0,i.kt)("inlineCode",{parentName:"li"},"ExceptionInHandler"),".")),(0,i.kt)("h4",{id:"some-older-items-which-were-not-announced"},"Some older items, which were not announced"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"We identified and fixed an issue related to socket activation (socket options\nwhere not set for sockets passed through socket activation).\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3979"},"PR input-output-hk/cardano-node#3979"),"\nThis fix will be released in the next ",(0,i.kt)("inlineCode",{parentName:"li"},"cardano-node")," release.")),(0,i.kt)("h3",{id:"cardano-node"},"Cardano Node"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"We extended the NixOs service module so that one can modify ",(0,i.kt)("inlineCode",{parentName:"li"},"socketPath"),",\n",(0,i.kt)("inlineCode",{parentName:"li"},"runtimeDir"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"databasePath"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"traceSocketPathAccept"),",\n",(0,i.kt)("inlineCode",{parentName:"li"},"traceSocketPathConnect")," and ",(0,i.kt)("inlineCode",{parentName:"li"},"stateDir")," options.\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4196"},"PR input-output-hk/cardano-node#4196"))),(0,i.kt)("h3",{id:"io-sim"},"IO-Sim"),(0,i.kt)("p",null,"We resolved a number of issues before release of ",(0,i.kt)("inlineCode",{parentName:"p"},"io-sim")," on hackage:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/2797"},"issue input-output-hk/ouroboros-network#2797")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/2650"},"issue input-output-hk/ouroboros-network#2650")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3436"},"issue input-output-hk/ouroboros-network#3436")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/2588"},"issue input-output-hk/ouroboros-network#2588")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/2587"},"issue input-output-hk/ouroboros-network#2587")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/2586"},"issue input-output-hk/ouroboros-network#2586"))),(0,i.kt)("p",null,"See ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/24"},"PR #24"),"."),(0,i.kt)("p",null,"We also improved experience for contributors of ",(0,i.kt)("inlineCode",{parentName:"p"},"io-sim")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"typed-protocols")," by adding issue templates:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/25"},"PR input-output-hk/io-sim#25"))),(0,i.kt)("h3",{id:"typed-protocols"},"Typed Protocols"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"We pushed a branch which identifies a GHC quirk:\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/typed-protocols/tree/coot/typed-protocols-rewrite-StateToken-problem"},"coot/typed-protocols-rewrite-StateToken-problem"),".\nThat's too be resolved in order to push forward review of the redesign in\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/typed-protocols/pull/3"},"PR input-output-hk/typed-protocols#3"),"."),(0,i.kt)("li",{parentName:"ul"},"As for ",(0,i.kt)("inlineCode",{parentName:"li"},"io-sim"),", we wrote issue templates:\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/typed-protocols/pull/11"},"PR input-output-hk/typed-protocols#11"))),(0,i.kt)("h3",{id:"input-endorsers-simulation"},"Input Endorsers Simulation"),(0,i.kt)("p",null,"New features include:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Histograms of block arrival frequency, for both network (inbound) and CPU\n(block validation). This is interesting to check that we're not overloading\nthe CPU block validation capacity, or network link capacity. Or alternatively\nto observe the behaviour in an overload situation if we set the block\ngeneration rate high enough.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'Pie chart of utilisation of TCP links. This shows how small a fraction of\nlinks are being used at any one time, and shows that once the system "warms\nup" and is operating stably, most block delivery is ballistic.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Showing off the new screen layout combinators, that let us put multiple\ncharts, titles etc on screen at once and scale them to whatever screen or\nvideo resolution we like without having to tweak numbers (this example is\nscaled to fit 1080HD video resolution)."))),(0,i.kt)(a.Z,{playing:!0,controls:!0,url:"/p2p-relay-5.mp4",mdxType:"ReactPlayer"}))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2075513f.20585582.js b/assets/js/2075513f.20585582.js new file mode 100644 index 0000000000..2ebd301a8f --- /dev/null +++ b/assets/js/2075513f.20585582.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70665],{94216:a=>{a.exports=JSON.parse('{"label":"ledger","permalink":"/tags/ledger","allTagsPath":"/tags","count":44}')}}]); \ No newline at end of file diff --git a/assets/js/20904fef.fdb02381.js b/assets/js/20904fef.fdb02381.js new file mode 100644 index 0000000000..56ec3fef7d --- /dev/null +++ b/assets/js/20904fef.fdb02381.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[12620],{73398:e=>{e.exports=JSON.parse('{"permalink":"/tags/ledger/page/6","page":6,"postsPerPage":5,"totalPages":9,"totalCount":44,"previousPage":"/tags/ledger/page/5","nextPage":"/tags/ledger/page/7","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/209bf559.06bcc5a6.js b/assets/js/209bf559.06bcc5a6.js new file mode 100644 index 0000000000..c9f282893a --- /dev/null +++ b/assets/js/209bf559.06bcc5a6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80367],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>m});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var l=n.createContext({}),p=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(o),h=r,m=c["".concat(l,".").concat(h)]||c[h]||d[h]||i;return o?n.createElement(m,a(a({ref:t},u),{},{components:o})):n.createElement(m,a({ref:t},u))}));function m(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,a[1]=s;for(var p=2;p{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var n=o(87462),r=(o(67294),o(3905));const i={title:"Network Team Update",slug:"2023-10-02-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},a=void 0,s={permalink:"/2023-10-02-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-02-network.md",source:"@site/blog/2023-10-02-network.md",title:"Network Team Update",description:"High-level overview of sprint 45",date:"2023-10-02T00:00:00.000Z",formattedDate:"October 2, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.485,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-10-02-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-10-04-mithril"},nextItem:{title:"Goedel Team Update",permalink:"/2023-09-29-goedel"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 45",id:"high-level-overview-of-sprint-45",level:2},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"Towards Typed Protocols 0.2.0.0",id:"towards-typed-protocols-0200",level:3},{value:"Tech Debt",id:"tech-debt",level:3},{value:"IO-Sim",id:"io-sim",level:3},{value:"IOSimPOR",id:"iosimpor",level:4},{value:"IOSim",id:"iosim",level:4},{value:"Cardano Newtork Service Assurance",id:"cardano-newtork-service-assurance",level:3},{value:"P2P adoption",id:"p2p-adoption",level:3},{value:"Open Source",id:"open-source",level:3}],u={toc:p},c="wrapper";function d(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,n.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-overview-of-sprint-45"},"High-level overview of ",(0,r.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+45%22"},"sprint 45")),(0,r.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,r.kt)("p",null,"We started reviewing the bootstrap peers PR, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4615"},"ouroboros-network#4615"),"."),(0,r.kt)("h3",{id:"towards-typed-protocols-0200"},"Towards Typed Protocols 0.2.0.0"),(0,r.kt)("p",null,"We discovered a performance regression when using ",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols-0.2.0.0"),", and we\nstarted investigating where it comes from. Currently, we see that\n",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols-0.2.0.0")," can outperform ",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols-0.1.0.0")," when running\nin isolation with a simple ",(0,r.kt)("inlineCode",{parentName:"p"},"ping-pong")," protocol, so the regression might be in\nthe new block fetch implementation which comes with ",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols-0.2.0.0"),"\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/3"},"typed-protocols#3"),"."),(0,r.kt)("h3",{id:"tech-debt"},"Tech Debt"),(0,r.kt)("p",null,"We merged two PRs written by Galois engineers:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"a pull request which refactors the main entry function for P2P, see ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3834"},"ouroboros-network#3834"),"; "),(0,r.kt)("li",{parentName:"ul"},"a pull request which reviews usage of ",(0,r.kt)("inlineCode",{parentName:"li"},"unsafe")," function in the network code based.")),(0,r.kt)("p",null,"Galois also made progress with the following two issues:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"add microbenchmarks to some of our tests: ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3832"},"ouroboros-network#3832")),(0,r.kt)("li",{parentName:"ul"},"inspect use of ",(0,r.kt)("inlineCode",{parentName:"li"},"error")," in ",(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-network")," repository:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3836"},"ouroboros-network#3836"))),(0,r.kt)("h3",{id:"io-sim"},"IO-Sim"),(0,r.kt)("h4",{id:"iosimpor"},"IOSimPOR"),(0,r.kt)("p",null,"We found and fixed a bug in ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSimPOR"),". We'd like to thank Prof. John Hughes\n(Quviq AB) for helping us with debugging the issue."),(0,r.kt)("p",null,"We also provided a more uniform API for ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSimPOR"),", and added ways to make the\ndebugging similar problems in the future easier."),(0,r.kt)("details",null,(0,r.kt)("summary",null,"Technical Details on IOSim refactoring"),"We removed the usage of `unsafePerformIO` from `IOSimPOR`, which also means removing parallel evaluation of discovered races. We found out that it gives only 25% better performance. In the future QuickCheck will offer running different cases in parallel which should provide better performance as there are no dependencies between the evaluation of different test cases, while schedules are discovered while running which limits the possible gains from running them concurrently. The performance was not the only factor though. When using parallelism in the lazy `ST` monad we'd need to rely on memory guarantees of `STRefs`. In `GHC-9.6` they share the implementation with `IORef`s, but it might not be the case in the future."),(0,r.kt)("h4",{id:"iosim"},"IOSim"),(0,r.kt)("p",null,"To prepare for the next release, we consolidate packages taking advantage of\nthe public sublibraries supported now both by ",(0,r.kt)("inlineCode",{parentName:"p"},"cabal")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"Hackage"),". This is\na work in progress, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/issues/114"},"io-sim#114"),"."),(0,r.kt)("h3",{id:"cardano-newtork-service-assurance"},"Cardano Newtork Service Assurance"),(0,r.kt)("p",null,"Galois made the following progress:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"A test run of spinning up a CNSA instance was done, as a result documentation\nwas updated."),(0,r.kt)("li",{parentName:"ul"},"Based on the IOG code review of the CNSA code, updates to the CNSA code were\nmade."),(0,r.kt)("li",{parentName:"ul"},'Galois has started the design for adding a CNSA analysis for "fetched bytes\nover time while node is syncing".')),(0,r.kt)("h3",{id:"p2p-adoption"},"P2P adoption"),(0,r.kt)("p",null,"In the last two weeks, we've seen increase in P2P adoption.\n",(0,r.kt)("img",{alt:"P2P relays",src:o(53101).Z,width:"2668",height:"1576"})),(0,r.kt)("p",null,"The following graphs show several different versions of relays running on the mainnet. The\ngreen line ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionV10.True")," denotes P2P relays.\n",(0,r.kt)("img",{alt:"node versions",src:o(40970).Z,width:"2674",height:"1580"})),(0,r.kt)("h3",{id:"open-source"},"Open Source"),(0,r.kt)("p",null,"We upstreamed our FFI bindings to Windows named pipes to ",(0,r.kt)("inlineCode",{parentName:"p"},"Win32")," package, the\nPR was accepted and merged."),(0,r.kt)("p",null,"We also received an external contribution which enhanced our documentation, see\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4676"},"ouroboros-network#4676"),"."))}d.isMDXComponent=!0},53101:(e,t,o)=>{o.d(t,{Z:()=>n});const n=o.p+"assets/images/2023-10-04-p2p-relays-75c2baf57ea9346a40f0098b2abb4a99.png"},40970:(e,t,o)=>{o.d(t,{Z:()=>n});const n=o.p+"assets/images/2023-10-04-relay-versions-5168d3ed0ad365a18e86263fcccffd23.png"}}]); \ No newline at end of file diff --git a/assets/js/20bc6fcd.8eb5e8a4.js b/assets/js/20bc6fcd.8eb5e8a4.js new file mode 100644 index 0000000000..5def4841b0 --- /dev/null +++ b/assets/js/20bc6fcd.8eb5e8a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4093],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),s=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=s(a),m=r,h=c["".concat(p,".").concat(m)]||c[m]||d[m]||i;return a?n.createElement(h,o(o({ref:t},u),{},{components:a})):n.createElement(h,o({ref:t},u))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=a(87462),r=(a(67294),a(3905));const i={title:"Developer Experience Update",slug:"2023-06-09-developer-experience",authors:"angerman",tags:["devx"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-06-09-developer-experience",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-09-developer-experience.md",source:"@site/blog/2023-06-09-developer-experience.md",title:"Developer Experience Update",description:"High level summary",date:"2023-06-09T00:00:00.000Z",formattedDate:"June 9, 2023",tags:[{label:"devx",permalink:"/tags/devx"}],readingTime:2.035,hasTruncateMarker:!1,authors:[{name:"Moritz Angermann",title:"Head of Developer Experience",url:"https://github.com/angerman",imageURL:"https://github.com/angerman.png",key:"angerman"}],frontMatter:{title:"Developer Experience Update",slug:"2023-06-09-developer-experience",authors:"angerman",tags:["devx"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-06-09-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-06-09-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"build support & maintainance",id:"build-support--maintainance",level:3},{value:"compiler upgrades",id:"compiler-upgrades",level:3},{value:"CHaP (cardano-haskell-packages)",id:"chap-cardano-haskell-packages",level:3},{value:"GitHub Actions",id:"github-actions",level:3},{value:"iohk-nix",id:"iohk-nix",level:3},{value:"haskell.nix",id:"haskellnix",level:3},{value:"devx",id:"devx",level:3},{value:"upstream tooling",id:"upstream-tooling",level:3}],u={toc:s},c="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The Developer Experience team has been devoted to day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, the maintaince of our cardano-haskell-packages (CHaP), and infrastructure like GitHub Actions, iohk-nix, haskell.nix, and devx. Furthermore, we have also contributed to upstream tooling improvements."),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"build-support--maintainance"},"build support & maintainance"),(0,r.kt)("p",null,"Our DevX team has been instrumental in troubleshooting and fixing a wide range of issues, from broken windows builds and obscure ",(0,r.kt)("inlineCode",{parentName:"p"},"LoadDLL")," errors to ",(0,r.kt)("inlineCode",{parentName:"p"},"blst")," integration across Nix and Github CI. We've also initiated automatic uploads for release assets. Our efforts in streamlining complex CI setups have paid off, with some repositories like ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base"},"cardano-base")," experiencing significant reductions in CI complexity."),(0,r.kt)("h3",{id:"compiler-upgrades"},"compiler upgrades"),(0,r.kt)("p",null,"After the support for 9.2 across our libraries, we have started working on 9.6 compabilitiy as well. This move brings us closer to the upstream compiler, facilitating the contribution of patches and enabling early detection of regressions. In addition, we're prioritizing compaining even stronger for better backwards compatibility."),(0,r.kt)("h3",{id:"chap-cardano-haskell-packages"},"CHaP (cardano-haskell-packages)"),(0,r.kt)("p",null,"We relocated the underlying tooling, (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/foliage"},"foliage"),"), for ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages"},"CHaP")," into the IOG organization. Furthermore, we have introduced ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages/pull/260"},"improved tooling to quickly add constraints to packages"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages/issues/285"},"better error reporting for add-revision")," and ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/foliage/pull/63"},"better hackage url compatibility")," to facilitate easer usage of CHaP."),(0,r.kt)("h3",{id:"github-actions"},"GitHub Actions"),(0,r.kt)("p",null,"Our repository, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/actions"},"input-output-hk/actions"),", now houses the necessary actions for installing pre-requisites to build Cardano projects using GitHub Actions. Leveraging the ",(0,r.kt)("inlineCode",{parentName:"p"},"base")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"haskell")," install actions has allowed us to simplify workflows in the repos, focusing primarily on invoking ",(0,r.kt)("inlineCode",{parentName:"p"},"cabal"),"."),(0,r.kt)("h3",{id:"iohk-nix"},"iohk-nix"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix"},"iohk-nix")," repository has undergone a major revamp and now provides pre-built packages of the cryptographic libraries IOG utilizes for GitHub Runners. The key components we use, ",(0,r.kt)("inlineCode",{parentName:"p"},"sodium"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"blst"),", and ",(0,r.kt)("inlineCode",{parentName:"p"},"secp256k1"),", are also fixed to certain revisions within the ",(0,r.kt)("inlineCode",{parentName:"p"},"iohk-nix")," repository."),(0,r.kt)("h3",{id:"haskellnix"},"haskell.nix"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/haskell.nix"},"Haskell.nix")," has been maintained and updated with the addition of GHC 9.6.2 and GHC 8.2.8. After discovering performance regression in the native bignum backend, we switched the default bignum backend to ",(0,r.kt)("inlineCode",{parentName:"p"},"gmp"),"."),(0,r.kt)("h3",{id:"devx"},"devx"),(0,r.kt)("p",null,"The relatively new ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/devx"},"devx")," repository is where we experiment with a single nix development shell that aims to suffice for most use-cases at IOG. This initiative is expected to eliminate a number of CI failures related to project-build and shell interaction problems. The ",(0,r.kt)("inlineCode",{parentName:"p"},"devx")," repository's readme has been updated to reflect its purpose and usage guidelines."),(0,r.kt)("h3",{id:"upstream-tooling"},"upstream tooling"),(0,r.kt)("p",null,"Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/20ca2c37.52642b28.js b/assets/js/20ca2c37.52642b28.js new file mode 100644 index 0000000000..2ddd2a8349 --- /dev/null +++ b/assets/js/20ca2c37.52642b28.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[38516],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=s(n),d=a,h=c["".concat(u,".").concat(d)]||c[d]||m[d]||i;return n?r.createElement(h,o(o({ref:t},p),{},{components:n})):r.createElement(h,o({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const i={title:"DB-sync Team Update",slug:"2023-07-04-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-07-04-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-04-db-sync.md",source:"@site/blog/2023-07-04-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-07-04T00:00:00.000Z",formattedDate:"July 4, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.73,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-07-04-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Developer Experience Update",permalink:"/2023-07-06-developer-experience"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-07-04-node-cli-api"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],p={toc:s},c="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We've made progress in all high level objectives"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"CIP-1694 integration design"),(0,a.kt)("li",{parentName:"ul"},"UTxO-HD integration proof of concept"),(0,a.kt)("li",{parentName:"ul"},"schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2 and tested"),(0,a.kt)("li",{parentName:"ul"},"Many devx issues resolved")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We have improved and validated the design for the Conway integration in db-sync"),(0,a.kt)("li",{parentName:"ul"},"Improved the initial integration of the UTxO-HD feauture branches which are under test"),(0,a.kt)("li",{parentName:"ul"},"Prepared a new release 13.1.1.3 which supports node 8.1.1\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1455"},"#1455"),"."),(0,a.kt)("li",{parentName:"ul"},"This also fixes a bug\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/issues/1451"},"#1451")),(0,a.kt)("li",{parentName:"ul"},"Added new tests to the new tx_out options\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1429"},"#1429")),(0,a.kt)("li",{parentName:"ul"},"Fixed a chronic issue in db-sync related to exception handling and concurrency\nThis fixes many other issues and simplifies the logic in db-sync\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1447"},"#1447")),(0,a.kt)("li",{parentName:"ul"},"A number of fixes and improvements in ci, docker, devx, docs\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1436"},"#1436"),(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1442"},"#1442"),(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1448"},"#1448"),(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1452"},"#1452"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/20db5fd1.1a03082d.js b/assets/js/20db5fd1.1a03082d.js new file mode 100644 index 0000000000..1a253900bf --- /dev/null +++ b/assets/js/20db5fd1.1a03082d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50887],{35711:e=>{e.exports=JSON.parse('{"permalink":"/tags/network/page/7","page":7,"postsPerPage":5,"totalPages":7,"totalCount":35,"previousPage":"/tags/network/page/6","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/214ea763.ebb04b3a.js b/assets/js/214ea763.ebb04b3a.js new file mode 100644 index 0000000000..1857abb218 --- /dev/null +++ b/assets/js/214ea763.ebb04b3a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54462],{60507:a=>{a.exports=JSON.parse('{"label":"sre","permalink":"/tags/sre","allTagsPath":"/tags","count":29}')}}]); \ No newline at end of file diff --git a/assets/js/2154b8e4.47d0f46b.js b/assets/js/2154b8e4.47d0f46b.js new file mode 100644 index 0000000000..00072b0693 --- /dev/null +++ b/assets/js/2154b8e4.47d0f46b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28480],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>h});var a=r(67294);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=a.createContext({}),i=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=i(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var r=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,d=u(e,["components","mdxType","originalType","parentName"]),m=i(r),s=l,h=m["".concat(p,".").concat(s)]||m[s]||c[s]||n;return r?a.createElement(h,o(o({ref:t},d),{},{components:r})):a.createElement(h,o({ref:t},d))}));function h(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=r.length,o=new Array(n);o[0]=s;var u={};for(var p in t)hasOwnProperty.call(t,p)&&(u[p]=t[p]);u.originalType=e,u[m]="string"==typeof e?e:l,o[1]=u;for(var i=2;i{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>c,frontMatter:()=>n,metadata:()=>u,toc:()=>i});var a=r(87462),l=(r(67294),r(3905));const n={title:"Ledger Team Update",slug:"2023-05-26-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,u={permalink:"/2023-05-26-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-26-ledger.md",source:"@site/blog/2023-05-26-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-05-26T00:00:00.000Z",formattedDate:"May 26, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.565,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-05-26-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-05-26-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-05-26-network"}},p={authorsImageUrls:[void 0]},i=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway progress",id:"conway-progress",level:3},{value:"Improve testing",id:"improve-testing",level:3},{value:"Integration work",id:"integration-work",level:3},{value:"Technical debt",id:"technical-debt",level:3}],d={toc:i},m="wrapper";function c(e){let{components:t,...r}=e;return(0,l.kt)(m,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"The ledger team made progress on the conway ledger era. In particular, the design and implementation\nof the new certificates is near complete, we refactored some of our data structures\nto be able to support DReps, we cleaned up the serialization format, and renamed things to make\nclearer the differences with Shelley."),(0,l.kt)("p",null,"The team also completed integration work for the next node release, namely 8.1.0.\nAnd, as always, we continue to address technical debt."),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway-progress"},"Conway progress"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3408"},"pull-3408")," - Improve conway delegation certificates"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3428"},"pull-3428")," - Get rid of Constitutional in favor of Genesis and Committee"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3426"},"pull-3426")," - Add DRep to internal data struture (UMap)"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3425"},"pull-3425")," - Improve witness logic needed for conway"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3423"},"pull-3423")," - Rename ShelleyDelegCerts constructors to distinguish them from Conway"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3421"},"pull-3421")," - Rename DCert -> TxCert"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3454"},"pull-3454")," - conway CDDL minor fixes")),(0,l.kt)("h3",{id:"improve-testing"},"Improve testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3403"},"pull-3403")," - Add Plutus script context golden tests")),(0,l.kt)("h3",{id:"integration-work"},"Integration work"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3410"},"pull-3410")," - Update chaps index"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3416"},"pull-3416")," - Bump cardano-ledger-alonzo-test version"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3414"},"pull-3414")," - Bump cardano-ledger-shelley-test minor version"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3420"},"pull-3420")," - Bump cardano-ledger-shelley-ma-test version"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3441"},"pull-3441")," - Release cardano-ledger-","[alonzo|babbage]","-1.2.1")),(0,l.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3409"},"pull-3409")," - Unit test - no such thing as a reference datum"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3407"},"pull-3407")," - Fixup release process documentation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3404"},"pull-3404")," - Create TotalDeposits events during all eras"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3402"},"pull-3402")," - Fix broken references in the Shelley spec"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3424"},"pull-3424")," - Remove no longer used cardano-ledger-shelley-ma package"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3432"},"pull-3432")," - Add an example on how to bump up versions in the changelog "),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3440"},"pull-3440")," - Revert back to the group serialization for ProtVer for PParams ")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/216f4a5f.69bd6e32.js b/assets/js/216f4a5f.69bd6e32.js new file mode 100644 index 0000000000..5b4af593f7 --- /dev/null +++ b/assets/js/216f4a5f.69bd6e32.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[69701],{92061:e=>{e.exports=JSON.parse('{"permalink":"/page/17","page":17,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/16","nextPage":"/page/18","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/21857c8f.f94bfa38.js b/assets/js/21857c8f.f94bfa38.js new file mode 100644 index 0000000000..377863c547 --- /dev/null +++ b/assets/js/21857c8f.f94bfa38.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[85417],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>y});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),m=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},p=function(e){var t=m(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=m(r),d=o,y=u["".concat(l,".").concat(d)]||u[d]||c[d]||a;return r?n.createElement(y,s(s({ref:t},p),{},{components:r})):n.createElement(y,s({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:o,s[1]=i;for(var m=2;m{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>m});var n=r(87462),o=(r(67294),r(3905));const a={title:"System Test Team Update",slug:"2022-12-01-system-test",authors:"dorin100",tags:["system-test"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2022-12-01-system-test",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-01-system-test.md",source:"@site/blog/2022-12-01-system-test.md",title:"System Test Team Update",description:"High level summary",date:"2022-12-01T00:00:00.000Z",formattedDate:"December 1, 2022",tags:[{label:"system-test",permalink:"/tags/system-test"}],readingTime:.765,hasTruncateMarker:!1,authors:[{name:"Dorin Solomon",title:"System Test Team Lead",url:"https://github.com/dorin100",imageURL:"https://github.com/dorin100.png",key:"dorin100"}],frontMatter:{title:"System Test Team Update",slug:"2022-12-01-system-test",authors:"dorin100",tags:["system-test"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2022-12-01-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2022-11-30-consensus"}},l={authorsImageUrls:[void 0]},m=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Framework improvements:",id:"framework-improvements",level:3},{value:"DB-Sync:",id:"db-sync",level:3}],p={toc:m},u="wrapper";function c(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"During the last 2 weeks we did more improvements on our Test Framework, planned the testing of the ",(0,o.kt)("em",{parentName:"p"},"P2P Single\nRelay")," functionality, and also tested some DB-Sync tags."),(0,o.kt)("h2",{id:"workstreams"},"Workstreams"),(0,o.kt)("h3",{id:"framework-improvements"},"Framework improvements:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"moved the System Test CLI Pipelines from BuildKite to Github Actions"),(0,o.kt)("li",{parentName:"ul"},"improved the reporting tools to support the rerun of the failled tests and update of the reports "),(0,o.kt)("li",{parentName:"ul"},"added support for Github API in ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/mkoura/report-aggregator"},"report-aggregator"),", so reports will be generated from the GitHub nightly jobs from now on"),(0,o.kt)("li",{parentName:"ul"},"added support for mixed topology - P2P, legacy, mixed topologies"),(0,o.kt)("li",{parentName:"ul"},"planned the P2P Single Relay system test activities "),(0,o.kt)("li",{parentName:"ul"},"added support to start regression tests with PV8 + better selection of tests")),(0,o.kt)("h3",{id:"db-sync"},"DB-Sync:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)"),(0,o.kt)("li",{parentName:"ul"},"tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/219856ee.005f1711.js b/assets/js/219856ee.005f1711.js new file mode 100644 index 0000000000..e00c0c982b --- /dev/null +++ b/assets/js/219856ee.005f1711.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2109],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(f,l(l({ref:t},m),{},{components:r})):n.createElement(f,l({ref:t},m))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-04-28-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-04-28-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-28-goedel.md",source:"@site/blog/2023-04-28-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-04-28T00:00:00.000Z",formattedDate:"April 28, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.375,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-04-28-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-04-28-crypto"},nextItem:{title:"Network Team Update",permalink:"/2023-04-28-network"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is working on porting an existing formalisation of Ouroboros\nPraos to a newer foundation."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The team worked on documentation.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The team worked on an application layer for the Praos formalisation.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The team is hiring a performance engineering intern - ",(0,a.kt)("a",{parentName:"p",href:"https://apply.workable.com/io-global/j/BFEC5B0AFF/"},"https://apply.workable.com/io-global/j/BFEC5B0AFF/")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/21f2a9aa.0cbfc32c.js b/assets/js/21f2a9aa.0cbfc32c.js new file mode 100644 index 0000000000..b48d42c871 --- /dev/null +++ b/assets/js/21f2a9aa.0cbfc32c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21806],{18031:a=>{a.exports=JSON.parse('{"label":"mithril","permalink":"/tags/mithril","allTagsPath":"/tags","count":63}')}}]); \ No newline at end of file diff --git a/assets/js/221981c6.026fc6eb.js b/assets/js/221981c6.026fc6eb.js new file mode 100644 index 0000000000..27e5cffd5d --- /dev/null +++ b/assets/js/221981c6.026fc6eb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[99715],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},h=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=c(a),p=n,m=u["".concat(s,".").concat(p)]||u[p]||d[p]||o;return a?r.createElement(m,i(i({ref:t},h),{},{components:a})):r.createElement(m,i({ref:t},h))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:n,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-01-12-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-01-12-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-12.md",source:"@site/blog/2024-01-12.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-01-12T00:00:00.000Z",formattedDate:"January 12, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.06,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-01-12-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-01-15-node-cli-api"},nextItem:{title:"Consensus Team Update",permalink:"/2024-01-10-consensus"}},s={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:c},u="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team improved Github actions workflows, addressed protocol\nparameter schema consistency in hydra-node, and made enhancements to log schema\ntests. They created an Architectural Decision Record (ADR) for Cardano\ntransactions serialization in APIs, moved the hydra-chess project to a dedicated\nrepository, and resolved a bug in quickcheck-dynamic and model tests."),(0,n.kt)("p",null,"There will be the monthly review meeting with demos on Hydra, Mithril and\nrelated projects. If this sounds interesting, join us in Google Meet\n",(0,n.kt)("a",{parentName:"p",href:"https://meet.google.com/udc-zgyw-agd"},"https://meet.google.com/udc-zgyw-agd")," next week, January 19 2024 at 17:30 UTC."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Github actions improvements and small fixes to the smoke tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1242"},"#","1242"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1233"},"#","1233")),(0,n.kt)("li",{parentName:"ul"},"Fixed protocol parameter schema consistency around ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1234"},"#","1234")),(0,n.kt)("li",{parentName:"ul"},"Log schema tests improvements and fixes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1244"},"#","1244")),(0,n.kt)("li",{parentName:"ul"},"Created ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1215/files?short_path=3a6c7dc#diff-3a6c7dcfd58c753d4e2639cbfeeff78b09bdd0709a01e6658884de790590c702"},"ADR")," about Cardano transactions serialisation in our APIs\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1215"},"#","1215")),(0,n.kt)("li",{parentName:"ul"},"Moved ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-chess")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1237"},"#","1237")," to a dedicated cardano-scaling organisation repository ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra-chess"},"https://github.com/cardano-scaling/hydra-chess")),(0,n.kt)("li",{parentName:"ul"},"Identified bug on ",(0,n.kt)("inlineCode",{parentName:"li"},"quickcheck-dynamic")," / our model tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1239"},"#","1239"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting (January 19, 17:30 UTC) including several demos (from team and contributors)"),(0,n.kt)("li",{parentName:"ul"},"Do release 0.15.0"),(0,n.kt)("li",{parentName:"ul"},"Improve ",(0,n.kt)("inlineCode",{parentName:"li"},"quickcheck-dynamic")," model to be more robust and cover more\nbehaviour."),(0,n.kt)("li",{parentName:"ul"},"Draft POC about backend for a ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-explorer")," that can track all\nheads on-chain.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/223e0224.e3a18dd4.js b/assets/js/223e0224.e3a18dd4.js new file mode 100644 index 0000000000..a3b6da6ecb --- /dev/null +++ b/assets/js/223e0224.e3a18dd4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[60538],{47109:a=>{a.exports=JSON.parse('{"label":"goedel","permalink":"/tags/goedel","allTagsPath":"/tags","count":23}')}}]); \ No newline at end of file diff --git a/assets/js/2276e554.1da781e5.js b/assets/js/2276e554.1da781e5.js new file mode 100644 index 0000000000..fdd685217c --- /dev/null +++ b/assets/js/2276e554.1da781e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28843],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>m});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),c=u(r),d=o,m=c["".concat(p,".").concat(d)]||c[d]||h[d]||a;return r?n.createElement(m,i(i({ref:t},l),{},{components:r})):n.createElement(m,i({ref:t},l))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var n=r(87462),o=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-08-04-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-08-04-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-network.md",source:"@site/blog/2023-08-04-network.md",title:"Network Team Update",description:"High-level overview of sprint 41",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.515,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-08-04-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-08-04-ledger"},nextItem:{title:"Performance & tracing update",permalink:"/2023-08-04-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level overview of sprint 41",id:"high-level-overview-of-sprint-41",level:2},{value:"Other contributions",id:"other-contributions",level:2}],l={toc:u},c="wrapper";function h(e){let{components:t,...r}=e;return(0,o.kt)(c,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-41"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+41%22"},"sprint 41")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"24th July - 6th August 2023")),(0,o.kt)("p",null,"We started the implementation of ",(0,o.kt)("strong",{parentName:"p"},"bootstrap peers"),". Bootstrap peers are designed\nto provide a safety guarantee for nodes joining the network while still taking\nadvantage of the distributed network for nodes that are synced. This will be\nan intermediate step before Genesis which will allow for further distribute the\nsystem. The bootstrap peers will be run by some trusted partners like CF,\nEmurgo or IOG. They are primarily designed for leaf nodes (e.g. full node\nwallets), which often end up syncing and require access to the honest chain. See\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4615"},"ouroboros-network#4615")," for a more detailed implementation plan."),(0,o.kt)("h2",{id:"other-contributions"},"Other contributions"),(0,o.kt)("p",null,"We started to use ",(0,o.kt)("inlineCode",{parentName:"p"},"nothunks")," library to discover if we have any unevaluated\nthunks which can lead to memory leaks ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4633"},"ouroboros-network#4633"),". We found\na small one in the peer metric component of the P2P networking stack. Fixing\nit put us on a small detour of fixing the API of the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/tree/master/strict-checked-vars"},(0,o.kt)("inlineCode",{parentName:"a"},"strict-checked-vars")),"\npackage: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pulls/431"},"cardano-base#431"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pulls/432"},"cardano-base#432"),", as well as adding ",(0,o.kt)("inlineCode",{parentName:"p"},"NFData"),"\ninstance to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/110"},(0,o.kt)("inlineCode",{parentName:"a"},"io-classes")),". We also improved ",(0,o.kt)("inlineCode",{parentName:"p"},"nothunks"),"\nlibrary to make debugging easier and we provided a ",(0,o.kt)("inlineCode",{parentName:"p"},"NoThunks")," instance for\n",(0,o.kt)("inlineCode",{parentName:"p"},"ThreadId")," which we will need in the future (see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/nothunks/pull/33"},"nothunks#33"),")."),(0,o.kt)("p",null,"We released a new version of ",(0,o.kt)("inlineCode",{parentName:"p"},"io-classes")," (version ",(0,o.kt)("inlineCode",{parentName:"p"},"1.2.0.0"),") and related\npackages to ",(0,o.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/io-classes-1.2.0.0io-classes-1.2.0.0"},"Hackage"),"."),(0,o.kt)("p",null,"We addressed all review comments on the eclipse evasion PR which introduces big\nledger peers, ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3886"},"ouroboros-network#3886"),"."),(0,o.kt)("p",null,"We fixed how ",(0,o.kt)("inlineCode",{parentName:"p"},"SIGHUP")," signal handlers are registered, so it's not possible to\nshutdown a node which was starting while trying to update network topology,\nsee ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5421"},"cardano-node#5421"),"."),(0,o.kt)("p",null,"I didn't mention that in the previous update, so here it goes: in the previous\nsprint we released ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/blob/f84fcddce472d6cfc2b838b20a2ad085fe0896ed/ouroboros-network/CHANGELOG.md"},(0,o.kt)("inlineCode",{parentName:"a"},"ouroboros-network-0.8.2.0"))," and\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/blob/ouroboros-network-framework-0.7.0.0/ouroboros-network-framework/CHANGELOG.md"},(0,o.kt)("inlineCode",{parentName:"a"},"ouroboros-network-framework-0.7.0.0")),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/228ebc11.70181a4c.js b/assets/js/228ebc11.70181a4c.js new file mode 100644 index 0000000000..a486f6e037 --- /dev/null +++ b/assets/js/228ebc11.70181a4c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20897],{36795:e=>{e.exports=JSON.parse('{"permalink":"/page/7","page":7,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/6","nextPage":"/page/8","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/22a8c4ec.8486103a.js b/assets/js/22a8c4ec.8486103a.js new file mode 100644 index 0000000000..c3607ddb50 --- /dev/null +++ b/assets/js/22a8c4ec.8486103a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[13056],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(f,l(l({ref:t},m),{},{components:r})):n.createElement(f,l({ref:t},m))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-11-10-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-11-10-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-10-goedel.md",source:"@site/blog/2023-11-10-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-11-10T00:00:00.000Z",formattedDate:"November 10, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.355,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-11-10-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-11-14-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2023-11-10-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and working on a\nperformance modelling paper"),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"completing work on chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"specifying correctness property of chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"creating diagrams for JLAMP paper")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"finalising structure of JLAMP paper"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/22e80361.f13f42a6.js b/assets/js/22e80361.f13f42a6.js new file mode 100644 index 0000000000..d34629bbc6 --- /dev/null +++ b/assets/js/22e80361.f13f42a6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20196],{28471:e=>{e.exports=JSON.parse('{"permalink":"/page/43","page":43,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/42","nextPage":"/page/44","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/234d19c9.9969ef1d.js b/assets/js/234d19c9.9969ef1d.js new file mode 100644 index 0000000000..34bc5d2dd4 --- /dev/null +++ b/assets/js/234d19c9.9969ef1d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[72993],{7994:e=>{e.exports=JSON.parse('{"permalink":"/tags/mithril/page/7","page":7,"postsPerPage":5,"totalPages":13,"totalCount":63,"previousPage":"/tags/mithril/page/6","nextPage":"/tags/mithril/page/8","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/237aa4d6.8fba8ee2.js b/assets/js/237aa4d6.8fba8ee2.js new file mode 100644 index 0000000000..2f61c9266a --- /dev/null +++ b/assets/js/237aa4d6.8fba8ee2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[98918],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(n),d=a,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return n?r.createElement(f,l(l({ref:t},m),{},{components:n})):r.createElement(f,l({ref:t},m))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Goedel Team Update",slug:"2023-07-20-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-07-20-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-20-goedel.md",source:"@site/blog/2023-07-20-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-07-20T00:00:00.000Z",formattedDate:"July 20, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.47,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-07-20-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-07-21-sre"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-07-18-node-cli-api"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is working on formalising mini protocols, the performance\nmodelling prototype and also finishing off their ICE papers."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Formalization of the chain synchronization mini-protocol in the\nthorn calculus")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Final pre-publication steps for ICE 2023 papers")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Developing approach for specification and verification of\nmini-protocols")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Started work on porting the DeltaQ framework to a new, more concrete\nbackend based on piecewise-polynomials"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/23c4c5bd.0184ae10.js b/assets/js/23c4c5bd.0184ae10.js new file mode 100644 index 0000000000..da517f0f6e --- /dev/null +++ b/assets/js/23c4c5bd.0184ae10.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70498],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,s(s({ref:t},c),{},{components:n})):r.createElement(f,s({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-04-17-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-04-17-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-17-consensus.md",source:"@site/blog/2024-04-17-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-04-17T00:00:00.000Z",formattedDate:"April 17, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.51,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-04-17-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-04-15-network"},nextItem:{title:"DB Sync Team Update",permalink:"/2024-04-17-db-sync"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/955"},"Implemented")," the new diffusion pipelining criterion."),(0,a.kt)("li",{parentName:"ul"},"Presented, reviewed and merged the March ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1015"},"milestone")," for Genesis."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5774"},"Integrated")," latest changes into Node version 8.10."),(0,a.kt)("li",{parentName:"ul"},"Regarding the UTXO-HD feature we:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed fixes in test-suites from ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-api"),", and ",(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus"),". All tests are passing in latest prototype."),(0,a.kt)("li",{parentName:"ul"},"Prepared UTXO-HD prototype for LMDB benchmarking."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5768"},"Fixed")," tracing in ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node"),"."),(0,a.kt)("li",{parentName:"ul"},"Started merging code from the UTXO-HD branch into ",(0,a.kt)("inlineCode",{parentName:"li"},"main")," (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1053"},"1053"),", ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1052"},"1052"),", and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1054"},"1054"),")."))),(0,a.kt)("li",{parentName:"ul"},"We're currently working on getting rid of ",(0,a.kt)("inlineCode",{parentName:"li"},"NoThunks")," errors in Consensus, so that we can enable these tests in CI, for extra assurance.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2455acc4.919dff7c.js b/assets/js/2455acc4.919dff7c.js new file mode 100644 index 0000000000..a77df36bcb --- /dev/null +++ b/assets/js/2455acc4.919dff7c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21642],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),u=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(p.Provider,{value:e},t.children)},m="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,p=t.parentName,c=o(t,["components","mdxType","originalType","parentName"]),m=u(a),h=r,s=m["".concat(p,".").concat(h)]||m[h]||d[h]||i;return a?n.createElement(s,l(l({ref:e},c),{},{components:a})):n.createElement(s,l({ref:e},c))}));function s(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=h;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[m]="string"==typeof t?t:r,l[1]=o;for(var u=2;u{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-08-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",o={permalink:"/2023-08-15-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-15-node-cli-api.md",source:"@site/blog/2023-08-15-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-08-15T00:00:00.000Z",formattedDate:"August 15, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.29,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-08-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"SECP bindings Security Issue Report",permalink:"/2023-08-17-secp-issue"},nextItem:{title:"Hydra Team Update",permalink:"/2023-08-11-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},m="wrapper";function d(t){let{components:e,...a}=t;return(0,r.kt)(m,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-08-02---2023-08-15"},"2023-08-02 - 2023-08-15"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"cardano-node 8.2.1 (pre-release) to SanchoNet"),(0,r.kt)("li",{parentName:"ul"},"Continue moving CLI into era-based top level command structure"),(0,r.kt)("li",{parentName:"ul"},"Wire-up DREP key generation,"),(0,r.kt)("li",{parentName:"ul"},"Fix DREP deregistration certificates"),(0,r.kt)("li",{parentName:"ul"},"Implement Constitutional Committee Key generation on the CLI"),(0,r.kt)("li",{parentName:"ul"},"Introducing era-based protocol parameters on the API"),(0,r.kt)("li",{parentName:"ul"},"Removing depracated functions and types on the API")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/169"},"Update to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.13.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/164"},"Reenable golden tests")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/163"},"#128 DRep key generation")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/160"},"Bump index states")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/159"},"Fix deregistration-certificate: generate deregistration instead of registration certs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/158"},"Structuring legacy code so that era-based code does not depend on it")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/151"},"Plural for command groups")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/144"},"Implement ",(0,r.kt)("inlineCode",{parentName:"a"},"conway governance committee key-hash")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/142"},"Wire up constitution creation in the new era based cli commands")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/140"},"cardano-cli 8.5.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/137"},"Wire up remaining DReps")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/136"},"Implement ",(0,r.kt)("inlineCode",{parentName:"a"},"conway governance committee hot-key-gen")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/127"},"Convert to use ",(0,r.kt)("inlineCode",{parentName:"a"},"tasty-discover")))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/189"},"Release cardano-api 8.13.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/187"},"Fix build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/185"},"cardano-api 8.13.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/181"},"Modify ",(0,r.kt)("inlineCode",{parentName:"a"},"queryGenesisParameters")," so that its type advertises it only returns genesis parameters for the Shelley era")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/180"},"Introduce EraBasedProtocolParametersUpdate")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/173"},"Delete deprecated functions and types")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/171"},"Simplify code with new constraints functions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/170"},"Fix ",(0,r.kt)("inlineCode",{parentName:"a"},"EraCast Certificate"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/168"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.12.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/167"},"Fix committee hot keys")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/164"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.11.1.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/163"},"Fix typo Constitional -> Constitutional"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5430"},"cardano-git-rev: New version for CHaP")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5427"},"Fix broken links in docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5423"},"cardano-node 8.2.1"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5427"},"Fix broken links in docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5423"},"cardano-node 8.2.1"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5427"},"Fix broken links in docs")),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/127"},"Convert to use ",(0,r.kt)("inlineCode",{parentName:"a"},"tasty-discover")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/245ecae9.75793936.js b/assets/js/245ecae9.75793936.js new file mode 100644 index 0000000000..78cc237104 --- /dev/null +++ b/assets/js/245ecae9.75793936.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65356],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),h=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=h(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=h(a),d=n,m=s["".concat(p,".").concat(d)]||s[d]||c[d]||o;return a?r.createElement(m,i(i({ref:t},u),{},{components:a})):r.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var h=2;h{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-09-15-hydra",authors:["v0d1ch","ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-09-15-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-hydra.md",source:"@site/blog/2023-09-15-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-09-15T00:00:00.000Z",formattedDate:"September 15, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.94,hasTruncateMarker:!1,authors:[{name:"Sasha Bogicevic",title:"Hydra Software Engineer",url:"https://github.com/v0d1ch",imageURL:"https://github.com/v0d1ch.png",key:"v0d1ch"},{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-09-15-hydra",authors:["v0d1ch","ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-09-15-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-09-15-ledger"}},p={authorsImageUrls:[void 0,void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:h},s="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, most of the Hydra team was attending a cardano scaling workshop in\nNantes, France. They used this oportunity to meet fellow mithril team and spend\nsome time together to hack on some code and, as always, reflect on the past work\nand find optimal path forward for both projects. They also fixed a bug that\ncaused hydra-node to crash when querying L1, worked on a new network resillience\nproof-of-concept and accepted a new ADR related to stateless transaction\nobservation."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano scaling workshop with members of hydra and mithril teams "),(0,n.kt)("li",{parentName:"ul"},"Accepted user contribution for possible new use-case ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1048"},"#1048")),(0,n.kt)("li",{parentName:"ul"},"Fix for the hydra-node crash related to internal wallet query ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1053"},"#1053")),(0,n.kt)("li",{parentName:"ul"},"Collected experimental CI findings ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1070"},"#1070")),(0,n.kt)("li",{parentName:"ul"},"Propose first POC for the network resilience ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1074"},"#1074"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting & report including updates from Mithril"),(0,n.kt)("li",{parentName:"ul"},"Review POC and discuss our options for the network resilience"),(0,n.kt)("li",{parentName:"ul"},"Update cardano-api to version 8.20"),(0,n.kt)("li",{parentName:"ul"},"Address TODOs on aiken commit validator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1072"},"#1072")),(0,n.kt)("li",{parentName:"ul"},"Complete hydra-support in kupo ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/CardanoSolutions/kupo/pull/117"},"kupo#117"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/246d9f04.5f192186.js b/assets/js/246d9f04.5f192186.js new file mode 100644 index 0000000000..bdb6d1b22d --- /dev/null +++ b/assets/js/246d9f04.5f192186.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7966],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=p(r),h=a,d=m["".concat(u,".").concat(h)]||m[h]||c[h]||i;return r?n.createElement(d,l(l({ref:t},s),{},{components:r})):n.createElement(d,l({ref:t},s))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,l=new Array(i);l[0]=h;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[m]="string"==typeof e?e:a,l[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-08-04-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-08-04-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-crypto.md",source:"@site/blog/2023-08-04-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:.495,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-08-04-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-08-09-consensus"},nextItem:{title:"Goedel Team Update",permalink:"/2023-08-04-goedel"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"MuSig2",id:"musig2",level:3},{value:"Sidechains",id:"sidechains",level:3}],s={toc:p},m="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation"),(0,a.kt)("li",{parentName:"ul"},"mithril: Full node verifier"),(0,a.kt)("li",{parentName:"ul"},"musig2: Finalised the missing fuzz tests"),(0,a.kt)("li",{parentName:"ul"},"kes_agent: engineer on PTO. Work halted ")),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("h3",{id:"mithril"},"Mithril"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Work on a mithril flaky test ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/1105"},"#1105")),(0,a.kt)("li",{parentName:"ul"},"Keep working on Full Node Verifier ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/939"},"#939"),".\nShould be merged in the coming week.")),(0,a.kt)("h3",{id:"musig2"},"MuSig2"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Finalised the fuzz tests ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/43"},"#43"))),(0,a.kt)("h3",{id:"sidechains"},"Sidechains"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Analysis of Halo2 verifier. Necessary for a future implementation of a plutus verifier.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/24788f0e.bdff0c19.js b/assets/js/24788f0e.bdff0c19.js new file mode 100644 index 0000000000..d8a29dd64f --- /dev/null +++ b/assets/js/24788f0e.bdff0c19.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[66278],{21980:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/15","page":15,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/14","nextPage":"/tags/hydra/page/16","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/24d5a6d9.ff4763a5.js b/assets/js/24d5a6d9.ff4763a5.js new file mode 100644 index 0000000000..d29ea6d340 --- /dev/null +++ b/assets/js/24d5a6d9.ff4763a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[98698],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||i;return r?a.createElement(d,o(o({ref:t},u),{},{components:r})):a.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const i={title:"Mithril Team Update",slug:"2023-09-27-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-27-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-27-mithril.md",source:"@site/blog/2023-09-27-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-09-27T00:00:00.000Z",formattedDate:"September 27, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.975,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-09-27-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-09-29-sre"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-09-26-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team has released a new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2337.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2337.0")),", which includes the following enhancements: support for ",(0,n.kt)("inlineCode",{parentName:"p"},"zstandard")," compression of snapshot archives, support for the Cardano node version in snapshot metadata, and support for recording snapshot download statistics in the aggregator."),(0,n.kt)("p",null,"They also completed the refactoring and standardization of the errors in the Mithril nodes and published an ",(0,n.kt)("a",{parentName:"p",href:"https://mithril.network/doc/adr/6"},"Architectural decision record")," on the documentation website. Additionally, they kept working on adding Cloudflare protection to the infrastructure."),(0,n.kt)("p",null,"Finally, the team fixed a performance issue on the stress test tool for the aggregator and made some improvements to the documentation for SPOs."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Release new ",(0,n.kt)("inlineCode",{parentName:"strong"},"2337")," distribution")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1219"},"#1219")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Errors refactoring")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/798"},"#798")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Client traffic creates performance bottleneck in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1207"},"#1207")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Record statistics about the downloaded snapshot in the aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1127"},"#1127")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a SPO checklist for KES keys update")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1267"},"#1267")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Spike: Run client in browser WASM PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1254"},"#1254")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Benchmark aggregator performances")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1220"},"#1220")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Activate Cloudflare protection of infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1230"},"#1230"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/24d9143c.51803899.js b/assets/js/24d9143c.51803899.js new file mode 100644 index 0000000000..50585b1ea9 --- /dev/null +++ b/assets/js/24d9143c.51803899.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8893],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),m=p(n),c=i,d=m["".concat(l,".").concat(c)]||m[c]||h[c]||a;return n?r.createElement(d,o(o({ref:t},u),{},{components:n})):r.createElement(d,o({ref:t},u))}));function d(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[m]="string"==typeof e?e:i,o[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=n(87462),i=(n(67294),n(3905));const a={title:"Mithril Team Update",slug:"2024-05-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,s={permalink:"/2024-05-15-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-15-mithril.md",source:"@site/blog/2024-05-15-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-05-15T00:00:00.000Z",formattedDate:"May 15, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.83,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-05-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-05-15-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-05-13-node-cli-api"}},l={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(m,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team released the new distribution ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2418.1"},(0,i.kt)("inlineCode",{parentName:"a"},"2418.1")),", which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes aimed at preventing memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet"),". Specifically, they completed the implementation of compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges and initiated testing and assessing performance on ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet")," in a test Mithril network. Additionally, they started working on minimizing the extra disk space requirements for the signer on the SPO infrastructure."),(0,i.kt)("p",null,"Finally, the team implemented some optimizations for the aggregator, fixed some bugs on the client, and introduced new documentation for compiling the Mithril relay from source."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2418.1"},(0,i.kt)("inlineCode",{parentName:"a"},"2418.1"))),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Use Block Range Merkle roots to sign Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1634"},"#1634")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Use Block Range Merkle roots to prove Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1635"},"#1635")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Deploy Cardano transactions to ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-mainnet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1647"},"#1647")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Consistent sorting of transactions from ",(0,i.kt)("inlineCode",{parentName:"strong"},"GetCardanoTransactionProvider")," in signer and aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1657"},"#1657")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Use SQLite transactions when inserting ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," and ",(0,i.kt)("inlineCode",{parentName:"strong"},"Block Range Roots"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1656"},"#1656")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement ",(0,i.kt)("inlineCode",{parentName:"strong"},"Ord")," on ",(0,i.kt)("inlineCode",{parentName:"strong"},"SignedEntityTypeDiscriminants"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1648"},"#1648")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Merkle roots don't have fixed size in the ",(0,i.kt)("inlineCode",{parentName:"strong"},"block_range_root")," table")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1668"},"#1668")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Refactor Cardano transactions database layer in persistence for signer and aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1677"},"#1677")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Some timing tests fail on ARM")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1466"},"#1466")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add Mithril networks configurations in ",(0,i.kt)("inlineCode",{parentName:"strong"},"networks.json"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1638"},"#1638")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add section for manual setup of squid in SPO guide")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1610"},"#1610")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Aggregator stress test crashes during signer registration")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1676"},"#1676")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Prune Cardano transactions stored on signer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1645"},"#1645")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," supports retrieving the Chain Point of the tip of the chain")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1589"},"#1589")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Retrieves Cardano blocks with ",(0,i.kt)("inlineCode",{parentName:"strong"},"chainsync")," in ",(0,i.kt)("inlineCode",{parentName:"strong"},"pallas")," PoC")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1590"},"#1590")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/24fb874a.c7b4a4ba.js b/assets/js/24fb874a.c7b4a4ba.js new file mode 100644 index 0000000000..d121725d69 --- /dev/null +++ b/assets/js/24fb874a.c7b4a4ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21159],{10043:e=>{e.exports=JSON.parse('{"permalink":"/page/46","page":46,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/45","nextPage":"/page/47","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/251f0563.18319f78.js b/assets/js/251f0563.18319f78.js new file mode 100644 index 0000000000..07ade2e405 --- /dev/null +++ b/assets/js/251f0563.18319f78.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32570],{52389:e=>{e.exports=JSON.parse('{"permalink":"/tags/mithril/page/12","page":12,"postsPerPage":5,"totalPages":13,"totalCount":63,"previousPage":"/tags/mithril/page/11","nextPage":"/tags/mithril/page/13","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/2529.3a3a1ec8.js b/assets/js/2529.3a3a1ec8.js new file mode 100644 index 0000000000..a1671d1f8c --- /dev/null +++ b/assets/js/2529.3a3a1ec8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2529],{39058:(e,t,a)=>{a.d(t,{Z:()=>h});var l=a(67294),n=a(86010),r=a(93285),s=a(87524),o=a(39960),i=a(95999);const c={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};function m(e){let{sidebar:t}=e;return l.createElement("aside",{className:"col col--3"},l.createElement("nav",{className:(0,n.Z)(c.sidebar,"thin-scrollbar"),"aria-label":(0,i.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},l.createElement("div",{className:(0,n.Z)(c.sidebarItemTitle,"margin-bottom--md")},t.title),l.createElement("ul",{className:(0,n.Z)(c.sidebarItemList,"clean-list")},t.items.map((e=>l.createElement("li",{key:e.permalink,className:c.sidebarItem},l.createElement(o.Z,{isNavLink:!0,to:e.permalink,className:c.sidebarItemLink,activeClassName:c.sidebarItemLinkActive},e.title)))))))}var u=a(13102);function d(e){let{sidebar:t}=e;return l.createElement("ul",{className:"menu__list"},t.items.map((e=>l.createElement("li",{key:e.permalink,className:"menu__list-item"},l.createElement(o.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active"},e.title)))))}function g(e){return l.createElement(u.Zo,{component:d,props:e})}function p(e){let{sidebar:t}=e;const a=(0,s.i)();return t?.items.length?"mobile"===a?l.createElement(g,{sidebar:t}):l.createElement(m,{sidebar:t}):null}function h(e){const{sidebar:t,toc:a,children:s,...o}=e,i=t&&t.items.length>0;return l.createElement(r.Z,o,l.createElement("div",{className:"container margin-vert--lg"},l.createElement("div",{className:"row"},l.createElement(p,{sidebar:t}),l.createElement("main",{className:(0,n.Z)("col",{"col--7":i,"col--9 col--offset-1":!i}),itemScope:!0,itemType:"http://schema.org/Blog"},s),a&&l.createElement("div",{className:"col col--2"},a))))}},30390:(e,t,a)=>{a.d(t,{Z:()=>R});var l=a(67294),n=a(86010),r=a(9460),s=a(44996);function o(e){let{children:t,className:a}=e;const{frontMatter:n,assets:o}=(0,r.C)(),{withBaseUrl:i}=(0,s.C)(),c=o.image??n.image;return l.createElement("article",{className:a,itemProp:"blogPost",itemScope:!0,itemType:"http://schema.org/BlogPosting"},c&&l.createElement("meta",{itemProp:"image",content:i(c,{absolute:!0})}),t)}var i=a(39960);const c={title:"title_f1Hy"};function m(e){let{className:t}=e;const{metadata:a,isBlogPostPage:s}=(0,r.C)(),{permalink:o,title:m}=a,u=s?"h1":"h2";return l.createElement(u,{className:(0,n.Z)(c.title,t),itemProp:"headline"},s?m:l.createElement(i.Z,{itemProp:"url",to:o},m))}var u=a(95999),d=a(88824);const g={container:"container_mt6G"};function p(e){let{readingTime:t}=e;const a=function(){const{selectMessage:e}=(0,d.c)();return t=>{const a=Math.ceil(t);return e(a,(0,u.I)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}();return l.createElement(l.Fragment,null,a(t))}function h(e){let{date:t,formattedDate:a}=e;return l.createElement("time",{dateTime:t,itemProp:"datePublished"},a)}function E(){return l.createElement(l.Fragment,null," \xb7 ")}function b(e){let{className:t}=e;const{metadata:a}=(0,r.C)(),{date:s,formattedDate:o,readingTime:i}=a;return l.createElement("div",{className:(0,n.Z)(g.container,"margin-vert--md",t)},l.createElement(h,{date:s,formattedDate:o}),void 0!==i&&l.createElement(l.Fragment,null,l.createElement(E,null),l.createElement(p,{readingTime:i})))}function f(e){return e.href?l.createElement(i.Z,e):l.createElement(l.Fragment,null,e.children)}function v(e){let{author:t,className:a}=e;const{name:r,title:s,url:o,imageURL:i,email:c}=t,m=o||c&&`mailto:${c}`||void 0;return l.createElement("div",{className:(0,n.Z)("avatar margin-bottom--sm",a)},i&&l.createElement(f,{href:m,className:"avatar__photo-link"},l.createElement("img",{className:"avatar__photo",src:i,alt:r})),r&&l.createElement("div",{className:"avatar__intro",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person"},l.createElement("div",{className:"avatar__name"},l.createElement(f,{href:m,itemProp:"url"},l.createElement("span",{itemProp:"name"},r))),s&&l.createElement("small",{className:"avatar__subtitle",itemProp:"description"},s)))}const _={authorCol:"authorCol_Hf19",imageOnlyAuthorRow:"imageOnlyAuthorRow_pa_O",imageOnlyAuthorCol:"imageOnlyAuthorCol_G86a"};function N(e){let{className:t}=e;const{metadata:{authors:a},assets:s}=(0,r.C)();if(0===a.length)return null;const o=a.every((e=>{let{name:t}=e;return!t}));return l.createElement("div",{className:(0,n.Z)("margin-top--md margin-bottom--sm",o?_.imageOnlyAuthorRow:"row",t)},a.map(((e,t)=>l.createElement("div",{className:(0,n.Z)(!o&&"col col--6",o?_.imageOnlyAuthorCol:_.authorCol),key:t},l.createElement(v,{author:{...e,imageURL:s.authorsImageUrls[t]??e.imageURL}})))))}function P(){return l.createElement("header",null,l.createElement(m,null),l.createElement(b,null),l.createElement(N,null))}var Z=a(18780),k=a(80210);function C(e){let{children:t,className:a}=e;const{isBlogPostPage:s}=(0,r.C)();return l.createElement("div",{id:s?Z.blogPostContainerID:void 0,className:(0,n.Z)("markdown",a),itemProp:"articleBody"},l.createElement(k.Z,null,t))}var I=a(84881),T=a(71526),w=a(87462);function y(){return l.createElement("b",null,l.createElement(u.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More"))}function F(e){const{blogPostTitle:t,...a}=e;return l.createElement(i.Z,(0,w.Z)({"aria-label":(0,u.I)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t})},a),l.createElement(y,null))}const L={blogPostFooterDetailsFull:"blogPostFooterDetailsFull_mRVl"};function B(){const{metadata:e,isBlogPostPage:t}=(0,r.C)(),{tags:a,title:s,editUrl:o,hasTruncateMarker:i}=e,c=!t&&i,m=a.length>0;return m||c||o?l.createElement("footer",{className:(0,n.Z)("row docusaurus-mt-lg",t&&L.blogPostFooterDetailsFull)},m&&l.createElement("div",{className:(0,n.Z)("col",{"col--9":c})},l.createElement(T.Z,{tags:a})),t&&o&&l.createElement("div",{className:"col margin-top--sm"},l.createElement(I.Z,{editUrl:o})),c&&l.createElement("div",{className:(0,n.Z)("col text--right",{"col--3":m})},l.createElement(F,{blogPostTitle:s,to:e.permalink}))):null}function R(e){let{children:t,className:a}=e;const s=function(){const{isBlogPostPage:e}=(0,r.C)();return e?void 0:"margin-bottom--xl"}();return l.createElement(o,{className:(0,n.Z)(s,a)},l.createElement(P,null),l.createElement(C,null,t),l.createElement(B,null))}},84881:(e,t,a)=>{a.d(t,{Z:()=>m});var l=a(67294),n=a(95999),r=a(35281),s=a(87462),o=a(86010);const i={iconEdit:"iconEdit_Z9Sw"};function c(e){let{className:t,...a}=e;return l.createElement("svg",(0,s.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.Z)(i.iconEdit,t),"aria-hidden":"true"},a),l.createElement("g",null,l.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function m(e){let{editUrl:t}=e;return l.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:r.k.common.editThisPage},l.createElement(c,null),l.createElement(n.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},32244:(e,t,a)=>{a.d(t,{Z:()=>s});var l=a(67294),n=a(86010),r=a(39960);function s(e){const{permalink:t,title:a,subLabel:s,isNext:o}=e;return l.createElement(r.Z,{className:(0,n.Z)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},s&&l.createElement("div",{className:"pagination-nav__sublabel"},s),l.createElement("div",{className:"pagination-nav__label"},a))}},13008:(e,t,a)=>{a.d(t,{Z:()=>o});var l=a(67294),n=a(86010),r=a(39960);const s={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function o(e){let{permalink:t,label:a,count:o}=e;return l.createElement(r.Z,{href:t,className:(0,n.Z)(s.tag,o?s.tagWithCount:s.tagRegular)},a,o&&l.createElement("span",null,o))}},71526:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(67294),n=a(86010),r=a(95999),s=a(13008);const o={tags:"tags_jXut",tag:"tag_QGVx"};function i(e){let{tags:t}=e;return l.createElement(l.Fragment,null,l.createElement("b",null,l.createElement(r.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),l.createElement("ul",{className:(0,n.Z)(o.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:a}=e;return l.createElement("li",{key:a,className:o.tag},l.createElement(s.Z,{label:t,permalink:a}))}))))}},9460:(e,t,a)=>{a.d(t,{C:()=>o,n:()=>s});var l=a(67294),n=a(902);const r=l.createContext(null);function s(e){let{children:t,content:a,isBlogPostPage:n=!1}=e;const s=function(e){let{content:t,isBlogPostPage:a}=e;return(0,l.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:a})),[t,a])}({content:a,isBlogPostPage:n});return l.createElement(r.Provider,{value:s},t)}function o(){const e=(0,l.useContext)(r);if(null===e)throw new n.i6("BlogPostProvider");return e}},88824:(e,t,a)=>{a.d(t,{c:()=>c});var l=a(67294),n=a(52263);const r=["zero","one","two","few","many","other"];function s(e){return r.filter((t=>e.includes(t)))}const o={locale:"en",pluralForms:s(["one","other"]),select:e=>1===e?"one":"other"};function i(){const{i18n:{currentLocale:e}}=(0,n.Z)();return(0,l.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:s(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),o}}),[e])}function c(){const e=i();return{selectMessage:(t,a)=>function(e,t,a){const l=e.split("|");if(1===l.length)return l[0];l.length>a.pluralForms.length&&console.error(`For locale=${a.locale}, a maximum of ${a.pluralForms.length} plural forms are expected (${a.pluralForms.join(",")}), but the message contains ${l.length}: ${e}`);const n=a.select(t),r=a.pluralForms.indexOf(n);return l[Math.min(r,l.length-1)]}(a,t,e)}}}}]); \ No newline at end of file diff --git a/assets/js/25456c82.61ea318e.js b/assets/js/25456c82.61ea318e.js new file mode 100644 index 0000000000..9dc66a6369 --- /dev/null +++ b/assets/js/25456c82.61ea318e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70937],{80574:e=>{e.exports=JSON.parse('{"permalink":"/tags/ledger/page/8","page":8,"postsPerPage":5,"totalPages":9,"totalCount":44,"previousPage":"/tags/ledger/page/7","nextPage":"/tags/ledger/page/9","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/26678b7e.6b8ec098.js b/assets/js/26678b7e.6b8ec098.js new file mode 100644 index 0000000000..cd31f4d075 --- /dev/null +++ b/assets/js/26678b7e.6b8ec098.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[47724],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var d=r.createContext({}),s=function(e){var t=r.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(d.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,d=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(a),c=n,m=u["".concat(d,".").concat(c)]||u[c]||h[c]||i;return a?r.createElement(m,o(o({ref:t},p),{},{components:a})):r.createElement(m,o({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2022-12-02-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-12-02-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-02-hydra.md",source:"@site/blog/2022-12-02-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2022-12-02T00:00:00.000Z",formattedDate:"December 2, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.965,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-12-02-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-12-09-ledger"},nextItem:{title:"DB sync Team Update",permalink:"/2022-12-01-db-sync"}},d={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:s},u="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team has worked on cleaning up several things in progress\nafter last week's summit. They have extended their model-based testing (MBT)\napproach with transaction creation & observation\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/410"},"#410"),", solved\n",(0,n.kt)("inlineCode",{parentName:"p"},"AcquirePointTooOld")," problems of the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," with by changing the wallet\ninitialization ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/439"},"#439"),".\nAlso, the Hydra researchers updated the security proofs of the Coordinated Hydra\nHead, which are bound to be included in the Hydra HeadV1 specification."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review & report - will also be published on our website ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/644"},"#644")),(0,n.kt)("li",{parentName:"ul"},"Extended the model-based testing (MBT) with transaction creation/observation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/410"},"#410")),(0,n.kt)("li",{parentName:"ul"},"Solve ",(0,n.kt)("inlineCode",{parentName:"li"},"AcquirePointTooOld")," problems with new wallet initialization ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/439"},"#439")),(0,n.kt)("li",{parentName:"ul"},"Fixed our hydraw deployments (EC2 instances)"),(0,n.kt)("li",{parentName:"ul"},"Created & discussed ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md"},"ADR21")," within tx validity work"),(0,n.kt)("li",{parentName:"ul"},"Received & discussed security proofs of Coordinated Hydra Head (requires more work)")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Get ADR21 accepted & close tx validity gap in our implementation"),(0,n.kt)("li",{parentName:"ul"},"Complete review & integrate the Hydra tutorial"),(0,n.kt)("li",{parentName:"ul"},"Review latest hydra-pay work"),(0,n.kt)("li",{parentName:"ul"},"Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec"),(0,n.kt)("li",{parentName:"ul"},"Get Cicero (new CI) working")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2691c4f4.5de11a3e.js b/assets/js/2691c4f4.5de11a3e.js new file mode 100644 index 0000000000..bccf429a3f --- /dev/null +++ b/assets/js/2691c4f4.5de11a3e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93362],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,h=p["".concat(i,".").concat(d)]||p[d]||m[d]||s;return n?r.createElement(h,o(o({ref:t},c),{},{components:n})):r.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>m,frontMatter:()=>s,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const s={title:"Consensus Team Update",slug:"2024-03-06-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-06-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-06-consensus.md",source:"@site/blog/2024-03-06-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-03-06T00:00:00.000Z",formattedDate:"March 6, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.675,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-03-06-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-03-08-performance-and-tracing"},nextItem:{title:"Mithril Team Update",permalink:"/2024-03-06-mithril"}},i={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Completed the rebase of the production libraries for UTXO-HD on 8.9, both in ",(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-api")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node"),"."),(0,a.kt)("li",{parentName:"ul"},"Measured sync and replay times and memory in UTXO-HD. The latest result are reported ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/issues/5495"},"here"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/985"},"Bugfixed")," the snapshot interval."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/983"},"Added")," an extra case to ",(0,a.kt)("inlineCode",{parentName:"li"},"isIncorrectClaimedFlag")," for ",(0,a.kt)("inlineCode",{parentName:"li"},"Babbage")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"Conway")," eras."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/970"},"Added")," a ",(0,a.kt)("inlineCode",{parentName:"li"},"db-analyser")," analysis to get the UTXO size per slot. The result of the analysis is illustrated ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/970#issuecomment-1981052455"},"here"),"."),(0,a.kt)("li",{parentName:"ul"},"Started integration work for Node release 8.10."),(0,a.kt)("li",{parentName:"ul"},"Reviewed the Genesis pull-requests submitted by Tweag. They are pending a final round of review."),(0,a.kt)("li",{parentName:"ul"},"Helped the current release engineer prepare the 8.9 release candidate."),(0,a.kt)("li",{parentName:"ul"},"The Consensus Team has also been helping troubleshoot known issues with 8.9 (eg snapshots causing missed leadership schedules, unexpected snapshot interval, integration tests, etc).")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/26a4b8b3.45c88475.js b/assets/js/26a4b8b3.45c88475.js new file mode 100644 index 0000000000..ac785123ef --- /dev/null +++ b/assets/js/26a4b8b3.45c88475.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[47669],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>g});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},m=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},p=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),u=c(t),p=a,g=u["".concat(s,".").concat(p)]||u[p]||d[p]||i;return t?r.createElement(g,o(o({ref:n},m),{},{components:t})):r.createElement(g,o({ref:n},m))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=p;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=t(87462),a=(t(67294),t(3905));const i={title:"Performance & Tracing Update",slug:"2023-12-04-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-12-04-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-04-performance-and-tracing.md",source:"@site/blog/2023-12-04-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2023-12-04T00:00:00.000Z",formattedDate:"December 4, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.085,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2023-12-04-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-12-06-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-12-01-hydra"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:c},u="wrapper";function d(e){let{components:n,...t}=e;return(0,a.kt)(u,(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Release benchmarking for node ",(0,a.kt)("inlineCode",{parentName:"li"},"8.7.0"),". Also, we performed the first-ever Conway benchmarks."),(0,a.kt)("li",{parentName:"ul"},"Development: Conway capability of our workload generator has been implemented and merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master"),"."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: Changes to our workbench facilitating easy access and archiving of raw benchmarking data."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Quality-of-life improvements to tracing output and addition of a test suite."),(0,a.kt)("li",{parentName:"ul"},"Nomad cluster: Expand the list of benchmarking profiles that can be run on Nomad; generalize cluster topology generation.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"A full set of benchmarks for node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.0")," has been performed, with the focus of enabling the next mainnet release. We've measured slight performance improvements of ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.0")," over ",(0,a.kt)("inlineCode",{parentName:"p"},"8.6.0"),", and can confirm no regressions have been introduced."),(0,a.kt)("p",null,"Furthermore, we've run system integration level benchmarks in the Conway era for the first time, on the same node version.\nOnly Babbage-compatible workloads have entered comparison as to ascertain performance consequences of only changing the ledger version, and nothing else. The results are very promising, as we could show that switching ledger versions for existing workloads does not come with a performance penalty."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Our transaction generator has been extended to be able to submit all present benchmarking workflows in the Conway era.\nCurrently, we're looking into adding Conway-exclusive features, such as ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep")," registration. Those would be submitted at the very beginning of a run, as we're interested in seeing potential performance implications of maintaining ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep")," sets of varying size in ledger. Furthermore, this will serve as the basis for future development Conway-exclusive workloads, such as governance actions or vote tallying."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"As our workbench will be pivotal in orchestrating and organizing benchmarking runs on the Nomad cloud backend, we've\nimproved how raw benchmark data is tagged, which metadata is documented in an automated manner. This enhances both access to existing run sets, as well as maintaining an archive for benchmarking data."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The new tracing system is currently receiving usability improvements as we're reworking the output of several trace messages.\nAdditionally, we're setting up a rigorous test suite to provide safety for future development of and component integration inte the system."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"We've been working on adapting various benchmarking workloads, which are defined by our workbench's profiles, to running on the new infrastructure. This mainly concerns a workload utilizing Plutus, as well as peer-to-peer flavoured workloads. Furthermore, we're implementing a solution to create all possible cluster topologies algorithmically, instead of still using fixed literal definitions for some cases."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/27164297.e43dedf1.js b/assets/js/27164297.e43dedf1.js new file mode 100644 index 0000000000..b3eda7fb71 --- /dev/null +++ b/assets/js/27164297.e43dedf1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[69110],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),m=p(n),c=i,d=m["".concat(l,".").concat(c)]||m[c]||h[c]||a;return n?r.createElement(d,o(o({ref:t},u),{},{components:n})):r.createElement(d,o({ref:t},u))}));function d(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[m]="string"==typeof e?e:i,o[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=n(87462),i=(n(67294),n(3905));const a={title:"Mithril Team Update",slug:"2024-05-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,s={permalink:"/2024-05-15-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-15-mithril.md",source:"@site/blog/2024-05-15-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-05-15T00:00:00.000Z",formattedDate:"May 15, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.83,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-05-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-05-15-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-05-13-node-cli-api"}},l={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(m,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team released the new distribution ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2418.1"},(0,i.kt)("inlineCode",{parentName:"a"},"2418.1")),", which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes aimed at preventing memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet"),". Specifically, they completed the implementation of compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges and initiated testing and assessing performance on ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet")," in a test Mithril network. Additionally, they started working on minimizing the extra disk space requirements for the signer on the SPO infrastructure."),(0,i.kt)("p",null,"Finally, the team implemented some optimizations for the aggregator, fixed some bugs on the client, and introduced new documentation for compiling the Mithril relay from source."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2418.1"},(0,i.kt)("inlineCode",{parentName:"a"},"2418.1"))),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Use Block Range Merkle roots to sign Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1634"},"#1634")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Use Block Range Merkle roots to prove Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1635"},"#1635")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Deploy Cardano transactions to ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-mainnet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1647"},"#1647")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Consistent sorting of transactions from ",(0,i.kt)("inlineCode",{parentName:"strong"},"GetCardanoTransactionProvider")," in signer and aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1657"},"#1657")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Use SQLite transactions when inserting ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," and ",(0,i.kt)("inlineCode",{parentName:"strong"},"Block Range Roots"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1656"},"#1656")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement ",(0,i.kt)("inlineCode",{parentName:"strong"},"Ord")," on ",(0,i.kt)("inlineCode",{parentName:"strong"},"SignedEntityTypeDiscriminants"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1648"},"#1648")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Merkle roots don't have fixed size in the ",(0,i.kt)("inlineCode",{parentName:"strong"},"block_range_root")," table")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1668"},"#1668")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Refactor Cardano transactions database layer in persistence for signer and aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1677"},"#1677")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Some timing tests fail on ARM")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1466"},"#1466")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add Mithril networks configurations in ",(0,i.kt)("inlineCode",{parentName:"strong"},"networks.json"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1638"},"#1638")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add section for manual setup of squid in SPO guide")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1610"},"#1610")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Aggregator stress test crashes during signer registration")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1676"},"#1676")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Prune Cardano transactions stored on signer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1645"},"#1645")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," supports retrieving the Chain Point of the tip of the chain")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1589"},"#1589")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Retrieves Cardano blocks with ",(0,i.kt)("inlineCode",{parentName:"strong"},"chainsync")," in ",(0,i.kt)("inlineCode",{parentName:"strong"},"pallas")," PoC")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1590"},"#1590")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2738ca2a.97074049.js b/assets/js/2738ca2a.97074049.js new file mode 100644 index 0000000000..c453e9c8dd --- /dev/null +++ b/assets/js/2738ca2a.97074049.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[41016],{82228:e=>{e.exports=JSON.parse('{"permalink":"/page/71","page":71,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/70","nextPage":"/page/72","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/274d7200.d1cb3b5f.js b/assets/js/274d7200.d1cb3b5f.js new file mode 100644 index 0000000000..70745f1a82 --- /dev/null +++ b/assets/js/274d7200.d1cb3b5f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[26565],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(r),h=a,m=c["".concat(s,".").concat(h)]||c[h]||d[h]||o;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={title:"Ledger Team Update",slug:"2022-11-11-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-11-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-11-ledger.md",source:"@site/blog/2022-11-11-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2022-11-11T00:00:00.000Z",formattedDate:"November 11, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.41,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-11-11-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-11-11-hydra"},nextItem:{title:"Network Team Update",permalink:"/2022-11-11-network"}},s={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],p={toc:u},c="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"I am extremely excited to say that we now have a pull request up which introduces our new versioned\nCBOR serialization. This was an enormous effort, but it will solve a host of problems that we have\nhad since the Shelley phase. It will take time to properly review it, and we will\nneed to put in a lot of effort to integrate it with the downstream components, but this is a huge\nmilestone. Additionally, we have a new CIP proposing a deprecation cycle for the transaction\nserialization schemes."),(0,a.kt)("p",null,"We also have a draft pull request that reworks how deposits are tracked. Users of the system will\nnot notice any difference, but it is a necessary change needed to prepare the way for\ndecentralizing the governance of Cardano."),(0,a.kt)("p",null,"Finally, we continued to address technical debt. In particular, we continued to make progress on\nbringing coherency and consistency to the code base with a common naming convention, and\nimproving some error messages."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We have a pull request up for our new versioned CBOR serialization.\nWhen we encounter a problem with our deserializers, it can be very difficult to implement a fix.\nIt is difficult because we can only fix such issues during a hard fork, and leading up to the\nhard fork we must maintain two serializations for the same type in order to not cause unintended\nnetwork splitting (the problematic version must be used before the hard fork,\nand the fixed version is used afterwards).\nThis can be especially tricky with the ",(0,a.kt)("inlineCode",{parentName:"li"},"FromCBOR")," typeclass, since it is not always easy to\nsearch for where all the problematic uses are located.\nThe new versioned CBOR serialization allows us to gracefully handle this transition.\nSee [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3138"},"pull-3138"),"]."),(0,a.kt)("li",{parentName:"ul"},"We proposed a CIP for backwards compatibility of the transaction serialization schemes.\nSee [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/372"},"pull-372"),"]."),(0,a.kt)("li",{parentName:"ul"},"We have draft for the new deposit tracking.\nThis draft is not as memory efficient as the final version will be,\nbut it is a sufficient proof of concept that we can write property tests against, ensuring\nthat we have not changed the semantics.\nWe will optimize after we are sure of the correctness.\nSee [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3127"},"pull-3127"),"]."),(0,a.kt)("li",{parentName:"ul"},"We now provide better support for debugging failed Plutus scripts in an important helper\nfunction, named ",(0,a.kt)("inlineCode",{parentName:"li"},"evaluateTransactionExecutionUnits"),".\nIn particular, it now returns all the information needed to rerun the script with exactly the\nsame arguments. This feature will end up appearing in the CLI and other tools from the Plutus\ntools team.\nSee [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3135"},"pull-3135"),"]."),(0,a.kt)("li",{parentName:"ul"},"We did a lot more renaming to bring coherency and consistency to the code base.\nSee [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3126"},"pull-3126"),"], [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3120"},"pull-3120"),"], [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3118"},"pull-3118"),"], and [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3116"},"pull-3116"),"]."),(0,a.kt)("li",{parentName:"ul"},"We have added a few things to the ledger repository to make it conform to the\n",(0,a.kt)("a",{parentName:"li",href:"https://input-output-hk.github.io/cardano-engineering-handbook/"},"Cardano Engineering Handbook"),"\nSee [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3139"},"pull-3139"),"].")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/27c463c7.c17177cd.js b/assets/js/27c463c7.c17177cd.js new file mode 100644 index 0000000000..fec35986c7 --- /dev/null +++ b/assets/js/27c463c7.c17177cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24327],{83769:a=>{a.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/28000465.48eba356.js b/assets/js/28000465.48eba356.js new file mode 100644 index 0000000000..ecb5a3220f --- /dev/null +++ b/assets/js/28000465.48eba356.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96577],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),s=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=s(r),p=n,m=h["".concat(c,".").concat(p)]||h[p]||d[p]||o;return r?a.createElement(m,i(i({ref:t},u),{},{components:r})):a.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[h]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2024-01-26-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-01-26-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-26-hydra.md",source:"@site/blog/2024-01-26-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-01-26T00:00:00.000Z",formattedDate:"January 26, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.75,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-01-26-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"DB Sync Team Update",permalink:"/2024-01-30-db-sync"},nextItem:{title:"Consensus Team Update",permalink:"/2024-01-24-consensus"}},c={authorsImageUrls:[void 0]},s=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],u={toc:s},h="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This week, the Hydra team conducted yearly roadmapping sessions, introduced a\nbreaking API change to eliminate JSON encoding of transactions (refer to issue\n#1213 for details), completed off-chain logic for incremental decommits through,\nand implemented a hydra-explorer backend."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Conducted yearly roadmapping sessions"),(0,n.kt)("li",{parentName:"ul"},"Merged a breaking API change to drop JSON encoding of transactions ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1213"},"#1213")," - contact us if you were relying on this."),(0,n.kt)("li",{parentName:"ul"},"Completed off-chain logic for incremental decommits ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1223"},"#1223")),(0,n.kt)("li",{parentName:"ul"},"Implemented a hydra-explorer backend ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1235"},"#1235"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Publish the monthly report"),(0,n.kt)("li",{parentName:"ul"},"Prepare PRs for hydra clients to switch to CBOR due to the changed API (see above)"),(0,n.kt)("li",{parentName:"ul"},"Enhance the model testing framework to cover close/contest (needed to fix a bug and incremental decommit development)"),(0,n.kt)("li",{parentName:"ul"},"Fix new bugs (all minors) and finish things before starting new")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2831f2fb.3af4df5d.js b/assets/js/2831f2fb.3af4df5d.js new file mode 100644 index 0000000000..a37cda8a17 --- /dev/null +++ b/assets/js/2831f2fb.3af4df5d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20018],{28650:a=>{a.exports=JSON.parse('{"label":"sre","permalink":"/tags/sre","allTagsPath":"/tags","count":29}')}}]); \ No newline at end of file diff --git a/assets/js/28644f4c.e2d46ce2.js b/assets/js/28644f4c.e2d46ce2.js new file mode 100644 index 0000000000..0b9ab2c9d1 --- /dev/null +++ b/assets/js/28644f4c.e2d46ce2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16498],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),u=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,h=c["".concat(p,".").concat(m)]||c[m]||d[m]||o;return n?r.createElement(h,l(l({ref:t},s),{},{components:n})):r.createElement(h,l({ref:t},s))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"SRE Team Update",slug:"2024-02-02-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-02-02-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-02-sre.md",source:"@site/blog/2024-02-02-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-02-02T00:00:00.000Z",formattedDate:"February 2, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.96,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-02-02-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-02-05-network"},nextItem:{title:"Hydra Team Update",permalink:"/2024-02-02-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Upstream Contributions",id:"upstream-contributions",level:2},{value:"Blockperf",id:"blockperf",level:3}],s={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,a.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Cardano explorer is being sunset and will soon be replaced by a new ",(0,a.kt)("a",{parentName:"li",href:"https://beta.explorer.cardano.org/"},"Cardano\nFoundation explorer")),(0,a.kt)("li",{parentName:"ul"},"IOG mainnet pools are now participating in propagation time reporting using\nCardano Foundation's ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/blockperf"},"blockperf\ntool")),(0,a.kt)("li",{parentName:"ul"},"Cardano-parts node nixosConfigurations, node entrypoint and process-compose\nnode jobs now utilize ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril"},"mithril"),"\nclient automatically on preview and preprod networks for faster\nsynchronization of first start up. Mainnet mithril client use as well as\nsigner modules will be available soon.")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Adds a blockperf reporting module to the bootstrap nodes and block producer\nrelays:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/7"},"cardano-mainnet-pull-7"))),(0,a.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Adds a block performance module which utilizes cardano-foundation's blockperf\nfor aggregate block propagation reporting:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/29"},"cardano-parts-pull-29")),(0,a.kt)("li",{parentName:"ul"},"Adds a mithril client for nixosConfigurations, process-compose cardano-node\nprocesses and cardano-node entrypoint:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/30"},"cardano-parts-pull-30"))),(0,a.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Adds required mithril client environment information for preview, preprod,\nmainnet:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/570"},"iohk-nix-pull-570"))),(0,a.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add the sunset banner to explorer:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-world/commit/b010f5f5b1ba92091145dc638e1a37f1612b3fa7"},"cardano-world-commit"))),(0,a.kt)("h2",{id:"upstream-contributions"},"Upstream Contributions"),(0,a.kt)("h3",{id:"blockperf"},"Blockperf"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add a nix flake with blockperf package and ci action:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/blockperf/pull/22"},"blockperf-pull-22"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/28874657.ef912c31.js b/assets/js/28874657.ef912c31.js new file mode 100644 index 0000000000..2737ffcc5c --- /dev/null +++ b/assets/js/28874657.ef912c31.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28592],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},c=o.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),m=p(n),c=a,d=m["".concat(l,".").concat(c)]||m[c]||h[c]||r;return n?o.createElement(d,i(i({ref:t},u),{},{components:n})):o.createElement(d,i({ref:t},u))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[m]="string"==typeof e?e:a,i[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var o=n(87462),a=(n(67294),n(3905));const r={title:"Consensus Team Update",slug:"2023-03-08-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-03-08-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-08-consensus.md",source:"@site/blog/2023-03-08-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-03-08T00:00:00.000Z",formattedDate:"March 8, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.46,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-03-08-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-03-09-mithril"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-03-08-node-cli-api"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD Prototype",id:"utxo-hd-prototype",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3},{value:"Support",id:"support",level:3}],u={toc:p},m="wrapper";function h(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The Consensus team continued working on refactoring and improving the UTxO-HD\nprototype, and introducing improvements to the ",(0,a.kt)("inlineCode",{parentName:"p"},"lmdb")," related packages. In\nparticular we identified an opportunity to gain performance by handling locks in\na more optimal way."),(0,a.kt)("p",null,"On the Genesis front, we sketched a mitigation for an issue that ",(0,a.kt)("inlineCode",{parentName:"p"},"PNSol")," and\nResearchers caught. We also came op with a road map for not only testing the\nGenesis prototypes, but also for enriching the tests we already have."),(0,a.kt)("p",null,"Regarding technical debt, next to some minor improvements, we created\ncomponent-level micro-benchmarks for adding transactions to the mempool. The\nresults of these benchmarks will be published in the ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," ",(0,a.kt)("a",{parentName:"p",href:"https://ouroboros-consensus.cardano.intersectmbo.org/"},"web\npage"),"."),(0,a.kt)("p",null,"We also finished moving the Consensus documentation to the ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),"\nrepository, released ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," ",(0,a.kt)("inlineCode",{parentName:"p"},"0.3.0.0"),", and reduced the time\nGitHub actions take in ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),"."),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD Prototype"),(0,a.kt)("p",null,"We continued working on refactoring and improving the UTxO-HD prototype. As a\nresult of the first round of sytem-level benchmarks, we identified an\nopportunity to optimise the way we handle locks to improve performance\n(",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4393"},"#4393"),")."),(0,a.kt)("p",null,"Also, we introduced several improvements to the ",(0,a.kt)("inlineCode",{parentName:"p"},"lmdb")," related packages:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/lmdb-simple/pull/19"},"New tests")," for read-only transaction handles."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/lmdb-simple/pull/18"},"New functions")," and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/lmdb-simple/pull/13"},"data types"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/lmdb-simple/pull/11"},"Updates")," to support improved type safety and smaller constraints in\nthe UTxO HD prototype."),(0,a.kt)("li",{parentName:"ul"},"Windows and MacOS ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/haskell-lmdb/pull/8"},"CI support"),".")),(0,a.kt)("h3",{id:"genesis"},"Genesis"),(0,a.kt)("p",null,"We sketched out a mitigation of the issue that ",(0,a.kt)("inlineCode",{parentName:"p"},"PNSol")," and Researchers caught in\nthe Genesis design."),(0,a.kt)("p",null,"We came up with a road map for testing the Genesis prototypes, including early\nmilestones that are applicable to today's master branch, ie tests that are\nuseful before Genesis, and that will be nicely enriched when we do add Genesis."),(0,a.kt)("p",null,"We developed the aforementioned tests, specifically a ",(0,a.kt)("inlineCode",{parentName:"p"},"QuickCheck")," generator for\nthe Honest leader schedule and one as-aggressive-as-possible Adversarial\nleader schedule that together satisfy the Praos properties that the Consensus\ndesign takes as invariants."),(0,a.kt)("p",null,"We investigated why the improved ",(0,a.kt)("inlineCode",{parentName:"p"},"ChainDB")," queueing implementation behaves\ndifferently in the baseline compared to the prototype, and we are close to\nhaving a full picture of how the Consensus components interact during bulk sync."),(0,a.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,a.kt)("p",null,"We ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4400"},"created")," component-level micro-benchmarks for adding transactions\nto the mempool. We plan on extending this to more mempool actions and different\ntypes of blocks. We ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4422"},"store")," the benchmark data to make it available\nto the GitHub action that ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/12"},"publishes")," the benchmarks results."),(0,a.kt)("p",null,"Other minor improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4429"},"Removal")," of ",(0,a.kt)("inlineCode",{parentName:"li"},"Test.Util.Classify")," in favour of ",(0,a.kt)("inlineCode",{parentName:"li"},"Test.StateMachine.Labelling"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4423"},"Addition")," of ",(0,a.kt)("inlineCode",{parentName:"li"},"-Wunused-packages")," to the default ",(0,a.kt)("inlineCode",{parentName:"li"},"ghc-options")," for Consensus\npackages.")),(0,a.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,a.kt)("p",null,"We finished moving the Consensus documentation ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4374"},"from"),"\n",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/haskell-lmdb/pull/8"},"to")," ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),", in preparation for\nmigrating the code to the latter repository."),(0,a.kt)("h3",{id:"support"},"Support"),(0,a.kt)("p",null,"We ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4412"},"released")," ouroboros-consensus 0.3.0.0."),(0,a.kt)("p",null,"We ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4421"},"reduced")," the load in the ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," GitHub actions,\nthereby reducing the time CI jobs take."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/28bc1d1b.53a9d32e.js b/assets/js/28bc1d1b.53a9d32e.js new file mode 100644 index 0000000000..7125305268 --- /dev/null +++ b/assets/js/28bc1d1b.53a9d32e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1285],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>k});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),m=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=m(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,i=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),p=m(r),d=a,k=p["".concat(i,".").concat(d)]||p[d]||c[d]||s;return r?n.createElement(k,l(l({ref:t},u),{},{components:r})):n.createElement(k,l({ref:t},u))}));function k(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,l=new Array(s);l[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[p]="string"==typeof e?e:a,l[1]=o;for(var m=2;m{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>c,frontMatter:()=>s,metadata:()=>o,toc:()=>m});var n=r(87462),a=(r(67294),r(3905));const s={title:"System Test Team Update",slug:"2023-06-08-system-test",authors:"mkoura",tags:["system-test"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-06-08-system-test",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-08-system-test.md",source:"@site/blog/2023-06-08-system-test.md",title:"System Test Team Update",description:"High level summary",date:"2023-06-08T00:00:00.000Z",formattedDate:"June 8, 2023",tags:[{label:"system-test",permalink:"/tags/system-test"}],readingTime:1.005,hasTruncateMarker:!1,authors:[{name:"Martin Kourim",title:"System Test Engineer",url:"https://github.com/mkoura",imageURL:"https://github.com/mkoura.png",key:"mkoura"}],frontMatter:{title:"System Test Team Update",slug:"2023-06-08-system-test",authors:"mkoura",tags:["system-test"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-06-08-sre"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-06-07-node-cli-api"}},i={authorsImageUrls:[void 0]},m=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Framework improvements:",id:"framework-improvements",level:3},{value:"Testing improvements",id:"testing-improvements",level:3},{value:"Node:",id:"node",level:3},{value:"DB-Sync:",id:"db-sync",level:3}],u={toc:m},p="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"Since the last update (2023-03-26) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the ",(0,a.kt)("em",{parentName:"p"},"1.35.7")," and ",(0,a.kt)("em",{parentName:"p"},"8.0.0")," releases."),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node-tests/pulls?page=1&q=is%3Apr+is%3Aclosed+updated%3A2023-03-26..2023-06-08"},"Full list of closed PRs")),(0,a.kt)("h3",{id:"framework-improvements"},"Framework improvements:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Make cardano-submit-api REST API service available and run corresponding regression tests by default"),(0,a.kt)("li",{parentName:"ul"},"Update cabal build testing for 8.0.0"),(0,a.kt)("li",{parentName:"ul"},"Add support for testing governance SPO poll"),(0,a.kt)("li",{parentName:"ul"},"Use Poetry for Python dependency management"),(0,a.kt)("li",{parentName:"ul"},"Check status of known GH issues during tests runtime and finish the test accordingly"),(0,a.kt)("li",{parentName:"ul"},"Generate topology files with both IP addresses and DNS names"),(0,a.kt)("li",{parentName:"ul"},"Log issues like failure to start a cluster instance and report errors during tests runtime")),(0,a.kt)("h3",{id:"testing-improvements"},"Testing improvements"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add rollback testing:",(0,a.kt)("ol",{parentName:"li"},(0,a.kt)("li",{parentName:"ol"},"global consensus is reached after rollback, in situation where less than ",(0,a.kt)("inlineCode",{parentName:"li"},"securityParam")," blocks were produced since cluster split"),(0,a.kt)("li",{parentName:"ol"},"global consensus is not reached when more than ",(0,a.kt)("inlineCode",{parentName:"li"},"securityParam")," blocks were produced, and the result is permanent fork"))),(0,a.kt)("li",{parentName:"ul"},"Add tests to governance SPO poll commands")),(0,a.kt)("h3",{id:"node"},"Node:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"tested the ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/test_results/node/tag_1_35_7.html"},"1.35.7")," release"),(0,a.kt)("li",{parentName:"ul"},"tested the ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/test_results/node/tag_8_0_0.html"},"8.0.0")," release")),(0,a.kt)("h3",{id:"db-sync"},"DB-Sync:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"improvements in db-sync sync tests"),(0,a.kt)("li",{parentName:"ul"},"improvements in db-sync functional tests")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/28d85025.7c238fd3.js b/assets/js/28d85025.7c238fd3.js new file mode 100644 index 0000000000..65970c036b --- /dev/null +++ b/assets/js/28d85025.7c238fd3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5214],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},m=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),d=u(a),c=n,h=d["".concat(p,".").concat(c)]||d[c]||s[c]||l;return a?r.createElement(h,o(o({ref:t},m),{},{components:a})):r.createElement(h,o({ref:t},m))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=c;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:n,o[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2023-12-06-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-12-06-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-06-ledger.md",source:"@site/blog/2023-12-06-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-12-06T00:00:00.000Z",formattedDate:"December 6, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.53,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-12-06-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-12-08-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-12-06-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3}],m={toc:u},d="wrapper";function s(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This period we reached a major milestone, namely we now have an initial version of Conway\nconformance testing working. We are now able to generate random valid data with the help\nof constraint based testing framework, apply that data to Conway Ledger rules and verify\nthat the output matches to the one produced by the executable version of the Formal Ledger\nSpecification, when it is applied to the same random data."),(0,n.kt)("p",null,"We also had a couple of Conway bugs fixed and a few new predicate check implemented. Get\nConstitutional Committee query is complete and tested. Various improvements to the\ntesting tools. Addition of more test cases."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3888"},"pull-3888")," - Add checks for valid ProtVer when a proposal is a HardFork"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3902"},"pull-3902")," - Fix pvCanFollow usage in Conway and improve clarity in Shelley"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3855"},"pull-3855")," - Remove unreachable proposals"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3903"},"pull-3903")," - Add lenient decoder for ",(0,n.kt)("inlineCode",{parentName:"li"},"Addr")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3878"},"pull-3878")," - Committee query - implement next epoch change")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3893"},"pull-3893")," - Move ",(0,n.kt)("inlineCode",{parentName:"li"},"tree-diff")," dependency to tests together with all instances"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3896"},"pull-3896")," - Fix Brute force failure"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3904"},"pull-3904")," - New ListWhere Pred added to the Constrained Solver."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3907"},"pull-3907")," - cardano-ledger-conformance: Remove CHANGELOG.md from cabal file"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3883"},"pull-3883")," - Committee QuerySpec Imp Test"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3909"},"pull-3909")," - Make ",(0,n.kt)("inlineCode",{parentName:"li"},"impAnn")," a bit more useful, by making the logs scoped by ",(0,n.kt)("inlineCode",{parentName:"li"},"impAnn")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3908"},"pull-3908")," - Use upstream testing instances for very basic types"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3912"},"pull-3912")," - Removed call to tail, and the ","'","watchPulser","'"," test"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3852"},"pull-3852")," - Added constrained generators to conformance tests - Part 1")),(0,n.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3891"},"pull-3891")," - Bump plutus to 1.17")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/29352f22.289ad8d1.js b/assets/js/29352f22.289ad8d1.js new file mode 100644 index 0000000000..4c5f16407d --- /dev/null +++ b/assets/js/29352f22.289ad8d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[38848],{53124:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/29388bf2.d8b0d04f.js b/assets/js/29388bf2.d8b0d04f.js new file mode 100644 index 0000000000..fd1acdd42a --- /dev/null +++ b/assets/js/29388bf2.d8b0d04f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[31416],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),d=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=d(a),p=n,m=u["".concat(c,".").concat(p)]||u[p]||h[p]||o;return a?r.createElement(m,i(i({ref:t},s),{},{components:a})):r.createElement(m,i({ref:t},s))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:n,i[1]=l;for(var d=2;d{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-05-10-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-05-10-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-10-hydra.md",source:"@site/blog/2024-05-10-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-05-10T00:00:00.000Z",formattedDate:"May 10, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.63,hasTruncateMarker:!1,authors:[{name:"Daniel Firth",title:"Hydra Software Engineer",url:"https://github.com/locallycompact",imageURL:"https://github.com/locallycompact.png",key:"locallycompact"}],frontMatter:{title:"Hydra Team Update",slug:"2024-05-10-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-05-13-node-cli-api"},nextItem:{title:"SRE Team Update",permalink:"/2024-05-10-sre"}},c={authorsImageUrls:[void 0]},d=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],s={toc:d},u="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team upgraded the hydra-node networking layer to use a versioned handshake protocol, as well as extensive documentation restructuring and bug fixes to the hydra-tui."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Use versioned hadshake when connecting hydra-nodes."),(0,n.kt)("li",{parentName:"ul"},"Restructure documentation."),(0,n.kt)("li",{parentName:"ul"},"Fixed the transaction envelope type parsing in order to be compatible with cardano-cli and update our docs."),(0,n.kt)("li",{parentName:"ul"},"Show the contestations in the hydra-tui"),(0,n.kt)("li",{parentName:"ul"},"Experiment with removing persistence in the reliability layer and adding custom command to Reset the head state to the last confirmed snapshot")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Provide aarch64-linux docker images for hydra-node."),(0,n.kt)("li",{parentName:"ul"},"Release hydra-node 0.17.0"),(0,n.kt)("li",{parentName:"ul"},"Finish new model spec changes related to decommit testing")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/29f10536.413b3235.js b/assets/js/29f10536.413b3235.js new file mode 100644 index 0000000000..544e53a11a --- /dev/null +++ b/assets/js/29f10536.413b3235.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97444],{31274:e=>{e.exports=JSON.parse('{"permalink":"/page/45","page":45,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/44","nextPage":"/page/46","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/2a707bc4.03b81d3f.js b/assets/js/2a707bc4.03b81d3f.js new file mode 100644 index 0000000000..3b119446f8 --- /dev/null +++ b/assets/js/2a707bc4.03b81d3f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[81564],{16570:a=>{a.exports=JSON.parse('{"permalink":"/tags/cli-api","page":1,"postsPerPage":5,"totalPages":8,"totalCount":39,"nextPage":"/tags/cli-api/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/2a8f0182.b0fa5446.js b/assets/js/2a8f0182.b0fa5446.js new file mode 100644 index 0000000000..5f474cbcf5 --- /dev/null +++ b/assets/js/2a8f0182.b0fa5446.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[57227],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),c=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(a),m=r,h=d["".concat(p,".").concat(m)]||d[m]||s[m]||o;return a?n.createElement(h,i(i({ref:t},u),{},{components:a})):n.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-03-22-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2023-03-22-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-22-node-cli-api.md",source:"@site/blog/2023-03-22-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-03-22T00:00:00.000Z",formattedDate:"March 22, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.645,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-03-22-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-03-22-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2023-03-22-performance-and-tracing"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],u={toc:c},d="wrapper";function s(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-03-22---2023-04-05"},"2023-03-22 - 2023-04-05"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Added new cardano-cli ping command which allows users to ping remote cardano-nodes."),(0,r.kt)("li",{parentName:"ul"},"The ",(0,r.kt)("inlineCode",{parentName:"li"},"transaction build")," command now can automatically balance multiassets"),(0,r.kt)("li",{parentName:"ul"},"New combinators for constructing transaction bodies. This allows us to construct transaction bodies in a composable manner.")),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5041"},"Remove unused error constructors")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4909"},"Fix qKesKesKeyExpiry to not always be null")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"New cardano-cli ping command.")," ")),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5040"},"Remove use of AcquireFailure type")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5038"},"Simplify implementation of executeQueryAnyMode")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5002"},"Script data serialisation")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4956"},"Guard against overflows in Shelley TxIns")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4941"},"Combinators for TxBodyContent and related types")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")," ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5011"},"Use Haskell variables for passing values.")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4879"},"Re-enable kes-period-info test."))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2b637fd9.f7d5edac.js b/assets/js/2b637fd9.f7d5edac.js new file mode 100644 index 0000000000..fba3e53c19 --- /dev/null +++ b/assets/js/2b637fd9.f7d5edac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[69376],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(n),d=a,h=u["".concat(s,".").concat(d)]||u[d]||m[d]||o;return n?r.createElement(h,l(l({ref:t},p),{},{components:n})):r.createElement(h,l({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-09-14-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-09-14-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-14-db-sync.md",source:"@site/blog/2023-09-14-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-09-14T00:00:00.000Z",formattedDate:"September 14, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.47,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-09-14-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-09-15-sre"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-09-12-node-cli-api"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],p={toc:c},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We have created a DBSync tag ",(0,a.kt)("inlineCode",{parentName:"p"},"sancho-1-1-0")," which can follow sanchonet. Also\nthe team has ran a number of benchmarks and tests for the new options/flavours of DBSync\nand prepared a blogpost which summorises them, for downstream components."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Integration of node-8.3.x and support for Sanchonet on Conway\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1498"},"#1498")),(0,a.kt)("li",{parentName:"ul"},"Simplifications of new feautures\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1496"},"#1496")),(0,a.kt)("li",{parentName:"ul"},"Makes it impossible to restart DBSync with different schema options and adds\ntests for them\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1466"},"#1466")),(0,a.kt)("li",{parentName:"ul"},"CI fixes\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1494"},"#1494"),(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1491"},"#1491")),(0,a.kt)("li",{parentName:"ul"},"Prepared a blogpost about different DBSync options\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/blob/blog/blog/blog.pdf"},"blog"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2b872e03.583ac824.js b/assets/js/2b872e03.583ac824.js new file mode 100644 index 0000000000..9ba58dabca --- /dev/null +++ b/assets/js/2b872e03.583ac824.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[81755],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),c=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),h=n,m=p["".concat(u,".").concat(h)]||p[h]||s[h]||o;return a?r.createElement(m,i(i({ref:t},d),{},{components:a})):r.createElement(m,i({ref:t},d))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-04-12-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-04-12-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-12-hydra.md",source:"@site/blog/2024-04-12-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-04-12T00:00:00.000Z",formattedDate:"April 12, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.76,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-04-12-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-04-15-node-cli-api"},nextItem:{title:"SRE Team Update",permalink:"/2024-04-12-sre"}},u={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],d={toc:c},p="wrapper";function s(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team fixed a bug in the smoke test and refactored to allow network functions to distinguish between inbound and outbound. The team also prepared a cardano-api 8.44 branch for cardano-node 8.10 once it gets released. They also contributed to the ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-ledger-api")," by undeprecating and exposing ",(0,n.kt)("inlineCode",{parentName:"p"},"redeemerPointer"),"."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fix FaucetFailedToBuildTx in smoke test ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1384"},"#","1384")),(0,n.kt)("li",{parentName:"ul"},"Refactoring to allow network functions to distinguish between inbound and outbound"),(0,n.kt)("li",{parentName:"ul"},"Prepared a cardano-api 8.44 branch, but got blocked \ud83d\udc47"),(0,n.kt)("li",{parentName:"ul"},"Undeprecate redeemerPointer and expose it in ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-ledger-api")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4259"},"cardano-ledger#4259"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete new /commit endpoint interface ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1350"},"#","1350")),(0,n.kt)("li",{parentName:"ul"},"Refactor to allow NodeLogic to pass through connection messages, to unblock \ud83d\udc47"),(0,n.kt)("li",{parentName:"ul"},"Use versioned handshake when connecting hydra-nodes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1010"},"#","1010")),(0,n.kt)("li",{parentName:"ul"},"Test all combinations of decrement/close/fanout for ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1057"},"#","1057")),(0,n.kt)("li",{parentName:"ul"},"Meet with tech writers about the landing page")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2bc04bf6.b010f2f1.js b/assets/js/2bc04bf6.b010f2f1.js new file mode 100644 index 0000000000..6a9cecd104 --- /dev/null +++ b/assets/js/2bc04bf6.b010f2f1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[56010],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>c});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function l(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):l(l({},t),e)),i},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),h=u(i),d=n,c=h["".concat(p,".").concat(d)]||h[d]||m[d]||a;return i?r.createElement(c,l(l({ref:t},s),{},{components:i})):r.createElement(c,l({ref:t},s))}));function c(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,l=new Array(a);l[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[h]="string"==typeof e?e:n,l[1]=o;for(var u=2;u{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>a,metadata:()=>o,toc:()=>u});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-06-01-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-06-01-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-01-mithril.md",source:"@site/blog/2023-06-01-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-06-01T00:00:00.000Z",formattedDate:"June 1, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.415,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-06-01-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-06-02-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-05-31-consensus"}},p={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:u},h="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(h,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team released a new ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2321.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2321.1"))," distribution that fully implements the mechanism developed to sign generic data. They completed the upgrade of the Cardano node in the Mithril networks to v.8.0.0 and the implementation of the new computation of the stake distribution. They refactored the state machines of the signer and aggregator, and the signed entity service of the aggregator. Additionally, they worked on adapting the client and implementing a new sub-command for restoring the Cardano immutable file snapshots."),(0,n.kt)("p",null,"Finally, the team worked on adding a new certificate list route in the aggregator REST API, and started enhancing the infrastructure of the Mithril networks."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2321.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2321.1"))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that designs and implements generic signing/verification of entity services ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/780"},"#780"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Enhance MessageAdapter for Artifact in aggregator REST API")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/925"},"#925")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Create the sub-command for 'Cardano Immutable Files Full' in client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/895"},"#895")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Enhance state machines Aggregator/Signer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/933"},"#933")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Adapt the aggregator REST API to list certificates")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/892"},"#892")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Adapt end to end tests to handle new types of data")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/899"},"#899")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Update client documentation")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/897"},"#897")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Update architecture documentations for new types of data")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/898"},"#898")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that prepares the Mithril infrastructure for ",(0,n.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/767"},"#767"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Enhance terraform infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/930"},"#930")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that implements the computation of the stake distribution for ",(0,n.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/880"},"#880"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Upgrade Cardano node to '8.0.0'")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/920"},"#920")))),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add export path in Client CLI")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/512"},"#512"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2c6851ed.f7e3f2b3.js b/assets/js/2c6851ed.f7e3f2b3.js new file mode 100644 index 0000000000..ef1f4d3b0a --- /dev/null +++ b/assets/js/2c6851ed.f7e3f2b3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[31762],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),p=c(n),u=a,h=p["".concat(s,".").concat(u)]||p[u]||d[u]||o;return n?r.createElement(h,i(i({ref:t},m),{},{components:n})):r.createElement(h,i({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & Tracing Update",slug:"2024-06-25-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-06-25-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-25-performance-and-tracing.md",source:"@site/blog/2024-06-25-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-06-25T00:00:00.000Z",formattedDate:"June 25, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:3.285,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-06-25-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-06-26-mithril"},nextItem:{title:"Ledger Team Update",permalink:"/2024-06-19-ledger"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3},{value:"IOI Tech Meetup",id:"ioi-tech-meetup",level:3}],m={toc:c},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Release benchmarks for Node ",(0,a.kt)("inlineCode",{parentName:"li"},"8.12.0"),"; ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep")," benchmarks with 100k DReps."),(0,a.kt)("li",{parentName:"ul"},"Development: Merged a performance fix on ",(0,a.kt)("inlineCode",{parentName:"li"},"8.11"),"; kicked off development of governance action workload."),(0,a.kt)("li",{parentName:"ul"},"Workbench: Adjusted automations to latest ",(0,a.kt)("inlineCode",{parentName:"li"},"8.12")," Conway features and Plutus cost model; implementation of CIP-69 and CIP-117 for our tooling is in validation phase."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Work on metrics naming ongoing. Factoring out RTView component is completed and has entered testing."),(0,a.kt)("li",{parentName:"ul"},"IOI Tech Meetup: Our team contributed two presentations at the meetup in Zurich; worked on community report of UTxO scaling benchmarks.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've run and analyzed a full set of release benchmarks for Node versions ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0"),". In comparison with the latest mainnet release ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.3"),", we could not observe any regressions. In fact, ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0")," was able to deliver equal network\nperformance at a slightly reduced resource cost - both for CPU and memory."),(0,a.kt)("p",null,"Another benchmark of the Conway ledger with large amounts of ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s has been performed. This time, 100000 DReps were chosen - this amount aims to simulate a scenario where lots of self-delegation takes place. While a performance\nimpact is observable in this instance, we can still see that the number of DReps scales well overall, and poses no concern for network peformance."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"We have contributed and merged a performance fix on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.11")," which adresses a regressing metric in the forging loop. The regression was only observable under specific conditions. Benchmarks on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12"),"\nhave already confirmed the fix to be successful. "),(0,a.kt)("p",null,"We've kicked off governance action workloads for benchmarking. This will be an entirely new workload type for Conway era, targeting performance measurements of its decentralized decision making process. The workload will feature\nregistering proposals, acting as multiple DReps to vote on active proposals, vote tallying and proposal enactment. We're very grateful for the Ledger team's helpful support so far in creating a workload design for benchmarking - one that evenly stresses\nthe network over extended periods of time."),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"The workbench automations have been upgraded to handle Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12")," and the corresponding integrations of Cardano API and CLI. "),(0,a.kt)("p",null,"Furthermore, we've updated to the latest PlutusV3 costmodel in our benchmarks - as well as implemented CIP-69 and CIP-117 for all our PlutusV3 benchmarking scripts, pending validation by the Plutus team."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The work on aligning of metrics naming and semantics of new and legacy tracing is ongoing. Additionally, we're adding a handful of metrics to the new tracing system which currently exist in legacy tracing only."),(0,a.kt)("p",null,'Factoring out the RTView ("real-time view") component of ',(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," in the new tracing system has finished. This includes a considerable refactoring of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),"'s codebase, so that we're currently running test on the new codebase. Isolating\nRTView is due to its being in prototype stage for too long, and the design decisions taken. In the short term, this will make several package dependencies optional, which have become troublesome for CI, as well as making ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," more lightweight.\nRTView remains as an opt-in. "),(0,a.kt)("h3",{id:"ioi-tech-meetup"},"IOI Tech Meetup"),(0,a.kt)("p",null,"Our entire team traveled to Zurich, Switzerland to attend ZuriHac'24 and the IOI Tech Meetup. It was fantastic to meet everyone in person, and we all had an amazing and very productive time. A big Thank You to everyone involved in making that happen, and making it a success. "),(0,a.kt)("p",null,"We contributed two presentations for the meetup: a thourough introduction of the new tracing system aimed at developers - as it's not tailored exclusively to ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),", but can be used in other (Haskell) services as well. And secondly,\nan overview over the benchmarking framework based on Quantitative Timeliness Agreements which we're building - as well as a show-and-tell of our prototype, implementing part of said framework. We're grateful for the great interest and feedback from all\nthe participants. "),(0,a.kt)("p",null,"Last not least, we worked on creating a community report of the UTxO scaling benchmarks performed during March and April - to be released soon."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2ca47575.7bf9b828.js b/assets/js/2ca47575.7bf9b828.js new file mode 100644 index 0000000000..8283724fc8 --- /dev/null +++ b/assets/js/2ca47575.7bf9b828.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[49200],{59647:e=>{e.exports=JSON.parse('{"permalink":"/tags/mithril/page/3","page":3,"postsPerPage":5,"totalPages":13,"totalCount":63,"previousPage":"/tags/mithril/page/2","nextPage":"/tags/mithril/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/2d0da244.c5b67c9c.js b/assets/js/2d0da244.c5b67c9c.js new file mode 100644 index 0000000000..2397575abd --- /dev/null +++ b/assets/js/2d0da244.c5b67c9c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[26299],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),c=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=c(r),m=n,h=s["".concat(u,".").concat(m)]||s[m]||d[m]||o;return r?a.createElement(h,i(i({ref:t},p),{},{components:r})):a.createElement(h,i({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const o={title:"Crypto Team Update",slug:"2023-04-28-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-04-28-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-28-crypto.md",source:"@site/blog/2023-04-28-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-04-28T00:00:00.000Z",formattedDate:"April 28, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.26,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-04-28-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-05-01-db-sync"},nextItem:{title:"Goedel Team Update",permalink:"/2023-04-28-goedel"}},u={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"Sidechains",id:"sidechains",level:3}],p={toc:c},s="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-base: New KES structure finally merged. Included additional tests to BLS, and including test vectors created with zkcrypto's library."),(0,n.kt)("li",{parentName:"ul"},"KES agent: Reaching state of MVP. Rewriting KES agent networking code to use the Snockets abstraction."),(0,n.kt)("li",{parentName:"ul"},"Sidechains: Started implementing ECC chip of JubJub over BLS12-381.")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/255"},"#255")," finally merged \ud83c\udf89"),(0,n.kt)("li",{parentName:"ul"},"Additional tests for BLS bindings ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/384"},"#384")),(0,n.kt)("li",{parentName:"ul"},"Open PR for including test vectors created with ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/zkcrypto/bls12_381"},"zkscrypto"),"'s library, ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/397"},"PR#397"))),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Introducing the SignKeyWithPeriodKES wrapper type, which bundles a KES key with its corresponding KES period ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/389"},"PR#389"),"."),(0,n.kt)("li",{parentName:"ul"},"Introducing the DirectSerialise API into cardano-base, which allows us to write mlocked memory directly to a file descriptor, without going through intermediate encodings stored on the GHC heap (which is a no-no due to secure forgetting requirements) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/317"},"#317"),"."),(0,n.kt)("li",{parentName:"ul"},"Figuring out how to generalize the KES, DSIGN, and mlocking code in cardano-base such that it can run in IOSim"),(0,n.kt)("li",{parentName:"ul"},"Rewriting KES agent networking code to use the Snockets abstraction, which gives us a platform-independent sockets layer (i.e., it will also work on Windows), and also allows us to run networked code in IOSim for testing purposes"),(0,n.kt)("li",{parentName:"ul"},"Refactor MonadSodium into MonadMLock ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/388"},"PR#388"),".")),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Started working on ECC chip for JubJub over BLS (problems still with the multiplication constraint)"),(0,n.kt)("li",{parentName:"ul"},"Use macros used by PSE library to try and merge our fork of halo2curves into PSE's repo")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2d52a685.bdcf070c.js b/assets/js/2d52a685.bdcf070c.js new file mode 100644 index 0000000000..d5d77b6e47 --- /dev/null +++ b/assets/js/2d52a685.bdcf070c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20553],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),m=s(n),p=a,h=m["".concat(c,".").concat(p)]||m[p]||u[p]||i;return n?r.createElement(h,o(o({ref:t},d),{},{components:n})):r.createElement(h,o({ref:t},d))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-05-31-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-31-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-31-performance-and-tracing.md",source:"@site/blog/2023-05-31-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-05-31T00:00:00.000Z",formattedDate:"May 31, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.055,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-05-31-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-05-31-consensus"},nextItem:{title:"Goedel Team Update",permalink:"/2023-05-26-goedel"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],d={toc:s},m="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've performed and analysed first benchmarks with GHC9.2 builds. Additionally we have developed an early indicator for how build config changes might reflect on metrics from our model cluster."),(0,a.kt)("li",{parentName:"ul"},"New tracing: Collaboration with Galois led to the new tracing system to be equipped with a re-forwarding mechanism."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: Porting the 52 node model cluster to nomad cloud is ongoing, with the focus on deployment and health checks.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"The first set of runs with GHC9.2 as a build platform are in. We've discovered a significant difference in resource profile usage compared to GHC8.10. Further investigation uncovered the need for benchmarking another parameter change in the build\nconfiguration: As it stands, the ",(0,a.kt)("inlineCode",{parentName:"p"},"ghc-bignum")," package is using the Haskell ",(0,a.kt)("inlineCode",{parentName:"p"},"native-backend")," as a default. We strive\nto benchmark a build with the ",(0,a.kt)("inlineCode",{parentName:"p"},"gmp-backend")," next. "),(0,a.kt)("p",null,"A variant of our ",(0,a.kt)("inlineCode",{parentName:"p"},"forge-stress")," local benchmark has been set up to serve as an early indicator for the resource usage profile\nwe'd expect to observe on the model cluster. This provides us with a much tighter feedback loop, as local run duration is way\nshorter. This indicator is specific to changes in the configuration of build and the runtime systems, and will be of great\nsupport when evaluating different compiler versions or RTS flags incrementally."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The hub of the new tracing system ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," is designed with a fixed output behaviour, which is limited to various\nlogging options. Thanks to the contribution from Galois, that design is now extended to be able to re-forward all, or a pre-filtered portion, of traces from the node in a configurable manner. This will enable downstream applications to\ndirectly receive the set of trace values relevant to their logic, without any additional cost for the node itself at all."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"We're currently working out the details of efficiently deploying and monitoring a fleet of 50+ nodes, along with\njob definitions for tracing and transaction generation. Scaling up to those many instances, and monitoring an ongoing\nbenchmarking run required us to fine-tune communications with the nomad server. "),(0,a.kt)("p",null,"Related to that, the new cloud backend will provide a monitoring and health-checking mechanism which is far more flexible\nand offers more detailed insight than the previous iteration in ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-ops"),". The backend will enable you to formulate\nvery specific conditions for an ongoing run to be considered healthy, and offer automation of certain actions should these conditions not be met."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2d72833d.03b48a0c.js b/assets/js/2d72833d.03b48a0c.js new file mode 100644 index 0000000000..7407a7e55d --- /dev/null +++ b/assets/js/2d72833d.03b48a0c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18303],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),s=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=s(a),h=n,m=p["".concat(c,".").concat(h)]||p[h]||d[h]||o;return a?r.createElement(m,i(i({ref:t},u),{},{components:a})):r.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=h;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-02-17-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-02-17-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-hydra.md",source:"@site/blog/2023-02-17-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-02-17T00:00:00.000Z",formattedDate:"February 17, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.75,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-02-17-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-02-17-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-02-17-ledger"}},c={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:s},p="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team completed work on dealing differently with contests\nduring the contestation period. These will now always push out the deadline and\nhence contestation periods are easier to pick (depending on the network a Head\nruns on). Furthermore, they added an important acceptance test and completed\ninternal refactoring of the protocol logic making future changes easier."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Push contestation deadline on each contest ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/716"},"#716")),(0,n.kt)("li",{parentName:"ul"},"Wrote an acceptance (property) test ","\u201c","can always close/fanout when collect is successful","\u201d"),(0,n.kt)("li",{parentName:"ul"},"Internal refactoring of our ",(0,n.kt)("inlineCode",{parentName:"li"},"HeadLogic")),(0,n.kt)("li",{parentName:"ul"},"Groomed remaining things from ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/452"},"#452")," into dedicated features")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete full minting policy ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/720"},"#720")),(0,n.kt)("li",{parentName:"ul"},"Release 0.9.0 with updated scripts"),(0,n.kt)("li",{parentName:"ul"},"Plan mainnet milestone and a 0.10.0 version"),(0,n.kt)("li",{parentName:"ul"},"Redraw transaction graphs for specification (upon feedback)"),(0,n.kt)("li",{parentName:"ul"},"Have smoke tests fixed and running regularly")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2d91c21f.fd212af3.js b/assets/js/2d91c21f.fd212af3.js new file mode 100644 index 0000000000..f832f7fe99 --- /dev/null +++ b/assets/js/2d91c21f.fd212af3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[30335],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=d(e,["components","mdxType","originalType","parentName"]),s=c(n),m=o,g=s["".concat(l,".").concat(m)]||s[m]||p[m]||a;return n?r.createElement(g,i(i({ref:t},u),{},{components:n})):r.createElement(g,i({ref:t},u))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var d={};for(var l in t)hasOwnProperty.call(t,l)&&(d[l]=t[l]);d.originalType=e,d[s]="string"==typeof e?e:o,i[1]=d;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>d,toc:()=>c});var r=n(87462),o=(n(67294),n(3905));const a={title:"Cardano Block Production Temporary Outage",slug:"2023-04-17-ledger",authors:"kevinhammond",tags:["ledger","incident"],hide_table_of_contents:!1},i=void 0,d={permalink:"/2023-04-17-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-17-incident.md",source:"@site/blog/2023-04-17-incident.md",title:"Cardano Block Production Temporary Outage",description:"Cardano block production temporary outage",date:"2023-04-17T00:00:00.000Z",formattedDate:"April 17, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"},{label:"incident",permalink:"/tags/incident"}],readingTime:1.37,hasTruncateMarker:!1,authors:[{name:"Kevin Hammond",title:"Head of Software Engineering, Cardano Core",url:"https://github.com/kevinhammond",imageURL:"https://github.com/kevinhammond.png",key:"kevinhammond"}],frontMatter:{title:"Cardano Block Production Temporary Outage",slug:"2023-04-17-ledger",authors:"kevinhammond",tags:["ledger","incident"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-04-19-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-04-14-goedel"}},l={authorsImageUrls:[void 0]},c=[{value:"Cardano block production temporary outage",id:"cardano-block-production-temporary-outage",level:2},{value:"Further Details",id:"further-details",level:3}],u={toc:c},s="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(s,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"cardano-block-production-temporary-outage"},"Cardano block production temporary outage"),(0,o.kt)("p",null,"On Sunday, January 22, 2023, an incident occurred resulting in block production pausing for a brief period of time (approximately two minutes, similar to the usual pause at an epoch boundary). Around 50% of block-producing nodes and relays restarted during this period. Having restarted, nodes continued to produce blocks without failure. While the network continued to operate, the issue did have the potential to affect network integrity, so was flagged as a \u2018critical\u2019 incident, thus warranting immediate response and investigation by IOG engineers.\nThe investigation (with SPO & Cardano Foundation collaboration) quickly revealed the cause of the issue \u2013 a complex bug in data structure handling code related to the precise order of insertion/deletion of multi-asset tokens into the internal ledger record. Input Output Global (IOG) engineers, along with SPOs and DApp developers, collectively identified how to reproduce the issue as a unit test that could be included in the standard Cardano node test suite.\nFollowing successful testing, this led to a bug fix being implemented, tested, benchmarked, and deployed as a hotfix in the node v.1.35.5 release on Friday, January 27, 2023. Care was taken not to highlight the exact cause of the bug during this process so that it could not be exploited prior to SPOs deploying this new node version.\nWith the fix deployed, the Cardano SPO and developer community have not seen any further instances of this issue."),(0,o.kt)("h3",{id:"further-details"},"Further Details"),(0,o.kt)("p",null,"You can read more details on the incident and how it was managed from SundaeSwap\u2019s Pi Lanningham ",(0,o.kt)("a",{parentName:"p",href:"https://www.314pool.com/post/cardano-post-mortem-1"},"here"),". Thanks again to all the community for its support in identifying and fixing this bug."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2e0caba1.e948e6e8.js b/assets/js/2e0caba1.e948e6e8.js new file mode 100644 index 0000000000..01d1b020ed --- /dev/null +++ b/assets/js/2e0caba1.e948e6e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[84670],{18121:e=>{e.exports=JSON.parse('{"permalink":"/quarterly/tags/sre","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/2e28eb6b.05031fe3.js b/assets/js/2e28eb6b.05031fe3.js new file mode 100644 index 0000000000..580de11338 --- /dev/null +++ b/assets/js/2e28eb6b.05031fe3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46576],{3905:(e,t,i)=>{i.d(t,{Zo:()=>u,kt:()=>d});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(i),c=n,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||a;return i?r.createElement(d,o(o({ref:t},u),{},{components:i})):r.createElement(d,o({ref:t},u))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-08-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-08-10-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-10-mithril.md",source:"@site/blog/2023-08-10-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-08-10T00:00:00.000Z",formattedDate:"August 10, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.7,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-08-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-08-11-performance-and-tracing"},nextItem:{title:"Consensus Team Update",permalink:"/2023-08-09-consensus"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...i}=e;return(0,n.kt)(m,(0,r.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team completed the ",(0,n.kt)("strong",{parentName:"p"},"Mithril protocol\u2019s mainnet beta")," launch: the ",(0,n.kt)("inlineCode",{parentName:"p"},"release-mainnet")," network is now consistently producing new certificates and snapshots! The team has released a new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2331.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2331.1"))," which includes some optimizations and bug fixes: the bootstrap time of a Cardano node restored from a Mithril snapshot has been significantly reduced, and a bug that made the aggregator produce corrupted archives has been fixed. They also kept working on the implementation of the stress test tool for benchmarking the aggregator: the first phase has been implemented, as well as a monitoring feature. Additionally, they kept implementing the refactoring of the serialization/deserialization of the entities of the cryptographic library, and working on the post deployment of the ",(0,n.kt)("inlineCode",{parentName:"p"},"mainnet")," infrastructure."),(0,n.kt)("p",null,"Finally, they completed the rewriting and enhancements of the documentation website, and they completed the runbook for operating a production Mithril network."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2331.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2331.1"))),(0,n.kt)("li",{parentName:"ul"},"Completed the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Release 'mainnet' Mithril network")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/918"},"#918")),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Benchmark performances of Mithril Aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/904"},"#904"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Design & implement basic stress test tool for aggregator - phase 1")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/991"},"#991")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Post deployment 'mainnet' infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1091"},"#1091"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Create Production Infrastructure Runbook")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1085"},"#1085")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Ingest 'mainnet' metrics/logs in Grafana")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1122"},"#1122")))),(0,n.kt)("li",{parentName:"ul"},"Worked on optimizations:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add a 'clean' file to extracted database in client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1131"},"#1131")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Create explorer page with registered signers")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1097"},"#1097")))),(0,n.kt)("li",{parentName:"ul"},"Worked on refactoring:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Refactor (de)serialization of crypto entities")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/668"},"#668")))),(0,n.kt)("li",{parentName:"ul"},"Worked on bugs:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Client fails to unpack some snapshot archive")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1137"},"#1137")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"The 'release-preprod' network stopped producing certificates")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1114"},"#1114")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"The 'release-mainnet' network does not show up in the explorer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1111"},"#1111")))),(0,n.kt)("li",{parentName:"ul"},"Worked on dependencies:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Upgrade Cardano node to '8.1.2'")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1090"},"#1090")))),(0,n.kt)("li",{parentName:"ul"},"Worked on troubleshooting:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Signer can't sign with 'Invalid signature for party' error")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1125"},"#1125"))))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2e2abe90.01a92536.js b/assets/js/2e2abe90.01a92536.js new file mode 100644 index 0000000000..c9b2c5bbdb --- /dev/null +++ b/assets/js/2e2abe90.01a92536.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[69467],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=p(r),h=a,m=d["".concat(u,".").concat(h)]||d[h]||c[h]||l;return r?n.createElement(m,o(o({ref:t},s),{},{components:r})):n.createElement(m,o({ref:t},s))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=h;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-01-19-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-01-19-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-19-ledger.md",source:"@site/blog/2023-01-19-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-01-19T00:00:00.000Z",formattedDate:"January 19, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.665,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-01-19-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-01-20-sre"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-01-14-db-sync"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Restructuring the ledger state",id:"restructuring-the-ledger-state",level:3},{value:"PDF hosting",id:"pdf-hosting",level:3},{value:"Powering the new ledger API",id:"powering-the-new-ledger-api",level:3},{value:"Constraint-based generators",id:"constraint-based-generators",level:3},{value:"Technical debt",id:"technical-debt",level:3}],s={toc:p},d="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The ledger team completed some preliminary ground work in preparation for CIP-1694\n(restructuring the ledger state),\nfixed the PDF hosting problem (mostly the formal specs),\nbuilt out more of the new user-friendly ledger API,\nfinished a proof of concept for constraint-based generators for property tests\n(with the hopes of being able to replace our trace generators one day),\nand addressed technical debt."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"restructuring-the-ledger-state"},"Restructuring the ledger state"),(0,a.kt)("p",null,"The existing governance structures will be replace in the conway ledger era,\nas described in CIP-1694.\nIn particular, the ledger rules will be restructured as follows:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"}," BBODY\n |\n |-------------------------------|\n v v\n TICK LEDGERS\n | |\n |---------| |\n v v v\n RUPD ~NEWEPOCH~ ~LEDGER~\n | |\n |----------| |--------|-------------------|-----------|\n v v v v v\n ~EPOCH~ +ENACTMENT+ DELEGS UTXOW +TALLY+\n | | |\n |---------|------------| v |\n v v v DELPL v\n SNAP POOLREAP -UPEC- | UTXO\n |--------| |\n v v v\n POOL DELEG ~UTXOS~\n\n-..- Removed\n+..+ Added\n~..~ Modified\n")),(0,a.kt)("p",null,"Moreover, the ledger state will also be restructured in accordance with the new rules.\nIn the conway code, we have now removed UPEC, added TALLY, and stubbed ENACTMENT.\nWe have also adapted all the data structures in the ledger state."),(0,a.kt)("p",null,"See:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3216"},"pull-3216"))),(0,a.kt)("h3",{id:"pdf-hosting"},"PDF hosting"),(0,a.kt)("p",null,"We now build all of our PDFs using a GitHub action which is triggered by pushing a tag\nwith a specific form, ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-ledger-spec-YYYY-MM-DD"),".\nThe action creates a GitHub release containing the PDFs.\nThe links in the main ledger README now point to the PDFs in the latest release."),(0,a.kt)("p",null,"See:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3245"},"pull-3245")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3260"},"pull-3260"))),(0,a.kt)("h3",{id:"powering-the-new-ledger-api"},"Powering the new ledger API"),(0,a.kt)("p",null,"We have now removed all the ",(0,a.kt)("inlineCode",{parentName:"p"},"HasField")," instances from the protocol parameter data types,\nand replaced them with lenses.\nThis is probably the last major restructuring that the ledger team will do on the code base\nfor the API for a while\n(the Plutus tools team will be working on it next, see ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/projects/5"},"here"),").\nWe also added a new helpful function ",(0,a.kt)("inlineCode",{parentName:"p"},"ensureMinCoinTxOut"),"."),(0,a.kt)("p",null,"See:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3242"},"pull-3242")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3248"},"pull-3248"))),(0,a.kt)("h3",{id:"constraint-based-generators"},"Constraint-based generators"),(0,a.kt)("p",null,"Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks\nwhich span several epochs, mimicking a real network.\nThese tests are, in theory, excellent for checking properties.\nThey are, however, very difficult to maintain and are not as random as we would like\n(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks)."),(0,a.kt)("p",null,"We would like to switch to tests which instead generate a random ledger state representative\nof not just an initial state, generate a single random valid block, and then test our properties.\nThe hope is that these will be much more random and easier to maintain."),(0,a.kt)("p",null,"We have finished a proof of concept are encouraged that this approach could work!"),(0,a.kt)("p",null,"See:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3219"},"pull-3219"))),(0,a.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3244"},"pull-3244")," massive CI speedup"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3249"},"pull-3249")," better types for fees in the protocol parameters"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3264"},"pull-3264")," move our annotator code to the ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-ledger-binary")," package where it belongs"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3239"},"pull-3239")," move the ",(0,a.kt)("inlineCode",{parentName:"li"},"Wdrls")," type to the ",(0,a.kt)("inlineCode",{parentName:"li"},"Core")," module.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2e3d75f1.4b46ccd6.js b/assets/js/2e3d75f1.4b46ccd6.js new file mode 100644 index 0000000000..41645e81b0 --- /dev/null +++ b/assets/js/2e3d75f1.4b46ccd6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7387],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),c=s(r),m=n,d=c["".concat(u,".").concat(m)]||c[m]||p[m]||o;return r?a.createElement(d,i(i({ref:t},h),{},{components:r})):a.createElement(d,i({ref:t},h))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2024-03-22-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-03-22-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-22-hydra.md",source:"@site/blog/2024-03-22-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-03-22T00:00:00.000Z",formattedDate:"March 22, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.895,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-03-22-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-03-27-performance-and-tracing"},nextItem:{title:"Consensus Team Update",permalink:"/2024-03-20-consensus"}},u={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:s},c="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team restored test compatibility with all networks, reviewed and merged streaming plugins contributed by SundaeLabs. The team also fixed tutorial instructions for downloading the latest cardano-node, fixed the observed contesters bug, prepared a PRs for downstream clients to use the new API format for transactions (preparing the release with this breaking change). Finally, they also recorded a walkthrough video on how the hydra project is run: ",(0,n.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=JGUeO7A6mMU"},"https://www.youtube.com/watch?v=JGUeO7A6mMU")),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Restored compatibility with all networks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1355"},"#","1355"),"."),(0,n.kt)("li",{parentName:"ul"},"Reviewed and merged streaming plugins (only missing a how-to) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1325"},"#","1325"),"."),(0,n.kt)("li",{parentName:"ul"},"Fixed tutorial instructions for downloading cardano-node 8.9.0 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1367"},"#","1367"),"."),(0,n.kt)("li",{parentName:"ul"},"Fixed the observed contesters bug ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1266"},"#","1266"),"."),(0,n.kt)("li",{parentName:"ul"},"Prepared a PR for Kupo using new Hydra transaction format ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/CardanoSolutions/kupo/pull/166"},"kupo#166"),"."),(0,n.kt)("li",{parentName:"ul"},"Recorded a walkthrough on how the hydra project is run (uncut) ",(0,n.kt)("a",{parentName:"li",href:"https://www.youtube.com/watch?v=JGUeO7A6mMU"},"https://www.youtube.com/watch?v=JGUeO7A6mMU"),".")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Conduct the monthly review meeting"),(0,n.kt)("li",{parentName:"ul"},"Improve the ",(0,n.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint to unblock users"),(0,n.kt)("li",{parentName:"ul"},"Stateful testing of transaction traces to verify corner cases for\nincremental decommit"),(0,n.kt)("li",{parentName:"ul"},"Release ",(0,n.kt)("inlineCode",{parentName:"li"},"0.16.0"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2e4b96cf.98a28e4e.js b/assets/js/2e4b96cf.98a28e4e.js new file mode 100644 index 0000000000..03740af572 --- /dev/null +++ b/assets/js/2e4b96cf.98a28e4e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[59936],{26624:e=>{e.exports=JSON.parse('[{"label":"benchmarking-reports","permalink":"/reports/tags/benchmarking-reports","count":6}]')}}]); \ No newline at end of file diff --git a/assets/js/2e4cebe0.339cd329.js b/assets/js/2e4cebe0.339cd329.js new file mode 100644 index 0000000000..004103648f --- /dev/null +++ b/assets/js/2e4cebe0.339cd329.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32532],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=s(n),u=r,h=d["".concat(c,".").concat(u)]||d[u]||p[u]||o;return n?a.createElement(h,i(i({ref:t},m),{},{components:n})):a.createElement(h,i({ref:t},m))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));const o={title:"Performance & Tracing Q4 2023 Update",slug:"2023-Q4-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2023-Q4-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q4-performance-and-tracing.md",source:"@site/quarterly/2023-Q4-performance-and-tracing.md",title:"Performance & Tracing Q4 2023 Update",description:"2023-10 - 2024-01",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"performance-tracing",permalink:"/quarterly/tags/performance-tracing"}],readingTime:2.28,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Q4 2023 Update",slug:"2023-Q4-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Q4 2023 Update",permalink:"/quarterly/2023-Q4-consensus"},nextItem:{title:"SRE Q4 2023 Update",permalink:"/quarterly/2023-Q4-sre"}},c={authorsImageUrls:[void 0]},s=[{value:"2023-10 - 2024-01",id:"2023-10---2024-01",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Release benchmarking",id:"release-benchmarking",level:4},{value:"Conway benchmarks",id:"conway-benchmarks",level:4},{value:"P2P benchmarks",id:"p2p-benchmarks",level:4},{value:"GHC9 performance",id:"ghc9-performance",level:4},{value:"New nomad cluster",id:"new-nomad-cluster",level:4},{value:"Consensus component QTAs",id:"consensus-component-qtas",level:4},{value:"New team member",id:"new-team-member",level:4}],m={toc:s},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-10---2024-01"},"2023-10 - 2024-01"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Release benchmarking, leading up to next mainnet release"),(0,r.kt)("li",{parentName:"ul"},"Conway benchmarking of existing Babbage workloads"),(0,r.kt)("li",{parentName:"ul"},"P2P benchmarks, validating viability as default topology"),(0,r.kt)("li",{parentName:"ul"},"Added basic ",(0,r.kt)("inlineCode",{parentName:"li"},"PlutusV3")," capability of our tooling"),(0,r.kt)("li",{parentName:"ul"},"Publication of benchmarking reports accompanying a mainnet release"),(0,r.kt)("li",{parentName:"ul"},"GHC9 performance investigation"),(0,r.kt)("li",{parentName:"ul"},"Finalized and validated all optimizations for the new tracing system"),(0,r.kt)("li",{parentName:"ul"},"New Nomad benchmarking cluster: production use"),(0,r.kt)("li",{parentName:"ul"},"Adjustment of our infrastructure to cover the migration to ",(0,r.kt)("em",{parentName:"li"},"IntersectMBO")),(0,r.kt)("li",{parentName:"ul"},"Conensus QTAs: prototype developed into alpha-stage benchmark"),(0,r.kt)("li",{parentName:"ul"},"Successful on-boarding of a new team member")),(0,r.kt)("h4",{id:"release-benchmarking"},"Release benchmarking"),(0,r.kt)("p",null,"We've performed and analyzed benchmarks for node versions ",(0,r.kt)("inlineCode",{parentName:"p"},"8.6.x")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"8.7.3"),", which is projected to be the next mainnet release, throughout Q4.\nAlong that way, we have identified, located and handled all performance blockers. "),(0,r.kt)("p",null,"Additionally, we've started publishing benchmarking reports here on Cardano Updates. The format is meant to increase transparency and\nprovide insight into those measurements that accompany mainnet releases - demonstrating the absence of performance regressions and development\nof specific metrics over time."),(0,r.kt)("h4",{id:"conway-benchmarks"},"Conway benchmarks"),(0,r.kt)("p",null,"Furthermore, we've done first ever benchmarking of the Conway ledger. To that end, we've ported our Babbage workloads to Conway for\nimmediate comparability. Fortunately, we've have not found any performance regression in the Conway ledger."),(0,r.kt)("h4",{id:"p2p-benchmarks"},"P2P benchmarks"),(0,r.kt)("p",null,"In Q4, we've validated P2P topology to be viable as default for both relay and block producer nodes. As a consequence, we've switched\nto P2P topology for benchmarking baselines ourselves."),(0,r.kt)("h4",{id:"ghc9-performance"},"GHC9 performance"),(0,r.kt)("p",null,"In Q4, evaluation of GHC9.2's and GHC9.6's optimizer in the context of the Cardano code base has been completed.\nEventually, GHC9.6 has shown itself to be much more suitable from a performance perspective. We're convinced that\nwith a few select annotations in the code, GHC9.6's optimizer can produce a result on par performance-wise with GHC8.10 -\nwhich just was a great release in that regard. With GHC9.2 unfortunately, the changes would have to be more invasive - and thus more time-consuming."),(0,r.kt)("h4",{id:"new-nomad-cluster"},"New nomad cluster"),(0,r.kt)("p",null,"We\u2019ve moved the new Nomad cluster into production use and established new baselines for each workload on it.\nAdditionally, we\u2019ve shut down the legacy ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-ops")," benchmarking cluster, and archived all raw data from it."),(0,r.kt)("h4",{id:"consensus-component-qtas"},"Consensus component QTAs"),(0,r.kt)("p",null,"We\u2019ve developed the existing prototype into an automatable, self-contained benchmark called ",(0,r.kt)("inlineCode",{parentName:"p"},"beacon"),", as well as systematized workloads and run structure for it.\nMoreover, we\u2019ve demonstrated usefulness of the metrics, their reproducibility, and identified domains viable for QTAs with system-level benchmarks."),(0,r.kt)("h4",{id:"new-team-member"},"New team member"),(0,r.kt)("p",null,"We're happy to welcome a new joiner to our team! We've successfully onboarded him in Q4; he has taken\nover the ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," service - the node-external component of the new tracing system - and has already\nlanded several valuable contributions."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2e52ad4e.c4229054.js b/assets/js/2e52ad4e.c4229054.js new file mode 100644 index 0000000000..b46d335eb0 --- /dev/null +++ b/assets/js/2e52ad4e.c4229054.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[66840],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),u=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(r),d=n,h=c["".concat(s,".").concat(d)]||c[d]||m[d]||i;return r?a.createElement(h,o(o({ref:t},p),{},{components:r})):a.createElement(h,o({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:n,o[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-03-17-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-17-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-17-crypto.md",source:"@site/blog/2023-03-17-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-03-17T00:00:00.000Z",formattedDate:"March 17, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.255,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-03-17-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-03-21-network"},nextItem:{title:"Hydra Team Update",permalink:"/2023-03-17-hydra"}},s={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"Sidechains",id:"sidechains",level:3}],p={toc:u},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Mithril: RFP finished. Code ready for audit."),(0,n.kt)("li",{parentName:"ul"},"cardano-base: BLS12-381's PR approved, only blocker is Windows' CI. Preparing extensive testing strategy together with Plutus and Testing teams."),(0,n.kt)("li",{parentName:"ul"},"KES agent: Working on a desing on how to use IO sim in order to allow for proper network simulation testing."),(0,n.kt)("li",{parentName:"ul"},"Sidechains: Preparing proving system to use the curves needed for main-net PoC. ")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Merged ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/783"},"PR#783")),(0,n.kt)("li",{parentName:"ul"},"RFP for crypto audit ready.")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"BLS12-381 branch approved ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/266"},"PR#266"),". Blocker is Windown's CI. Working on it"),(0,n.kt)("li",{parentName:"ul"},"Testing strategy for BLS bindings:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Preparing test-vectors for Groth16, and simple BLS signatures"),(0,n.kt)("li",{parentName:"ul"},"Finding community projects to help write their use cases"),(0,n.kt)("li",{parentName:"ul"},"Designing AC, and expected tests for higher levels of development (Plutus team, E2E tests, etc)"))),(0,n.kt)("li",{parentName:"ul"},"Wrote ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/blogpost_breaking_ed25519_vrf/blob/main/blog.md"},"blogpost")," on how using the same key for ed25519 and VRF completely breaks the security of both systems ")),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Started integration of sockets interface used in consensus"),(0,n.kt)("li",{parentName:"ul"},"Use that for de/ser"),(0,n.kt)("li",{parentName:"ul"},"Resolving problems with block memory in IOSim. Can't use withForeignPtr in IOSim"),(0,n.kt)("li",{parentName:"ul"},"Results in having to parametrise for IOSim in KES and DSIGN for testing")),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Prepared an API for proof generation in sidechains, with it's C API for integration with JVM languages."),(0,n.kt)("li",{parentName:"ul"},"Design document and start interacting with researchers for concrete instantiation of SNARK-based ATMS."),(0,n.kt)("li",{parentName:"ul"},"EdDSA over JubJub ready")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2ea56af2.c24ba665.js b/assets/js/2ea56af2.c24ba665.js new file mode 100644 index 0000000000..cdb9111de3 --- /dev/null +++ b/assets/js/2ea56af2.c24ba665.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[34263],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(r),d=l,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||n;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=r.length,i=new Array(n);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>n,metadata:()=>o,toc:()=>u});var a=r(87462),l=(r(67294),r(3905));const n={title:"Ledger Team Update",slug:"2024-02-14-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-02-14-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-14-ledger.md",source:"@site/blog/2024-02-14-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-02-14T00:00:00.000Z",formattedDate:"February 14, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.88,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-02-14-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-02-15-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2024-02-14-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Improvements",id:"improvements",level:3},{value:"Testing",id:"testing",level:3},{value:"Specification",id:"specification",level:3},{value:"Releasing",id:"releasing",level:3}],s={toc:u},c="wrapper";function m(e){let{components:t,...r}=e;return(0,l.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"Last few weeks were spent mostly on implementing various fixes, writing tests and\nimproving capabilities of our testing frameworks. Important bug fixes are:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Retention of Anchor for proposal procedures in the ledger state in order for users to be\nable to query the node for those anchors"),(0,l.kt)("li",{parentName:"ul"},"JSON serialization of rational numbers in protocol parameters and governance procedures\nare encoded without loss of precision")),(0,l.kt)("p",null,"Feature wise, we've added a new protocol parameter that controls the contribution of\nreference scripts sizes in the transaction fee calculation formula."),(0,l.kt)("p",null,"Major achievement that is worth announcing is a Haskell package named\n",(0,l.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cuddle"},(0,l.kt)("inlineCode",{parentName:"a"},"cuddle"))," that we developed over the last few\nmonths. Soon we will be transitioning to specifying CDDL in Haskell for all eras using\nthat package. It will be used to compile the CDDL specification that developers in the\ncommunity rely on so much. There are enormous benefits in using this tool, when compared\nto writing CDDL specification manually. Namely it allows us to reduce duplication and\nreuse common and unchanged specification from previous eras. It also improves safety and\ncorrectness of our specification and decoders, because it ensures that the specification\nis well typed and it uses QuickCheck to generate random data for validating that our\ndecoders are implemented according to the spec."),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4031"},"pull-4031")," - Further proposals improvements. Take 2"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3996"},"pull-3996")," - Index aware PlutusPurpose"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3983"},"pull-3983")," - Include reference scripts size in min fee calculation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4040"},"pull-4040")," - Redeemers serialization fixes"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4033"},"pull-4033")," - Make Conway-specific queries only available in Conway"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4028"},"pull-4028")," - Embed ProposalProcedure in GovActionState"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4056"},"pull-4056")," - Reduce duplication in Conway UTXOW rule"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4055"},"pull-4055")," - Update MinFeeRefScriptCoinsPerByte."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4053"},"pull-4053")," - Rename committeeQuorum to committeeThreshold"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4058"},"pull-4058")," - Fix ",(0,l.kt)("inlineCode",{parentName:"li"},"ToJSON")," instance of ",(0,l.kt)("inlineCode",{parentName:"li"},"BoundedRatio")," to avoid precision loss"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4070"},"pull-4070")," - Rename AsIndex to AsIx"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4065"},"pull-4065")," - Remove ",(0,l.kt)("inlineCode",{parentName:"li"},"ConwayPool")," rule definition")),(0,l.kt)("h3",{id:"improvements"},"Improvements"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4037"},"pull-4037")," - Add capability to hash ",(0,l.kt)("inlineCode",{parentName:"li"},"Plutus")," scripts directly"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4030"},"pull-4030")," - Report Plutus ",(0,l.kt)("inlineCode",{parentName:"li"},"ScriptHash")," upon execution failure")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3895"},"pull-3895")," - Constrained v2"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3981"},"pull-3981")," - Test proposals rewrite"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4051"},"pull-4051")," - Full support of ",(0,l.kt)("inlineCode",{parentName:"li"},"random")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"quickcheck-transformers")," in impTest"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4050"},"pull-4050"),' - Fixed the "All Tx are valid on traces of length 150" intermittent bug'),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4049"},"pull-4049")," - Support for Plutus scripts in ImpTest"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4075"},"pull-4075")," - Discontinue the mingw target in the nix build"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4072"},"pull-4072")," - Fix ouroborus-consensus serialization roundtrip test"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4080"},"pull-4080")," - Test that a resigned CC cannot be reelected without removal"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4083"},"pull-4083")," - Fix flakyness at the cost of turning test on during development"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4084"},"pull-4084")," - Fix intermittent test failures in leader-proportion test")),(0,l.kt)("h3",{id:"specification"},"Specification"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4015"},"pull-4015")," - Shelley ledger spec: amend erratum on nonce stabilization window"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4064"},"pull-4064")," - Fix wrong prose for new epoch environment"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4081"},"pull-4081")," - Fix MIR rule using wrong values for treasury and reserves")),(0,l.kt)("h3",{id:"releasing"},"Releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4041"},"pull-4041")," - Update ",(0,l.kt)("inlineCode",{parentName:"li"},"haskellNix"),"flake"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4035"},"pull-4035")," - Add a file needed for GithubPages to use a custom domain"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4060"},"pull-4060")," - Release notes 8.8"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4073"},"pull-4073")," - Add aarch64-darwin in flake.nix")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2eba0b82.7b500fcd.js b/assets/js/2eba0b82.7b500fcd.js new file mode 100644 index 0000000000..b93ecdc8da --- /dev/null +++ b/assets/js/2eba0b82.7b500fcd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43898],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),d=p(r),c=n,h=d["".concat(u,".").concat(c)]||d[c]||m[c]||l;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=c;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[d]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const l={title:"SRE Team Update",slug:"2023-01-20-sre",authors:"manveru",tags:["sre"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2023-01-20-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-20-sre.md",source:"@site/blog/2023-01-20-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-01-20T00:00:00.000Z",formattedDate:"January 20, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.13,hasTruncateMarker:!1,authors:[{name:"Michael Fellinger",title:"SRE Team Lead",url:"https://github.com/manveru",imageURL:"https://github.com/manveru.png",key:"manveru"}],frontMatter:{title:"SRE Team Update",slug:"2023-01-20-sre",authors:"manveru",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-01-20-network"},nextItem:{title:"Ledger Team Update",permalink:"/2023-01-19-ledger"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cicero",id:"cicero",level:3},{value:"Tullia",id:"tullia",level:3},{value:"Bitte",id:"bitte",level:3},{value:"cardano-world",id:"cardano-world",level:3},{value:"bitte-world",id:"bitte-world",level:3},{value:"ci-world",id:"ci-world",level:3}],s={toc:p},d="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on Cicero, Tullia, and Bitte, as well as providing\nsupport for cardano-world."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"cicero"},"Cicero"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fixed various race conditions around transformers."),(0,n.kt)("li",{parentName:"ul"},"Brought our CI up to date."),(0,n.kt)("li",{parentName:"ul"},"Migrated to the Nomad exec driver with Nix support for many actions."),(0,n.kt)("li",{parentName:"ul"},"Moved Nix builds to the Nomad clients for much better cache locality."),(0,n.kt)("li",{parentName:"ul"},"Ongoing work on vastly improving the action matching and evaluation speed."),(0,n.kt)("li",{parentName:"ul"})),(0,n.kt)("h3",{id:"tullia"},"Tullia"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Made it easier to support cloning from a PR's fork"),(0,n.kt)("li",{parentName:"ul"},"Update to latest std"),(0,n.kt)("li",{parentName:"ul"},"Add workaround for cgroup issue: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/hashicorp/nomad/issues/12877"},"nomad#12877")),(0,n.kt)("li",{parentName:"ul"},"github preset: add ",(0,n.kt)("inlineCode",{parentName:"li"},"github.ci.remote")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"(read|get)Repository")," functions"),(0,n.kt)("li",{parentName:"ul"},"Fix various issues around CUE handling")),(0,n.kt)("h3",{id:"bitte"},"Bitte"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Upgrade to NixOS 22.11"),(0,n.kt)("li",{parentName:"ul"},"Prototype usage of ",(0,n.kt)("a",{parentName:"li",href:"https://colmena.cli.rs"},"Colmena")," for deploys instead of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/serokell/deploy-rs"},"deploy-rs")),(0,n.kt)("li",{parentName:"ul"},"Finalized work on Equinix Metal support"),(0,n.kt)("li",{parentName:"ul"},"Prototype better secrets management with ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/yaxitech/ragenix"},"ragenix")," instead of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/Mic92/sops-nix"},"sops-nix")),(0,n.kt)("li",{parentName:"ul"},"Improve CI and bring it up to date")),(0,n.kt)("h3",{id:"cardano-world"},"cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fixd various OOM issues on preview and preprod"),(0,n.kt)("li",{parentName:"ul"},"Rotated KES keys on preview and preprod"),(0,n.kt)("li",{parentName:"ul"},"Optimize mainnet db-sync to cope with higher load"),(0,n.kt)("li",{parentName:"ul"},"Fix an issue where PostgreSQL would fail after a reboot")),(0,n.kt)("h3",{id:"bitte-world"},"bitte-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated to NixOS 22.11")),(0,n.kt)("h3",{id:"ci-world"},"ci-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated to NixOS 22.11"),(0,n.kt)("li",{parentName:"ul"},"Added Equnix cluster"),(0,n.kt)("li",{parentName:"ul"},"Improve caching of Nix builds")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2f43fcdf.4b913562.js b/assets/js/2f43fcdf.4b913562.js new file mode 100644 index 0000000000..9475e67946 --- /dev/null +++ b/assets/js/2f43fcdf.4b913562.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[56734],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,h=p["".concat(i,".").concat(d)]||p[d]||m[d]||s;return n?r.createElement(h,o(o({ref:t},c),{},{components:n})):r.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>m,frontMatter:()=>s,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const s={title:"Consensus Team Update",slug:"2024-03-06-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-06-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-06-consensus.md",source:"@site/blog/2024-03-06-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-03-06T00:00:00.000Z",formattedDate:"March 6, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.675,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-03-06-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-03-08-performance-and-tracing"},nextItem:{title:"Mithril Team Update",permalink:"/2024-03-06-mithril"}},i={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Completed the rebase of the production libraries for UTXO-HD on 8.9, both in ",(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-api")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node"),"."),(0,a.kt)("li",{parentName:"ul"},"Measured sync and replay times and memory in UTXO-HD. The latest result are reported ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/issues/5495"},"here"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/985"},"Bugfixed")," the snapshot interval."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/983"},"Added")," an extra case to ",(0,a.kt)("inlineCode",{parentName:"li"},"isIncorrectClaimedFlag")," for ",(0,a.kt)("inlineCode",{parentName:"li"},"Babbage")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"Conway")," eras."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/970"},"Added")," a ",(0,a.kt)("inlineCode",{parentName:"li"},"db-analyser")," analysis to get the UTXO size per slot. The result of the analysis is illustrated ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/970#issuecomment-1981052455"},"here"),"."),(0,a.kt)("li",{parentName:"ul"},"Started integration work for Node release 8.10."),(0,a.kt)("li",{parentName:"ul"},"Reviewed the Genesis pull-requests submitted by Tweag. They are pending a final round of review."),(0,a.kt)("li",{parentName:"ul"},"Helped the current release engineer prepare the 8.9 release candidate."),(0,a.kt)("li",{parentName:"ul"},"The Consensus Team has also been helping troubleshoot known issues with 8.9 (eg snapshots causing missed leadership schedules, unexpected snapshot interval, integration tests, etc).")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2fa57f55.79002ce0.js b/assets/js/2fa57f55.79002ce0.js new file mode 100644 index 0000000000..626f2cebac --- /dev/null +++ b/assets/js/2fa57f55.79002ce0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[47176],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var d=a.createContext({}),s=function(e){var t=a.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=s(e.components);return a.createElement(d.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,d=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=s(n),m=r,h=u["".concat(d,".").concat(m)]||u[m]||p[m]||o;return n?a.createElement(h,i(i({ref:t},c),{},{components:n})):a.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));const o={title:"Ledger Team Update",slug:"2022-09-01-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-09-01-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-01-ledger.md",source:"@site/blog/2022-09-01-ledger.md",title:"Ledger Team Update",description:"Ledger Update",date:"2022-09-01T00:00:00.000Z",formattedDate:"September 1, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.94,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-09-01-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-09-16-ledger"},nextItem:{title:"Consensus Team Update",permalink:"/2022-08-31-consensus"}},d={authorsImageUrls:[void 0]},s=[{value:"Ledger Update",id:"ledger-update",level:2},{value:"New minimal ledger era",id:"new-minimal-ledger-era",level:3},{value:"Addressing technical debt",id:"addressing-technical-debt",level:3}],c={toc:s},u="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"ledger-update"},"Ledger Update"),(0,r.kt)("p",null,"Since finishing up support for the Vasil Hardfork, the ledger team has been\nfocused on two main things: a new ledger era and technical debt."),(0,r.kt)("h3",{id:"new-minimal-ledger-era"},"New minimal ledger era"),(0,r.kt)("p",null,"We have implemented a new ledger era named ",(0,r.kt)("inlineCode",{parentName:"p"},"conway")," which is nearly identical\nto the ",(0,r.kt)("inlineCode",{parentName:"p"},"babbage")," era. This has been the first time that we have been able to see\nwhat a minimal ledger era looks like. We have finished this task, modulo any\nintegration issues that might come up. The only thing that the ",(0,r.kt)("inlineCode",{parentName:"p"},"conway")," era\ndoes differently from the ",(0,r.kt)("inlineCode",{parentName:"p"},"babbage")," era is provide support for rotating\nthe master keys using the hardfork combinator's state translation.\nWe may end up adding features to the ",(0,r.kt)("inlineCode",{parentName:"p"},"conway")," era, but it is a nice exercise\nseeing what it looks like to get a minimal ledger era supported in all the\ndownstream components."),(0,r.kt)("h3",{id:"addressing-technical-debt"},"Addressing technical debt"),(0,r.kt)("p",null,"We have been addressing technical debt, mostly in an effort to make the\nrepository a more friendly code base to work in."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We have begun work on a ledger API, called ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-ledger-api"),"."),(0,r.kt)("li",{parentName:"ul"},"We have done a big re-design of the major type classes used in the ledger.\nWith hindsight on our side, we now have something much more organized and\neasier to use."),(0,r.kt)("li",{parentName:"ul"},"We have done a lot of re-naming. The names across eras are now much more\nuniform, avoid certain confusions that plagued us, and are clearer in where\nthey are from."),(0,r.kt)("li",{parentName:"ul"},"We have reduced a lot of code duplication that could lead to bugs if you\ndo not have the whole code base in your head."),(0,r.kt)("li",{parentName:"ul"},"We have added a handful of performance improvements."),(0,r.kt)("li",{parentName:"ul"},"We added type safety in a number of locations. In particular, the type of\nvalues that can be minted in a transaction no longer allow for Lovelace\nin the type, and some functions which used to handle both timelock scripts\nand plutus script now correctly enoforce at the type level that only one of\nthem can be used."),(0,r.kt)("li",{parentName:"ul"},"We made our generators so that they now produce a much richer set of\nvalid serializations. There is room within CBOR to serialize the same\ndata structure in multiple ways, and it is helpful to have the generators\nuse a wide variety."),(0,r.kt)("li",{parentName:"ul"},"We have begun re-organizing our test suites.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2fd426fa.a88a4610.js b/assets/js/2fd426fa.a88a4610.js new file mode 100644 index 0000000000..ce9d6edc48 --- /dev/null +++ b/assets/js/2fd426fa.a88a4610.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[36016],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(n),h=o,m=c["".concat(l,".").concat(h)]||c[h]||d[h]||a;return n?r.createElement(m,i(i({ref:t},p),{},{components:n})):r.createElement(m,i({ref:t},p))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var r=n(87462),o=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-01-11-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-01-11-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-11-consensus.md",source:"@site/blog/2023-01-11-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-01-11T00:00:00.000Z",formattedDate:"January 11, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.35,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-01-11-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-01-12-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-01-11-performance-and-tracing"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD Prototype",id:"utxo-hd-prototype",level:3},{value:"New Conway era",id:"new-conway-era",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3}],p={toc:u},c="wrapper";function d(e){let{components:t,...a}=e;return(0,o.kt)(c,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"The consensus team is resuming its activities after the Christmas break. During\nthese weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and\ndiscussing with the Ledger team the changes that might be required for the next\niterations. The pull request that adds the Conway era is waiting for a second\nreview round and we hope to merge it soon. On the technical debt side we are\nlooking into a property-test failure found in the iterators. We are\ninvestigating if this is an error in the model or in the implementation. We also\nimproved the documentation of our testing code."),(0,o.kt)("h2",{id:"workstreams"},"Workstreams"),(0,o.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD Prototype"),(0,o.kt)("p",null,"We worked with the Ledger team to start preparing the next versions of UTxO-HD.\nThe Ledger team is concerned that for the remaining maps we might need the full\nledger state on epoch boundaries. Since the main consumer of the ledger rules is\nConsensus, the code that requires access to a full state could be moved from the\nledger to some Ledger-Consensus bridge. Eg. the traversal of rewards could take\nplace in such bridge, instead of querying the ledger for the values that are\nrequired in the epoch-transition computations."),(0,o.kt)("p",null,"We ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4234"},"relocated")," some UTxO-HD definitions, in preparation for merging\nthe prototype into ",(0,o.kt)("inlineCode",{parentName:"p"},"master"),"."),(0,o.kt)("p",null,"We also completed updated local benchmarks comparing the replay time and memory\nconsumption of:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"the baseline node (",(0,o.kt)("inlineCode",{parentName:"li"},"f2fc76ef45647275c98634da1718290b976ff364"),") "),(0,o.kt)("li",{parentName:"ul"},"the UTxO-HD node with the in-memory backend "),(0,o.kt)("li",{parentName:"ul"},"the UTxO-HD node with the LMDB backend")),(0,o.kt)("p",null,"The following plot shows the results: we can see that the LMDB node barely\nreaches 8GB of memory, but it takes 1.78 times longer to replay the chain. The\nin-memory backend is about 30 minutes faster, but still slower than the baseline\nversion. We are aware of this phenomenon and it is inherent to the problem of\nmaintaining sequences of differences of the last ",(0,o.kt)("inlineCode",{parentName:"p"},"k")," ledger states that allows\nus to perform rollback and roll-forward. We are in the process of measuring\nsyncing from scratch times."),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(15253).Z,width:"2500",height:"1700"})),(0,o.kt)("p",null,"We also ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4263"},"added ",(0,o.kt)("inlineCode",{parentName:"a"},"StaticEither")," accessors")," that helped us to simplify\nthe UTxO-HD prototype."),(0,o.kt)("h3",{id:"new-conway-era"},"New Conway era"),(0,o.kt)("p",null,"We incorporated the feedback of the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3971"},"pull request"),", and rebased this\nbranch on top of ",(0,o.kt)("inlineCode",{parentName:"p"},"master"),". The PR is pending a second review round and we hope\nto merge this soon."),(0,o.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,o.kt)("p",null,"We are investigating a ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4183"},"property-testing failure")," involving\niterators. Solving this requires understanding the expected behavior of\niterators in the counterexample found by ",(0,o.kt)("inlineCode",{parentName:"p"},"QuickCheck")," to determine if the error\nis in the model or in the implementation."),(0,o.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,o.kt)("p",null,"We ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4248"},"moved")," the contents of ",(0,o.kt)("inlineCode",{parentName:"p"},"docs/Testing.md")," closer to the code, so that the\nexplanations about the tests are easier to find in the relevant modules, and the\ndocumentation is easier to keep up to date."))}d.isMDXComponent=!0},15253:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2023-01-11-utxo-hd-replay-benchmarks-dcf6daaf5460de7591a60db1457d2e58.png"}}]); \ No newline at end of file diff --git a/assets/js/300a86ed.ba5069cf.js b/assets/js/300a86ed.ba5069cf.js new file mode 100644 index 0000000000..7aa6dabe20 --- /dev/null +++ b/assets/js/300a86ed.ba5069cf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73010],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),u=p(a),d=n,h=u["".concat(c,".").concat(d)]||u[d]||m[d]||l;return a?r.createElement(h,i(i({ref:t},s),{},{components:a})):r.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=d;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[u]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-02-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",o={permalink:"/2024-02-15-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-15-node-cli-api.md",source:"@site/blog/2024-02-15-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-02-15T00:00:00.000Z",formattedDate:"February 15, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.01,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-02-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-02-16-sre"},nextItem:{title:"Ledger Team Update",permalink:"/2024-02-14-ledger"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],s={toc:p},u="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-02-01---2024-02-15"},"2024-02-01 - 2024-02-15"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"cardano-cli: Added the 'immutable' tip parameter to conway queries that allow the user to query either the current volatile tip (default) or the immutable tip. The committee keys can now sign transactions, required to submit votes. ")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"cardano-api: Fix Conway PlutusV3 script hash mismatch. Make committee hash prefixes CIP-5 compliant. "))),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/608"},"Release 8.20.1.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/607"},"Upgrade cardano-api to 8.38.0.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/605"},"Fix error messages as CLI format is no longer supported")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/603"},"Add immutable tip parameter to conway queries")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/600"},"Update 8.20.0.0 changelog")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/599"},"Fix create-testnet-data creating negative supply")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/597"},"Release 8.20.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/596"},"Make committee keys able to sign transactions")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/595"},"Cl/testnetdata")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/594"},"Make it build with ghc-9.8"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/452"},"Fix Conway script hash mismatch")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/451"},"Release 8.38.0.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/446"},"Release 8.38.0.1")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/445"},"Fix removal of toScriptIndex export")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/443"},"Fix haddock in checkLedgerState")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/442"},"Release 8.38.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/441"},"Make committee keys able to sign transactions")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/440"},"Make committee hash prefixes CIP-5 compliant"))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5664"},"cardano-testnet: read JSON from the CLI more easily")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5658"},"Use environment variable for network magic instead of CLI arg in testnet tests"))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/610"},"Fix git revision reported by --version on nix build"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/301cd1f4.799031c5.js b/assets/js/301cd1f4.799031c5.js new file mode 100644 index 0000000000..b06290e3ca --- /dev/null +++ b/assets/js/301cd1f4.799031c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11952],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=l(n),m=a,d=c["".concat(u,".").concat(m)]||c[m]||h[m]||o;return n?r.createElement(d,s(s({ref:t},p),{},{components:n})):r.createElement(d,s({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:a,s[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-08-23-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-08-23-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-23-consensus.md",source:"@site/blog/2023-08-23-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-08-23T00:00:00.000Z",formattedDate:"August 23, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.42,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-08-23-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-08-24-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-08-18-goedel"}},u={authorsImageUrls:[void 0]},l=[{value:"High level summary",id:"high-level-summary",level:2},{value:"UTxO-HD",id:"utxo-hd",level:2},{value:"Tech debt",id:"tech-debt",level:2},{value:"Support",id:"support",level:2}],p={toc:l},c="wrapper";function h(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"On the UTxO-HD front we reached another important milestone, where we handed over the implementation for benchmarking and testing. We are working on addressing the first issues that were found during the integration tests.\nOn the Genesis front we are finalizing the argument that a checkpoint is not necessary for the initial release, including supporting to support said argument. We are also working on the new node release, and several improvements to our code-base."),(0,a.kt)("h2",{id:"utxo-hd"},"UTxO-HD"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We addressed the issues that came from the benchmarking and testing phase (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/314"},"#314"),").",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We fixed the operational-certificate update exception (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/305"},"#305"),").")))),(0,a.kt)("h2",{id:"tech-debt"},"Tech debt"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We elaborated an inventory of the symbols used by downstream clients in an effort to clearly define the Consensus API, which will help managing changes and their impact to the downstream clients (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/tree/jasagredo/consensus-api"},"this branch"),")."),(0,a.kt)("li",{parentName:"ul"},"We extracted the SOP modules to a separate package as part of our effort to reduce the Consensus API surface area (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/tree/jasagredo/test-sop"},"this branch"),")."),(0,a.kt)("li",{parentName:"ul"},"We took the first step towards improving how the Cardano hard-fork block is instantiated when running a node (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/275"},"#275"),")."),(0,a.kt)("li",{parentName:"ul"},"We decreased the flakiness for our test suite (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/284"},"#284"),")."),(0,a.kt)("li",{parentName:"ul"},"We incorporated and merged the pull-request on query versioning (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/273"},"#273"),")."),(0,a.kt)("li",{parentName:"ul"},"We started working on new performance-based regression tests for mempool operations.")),(0,a.kt)("h2",{id:"support"},"Support"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/nfrisby"},"Nick Frisby")," continues with his engineer responsibilities. Notably getting the Consensus release out for node ",(0,a.kt)("inlineCode",{parentName:"li"},"pre-release 8.3"),". Nick also began integrating it into downstream branches (",(0,a.kt)("inlineCode",{parentName:"li"},"cardano{-api,-cli,-node}"),"). The Node team has now taken over, since Nick had progressed up to the point where they needed to start making new design decisions. Related PRs:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/283"},"#283")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/301"},"#301")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/304"},"#304")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/308"},"#308"))))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3029c859.32e896e5.js b/assets/js/3029c859.32e896e5.js new file mode 100644 index 0000000000..aa38f74c93 --- /dev/null +++ b/assets/js/3029c859.32e896e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11915],{3905:(e,t,i)=>{i.d(t,{Zo:()=>m,kt:()=>d});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function l(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),i=t;return e&&(i="function"==typeof e?e(t):l(l({},t),e)),i},m=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),h=p(i),c=n,d=h["".concat(s,".").concat(c)]||h[c]||u[c]||a;return i?r.createElement(d,l(l({ref:t},m),{},{components:i})):r.createElement(d,l({ref:t},m))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,l=new Array(a);l[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[h]="string"==typeof e?e:n,l[1]=o;for(var p=2;p{i.r(t),i.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2024-01-24-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2024-01-24-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-24-mithril.md",source:"@site/blog/2024-01-24-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-01-24T00:00:00.000Z",formattedDate:"January 24, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.505,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-01-24-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-01-24-consensus"},nextItem:{title:"Network Team Update",permalink:"/2024-01-22-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],m={toc:p},h="wrapper";function u(e){let{components:t,...i}=e;return(0,n.kt)(h,(0,r.Z)({},m,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team released the initial version of the ",(0,n.kt)("a",{parentName:"p",href:"https://www.npmjs.com/package/@mithril-dev/mithril-client-wasm"},"Mithril client NPM package"),", enabling developers to integrate core Mithril features into their web applications running in a browser. They also released a new distribution, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2403.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2403.1")),", which includes support for Cardano node version ",(0,n.kt)("inlineCode",{parentName:"p"},"8.7.3"),", a new chain observer based on the ",(0,n.kt)("a",{parentName:"p",href:"https://crates.io/crates/pallas"},"Pallas")," library, along with bug fixes and performance improvements."),(0,n.kt)("p",null,"The team kept implementing a new entity type for certifying the Cardano transactions set in Mithril networks and made good progress on retrieving transactions and combining them into a Mithril protocol message. Additionally, they finished implementing a mock aggregator and using it in the browser tests for the Mithril client in WASM."),(0,n.kt)("p",null,"Finally, they worked on enhancing node communications between Mithril and Cardano and continued working on threat modeling and risk analysis for P2P networking."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Release of the ",(0,n.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@mithril-dev/mithril-client-wasm"},(0,n.kt)("inlineCode",{parentName:"a"},"mithril-client npm package"))," library crate"),(0,n.kt)("li",{parentName:"ul"},"Publication of a ",(0,n.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/01/23/mithril-client-npm-package-released"},"dev blog post")," about the released Mithril client npm package"),(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2403.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2403.1"))),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Gather transactions from immutable files and store them in the database")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1435"},"#1435")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Implement browser tests with fake aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1407"},"#1407")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement a fake standalone aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1397"},"#1397")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Compute message to sign for ",(0,n.kt)("inlineCode",{parentName:"strong"},"CardanoTransactions"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1436"},"#1436")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance ImmutableFile list computation resilience")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1450"},"#1450")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Add WASM client step in Mithril Client multi-platform test")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1408"},"#1408")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a test network on ",(0,n.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Add warn missing docs in mithril client cli")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1439"},"#1439"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/309cdfe6.d7e18736.js b/assets/js/309cdfe6.d7e18736.js new file mode 100644 index 0000000000..b014d5bd2d --- /dev/null +++ b/assets/js/309cdfe6.d7e18736.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67037],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),p=c(n),u=a,h=p["".concat(s,".").concat(u)]||p[u]||d[u]||o;return n?r.createElement(h,i(i({ref:t},m),{},{components:n})):r.createElement(h,i({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & Tracing Update",slug:"2024-06-25-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-06-25-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-25-performance-and-tracing.md",source:"@site/blog/2024-06-25-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-06-25T00:00:00.000Z",formattedDate:"June 25, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:3.285,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-06-25-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-06-26-mithril"},nextItem:{title:"Ledger Team Update",permalink:"/2024-06-19-ledger"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3},{value:"IOI Tech Meetup",id:"ioi-tech-meetup",level:3}],m={toc:c},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Release benchmarks for Node ",(0,a.kt)("inlineCode",{parentName:"li"},"8.12.0"),"; ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep")," benchmarks with 100k DReps."),(0,a.kt)("li",{parentName:"ul"},"Development: Merged a performance fix on ",(0,a.kt)("inlineCode",{parentName:"li"},"8.11"),"; kicked off development of governance action workload."),(0,a.kt)("li",{parentName:"ul"},"Workbench: Adjusted automations to latest ",(0,a.kt)("inlineCode",{parentName:"li"},"8.12")," Conway features and Plutus cost model; implementation of CIP-69 and CIP-117 for our tooling is in validation phase."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Work on metrics naming ongoing. Factoring out RTView component is completed and has entered testing."),(0,a.kt)("li",{parentName:"ul"},"IOI Tech Meetup: Our team contributed two presentations at the meetup in Zurich; worked on community report of UTxO scaling benchmarks.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've run and analyzed a full set of release benchmarks for Node versions ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0"),". In comparison with the latest mainnet release ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.3"),", we could not observe any regressions. In fact, ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0")," was able to deliver equal network\nperformance at a slightly reduced resource cost - both for CPU and memory."),(0,a.kt)("p",null,"Another benchmark of the Conway ledger with large amounts of ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s has been performed. This time, 100000 DReps were chosen - this amount aims to simulate a scenario where lots of self-delegation takes place. While a performance\nimpact is observable in this instance, we can still see that the number of DReps scales well overall, and poses no concern for network peformance."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"We have contributed and merged a performance fix on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.11")," which adresses a regressing metric in the forging loop. The regression was only observable under specific conditions. Benchmarks on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12"),"\nhave already confirmed the fix to be successful. "),(0,a.kt)("p",null,"We've kicked off governance action workloads for benchmarking. This will be an entirely new workload type for Conway era, targeting performance measurements of its decentralized decision making process. The workload will feature\nregistering proposals, acting as multiple DReps to vote on active proposals, vote tallying and proposal enactment. We're very grateful for the Ledger team's helpful support so far in creating a workload design for benchmarking - one that evenly stresses\nthe network over extended periods of time."),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"The workbench automations have been upgraded to handle Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12")," and the corresponding integrations of Cardano API and CLI. "),(0,a.kt)("p",null,"Furthermore, we've updated to the latest PlutusV3 costmodel in our benchmarks - as well as implemented CIP-69 and CIP-117 for all our PlutusV3 benchmarking scripts, pending validation by the Plutus team."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The work on aligning of metrics naming and semantics of new and legacy tracing is ongoing. Additionally, we're adding a handful of metrics to the new tracing system which currently exist in legacy tracing only."),(0,a.kt)("p",null,'Factoring out the RTView ("real-time view") component of ',(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," in the new tracing system has finished. This includes a considerable refactoring of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),"'s codebase, so that we're currently running test on the new codebase. Isolating\nRTView is due to its being in prototype stage for too long, and the design decisions taken. In the short term, this will make several package dependencies optional, which have become troublesome for CI, as well as making ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," more lightweight.\nRTView remains as an opt-in. "),(0,a.kt)("h3",{id:"ioi-tech-meetup"},"IOI Tech Meetup"),(0,a.kt)("p",null,"Our entire team traveled to Zurich, Switzerland to attend ZuriHac'24 and the IOI Tech Meetup. It was fantastic to meet everyone in person, and we all had an amazing and very productive time. A big Thank You to everyone involved in making that happen, and making it a success. "),(0,a.kt)("p",null,"We contributed two presentations for the meetup: a thourough introduction of the new tracing system aimed at developers - as it's not tailored exclusively to ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),", but can be used in other (Haskell) services as well. And secondly,\nan overview over the benchmarking framework based on Quantitative Timeliness Agreements which we're building - as well as a show-and-tell of our prototype, implementing part of said framework. We're grateful for the great interest and feedback from all\nthe participants. "),(0,a.kt)("p",null,"Last not least, we worked on creating a community report of the UTxO scaling benchmarks performed during March and April - to be released soon."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/31025fde.e2ab81a8.js b/assets/js/31025fde.e2ab81a8.js new file mode 100644 index 0000000000..a2978f9ba5 --- /dev/null +++ b/assets/js/31025fde.e2ab81a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[22519],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),u=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(r),m=n,d=c["".concat(s,".").concat(m)]||c[m]||h[m]||i;return r?a.createElement(d,o(o({ref:t},p),{},{components:r})):a.createElement(d,o({ref:t},p))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:n,o[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2023-09-08-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-08-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-08-hydra.md",source:"@site/blog/2023-09-08-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-09-08T00:00:00.000Z",formattedDate:"September 8, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.06,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-09-08-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-09-12-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2023-09-07-mithril"}},s={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:u},c="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team improved the commit process with support for inline\ndatums. They simplified the chain layer by refactoring how the chain state is\npersisted. Updates to the Hydra tutorial were completed, including CI workflows\nto keep it up-to-date. The team engaged in discussions with researchers about\nincremental commits & decommits, and drafted an architectural decision record\nfor a resource-based API. They also explored simpler solutions for the upcoming\nnetwork resilience feature."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Support InlineScriptDatum in commit\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1043"},"#1043")),(0,n.kt)("li",{parentName:"ul"},"Refactored chain state persistency\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1049"},"#1049")),(0,n.kt)("li",{parentName:"ul"},"Completed tutorial updates (by adding CI and some cleanup)\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/997"},"#997")),(0,n.kt)("li",{parentName:"ul"},"Intersect Open Source committee meeting"),(0,n.kt)("li",{parentName:"ul"},'Experimented with various models to better express the \\"Network\nresilience problem\\" to find a KISS solution for\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/188"},"#188")),(0,n.kt)("li",{parentName:"ul"},"Drafted and discussed incremental de-/commit features within team\nand with researchers\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/199"},"#199")," and\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1057"},"#1057")),(0,n.kt)("li",{parentName:"ul"},"Created ADR for a resource based overhaul of the API\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1028"},"#1028"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Meetup of Hydra & Mithril contributors in Nantes, France"),(0,n.kt)("li",{parentName:"ul"},"Integrated cardano-api 8.15 to have GHC 9.6 support"),(0,n.kt)("li",{parentName:"ul"},"A clear design for incremental commits (decommits are already\nunderstood)"),(0,n.kt)("li",{parentName:"ul"},"An ADR for improving tx construction & observation to not need chain\nstate")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3143eb67.8408d00f.js b/assets/js/3143eb67.8408d00f.js new file mode 100644 index 0000000000..ecb4574f41 --- /dev/null +++ b/assets/js/3143eb67.8408d00f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7204],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,m=c(e,["components","mdxType","originalType","parentName"]),p=s(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||u[d]||o;return n?r.createElement(h,i(i({ref:t},m),{},{components:n})):r.createElement(h,i({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & tracing update",slug:"2023-01-11-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,c={permalink:"/2023-01-11-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-11-performance-and-tracing.md",source:"@site/blog/2023-01-11-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-01-11T00:00:00.000Z",formattedDate:"January 11, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.865,hasTruncateMarker:!1,authors:[{name:"Serge Kosyrev",title:"Performance and Tracing Team Lead",url:"https://github.com/deepfire",imageURL:"https://github.com/deepfire.png",key:"deepfire"}],frontMatter:{title:"Performance & tracing update",slug:"2023-01-11-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-01-11-consensus"},nextItem:{title:"Crypto Team Update",permalink:"/2023-01-06-crypto"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Performance",id:"performance",level:2},{value:"Tracing",id:"tracing",level:2},{value:"Infrastructure",id:"infrastructure",level:2}],m={toc:s},p="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"Since our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress."),(0,a.kt)("li",{parentName:"ol"},"The new tracing system: the improved API of the new tracing system was implemented, and we're now porting the tracing integration layer over."),(0,a.kt)("li",{parentName:"ol"},"Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks."),(0,a.kt)("li",{parentName:"ol"},"New benchmark deployment infrastructure: we've made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs."),(0,a.kt)("li",{parentName:"ol"},"Legacy benchmarking: we've started merging the legacy benchmark deployment infrastructure into the workbench."),(0,a.kt)("li",{parentName:"ol"},"Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.")),(0,a.kt)("h2",{id:"performance"},"Performance"),(0,a.kt)("p",null,"The AWS cluster infrastructure necessary for SECP benchmarking is still being worked on."),(0,a.kt)("h2",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The improved tracing internals were implemented, and we're now into the phase of updating the tracing integration, which is also mostly done."),(0,a.kt)("h2",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"Thanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components."),(0,a.kt)("p",null,"On the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters.\nWe now have a very clear and granular method to keep track of protocol parameter evolution -- e.g. the mainnet history changes are now tracked at epoch granularity, while also allowing for systematically described change overlays. This makes the benchmark profile definition much more clear and robust against mistakes."),(0,a.kt)("p",null,"We also started a merge of the legacy benchmarking environment (based on cardano-ops) into the workbench. The separation between environments was too costly, causing us to reimplement any benchmarking change twice -- first, during development, in the workbench, then in cardano-ops. In addition, maintenance of compatibility code was incurring additional costs, slowing benchmark data analysis development.\nOnce this merge is complete, this will allow us to sharply cut the benchmark development cycle and overheads."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/31889a8f.30f3518c.js b/assets/js/31889a8f.30f3518c.js new file mode 100644 index 0000000000..e22f99c453 --- /dev/null +++ b/assets/js/31889a8f.30f3518c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96446],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=p(n),m=r,d=h["".concat(l,".").concat(m)]||h[m]||u[m]||o;return n?a.createElement(d,i(i({ref:t},c),{},{components:n})):a.createElement(d,i({ref:t},c))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:r,i[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2022-10-02-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2022-10-02-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-consensus.md",source:"@site/blog/2022-11-02-consensus.md",title:"Consensus Team Update",description:"High-level summary",date:"2022-11-02T00:00:00.000Z",formattedDate:"November 2, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:3.53,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-10-02-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Embedding Quality Workstream",permalink:"/2022-11-03-embedding-quality"},nextItem:{title:"Ledger Team Update",permalink:"/2022-11-02-ledger"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"High-level status report",id:"high-level-status-report",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Finish the UTxO HD prototype",id:"finish-the-utxo-hd-prototype",level:3},{value:"Backing store property tests",id:"backing-store-property-tests",level:4},{value:"LSM tree implementation",id:"lsm-tree-implementation",level:2},{value:"Benchmarking the CSJ prototype",id:"benchmarking-the-csj-prototype",level:3},{value:"Technical debt",id:"technical-debt",level:2}],c={toc:p},h="wrapper";function u(e){let{components:t,...o}=e;return(0,r.kt)(h,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"During the past two weeks, the consensus team continued its work on testing the\nUTxO HD prototype. We completed the era-transition and backing store tests, and\nthe mempool tests are advancing at a steady pace. Regarding our work in the\nGenesis design, we continued our collaboration with the research and networking\nteams, and we continue investigating strategies for making the chain-sync\njumping prototype faster."),(0,r.kt)("h2",{id:"high-level-status-report"},"High-level status report"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Finish the UTxO HD prototype: on track.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We worked on state-machine tests for the mempool, and spotted potential bugs\nin the implementation. Investigation is ongoing."),(0,r.kt)("li",{parentName:"ul"},"We have a set of property tests for the backing store. We still need to\nincorporate the improvements to the LMDB cursor API that these tests\nmade possible."),(0,r.kt)("li",{parentName:"ul"},"We merged the era-transition tests PR."))),(0,r.kt)("li",{parentName:"ul"},"Genesis: on track.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Design work around Genesis continues in collaboration with researchers and\nthe networking team."),(0,r.kt)("li",{parentName:"ul"},"We continued trying to improve the performance of the chain-sync jumping\nprototype. We gained additional insight on which parameters to tweak next.\nIn spite of the baseline still being faster, the current prototype already\nachieves a significant speedup when compared to the naive approach of simply\nrunning full chain-sync with all peers."))),(0,r.kt)("li",{parentName:"ul"},"Tech debt: on track.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We clarified a common source of confusion around VRF tie-breaking and\ncross-era chain selection.")))),(0,r.kt)("h2",{id:"workstreams"},"Workstreams"),(0,r.kt)("h3",{id:"finish-the-utxo-hd-prototype"},"Finish the UTxO HD prototype"),(0,r.kt)("p",null,"We continued working on property-tests for the UTxO HD prototype. In particular\nwe merged the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4073"},"era-transition tests\nPR"),"."),(0,r.kt)("h4",{id:"backing-store-property-tests"},"Backing store property tests"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4081"},"backing store property tests\nPR")," has been\nreviewed. The next steps are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Improve error handling and command generation."),(0,r.kt)("li",{parentName:"ul"},"Add coverage testing to check that we are not failing to cover interesting\ntest cases.")),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/lmdb-simple/pull/1"},"monadic cursor API"),"\nwent through its first review round. The API is in a relatively stable state.\nThis PR also unifies the ",(0,r.kt)("inlineCode",{parentName:"p"},"cborg")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"serialise"),"-based interfaces to LMDB\noperations. The next steps are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Write\n",(0,r.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/quickcheck-dynamic"},(0,r.kt)("inlineCode",{parentName:"a"},"quickcheck-dynamic")),"\nstate-machine tests for this API."),(0,r.kt)("li",{parentName:"ul"},"Adapt the changes in the serialisation interface in the backing store property\ntests. This will involve adding boilerplate code in consensus to make up for\nthe removal of the ",(0,r.kt)("inlineCode",{parentName:"li"},"cborg"),"-based interface.")),(0,r.kt)("h2",{id:"lsm-tree-implementation"},"LSM tree implementation"),(0,r.kt)("p",null,"We worked on the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4121"},"LSM tree\nprototype"),". In\nparticular, we focused on tuning the LSM tree design to the different workloads\nthat consensus has (eg syncing, normal node operation, etc)."),(0,r.kt)("h3",{id:"benchmarking-the-csj-prototype"},"Benchmarking the CSJ prototype"),(0,r.kt)("p",null,'Work on improving the chain-sync jumping performance is ongoing. In particular\nwe compared the performance of different jump intervals, which, somewhat\nsurprisingly, do not make a significant difference. In particular, we are seeing\nperiodic "plateaus" where the chain-sync tip does not progress, but they are\nmuch longer for the prototype. Our hypothesis is that this seem to be due to a\ncombination of the garbage collector (GC) pauses, and the actual time it takes\nthe non-dynamo chain-sync peers to jump to the tip of the slot of the dynamo\nfragment.'),(0,r.kt)("p",null,"In the coming weeks we will try to shorten these plateaus via a combination of\ntweaking GC options and less synchronisation in the CSJ governor."),(0,r.kt)("p",null,"The following plot shows the performance of the chain-sync jumping prototype\nusing different jumping intervals. It compares the syncing progress by plotting\nthe slots of adopted blocks against time. The baseline is still faster, however\nit is worth noting that the current prototype already achieves a significant\nspeedup when compared to the naive approach of simply running full chain-sync\nwith all peers."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(39294).Z,width:"998",height:"445"})),(0,r.kt)("p",null,'The second plot shows the syncing progress sliced to a chosen ~5min interval,\nand includes, in addition to the slots of adopted blocks, the slots of the tip\nof the ChainSync fragment. This allows us to see how far ahead of the selected\ntip the CS dynamo is, i.e. how much room we have for BlockFetch not to get\nstalled. It shows periodic behaviour (due to the forecasting limit), and shows\nthat the CS fragment tip is not progressing for significant periods\n("plateaus").'),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(96185).Z,width:"998",height:"445"})),(0,r.kt)("h2",{id:"technical-debt"},"Technical debt"),(0,r.kt)("p",null,"We ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4098"},"clarified")," a\ncommon source of confusion around VRF tie-breaking and cross-era chain\nselection. This PR involved correcting potentially misleading names of\nVRF-related functions, and providing context for a particular VRF value is\nused for tie-breaking."))}u.isMDXComponent=!0},96185:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2022-11-02-csj-vs-baseline-sliced-77ff018af70191b4122b1e7cf56c79b8.svg"},39294:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2022-11-02-csj-vs-baseline-9fd0e0e080975cc6cfbe035731b4f38d.svg"}}]); \ No newline at end of file diff --git a/assets/js/31a18ffd.52a8f28a.js b/assets/js/31a18ffd.52a8f28a.js new file mode 100644 index 0000000000..be858a09c8 --- /dev/null +++ b/assets/js/31a18ffd.52a8f28a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7558],{53942:a=>{a.exports=JSON.parse('{"label":"network","permalink":"/tags/network","allTagsPath":"/tags","count":35}')}}]); \ No newline at end of file diff --git a/assets/js/3223729c.154f73fe.js b/assets/js/3223729c.154f73fe.js new file mode 100644 index 0000000000..c3157bb553 --- /dev/null +++ b/assets/js/3223729c.154f73fe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[37609],{15038:t=>{t.exports=JSON.parse('{"title":"Tutorial - Basics","description":"5 minutes to learn the most important Docusaurus concepts.","slug":"/category/tutorial---basics","permalink":"/docs/category/tutorial---basics","navigation":{"previous":{"title":"Tutorial Intro","permalink":"/docs/intro"},"next":{"title":"Create a Page","permalink":"/docs/tutorial-basics/create-a-page"}}}')}}]); \ No newline at end of file diff --git a/assets/js/324138c8.2c707609.js b/assets/js/324138c8.2c707609.js new file mode 100644 index 0000000000..65c750d74b --- /dev/null +++ b/assets/js/324138c8.2c707609.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95613],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=p(n),h=r,m=d["".concat(l,".").concat(h)]||d[h]||c[h]||a;return n?o.createElement(m,s(s({ref:t},u),{},{components:n})):o.createElement(m,s({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,s=new Array(a);s[0]=h;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[d]="string"==typeof e?e:r,s[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var o=n(87462),r=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-02-22-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-02-22-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-22-consensus.md",source:"@site/blog/2023-02-22-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-02-22T00:00:00.000Z",formattedDate:"February 22, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.45,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-02-22-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-02-23-performance-and-tracing"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-02-22-node-cli-api"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD Prototype",id:"utxo-hd-prototype",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Support",id:"support",level:3}],u={toc:p},d="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"During the past two weeks we got the results from the system level benchmarks\nfor UTxO HD. They showed a substantial performance regression, so we spent some\ntime analyzing the results. We found out the frequency at which ledger snapshots\nwere taken was too high, so we requested the benchmarking team a new run with a\nmore realistic snapshotting policy. We continued refactoring and improving the\nprototype, and we released UTxO-HD related packages to CHaP."),(0,r.kt)("p",null,"We met with IOG researchers and networking specialists to discuss the Genesis\ndesign, which was well received. We continued working on testing and\nbenchmarking different Genesis prototypes."),(0,r.kt)("p",null,"We are also working on solving a test failure related to iterators. This work\nderived in several improvements such as better documentation, a framework for\nwriting unit (and regression) tests, and the possibility of debugging\n",(0,r.kt)("inlineCode",{parentName:"p"},"QuickCheck")," counter examples in the REPL."),(0,r.kt)("p",null,"Finally, we released ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," 0.2.0.0 and\n",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-cardano")," 0.3.0.0 to CHaP"),(0,r.kt)("h2",{id:"workstreams"},"Workstreams"),(0,r.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD Prototype"),(0,r.kt)("p",null,"We got the results of the first system level benchmarks for UTxO HD. They seemed\nto indicate a significant regression in performance. After looking into the\nbenchmark logs we found that the benchmark runs took ledger state snapshots too\noften, due to the default snapshotting policy depending on ",(0,r.kt)("inlineCode",{parentName:"p"},"k"),", and ",(0,r.kt)("inlineCode",{parentName:"p"},"k")," being so\nsmall in the benchmark runs. Therefore, the next step is to re-run the\nbenchmarks with a snapshotting policy that more closely resembles the one from\nmainnet."),(0,r.kt)("p",null,"At the same time, we continued refactoring and cleaning up the prototype. "),(0,r.kt)("p",null,"Also, we prepared the ",(0,r.kt)("inlineCode",{parentName:"p"},"anti-diff")," packages (",(0,r.kt)("inlineCode",{parentName:"p"},"fingertree-rm"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"diff-containers"),",\n",(0,r.kt)("inlineCode",{parentName:"p"},"simple-semigroupoids"),") and the ",(0,r.kt)("inlineCode",{parentName:"p"},"lmdb")," related packages (",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-lmdb")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-lmdb-simple"),") to ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages"},"CHaP"),"."),(0,r.kt)("h3",{id:"genesis"},"Genesis"),(0,r.kt)("p",null,"The Genesis design was presented to the IOG researchers and Peter Thompson from\nNSol. It was well received. They pointed out one blindspot, but we think it'll\nbe relatively simple to mitigate."),(0,r.kt)("p",null,"In parallel, we continued developing test and benchmarks for the Genesis\nprototypes. I particular we tested and implemented a potential fix for\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4037#issuecomment-1439708022"},"increased ChainDB dequeue timings"),", which partly\nbehaved as we expected, but still needs further investigation. Also we obtained\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4037#issuecomment-1434745031"},"new benchmarking data")," for the prototype."),(0,r.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,r.kt)("p",null,"Related to ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4183"},"#4183"),", we developed a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4379"},"DSL")," for specifying\n",(0,r.kt)("inlineCode",{parentName:"p"},"ChainDB")," unit tests. This will allow us to better understand the\ncounter-examples returned by QuickCheck tests, and to write ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4383"},"regression\ntests")," for them. Also, we ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4358"},"added a module")," to enable\nQuickCheck counter-examples to be run on the REPL, allowing for faster debugging\nfeedback. Also, we improved the documentation related to followers\n(",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4372"},"#4372"),")."),(0,r.kt)("p",null,"We are also working on a design for optimizing the way we handle blocks from the\nfuture."),(0,r.kt)("h3",{id:"support"},"Support"),(0,r.kt)("p",null,"We released ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," 0.2.0.0 and ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-cardano"),"\n0.3.0.0 to CHaP. Remember that we decided to split the packages related to\nConsensus into two bundles, one with the core functionality, Cardano-agnostic\ncode, and another bundle with instantiations specific to Cardano."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/32a89ce0.27ec3321.js b/assets/js/32a89ce0.27ec3321.js new file mode 100644 index 0000000000..ca27d6ff42 --- /dev/null +++ b/assets/js/32a89ce0.27ec3321.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24665],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=p(n),m=r,h=u["".concat(s,".").concat(m)]||u[m]||c[m]||o;return n?a.createElement(h,l(l({ref:t},d),{},{components:n})):a.createElement(h,l({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:r,l[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=n(87462),r=(n(67294),n(3905));const o={title:"SRE Team Update",slug:"2024-03-15-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-03-15-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-15-sre.md",source:"@site/blog/2024-03-15-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-03-15T00:00:00.000Z",formattedDate:"March 15, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.545,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-03-15-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-03-15-node-cli-api"},nextItem:{title:"Ledger Team Update",permalink:"/2024-03-13-ledger"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Govtool",id:"govtool",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3},{value:"Sanchonet-demo",id:"sanchonet-demo",level:3}],d={toc:p},u="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node 8.9.0 is now deployed to all environments.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A new profile-cardano-db-sync-snapshots nixosModule is available for\nsnapshotting dbsync state."))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Updates cardano node and cli pre-release (-ng) to 8.9.0. Adds a new\ncardano-db-sync snapshots server. Bumps mithril and enhances mithril\nusability with IOG trusted pool signature verification for clients and\nmithril verifier service for signers. Adds miscellaneous other small\nimprovements, bug fixes and tuning. See the pull request description for\nmore details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/9"},"cardano-mainnet-pull-8"))),(0,r.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds nixos service and topology updates related to cardano-node 8.9.0\nrelease:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/compare/22f11ec...dd6ad0f"},"cardano-node-compare"))),(0,r.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps to cardano-node 8.9.0, fixes metadata server module, removes the legacy\nsnapshots server:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/56bdf14...mn-legacy-scale-down"},"cardano-ops-compare"))),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Updates cardano node and cli pre-release (-ng) to 8.9.0 and enables new\nbootstrapPeers features and compatibility in the topology functions. Bumps\nmithril and enhances mithril usability with IOG trusted pool signature\nverification for clients, mithril verifier service for signers, mithril\ncapability for process-compose and node entrypoint jobs. Adds miscellaneous\nother small improvements, bug fixes and tuning. See the pull request\ndescription for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/34"},"cardano-parts-pull-34"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Updates cardano node and cli pre-release (-ng) to 8.9.0. Bumps mithril and\nenhances mithril usability with IOG trusted pool signature verification for\nclients, mithril verifier service for signers, mithril capability for\nprocess-compose and node entrypoint jobs. Adds miscellaneous other small\nimprovements, bug fixes and tuning. See the pull request description for\nmore details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/18"},"cardano-playground-pull-18"))),(0,r.kt)("h3",{id:"govtool"},"Govtool"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Fixes a coalesce function sql query bug in the govtool backend:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/govtool/commit/9920dcb53db35ee1196ebdd77af3090bbdc7c754"},"govtool-commit"))),(0,r.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds support for bootstrap peers and sanchonet mithril configuration:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/574"},"iohk-nix-pull-574"))),(0,r.kt)("h3",{id:"sanchonet-demo"},"Sanchonet-demo"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps cardano-parts for cardano-node 8.9.0 and brings the justfile demo\nrecipes up to 8.9.0 compatibility:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet-demo/compare/b54da94...8797c24"},"sanchonet-demo-compare"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/32d4ad41.0381278a.js b/assets/js/32d4ad41.0381278a.js new file mode 100644 index 0000000000..67d80115ce --- /dev/null +++ b/assets/js/32d4ad41.0381278a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[42575],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},h=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=s(a),d=n,m=u["".concat(p,".").concat(d)]||u[d]||c[d]||o;return a?r.createElement(m,i(i({ref:t},h),{},{components:a})):r.createElement(m,i({ref:t},h))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2022-11-11-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-11-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-11-hydra.md",source:"@site/blog/2022-11-11-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2022-11-11T00:00:00.000Z",formattedDate:"November 11, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.94,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-11-11-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2022-11-11-crypto"},nextItem:{title:"Ledger Team Update",permalink:"/2022-11-11-ledger"}},p={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:s},u="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,'This week, the Hydra team published together with Obsidian Systems a light paper\non our "Hydra for Payments" project (',(0,n.kt)("a",{parentName:"p",href:"https://iohk.io/en/blog/posts/2022/11/10/hydra-for-payments-introducing-developer-tooling-to-unlock-micropayments-on-cardano/"},"Link"),"). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," processes. "),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Published Hydra for Payments light paper (",(0,n.kt)("a",{parentName:"li",href:"https://iohk.io/en/blog/posts/2022/11/10/hydra-for-payments-introducing-developer-tooling-to-unlock-micropayments-on-cardano/"},"Link"),")"),(0,n.kt)("li",{parentName:"ul"},"Have a draft RFP ready for a first review internally"),(0,n.kt)("li",{parentName:"ul"},"Answered the internal auditor","\u2019","s questions"),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug with following the chain when starting with persistence (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/599"},"#599"),")"),(0,n.kt)("li",{parentName:"ul"},"Minor improvements to logging for better observability (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/598"},"#598"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/600"},"#600"),")"),(0,n.kt)("li",{parentName:"ul"},"Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/590"},"#590"),")")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implement event-sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/580"},"#580")),(0,n.kt)("li",{parentName:"ul"},"Close more gaps ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/pull/452"},"#452")),(0,n.kt)("li",{parentName:"ul"},"Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: ",(0,n.kt)("strong",{parentName:"li"},'"Developing Hydra" on Day 2, Nov 21st, 13:50 CET'))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3328a3bf.48ef1632.js b/assets/js/3328a3bf.48ef1632.js new file mode 100644 index 0000000000..ef767750e3 --- /dev/null +++ b/assets/js/3328a3bf.48ef1632.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[86393],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=l(n),h=a,m=p["".concat(c,".").concat(h)]||p[h]||u[h]||o;return n?r.createElement(m,s(s({ref:t},d),{},{components:n})):r.createElement(m,s({ref:t},d))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=h;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB Sync Team Update",slug:"2022-10-04-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2022-10-04-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-04-db-sync.md",source:"@site/blog/2022-10-04-db-sync.md",title:"DB Sync Team Update",description:"DBSync Update",date:"2022-10-04T00:00:00.000Z",formattedDate:"October 4, 2022",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:1.65,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB Sync Team Update",slug:"2022-10-04-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-10-05-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-10-04-node-cli-api"}},c={authorsImageUrls:[void 0]},l=[{value:"DBSync Update",id:"dbsync-update",level:2},{value:"Fast restarts",id:"fast-restarts",level:3},{value:"Property based testing",id:"property-based-testing",level:3},{value:"Tech Debt",id:"tech-debt",level:3},{value:"Smash",id:"smash",level:3}],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"dbsync-update"},"DBSync Update"),(0,a.kt)("h3",{id:"fast-restarts"},"Fast restarts"),(0,a.kt)("p",null," We fixed a long overdue issue in db-sync which caused long delays on restarts\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1266"},"1266"),". This has been\none of db-sync main objectives for this period. Restarts are now very fast,\nbecause db-sync deletes almost nothing from the db, it just replays the ledger rules until it\nreaches the tip of the db. The fix also improves reconnection speed, in cases where the node\nrestarts or the connection is temporarily lost. It also speeds up even more in cases where due to a\ndeployment mess up a very old snapshot or no snapshot at all is used."),(0,a.kt)("h3",{id:"property-based-testing"},"Property based testing"),(0,a.kt)("p",null,"We added stateful property based testing, using ",(0,a.kt)("inlineCode",{parentName:"p"},"quickcheck-state-machine"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1269"},"1269"),". These tests use empty or\nalmost empty blocks to test the new behaviour of restarts and rollbacks."),(0,a.kt)("p",null," These tests generate arbitrarily a list of symbolic commands from these:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"RollForward Int\nRollBack BlockNo\nStopDBSync\nStartDBSync\nRestartNode\nAssertBlockNo BlockNo\n")),(0,a.kt)("p",null,"The commands are translated into real commands. For example ",(0,a.kt)("inlineCode",{parentName:"p"},"RollForward Int")," will forge a new block\nthat fits on the current chain. These real commands are executed against db-sync using the mock\nchain-sync server. The symbolic commands are executed against a vesy simplistic Model of db-sync\nwhich looks like this:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-haskell"}," Model\n { serverTip :: BlockNo\n , dbSyncTip :: BlockNo\n , dbSynsIsOn :: Bool\n , dbSynsHasSynced :: Bool\n }\n")),(0,a.kt)("p",null,"Finally a number of postconditions are checked, related to the eventual block number of db-sync."),(0,a.kt)("h3",{id:"tech-debt"},"Tech Debt"),(0,a.kt)("p",null,"We handled a number of tech debt in\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1275"},"1275"),"\nThis improves the code format of db-sync, deletes many queries that were never used and groups the\nothers. This tech debt resolution not only improves the experience of working in db-sync, but can\nfacilitate some of our other objectives, as it makes it very explicit which queries are used\nduring syncing and which indexes are necessary."),(0,a.kt)("h3",{id:"smash"},"Smash"),(0,a.kt)("p",null,"We worked on fixing an issue related to fetching pool metadata\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1276"},"1276"),".\nThe issue which is described in\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/issues/1270"},"1270")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/335868d9.6ee8dd2f.js b/assets/js/335868d9.6ee8dd2f.js new file mode 100644 index 0000000000..9ac4579949 --- /dev/null +++ b/assets/js/335868d9.6ee8dd2f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[45480],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),u=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,h=c["".concat(p,".").concat(m)]||c[m]||d[m]||o;return n?r.createElement(h,s(s({ref:t},l),{},{components:n})):r.createElement(h,s({ref:t},l))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-11-29-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-11-29-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-29-consensus.md",source:"@site/blog/2023-11-29-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-11-29T00:00:00.000Z",formattedDate:"November 29, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.51,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-11-29-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-12-01-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-11-29-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],l={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The Consensus team implemented and tested a ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/525"},"patch")," that does not propagate future headers.\nIt is under review, and we expect it can be released in the next Cardano node version.\nOn the UTxO-HD front, we ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/510"},"finished")," prototyping the ",(0,a.kt)("inlineCode",{parentName:"p"},"LedgerDB")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"BackingStore")," redesign, which is required for the LSM-tree integration and might help us implement a more resource efficient in-memory backend.\nWith this prototype finished we can start integrating the rest of the code.\nWe ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/513"},"investigated")," the unexpected performance degradation observed when acquiring the block context.\nWe also ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.7.0-pre"},"released Cardano node 8.7.0")," and ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3893"},"moved")," ",(0,a.kt)("inlineCode",{parentName:"p"},"tree-diff")," outside ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-ledger")," libraries."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3399a664.e462bd94.js b/assets/js/3399a664.e462bd94.js new file mode 100644 index 0000000000..555bf48eeb --- /dev/null +++ b/assets/js/3399a664.e462bd94.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70950],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,p=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=u(a),s=i,h=c["".concat(p,".").concat(s)]||c[s]||m[s]||r;return a?n.createElement(h,o(o({ref:t},d),{},{components:a})):n.createElement(h,o({ref:t},d))}));function h(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:i,o[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>l,toc:()=>u});var n=a(87462),i=(a(67294),a(3905));const r={title:"Node API & CLI Team Update",slug:"2023-09-12-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",l={permalink:"/2023-09-12-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-12-node-cli-api.md",source:"@site/blog/2023-09-12-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-09-12T00:00:00.000Z",formattedDate:"September 12, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:2.605,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-09-12-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-09-14-db-sync"},nextItem:{title:"Hydra Team Update",permalink:"/2023-09-08-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],d={toc:u},c="wrapper";function m(e){let{components:t,...a}=e;return(0,i.kt)(c,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"2023-08-30---2023-09-12"},"2023-08-30 - 2023-09-12"),(0,i.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,i.kt)("p",null,"Release of ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.3.0-pre"},"Cardano-node 8.3.0-pre")," for SanchoNet. Adds DReps to the Conway governance rules. Allows registration of DReps, delegation to DReps and voting on constitution action with DReps and SPOs.\nThis release completes ",(0,i.kt)("a",{parentName:"p",href:"https://sancho.network/get-started#sanchonet-feature-rollout"},"phase 2 of SanchoNet feature roll out plan")),(0,i.kt)("p",null,"CLI continues on its migration to a era-based top-level commands. This sprint we moved ",(0,i.kt)("inlineCode",{parentName:"p"},"text-view"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"key"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"query"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"genesis"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"node"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"stake-address"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"transaction")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"address")," into this new command structure. This is the initial migration, there is still some clean-up to do on future sprints."),(0,i.kt)("p",null,"We are moving the ",(0,i.kt)("inlineCode",{parentName:"p"},"drep delegation-certificate")," to the stake-address command so delegating to a drep is done via ",(0,i.kt)("inlineCode",{parentName:"p"},"stake-addres vote-delegation-certificate"),". Along the same lines, we are renaming\n",(0,i.kt)("inlineCode",{parentName:"p"},"stake-address delegation-certificate")," (delagating to a stake pool) to ",(0,i.kt)("inlineCode",{parentName:"p"},"stake-address stake-delegation-certificate")," to distinguish between stake delegation to a pool and votes delegation to a drep. On top\nof that, there is a new type of delegation certificate to delegate (stake) to a stake pool and (votes) to a drep simultaneosuly ",(0,i.kt)("inlineCode",{parentName:"p"},"stake-address stake-and-vote-delegation-certificate"),". Note that change is not included on 8.3 but will come on 8.4.\nRemoving ",(0,i.kt)("inlineCode",{parentName:"p"},"--conway-era")," flag from all the ",(0,i.kt)("inlineCode",{parentName:"p"},"transaction")," sub-commands."),(0,i.kt)("p",null,"Update description fields in delegation certificates from ",(0,i.kt)("inlineCode",{parentName:"p"},"Stake Address Delegation Certificate")," to respectively (Conway onwards):"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Stake Delegation Certificate")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Vote Delegation Certificate")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Stake and Vote Delegation Certificate"))),(0,i.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/261"},"New ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-address vote-delegation-certificate")," command")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/257"},"New ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-address stake-and-vote-delegation-certificate")," command")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/260"},"Change ",(0,i.kt)("inlineCode",{parentName:"a"},"TreasuryWithdrawalCmd")," to a record")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/256"},"Simplify ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-address stake-delegation-certificate")," command across eras")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/254"},"Remove ",(0,i.kt)("inlineCode",{parentName:"a"},"EraBased")," prefix and add ",(0,i.kt)("inlineCode",{parentName:"a"},"Cmd")," suffix")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/250"},"#221 Update description fields on delegation certificates")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/249"},"Update error message for eras mismatch between node and cli")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/248"},"Era based ",(0,i.kt)("inlineCode",{parentName:"a"},"address")," commands")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/246"},"Consistent naming for ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-pool")," command related types, functions and modules")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/245"},"Disable ",(0,i.kt)("inlineCode",{parentName:"a"},"redundant-constraints")," warning only on ",(0,i.kt)("inlineCode",{parentName:"a"},"ghc-8.10.7"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/244"},"Remove ",(0,i.kt)("inlineCode",{parentName:"a"},"EraBased")," prefix from era-based commands")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/243"},"Rename ",(0,i.kt)("inlineCode",{parentName:"a"},"delegation-certificate")," to ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-delegation-certificate")," only in era-based command structure")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/242"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"node")," run commands implementation into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/241"},"Era-based ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-address")," command group")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/240"},"Remove duplicate instances and add new ",(0,i.kt)("inlineCode",{parentName:"a"},"FeatureInEra ShelleyBasedEra")," instance")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/239"},"Remove ",(0,i.kt)("inlineCode",{parentName:"a"},"EraBased")," prefix from errors")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/238"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"text-view")," run commands implementation into era-based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/237"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"key")," run commands implementation into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/236"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"query")," run commands implementation into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/235"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"genesis")," run commands implementation into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/234"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"pool")," run commands implementation into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/233"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-address")," run commands implementation into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/232"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"address")," run command implementation into era-based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/231"},"Delete legacy ",(0,i.kt)("inlineCode",{parentName:"a"},"conway governance")," commands")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/230"},"Era sensitive transaction run commands")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/229"},"Move transaction command code into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/228"},"Fix query ",(0,i.kt)("inlineCode",{parentName:"a"},"key-period-info"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/227"},"New ",(0,i.kt)("inlineCode",{parentName:"a"},"hprop_golden_shelleyStakeAddressRegistrationCertificateWithBuildRaw")," test")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/225"},"Prefix complex delegation certificate option"))),(0,i.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/233"},"Fix test constraints functions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/231"},"New ",(0,i.kt)("inlineCode",{parentName:"a"},"caseShelleyToBabbageAndConwayEraOnwards")," function")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/230"},"Delete deprecated functions and types")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/228"},"Release 8.19.0.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/226"},(0,i.kt)("inlineCode",{parentName:"a"},"FeatureInEra")," instances for ",(0,i.kt)("inlineCode",{parentName:"a"},"CardanoEra")," and ",(0,i.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/225"},"New ",(0,i.kt)("inlineCode",{parentName:"a"},"mapSomeAddressVerification")," key function")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/224"},"Fix type signature of ",(0,i.kt)("inlineCode",{parentName:"a"},"queryGenesisParameters")," so that it can be queried in any era")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/222"},"Release 8.18.0.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/221"},"Fix exception when executing drep queries"))),(0,i.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.3.0-pre"},"Cardano-node 8.3.0-pre")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5460"},"Fix deadlock issue with stdout tracer in tx-generator")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5453"},"nix: workbench tracing configuration"))),(0,i.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,i.kt)("h3",{id:"docs"},"docs"),(0,i.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/33bc9424.32c086b9.js b/assets/js/33bc9424.32c086b9.js new file mode 100644 index 0000000000..c139d7ec69 --- /dev/null +++ b/assets/js/33bc9424.32c086b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[74169],{30569:e=>{e.exports=JSON.parse('{"permalink":"/page/47","page":47,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/46","nextPage":"/page/48","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/34012593.506ef8bd.js b/assets/js/34012593.506ef8bd.js new file mode 100644 index 0000000000..b458b9e81c --- /dev/null +++ b/assets/js/34012593.506ef8bd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[86809],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>g});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var p=a.createContext({}),c=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=c(e.components);return a.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(n),u=r,g=s["".concat(p,".").concat(u)]||s[u]||d[u]||o;return n?a.createElement(g,l(l({ref:t},m),{},{components:n})):a.createElement(g,l({ref:t},m))}));function g(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:r,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));const o={title:"Goedel Team Update",slug:"2023-03-03-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-03-03-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-03-goedel.md",source:"@site/blog/2023-03-03-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-03-03T00:00:00.000Z",formattedDate:"March 3, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.815,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-03-03-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-03-03-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-03-03-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(s,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"This sprint the team has been working on drafts of two papers and one\ntechnical report, improving the deltaQ tutorial, consulting on\nperformance design, and the Djed paper has been accepted for\npublication."),(0,r.kt)("h2",{id:"details"},"Details"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Preparing draft of DeltaQSD algebra paper for FORTE 2023")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Extending the technical report on which the above paper is based")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Consulting with an external company on performance engineering of Plutus contracts")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Planning improvements and collecting material for the deltaQ\ntutorial based on experience with systems that manage risk at\nmultiple timescales")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Preparing sections on the communication language and idempontency\nlaws for draft paper about verifying design refinements for\ndistributed system design")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Studying Cardano chain sync protocol")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'"Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin\nProtocol" has been accepted for publication at IEEE ICBC 2023'))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/347c3e4d.2e79ae34.js b/assets/js/347c3e4d.2e79ae34.js new file mode 100644 index 0000000000..bed7acd679 --- /dev/null +++ b/assets/js/347c3e4d.2e79ae34.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23271],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=c(r),d=a,h=m["".concat(l,".").concat(d)]||m[d]||u[d]||s;return r?n.createElement(h,o(o({ref:t},p),{},{components:r})):n.createElement(h,o({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,o=new Array(s);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const s={title:"DB sync Team Update",slug:"2022-12-01-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2022-12-01-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-01-db-sync.md",source:"@site/blog/2022-12-01-db-sync.md",title:"DB sync Team Update",description:"High level summary",date:"2022-12-01T00:00:00.000Z",formattedDate:"December 1, 2022",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.78,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB sync Team Update",slug:"2022-12-01-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-12-02-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2022-12-01-mithril"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],p={toc:c},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DB Sync team prepared a release ",(0,a.kt)("inlineCode",{parentName:"p"},"13.1.0.0-rc2")," which includes many improvements for db-sync,\nit makes rollbacks and syncing much faster, simplifies the schema, fixes bugs and introduces\nmigrations. This release finalises the objectives that were set for db-sync for the previous\n3 months period and part of the syncing speed objective set for the next period\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/blob/3640e5aa00b8bada61e5d4b6eee063749866711b/cardano-db-sync/CHANGELOG.md#13100"},"Changelog")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Branch ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/compare/release/13.0.x..3640e5aa00b8bada61e5d4b6eee063749866711b"},"release/13.1.0.x"),"\nincludes all the improvements related to the release. The release is passing through the testing\nphase and a number of bugs and issues have been fixed, like\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/issues/1312"},"#1312"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/issues/1311"},"#1311"),".\nAlso many new unit tests have been added.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Part of the release branch is cherry-picked back into master, in a way that it respects the new\nrelease and development process, so that it takes into account migrations\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/issues/1305"},"release process"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The DB Sync team has also tagged release ",(0,a.kt)("inlineCode",{parentName:"p"},"13.0.6")," which better supports preview and preprod for\ndocker."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/34f5d9d4.472487a8.js b/assets/js/34f5d9d4.472487a8.js new file mode 100644 index 0000000000..77111cb82d --- /dev/null +++ b/assets/js/34f5d9d4.472487a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[26458],{3905:(t,e,a)=>{a.d(e,{Zo:()=>h,kt:()=>d});var r=a(67294);function n(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,r)}return a}function l(t){for(var e=1;e=0||(n[a]=t[a]);return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(n[a]=t[a])}return n}var p=r.createContext({}),u=function(t){var e=r.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},h=function(t){var e=u(t.components);return r.createElement(p.Provider,{value:e},t.children)},c="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},s=r.forwardRef((function(t,e){var a=t.components,n=t.mdxType,i=t.originalType,p=t.parentName,h=o(t,["components","mdxType","originalType","parentName"]),c=u(a),s=n,d=c["".concat(p,".").concat(s)]||c[s]||m[s]||i;return a?r.createElement(d,l(l({ref:e},h),{},{components:a})):r.createElement(d,l({ref:e},h))}));function d(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var i=a.length,l=new Array(i);l[0]=s;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[c]="string"==typeof t?t:n,l[1]=o;for(var u=2;u{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-05-27-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2024-05-27-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-27-hydra.md",source:"@site/blog/2024-05-27-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-05-27T00:00:00.000Z",formattedDate:"May 27, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.8,hasTruncateMarker:!1,authors:[{name:"Daniel Firth",title:"Hydra Software Engineer",url:"https://github.com/locallycompact",imageURL:"https://github.com/locallycompact.png",key:"locallycompact"}],frontMatter:{title:"Hydra Team Update",slug:"2024-05-27-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-05-29-mithril"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-05-24-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this sprint?",id:"what-did-the-team-achieve-this-sprint",level:3},{value:"What are the goal of the next sprint?",id:"what-are-the-goal-of-the-next-sprint",level:3}],h={toc:u},c="wrapper";function m(t){let{components:e,...a}=t;return(0,n.kt)(c,(0,r.Z)({},h,a,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This sprint, the Hydra team released version 0.17.0 of the hydra-node, containing the new blueprint commit transaction mechanism and upgrades to the networking protocol incorporated over the last several weeks. We also completed several documentation upgrades."),(0,n.kt)("p",null,"Next sprint, we aim to focus the outstanding increment decommit work, completing the model tests for it as well as investigating adversarial attacks on the smart contract."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-sprint"},"What did the team achieve this sprint?"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Combine blueprint and commit tx metadata ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1409"},"#1409")),(0,n.kt)("li",{parentName:"ul"},"Diagnose currently stuck head. ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1415"},"#1415")),(0,n.kt)("li",{parentName:"ul"},"Document offline mode ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1414"},"#1414")),(0,n.kt)("li",{parentName:"ul"},"Document writing an Event Sink and Source ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1413"},"#1413")),(0,n.kt)("li",{parentName:"ul"},"Streaming Plugins ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1325"},"#1325")),(0,n.kt)("li",{parentName:"ul"},"Ensure -Werror is running in CI. ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1426"},"#1426")),(0,n.kt)("li",{parentName:"ul"},"Release ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/blob/0.17.0/CHANGELOG.md"},"hydra-node-0.17.0"))),(0,n.kt)("h3",{id:"what-are-the-goal-of-the-next-sprint"},"What are the goal of the next sprint?"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update to cardano-node 8.11-pre ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1439"},"#1439")),(0,n.kt)("li",{parentName:"ul"},"Incremental decommit ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1057"},"#1057")),(0,n.kt)("li",{parentName:"ul"},"Make progress on the design for incremental commit ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/199"},"#199")),(0,n.kt)("li",{parentName:"ul"},"Reopen a head to test blueprint commits."),(0,n.kt)("li",{parentName:"ul"},"Test combinations of decrement/close/fanout ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1390"},"#1390"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3538f18d.f91696a0.js b/assets/js/3538f18d.f91696a0.js new file mode 100644 index 0000000000..ab1bcb183c --- /dev/null +++ b/assets/js/3538f18d.f91696a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[14545],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(r),d=n,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||l;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:n,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-06-19-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-06-19-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-19-ledger.md",source:"@site/blog/2024-06-19-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-06-19T00:00:00.000Z",formattedDate:"June 19, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.37,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-06-19-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-06-25-performance-and-tracing"},nextItem:{title:"Mithril Team Update",permalink:"/2024-06-19-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3}],s={toc:u},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Major milestone was reached this period. We've implemented\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/tree/master/CIP-0069"},"CIP-0069")," that improves\n",(0,n.kt)("inlineCode",{parentName:"p"},"PlutusV3")," functionality by making spending datums optional and enforcing all scripts to\nhave exactly one argument. This feature allows for spending scripts to be usable for other\npurposes, like minting for example."),(0,n.kt)("p",null,"Couple of important bugs have been fixed:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Script execution for certificates with the same plutus script did not execute correctly."),(0,n.kt)("li",{parentName:"ul"},"Prevent delegation to a non-existent pool.")),(0,n.kt)("p",null,"With this feature complete and a few bug fixes we were also able to mark Conway era and\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/tree/master/CIP-1694"},"CIP-1694")," as feature\ncomplete and ready for release. Naturally, testing of Conway era will continue all the way\ninto the hard fork."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4374"},"pull-4374")," - CIP-0069"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4394"},"pull-4394")," - Fix Certifying Redeemer issue"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4400"},"pull-4400")," - Check that the pool being delegated to exists for ",(0,n.kt)("inlineCode",{parentName:"li"},"ConwayDelegCert")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4409"},"pull-4409")," - Update to plutus-ledger-api-1.30")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4384"},"pull-4384")," - Re-enabled Full NewEpochstate test"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4397"},"pull-4397")," - Add a lens to HasSubState"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4399"},"pull-4399")," - New simple examples for maps"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4403"},"pull-4403")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Add ",(0,n.kt)("inlineCode",{parentName:"li"},"lookup_")," for maps"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4414"},"pull-4414")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Hotfix failing test"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4411"},"pull-4411")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": introduce a hook for naming variables")),(0,n.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4424"},"pull-4424")," - GHA: Downgrade the version of actions/upload-artifact"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4426"},"pull-4426")," - Take care of all compiler warnings for GHC-9.8"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4407"},"pull-4407")," - Change the default ghc version to 9.6.5"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4416"},"pull-4416")," - Bump urllib3 from 1.26.18 to 1.26.19 in /doc")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/354f96c6.2c6acd52.js b/assets/js/354f96c6.2c6acd52.js new file mode 100644 index 0000000000..3ac4878bd5 --- /dev/null +++ b/assets/js/354f96c6.2c6acd52.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[78580],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),m=a,d=p["".concat(l,".").concat(m)]||p[m]||h[m]||o;return n?r.createElement(d,s(s({ref:t},c),{},{components:n})):r.createElement(d,s({ref:t},c))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-10-04-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-10-04-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-04-consensus.md",source:"@site/blog/2023-10-04-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-10-04T00:00:00.000Z",formattedDate:"October 4, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.135,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-10-04-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-10-06-performance-and-tracing"},nextItem:{title:"Mithril Team Update",permalink:"/2023-10-04-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Genesis",id:"genesis",level:3},{value:"Support",id:"support",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3}],c={toc:u},p="wrapper";function h(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The value-only workload benchmarks showed that the mempool forging regression observed in the UTxO-HD branch was fixed by the latest patch. In spite of the higher resource demands, for the metrics of interest (forging, peer-propagation, end-to-end propagation) we see no regression when using the UTxO-HD version of Cardano node, with the ",(0,a.kt)("em",{parentName:"p"},"in-memory")," backend."),(0,a.kt)("p",null,"On the Genesis front the Researchers continue reviewing different aspects of the design, in particular the argument that the Genesis rule will select the Cardano historical chain.\nWe also merged a fix for the Babbage to Conway transition, and released a new version of Consensus."),(0,a.kt)("h3",{id:"genesis"},"Genesis"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We elicited review from the Researchers on a final draft of the argument that the Genesis rule will select the Cardano historical chain (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/392"},"392"),").")),(0,a.kt)("h3",{id:"support"},"Support"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We merged a minimal patch that fixes parameter update bug during the Babbage to Conway transition (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/366"},"366"),")."),(0,a.kt)("li",{parentName:"ul"},"We enabled richer tracers in ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node")," that can be useful in future debugging (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/384"},"384"),")."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/amesgen"},"Esgen")," continues with his release engineer activities, and created a new Consensus release.")),(0,a.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We merged a new section into our documentation that explains the existing hard-fork combinator (HFC) interface and its complexities, which are relate do why the Babagge to Conway transition surprised us in this way. This explanation is step one towards improving the HFC interface (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/369"},"369"),").")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/35760f21.07f3b987.js b/assets/js/35760f21.07f3b987.js new file mode 100644 index 0000000000..8510690ab6 --- /dev/null +++ b/assets/js/35760f21.07f3b987.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[68904],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),u=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,h=c["".concat(p,".").concat(m)]||c[m]||d[m]||o;return n?r.createElement(h,l(l({ref:t},s),{},{components:n})):r.createElement(h,l({ref:t},s))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"SRE Team Update",slug:"2024-02-02-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-02-02-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-02-sre.md",source:"@site/blog/2024-02-02-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-02-02T00:00:00.000Z",formattedDate:"February 2, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.96,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-02-02-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-02-05-network"},nextItem:{title:"Hydra Team Update",permalink:"/2024-02-02-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Upstream Contributions",id:"upstream-contributions",level:2},{value:"Blockperf",id:"blockperf",level:3}],s={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,a.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Cardano explorer is being sunset and will soon be replaced by a new ",(0,a.kt)("a",{parentName:"li",href:"https://beta.explorer.cardano.org/"},"Cardano\nFoundation explorer")),(0,a.kt)("li",{parentName:"ul"},"IOG mainnet pools are now participating in propagation time reporting using\nCardano Foundation's ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/blockperf"},"blockperf\ntool")),(0,a.kt)("li",{parentName:"ul"},"Cardano-parts node nixosConfigurations, node entrypoint and process-compose\nnode jobs now utilize ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril"},"mithril"),"\nclient automatically on preview and preprod networks for faster\nsynchronization of first start up. Mainnet mithril client use as well as\nsigner modules will be available soon.")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Adds a blockperf reporting module to the bootstrap nodes and block producer\nrelays:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/7"},"cardano-mainnet-pull-7"))),(0,a.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Adds a block performance module which utilizes cardano-foundation's blockperf\nfor aggregate block propagation reporting:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/29"},"cardano-parts-pull-29")),(0,a.kt)("li",{parentName:"ul"},"Adds a mithril client for nixosConfigurations, process-compose cardano-node\nprocesses and cardano-node entrypoint:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/30"},"cardano-parts-pull-30"))),(0,a.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Adds required mithril client environment information for preview, preprod,\nmainnet:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/570"},"iohk-nix-pull-570"))),(0,a.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add the sunset banner to explorer:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-world/commit/b010f5f5b1ba92091145dc638e1a37f1612b3fa7"},"cardano-world-commit"))),(0,a.kt)("h2",{id:"upstream-contributions"},"Upstream Contributions"),(0,a.kt)("h3",{id:"blockperf"},"Blockperf"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add a nix flake with blockperf package and ci action:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/blockperf/pull/22"},"blockperf-pull-22"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/35785fae.0383597b.js b/assets/js/35785fae.0383597b.js new file mode 100644 index 0000000000..f83454e9bc --- /dev/null +++ b/assets/js/35785fae.0383597b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7233],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>u});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),h=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=h(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=h(a),m=n,u=p["".concat(s,".").concat(m)]||p[m]||d[m]||i;return a?r.createElement(u,o(o({ref:t},c),{},{components:a})):r.createElement(u,o({ref:t},c))}));function u(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var h=2;h{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-01-27-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-27-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-27-hydra.md",source:"@site/blog/2023-01-27-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-01-27T00:00:00.000Z",formattedDate:"January 27, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.945,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-01-27-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-02-02-ledger"},nextItem:{title:"Mithril Team Update",permalink:"/2023-01-26-mithril"}},s={authorsImageUrls:[void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],c={toc:h},p="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team had a monthly review meeting with their stakeholders,\ncontributors and interested people from the community. The monthly repot for\n",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/monthly/2023-01"},"January 2023")," is a digest\nof the things presented and also includes a summary of the meeting. The Hydra\nspecification was getting discussed and the team is incorporating suggested\nchanges of reviewers. Last but not least, they compute and publish script\ninformation on every PR and also on the\n",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/benchmarks/transaction-cost/#script-summary"},"website"),"\nnow."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Had the monthly review meeting with a broader audience"),(0,n.kt)("li",{parentName:"ul"},"Published the monthly report for ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-01"},"January 2023")),(0,n.kt)("li",{parentName:"ul"},"Reviewed the spec and discussed individual aborts with researchers"),(0,n.kt)("li",{parentName:"ul"},"Compute and publish script information along benchmarks on every PR and ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/benchmarks/transaction-cost/#script-summary"},"website"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Add rollback section to Hydra spec, update pictures and publish it as part of repository"),(0,n.kt)("li",{parentName:"ul"},"Discuss bigger spec findings (full minting policy, individual aborts, split fanout) as change/pull requests on the spec in the repository."),(0,n.kt)("li",{parentName:"ul"},"Groom & plan actions required for a maintainable Head explorer + break down ","\u201c","align gaps","\u201d"," feature.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/35961293.185b0f7d.js b/assets/js/35961293.185b0f7d.js new file mode 100644 index 0000000000..52013d9c31 --- /dev/null +++ b/assets/js/35961293.185b0f7d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6115],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=i.createContext({}),s=function(e){var t=i.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=s(e.components);return i.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),m=s(r),c=n,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||a;return r?i.createElement(d,l(l({ref:t},u),{},{components:r})):i.createElement(d,l({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,l=new Array(a);l[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>s});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-11-22-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-11-22-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-22-mithril.md",source:"@site/blog/2023-11-22-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-11-22T00:00:00.000Z",formattedDate:"November 22, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.895,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-11-22-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-11-22-ledger"},nextItem:{title:"Initial CIP 1694 Security Analysis and Responses",permalink:"/2023-11-20-cip1694"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team made progress in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, completing the first prototype implementation of the Mithril relay, which enables P2P signature broadcasting. They also made progress in optimizing the performance of the aggregator. Additionally, the team completed some enhancements on the CI/CD that will help manually deploy experimental Mithril networks for SanchoNet, as well as for the new P2P network layer."),(0,n.kt)("p",null,"Finally, they investigated occasional runtime issues causing delays for certain SPOs and started preparing for the next distribution release."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Prototype a P2P relay with ",(0,n.kt)("inlineCode",{parentName:"strong"},"libp2p"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1326"},"#1326")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance aggregator REST API performances")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1327"},"#1327")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Signer runtime is stuck for some SPO")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1312"},"#1312")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Manually deploy a test Mithril network")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1356"},"#1356")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Make Cardano node version custom in CI/CD")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1355"},"#1355")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Support P2P relay in infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1361"},"#1361")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"mithril-client fails to extract archive")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1352"},"#1352"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/35c3586e.5003ab27.js b/assets/js/35c3586e.5003ab27.js new file mode 100644 index 0000000000..1a5245e152 --- /dev/null +++ b/assets/js/35c3586e.5003ab27.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2789],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),h=p(a),d=n,m=h["".concat(u,".").concat(d)]||h[d]||c[d]||i;return a?r.createElement(m,l(l({ref:t},s),{},{components:a})):r.createElement(m,l({ref:t},s))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,l=new Array(i);l[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[h]="string"==typeof e?e:n,l[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-10-06-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-10-06-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-06-hydra.md",source:"@site/blog/2023-10-06-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-10-06T00:00:00.000Z",formattedDate:"October 6, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.88,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-10-06-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-10-10-node-cli-api"},nextItem:{title:"Performance & tracing update",permalink:"/2023-10-06-performance-and-tracing"}},u={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:p},h="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team released version 0.13.0, which includes fixes and extensions for state persistency and the ability to draft a commit transaction using inline datums."),(0,n.kt)("p",null,"The team also delivered the first version of the network resilience layer, significantly increasing head availability."),(0,n.kt)("p",null,"Additionally, they have been providing support to several funded Catalyst projects that want to build on Hydra."),(0,n.kt)("p",null,"Last but not least, they updated and published security policy and vulnerability disclosure policy reports on how to handle security vulnerabilities within Hydra."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Release ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.13.0"},"0.13.0")),(0,n.kt)("li",{parentName:"ul"},"Published vulnerability reports ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1088"},"#1088")),(0,n.kt)("li",{parentName:"ul"},"Merged network resilience work part I ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1074"},"#1074")),(0,n.kt)("li",{parentName:"ul"},"Planning for Cardano Summit participation "),(0,n.kt)("li",{parentName:"ul"},"Discussions with funded Catalyst projects wanting to build on Hydra for support"),(0,n.kt)("li",{parentName:"ul"},"Merged typos fix PR from @omahs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1095"},"#1095"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete Aiken commit validator script ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1072"},"#1072")),(0,n.kt)("li",{parentName:"ul"},"Complete Kupo integration ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1078"},"#1078")),(0,n.kt)("li",{parentName:"ul"},"Brick upgrade on TUI ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1103"},"#1103")),(0,n.kt)("li",{parentName:"ul"},"Clean backlog"),(0,n.kt)("li",{parentName:"ul"},"Prepare and rehearse demo and talk for Cardano Summit")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/35e2a0c5.8f3df132.js b/assets/js/35e2a0c5.8f3df132.js new file mode 100644 index 0000000000..ea7a61556b --- /dev/null +++ b/assets/js/35e2a0c5.8f3df132.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90999],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>c});var l=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,l)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var u=l.createContext({}),o=function(e){var t=l.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=o(e.components);return l.createElement(u.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},d=l.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,u=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),m=o(a),d=r,c=m["".concat(u,".").concat(d)]||m[d]||h[d]||n;return a?l.createElement(c,i(i({ref:t},s),{},{components:a})):l.createElement(c,i({ref:t},s))}));function c(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,i=new Array(n);i[0]=d;var p={};for(var u in t)hasOwnProperty.call(t,u)&&(p[u]=t[u]);p.originalType=e,p[m]="string"==typeof e?e:r,i[1]=p;for(var o=2;o{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>h,frontMatter:()=>n,metadata:()=>p,toc:()=>o});var l=a(87462),r=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2023-09-29-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2023-09-29-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-29-ledger.md",source:"@site/blog/2023-09-29-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-09-29T00:00:00.000Z",formattedDate:"September 29, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.465,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-09-29-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-09-29-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-09-29-sre"}},u={authorsImageUrls:[void 0]},o=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway era",id:"conway-era",level:3},{value:"Performance",id:"performance",level:3},{value:"Releasing",id:"releasing",level:3},{value:"Testing",id:"testing",level:3}],s={toc:o},m="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,l.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"Few important Conway related features were completed in this two week period:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Constitutional Committee was the last missing Conway related entity that has now been\nfully implemented."),(0,r.kt)("li",{parentName:"ul"},"Treasury withdrawals governance actions have been fixed and now behave as expected."),(0,r.kt)("li",{parentName:"ul"},"Current treasury amount supplied in the transaction is now enforced by the rules."),(0,r.kt)("li",{parentName:"ul"},"DRep's expiry is prevented by delaying the expiry for all DReps whenever there are no\nproposals to vote on."),(0,r.kt)("li",{parentName:"ul"},"Semantics of how CostModels are updated with Protocol Parameters have been changed to\nallow for individual Plutus language version updates, rather than requiring a complete\nreplacement of all CostModels")),(0,r.kt)("p",null,"Besides the new features there were also important performance and testing improvements:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"In particular stake distribution computation and native script handling received some\noptimizations."),(0,r.kt)("li",{parentName:"ul"},"New testing DSL has been implemented that drastically simplifies writing unit tests for\nledger rules."),(0,r.kt)("li",{parentName:"ul"},"Integration tests and benchmarks are now possible for Conway era because of the overhaul\nof functionality for initial funds and staking injection whenever node starts up in\nConway, while bypassing all previous eras.")),(0,r.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,r.kt)("h3",{id:"conway-era"},"Conway era"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3729"},"pull-3729")," - DRep expiry update after a contiguous set of epochs with no proposals to vote on"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3739"},"pull-3739")," - Rename some PParams to be consistent with Agda specification"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3743"},"pull-3743")," - Move DRepDistr from VState to ConwayGovState"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3746"},"pull-3746")," - Implement ",(0,r.kt)("inlineCode",{parentName:"li"},"tcTranslationContextL")," for Shelley"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3737"},"pull-3737")," - Implement EraTransition"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3749"},"pull-3749")," - Add predicate failure: current treasury value mismatch in LEDGER"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3748"},"pull-3748")," - Apply enacted treasury withdrawals"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3745"},"pull-3745")," - Constitutional Committee Ratification"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3763"},"pull-3763")," - Plutus interface improvements"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3771"},"pull-3771")," - Changed how costmodel updates are applied"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3766"},"pull-3766")," - Prevent updating protocol version with ",(0,r.kt)("inlineCode",{parentName:"li"},"PParamUpdate"))),(0,r.kt)("h3",{id:"performance"},"Performance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3765"},"pull-3765")," - Improve native script handling"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3747"},"pull-3747")," - Use (CompactForm Coin) in IncrementalStake, DRepDistr (and other places) instead of Coin"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3758"},"pull-3758")," - Cardano-Perf regression: UMap.size regression fix"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3754"},"pull-3754")," - Use Alonzo-style TxOut encoder when possible")),(0,r.kt)("h3",{id:"releasing"},"Releasing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3742"},"pull-3742")," - Update fourmolu, ghcid and hls. Update haskellNix and iohkNix flakes"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3744"},"pull-3744")," - Changelog 8.4"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3752"},"pull-3752")," - Patch release of cardano ledger conway 1.8.1.0"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3753"},"pull-3753")," - Minor cleanup and changelog entries"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3760"},"pull-3760")," - Fixup issues for release"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3764"},"pull-3764")," - Bump plutus deps to 1.13")),(0,r.kt)("h3",{id:"testing"},"Testing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3734"},"pull-3734")," - Removed ",(0,r.kt)("inlineCode",{parentName:"li"},"Shaped")," instance for ",(0,r.kt)("inlineCode",{parentName:"li"},"Rep")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3735"},"pull-3735")," - Simplify the implementations of ",(0,r.kt)("inlineCode",{parentName:"li"},"hasOrd")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"hasEq")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3728"},"pull-3728")," - STS tests based on constraints"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3714"},"pull-3714")," - Implement the remaining upgradable families"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3733"},"pull-3733")," - Add some unit tests for Conway features"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3762"},"pull-3762")," - Update CDDL for praos headers.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/35ef34ae.81024531.js b/assets/js/35ef34ae.81024531.js new file mode 100644 index 0000000000..a8ffc2a504 --- /dev/null +++ b/assets/js/35ef34ae.81024531.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[44966],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(r),m=a,f=d["".concat(p,".").concat(m)]||d[m]||s[m]||o;return r?n.createElement(f,l(l({ref:t},c),{},{components:r})):n.createElement(f,l({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2023-08-04-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-08-04-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-sre.md",source:"@site/blog/2023-08-04-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.64,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-08-04-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-08-04-performance-and-tracing"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-08-01-node-cli-api"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-world",id:"cardano-world",level:3}],c={toc:u},d="wrapper";function s(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,a.kt)("p",null,"Some notable recent updates or improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Preprod and preview envionments were updated to 8.1.2."),(0,a.kt)("li",{parentName:"ul"},"Sanchonet and shelley-qa environments were updated to 8.2.0-pre."),(0,a.kt)("li",{parentName:"ul"},"Work on a new cardano performance repo which utilizes a lightweight Cloudformation/Rain to Terraform infra bootstrap and Nomad environment has begun.")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Deploy cardano-node 8.1.2, merge p2p modifications, script fixes and cleanup: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/pull/416"},"cardano-ops-pull-416"))),(0,a.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"New repo: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf"},"cardano-perf-repo"))),(0,a.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Deploy cardano-node 8.1.2, emurgo p2p config, optimize faucet resources: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/104"},"cardano-world-pull-104")),(0,a.kt)("li",{parentName:"ul"},"Resolve nomad segfaults via nix versioning and fixup dbSync metal job for iohkNix env update: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/105"},"cardano-world-pull-105")),(0,a.kt)("li",{parentName:"ul"},"Add nomad dbSync fix for iohkNix env update: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/106"},"cardano-world-pull-106"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3659ef2a.2d97f394.js b/assets/js/3659ef2a.2d97f394.js new file mode 100644 index 0000000000..90045ddd03 --- /dev/null +++ b/assets/js/3659ef2a.2d97f394.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96204],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=i,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-07-03-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-07-03-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-03-mithril.md",source:"@site/blog/2024-07-03-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-07-03T00:00:00.000Z",formattedDate:"July 3, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.22,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-07-03-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-07-03-ledger"},nextItem:{title:"Consensus Team Update",permalink:"/2024-06-26-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They completed the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas and worked on fixing some bugs occurring during the warmup phase of the signer and aggregator. They also worked on supporting the new Cardano node version 8.12 and kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network."),(0,i.kt)("p",null,"Finally, the team fixed a bug that prevented the parsing of some blocks in the SanchoNet network and made some optimizations on the databases of the signer and aggregator."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Import Cardano transactions with ",(0,i.kt)("inlineCode",{parentName:"strong"},"ChainReader"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1705"},"#1705")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Cardano signatures are not produced on ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1750"},"#1750")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"SQLite WAL files are not truncated in signer and aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1707"},"#1707")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Conditional embedding of Cardano CLI in Docker images")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1725"},"#1725")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"CIP for Mithril signature diffusion through Cardano network")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1775"},"#1775")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Optimize Cardano transaction prover performances with parallelization")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1756"},"#1756")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Upgrade Cardano node ",(0,i.kt)("inlineCode",{parentName:"strong"},"8.12.2"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1787"},"#1787")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Aggregator/Signer preload transactions when Cardano transactions certification is not activated")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1782"},"#1782")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Cardano transaction importer does not import the last block advertised as certified")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1785"},"#1785")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Lint Markdown/JavaScript files in repository")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1754"},"#1754"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/365e04c6.bdf83975.js b/assets/js/365e04c6.bdf83975.js new file mode 100644 index 0000000000..47ef16d888 --- /dev/null +++ b/assets/js/365e04c6.bdf83975.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23623],{55175:a=>{a.exports=JSON.parse('{"label":"sre","permalink":"/tags/sre","allTagsPath":"/tags","count":29}')}}]); \ No newline at end of file diff --git a/assets/js/367766a3.94a15d4e.js b/assets/js/367766a3.94a15d4e.js new file mode 100644 index 0000000000..d73ef55fc3 --- /dev/null +++ b/assets/js/367766a3.94a15d4e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[98489],{78059:e=>{e.exports=JSON.parse('{"permalink":"/page/40","page":40,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/39","nextPage":"/page/41","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/36a96f5a.8b928ff3.js b/assets/js/36a96f5a.8b928ff3.js new file mode 100644 index 0000000000..e66bad50f6 --- /dev/null +++ b/assets/js/36a96f5a.8b928ff3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92160],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=p(n),d=a,h=c["".concat(s,".").concat(d)]||c[d]||m[d]||o;return n?r.createElement(h,l(l({ref:t},u),{},{components:n})):r.createElement(h,l({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[c]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-11-09-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-11-09-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-09-db-sync.md",source:"@site/blog/2023-11-09-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-11-09T00:00:00.000Z",formattedDate:"November 9, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.485,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-11-09-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-11-10-sre"},nextItem:{title:"Ledger Team Update",permalink:"/2023-11-08-ledger"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],u={toc:p},c="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We have created new tag ",(0,a.kt)("inlineCode",{parentName:"p"},"sancho-2-2-0"),", which integrates missing Conway feautures and some minor fix\ntags ",(0,a.kt)("inlineCode",{parentName:"p"},"sancho-2-1-0"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"sancho-2-0-1"),".\nWe have completed the initial implementation for the bootstrap instance objective."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add a new ",(0,a.kt)("inlineCode",{parentName:"li"},"--disable-gov")," flag which disabled Conway ferautures\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1558"},"#1558")),(0,a.kt)("li",{parentName:"ul"},"Fix of the committee key size\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1544"},"#1544")),(0,a.kt)("li",{parentName:"ul"},"Workaround a ledger issue with unregistered pools\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1542"},"#1542")),(0,a.kt)("li",{parentName:"ul"},"Implemented a mechanism that loads the UTxO from the ledger resulting is way faster syncs\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1539"},"#1539")),(0,a.kt)("li",{parentName:"ul"},"Rename offline to offchain\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1533"},"#1533")),(0,a.kt)("li",{parentName:"ul"},"Transfer existing tests to Conway era\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1529"},"#1529"),(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1547"},"#1547"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/36e46525.afade4a5.js b/assets/js/36e46525.afade4a5.js new file mode 100644 index 0000000000..6cf70208ae --- /dev/null +++ b/assets/js/36e46525.afade4a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50646],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(n),m=r,h=c["".concat(l,".").concat(m)]||c[m]||d[m]||a;return n?o.createElement(h,i(i({ref:t},u),{},{components:n})):o.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,i[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var o=n(87462),r=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-12-22-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-12-22-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-22-network.md",source:"@site/blog/2023-12-22-network.md",title:"Network Team Update",description:"High-level overview of sprint 51",date:"2023-12-22T00:00:00.000Z",formattedDate:"December 22, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.97,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-12-22-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-12-22-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-12-22-sre"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 51",id:"high-level-overview-of-sprint-51",level:2},{value:"Outbound Governor Bug in cardano-node-8.7.2",id:"outbound-governor-bug-in-cardano-node-872",level:3},{value:"Advise for SPOs",id:"advise-for-spos",level:3},{value:"Testing plans",id:"testing-plans",level:3},{value:"Bootstrap peers",id:"bootstrap-peers",level:3},{value:"TxSubmission Decision Logic",id:"txsubmission-decision-logic",level:3}],u={toc:p},c="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-overview-of-sprint-51"},"High-level overview of ",(0,r.kt)("a",{parentName:"h2",href:"https://github.com/orgs/intersectmbo/projects/5/views/1?filterQuery=sprint%3A%22sprint+51%22"},"sprint 51")),(0,r.kt)("h3",{id:"outbound-governor-bug-in-cardano-node-872"},"Outbound Governor Bug in ",(0,r.kt)("inlineCode",{parentName:"h3"},"cardano-node-8.7.2")),(0,r.kt)("p",null,"In the current sprint, we received a bunch of reports from SPOs about nodes not\nmaintaining some connection when using ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.7.2")," (running in P2P\nmode). Such regressions are very important to us since they can lead to lost\nblocks. We were able to reproduce this issue. Every time there's a longer\npause of block production (due to the statistical nature of Ouroboros), there\nis a chance that the bug will be armed. For this reason ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.7.2"),"\nneeds to be closely monitored."),(0,r.kt)("p",null,"We found the bug and developed a fix, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4748"},"ref"),". Karl\nKntusson (",(0,r.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") wasn't able to reproduce the bug with the patched version of\nthe node for long enough (almost two weeks now) for us to belive that the fix\nis correct. "),(0,r.kt)("h3",{id:"advise-for-spos"},"Advise for SPOs"),(0,r.kt)("p",null,"We created a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/tree/release/8.7"},"release branch for ",(0,r.kt)("inlineCode",{parentName:"a"},"8.7.3")),". The advice from\nthe ",(0,r.kt)("em",{parentName:"p"},"network team")," is to either downgrade to the previous release, e.g. ",(0,r.kt)("inlineCode",{parentName:"p"},"8.1.2"),"\nor use the above release branch (note that there were no benchmarks made or Q&A\ntests yet)."),(0,r.kt)("h3",{id:"testing-plans"},"Testing plans"),(0,r.kt)("p",null,"We were also able to reproduce the bug using ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSim"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4757"},"ouroboros-network#4757"),".\nHowever, the bug relies on a particular schedule of two threads which are\ninvolved and we needed to artificailly modify ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSim")," schedule in production\ncode - something that we don't want to commit to the ",(0,r.kt)("inlineCode",{parentName:"p"},"master")," branch. We also\nexperimented with a randomised scheduler for ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSim"),", but that did not lead to\nfinding the schedule which arms the bug: the search space grows exponentially\nwith the number of steps in the threads, partial order reduction techniques\nimplemented in ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSimPOR")," are more appropriate - unfortunatelly the simulation\ntest is too large to be executed in ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSimPOR")," even with large amounts of\n",(0,r.kt)("inlineCode",{parentName:"p"},"RAM"),". To use ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSimPOR")," we need to implement a test which includes the two\ninteracting components:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"connection-manager")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"outbound-governor")," (where the bug was located)")),(0,r.kt)("p",null,"which communicate through ",(0,r.kt)("inlineCode",{parentName:"p"},"PeerStateActions"),", without including all the\ndiffusion components as we do in our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Testnet.hs"},"sim-net")," tests. More in style of\n",(0,r.kt)("inlineCode",{parentName:"p"},"outbound-governor")," tests where there is just a single ",(0,r.kt)("inlineCode",{parentName:"p"},"outbound-governor"),",\nunlike in the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Testnet.hs"},"sim-net")," which runs multiple communicating diffusions."),(0,r.kt)("h3",{id:"bootstrap-peers"},"Bootstrap peers"),(0,r.kt)("p",null,"We continued working on bootstrap peers, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4555"},"ouroboros-network#4555")),(0,r.kt)("h3",{id:"txsubmission-decision-logic"},"TxSubmission Decision Logic"),(0,r.kt)("p",null,"We continued working on tx-submission decision logic, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3311"},"ouroboros-network#3311")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/370b5914.86026d11.js b/assets/js/370b5914.86026d11.js new file mode 100644 index 0000000000..53014edf56 --- /dev/null +++ b/assets/js/370b5914.86026d11.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[66394],{27750:e=>{e.exports=JSON.parse('{"permalink":"/tags/performance-tracing/page/3","page":3,"postsPerPage":5,"totalPages":7,"totalCount":34,"previousPage":"/tags/performance-tracing/page/2","nextPage":"/tags/performance-tracing/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/370c5287.001eaa67.js b/assets/js/370c5287.001eaa67.js new file mode 100644 index 0000000000..a55ffad1a0 --- /dev/null +++ b/assets/js/370c5287.001eaa67.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32438],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),p=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(s.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=p(n),h=r,m=d["".concat(s,".").concat(h)]||d[h]||c[h]||a;return n?o.createElement(m,i(i({ref:t},u),{},{components:n})):o.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var o=n(87462),r=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2022-10-28-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-10-28-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-28-network.md",source:"@site/blog/2022-10-28-network.md",title:"Network Team Update",description:"High-level summary",date:"2022-10-28T00:00:00.000Z",formattedDate:"October 28, 2022",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.665,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-10-28-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-10-28-hydra"},nextItem:{title:"Performance & Tracing Team Update",permalink:"/2022-10-28-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"Detailed description",id:"detailed-description",level:2},{value:"P2P Network Stack",id:"p2p-network-stack",level:3},{value:"Consensus",id:"consensus",level:3},{value:"Cardano Node",id:"cardano-node",level:3},{value:"Peer Sharing",id:"peer-sharing",level:3},{value:"Eclipse Evasion",id:"eclipse-evasion",level:3},{value:"IO-Sim",id:"io-sim",level:3},{value:"Open Source",id:"open-source",level:3},{value:"Mithril Cardano Integration",id:"mithril-cardano-integration",level:3}],u={toc:p},d="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"The team has focused on debuging & fixing bugs for the ",(0,r.kt)("strong",{parentName:"p"},"P2P single relay release"),", which included"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"diagnosing, fixing and writing tests for a bug in ",(0,r.kt)("inlineCode",{parentName:"li"},"peer-state-actions")," which\nfortunately hasn't been released;"),(0,r.kt)("li",{parentName:"ul"},"diagnosing & preventing misconfiguration of DNS")),(0,r.kt)("p",null,"We also focused on developing ",(0,r.kt)("strong",{parentName:"p"},"peer sharing"),". We also held a session with\nthe scientists on eclipse evasion."),(0,r.kt)("h2",{id:"detailed-description"},"Detailed description"),(0,r.kt)("h3",{id:"p2p-network-stack"},"P2P Network Stack"),(0,r.kt)("p",null,"During the past two weeks the team focused on p2p single relay release and peer\nsharing. We found and fixed an important bug recently introduced in one of the\ncomponents of p2p networking stack (fortunately never released). Together with\na fix, we designed a unit test diffusion simulation as well as quickcheck\nproperty test (both could reproduce it). We also changed the code in a way that\nif such a bug is reintroduced in the future, it will be obvious to diagnose.\nFor more see:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4067"},"ouroboros-network#4067")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4086"},"ouroboros-network#4086"))),(0,r.kt)("p",null,"Initial benchmarking run of the P2P code was executed. The results where\nunlike what we see on the mainnet. We found a possible misconfiguration of the\ncluster (caused by 0 TTL on domain names), which could be the direct cause of\nit. We wrote a PR which rules out such misconfiguration. We are awaiting on\nthe next benchmarking results. See more at:"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4106"},"ouroboros-network#4106")),(0,r.kt)("p",null,"We also started working on P2P single relay release. The PR\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4120"},"ouroboros-network#4120"),"\nincludes ",(0,r.kt)("em",{parentName:"p"},"108")," patches cherry-picked from the ",(0,r.kt)("inlineCode",{parentName:"p"},"master")," branch. We started\nworking toward integration these changes against the release branch of\n",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node"),". Early next week we ought to be able to have an early version\nof ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," with ",(0,r.kt)("em",{parentName:"p"},"non experimental P2P support"),"!"),(0,r.kt)("p",null,"For more detailed release plan please see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3888"},"P2P - Single\nRelay"),"\nissue."),(0,r.kt)("h3",{id:"consensus"},"Consensus"),(0,r.kt)("p",null,"We identified and fixed missing error reporting in consensus\ninitialisation phase. See more at\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4015"},"ouroboros-network#4015")),(0,r.kt)("h3",{id:"cardano-node"},"Cardano Node"),(0,r.kt)("p",null,"We also made changes in ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," in order to give better experience for\nnode operators. This includes updating severities of some of the traces as\nwell as implementing new format of the p2p topology file. For more see:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4563"},"cardano-node#4563"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4561"},"cardano-node#4561"))),(0,r.kt)("h3",{id:"peer-sharing"},"Peer Sharing"),(0,r.kt)("p",null,"We continued working on implementation of peer sharing. We have an early\nimplementation which will be reviewed and analysed in next weeks. We started\nworking on ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," integration. We need\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4392"},"PR #4392")," to be merged\nbefore such integration will be able to land in ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node"),", although this\nis ",(0,r.kt)("em",{parentName:"p"},"not blocking")," us currently. See more at:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"ouroboros-network#4019"))),(0,r.kt)("h3",{id:"eclipse-evasion"},"Eclipse Evasion"),(0,r.kt)("p",null,"We held a session which included Alexander Russel, Sandro Coretti-Drayton and\nNick Frisby from the consensus team. We discussed high lever design of the\neclipse evasion scheme, which is important for the design and implementation of\n",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-genesis"),". We got a positive feedback from the researchers."),(0,r.kt)("h3",{id:"io-sim"},"IO-Sim"),(0,r.kt)("p",null,"In this period we made little progress towards releasing ",(0,r.kt)("inlineCode",{parentName:"p"},"IO-Sim")," on Hackage.\nA single ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/32"},"PR")," which added\na few missing instances of the ",(0,r.kt)("inlineCode",{parentName:"p"},"STM")," monad."),(0,r.kt)("h3",{id:"open-source"},"Open Source"),(0,r.kt)("p",null,"We made sure the CI runs for PRs which comes from forks (which is important to\naccept contributions from 3rd parties)."),(0,r.kt)("h3",{id:"mithril-cardano-integration"},"Mithril Cardano Integration"),(0,r.kt)("p",null,"We held initial discussions with Arnaud Bailly about possible path to integrate\nmithril to ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," and take advantage of the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),"\ndiffusion layer."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/37b247a8.96bfc6f4.js b/assets/js/37b247a8.96bfc6f4.js new file mode 100644 index 0000000000..2ede6fe370 --- /dev/null +++ b/assets/js/37b247a8.96bfc6f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21080],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=i.createContext({}),s=function(e){var t=i.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=s(e.components);return i.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),m=s(r),c=n,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||a;return r?i.createElement(d,l(l({ref:t},u),{},{components:r})):i.createElement(d,l({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,l=new Array(a);l[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>s});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-12-06-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-12-06-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-06-mithril.md",source:"@site/blog/2023-12-06-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-12-06T00:00:00.000Z",formattedDate:"December 6, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.01,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-12-06-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-12-06-ledger"},nextItem:{title:"Performance & Tracing Update",permalink:"/2023-12-04-performance-and-tracing"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team made progress in adapting the Mithril client library for WASM compilation and providing a JavaScript API for it. They also completed the optimization of the aggregator's performance. Additionally, the team initiated the implementation of a testing Mithril network for SanchoNet and conducted threat modeling and risk analysis for P2P networking."),(0,n.kt)("p",null,"Finally, they enhanced the developer experience of the Mithril client library by providing ready-to-run examples in the repository and implemented a workflow to manually publish libraries on crates.io."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Release ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," WASM library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1336"},"#1336")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a test network on ",(0,n.kt)("inlineCode",{parentName:"strong"},"Sanchonet"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Upgrade breaking changes crates")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1357"},"#1357")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance aggregator REST API performances")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1327"},"#1327")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Signer runtime is stuck for some SPO")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1312"},"#1312")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Make ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," examples full crates")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1385"},"#1385")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Manual publication to crates.io with GitHub action")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1380"},"#1380")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Remove ",(0,n.kt)("inlineCode",{parentName:"strong"},"sqlite")," dependency from ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," crate")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1390"},"#1390"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/380c57b3.22277867.js b/assets/js/380c57b3.22277867.js new file mode 100644 index 0000000000..ba860d8c3a --- /dev/null +++ b/assets/js/380c57b3.22277867.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25574],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>h});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),m=c(t),u=a,h=m["".concat(s,".").concat(u)]||m[u]||p[u]||i;return t?r.createElement(h,o(o({ref:n},d),{},{components:t})):r.createElement(h,o({ref:n},d))}));function h(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=u;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=t(87462),a=(t(67294),t(3905));const i={title:"Performance & Tracing Update",slug:"2024-03-27-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-27-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-27-performance-and-tracing.md",source:"@site/blog/2024-03-27-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-03-27T00:00:00.000Z",formattedDate:"March 27, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.99,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-03-27-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-03-27-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-03-22-hydra"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3},{value:"UTxO Growth",id:"utxo-growth",level:3},{value:"Nomad cluster",id:"nomad-cluster",level:3}],d={toc:c},m="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(m,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Release benchmarks for ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1")," have been performed and analysed."),(0,a.kt)("li",{parentName:"ul"},"Development: We've implemented a benchmarking setup for UTxO-HD's LMDB (on-disk) backend."),(0,a.kt)("li",{parentName:"ul"},"Workbench: The now modular, ",(0,a.kt)("inlineCode",{parentName:"li"},"nix"),"-based genesis creation has been merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master"),"; ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep")," delegation and integration of a new ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-cli")," command are ongoing."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Benchmarking the new handle registry feature in ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," is complete; quality-of-life improvements to Prometheus output."),(0,a.kt)("li",{parentName:"ul"},"UTxO Growth: We've adjusted our framework to support running UTxO scaling benchmarks on both a single node and a cluster."),(0,a.kt)("li",{parentName:"ul"},"Nomad cluster: new multi-cluster support with the capability to quickly adjust to changes in deployed hardware")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed a full set of release benchmarks for Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.1"),". Comparing with release ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.0"),", we could not detect any performance risks for that version. "),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"In context of UTxO scaling, we want to assess the feasability of the current on-disk solution (which is LMDB) of a UTxO-HD enabled node. Using that, the UTxO set will be kept\nin live tables and snapshots on disk, significantly reducing memory requirements. "),(0,a.kt)("p",null,"We've implemented a benchmark setting, and a node service configuration, supporting direct disk access to a dedicated device which can be initialized with optimized\nfile system and mount settings. It's purpose is to serve as storage for the highly performance-critical disk I/O of the LMDB component."),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"Our automation for creating all flavours of geneses has seen cleanup and refactoring - which has been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". It can now use a more principled, and rigorously checked, modular approach\nto define, create and cache the desired genesis files. "),(0,a.kt)("p",null,"Working on integrating new ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-cli")," functionality in our automation is ongoing. The performance workbench will support a different, and updated, CLI command which will allow injection of ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep")," delegations into genesis."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"Benchmarking ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),"'s new handle registry feature has been performed and evaluated. We're satisfied with seeing clear performance improvements along with cleaner code, and much better test coverage.\nEspecially allocation rate and number of garbage collections (GC) could be significantly reduced, along with the CPU time required for performing GCs. This will allow for higher trace message throughput given\nidentiacal system resources - plus less system calls issued to the OS in the process. "),(0,a.kt)("p",null,"Furthermore, the new tracing system is getting improvements for its Prometheus output - like providing version numbers as metrics, or annotating metrics with their type - enhancing the output's overall utility."),(0,a.kt)("h3",{id:"utxo-growth"},"UTxO Growth"),(0,a.kt)("p",null,"The performance workbench now supports profiles aimed at simulating UTxO growth both for a single node and an entire cluster. Additionally, simulating different\nRAM sizes in combination with specific UTxO set sizes is supported. For a single block producing node, the focus is on quick turnaround when running\na benchmark, gaining insight into the node's RAM usage and possible impact on the forging loop. "),(0,a.kt)("p",null,"The cluster profiles enable capturing block diffusion metrics as well, however they require a much longer runtime. We can now successfully benchmark the node's behaviour\nwhen dealing with UTxO set sizes 4x - 5x of current mainnet, as well as a possible change in behaviour when operating close to phsyical RAM limit due to that."),(0,a.kt)("h3",{id:"nomad-cluster"},"Nomad cluster"),(0,a.kt)("p",null,"Our backend now supports allocating and deploying Nomad jobs for multiple clusters simultaneously - all while keeping existing automations operational. We've taken special precautions\na cluster, as seen by the backend, can be efficiently and easily modified to reflect newly deployed, or changed, hardware. Additionally, we've added support for host volumes inside a Nomad\nallocation - which will be needed for benchmarking UTxO-HD's on-disk solution."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/38284ae5.2a827e86.js b/assets/js/38284ae5.2a827e86.js new file mode 100644 index 0000000000..5f2de06143 --- /dev/null +++ b/assets/js/38284ae5.2a827e86.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[49105],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>h});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),s=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},m=function(e){var n=s(e.components);return r.createElement(c.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=s(t),u=a,h=d["".concat(c,".").concat(u)]||d[u]||p[u]||i;return t?r.createElement(h,o(o({ref:n},m),{},{components:t})):r.createElement(h,o({ref:n},m))}));function h(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=u;var l={};for(var c in n)hasOwnProperty.call(n,c)&&(l[c]=n[c]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=t(87462),a=(t(67294),t(3905));const i={title:"Performance & Tracing Update",slug:"2023-11-17-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-11-17-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-17-performance-and-tracing.md",source:"@site/blog/2023-11-17-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2023-11-17T00:00:00.000Z",formattedDate:"November 17, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.585,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2023-11-17-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-11-17-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-11-16-network"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3},{value:"Workbench",id:"workbench",level:3}],m={toc:s},d="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(d,(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Release benchmarking for node ",(0,a.kt)("inlineCode",{parentName:"li"},"8.6.0")," as well as benchmarks scrutinizing GHC versions and the new tracing system."),(0,a.kt)("li",{parentName:"ul"},"Development: PlutusV3 capability of our workload generator has been implemented."),(0,a.kt)("li",{parentName:"ul"},"Tracing: First round of optimization of the ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," service has completed, awaiting validation."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: A significant PR has landed addressing automation features and debugging capabilites."),(0,a.kt)("li",{parentName:"ul"},"Workbench: Configurable remote environments and improvements to run documentation have been merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master"),".")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed and analyzed a full set of benchmarks for node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.6.0"),", both in comparison to recent release tags\nand mainnet version ",(0,a.kt)("inlineCode",{parentName:"p"},"8.1.2"),". A lot of development work has entered the system since then, so it is crucial\nwe can rule out any potential performance risks for the next mainnet release. "),(0,a.kt)("p",null,"Additionally, we've been benchmarking GHC9.6.3 builds of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". Overall, we've observed reliable optimization behaviour by that compiler version - which is much more in line with expectations than what we've seen on GHC9.2.7. Getting evidence on how predictable (and malleable, by code annotations) performance is when building with a certain compiler version is essential for settling on a version as supported release platform. "),(0,a.kt)("p",null,"A last set of benchmarks was dedicated to the new tracing system with node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.6.0"),". We were able to show that\nthere is no performance risk to enabling the new system, even when forwarding all trace messages to a ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),"\nservice on the receiving end. Key metrics for block forging, as well as block diffusion, did not exhibit any regression."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"For future benchmarks to be built around PlutusV3, we've equipped our transaction generator with basic integration and tests for the upcoming Plutus version. This enables us to target the new cost model and potential changes\nto the execution budgets by developing specialized workloads."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," service has received its first batch of optimizations. Profiling output is promising; to measure\nperformance for a long service run time, we're currently equipping the service binary with the same capability to\nemit regular resource traces as ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". Analysis of those will be the basis for validating this and possible future optimization efforts."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"Many improvements for the nomad backend have been implemented and merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". This encompasses a unified naming schema for all nomad profiles, improved internal management of cluster topology, a more fine-grained healthcheck service,\nmore detailed automated documentation of underlying hardware, as well as lazy resource release. The latter enables\nour team to investigate and debug interrupted runs for the exact moment and in the exact cluster state a potential failure occurred."),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"Our performance workbench has seen upgrades in documenting and reporting ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," builds. This ranges from capturing package versions and commit ids of key dependencies, to querying a deployed node for its build compiler.\nWhen alternating between compiler versions and benchmarking custom built branches, automating such documentation is essential. "),(0,a.kt)("p",null,"Furthermore, the workbench is now able to access several remote deployments on all active clusters. This allows for fetching data, analyzing, comparing and reporting on all benchmarks from just one centralized workbench instance."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3839ff25.0b1dfd99.js b/assets/js/3839ff25.0b1dfd99.js new file mode 100644 index 0000000000..6b0524c436 --- /dev/null +++ b/assets/js/3839ff25.0b1dfd99.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64466],{91836:e=>{e.exports=JSON.parse('{"permalink":"/quarterly/tags/ledger","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/3876260c.0a1d2cd1.js b/assets/js/3876260c.0a1d2cd1.js new file mode 100644 index 0000000000..c0ae9a4a45 --- /dev/null +++ b/assets/js/3876260c.0a1d2cd1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58181],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>s});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var d=n.createContext({}),m=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=m(e.components);return n.createElement(d.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,d=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),p=m(a),c=r,s=p["".concat(d,".").concat(c)]||p[c]||u[c]||i;return a?n.createElement(s,o(o({ref:t},h),{},{components:a})):n.createElement(s,o({ref:t},h))}));function s(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[p]="string"==typeof e?e:r,o[1]=l;for(var m=2;m{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>m});var n=a(87462),r=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-03-28-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-28-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-28-hydra.md",source:"@site/blog/2024-03-28-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-03-28T00:00:00.000Z",formattedDate:"March 28, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.05,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-03-28-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-03-29-sre"},nextItem:{title:"Ledger Team Update",permalink:"/2024-03-27-ledger"}},d={authorsImageUrls:[void 0]},m=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:m},p="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"This week, the Hydra team conducted the monthly review meeting and investigated\na broken head situation. The team slightly improved conway forward compatibility\nin ",(0,r.kt)("inlineCode",{parentName:"p"},"explorer")," / ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-node"),", enhanced ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-cluster --devnet")," which allows e2e\ntesting of ",(0,r.kt)("inlineCode",{parentName:"p"},"kupo"),", extended smoke test to also include committing ADA into the\nhead, documented the anticipated behavior of incremental decommits, and added\ndecommits to the tutorial."),(0,r.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Conducted the monthly review meeting (link to recording already?)"),(0,r.kt)("li",{parentName:"ul"},"Investigated a broken head situation ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1374"},"#","1374")),(0,r.kt)("li",{parentName:"ul"},"Slightly improved conway forward compatibility in explorer / hydra-node ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1373"},"#","1373")),(0,r.kt)("li",{parentName:"ul"},"Busy ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra-cluster --devnet")," sandbox which allows e2e testing of ",(0,r.kt)("inlineCode",{parentName:"li"},"kupo")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1378"},"#","1378")),(0,r.kt)("li",{parentName:"ul"},"Extended smoke test to also include committing ADA into the head ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1377"},"#","1377")),(0,r.kt)("li",{parentName:"ul"},"Documented the anticipated behavior of incremental ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/commit/60d55e8bb5a75c77647e17e44f22a754fa33ac0f"},"decommits")," and added decommits to ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/commit/efc2809909636b6925b39dcb0810010fcd4a84c7"},"tutorial")),(0,r.kt)("li",{parentName:"ul"},"Another write-up of how the incremental commit/decommit could work (without needing merkle trees or L2/L1 interleaving) ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/199#issuecomment-2018001381"},"on this issue"))),(0,r.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Complete the written monthly report"),(0,r.kt)("li",{parentName:"ul"},"Update our head and ",(0,r.kt)("inlineCode",{parentName:"li"},"hydraw")," instance to ",(0,r.kt)("inlineCode",{parentName:"li"},"master")," (a release candidate)"),(0,r.kt)("li",{parentName:"ul"},"Complete the improved ",(0,r.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint to unblock users"),(0,r.kt)("li",{parentName:"ul"},"Release ",(0,r.kt)("inlineCode",{parentName:"li"},"0.16.0")," (likely without incremental decommits)"),(0,r.kt)("li",{parentName:"ul"},"Reproduce close ",">"," contest ",">"," contest scenarios using stateful testing")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/387f3426.152826b9.js b/assets/js/387f3426.152826b9.js new file mode 100644 index 0000000000..b05d8aa90f --- /dev/null +++ b/assets/js/387f3426.152826b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[34719],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var h=n.createContext({}),p=function(e){var t=n.useContext(h),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(h.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,h=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=p(a),m=r,c=d["".concat(h,".").concat(m)]||d[m]||s[m]||o;return a?n.createElement(c,i(i({ref:t},u),{},{components:a})):n.createElement(c,i({ref:t},u))}));function c(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var h in t)hasOwnProperty.call(t,h)&&(l[h]=t[h]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>h,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-11-10-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-11-10-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-10-hydra.md",source:"@site/blog/2023-11-10-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-11-10T00:00:00.000Z",formattedDate:"November 10, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.65,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-11-10-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-11-10-goedel"},nextItem:{title:"SRE Team Update",permalink:"/2023-11-10-sre"}},h={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],u={toc:p},d="wrapper";function s(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,'The last two weeks, the Hydra team achieved several milestones. They published\nthe monthly report for October, providing updates on project developments. The\nteam delivered a presentation and workshop at the Cardano Summit, contributing\nto community engagement. They implemented a \\"dirt road\\" solution for the\n\\"Ignored init tx\\" notification and moved the ',(0,r.kt)("inlineCode",{parentName:"p"},"hydra-poll")," example project to a\ndedicated repository. Additionally, the team built a ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-chain-observer")," tool\nfor Hydra Heads, updated the toolchain to GHC 9.6.3, and made various\nimprovements to tooling and code formatting. They addressed specific issues,\nsuch as fixing the ",(0,r.kt)("inlineCode",{parentName:"p"},"gen-hydra-keys")," command and resolving concerns with the\nrewritten ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-tui"),". The team also enhanced the ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-cluster")," smoke test\nsuite by fetching network configurations dynamically. Lastly, they actively\nreviewed pull requests and architectural decision records from the community,\nincluding contributions from SundaeSwap. An experiment, the Hydra tally, was\ncompleted and successfully deployed to the mainnet by the Cardano Foundation."),(0,r.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Published the monthly ",(0,r.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-10"},"report for\noctober")),(0,r.kt)("li",{parentName:"ul"},"Given a presentation / workshop at the Cardano summit\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1109"},"#1109")),(0,r.kt)("li",{parentName:"ul"},'Dirt road implementation for \\"Ignored init tx\\" notification\n',(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/529"},"#529")," (without\nstateless observation)"),(0,r.kt)("li",{parentName:"ul"},"Completed and moved ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra-poll")," example project into a\ndedicated\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra-poll"},"repository")),(0,r.kt)("li",{parentName:"ul"},"Built a first version of a chain observation tool for Hydra Heads\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1096"},"#1096")),(0,r.kt)("li",{parentName:"ul"},"Switched toolchain to GHC 9.6.3 and various improvements on tooling\nand code formatting\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1135"},"#1135"),(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1152"},"#1152"),(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1151"},"#1151"),(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1154"},"#1154")),(0,r.kt)("li",{parentName:"ul"},"Fix ",(0,r.kt)("inlineCode",{parentName:"li"},"gen-hydra-keys")," command to not overwrite existing\nkeys ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1136"},"#1136")),(0,r.kt)("li",{parentName:"ul"},"Fixed the rewritten ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra-tui"),(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1113"},"#1113"),(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1137"},"#1137")),(0,r.kt)("li",{parentName:"ul"},"Fetch network configurations instead of packaging them into\nhydra-cluster (smoke) test suite\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1156"},"#1156")),(0,r.kt)("li",{parentName:"ul"},"Reviewing PRs and ADRs from the community (SundaeSwap)\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1118"},"#1118"),(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1157"},"#1157")),(0,r.kt)("li",{parentName:"ul"},"Hydra tally experiment (Cardano Foundation) deployed to mainnet")),(0,r.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Tackle reported bugs"),(0,r.kt)("li",{parentName:"ul"},"Shepherd contributed off-line mode PR to the main codeline"),(0,r.kt)("li",{parentName:"ul"},"Improve chain observation tool to include more data and refactor\nexisting code towards more stateless observation"),(0,r.kt)("li",{parentName:"ul"},"Start work on incremental decommits")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/391126a1.44137e8d.js b/assets/js/391126a1.44137e8d.js new file mode 100644 index 0000000000..99fdb5874d --- /dev/null +++ b/assets/js/391126a1.44137e8d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80542],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=u(r),m=n,h=c["".concat(p,".").concat(m)]||c[m]||s[m]||l;return r?a.createElement(h,o(o({ref:t},d),{},{components:r})):a.createElement(h,o({ref:t},d))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:n,o[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-03-17-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-03-17-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-17-ledger.md",source:"@site/blog/2023-03-17-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-03-17T00:00:00.000Z",formattedDate:"March 17, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.415,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-03-17-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-03-17-hydra"},nextItem:{title:"Goedel Team Update",permalink:"/2023-03-16-goedel"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Expanded ledger API",id:"expanded-ledger-api",level:3},{value:"Conway ledger rules",id:"conway-ledger-rules",level:3},{value:"Incremental SPO/DRep stake distribution computation",id:"incremental-spodrep-stake-distribution-computation",level:3},{value:"Technical debt",id:"technical-debt",level:3}],d={toc:u},c="wrapper";function s(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"We made further progress on the conway ledger era.\nIn particular, we expanded the ledger API significantly, including lots of governance features.\nWe also made progress on the specification and corresponding work in the Haskell implementation."),(0,n.kt)("p",null,"We also continued to integrate the latest ledger packages into cardano node and addressed\ntechnical debt."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"expanded-ledger-api"},"Expanded ledger API"),(0,n.kt)("p",null,"The ledger API was significantly expanded to include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"a lot of protocol parameter support"),(0,n.kt)("li",{parentName:"ul"},"versioning support (type level ledger eras and protocol versions)"),(0,n.kt)("li",{parentName:"ul"},"auxiliary data support"),(0,n.kt)("li",{parentName:"ul"},"many new lenses"),(0,n.kt)("li",{parentName:"ul"},"support for witnesses"),(0,n.kt)("li",{parentName:"ul"},"support for conway governance")),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3328"},"pull-3328"),"."),(0,n.kt)("h3",{id:"conway-ledger-rules"},"Conway ledger rules"),(0,n.kt)("p",null,"We have made progress on the formal ledger specification for the Conway era.\nMoreover, the corresponding Haskell updates were also completed:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3339"},"pull-3339")),(0,n.kt)("li",{parentName:"ul"},"See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3326"},"pull-3326")),(0,n.kt)("li",{parentName:"ul"},"See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3330"},"pull-3330"))),(0,n.kt)("h3",{id:"incremental-spodrep-stake-distribution-computation"},"Incremental SPO/DRep stake distribution computation"),(0,n.kt)("p",null,"We have a working (and correct) proof of concept for how to use the incremental lambda calculus\nto maintain several of the stake distributions incrementally.\nFor the per-SPO distribution, this is a performance improvement.\nFor the (conway) per-DRep distribution, this is will allow those who have delegated their votes\nto a DRep to have time to react to any votes that they disapprove of.\n(Sorry, no code to share just yet, more to come.)"),(0,n.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Improved CBOR testing facilities ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3332"},"pull-3332")),(0,n.kt)("li",{parentName:"ul"},"GitHub actions improvement ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3320"},"pull-3320")),(0,n.kt)("li",{parentName:"ul"},"Move ToJSON orphans from cardano-node ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3338"},"pull-3323")),(0,n.kt)("li",{parentName:"ul"},"Minor OCert improvements ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3327"},"pull-3327")),(0,n.kt)("li",{parentName:"ul"},"Remove duplication ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3341"},"pull-3341")),(0,n.kt)("li",{parentName:"ul"},"Enforce unique elements in CBOR sets ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3331"},"pull-3331")," ")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/393be207.6e5453dc.js b/assets/js/393be207.6e5453dc.js new file mode 100644 index 0000000000..3ce6694690 --- /dev/null +++ b/assets/js/393be207.6e5453dc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[87414],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},f="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),f=i(r),m=a,d=f["".concat(l,".").concat(m)]||f[m]||s[m]||o;return r?n.createElement(d,p(p({ref:t},u),{},{components:r})):n.createElement(d,p({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[f]="string"==typeof e?e:a,p[1]=c;for(var i=2;i{r.r(t),r.d(t,{contentTitle:()=>p,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(87462),a=(r(67294),r(3905));const o={title:"Markdown page example"},p="Markdown page example",c={type:"mdx",permalink:"/markdown-page",source:"@site/src/pages/markdown-page.md",title:"Markdown page example",description:"You don't need React to write simple standalone pages.",frontMatter:{title:"Markdown page example"}},l=[],i={toc:l},u="wrapper";function f(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"markdown-page-example"},"Markdown page example"),(0,a.kt)("p",null,"You don't need React to write simple standalone pages."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/393cd824.962ae227.js b/assets/js/393cd824.962ae227.js new file mode 100644 index 0000000000..1977bf0a4a --- /dev/null +++ b/assets/js/393cd824.962ae227.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65773],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(a),s=r,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,l(l({ref:t},c),{},{components:a})):n.createElement(h,l({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-04-05-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2023-04-05-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-05-node-cli-api.md",source:"@site/blog/2023-04-05-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-04-05T00:00:00.000Z",formattedDate:"April 5, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.315,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-04-05-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-04-05-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2023-04-05-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-04-05---2023-04-19"},"2023-04-05 - 2023-04-19"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Introduce new governance commands create, answer and verify. This allows us to have onchain polls."),(0,r.kt)("li",{parentName:"ul"},"Begin making changes in cardano-api to accomodate for CIP-1694"),(0,r.kt)("li",{parentName:"ul"},"Rename ",(0,r.kt)("inlineCode",{parentName:"li"},"TestEnableDevelopmentHardForkEras")," to ",(0,r.kt)("inlineCode",{parentName:"li"},"ExperimentalHardForksEnabled")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"TestEnableDevelopmentNetworkProtocols")," to ",(0,r.kt)("inlineCode",{parentName:"li"},"ExperimentalProtocolsEnabled")),(0,r.kt)("li",{parentName:"ul"},"Various bug fixes and improvements ")),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5112"},"Add new interim governance commands: {create, answer, verify}-poll")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5061"},"Remove --stake-address option from stake-address build")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5059"},"Frozen callstack for checkTextEnvelopeFormat function")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5053"},"#5052 Remove reading protocol parameters from Shelley genesis file")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5046"},"Move parsers to reusable location")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4910"},"New --socket-path cli option")," ")),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5108"},"CIP-1694 make space for DRep certificates")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5105"},"File type to track the content and direction of files")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5087"},"Fix import warning")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5086"},"Expose UsingRawBytes et al types")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5085"},"Expose SerialiseAsRawBytesError in Cardano.Api")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5072"},"Introduce new AnyShelleyBasedEra type and simplify CDDL tests.")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5071"},"New genCardanoKeyWitness function")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5069"},"Replace roundtripCBOR with trippingCbor")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5064"},"Remove non-round-trippable value TxInsReferenceNone for babbage onwards in generator")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5063"},"Improve roundtrip functions to report annotations on callsite")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5057"},"Define Functor instance for FileError")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5049"},"Split serialisation from IO")," ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5115"},"Master build failure fixes")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5106"},"Allow renamed fields to exist if values the same")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5091"},"workbench: updates")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5084"},"Delete duplicate packages sort packages and imports")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras and TestEnableDevelopmentNetworkProtocols")," ")),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5110"},"Additional check for not-leader slots in LeadershipSchedule tests")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5099"},"Fix epochLength and securityParam to conform to the formula 10 * k / f")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5083"},"Ergonomic directory creation code in tests")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5036"},"Default Cardano.Testnet to NodeLoggingFormatAsJson")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5013"},"Integrate latest ledger dependencies"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/395173ce.3c8c76d1.js b/assets/js/395173ce.3c8c76d1.js new file mode 100644 index 0000000000..cd20f8250b --- /dev/null +++ b/assets/js/395173ce.3c8c76d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48245],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=p(a),m=r,h=u["".concat(s,".").concat(m)]||u[m]||c[m]||o;return a?n.createElement(h,l(l({ref:t},d),{},{components:a})):n.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:r,l[1]=i;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2024-03-29-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-03-29-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-29-sre.md",source:"@site/blog/2024-03-29-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-03-29T00:00:00.000Z",formattedDate:"March 29, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.33,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-03-29-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-03-30-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2024-03-28-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3}],d={toc:p},u="wrapper";function c(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node 8.9.1 is now deployed to all environments.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The legacy IOG mainnet metadata server has been retired with CF now providing\nmetadata server services going forward.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts PR#35, merged and linked below, offers ip information\nintegration into nixosConfiguration modules as well as template-diff and\ntemplate-patch recipes for easier upgrades going forward."))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"capkgs"},"Capkgs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds a shortRev suffix to package names, fixes an rclone recipe, fixes a CI\npush action, defaults to recursively dereferenced object hashes, cleans up\nreference patterns. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/pull/2"},"capkgs-pull-2"))),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps to cardano-node 8.9.1 and deploys all machines, makes ip information\navailable in nixosCfgs, adds new expected machine alerts, tunes snapshot\nalerts and implements all updates in cardano-parts PR#35. See the PR\ndescription for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/10"},"cardano-mainnet-pull-10"))),(0,r.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps to cardano-node 8.9.1, removes the legacy metadata server:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/commit/5d4925b2fe825f28d72372c7b4b3d0fa0c514fd4"},"cardano-ops-commit"))),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Upgrades cardano-node to 8.9.1 for both release and pre-release, integrates\nmachine ip information into nixosConfigurations, enables /etc/hosts file\nusage in cardano-node topology, enhances cardano-node topology producer\ngeneration with customizable address types, introduces template patching\nrecipes for easier cardano-parts updates to existing clusters. Much more\ndetail is available in the PR description:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/35"},"cardano-parts-pull-35"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps to cardano-node 8.9.1 and deploys all envs, rotates KES keys in most\nenvs, makes ip information available in nixosCfgs and implements all updates\nin cardano-parts PR#35. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/18"},"cardano-playground-pull-18"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/397686d4.79f1df13.js b/assets/js/397686d4.79f1df13.js new file mode 100644 index 0000000000..d7521a5678 --- /dev/null +++ b/assets/js/397686d4.79f1df13.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[89756],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>g});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),m=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=m(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=m(n),p=a,g=d["".concat(c,".").concat(p)]||d[p]||u[p]||i;return n?r.createElement(g,o(o({ref:t},s),{},{components:n})):r.createElement(g,o({ref:t},s))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var m=2;m{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>m});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-08-11-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-08-11-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-11-performance-and-tracing.md",source:"@site/blog/2023-08-11-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-08-11T00:00:00.000Z",formattedDate:"August 11, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.335,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-08-11-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-08-11-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-08-10-mithril"}},c={authorsImageUrls:[void 0]},m=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],s={toc:m},d="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've concluded benchmarking node version ",(0,a.kt)("inlineCode",{parentName:"li"},"8.2.0"),"."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Optimization of the new tracing system has been merged; we're currently working on self-documenting tracing configuration."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: A PR that makes our backend take advantage of added flexibility of the new hardware cluster has been merged.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"As part of our release benchmarking cycle, we've completed and analysed the runs for the ",(0,a.kt)("inlineCode",{parentName:"p"},"8.2.0")," version of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". In addition to the adjustment of sanity checks in our automation, we had to implement small changes in the analysis pipeline as well to accomodate the new version."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"A significant amount of optimizations for the new tracing system has finally been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". At the moment,\nwe're working on having a trace message self-document the final tracing configuration of a running node. Apart from adding\ninsight into the system, this feature also aims at making future hot reloading of tracing configuration explicit and straightforward. "),(0,a.kt)("p",null,"Furthermore, we're setting up a final round of system integration level benchmarks comparing new against legacy tracing."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"The new hardware cluster permits greater flexibility as far as SSH access is concerned. By using nomad for a consistent\nand reliable deployment, but taking advantage of direct connections for healthchecks and data transfer we believe we were\nable to reduce overall network latency in the nomad cluster. This improves confidence when capturing all network related measurements during our benchmarks. "),(0,a.kt)("p",null,"A PR that adds these capabalities to our nomad backend - along with very many quality-of-life improvements - has been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/39db4f40.4d878a54.js b/assets/js/39db4f40.4d878a54.js new file mode 100644 index 0000000000..09030b076a --- /dev/null +++ b/assets/js/39db4f40.4d878a54.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[10159],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),d=u(r),m=n,h=d["".concat(p,".").concat(m)]||d[m]||c[m]||l;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=m;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[d]="string"==typeof e?e:n,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-04-24-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-04-24-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-24-ledger.md",source:"@site/blog/2024-04-24-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-04-24T00:00:00.000Z",formattedDate:"April 24, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.99,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-04-24-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-04-26-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2024-04-24-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3}],s={toc:u},d="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Ability to specify ",(0,n.kt)("inlineCode",{parentName:"p"},"CostModel")," for ",(0,n.kt)("inlineCode",{parentName:"p"},"PlutusV3")," in the genesis file was implemented, which\nwill allow us to execute ",(0,n.kt)("inlineCode",{parentName:"p"},"PlutusV3")," as soon as we enter ",(0,n.kt)("inlineCode",{parentName:"p"},"Conway")," era, which is essential\nfor guardrails script. Important bugs that have been fixed:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Invalid reporting of ",(0,n.kt)("inlineCode",{parentName:"li"},"InsufficientCollateral")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"ValueNotConservedUTxO")," predicate\nfailures. In case of validation failure a confusing deserialization was reported instead\nof those predicate failures."),(0,n.kt)("li",{parentName:"ul"},"Calculation of votes for Constitutional Committee Members did not consider expired\nmembers correctly."),(0,n.kt)("li",{parentName:"ul"},"Useful function ",(0,n.kt)("inlineCode",{parentName:"li"},"redeemerPointer")," was deprecated without good justification.")),(0,n.kt)("p",null,"Besides bugfixes there was a lot of work done on the testing side. Constraint based data\ngeneration is receiving continuous improvements. More unit and property tests for Conway\nera functionality."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4259"},"pull-4259")," - Undeprecate redeemerPointer and expose it in cardano-ledger-api"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4252"},"pull-4252")," - Add PlutusV3 CostModel to UpgradeConwayPParams"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4247"},"pull-4247")," - Change the balance in ",(0,n.kt)("inlineCode",{parentName:"li"},"InsufficientCollateral")," to ",(0,n.kt)("inlineCode",{parentName:"li"},"DeltaCoin")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4267"},"pull-4267")," - Expand TxAuxData interface"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4265"},"pull-4265")," - Inline UTxO and UTxOW ",(0,n.kt)("inlineCode",{parentName:"li"},"PredFailure")," for ",(0,n.kt)("inlineCode",{parentName:"li"},"Conway")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4281"},"pull-4281")," - Discount expired CC from CC-size calculation"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4290"},"pull-4290")," - Add ",(0,n.kt)("inlineCode",{parentName:"li"},"NoThunks")," instance for UTxO pred failures"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4288"},"pull-4288")," - Fix burning tokens predicate failure")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4241"},"pull-4241")," - Add fixup combinators to ImpTest framework"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4229"},"pull-4229")," - Shrinking for ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4244"},"pull-4244")," - Imptests: CommitteeMinSize affects in-flight props"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4269"},"pull-4269")," - Fix generation bug for sums of positive member spec"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4266"},"pull-4266")," - Add imptest to propose and enact unknown costmodels"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4261"},"pull-4261")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators")," cleanup for hackage"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4279"},"pull-4279")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Fix bug in toPreds for maps + add additional tests"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4272"},"pull-4272")," - simplify foldMap interface to higher order syntax"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4283"},"pull-4283")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": add new test to test suite"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4286"},"pull-4286")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": refactor ",(0,n.kt)("inlineCode",{parentName:"li"},"reify")," to reduce the number of binding sites + delay simplification more to avoid variable capture in higher order syntax")),(0,n.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4260"},"pull-4260")," - Bump idna from 3.3 to 3.7 in /doc"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4277"},"pull-4277")," - Fixed formatting in ",(0,n.kt)("inlineCode",{parentName:"li"},"HowToProfileLedger.md")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4282"},"pull-4282")," - Bump plutus deps to 1.26"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4294"},"pull-4294")," - Avoid cancelling scheduled CI when a new merge happens on master")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/39dd59eb.4065b4f5.js b/assets/js/39dd59eb.4065b4f5.js new file mode 100644 index 0000000000..d9f50a5fac --- /dev/null +++ b/assets/js/39dd59eb.4065b4f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[89943],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=p(n),h=o,m=u["".concat(l,".").concat(h)]||u[h]||c[h]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,i[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2024-04-15-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2024-04-15-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-18-network.md",source:"@site/blog/2024-04-18-network.md",title:"Network Team Update",description:"High-level overview of sprint 58 and sprint 59",date:"2024-04-18T00:00:00.000Z",formattedDate:"April 18, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:3.22,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-04-15-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-04-19-performance-and-tracing"},nextItem:{title:"Consensus Team Update",permalink:"/2024-04-17-consensus"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 58 and sprint 59",id:"high-level-overview-of-sprint-58-and-sprint-59",level:2},{value:"Releases",id:"releases",level:3},{value:"Genesis",id:"genesis",level:3},{value:"TxSubmission",id:"txsubmission",level:3},{value:"Churn and EKG metrics",id:"churn-and-ekg-metrics",level:3},{value:"Documentation",id:"documentation",level:3},{value:"Low level details",id:"low-level-details",level:2},{value:"Peer Sharing Testing",id:"peer-sharing-testing",level:3},{value:"EKG / Prometheus Counters",id:"ekg--prometheus-counters",level:3},{value:"Deprecation policy",id:"deprecation-policy",level:4},{value:"Grafana graphs",id:"grafana-graphs",level:4},{value:"Active Peers Metrics",id:"active-peers-metrics",level:5},{value:"Established Peers Metrics",id:"established-peers-metrics",level:5},{value:"Known Peers Metrics",id:"known-peers-metrics",level:5},{value:"Churn Metrics",id:"churn-metrics",level:5}],d={toc:p},u="wrapper";function c(e){let{components:t,...a}=e;return(0,o.kt)(u,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-58-and-sprint-59"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+58%22"},"sprint 58")," and ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+59%22"},"sprint 59")),(0,o.kt)("h3",{id:"releases"},"Releases"),(0,o.kt)("p",null,"We released ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/releases/tag/8.9.1"},(0,o.kt)("inlineCode",{parentName:"a"},"cardano-node-8.9.1")),", and we tagged a soon to be released\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/releases/tag/8.9.2"},(0,o.kt)("inlineCode",{parentName:"a"},"cardano-node-8.9.2")),"\nThe ",(0,o.kt)("inlineCode",{parentName:"p"},"8.9.2")," release will have a fixed peer sharing support, which we\nincidentally broke in ",(0,o.kt)("inlineCode",{parentName:"p"},"8.9.1"),". We expanded our test suite to cover discovered\nbugs (see below for more details). Please also see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/orgs/IntersectMBO/projects/5/views/18"},"the release\ntab")," in our project to see which PRs / issues were\nincluded in a given release, the following mapping might also be useful:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ouroboros-network-0.13.1.0")," -> ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-node-8.9.1")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ouroboros-entwork-0.14.0.0")," -> ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-node-8.9.2"))),(0,o.kt)("h3",{id:"genesis"},"Genesis"),(0,o.kt)("p",null,"We continued working on network Genesis support: "),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3396"},"ouroboros-network#3396")," - churn policy for Genesis;"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4813"},"ouroboros-network#4813")," - outbound governor support for Genesis;"),(0,o.kt)("li",{parentName:"ul"},"support for ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-cli")," to write a big ledger peers snapshot to disk and\nfor ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-node")," to pass it to ",(0,o.kt)("inlineCode",{parentName:"li"},"ouroboros-network"),".")),(0,o.kt)("p",null,"As well as a feature required by consensus:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4815"},"ouroboros-network#4815")," - inform consensus about outbound connections state")),(0,o.kt)("h3",{id:"txsubmission"},"TxSubmission"),(0,o.kt)("p",null,"Only a little progress was made due to one of us being on vacation."),(0,o.kt)("h3",{id:"churn-and-ekg-metrics"},"Churn and EKG metrics"),(0,o.kt)("p",null,"While working on ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4815"},"ouroboros-network#4815"),", we addressed technical debt\nin churn. The PR removes implicit synchronisation (in terms of delays) in\nfavour of explicit synchronisation with the outbound governor. The PR extends\nEKG counters traced by the node. See below for some graphs."),(0,o.kt)("h3",{id:"documentation"},"Documentation"),(0,o.kt)("p",null,"We updated the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node-wiki/wiki/understanding-config-files#the-p2p-topologyjson-file"},"documentation")," on peer sharing, see\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node-wiki/pull/44"},"cardano-node-wiki#44"),"."),(0,o.kt)("h2",{id:"low-level-details"},"Low level details"),(0,o.kt)("h3",{id:"peer-sharing-testing"},"Peer Sharing Testing"),(0,o.kt)("p",null,"We wrote a testing scenario for peer sharing, which simulates a node setup:\n",(0,o.kt)("inlineCode",{parentName:"p"},"A -> B <- C"),", where neither of the nodes ",(0,o.kt)("inlineCode",{parentName:"p"},"B")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"C")," have any local roots; they only learn about other nodes through (light) peer sharing. ",(0,o.kt)("inlineCode",{parentName:"p"},"B")," learns\nabout ",(0,o.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"C")," because they connect to it, while ",(0,o.kt)("inlineCode",{parentName:"p"},"C")," should learn about ",(0,o.kt)("inlineCode",{parentName:"p"},"A"),"\nthrough peer sharing. This test scenario should prevent us from breaking peer sharing in the\nfuture in some obvious ways. In the future, we will also work on extending our\ntest suite with peer sharing in mind. See ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4839"},"ouroboros-network#4839"),",\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4841"},"ouroboros-network#4841"),"."),(0,o.kt)("h3",{id:"ekg--prometheus-counters"},"EKG / Prometheus Counters"),(0,o.kt)("p",null,"Note that this is in progress, so some things might still change."),(0,o.kt)("p",null,"We will provide counters for ",(0,o.kt)("inlineCode",{parentName:"p"},"active")," (also known as ",(0,o.kt)("inlineCode",{parentName:"p"},"hot"),") peers,\n",(0,o.kt)("inlineCode",{parentName:"p"},"established")," (e.g. ",(0,o.kt)("inlineCode",{parentName:"p"},"hot")," & ",(0,o.kt)("inlineCode",{parentName:"p"},"warm"),") peers and ",(0,o.kt)("inlineCode",{parentName:"p"},"known")," (e.g. ",(0,o.kt)("inlineCode",{parentName:"p"},"hot"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"warm")," and\n",(0,o.kt)("inlineCode",{parentName:"p"},"cold"),") peers. This is the same way one specifies targets in the node's\nconfiguration. In addition, the three groups are split into five categories:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"ledger peers"),(0,o.kt)("li",{parentName:"ul"},"big ledger peers"),(0,o.kt)("li",{parentName:"ul"},"local root peers"),(0,o.kt)("li",{parentName:"ul"},"bootstrap peers"),(0,o.kt)("li",{parentName:"ul"},"shared peers")),(0,o.kt)("p",null,"In addition, we also provide a counter for root peers, which counts ledger peers,\nbig ledger peers, local roots and bootstrap peers, which correspond to the\nroot peers target ",(0,o.kt)("inlineCode",{parentName:"p"},"TargetNumberOfRootPeers")," in the configuration."),(0,o.kt)("p",null,"We also provide counters for ongoing promotions and demotions."),(0,o.kt)("p",null,"Ledger peers are affected by ",(0,o.kt)("inlineCode",{parentName:"p"},"TargetNumberOf{Known,Established,Active}Peers")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"TargetNumberOfRootPeers"),".\nThe gap between ",(0,o.kt)("inlineCode",{parentName:"p"},"TargetNumberOfRootPeers")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"TargetNumberOfKnownPeers")," will\nbe filled either with ledger peers or peers, which the node discovered through\npeer sharing.\nBig ledger peers are affected by ",(0,o.kt)("inlineCode",{parentName:"p"},"TargetNumberOf{Known,Established,Active}BigLedgerPeers"),"."),(0,o.kt)("p",null,"Below are some Grafana graphs from an experimental ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," branch:"),(0,o.kt)("h4",{id:"deprecation-policy"},"Deprecation policy"),(0,o.kt)("p",null,"The previous ",(0,o.kt)("inlineCode",{parentName:"p"},"hot"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"warm")," / ",(0,o.kt)("inlineCode",{parentName:"p"},"cold")," EKG counters will also be available,\nalthough deprecated after the new ones are released. Sometime in the future\nthey will be removed."),(0,o.kt)("h4",{id:"grafana-graphs"},"Grafana graphs"),(0,o.kt)("p",null,"The screenshots are from a node, which is configured without any bootstrap\npeers, which is why all bootstrap metrics are ",(0,o.kt)("inlineCode",{parentName:"p"},"0"),". The node is configured with the following targets:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},' "TargetNumberOfRootPeers": 60,\n "TargetNumberOfKnownPeers": 100,\n "TargetNumberOfEstablishedPeers": 40,\n "TargetNumberOfActivePeers": 15,\n "TargetNumberOfKnownBigLedgerPeers": 15,\n "TargetNumberOfEstablishedBigLedgerPeers": 10,\n "TargetNumberOfActiveBigLedgerPeers": 5,\n')),(0,o.kt)("p",null,"and has a small number of local root peers and one peer in its ",(0,o.kt)("inlineCode",{parentName:"p"},"publicRoots"),"\nconfiguration."),(0,o.kt)("h5",{id:"active-peers-metrics"},"Active Peers Metrics"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"P2P relays",src:n(29569).Z,width:"2074",height:"960"})),(0,o.kt)("h5",{id:"established-peers-metrics"},"Established Peers Metrics"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"P2P relays",src:n(60655).Z,width:"2073",height:"1211"})),(0,o.kt)("h5",{id:"known-peers-metrics"},"Known Peers Metrics"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"P2P relays",src:n(42134).Z,width:"2081",height:"938"})),(0,o.kt)("h5",{id:"churn-metrics"},"Churn Metrics"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"P2P relays",src:n(83775).Z,width:"2087",height:"770"})))}c.isMDXComponent=!0},29569:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2024-04-15-active-peers-1048a75d3033f9e32ea51c0b817e0cd1.png"},83775:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2024-04-15-churn-d816c6f07c8e3ee8d28de78989e2ed65.png"},60655:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2024-04-15-established-peers-fbb9abf021fc68a884b86b8b3fd415d4.png"},42134:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2024-04-15-known-peers-f59994b77d7964be1157d0ed55b21261.png"}}]); \ No newline at end of file diff --git a/assets/js/39ea0274.9740ee14.js b/assets/js/39ea0274.9740ee14.js new file mode 100644 index 0000000000..7a3e5b526c --- /dev/null +++ b/assets/js/39ea0274.9740ee14.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50694],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,s(s({ref:t},c),{},{components:n})):r.createElement(f,s({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-05-01-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-05-01-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-01-consensus.md",source:"@site/blog/2024-05-01-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-05-01T00:00:00.000Z",formattedDate:"May 1, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.43,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-05-01-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-05-03-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-04-30-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Reworked the argument for the different databases used in Consensus, in preparation for UTxO-HD (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1059"},"#1059"),")."),(0,a.kt)("li",{parentName:"ul"},"Helped review the first Peras Innovation draft report."),(0,a.kt)("li",{parentName:"ul"},"Continued working on VRF restriction based on slot distance. The corresponding PR (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1047"},"#1047"),") went through its first round of reviews."),(0,a.kt)("li",{parentName:"ul"},"Provided support to the Networking team to review their work on querying big ledger peers (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1067"},"#1067"),")."),(0,a.kt)("li",{parentName:"ul"},"Continued working on open-sourcing ",(0,a.kt)("inlineCode",{parentName:"li"},"fs-api")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"fs-sim"),"."),(0,a.kt)("li",{parentName:"ul"},"Performed other minor refactorings in the codebase (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1073"},"#1073")," and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1070"},"#1070"),").")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3a3a2602.a5198d57.js b/assets/js/3a3a2602.a5198d57.js new file mode 100644 index 0000000000..f25e208858 --- /dev/null +++ b/assets/js/3a3a2602.a5198d57.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20974],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=p(r),m=n,d=c["".concat(s,".").concat(m)]||c[m]||h[m]||i;return r?a.createElement(d,o(o({ref:t},u),{},{components:r})):a.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2023-07-14-hydra",authors:["ffakenz","v0d1ch"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-07-14-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-14-hydra.md",source:"@site/blog/2023-07-14-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-07-14T00:00:00.000Z",formattedDate:"July 14, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.79,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"},{name:"Sasha Bogicevic",title:"Hydra Software Engineer",url:"https://github.com/v0d1ch",imageURL:"https://github.com/v0d1ch.png",key:"v0d1ch"}],frontMatter:{title:"Hydra Team Update",slug:"2023-07-14-hydra",authors:["ffakenz","v0d1ch"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-07-18-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2023-07-13-mithril"}},s={authorsImageUrls:[void 0,void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:p},c="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week the team focused on exploring the event sourced persistence in order\nto improve ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," performance. Because of this work the team noticed we\nneed to refactor the emit snapshot emission logic and update the spec in the\nlight of new changes. They also took the time to revisit their goals and product\nplans for the next quarter as well as doing some security fixes related to\nmultisignatures."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Finished spike about performance improvements of event sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/963"},"#963"),"."),(0,n.kt)("li",{parentName:"ul"},"Refactor snapshot emission in protocol logic."),(0,n.kt)("li",{parentName:"ul"},"Revisited our roadmap and goals."),(0,n.kt)("li",{parentName:"ul"},"Prepared and conducated a learning session on lean-waste."),(0,n.kt)("li",{parentName:"ul"},"Improve security of multi-signature checks, see ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/security/advisories/GHSA-c8qp-cv4h-vcc4"},"this Github security advisory"),"."),(0,n.kt)("li",{parentName:"ul"},"Implemented a cache friendly way to version our binaries ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/962"},"#962"),".")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implement Event sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/913"},"#913"),"."),(0,n.kt)("li",{parentName:"ul"},"Remove deprecated internal commit ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/954"},"#954")," and close ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/728"},"#728"),".")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3a3e17f4.0af6297d.js b/assets/js/3a3e17f4.0af6297d.js new file mode 100644 index 0000000000..ddcdc09f40 --- /dev/null +++ b/assets/js/3a3e17f4.0af6297d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[84598],{37637:a=>{a.exports=JSON.parse('{"label":"goedel","permalink":"/tags/goedel","allTagsPath":"/tags","count":23}')}}]); \ No newline at end of file diff --git a/assets/js/3a40f46b.bdd0e927.js b/assets/js/3a40f46b.bdd0e927.js new file mode 100644 index 0000000000..c1eac52961 --- /dev/null +++ b/assets/js/3a40f46b.bdd0e927.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[36337],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var l=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,l)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=l.createContext({}),u=function(e){var t=l.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=u(e.components);return l.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},c=l.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=u(a),c=r,h=d["".concat(p,".").concat(c)]||d[c]||m[c]||n;return a?l.createElement(h,o(o({ref:t},s),{},{components:a})):l.createElement(h,o({ref:t},s))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,o=new Array(n);o[0]=c;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,o[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>i,toc:()=>u});var l=a(87462),r=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2023-11-22-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-11-22-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-22-ledger.md",source:"@site/blog/2023-11-22-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-11-22T00:00:00.000Z",formattedDate:"November 22, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.705,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-11-22-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-11-24-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2023-11-22-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3}],s={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,l.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"Last two weeks progress was mainly on testing, bug fixes and improvements to clarity of\nCDDL specification. Important bugfixes include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Fix deserialization of ",(0,r.kt)("inlineCode",{parentName:"li"},"ValueNotConservedUTxO")," predicate failure that could not\npreviously report zero ADA."),(0,r.kt)("li",{parentName:"ul"},"Fix deserialization of ",(0,r.kt)("inlineCode",{parentName:"li"},"CostModels")," in the ",(0,r.kt)("inlineCode",{parentName:"li"},"PParamsUpdate"),". Invalid ",(0,r.kt)("inlineCode",{parentName:"li"},"CostModels")," are no\nlonger allowed, only ",(0,r.kt)("inlineCode",{parentName:"li"},"CostModels")," for unrecognized Plutus versions are allowed starting\nwith Conway"),(0,r.kt)("li",{parentName:"ul"},"Fix returning of Deposits for ProposalProcedures")),(0,r.kt)("p",null,"Testing tooling has been improved and new tests have been implemented for Conway era."),(0,r.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,r.kt)("h3",{id:"conway"},"Conway"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3858"},"pull-3858")," - Restructure computing Refunds and Deposits in a TxBody across all eras"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3860"},"pull-3860")," - Removed ",(0,r.kt)("inlineCode",{parentName:"li"},"mock/crypto.cddl"),", added optional tag to sets"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3864"},"pull-3864")," - Fix Proposal deposits and add deposit tests to imp tests"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3859"},"pull-3859")," - Rename ProposalsSnapshot to Proposals"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3867"},"pull-3867")," - ",(0,r.kt)("inlineCode",{parentName:"li"},"MaryValue")," fixes"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3869"},"pull-3869")," - Indicate that tag 258 is optional for OSet. Fix rational CDDL"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3863"},"pull-3863")," - Improve deposits refunds re-usability"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3861"},"pull-3861")," - Fail PParamsUpdate deserialization for invalid costmodels in Conway"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3875"},"pull-3875")," - Fix cddl spec for CostModels in Conway"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3876"},"pull-3876")," - Change 4 PParam fields from EpochNo to EpochInterval"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3884"},"pull-3884")," - Relax requirement on the Set tag 258 to be enforced in the next era")),(0,r.kt)("h3",{id:"testing"},"Testing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3868"},"pull-3868")," - Improvements to support property tests on Traces with simple Tx with DRep related Certs"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3792"},"pull-3792")," - RATIFY and GOV constraint tests"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3885"},"pull-3885")," - Added a test for genTxAndNewEpoch"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3886"},"pull-3886")," - QuickCheck Imp integration")),(0,r.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3854"},"pull-3854")," - Integration work for node 8.7.0"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3872"},"pull-3872")," - Fixup ReadTheDocs build"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3871"},"pull-3871")," - Bump plutus dep to 1.16"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3874"},"pull-3874")," - Post release changes"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3880"},"pull-3880")," - Remove generic-monoid dependency"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3887"},"pull-3887")," - Add changelog for features that landed in cardano-node-8.7")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3a493dd8.df250b1d.js b/assets/js/3a493dd8.df250b1d.js new file mode 100644 index 0000000000..9b4d9e3fa9 --- /dev/null +++ b/assets/js/3a493dd8.df250b1d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[39071],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),m=s(a),d=n,c=m["".concat(p,".").concat(d)]||m[d]||u[d]||i;return a?r.createElement(c,o(o({ref:t},h),{},{components:a})):r.createElement(c,o({ref:t},h))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-05-26-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-26-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-26-hydra.md",source:"@site/blog/2023-05-26-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-05-26T00:00:00.000Z",formattedDate:"May 26, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.11,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-05-26-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-05-26-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-05-26-ledger"}},p={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:s},m="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,'This week, the Hydra team accomplished several important tasks. They held their\nmonthly review meeting and drafted the report for May. They made progress on\nimplementing the first end-to-end journey for external commits using "Option A"\nfor normal UTxOs, while still considering "Option B". The team also integrated a\nSpanish translation contributed by the community, created micro-benchmarks for\ntransaction validation and deserialization, and made improvements to\nhydra-node\'s version reporting. Last but not least, they implemented the ability\nto commit multiple UTxOs to a head at once.'),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Held the monthly review meeting (",(0,n.kt)("a",{parentName:"li",href:"https://drive.google.com/file/d/1_N6b4RDe579TgLawiJzbE0NLofD3ljE6/view"},"recording")," + ",(0,n.kt)("a",{parentName:"li",href:"https://docs.google.com/presentation/d/1anUC3Z1idloyR6uwiSHLZtV6-LQvUcByHPMUgCBOVIA"},"slides"),") & drafted the report for May."),(0,n.kt)("li",{parentName:"ul"},"Have a first end-to-end journey for external commits implementing ","\u201c","Option A","\u201d","\nfor normal UTxOs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/887"},"#887")," (still considering ","\u201c","Option B","\u201d",")."),(0,n.kt)("li",{parentName:"ul"},"Integrated the spanish translation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/866"},"#866"),"."),(0,n.kt)("li",{parentName:"ul"},"Created micro-benchmarks for transaction validation and deserialization ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/884"},"#884"),"."),(0,n.kt)("li",{parentName:"ul"},"Improve hydra-node ","\u2013","version reporting on non-released builds ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/849"},"#849")),(0,n.kt)("li",{parentName:"ul"},"Some minor CI improvements following up last weeks changes."),(0,n.kt)("li",{parentName:"ul"},"Allow commit transactions with multiple UTxO ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/774"},"#774"),".")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Investigate and re-open our team-internal head on mainnet."),(0,n.kt)("li",{parentName:"ul"},"Improve and provide regular benchmarks for Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/186"},"#186"),"."),(0,n.kt)("li",{parentName:"ul"},"Complete external commits with script UTxOs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215"),"."),(0,n.kt)("li",{parentName:"ul"},"Authenticate network messages ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/727"},"#727"),"."),(0,n.kt)("li",{parentName:"ul"},"Add hydra as tool to developr platform ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/872"},"#872"),".")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3a5dab2a.d2c4662c.js b/assets/js/3a5dab2a.d2c4662c.js new file mode 100644 index 0000000000..515872f9ea --- /dev/null +++ b/assets/js/3a5dab2a.d2c4662c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90469],{31308:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/12","page":12,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/11","nextPage":"/tags/hydra/page/13","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/3a906e9e.570e3e26.js b/assets/js/3a906e9e.570e3e26.js new file mode 100644 index 0000000000..019b080a18 --- /dev/null +++ b/assets/js/3a906e9e.570e3e26.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[56626],{1043:e=>{e.exports=JSON.parse('{"permalink":"/page/75","page":75,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/74","nextPage":"/page/76","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/3ab5f4e0.d8819c97.js b/assets/js/3ab5f4e0.d8819c97.js new file mode 100644 index 0000000000..72def840b5 --- /dev/null +++ b/assets/js/3ab5f4e0.d8819c97.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4376],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(h,l(l({ref:t},p),{},{components:n})):r.createElement(h,l({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-03-23-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-03-23-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-23-db-sync.md",source:"@site/blog/2023-03-23-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-03-23T00:00:00.000Z",formattedDate:"March 23, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.755,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-03-23-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-03-24-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-03-23-mithril"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team worked in performance enhancements issues, on providing new db-sync options and on\ntechnical debt and bug fixing. The DBSync team also on boarded a new member."),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Worked on an issue which causes ",(0,a.kt)("inlineCode",{parentName:"li"},"ada_pots")," tables to include the values related not only to an\nepoch, but also the first epoch of the last epoch.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1367"},"#1367")),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue where the ",(0,a.kt)("inlineCode",{parentName:"li"},"epoch")," table didn't rollback and caused wrong values\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1370"},"#1370")),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue were users with ",(0,a.kt)("inlineCode",{parentName:"li"},"disable-ledger")," option had to provide the state dir option, even\nthough it was never used. Also refactored the no ledger part of the codebase.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1378"},"#1378")),(0,a.kt)("li",{parentName:"ul"},"Improved the perforance by using the cache more. Also provided many new options which enables or\ndisables parts of db-sync. In addition a new ",(0,a.kt)("inlineCode",{parentName:"li"},"--turbo")," mode is enables which allows db-sync to sync\nmainnet in hours.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1379"},"#1379"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3ac610ff.c8c44cc1.js b/assets/js/3ac610ff.c8c44cc1.js new file mode 100644 index 0000000000..2138ab0553 --- /dev/null +++ b/assets/js/3ac610ff.c8c44cc1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15091],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=c(r),u=a,f=m["".concat(p,".").concat(u)]||m[u]||d[u]||o;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[m]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-03-16-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-03-16-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-16-goedel.md",source:"@site/blog/2023-03-16-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-03-16T00:00:00.000Z",formattedDate:"March 16, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.55,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-03-16-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-03-17-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2023-03-10-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],s={toc:c},m="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the team has been working on drafts of two papers\nimproving the deltaQ tutorial, consulting on performance design, and\nthe final version of the Djed paper."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing draft of DeltaQSD algebra paper for ICE 2023")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Successful outcome of Marlowe consultancy leading to substantial\nimprovement in performance")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing sections on the communication language and bisimulation\nproofs for draft paper about verifying design refinements for\ndistributed system design")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Camera ready version of Djed paper under preparation"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3b080b29.3360d872.js b/assets/js/3b080b29.3360d872.js new file mode 100644 index 0000000000..8ca3b92430 --- /dev/null +++ b/assets/js/3b080b29.3360d872.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[66175],{37899:e=>{e.exports=JSON.parse('[{"label":"consensus","permalink":"/quarterly/tags/consensus","count":5},{"label":"network","permalink":"/quarterly/tags/network","count":4},{"label":"sre","permalink":"/quarterly/tags/sre","count":5},{"label":"performance-tracing","permalink":"/quarterly/tags/performance-tracing","count":2},{"label":"ledger","permalink":"/quarterly/tags/ledger","count":2},{"label":"open-source","permalink":"/quarterly/tags/open-source","count":1},{"label":"cli-api-quarterly","permalink":"/quarterly/tags/cli-api-quarterly","count":1}]')}}]); \ No newline at end of file diff --git a/assets/js/3b214584.d0b0a736.js b/assets/js/3b214584.d0b0a736.js new file mode 100644 index 0000000000..401aea94f9 --- /dev/null +++ b/assets/js/3b214584.d0b0a736.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[89650],{84038:e=>{e.exports=JSON.parse('{"permalink":"/tags/ledger/page/3","page":3,"postsPerPage":5,"totalPages":9,"totalCount":44,"previousPage":"/tags/ledger/page/2","nextPage":"/tags/ledger/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/3b3294a4.e2689ce4.js b/assets/js/3b3294a4.e2689ce4.js new file mode 100644 index 0000000000..0f0ef54dab --- /dev/null +++ b/assets/js/3b3294a4.e2689ce4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[493],{40861:e=>{e.exports=JSON.parse('{"permalink":"/tags/ledger/page/4","page":4,"postsPerPage":5,"totalPages":9,"totalCount":44,"previousPage":"/tags/ledger/page/3","nextPage":"/tags/ledger/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/3bb06773.570c8a45.js b/assets/js/3bb06773.570c8a45.js new file mode 100644 index 0000000000..4742443b6e --- /dev/null +++ b/assets/js/3bb06773.570c8a45.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65029],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=u(a),s=r,h=m["".concat(p,".").concat(s)]||m[s]||d[s]||i;return a?n.createElement(h,o(o({ref:t},c),{},{components:a})):n.createElement(h,o({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:r,o[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-08-29-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",l={permalink:"/2023-08-29-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-29-node-cli-api.md",source:"@site/blog/2023-08-29-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-08-29T00:00:00.000Z",formattedDate:"August 29, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.55,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-08-29-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-09-01-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2023-08-28-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-08-16---2023-08-29"},"2023-08-16 - 2023-08-29"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"CLI is making progress towards phases 3 and 4 of SanchoNet."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Ability to create info, no-confidence and new committee governance actions.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Voting as DREP is possible now on the CLI")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"API is now using Ledger's PParams and VotingProcedures")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Expose following queries from consensus:"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre"},"- GetGovState\n- GetDRepState\n- GetDRepStakeDistr\n- GetCommitteeState\n- GetConstitution\n")))),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/179"},"Add goverance info action creation to era based cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/176"},"Add create-no-confidence command to era based cardano-cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/175"},"Add create-new-committee command to era based cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/204"},"Enable ",(0,r.kt)("inlineCode",{parentName:"a"},"--drep-script-hash")," option")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/211"},"Remove ",(0,r.kt)("inlineCode",{parentName:"a"},"experimental")," subcommand")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/210"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.17.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/194"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"governance drep id")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/189"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"governance query")," commands")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/187"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"--verification-key")," option to ",(0,r.kt)("inlineCode",{parentName:"a"},"committee key-hash")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/203"},"Read and write ",(0,r.kt)("inlineCode",{parentName:"a"},"VotingProcedures")," files instead of ",(0,r.kt)("inlineCode",{parentName:"a"},"VotingEntry")," files")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/201"},"Release 8.6.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/195"},"Merge ",(0,r.kt)("inlineCode",{parentName:"a"},"LegacyClientCmdError")," into ",(0,r.kt)("inlineCode",{parentName:"a"},"CmdError")," ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/193"},"Add test for conway governance action create-constitution")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/192"},"Move legacy errors out of legacy command structure modules")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/191"},"Governance ",(0,r.kt)("inlineCode",{parentName:"a"},"drep")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"vote")," command groups")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/188"},"Move command errors from era-based to ",(0,r.kt)("inlineCode",{parentName:"a"},"CmdError")," module")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/186"},"Move some error types")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/185"},"Delete unused module")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/183"},"Refactor: Use ",(0,r.kt)("inlineCode",{parentName:"a"},"maybeFeatureInEra")," instead of ",(0,r.kt)("inlineCode",{parentName:"a"},"featureInEra")," where possible")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/182"},"Remove all uses of ",(0,r.kt)("inlineCode",{parentName:"a"},"toS"),", ",(0,r.kt)("inlineCode",{parentName:"a"},"purer"),", ",(0,r.kt)("inlineCode",{parentName:"a"},"cborError")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"intercalate")," from ",(0,r.kt)("inlineCode",{parentName:"a"},"Cardano.Prelude"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/180"},"Remove example era-based parsers we don't need anymore")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/174"},"Bump CHaP index in preparation for 8.3.0 pre"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/216"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.17.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/214"},"Replace ProtocolParameters usage with ledger's PParams")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/210"},"Use injective type families to improve type inference")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/209"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"TxVotes")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"VotingEntry")," and use ",(0,r.kt)("inlineCode",{parentName:"a"},"VotingProcedures")," instead")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/208"},"New functions ",(0,r.kt)("inlineCode",{parentName:"a"},"emptyVotingProcedures"),", ",(0,r.kt)("inlineCode",{parentName:"a"},"singletonVotingProcedures")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"mergeVotingProcedures"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/207"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"makeStakeAddressAndDRepDelegationCertificate")," function")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/206"},"Expose ledger lenses for governance types")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/205"},"New version cardano-api-8.16.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/204"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"VotingProcedures")," type")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/202"},"Release 8.16.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/200"},"Update createAnchor to use hashAnchorData")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/197"},"Release 8.15.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/196"},"Add consensus governance queries"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3bb415e3.539a5208.js b/assets/js/3bb415e3.539a5208.js new file mode 100644 index 0000000000..17b866b62d --- /dev/null +++ b/assets/js/3bb415e3.539a5208.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94900],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),u=a,g=s["".concat(p,".").concat(u)]||s[u]||d[u]||o;return r?n.createElement(g,l(l({ref:t},m),{},{components:r})):n.createElement(g,l({ref:t},m))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-06-23-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-06-23-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-23-goedel.md",source:"@site/blog/2023-06-23-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-06-23T00:00:00.000Z",formattedDate:"June 23, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.335,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-06-23-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-06-28-performance-and-tracing"},nextItem:{title:"Hydra Team Update",permalink:"/2023-06-23-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the teams presented two papers at ICE 2023."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Presented two papers at ICE 2023: ",(0,a.kt)("a",{parentName:"p",href:"https://www.discotec.org/2023/ice"},"https://www.discotec.org/2023/ice"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Analysing and implementing chain synchronization mini protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The team is hiring a performance engineering intern - ",(0,a.kt)("a",{parentName:"p",href:"https://apply.workable.com/io-global/j/BFEC5B0AFF/"},"https://apply.workable.com/io-global/j/BFEC5B0AFF/")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3bc8fe23.cfa0b0b8.js b/assets/js/3bc8fe23.cfa0b0b8.js new file mode 100644 index 0000000000..4b8e230928 --- /dev/null +++ b/assets/js/3bc8fe23.cfa0b0b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[12029],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),h=n,d=m["".concat(s,".").concat(h)]||m[h]||c[h]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-10-11-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-10-11-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-11-mithril.md",source:"@site/blog/2023-10-11-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-10-11T00:00:00.000Z",formattedDate:"October 11, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.77,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-10-11-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-10-13-sre"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-10-10-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team worked on the distribution of the Mithril client as a library that will be distributed on ",(0,n.kt)("a",{parentName:"p",href:"https://crates.io/"},"crates.io"),", the Rust dependencies repository. The team also worked on the deterministic computation of the transaction history of an address from the immutable files and started fixing a bottleneck in the aggregator that limits the ingestion of signatures."),(0,n.kt)("p",null,"Finally, they kept working on the activation of Cloudflare on the infrastructure and fixed some bugs in the Nix CI."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Make ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," crate a library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1141"},"#1141")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Compute deterministic Cardano transactions history PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1283"},"#1283")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"ProtocolKeyRegistration")," creates performance bottleneck in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1187"},"#1187")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Update ",(0,n.kt)("inlineCode",{parentName:"strong"},"Rust")," compiler in ",(0,n.kt)("inlineCode",{parentName:"strong"},"nix")," CI")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1282"},"#1282")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Mithril networks infrastructure maintenance")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1218"},"#1218")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Activate Cloudflare protection of infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1230"},"#1230"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3bf61174.0261cb0f.js b/assets/js/3bf61174.0261cb0f.js new file mode 100644 index 0000000000..16c21304d7 --- /dev/null +++ b/assets/js/3bf61174.0261cb0f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25358],{1829:e=>{e.exports=JSON.parse('{"permalink":"/page/80","page":80,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/79","nextPage":"/page/81","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/3bfbfc92.6cdb6aae.js b/assets/js/3bfbfc92.6cdb6aae.js new file mode 100644 index 0000000000..f45d448f1c --- /dev/null +++ b/assets/js/3bfbfc92.6cdb6aae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92734],{74298:e=>{e.exports=JSON.parse('{"permalink":"/page/60","page":60,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/59","nextPage":"/page/61","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/3c041795.f79ecca9.js b/assets/js/3c041795.f79ecca9.js new file mode 100644 index 0000000000..96aabd1f5f --- /dev/null +++ b/assets/js/3c041795.f79ecca9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[98125],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=u(n),d=a,f=m["".concat(l,".").concat(d)]||m[d]||p[d]||s;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const s={title:"Consensus Team Update",slug:"2024-07-10-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2024-07-10-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-10-consensus.md",source:"@site/blog/2024-07-10-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-07-10T00:00:00.000Z",formattedDate:"July 10, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.305,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-07-10-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-07-17-mithril"},nextItem:{title:"Mithril Team Update",permalink:"/2024-07-10-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},m="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Assisted with Node release 9.0:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Performed security audits, engaged with other teams, implemented improvements, and released Consensus packages."))),(0,a.kt)("li",{parentName:"ul"},"We are now running additional ",(0,a.kt)("inlineCode",{parentName:"li"},"NoThunks")," tests, which help us safeguard against memory leaks in the node."),(0,a.kt)("li",{parentName:"ul"},"Reviewed ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1113"},"Milestone 13")," of Genesis, which improves the code documentation of Genesis, and implements some fixes and optimizations.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3c0c6268.56bf918d.js b/assets/js/3c0c6268.56bf918d.js new file mode 100644 index 0000000000..bc86636077 --- /dev/null +++ b/assets/js/3c0c6268.56bf918d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95815],{50129:e=>{e.exports=JSON.parse('{"permalink":"/page/34","page":34,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/33","nextPage":"/page/35","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/3c14a1c3.0c0f4f11.js b/assets/js/3c14a1c3.0c0f4f11.js new file mode 100644 index 0000000000..42c5cd82c8 --- /dev/null +++ b/assets/js/3c14a1c3.0c0f4f11.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[76900],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-07-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-07-10-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-10-mithril.md",source:"@site/blog/2024-07-10-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-07-10T00:00:00.000Z",formattedDate:"July 10, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.315,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-07-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-07-10-consensus"},nextItem:{title:"Network Team Update",permalink:"/2024-07-08-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team worked on supporting Cardano node version ",(0,n.kt)("inlineCode",{parentName:"p"},"9.0.0")," and started working on a new Mithril distribution. They also continued implementing the certification of Cardano transactions in Mithril networks. They fixed some bugs blocking the REST API during transactions import, causing resource exhaustion on the aggregator Cardano node, and creating some exceptions in the explorer. They also kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network."),(0,n.kt)("p",null,"Finally, the team worked on enhancing the artifact production in the aggregator to avoid blocking the certification and finalized enforcing the linting of all the files in the repository with the CI."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Upgrade Cardano node ",(0,n.kt)("inlineCode",{parentName:"strong"},"9.0.0"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1787"},"#1787")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Aggregator/Signer preload transactions when Cardano transactions certification is not activated")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1782"},"#1782")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Explorer does not handle invalid transaction hashes")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1784"},"#1784")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Cardano transactions import blocks aggregator and signer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1797"},"#1797")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Resource exhausted on Cardano node socket")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1803"},"#1803")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Certificate pending route overwhelms the Cardano node in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1804"},"#1804")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Optimize Cardano transaction prover performances with parallelization")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1756"},"#1756")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Lint Markdown/JavaScript files in repository")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1754"},"#1754")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"CIP for Mithril signature diffusion through Cardano network")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1775"},"#1775")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Release ",(0,n.kt)("inlineCode",{parentName:"strong"},"2428")," distribution")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1810"},"#1810")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Non blocking artifact production in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1792"},"#1792")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Cardano transaction importer does not import the last block advertised as certified")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1785"},"#1785"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3c3d2bff.a2293639.js b/assets/js/3c3d2bff.a2293639.js new file mode 100644 index 0000000000..24af2dd520 --- /dev/null +++ b/assets/js/3c3d2bff.a2293639.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[49706],{3905:(e,t,i)=>{i.d(t,{Zo:()=>c,kt:()=>y});var n=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function o(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l=n.createContext({}),u=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},c=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(i),h=a,y=d["".concat(l,".").concat(h)]||d[h]||p[h]||r;return i?n.createElement(y,o(o({ref:t},c),{},{components:i})):n.createElement(y,o({ref:t},c))}));function y(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=i.length,o=new Array(r);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,o[1]=s;for(var u=2;u{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var n=i(87462),a=(i(67294),i(3905));const r={title:"SECP bindings Security Issue Report",slug:"2023-08-17-secp-issue",authors:"iquerejeta",tags:["crypto","incident"],hide_table_of_contents:!1},o=void 0,s={permalink:"/2023-08-17-secp-issue",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-17-secp-security-issue-report.md",source:"@site/blog/2023-08-17-secp-security-issue-report.md",title:"SECP bindings Security Issue Report",description:"Security Issue Report: SECP256k1 bug",date:"2023-08-17T00:00:00.000Z",formattedDate:"August 17, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"},{label:"incident",permalink:"/tags/incident"}],readingTime:3.3,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"SECP bindings Security Issue Report",slug:"2023-08-17-secp-issue",authors:"iquerejeta",tags:["crypto","incident"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-08-17-db-sync"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-08-15-node-cli-api"}},l={authorsImageUrls:[void 0]},u=[{value:"Security Issue Report: SECP256k1 bug",id:"security-issue-report-secp256k1-bug",level:2},{value:"Summary of Issue",id:"summary-of-issue",level:3},{value:"Criticality Level",id:"criticality-level",level:4},{value:"What Action was Taken",id:"what-action-was-taken",level:4},{value:"Potential Effect",id:"potential-effect",level:4},{value:"Actual Effect",id:"actual-effect",level:4},{value:"Ongoing Mitigations Needed, if any",id:"ongoing-mitigations-needed-if-any",level:4},{value:"Responsibility for Mitigations",id:"responsibility-for-mitigations",level:4},{value:"Detailed description of Incident",id:"detailed-description-of-incident",level:3},{value:"Recommendations",id:"recommendations",level:3}],c={toc:u},d="wrapper";function p(e){let{components:t,...i}=e;return(0,a.kt)(d,(0,n.Z)({},c,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"security-issue-report-secp256k1-bug"},"Security Issue Report: SECP256k1 bug"),(0,a.kt)("p",null,"Date Occurred: July 15, 2022\nSeverity: Potentially Very High if exploited on Mainnet\nAuthors: I\xf1igo Querejeta Azurmendi"),(0,a.kt)("p",null,"Date of Report: August 17, 2023"),(0,a.kt)("h3",{id:"summary-of-issue"},"Summary of Issue"),(0,a.kt)("h4",{id:"criticality-level"},"Criticality Level"),(0,a.kt)("p",null,"Actually low (since the issue was detected prior to deployment) but potentially very high if it had been deployed to mainnet\nContext"),(0,a.kt)("p",null,"New SECP256k1 Plutus bindings were being introduced in order to support interoperability with other major chains, such as Bitcoin and Ethereum. The intention was to deploy these as part of the Vasil hard-fork. The bindings were considered to be a low-security risk since the underlying library functions were well tested and had been deployed on other blockchains.\nHow was the Issue Detected"),(0,a.kt)("p",null,"The issue was detected via specific End-to-End tests that had been commissioned. It was (accidentally) triggered on the Cardano Testnet before a fix could be deployed there."),(0,a.kt)("h4",{id:"what-action-was-taken"},"What Action was Taken"),(0,a.kt)("p",null,"The Cardano Testnet was permanently halted, and new test environments were deployed (Preview and Pre-Prod).\nFixes were applied to prevent the use of the primitives.\nA full security audit was carried out on the bindings.\nThe rollout of the primitives was postponed to a new hard fork (Valentine)"),(0,a.kt)("h4",{id:"potential-effect"},"Potential Effect"),(0,a.kt)("p",null,"The potential effect was that an adversary might be able to craft invalid Plutus transactions to crash any node, requiring execution of the Cardano disaster recovery plan to revert to a safe state and bypass the transaction."),(0,a.kt)("h4",{id:"actual-effect"},"Actual Effect"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Delay to the Vasil hard-fork"),(0,a.kt)("li",{parentName:"ul"},"Temporary removal of SECP256k1 primitives"),(0,a.kt)("li",{parentName:"ul"},"Additional hard-fork to introduce SECP256k1 primitives")),(0,a.kt)("h4",{id:"ongoing-mitigations-needed-if-any"},"Ongoing Mitigations Needed, if any"),(0,a.kt)("p",null,"None"),(0,a.kt)("h4",{id:"responsibility-for-mitigations"},"Responsibility for Mitigations"),(0,a.kt)("p",null,"Core team"),(0,a.kt)("h3",{id:"detailed-description-of-incident"},"Detailed description of Incident"),(0,a.kt)("p",null,"New Plutus ",(0,a.kt)("strong",{parentName:"p"},"secp256k1")," cryptographic primitives for Plutus v2 failed to apply the necessary validity checks on the input data, meaning that the primitives could theoretically be used in an unsafe environment. The vulnerability was present in recent node versions (1.35.0 onwards), including ones deployed to Cardano Testnet."),(0,a.kt)("p",null,"The problem was not in the deserialization functions of the underlying library (Bitcoin's library) but rather that the Haskell functions that implemented the Plutus builtins were not calling them correctly. In particular, the library functions were designed to take structured data as input. However, the Haskell FFI implementation that was produced for the Plutus builtins allowed a caller to pass in (possibly) unstructured data. There were no checks that these data were structured in the correct way. This issue was detected during End-to-End testing."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/bitcoin-core/secp256k1/blob/master/include/secp256k1.h#L518"},"This")," is the ECDSA signature verification algorithm that was used. It takes a SECP256k1_pubkey as input. That type is an opaque type with an ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/bitcoin-core/secp256k1/blob/master/include/secp256k1.h#L61"},"expected")," structure: a parsed and valid public key. It was not immediately obvious that structured data needed to be passed to allow the function to be used safely."),(0,a.kt)("li",{parentName:"ul"},"The same happened with the Schnorr ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/bitcoin-core/secp256k1/blob/master/include/secp256k1_schnorrsig.h#L170"},"verification function"),". It takes as input a SECP256k1_xonly_pubkey, which is again an ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/bitcoin-core/secp256k1/blob/master/include/secp256k1_extrakeys.h#L10"},"opaque structure")," that holds a parsed and valid public key.")),(0,a.kt)("p",null,"The FFI skipped checks over these structured keys and directly passed the raw bytes that were given as arguments. If an adversary were to pass in data that was not properly structured, then it could result in unexpected behavior of the library. This could perhaps translate into an adversary being able to crash the nodes that ran these functions. All nodes in the network could be crashed by a single transaction that would then be executed repeatedly, so stalling the network until the disaster recovery process was initiated."),(0,a.kt)("p",null,"The fix was addressed in ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/289"},"this")," PR. It consisted of using the external representation that the deserialization function expects and running the deserialization prior to signature verification. This was audited by security experts."),(0,a.kt)("h3",{id:"recommendations"},"Recommendations"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Check all new Plutus bindings for correct use."),(0,a.kt)("li",{parentName:"ul"},"Audit all new Plutus built-in bindings."),(0,a.kt)("li",{parentName:"ul"},"Continue to develop specific End-to-End tests for all new Plutus features."),(0,a.kt)("li",{parentName:"ul"},'Do not assume that any existing library functions are "safe". Treat all external calls circumspectly.')))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3c855eb4.c366bfb8.js b/assets/js/3c855eb4.c366bfb8.js new file mode 100644 index 0000000000..3d42bf7fda --- /dev/null +++ b/assets/js/3c855eb4.c366bfb8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27865],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(a),m=n,h=u["".concat(c,".").concat(m)]||u[m]||d[m]||l;return a?r.createElement(h,o(o({ref:t},s),{},{components:a})):r.createElement(h,o({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:n,o[1]=i;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-02-29-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",i={permalink:"/2024-02-29-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-29-node-cli-api.md",source:"@site/blog/2024-02-29-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-02-29T00:00:00.000Z",formattedDate:"February 29, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.645,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-02-29-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-03-01-sre"},nextItem:{title:"Ledger Team Update",permalink:"/2024-02-28-ledger"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-02-16---2024-02-29"},"2024-02-16 - 2024-02-29"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-cli: Release cardano-cli-8.20.3.0; Integrate with most recent ouroboros network, consensus and api. Enhancements to various queries. Continue working on implementing tests for Conway era. ")),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/626"},"Release cardano-cli-8.20.3.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/622"},"Release 8.20.2.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/620"},"Add missing newlines to ",(0,n.kt)("inlineCode",{parentName:"a"},"cardano-cli query utxo")," output")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/617"},"query stake-pools: add --output-[json,text] flag to control format of the output")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/615"},"Integrate with most recent network, consensus and api")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/613"},"Bump hedgehog-extras to 0.6.1.0"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/465"},"Release cardano-api-8.39.2.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/463"},"Release cardano-api 8.39.1.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/460"},"Release 8.39.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/459"},"Integrates with most recent network, consensus and api"))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5685"},"Plutus v3 conway simple spending, minting and certifying script tests")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5681"},"Upgrade to hedgehog-extras 0.6.1.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5680"},"blst version upgrade and CHaP bump"))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3cb9fdac.32c06432.js b/assets/js/3cb9fdac.32c06432.js new file mode 100644 index 0000000000..aad45a4edb --- /dev/null +++ b/assets/js/3cb9fdac.32c06432.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[55638],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=p(a),s=r,h=d["".concat(c,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,i(i({ref:t},u),{},{components:a})):n.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=s;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-04-20-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2023-04-20-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-20-node-cli-api.md",source:"@site/blog/2023-04-20-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-04-20T00:00:00.000Z",formattedDate:"April 20, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.4,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-04-20-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-04-20-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2023-04-19-consensus"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],u={toc:p},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-04-20---2023-05-04"},"2023-04-20 - 2023-05-04"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Various fixes and improvements")),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5136"},"Modify golden test functions to automatically create parent directories")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5132"},"SPO on-chain poll commands adjustments")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5119"},"New environment variable CARDANO_NODE_NETWORK_ID")," ")),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5172"},(0,r.kt)("inlineCode",{parentName:"a"},"--out-file")," option for governance commands")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5130"},"UTC Time to slots conversion function")," ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5157"},"Update CHaP to get latest ledger with performance fix")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4854"},"Integration with Peer Sharing")," ")),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3ce290cc.bcd1cd14.js b/assets/js/3ce290cc.bcd1cd14.js new file mode 100644 index 0000000000..0033d4eccf --- /dev/null +++ b/assets/js/3ce290cc.bcd1cd14.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18654],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=s(r),u=a,g=m["".concat(p,".").concat(u)]||m[u]||d[u]||o;return r?n.createElement(g,i(i({ref:t},c),{},{components:r})):n.createElement(g,i({ref:t},c))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-02-17-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-02-17-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-goedel.md",source:"@site/blog/2023-02-17-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-02-17T00:00:00.000Z",formattedDate:"February 17, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.53,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-02-17-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-02-17-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-02-17-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],c={toc:s},m="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the team has been working on drafts of two papers and one\ntechnical report, distributivity properties of deltaQ, and consulting\non performance design with the Marlowe team."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Processing reviews on performance engineering paper and planning\npaper revisions accordingly")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Investigating distributivity properties of DeltaQ")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing sections on the thorn calculus and idempotency laws for\ndraft paper about verifying design refinements for distributed\nsystem design")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Consulting on performance design with Marlowe team"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3d542156.55bb2fe2.js b/assets/js/3d542156.55bb2fe2.js new file mode 100644 index 0000000000..d8bdd0262f --- /dev/null +++ b/assets/js/3d542156.55bb2fe2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[85563],{98964:a=>{a.exports=JSON.parse('{"label":"performance-tracing","permalink":"/tags/performance-tracing","allTagsPath":"/tags","count":34}')}}]); \ No newline at end of file diff --git a/assets/js/3dbbac8a.a377d47f.js b/assets/js/3dbbac8a.a377d47f.js new file mode 100644 index 0000000000..f9d511702b --- /dev/null +++ b/assets/js/3dbbac8a.a377d47f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16855],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>d});var r=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function l(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var p=r.createContext({}),u=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):l(l({},t),e)),i},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,a=e.mdxType,n=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=u(i),c=a,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||n;return i?r.createElement(d,l(l({ref:t},s),{},{components:i})):r.createElement(d,l({ref:t},s))}));function d(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=i.length,l=new Array(n);l[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:a,l[1]=o;for(var u=2;u{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>n,metadata:()=>o,toc:()=>u});var r=i(87462),a=(i(67294),i(3905));const n={title:"Mithril Team Update",slug:"2023-07-13-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-07-13-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-13-mithril.md",source:"@site/blog/2023-07-13-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-07-13T00:00:00.000Z",formattedDate:"July 13, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.92,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-07-13-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-07-14-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-07-12-consensus"}},p={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:u},m="wrapper";function h(e){let{components:t,...i}=e;return(0,a.kt)(m,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The Mithril team created a new ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2327.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2327.0"))," distribution. They focused on preparing the beta launch on the ",(0,a.kt)("inlineCode",{parentName:"p"},"mainnet"),": they tested the new production signer deployment model with the pioneer SPOs, they prepared an SPO on-boarding guide, and they kept working on the deployment and monitoring of the ",(0,a.kt)("inlineCode",{parentName:"p"},"mainnet")," infrastructure. The team also worked on the implementation of a simple stress test tool for benchmarking the aggregator. Additionally, they completed the refactoring of the interface to the cryptographic library. "),(0,a.kt)("p",null,"Finally, they fixed a bug that sporadically prevented the latest signer registration of a SPO to be used in the associated signing epoch, they fixed a bug in the epoch gap detection of the certificate chain in the aggregator, and worked on multiple other optimizations and bugs."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2327.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2327.0"))),(0,a.kt)("li",{parentName:"ul"},"Worked on the epic that prepares the Mithril infrastructure for ",(0,a.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/767"},"#767"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Add infrastructure monitoring")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/987"},"#987")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Deploy 'mainnet' infrastructure")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/988"},"#988")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Handle Secrets management")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/989"},"#989")))),(0,a.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,a.kt)("inlineCode",{parentName:"li"},"Benchmark performances of Mithril Aggregator")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/904"},"#904"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Design & implement basic stress test tool for aggregator")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/991"},"#991")))),(0,a.kt)("li",{parentName:"ul"},"Worked on optimizations:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Remove certificate hash from Artifact")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/932"},"#932")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Check vulnerabilities in CI")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1037"},"#1037")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Add 'created_at' in Mithril Stake Distribution messages")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1030"},"#1030")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Add a 'run-only' option in end to end test")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1048"},"#1048")))),(0,a.kt)("li",{parentName:"ul"},"Worked on refactoring:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Factorize protocol crypto operations")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/669"},"#669")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Refactor aggregator dependency injection and services")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1058"},"#1058")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Build static binaries in CI")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/874"},"#874")))),(0,a.kt)("li",{parentName:"ul"},"Worked on documentation:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Prepare SPO on-boarding guide")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1049"},"#1049")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Add instructions to set firewall using iptables")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1040"},"#1040")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Update ufw command to set firewall on Mithril Signer installation instructions")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1041"},"#1041")))),(0,a.kt)("li",{parentName:"ul"},"Worked on bugs:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Aggregator does not detect certificate chain epoch gap")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/952"},"#952")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"'testing-preview' network does not create certificates")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1015"},"#1015")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"SQLite compatibility in aggregator")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/837"},"#837")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Q&A followup fixes")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1035"},"#1035")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"E2E tests are flaky in CI")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1023"},"#1023"))))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3dbe7590.3310b576.js b/assets/js/3dbe7590.3310b576.js new file mode 100644 index 0000000000..2274c97065 --- /dev/null +++ b/assets/js/3dbe7590.3310b576.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94706],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),u=p(a),m=n,h=u["".concat(c,".").concat(m)]||u[m]||d[m]||i;return a?r.createElement(h,l(l({ref:t},s),{},{components:a})):r.createElement(h,l({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,l=new Array(i);l[0]=m;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[u]="string"==typeof e?e:n,l[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2024-03-30-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",o={permalink:"/2024-03-30-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-30-node-cli-api.md",source:"@site/blog/2024-03-30-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-03-30T00:00:00.000Z",formattedDate:"March 30, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.19,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-03-30-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-04-03-mithril"},nextItem:{title:"SRE Team Update",permalink:"/2024-03-29-sre"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-03-16---2024-03-30"},"2024-03-16 - 2024-03-30"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Adding support for script based committee and dreps. This includes queries and using script as arguments instead of keys on various command."),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/684"},"Fix issues in ",(0,n.kt)("inlineCode",{parentName:"a"},"MonadWarning")," Haddock")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/683"},"Follow-ups of merged PRs")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/682"},"Comments and indentation")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/681"},"Throw an error on identical action-ids in votes of one voter")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/678"},"Add ",(0,n.kt)("inlineCode",{parentName:"a"},"--drep-script-hash")," parameter to ",(0,n.kt)("inlineCode",{parentName:"a"},"conway governance drep retirement-certificate"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/677"},"Update index-state and set cardano-git-rev ^>= 0.2.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/675"},"Update index-state and set cardano-git-rev ^>= 0.2.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/671"},"drep: registration-certificate, update-certificate: test anchors URLs of length > 64 and <= 128")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/670"},"Update ouroboros-consensus-cardano-0.14.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/669"},"proposal: disambiguate binary data from text data")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/668"},"Release cardano-cli-8.21.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/666"},"Support querying drep-state by script hash")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/665"},"vote create: support DRep and CC script hash")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/664"},"Display redeemers in ",(0,n.kt)("inlineCode",{parentName:"a"},"transaction view"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/658"}," Add Plutus script hash support in ",(0,n.kt)("inlineCode",{parentName:"a"},"update-committee"),", ",(0,n.kt)("inlineCode",{parentName:"a"},"overnance committee create-cold-key-resignation-certificate")," and ",(0,n.kt)("inlineCode",{parentName:"a"},"query committee-state")," commands.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/655"},"Add semaphore for vote view JSON test cases")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/652"},"verification-key: support DRep keys as well as committee keys, extended or not"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/498"},"Replace unsafeMergeVotingProcedures by mergeVotingProcedures")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/493"},"Undeprecate ",(0,n.kt)("inlineCode",{parentName:"a"},"evaluateTransactionFee"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/492"},"New version ",(0,n.kt)("inlineCode",{parentName:"a"},"cardano-api-8.43.0.0"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/491"},"Release cardano-api-8.42.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/490"},'Tidy up "New calculateMinTxFee function"')),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/489"},"Add support for script-based CC members")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/488"},"Bump ouroboros-consensus-diffusion"))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5724"},"Bump cardano-api to 8.39.3.0 and ouroboros-* and ekg-forward as a consequence")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5722"},"testnet: fix that custom genesis files were not passed to create-testnet-data"))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3ed6d409.459a9f36.js b/assets/js/3ed6d409.459a9f36.js new file mode 100644 index 0000000000..1748e6bca4 --- /dev/null +++ b/assets/js/3ed6d409.459a9f36.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[41890],{84623:e=>{e.exports=JSON.parse('{"permalink":"/tags/cip-1694","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/3ee2c73a.cdd07e86.js b/assets/js/3ee2c73a.cdd07e86.js new file mode 100644 index 0000000000..24e8746741 --- /dev/null +++ b/assets/js/3ee2c73a.cdd07e86.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50506],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),c=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,h=s["".concat(u,".").concat(d)]||s[d]||m[d]||o;return r?n.createElement(h,l(l({ref:t},p),{},{components:r})):n.createElement(h,l({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"DB-sync Team Update",slug:"2023-05-01-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-05-01-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-01-db-sync.md",source:"@site/blog/2023-05-01-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-05-01T00:00:00.000Z",formattedDate:"May 1, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.515,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-05-01-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-05-03-performance-and-tracing"},nextItem:{title:"Crypto Team Update",permalink:"/2023-04-28-crypto"}},u={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],p={toc:c},s="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Prepared a schema change which is expected to speed up queries and help clients\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1389"},"#1389"),"."),(0,a.kt)("li",{parentName:"ul"},"Ran a big number of benchmarks on the above to evaluate if this change is reasonable."),(0,a.kt)("li",{parentName:"ul"},"Performance optimization related to rewards\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1382"},"#1382")),(0,a.kt)("li",{parentName:"ul"},"Using the cache in more places to reduce recourses usage\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1380"},"#1380")),(0,a.kt)("li",{parentName:"ul"},"Evaluated risks related to UTXO-HD integration"),(0,a.kt)("li",{parentName:"ul"},"Worked on a feauture request to split the ",(0,a.kt)("inlineCode",{parentName:"li"},"tx_out")," to an address table\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1396"},"#1396")),(0,a.kt)("li",{parentName:"ul"},"Worked on another feauture request to prune the consumed entries from the ",(0,a.kt)("inlineCode",{parentName:"li"},"tx_out")," table\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1398"},"#1398")),(0,a.kt)("li",{parentName:"ul"},"Prepared for CIP-1694 integration")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3f2108ba.a4042d50.js b/assets/js/3f2108ba.a4042d50.js new file mode 100644 index 0000000000..aeb8489c57 --- /dev/null +++ b/assets/js/3f2108ba.a4042d50.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[99610],{3905:(e,t,i)=>{i.d(t,{Zo:()=>u,kt:()=>d});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(i),c=n,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||a;return i?r.createElement(d,o(o({ref:t},u),{},{components:i})):r.createElement(d,o({ref:t},u))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-08-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-08-10-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-10-mithril.md",source:"@site/blog/2023-08-10-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-08-10T00:00:00.000Z",formattedDate:"August 10, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.7,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-08-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-08-11-performance-and-tracing"},nextItem:{title:"Consensus Team Update",permalink:"/2023-08-09-consensus"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...i}=e;return(0,n.kt)(m,(0,r.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team completed the ",(0,n.kt)("strong",{parentName:"p"},"Mithril protocol\u2019s mainnet beta")," launch: the ",(0,n.kt)("inlineCode",{parentName:"p"},"release-mainnet")," network is now consistently producing new certificates and snapshots! The team has released a new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2331.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2331.1"))," which includes some optimizations and bug fixes: the bootstrap time of a Cardano node restored from a Mithril snapshot has been significantly reduced, and a bug that made the aggregator produce corrupted archives has been fixed. They also kept working on the implementation of the stress test tool for benchmarking the aggregator: the first phase has been implemented, as well as a monitoring feature. Additionally, they kept implementing the refactoring of the serialization/deserialization of the entities of the cryptographic library, and working on the post deployment of the ",(0,n.kt)("inlineCode",{parentName:"p"},"mainnet")," infrastructure."),(0,n.kt)("p",null,"Finally, they completed the rewriting and enhancements of the documentation website, and they completed the runbook for operating a production Mithril network."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2331.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2331.1"))),(0,n.kt)("li",{parentName:"ul"},"Completed the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Release 'mainnet' Mithril network")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/918"},"#918")),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Benchmark performances of Mithril Aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/904"},"#904"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Design & implement basic stress test tool for aggregator - phase 1")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/991"},"#991")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Post deployment 'mainnet' infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1091"},"#1091"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Create Production Infrastructure Runbook")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1085"},"#1085")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Ingest 'mainnet' metrics/logs in Grafana")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1122"},"#1122")))),(0,n.kt)("li",{parentName:"ul"},"Worked on optimizations:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add a 'clean' file to extracted database in client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1131"},"#1131")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Create explorer page with registered signers")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1097"},"#1097")))),(0,n.kt)("li",{parentName:"ul"},"Worked on refactoring:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Refactor (de)serialization of crypto entities")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/668"},"#668")))),(0,n.kt)("li",{parentName:"ul"},"Worked on bugs:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Client fails to unpack some snapshot archive")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1137"},"#1137")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"The 'release-preprod' network stopped producing certificates")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1114"},"#1114")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"The 'release-mainnet' network does not show up in the explorer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1111"},"#1111")))),(0,n.kt)("li",{parentName:"ul"},"Worked on dependencies:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Upgrade Cardano node to '8.1.2'")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1090"},"#1090")))),(0,n.kt)("li",{parentName:"ul"},"Worked on troubleshooting:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Signer can't sign with 'Invalid signature for party' error")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1125"},"#1125"))))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3f828345.944c1e54.js b/assets/js/3f828345.944c1e54.js new file mode 100644 index 0000000000..7764f8ce10 --- /dev/null +++ b/assets/js/3f828345.944c1e54.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[68677],{35557:e=>{e.exports=JSON.parse('{"permalink":"/tags/db-sync/page/3","page":3,"postsPerPage":5,"totalPages":4,"totalCount":16,"previousPage":"/tags/db-sync/page/2","nextPage":"/tags/db-sync/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/3f9060c3.ec57be7f.js b/assets/js/3f9060c3.ec57be7f.js new file mode 100644 index 0000000000..fd18ea0f7a --- /dev/null +++ b/assets/js/3f9060c3.ec57be7f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[36398],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(f,s(s({ref:t},p),{},{components:n})):r.createElement(f,s({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:a,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-04-05-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-04-05-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-05-consensus.md",source:"@site/blog/2023-04-05-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-04-05T00:00:00.000Z",formattedDate:"April 5, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.66,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-04-05-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-04-06-mithril"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-04-05-node-cli-api"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This week the consensus team finished the UTxO-HD prototype refactoring. We are\nnow working on improving the DB lock mechanism to improve performance. We also\nintroduced several improvements to the file system abstraction and simulation\nlayer (",(0,a.kt)("inlineCode",{parentName:"p"},"fs-sim"),"), which culminated in the release of ",(0,a.kt)("inlineCode",{parentName:"p"},"fs-sim-0.1.0.0")," and\n",(0,a.kt)("inlineCode",{parentName:"p"},"fs-api-0.1.0.0")," to ",(0,a.kt)("inlineCode",{parentName:"p"},"CHaP"),"."),(0,a.kt)("p",null,"On the Genesis front we distributed the updated Genesis design document,\nsoliciting feedback from Networking Team and IOG Researchers. We also opened up\na PR for the adversarial leader schedule ",(0,a.kt)("inlineCode",{parentName:"p"},"QuickCheck")," generator, which is being\nreviewed."),(0,a.kt)("p",null,"On the support front, we got a new Consensus version that can use different\nfundamental VRF crypto primitives for Babbage and Conway eras."),(0,a.kt)("p",null,"On the tech debt front we fixed an bug in the followers logic, which was\ndiscovered by our ",(0,a.kt)("inlineCode",{parentName:"p"},"QuickCheck")," property tests."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3fb79450.92a6a971.js b/assets/js/3fb79450.92a6a971.js new file mode 100644 index 0000000000..42eb1251ec --- /dev/null +++ b/assets/js/3fb79450.92a6a971.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[19182],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>g});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(n),u=a,g=p["".concat(c,".").concat(u)]||p[u]||m[u]||o;return n?r.createElement(g,i(i({ref:t},d),{},{components:n})):r.createElement(g,i({ref:t},d))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & Tracing Update",slug:"2024-01-31-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-01-31-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-31-performance-and-tracing.md",source:"@site/blog/2024-01-31-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-01-31T00:00:00.000Z",formattedDate:"January 31, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.88,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-01-31-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-01-31-node-cli-api"},nextItem:{title:"DB Sync Team Update",permalink:"/2024-01-30-db-sync"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],d={toc:s},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: GHC 9.6.3 benchmarks for node ",(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2")," have been performed."),(0,a.kt)("li",{parentName:"ul"},"Development: Additional features for our reporting pipeline, while simultaneously reducing dependency footprint."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Implementation for ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," to work on handles instead of files; work on New Tracing Quickstart document has begun."),(0,a.kt)("li",{parentName:"ul"},"Nomad cluster: We're preparing an upgrade to the latest Nomad version.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed a full set of GHC 9.6.3 benchmarks for node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2"),". For recommending GHC9.6 as a default build platform for ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," - from a performance perspective - we observe only one residual issue. As a way to\naddress this, we've decided to create a reproduction benchmark targeting the affected component."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Our reporting pipeline will be expanded to support a wider range of rendering formats, as well as report templates. As the pipeline is part of our workbench - and thus gets downloaded and built when entering the workbench shell - it's\ngood practice to keep a small dependency footprint. When reworking the pipeline, we aim to simultaneously reduce dependencies."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"So far, ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," has internally been using files, or file names, for the purpose of logging trace messages it receives via forwarding. This is simple, but induces quite some overhead at runtime: files have to be opened and closed for each message.\nUsing and managing open file handles inside ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," does remove that overhead, but unsurprisingly introduces some complexity into the application code. Currently, we're working on implementing that change. "),(0,a.kt)("p",null,"Furthermore, we're working on a Quickstart document for the new tracing system, with end users as its intended audience. It will contain recommended production use setup(s), and how to efficiently configure and run them step by step. Additionally, it\nwill provide a brief, but comprehensive overview over the features at the user's disposal."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"On the Nomad cluster, we've experienced undesired system behaviour when the heartbeat between the Nomad server and a client is interrupted temporarily - although the Nomad job itself is still 100% functional. A Nomad\nupgrade to the latest version promises to fix that, but it turn comes with other issues. We're currently working on adapting our automation and deployment around those known issues, before we can eventually\napply the upgrade."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3fbaa021.fd34b48e.js b/assets/js/3fbaa021.fd34b48e.js new file mode 100644 index 0000000000..ecfc2ce9ad --- /dev/null +++ b/assets/js/3fbaa021.fd34b48e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[41452],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=s(n),c=a,h=d["".concat(p,".").concat(c)]||d[c]||m[c]||o;return n?r.createElement(h,l(l({ref:t},u),{},{components:n})):r.createElement(h,l({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=c;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"SRE Team Update",slug:"2024-02-16-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-02-16-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-16-sre.md",source:"@site/blog/2024-02-16-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-02-16T00:00:00.000Z",formattedDate:"February 16, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.03,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-02-16-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-02-16-performance-and-tracing"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-02-15-node-cli-api"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-parts",id:"cardano-parts-1",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3}],u={toc:s},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,a.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sanchonet state was respun from slot 14255995 for cardano-node 8.8.0-pre"),(0,a.kt)("li",{parentName:"ul"},"Cardano node 8.8.0-pre is now deployed to sanchonet, shelley-qa, two-thirds\nof preprod and one-third of preview networks"),(0,a.kt)("li",{parentName:"ul"},"IOG pool block producers are now signing mithril certificates for preview,\npreprod and mainnet networks"),(0,a.kt)("li",{parentName:"ul"},"A cardano performance dashboard is now available for both playground and\ncardano-mainnet deployments")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Adds mithril signers and perf dashboard to the mainnet cluster; improves\nnetwork docs, tunes alerts, plus misc fixes:\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/8"},"cardano-mainnet-pull-8"))),(0,a.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Adds mithril signer capability to role-block-producer nixosModule, adds a\nprofile-mithril-relay nixosModule and includes misc other improvements and\nfixes:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-parts/pull/31"},"cardano-parts-pull-31"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Updates packages for sanchonet respin, adds a node performance dashboard\ntemplate and fixes misc issues:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-parts/pull/32"},"cardano-parts-pull-32")))),(0,a.kt)("h3",{id:"cardano-parts-1"},"Cardano-parts"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Adds mithril signers and mithril relays to preview and preprod networks and\nincludes misc other improvements and fixes:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-playground/pull/15"},"cardano-playground-pull-15"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Updates machines and pin for sanchonet respin, adds a node performance\ndashboard and fixes misc issues:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-playground/pull/16"},"cardano-playground-pull-16")))),(0,a.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Updates conway-genesis for node 8.8.0-pre:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/571"},"iohk-nix-pull-571"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Updates useLedgerAfterSlot for respin of sanchonet:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/572"},"iohk-nix-pull-572")))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/40b80600.246aff1f.js b/assets/js/40b80600.246aff1f.js new file mode 100644 index 0000000000..b2b8a96538 --- /dev/null +++ b/assets/js/40b80600.246aff1f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[39139],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(a),d=l,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||n;return a?r.createElement(h,i(i({ref:t},s),{},{components:a})):r.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,i=new Array(n);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>n,metadata:()=>o,toc:()=>u});var r=a(87462),l=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2024-03-13-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-03-13-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-13-ledger.md",source:"@site/blog/2024-03-13-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-03-13T00:00:00.000Z",formattedDate:"March 13, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.165,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-03-13-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-03-15-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2024-03-13-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements",id:"improvements",level:3},{value:"Specification",id:"specification",level:3},{value:"Releasing",id:"releasing",level:3}],s={toc:u},c="wrapper";function m(e){let{components:t,...a}=e;return(0,l.kt)(c,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"Focus has been on testing: adding tests and improving our testing framework to make it easier to write tests for various Conway features.\nWe also did some cleanup and reorganisation of code, to make it more manageable and easier to release.\nWe have started work on Hardfork Initiation: support for intra-era hardfork initiation and necessary updates the SPO stake distribution calculation. "),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4140"},"pull-4140")," - Intra era hardfork initiation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4154"},"pull-4154")," - SPO stake distr calc for HardForkInitiation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4150"},"pull-4150")," - Add ",(0,l.kt)("inlineCode",{parentName:"li"},"ConwayUtxosPredFailure")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4162"},"pull-4162")," - Add ",(0,l.kt)("inlineCode",{parentName:"li"},"ConwayDRepIncorrectRefund")," and tests for ",(0,l.kt)("inlineCode",{parentName:"li"},"GovCert")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4112"},"pull-4112")," - Fail when conway features are present in transactions that use Plutus v1/v2"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4164"},"pull-4164")," - Change hot credential representation in ",(0,l.kt)("inlineCode",{parentName:"li"},"CommitteeState")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4178"},"pull-4178")," - Remove code repetition in Conway era CDDL")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4096"},"pull-4096")," - Add a collection of test Plutus scripts for use in ImpTests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4144"},"pull-4144")," - Add imptests for delaying actions enactment"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4104"},"pull-4104")," - Governance policy tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4123"},"pull-4123")," - Add the ability to do constraints over trees in ",(0,l.kt)("inlineCode",{parentName:"li"},"constrained-generators")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4163"},"pull-4163")," - Reorganise GovSpec, add GovCertSpec"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4152"},"pull-4152")," - Add extra type-safety to ensure that all predicate failures have roundtrip tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4172"},"pull-4172")," - Add imptests for some more GOV predicate failures"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4139"},"pull-4139")," - Add extra time from 1 sec to 2 sec for prop_soundness test."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4173"},"pull-4173")," - Update profiling instructions"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4177"},"pull-4177")," - Plutusv3 initialization tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4155"},"pull-4155")," - Fix nightly build failures")),(0,l.kt)("h3",{id:"improvements"},"Improvements"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4141"},"pull-4141")," - Add ",(0,l.kt)("inlineCode",{parentName:"li"},"boom")," placeholder"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4157"},"pull-4157")," - Split Conway governance"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4188"},"pull-4188")," - Simplify implementation of ToJSON1 of ListMap"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4129"},"pull-4129")," - Modify PParams to use similar naming to ProtocolParams in ",(0,l.kt)("inlineCode",{parentName:"li"},"cardano-api")," "),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4160"},"pull-4160")," - Make shelley ",(0,l.kt)("inlineCode",{parentName:"li"},"TxWits")," consistent with other eras"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4168"},"pull-4168")," - Add missing ",(0,l.kt)("inlineCode",{parentName:"li"},"InjectFailure")," instances for ",(0,l.kt)("inlineCode",{parentName:"li"},"ConwayUtxosPredFailure")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4086"},"pull-4086")," - Change applySTS to return NonEmpty (PredicateFailure s)"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4176"},"pull-4176")," - Add CARDANO_MAINNET_MIRROR to Nix shell"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4174"},"pull-4174")," - Convert ",(0,l.kt)("inlineCode",{parentName:"li"},"small-steps-test")," into a sublibrary"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4159"},"pull-4159")," - Shelley rules cleanup")),(0,l.kt)("h3",{id:"specification"},"Specification"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4042"},"pull-4042")," - Fix the prose being inconsistent with the figure"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4151"},"pull-4151")," - Fix an issue with txinfo and unusual notation in Babbage UTXO rule")),(0,l.kt)("h3",{id:"releasing"},"Releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4190"},"pull-4190")," - Bump plutus version to 1.23.00")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/40e498fa.8930877a.js b/assets/js/40e498fa.8930877a.js new file mode 100644 index 0000000000..6396f662e8 --- /dev/null +++ b/assets/js/40e498fa.8930877a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23092],{3905:(t,e,a)=>{a.d(e,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function o(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),u=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},d=function(t){var e=u(t.components);return n.createElement(p.Provider,{value:e},t.children)},c="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},s=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,o=t.originalType,p=t.parentName,d=i(t,["components","mdxType","originalType","parentName"]),c=u(a),s=r,h=c["".concat(p,".").concat(s)]||c[s]||m[s]||o;return a?n.createElement(h,l(l({ref:e},d),{},{components:a})):n.createElement(h,l({ref:e},d))}));function h(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=a.length,l=new Array(o);l[0]=s;var i={};for(var p in e)hasOwnProperty.call(e,p)&&(i[p]=e[p]);i.originalType=t,i[c]="string"==typeof t?t:r,l[1]=i;for(var u=2;u{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-11-02-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2022-11-02-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-node-cli-api.md",source:"@site/blog/2022-11-02-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2022-11-02T00:00:00.000Z",formattedDate:"November 2, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.265,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-11-02-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-11-02-ledger"},nextItem:{title:"Node Release Team Update",permalink:"/2022-11-02-release"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3}],d={toc:u},c="wrapper";function m(t){let{components:e,...a}=t;return(0,r.kt)(c,(0,n.Z)({},d,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2022-11-02---2022-11-15"},"2022-11-02 - 2022-11-15"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Documentation improvments"),(0,r.kt)("li",{parentName:"ul"},"Merged community contributions"),(0,r.kt)("li",{parentName:"ul"},"Exposing types from cardano-api requested by the community/other teamss"),(0,r.kt)("li",{parentName:"ul"},"Test output has been improved so diagnosing failures is now easier"),(0,r.kt)("li",{parentName:"ul"},"Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)"),(0,r.kt)("li",{parentName:"ul"},"Refactoring of cardano-testnet making it more useable as a library (ongoing)"),(0,r.kt)("li",{parentName:"ul"},"Release 1.35.4 was merged & released")),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4567"},"Community contributions - doc fixes and spelling errors"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4546"},"Reduce exposed modules in cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4587"},"Add Ord instance for AddressInEra")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4496"},"Export TxTotalAndReturnCollateralSupportedInEra from Cardano.Api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4635"},"Expose TextEnvelopeCddl from Cardano.Api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4628"},"Expose txScriptValidityToScriptValidity in Cardano.Api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4599"},"export RawBytesHexError"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/2883"},"Add Plutus minting script doc")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4575/files"},"Improve test output")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4586"},"Enable stale bot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4557"},"Add link to troubleshooting page in the wiki")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4550"},"Use environment files in Github Actions"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4544"},"Add single entrypoint for starting testnets")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4575"},"Improve cardano-testnet test output")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4595"},"Reorder module hierarchy"))),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4250"},"Optimise query leadership schedule command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4179"},"Optimise query stake snapshot command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/41606842.0e246202.js b/assets/js/41606842.0e246202.js new file mode 100644 index 0000000000..a3ef9412da --- /dev/null +++ b/assets/js/41606842.0e246202.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[88101],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var d=r.createContext({}),s=function(e){var t=r.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(d.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,d=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(a),c=n,m=u["".concat(d,".").concat(c)]||u[c]||h[c]||i;return a?r.createElement(m,o(o({ref:t},p),{},{components:a})):r.createElement(m,o({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2022-12-02-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-12-02-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-02-hydra.md",source:"@site/blog/2022-12-02-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2022-12-02T00:00:00.000Z",formattedDate:"December 2, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.965,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-12-02-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-12-09-ledger"},nextItem:{title:"DB sync Team Update",permalink:"/2022-12-01-db-sync"}},d={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:s},u="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team has worked on cleaning up several things in progress\nafter last week's summit. They have extended their model-based testing (MBT)\napproach with transaction creation & observation\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/410"},"#410"),", solved\n",(0,n.kt)("inlineCode",{parentName:"p"},"AcquirePointTooOld")," problems of the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," with by changing the wallet\ninitialization ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/439"},"#439"),".\nAlso, the Hydra researchers updated the security proofs of the Coordinated Hydra\nHead, which are bound to be included in the Hydra HeadV1 specification."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review & report - will also be published on our website ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/644"},"#644")),(0,n.kt)("li",{parentName:"ul"},"Extended the model-based testing (MBT) with transaction creation/observation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/410"},"#410")),(0,n.kt)("li",{parentName:"ul"},"Solve ",(0,n.kt)("inlineCode",{parentName:"li"},"AcquirePointTooOld")," problems with new wallet initialization ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/439"},"#439")),(0,n.kt)("li",{parentName:"ul"},"Fixed our hydraw deployments (EC2 instances)"),(0,n.kt)("li",{parentName:"ul"},"Created & discussed ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md"},"ADR21")," within tx validity work"),(0,n.kt)("li",{parentName:"ul"},"Received & discussed security proofs of Coordinated Hydra Head (requires more work)")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Get ADR21 accepted & close tx validity gap in our implementation"),(0,n.kt)("li",{parentName:"ul"},"Complete review & integrate the Hydra tutorial"),(0,n.kt)("li",{parentName:"ul"},"Review latest hydra-pay work"),(0,n.kt)("li",{parentName:"ul"},"Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec"),(0,n.kt)("li",{parentName:"ul"},"Get Cicero (new CI) working")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/41686714.14a1104b.js b/assets/js/41686714.14a1104b.js new file mode 100644 index 0000000000..25d41a2c48 --- /dev/null +++ b/assets/js/41686714.14a1104b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28757],{80609:a=>{a.exports=JSON.parse('{"label":"goedel","permalink":"/tags/goedel","allTagsPath":"/tags","count":23}')}}]); \ No newline at end of file diff --git a/assets/js/417fc4b4.99a7acf7.js b/assets/js/417fc4b4.99a7acf7.js new file mode 100644 index 0000000000..76af4e3331 --- /dev/null +++ b/assets/js/417fc4b4.99a7acf7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[57271],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var h=r.createContext({}),p=function(e){var t=r.useContext(h),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(h.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,h=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=p(a),c=n,m=u["".concat(h,".").concat(c)]||u[c]||d[c]||i;return a?r.createElement(m,o(o({ref:t},s),{},{components:a})):r.createElement(m,o({ref:t},s))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var h in t)hasOwnProperty.call(t,h)&&(l[h]=t[h]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>h,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-01-20-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-20-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-20-hydra.md",source:"@site/blog/2023-01-20-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-01-20T00:00:00.000Z",formattedDate:"January 20, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.13,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-01-20-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-01-20-crypto"},nextItem:{title:"Network Team Update",permalink:"/2023-01-20-network"}},h={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team has been focusing on the write-up of the Hydra HeadV1\nspecification. Of which a first version has been aggregated and is currently\nunder review. They aligned the on-chain scripts of reimbursing funds on abort\nlike defined in the specification, improved the mutation test framework to have\nmore control when testing plutus scripts. The added HeadId in the API and the\nTUI example client make ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," easier to use and a first experiment of a\nHydra Head explorer was showing the utility of this - see what Heads exist on\nthe ",(0,n.kt)("inlineCode",{parentName:"p"},"preview")," network ",(0,n.kt)("a",{parentName:"p",href:"http://explorer.hydra.family"},"here"),"."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"HeadId to API and display in the TUI ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/678"},"#678")),(0,n.kt)("li",{parentName:"ul"},"Experiment of creating a hydra explorer, first result hosted ",(0,n.kt)("a",{parentName:"li",href:"http://explorer.hydra.family"},"here")),(0,n.kt)("li",{parentName:"ul"},"Improved mutation framework allowing to fail for the right reason ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/679"},"#679")),(0,n.kt)("li",{parentName:"ul"},"Correctly reimburse funds in abort (matching the spec) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/670"},"#670")),(0,n.kt)("li",{parentName:"ul"},"Finished a first write-up of the Hydra HeadV1 spec: ",(0,n.kt)("a",{parentName:"li",href:"https://www.overleaf.com/read/bbqzmptcxryj"},"Read it on overleaf")," (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/blob/master/SUPPORT.md"},"Communication channels")," for feedback)")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting with a broader audience"),(0,n.kt)("li",{parentName:"ul"},"Groom & plan actions required for a maintainable Head explorer"),(0,n.kt)("li",{parentName:"ul"},"Break \u201calign gaps\u201d feature into smaller chunks (at least on- /off-chain) and groom it"),(0,n.kt)("li",{parentName:"ul"},"Review the spec & discuss individual aborts with researchers (a bigger open question)")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/41d087d7.e16565bf.js b/assets/js/41d087d7.e16565bf.js new file mode 100644 index 0000000000..a01dca2bba --- /dev/null +++ b/assets/js/41d087d7.e16565bf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[71972],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),h=p(a),c=n,m=h["".concat(s,".").concat(c)]||h[c]||u[c]||i;return a?r.createElement(m,o(o({ref:t},d),{},{components:a})):r.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2022-11-18-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-11-18-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-18-hydra.md",source:"@site/blog/2022-11-18-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2022-11-18T00:00:00.000Z",formattedDate:"November 18, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.085,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-11-18-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-11-23-ledger"},nextItem:{title:"Mithril Team Update",permalink:"/2022-11-18-mithril"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:p},h="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team released version ",(0,n.kt)("inlineCode",{parentName:"p"},"0.8.1"),", which includes several fixes and a user-wished extension of the persistence introduced by ",(0,n.kt)("inlineCode",{parentName:"p"},"0.8.0")," of replaying server outputs to make clients like the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-tui")," be aware of the latest ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-poc")," to ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra"},(0,n.kt)("inlineCode",{parentName:"a"},"hydra")),"!"),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implemented replaying of server outputs to address ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/580"},"#580")),(0,n.kt)("li",{parentName:"ul"},"Released version 0.8.1 containing this and other fixes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.8.1"},"Release notes")),(0,n.kt)("li",{parentName:"ul"},"Worked on the bounded tx validity as one of the on-chain script fixes, but couldn","\u2019","t finish it just yet ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/615"},"#615")),(0,n.kt)("li",{parentName:"ul"},"Collaborated with the education team on a Hydra tutorial."),(0,n.kt)("li",{parentName:"ul"},"Discovered and discussed issues with the ","\u201c","seen ledger","\u201d","."),(0,n.kt)("li",{parentName:"ul"},"Renamed the Hydra repository ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-poc")," -> ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Create and discuss an ADR about handling tx validity correctly."),(0,n.kt)("li",{parentName:"ul"},"Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: ",(0,n.kt)("strong",{parentName:"li"},'"Developing Hydra" on Day 2, Nov 21st, 13:50 CET')),(0,n.kt)("li",{parentName:"ul"},"Have a team workshop / hackathon after the summit:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Retrospective"),(0,n.kt)("li",{parentName:"ul"},"Roadmapping session"),(0,n.kt)("li",{parentName:"ul"},"Hack on something complex or useful")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/425dfc0f.0640b352.js b/assets/js/425dfc0f.0640b352.js new file mode 100644 index 0000000000..86fa3a5c63 --- /dev/null +++ b/assets/js/425dfc0f.0640b352.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[85349],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=p(r),h=a,d=m["".concat(u,".").concat(h)]||m[h]||c[h]||i;return r?n.createElement(d,l(l({ref:t},s),{},{components:r})):n.createElement(d,l({ref:t},s))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,l=new Array(i);l[0]=h;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[m]="string"==typeof e?e:a,l[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-08-04-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-08-04-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-crypto.md",source:"@site/blog/2023-08-04-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:.495,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-08-04-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-08-09-consensus"},nextItem:{title:"Goedel Team Update",permalink:"/2023-08-04-goedel"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"MuSig2",id:"musig2",level:3},{value:"Sidechains",id:"sidechains",level:3}],s={toc:p},m="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation"),(0,a.kt)("li",{parentName:"ul"},"mithril: Full node verifier"),(0,a.kt)("li",{parentName:"ul"},"musig2: Finalised the missing fuzz tests"),(0,a.kt)("li",{parentName:"ul"},"kes_agent: engineer on PTO. Work halted ")),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("h3",{id:"mithril"},"Mithril"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Work on a mithril flaky test ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/1105"},"#1105")),(0,a.kt)("li",{parentName:"ul"},"Keep working on Full Node Verifier ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/939"},"#939"),".\nShould be merged in the coming week.")),(0,a.kt)("h3",{id:"musig2"},"MuSig2"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Finalised the fuzz tests ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/43"},"#43"))),(0,a.kt)("h3",{id:"sidechains"},"Sidechains"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Analysis of Halo2 verifier. Necessary for a future implementation of a plutus verifier.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/42ad0ca4.9d0f1fbe.js b/assets/js/42ad0ca4.9d0f1fbe.js new file mode 100644 index 0000000000..2147a0cedf --- /dev/null +++ b/assets/js/42ad0ca4.9d0f1fbe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80309],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),u=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=u(a),c=n,h=m["".concat(s,".").concat(c)]||m[c]||d[c]||i;return a?r.createElement(h,o(o({ref:t},p),{},{components:a})):r.createElement(h,o({ref:t},p))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-03-31-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-31-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-31-hydra.md",source:"@site/blog/2023-03-31-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-03-31T00:00:00.000Z",formattedDate:"March 31, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.82,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-03-31-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-03-31-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-03-31-ledger"}},s={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra continued work on finishing mainnet compatibility. The\nsemi-automated smoke tests and some missing documentation is still preventing\nfrom calling that fully done. They fixed smaller issues and made a step in the\nHead protocol more robust. Besides development, they met with interested people\nfrom the community who want to get started collaborating on communication and\nmarketing materials."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Groomed and followed-up on ",(0,n.kt)("inlineCode",{parentName:"li"},"GetUTxO")," user request discussion ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/discussions/797"},"#797")),(0,n.kt)("li",{parentName:"ul"},"Fixed ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")," crashes after forks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/560"},"#560")),(0,n.kt)("li",{parentName:"ul"},"Made ",(0,n.kt)("inlineCode",{parentName:"li"},"collectCom")," more robust and aligned with spec ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/786"},"#786")),(0,n.kt)("li",{parentName:"ul"},"Completed configurable API feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/380"},"#380")),(0,n.kt)("li",{parentName:"ul"},"Met potential contributors about Hydra communication and marketing materials"),(0,n.kt)("li",{parentName:"ul"},"Versioned documentation: we have a ",(0,n.kt)("inlineCode",{parentName:"li"},"unstable")," bleeding edge version available as well now, seperate from the last released version")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Follow-up backlog and roadmap clean-up"),(0,n.kt)("li",{parentName:"ul"},"Complete mainnet compatibility feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/713"},"#713")," (documentation updates)"),(0,n.kt)("li",{parentName:"ul"},"Integrate Hydra specification into repository ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/693"},"#693"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/42eb15cf.0a41212a.js b/assets/js/42eb15cf.0a41212a.js new file mode 100644 index 0000000000..c1482e382e --- /dev/null +++ b/assets/js/42eb15cf.0a41212a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[87891],{64192:a=>{a.exports=JSON.parse('{"label":"ledger","permalink":"/tags/ledger","allTagsPath":"/tags","count":44}')}}]); \ No newline at end of file diff --git a/assets/js/43289e4d.47823cd2.js b/assets/js/43289e4d.47823cd2.js new file mode 100644 index 0000000000..d70b42c626 --- /dev/null +++ b/assets/js/43289e4d.47823cd2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[458],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=n,h=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return a?r.createElement(h,i(i({ref:t},d),{},{components:a})):r.createElement(h,i({ref:t},d))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-08-18-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-08-18-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-hydra.md",source:"@site/blog/2023-08-18-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-08-18T00:00:00.000Z",formattedDate:"August 18, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.13,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-08-18-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-08-18-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-08-18-ledger"}},s={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:c},p="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team released version 0.12.0, a significant update that\nbrings support for cardano-node 8.1.2, along with performance enhancements and\nvarious API improvements. Additionally, the team successfully onboarded a new\ncontributor who is now actively participating in operating a Hydra Head. They\ntook part in a meeting of the Intersect open source committee and prepared the\nHydra master-class for RareEvo, an educational initiative for the community."),(0,n.kt)("p",null,"If you happen to be at RareEvo, register for the Hydra master-class ",(0,n.kt)("a",{parentName:"p",href:"https://docs.google.com/forms/d/1Q9KIxwKeyZeNrKDBiYWceYjnbxIxaEwC8Eo5LWxSa2g/viewform?edit_requested=true"},"using this\nform"),".\nWe hope to make it possible to follow along on-line as well and will announce\ndetails on the Hydra announcements channel on the ",(0,n.kt)("a",{parentName:"p",href:"https://discord.gg/Qq5vNTg9PT"},"IOG discord\nserver"),"."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released version 0.12.0 which adds support for cardano-node 8.1.2, performance\nand several API improvements. ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.12.0"},"Release notes")),(0,n.kt)("li",{parentName:"ul"},"Replaced commit via websocket with external draft + submit. ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/954"},"#954")),(0,n.kt)("li",{parentName:"ul"},"Onboarded new contributor to the point where he actively participates in operating a Head now."),(0,n.kt)("li",{parentName:"ul"},"Joined a first meeting of the Intersect open source committee"),(0,n.kt)("li",{parentName:"ul"},"Prepared the Hydra master-class for RareEvo.")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting"),(0,n.kt)("li",{parentName:"ul"},"Run the Hydra master-class at RareEvo!"),(0,n.kt)("li",{parentName:"ul"},"Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff"),(0,n.kt)("li",{parentName:"ul"},"Clear out red bin items (technical debt)"),(0,n.kt)("li",{parentName:"ul"},"Groom network resilience and explorer features")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/435d8b4c.7163132e.js b/assets/js/435d8b4c.7163132e.js new file mode 100644 index 0000000000..f177be8568 --- /dev/null +++ b/assets/js/435d8b4c.7163132e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[88697],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),d=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=d(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=d(a),c=n,m=h["".concat(s,".").concat(c)]||h[c]||p[c]||i;return a?r.createElement(m,o(o({ref:t},u),{},{components:a})):r.createElement(m,o({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var d=2;d{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-04-27-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-04-27-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-27-hydra.md",source:"@site/blog/2023-04-27-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-04-27T00:00:00.000Z",formattedDate:"April 27, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.11,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-04-27-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-04-28-network"},nextItem:{title:"Hydra Team Update",permalink:"/2023-04-21-hydra"}},s={authorsImageUrls:[void 0]},d=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:d},h="wrapper";function p(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team held their Monthly review meeting and drafted the\nreport which likely is published next week. They put the spec into the\nrepository and website, addressed a user issue and fixed the TUI peer list.\nFurthermore, they updated dependencies, conducted a Twitter space on Auctions\nuse cases, covered the rollback bug with tests and implemented a solution.\nLooking ahead, their goals for next week include releasing 0.10.0, implementing\ntimed transactions support, writing a Query API ADR, and grooming work items\nlike off-chain benchmarks."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Held the Monthly review meeting and drafted the report (to be published next week)"),(0,n.kt)("li",{parentName:"ul"},"Added the spec into the repository\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/693"},"#693")," and published on\n",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/unstable/core-concepts/specification"},"the\nwebsite")),(0,n.kt)("li",{parentName:"ul"},"Groom and addressed user issue ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/823"},"#823")),(0,n.kt)("li",{parentName:"ul"},"Covered the rollback bug with tests and implemented a solution (to be reviewed) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Fixed the TUI peer list"),(0,n.kt)("li",{parentName:"ul"},"Updated dependencies to match ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-node")," master"),(0,n.kt)("li",{parentName:"ul"},"Conducted a twitter space on Auctions use cases")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Release 0.10.0"),(0,n.kt)("li",{parentName:"ul"},"Support timed transactions solution drafted and validated API with users"),(0,n.kt)("li",{parentName:"ul"},"Write Query API ADR and groom a concrete step"),(0,n.kt)("li",{parentName:"ul"},"Groom and solve ",(0,n.kt)("inlineCode",{parentName:"li"},"PostTxOnChainFailed")," UX problem ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/832"},"#832")),(0,n.kt)("li",{parentName:"ul"},"Groom off-chain benchmarks idea ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/186"},"#186")," and turn it into a ","\u201c","feature","\u201d")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/437db4bf.f971d2dd.js b/assets/js/437db4bf.f971d2dd.js new file mode 100644 index 0000000000..e59a4f3500 --- /dev/null +++ b/assets/js/437db4bf.f971d2dd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[81587],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),u=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(r),m=n,d=p["".concat(s,".").concat(m)]||p[m]||h[m]||i;return r?a.createElement(d,o(o({ref:t},c),{},{components:r})):a.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-02-03-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-02-03-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-03-crypto.md",source:"@site/blog/2023-02-03-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-02-03T00:00:00.000Z",formattedDate:"February 3, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:2.47,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-02-03-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-02-08-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-02-03-goedel"}},s={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"MuSig2",id:"musig2",level:3}],c={toc:u},p="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril. "),(0,n.kt)("li",{parentName:"ul"},"cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting. "),(0,n.kt)("li",{parentName:"ul"},"KES agent: using snockets and making things testable in IOSim "),(0,n.kt)("li",{parentName:"ul"},"MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/722"},"PR#722")),(0,n.kt)("li",{parentName:"ul"},"We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper."),(0,n.kt)("li",{parentName:"ul"},"We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381. "),(0,n.kt)("li",{parentName:"ul"},"The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner."),(0,n.kt)("li",{parentName:"ul"},"The update VRF ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/341"},"PR#341")," is finally merged, and we are ready to merge ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/344"},"PR#344"),", which implements conversion functions from the compatible types between Praos and PraosBatchCompat.")),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Use of snockets to send the data directly from the socket to secure memory. "),(0,n.kt)("li",{parentName:"ul"},"We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives"),(0,n.kt)("li",{parentName:"ul"},"Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.")),(0,n.kt)("h3",{id:"musig2"},"MuSig2"),(0,n.kt)("p",null,"The GitHub Action ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/fernandrone/linelint"},"linelint")," is used to check the files."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new job for linting is added to the file ",(0,n.kt)("inlineCode",{parentName:"li"},"/.github/workflows/ci.yml"),". The rules are configured in the file ",(0,n.kt)("inlineCode",{parentName:"li"},"/.github/workflows/.linelint.yml"),". Some files from the configuration of ",(0,n.kt)("inlineCode",{parentName:"li"},"libsecp")," were failing, so in the rules in ",(0,n.kt)("inlineCode",{parentName:"li"},".linelint.yml")," the failing files are denoted to be ignored by the linter."),(0,n.kt)("li",{parentName:"ul"},"Folders are reorganized. We created a folder to handle the example. This folder includes the ",(0,n.kt)("inlineCode",{parentName:"li"},"examplemusig2.c"),", a distinct ",(0,n.kt)("inlineCode",{parentName:"li"},"config.h"),", and ",(0,n.kt)("inlineCode",{parentName:"li"},"helper.c"),". The example is enhanced by implementing the functions in the helper for the configuration given in ",(0,n.kt)("inlineCode",{parentName:"li"},"config.h"),". The number of messages is different than the tests. The example is made more generic to run with a loop.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/43956aba.9a754318.js b/assets/js/43956aba.9a754318.js new file mode 100644 index 0000000000..b5b9b2f283 --- /dev/null +++ b/assets/js/43956aba.9a754318.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75081],{62075:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/16","page":16,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/15","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/439b9a57.35e4e413.js b/assets/js/439b9a57.35e4e413.js new file mode 100644 index 0000000000..06f922d113 --- /dev/null +++ b/assets/js/439b9a57.35e4e413.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96121],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=p(r),d=n,h=c["".concat(s,".").concat(d)]||c[d]||m[d]||o;return r?a.createElement(h,l(l({ref:t},u),{},{components:r})):a.createElement(h,l({ref:t},u))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[c]="string"==typeof e?e:n,l[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Node Release Team Update",slug:"2022-11-02-release",authors:"disassembler",tags:["release"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2022-11-02-release",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-release.md",source:"@site/blog/2022-11-02-release.md",title:"Node Release Team Update",description:"Node Reelease Update",date:"2022-11-02T00:00:00.000Z",formattedDate:"November 2, 2022",tags:[{label:"release",permalink:"/tags/release"}],readingTime:.445,hasTruncateMarker:!1,authors:[{name:"Samuel Leathers",title:"Service Reliability Manager",url:"https://github.com/disassembler",imageURL:"https://github.com/disassembler.png",key:"disassembler"}],frontMatter:{title:"Node Release Team Update",slug:"2022-11-02-release",authors:"disassembler",tags:["release"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-11-02-node-cli-api"},nextItem:{title:"System Test Team Update",permalink:"/2022-11-02-system-test"}},s={authorsImageUrls:[void 0]},p=[{value:"Node Reelease Update",id:"node-reelease-update",level:2},{value:"2022-10-19 - 2022-11-02",id:"2022-10-19---2022-11-02",level:2},{value:"Executive Summary",id:"executive-summary",level:3},{value:"Completed",id:"completed",level:3},{value:"In Progress",id:"in-progress",level:3}],u={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"node-reelease-update"},"Node Reelease Update"),(0,n.kt)("h2",{id:"2022-10-19---2022-11-02"},"2022-10-19 - 2022-11-02"),(0,n.kt)("h3",{id:"executive-summary"},"Executive Summary"),(0,n.kt)("p",null,"The team is formalizing the new release process and team structure. Both preview/preprod environments have been reset,\na temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8."),(0,n.kt)("p",null,"1.35.4 release candidates have been created and are being tested internally and externally."),(0,n.kt)("h3",{id:"completed"},"Completed"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/commits/1.35.4-rc1"},"1.35.4-rc1 tag")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/commits/1.35.4-rc1"},"1.35.4-rc2 tag (config changes only for preview)")),(0,n.kt)("li",{parentName:"ul"},"[CHaP Migration]"," (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4540"},"https://github.com/input-output-hk/cardano-node/pull/4540"),")")),(0,n.kt)("h3",{id:"in-progress"},"In Progress"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/commits/release/1.35"},"Release 1.35.4")),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.4_rc1/src_docs/source/test_results/node/tag_1_35_4_rc1.rst"},"Test Status")))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://updates.cardano.intersectmbo.org/2022-08-12-sre"},"Cicero CI Migration")))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/43aa4824.6dae5e34.js b/assets/js/43aa4824.6dae5e34.js new file mode 100644 index 0000000000..0244df9c78 --- /dev/null +++ b/assets/js/43aa4824.6dae5e34.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[98347],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=u(r),m=n,h=c["".concat(p,".").concat(m)]||c[m]||s[m]||l;return r?a.createElement(h,o(o({ref:t},d),{},{components:r})):a.createElement(h,o({ref:t},d))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:n,o[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-03-17-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-03-17-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-17-ledger.md",source:"@site/blog/2023-03-17-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-03-17T00:00:00.000Z",formattedDate:"March 17, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.415,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-03-17-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-03-17-hydra"},nextItem:{title:"Goedel Team Update",permalink:"/2023-03-16-goedel"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Expanded ledger API",id:"expanded-ledger-api",level:3},{value:"Conway ledger rules",id:"conway-ledger-rules",level:3},{value:"Incremental SPO/DRep stake distribution computation",id:"incremental-spodrep-stake-distribution-computation",level:3},{value:"Technical debt",id:"technical-debt",level:3}],d={toc:u},c="wrapper";function s(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"We made further progress on the conway ledger era.\nIn particular, we expanded the ledger API significantly, including lots of governance features.\nWe also made progress on the specification and corresponding work in the Haskell implementation."),(0,n.kt)("p",null,"We also continued to integrate the latest ledger packages into cardano node and addressed\ntechnical debt."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"expanded-ledger-api"},"Expanded ledger API"),(0,n.kt)("p",null,"The ledger API was significantly expanded to include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"a lot of protocol parameter support"),(0,n.kt)("li",{parentName:"ul"},"versioning support (type level ledger eras and protocol versions)"),(0,n.kt)("li",{parentName:"ul"},"auxiliary data support"),(0,n.kt)("li",{parentName:"ul"},"many new lenses"),(0,n.kt)("li",{parentName:"ul"},"support for witnesses"),(0,n.kt)("li",{parentName:"ul"},"support for conway governance")),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3328"},"pull-3328"),"."),(0,n.kt)("h3",{id:"conway-ledger-rules"},"Conway ledger rules"),(0,n.kt)("p",null,"We have made progress on the formal ledger specification for the Conway era.\nMoreover, the corresponding Haskell updates were also completed:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3339"},"pull-3339")),(0,n.kt)("li",{parentName:"ul"},"See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3326"},"pull-3326")),(0,n.kt)("li",{parentName:"ul"},"See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3330"},"pull-3330"))),(0,n.kt)("h3",{id:"incremental-spodrep-stake-distribution-computation"},"Incremental SPO/DRep stake distribution computation"),(0,n.kt)("p",null,"We have a working (and correct) proof of concept for how to use the incremental lambda calculus\nto maintain several of the stake distributions incrementally.\nFor the per-SPO distribution, this is a performance improvement.\nFor the (conway) per-DRep distribution, this is will allow those who have delegated their votes\nto a DRep to have time to react to any votes that they disapprove of.\n(Sorry, no code to share just yet, more to come.)"),(0,n.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Improved CBOR testing facilities ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3332"},"pull-3332")),(0,n.kt)("li",{parentName:"ul"},"GitHub actions improvement ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3320"},"pull-3320")),(0,n.kt)("li",{parentName:"ul"},"Move ToJSON orphans from cardano-node ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3338"},"pull-3323")),(0,n.kt)("li",{parentName:"ul"},"Minor OCert improvements ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3327"},"pull-3327")),(0,n.kt)("li",{parentName:"ul"},"Remove duplication ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3341"},"pull-3341")),(0,n.kt)("li",{parentName:"ul"},"Enforce unique elements in CBOR sets ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3331"},"pull-3331")," ")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/43ab8474.159b1e96.js b/assets/js/43ab8474.159b1e96.js new file mode 100644 index 0000000000..09b8e3d91e --- /dev/null +++ b/assets/js/43ab8474.159b1e96.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5106],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function p(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),s=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=s(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=s(r),d=n,m=c["".concat(l,".").concat(d)]||c[d]||h[d]||a;return r?o.createElement(m,p(p({ref:t},u),{},{components:r})):o.createElement(m,p({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,p=new Array(a);p[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:n,p[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var o=r(87462),n=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-10-15-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},p=void 0,i={permalink:"/2023-10-15-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-15-network.md",source:"@site/blog/2023-10-15-network.md",title:"Network Team Update",description:"High-level overview of sprint 46",date:"2023-10-15T00:00:00.000Z",formattedDate:"October 15, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:.59,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-10-15-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-10-18-mithril"},nextItem:{title:"Goedel Team Update",permalink:"/2023-10-13-goedel"}},l={authorsImageUrls:[void 0]},s=[{value:"High-level overview of sprint 46",id:"high-level-overview-of-sprint-46",level:2},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"Towards Typed Protocols 0.2.0.0",id:"towards-typed-protocols-0200",level:3},{value:"Peer Sharing",id:"peer-sharing",level:3},{value:"Tech Debt",id:"tech-debt",level:3}],u={toc:s},c="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-46"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+46%22"},"sprint 46")),(0,n.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,n.kt)("p",null,"We continued reviewing of bootstrap peers, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4555"},"ouroboros-network#4555"),"."),(0,n.kt)("h3",{id:"towards-typed-protocols-0200"},"Towards Typed Protocols 0.2.0.0"),(0,n.kt)("p",null,"We diagnosed the performance regression of the new design. The work on\n",(0,n.kt)("inlineCode",{parentName:"p"},"typed-protocols")," will be postponed. For more details see the\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/3"},"typed-protocols#3"),". As an outcome of the performance debugging we prepared\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4691"},"PR")," which updates the ",(0,n.kt)("inlineCode",{parentName:"p"},"demo-ping-pong")," and\n",(0,n.kt)("inlineCode",{parentName:"p"},"demo-chain-sync")," applications."),(0,n.kt)("h3",{id:"peer-sharing"},"Peer Sharing"),(0,n.kt)("p",null,"We made progress in review of ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4644"},"ouroboros-network#4644"),", which simplifies the\npeer sharing and fixes the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4642"},"ouroboros-network#4642")," issue."),(0,n.kt)("h3",{id:"tech-debt"},"Tech Debt"),(0,n.kt)("p",null,"We reviewed the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3836"},"ouroboros-network#3836")," PR which inspects all the uses of\n",(0,n.kt)("inlineCode",{parentName:"p"},"error")," in ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),". The PR was prepared by Galois."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/43bbbae7.3e01208e.js b/assets/js/43bbbae7.3e01208e.js new file mode 100644 index 0000000000..82d16bb513 --- /dev/null +++ b/assets/js/43bbbae7.3e01208e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24310],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var i=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=i.createContext({}),p=function(e){var t=i.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},s=function(e){var t=p(e.components);return i.createElement(u.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=p(a),m=n,h=c["".concat(u,".").concat(m)]||c[m]||d[m]||r;return a?i.createElement(h,l(l({ref:t},s),{},{components:a})):i.createElement(h,l({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:n,l[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>p});var i=a(87462),n=(a(67294),a(3905));const r={title:"SRE Team Update",slug:"2022-08-12-sre",authors:"manveru",tags:["sre"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2022-08-12-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-28-sre.md",source:"@site/blog/2022-10-28-sre.md",title:"SRE Team Update",description:"High level summary",date:"2022-10-28T00:00:00.000Z",formattedDate:"October 28, 2022",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:3.04,hasTruncateMarker:!1,authors:[{name:"Michael Fellinger",title:"SRE Team Lead",url:"https://github.com/manveru",imageURL:"https://github.com/manveru.png",key:"manveru"}],frontMatter:{title:"SRE Team Update",slug:"2022-08-12-sre",authors:"manveru",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Team Update",permalink:"/2022-10-28-performance-and-tracing"},nextItem:{title:"Crypto Team Update",permalink:"/2022-10-27-crypto"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"OpenZiti",id:"openziti",level:3},{value:"Cicero & Tullia Integrations",id:"cicero--tullia-integrations",level:3},{value:"Cicero & Tullia Features",id:"cicero--tullia-features",level:3},{value:"Spongix",id:"spongix",level:3},{value:"Bugs",id:"bugs",level:3}],s={toc:p},c="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,i.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team is heavily working on the Equinix Metal migration, replacing Hydra\nwith Cicero, and a new version of Spongix."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"openziti"},"OpenZiti"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Work is ongoing on our OpenZiti integration into Bitte in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/bitte/compare/zt"},"bitte-zt"),"]."),(0,n.kt)("li",{parentName:"ul"},"CI-World deployment of Darwin CI Ziti service in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-world/commit/d40f4d19187a2128b6f0d63bde7e3f9a33071994"},"ci-world-commit-d40f4d"),"]."),(0,n.kt)("li",{parentName:"ul"},"Multiple issues filed, and a lot of discussion with the OpenZiti developers,\nwe're making pretty rapid progress thanks to them."),(0,n.kt)("li",{parentName:"ul"},"Work on getting Equinix baremetal machines integrated into AWS World Bitte\nclusters utilizing a Ziti ZTNA network overlay to bridge the networking of\nthe two environments and get IAM extension to Equinix machine for Nomad\nclient onboarding."),(0,n.kt)("li",{parentName:"ul"},"A Nix Flake for most of our OpenZiti dependencies including the Console,\nController, Edge Tunnel, and Router is now at [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/johnalotoski/openziti-bins"},"openziti-bins"),"]."),(0,n.kt)("li",{parentName:"ul"},"The Flake also includes a WiP NixOS modules for these components."),(0,n.kt)("li",{parentName:"ul"},"Tested Ziti Desktop Edge official app for Darwin x86_64 w/ GUI -- works with\nno issues seen so far"),(0,n.kt)("li",{parentName:"ul"},"Moved the console to traefik routing service (",(0,n.kt)("inlineCode",{parentName:"li"},"zac.$DOMAIN"),") and\ncontroller/edge router stay at ",(0,n.kt)("inlineCode",{parentName:"li"},"zt.$DOMAIN"),", but have registered consul\nservices")),(0,n.kt)("h3",{id:"cicero--tullia-integrations"},"Cicero & Tullia Integrations"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Added webhook for [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/haskell.nix"},"haskell.nix"),"]."),(0,n.kt)("li",{parentName:"ul"},"Finished Cicero CI action for [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-addresses/pull/205"},"cardano-addresses-pull-205"),"]."),(0,n.kt)("li",{parentName:"ul"},"Fixed cardano-prelude cicero action in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-prelude/pull/176#issuecomment-1280947946"},"cardano-prelude-pull-176"),"]."),(0,n.kt)("li",{parentName:"ul"},"Fixed the ",(0,n.kt)("inlineCode",{parentName:"li"},"abcird-stdlib/publish")," action [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/abcirdc/pull/104"},"abcirdc-pull-104"),"]"),(0,n.kt)("li",{parentName:"ul"},"fix error on vm-bigdisk flake configs [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cicero/pull/66"},"cicero-pull-66"),"]."),(0,n.kt)("li",{parentName:"ul"},"Helped with Cicero actions and answered questions for [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/plutus"},"plutus"),"]\n[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-prelude"},"cardano-prelude"),"], and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/abcirdc"},"abcirdc"),"]."),(0,n.kt)("li",{parentName:"ul"},"Merged [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/323"},"cardano-base-pull-323"),"] for Tullia on cardano-base."),(0,n.kt)("li",{parentName:"ul"},"Merged Cicero action in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ogmios/pull/5"},"cardano-ogmios-pull-5"),"]."),(0,n.kt)("li",{parentName:"ul"},"Opened [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-explorer-app/pull/427"},"cardano-explorer-app-pull-427"),"] to add Tullia and Cicero."),(0,n.kt)("li",{parentName:"ul"},"Opened [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3097"},"cardano-ledger-pull-3097"),"] to add Cicero CI action."),(0,n.kt)("li",{parentName:"ul"},"Opened [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4489"},"cardano-node-pull-4489"),"] to add Tullia and Cicero, including\nOS-agnostic jobs."),(0,n.kt)("li",{parentName:"ul"},"Opened [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4108"},"ouroboros-network-pull-4108"),"] to add Cicero action."),(0,n.kt)("li",{parentName:"ul"},"Reviewed [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/plutus/pull/4918"},"plutus-pull-4918"),"] and helped test it."),(0,n.kt)("li",{parentName:"ul"},"Update Tullia in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/abcirdc/pull/97"},"abcirdc-pull-97"),"] to build if a tag is given.")),(0,n.kt)("h3",{id:"cicero--tullia-features"},"Cicero & Tullia Features"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Improvements to Tullia task aggregation to make [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-addresses"},"cardano-addresses"),"] build\ncorrectly."),(0,n.kt)("li",{parentName:"ul"},"Better tullia CUE lib default for tags [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/tullia/commit/4df3c5d956f1b062b950643da12768ae71acf245"},"tullia-commit-4df3c5d"),"]."),(0,n.kt)("li",{parentName:"ul"},"Put ",(0,n.kt)("inlineCode",{parentName:"li"},"cache.nixos.org")," back in ",(0,n.kt)("inlineCode",{parentName:"li"},"cache.iog.io"),"'s upstreams. This is now\nconsidered a public cache again, and without it some Cicero evaluations had\nto build huge packages."),(0,n.kt)("li",{parentName:"ul"},"Started working on a flake-parts module for Tullia."),(0,n.kt)("li",{parentName:"ul"},"Started working on cutting down Tullia task build time by putting facts in\nJSON files."),(0,n.kt)("li",{parentName:"ul"},"Fixed running into kernel arg limit by reading tullia's DAG from a file"),(0,n.kt)("li",{parentName:"ul"},"Merged [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/tullia/pull/9"},"tullia-pull-9"),"] that fixes several issues related to error reporting.\nand escaping."),(0,n.kt)("li",{parentName:"ul"},"Added Mac builders in Cicero on CI-World."),(0,n.kt)("li",{parentName:"ul"},"Started work on Tullia invocation caching.")),(0,n.kt)("h3",{id:"spongix"},"Spongix"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A lot of progress on an SQlite backed version of Spongix, it already supports\nthe full HTTP binary cache protocol but still lacks comprehensive testing and\nsome tuning, as well as recursive lookups."),(0,n.kt)("li",{parentName:"ul"},"First steps in the implementation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"nix-daemon")," ",(0,n.kt)("inlineCode",{parentName:"li"},"ssh-ng")," protocol so\nSpongix can be used via SSH and we can get rid of basic auth.")),(0,n.kt)("h3",{id:"bugs"},"Bugs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Discovered Cicero bug where Nomad reschedules cause the Github commit status\nto get stuck in ",(0,n.kt)("inlineCode",{parentName:"li"},"pending")),(0,n.kt)("li",{parentName:"ul"},"Discovered Cicero race condition bug around concurrent transactions for\ncodependent actions."),(0,n.kt)("li",{parentName:"ul"},"Fixed tullia task order bug in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-addresses"},"cardano-addresses"),"]"),(0,n.kt)("li",{parentName:"ul"},"Diagnose Cicero action not triggered in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/abcirdc"},"abcirdc"),"]"),(0,n.kt)("li",{parentName:"ul"},"Fixed meta/description of the Tullia package in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/tullia/pull/7"},"tullia-pull-7"),"]"),(0,n.kt)("li",{parentName:"ul"},"Add Vault token loop alerts in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/bitte-cells/pull/40"},"bitte-cells-pull-40"),"]"),(0,n.kt)("li",{parentName:"ul"},"Ongoing investigation on recurring Patroni and nomad-follower issues related\nto token rotation.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/44149308.f2062ff4.js b/assets/js/44149308.f2062ff4.js new file mode 100644 index 0000000000..d4c2ae62fd --- /dev/null +++ b/assets/js/44149308.f2062ff4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64018],{18284:e=>{e.exports=JSON.parse('{"permalink":"/tags/mithril","page":1,"postsPerPage":5,"totalPages":13,"totalCount":63,"nextPage":"/tags/mithril/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/444dad87.141a80dc.js b/assets/js/444dad87.141a80dc.js new file mode 100644 index 0000000000..c6b49174e5 --- /dev/null +++ b/assets/js/444dad87.141a80dc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70895],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>h});var l=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,l)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var u=l.createContext({}),p=function(e){var t=l.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=p(e.components);return l.createElement(u.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},c=l.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,u=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),d=p(a),c=r,h=d["".concat(u,".").concat(c)]||d[c]||s[c]||n;return a?l.createElement(h,i(i({ref:t},m),{},{components:a})):l.createElement(h,i({ref:t},m))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,i=new Array(n);i[0]=c;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[d]="string"==typeof e?e:r,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>s,frontMatter:()=>n,metadata:()=>o,toc:()=>p});var l=a(87462),r=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2023-08-04-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2023-08-04-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-ledger.md",source:"@site/blog/2023-08-04-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.915,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-08-04-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-08-04-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-08-04-network"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway progress",id:"conway-progress",level:3},{value:"Testing",id:"testing",level:3},{value:"Bugfixes",id:"bugfixes",level:3},{value:"Plutus integration",id:"plutus-integration",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3}],m={toc:p},d="wrapper";function s(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,l.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The ledger team was working almost exclusively on the Conway era implementation. In\nparticular, the main focus was directed towards solidifying transaction related types and\ntheir binary representation. We also directed some effort into unblocking Plutus team with\nrespect to PlutusV3 integration."),(0,r.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,r.kt)("h3",{id:"conway-progress"},"Conway progress"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3552"},"pull-3552")," - Allow Constitutional Committee Hot Key to be ScriptHash"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3581"},"pull-3581")," - Make Constitutional Committee Cold Key to be ScriptHash"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3571"},"pull-3571")," - Implement a portion of the TICKF rule."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3556"},"pull-3556")," - Add Script to Constitution"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3576"},"pull-3576")," - Add optional Anchor to ConwayRegDRep certificate"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3495"},"pull-3495")," - Implement refund logic for Proposal deposits"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3579"},"pull-3579")," - Change voting procedure in the transaction to a nested Map"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3585"},"pull-3585")," - Rename ",(0,r.kt)("inlineCode",{parentName:"li"},"CommitteeCert")," into a ",(0,r.kt)("inlineCode",{parentName:"li"},"GovCert")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3587"},"pull-3587")," - Remove ",(0,r.kt)("inlineCode",{parentName:"li"},"DelegStakeTxCert")," from the ",(0,r.kt)("inlineCode",{parentName:"li"},"COMPLETE")," pragma for ",(0,r.kt)("inlineCode",{parentName:"li"},"TxCert")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3586"},"pull-3586")," - Add ",(0,r.kt)("inlineCode",{parentName:"li"},"CurrentTreasuryValue")," to ",(0,r.kt)("inlineCode",{parentName:"li"},"TxBody")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3588"},"pull-3588")," - Rename key roles"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3557"},"pull-3557")," - Update ",(0,r.kt)("inlineCode",{parentName:"li"},"NewCommittee")," action to use ",(0,r.kt)("inlineCode",{parentName:"li"},"RewardAcnt")," and add more info"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3595"},"pull-3595")," - Add ",(0,r.kt)("inlineCode",{parentName:"li"},"ConwayUpdateDRep")," constructor to ConwayTxCertGov type"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3600"},"pull-3600")," - Filter out zero TxOuts on Byron/Shelley boundary instead of Babbage/Conway"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3597"},"pull-3597")," - Update ",(0,r.kt)("inlineCode",{parentName:"li"},"ProposalProcedure")," return address to be a ",(0,r.kt)("inlineCode",{parentName:"li"},"RewardAcnt"))),(0,r.kt)("h3",{id:"testing"},"Testing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3374"},"pull-3374")," - New features for generation subject to constraints"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3519"},"pull-3519")," - Basic Conway features test")),(0,r.kt)("h3",{id:"bugfixes"},"Bugfixes"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3566"},"pull-3566")," - Mint field translation bugfix.")),(0,r.kt)("h3",{id:"plutus-integration"},"Plutus integration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3538"},"issue-3538")," - A fairly complete specification was created for the PlutusV3 context"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3593"},"pull-3593")," - Conway TxInfo for PlutusV3 is now compatible with all pre-Conway functionality")),(0,r.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3574"},"pull-3574")," - Improve clarity and performance of collateral Non-ADA validation:"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3573"},"pull-3573")," - Update top-level ",(0,r.kt)("inlineCode",{parentName:"li"},"CHANGELOG.md")," with cardano-node relevant changes"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3555"},"pull-3555")," - Bump pygments from 2.12.0 to 2.15.0 in /doc"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3575"},"pull-3575")," - Bump certifi from 2022.12.7 to 2023.7.22 in /doc"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3567"},"pull-3567")," - Backport mint field translation bugfix"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3568"},"pull-3568")," - Fixed typo in byron ledger spec"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3572"},"pull-3572")," - Release/backport tickf bugfix")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/44642b2f.b28342ce.js b/assets/js/44642b2f.b28342ce.js new file mode 100644 index 0000000000..ee20a8273a --- /dev/null +++ b/assets/js/44642b2f.b28342ce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43108],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),h=p(a),m=n,d=h["".concat(u,".").concat(m)]||h[m]||c[m]||i;return a?r.createElement(d,l(l({ref:t},s),{},{components:a})):r.createElement(d,l({ref:t},s))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,l=new Array(i);l[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[h]="string"==typeof e?e:n,l[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-02-10-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-02-10-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-10-hydra.md",source:"@site/blog/2023-02-10-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-02-10T00:00:00.000Z",formattedDate:"February 10, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.14,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-02-10-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-02-17-network"},nextItem:{title:"Mithril Team Update",permalink:"/2023-02-09-mithril"}},u={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:p},h="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,'This week, the Hydra team closed several gaps to align the Hydra scripts\nimplementation further with the specification. This also resulted in a slight\nimprovement on Hydra script size and costs. They consequently analysed the\nasymptotic complexity of collect and fanout and how they relate. Also plutus-tx\nprofiling toolchain was evaluated and set up for future improvements on Hydra\non-chain performance. In discussions with researchers and internal auditors,\nthey also uncovered next steps on further securing the Head protocl using a\n"full" minting policy.'),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Closed several gaps to align script implementation with specification ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/452"},"#452"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Allow contest only once ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/680"},"#680")),(0,n.kt)("li",{parentName:"ul"},"Optimization through head output at index 0 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/700"},"#700")),(0,n.kt)("li",{parentName:"ul"},"Value is preserved ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/702"},"#702")," + optimized exact value equality ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/709"},"#709")))),(0,n.kt)("li",{parentName:"ul"},"Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/721"},"#721"),(0,n.kt)("img",{parentName:"li",src:"https://user-images.githubusercontent.com/2621189/218124686-7a85b40d-12f7-4b00-ad16-128c99f5b707.png",alt:null})),(0,n.kt)("li",{parentName:"ul"},"Fixed our tooling around the Haskell language server"),(0,n.kt)("li",{parentName:"ul"},"Discussed full minting policy with researchers"),(0,n.kt)("li",{parentName:"ul"},"Started grooming \u201cwhat we need for mainnet\u201d on ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/713"},"this")," idea ticket and ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/milestone/8"},"milestone"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implement full minting policy"),(0,n.kt)("li",{parentName:"ul"},"All remaining protocol discrepancies are implemented or groomed as individual features"),(0,n.kt)("li",{parentName:"ul"},"Ideally release 0.9.0 with updated scripts"),(0,n.kt)("li",{parentName:"ul"},"Discuss what we need for mainnet (milestone planning)"),(0,n.kt)("li",{parentName:"ul"},"Redraw transaction graphs for specification (upon feedback)")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/44cd51e3.4da46250.js b/assets/js/44cd51e3.4da46250.js new file mode 100644 index 0000000000..1f32b41324 --- /dev/null +++ b/assets/js/44cd51e3.4da46250.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[98294],{47809:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/10","page":10,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/9","nextPage":"/tags/hydra/page/11","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/44e33f80.7dc29fd0.js b/assets/js/44e33f80.7dc29fd0.js new file mode 100644 index 0000000000..22868aa2f7 --- /dev/null +++ b/assets/js/44e33f80.7dc29fd0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[31636],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=p(r),h=n,d=c["".concat(s,".").concat(h)]||c[h]||m[h]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-11-08-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-11-08-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-08-mithril.md",source:"@site/blog/2023-11-08-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-11-08T00:00:00.000Z",formattedDate:"November 8, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.805,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-11-08-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-11-08-ledger"},nextItem:{title:"Consensus Team Update",permalink:"/2023-11-01-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team continued working on completing the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, achieving the implementation of a very basic working demo with a peer-to-peer publish-subscribe (pub-sub) mechanism. Additionally, the team continued working on the deterministic computation of the UTXO/transactions set from the immutable files."),(0,n.kt)("p",null,"Finally, they resolved the naming issue of the Docker package responsible for storing images of the new Mithril client CLI, and continued addressing a performance issue associated with the 'release-mainnet' aggregator."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Prototype a P2P relay with ",(0,n.kt)("inlineCode",{parentName:"strong"},"libp2p"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1300"},"#1300")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Release ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1311"},"#1311")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1283"},"#1283")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"release-mainnet")," aggregator is unreachable")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1310"},"#1310")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Client Docker package is incorrect")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1322"},"#1322"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4574fd9f.f77d7aea.js b/assets/js/4574fd9f.f77d7aea.js new file mode 100644 index 0000000000..7edfdb9321 --- /dev/null +++ b/assets/js/4574fd9f.f77d7aea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[81677],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(r),h=o,d=c["".concat(l,".").concat(h)]||c[h]||m[h]||a;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2024-02-19-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2024-02-19-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-19-network.md",source:"@site/blog/2024-02-19-network.md",title:"Network Team Update",description:"High-level overview of sprint 55",date:"2024-02-19T00:00:00.000Z",formattedDate:"February 19, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.225,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-02-19-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-02-21-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-02-16-hydra"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 55",id:"high-level-overview-of-sprint-55",level:2},{value:"Low-level summary",id:"low-level-summary",level:2},{value:"Open Source Contributions",id:"open-source-contributions",level:2},{value:"IOSim",id:"iosim",level:3}],u={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(c,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-55"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+55%22"},"sprint 55")),(0,o.kt)("p",null,"This sprint the networking was nominated for the Cardano Release Engineer role and\nwe've been working on the integration of bootstrap peers with ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node"),". This\nis a work in progress: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/pull/5485"},"cardano-node-5485"),". ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node-8.9")," will be the first\nnode which supports the bootstrap peers feature, but we anticipate additional\nimprovements needed before this is used at scale."),(0,o.kt)("p",null,"We disabled mean reward for new peers in the churn mechanism which was hurting\nconnection in remote destinations. Thanks to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/karknu"},"Karl Knutsson")," (",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") for\nproviding evidence and a patch. In future, this mechanism will be further\nchanged, but this requires more analysis. ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4800"},"ouroboros-network#4800")),(0,o.kt)("p",null,"We continued working on ",(0,o.kt)("inlineCode",{parentName:"p"},"tx-submission"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network#3311")),(0,o.kt)("p",null,"We welcome ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/crocodile-dentist"},"Marcin W\xf3jtowicz")," as part of the Networking\nTeam of Cardano Core Tech. He reviewed our documentation as part of his\nonboarding process: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4802"},"ouroboros-network#4802"),"."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/AndrewWestberg"},"Andrew Westberg")," (",(0,o.kt)("a",{parentName:"p",href:"https://dripdropz.io/"},"DripDropz"),") corrected documentation regarding which\n",(0,o.kt)("inlineCode",{parentName:"p"},"node-to-node")," protocol version introduced ",(0,o.kt)("inlineCode",{parentName:"p"},"P2P"),"."),(0,o.kt)("h2",{id:"low-level-summary"},"Low-level summary"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We fixed an issue related to local root peers related to bootstrap peers: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4799"},"ouroboros-network#4799"),".")),(0,o.kt)("h2",{id:"open-source-contributions"},"Open Source Contributions"),(0,o.kt)("h3",{id:"iosim"},"IOSim"),(0,o.kt)("p",null,"We released ",(0,o.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/io-sim-1.4.1.0"},(0,o.kt)("inlineCode",{parentName:"a"},"io-sim-1.4.1.0"))," with some new features & improvements:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"QuickCheck monadic combinators: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/140"},"io-sim#140"),"."),(0,o.kt)("li",{parentName:"ul"},"Provide ",(0,o.kt)("inlineCode",{parentName:"li"},"PrimMonad")," instance: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/141"},"io-sim#141"),", thanks to ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/dcoutts"},"Duncan Coutts")," (",(0,o.kt)("a",{parentName:"li",href:"https://well-typed.com"},"Well-Typed"),")."),(0,o.kt)("li",{parentName:"ul"},"Fixed ",(0,o.kt)("inlineCode",{parentName:"li"},"threadDelay")," in the presence of ",(0,o.kt)("inlineCode",{parentName:"li"},"registerDelay"),"s: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/143"},"io-sim#143"),", thanks to\nConsensus Team.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/45a10ae8.11de5ab7.js b/assets/js/45a10ae8.11de5ab7.js new file mode 100644 index 0000000000..b7667c339a --- /dev/null +++ b/assets/js/45a10ae8.11de5ab7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[22206],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(r),m=n,h=d["".concat(p,".").concat(m)]||d[m]||s[m]||o;return r?a.createElement(h,l(l({ref:t},c),{},{components:r})):a.createElement(h,l({ref:t},c))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2023-07-07-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-07-07-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-07-sre.md",source:"@site/blog/2023-07-07-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-07-07T00:00:00.000Z",formattedDate:"July 7, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.815,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-07-07-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-07-07-hydra"},nextItem:{title:"Developer Experience Update",permalink:"/2023-07-06-developer-experience"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-ogmios",id:"cardano-ogmios",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-rosetta",id:"cardano-rosetta",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Spongix",id:"spongix",level:3}],c={toc:u},d="wrapper";function s(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements, supporting CI improvements, and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Improved cardano-node entrypoint handling to allow for clean restarts in the Nomad environment"),(0,n.kt)("li",{parentName:"ul"},"Explorer component updates"),(0,n.kt)("li",{parentName:"ul"},"Spongix caching server rewrite for R2 Cloudflare support and various performance improvements")),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Nixos service update to enable non-systemd socket activation multi-node relays: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5360"},"cardano-node-pull-5360"))),(0,n.kt)("h3",{id:"cardano-ogmios"},"Cardano-ogmios"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano ogmios bump to 5.6.0 for nixos service: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ogmios/pull/6"},"cardano-ogmios-pull-6"))),(0,n.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Improve storage resize script, workaround systemd node signal handling, rescale p2p relays: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/88a17c9...dfde751"},"cardano-ops-compare"))),(0,n.kt)("h3",{id:"cardano-rosetta"},"Cardano-rosetta"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano-rosetta nixos modifications for rosetta 2.1.0 service: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/cardano-rosetta/pull/532"},"cardano-rosetta-pull-532"))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano-node entrypoint improvements: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/99"},"cardano-world-pull-99")),(0,n.kt)("li",{parentName:"ul"},"Further automate pool performance SQL query: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/100"},"cardano-world-pull-100")),(0,n.kt)("li",{parentName:"ul"},"Performance and benchmark job related tweaks: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/02f1ba424d3e36bd114df6f53b769d2cd25301c3"},"cardano-world-commit")),(0,n.kt)("li",{parentName:"ul"},"Explorer related component version bumps and traefik definition handline: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/101"},"cardano-world-pull-101"))),(0,n.kt)("h3",{id:"spongix"},"Spongix"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Spongix caching server rewrite for Cloudflare R2 backend support plus misc improvements: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/spongix/compare/afd77728f5823d61732425df52a363949096e163...4890ff93308f45584bea8443cc13fbc16c8ce911"},"spongix-simple-branch"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/45e52e4e.a41179a3.js b/assets/js/45e52e4e.a41179a3.js new file mode 100644 index 0000000000..6bc837c2e8 --- /dev/null +++ b/assets/js/45e52e4e.a41179a3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[35005],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),u=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},k=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(r),k=n,h=c["".concat(l,".").concat(k)]||c[k]||m[k]||a;return r?o.createElement(h,i(i({ref:t},p),{},{components:r})):o.createElement(h,i({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=k;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var o=r(87462),n=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2024-01-22-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2024-01-22-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-22-network.md",source:"@site/blog/2024-01-22-network.md",title:"Network Team Update",description:"High level overview of sprint 53",date:"2024-01-22T00:00:00.000Z",formattedDate:"January 22, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.075,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-01-22-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-01-24-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-01-19-hydra"}},l={authorsImageUrls:[void 0]},u=[{value:"High level overview of sprint 53",id:"high-level-overview-of-sprint-53",level:2},{value:"Low level summary",id:"low-level-summary",level:2}],p={toc:u},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-53"},"High level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+53%22"},"sprint 53")),(0,n.kt)("p",null,"We integrated bootstrap peers with ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node")," in an experimental branch\n(","[cardano-node-5485]",", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4615"},"ouroboros-network-4615"),"). We continued working on\n",(0,n.kt)("inlineCode",{parentName:"p"},"tx-submission"),": ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network-3311"),"."),(0,n.kt)("p",null,"Karl Knutsson (CF) worked on peer sharing improvements: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4778"},"ouroboros-network-4778"),"."),(0,n.kt)("p",null,"Erik de Castro Lopo made ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," packages compile with ",(0,n.kt)("inlineCode",{parentName:"p"},"GHC-9.8"),":\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4727"},"ouroboros-network-4727"),"."),(0,n.kt)("p",null,"Nick Frisby (Tweag, Consensus Team), modified ",(0,n.kt)("inlineCode",{parentName:"p"},"local-state-query")," mini-protocol\nso that one can acquire the immutable tip and thus get information which is not\nsubject to rollbacks: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4765"},"ouroboros-network-4765"),"."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("p",null,"Other, less significant changes / improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"we helped diagnose ",(0,n.kt)("inlineCode",{parentName:"li"},"TVar")," memory leak when using ",(0,n.kt)("inlineCode",{parentName:"li"},"ghc-9.8"),". This will\nrequire more work from us in the near future, see ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4776"},"ouroboros-network-4776"),";"),(0,n.kt)("li",{parentName:"ul"},"we fixed a minor issues with ",(0,n.kt)("inlineCode",{parentName:"li"},"block-size")," in ",(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-network"),":\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4775"},"ouroboros-network-4775"),";"),(0,n.kt)("li",{parentName:"ul"},"we changed pipelining depth configuration to use ",(0,n.kt)("inlineCode",{parentName:"li"},"Word16")," (thanks to Eric de\nCastro Lopo): ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4774"},"ouroboros-network-4774"),";"),(0,n.kt)("li",{parentName:"ul"},"we changed pipelining depth QuickCheck generator: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4771"},"ouroboros-network-4771"),";"),(0,n.kt)("li",{parentName:"ul"},"we moved ",(0,n.kt)("inlineCode",{parentName:"li"},"configureOutboundConnection")," to ",(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-network")," as a private\nfunction: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4773"},"ouroboros-network-4773"),";"),(0,n.kt)("li",{parentName:"ul"},"we updated copyright information of network packages: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/Win32-network/pull/27"},"Win32-network-27"),",\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4761"},"ouroboros-network-4761"),";"),(0,n.kt)("li",{parentName:"ul"},"we merged a PR which added a test which could discover the bug fixed in\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4748"},"ouroboros-network-4748"),", see ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4757"},"ouroboros-network-4757"),".")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/463d37d9.01d17dae.js b/assets/js/463d37d9.01d17dae.js new file mode 100644 index 0000000000..f536730cbc --- /dev/null +++ b/assets/js/463d37d9.01d17dae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[42441],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(h,i(i({ref:t},c),{},{components:n})):r.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const o={title:"Benchmarking -- Node 8.12.1",slug:"2024-06-performance-8.12.1",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},i=void 0,l={permalink:"/reports/2024-06-performance-8.12.1",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-06-performance-8.12.1.md",source:"@site/reports/2024-06-performance-8.12.1.md",title:"Benchmarking -- Node 8.12.1",description:"Setup",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"benchmarking-reports",permalink:"/reports/tags/benchmarking-reports"}],readingTime:2.84,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Benchmarking -- Node 8.12.1",slug:"2024-06-performance-8.12.1",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},prevItem:{title:"Benchmarking -- Node 8.9.3",permalink:"/reports/2024-05-performance-8.9.3"},nextItem:{title:"Benchmarking -- Node 9.0.0",permalink:"/reports/2024-07-performance-9.0.0"}},s={authorsImageUrls:[void 0]},p=[{value:"Setup",id:"setup",level:2},{value:"Observations",id:"observations",level:2},{value:"Resource Usage",id:"resource-usage",level:3},{value:"Forging Loop",id:"forging-loop",level:3},{value:"Peer propagation",id:"peer-propagation",level:3},{value:"End-to-end propagation",id:"end-to-end-propagation",level:3},{value:"Conclusion",id:"conclusion",level:3},{value:"Contact",id:"contact",level:2},{value:"Attachments",id:"attachments",level:2}],c={toc:p},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,r.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"setup"},"Setup"),(0,a.kt)("p",null,"As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," - baseline from a previous mainnet release"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.12.1")," - the current mainnet release")),(0,a.kt)("p",null,"For each version, we're gathering various metrics under 2 different workloads:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"value-only"),": Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"Plutus"),": Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.")),(0,a.kt)("p",null,"Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\nwere performed in the Babbage era."),(0,a.kt)("h2",{id:"observations"},"Observations"),(0,a.kt)("p",null,"These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet. "),(0,a.kt)("h3",{id:"resource-usage"},"Resource Usage"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload, CPU usage is improved by 2% - 4%, and by 14% for GCs. Under Plutus workload, CPU usage improves only slightly by 1%."),(0,a.kt)("li",{parentName:"ol"},"Allocation Rate and Minor GCs improve by 5% and 6% - under Plutus workload, there's a slight improvement of 1%."),(0,a.kt)("li",{parentName:"ol"},"RAM usage is reduced by 3%; reduction under Plutus workload is even larger - namely 10%.")),(0,a.kt)("p",null,"Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness."),(0,a.kt)("h3",{id:"forging-loop"},"Forging Loop"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Mempool snapshotting improves by 5ms or 7% (3ms or 4% under Plutus workload)."),(0,a.kt)("li",{parentName:"ol"},"Adoption time on the block producer improves by 4ms or 6% - under value workload only.")),(0,a.kt)("p",null,"The metric ",(0,a.kt)("em",{parentName:"p"},"'Slot start to announced'")," (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header."),(0,a.kt)("h3",{id:"peer-propagation"},"Peer propagation"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Block Fetch duration increases slightly by 6ms or 2% (2ms under Plutus workload)."),(0,a.kt)("li",{parentName:"ol"},"Adoption times on the peers improve slightly by 2ms or 3% (1ms under Plutus workload)")),(0,a.kt)("h3",{id:"end-to-end-propagation"},"End-to-end propagation"),(0,a.kt)("p",null,"This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. "),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload / full blocks there are no significant changes to cluster adoption times."),(0,a.kt)("li",{parentName:"ol"},"Under Plutus workload / small blocks we can observe a (near-jitter) improvement of 0% - 2% in cluster adoption times.")),(0,a.kt)("h3",{id:"conclusion"},"Conclusion"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The performance changes measured between ",(0,a.kt)("inlineCode",{parentName:"li"},"8.12.1")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," are most distinct in the resource usage footprint - with ",(0,a.kt)("inlineCode",{parentName:"li"},"8.12.1")," improving over ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3"),"."),(0,a.kt)("li",{parentName:"ul"},"On Mainnnet, ",(0,a.kt)("inlineCode",{parentName:"li"},"8.12.1")," is expected to deliver equal or slightly better performance than ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," - as well as lowering the Node's resource usage somewhat in doing so."),(0,a.kt)("li",{parentName:"ul"},"We have not observed any performance regression being introduced in ",(0,a.kt)("inlineCode",{parentName:"li"},"8.12.1"),".")),(0,a.kt)("h2",{id:"contact"},"Contact"),(0,a.kt)("p",null,"As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. "),(0,a.kt)("p",null,"We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future."),(0,a.kt)("h2",{id:"attachments"},"Attachments"),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"value-only workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(84788).Z},"here"),"."),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"Plutus workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(89738).Z},"here"),"."),(0,a.kt)("p",null,"NB. The release benchmarks for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.1")," were performed on tag ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0-pre"),". The patch version bump did not include changes relevant to performance; thus, measurements taken on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0-pre")," remain valid."))}d.isMDXComponent=!0},89738:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.12.1.plutus-bcf8b8e638f9a7d18710f76fc89e33da.pdf"},84788:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.12.1.value-only-d18eaee4dbf2ffb1c471c1b82e7ba499.pdf"}}]); \ No newline at end of file diff --git a/assets/js/46898189.a9100397.js b/assets/js/46898189.a9100397.js new file mode 100644 index 0000000000..bcc9064062 --- /dev/null +++ b/assets/js/46898189.a9100397.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4089],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=p(a),d=n,h=c["".concat(s,".").concat(d)]||c[d]||m[d]||l;return a?r.createElement(h,i(i({ref:t},u),{},{components:a})):r.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[c]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2024-05-08-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-05-08-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-08-ledger.md",source:"@site/blog/2024-05-08-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-05-08T00:00:00.000Z",formattedDate:"May 8, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.325,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-05-08-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-05-10-sre"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-05-07-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3}],u={toc:p},c="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Some of the most important and final Conway features were implemented since the last report:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Bootstrap phase is fully implemented"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"HardForkInitiaztion")," governance action will now correctly take us into the next era\nthat will follow the Conway era."),(0,n.kt)("li",{parentName:"ul"},"DRep stake distribution now also includes the amount in the reward account and deposits\nthat were left for the governance proposals."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"CostModels")," updates for plutus scripts made more flexible, which will allow us adding\nnew primitives for all plutus versions starting with the Conway era.")),(0,n.kt)("p",null,"As always, besides new features, we also wrote a lot of testing functionality. We now have\nour first and fully functional conformance test for a ",(0,n.kt)("inlineCode",{parentName:"p"},"GOV")," rule, with a few more in the\nworks. Many improvements and bugfixes to constraint based generating functionality. Last,\nbut not least, we did a major and long awaited improvement to our CI setup that makes it\nmuch easier to spot failing tests and deal with potential flakiness."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4275"},"pull-4275")," - Restrict gov actions during bootstrap"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4253"},"pull-4253")," - Hardfork Initiation into a new era"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4273"},"pull-4273")," - DRepDistr: Iterate over the DRep delegations in UMap"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4309"},"pull-4309")," - Add proposal deposits to DRep active voting stake."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4284"},"pull-4284")," - Flexible costmodel params"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4328"},"pull-4328")," - Disable drep thresholds in bootstrap")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4295"},"pull-4295")," - Improve generator in ImpTestsState"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4292"},"pull-4292")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": add genHint for maps"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4298"},"pull-4298")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": utility function for asserting over a reified value"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4300"},"pull-4300")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": hotfix of latest derp..."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4297"},"pull-4297")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Fix ",(0,n.kt)("inlineCode",{parentName:"li"},"ifElse")," dependencies"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4301"},"pull-4301")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Add monitoring capability to get a handle on test case distribution"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4315"},"pull-4315")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Improve error messages and make the tree generator reasonably sized"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4317"},"pull-4317")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Fix bug in reifies"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4299"},"pull-4299")," - Fix strange CI failure."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4285"},"pull-4285")," - Start Conway Imp tests with an initial committee and constitution"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4303"},"pull-4303")," - Fix test caused by erroneous merge"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4310"},"pull-4310")," - Fix ",(0,n.kt)("inlineCode",{parentName:"li"},"OMap.assocList")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4268"},"pull-4268")," - Enable conformance tests for GOV rule")),(0,n.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4276"},"pull-4276")," - Use a separate job for each test suite in GitHub CI"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4304"},"pull-4304")," - Ensure the CI complete step fails when tests fail"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4308"},"pull-4308")," - Add a CI status check to prevent merging PRs that contain merges"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4305"},"pull-4305")," - Use the correct iohk action for installing Haskell in GitHub CI"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4322"},"pull-4322")," - Bump jinja2 from 3.1.3 to 3.1.4 in /doc")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/469935bd.652452d1.js b/assets/js/469935bd.652452d1.js new file mode 100644 index 0000000000..75e323a7c8 --- /dev/null +++ b/assets/js/469935bd.652452d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[47605],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=p(n),c=o,m=d["".concat(l,".").concat(c)]||d[c]||h[c]||a;return n?r.createElement(m,i(i({ref:t},u),{},{components:n})):r.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:o,i[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-09-01-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-09-01-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-network.md",source:"@site/blog/2023-09-01-network.md",title:"Network Team Update",description:"High-level overview of sprint 43",date:"2023-09-01T00:00:00.000Z",formattedDate:"September 1, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.765,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-09-01-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-09-01-ledger"},nextItem:{title:"SRE Team Update",permalink:"/2023-09-01-sre"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 43",id:"high-level-overview-of-sprint-43",level:2},{value:"Progress on P2P addoption",id:"progress-on-p2p-addoption",level:3},{value:"SPO relays",id:"spo-relays",level:4},{value:"IOG relays",id:"iog-relays",level:4},{value:"Detailed description",id:"detailed-description",level:2},{value:"Peer Sharing",id:"peer-sharing",level:2},{value:"Async Demotion Test Fix",id:"async-demotion-test-fix",level:2}],u={toc:p},d="wrapper";function h(e){let{components:t,...a}=e;return(0,o.kt)(d,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-43"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+43%22"},"sprint 43")),(0,o.kt)("p",null,"In this sprint, we received contributions from ",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"CF")," & ",(0,o.kt)("a",{parentName:"p",href:"https://galois.com/"},"Galois"),". Karl Knutsson\n(",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"CF"),") has addressed various issues regarding peer churning in P2P, timeouts\nand our ",(0,o.kt)("inlineCode",{parentName:"p"},"WireShark")," dissector. While the ",(0,o.kt)("a",{parentName:"p",href:"https://galois.com/"},"Galois")," developers focused on\naddressing issues from their review last year. See below for more details."),(0,o.kt)("p",null,"We continued working on bootstrap peers ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4661"},"ouroboros-network-#4661"),"."),(0,o.kt)("p",null,"We refactored our test suites: they are split into ",(0,o.kt)("inlineCode",{parentName:"p"},"io-tests")," which require to\nbe run natively on all platforms (these tests mostly contain tests that\nrequire ",(0,o.kt)("inlineCode",{parentName:"p"},"IO")," system calls) and ",(0,o.kt)("inlineCode",{parentName:"p"},"sim-tests")," which are platform independent. We\nrun ",(0,o.kt)("inlineCode",{parentName:"p"},"io-tests")," on all supported platforms (e.g. ",(0,o.kt)("inlineCode",{parentName:"p"},"x86_64-linux"),",\n",(0,o.kt)("inlineCode",{parentName:"p"},"x86-64-darwin"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"aarch64-darwin")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"x86_64-w64-mingw32")," (Windows)) natively.\nThe ",(0,o.kt)("inlineCode",{parentName:"p"},"sim-tests")," are not executed on ",(0,o.kt)("inlineCode",{parentName:"p"},"Windows")," due to memory limitations on\nGitHub Actions runners. ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4653"},"ouroboros-network-#4653")),(0,o.kt)("p",null,"We also started rebasing ",(0,o.kt)("inlineCode",{parentName:"p"},"typed-protocols")," refactoring branches."),(0,o.kt)("p",null,"Marcin was appointed as the ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," release engineer for the ",(0,o.kt)("inlineCode",{parentName:"p"},"8.4.0-pre"),"\nversion. So far he integrated ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-ledger-conway-1.8")," and\n",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.9.1.0")," to ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-cli")," and\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-api"),". Once we will have an integration branch for ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node"),",\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-ledger-conway-1.8")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," packages can be released\nto ",(0,o.kt)("inlineCode",{parentName:"p"},"CHaP")," and PRs can be merged once they go through review & CI."),(0,o.kt)("p",null,"We also fixed some smaller issues regarding peer sharing (both were discovered\nby Karl from ",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"CF"),"). More details are included below."),(0,o.kt)("h3",{id:"progress-on-p2p-addoption"},"Progress on P2P addoption"),(0,o.kt)("h4",{id:"spo-relays"},"SPO relays"),(0,o.kt)("p",null,"There are currently ~2000 relays running P2P\nenabled nodes that belong to 557 pools with a combined stake of 7900Mil Ada. On\n16th of August it was ~1700 relays, 531 pools with a combined stake of 7700Mil\nAda."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"P2P relays",src:n(86597).Z,width:"2034",height:"1588"})),(0,o.kt)("p",null,"The following graphs show several different versions of relays running on the mainnet. The\ngreen line ",(0,o.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionV10.True")," denotes P2P relays, which slowly\nincrease over time. The ",(0,o.kt)("inlineCode",{parentName:"p"},"V9")," and earlier versions of the ",(0,o.kt)("inlineCode",{parentName:"p"},"node-to-node"),"\nthe protocol indicates nodes version ",(0,o.kt)("inlineCode",{parentName:"p"},"1.35.x")," or earlier.\n",(0,o.kt)("img",{alt:"node versions",src:n(31567).Z,width:"2038",height:"1594"})),(0,o.kt)("p",null,"Data has been kindly provided by ",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"CF")," and their mainnet monitoring\ninfrastructure."),(0,o.kt)("h4",{id:"iog-relays"},"IOG relays"),(0,o.kt)("p",null,"As of this week, 90% of IOG relays are running a P2P setup. In the next sprint all\nIOG relays will be running P2P."),(0,o.kt)("h2",{id:"detailed-description"},"Detailed description"),(0,o.kt)("p",null,"In this sprint, we got a few contributions from ",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"CF"),":"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Karl made peer churning mechanism less aggressive ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4656"},"ouroboros-network-#4656"),"; and"),(0,o.kt)("li",{parentName:"ul"},"he added timeouts for idle states in ",(0,o.kt)("inlineCode",{parentName:"li"},"ChainSync")," & ",(0,o.kt)("inlineCode",{parentName:"li"},"KeepAlive"),"\nminiprotocols. These timeouts help a node remove idle connections from the\nresponder (server) side ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4648"},"ouroboros-network-#4648"),"."),(0,o.kt)("li",{parentName:"ul"},"he improved the ",(0,o.kt)("inlineCode",{parentName:"li"},"WireShark")," dissector by adding support for the ",(0,o.kt)("inlineCode",{parentName:"li"},"peer-sharing")," mini-protocol ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4656"},"ouroboros-network-#4656"),".")),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://galois.com/"},"Galois")," has been making progress in addressing some of the issues they raised in their review (last year):"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Mark Tullsen (",(0,o.kt)("a",{parentName:"li",href:"https://galois.com/"},"Galois"),") has been working on refactoring the main entry function of P2P ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4661"},"ouroboros-network-#4661")," (in review);"),(0,o.kt)("li",{parentName:"ul"},"Sam Cowger (",(0,o.kt)("a",{parentName:"li",href:"https://galois.com/"},"Galois"),") has been reviewing all use cases of ",(0,o.kt)("inlineCode",{parentName:"li"},"error")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"unsafe")," calls\n",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4661"},"ouroboros-network-#4661")," (in review).")),(0,o.kt)("h2",{id:"peer-sharing"},"Peer Sharing"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Light peer sharing is only enabled when peer sharing is turned on ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4652"},"ouroboros-network-#4652"),";"),(0,o.kt)("li",{parentName:"ul"},"Handshake incorrectly reports peer sharing value. It's supposed to relay the\nremote value, but instead, it returns the local value. ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4642"},"ouroboros-network-#4642")," (in review).")),(0,o.kt)("h2",{id:"async-demotion-test-fix"},"Async Demotion Test Fix"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We fixed an async demotion test failure which turned out to be a weakness of\nthe test itself rather than a bug in the connection manager. ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4655"},"ouroboros-network-#4655"))))}h.isMDXComponent=!0},86597:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2023-08-31-p2p-relays-8e5be189ad8437375c5067026c003556.png"},31567:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2023-08-31-relay-versions-0a8d445e1b0f3a793ccdd94f4aacd421.png"}}]); \ No newline at end of file diff --git a/assets/js/46b1db29.e8890509.js b/assets/js/46b1db29.e8890509.js new file mode 100644 index 0000000000..aa9d4e5e18 --- /dev/null +++ b/assets/js/46b1db29.e8890509.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[78258],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=p(n),d=a,h=m["".concat(l,".").concat(d)]||m[d]||c[d]||s;return n?r.createElement(h,o(o({ref:t},u),{},{components:n})):r.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const s={title:"Consensus Q4 2023 Update",slug:"2023-Q4-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,i={permalink:"/quarterly/2023-Q4-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q4-consensus.md",source:"@site/quarterly/2023-Q4-consensus.md",title:"Consensus Q4 2023 Update",description:"Areas of focus",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"consensus",permalink:"/quarterly/tags/consensus"}],readingTime:2.66,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Q4 2023 Update",slug:"2023-Q4-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"SRE Q3 2023 Update",permalink:"/quarterly/2023-Q3-sre"},nextItem:{title:"Performance & Tracing Q4 2023 Update",permalink:"/quarterly/2023-Q4-performance-and-tracing"}},l={authorsImageUrls:[void 0]},p=[{value:"Areas of focus",id:"areas-of-focus",level:2},{value:"Highlights",id:"highlights",level:2},{value:"Implement legacy mode for UTxO-HD to keep baseline performance",id:"implement-legacy-mode-for-utxo-hd-to-keep-baseline-performance",level:3},{value:"Assist mainnet node release with initial Conway capabilities, test, benchmark, and improvements to CIP 1694",id:"assist-mainnet-node-release-with-initial-conway-capabilities-test-benchmark-and-improvements-to-cip-1694",level:3},{value:"Assist with P2P IOG relay network shut down",id:"assist-with-p2p-iog-relay-network-shut-down",level:3},{value:"Assist with repo transfer to Intersect",id:"assist-with-repo-transfer-to-intersect",level:3},{value:"Support vendors to deliver contracts",id:"support-vendors-to-deliver-contracts",level:3},{value:"Operation serenity Q4 2023",id:"operation-serenity-q4-2023",level:3}],u={toc:p},m="wrapper";function c(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"areas-of-focus"},"Areas of focus"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"Issue"),(0,a.kt)("th",{parentName:"tr",align:null},"Status"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/429"},"Implement legacy mode for UTxO-HD to keep baseline performance")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/423"},"Assist mainnet node release with initial Conway capabilities")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/424"},"Assist with test, benchmark, and improvements to CIP 1694")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/414"},"Assist with P2P IOG relay network shut down")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/425"},"Assist with repo transfer to Intersect")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/427"},"Support vendors to deliver contracts")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/415"},"Operation serenity Q4 2023")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")))),(0,a.kt)("h2",{id:"highlights"},"Highlights"),(0,a.kt)("h3",{id:"implement-legacy-mode-for-utxo-hd-to-keep-baseline-performance"},"Implement legacy mode for UTxO-HD to keep baseline performance"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u2705 We managed to run a UTxO-HD capable node in legacy mode, maintaining the baseline memory usage while keeping all the ledger state in memory.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"While the legacy mode is not production-ready (it requires further integration and testing), it remains as a plan B should the need arise to release UTxO-HD if our stakeholders so demand it."))),(0,a.kt)("li",{parentName:"ul"},"\u2705 We pivoted to redesigning the Ledger DB API because:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"This is needed for integrating the LSM-tree backend."),(0,a.kt)("li",{parentName:"ul"},"The redesign opened the possibility of implementing an in-memory backend that would keep the same performance and resource requirements as the baseline version (which needs to be confirmed by benchmarks)."))),(0,a.kt)("li",{parentName:"ul"},"\u2705 We created a more general Ledger DB API."),(0,a.kt)("li",{parentName:"ul"},"\ud83d\udee0\ufe0f We are integrating (into the feature branch) the existing Ledger DB implementations with the new API."),(0,a.kt)("li",{parentName:"ul"},"\ud83d\udee0\ufe0f We are implementing the new in-memory backend.")),(0,a.kt)("h3",{id:"assist-mainnet-node-release-with-initial-conway-capabilities-test-benchmark-and-improvements-to-cip-1694"},"Assist mainnet node release with initial Conway capabilities, test, benchmark, and improvements to CIP 1694"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u2705 We recognized that Conway introduces a new challenge in the versioning of NTC queries, and we resolved it (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/864"},"864")," and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4770"},"4770"),").")),(0,a.kt)("h3",{id:"assist-with-p2p-iog-relay-network-shut-down"},"Assist with P2P IOG relay network shut down"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u2705 We created a prototype for the pre-Genesis State Machine for bootstrap peers, which is currently under test (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/808"},"this PR"),").")),(0,a.kt)("h3",{id:"assist-with-repo-transfer-to-intersect"},"Assist with repo transfer to Intersect"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u2705 We transferred the ",(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus")," repository to the Intersect GitHub organization.")),(0,a.kt)("h3",{id:"support-vendors-to-deliver-contracts"},"Support vendors to deliver contracts"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Genesis",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u2705 Interacted with the Consensus team and addressed resulting feedback on past deliverables."),(0,a.kt)("li",{parentName:"ul"},"\u2705 Finished implementation of the testing infrastructure of Genesis"),(0,a.kt)("li",{parentName:"ul"},"\u2705 Started to refine the Proof of Concept demo into an actual implementation of the core components of the Genesis design."))),(0,a.kt)("li",{parentName:"ul"},"\ud83d\udcbe LSM-tree implementation. Well Typed:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u2705 Finished the design of the public facing API."),(0,a.kt)("li",{parentName:"ul"},"\u2705 Defined the LSM-tree database file-type formats."),(0,a.kt)("li",{parentName:"ul"},"\u2705 Implemented property and model-based tests.")))),(0,a.kt)("h3",{id:"operation-serenity-q4-2023"},"Operation serenity Q4 2023"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\ud83c\udf89 We welcomed our newest team member @RenateEilers and assisted with her (ongoing) onboarding."),(0,a.kt)("li",{parentName:"ul"},"\u2705 We implemented a simplification in the ChainSync mini-protocol that is also a step towards Ouroboros Chronos."),(0,a.kt)("li",{parentName:"ul"},"\u2705 We added tests to check Consensus emits valid CBOR, which prevents the generation of invalid binary encoding."),(0,a.kt)("li",{parentName:"ul"},"\u2705 We established and implemented an interface between Consensus tooling and P&T tooling, which constitutes a step towards incorporating component level benchmarks in our development process.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/46ba60f8.61898963.js b/assets/js/46ba60f8.61898963.js new file mode 100644 index 0000000000..41b762978b --- /dev/null +++ b/assets/js/46ba60f8.61898963.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28050],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=p(a),u=n,h=m["".concat(c,".").concat(u)]||m[u]||d[u]||l;return a?r.createElement(h,i(i({ref:t},s),{},{components:a})):r.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=u;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[m]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-04-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",o={permalink:"/2024-04-15-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-15-node-cli-api.md",source:"@site/blog/2024-04-15-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-04-15T00:00:00.000Z",formattedDate:"April 15, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.16,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-04-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-04-17-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-04-12-hydra"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],s={toc:p},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-04-01---2024-04-15"},"2024-04-01 - 2024-04-15"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Adding support for script based committee members certificates: authorization and resignation. It is now possible to convert extended signing Drep and Committee keys to a Shelley-format key. Improvements to Conway era tests. Use threshold instead of quorum for committee members. "),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/716"},"Provide a default value for ",(0,n.kt)("inlineCode",{parentName:"a"},"calculate-min-fee --reference-script-size"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/714"},"Improvements to governance tests")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/713"},"Add transaction metadata golden test")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/710"},"key non-extended-key: make pattern matches exhaustive, so that we are notified of possible extensions")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/708"},"foldSomeAddressVerificationKey->mapSomeAddressVerificationKey")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/699"},"Enable both --cold-script-file and --cold-script-hash for committee auth and resig commands")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/698"},'Fix inversion in --include-stake parser + print "stake" field even when there is no stake (do not hide stake absence)')),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/697"},"Release cardano-cli-8.22.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/694"},"Fix broken golden tests")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/693"},"Fix protocol params order for minFeeA and minFeeB")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/691"},"convert-cardano-address-key: support DRep and CC keys")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/689"},"updating cli to use threshold instead of quorum for constitutional co\u2026"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/517"},"Sort metadata keys for no-schema json for canonical CBOR")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/514"},"Add support for CC keys in the SomeAddressVerificationKey type")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/511"},"Implement estimateBalancedTxBody and estimateOrCalculateBalancedTxBody")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/506"},"Release cardano-api-8.44.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/503"},"LedgerState.hs improvements"))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5766"},"Updated copyright")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5758"},"Set NumThreads to 1 in cardano-testnet-test")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5749"},"Remove manual DRep registration from InfoAction test")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5748"},"DRep deposits test")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5747"},"Add tx fee check to hprop_transaction")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5746"},"cardano-testnet: Avoid rewrite of sgMaxLovelaceSupply"))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/46c51ef6.8fa59059.js b/assets/js/46c51ef6.8fa59059.js new file mode 100644 index 0000000000..5422a6fd3e --- /dev/null +++ b/assets/js/46c51ef6.8fa59059.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28298],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(n),c=o,h=m["".concat(s,".").concat(c)]||m[c]||d[c]||a;return n?r.createElement(h,i(i({ref:t},u),{},{components:n})):r.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:o,i[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2022-11-09-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2022-11-09-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2022-11-09-network.md",source:"@site/quarterly/2022-11-09-network.md",title:"Network Team Update",description:"Network Quarterly Update",date:"2022-11-09T00:00:00.000Z",formattedDate:"November 9, 2022",tags:[{label:"network",permalink:"/quarterly/tags/network"}],readingTime:3.87,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-11-09-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Quarterly Update",permalink:"/quarterly/2022-11-15-consensus"},nextItem:{title:"Ledger Team Update",permalink:"/quarterly/2022-11-07-ledger"}},s={authorsImageUrls:[void 0]},p=[{value:"Network Quarterly Update",id:"network-quarterly-update",level:2},{value:"2022-09 - 2022-11",id:"2022-09---2022-11",level:2},{value:"Summary of most important improvements",id:"summary-of-most-important-improvements",level:3},{value:"Detailed log",id:"detailed-log",level:3},{value:"Next quarter",id:"next-quarter",level:2}],u={toc:p},m="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(m,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"network-quarterly-update"},"Network Quarterly Update"),(0,o.kt)("h2",{id:"2022-09---2022-11"},"2022-09 - 2022-11"),(0,o.kt)("h3",{id:"summary-of-most-important-improvements"},"Summary of most important improvements"),(0,o.kt)("p",null,"During this quarter the networking team delivered low level specification of\npeer sharing & eclipse evasion. We held a session with the consensus & the\nscientists; we got a positive feedback on the design."),(0,o.kt)("p",null,"Further we focused on implementation of peer sharing. We produced a ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/wiki/Peer-Sharing-Implementation-Plan"},"detail\ndesign")," and an ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"early implementation"),"."),(0,o.kt)("p",null,"We prepared the ",(0,o.kt)("em",{parentName:"p"},"P2P Single Relay Release")," (",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node-1.35.5"),"). It\nincludes over ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4120"},"130 patches")," of network stack improvements over the\nprevious version ",(0,o.kt)("inlineCode",{parentName:"p"},"1.35.4"),", which were accomplished over a longer period of\ntime. Among them are both bug fixes and UX improvements for stake pool\noperators like simplified format of the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4563"},"topology file"),", or\nimprovements in the logged messages:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4015"},"tracing of early consensus exceptions")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4127"},"tracing of demotion of local root peers")," (traced with\n",(0,o.kt)("inlineCode",{parentName:"li"},"Warning")," severity), the trace is called ",(0,o.kt)("inlineCode",{parentName:"li"},"TraceDemoteLocalAsynchronous"),", in\n",(0,o.kt)("inlineCode",{parentName:"li"},"json")," format it is encoded as ",(0,o.kt)("inlineCode",{parentName:"li"},"DemoteLocalAsynchronous"),". For an SPO\ntracking these demotion is vital (such demotion could indicate that a block\nproducer is no longer connected to its relays or vice versa)")),(0,o.kt)("p",null,"We also provide better integration with ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3979"},"systemd")," (socket\nactivation improvements) or improvements in the networking stack:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3785"},"exit policies"),","),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3915"},"peer metrics improvements"),","),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4106"},"DNS TTL")," improvements (which make it harder to misconfigure the\nsystem, an issue discovered by the performance & monitoring team),"),(0,o.kt)("li",{parentName:"ul"},"do not trigger inbound idle timeout for ",(0,o.kt)("inlineCode",{parentName:"li"},"node-to-client")," connections (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3844"},"pr\n#3844"),"), an issue reported to us by Matthias Benkort from\nCardano Foundation.")),(0,o.kt)("p",null,"Duncan has been making progress with the input endorsers demo. His simulation\nprovides a useful animated visualisation and live quantification of behaviour\nof the modeled design."),(0,o.kt)("p",null,"We also improved our e2e diffusion simulation by implementing header-body\nsplit, similar to what the real implementation does."),(0,o.kt)("p",null,"We also made some advances towards our future goals of P2P release for block\nproducer nodes (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3800"},"pr #3800")," - in review) & for Daedalus users\n(",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3968"},"pr #3690")," - merged)."),(0,o.kt)("h3",{id:"detailed-log"},"Detailed log"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We expanded diffusion simulation with block-fetch protocol bringing it closer\nto the production system.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We addressed some additional technical depth in diffusion simulation")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We slightly improved documentation & CI of io-sim and typed-protocols\nrepositories for open-source contributors.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We closed a number of issues towards publishing io-sim on Hackage (only two\nessential issues are left open).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We pushed a branch of typed-protocols which captures one of the developer UX\nproblems in the API which we need to solve.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We identified and fixed an issue related to systemd sockets.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We identified and fixed an issue in consensus initialisation not giving\nfeedback on early errors.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We deployed RT View, identified a number of issues which were communicated to\nthe performance & monitoring team.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We finished high level & detailed design of peer sharing, very early\nimplementation of peer sharing is done (note that peer sharing cannot be\nsafely deployed without eclipse evasion & genesis).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We finished high level design of eclipse evasion, and started working on\na detailed design.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We were assigned the role of release engineer for 1.35.5 release (the P2P\nsingle relay release); we prepared a cardano-node for 1.35.5 release which\ncontains more than 130 patches of just network stack improvements done over\nlast few months.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We diagnosed and fixed an tricky bug in the peer state actions (a component\nwhich sits between outbound governor and connection manager). That bug was\nintroduced earlier this year and never released. It was caught by the QA\ntesting framework. We expanded our diffusion simulation to cover such case and\nalso mitigated a chance for reintroducing such a bug in future.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We identified and quite likely mitigated a misconfiguration in the\nbenchmarking cluster (next benchmarking run will confirm our hypothesis).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We simplified the format of p2p topology file, we got positive feedback from\nSPOs.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We raised severities of some of the logging messages, which is an important\nimprovement for SPOs, exchanges and other users of the system.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We worked on input endorsers simulation which gives both animated and\nquantified live feedback on network operation, using a simplified model of\na TCP/IP network. "))),(0,o.kt)("h2",{id:"next-quarter"},"Next quarter"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Release the Single Relay P2P Release ",(0,o.kt)("inlineCode",{parentName:"p"},"1.35.5"),".")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Carry on with Peer Sharing (review, testing).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Deliver a talk at ",(0,o.kt)("a",{parentName:"p",href:"https://sites.uclouvain.be/OPODIS2022/"},"Conference on Principles of Distributed Systems 2022")," in Brussels, Belgium.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Present Detailed Design of Eclipse Evasion and start implementation phase.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Work on P2P Block Producer release.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Carry on with publishing of ",(0,o.kt)("inlineCode",{parentName:"p"},"io-sim")," on ",(0,o.kt)("inlineCode",{parentName:"p"},"Hackage"),"."))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4708484f.f00723f1.js b/assets/js/4708484f.f00723f1.js new file mode 100644 index 0000000000..70722c606d --- /dev/null +++ b/assets/js/4708484f.f00723f1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5607],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>k});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),i=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},u=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=i(a),d=r,k=c["".concat(p,".").concat(d)]||c[d]||m[d]||o;return a?n.createElement(k,l(l({ref:t},u),{},{components:a})):n.createElement(k,l({ref:t},u))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=d;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[c]="string"==typeof e?e:r,l[1]=s;for(var i=2;i{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>i});var n=a(87462),r=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2024-01-19-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,s={permalink:"/2024-01-19-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-19-sre.md",source:"@site/blog/2024-01-19-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-01-19T00:00:00.000Z",formattedDate:"January 19, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.39,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-01-19-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-01-19-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2024-01-17-ledger"}},p={authorsImageUrls:[void 0]},i=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-monitoring",id:"cardano-monitoring",level:3},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Upstream Contributions",id:"upstream-contributions",level:2},{value:"Process-compose-flake",id:"process-compose-flake",level:3},{value:"Services-flake",id:"services-flake",level:3}],u={toc:i},c="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node 8.7.3 is now generally deployed to all testnet and mainnet environments\nmanaged by coretech SRE")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Dbsync and node stack process-compose jobs are now available from\ncardano-parts for users running ",(0,r.kt)("inlineCode",{parentName:"p"},"nix >= 2.17.0")," and nix ",(0,r.kt)("inlineCode",{parentName:"p"},"experimental-features\n= nix-command flakes fetch-closure"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"These can be run with:"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre"}," nix run github:input-output-hk/cardano-parts#run-process-compose-node-stack\n nix run github:input-output-hk/cardano-parts#run-process-compose-dbsync-$NETWORK\n"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"For more details, see the merged cardano-parts process-compose\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-parts/pull/28"},"PR")))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"cardano-monitoring"},"Cardano-monitoring"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds code documentation and some nix refactoring:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-monitoring/pull/1"},"cardano-monitoring-pull-1"))),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds a readme, switches to nonmoving gc for producers, plus misc improvements\nfrom cardano-parts:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/6"},"cardano-mainnet-pull-6"))),(0,r.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Merged a long standing branch converting legacy mainnet relays to p2p, node ->\n8.7.2, db-sync snapshots -> 13.1.1.3, and other improvements:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/pull/417"},"cardano-ops-pull-417"))),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds a readme, provides misc improvements, service optimizations, alert tuning,\nsql pool performance analysis fix, package updates:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/27"},"cardano-parts-pull-27")),(0,r.kt)("li",{parentName:"ul"},"Adds process-compose dbsync and node stacks:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/28"},"cardano-parts-pull-28"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Updates the readme, adds mainnet missedSlot testing, rotates KES on 4 networks,\nplus misc improvements from cardano-parts:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/13"},"cardano-playground-pull-13")),(0,r.kt)("li",{parentName:"ul"},"Adds process-compose dbsync and node stacks from cardano-parts flakeModule:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/14"},"cardano-playground-pull-14"))),(0,r.kt)("h2",{id:"upstream-contributions"},"Upstream Contributions"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Contributions to upstream process-compose related repos were made in order to\ncomplete the process-compose dbsync and node stacks in cardano-parts,\nincluding the following:")),(0,r.kt)("h3",{id:"process-compose-flake"},"Process-compose-flake"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds apiServer process-compose cli option:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/Platonic-Systems/process-compose-flake/pull/54"},"process-compose-flake-pull-54")),(0,r.kt)("li",{parentName:"ul"},"Add a pre- and post- hook for the process-compose wrapper:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/Platonic-Systems/process-compose-flake/pull/56"},"process-compose-flake-pull-56"))),(0,r.kt)("h3",{id:"services-flake"},"Services-flake"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds socketDir option for postgres service:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/juspay/services-flake/pull/77"},"services-flake-pull-77")),(0,r.kt)("li",{parentName:"ul"},"Ensure socketDir mktemp init succeeds for postgres service:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/juspay/services-flake/pull/81"},"services-flake-pull-81"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4731c85e.7f055d6d.js b/assets/js/4731c85e.7f055d6d.js new file mode 100644 index 0000000000..2ce35311ac --- /dev/null +++ b/assets/js/4731c85e.7f055d6d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50645],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-06-12-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-06-12-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-12-mithril.md",source:"@site/blog/2024-06-12-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-06-12T00:00:00.000Z",formattedDate:"June 12, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.4,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-06-12-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-06-19-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-06-10-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team released the new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2423.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2423.0")),", which includes the removal of the ",(0,n.kt)("inlineCode",{parentName:"p"},"snaphot")," command of the client CLI, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks and improved the throughput of the prover route of the aggregator by fixing some bottlenecks in the Merkle proof computation. Additionally, the team made progress on low-latency certification by working on the retrieval of the transactions with the chain sync mini-protocol and Pallas, as well as the handling of rollbacks of the chain."),(0,n.kt)("p",null,"Finally, they kept working on the threat modeling explainer for the documentation website and provided support for multiple TLS implementations in the client library thanks to a community contribution."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2423.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2423.0"))),(0,n.kt)("li",{parentName:"ul"},"Publication of a ",(0,n.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/06/12/client-cli-removed-command"},"dev blog post")," about the ",(0,n.kt)("strong",{parentName:"li"},"removed Mithril client CLI 'snapshot' command")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Client verification fails with an already stored but non certified yet transaction")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1719"},"#1719")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Computation of Merkle proof has bottleneck with multiple transactions")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1730"},"#1730")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Automatic rollback on SQL transactions")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1741"},"#1741")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Allow the underlying TLS implementation to be selectable when using a library.")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1737"},"#1737")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Release ",(0,n.kt)("inlineCode",{parentName:"strong"},"2423")," distribution")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1695"},"#1695")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Handle rollbacks in Cardano transactions")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1724"},"#1724")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Pooled resources should be reset when given back")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1743"},"#1743")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Threat modeling and risk analysis")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Import Cardano transactions with ",(0,n.kt)("inlineCode",{parentName:"strong"},"ChainReader"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1705"},"#1705"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4735cd81.792afa66.js b/assets/js/4735cd81.792afa66.js new file mode 100644 index 0000000000..f81e595943 --- /dev/null +++ b/assets/js/4735cd81.792afa66.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15529],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=u(r),h=o,d=m["".concat(p,".").concat(h)]||m[h]||c[h]||a;return r?n.createElement(d,i(i({ref:t},s),{},{components:r})):n.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:o,i[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(87462),o=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-01-20-network",authors:"coot",tags:["network","release"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-01-20-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-20-network.md",source:"@site/blog/2023-01-20-network.md",title:"Network Team Update",description:"High level summary",date:"2023-01-20T00:00:00.000Z",formattedDate:"January 20, 2023",tags:[{label:"network",permalink:"/tags/network"},{label:"release",permalink:"/tags/release"}],readingTime:1.045,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-01-20-network",authors:"coot",tags:["network","release"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-01-20-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-01-20-sre"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2}],s={toc:u},m="wrapper";function c(e){let{components:t,...r}=e;return(0,o.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"We have been working towards ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node-1.35.5")," release. QA & benchmarking\nteams gave a green light for the release, and we made decent progress with some\nCI problem which we encountered on the way (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4612"},"PR #4612"),"). We are also working on\npeer sharing, making improvements in our testing infrastructure, reducing\ntechnical debt and making progress towards ",(0,o.kt)("inlineCode",{parentName:"p"},"io-sim-1.0.0.0"),". Galois is making\nprogress on Handshake improvements."),(0,o.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,o.kt)("p",null,"Our diffusion simulation network now includes a mixed network of ",(0,o.kt)("inlineCode",{parentName:"p"},"initiator\nonly")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"initiator and responder")," nodes. ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4222"},"issue #4222")),(0,o.kt)("p",null,"We are now reviewing the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"peer sharing pull request"),"."),(0,o.kt)("p",null,"We are also reviewing pull request which introduces handshake query flag. ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"PR #4256")),(0,o.kt)("p",null,"We fixed a bug in our network simulator. The bug was triggered when a node\ndied when performing a simultaneous TCP open (a corner case of a corner case!). ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4265"},"PR #4265")),(0,o.kt)("p",null,"We also refactored ",(0,o.kt)("inlineCode",{parentName:"p"},"Snocket")," interface and removed the bearer construction from\nits methods. ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4260"},"PR #4260")),(0,o.kt)("p",null,"We are working towards releasing ",(0,o.kt)("inlineCode",{parentName:"p"},"io-sim-1.0.0.0")," on Hackage, which includes\nreviewing two PRs: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/57"},"PR #57")," and ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/60"},"PR #60")," as well as writing an announcement\nblog post. "))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/47658b82.2cf25410.js b/assets/js/47658b82.2cf25410.js new file mode 100644 index 0000000000..9cce6fac70 --- /dev/null +++ b/assets/js/47658b82.2cf25410.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[60263],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(n),m=a,g=p["".concat(s,".").concat(m)]||p[m]||d[m]||i;return n?r.createElement(g,o(o({ref:t},u),{},{components:n})):r.createElement(g,o({ref:t},u))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-04-05-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o="High level summary",l={permalink:"/2023-04-05-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-05-performance-and-tracing.md",source:"@site/blog/2023-04-05-performance-and-tracing.md",title:"Performance & tracing update",description:"* Benchmarking: We worked on adjusting our infrastructure to the new 8.0 release branch and performed a (very) early run.",date:"2023-04-05T00:00:00.000Z",formattedDate:"April 5, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.33,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-04-05-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-04-05-node-cli-api"},nextItem:{title:"Crypto Team Update",permalink:"/2023-03-31-crypto"}},s={authorsImageUrls:[void 0]},c=[{value:"General",id:"general",level:3},{value:"Plutus library",id:"plutus-library",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],u={toc:c},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We worked on adjusting our infrastructure to the new ",(0,a.kt)("inlineCode",{parentName:"li"},"8.0")," release branch and performed a (very) early run."),(0,a.kt)("li",{parentName:"ul"},"New tracing: We're profiling the new tracing system for minimizing its resource footprint and guarantee high throughput."),(0,a.kt)("li",{parentName:"ul"},"Analysis pipeline: Variance analysis both for reporting and for serving as a point of comparison has been merged."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: A library for Plutus scripts will be integrated in our tooling and benchmarking profiles. Also, a profile family aimed at the tracing systems has been added."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: Various specializations of the backend are currently being implemented, along with streamlining credentials management.")),(0,a.kt)("h1",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We have adapted our benchmarking cluster to the requirements of the ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0")," release branch. Testing runs of a very early feature branch for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0"),"\nhelped us localize an important issue in collaboration with the other teams. We look forward to gathering preliminary metrics for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0")," soon."),(0,a.kt)("h1",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"Analysis of resource usage profiles of both the legacy and new tracing system, with and without trace forwarding, have lead us to gather very\ndetailed profiling data for each possible setup. This is to ensure we keep resource usage within the node to an absolute minimum, while still providing\nthe highest possible throughput of data for forwarding to ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),". "),(0,a.kt)("p",null,"Additionally, we've worked on a very practically-oriented document targeted at end users of the new tracing system. It provides tested step-by-step instructions\nfor tunneling trace forwarding from a node to ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," via an easy to manage system service, which will match the production setup of most users."),(0,a.kt)("h1",{id:"infrastructure--analysis"},"Infrastructure & Analysis"),(0,a.kt)("h3",{id:"general"},"General"),(0,a.kt)("p",null,"Variance analysis as a full-fledged entity in our tooling has been merged. Not only is this type of analysis now part of our reporting pipeline - variance\nanalysis can be fed back and serve as an additional point of comparison."),(0,a.kt)("p",null,"Furthermore, we've created a profile family for the workbench that's specifically aimed at measuring and comparing tracing system configurations."),(0,a.kt)("h3",{id:"plutus-library"},"Plutus library"),(0,a.kt)("p",null,"We opened a PR containing a new package for benchmarking - an extendable library that holds all Plutus scripts we use in our benchmarking profiles.\nThis will enable us in the future to iteratively work on customizing any given script, and the way is called in the context of a specific profile.\nIt is a refinement of current affairs, where we have additional build inputs solely to generate a static script file tied to an external commit."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"The nomad backend is being specialized in three ways: using a podman driver locally, using nomad agents supporting nix installables, and using nomad cloud agents. This supports having a common surface independent of the actual backend driver being used. In addition, vault retrieval and management of cloud access credentials is\nbeing improved to minimize any friction for the backend user."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/47da279e.30478d94.js b/assets/js/47da279e.30478d94.js new file mode 100644 index 0000000000..d347273417 --- /dev/null +++ b/assets/js/47da279e.30478d94.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6236],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=u(r),m=a,h=c["".concat(p,".").concat(m)]||c[m]||s[m]||o;return r?n.createElement(h,i(i({ref:t},d),{},{components:r})):n.createElement(h,i({ref:t},d))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2023-06-23-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-06-23-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-23-sre.md",source:"@site/blog/2023-06-23-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-06-23T00:00:00.000Z",formattedDate:"June 23, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.98,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-06-23-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-06-23-network"},nextItem:{title:"Hydra Team Update",permalink:"/2023-06-16-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Ci-ops",id:"ci-ops",level:3},{value:"Ci-world",id:"ci-world",level:3},{value:"Devx-ci",id:"devx-ci",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3}],d={toc:u},c="wrapper";function s(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"A devx-ci cluster containing a Hydra build server and Linux build farm was stood up and is intended to replace Cicero functionality"),(0,a.kt)("li",{parentName:"ul"},"Cardano Sanchonet environment was stood up to test Conway era functionality"),(0,a.kt)("li",{parentName:"ul"},"Cardano-node nixos service was updated to support the latest p2p topology format and non-systemd socket activation use case"),(0,a.kt)("li",{parentName:"ul"},"Cardano-node 8.1.1 was deployed to preview, preprod and mainnet environments")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Update cardano-node nixos service for updated p2p topology and non-systemd socket activation: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5318"},"cardano-node-pull-5318"))),(0,a.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Updates required for node 8.1.1 nixos service: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/pull/414"},"cardano-ops-pull-414")),(0,a.kt)("li",{parentName:"ul"},"Work in progress continues on mixed legacy and p2p topology clusters in cardano-ops: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/tree/ops-local"},"cardano-ops-ops-local"),", ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/tree/mn-mixed-p2p"},"cardano-ops-mn-mixed-p2p"))),(0,a.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add Sanchonet environment: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/96"},"cardano-world-pull-96"))),(0,a.kt)("h3",{id:"ci-ops"},"Ci-ops"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add devx-ci cluster integration for legacy darwin ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-ops/compare/b158b17...ed875b9"},"ci-ops-compare"))),(0,a.kt)("h3",{id:"ci-world"},"Ci-world"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add devx-ci cluster integration for caching, monitoring during cicero to devx-ci transition: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-world/compare/840cdb6...b08c250"},"ci-world-compare"))),(0,a.kt)("h3",{id:"devx-ci"},"Devx-ci"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"A CI cluster with a hydra build server was stood up and is intended to replace usage of Cicero: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/devx-ci"},"devx-ci-repo"))),(0,a.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add Sanchonet environment: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/545"},"iohk-nix-pull-545"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/47e876cf.9410ab7a.js b/assets/js/47e876cf.9410ab7a.js new file mode 100644 index 0000000000..036440c987 --- /dev/null +++ b/assets/js/47e876cf.9410ab7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[12372],{18246:e=>{e.exports=JSON.parse('{"permalink":"/page/21","page":21,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/20","nextPage":"/page/22","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/485c7377.be0a86e6.js b/assets/js/485c7377.be0a86e6.js new file mode 100644 index 0000000000..415326c1e6 --- /dev/null +++ b/assets/js/485c7377.be0a86e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7322],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(r),h=a,d=u["".concat(l,".").concat(h)]||u[h]||m[h]||o;return r?n.createElement(d,i(i({ref:t},p),{},{components:r})):n.createElement(d,i({ref:t},p))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Open-Source Team",slug:"2022-10-31-open-source",authors:"coot",tags:["open-source"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2022-10-31-open-source",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-04-open-source.md",source:"@site/blog/2022-11-04-open-source.md",title:"Open-Source Team",description:"High Level Summary",date:"2022-11-04T00:00:00.000Z",formattedDate:"November 4, 2022",tags:[{label:"open-source",permalink:"/tags/open-source"}],readingTime:1.465,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Open-Source Team",slug:"2022-10-31-open-source",authors:"coot",tags:["open-source"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2022-11-04-mithril"},nextItem:{title:"Embedding Quality Workstream",permalink:"/2022-11-03-embedding-quality"}},l={authorsImageUrls:[void 0]},c=[{value:"High Level Summary",id:"high-level-summary",level:2},{value:"Detailed description",id:"detailed-description",level:2}],p={toc:c},u="wrapper";function m(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High Level Summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We've been working toward publishing ",(0,a.kt)("em",{parentName:"li"},"Cardano Backlog"),", currently its in\nreview by the IOG communication team."),(0,a.kt)("li",{parentName:"ul"},"We identified a number of libraries which can be published."),(0,a.kt)("li",{parentName:"ul"},"We setup and enhanced ",(0,a.kt)("a",{parentName:"li",href:"https://updates.cardano.intersectmbo.org"},"cardano-updates"),".")),(0,a.kt)("h2",{id:"detailed-description"},"Detailed description"),(0,a.kt)("p",null,"I am glad to announce that I was given the role of open-source advocate for\ncardano project. In last few weeks we were making steps towards publishing our\nbacklog. It's currently under review by the communication team, although most\nof the issues are already visible across various repositories."),(0,a.kt)("p",null,"The open-source initiatives have their own\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/60"},"project"),". It is set up\nto help us track our major open-source activities. Right now there are two\nwork streams:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"the work on ",(0,a.kt)("a",{parentName:"li",href:"https://input-output-hk.github.io/cardano-engineering-handbook/"},(0,a.kt)("em",{parentName:"a"},"Cardano Engineering Handbook")),";"),(0,a.kt)("li",{parentName:"ul"},"libraries to be release on ",(0,a.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/"},"Hackage")," or ",(0,a.kt)("a",{parentName:"li",href:"https://crates.io"},"crates.io"),".")),(0,a.kt)("p",null,"We identifies a number of libraries across all the teams which contribute to\n",(0,a.kt)("em",{parentName:"p"},"Cardano")," which we would like publish to publish, see the following\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/60/views/3"},"link"),". Arnauld Bailly recently published\n",(0,a.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/quickcheck-dynamic"},(0,a.kt)("inlineCode",{parentName:"a"},"quickcheck-dynamic")),"\nlibrary on Hackage. The networking team is slowly progressing towards\npublishing ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim"},"io-sim")," and related packages, checkout the progress\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/19/views/24"},"here"),"."),(0,a.kt)("p",null,"Thanks to Arnaud Bailly our ",(0,a.kt)("a",{parentName:"p",href:"https://updates.cardano.intersectmbo.org"},"Cardano Updates")," website has\na new look & feel! It's using ",(0,a.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"docusaurus.io"),"."),(0,a.kt)("p",null,"Christian Taylor carried recently a detailed analysis of our open-source\nrepositories. He collected many interesting metrics, which allows us to see\nwhere we need to improve as an open-source project to make the Cardano project\nand many smaller related libraries which we maintain be more open and available\nfor open-source contributors."),(0,a.kt)("p",null,"The graph below shows which documents the 55 most important Cardano\nrepositories are missing the most:\n",(0,a.kt)("img",{alt:"Documentation Adoption",src:r(59380).Z,width:"1493",height:"716"}),"\nYou can expect we will improve in these metrics in the coming weeks."))}m.isMDXComponent=!0},59380:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/doc-adoption-cd944582f02809777c58be53e13453c5.png"}}]); \ No newline at end of file diff --git a/assets/js/486d3992.2741e25f.js b/assets/js/486d3992.2741e25f.js new file mode 100644 index 0000000000..e72a5a4910 --- /dev/null +++ b/assets/js/486d3992.2741e25f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[87622],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(f,l(l({ref:t},m),{},{components:r})):n.createElement(f,l({ref:t},m))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-11-24-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-11-24-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-24-goedel.md",source:"@site/blog/2023-11-24-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-11-24T00:00:00.000Z",formattedDate:"November 24, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.365,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-11-24-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-11-29-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-11-24-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and working on a\nperformance modelling paper"),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"completing work on chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"proof sketch of conformance property of chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"onboarding new performance modelling intern")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"new content for JLAMP paper"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/492dc159.69e6a092.js b/assets/js/492dc159.69e6a092.js new file mode 100644 index 0000000000..81e7e22d40 --- /dev/null +++ b/assets/js/492dc159.69e6a092.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75748],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=u(r),c=a,h=d["".concat(p,".").concat(c)]||d[c]||m[c]||i;return r?n.createElement(h,o(o({ref:t},s),{},{components:r})):n.createElement(h,o({ref:t},s))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const i={title:"Developer Experience Update",slug:"2023-07-06-developer-experience",authors:"angerman",tags:["devx"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-07-06-developer-experience",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-06-developer-experience.md",source:"@site/blog/2023-07-06-developer-experience.md",title:"Developer Experience Update",description:"High level summary",date:"2023-07-06T00:00:00.000Z",formattedDate:"July 6, 2023",tags:[{label:"devx",permalink:"/tags/devx"}],readingTime:1.145,hasTruncateMarker:!1,authors:[{name:"Moritz Angermann",title:"Head of Developer Experience",url:"https://github.com/angerman",imageURL:"https://github.com/angerman.png",key:"angerman"}],frontMatter:{title:"Developer Experience Update",slug:"2023-07-06-developer-experience",authors:"angerman",tags:["devx"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-07-07-sre"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-07-04-db-sync"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"build support & maintainance",id:"build-support--maintainance",level:3},{value:"compiler upgrades",id:"compiler-upgrades",level:3},{value:"Hydra Tools",id:"hydra-tools",level:3},{value:"haskell.nix",id:"haskellnix",level:3},{value:"devx",id:"devx",level:3},{value:"upstream tooling",id:"upstream-tooling",level:3}],s={toc:u},d="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The Developer Experience team has been dealing with day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, CI migration from Cicero to Hydra, and Buildkite to GitHub Actions. iohk-nix, haskell.nix, and devx have seen improvements."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"build-support--maintainance"},"build support & maintainance"),(0,a.kt)("p",null,"The DevX team has helped troubleshoot a few CI issues, and focused on helping to migrate from Cicero to Hydra, as well as from Buildkite to GitHub Actions."),(0,a.kt)("h3",{id:"compiler-upgrades"},"compiler upgrades"),(0,a.kt)("p",null,"Compatibility with 9.6 has been continued and most of our libraries are not 9.6 compatible. Only a few are not, we hope to have this done by the end of the month. We've also started preliminarily adding GHC 9.8 to our infrastructure for early compiler regression tests."),(0,a.kt)("h3",{id:"hydra-tools"},"Hydra Tools"),(0,a.kt)("p",null,"Our repository, ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra-tools"},"input-output-hk/actions"),", has seen quite some improvements to facility the hydra <-> github integration."),(0,a.kt)("h3",{id:"haskellnix"},"haskell.nix"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/haskell.nix"},"Haskell.nix")," has been maintained and updated with the addition of preliminary GHC 9.8 support."),(0,a.kt)("h3",{id:"devx"},"devx"),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/devx"},"devx")," repository has seen significant improvements, including the addition of GitHub Codespaces, and DevContainers. Integrated with our ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/actions"},"actions/devx")," GitHub Actions, we have a consistent set of tooling for"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"nix develop shells"),(0,a.kt)("li",{parentName:"ul"},"GitHub CodeSpaces integration"),(0,a.kt)("li",{parentName:"ul"},"VSCode DevContainer support"),(0,a.kt)("li",{parentName:"ul"},"GitHub Actions integration")),(0,a.kt)("h3",{id:"upstream-tooling"},"upstream tooling"),(0,a.kt)("p",null,"Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4953deee.96090a62.js b/assets/js/4953deee.96090a62.js new file mode 100644 index 0000000000..e4170eef7a --- /dev/null +++ b/assets/js/4953deee.96090a62.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20306],{77511:e=>{e.exports=JSON.parse('{"permalink":"/tags/mithril/page/2","page":2,"postsPerPage":5,"totalPages":13,"totalCount":63,"previousPage":"/tags/mithril","nextPage":"/tags/mithril/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/496cb9ef.3e03069c.js b/assets/js/496cb9ef.3e03069c.js new file mode 100644 index 0000000000..8772688124 --- /dev/null +++ b/assets/js/496cb9ef.3e03069c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[60852],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,s(s({ref:t},u),{},{components:n})):r.createElement(f,s({ref:t},u))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-04-19-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-04-19-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-19-consensus.md",source:"@site/blog/2023-04-19-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-04-19T00:00:00.000Z",formattedDate:"April 19, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.77,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-04-19-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-04-20-node-cli-api"},nextItem:{title:"Performance & tracing update",permalink:"/2023-04-19-performance-and-tracing"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This week the consensus team continued working on the improved DB lock mechanism\nfor UTxO-HD, and modifications to the mempool benchmarks that this prototype\nrequires."),(0,a.kt)("p",null,"On the Genesis front we validated that the fragment size calculation in\n",(0,a.kt)("inlineCode",{parentName:"p"},"BlockFetch")," is a major performance sink for ChainSync Jumping. By removing it\nwe will get performance that is acceptably close to that of the baseline. We\nalso started investigating a performance fix that does not alter the existing\nbaseline behavior too much. In addition we reviewed our Genesis attack vector\ncalculations."),(0,a.kt)("p",null,"On the support front we released Consensus 0.4, and we are working on improving\nour release process, to support the Cardano-wide efforts in this area. We also\nperformed an analysis on the number of file descriptors that consensus use. This\ninformation can be used by the node operators to check if the number of file\ndescriptors they want to support are enough."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4972.a20ea76a.js b/assets/js/4972.a20ea76a.js new file mode 100644 index 0000000000..ee4342630e --- /dev/null +++ b/assets/js/4972.a20ea76a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4972],{4972:(e,t,a)=>{a.r(t),a.d(t,{default:()=>c});var n=a(67294),l=a(95999),o=a(1944),r=a(93285);function c(){return n.createElement(n.Fragment,null,n.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),n.createElement(r.Z,null,n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/49910c96.b8b781b1.js b/assets/js/49910c96.b8b781b1.js new file mode 100644 index 0000000000..15ce72a576 --- /dev/null +++ b/assets/js/49910c96.b8b781b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[39313],{92990:e=>{e.exports=JSON.parse('{"permalink":"/page/88","page":88,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/87","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/4994a283.51d09764.js b/assets/js/4994a283.51d09764.js new file mode 100644 index 0000000000..bc90a3caf1 --- /dev/null +++ b/assets/js/4994a283.51d09764.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43484],{3905:(e,t,i)=>{i.d(t,{Zo:()=>m,kt:()=>d});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function l(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),i=t;return e&&(i="function"==typeof e?e(t):l(l({},t),e)),i},m=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),h=p(i),c=n,d=h["".concat(s,".").concat(c)]||h[c]||u[c]||a;return i?r.createElement(d,l(l({ref:t},m),{},{components:i})):r.createElement(d,l({ref:t},m))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,l=new Array(a);l[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[h]="string"==typeof e?e:n,l[1]=o;for(var p=2;p{i.r(t),i.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2024-01-24-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2024-01-24-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-24-mithril.md",source:"@site/blog/2024-01-24-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-01-24T00:00:00.000Z",formattedDate:"January 24, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.505,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-01-24-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-01-24-consensus"},nextItem:{title:"Network Team Update",permalink:"/2024-01-22-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],m={toc:p},h="wrapper";function u(e){let{components:t,...i}=e;return(0,n.kt)(h,(0,r.Z)({},m,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team released the initial version of the ",(0,n.kt)("a",{parentName:"p",href:"https://www.npmjs.com/package/@mithril-dev/mithril-client-wasm"},"Mithril client NPM package"),", enabling developers to integrate core Mithril features into their web applications running in a browser. They also released a new distribution, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2403.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2403.1")),", which includes support for Cardano node version ",(0,n.kt)("inlineCode",{parentName:"p"},"8.7.3"),", a new chain observer based on the ",(0,n.kt)("a",{parentName:"p",href:"https://crates.io/crates/pallas"},"Pallas")," library, along with bug fixes and performance improvements."),(0,n.kt)("p",null,"The team kept implementing a new entity type for certifying the Cardano transactions set in Mithril networks and made good progress on retrieving transactions and combining them into a Mithril protocol message. Additionally, they finished implementing a mock aggregator and using it in the browser tests for the Mithril client in WASM."),(0,n.kt)("p",null,"Finally, they worked on enhancing node communications between Mithril and Cardano and continued working on threat modeling and risk analysis for P2P networking."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Release of the ",(0,n.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@mithril-dev/mithril-client-wasm"},(0,n.kt)("inlineCode",{parentName:"a"},"mithril-client npm package"))," library crate"),(0,n.kt)("li",{parentName:"ul"},"Publication of a ",(0,n.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/01/23/mithril-client-npm-package-released"},"dev blog post")," about the released Mithril client npm package"),(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2403.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2403.1"))),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Gather transactions from immutable files and store them in the database")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1435"},"#1435")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Implement browser tests with fake aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1407"},"#1407")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement a fake standalone aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1397"},"#1397")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Compute message to sign for ",(0,n.kt)("inlineCode",{parentName:"strong"},"CardanoTransactions"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1436"},"#1436")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance ImmutableFile list computation resilience")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1450"},"#1450")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Add WASM client step in Mithril Client multi-platform test")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1408"},"#1408")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a test network on ",(0,n.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Add warn missing docs in mithril client cli")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1439"},"#1439"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/49bee9db.bea3fa8f.js b/assets/js/49bee9db.bea3fa8f.js new file mode 100644 index 0000000000..0bd07305a4 --- /dev/null +++ b/assets/js/49bee9db.bea3fa8f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[71690],{72768:a=>{a.exports=JSON.parse('{"label":"network","permalink":"/quarterly/tags/network","allTagsPath":"/quarterly/tags","count":4}')}}]); \ No newline at end of file diff --git a/assets/js/49d642c9.d2c566bb.js b/assets/js/49d642c9.d2c566bb.js new file mode 100644 index 0000000000..6f4c5f34f2 --- /dev/null +++ b/assets/js/49d642c9.d2c566bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80575],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),m=o,h=p["".concat(l,".").concat(m)]||p[m]||d[m]||a;return n?r.createElement(h,s(s({ref:t},u),{},{components:n})):r.createElement(h,s({ref:t},u))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,s=new Array(a);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var r=n(87462),o=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-11-15-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-11-15-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-15-consensus.md",source:"@site/blog/2023-11-15-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-11-15T00:00:00.000Z",formattedDate:"November 15, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.34,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-11-15-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-11-16-network"},nextItem:{title:"Mithril Team Update",permalink:"/2023-11-15-mithril"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"Over the last two weeks, we managed to run a UTxO-HD capable node in ",(0,o.kt)("em",{parentName:"p"},"legacy mode"),", which maintains the baseline memory usage while keeping all the ledger state in memory (as the current node does).\nThis ",(0,o.kt)("em",{parentName:"p"},"legacy mode")," could provide an alternative for releasing a UTxO-HD capable node where people can choose whether to store the large part of the UTxO set on disk or not.\nHowever, legacy mode involves code duplication, requires several weeks of work before it is production ready (more integration and testing). Moreover, we will not release UTxO-HD before Conway to avoid the risk of delaying the latter.\nOn the other hand, to integrate the LSM-tree backend for UTxO-HD we need to redesign the Consensus storage layer, and this new design might enable us to implement an alternative in-memory backing store that will have a very similar performance and resource requirements as the current Cardano node.\nTherefore, during the coming months we will focus our efforts on the redesign of the storage layer and the LSM-tree backend."),(0,o.kt)("p",null,"On the Genesis front, we reviewed the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/434"},"peer simulator")," for Genesis tests, which was implemented by Tweag and was signed-off by the Consensus team."),(0,o.kt)("p",null,"We also continued our work on improving the handling of blocks from the future. We presented possible approaches to handling blocks from the future in the Chief Scientist Meeting at IOG, which was very well-received. The discussion with the IOG scientists touched upon the relationship of this approach to Ouroboros Chronos."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/jasagredo"},"Javier Sagredo")," continues his cycle as release engineer, and he is working on version 8.7 of Cardano node."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/49d88be4.b0e97673.js b/assets/js/49d88be4.b0e97673.js new file mode 100644 index 0000000000..22ce029458 --- /dev/null +++ b/assets/js/49d88be4.b0e97673.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73343],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=s(r),h=n,m=c["".concat(u,".").concat(h)]||c[h]||d[h]||o;return r?a.createElement(m,i(i({ref:t},p),{},{components:r})):a.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-10-13-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-10-13-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-13-hydra.md",source:"@site/blog/2023-10-13-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-10-13T00:00:00.000Z",formattedDate:"October 13, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.745,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-10-13-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-10-13-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-10-13-ledger"}},u={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:s},c="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team's primary focus was on finalizing the new network resilience layer. This involved adding persistency to ensure data integrity."),(0,n.kt)("p",null,"They also completed the exploration of potentially moving the Plutus validator scripts to Aiken."),(0,n.kt)("p",null,"Additionally, the team dedicated some attention to our TUI by upgrading the Brick framework. They also undertook a comprehensive refactoring of the project's structure and addressed various bug fixes. These efforts are aimed at enhancing the overall user experience of our project."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Network Resilience Persistence (#1101)","[https://github.com/input-output-hk/hydra/pull/1101]","."),(0,n.kt)("li",{parentName:"ul"},"Upgrade brick on TUI (#1103)","[https://github.com/input-output-hk/hydra/pull/1103]","."),(0,n.kt)("li",{parentName:"ul"},"Aiken commit validator translation (#1072)","[https://github.com/input-output-hk/hydra/pull/1072]","."),(0,n.kt)("li",{parentName:"ul"},"Fixed some bugs in our TUI client.")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Prepare presentation and workshop for Cardano Summit."),(0,n.kt)("li",{parentName:"ul"},"Work on hydra-poll dApp for Cardano summit."),(0,n.kt)("li",{parentName:"ul"},"Start the work on packaging hydra-node and related services.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4a0a5eb3.f8bbda81.js b/assets/js/4a0a5eb3.f8bbda81.js new file mode 100644 index 0000000000..a3d1b6881c --- /dev/null +++ b/assets/js/4a0a5eb3.f8bbda81.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[99572],{16964:s=>{s.exports=JSON.parse('{"label":"system-test","permalink":"/tags/system-test","allTagsPath":"/tags","count":5}')}}]); \ No newline at end of file diff --git a/assets/js/4a8836ad.58a58e79.js b/assets/js/4a8836ad.58a58e79.js new file mode 100644 index 0000000000..dd3ad6d3a2 --- /dev/null +++ b/assets/js/4a8836ad.58a58e79.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4823],{57254:a=>{a.exports=JSON.parse('{"label":"ledger","permalink":"/tags/ledger","allTagsPath":"/tags","count":44}')}}]); \ No newline at end of file diff --git a/assets/js/4aaac366.8843454f.js b/assets/js/4aaac366.8843454f.js new file mode 100644 index 0000000000..870a23e87c --- /dev/null +++ b/assets/js/4aaac366.8843454f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97535],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,f=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Performance & tracing update",slug:"2022-11-30-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-30-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-30-performance-and-tracing.md",source:"@site/blog/2022-11-30-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2022-11-30T00:00:00.000Z",formattedDate:"November 30, 2022",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.95,hasTruncateMarker:!1,authors:[{name:"Serge Kosyrev",title:"Performance and Tracing Team Lead",url:"https://github.com/deepfire",imageURL:"https://github.com/deepfire.png",key:"deepfire"}],frontMatter:{title:"Performance & tracing update",slug:"2022-11-30-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-11-30-node-cli-api"},nextItem:{title:"Network Team Update",permalink:"/2022-11-28-network"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Performance",id:"performance",level:2},{value:"Tracing",id:"tracing",level:2},{value:"Infrastructure",id:"infrastructure",level:2}],p={toc:s},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release."),(0,a.kt)("li",{parentName:"ol"},"SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench."),(0,a.kt)("li",{parentName:"ol"},"The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks."),(0,a.kt)("li",{parentName:"ol"},"Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started."),(0,a.kt)("li",{parentName:"ol"},"Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.")),(0,a.kt)("h2",{id:"performance"},"Performance"),(0,a.kt)("p",null,"We have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don't see any significant performance changes. The component bumps are therefore clear for release."),(0,a.kt)("h2",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"For the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them.\nThe idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time."),(0,a.kt)("p",null,"To support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics."),(0,a.kt)("h2",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"Generation support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation."),(0,a.kt)("p",null,"In addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model."),(0,a.kt)("p",null,"The intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged.\nWe are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration."),(0,a.kt)("p",null,"We continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability."),(0,a.kt)("p",null,"We are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP."),(0,a.kt)("p",null,"As usual, a number of smaller workbench, data analysis & reporting improvements have been made."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4ab012ff.f4d1e40c.js b/assets/js/4ab012ff.f4d1e40c.js new file mode 100644 index 0000000000..149bf391fd --- /dev/null +++ b/assets/js/4ab012ff.f4d1e40c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7555],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),h=r,d=p["".concat(l,".").concat(h)]||p[h]||m[h]||o;return n?a.createElement(d,s(s({ref:t},u),{},{components:n})):a.createElement(d,s({ref:t},u))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=h;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-06-28-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-06-28-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-28-consensus.md",source:"@site/blog/2023-06-28-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-06-28T00:00:00.000Z",formattedDate:"June 28, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.85,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-06-28-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-06-29-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-06-28-performance-and-tracing"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Genesis",id:"genesis",level:3},{value:"UTxO-HD",id:"utxo-hd",level:3}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"During the past two weeks the team working on the Genesis implementation continued to engage with the researchers, which resulted in various simplifications of the correctness argument for the historical Genesis window. They also decided on an approach for a syncing node to decide that it is (no longer) caught up. This functionality was requested by the networking team. "),(0,r.kt)("p",null,"The team working on the UTxO-HD implementation ran ad-hoc benchmarks that showed performance issues, which are being investigated. They also merged several improvements required for the first UTxO-HD release, and added a package for easing integration with other downstream components."),(0,r.kt)("p",null,"Regarding our support activities, we integrated the latest Ledger changes into Consensus in preparation for release 8.2 of node. "),(0,r.kt)("h3",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We continued to engage with the researchers on our probabilistic model for historical Genesis window, resulting in various simplifications that make the correctness argument more clear while not being excessively conservative.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/101#issuecomment-1607767722"},"decided on an approach")," of how to implement functionality requested by the Networking team; namely, how a syncing node can safely conclude that it is (no longer) caught up. Certain parameters are still subject to discussion with the researchers, and we have still have to agree on a concrete API for this functionality with the Networking team."))),(0,r.kt)("h3",{id:"utxo-hd"},"UTxO-HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We merged the last of the PRs that were part of UTxO-HD improvements for version ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/149"},"0.1"),": expose UTxO-HD configuration options in the node, refactor ledger tables, and expose a method of computing the UTxO set size."),(0,r.kt)("li",{parentName:"ul"},"We ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/87"},"added"),' a new "legacy" cardano block in a new ',(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus-cardano-legacy-block")," package that should ease the transition for some downstream packages to UTxO-HD, like ",(0,r.kt)("inlineCode",{parentName:"li"},"db-sync"),". This is really only useful for downstream packages that use the parts of consensus that don't involve the storage components, in which case we can largely ignore ledger tables. Ignoring ledger tables could also make functionality like block (re-)application more performant for the legacy Cardano block as compared to the actual (UTxO-HD compatible) Cardano block."),(0,r.kt)("li",{parentName:"ul"},"We performed ad-hoc benchmarks of the UTxO-HD implementation, observing a regression in sync speed in the LMDB implementation as well as a regression in memory usage on the in-memory implementation. We are investigating this.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4ac33b1c.9d5e4ed9.js b/assets/js/4ac33b1c.9d5e4ed9.js new file mode 100644 index 0000000000..6d30d7bd64 --- /dev/null +++ b/assets/js/4ac33b1c.9d5e4ed9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[37592],{87599:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/8","page":8,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/7","nextPage":"/tags/hydra/page/9","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/4b1460f8.2450872f.js b/assets/js/4b1460f8.2450872f.js new file mode 100644 index 0000000000..bc37d2a586 --- /dev/null +++ b/assets/js/4b1460f8.2450872f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17605],{45063:e=>{e.exports=JSON.parse('{"permalink":"/page/20","page":20,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/19","nextPage":"/page/21","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/4b2a148e.c2ee86a0.js b/assets/js/4b2a148e.c2ee86a0.js new file mode 100644 index 0000000000..2bdc138fce --- /dev/null +++ b/assets/js/4b2a148e.c2ee86a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58388],{57920:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/11","page":11,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/10","nextPage":"/tags/hydra/page/12","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/4b62dc40.3ba7341f.js b/assets/js/4b62dc40.3ba7341f.js new file mode 100644 index 0000000000..64d6d982e9 --- /dev/null +++ b/assets/js/4b62dc40.3ba7341f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[10335],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,h=p["".concat(s,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,i(i({ref:t},u),{},{components:n})):r.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-02-21-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-02-21-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-21-db-sync.md",source:"@site/blog/2023-02-21-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-02-21T00:00:00.000Z",formattedDate:"February 21, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.75,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-02-21-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-02-22-node-cli-api"},nextItem:{title:"Crypto Team Update",permalink:"/2023-02-17-crypto"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The db-sync team created a new tag ",(0,a.kt)("inlineCode",{parentName:"p"},"13.1.0.2")," which is ready to release.\nWe also investigated and had the first working UTxO-HD integration which is one\nof the potential future risks for db-sync."),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Integrated the UTxO-HD feauture branch in ",(0,a.kt)("inlineCode",{parentName:"li"},"kderme/utxo-hd-1"),". This doesn't\nuse the full on disk storage but keeps things in memory and the plan is to keep\nit this way for the first iteration. The integration still has some performance\nissues which we investigate"),(0,a.kt)("li",{parentName:"ul"},"Created tag ",(0,a.kt)("inlineCode",{parentName:"li"},"13.1.0.2")," which upgrades the dependencies of db-sync"),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue related to errors appearing in SMASH\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1353"},"#1353")),(0,a.kt)("li",{parentName:"ul"},"Continued with ghc-9.2 integration\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1339"},"#1339")),(0,a.kt)("li",{parentName:"ul"},"Worked on an new fixing procedure for\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/issues/1348"},"#1348"),".\nWe try to make these procedures work also on older schema version, without the\nneed to migrate to newer schema, which can be very useful for fixing existing\nsnapshots.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4b90674f.33e9db7a.js b/assets/js/4b90674f.33e9db7a.js new file mode 100644 index 0000000000..144c0afd4a --- /dev/null +++ b/assets/js/4b90674f.33e9db7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92308],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),m=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=m(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=m(r),u=a,f=c["".concat(p,".").concat(u)]||c[u]||d[u]||o;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:a,l[1]=i;for(var m=2;m{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>m});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-09-01-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-09-01-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-goedel.md",source:"@site/blog/2023-09-01-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-09-01T00:00:00.000Z",formattedDate:"September 1, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.43,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-09-01-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-09-06-consensus"},nextItem:{title:"Hydra Team Update",permalink:"/2023-09-01-hydra"}},p={authorsImageUrls:[void 0]},m=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],s={toc:m},c="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and also further\ndeveloping the performance modelling prototype."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"finalising a presenting performance analysis internship work to the\nformal methods team")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"developed a new Isabelle mini-protocol framework and examples")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"planning an extended version of the ICE DeltaQ paper")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"working on algebraic rules for properisation of any-to-finish"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4b996e44.1db71a05.js b/assets/js/4b996e44.1db71a05.js new file mode 100644 index 0000000000..43042960fe --- /dev/null +++ b/assets/js/4b996e44.1db71a05.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7897],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),s=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=s(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),c=s(n),h=r,d=c["".concat(l,".").concat(h)]||c[h]||m[h]||a;return n?o.createElement(d,i(i({ref:t},u),{},{components:n})):o.createElement(d,i({ref:t},u))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=h;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[c]="string"==typeof e?e:r,i[1]=p;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>p,toc:()=>s});var o=n(87462),r=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-06-23-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2023-06-23-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-23-network.md",source:"@site/blog/2023-06-23-network.md",title:"Network Team Update",description:"Network Update",date:"2023-06-23T00:00:00.000Z",formattedDate:"June 23, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.7,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-06-23-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-06-23-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-06-23-sre"}},l={authorsImageUrls:[void 0]},s=[{value:"Network Update",id:"network-update",level:2},{value:"Key contributions",id:"key-contributions",level:3},{value:"Other smaller changes",id:"other-smaller-changes",level:3}],u={toc:s},c="wrapper";function m(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"network-update"},"Network Update"),(0,r.kt)("h3",{id:"key-contributions"},"Key contributions"),(0,r.kt)("p",null,"We held a series of session to review the implementation of big ledger peers\n(eclipse evasion). See ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4462"},"#4462"),"."),(0,r.kt)("p",null,"We get a request from a 3rd party to clarify an inconsistency between CDDL spec\nand protocol implementation. We worked out a nice solution which takes\nadvantage of the ",(0,r.kt)("inlineCode",{parentName:"p"},"any")," notion available in ",(0,r.kt)("inlineCode",{parentName:"p"},"CDDL"),". On the Haskell side we\nprovide ",(0,r.kt)("inlineCode",{parentName:"p"},"Any")," type which gen generate almost any CBOR term (some are excluded\nonly because they are not decoded back to the same form, and we relay on that\nproperty). See ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4580"},"#4580"),"."),(0,r.kt)("p",null,"We fixed a bunch of problems of the ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," command. It also now has\na limited support of ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," mini-protocol (the ",(0,r.kt)("inlineCode",{parentName:"p"},"-c")," option is\nignored, as it cannot be supported by ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," protocol). Note that\nthe format of messages has changed, timestamps are printed in ISO8601 format.\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4601"},"#4601"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5326"},"#5326"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5313"},"#5313"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30"},"#30")),(0,r.kt)("p",null,"In order to provide a new flag in the topology file which enables ledger peers\nwhen the chain is close to the tip, we continued to work on ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4530"},"#4530"),". This is\ncurrently in review, the consensus team will need to provide us with the new\napi. This feature is useful for two reasons: makes it easier to maintain\na topology file, it will also limit the traffic on public roots generated by\nfor example full node wallets and distribute it to ledger peers."),(0,r.kt)("p",null,"We also continued to work on a blog post which describes the journey of design\n& implementation of the dynamic P2P network layer. Too be announced soon :). "),(0,r.kt)("h3",{id:"other-smaller-changes"},"Other smaller changes"),(0,r.kt)("p",null,"We limit the concurrency of resolving dns names. Up to 8 root peers or ledger\npeers DNS names are resolved concurrently, and at most 2 local root peer DNS\nnames. See ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4596"},"#4596"),"."),(0,r.kt)("p",null,"We fixed handshake query timeout in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4603"},"#4603"),"."),(0,r.kt)("p",null,"We renamed one of the block-fetch decision constructors as requested by the\nconsensus team, see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4608"},"#4608"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4be9a3a6.8024d216.js b/assets/js/4be9a3a6.8024d216.js new file mode 100644 index 0000000000..ed610434c0 --- /dev/null +++ b/assets/js/4be9a3a6.8024d216.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25480],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=p(r),h=n,m=d["".concat(u,".").concat(h)]||d[h]||c[h]||l;return r?a.createElement(m,o(o({ref:t},s),{},{components:r})):a.createElement(m,o({ref:t},s))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=h;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:n,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-03-03-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-03-03-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-03-ledger.md",source:"@site/blog/2023-03-03-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-03-03T00:00:00.000Z",formattedDate:"March 3, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.57,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-03-03-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-03-03-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-03-02-network"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway rules",id:"conway-rules",level:3},{value:"Constraint based generators",id:"constraint-based-generators",level:3},{value:"Preparing a release, now with proper versioning",id:"preparing-a-release-now-with-proper-versioning",level:3},{value:"Technical debt",id:"technical-debt",level:3}],s={toc:p},d="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"We have focused the last two weeks on CIP-1694, integration of the last several months of ledger\nwork into consensus and node, and testing infrastrutcture that we will use in the conway ledger era."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway-rules"},"Conway rules"),(0,n.kt)("p",null,"We made a major update to the conway era so that the implementation is now in sync with the spec\nwith respect to the ratification and enactment logic."),(0,n.kt)("p",null,"See the notes in ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3291"},"pull-3291")," for more details."),(0,n.kt)("h3",{id:"constraint-based-generators"},"Constraint based generators"),(0,n.kt)("p",null,"This week we hit a major milestone in our efforts to build out better property based testing\nsupport for the main ledger properties.\nThe new constraint based generators can now generate full ledger states with what is probably\nvery close to the real constraints (if anything, it is under constrained).\nNext we will work on generating a transaction in the context of a ledger state, which would allow\nus to actually start using these generators for real tests."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3219"},"pull-3219"),"."),(0,n.kt)("h3",{id:"preparing-a-release-now-with-proper-versioning"},"Preparing a release, now with proper versioning"),(0,n.kt)("p",null,"After quite some time, we are ready to release a version of ledger that will work with a new\nversion of consensus, using CHaPs."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3308"},"pull-3308"),"."),(0,n.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We cleaned up the redeemer serialization code (to prevent future mistakes). See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3269"},"pull-3269"),"."),(0,n.kt)("li",{parentName:"ul"},"We added a note to the Alonzo spec, specifying that the transaction inputs are\nlexicographically ordered in the Plutus script context. See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3306"},"pull-3306"),"."),(0,n.kt)("li",{parentName:"ul"},"We fixed a problem with the address deserialiazation\n(we mistakenly fixed a bug in the Babbage era which cannot be fixed until Conway).\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3307"},"pull-3307"),"."),(0,n.kt)("li",{parentName:"ul"},"We fixed a problem with our nix build. See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3311"},"pull-3311"),"."),(0,n.kt)("li",{parentName:"ul"},"We fixed a problem with our ",(0,n.kt)("inlineCode",{parentName:"li"},"NoThunks")," tests. See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3310"},"pull-3310"),"."),(0,n.kt)("li",{parentName:"ul"},"We improved our nightly tests. See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3316"},"pull-3316"),".")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4bed0e48.9dfe303b.js b/assets/js/4bed0e48.9dfe303b.js new file mode 100644 index 0000000000..d05e77ca68 --- /dev/null +++ b/assets/js/4bed0e48.9dfe303b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[34631],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var a=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,i=e.mdxType,n=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=s(r),d=i,g=c["".concat(u,".").concat(d)]||c[d]||m[d]||n;return r?a.createElement(g,o(o({ref:t},p),{},{components:r})):a.createElement(g,o({ref:t},p))}));function g(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=r.length,o=new Array(n);o[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:i,o[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>l,toc:()=>s});var a=r(87462),i=(r(67294),r(3905));const n={title:"Crypto Team Update",slug:"2023-02-17-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-02-17-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-crypto.md",source:"@site/blog/2023-02-17-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-02-17T00:00:00.000Z",formattedDate:"February 17, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.43,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-02-17-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-02-21-db-sync"},nextItem:{title:"Goedel Team Update",permalink:"/2023-02-17-goedel"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"MuSig2",id:"musig2",level:3}],p={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(c,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,i.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril's core library (decided to add audit of KES). Design proposal for viable registration."),(0,i.kt)("li",{parentName:"ul"},"cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus."),(0,i.kt)("li",{parentName:"ul"},"KES agent: using snockets and making things testable in IOSim"),(0,i.kt)("li",{parentName:"ul"},"MuSig2: started implementation in rust.")),(0,i.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,i.kt)("h3",{id:"mithril"},"Mithril"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Transmute helpers merged ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/722"},"PR#722")),(0,i.kt)("li",{parentName:"ul"},"We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope. "),(0,i.kt)("li",{parentName:"ul"},"We are working in a modification of KES to require caller to allocate the secret key buffer."),(0,i.kt)("li",{parentName:"ul"},"Proposed a solution for signer registration of ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/wiki/Mithril-registration-procedure#cost"},"Mithril"),".")),(0,i.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/plutus/tree/kwxm/BLS12_381/prototype/plutus-benchmark/bls-benchmarks"},"proof"),".",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Results are promising, with using only 23% of the execution budget to verify a realistic proof. "),(0,i.kt)("li",{parentName:"ul"},"Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril."))),(0,i.kt)("li",{parentName:"ul"},"KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this."),(0,i.kt)("li",{parentName:"ul"},"Conversion finally merged ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/344"},"PR#344"),".")),(0,i.kt)("h3",{id:"kes-agent"},"KES agent"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation"),(0,i.kt)("li",{parentName:"ul"},"Figuring out how to go from fake file descriptor to write the raw bytes")),(0,i.kt)("h3",{id:"musig2"},"MuSig2"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4c4444c5.71417a58.js b/assets/js/4c4444c5.71417a58.js new file mode 100644 index 0000000000..e4debd09e2 --- /dev/null +++ b/assets/js/4c4444c5.71417a58.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[76438],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(a),m=n,h=u["".concat(c,".").concat(m)]||u[m]||d[m]||l;return a?r.createElement(h,o(o({ref:t},s),{},{components:a})):r.createElement(h,o({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:n,o[1]=i;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-02-29-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",i={permalink:"/2024-02-29-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-29-node-cli-api.md",source:"@site/blog/2024-02-29-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-02-29T00:00:00.000Z",formattedDate:"February 29, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.645,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-02-29-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-03-01-sre"},nextItem:{title:"Ledger Team Update",permalink:"/2024-02-28-ledger"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-02-16---2024-02-29"},"2024-02-16 - 2024-02-29"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-cli: Release cardano-cli-8.20.3.0; Integrate with most recent ouroboros network, consensus and api. Enhancements to various queries. Continue working on implementing tests for Conway era. ")),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/626"},"Release cardano-cli-8.20.3.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/622"},"Release 8.20.2.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/620"},"Add missing newlines to ",(0,n.kt)("inlineCode",{parentName:"a"},"cardano-cli query utxo")," output")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/617"},"query stake-pools: add --output-[json,text] flag to control format of the output")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/615"},"Integrate with most recent network, consensus and api")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/613"},"Bump hedgehog-extras to 0.6.1.0"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/465"},"Release cardano-api-8.39.2.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/463"},"Release cardano-api 8.39.1.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/460"},"Release 8.39.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/459"},"Integrates with most recent network, consensus and api"))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5685"},"Plutus v3 conway simple spending, minting and certifying script tests")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5681"},"Upgrade to hedgehog-extras 0.6.1.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5680"},"blst version upgrade and CHaP bump"))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4c4f8ee1.421e2ad7.js b/assets/js/4c4f8ee1.421e2ad7.js new file mode 100644 index 0000000000..de84568141 --- /dev/null +++ b/assets/js/4c4f8ee1.421e2ad7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80113],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(a),s=r,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,i(i({ref:t},c),{},{components:a})):n.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-10-04-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-10-04-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-04-node-cli-api.md",source:"@site/blog/2022-10-04-node-cli-api.md",title:"Node API & CLI Team Update",description:"Node-Api-Cli Update",date:"2022-10-04T00:00:00.000Z",formattedDate:"October 4, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.98,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-10-04-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"DB Sync Team Update",permalink:"/2022-10-04-db-sync"},nextItem:{title:"Ledger Team Update",permalink:"/2022-09-30-ledger"}},p={authorsImageUrls:[void 0]},u=[{value:"Node-Api-Cli Update",id:"node-api-cli-update",level:2},{value:"2022-10-04 - 2022-10-18",id:"2022-10-04---2022-10-18",level:2},{value:"Executive Summary",id:"executive-summary",level:3},{value:"Completed",id:"completed",level:3},{value:"cardano-cli",id:"cardano-cli",level:4},{value:"cardano-api",id:"cardano-api",level:4},{value:"cardano-node",id:"cardano-node",level:4},{value:"In Progress",id:"in-progress",level:3},{value:"cardano-cli",id:"cardano-cli-1",level:4},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"node-api-cli-update"},"Node-Api-Cli Update"),(0,r.kt)("h2",{id:"2022-10-04---2022-10-18"},"2022-10-04 - 2022-10-18"),(0,r.kt)("h3",{id:"executive-summary"},"Executive Summary"),(0,r.kt)("p",null,"The majority of the team's time was spent between getting ",(0,r.kt)("inlineCode",{parentName:"p"},"1.34.4")," ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli"),"."),(0,r.kt)("h3",{id:"completed"},"Completed"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4504"},"GHC 9.2.4 preparations"))),(0,r.kt)("h4",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[Serenity]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4491"},"Separate IO from txBuild and txBuildRaw functions"))),(0,r.kt)("h4",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4501"},"TxWitness text envelope format does not roundtrip in Shelley era"))),(0,r.kt)("h4",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4526"},"Fix MacOS GHA CI"))),(0,r.kt)("h3",{id:"in-progress"},"In Progress"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4508"},"Release 1.34.4"))),(0,r.kt)("h4",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4538"},"Fix query era mismatch bug in transaction build command")),(0,r.kt)("li",{parentName:"ul"},"[Serenity]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4516"},"Condense Read and Validation modules in cardano-cli")),(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4276"},"Add tx-mempool command to CLI"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4482"},"Return Lovelace for calculateMinimumUTxO")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4c8419de.01102dd7.js b/assets/js/4c8419de.01102dd7.js new file mode 100644 index 0000000000..c0ece7002e --- /dev/null +++ b/assets/js/4c8419de.01102dd7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2091],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=i.createContext({}),s=function(e){var t=i.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},h=function(e){var t=s(e.components);return i.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),m=s(r),c=n,d=m["".concat(p,".").concat(c)]||m[c]||u[c]||a;return r?i.createElement(d,o(o({ref:t},h),{},{components:r})):i.createElement(d,o({ref:t},h))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-12-13-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-12-13-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-13-mithril.md",source:"@site/blog/2023-12-13-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-12-13T00:00:00.000Z",formattedDate:"December 13, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.095,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-12-13-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-12-15-hydra"},nextItem:{title:"Performance & Tracing Update",permalink:"/2023-12-11-performance-and-tracing"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],h={toc:s},m="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team completed the adaptation of the Mithril client library for WASM compilation, providing a JavaScript API for it. They also completed the proof of concept to demonstrate that a subset of Cardano transactions is part of the entire transactions set. The refactoring of the Mithril client CLI with the Mithril client library was also finalized. Additionally, the team kept working on the threat modeling and risk analysis for P2P networking, along with progressing in the implementation of a testing Mithril network for SanchoNet."),(0,n.kt)("p",null,"Finally, they started implementing an expiration mechanism for the open messages in the aggregator, and they completed the upgrade of Rust dependencies with breaking changes."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Implement ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," WASM library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1336"},"#1336")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Certify Cardano UTXO/transactions set PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1393"},"#1393")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Refactor ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client-cli")," with ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1335"},"#1335")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement ",(0,n.kt)("inlineCode",{parentName:"strong"},"open_message")," timeout in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1387"},"#1387")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance machine readable logs in client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1234"},"#1234")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a test network on ",(0,n.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Upgrade breaking changes crates")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1357"},"#1357")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4ce06e64.1a1dd725.js b/assets/js/4ce06e64.1a1dd725.js new file mode 100644 index 0000000000..16f3c3144a --- /dev/null +++ b/assets/js/4ce06e64.1a1dd725.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46318],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>u});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),h=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=h(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=h(a),m=n,u=p["".concat(s,".").concat(m)]||p[m]||d[m]||i;return a?r.createElement(u,o(o({ref:t},c),{},{components:a})):r.createElement(u,o({ref:t},c))}));function u(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var h=2;h{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-01-27-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-27-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-27-hydra.md",source:"@site/blog/2023-01-27-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-01-27T00:00:00.000Z",formattedDate:"January 27, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.945,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-01-27-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-02-02-ledger"},nextItem:{title:"Mithril Team Update",permalink:"/2023-01-26-mithril"}},s={authorsImageUrls:[void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],c={toc:h},p="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team had a monthly review meeting with their stakeholders,\ncontributors and interested people from the community. The monthly repot for\n",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/monthly/2023-01"},"January 2023")," is a digest\nof the things presented and also includes a summary of the meeting. The Hydra\nspecification was getting discussed and the team is incorporating suggested\nchanges of reviewers. Last but not least, they compute and publish script\ninformation on every PR and also on the\n",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/benchmarks/transaction-cost/#script-summary"},"website"),"\nnow."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Had the monthly review meeting with a broader audience"),(0,n.kt)("li",{parentName:"ul"},"Published the monthly report for ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-01"},"January 2023")),(0,n.kt)("li",{parentName:"ul"},"Reviewed the spec and discussed individual aborts with researchers"),(0,n.kt)("li",{parentName:"ul"},"Compute and publish script information along benchmarks on every PR and ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/benchmarks/transaction-cost/#script-summary"},"website"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Add rollback section to Hydra spec, update pictures and publish it as part of repository"),(0,n.kt)("li",{parentName:"ul"},"Discuss bigger spec findings (full minting policy, individual aborts, split fanout) as change/pull requests on the spec in the repository."),(0,n.kt)("li",{parentName:"ul"},"Groom & plan actions required for a maintainable Head explorer + break down ","\u201c","align gaps","\u201d"," feature.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4d3eb7e7.b570ba51.js b/assets/js/4d3eb7e7.b570ba51.js new file mode 100644 index 0000000000..b5b50e9e16 --- /dev/null +++ b/assets/js/4d3eb7e7.b570ba51.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64827],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=c(n),d=a,f=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return n?r.createElement(f,i(i({ref:t},s),{},{components:n})):r.createElement(f,i({ref:t},s))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Goedel Team Update",slug:"2023-07-07-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-07-07-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-07-goedel.md",source:"@site/blog/2023-07-07-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-07-07T00:00:00.000Z",formattedDate:"July 7, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.42,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-07-07-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-07-07-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-07-07-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],s={toc:c},m="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the teams have been working on finalising their ICE papers\nfor publication in EPTCS, formalising concensus, and investigating chain\nsync."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing final versions of ICE papers")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Reviewing the chain sync design and documentation")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Refactoring the thorn calculus")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"First draft of Praos specification")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Developing bounding factors on timeouts"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4d4ca631.b639730e.js b/assets/js/4d4ca631.b639730e.js new file mode 100644 index 0000000000..24b577e94b --- /dev/null +++ b/assets/js/4d4ca631.b639730e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18848],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),c=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),d=c(a),s=n,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||l;return a?r.createElement(h,i(i({ref:t},u),{},{components:a})):r.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=s;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[d]="string"==typeof e?e:n,i[1]=o;for(var c=2;c{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-01-31-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",o={permalink:"/2024-01-31-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-31-node-cli-api.md",source:"@site/blog/2024-01-31-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-01-31T00:00:00.000Z",formattedDate:"January 31, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.845,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-01-31-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-01-31-mithril"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-01-31-performance-and-tracing"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],u={toc:c},d="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-01-16---2024-01-31"},"2024-01-16 - 2024-01-31"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-cli: Adapt the output of the ",(0,n.kt)("inlineCode",{parentName:"li"},"protocol-parameters")," query to show all parameters in Conway. Improved help on various commands. New command create-testnet-data to eventually replace create-staked. ")),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/589"},"Update hedgehog-extras to 0.6.0.1")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/588"},"create-testnet-data: don't fail trying to create irrelevant READMEs")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/585"},"Update help for ",(0,n.kt)("inlineCode",{parentName:"a"},"drep-stake-distribution")," and ",(0,n.kt)("inlineCode",{parentName:"a"},"drep-state")," queries")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/578"},"Release 8.19.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/576"},"Update cardano-api 8.37.1")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/575"},"create-testnet-data: various enhancements")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/572"},"Revert #569: Back to cardano-api JSON for protocol parameters")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/569"},"Use (slightly hacked) cardano-ledger JSON output for protocol parameters"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/439"},"Expose getAnyNewEpochState. Simplify rendering LedgerState errors")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/438"},"Bump CHaP, update hedgehog-extras 0.6.0.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/435"},"Fix bech32 prefixes of committee keys")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/434"},"Update hedgehog-extras to 0.6.0.1")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/433"},"Add return value to ",(0,n.kt)("inlineCode",{parentName:"a"},"checkLedgerStateCondition"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/432"},"Release 8.37.1.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/431"},"Better ",(0,n.kt)("inlineCode",{parentName:"a"},"MonadError")," handling to avoid nesting ",(0,n.kt)("inlineCode",{parentName:"a"},"ExceptT")," in ",(0,n.kt)("inlineCode",{parentName:"a"},"modifyError"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/430"},"Bump hedgehog-extras 0.6.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/429"},"Fix cardano-node deadlink"))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5647"},"Bump hedgehog-extras 0.6.0.1")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5644"},"Update cardano-cli 8.19")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5640"},"Disable ledger events governance test temporarily "))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4d7391f8.2418afc5.js b/assets/js/4d7391f8.2418afc5.js new file mode 100644 index 0000000000..b6442a0806 --- /dev/null +++ b/assets/js/4d7391f8.2418afc5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50617],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-05-22-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-05-22-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-22-mithril.md",source:"@site/blog/2024-05-22-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-05-22T00:00:00.000Z",formattedDate:"May 22, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.355,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-05-22-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-05-22-ledger"},nextItem:{title:"Consensus Team Update",permalink:"/2024-05-15-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet")," by prototyping optimizations and benchmarking performance improvements. They also made progress on low-latency certification by completing the retrieval of the chain tip and importing transactions from the Cardano mini-protocol with Pallas. Additionally, they worked on a new explorer page to display in/out SPOs for the latest Cardano epochs."),(0,i.kt)("p",null,"Finally, the team upgraded the ",(0,i.kt)("inlineCode",{parentName:"p"},"testing-sanchonet")," network following the ",(0,i.kt)("inlineCode",{parentName:"p"},"SanchoNet")," network respin, created a module for building test transactions, and began removing the deprecated ",(0,i.kt)("inlineCode",{parentName:"p"},"snapshot")," command from the client CLI."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Aggregator stress test crashes during signer registration")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1676"},"#1676")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Prune Cardano transactions stored on signer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1645"},"#1645")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," supports retrieving the Chain Point of the tip of the chain")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1589"},"#1589")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Prepare ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet")," for respin with Cardano ",(0,i.kt)("inlineCode",{parentName:"strong"},"8.11-pre"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1694"},"#1694")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"MacOS Rust tests are flaky in CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1556"},"#1556")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Prototype optimizations for increasing Cardano transactions proof generation throughput")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1687"},"#1687")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Retrieve Cardano blocks with ",(0,i.kt)("inlineCode",{parentName:"strong"},"chainsync")," in ",(0,i.kt)("inlineCode",{parentName:"strong"},"pallas")," PoC")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1590"},"#1590")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Explorer display in/out SPOs in registered signers page")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1686"},"#1686")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Create a test Cardano transactions builder")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1667"},"#1667")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Cardano signatures are not produced on ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet")," and ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-mainnet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1681"},"#1681")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Remove ",(0,i.kt)("inlineCode",{parentName:"strong"},"snapshot")," command in client CLI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1690"},"#1690")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4d7c8e78.025b8deb.js b/assets/js/4d7c8e78.025b8deb.js new file mode 100644 index 0000000000..5677c5155e --- /dev/null +++ b/assets/js/4d7c8e78.025b8deb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[45389],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(a),m=n,c=u["".concat(s,".").concat(m)]||u[m]||h[m]||i;return a?r.createElement(c,o(o({ref:t},d),{},{components:a})):r.createElement(c,o({ref:t},d))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-03-24-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-24-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-24-hydra.md",source:"@site/blog/2023-03-24-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-03-24T00:00:00.000Z",formattedDate:"March 24, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.95,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-03-24-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"System Test Team Update",permalink:"/2023-03-27-system-test"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-03-23-db-sync"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:p},u="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra had a team workshop and conducted the monthly review\nmeeting for March. They demonstrated a Hydra Head on mainnet, which was running\nthe hydraw demo application. While this marks an important milestone, they also\nemphasized that more features are still to be added as needed for applications\nto run on Hydra. Besides this, the roadmap is getting cleaned up to encourage\ndiscussions and provide more space for user requests."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting ",(0,n.kt)("a",{parentName:"li",href:"https://docs.google.com/presentation/d/1yZ4AqUQ8OBMG9ARMYvj3IOjaIAqglf7kZei4vsLMrbs/edit#slide=id.g1f87a7454a5_0_1392"},"slides"),"/",(0,n.kt)("a",{parentName:"li",href:"https://drive.google.com/file/d/1krzM8VN-gpKTtpVdC2JQx-lGti-4gKQS/view?ts=641b3c1c"},"recording"),", full report of March next week",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Opened a head on mainnet with hydraw demonstration"),(0,n.kt)("li",{parentName:"ul"},"Hydra pay updates"))),(0,n.kt)("li",{parentName:"ul"},"Team workshop in Austria",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Hydra presentation at the Cardano Foundation in Zurich"),(0,n.kt)("li",{parentName:"ul"},"In-person grooming session, marked many items as candidates to be rather :idea: dicussions"),(0,n.kt)("li",{parentName:"ul"},"Improved head protocol ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/786"},"#786")," and investigated a potential bug in rollback handling ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Team building and retrospective")))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Follow-up on backlog and roadmap clean-up"),(0,n.kt)("li",{parentName:"ul"},"Complete mainnet compatibility feature (documentation updates)"),(0,n.kt)("li",{parentName:"ul"},"Make API more configurable ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/380"},"#380")),(0,n.kt)("li",{parentName:"ul"},"Integrate Hydra specification into repository ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/693"},"#693"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4da01d42.3c555133.js b/assets/js/4da01d42.3c555133.js new file mode 100644 index 0000000000..7481c20027 --- /dev/null +++ b/assets/js/4da01d42.3c555133.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17903],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>d});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=a.createContext({}),u=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=u(n),h=o,d=m["".concat(p,".").concat(h)]||m[h]||c[h]||r;return n?a.createElement(d,i(i({ref:t},s),{},{components:n})):a.createElement(d,i({ref:t},s))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:o,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>l,toc:()=>u});var a=n(87462),o=(n(67294),n(3905));const r={title:"Network Q1 2023 Update",slug:"2023-04-04-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2023-04-04-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-04-04-network.md",source:"@site/quarterly/2023-04-04-network.md",title:"Network Q1 2023 Update",description:"2023-01 - 2023-03",date:"2023-04-04T00:00:00.000Z",formattedDate:"April 4, 2023",tags:[{label:"network",permalink:"/quarterly/tags/network"}],readingTime:2.62,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Q1 2023 Update",slug:"2023-04-04-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Quarterly Update",permalink:"/quarterly/2023-04-25-consensus"},nextItem:{title:"Ledger Team Update",permalink:"/quarterly/2023-04-03-ledger"}},p={authorsImageUrls:[void 0]},u=[{value:"2023-01 - 2023-03",id:"2023-01---2023-03",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Gradual dynamic P2P release on mainnet",id:"gradual-dynamic-p2p-release-on-mainnet",level:4},{value:"Peer Sharing",id:"peer-sharing",level:4},{value:"Eclipse Evasion",id:"eclipse-evasion",level:4},{value:"Cardano Network Service Assurance",id:"cardano-network-service-assurance",level:4},{value:"Cardano-Node",id:"cardano-node",level:4},{value:"Testing improvements",id:"testing-improvements",level:4},{value:"Technical Debt",id:"technical-debt",level:4},{value:"Documentation",id:"documentation",level:4},{value:"IO-Sim",id:"io-sim",level:4},{value:"NoThunks",id:"nothunks",level:4},{value:"Next steps",id:"next-steps",level:3}],s={toc:u},m="wrapper";function c(e){let{components:t,...n}=e;return(0,o.kt)(m,(0,a.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"2023-01---2023-03"},"2023-01 - 2023-03"),(0,o.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,o.kt)("h4",{id:"gradual-dynamic-p2p-release-on-mainnet"},"Gradual dynamic P2P release on mainnet"),(0,o.kt)("p",null,"We released two version of ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," with dynamic P2P capabilities:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/1.35.6"},(0,o.kt)("inlineCode",{parentName:"a"},"1.35.6")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"we found and fixed a bug in exception handling in ",(0,o.kt)("inlineCode",{parentName:"li"},"peer-state-actions"),(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4357"},"pull-4357")),(0,o.kt)("li",{parentName:"ul"},"we found and fixed a busy loop when demoting a peer from hot to warm ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4385"},"pull-4385")," "))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/1.35.7"},(0,o.kt)("inlineCode",{parentName:"a"},"1.35.7")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"includes interoperability in the legacy non-p2p network stack ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/outoboros-network/pull/4467"},"pull-4467")))),(0,o.kt)("li",{parentName:"ul"},"we fixed a busy loop of demotion & promotions: ",(0,o.kt)("inlineCode",{parentName:"li"},"warm -> hot -> warm"),"[pull-4485]"," /it will be included in ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-node-8.0.0")," release/.")),(0,o.kt)("p",null,"Currently there are more than 200 P2P relays on mainnet."),(0,o.kt)("h4",{id:"peer-sharing"},"Peer Sharing"),(0,o.kt)("p",null,"We implemented /peer sharing/ ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"pull-4019")," which will be available as an\nexperimental feature in one of the future ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," releases."),(0,o.kt)("p",null,"We implemented /light peer sharing/, e.g. adding inbound connections to the set\nof known peers of the outbound governor, which allows to bootstrap relays not\nregistered on chain. This complements peer sharing. The ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4277"},"pull-4277")," is in\nlate review stages."),(0,o.kt)("h4",{id:"eclipse-evasion"},"Eclipse Evasion"),(0,o.kt)("p",null,"We finalised design of eclipse evasion and we started implementing it. We\nhave an initial implementation (not merged). We are in the process of extending\nour test suite to cover new implementation details: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3886"},"issue-3886"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/outoboros-network/pull/4462"},"pull-4462"),"."),(0,o.kt)("h4",{id:"cardano-network-service-assurance"},"Cardano Network Service Assurance"),(0,o.kt)("p",null,"Galois has been making progress on ",(0,o.kt)("em",{parentName:"p"},"Cardano Network Service Assurance")," project."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"In cardano-node, they have developed a ",(0,o.kt)("inlineCode",{parentName:"p"},"datapoint")," abstraction that creates\na queue of (existing) log events, they now have two such ",(0,o.kt)("inlineCode",{parentName:"p"},"datapoint"),"s (of log\nevents) implemented.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"They have developed a ",(0,o.kt)("inlineCode",{parentName:"p"},"datapoint"),' client executable that can connect to a node\nwhich serves the "new tracing".')),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"They have been exploring approaches for the consolidation and analysis of\n",(0,o.kt)("inlineCode",{parentName:"p"},"datapoint")," data to extract actionable network health status."))),(0,o.kt)("h4",{id:"cardano-node"},"Cardano-Node"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We made it possible to configure accepted connections limit ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4902"},"pull-4902"),".")),(0,o.kt)("h4",{id:"testing-improvements"},"Testing improvements"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We fixed a bug in network simulation implementation of TCP simultaneous open ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4265"},"pull-4265"),".")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We introduced header-body split in the diffusion simulation ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/outoboros-network/pull/4419"},"pull-4419")," (in review).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We introduced initiator only nodes in the diffusion simulation ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4280"},"pull-4280"),".")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We fixed a connection-manager test failure ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4370"},"issue-4370"),"."))),(0,o.kt)("h4",{id:"technical-debt"},"Technical Debt"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We refactored ",(0,o.kt)("inlineCode",{parentName:"p"},"Snocket")," interface decoupling it from the multiplexer\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4260"},"pull-4260"),". This simplified some aspects of the KES agent implementation.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We introduces a record for CBOR codecs which are used for various data\nstructures by mini-protocol codecs ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/outoboros-network/pull/4430"},"pull-4430"),"."))),(0,o.kt)("h4",{id:"documentation"},"Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We explained some limitations of CDDL in our technical report ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4351"},"pull-4351"),".")),(0,o.kt)("h4",{id:"io-sim"},"IO-Sim"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We fixed implementation of ",(0,o.kt)("inlineCode",{parentName:"li"},"MVar"),"'s ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/70"},"pull-70"),".")),(0,o.kt)("h4",{id:"nothunks"},"NoThunks"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We published a new version of ",(0,o.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/nothunks"},(0,o.kt)("inlineCode",{parentName:"a"},"nothunks"))," library to Hackage.")),(0,o.kt)("h3",{id:"next-steps"},"Next steps"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Finish implementation & testing of eclipse evasion ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3886"},"issue-3886"),"."),(0,o.kt)("li",{parentName:"ul"},"Optimise connectivity to peers behind firewall ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4381"},"issue-4381"),"."),(0,o.kt)("li",{parentName:"ul"},"Finish the work on enabling block production dynamically to allow using P2P\non block producers ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3159"},"issue-3159"),"."),(0,o.kt)("li",{parentName:"ul"},"If time permits we would like also to reserve some time for finishing\npublication of ",(0,o.kt)("inlineCode",{parentName:"li"},"io-sim")," to Hackage.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4dba54fc.59dc5120.js b/assets/js/4dba54fc.59dc5120.js new file mode 100644 index 0000000000..2b41d54eab --- /dev/null +++ b/assets/js/4dba54fc.59dc5120.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91732],{52:a=>{a.exports=JSON.parse('{"label":"cli-api-quarterly","permalink":"/quarterly/tags/cli-api-quarterly","allTagsPath":"/quarterly/tags","count":1}')}}]); \ No newline at end of file diff --git a/assets/js/4dc3be72.cab45bf9.js b/assets/js/4dc3be72.cab45bf9.js new file mode 100644 index 0000000000..1e9185b57f --- /dev/null +++ b/assets/js/4dc3be72.cab45bf9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[76074],{3905:(e,t,i)=>{i.d(t,{Zo:()=>h,kt:()=>d});var r=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},h=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,a=e.mdxType,n=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),m=s(i),c=a,d=m["".concat(p,".").concat(c)]||m[c]||u[c]||n;return i?r.createElement(d,o(o({ref:t},h),{},{components:i})):r.createElement(d,o({ref:t},h))}));function d(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=i.length,o=new Array(n);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>n,metadata:()=>l,toc:()=>s});var r=i(87462),a=(i(67294),i(3905));const n={title:"Mithril Team Update",slug:"2023-01-26-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-26-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-26-mithril.md",source:"@site/blog/2023-01-26-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-01-26T00:00:00.000Z",formattedDate:"January 26, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.175,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-01-26-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-01-27-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-01-25-consensus"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],h={toc:s},m="wrapper";function u(e){let{components:t,...i}=e;return(0,a.kt)(m,(0,r.Z)({},h,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The Mithril team released a new ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2302.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2302.0"))," distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes."),(0,a.kt)("p",null,"Finally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2302.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2302.0"))),(0,a.kt)("li",{parentName:"ul"},"Implemented a backward/forward compatibility mechanism for API messages ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/688"},"#688"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for the signer registration ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/689"},"#689")),(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for the signature registration ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/693"},"#693")),(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for epoch settings ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/695"},"#695")),(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for certificate pending ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/696"},"#696")),(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for certificate ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/697"},"#697")),(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for snapshots list ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/698"},"#698")),(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for snapshot ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/699"},"#699")),(0,a.kt)("li",{parentName:"ul"},"Update enforcement of API version with Semver ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/705"},"#705")))),(0,a.kt)("li",{parentName:"ul"},"Completed the PoC implementation of backward compatibility with ",(0,a.kt)("inlineCode",{parentName:"li"},"protobuf")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/677"},"#677")),(0,a.kt)("li",{parentName:"ul"},"Completed the PoC implementation of backward compatibility with ",(0,a.kt)("inlineCode",{parentName:"li"},"avro")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/678"},"#678")),(0,a.kt)("li",{parentName:"ul"},"Completed the PoC to Read/Write transaction on chain for Era activations ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/672"},"#672")),(0,a.kt)("li",{parentName:"ul"},"Completed the upgrade Cardano devnet to 1.35.4 ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/523"},"#523"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4de4e659.20a68461.js b/assets/js/4de4e659.20a68461.js new file mode 100644 index 0000000000..a62c436900 --- /dev/null +++ b/assets/js/4de4e659.20a68461.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53662],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),h=p(r),c=a,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||n;return r?i.createElement(d,l(l({ref:t},u),{},{components:r})):i.createElement(d,l({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,l=new Array(n);l[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[h]="string"==typeof e?e:a,l[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>n,metadata:()=>o,toc:()=>p});var i=r(87462),a=(r(67294),r(3905));const n={title:"Mithril Team Update",slug:"2023-11-29-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-11-29-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-29-mithril.md",source:"@site/blog/2023-11-29-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-11-29T00:00:00.000Z",formattedDate:"November 29, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.415,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-11-29-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-11-29-consensus"},nextItem:{title:"Goedel Team Update",permalink:"/2023-11-24-goedel"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"This week, the Mithril team released the initial version of the ",(0,a.kt)("a",{parentName:"p",href:"https://crates.io/crates/mithril-client"},"Mithril client library"),", enabling developers to integrate core Mithril features into their applications. They also released a new distribution, ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2347.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2347.0")),", which includes support for slim certificate production by the aggregator, along with bug fixes and performance improvements."),(0,a.kt)("p",null,"The team also introduced the initial version of Cardano/Mithril node communication enhancements, implemented by TxPipe as part of the Catalyst project. They made progress in decentralizing Mithril networks, including testing the Mithril peer-to-peer (P2P) relay on a test network and conducting threat modeling and risk analysis for P2P networking. Additionally, they started working on adapting the Mithril client library for WASM compilation and made progress in optimizing aggregator performance. "),(0,a.kt)("p",null,"Finally, they fixed inaccuracies in the verbosity level of logs across most nodes and worked on troubleshooting for some users."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Release of the ",(0,a.kt)("a",{parentName:"li",href:"https://crates.io/crates/mithril-client"},(0,a.kt)("inlineCode",{parentName:"a"},"mithril-client"))," library crate"),(0,a.kt)("li",{parentName:"ul"},"Publication of a ",(0,a.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2023/11/27/mithril-client-library-released"},"dev blog post")," about the released Mithril library"),(0,a.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2347.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2347.0"))),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Light Wallet: Release ",(0,a.kt)("inlineCode",{parentName:"strong"},"mithril-client")," WASM library")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1336"},"#1336")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Enhance aggregator REST API performances")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1327"},"#1327")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Signer runtime is stuck for some SPO")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1312"},"#1312")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Support P2P relay in infrastructure")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1361"},"#1361")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Make Cardano node version custom in CI/CD")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1355"},"#1355")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Manually deploy a test Mithril network")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1356"},"#1356")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"mithril-client verbosity not following usage menu")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1325"},"#1325")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Error message for mithril-client snapshot download")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1375"},"#1375"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4df30499.7bb61829.js b/assets/js/4df30499.7bb61829.js new file mode 100644 index 0000000000..3ef0fb1dd8 --- /dev/null +++ b/assets/js/4df30499.7bb61829.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[51951],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,m=c(e,["components","mdxType","originalType","parentName"]),p=s(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||u[d]||o;return n?r.createElement(h,i(i({ref:t},m),{},{components:n})):r.createElement(h,i({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & tracing update",slug:"2023-01-11-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,c={permalink:"/2023-01-11-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-11-performance-and-tracing.md",source:"@site/blog/2023-01-11-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-01-11T00:00:00.000Z",formattedDate:"January 11, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.865,hasTruncateMarker:!1,authors:[{name:"Serge Kosyrev",title:"Performance and Tracing Team Lead",url:"https://github.com/deepfire",imageURL:"https://github.com/deepfire.png",key:"deepfire"}],frontMatter:{title:"Performance & tracing update",slug:"2023-01-11-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-01-11-consensus"},nextItem:{title:"Crypto Team Update",permalink:"/2023-01-06-crypto"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Performance",id:"performance",level:2},{value:"Tracing",id:"tracing",level:2},{value:"Infrastructure",id:"infrastructure",level:2}],m={toc:s},p="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"Since our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress."),(0,a.kt)("li",{parentName:"ol"},"The new tracing system: the improved API of the new tracing system was implemented, and we're now porting the tracing integration layer over."),(0,a.kt)("li",{parentName:"ol"},"Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks."),(0,a.kt)("li",{parentName:"ol"},"New benchmark deployment infrastructure: we've made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs."),(0,a.kt)("li",{parentName:"ol"},"Legacy benchmarking: we've started merging the legacy benchmark deployment infrastructure into the workbench."),(0,a.kt)("li",{parentName:"ol"},"Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.")),(0,a.kt)("h2",{id:"performance"},"Performance"),(0,a.kt)("p",null,"The AWS cluster infrastructure necessary for SECP benchmarking is still being worked on."),(0,a.kt)("h2",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The improved tracing internals were implemented, and we're now into the phase of updating the tracing integration, which is also mostly done."),(0,a.kt)("h2",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"Thanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components."),(0,a.kt)("p",null,"On the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters.\nWe now have a very clear and granular method to keep track of protocol parameter evolution -- e.g. the mainnet history changes are now tracked at epoch granularity, while also allowing for systematically described change overlays. This makes the benchmark profile definition much more clear and robust against mistakes."),(0,a.kt)("p",null,"We also started a merge of the legacy benchmarking environment (based on cardano-ops) into the workbench. The separation between environments was too costly, causing us to reimplement any benchmarking change twice -- first, during development, in the workbench, then in cardano-ops. In addition, maintenance of compatibility code was incurring additional costs, slowing benchmark data analysis development.\nOnce this merge is complete, this will allow us to sharply cut the benchmark development cycle and overheads."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4e419659.503318e1.js b/assets/js/4e419659.503318e1.js new file mode 100644 index 0000000000..185ba59522 --- /dev/null +++ b/assets/js/4e419659.503318e1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11996],{85290:a=>{a.exports=JSON.parse('{"label":"cli-api","permalink":"/tags/cli-api","allTagsPath":"/tags","count":39}')}}]); \ No newline at end of file diff --git a/assets/js/4e45b006.9dab71ee.js b/assets/js/4e45b006.9dab71ee.js new file mode 100644 index 0000000000..3ce5353ab4 --- /dev/null +++ b/assets/js/4e45b006.9dab71ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[63089],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=u(a),c=n,h=m["".concat(p,".").concat(c)]||m[c]||d[c]||l;return a?r.createElement(h,i(i({ref:t},s),{},{components:a})):r.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:n,i[1]=o;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2023-09-15-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2023-09-15-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-ledger.md",source:"@site/blog/2023-09-15-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-09-15T00:00:00.000Z",formattedDate:"September 15, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.645,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-09-15-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-09-15-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-09-15-network"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway era",id:"conway-era",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3},{value:"Testing",id:"testing",level:3}],s={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The Ledger team's focus is still mainly on the Conway era implementation."),(0,n.kt)("p",null,"We were able to add ability to specify initial Constitutional Comittee and the initial\nversion of Constitution. Priority in which Governance Action are now enacted matches the\nspecification. DRep's deposits are now properly accounted for. Governance actions that are\nnot allowed to be voted on by Stake Pool operators and Constitutional Committee members\nare prevented by transaction submission failure, rather than simply being ignored. There\nwas a few important CDDL fixes as well as a lot of new round trip serialization\ntests. Constraint based testing framework has also received a lot of improvements."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway-era"},"Conway era"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3681"},"pull-3681")," - Conway Genesis additions"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3690"},"pull-3690")," - Preserve the order of ProposalProcedures"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3705"},"pull-3705")," - Removed ProtVer from EnactState"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3700"},"pull-3700")," - Add conway-specific certs to deposit/refunds"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3704"},"pull-3704")," - Add comments on deprecating certs to Conway CDDL"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3698"},"pull-3698")," - Reordering of governance actions"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3712"},"pull-3712")," - Disallow empty fields in ConwayTxBodyRaw"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3716"},"pull-3716")," - Abstract threshold calculation"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3725"},"pull-3725")," - Fix mistaken use of dollar sign in cddl files"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3718"},"pull-3718")," - Predicate failure for mismatched Voter GovAction"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3721"},"pull-3721")," - Committee expiration, validation and modification")),(0,n.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3629"},"pull-3629")," - Add rule-transition diagrams in dot syntax"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3680"},"pull-3680")," - Bump Plutus deps to 1.11"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3708"},"pull-3708")," - Post release changes")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3730"},"pull-3730")," - Implement ",(0,n.kt)("inlineCode",{parentName:"li"},"Show")," instance for ",(0,n.kt)("inlineCode",{parentName:"li"},"Rep")," using ",(0,n.kt)("inlineCode",{parentName:"li"},"IsTypeable")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3697"},"pull-3697")," - Rewrite testEql using Typeable to make it impossible to forget cases"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3709"},"pull-3709")," - Add many new features to the Constrained modues in cardano-ledger-test"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3726"},"pull-3726")," - Conway and other eras serialization roundtrip tests"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3713"},"pull-3713")," - Improve CI resiliency against GitHub issues")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4eaeb622.ee122c28.js b/assets/js/4eaeb622.ee122c28.js new file mode 100644 index 0000000000..23c69b5e02 --- /dev/null +++ b/assets/js/4eaeb622.ee122c28.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17139],{93213:e=>{e.exports=JSON.parse('{"permalink":"/page/27","page":27,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/26","nextPage":"/page/28","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/4ed83391.93ae624d.js b/assets/js/4ed83391.93ae624d.js new file mode 100644 index 0000000000..b718acbe18 --- /dev/null +++ b/assets/js/4ed83391.93ae624d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[22838],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},m=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),u=s(n),p=a,h=u["".concat(c,".").concat(p)]||u[p]||d[p]||i;return n?r.createElement(h,o(o({ref:t},m),{},{components:n})):r.createElement(h,o({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-09-22-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-22-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-22-performance-and-tracing.md",source:"@site/blog/2023-09-22-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-09-22T00:00:00.000Z",formattedDate:"September 22, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.445,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-09-22-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-09-22-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-09-20-consensus"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3},{value:"New team member",id:"new-team-member",level:3}],m={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've performed both low-level network and high-level variance analysis of our benchmarking clusters."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: Our reporting pipeline was adjusted to classify various workloads easily reducing rework time."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Work on machine-readable tracing of tracer configuration is ongoing."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: We've been able to eliminate several possible confounders on the nomad cluster."),(0,a.kt)("li",{parentName:"ul"},"Team: We're currently onboarding a new team member: Welcome to Cardano Performance & Tracing, Baldur Bl\xf6ndal!")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"As part of the effort to bring the Nomad backend into production use, we've been equipping both that and the existing benchmarking\nbackend with means to measure and document network latency for each run. Furthermore we've implemented means to\ncapture TCP packets for a limited time window during a benchmarking run - which will allow us to spot differences\nin the behaviour of the underlying networking stack at OS level. "),(0,a.kt)("p",null,"Additionally, we're running variance analysis in parallel on both backends to ascertain confidence in metrics originating from either. We've concluded that baseline profile runs aren't directly comparable between the two, so we decided\nto compare standard deviations instead to validate the measurements from nomad."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"Reporting on benchmarks does require human time and effort to rework the final document. Improvements to the reporting pipeline\nhave been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". They reduce the time necessary to do so by various changes to the template and the workload classification logic in analysis. "),(0,a.kt)("p",null,"Beyond that, we've looked into issues where services would quit with an unjustified exit failure upon shutdown - under rare circumstances. By reworking shutdown logic for ",(0,a.kt)("inlineCode",{parentName:"p"},"trace-dispatcher")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"tx-generator")," we were able to address those issues."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"After various steps in constructing a configuration upon node startup, it is vital to document\nwhich runtime configuration the node arrived eventually. We're working on providing a machine-readable JSON/YAML\ntrace message for that purpose. "),(0,a.kt)("p",null,"This will facilitate hot-reloading a node's tracer configuration in the future: users will be able to take such a trace message, apply their intended change and hot-reload it immediately into the node. "),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"As with the existing benchmarking cluster, nomad is currently under scrutiny with regard to the reliability of metrics it\nproduces, as well as the behaviour of its OS-level network stack. For instance, differing kernel versions can have an\nimpact on our measurements, as we'd be basically using two different instruments to take them. "),(0,a.kt)("p",null,"Along the way we've already been successful in eliminating some possible confounders that had been introduced by the nomad service\nor the slightly different system architecture of the new cluster."),(0,a.kt)("h3",{id:"new-team-member"},"New team member"),(0,a.kt)("p",null,"Baldur Bl\xf6ndal is an extremely capable and experienced Haskell developer. Also, he's an excellent fit for our existing team.\nSo I'm very pleased to welcome him onboard with IOG, and with Performance & Tracing. He will be working on ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),", the component receiving, processing and making available node traces and metrics."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4ef29baf.ea8a2ed5.js b/assets/js/4ef29baf.ea8a2ed5.js new file mode 100644 index 0000000000..2f462ebd94 --- /dev/null +++ b/assets/js/4ef29baf.ea8a2ed5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2156],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(a),c=r,h=u["".concat(s,".").concat(c)]||u[c]||m[c]||i;return a?n.createElement(h,o(o({ref:t},d),{},{components:a})):n.createElement(h,o({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-03-15-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-15-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-15-hydra.md",source:"@site/blog/2024-03-15-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-03-15T00:00:00.000Z",formattedDate:"March 15, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.38,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-03-15-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-03-18-network"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-03-15-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],d={toc:p},u="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"This week, the Hydra team worked on aligning the specification with the current\nincremental decommit implementation, added decommit to model-based tests and\nalso discussed the incremental commit protocol extension with researchers. The\nteam also updated to ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-api 8.40")," and tests against ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node 8.9.0"),",\nwhich unblocked a possible release and re-enabled smoke tests on public\nnetworks. They also groomed a new ",(0,r.kt)("inlineCode",{parentName:"p"},"/commit")," endpoint interface from a user\ndiscussion and discussed restructuring of the Hydra documentation. The team also\nprepared a ",(0,r.kt)("inlineCode",{parentName:"p"},"Conway"),"-supporting ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-node")," on branch ",(0,r.kt)("inlineCode",{parentName:"p"},"lc/conway-support")," for\nearly adopters (Hi @Juantxu and @ash \ud83d\udc4b). Some internal refactoring prepared for\nupcoming streaming plugins by SundaeLabs and minor fixes to the TUI and\n",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-explorer")," rounded off the week."),(0,r.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Aligned specification with current incremental decommit implementation and added Decommit to model based tests."),(0,r.kt)("li",{parentName:"ul"},"Discussed and explored further on incremental commits with researchers."),(0,r.kt)("li",{parentName:"ul"},"Refactored ",(0,r.kt)("inlineCode",{parentName:"li"},"Event -> Input")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1348"},"#1348")," to prepare for streaming plugins ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1325"},"#1325"),"."),(0,r.kt)("li",{parentName:"ul"},"Minor fixes to the TUI and hydra-explorer clients."),(0,r.kt)("li",{parentName:"ul"},"Updated to ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-node 8.9.0")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-api 8.40")," - this unblocked a possible release and re-enabled smoke tests on public networks."),(0,r.kt)("li",{parentName:"ul"},"Groomed new ",(0,r.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint interface ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1350"},"#1350")," from a user discussion ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/discussions/1337"},"#1337"),"."),(0,r.kt)("li",{parentName:"ul"},"Discussed restructuring of the Hydra documentation ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1349"},"#1349"),"."),(0,r.kt)("li",{parentName:"ul"},"Prepared a ",(0,r.kt)("inlineCode",{parentName:"li"},"Conway"),"-supporting ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra-node")," on branch ",(0,r.kt)("inlineCode",{parentName:"li"},"lc/conway-support")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1178"},"#1178")," (will be merged only after the hard-fork).")),(0,r.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Prepare a PR for Kupo using new Hydra transaction format (to prepare for 0.16.0 release)"),(0,r.kt)("li",{parentName:"ul"},"Review and merge streaming plugins ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1325"},"#1325")),(0,r.kt)("li",{parentName:"ul"},"Improve the ",(0,r.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint to unblock users"),(0,r.kt)("li",{parentName:"ul"},"Test corner cases of incremental decommit transaction traces")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4f47c374.112b7378.js b/assets/js/4f47c374.112b7378.js new file mode 100644 index 0000000000..d6f1b0ae24 --- /dev/null +++ b/assets/js/4f47c374.112b7378.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58671],{51397:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/4fe12b4b.a8b4c7ac.js b/assets/js/4fe12b4b.a8b4c7ac.js new file mode 100644 index 0000000000..1a96666ded --- /dev/null +++ b/assets/js/4fe12b4b.a8b4c7ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48837],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=s(n),u=a,f=m["".concat(p,".").concat(u)]||m[u]||d[u]||o;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[m]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"Goedel Team Update",slug:"2023-03-31-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-03-31-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-31-goedel.md",source:"@site/blog/2023-03-31-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-03-31T00:00:00.000Z",formattedDate:"March 31, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.455,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-03-31-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-03-31-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-03-31-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],c={toc:s},m="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the team has been working on final drafts of two papers\nfor internal review and planning next steps of analysis of consensus\ndesign refiniments."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing final draft of DeltaQSD algebra paper for internal review")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing final draft of verifying design refinements for\ndistributed system design for internal review")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Planning next phase of consensus design refinement analysis"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4febca42.1da69019.js b/assets/js/4febca42.1da69019.js new file mode 100644 index 0000000000..c7623b553b --- /dev/null +++ b/assets/js/4febca42.1da69019.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16349],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=u(a),s=r,h=c["".concat(p,".").concat(s)]||c[s]||m[s]||i;return a?n.createElement(h,o(o({ref:t},d),{},{components:a})):n.createElement(h,o({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-05-05-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",l={permalink:"/2023-05-05-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-05-node-cli-api.md",source:"@site/blog/2023-05-05-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-05-05T00:00:00.000Z",formattedDate:"May 5, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.81,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-05-05-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-05-05-ledger"},nextItem:{title:"Mithril Team Update",permalink:"/2023-05-04-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],d={toc:u},c="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-05-05---2023-05-23"},"2023-05-05 - 2023-05-23"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Golden tests for cardano-cli command help output were added."),(0,r.kt)("li",{parentName:"ul"},"Documentation was updated with new libsodium installation instructions."),(0,r.kt)("li",{parentName:"ul"},"There were several updates for the cardano-cli:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Deletion of the deprecated shelley command group."),(0,r.kt)("li",{parentName:"ul"},"Addition of golden tests for CLI help."),(0,r.kt)("li",{parentName:"ul"},"An improvement to avoid bare IO in tests, allowing better error reporting in failed tests."),(0,r.kt)("li",{parentName:"ul"},"Generation of UTCTime test values without leap seconds (avoids erroneous test failures)"),(0,r.kt)("li",{parentName:"ul"},"Support for signing transactions with GenesisDelegateSigningKey_ed25519_bip32."))),(0,r.kt)("li",{parentName:"ul"},"The cardano-api underwent multiple refinements:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Implementing deposit handling when balancing transactions (necessary for Conway)"),(0,r.kt)("li",{parentName:"ul"},"Cleaning up socket file path code."))),(0,r.kt)("li",{parentName:"ul"},"Several changes were made to the cardano-testnet:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Adding golden tests for cardano-testnet help."),(0,r.kt)("li",{parentName:"ul"},"Removing all hardcoded yaml files in cardano-testnet"),(0,r.kt)("li",{parentName:"ul"},"Improving cardano-testnet help output."),(0,r.kt)("li",{parentName:"ul"},"Parameterizing default yaml configuration value, allowing for easier hardforking to the era of choice.")))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5181"},"Update libsodium installation instructions")," ")),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5264"},"Delete deprecated ",(0,r.kt)("inlineCode",{parentName:"a"},"shelley")," command group")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5206"},"Add golden tests for CLI help")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5201"},"Avoid bare IO in tests")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5200"},"Split ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli")," test files into separate directories")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5198"},"Make UTCTime test generator generate values without leap seconds")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5189"},"Add support with signing transactions with ",(0,r.kt)("inlineCode",{parentName:"a"},"GenesisDelegateSigningKey_ed25519_bip32"))," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5184"},"Rename --signed-tx-file argument to --tx-file argument in verify-poll command")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5120"},"Simplify socket path code")," ")),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5221"},"refactor: make renderScriptWitnessIndex output more explicit")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5218"},"Implement deposit handling when balancing transactions")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5217"},"Replace remaining ",(0,r.kt)("inlineCode",{parentName:"a"},"FilePath")," use in ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api"))," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5215"},"Cleanup socket file path code")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5207"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"readEnvSocketPath")," function")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5194"},"IO functions for reading. Remove PoolMetadataFile type")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5191"},"Expose config reader")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5188"},"Golden tests for ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api")," errors")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5175"},"Fix ",(0,r.kt)("inlineCode",{parentName:"a"},"toEraInMode")," for conway")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5168"},"Use machine readable output for ToJSON ScriptWitnessIndex")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5096"},"Expose LocalTxSubmissionClient data constructor")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5047"},"Use cardano-api from separate repository")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4684"},"[cardano-api] Export fromConsensusPointHF")," ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5022"},"Provide orphan ",(0,r.kt)("inlineCode",{parentName:"a"},"ToJSON")," instances for ",(0,r.kt)("inlineCode",{parentName:"a"},"HardForkNodeToClientVersion")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"HardForkNodeToNodeVersion"))," ")),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5254"},"Add golden test for ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-testnet")," help")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5242"},"Remove all hardcoded yaml files from cardano-testnet")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5234"},"Fix cardano-testnet help")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5211"},"Parameterize default yaml configuration value in cardano-testnet")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5165"},"Freeze callstack in integration and integrationRetryWorkspace functions")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5128"},"Create defaultYamlValue for cardano-testnet"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/50135b75.100177a1.js b/assets/js/50135b75.100177a1.js new file mode 100644 index 0000000000..5af291b3fe --- /dev/null +++ b/assets/js/50135b75.100177a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54176],{3905:(e,t,i)=>{i.d(t,{Zo:()=>m,kt:()=>c});var n=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function l(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):l(l({},t),e)),i},m=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,r=e.originalType,p=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),s=u(i),d=a,c=s["".concat(p,".").concat(d)]||s[d]||h[d]||r;return i?n.createElement(c,l(l({ref:t},m),{},{components:i})):n.createElement(c,l({ref:t},m))}));function c(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=i.length,l=new Array(r);l[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[s]="string"==typeof e?e:a,l[1]=o;for(var u=2;u{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var n=i(87462),a=(i(67294),i(3905));const r={title:"Mithril Team Update",slug:"2023-06-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-06-15-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-15-mithril.md",source:"@site/blog/2023-06-15-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-06-15T00:00:00.000Z",formattedDate:"June 15, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.795,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-06-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-06-16-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-06-14-consensus"}},p={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],m={toc:u},s="wrapper";function h(e){let{components:t,...i}=e;return(0,a.kt)(s,(0,n.Z)({},m,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The Mithril team completed the implementation of the new sub-command for restoring a Mithril stake distribution in the client. They also updated the client\u2019s developer documentation and architecture documentation, and did some refactoring on the client and its dependency injection mechanism. Additionally, they completed and deployed infrastructure enhancements on the test Mithril networks. They also completed the performance tests of the new stake distribution computation on the Cardano mainnet."),(0,a.kt)("p",null,"Finally, the team worked on fixing a bug on the client multi-platform test, a bug on the aggregator state machine, and some flakiness on the CI."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Completed on the epic that designs and implements generic signing/verification of entity services ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/780"},"#780"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Create the sub-command for 'Mithril Stake Distribution' in client")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/896"},"#896")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Adapt end to end tests to handle new types of data")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/899"},"#899")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Update client documentation")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/897"},"#897")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Update architecture documentations for new types of data")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/898"},"#898")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Refactoring client")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/960"},"#960")))),(0,a.kt)("li",{parentName:"ul"},"Worked on the epic that prepares the Mithril infrastructure for ",(0,a.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/767"},"#767"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Enhance terraform infrastructure")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/930"},"#930")))),(0,a.kt)("li",{parentName:"ul"},"Completed the epic that implements the computation of the stake distribution for ",(0,a.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/880"},"#880"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Check performance impact of new stake distribution command on the 'mainnet'")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/962"},"#962")))),(0,a.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,a.kt)("inlineCode",{parentName:"li"},"Prepare Mithril Signer deployment model for SPO")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/862"},"#862"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod'")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/961"},"#961")))),(0,a.kt)("li",{parentName:"ul"},"Worked on bugs and optimizations:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Aggregator does not always detect new immutable file")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/953"},"#953")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"CI tests fail with Rust '1.70.0'")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/958"},"#958")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"End to end tests are flaky")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/954"},"#954")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Certificate dates in metadata are not on the same timezone")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/946"},"#946")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Refactor 'MithrilStakeDistribution' entity")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/967"},"#967")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Fix 'Mithril Client multi-platform test' with new client interface")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/956"},"#956")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Enhance 'ImmutableDigesterError::NotEnoughImmutable' error")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/969"},"#969")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Client 'snapshot download' command fails with option '--download-dir'")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/979"},"#979"))))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/505049d0.93efe283.js b/assets/js/505049d0.93efe283.js new file mode 100644 index 0000000000..b8028bf5b0 --- /dev/null +++ b/assets/js/505049d0.93efe283.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[34111],{89378:a=>{a.exports=JSON.parse('{"label":"performance-tracing","permalink":"/tags/performance-tracing","allTagsPath":"/tags","count":34}')}}]); \ No newline at end of file diff --git a/assets/js/50560035.9d2e2c8e.js b/assets/js/50560035.9d2e2c8e.js new file mode 100644 index 0000000000..1b8f14021f --- /dev/null +++ b/assets/js/50560035.9d2e2c8e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23214],{85424:a=>{a.exports=JSON.parse('{"label":"mithril","permalink":"/tags/mithril","allTagsPath":"/tags","count":63}')}}]); \ No newline at end of file diff --git a/assets/js/5090ff9c.ec2d127f.js b/assets/js/5090ff9c.ec2d127f.js new file mode 100644 index 0000000000..2bd26195c1 --- /dev/null +++ b/assets/js/5090ff9c.ec2d127f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92164],{31225:e=>{e.exports=JSON.parse('{"permalink":"/page/33","page":33,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/32","nextPage":"/page/34","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/50d0e663.91bd4732.js b/assets/js/50d0e663.91bd4732.js new file mode 100644 index 0000000000..0e88ce6f34 --- /dev/null +++ b/assets/js/50d0e663.91bd4732.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[30670],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),u=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(r),d=n,h=c["".concat(s,".").concat(d)]||c[d]||m[d]||i;return r?a.createElement(h,o(o({ref:t},p),{},{components:r})):a.createElement(h,o({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:n,o[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-03-17-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-17-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-17-crypto.md",source:"@site/blog/2023-03-17-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-03-17T00:00:00.000Z",formattedDate:"March 17, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.255,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-03-17-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-03-21-network"},nextItem:{title:"Hydra Team Update",permalink:"/2023-03-17-hydra"}},s={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"Sidechains",id:"sidechains",level:3}],p={toc:u},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Mithril: RFP finished. Code ready for audit."),(0,n.kt)("li",{parentName:"ul"},"cardano-base: BLS12-381's PR approved, only blocker is Windows' CI. Preparing extensive testing strategy together with Plutus and Testing teams."),(0,n.kt)("li",{parentName:"ul"},"KES agent: Working on a desing on how to use IO sim in order to allow for proper network simulation testing."),(0,n.kt)("li",{parentName:"ul"},"Sidechains: Preparing proving system to use the curves needed for main-net PoC. ")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Merged ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/783"},"PR#783")),(0,n.kt)("li",{parentName:"ul"},"RFP for crypto audit ready.")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"BLS12-381 branch approved ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/266"},"PR#266"),". Blocker is Windown's CI. Working on it"),(0,n.kt)("li",{parentName:"ul"},"Testing strategy for BLS bindings:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Preparing test-vectors for Groth16, and simple BLS signatures"),(0,n.kt)("li",{parentName:"ul"},"Finding community projects to help write their use cases"),(0,n.kt)("li",{parentName:"ul"},"Designing AC, and expected tests for higher levels of development (Plutus team, E2E tests, etc)"))),(0,n.kt)("li",{parentName:"ul"},"Wrote ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/blogpost_breaking_ed25519_vrf/blob/main/blog.md"},"blogpost")," on how using the same key for ed25519 and VRF completely breaks the security of both systems ")),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Started integration of sockets interface used in consensus"),(0,n.kt)("li",{parentName:"ul"},"Use that for de/ser"),(0,n.kt)("li",{parentName:"ul"},"Resolving problems with block memory in IOSim. Can't use withForeignPtr in IOSim"),(0,n.kt)("li",{parentName:"ul"},"Results in having to parametrise for IOSim in KES and DSIGN for testing")),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Prepared an API for proof generation in sidechains, with it's C API for integration with JVM languages."),(0,n.kt)("li",{parentName:"ul"},"Design document and start interacting with researchers for concrete instantiation of SNARK-based ATMS."),(0,n.kt)("li",{parentName:"ul"},"EdDSA over JubJub ready")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/50d19186.ca8701fc.js b/assets/js/50d19186.ca8701fc.js new file mode 100644 index 0000000000..b2aa5a5e34 --- /dev/null +++ b/assets/js/50d19186.ca8701fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6566],{80956:s=>{s.exports=JSON.parse('{"label":"consensus","permalink":"/tags/consensus","allTagsPath":"/tags","count":45}')}}]); \ No newline at end of file diff --git a/assets/js/50f12e76.c3014720.js b/assets/js/50f12e76.c3014720.js new file mode 100644 index 0000000000..a8d0c241b9 --- /dev/null +++ b/assets/js/50f12e76.c3014720.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[26308],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(r),d=a,f=u["".concat(s,".").concat(d)]||u[d]||m[d]||o;return r?n.createElement(f,i(i({ref:t},c),{},{components:r})):n.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2024-01-05-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-01-05-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-05-sre.md",source:"@site/blog/2024-01-05-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-01-05T00:00:00.000Z",formattedDate:"January 5, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.34,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-01-05-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-01-05-hydra"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-12-30-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:p},u="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the lightly staffed holiday period for node SRE, the emphasis was on\nmaintaining environment stability, tuning and resolving any noisey alerts."),(0,a.kt)("p",null,"Investigation into and testing around the following two topics also\nstarted during this period:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Ledger snapshots causing a small number of missed slots for forgers on mainnet:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/868"},"ouroboros-consensus-issue-868"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"A cardano-node rare file descriptor leak, with a more detailed description\n",(0,a.kt)("a",{parentName:"p",href:"/2024-01-09-network"},"here")))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/51068.b4d6108e.js b/assets/js/51068.b4d6108e.js new file mode 100644 index 0000000000..5f4f5e0424 --- /dev/null +++ b/assets/js/51068.b4d6108e.js @@ -0,0 +1 @@ +(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[51068],{3905:(e,t,r)=>{"use strict";r.d(t,{Zo:()=>s,kt:()=>d});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},f="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),f=c(r),y=o,d=f["".concat(l,".").concat(y)]||f[y]||p[y]||a;return r?n.createElement(d,i(i({ref:t},s),{},{components:r})):n.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var u={};for(var l in t)hasOwnProperty.call(t,l)&&(u[l]=t[l]);u.originalType=e,u[f]="string"==typeof e?e:o,i[1]=u;for(var c=2;c{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)};var r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(e,t){return!1!==t.clone&&t.isMergeableObject(e)?l((r=e,Array.isArray(r)?[]:{}),e,t):e;var r}function o(e,t,r){return e.concat(t).map((function(e){return n(e,r)}))}function a(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function i(e,t){try{return t in e}catch(r){return!1}}function u(e,t,r){var o={};return r.isMergeableObject(e)&&a(e).forEach((function(t){o[t]=n(e[t],r)})),a(t).forEach((function(a){(function(e,t){return i(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,a)||(i(e,a)&&r.isMergeableObject(t[a])?o[a]=function(e,t){if(!t.customMerge)return l;var r=t.customMerge(e);return"function"==typeof r?r:l}(a,r)(e[a],t[a],r):o[a]=n(t[a],r))})),o}function l(e,r,a){(a=a||{}).arrayMerge=a.arrayMerge||o,a.isMergeableObject=a.isMergeableObject||t,a.cloneUnlessOtherwiseSpecified=n;var i=Array.isArray(r);return i===Array.isArray(e)?i?a.arrayMerge(e,r,a):u(e,r,a):n(r,a)}l.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,r){return l(e,r,t)}),{})};var c=l;e.exports=c},49090:e=>{function t(e,t){e.onload=function(){this.onerror=this.onload=null,t(null,e)},e.onerror=function(){this.onerror=this.onload=null,t(new Error("Failed to load "+this.src),e)}}function r(e,t){e.onreadystatechange=function(){"complete"!=this.readyState&&"loaded"!=this.readyState||(this.onreadystatechange=null,t(null,e))}}e.exports=function(e,n,o){var a=document.head||document.getElementsByTagName("head")[0],i=document.createElement("script");"function"==typeof n&&(o=n,n={}),n=n||{},o=o||function(){},i.type=n.type||"text/javascript",i.charset=n.charset||"utf8",i.async=!("async"in n)||!!n.async,i.src=e,n.attrs&&function(e,t){for(var r in t)e.setAttribute(r,t[r])}(i,n.attrs),n.text&&(i.text=""+n.text),("onload"in i?t:r)(i,o),i.onload||t(i,o),a.appendChild(i)}},30845:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});var n=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function o(e,t){if(e.length!==t.length)return!1;for(var r=0;r{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o,a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(67294)),i=(o=r(69590))&&o.__esModule?o:{default:o},u=r(85741),l=r(38045);function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function s(){return s=Object.assign||function(e){for(var t=1;t0&&e<1){var n=this.player.getDuration();return n?void this.player.seekTo(n*e):void console.warn("ReactPlayer: could not seek using fraction \u2013\xa0duration not yet available")}this.player.seekTo(e)}else 0!==e&&(this.seekOnPlay=e,setTimeout((function(){r.seekOnPlay=null}),5e3))}},{key:"render",value:function(){var e=this.props.activePlayer;return e?a.default.createElement(e,s({},this.props,{onMount:this.handlePlayerMount,onReady:this.handleReady,onPlay:this.handlePlay,onPause:this.handlePause,onEnded:this.handleEnded,onLoaded:this.handleLoaded,onError:this.handleError})):null}}],r&&f(t.prototype,r),n&&f(t,n),u}(a.Component);t.default=v,b(v,"displayName","Player"),b(v,"propTypes",u.propTypes),b(v,"defaultProps",u.defaultProps)},83855:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=a();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var u=o?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(r,i,u):r[i]=e[i]}r.default=e,t&&t.set(e,r);return r}(r(67294));function a(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return a=function(){return e},e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createReactPlayer=void 0;var n=k(r(67294)),o=s(r(9996)),a=s(r(30845)),i=s(r(69590)),u=r(85741),l=r(38045),c=s(r(60722));function s(e){return e&&e.__esModule?e:{default:e}}function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function y(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&void 0!==arguments[0]?arguments[0]:"player";return r.player?r.player.getInternalPlayer(e):null})),w(g(r),"seekTo",(function(e,t){if(!r.player)return null;r.player.seekTo(e,t)})),w(g(r),"handleReady",(function(){r.props.onReady(g(r))})),w(g(r),"getActivePlayer",(0,a.default)((function(r){for(var n=0,o=[].concat(T,h(e));n{"use strict";t.Z=void 0;var n,o=(n=r(86497))&&n.__esModule?n:{default:n},a=r(70390);var i=o.default[o.default.length-1],u=(0,a.createReactPlayer)(o.default,i);t.Z=u},71776:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.canPlay=t.FLV_EXTENSIONS=t.DASH_EXTENSIONS=t.HLS_EXTENSIONS=t.VIDEO_EXTENSIONS=t.AUDIO_EXTENSIONS=t.MATCH_URL_KALTURA=t.MATCH_URL_VIDYARD=t.MATCH_URL_MIXCLOUD=t.MATCH_URL_DAILYMOTION=t.MATCH_URL_TWITCH_CHANNEL=t.MATCH_URL_TWITCH_VIDEO=t.MATCH_URL_WISTIA=t.MATCH_URL_STREAMABLE=t.MATCH_URL_FACEBOOK_WATCH=t.MATCH_URL_FACEBOOK=t.MATCH_URL_VIMEO=t.MATCH_URL_SOUNDCLOUD=t.MATCH_URL_YOUTUBE=void 0;var n=r(38045);function o(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,l=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return u=e.done,e},e:function(e){l=!0,i=e},f:function(){try{u||null==r.return||r.return()}finally{if(l)throw i}}}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(67294)),a=r(38045),i=r(71776);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(67294)),a=r(38045),i=r(71776);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(){return l=Object.assign||function(e){for(var t=1;t{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(67294)),a=r(38045),i=r(71776);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(){return l=Object.assign||function(e){for(var t=1;t1,v=h&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||b)&&!window.MSStream,m=h&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent)&&!window.MSStream,P=/www\.dropbox\.com\/.+/,g=/https:\/\/watch\.cloudflarestream\.com\/([a-z0-9]+)/,O=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(y,e);var t,r,n,u=f(y);function y(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,y);for(var t=arguments.length,r=new Array(t),n=0;n0?r.end(r.length-1):t}},{key:"getCurrentTime",value:function(){return this.player?this.player.currentTime:null}},{key:"getSecondsLoaded",value:function(){if(!this.player)return null;var e=this.player.buffered;if(0===e.length)return 0;var t=e.end(e.length-1),r=this.getDuration();return t>r?r:t}},{key:"getSource",value:function(e){var t=this.shouldUseHLS(e),r=this.shouldUseDASH(e),n=this.shouldUseFLV(e);if(!(e instanceof Array||(0,a.isMediaStream)(e)||t||r||n))return P.test(e)?e.replace("www.dropbox.com","dl.dropboxusercontent.com"):e}},{key:"render",value:function(){var e=this.props,t=e.url,r=e.playing,n=e.loop,a=e.controls,i=e.muted,u=e.config,c=e.width,s=e.height,f=this.shouldUseAudio(this.props)?"audio":"video",p={width:"auto"===c?c:"100%",height:"auto"===s?s:"100%"};return o.default.createElement(f,l({ref:this.ref,src:this.getSource(t),style:p,preload:"auto",autoPlay:r||void 0,controls:a,muted:i,loop:n},u.attributes),t instanceof Array&&t.map(this.renderSourceElement),u.tracks.map(this.renderTrack))}}])&&c(t.prototype,r),n&&c(t,n),y}(o.Component);t.default=O,d(O,"displayName","FilePlayer"),d(O,"canPlay",i.canPlay.file)},73911:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(67294)),a=r(38045),i=r(71776);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){for(var r=0;r{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(67294)),a=r(38045),i=r(71776);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(67294)),a=r(38045),i=r(71776);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(67294)),a=r(38045),i=r(71776);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){for(var r=0;r{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(67294)),a=r(38045),i=r(71776);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e,t){for(var r=0;r{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(67294)),a=r(38045),i=r(71776);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e,t){for(var r=0;r{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(67294)),a=r(38045),i=r(71776);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e,t){for(var r=0;r{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(67294)),a=r(38045),i=r(71776);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(67294)),a=r(38045),i=r(71776);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(67294),o=r(38045),a=r(71776);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}var c=[{key:"youtube",name:"YouTube",canPlay:a.canPlay.youtube,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(60356))}))}))},{key:"soundcloud",name:"SoundCloud",canPlay:a.canPlay.soundcloud,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(72648))}))}))},{key:"vimeo",name:"Vimeo",canPlay:a.canPlay.vimeo,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(80868))}))}))},{key:"facebook",name:"Facebook",canPlay:a.canPlay.facebook,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(31972))}))}))},{key:"streamable",name:"Streamable",canPlay:a.canPlay.streamable,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(50993))}))}))},{key:"wistia",name:"Wistia",canPlay:a.canPlay.wistia,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(8018))}))}))},{key:"twitch",name:"Twitch",canPlay:a.canPlay.twitch,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(29482))}))}))},{key:"dailymotion",name:"DailyMotion",canPlay:a.canPlay.dailymotion,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(36807))}))}))},{key:"mixcloud",name:"Mixcloud",canPlay:a.canPlay.mixcloud,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(50143))}))}))},{key:"vidyard",name:"Vidyard",canPlay:a.canPlay.vidyard,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(36596))}))}))},{key:"kaltura",name:"Kaltura",canPlay:a.canPlay.kaltura,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(73911))}))}))},{key:"file",name:"FilePlayer",canPlay:a.canPlay.file,canEnablePIP:function(e){return a.canPlay.file(e)&&(document.pictureInPictureEnabled||(0,o.supportsWebKitPresentationMode)())&&!a.AUDIO_EXTENSIONS.test(e)},lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(14926))}))}))}];t.default=c},85741:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultProps=t.propTypes=void 0;var n,o=(n=r(45697))&&n.__esModule?n:{default:n};var a=o.default.string,i=o.default.bool,u=o.default.number,l=o.default.array,c=o.default.oneOfType,s=o.default.shape,f=o.default.object,p=o.default.func,y=o.default.node,d={url:c([a,l,f]),playing:i,loop:i,controls:i,volume:u,muted:i,playbackRate:u,width:c([a,u]),height:c([a,u]),style:f,progressInterval:u,playsinline:i,pip:i,stopOnUnmount:i,light:c([i,a,f]),playIcon:y,previewTabIndex:u,fallback:y,oEmbedUrl:a,wrapper:c([a,p,s({render:p.isRequired})]),config:s({soundcloud:s({options:f}),youtube:s({playerVars:f,embedOptions:f,onUnstarted:p}),facebook:s({appId:a,version:a,playerId:a,attributes:f}),dailymotion:s({params:f}),vimeo:s({playerOptions:f,title:a}),file:s({attributes:f,tracks:l,forceVideo:i,forceAudio:i,forceHLS:i,forceSafariHLS:i,forceDASH:i,forceFLV:i,hlsOptions:f,hlsVersion:a,dashVersion:a,flvVersion:a}),wistia:s({options:f,playerId:a,customControls:l}),mixcloud:s({options:f}),twitch:s({options:f,playerId:a}),vidyard:s({options:f})}),onReady:p,onStart:p,onPlay:p,onPause:p,onBuffer:p,onBufferEnd:p,onEnded:p,onError:p,onDuration:p,onSeek:p,onPlaybackRateChange:p,onProgress:p,onClickPreview:p,onEnablePIP:p,onDisablePIP:p};t.propTypes=d;var h=function(){},b={playing:!1,loop:!1,controls:!1,volume:null,muted:!1,playbackRate:1,width:"640px",height:"360px",style:{},progressInterval:1e3,playsinline:!1,pip:!1,stopOnUnmount:!0,light:!1,fallback:null,wrapper:"div",previewTabIndex:0,oEmbedUrl:"https://noembed.com/embed?url={url}",config:{soundcloud:{options:{visual:!0,buying:!1,liking:!1,download:!1,sharing:!1,show_comments:!1,show_playcount:!1}},youtube:{playerVars:{playsinline:1,showinfo:0,rel:0,iv_load_policy:3,modestbranding:1},embedOptions:{},onUnstarted:h},facebook:{appId:"1309697205772819",version:"v3.3",playerId:null,attributes:{}},dailymotion:{params:{api:1,"endscreen-enable":!1}},vimeo:{playerOptions:{autopause:!1,byline:!1,portrait:!1,title:!1},title:null},file:{attributes:{},tracks:[],forceVideo:!1,forceAudio:!1,forceHLS:!1,forceDASH:!1,forceFLV:!1,hlsOptions:{},hlsVersion:"1.1.4",dashVersion:"3.1.3",flvVersion:"1.5.0"},wistia:{options:{},playerId:null,customControls:null},mixcloud:{options:{hide_cover:1}},twitch:{options:{},playerId:null},vidyard:{options:{}}},onReady:h,onStart:h,onPlay:h,onPause:h,onBuffer:h,onBufferEnd:h,onEnded:h,onError:h,onDuration:h,onSeek:h,onPlaybackRateChange:h,onProgress:h,onClickPreview:h,onEnablePIP:h,onDisablePIP:h};t.defaultProps=b},38045:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseStartTime=function(e){return p(e,l)},t.parseEndTime=function(e){return p(e,c)},t.randomString=function(){return Math.random().toString(36).substr(2,5)},t.queryString=function(e){return Object.keys(e).map((function(t){return"".concat(t,"=").concat(e[t])})).join("&")},t.getSDK=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){return!0},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:n.default,i=y(t);if(i&&o(i))return Promise.resolve(i);return new Promise((function(n,o){if(d[e])d[e].push({resolve:n,reject:o});else{d[e]=[{resolve:n,reject:o}];var i=function(t){d[e].forEach((function(e){return e.resolve(t)}))};if(r){var u=window[r];window[r]=function(){u&&u(),i(y(t))}}a(e,(function(n){n?(d[e].forEach((function(e){return e.reject(n)})),d[e]=null):r||i(y(t))}))}}))},t.getConfig=function(e,t){return(0,o.default)(t.config,e.config)},t.omit=function(e){for(var t,r=arguments.length,n=new Array(r>1?r-1:0),o=1;o1?n-1:0),a=1;a0&&void 0!==arguments[0]?arguments[0]:document.createElement("video"),t=!1===/iPhone|iPod/.test(navigator.userAgent);return e.webkitSupportsPresentationMode&&"function"==typeof e.webkitSetPresentationMode&&t};var n=a(r(49090)),o=a(r(9996));function a(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,a=void 0;try{for(var i,u=e[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(l){o=!0,a=l}finally{try{n||null==u.return||u.return()}finally{if(o)throw a}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return u(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{e.exports=JSON.parse('{"permalink":"/page/29","page":29,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/28","nextPage":"/page/30","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/519b5664.49f1de2b.js b/assets/js/519b5664.49f1de2b.js new file mode 100644 index 0000000000..da65bb19c8 --- /dev/null +++ b/assets/js/519b5664.49f1de2b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[41419],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=s(a),m=n,d=c["".concat(p,".").concat(m)]||c[m]||h[m]||o;return a?r.createElement(d,i(i({ref:t},u),{},{components:a})):r.createElement(d,i({ref:t},u))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-01-05-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-01-05-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-05-hydra.md",source:"@site/blog/2024-01-05-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-01-05T00:00:00.000Z",formattedDate:"January 5, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.93,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-01-05-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-01-09-network"},nextItem:{title:"SRE Team Update",permalink:"/2024-01-05-sre"}},p={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],u={toc:s},c="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"In between the end-of-year holidays, the Hydra team completed the implementation\nof the Conway support feature, fixed a minor bug that was hindering tests from\nrunning on MacOS, and addressed a regression in the protocol-parameter formats\nused by the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node"),". They also worked on off-chain code for incremental\ndecommits, specifically focusing on transaction creation. Furthermore, they\nconducted a spike on implementing a Chess game using Hydra, with an experience\nreport provided."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fixed a regression on protocol-parameter formats used by the ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1218"},"#1226")),(0,n.kt)("li",{parentName:"ul"},"Fixed a minor bug prohibiting tests running on MacOS ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1218"},"#1218")),(0,n.kt)("li",{parentName:"ul"},"Complete conway support feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1227"},"#1227")),(0,n.kt)("li",{parentName:"ul"},"Transaction creation off-chain code for incremental decommits ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1218"},"#1218")),(0,n.kt)("li",{parentName:"ul"},"First spike on implementing a Chess game on Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/abailly/black-jack/blob/main/2023-experience-report.md"},"report"),", related to: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1098"},"#1098"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fully resolve protocol parameter misalignment ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1234"},"#1234")),(0,n.kt)("li",{parentName:"ul"},"Cut a release 0.15.0 to ship offline-mode and conway support"),(0,n.kt)("li",{parentName:"ul"},"Prepare demo for conway support"),(0,n.kt)("li",{parentName:"ul"},"Complete transaction creation and observation for incremental decommits"),(0,n.kt)("li",{parentName:"ul"},"Backend for a ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-explorer")," that can track all heads on-chain")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/51bf60d9.2a426149.js b/assets/js/51bf60d9.2a426149.js new file mode 100644 index 0000000000..b4addaa0bb --- /dev/null +++ b/assets/js/51bf60d9.2a426149.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[62901],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>h});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=o.createContext({}),p=function(e){var t=o.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return o.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,u=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),c=p(r),d=n,h=c["".concat(u,".").concat(d)]||c[d]||m[d]||a;return r?o.createElement(h,i(i({ref:t},l),{},{components:r})):o.createElement(h,i({ref:t},l))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var o=r(87462),n=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-05-12-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-05-12-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-12-network.md",source:"@site/blog/2023-05-12-network.md",title:"Network Team Update",description:"High level summary",date:"2023-05-12T00:00:00.000Z",formattedDate:"May 12, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.79,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-05-12-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-05-12-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2023-05-05-ledger"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Detailed summary",id:"detailed-summary",level:2}],l={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"We started working on a new way to switch between root & ledger peers (see\nbelow). We continued to work on ",(0,n.kt)("inlineCode",{parentName:"p"},"eclipse-evasion"),". We merged changes to\nHandshake contributed by Galois Inc. We made improvements to our tests (fixed\na flaky test, added cddl specs for ",(0,n.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionData")," and\n",(0,n.kt)("inlineCode",{parentName:"p"},"NodeToClientVersionData"),"). We improved our CI and automated the process of\nreleasing new package version to ",(0,n.kt)("inlineCode",{parentName:"p"},"CHaP"),"."),(0,n.kt)("h2",{id:"detailed-summary"},"Detailed summary"),(0,n.kt)("p",null,"We continued to work on testing ",(0,n.kt)("inlineCode",{parentName:"p"},"eclipse-evasion"),"."),(0,n.kt)("p",null,"We came up with an idea to limit how full node wallets relay on root peers\n(currently operated by IOG, in future also CF and Emurgo). We designed\na switch to use ledger peers if the node tip is close enough to the current\ntime. For more details see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4530"},"#4530"),"."),(0,n.kt)("p",null,"We merged changes to the handshake mini-protocol which allow one to query\nserver's ",(0,n.kt)("inlineCode",{parentName:"p"},"node-to-node")," / ",(0,n.kt)("inlineCode",{parentName:"p"},"node-to-client")," parameters. We are grateful to\nGalois Inc. for implementing it, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4256"},"#4256")," and ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4538"},"#4538"),". We published new version\nof packages to CHaP ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages/pull/253"},"chap-#253"),"."),(0,n.kt)("p",null,"We added ",(0,n.kt)("inlineCode",{parentName:"p"},"DiffusionError")," wrapper. Thanks to it, ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," will\nnot duplicate diffusion errors messages in the log, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4537"},"#4537"),"."),(0,n.kt)("p",null,"We fixed an issue which caused one of our tests to be flaky, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4515"},"#4515"),"."),(0,n.kt)("p",null,"We added cddl tests for ",(0,n.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionData")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"NodeToClientVersionData"),":\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4540"},"#4540"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4544"},"#4544")," (in review)."),(0,n.kt)("p",null,"We wrote scripts which will help us release packages as well as verify that we\nreleased all the package necessary to build the newest set of packages,\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4542"},"#4542"),"."),(0,n.kt)("p",null,"We renamed the consensus startup tracer and make sure it doesn't log\n",(0,n.kt)("inlineCode",{parentName:"p"},"ExitSuccess")," exceptions, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pulls/71"},"consensus-#71"),"."),(0,n.kt)("p",null,"We reviewed PR which adds ",(0,n.kt)("inlineCode",{parentName:"p"},"RawBearer")," API, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4395"},"#4395"),"."),(0,n.kt)("p",null,"We made series of improvements to our CI:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4539"},"#4539"),": we don't need to install cryptographic libraries in CI;"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4545"},"#4545"),": Javier Sagredo (consensus) cleaned up CI after ",(0,n.kt)("inlineCode",{parentName:"li"},"consensus")," moved\nto a new repo;"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4546"},"#4546"),": we switched to use ",(0,n.kt)("a",{parentName:"li",href:"https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue"},"GitHub merge queues"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4549"},"#4549"),": we made it possible to trigger building haddocks manually;"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4553"},"#4553"),": we fixed and enhanced caching of building dependencies.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/51cf8946.26856ee1.js b/assets/js/51cf8946.26856ee1.js new file mode 100644 index 0000000000..d5ed545caa --- /dev/null +++ b/assets/js/51cf8946.26856ee1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6324],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(a),u=n,h=d["".concat(s,".").concat(u)]||d[u]||m[u]||o;return a?r.createElement(h,i(i({ref:t},p),{},{components:a})):r.createElement(h,i({ref:t},p))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:n,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2022-11-25-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-25-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-25-hydra.md",source:"@site/blog/2022-11-25-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2022-11-25T00:00:00.000Z",formattedDate:"November 25, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.73,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-11-25-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2022-11-25-crypto"},nextItem:{title:"Ledger Team Update",permalink:"/2022-11-23-ledger"}},s={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:c},d="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a ",(0,n.kt)("a",{parentName:"p",href:"https://summit.cardano.org/agenda-day-2/cardano-ballot-speaker-winner-presentation-6/"},"presentation")," about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Attended the Cardano Summit in Lausanne. Hydra was topic of one talk: ",(0,n.kt)("a",{parentName:"li",href:"https://summit.cardano.org/agenda-day-2/cardano-ballot-speaker-winner-presentation-6/"},"https://summit.cardano.org/agenda-day-2/cardano-ballot-speaker-winner-presentation-6/")),(0,n.kt)("li",{parentName:"ul"},"Had a team workshop / hackathon after the summit:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Retrospective"),(0,n.kt)("li",{parentName:"ul"},"Impact mapping session"),(0,n.kt)("li",{parentName:"ul"},"Hacked on smaller things"))),(0,n.kt)("li",{parentName:"ul"},"Got a PR for tullia/cicero things by @kdermetfan")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly report & review meeting"),(0,n.kt)("li",{parentName:"ul"},"Tie up several loose ends / branches."),(0,n.kt)("li",{parentName:"ul"},"Resolve Tx validity discussions & PRs."),(0,n.kt)("li",{parentName:"ul"},"Review cicero PR & try it out.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5226ad4f.06d33a85.js b/assets/js/5226ad4f.06d33a85.js new file mode 100644 index 0000000000..befd39b5bb --- /dev/null +++ b/assets/js/5226ad4f.06d33a85.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17214],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=u(a),h=n,c=m["".concat(p,".").concat(h)]||m[h]||d[h]||l;return a?r.createElement(c,i(i({ref:t},s),{},{components:a})):r.createElement(c,i({ref:t},s))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=h;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:n,i[1]=o;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2023-08-18-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2023-08-18-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-ledger.md",source:"@site/blog/2023-08-18-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-08-18T00:00:00.000Z",formattedDate:"August 18, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.7,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-08-18-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-08-18-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-08-18-network"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway progress",id:"conway-progress",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3}],s={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The ledger team made great progress in advancing Conway era forward. In particular, voting\nfor DRep and Stake Pool Operators is now at the state that can be used by downstream\ncomponents. Addition of new ledger state queries makes it possible to verify changes to\nthe governance state, such as placement of votes, submission of governance proposals,\ninspecting DRep stake distribution and more. Addition of treasury withdrawals concludes the\nability to enact all of the governance actions, except for the hard fork initiation."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway-progress"},"Conway progress"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3577"},"pull-3577")," - Move ",(0,n.kt)("inlineCode",{parentName:"li"},"PParams")," to ",(0,n.kt)("inlineCode",{parentName:"li"},"GovState")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3609"},"pull-3609")," - Adjust thresholds for sanchonet"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3604"},"pull-3604")," - README: update CIP-1694 link"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3616"},"pull-3616")," - Switch ",(0,n.kt)("inlineCode",{parentName:"li"},"TreasuryWithdrawals")," to use ",(0,n.kt)("inlineCode",{parentName:"li"},"RewardAcnt")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3599"},"pull-3599")," - Add governance action well-formedness check"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3607"},"pull-3607")," - Rename governance to gov"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3601"},"pull-3601")," - Added ",(0,n.kt)("inlineCode",{parentName:"li"},"DRep")," anchors"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3615"},"pull-3615")," - Add optional previous ",(0,n.kt)("inlineCode",{parentName:"li"},"GovActionId")," in some ",(0,n.kt)("inlineCode",{parentName:"li"},"ProposalProcedures")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3596"},"pull-3596")," - Upgradeable families"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3625"},"pull-3625")," - Change constitution to use ",(0,n.kt)("inlineCode",{parentName:"li"},"Anchor")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3592"},"pull-3592")," - Added pulsing incremental computation of the DRep distribution"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3523"},"pull-3523")," - Treasury donations"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3633"},"pull-3633")," - Prevent state changes on phase2 failure"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3634"},"pull-3634")," - Disable serialization of protocolVersion param update"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3630"},"pull-3630")," - Implemented DRep refreshing"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3640"},"pull-3640")," - Remove crypto parameterization from ",(0,n.kt)("inlineCode",{parentName:"li"},"AnchorData")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3636"},"pull-3636"),' - Implement DRep ratification with an "always passing"; threshold'),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3648"},"pull-3648")," - Governance queries"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3650"},"pull-3650")," - Change environment for ",(0,n.kt)("inlineCode",{parentName:"li"},"ShelleyPOOLREAP")," rule"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3658"},"pull-3658")," - Set ",(0,n.kt)("inlineCode",{parentName:"li"},"DRep")," ratify threshold to 51%"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3628"},"pull-3628")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"DELEG"),", ",(0,n.kt)("inlineCode",{parentName:"li"},"POOL"),", ",(0,n.kt)("inlineCode",{parentName:"li"},"GOVCERT")," conformance with Spec v0.8")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3619"},"pull-3619")," - Disabled a broken test")),(0,n.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3660"},"pull-3660")," - Fix bounds and versions"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3661"},"pull-3661")," - Adjust versions, bounds and CHANGELOGs to account for the latest release")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5282f34e.219c9c18.js b/assets/js/5282f34e.219c9c18.js new file mode 100644 index 0000000000..a8042acdfd --- /dev/null +++ b/assets/js/5282f34e.219c9c18.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[71531],{391:a=>{a.exports=JSON.parse('{"label":"mithril","permalink":"/tags/mithril","allTagsPath":"/tags","count":63}')}}]); \ No newline at end of file diff --git a/assets/js/5296f864.4a9171b2.js b/assets/js/5296f864.4a9171b2.js new file mode 100644 index 0000000000..ff23f38eab --- /dev/null +++ b/assets/js/5296f864.4a9171b2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6255],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"SRE Q2 2023 Update",slug:"2023-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2023-Q2-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q2-sre.md",source:"@site/quarterly/2023-Q2-sre.md",title:"SRE Q2 2023 Update",description:"2023-04 - 2023-06",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"sre",permalink:"/quarterly/tags/sre"}],readingTime:.68,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q2 2023 Update",slug:"2023-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Q2 2023 Update",permalink:"/quarterly/2023-Q2-network"},nextItem:{title:"Performance & Tracing Q3 2023 Update",permalink:"/quarterly/2023-Q3-performance-and-tracing"}},s={authorsImageUrls:[void 0]},c=[{value:"2023-04 - 2023-06",id:"2023-04---2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],p={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"2023-04---2023-06"},"2023-04 - 2023-06"),(0,a.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,a.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Expanding the darwin CI cluster and adding aarch64 builder support"),(0,a.kt)("li",{parentName:"ul"},"Adding bare metal capability to bitte clusters"),(0,a.kt)("li",{parentName:"ul"},"Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality"),(0,a.kt)("li",{parentName:"ul"},"Creation of pool performance analysis queries and scripting"),(0,a.kt)("li",{parentName:"ul"},"Migration of testnet metadata server to cardano-world"),(0,a.kt)("li",{parentName:"ul"},"Cardano shelley qa migration to cardano-world"),(0,a.kt)("li",{parentName:"ul"},"Cardano sanchonet environment spin up to test Conway era functionality"),(0,a.kt)("li",{parentName:"ul"},"Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature")),(0,a.kt)("h3",{id:"next-steps"},"Next steps"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Continue with the conversion of mainnet to using p2p topology")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/52b8fa8a.7439e906.js b/assets/js/52b8fa8a.7439e906.js new file mode 100644 index 0000000000..a37d744dc5 --- /dev/null +++ b/assets/js/52b8fa8a.7439e906.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[19516],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),s=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(a),h=n,m=d["".concat(u,".").concat(h)]||d[h]||c[h]||i;return a?r.createElement(m,o(o({ref:t},p),{},{components:a})):r.createElement(m,o({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[d]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-08-25-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-08-25-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-25-hydra.md",source:"@site/blog/2023-08-25-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-08-25T00:00:00.000Z",formattedDate:"August 25, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.875,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-08-25-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-08-28-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-08-24-performance-and-tracing"}},u={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:s},d="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team conducted the monthly review meeting for Agust,which\ncontinously ensures transparent communication and project evaluation."),(0,n.kt)("p",null,"In terms of community engagement, the Hydra team gave a Hydra master-class at\nRareEvo workshop as an educational initiative for the community.\nAdditionally, the team updated the Hydra demo and tutorial to include Mithril\nand latest release changes."),(0,n.kt)("p",null,"They also focused on exploring the Hydra network resiliance in order to improve\n",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," availability, as it becomes stuck very easily and that leads to a\nbad user experience."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Hydra master-class at RareEvo workshop!"),(0,n.kt)("li",{parentName:"ul"},"Monthly report & review meeting"),(0,n.kt)("li",{parentName:"ul"},"Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff"),(0,n.kt)("li",{parentName:"ul"},"Groomed network resilience and explorer features ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/188"},"#188")),(0,n.kt)("li",{parentName:"ul"},"New ADR for \u201cResourced based API\u201d ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1028"},"#1028"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Have a poc on network resilience working ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/188"},"#188")),(0,n.kt)("li",{parentName:"ul"},"Fix issue ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/931"},"#931"),": \u201cChain state in head state not updated on replayed observation\u201d"),(0,n.kt)("li",{parentName:"ul"},"Fix issue ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1039"},"#1039"),': "Close transaction dropped from cardano-node"')))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/531a6747.45b07d6f.js b/assets/js/531a6747.45b07d6f.js new file mode 100644 index 0000000000..a16e8e25e5 --- /dev/null +++ b/assets/js/531a6747.45b07d6f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50550],{47071:e=>{e.exports=JSON.parse('{"permalink":"/tags/network","page":1,"postsPerPage":5,"totalPages":7,"totalCount":35,"nextPage":"/tags/network/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/533a09ca.39efdc73.js b/assets/js/533a09ca.39efdc73.js new file mode 100644 index 0000000000..ce24a182f5 --- /dev/null +++ b/assets/js/533a09ca.39efdc73.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54607],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function s(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},b=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(r),b=n,m=p["".concat(l,".").concat(b)]||p[b]||g[b]||o;return r?a.createElement(m,s(s({ref:t},u),{},{components:r})):a.createElement(m,s({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,s=new Array(o);s[0]=b;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:n,s[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>g,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const o={sidebar_position:3},s="Create a Blog Post",i={unversionedId:"tutorial-basics/create-a-blog-post",id:"tutorial-basics/create-a-blog-post",title:"Create a Blog Post",description:"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...",source:"@site/docs/tutorial-basics/create-a-blog-post.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/create-a-blog-post",permalink:"/docs/tutorial-basics/create-a-blog-post",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"defaultSidebar",previous:{title:"Create a Document",permalink:"/docs/tutorial-basics/create-a-document"},next:{title:"Markdown Features",permalink:"/docs/tutorial-basics/markdown-features"}},l={},c=[{value:"Create your first Post",id:"create-your-first-post",level:2}],u={toc:c},p="wrapper";function g(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"create-a-blog-post"},"Create a Blog Post"),(0,n.kt)("p",null,"Docusaurus creates a ",(0,n.kt)("strong",{parentName:"p"},"page for each blog post"),", but also a ",(0,n.kt)("strong",{parentName:"p"},"blog index page"),", a ",(0,n.kt)("strong",{parentName:"p"},"tag system"),", an ",(0,n.kt)("strong",{parentName:"p"},"RSS")," feed..."),(0,n.kt)("h2",{id:"create-your-first-post"},"Create your first Post"),(0,n.kt)("p",null,"Create a file at ",(0,n.kt)("inlineCode",{parentName:"p"},"blog/2021-02-28-greetings.md"),":"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-md",metastring:'title="blog/2021-02-28-greetings.md"',title:'"blog/2021-02-28-greetings.md"'},"---\nslug: greetings\ntitle: Greetings!\nauthors:\n - name: Joel Marcey\n title: Co-creator of Docusaurus 1\n url: https://github.com/JoelMarcey\n image_url: https://github.com/JoelMarcey.png\n - name: S\xe9bastien Lorber\n title: Docusaurus maintainer\n url: https://sebastienlorber.com\n image_url: https://github.com/slorber.png\ntags: [greetings]\n---\n\nCongratulations, you have made your first post!\n\nFeel free to play around and edit this post as much you like.\n")),(0,n.kt)("p",null,"A new blog post is now available at ",(0,n.kt)("a",{parentName:"p",href:"http://localhost:3000/blog/greetings"},"http://localhost:3000/blog/greetings"),"."))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/533bb9dc.e68b6c44.js b/assets/js/533bb9dc.e68b6c44.js new file mode 100644 index 0000000000..c508c3d0a2 --- /dev/null +++ b/assets/js/533bb9dc.e68b6c44.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70022],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=p(n),m=o,h=c["".concat(s,".").concat(m)]||c[m]||d[m]||r;return n?a.createElement(h,i(i({ref:t},u),{},{components:n})):a.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:o,i[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var a=n(87462),o=(n(67294),n(3905));const r={title:"Network Team Update",slug:"2022-11-28-network",authors:"coot",tags:["network","release"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-28-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-28-network.md",source:"@site/blog/2022-11-28-network.md",title:"Network Team Update",description:"Stake-Driven Data Diffusion Release for Relays",date:"2022-11-28T00:00:00.000Z",formattedDate:"November 28, 2022",tags:[{label:"network",permalink:"/tags/network"},{label:"release",permalink:"/tags/release"}],readingTime:3.675,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-11-28-network",authors:"coot",tags:["network","release"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2022-11-30-performance-and-tracing"},nextItem:{title:"Crypto Team Update",permalink:"/2022-11-25-crypto"}},s={authorsImageUrls:[void 0]},p=[{value:"Stake-Driven Data Diffusion Release for Relays",id:"stake-driven-data-diffusion-release-for-relays",level:2},{value:"Peer Sharing",id:"peer-sharing",level:3},{value:"DeltaQ",id:"deltaq",level:3},{value:"What have we achieve last sprint",id:"what-have-we-achieve-last-sprint",level:2},{value:"DeltaQ",id:"deltaq-1",level:3}],u={toc:p},c="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"stake-driven-data-diffusion-release-for-relays"},"Stake-Driven Data Diffusion Release for Relays"),(0,o.kt)("p",null,"IOG networking team decided to release the ",(0,o.kt)("em",{parentName:"p"},"Stake-Driven Data Diffusion with\nRobust Optimised Peer Selection")," also more commonly known as ",(0,o.kt)("em",{parentName:"p"},"P2P"),". In the\nlast update, we informed about a performance regression, but it turns out it\nonly affects block producers, and thus we highly advise against running it on\nsuch nodes. Further investigation is required to find the cause of it."),(0,o.kt)("p",null,"On IOG's benchmarking cluster we have seen quite a good performance improvement\non block propagation itself. The cluster is running a static topology with\nvalency 6 (each node is connected to 6 other nodes). In which every of the 50\nnodes are block producers. The setup of this network is the same as mainnet.\nWe've seen 40-50% performance improvement on block propagation comparing to the\nsame cluster deployed with the same topology but using non-P2P nodes. We think\nthis performance improvement is caused by using full duplex connections. Quite\nlikely the transaction traffic floating in both directions on the same TCP\nconnection helps to keep the TCP window open. Note that in a cluster of 50\nnodes with valency 6 the probability of having at least one duplex connection\nis more than 50%. We don't expect the same improvement on mainnet because the\nnetwork is much wider and the transaction traffic is not as large."),(0,o.kt)("p",null,"Just before the release we squashed two small bugs:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4163"},"issue #4163")," - top level integration bug in ",(0,o.kt)("inlineCode",{parentName:"li"},"keep-alive"),";"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4177"},"issue #4177")," - a bug in ",(0,o.kt)("inlineCode",{parentName:"li"},"outbound-governor"),";"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4165"},"PR #4165")," - a fix ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-ping")," support of ",(0,o.kt)("inlineCode",{parentName:"li"},"NodeToNodeV_10"),".")),(0,o.kt)("h3",{id:"peer-sharing"},"Peer Sharing"),(0,o.kt)("p",null,"We were carrying a review of ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"peer sharing PR"),"."),(0,o.kt)("h3",{id:"deltaq"},"DeltaQ"),(0,o.kt)("p",null,"Neil Davies was invited to give a guest lecture entitled ",(0,o.kt)("inlineCode",{parentName:"p"},"Avoiding System Catastrophes")," at ",(0,o.kt)("a",{parentName:"p",href:"https://uclouvain.be/en/index.html"},"UCLouvain"),"."),(0,o.kt)("h2",{id:"what-have-we-achieve-last-sprint"},"What have we achieve last sprint"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4163"},"issue #4163"),": we found out that a control message is not passed to the\n",(0,o.kt)("inlineCode",{parentName:"p"},"keep-alive")," mini-protocol, this results in every demotion executing demotion\ntimeout rather than a graceful termination. With the fix the node will no longer log:"),(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{ "kind": "PeerStatusChangeFailure"\n, "peerStatusChangeType": "WarmToCold (ConnectionId {localAddress = 192.168.0.10:7000, remoteAddress = 3.129.186.40:3000})"\n, "reason": "TimeoutError"\n}\n'))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4177"},"issue #4177"),": we fixed an assertion failure in the ",(0,o.kt)("inlineCode",{parentName:"p"},"outbound-governor"),"; now\nwe don't try demoted peers which are being demoted already.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4155"},"PR #4155"),": we refactored ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," packages. There's a top level\n",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-diffusion")," package which integrates ",(0,o.kt)("inlineCode",{parentName:"p"},"network"),"\n& ",(0,o.kt)("inlineCode",{parentName:"p"},"consensus")," code. We also introduced:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ouroboros-network-api")," package which contains the API shared between\n",(0,o.kt)("inlineCode",{parentName:"li"},"network")," & ",(0,o.kt)("inlineCode",{parentName:"li"},"conensus"),";"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ouroboros-network-mock")," package which contains mock API used for testing\n(e.g. a mock chain & chain producer, etc.)"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ouroboros-network-protocols")," package which contains implementation of all\n(but ",(0,o.kt)("inlineCode",{parentName:"li"},"handshake"),") mini-protocols, exposes a ",(0,o.kt)("inlineCode",{parentName:"li"},"testlib")," and contains ",(0,o.kt)("inlineCode",{parentName:"li"},"test"),"\nand ",(0,o.kt)("inlineCode",{parentName:"li"},"cddl")," components.")),(0,o.kt)("p",{parentName:"li"},"This made the dependency tree of ",(0,o.kt)("inlineCode",{parentName:"p"},"network")," & ",(0,o.kt)("inlineCode",{parentName:"p"},"consensus")," packages much\ncleaner.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4169"},"PR #4169"),": we described the usage of release branches in ",(0,o.kt)("inlineCode",{parentName:"p"},"CONTRIBUTING.md"),"\ndoc.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4165"},"PR #4165"),": we fixed ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-ping")," support of ",(0,o.kt)("inlineCode",{parentName:"p"},"NodeToNodeV_10")," protocol."))),(0,o.kt)("h3",{id:"deltaq-1"},"DeltaQ"),(0,o.kt)("p",null,"The abstract of the talk:"),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"An essential step to ensuring that distributed systems are fit for\npurpose."),(0,o.kt)("p",{parentName:"blockquote"},"Distributed systems have become an integral part of our society and\ndaily lives. We are, both implicitly and explicitly, individually as well as\ncollectively, placing ever more trust in them."),(0,o.kt)("p",{parentName:"blockquote"},"Are they worthy of this trust? Our need for them to be \u2018fit-for-purpose\u2019 goes\nwell beyond notions of functional correctness (i.e. never getting the wrong\nanswer). We need them to deliver the desired outcomes in a timely, robust,\nreliable, resilient fashion, at scale and in a sustainable way (both\neconomically and environmentally)."),(0,o.kt)("p",{parentName:"blockquote"},"This all sounds like a worthy aspiration, but what would be a practical\napproach to capturing and reasoning about these issues? How can we ensure that\nsystems can meet their fit-for-purpose objectives, not just in their design but\nas they are deployed, encounter the imperfect world, are scaled to become\neconomic, and proceed into ongoing maintenance?"),(0,o.kt)("p",{parentName:"blockquote"},"This talk will illustrate how the notions of Outcomes and Quality Attenuation\n(as captured by \u2018\u2206Q\u2019) are being used to both frame the necessary notions and\nprovide a basis for assuring the refinement and reification of such systems,\nfrom initial concept to operational infrastructure.")),(0,o.kt)("p",null,"You can download the slides from ",(0,o.kt)("a",{target:"_blank",href:n(98946).Z},"here"),"."))}d.isMDXComponent=!0},98946:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/files/2022-11-24-UCL-60c46564c5dee25b0060304c060ab1cf.pdf"}}]); \ No newline at end of file diff --git a/assets/js/5346bf97.1119bfdf.js b/assets/js/5346bf97.1119bfdf.js new file mode 100644 index 0000000000..6bc9d9117b --- /dev/null +++ b/assets/js/5346bf97.1119bfdf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[13530],{19803:e=>{e.exports=JSON.parse('{"permalink":"/tags/consensus/page/3","page":3,"postsPerPage":5,"totalPages":9,"totalCount":45,"previousPage":"/tags/consensus/page/2","nextPage":"/tags/consensus/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/5347b974.f083e9e8.js b/assets/js/5347b974.f083e9e8.js new file mode 100644 index 0000000000..7df338ff91 --- /dev/null +++ b/assets/js/5347b974.f083e9e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[88619],{39345:e=>{e.exports=JSON.parse('{"permalink":"/page/32","page":32,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/31","nextPage":"/page/33","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/53631751.2f05b60a.js b/assets/js/53631751.2f05b60a.js new file mode 100644 index 0000000000..6fd587f42e --- /dev/null +++ b/assets/js/53631751.2f05b60a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3685],{61016:e=>{e.exports=JSON.parse('{"permalink":"/page/87","page":87,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/86","nextPage":"/page/88","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/54a7c81e.59b9e205.js b/assets/js/54a7c81e.59b9e205.js new file mode 100644 index 0000000000..9fbc273a73 --- /dev/null +++ b/assets/js/54a7c81e.59b9e205.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16878],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),u=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(p.Provider,{value:e},t.children)},d="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,p=t.parentName,c=o(t,["components","mdxType","originalType","parentName"]),d=u(a),h=r,s=d["".concat(p,".").concat(h)]||d[h]||m[h]||i;return a?n.createElement(s,l(l({ref:e},c),{},{components:a})):n.createElement(s,l({ref:e},c))}));function s(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=h;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[d]="string"==typeof t?t:r,l[1]=o;for(var u=2;u{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-10-24-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",o={permalink:"/2023-10-24-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-24-node-cli-api.md",source:"@site/blog/2023-10-24-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-10-24T00:00:00.000Z",formattedDate:"October 24, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.68,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-10-24-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-10-25-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-10-20-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},d="wrapper";function m(t){let{components:e,...a}=t;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-10-11---2023-10-24"},"2023-10-11 - 2023-10-24"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"CARDANO-CLI"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Disambiguate cardano-cli stake credential related flags on treasury withdrawal governance actions making it easy to identify which is used for the deposit refund and which for the destination of the funds from the treasury if the action is ratified."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"stake-address-info")," now shows deposits balance."),(0,r.kt)("li",{parentName:"ul"},"Added ",(0,r.kt)("inlineCode",{parentName:"li"},"conway governance action view")," to allow to inspect governance action files before submitting them on a transaction."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"build-raw")," support for ",(0,r.kt)("inlineCode",{parentName:"li"},"--vote-file")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"--proposal-file"))),(0,r.kt)("p",null,"CARDANO-API"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Support DRep extended keys"),(0,r.kt)("li",{parentName:"ul"},"Support Plutus V1 in Conway")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/394"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.28.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/393"},"Simplify ",(0,r.kt)("inlineCode",{parentName:"a"},"toTxOutInAnyEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/390"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.27.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/389"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.26.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/380"},"Check that poll answer index is not negative, to avoid a Prelude.!! error")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/379"},"drep registration-certificate: add a golden test")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/378"},"Disambiguate treasury withdrawal flags")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/375"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"stake-address-info")," query also return deposit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/374"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"conway governance action view"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/372"},"Ch/clearer anchor flags")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/371"},"Command argument types for ",(0,r.kt)("inlineCode",{parentName:"a"},"transaction")," commands")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/370"},"Remove eras' constitution-hash")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/368"},"Shelley to Alonzo: add create-genesis-key-delegation-certificate to governance")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/367"},"Enable reading of Conway ",(0,r.kt)("inlineCode",{parentName:"a"},"TxWitness"),"es")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/366"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"governance action create-protocol-parameters-update")," Conway onwards only")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/365"},(0,r.kt)("inlineCode",{parentName:"a"},"transaction build-raw")," support for ",(0,r.kt)("inlineCode",{parentName:"a"},"--vote-file")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"--proposal-file"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/364"},"Command argument types for governance key commands")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/363"},"Add test of voting using a cc hot key"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/338"},"Add Show instance for FoldBlocksError")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/336"},"Upgrade typed-protocols to 1.1.1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/332"},"Improved validity range handling")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/331"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.28.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/330"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"AlonzoEraOnly"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/329"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"shelleyToAlonzoEraToShelleyToBabbageEra")," function")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/327"},"DRep extended key: add CastVerificationKeyRole")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/326"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardadno-api-8.27.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/325"},"Delete unnecessary calls to ",(0,r.kt)("inlineCode",{parentName:"a"},"shelleyBasedEraConstraints"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/324"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardadno-api-8.27.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/323"},"Support Plutus V1 in Conway")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/322"},"Parameterize GovernanceAction on era ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/320"},"Support DRep extended keys")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/317"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.26.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/314"},"Haddock document the case functions, so that their behavior is easier to understand when calling them")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/313"},"Avoid ",(0,r.kt)("inlineCode",{parentName:"a"},"IsShelleyBasedEra")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"IsCardanoEra")," where possible")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/312"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"MaryEraOnly")," eon. Disjoint functions"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5515"},"Factor out file creation for SPO"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5504"},"Tracer documentation generation enhacements "))),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/550b6b1a.1b3e987c.js b/assets/js/550b6b1a.1b3e987c.js new file mode 100644 index 0000000000..b5c0593f10 --- /dev/null +++ b/assets/js/550b6b1a.1b3e987c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95016],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=a.createContext({}),c=function(e){var t=a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=c(n),d=r,h=p["".concat(i,".").concat(d)]||p[d]||m[d]||o;return n?a.createElement(h,l(l({ref:t},u),{},{components:n})):a.createElement(h,l({ref:t},u))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=d;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[p]="string"==typeof e?e:r,l[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-04-03-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},l=void 0,s={permalink:"/2024-04-03-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-03-consensus.md",source:"@site/blog/2024-04-03-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-04-03T00:00:00.000Z",formattedDate:"April 3, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.685,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-04-03-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-04-05-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-04-03-mithril"}},i={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/1009"},"Made")," the ",(0,r.kt)("inlineCode",{parentName:"li"},"LocalTxMonitor")," ",(0,r.kt)("inlineCode",{parentName:"li"},"HasTx")," cross-era behavior less surprising."),(0,r.kt)("li",{parentName:"ul"},"Finalized the tests in ",(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus")," for the UTXO-HD branch, except the mempool-parallel test which is still failing sometimes."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/stevana/quickcheck-state-machine/pull/43"},"Fixed")," an upstream complication in ",(0,r.kt)("inlineCode",{parentName:"li"},"quickcheck-state-machine")," related to Parallel state machines which should allow us for an easier and more understandable setup of the parallel mempool tests."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/quickcheck-dynamic/pull/72"},"Drafted")," parallel state machine testing infrastructure for ",(0,r.kt)("inlineCode",{parentName:"li"},"quickcheck-dynamic"),". Eventually could be used to replace the QSM infra for mempool parallel tests."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/503"},"Cleaned")," up the ",(0,r.kt)("inlineCode",{parentName:"li"},"Cardano.API.LedgerState")," module, required for UTXO-HD integration."),(0,r.kt)("li",{parentName:"ul"},"We have been working on Node release 8.10. The changes upstream are integrated all the way to Node. Tests and benchmarks are pending. The versions of Consensus, Ledger, and Networking are released, and we will focus next on releasing CLI, API, and finally Node.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/550cdc1d.bfc61fb3.js b/assets/js/550cdc1d.bfc61fb3.js new file mode 100644 index 0000000000..e137ecec7c --- /dev/null +++ b/assets/js/550cdc1d.bfc61fb3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75730],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,g=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(g,i(i({ref:t},c),{},{components:r})):n.createElement(g,i({ref:t},c))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-02-03-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-02-03-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-03-goedel.md",source:"@site/blog/2023-02-03-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-02-03T00:00:00.000Z",formattedDate:"February 3, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.57,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-02-03-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-02-03-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-02-03-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],c={toc:s},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the team has been preparing several papers for peer review\nand knowledge sharing and consulting within IO and the community."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"R&D Seminar on experience participating in a member based organisation"),(0,a.kt)("li",{parentName:"ul"},"Full day tutorial on performance engineering presented at HiPEAC\n2023 conference"),(0,a.kt)("li",{parentName:"ul"},"Finished preparing and submitted a paper on performance engineering\nto an ACM workshop"),(0,a.kt)("li",{parentName:"ul"},"Preparing a draft paper for future submission about verifying design\nrefinements for distributed system design"),(0,a.kt)("li",{parentName:"ul"},"Consulting on performance design of other IO projects")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5537c822.493b8401.js b/assets/js/5537c822.493b8401.js new file mode 100644 index 0000000000..3f22f3be00 --- /dev/null +++ b/assets/js/5537c822.493b8401.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54320],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=a,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||i;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const i={title:"Mithril Team Update",slug:"2024-06-19-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-06-19-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-19-mithril.md",source:"@site/blog/2024-06-19-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-06-19T00:00:00.000Z",formattedDate:"June 19, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.275,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-06-19-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-06-19-ledger"},nextItem:{title:"Mithril Team Update",permalink:"/2024-06-12-mithril"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They implemented a warmup strategy for the signer and aggregator to begin importing transactions as early as possible, thus minimizing the impact of network activation on certification. They also significantly improved the throughput of the prover route of the aggregator by addressing database access bottlenecks. Additionally, the team made progress on low-latency certification by completing the handling of chain rollbacks and nearly completing the retrieval of transactions using the chain sync mini-protocol and Pallas."),(0,a.kt)("p",null,"Finally, they made final modifications to the threat modeling explainer for the documentation website, which will be released shortly, and worked on a bug that occurs when parsing some blocks of the SanchoNet network."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Handle rollbacks in Cardano transactions")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1724"},"#1724")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Pooled resources should be reset when given back")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1743"},"#1743")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Lock signature of signed entity types during warm-up")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1693"},"#1693")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Warmup import Cardano transactions at node startup")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1692"},"#1692")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Build, test and package ",(0,a.kt)("inlineCode",{parentName:"strong"},"arm64")," binaries in CI")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1751"},"#1751")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Threat modeling and risk analysis")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Import Cardano transactions with ",(0,a.kt)("inlineCode",{parentName:"strong"},"ChainReader"))," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1705"},"#1705")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Import Cardano transactions by sequences of block ranges")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1766"},"#1766")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Implement database connection pooling for Cardano transaction repository")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1760"},"#1760")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Cardano signatures are not produced on ",(0,a.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1750"},"#1750"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5574328a.a76e896d.js b/assets/js/5574328a.a76e896d.js new file mode 100644 index 0000000000..e6310d0459 --- /dev/null +++ b/assets/js/5574328a.a76e896d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6519],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>d});var n=a(67294);function i(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function p(t){for(var e=1;e=0||(i[a]=t[a]);return i}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(i[a]=t[a])}return i}var o=n.createContext({}),u=function(t){var e=n.useContext(o),a=e;return t&&(a="function"==typeof t?t(e):p(p({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(o.Provider,{value:e},t.children)},h="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},s=n.forwardRef((function(t,e){var a=t.components,i=t.mdxType,r=t.originalType,o=t.parentName,c=l(t,["components","mdxType","originalType","parentName"]),h=u(a),s=i,d=h["".concat(o,".").concat(s)]||h[s]||m[s]||r;return a?n.createElement(d,p(p({ref:e},c),{},{components:a})):n.createElement(d,p({ref:e},c))}));function d(t,e){var a=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var r=a.length,p=new Array(r);p[0]=s;var l={};for(var o in e)hasOwnProperty.call(e,o)&&(l[o]=e[o]);l.originalType=t,l[h]="string"==typeof t?t:i,p[1]=l;for(var u=2;u{a.r(e),a.d(e,{assets:()=>o,contentTitle:()=>p,default:()=>m,frontMatter:()=>r,metadata:()=>l,toc:()=>u});var n=a(87462),i=(a(67294),a(3905));const r={title:"Node API & CLI Team Update",slug:"2023-12-08-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},p="Node-Api-Cli Update",l={permalink:"/2023-12-08-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08-node-cli-api.md",source:"@site/blog/2023-12-08-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-12-08T00:00:00.000Z",formattedDate:"December 8, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:2.2,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-12-08-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-12-08-network"},nextItem:{title:"SRE Team Update",permalink:"/2023-12-08-sre"}},o={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},h="wrapper";function m(t){let{components:e,...a}=t;return(0,i.kt)(h,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"2023-11-15---2023-12-08"},"2023-11-15 - 2023-12-08"),(0,i.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,i.kt)("p",null,"This is sprint was mostly about bug fixing, code clean-ups and optimizations in preparation for a mainnet suitable release."),(0,i.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/511"},"Unify previous governance action parameters across actions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/510"},"Release 8.17.0.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/507"}," Restore the inclusion of datum hashes in Alonzo era tx bodies")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/498"},"create-staked: add test")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/497"},"create-staked: simplify some code")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/495"},"Remove unused cabal file code")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/491"},"New version cardano-cli-8.16.0.1")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/490"},"Fix era mismatch error in stake-address-info")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/489"},"Release 8.16.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/488"},"Add create-testnet-data command")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/487"},"Rename stake-address-info field: stakeDelegation -> delegation for eras prior to Conway")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/486"},"Update the ",(0,i.kt)("inlineCode",{parentName:"a"},"--key-output-format")," help text: default is text-envelope")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/484"},"Complete help texts for ",(0,i.kt)("inlineCode",{parentName:"a"},"create-protocol-parameters-update"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/483"},"Fix using queryStakeVoteDelegatees in eras before conway")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/481"},"Use node queries with tighter eons. Simplify prettyprinting.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/479"},"Add support for Plutus V3 in command line interface")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/478"},"Remove Byron Tx")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/476"},"Use ",(0,i.kt)("inlineCode",{parentName:"a"},"selectStakeCredentialWitness")," instead of duplicating credential selection")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/475"},'Revert "query protocol parameters: use ledger instances"')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/470"},"governance action: prefix stake-verification-key/stake-key arguments with --deposit-return")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/469"},"Fix NodeEraMismatchError mismatch")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/467"},"Byron isolation 2 of n")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/466"},"Fix description of ",(0,i.kt)("inlineCode",{parentName:"a"},"vote-delegation-certificate")," command")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/464"},"New version ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-cli-8.15.0.0"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/463"},"Integration work for Node 8.7.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/460"},"Align create-constitution anchor flags with other anchor flags")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/459"},"conway governance hash: add option to write hash to file (--out-file)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/458"},"Update pCmds to take ",(0,i.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra era")," instead of ",(0,i.kt)("inlineCode",{parentName:"a"},"Cardano era"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/457"},"Add one missing extended to non extended golden tests")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/456"},"Correct conway parser, so that --key-reg-deposit-amt is mandatory"))),(0,i.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/399"},"Release 8.36.1.1")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/398"},"Restore the inclusion of datum hashes in Alonzo era tx bodies")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/396"},"New version cardano-api-8.36.1.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/395"},"Expose AnyProposals and AnyRatificationState")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/394"},"New version ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-api-8.36.0.0"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/393"},"New ",(0,i.kt)("inlineCode",{parentName:"a"},"ToJSON")," instance for ",(0,i.kt)("inlineCode",{parentName:"a"},"TxValidationErrorInCardanoMode"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/392"},"Update to latest consensus release")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/390"},"Fix generated textEnvelope type on registering a Stake Address Registration Certificate")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/389"},"New version ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-api-8.35.0.0"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/388"},"Expose NewGovernanceProposals and EpochBoundaryRatificationState ledger events")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/387"},"Remove renderEra. Rename prettyTo",(0,i.kt)("em",{parentName:"a"}," to docTo")," functions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/386"},"Guard queries with their respective eras")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/385"},"Release 8.34.1")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/383"},"Expose ",(0,i.kt)("inlineCode",{parentName:"a"},"stakeCredentialWitness")," function, which returns only stake credentials for the certificates requiring witnessing: delegation and deregistration")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/382"},"Remove ByronTx")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/381"},"New version ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-api-8.34.0.0"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/379"},(0,i.kt)("inlineCode",{parentName:"a"},"ToJSON")," instance for ",(0,i.kt)("inlineCode",{parentName:"a"},"TxValidationError"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/378"},"Parameterize ",(0,i.kt)("inlineCode",{parentName:"a"},"createAndValidateTransactionBody")," on ",(0,i.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra era"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/377"},"New version ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-api-8.33.0.0"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/375"},"Minor ",(0,i.kt)("inlineCode",{parentName:"a"},"prettyprinter")," fixes")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/374"},"Export ",(0,i.kt)("inlineCode",{parentName:"a"},"AllegraEraOnwards"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/371"},"New version ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-api-8.32.0.0"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/370"},"Use ",(0,i.kt)("inlineCode",{parentName:"a"},"Pretty")," for rendering errors instead of ",(0,i.kt)("inlineCode",{parentName:"a"},"Show")))),(0,i.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5566"},"Bump CHaP")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5562"},"Allow text-1")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5560"},"Release cardano-node 8.7.1")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5557"},"Bump CHaP")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5551"},"Forcefully disable PeerSharing if InitiatorMode is used")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5541"},"Optimize new tracing further"))),(0,i.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5566"},"Bump CHaP")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5558"},"Transaction submission test via ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-submit-api"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5557"},"Bump CHaP")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5552"},"Transaction integration test"))),(0,i.kt)("h3",{id:"docs"},"docs"),(0,i.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/55b9667a.71bd08a8.js b/assets/js/55b9667a.71bd08a8.js new file mode 100644 index 0000000000..3159d0ffaf --- /dev/null +++ b/assets/js/55b9667a.71bd08a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75506],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>d});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(o),m=r,d=h["".concat(s,".").concat(m)]||h[m]||c[m]||a;return o?n.createElement(d,i(i({ref:t},u),{},{components:o})):n.createElement(d,i({ref:t},u))}));function d(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=o.length,i=new Array(a);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:r,i[1]=l;for(var p=2;p{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=o(87462),r=(o(67294),o(3905));const a={title:"Network Team Update",slug:"2023-03-02-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-03-02-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-02-network.md",source:"@site/blog/2023-03-02-network.md",title:"Network Team Update",description:"High level summary",date:"2023-03-02T00:00:00.000Z",formattedDate:"March 2, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.85,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-03-02-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-03-03-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2023-02-24-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Detailed work log",id:"detailed-work-log",level:2}],u={toc:p},h="wrapper";function c(e){let{components:t,...o}=e;return(0,r.kt)(h,(0,n.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"In the current sprint the networking team focused on fixing bugs and pushing\nforward implementation of eclipse evasion. We also found a bug in our\nsimulation testing setup (in integration of test node). We also overviewed the\nwork on extending handshake protocol which is delivered by Galois Inc."),(0,r.kt)("p",null,"We published ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.4.0.1")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network-protocols-0.3.0.0")," to ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages/pull/147"},"CHaP"),"."),(0,r.kt)("p",null,"We also fixed a bug in ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," which results in not being able to\nconfigure inbound connection limits, see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4902"},"PR #4902"),"."),(0,r.kt)("p",null,"Together with Karl Knutsson (CF) we realised an issue in ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli"),": it's\nvalidation of DNS names, IP address & ports when registering a stake pool\nshould be more strict to protect against common mistakes which we identified on\nthe chain. See ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/issues/4929"},"issue #4929"),"."),(0,r.kt)("h2",{id:"detailed-work-log"},"Detailed work log"),(0,r.kt)("p",null,"In ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4385"},"PR #4385")," we fixed two bugs in peer state actions. First one results in\na busy loop if demotion from hot to warm times outs. This busy loop is\neventually exited when mux exits (we reported this in our previous report).\nThis fix made it to ",(0,r.kt)("inlineCode",{parentName:"p"},"1.35.6")," release as well."),(0,r.kt)("p",null,"In addition the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4385"},"PR #4385")," also fixes another bug which results in ",(0,r.kt)("inlineCode",{parentName:"p"},"hot -> warm\n-> hot")," demotion / promotion busy loop."),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4385"},"PR #4385")," also fixed a bug in a node only used in simulation which\nresulted in not using ",(0,r.kt)("inlineCode",{parentName:"p"},"chain-sync")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"block-fetch")," mini-protocols. In the\nreview process, we realised that the header-body split in the simulated node\nrequires further work (see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4419"},"PR #4419"),", which is under review)."),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4385"},"PR #4385")," also extend our generators, which together with the above fix,\ncover the ",(0,r.kt)("inlineCode",{parentName:"p"},"hot -> warm -> hot")," demotion / promotion busy loop."),(0,r.kt)("p",null,"In ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4419"},"PR #4419")," we introduce a ",(0,r.kt)("inlineCode",{parentName:"p"},"ChainDB")," for our simulation node, which plays\nsimilar role to ",(0,r.kt)("inlineCode",{parentName:"p"},"ChainDB")," in the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),": a persistent (across\nsimulated restarts) store of blocks which does chain selection. This ensures\nthat the simulated node is using ",(0,r.kt)("inlineCode",{parentName:"p"},"block-fetch")," to download blocks announced by\n",(0,r.kt)("inlineCode",{parentName:"p"},"chain-sync")," mini-protocol."),(0,r.kt)("p",null,"We also made progress with reviewing ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"PR #4019")," - peer sharing."),(0,r.kt)("p",null,"We also fixed ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4370"},"issue #4370")," - a connection manager test failure, see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4384"},"PR #4384"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/55e35eab.dfc78cf3.js b/assets/js/55e35eab.dfc78cf3.js new file mode 100644 index 0000000000..2fa4a82a9d --- /dev/null +++ b/assets/js/55e35eab.dfc78cf3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6249],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=i.createContext({}),s=function(e){var t=i.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=s(e.components);return i.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),m=s(r),c=n,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||a;return r?i.createElement(d,l(l({ref:t},u),{},{components:r})):i.createElement(d,l({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,l=new Array(a);l[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>s});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-12-06-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-12-06-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-06-mithril.md",source:"@site/blog/2023-12-06-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-12-06T00:00:00.000Z",formattedDate:"December 6, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.01,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-12-06-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-12-06-ledger"},nextItem:{title:"Performance & Tracing Update",permalink:"/2023-12-04-performance-and-tracing"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team made progress in adapting the Mithril client library for WASM compilation and providing a JavaScript API for it. They also completed the optimization of the aggregator's performance. Additionally, the team initiated the implementation of a testing Mithril network for SanchoNet and conducted threat modeling and risk analysis for P2P networking."),(0,n.kt)("p",null,"Finally, they enhanced the developer experience of the Mithril client library by providing ready-to-run examples in the repository and implemented a workflow to manually publish libraries on crates.io."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Release ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," WASM library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1336"},"#1336")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a test network on ",(0,n.kt)("inlineCode",{parentName:"strong"},"Sanchonet"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Upgrade breaking changes crates")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1357"},"#1357")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance aggregator REST API performances")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1327"},"#1327")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Signer runtime is stuck for some SPO")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1312"},"#1312")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Make ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," examples full crates")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1385"},"#1385")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Manual publication to crates.io with GitHub action")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1380"},"#1380")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Remove ",(0,n.kt)("inlineCode",{parentName:"strong"},"sqlite")," dependency from ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," crate")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1390"},"#1390"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/563fcf2e.79fa50bc.js b/assets/js/563fcf2e.79fa50bc.js new file mode 100644 index 0000000000..f497a7b693 --- /dev/null +++ b/assets/js/563fcf2e.79fa50bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94560],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),d=u(a),c=r,m=d["".concat(p,".").concat(c)]||d[c]||h[c]||l;return a?n.createElement(m,i(i({ref:t},s),{},{components:a})):n.createElement(m,i({ref:t},s))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[d]="string"==typeof e?e:r,i[1]=o;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2023-01-05-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2023-01-05-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-05-ledger.md",source:"@site/blog/2023-01-05-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-01-05T00:00:00.000Z",formattedDate:"January 5, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:4.44,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-01-05-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-01-06-crypto"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-12-28-node-cli-api"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Finishing the deposit tracking",id:"finishing-the-deposit-tracking",level:3},{value:"New Conway era transaction",id:"new-conway-era-transaction",level:3},{value:"Optimizing the TICKF transition",id:"optimizing-the-tickf-transition",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Improved ledger event",id:"improved-ledger-event",level:4},{value:"Improved type saftey",id:"improved-type-saftey",level:4},{value:"Code/Module organization",id:"codemodule-organization",level:4},{value:"Revert pointer address deprecation",id:"revert-pointer-address-deprecation",level:4},{value:"Miscellaneous",id:"miscellaneous",level:4}],s={toc:u},d="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The ledger team finished up the remaining work for tracking individual depots,\nbuilt out the new Conway era transaction body (in line with CIP-1694),\ngreatly reduce some problematically large calculations on the epoch boundary,\nand addressed technical debt."),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"finishing-the-deposit-tracking"},"Finishing the deposit tracking"),(0,r.kt)("p",null,"The initial work on the individual deposit tracking project focused only on correctness.\nAs this is a large data structure\n(since its size is linear with respect to the number of registered stake credentials),\nit is very important that we also reduce the memory overhead as much as possible.\nFortunately, we were able to add very little overhead for the deposits by using existing\nefficient data structures. The extra tracking now only incurs one word (8 bytes)\nper registered stake credential."),(0,r.kt)("p",null,"See:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3195"},"pull-3195")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3202"},"pull-3202")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3217"},"pull-3217"))),(0,r.kt)("h3",{id:"new-conway-era-transaction"},"New Conway era transaction"),(0,r.kt)("p",null,'We implemented the Conway era transaction body, which is in line with CIP-1694.\nNote that the Conway era implements, losing speaking, the parts of CIP-1694 that are not\nrelated to the liquid democracy (the "DReps").\nThe new transaction body adds the new governance actions and votes,\nwhile also deprecating the old governance structures\n(i.e. the old protocol parameter updates and MIR certificates).'),(0,r.kt)("p",null,"We also now have the wire specification (CDDL file) and serialization code in place.\nThe wire specification is still subject to change while we work on the Conway era,\nbut it is now usable and has proper testing support\n(so that, for example, the serialization round-trips, etc)."),(0,r.kt)("p",null,"See:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3176"},"pull-3176")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3226"},"pull-3226"))),(0,r.kt)("h3",{id:"optimizing-the-tickf-transition"},"Optimizing the ",(0,r.kt)("inlineCode",{parentName:"h3"},"TICKF")," transition"),(0,r.kt)("p",null,"Every since the release of the Shelley era, we have been working to reduce the computational load\nplaced on the node by the ledger at the epoch boundary.\nWhile still not perfect, we believe that we have removed one of the final problematically long\nepoch boundary computations that exacerbate situations like\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/issues/4421"},"this"),".\nIn particular, the problem involved the way in which the consensus layer obtains a view of the\nledger for the purposes of checking the leadership schedule in a new epoch.\nWe implemented a stopgap measure which now only incurs a single multi-second cost once per epoch\ninstead of potentially several multi-second costs while the networks waits for the first block\nof a new epoch to be minted."),(0,r.kt)("p",null,"See:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"An ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/blob/ea48d4815946c4f35239eb41815fe06cd6ffec2e/docs/adr/2022-12-12_007-optimize-ledger-view.md"},"ADR")," about the decision."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3209"},"pull-3209"))),(0,r.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,r.kt)("p",null,"We closed the year out with a lot of reduction to the technical debt!"),(0,r.kt)("h4",{id:"improved-ledger-event"},"Improved ledger event"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3212"},"pull-3212")," - The ledger events are not guaranteed to appear in any given order within a block.\nFor this reason, motivated by the use case in db-sync, the ",(0,r.kt)("inlineCode",{parentName:"li"},"TotalDeposits")," event now\nincludes a transaction ID and emits the ",(0,r.kt)("em",{parentName:"li"},"change")," in deposits instead of the value.")),(0,r.kt)("h4",{id:"improved-type-saftey"},"Improved type saftey"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3208"},"pull-3208")," - We replaced ",(0,r.kt)("inlineCode",{parentName:"li"},"NominalDiffTime")," with a newtype wrapper. The problem was that our CBOR\nencoders and decoders were using the wrong level of precision, having to due with with\nthe Shelley genesis file. We removed the potential problem with a newtype wrapper."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3167"},"pull-3167")," - We now use a GADT to ensure consistency of the Plutus language in the types\nfor ",(0,r.kt)("inlineCode",{parentName:"li"},"TransactionScriptFailure")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"PlutusDebug"),".")),(0,r.kt)("h4",{id:"codemodule-organization"},"Code/Module organization"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3175"},"pull-3175")," - The Allegra and Mary eras had an unusual relationship in our codebase,\ndue to the uncertainly of release dates while we were implementing them.\nIn particular, they were coupled in way that is different from the rest of the code base.\nWith hindsight on our side, we split the combined ",(0,r.kt)("inlineCode",{parentName:"li"},"shelley-ma")," Haskell package into two\nseparate ledger era packages, which is now consistent with the rest of the repository\nand module structure."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3184"},"pull-3184")," - We created a core test sub-library, cleaning up a lot of our property test\ngenerator code."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3210"},"pull-3210")," - We moved the ",(0,r.kt)("inlineCode",{parentName:"li"},"KeyPair")," type to the test library. Outside of testing,\nthe ledger does not need to deal with signing keys, and since this is a topic that\ndeserves the utmost care, it is best to make it clear that our use of signing keys\nis only for testing."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3229"},"pull-3229")," - We split the ",(0,r.kt)("inlineCode",{parentName:"li"},"Cardano.Ledger.Alonzo.Data")," module, which is more consistent with the rest\nof the codebase.")),(0,r.kt)("h4",{id:"revert-pointer-address-deprecation"},"Revert pointer address deprecation"),(0,r.kt)("p",null,"Thanks to one of our excellent internal auditors,\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/jmhrpr"},"@jmhrpr"),",\nwe now have a better plan for deprecating pointer addresses.\nThis meant that we had to revert the previous work to deprecate them."),(0,r.kt)("p",null,"See:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3161"},"issue-3161")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3215"},"pull-3215"))),(0,r.kt)("h4",{id:"miscellaneous"},"Miscellaneous"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3205"},"pull-3205")," - We removed deprecated type synonyms."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3218"},"pull-3218")," - We cleaned up the address deserialization."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3223"},"pull-3223")," - We fixed faulty address deserialization tests."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3222"},"pull-3222")," - We switched to a general type family ",(0,r.kt)("inlineCode",{parentName:"li"},"TxOut")," from concrete ones,\nreducing many constraints."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3224"},"pull-3224")," - ",(0,r.kt)("inlineCode",{parentName:"li"},"ShelleyGenesis")," is now parameterized by crypto instead of by era."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3170"},"pull-3170")," - We set the cabal-version to 3.0 in our projects."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3172"},"pull-3172")," - We removed the now useless ",(0,r.kt)("inlineCode",{parentName:"li"},"EncodeMint"),"/",(0,r.kt)("inlineCode",{parentName:"li"},"DecodeMint")," classes."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3225"},"pull-3225")," - We switch from ",(0,r.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/ormolu"},"ormolu")," to\n",(0,r.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/fourmolu"},"fourmolu"),".\nThe reason was to be able to finally have more diff friendly code!")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5642d223.fff68606.js b/assets/js/5642d223.fff68606.js new file mode 100644 index 0000000000..85f45dbe0b --- /dev/null +++ b/assets/js/5642d223.fff68606.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8525],{68195:e=>{e.exports=JSON.parse('{"permalink":"/page/72","page":72,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/71","nextPage":"/page/73","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/5668eccd.b6a4ebf6.js b/assets/js/5668eccd.b6a4ebf6.js new file mode 100644 index 0000000000..a02717f9fd --- /dev/null +++ b/assets/js/5668eccd.b6a4ebf6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3918],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(67294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var s=r.createContext({}),u=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,i=e.mdxType,n=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),h=u(a),c=i,m=h["".concat(s,".").concat(c)]||h[c]||p[c]||n;return a?r.createElement(m,o(o({ref:t},d),{},{components:a})):r.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=a.length,o=new Array(n);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>n,metadata:()=>l,toc:()=>u});var r=a(87462),i=(a(67294),a(3905));const n={title:"Hydra Team Update",slug:"2022-12-09-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-12-09-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-09-hydra.md",source:"@site/blog/2022-12-09-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2022-12-09T00:00:00.000Z",formattedDate:"December 9, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.62,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-12-09-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2022-12-09-crypto"},nextItem:{title:"Ledger Team Update",permalink:"/2022-12-09-ledger"}},s={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:u},h="wrapper";function p(e){let{components:t,...a}=e;return(0,i.kt)(h,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,i.kt)("p",null,'This week, the Hydra team has worked on completing to "Validate coordinated head protocol against formal model", this is a huge step to verify the implementation is secure. They also worked on implementing ',(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md"},"ADR21")," related to bounded tx validity which is now under review. ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/obsidiansystems/hydra-pay"},"HydraPay")," project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/obsidiansystems/hydra-pay/issues?q=is%3Aissue"},"issues")," they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced."),(0,i.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Document model based testing ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/194"},"#194")," & ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/641"},"#641")),(0,i.kt)("li",{parentName:"ul"},"Got ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md"},"ADR21"),", reducing gaps between implementation and specification, under review."),(0,i.kt)("li",{parentName:"ul"},"Complete review on ",(0,i.kt)("inlineCode",{parentName:"li"},"hydra-tutorial"),"."),(0,i.kt)("li",{parentName:"ul"},"Complete first round of review on ",(0,i.kt)("inlineCode",{parentName:"li"},"HydraPay")," work ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/634"},"#634")),(0,i.kt)("li",{parentName:"ul"},"Meeting with ",(0,i.kt)("inlineCode",{parentName:"li"},"Director of CyberSecurity")," frio ",(0,i.kt)("inlineCode",{parentName:"li"},"IOG"),' to unblock "the RFP prepared for the external audit" ',(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/606"},"#606")),(0,i.kt)("li",{parentName:"ul"},"Remove ",(0,i.kt)("inlineCode",{parentName:"li"},"vasil-dev")," and ",(0,i.kt)("inlineCode",{parentName:"li"},"testnet")," from ",(0,i.kt)("inlineCode",{parentName:"li"},"smoke-test")," because they were not working ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/630"},"#630")),(0,i.kt)("li",{parentName:"ul"},"Fix flaky ",(0,i.kt)("inlineCode",{parentName:"li"},"plutus-merkle-tree")," test ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/642"},"#642")),(0,i.kt)("li",{parentName:"ul"},"Refactor ",(0,i.kt)("inlineCode",{parentName:"li"},"NetworkSpec")," to improve legilibility."),(0,i.kt)("li",{parentName:"ul"},"Fix benchmark cost for ",(0,i.kt)("inlineCode",{parentName:"li"},"abortTx")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/631"},"#631")),(0,i.kt)("li",{parentName:"ul"},"Adapt ",(0,i.kt)("inlineCode",{parentName:"li"},"nix.conf")," to the recent hydra-ci nix cache migration.")),(0,i.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Get ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md"},"ADR21")," accepted & close tx validity gap in our implementation."),(0,i.kt)("li",{parentName:"ul"},"Integrate the ",(0,i.kt)("inlineCode",{parentName:"li"},"hydra-tutorial"),"."),(0,i.kt)("li",{parentName:"ul"},"Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec."),(0,i.kt)("li",{parentName:"ul"},"Get Cicero (new CI) working."),(0,i.kt)("li",{parentName:"ul"},"Use reference inputs to reduce the cost of the ",(0,i.kt)("inlineCode",{parentName:"li"},"commitTx"),".")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5674f153.dddf1606.js b/assets/js/5674f153.dddf1606.js new file mode 100644 index 0000000000..c01501fde8 --- /dev/null +++ b/assets/js/5674f153.dddf1606.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[14392],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),u=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,d=p(e,["components","mdxType","originalType","parentName"]),s=u(a),m=n,h=s["".concat(i,".").concat(m)]||s[m]||c[m]||o;return a?r.createElement(h,l(l({ref:t},d),{},{components:a})):r.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[s]="string"==typeof e?e:n,l[1]=p;for(var u=2;u{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>p,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-09-15-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,p={permalink:"/2023-09-15-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-sre.md",source:"@site/blog/2023-09-15-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-09-15T00:00:00.000Z",formattedDate:"September 15, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.055,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-09-15-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-09-15-network"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-09-14-db-sync"}},i={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Cardano-world",id:"cardano-world",level:3}],d={toc:u},s="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet environment was updated to 8.3.0-pre."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts"},"Cardano-parts")," now enables downstream consumers to spin up multiple cardano-networks per repository, an example of which is ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/blob/main/flake/colmena.nix#L89-L108"},"here"),".")),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Add a readme, optimize flake inputs, improve nu and ruby parsing scripts: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/f3dcffb...c2c7680"},"capkgs-compare"))),(0,n.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Adjust mainnet p2p relays to ~100%, with a legacy canary: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/commit/d3cce2585fae6a52ff5833373137af3cddbc6710"},"cardano-ops-commit"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Utilize content addressed binaries to significantly improve eval, build and devShell performance: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/8"},"cardano-parts-pull-8")),(0,n.kt)("li",{parentName:"ul"},"Add an aws flakeModule for obtaining ec2 specs, fix node.socket devShell error: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/10"},"cardano-parts-pull-10")),(0,n.kt)("li",{parentName:"ul"},"Fix warns thrown during some builds and devShell usage: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/11"},"cardano-parts-pull-11")),(0,n.kt)("li",{parentName:"ul"},"Add flakeModules and nixosModules in preparation for cardano-node grouped deployments: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/12"},"cardano-parts-pull-12")),(0,n.kt)("li",{parentName:"ul"},"Enable group deployments by: adding several module, profile and role nixosModules; updating flakeModules; adding sops age secrets handling: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/13"},"cardano-parts-pull-13"))),(0,n.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Modify the wireguard network from mesh to star, enable ICMP, enable Nomad raw_exec and add hydraJobs: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/9f9917c...7fc1b4c"},"cardano-perf-compare"))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Define preliminary cardano-world networks on cardano-playground: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/1"},"cardano-playground"))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Rotate KES on preview and preprod, purge unused subnets, adjust explorer rate limits: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/compare/306ef6c...e9b2ed2"},"cardano-world-compare")),(0,n.kt)("li",{parentName:"ul"},"Update sanchonet network to 8.3.0: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/compare/master...sanchonet-updated"},"cardano-world-compare"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/568314b4.b51c4c3e.js b/assets/js/568314b4.b51c4c3e.js new file mode 100644 index 0000000000..bf8e447312 --- /dev/null +++ b/assets/js/568314b4.b51c4c3e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97806],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=p(n),h=o,m=c["".concat(s,".").concat(h)]||c[h]||d[h]||a;return n?r.createElement(m,i(i({ref:t},u),{},{components:n})):r.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:o,i[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2024-01-09-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-01-09-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-09-network.md",source:"@site/blog/2024-01-09-network.md",title:"Network Team Update",description:"High-level overview of sprint 52",date:"2024-01-09T00:00:00.000Z",formattedDate:"January 9, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.52,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-01-09-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-01-10-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-01-05-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 52",id:"high-level-overview-of-sprint-52",level:2},{value:"Detailed description",id:"detailed-description",level:2}],u={toc:p},c="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-52"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+52%22"},"sprint 52")),(0,o.kt)("p",null,"Happy New Year!"),(0,o.kt)("p",null,"In this short sprint we analysed a failure which happened on a new large\ncluster that's run by IOG. The process exhausted all file handles and was left\nwithout any functional connections. The issues apparently is rare, and thus\ndoesn't impose a high risk."),(0,o.kt)("p",null,"We also continued working on ",(0,o.kt)("inlineCode",{parentName:"p"},"tx-submission"),": ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network-3311"),"."),(0,o.kt)("h2",{id:"detailed-description"},"Detailed description"),(0,o.kt)("p",null,"It turned out that the process exhausted the number of file handles leaking\nmultiple ",(0,o.kt)("inlineCode",{parentName:"p"},"/proc/{PID}/stat")," files open. We suspect that the bug is caused by"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"using lazy IO in ",(0,o.kt)("inlineCode",{parentName:"li"},"iohk-monitoring-framework"),", and"),(0,o.kt)("li",{parentName:"ul"},"using a recent kernel version")),(0,o.kt)("p",null,"With lazy IO file handles are read as long as the data is required and they are\nclosed only when ",(0,o.kt)("inlineCode",{parentName:"p"},"EOF")," is reached. We currently suspect that a new linux kernel\nadded something at the end of the ",(0,o.kt)("inlineCode",{parentName:"p"},"/proc/{PID}/stat")," which is not parsed by\n",(0,o.kt)("inlineCode",{parentName:"p"},"iohk-monitoring-framework"),", so whenever the file is read we leak it (it's\nnever closed) and eventually, there are no file handles to be used by the\nnetwork layer: the ",(0,o.kt)("inlineCode",{parentName:"p"},"accept")," loop doesn't return any inbound connection, neither\nan outbound connection can be created. This issue will be addressed by the\nprofiling team (which owns the logging subsystem)."),(0,o.kt)("p",null,"The fix will be proposed in the future release, in the meantime we suggest to\nkeep observing file handles used by the node."),(0,o.kt)("p",null,"I would like to thank John Lotoski (IOG), Karl Knutsson (CF), Neil Davies\n(PNSol) and Michael Karg (IOG) who all contributed to this analysis."),(0,o.kt)("p",null,"While analysing the log we also found a few smaller issues in the outbound\ngovernor which were fixed in ","[ouroboros-network-#4764]","."),(0,o.kt)("p",null,"The IO error indicating exhausting file handles is not currently visible. It\nis not re-thrown nor logged. This needs to be fixed in a future version. See\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4769"},"ouroboros-network-4769"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/56f35d85.24e3a756.js b/assets/js/56f35d85.24e3a756.js new file mode 100644 index 0000000000..4ff505b4e1 --- /dev/null +++ b/assets/js/56f35d85.24e3a756.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5485],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=p(r),h=n,m=d["".concat(u,".").concat(h)]||d[h]||c[h]||l;return r?a.createElement(m,o(o({ref:t},s),{},{components:r})):a.createElement(m,o({ref:t},s))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=h;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:n,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-03-03-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-03-03-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-03-ledger.md",source:"@site/blog/2023-03-03-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-03-03T00:00:00.000Z",formattedDate:"March 3, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.57,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-03-03-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-03-03-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-03-02-network"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway rules",id:"conway-rules",level:3},{value:"Constraint based generators",id:"constraint-based-generators",level:3},{value:"Preparing a release, now with proper versioning",id:"preparing-a-release-now-with-proper-versioning",level:3},{value:"Technical debt",id:"technical-debt",level:3}],s={toc:p},d="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"We have focused the last two weeks on CIP-1694, integration of the last several months of ledger\nwork into consensus and node, and testing infrastrutcture that we will use in the conway ledger era."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway-rules"},"Conway rules"),(0,n.kt)("p",null,"We made a major update to the conway era so that the implementation is now in sync with the spec\nwith respect to the ratification and enactment logic."),(0,n.kt)("p",null,"See the notes in ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3291"},"pull-3291")," for more details."),(0,n.kt)("h3",{id:"constraint-based-generators"},"Constraint based generators"),(0,n.kt)("p",null,"This week we hit a major milestone in our efforts to build out better property based testing\nsupport for the main ledger properties.\nThe new constraint based generators can now generate full ledger states with what is probably\nvery close to the real constraints (if anything, it is under constrained).\nNext we will work on generating a transaction in the context of a ledger state, which would allow\nus to actually start using these generators for real tests."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3219"},"pull-3219"),"."),(0,n.kt)("h3",{id:"preparing-a-release-now-with-proper-versioning"},"Preparing a release, now with proper versioning"),(0,n.kt)("p",null,"After quite some time, we are ready to release a version of ledger that will work with a new\nversion of consensus, using CHaPs."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3308"},"pull-3308"),"."),(0,n.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We cleaned up the redeemer serialization code (to prevent future mistakes). See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3269"},"pull-3269"),"."),(0,n.kt)("li",{parentName:"ul"},"We added a note to the Alonzo spec, specifying that the transaction inputs are\nlexicographically ordered in the Plutus script context. See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3306"},"pull-3306"),"."),(0,n.kt)("li",{parentName:"ul"},"We fixed a problem with the address deserialiazation\n(we mistakenly fixed a bug in the Babbage era which cannot be fixed until Conway).\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3307"},"pull-3307"),"."),(0,n.kt)("li",{parentName:"ul"},"We fixed a problem with our nix build. See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3311"},"pull-3311"),"."),(0,n.kt)("li",{parentName:"ul"},"We fixed a problem with our ",(0,n.kt)("inlineCode",{parentName:"li"},"NoThunks")," tests. See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3310"},"pull-3310"),"."),(0,n.kt)("li",{parentName:"ul"},"We improved our nightly tests. See ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3316"},"pull-3316"),".")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/57008883.6fc009e7.js b/assets/js/57008883.6fc009e7.js new file mode 100644 index 0000000000..c023e14b00 --- /dev/null +++ b/assets/js/57008883.6fc009e7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[33399],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>f});var r=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,o=e.mdxType,n=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=p(a),m=o,f=u["".concat(s,".").concat(m)]||u[m]||c[m]||n;return a?r.createElement(f,l(l({ref:t},d),{},{components:a})):r.createElement(f,l({ref:t},d))}));function f(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=a.length,l=new Array(n);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>n,metadata:()=>i,toc:()=>p});var r=a(87462),o=(a(67294),a(3905));const n={title:"SRE Team Update",slug:"2023-11-24-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-11-24-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-24-sre.md",source:"@site/blog/2023-11-24-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-11-24T00:00:00.000Z",formattedDate:"November 24, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:3.115,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-11-24-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-11-24-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2023-11-22-ledger"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Offchain-metadata-tools",id:"offchain-metadata-tools",level:3}],d={toc:p},u="wrapper";function c(e){let{components:t,...a}=e;return(0,o.kt)(u,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,o.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The cardano-node nixos service now supports SIGHUP p2p topology reloading when the ",(0,o.kt)("inlineCode",{parentName:"li"},"useSystemdReload")," option is enabled")),(0,o.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,o.kt)("h3",{id:"capkgs"},"Capkgs"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Update cardano-db-sync and offchain-metadata-tools package paths and/or references: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/994696f...3ce364f"},"capkgs-compare"))),(0,o.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Optionally have cardano-node nixos service utilize SIGHUP p2p topology reload: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5537"},"cardano-node-pull-5537"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Creates a useSystemdReload bool option for the cardano-node nixos service"),(0,o.kt)("li",{parentName:"ul"},"This will move the topology file(s) to ",(0,o.kt)("inlineCode",{parentName:"li"},"/etc/cardano-node/topology-$i.yaml")," and inject systemd reload hooks for p2p configured cardano-node instances"),(0,o.kt)("li",{parentName:"ul"},"Moving topology files to ",(0,o.kt)("inlineCode",{parentName:"li"},"/etc")," also allows for manual topology updates when a quick test is needed and full service re-deployment isn't desired")))),(0,o.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Adds a metadata server profile and a number of other features and improvements: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/20"},"cardano-parts-pull-20"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Adds a new metadata-service profile"),(0,o.kt)("li",{parentName:"ul"},"Adds metadata service and pkg configuration options for cardano-groups to utilize the metadata-server profile"),(0,o.kt)("li",{parentName:"ul"},"Adds a cardano-webserver profile for multiple virtualHosts and TLS ACME server aliases for a cluster's static needs, with each cached behind varnish"),(0,o.kt)("li",{parentName:"ul"},"Adds extra node list producers and public producers for cardano-node-topology profile"),(0,o.kt)("li",{parentName:"ul"},"Adds delegation amounts to cardano-postgres psql prepared query show_pools_block_history_in_epoch"),(0,o.kt)("li",{parentName:"ul"},"Adds select systemd metrics reporting to grafana-agent profile"),(0,o.kt)("li",{parentName:"ul"},"Adds a bookRelay multivalue DNS option to disambiguate with groupRelay multivalue DNS"),(0,o.kt)("li",{parentName:"ul"},"Adds an opsLib library to the cardano-parts lib flakeModule and refactors some common code into it"),(0,o.kt)("li",{parentName:"ul"},"Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo"),(0,o.kt)("li",{parentName:"ul"},"Adds job-gen-env-config for both release and pre-release configuration files to support configuration book generation"),(0,o.kt)("li",{parentName:"ul"},"Adds support for grafana recording rules in the template files"),(0,o.kt)("li",{parentName:"ul"},"Improves cardano-group profile handling of producers with respect to multiple instance nodes"),(0,o.kt)("li",{parentName:"ul"},"Improves grafana-agent profile metrics handling for multi-instance cardano-node servers"),(0,o.kt)("li",{parentName:"ul"},"Improves smash service preStart handling while waiting for a node socket"),(0,o.kt)("li",{parentName:"ul"},"Updates Justfile for ERA_CMD demo support"),(0,o.kt)("li",{parentName:"ul"},"Migrates default grafana cloud node exporter, varnish alert and recording rules to grafana alert and recording rule templates"),(0,o.kt)("li",{parentName:"ul"},"Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile"),(0,o.kt)("li",{parentName:"ul"},"Defaults cardano-postgres profile psqlrc use to false")))),(0,o.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Adds a new testnet metadata server, cluster webserver, and other improvements: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/6"},"cardano-playground-pull-6"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Adds a new metadata server"),(0,o.kt)("li",{parentName:"ul"},"Adds a new webserver for the cluster's static virtualhost needs"),(0,o.kt)("li",{parentName:"ul"},"Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo"),(0,o.kt)("li",{parentName:"ul"},"Adds systemd metrics monitoring to the cluster"),(0,o.kt)("li",{parentName:"ul"},"Resizes sanchonet machines to support the growing chain"),(0,o.kt)("li",{parentName:"ul"},"Completes migration of preprod from world"),(0,o.kt)("li",{parentName:"ul"},"Updates groups to utilize both bookRelay and groupRelay multivalue DNS attributes"),(0,o.kt)("li",{parentName:"ul"},"Updates Justfile for ERA_CMD demo support"),(0,o.kt)("li",{parentName:"ul"},"Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile"),(0,o.kt)("li",{parentName:"ul"},"Migrates book static code to playground from world, with refactor, cleanup and updates"),(0,o.kt)("li",{parentName:"ul"},"Migrates default grafana cloud node exporter, varnish alert and recording rules to declarative grafana alert and recording rules")))),(0,o.kt)("h3",{id:"offchain-metadata-tools"},"Offchain-metadata-tools"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Adds db password option with obfuscation plus misc improvements: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/offchain-metadata-tools/pull/61"},"offchain-metadata-tools-pull-61"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Adds db password connection option and obfuscates passwords in output for metadata server, sync, webhook services"),(0,o.kt)("li",{parentName:"ul"},"Updates the nixos service for metadata-webhook service to optionally use an environmentFile for secrets: cfg.environmentFile"),(0,o.kt)("li",{parentName:"ul"},"Moves from std use in the nix flake to standard flake schema"),(0,o.kt)("li",{parentName:"ul"},"Fixes hydra CI failures"),(0,o.kt)("li",{parentName:"ul"},"Builds update-docs in hydra to avoid long local build times"),(0,o.kt)("li",{parentName:"ul"},"Removes deprecated tullia"),(0,o.kt)("li",{parentName:"ul"},"Removes deprecated check-hydra from pkgs"),(0,o.kt)("li",{parentName:"ul"},"Removes deprecated bors files and references")))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/570bc21e.ef49ad03.js b/assets/js/570bc21e.ef49ad03.js new file mode 100644 index 0000000000..24ec741899 --- /dev/null +++ b/assets/js/570bc21e.ef49ad03.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15898],{74607:a=>{a.exports=JSON.parse('{"label":"mithril","permalink":"/tags/mithril","allTagsPath":"/tags","count":63}')}}]); \ No newline at end of file diff --git a/assets/js/5733c82d.23fcb8c1.js b/assets/js/5733c82d.23fcb8c1.js new file mode 100644 index 0000000000..c9f23e0d85 --- /dev/null +++ b/assets/js/5733c82d.23fcb8c1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94184],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=p(a),m=n,h=c["".concat(u,".").concat(m)]||c[m]||s[m]||o;return a?r.createElement(h,l(l({ref:t},d),{},{components:a})):r.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:n,l[1]=i;for(var p=2;p{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Ledger Team Update",slug:"2022-09-16-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2022-09-16-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-16-ledger.md",source:"@site/blog/2022-09-16-ledger.md",title:"Ledger Team Update",description:"Ledger Update",date:"2022-09-16T00:00:00.000Z",formattedDate:"September 16, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.625,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-09-16-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"DB Sync Team Update",permalink:"/2022-09-19-db-sync"},nextItem:{title:"Ledger Team Update",permalink:"/2022-09-01-ledger"}},u={authorsImageUrls:[void 0]},p=[{value:"Ledger Update",id:"ledger-update",level:2}],d={toc:p},c="wrapper";function s(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"ledger-update"},"Ledger Update"),(0,n.kt)("p",null,"We have been focused nearly entirely on addressing technical debt."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We introduced more consistent naming across eras, this time for the auxiliary data.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3032"},"3032"),"."),(0,n.kt)("li",{parentName:"ul"},"We made clear how the ",(0,n.kt)("inlineCode",{parentName:"li"},"consumed")," functions differs between eras (which was a previous source of\nconfusion), and added some related support to the fledgling ledger API.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3016"},"3016"),"."),(0,n.kt)("li",{parentName:"ul"},"We added clarity and organizational consistency to the main ledger era type synonyms.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3017"},"3017"),"."),(0,n.kt)("li",{parentName:"ul"},"We removed code duplication related to the input data hashes.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3018"},"3018"),"."),(0,n.kt)("li",{parentName:"ul"},"We split up a large module into smaller components. The large module was actually causing our\nCI to time out.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3020"},"3020"),"."),(0,n.kt)("li",{parentName:"ul"},"We cleaned up stale information in our cabal files, and upgraded cabal 3.8.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3023"},"3023"),",\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3031"},"3031"),",\nand ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3028"},"3028"),"."),(0,n.kt)("li",{parentName:"ul"},"We made consistent, standalone ",(0,n.kt)("inlineCode",{parentName:"li"},"TxOut")," (transaction output) modules for every era.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3024"},"3024"),"."),(0,n.kt)("li",{parentName:"ul"},"We brought consistency to a maddening inconsistent use of type variables indicating the specific\nchoice of cryptographic primitives. In particular, all uses of ",(0,n.kt)("inlineCode",{parentName:"li"},"crypto")," have been renamed to ",(0,n.kt)("inlineCode",{parentName:"li"},"c"),".\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3027"},"3027"),"."),(0,n.kt)("li",{parentName:"ul"},"We did a clean up of the types in the Alonzo era. In particular, we switched to more parametric\ntypes that will compose better in the future and which simplifies the constraints.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3029"},"3029"),"."),(0,n.kt)("li",{parentName:"ul"},"We consolidated some existing fragmented logic regarding how we gather the scripts needed for a\ngiven transaction. This is a much needed cleanup to prevent future mistakes.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3019"},"3019"),"."),(0,n.kt)("li",{parentName:"ul"},"We fixed a problem with our generators that was causing a fair number of our property tests to\nfail in CI.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3039"},"3039"),"."),(0,n.kt)("li",{parentName:"ul"},"We have started the work to update Plutus. This will bring support for SECP in the next major\nprotocol version, and also address a\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/2902"},"problem"),"\nthat we current have evolving the cost models.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3030"},"3030"),"."),(0,n.kt)("li",{parentName:"ul"},"We addressed a small issue that came up when integrating the conway era downstream, namely\nthe lack of some serialization instances.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3022"},"3022"),".")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/573e0546.90461fd6.js b/assets/js/573e0546.90461fd6.js new file mode 100644 index 0000000000..ad7d49023a --- /dev/null +++ b/assets/js/573e0546.90461fd6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[83019],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),u=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,d=p(e,["components","mdxType","originalType","parentName"]),s=u(a),m=n,h=s["".concat(i,".").concat(m)]||s[m]||c[m]||o;return a?r.createElement(h,l(l({ref:t},d),{},{components:a})):r.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[s]="string"==typeof e?e:n,l[1]=p;for(var u=2;u{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>p,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-12-08-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,p={permalink:"/2023-12-08-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08-sre.md",source:"@site/blog/2023-12-08-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-12-08T00:00:00.000Z",formattedDate:"December 8, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.27,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-12-08-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-12-08-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2023-12-08-hydra"}},i={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3}],d={toc:u},s="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet was respun to cardano-node ",(0,n.kt)("inlineCode",{parentName:"li"},"8.7.0-pre"),", and upgraded to cardano-node ",(0,n.kt)("inlineCode",{parentName:"li"},"8.7.1-pre")," shortly afterwards"),(0,n.kt)("li",{parentName:"ul"},"Cardano-node ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.7.2"},"8.7.2")," was released and all environments were then upgraded to 8.7.2"),(0,n.kt)("li",{parentName:"ul"},"Cardano-parts deployed machines were upgraded to nixpkgs 23.11 and nix 2.19.3"),(0,n.kt)("li",{parentName:"ul"},"Cardano-parts resource deployed environments were switched from the use of Terraform to ",(0,n.kt)("a",{parentName:"li",href:"https://opentofu.org/"},"OpenTofu"))),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated for cardano-node 8.7.2 and process-compose packages: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/3ce364f...7649113"},"capkgs-compare"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update scripts for 8.6.0-pre: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/21"},"cardano-parts-pull-21")),(0,n.kt)("li",{parentName:"ul"},"Sanchonet respin with additional lib refactor and postgres prepared statement update: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/22"},"cardano-parts-pull-22")),(0,n.kt)("li",{parentName:"ul"},"Nixpkgs 23.11 update with migration from Terraform to OpenTofu: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/23"},"cardano-parts-pull-23")),(0,n.kt)("li",{parentName:"ul"},"Node 8.7.2 release update and process-compose flakeModule addition: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/24"},"cardano-parts-pull-24"))),(0,n.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Mainnet high load relays were updated to cardano-node 8.7.2 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/739287a...a5432fc"},"cardano-ops-compare"))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sancho respin plus related book updates and network debug reference code: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/7"},"cardano-playground-pull-7")),(0,n.kt)("li",{parentName:"ul"},"Nixpkgs 23.11 update with required module changes, lint updates and tofu utilization.: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/8"},"cardano-playground-pull-8")),(0,n.kt)("li",{parentName:"ul"},"Node 8.7.2 release and process-compose addition, misc fixes: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/9"},"cardano-playground-pull-9"))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet update PR: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/111"},"cardano-world-pull-111"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Merge the long running sanchonet-updated branch"),(0,n.kt)("li",{parentName:"ul"},"Migrate explorers from ziti to wireguard tunnel usage"),(0,n.kt)("li",{parentName:"ul"},"Remove remaining ziti code and provisioned resources"),(0,n.kt)("li",{parentName:"ul"},"Retire remaining nomad jobs in preference of the cardano-playground environments"),(0,n.kt)("li",{parentName:"ul"},"Downsize the cluster in preference of the cardano-playground environments")))),(0,n.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update mainnet p2p config: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/566"},"iohk-nix-pull-566")),(0,n.kt)("li",{parentName:"ul"},"Update mainnet default mempool tracing: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/567"},"iohk-nix-pull-567"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/57700755.3e57e6d9.js b/assets/js/57700755.3e57e6d9.js new file mode 100644 index 0000000000..fb68e3d22e --- /dev/null +++ b/assets/js/57700755.3e57e6d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[13276],{15745:a=>{a.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/5778ca6b.5b886cf1.js b/assets/js/5778ca6b.5b886cf1.js new file mode 100644 index 0000000000..278479832d --- /dev/null +++ b/assets/js/5778ca6b.5b886cf1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[51727],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=u(a),m=n,f=s["".concat(p,".").concat(m)]||s[m]||d[m]||i;return a?r.createElement(f,o(o({ref:t},c),{},{components:a})):r.createElement(f,o({ref:t},c))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:n,o[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2022-10-07-node-cli-api",authors:"Jimbo4350",tags:["cli-api-quarterly"],hide_table_of_contents:!1},o=void 0,l={permalink:"/quarterly/2022-10-07-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2022-11-07-nod-api-cli.md",source:"@site/quarterly/2022-11-07-nod-api-cli.md",title:"Node API & CLI Team Update",description:"Node-Api-Cli Quarterly Update",date:"2022-11-07T00:00:00.000Z",formattedDate:"November 7, 2022",tags:[{label:"cli-api-quarterly",permalink:"/quarterly/tags/cli-api-quarterly"}],readingTime:1.355,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-10-07-node-cli-api",authors:"Jimbo4350",tags:["cli-api-quarterly"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/quarterly/2022-11-07-ledger"}},p={authorsImageUrls:[void 0]},u=[{value:"Node-Api-Cli Quarterly Update",id:"node-api-cli-quarterly-update",level:2},{value:"2022-09 - 2022-11-04",id:"2022-09---2022-11-04",level:2}],c={toc:u},s="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"node-api-cli-quarterly-update"},"Node-Api-Cli Quarterly Update"),(0,n.kt)("h2",{id:"2022-09---2022-11-04"},"2022-09 - 2022-11-04"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Various improvements to tests/CI/GHC 9.2.4 preparations/upgrade to cabal-3.8.1.0"),(0,n.kt)("li",{parentName:"ul"},"Major clean up of stale iusses + PRs."),(0,n.kt)("li",{parentName:"ul"},"Implementation of stale-bot to mitigate against a proliferation of outdated issues and PRs"),(0,n.kt)("li",{parentName:"ul"},"cardano-api refactoring with the aim of exposing more user friendly functions, particularly concerning transaction construction and querying the node."),(0,n.kt)("li",{parentName:"ul"},"cardano-cli refactoring with the aim of moving reusable functions to cardano-api. We have made strides here and have managed to improve the interface of transaction construction and validation."),(0,n.kt)("li",{parentName:"ul"},"General documentation updates and improvements"),(0,n.kt)("li",{parentName:"ul"},"Addition of tx-mempool command which allows users to:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Query the node about the current mempool's capacity and sizes"),(0,n.kt)("li",{parentName:"ul"},"Request the next transaction from the mempool's current list"),(0,n.kt)("li",{parentName:"ul"},"Query if a particular transaction exists in the mempool"))),(0,n.kt)("li",{parentName:"ul"},"Initial refactoring of cardano-testnet")),(0,n.kt)("p",null,"Next quarter"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-api",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Working with Konstantinos and his team to make cardano-api better for dapp developers - we have a google doc for this, I can send it to you privately."))),(0,n.kt)("li",{parentName:"ul"},"cardano-testnet",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Working with Marc Fontaine to create an easy to use executable to deploy testnets locally - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/issues/4598"},"https://github.com/input-output-hk/cardano-node/issues/4598")))),(0,n.kt)("li",{parentName:"ul"},"Serenity",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Continued refactoring of cardano-api and cardano-cli, with the particular focus on extracting re-usable components of cardano-cli and moving them to cardano-api. This is harder to define but will manifest in stuff moving from cardano-cli to cardano-api and is tied in to the cardano-api work specified above."))),(0,n.kt)("li",{parentName:"ul"},"General bug fixing and smaller feature requests for the api/cli that are always coming in. Robert is primarily handling this at the moment as he is relatively new.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/57e0ab98.46b5720d.js b/assets/js/57e0ab98.46b5720d.js new file mode 100644 index 0000000000..20e4d3d158 --- /dev/null +++ b/assets/js/57e0ab98.46b5720d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20779],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>k});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var s=n.createContext({}),l=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),m=l(o),c=r,k=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return o?n.createElement(k,i(i({ref:t},u),{},{components:o})):n.createElement(k,i({ref:t},u))}));function k(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=o.length,i=new Array(a);i[0]=c;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[m]="string"==typeof e?e:r,i[1]=p;for(var l=2;l{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var n=o(87462),r=(o(67294),o(3905));const a={title:"Network Q2 2023 Update",slug:"2023-Q2-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/quarterly/2023-Q2-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q2-network.md",source:"@site/quarterly/2023-Q2-network.md",title:"Network Q2 2023 Update",description:"2023-04 - 2023-06",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"network",permalink:"/quarterly/tags/network"}],readingTime:5.145,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Q2 2023 Update",slug:"2023-Q2-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Q2 2023 Update",permalink:"/quarterly/2023-Q2-consensus"},nextItem:{title:"SRE Q2 2023 Update",permalink:"/quarterly/2023-Q2-sre"}},s={authorsImageUrls:[void 0]},l=[{value:"2023-04 - 2023-06",id:"2023-04---2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Eclipse Evasion",id:"eclipse-evasion",level:4},{value:"Ecosystem P2P Deployment Progress",id:"ecosystem-p2p-deployment-progress",level:4},{value:"Peer Sharing",id:"peer-sharing",level:4},{value:"Diffusion (P2P)",id:"diffusion-p2p",level:4},{value:"Other Improvements & Developments",id:"other-improvements--developments",level:3},{value:"CDDL",id:"cddl",level:4},{value:"Cardano Ping",id:"cardano-ping",level:4},{value:"IOSim",id:"iosim",level:4},{value:"Typed Protocols",id:"typed-protocols",level:4},{value:"Cardano Client",id:"cardano-client",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"CI improvements",id:"ci-improvements",level:4},{value:"GHC 9.4 & 9.6",id:"ghc-94--96",level:4},{value:"Next steps",id:"next-steps",level:3}],u={toc:l},m="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-04---2023-06"},"2023-04 - 2023-06"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"eclipse-evasion"},"Eclipse Evasion"),(0,r.kt)("p",null,"We finalised the design of eclipse evasion and implemented its mechanism which\nrelays on connectivity to ",(0,r.kt)("em",{parentName:"p"},"big ledger peers"),". ",(0,r.kt)("em",{parentName:"p"},"Big ledger peers")," are the\nlargest ledger peers which accumulate 90% of stake (currently there are less\nthan 1000 of them). The outbound governor has new targets for ",(0,r.kt)("em",{parentName:"p"},"known"),",\n",(0,r.kt)("em",{parentName:"p"},"established")," and ",(0,r.kt)("em",{parentName:"p"},"active")," big ledger peers which work in a similar way that\nsuch targets work for ledger peers. The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4662"},"ouroboros-network#4662")," PR is\ncurrently in review."),(0,r.kt)("p",null,"As part of this work we also identified a bug which would prevent a node to\nconnect to itself. Such connections are not easily detectable and are expected\nto be dropped by the churn mechanism, nonetheless they should not be buggy.\nThe failure was discovered thanks to our e2e simulation of diffusion using\n",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim")," & property based testing."),(0,r.kt)("p",null,"The PR also refactors the heart of the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," interface reducing\ntechnical debt that would otherwise accumulate."),(0,r.kt)("p",null,"We also identified a possible improvement in the churn mechanism, which will be\nimplemented in Q3. Churn needs to await for peers to terminate, we can\nimprove the synchronisation. ","[ouroboros-network#4617]"),(0,r.kt)("h4",{id:"ecosystem-p2p-deployment-progress"},"Ecosystem P2P Deployment Progress"),(0,r.kt)("p",null,"We reached ",(0,r.kt)("strong",{parentName:"p"},"50% of stake in hands of SPOs who run at least on P2P relay"),". Now\nalso Emurgo and CF are running some P2P relays. Also 20% of IOG relays are\nrunning in P2P mode."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"P2P Progress",src:o(62597).Z,width:"1024",height:"768"})),(0,r.kt)("h4",{id:"peer-sharing"},"Peer Sharing"),(0,r.kt)("p",null,"We implemented ",(0,r.kt)("em",{parentName:"p"},"bootstrapping for peer sharing")," (also known as light peer\nsharing). New downstream (inbound) peers are now added to the ",(0,r.kt)("em",{parentName:"p"},"known peers")," of\nthe ",(0,r.kt)("em",{parentName:"p"},"outbound governor"),". Together with peer sharing this allows for non\nregistered relays to propagate through the network. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3596"},"ouroboros-network#3596")),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Please note that peer sharing is disabled by default and is not considered safe\nuntil Bootstrap Peers (see below) or Genesis is implemented.")),(0,r.kt)("h4",{id:"diffusion-p2p"},"Diffusion (P2P)"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We designed a feature which will reduce the load on IOG relays (in future\nalso run by CF & Emurgo). The feature consists of two parts. A new source\nof peers called ",(0,r.kt)("em",{parentName:"p"},"bootstrap peers")," (obtained from via an https request), the\nability to switch from bootstrap peers to ledger peers if the node is synced\n(we are collaborating with the consensus team on the interface ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/blob/fbb8c8ee97517809dec0d0c8ae3fae9b8d272caf/docs/website/docs/bootstrap-peers-IER.md"},"Bootstrap\nPeers IER"),"). This feature will be completed in Q3.\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4530"},"ouroboros-network#4530"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We published a blog post about ",(0,r.kt)("a",{parentName:"p",href:"https://engineering.iog.io/2023-06-28-p2p"},"P2P design & implementation"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4559"},"ouroboros-network#4559"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We merged changes which allow the consensus layer to start / stop block\nforging thread. This will allow to deploy P2P block producing nodes which\nserve as a live backup node. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"ouroboros-consensus#140"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed a few bugs in local root peers DNS resolution service:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4583"},"ouroboros-network#4583"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4571"},"ouroboros-network#4571"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We limited concurrency of DNS name resolutions: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4596"},"ouroboros-network#4596"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Galois Inc implemented query option for Handshake: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed handshake query timeout: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4608"},"ouroboros-network#4608"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented warm valency for local root peers. This can help when using\nDNS names in local root peers which resolve to many IP addresses. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4575"},"ouroboros-network#4575"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We merged handshake changes which allow query protocol versions. Thanks to\nJames Parker from Galois Inc.: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30/"},"cardano-cli#30"),"."))),(0,r.kt)("h3",{id:"other-improvements--developments"},"Other Improvements & Developments"),(0,r.kt)("h4",{id:"cddl"},"CDDL"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We added ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-node")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," CDDL specs / tests for encoding\nof ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionData")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToClientVersionData"),". ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We clarified an inconsistency between CDDL spec and implementation which is\nhighly polymorphic. We designed and implemented a fix for ",(0,r.kt)("inlineCode",{parentName:"p"},"tx-submission"),"\nand ",(0,r.kt)("inlineCode",{parentName:"p"},"local-tx-submission")," mini-protocols. Specs for other mini-protocols will\nbe improved at a later stage. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4580"},"ouroboros-network#4580")))),(0,r.kt)("h4",{id:"cardano-ping"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-ping"},"Cardano Ping")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-ping")," command was deprecated in favour of ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," (the\ntransition was done by the ",(0,r.kt)("inlineCode",{parentName:"p"},"node")," team).")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Support for ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," protocol using Unix sockets.\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4601"},"ouroboros-network#4601"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Support for ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeV_11")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToClientV_16"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4587"},"ouroboros-network#4587"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," is now using ",(0,r.kt)("em",{parentName:"p"},"ISO8601")," format for timestamps. Formatting of\nmessages was improved. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4593"},"ouroboros-network#4593"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," has a new ",(0,r.kt)("inlineCode",{parentName:"p"},"--query-versions")," flag which allows to query\nsupported versions by the remote node. This is supported by\n",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.1.0"),". ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4589"},"ouroboros-network#4589"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5313"},"cardano-node#5313"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30/"},"cardano-cli#30")))),(0,r.kt)("h4",{id:"iosim"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/io-sim"},"IOSim")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed timeouts & delays in ",(0,r.kt)("inlineCode",{parentName:"p"},"io-classes")," in a series of PRs: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/81"},"io-sim#81"),",\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/82"},"io-sim#82"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/86"},"io-sim#86"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/87"},"io-sim#87"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We released ",(0,r.kt)("inlineCode",{parentName:"p"},"strict-stm-1.1.0.1")," on Hackage which fixed a bug in package\ndescription file: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/101"},"io-sim#101"),"."))),(0,r.kt)("h4",{id:"typed-protocols"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/typed-protocols"},"Typed Protocols")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We published haddocks of ",(0,r.kt)("inlineCode",{parentName:"li"},"typed-protocols")," at\n",(0,r.kt)("a",{parentName:"li",href:"https://input-output-hk.github.io/typed-protocols"},"https://input-output-hk.github.io/typed-protocols"))),(0,r.kt)("h4",{id:"cardano-client"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-client"},"Cardano Client")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug in ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-client-0.1.0.2")," release which results in clients\n(e.g. ",(0,r.kt)("inlineCode",{parentName:"li"},"db-sync"),") negotiate an experimental protocol version.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"After the split between consensus & network, we made ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-client"),"\nindependent of ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-diffusion"),": ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4526"},"ouroboros-network#4526"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We wrap all exceptions in ",(0,r.kt)("inlineCode",{parentName:"p"},"DiffusionError"),": ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4537"},"ouroboros-network#4537"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5356"},"cardano-node#5356"),"."))),(0,r.kt)("h4",{id:"ci-improvements"},"CI improvements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We switched to use GitHub merge queues in ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols")," repositories; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/30"},"typed-protocols#30"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4546"},"ouroboros-network#4546"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We cleaned & updated scripts which run on CI.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a script to verify & release packages on CHaP; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4542"},"ouroboros-network#4542"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4573"},"ouroboros-network#4573"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a new CI script and cleaned existing ones:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4572"},"ouroboros-network#4572"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We don't install cryptographic libraries on CI anymore as none of our\npackages requires them; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4539"},"ouroboros-network#4539"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Improved caching of dependencies: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4553"},"ouroboros-network#4553"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We made it possible to trigger building haddock manually:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4549"},"ouroboros-network#4549"),"."))),(0,r.kt)("h4",{id:"ghc-94--96"},"GHC 9.4 & 9.6"),(0,r.kt)("p",null,"We made all repositories under our control compile with ",(0,r.kt)("inlineCode",{parentName:"p"},"ghc-9.4")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"ghc-9.6"),"\nwhich includes ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"Win32-network"),"."),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("p",null,"We will continue towards our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/39/views/30"},"aspirational roadmap"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will continue reviewing eclipse evasion."),(0,r.kt)("li",{parentName:"ul"},"As ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"ouroboros-consensus#140")," was merged, we are making progress towards\nreleasing P2P on block production nodes. We hope to analyse performance\nregression on such nodes observed on the benchmarking cluster. ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=6875505"},"roadmap-3887")),(0,r.kt)("li",{parentName:"ul"},"We are also focused on ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=8920085"},"roadmap-3969"),". Note that it was expanded in Q2.")))}h.isMDXComponent=!0},62597:(e,t,o)=>{o.d(t,{Z:()=>n});const n=o.p+"assets/images/2023-07-06-p2p-progress-194a909569eebb016b1f24fb8941e2cc.png"}}]); \ No newline at end of file diff --git a/assets/js/57f9f9c7.1a8728dd.js b/assets/js/57f9f9c7.1a8728dd.js new file mode 100644 index 0000000000..8d5b18f863 --- /dev/null +++ b/assets/js/57f9f9c7.1a8728dd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[30252],{22749:e=>{e.exports=JSON.parse('{"permalink":"/page/56","page":56,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/55","nextPage":"/page/57","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/5889a844.a4fcf82d.js b/assets/js/5889a844.a4fcf82d.js new file mode 100644 index 0000000000..6a82063aba --- /dev/null +++ b/assets/js/5889a844.a4fcf82d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[68184],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),h=p(a),u=n,m=h["".concat(s,".").concat(u)]||h[u]||d[u]||i;return a?r.createElement(m,o(o({ref:t},c),{},{components:a})):r.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2022-10-28-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-10-28-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-28-hydra.md",source:"@site/blog/2022-10-28-hydra.md",title:"Hydra Team Update",description:"High level summary",date:"2022-10-28T00:00:00.000Z",formattedDate:"October 28, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.795,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-10-28-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"DB Sync Team Update",permalink:"/2022-11-01-db-sync"},nextItem:{title:"Network Team Update",permalink:"/2022-10-28-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This week, the hydra team completed several user experience improvements to the\n",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-tui")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node"),", and delivered a first version of persisted head\nstates by publishing release version\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0"},(0,n.kt)("inlineCode",{parentName:"a"},"0.8.0")),".\nBesides this, they met with researchers on topic of the HeadV1 specification and\nkicked-off work on the RFP for an external audit of the Hydra Head protocol and implementation."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the UX improvements on the ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-tui")),(0,n.kt)("li",{parentName:"ul"},"Released version ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0"},(0,n.kt)("inlineCode",{parentName:"a"},"0.8.0")),", which delivers a first version of persisted head states"),(0,n.kt)("li",{parentName:"ul"},"Met with researchers on the HeadV1 specification"),(0,n.kt)("li",{parentName:"ul"},"Started work on the RFP for our external audit")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete ADR18 implementation and get it merged"),(0,n.kt)("li",{parentName:"ul"},"Start work on event-sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/580"},"#580")),(0,n.kt)("li",{parentName:"ul"},"Have a first plutus script gap closed ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/452"},"#452")),(0,n.kt)("li",{parentName:"ul"},"Revamp CI to use flakes and build macos artifacts (stretch goal: migrate to cicero for nix builds)")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/588e4efd.ff334de1.js b/assets/js/588e4efd.ff334de1.js new file mode 100644 index 0000000000..ba929c2efd --- /dev/null +++ b/assets/js/588e4efd.ff334de1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50097],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>k});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=u(r),d=o,k=c["".concat(p,".").concat(d)]||c[d]||m[d]||a;return r?n.createElement(k,l(l({ref:t},s),{},{components:r})):n.createElement(k,l({ref:t},s))}));function k(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(87462),o=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-05-26-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-05-26-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-26-network.md",source:"@site/blog/2023-05-26-network.md",title:"Network Team Update",description:"High level summary",date:"2023-05-26T00:00:00.000Z",formattedDate:"May 26, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:.515,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-05-26-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-05-26-ledger"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-05-24-node-cli-api"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Detailed summary",id:"detailed-summary",level:2}],s={toc:u},c="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(c,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"We continued working on ",(0,o.kt)("inlineCode",{parentName:"p"},"eclipse-evasion"),". We also analysed and fixed a bug\nwhen using DNS names in local root peers. We continued working on engineering\nblog post about P2P. We released a new version of packages for\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node-8.1.0")," release."),(0,o.kt)("p",null,"We improved our CI, removed obsolete scripts add extra validation which checks\nif ",(0,o.kt)("inlineCode",{parentName:"p"},"CHANGELOG.md")," files were updated."),(0,o.kt)("p",null,"We also improved release scripts."),(0,o.kt)("h2",{id:"detailed-summary"},"Detailed summary"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Eclipse evasion: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4462"},"#4462")),(0,o.kt)("li",{parentName:"ul"},"Local root peers bug fix: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4559"},"#4559")),(0,o.kt)("li",{parentName:"ul"},"Release to CHaP: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4573"},"#4573")),(0,o.kt)("li",{parentName:"ul"},"CI improvements: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4572"},"#4572")),(0,o.kt)("li",{parentName:"ul"},"Release script improvements: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4573"},"#4573"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/58a16fc9.4e54b885.js b/assets/js/58a16fc9.4e54b885.js new file mode 100644 index 0000000000..20a9f4bf71 --- /dev/null +++ b/assets/js/58a16fc9.4e54b885.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[38077],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var p=a.createContext({}),u=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),s=u(n),m=r,h=s["".concat(p,".").concat(m)]||s[m]||c[m]||o;return n?a.createElement(h,i(i({ref:t},d),{},{components:n})):a.createElement(h,i({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:r,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const o={title:"SRE Team Update",slug:"2024-04-26-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-04-26-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-26-sre.md",source:"@site/blog/2024-04-26-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-04-26T00:00:00.000Z",formattedDate:"April 26, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:2.39,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-04-26-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-04-27-node-cli-api"},nextItem:{title:"Ledger Team Update",permalink:"/2024-04-24-ledger"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3},{value:"Ouroboros-network-ops",id:"ouroboros-network-ops",level:3},{value:"Sanchonet",id:"sanchonet",level:3},{value:"Sanchonet-demo",id:"sanchonet-demo",level:3}],d={toc:u},s="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(s,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node 8.9.2 is now deployed to mainnet, preprod, preview and\nshelley-qa environments.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node 8.10.1-pre is now deployed to sanchonet and also to one-third of\nIOGs preprod environment nodes and two-thirds of IOGs preview environment\nnodes.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Private chain for Voltaire team was paused with plans for a future respin.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The network team's ouroboros-network-ops machine cluster was re-written using\nthe cardano-parts stack to upgrade from the nixops/terraform/niv stack it was\npreviously using."))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sets cardano-node to 8.9.2, dbsync-ng to sancho-4.2.0; mithril to 2412.0,\niohk-nix to include new peerSharing defaults and introduce a new block\nproducer config. Adds a new truncate-chain recipe and improves mithril\nrelated services. More detail is available in the PR description:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-parts/pull/38"},"cardano-parts-pull-38"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2; mithril pre (-ng)\nto unstable, iohk-nix and iohk-nix-ng pin includes new Cardano Foundation\nbootstrap relays. Adds new aws machine management and other recipes, metadata\njob support for pool creation, misc fixes and improvements. More detail is\navailable in the PR description:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-parts/pull/39"},"cardano-parts-pull-39")))),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new\npeerSharing defaults and colmena.nix cluster refactor for peerSharing\nadjustments and implements all updates in cardano-parts PR#38. See the PR\ndescription for more details:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-mainnet/pull/12"},"cardano-mainnet-pull-12"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sets dbsync to 13.2.0.2, iohk-nix and iohk-nix-ng to include new CF relays,\nadds new aws machine management recipes and implements all updates in\ncardano-parts PR#39. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-mainnet/pull/13"},"cardano-mainnet-pull-13")))),(0,r.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Default peerSharing true and add block producer config to release binaries.\nSee the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5789"},"cardano-node-pull-5789"))),(0,r.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps to cardano-node 8.9.2:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/5d4925b...1fca100"},"cardano-ops-compare"))),(0,r.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds a caddy webserver for run reviews and tunes the NVME FS mounts for performance:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/a6a9b39...3cce0de"},"cardano-perf-compare"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new\npeerSharing defaults, refactors mdbook out of docs dir, adds example chain\nmanipulation doc and implements all updates in cardano-parts PR#38. See the\nPR description for more details:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-playground/pull/21"},"cardano-playground-pull-21"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2, mithril pre (-ng)\nto unstable, iohk-nix and iohk-nix-ng to include new CF relays, adds a public\nTLS dbsync user connection option, stops private chain cluster and implements\nall updates in cardano-parts PR#39. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-playground/pull/22"},"cardano-playground-pull-22")))),(0,r.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Creates block producer configurations to accomodate PeerSharing set true by default:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/575"},"iohk-nix-pull-575"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Adds Cardano Foundation mainnet bootstrap peers:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/578"},"iohk-nix-pull-578")))),(0,r.kt)("h3",{id:"ouroboros-network-ops"},"Ouroboros-network-ops"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Rewrites the networking-team machine cluster using the cardano-parts stack;\nwaiting for adoption prior to merge:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network-ops/pull/13"},"ouroboros-network-ops-pull-13"))),(0,r.kt)("h3",{id:"sanchonet"},"Sanchonet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds a sanchonet faucet return address:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet/pull/141"},"sanchonet-pull-141"))),(0,r.kt)("h3",{id:"sanchonet-demo"},"Sanchonet-demo"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Updates node to 8.10.0-pre and modifies scripts for compatibility:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet-demo/compare/8797c24...c2d9bfb"},"sanchonet-demo-compare"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/58c7cc80.412c1784.js b/assets/js/58c7cc80.412c1784.js new file mode 100644 index 0000000000..bcd1c113f8 --- /dev/null +++ b/assets/js/58c7cc80.412c1784.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53744],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),d=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=d(a),p=n,m=u["".concat(c,".").concat(p)]||u[p]||h[p]||o;return a?r.createElement(m,i(i({ref:t},s),{},{components:a})):r.createElement(m,i({ref:t},s))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:n,i[1]=l;for(var d=2;d{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-05-10-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-05-10-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-10-hydra.md",source:"@site/blog/2024-05-10-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-05-10T00:00:00.000Z",formattedDate:"May 10, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.63,hasTruncateMarker:!1,authors:[{name:"Daniel Firth",title:"Hydra Software Engineer",url:"https://github.com/locallycompact",imageURL:"https://github.com/locallycompact.png",key:"locallycompact"}],frontMatter:{title:"Hydra Team Update",slug:"2024-05-10-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-05-13-node-cli-api"},nextItem:{title:"SRE Team Update",permalink:"/2024-05-10-sre"}},c={authorsImageUrls:[void 0]},d=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],s={toc:d},u="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team upgraded the hydra-node networking layer to use a versioned handshake protocol, as well as extensive documentation restructuring and bug fixes to the hydra-tui."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Use versioned hadshake when connecting hydra-nodes."),(0,n.kt)("li",{parentName:"ul"},"Restructure documentation."),(0,n.kt)("li",{parentName:"ul"},"Fixed the transaction envelope type parsing in order to be compatible with cardano-cli and update our docs."),(0,n.kt)("li",{parentName:"ul"},"Show the contestations in the hydra-tui"),(0,n.kt)("li",{parentName:"ul"},"Experiment with removing persistence in the reliability layer and adding custom command to Reset the head state to the last confirmed snapshot")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Provide aarch64-linux docker images for hydra-node."),(0,n.kt)("li",{parentName:"ul"},"Release hydra-node 0.17.0"),(0,n.kt)("li",{parentName:"ul"},"Finish new model spec changes related to decommit testing")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/58de45fc.1eea35fb.js b/assets/js/58de45fc.1eea35fb.js new file mode 100644 index 0000000000..0585f1de9a --- /dev/null +++ b/assets/js/58de45fc.1eea35fb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[72459],{6328:e=>{e.exports=JSON.parse('{"permalink":"/reports/tags/benchmarking-reports","page":1,"postsPerPage":10,"totalPages":1,"totalCount":6,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/58ef99f4.44775b76.js b/assets/js/58ef99f4.44775b76.js new file mode 100644 index 0000000000..44d21a67cb --- /dev/null +++ b/assets/js/58ef99f4.44775b76.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1686],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=p(n),h=o,m=u["".concat(l,".").concat(h)]||u[h]||c[h]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,i[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2024-04-15-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2024-04-15-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-18-network.md",source:"@site/blog/2024-04-18-network.md",title:"Network Team Update",description:"High-level overview of sprint 58 and sprint 59",date:"2024-04-18T00:00:00.000Z",formattedDate:"April 18, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:3.22,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-04-15-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-04-19-performance-and-tracing"},nextItem:{title:"Consensus Team Update",permalink:"/2024-04-17-consensus"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 58 and sprint 59",id:"high-level-overview-of-sprint-58-and-sprint-59",level:2},{value:"Releases",id:"releases",level:3},{value:"Genesis",id:"genesis",level:3},{value:"TxSubmission",id:"txsubmission",level:3},{value:"Churn and EKG metrics",id:"churn-and-ekg-metrics",level:3},{value:"Documentation",id:"documentation",level:3},{value:"Low level details",id:"low-level-details",level:2},{value:"Peer Sharing Testing",id:"peer-sharing-testing",level:3},{value:"EKG / Prometheus Counters",id:"ekg--prometheus-counters",level:3},{value:"Deprecation policy",id:"deprecation-policy",level:4},{value:"Grafana graphs",id:"grafana-graphs",level:4},{value:"Active Peers Metrics",id:"active-peers-metrics",level:5},{value:"Established Peers Metrics",id:"established-peers-metrics",level:5},{value:"Known Peers Metrics",id:"known-peers-metrics",level:5},{value:"Churn Metrics",id:"churn-metrics",level:5}],d={toc:p},u="wrapper";function c(e){let{components:t,...a}=e;return(0,o.kt)(u,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-58-and-sprint-59"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+58%22"},"sprint 58")," and ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+59%22"},"sprint 59")),(0,o.kt)("h3",{id:"releases"},"Releases"),(0,o.kt)("p",null,"We released ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/releases/tag/8.9.1"},(0,o.kt)("inlineCode",{parentName:"a"},"cardano-node-8.9.1")),", and we tagged a soon to be released\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/releases/tag/8.9.2"},(0,o.kt)("inlineCode",{parentName:"a"},"cardano-node-8.9.2")),"\nThe ",(0,o.kt)("inlineCode",{parentName:"p"},"8.9.2")," release will have a fixed peer sharing support, which we\nincidentally broke in ",(0,o.kt)("inlineCode",{parentName:"p"},"8.9.1"),". We expanded our test suite to cover discovered\nbugs (see below for more details). Please also see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/orgs/IntersectMBO/projects/5/views/18"},"the release\ntab")," in our project to see which PRs / issues were\nincluded in a given release, the following mapping might also be useful:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ouroboros-network-0.13.1.0")," -> ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-node-8.9.1")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ouroboros-entwork-0.14.0.0")," -> ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-node-8.9.2"))),(0,o.kt)("h3",{id:"genesis"},"Genesis"),(0,o.kt)("p",null,"We continued working on network Genesis support: "),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3396"},"ouroboros-network#3396")," - churn policy for Genesis;"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4813"},"ouroboros-network#4813")," - outbound governor support for Genesis;"),(0,o.kt)("li",{parentName:"ul"},"support for ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-cli")," to write a big ledger peers snapshot to disk and\nfor ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-node")," to pass it to ",(0,o.kt)("inlineCode",{parentName:"li"},"ouroboros-network"),".")),(0,o.kt)("p",null,"As well as a feature required by consensus:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4815"},"ouroboros-network#4815")," - inform consensus about outbound connections state")),(0,o.kt)("h3",{id:"txsubmission"},"TxSubmission"),(0,o.kt)("p",null,"Only a little progress was made due to one of us being on vacation."),(0,o.kt)("h3",{id:"churn-and-ekg-metrics"},"Churn and EKG metrics"),(0,o.kt)("p",null,"While working on ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4815"},"ouroboros-network#4815"),", we addressed technical debt\nin churn. The PR removes implicit synchronisation (in terms of delays) in\nfavour of explicit synchronisation with the outbound governor. The PR extends\nEKG counters traced by the node. See below for some graphs."),(0,o.kt)("h3",{id:"documentation"},"Documentation"),(0,o.kt)("p",null,"We updated the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node-wiki/wiki/understanding-config-files#the-p2p-topologyjson-file"},"documentation")," on peer sharing, see\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node-wiki/pull/44"},"cardano-node-wiki#44"),"."),(0,o.kt)("h2",{id:"low-level-details"},"Low level details"),(0,o.kt)("h3",{id:"peer-sharing-testing"},"Peer Sharing Testing"),(0,o.kt)("p",null,"We wrote a testing scenario for peer sharing, which simulates a node setup:\n",(0,o.kt)("inlineCode",{parentName:"p"},"A -> B <- C"),", where neither of the nodes ",(0,o.kt)("inlineCode",{parentName:"p"},"B")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"C")," have any local roots; they only learn about other nodes through (light) peer sharing. ",(0,o.kt)("inlineCode",{parentName:"p"},"B")," learns\nabout ",(0,o.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"C")," because they connect to it, while ",(0,o.kt)("inlineCode",{parentName:"p"},"C")," should learn about ",(0,o.kt)("inlineCode",{parentName:"p"},"A"),"\nthrough peer sharing. This test scenario should prevent us from breaking peer sharing in the\nfuture in some obvious ways. In the future, we will also work on extending our\ntest suite with peer sharing in mind. See ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4839"},"ouroboros-network#4839"),",\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4841"},"ouroboros-network#4841"),"."),(0,o.kt)("h3",{id:"ekg--prometheus-counters"},"EKG / Prometheus Counters"),(0,o.kt)("p",null,"Note that this is in progress, so some things might still change."),(0,o.kt)("p",null,"We will provide counters for ",(0,o.kt)("inlineCode",{parentName:"p"},"active")," (also known as ",(0,o.kt)("inlineCode",{parentName:"p"},"hot"),") peers,\n",(0,o.kt)("inlineCode",{parentName:"p"},"established")," (e.g. ",(0,o.kt)("inlineCode",{parentName:"p"},"hot")," & ",(0,o.kt)("inlineCode",{parentName:"p"},"warm"),") peers and ",(0,o.kt)("inlineCode",{parentName:"p"},"known")," (e.g. ",(0,o.kt)("inlineCode",{parentName:"p"},"hot"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"warm")," and\n",(0,o.kt)("inlineCode",{parentName:"p"},"cold"),") peers. This is the same way one specifies targets in the node's\nconfiguration. In addition, the three groups are split into five categories:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"ledger peers"),(0,o.kt)("li",{parentName:"ul"},"big ledger peers"),(0,o.kt)("li",{parentName:"ul"},"local root peers"),(0,o.kt)("li",{parentName:"ul"},"bootstrap peers"),(0,o.kt)("li",{parentName:"ul"},"shared peers")),(0,o.kt)("p",null,"In addition, we also provide a counter for root peers, which counts ledger peers,\nbig ledger peers, local roots and bootstrap peers, which correspond to the\nroot peers target ",(0,o.kt)("inlineCode",{parentName:"p"},"TargetNumberOfRootPeers")," in the configuration."),(0,o.kt)("p",null,"We also provide counters for ongoing promotions and demotions."),(0,o.kt)("p",null,"Ledger peers are affected by ",(0,o.kt)("inlineCode",{parentName:"p"},"TargetNumberOf{Known,Established,Active}Peers")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"TargetNumberOfRootPeers"),".\nThe gap between ",(0,o.kt)("inlineCode",{parentName:"p"},"TargetNumberOfRootPeers")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"TargetNumberOfKnownPeers")," will\nbe filled either with ledger peers or peers, which the node discovered through\npeer sharing.\nBig ledger peers are affected by ",(0,o.kt)("inlineCode",{parentName:"p"},"TargetNumberOf{Known,Established,Active}BigLedgerPeers"),"."),(0,o.kt)("p",null,"Below are some Grafana graphs from an experimental ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," branch:"),(0,o.kt)("h4",{id:"deprecation-policy"},"Deprecation policy"),(0,o.kt)("p",null,"The previous ",(0,o.kt)("inlineCode",{parentName:"p"},"hot"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"warm")," / ",(0,o.kt)("inlineCode",{parentName:"p"},"cold")," EKG counters will also be available,\nalthough deprecated after the new ones are released. Sometime in the future\nthey will be removed."),(0,o.kt)("h4",{id:"grafana-graphs"},"Grafana graphs"),(0,o.kt)("p",null,"The screenshots are from a node, which is configured without any bootstrap\npeers, which is why all bootstrap metrics are ",(0,o.kt)("inlineCode",{parentName:"p"},"0"),". The node is configured with the following targets:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},' "TargetNumberOfRootPeers": 60,\n "TargetNumberOfKnownPeers": 100,\n "TargetNumberOfEstablishedPeers": 40,\n "TargetNumberOfActivePeers": 15,\n "TargetNumberOfKnownBigLedgerPeers": 15,\n "TargetNumberOfEstablishedBigLedgerPeers": 10,\n "TargetNumberOfActiveBigLedgerPeers": 5,\n')),(0,o.kt)("p",null,"and has a small number of local root peers and one peer in its ",(0,o.kt)("inlineCode",{parentName:"p"},"publicRoots"),"\nconfiguration."),(0,o.kt)("h5",{id:"active-peers-metrics"},"Active Peers Metrics"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"P2P relays",src:n(29569).Z,width:"2074",height:"960"})),(0,o.kt)("h5",{id:"established-peers-metrics"},"Established Peers Metrics"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"P2P relays",src:n(60655).Z,width:"2073",height:"1211"})),(0,o.kt)("h5",{id:"known-peers-metrics"},"Known Peers Metrics"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"P2P relays",src:n(42134).Z,width:"2081",height:"938"})),(0,o.kt)("h5",{id:"churn-metrics"},"Churn Metrics"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"P2P relays",src:n(83775).Z,width:"2087",height:"770"})))}c.isMDXComponent=!0},29569:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2024-04-15-active-peers-1048a75d3033f9e32ea51c0b817e0cd1.png"},83775:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2024-04-15-churn-d816c6f07c8e3ee8d28de78989e2ed65.png"},60655:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2024-04-15-established-peers-fbb9abf021fc68a884b86b8b3fd415d4.png"},42134:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2024-04-15-known-peers-f59994b77d7964be1157d0ed55b21261.png"}}]); \ No newline at end of file diff --git a/assets/js/5907b27e.7fbdb510.js b/assets/js/5907b27e.7fbdb510.js new file mode 100644 index 0000000000..f31999e32f --- /dev/null +++ b/assets/js/5907b27e.7fbdb510.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97795],{29272:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/59a262d5.051c1d08.js b/assets/js/59a262d5.051c1d08.js new file mode 100644 index 0000000000..daa762fd86 --- /dev/null +++ b/assets/js/59a262d5.051c1d08.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[42198],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},c),{},{components:n})):r.createElement(h,s({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-05-17-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-05-17-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-17-consensus.md",source:"@site/blog/2023-05-17-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-05-17T00:00:00.000Z",formattedDate:"May 17, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.285,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-05-17-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-05-19-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-05-17-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Genesis",id:"genesis",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the past two weeks we brought further improvements into the Genesis design in collaboration with the IO Research and Networking teams. These improvements concern the Genesis selection rule, candidate rule, and root peers usage. See the ","[Genesis][#genesis]"," section for more details."),(0,a.kt)("p",null,"Regarding our UTxO-HD prototype, during the past two weeks we put together a pull-request that improves the DB locking mechanism, started porting the mempool fairness improvements from our ",(0,a.kt)("inlineCode",{parentName:"p"},"main")," branch, and integrated a new open source library (that implements cancellative monoids) that allowed us to simplify our code and get a small performance gain."),(0,a.kt)("p",null,"We improved our tooling by releasing an ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/68"},"immutable DB server"),", which can be used for testing and benchmarking purposes, and a ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/70"},(0,a.kt)("inlineCode",{parentName:"a"},"db-truncater"))," program, which can be used in disaster recovery and benchmarking scenarios."),(0,a.kt)("h2",{id:"genesis"},"Genesis"),(0,a.kt)("p",null,"The consensus team working on Genesis:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Improved the genesis selection rule as a result of our interaction with IO Research."),(0,a.kt)("li",{parentName:"ul"},"Studied how the hard-fork combinator handles forecasting at era transitions, and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/89"},"improved our documentation"),"."),(0,a.kt)("li",{parentName:"ul"},"Determined that the simplest candidate rule we had considered will work for the Genesis window at era transitions, at least for the MVP."),(0,a.kt)("li",{parentName:"ul"},"Elaborated concrete proposal for the Genesis State Machine."),(0,a.kt)("li",{parentName:"ul"},"Met with the Networking Team and advised/co-designed how to implement the stop gap usage of public trusted root peers before Genesis is released (it's similar to the Genesis State Machine).")),(0,a.kt)("p",null,"The team is currently re-analyzing the Limit on Patience, which can be less aggressive now that we've re-introduced the Genesis State Machine."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/59e2956e.b2e0ca4b.js b/assets/js/59e2956e.b2e0ca4b.js new file mode 100644 index 0000000000..5770c977f1 --- /dev/null +++ b/assets/js/59e2956e.b2e0ca4b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[45332],{21557:e=>{e.exports=JSON.parse('{"permalink":"/page/57","page":57,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/56","nextPage":"/page/58","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/5a36c8fd.e5f9c0ca.js b/assets/js/5a36c8fd.e5f9c0ca.js new file mode 100644 index 0000000000..609998dd25 --- /dev/null +++ b/assets/js/5a36c8fd.e5f9c0ca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16727],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=i.createContext({}),s=function(e){var t=i.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=s(e.components);return i.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(r),c=n,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-12-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-12-20-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-20-mithril.md",source:"@site/blog/2023-12-20-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-12-20T00:00:00.000Z",formattedDate:"December 20, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.17,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-12-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-12-22-sre"},nextItem:{title:"Hydra Team Update",permalink:"/2023-12-15-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team completed aggregator optimizations, enabling the certification of new data types without introducing a new era. They also facilitated the selection of these data types through a simple configuration parameter. Additionally, the team started implementing a mock aggregator to strengthen Mithril client tests in WASM, kept working on threat modeling and risk analysis for P2P networking, and progressed with the implementation of a testing Mithril network for SanchoNet."),(0,n.kt)("p",null,"Finally, they worked on some optimizations and refactoring of the Mithril client CLI and started upgrading the Cardano node topology used in the Mithril networks' infrastructure."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement ",(0,n.kt)("inlineCode",{parentName:"strong"},"open_message")," timeout in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1387"},"#1387")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement configurable signed entity types in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1388"},"#1388")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance machine readable logs in client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1234"},"#1234")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Manual publication to ",(0,n.kt)("inlineCode",{parentName:"strong"},"npm")," registry with GitHub action")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1411"},"#1411")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a test network on ",(0,n.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement a fake standalone aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1397"},"#1397")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Simplify Mithril client CLI download command")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1406"},"#1406")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Make all infra Cardano nodes use P2P topology")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1405"},"#1405")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Upgrade Cardano node to ",(0,n.kt)("inlineCode",{parentName:"strong"},"8.7.2"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1410"},"#1410")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5a4abf4f.7c635b4a.js b/assets/js/5a4abf4f.7c635b4a.js new file mode 100644 index 0000000000..5c239f8bbe --- /dev/null +++ b/assets/js/5a4abf4f.7c635b4a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58359],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),c=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),h=c(a),u=n,d=h["".concat(p,".").concat(u)]||h[u]||m[u]||i;return a?r.createElement(d,o(o({ref:t},s),{},{components:a})):r.createElement(d,o({ref:t},s))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=u;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-03-08-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-08-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-08-hydra.md",source:"@site/blog/2024-03-08-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-03-08T00:00:00.000Z",formattedDate:"March 8, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.08,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-03-08-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-03-13-mithril"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-03-08-performance-and-tracing"}},p={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],s={toc:c},h="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team has been working on a new library ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-api-classy")," containing type class instances for era witnesses and also switched nix code to use ",(0,n.kt)("inlineCode",{parentName:"p"},"flake-parts"),". They also further improved the Hydra Head ","[","explorer","]","(",(0,n.kt)("a",{parentName:"p",href:"http://explorer.hydra.family"},"http://explorer.hydra.family"),") UI. The team also improved error reporting on integration tests and refactored the outcome algebra in the hydra-node protocol logic. Finally, they reviewed the incremental decommit specification with researchers. Meanwhile, SundeaLabs already implemented first UDP and Kinesis event sinks based on the EventSource / EventSink refactoring."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"New library ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-api-classy")," containing type class instances for era witnesses."),(0,n.kt)("li",{parentName:"ul"},"Switched the nix code to use ",(0,n.kt)("inlineCode",{parentName:"li"},"flake-parts"),"."),(0,n.kt)("li",{parentName:"ul"},"Completed another increment on the head explorer UI ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1333"},"#","1333"),"."),(0,n.kt)("li",{parentName:"ul"},"Improved error reporting on integration tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1335"},"#","1335"),"."),(0,n.kt)("li",{parentName:"ul"},"Refactored the outcome algebra in the hydra-node protocol logic ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1340"},"#","1340"),"."),(0,n.kt)("li",{parentName:"ul"},"Reviewed incremental decommit specification with researchers."),(0,n.kt)("li",{parentName:"ul"},"SundaeLabs implemented first UDP and Kinesis event sinks based on ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1267"},"#","1267"),".")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Prepare ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1178"},"#","1178")," on a branch for users to try out Conway on hydra."),(0,n.kt)("li",{parentName:"ul"},"Align specification with incremental decommit implementation"),(0,n.kt)("li",{parentName:"ul"},"Improve MTB in terms of new Decommit input"),(0,n.kt)("li",{parentName:"ul"},"Prepare a PR for Kupo using new Hydra transaction format"),(0,n.kt)("li",{parentName:"ul"},"Spike on literate Agda specification pdf")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5a843cd2.468b4c95.js b/assets/js/5a843cd2.468b4c95.js new file mode 100644 index 0000000000..3c1e744263 --- /dev/null +++ b/assets/js/5a843cd2.468b4c95.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[37221],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>d});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function l(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):l(l({},t),e)),i},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),h=u(i),c=n,d=h["".concat(p,".").concat(c)]||h[c]||m[c]||a;return i?r.createElement(d,l(l({ref:t},s),{},{components:i})):r.createElement(d,l({ref:t},s))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,l=new Array(a);l[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[h]="string"==typeof e?e:n,l[1]=o;for(var u=2;u{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>a,metadata:()=>o,toc:()=>u});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-07-27-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-07-27-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-27-mithril.md",source:"@site/blog/2023-07-27-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-07-27T00:00:00.000Z",formattedDate:"July 27, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.715,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-07-27-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-07-28-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-07-26-consensus"}},p={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:u},h="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(h,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team launched ",(0,n.kt)("strong",{parentName:"p"},"Mithril protocol\u2019s mainnet beta"),": the ",(0,n.kt)("inlineCode",{parentName:"p"},"release-mainnet")," network is now open for signer registrations, and its genesis certificate has been created. The team is monitoring the network, and expects it to start producing certificates during the next Cardano epoch. "),(0,n.kt)("p",null,"They have released a new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2329.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2329.0")),", which is running on the ",(0,n.kt)("inlineCode",{parentName:"p"},"release-mainnet")," network. They also kept working on the implementation of the stress test tool for benchmarking the aggregator. The team kept working on the refactoring of the serialization/deserialization of the entities of the cryptographic library. Additionally, they completed the cleanup of the legacy store adapters in the aggregator."),(0,n.kt)("p",null,"Finally, they have worked on enhancing the documentation for ",(0,n.kt)("a",{parentName:"p",href:"https://mithril.network/doc/manual/getting-started/SPO-on-boarding-guide"},"onboarding SPOs")," and setting up a ",(0,n.kt)("a",{parentName:"p",href:"https://mithril.network/doc/manual/getting-started/run-signer-node"},"Mithril signer"),", and fixing installation bugs of the binary artifacts produced in the CI."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Created the dev blog post ",(0,n.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2023/07/21/mainnet-beta-launch"},"Mithril Protocol\u2019s Mainnet Beta Launch")),(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2329.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2329.0"))),(0,n.kt)("li",{parentName:"ul"},"Closed the epic that prepares the Mithril infrastructure for ",(0,n.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/767"},"#767"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Deploy 'mainnet' infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/988"},"#988")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Handle Secrets management")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/989"},"#989")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Release 'mainnet' Mithril network")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/918"},"#918"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Prepare SPO on-boarding guide")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1049"},"#1049")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Benchmark performances of Mithril Aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/904"},"#904"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Design & implement basic stress test tool for aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/991"},"#991")))),(0,n.kt)("li",{parentName:"ul"},"Worked on optimizations:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Enhance the configuration of Mithril relay")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1080"},"#1080")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Remove legacy store adapters from aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1053"},"#1053")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add a 'sign' sub-command to 'genesis' command in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1081"},"#1081")))),(0,n.kt)("li",{parentName:"ul"},"Worked on refactoring:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Refactor (de)serialization of crypto entities")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/668"},"#668")))),(0,n.kt)("li",{parentName:"ul"},"Worked on documentation:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Enhance 'Run a Mithril Signer node (SPO)' guide")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1055"},"#1055")))),(0,n.kt)("li",{parentName:"ul"},"Worked on bugs:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Shared library error in CI binaries")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1073"},"#1073")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Debian package does not install cleanly on older ubuntu versions")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/834"},"#834")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Aggregator panics with new (de)serialization of 'ProtocolVerificationKey'")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1083"},"#1083"))))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5af0f4f9.b871a003.js b/assets/js/5af0f4f9.b871a003.js new file mode 100644 index 0000000000..d7e8e91de7 --- /dev/null +++ b/assets/js/5af0f4f9.b871a003.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16165],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),s=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),c=s(a),m=n,h=c["".concat(i,".").concat(m)]||c[m]||d[m]||o;return a?r.createElement(h,l(l({ref:t},u),{},{components:a})):r.createElement(h,l({ref:t},u))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[c]="string"==typeof e?e:n,l[1]=p;for(var s=2;s{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-09-01-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,p={permalink:"/2023-09-01-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-sre.md",source:"@site/blog/2023-09-01-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-09-01T00:00:00.000Z",formattedDate:"September 1, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.075,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-09-01-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-09-01-network"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-08-29-node-cli-api"}},i={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Sanchonet-demo",id:"sanchonet-demo",level:3}],u={toc:s},c="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Work on cardano-parts repo continues and was utilized by the sanchonet-demo repository for demonstration purposes"),(0,n.kt)("li",{parentName:"ul"},"Work on a new ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs"},"capkgs"),' repository started -- "Content Addressed Packages"',(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"This repository provides common Cardano release and pre-release binaries in a pure content addressed nix package type via flake output"),(0,n.kt)("li",{parentName:"ul"},"These packages don't have the associated IFD, long eval times and large source dependencies that the originating source repositories often do"),(0,n.kt)("li",{parentName:"ul"},"Consumers of such packages, such as devShells or nixos machines, can benefit from the improved performance this offers")))),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Content addressed packages -- new repo: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs"},"capkgs"))),(0,n.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano p2p relay updates, dbSync snapshots server update, monitoring adjustments: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/5a0eabe...03e8e42"},"cardano-ops-compare"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Flake devShell module improvements: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/4"},"cardano-parts-pull-4")),(0,n.kt)("li",{parentName:"ul"},"Cardano-world entrypoints migrated to flake parts module: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/5"},"cardano-parts-pull-5")),(0,n.kt)("li",{parentName:"ul"},"Cardano-world jobs migrated to flake parts module: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/6"},"cardano-parts-pull-6")),(0,n.kt)("li",{parentName:"ul"},"Drep delegation fixups: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/7"},"cardano-parts-pull-7")),(0,n.kt)("li",{parentName:"ul"},"Utilize content addressed binaries, WIP: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/8"},"cardano-parts-pull-8")),(0,n.kt)("li",{parentName:"ul"},"Cardano-node module preparation branch, WIP: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/compare/capkgs...node-module"},"cardano-parts-compare"))),(0,n.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Availability zone pinning and explorer mods: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/d3a8644...9f9917c"},"cardano-perf-compare"))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Remove performance nodes for migration to cardano-perf: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/306ef6c6dd6c09d9b90b9768f2b84a1d05cded26"},"cardano-world-commit"))),(0,n.kt)("h3",{id:"sanchonet-demo"},"Sanchonet-demo"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet demonstration repository: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet-demo"},"sanchonet-demo"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5b019cc0.8b86c4cf.js b/assets/js/5b019cc0.8b86c4cf.js new file mode 100644 index 0000000000..73312c9cb4 --- /dev/null +++ b/assets/js/5b019cc0.8b86c4cf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[19447],{46500:e=>{e.exports=JSON.parse('{"permalink":"/","page":1,"postsPerPage":5,"totalPages":88,"totalCount":436,"nextPage":"/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/5b622352.53459d11.js b/assets/js/5b622352.53459d11.js new file mode 100644 index 0000000000..37ce8528ff --- /dev/null +++ b/assets/js/5b622352.53459d11.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73659],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(r),d=l,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||n;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=r.length,i=new Array(n);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>n,metadata:()=>o,toc:()=>u});var a=r(87462),l=(r(67294),r(3905));const n={title:"Ledger Team Update",slug:"2024-04-10-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-04-10-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-10-ledger.md",source:"@site/blog/2024-04-10-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-04-10T00:00:00.000Z",formattedDate:"April 10, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.22,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-04-10-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-04-12-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2024-04-10-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3},{value:"Low level summary",id:"low-level-summary",level:2}],s={toc:u},c="wrapper";function m(e){let{components:t,...r}=e;return(0,l.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"Most notable progress is on testing. In particular data generation for conformance test\nhas been improved and the implementation organized. Addition of various Conway related\nunit and property tests."),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4236"},"pull-4236")," - Fix typo in ",(0,l.kt)("inlineCode",{parentName:"li"},"ToJSON")," of ",(0,l.kt)("inlineCode",{parentName:"li"},"ConwayGovState")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4250"},"pull-4250")," - Add some ToJSON instances needed by cardano-node")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4221"},"pull-4221")," - Fix a NoThunks test failure on nightly builds"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4214"},"pull-4214")," - Fix ",(0,l.kt)("inlineCode",{parentName:"li"},"estimateMinFeeTx")," w/ bootstrap test"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4189"},"pull-4189")," - Imptests - treasury withdrawals"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4207"},"pull-4207")," - Added tests from a bug report"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4238"},"pull-4238")," - Imptests: ParameterChange affects ratification for in-flight proposals"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4243"},"pull-4243")," - Convert ",(0,l.kt)("inlineCode",{parentName:"li"},"small-steps")," testsuite to ",(0,l.kt)("inlineCode",{parentName:"li"},"Hspec")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4248"},"pull-4248")," - Fix withdrawals test data generation in ",(0,l.kt)("inlineCode",{parentName:"li"},"EnactSpec")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4212"},"pull-4212")," - Update and reorganize conformance tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4242"},"pull-4242")," - Added UnitTestTools and IncrementalStakeTest")),(0,l.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4219"},"pull-4219")," - Fixes for 8.10 release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4225"},"pull-4225")," - Post release updates"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4235"},"pull-4235")," - Revert to full formolu runs on CI"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4239"},"pull-4239")," - Use the Cabal-syntax package instead of the Cabal package"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4234"},"pull-4234")," - Add separate ",(0,l.kt)("inlineCode",{parentName:"li"},"devShell")," for ",(0,l.kt)("inlineCode",{parentName:"li"},"pre-commit")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4245"},"pull-4245")," - Plutus 1.25.0.0"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4246"},"pull-4246")," - Changelog for node release 8.10"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4249"},"pull-4249")," - Update tooling and minor fixups")),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5c868d36.c4ac43f4.js b/assets/js/5c868d36.c4ac43f4.js new file mode 100644 index 0000000000..82e946c757 --- /dev/null +++ b/assets/js/5c868d36.c4ac43f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15589],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>g});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),c=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=c(a),d=n,g=u["".concat(p,".").concat(d)]||u[d]||m[d]||o;return a?r.createElement(g,i(i({ref:t},s),{},{components:a})):r.createElement(g,i({ref:t},s))}));function g(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const o={sidebar_position:1},i="Create a Page",l={unversionedId:"tutorial-basics/create-a-page",id:"tutorial-basics/create-a-page",title:"Create a Page",description:"Add Markdown or React files to src/pages to create a standalone page:",source:"@site/docs/tutorial-basics/create-a-page.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/create-a-page",permalink:"/docs/tutorial-basics/create-a-page",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"defaultSidebar",previous:{title:"Tutorial - Basics",permalink:"/docs/category/tutorial---basics"},next:{title:"Create a Document",permalink:"/docs/tutorial-basics/create-a-document"}},p={},c=[{value:"Create your first React Page",id:"create-your-first-react-page",level:2},{value:"Create your first Markdown Page",id:"create-your-first-markdown-page",level:2}],s={toc:c},u="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"create-a-page"},"Create a Page"),(0,n.kt)("p",null,"Add ",(0,n.kt)("strong",{parentName:"p"},"Markdown or React")," files to ",(0,n.kt)("inlineCode",{parentName:"p"},"src/pages")," to create a ",(0,n.kt)("strong",{parentName:"p"},"standalone page"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"src/pages/index.js")," \u2192 ",(0,n.kt)("inlineCode",{parentName:"li"},"localhost:3000/")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"src/pages/foo.md")," \u2192 ",(0,n.kt)("inlineCode",{parentName:"li"},"localhost:3000/foo")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"src/pages/foo/bar.js")," \u2192 ",(0,n.kt)("inlineCode",{parentName:"li"},"localhost:3000/foo/bar"))),(0,n.kt)("h2",{id:"create-your-first-react-page"},"Create your first React Page"),(0,n.kt)("p",null,"Create a file at ",(0,n.kt)("inlineCode",{parentName:"p"},"src/pages/my-react-page.js"),":"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-jsx",metastring:'title="src/pages/my-react-page.js"',title:'"src/pages/my-react-page.js"'},"import React from 'react';\nimport Layout from '@theme/Layout';\n\nexport default function MyReactPage() {\n return (\n \n

My React page

\n

This is a React page

\n
\n );\n}\n")),(0,n.kt)("p",null,"A new page is now available at ",(0,n.kt)("a",{parentName:"p",href:"http://localhost:3000/my-react-page"},"http://localhost:3000/my-react-page"),"."),(0,n.kt)("h2",{id:"create-your-first-markdown-page"},"Create your first Markdown Page"),(0,n.kt)("p",null,"Create a file at ",(0,n.kt)("inlineCode",{parentName:"p"},"src/pages/my-markdown-page.md"),":"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-mdx",metastring:'title="src/pages/my-markdown-page.md"',title:'"src/pages/my-markdown-page.md"'},"# My Markdown page\n\nThis is a Markdown page\n")),(0,n.kt)("p",null,"A new page is now available at ",(0,n.kt)("a",{parentName:"p",href:"http://localhost:3000/my-markdown-page"},"http://localhost:3000/my-markdown-page"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5c8fca76.f7706117.js b/assets/js/5c8fca76.f7706117.js new file mode 100644 index 0000000000..75fd942d80 --- /dev/null +++ b/assets/js/5c8fca76.f7706117.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[44003],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>g});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=s(a),d=n,g=m["".concat(p,".").concat(d)]||m[d]||c[d]||o;return a?r.createElement(g,l(l({ref:t},u),{},{components:a})):r.createElement(g,l({ref:t},u))}));function g(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[m]="string"==typeof e?e:n,l[1]=i;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-10-27-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-10-27-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-27-sre.md",source:"@site/blog/2023-10-27-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-10-27T00:00:00.000Z",formattedDate:"October 27, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.405,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-10-27-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-10-27-network"},nextItem:{title:"Mithril Team Update",permalink:"/2023-10-25-mithril"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3}],u={toc:s},m="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano-world testnets of preprod, preview, sanchonet and some private test chains are in the process of being migrated to the ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground"},"cardano-playground")," stack")),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Adds offchain-metadata-tools, dbsync sanchonet updates: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/b197e22...b1f1cbd"},"capkgs-compare"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"General package updates, modules improvements and template recipes to support network migration from world to playground ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/17"},"cardano-parts-pull-17"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Bumps cardano-db-sync-ng to sancho-2-0-0 tag"),(0,n.kt)("li",{parentName:"ul"},"Bumps iohk-nix-ng to mig-sancho branch for sanchonet pool migration from world to play"),(0,n.kt)("li",{parentName:"ul"},"Adds more machine system bins and devShell bins for scripting and debug purposes"),(0,n.kt)("li",{parentName:"ul"},"Adds cardano-show-kes-period alias on any node machine importing profile-cardano-node-group module"),(0,n.kt)("li",{parentName:"ul"},"Adds profile-cardano-node-topology module for a simplified interface to most common topology needs"),(0,n.kt)("li",{parentName:"ul"},"Adds a job-delegate-rewards-stake-key job as an optional follow on to pool creation and registration jobs"),(0,n.kt)("li",{parentName:"ul"},"Adds a topology function to filter self from group machines with an allowList for matching infixes"),(0,n.kt)("li",{parentName:"ul"},"Adds metadata-server and related offchain-metadata-tools bins from capkgs"),(0,n.kt)("li",{parentName:"ul"},"Updates justfile template with:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"a new query-all recipe for getting status of multiple concurrent running environments"),(0,n.kt)("li",{parentName:"ul"},"a new set-default-cardano-env recipe for fast switching between environments"),(0,n.kt)("li",{parentName:"ul"},"a new start-demo recipe for forking a custom env into conway"),(0,n.kt)("li",{parentName:"ul"},"a new start-node recipe for generic environment start"),(0,n.kt)("li",{parentName:"ul"},"a new stop-node recipe for generic environment stop"),(0,n.kt)("li",{parentName:"ul"},"updated list-machines recipe for handling of empty nixos machine config and empty ssh_config conditions"),(0,n.kt)("li",{parentName:"ul"},"updated query-tip recipe to a generic query tip compatible with each environment")))))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Migrates sanchonet from world, prepares further migration and support automation: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/4"},"cardano-playground-pull-4"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5cc32405.52478967.js b/assets/js/5cc32405.52478967.js new file mode 100644 index 0000000000..dd6e837c87 --- /dev/null +++ b/assets/js/5cc32405.52478967.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65562],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=s(r),h=n,m=c["".concat(u,".").concat(h)]||c[h]||d[h]||o;return r?a.createElement(m,i(i({ref:t},p),{},{components:r})):a.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-10-13-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-10-13-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-13-hydra.md",source:"@site/blog/2023-10-13-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-10-13T00:00:00.000Z",formattedDate:"October 13, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.745,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-10-13-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-10-13-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-10-13-ledger"}},u={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:s},c="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team's primary focus was on finalizing the new network resilience layer. This involved adding persistency to ensure data integrity."),(0,n.kt)("p",null,"They also completed the exploration of potentially moving the Plutus validator scripts to Aiken."),(0,n.kt)("p",null,"Additionally, the team dedicated some attention to our TUI by upgrading the Brick framework. They also undertook a comprehensive refactoring of the project's structure and addressed various bug fixes. These efforts are aimed at enhancing the overall user experience of our project."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Network Resilience Persistence (#1101)","[https://github.com/input-output-hk/hydra/pull/1101]","."),(0,n.kt)("li",{parentName:"ul"},"Upgrade brick on TUI (#1103)","[https://github.com/input-output-hk/hydra/pull/1103]","."),(0,n.kt)("li",{parentName:"ul"},"Aiken commit validator translation (#1072)","[https://github.com/input-output-hk/hydra/pull/1072]","."),(0,n.kt)("li",{parentName:"ul"},"Fixed some bugs in our TUI client.")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Prepare presentation and workshop for Cardano Summit."),(0,n.kt)("li",{parentName:"ul"},"Work on hydra-poll dApp for Cardano summit."),(0,n.kt)("li",{parentName:"ul"},"Start the work on packaging hydra-node and related services.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5d0266be.62145ac9.js b/assets/js/5d0266be.62145ac9.js new file mode 100644 index 0000000000..1910356c68 --- /dev/null +++ b/assets/js/5d0266be.62145ac9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[33671],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>g});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=p(r),d=n,g=m["".concat(u,".").concat(d)]||m[d]||c[d]||l;return r?a.createElement(g,i(i({ref:t},s),{},{components:r})):a.createElement(g,i({ref:t},s))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[m]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-10-13-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2023-10-13-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-13-ledger.md",source:"@site/blog/2023-10-13-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-10-13T00:00:00.000Z",formattedDate:"October 13, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:.965,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-10-13-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-10-13-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-10-13-sre"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway era",id:"conway-era",level:3},{value:"Integration and releasing",id:"integration-and-releasing",level:3},{value:"Testing",id:"testing",level:3}],s={toc:p},m="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The Ledger team has been shifting focus from implementing Conway related features to\ntesting. For this reason there is a very little amount features that are reported this\ntime aorund. Notable Conway related changes are a specialized ledger query for getting\nConstitutional Committee state and prevention of submitting proposal procedures that have\nno valid path to enactment."),(0,n.kt)("p",null,"Testing related work was mainly on a constraint base system as well as on roundtrip\nserialization. As a result of this extra testing a bug in Conway Genesis serialization\nwas eliminated."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway-era"},"Conway era"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3768"},"pull-3768")," - Fail proposal on invalid prevGovActionId"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3781"},"pull-3781")," - CommitteeState query")),(0,n.kt)("h3",{id:"integration-and-releasing"},"Integration and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3774"},"pull-3774")," - Bump urllib3 from 1.26.10 to 1.26.17 in /doc"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3770"},"pull-3770")," - cabal.project: Bump index states"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3778"},"pull-3778")," - Bump plutus to 1.14")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3769"},"pull-3769")," - Add roundtrip testing by validating FlatTerm"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3783"},"pull-3783")," - Update TranslationInstance.hs"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3775"},"pull-3775")," - Refactor and improve constraint based STS tests"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3793"},"pull-3793")," - Fix sums with negative RHS.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5d5964ec.74f8d97a.js b/assets/js/5d5964ec.74f8d97a.js new file mode 100644 index 0000000000..8619a73c38 --- /dev/null +++ b/assets/js/5d5964ec.74f8d97a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53931],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(f,s(s({ref:t},p),{},{components:n})):r.createElement(f,s({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:a,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-04-05-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-04-05-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-05-consensus.md",source:"@site/blog/2023-04-05-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-04-05T00:00:00.000Z",formattedDate:"April 5, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.66,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-04-05-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-04-06-mithril"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-04-05-node-cli-api"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This week the consensus team finished the UTxO-HD prototype refactoring. We are\nnow working on improving the DB lock mechanism to improve performance. We also\nintroduced several improvements to the file system abstraction and simulation\nlayer (",(0,a.kt)("inlineCode",{parentName:"p"},"fs-sim"),"), which culminated in the release of ",(0,a.kt)("inlineCode",{parentName:"p"},"fs-sim-0.1.0.0")," and\n",(0,a.kt)("inlineCode",{parentName:"p"},"fs-api-0.1.0.0")," to ",(0,a.kt)("inlineCode",{parentName:"p"},"CHaP"),"."),(0,a.kt)("p",null,"On the Genesis front we distributed the updated Genesis design document,\nsoliciting feedback from Networking Team and IOG Researchers. We also opened up\na PR for the adversarial leader schedule ",(0,a.kt)("inlineCode",{parentName:"p"},"QuickCheck")," generator, which is being\nreviewed."),(0,a.kt)("p",null,"On the support front, we got a new Consensus version that can use different\nfundamental VRF crypto primitives for Babbage and Conway eras."),(0,a.kt)("p",null,"On the tech debt front we fixed an bug in the followers logic, which was\ndiscovered by our ",(0,a.kt)("inlineCode",{parentName:"p"},"QuickCheck")," property tests."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5d9e7658.da4183cd.js b/assets/js/5d9e7658.da4183cd.js new file mode 100644 index 0000000000..063a857bc9 --- /dev/null +++ b/assets/js/5d9e7658.da4183cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40650],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>k});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=o,k=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(k,i(i({ref:t},u),{},{components:r})):n.createElement(k,i({ref:t},u))}));function k(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:o,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2024-02-05-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-02-05-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-05-network.md",source:"@site/blog/2024-02-05-network.md",title:"Network Team Update",description:"High-level overview of sprint 54",date:"2024-02-05T00:00:00.000Z",formattedDate:"February 5, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.375,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-02-05-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-02-07-mithril"},nextItem:{title:"SRE Team Update",permalink:"/2024-02-02-sre"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 54",id:"high-level-overview-of-sprint-54",level:2},{value:"Open Source Contributions",id:"open-source-contributions",level:2},{value:"IOSim",id:"iosim",level:3},{value:"NoThunks",id:"nothunks",level:3},{value:"Low-level summary",id:"low-level-summary",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-54"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+54%22"},"sprint 54")),(0,o.kt)("p",null,"In this sprint, we merged the bootstrap peers (aka weak genesis) changes to\nthe ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," repository (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4615"},"ouroboros-network#4615"),"). We continued\nworking on integration & testing it using an early development version of\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/pull/5485"},"cardano-node#5485"),")."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/AndrewWestberg"},"Andrew Westberg")," (",(0,o.kt)("a",{parentName:"p",href:"https://dripdropz.io/"},"DripDropz"),") noticed and fixed a mistake in the cddl spec which resulted in\nmisleading documentation; ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4790"},"ouroboros-network#4790"),". The Handshake protocol flag\nshould be called ",(0,o.kt)("inlineCode",{parentName:"p"},"initiatorOnlyDiffusionMode"),". Library authors providing\nconnectivity with other nodes via the ",(0,o.kt)("inlineCode",{parentName:"p"},"node-to-node")," protocol are advised to review\ntheir implementation."),(0,o.kt)("p",null,"We continued working on the ",(0,o.kt)("inlineCode",{parentName:"p"},"tx-submission")," decision logic;\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network#3311"),"."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/karknu"},"Karl Knutsson")," (",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") implemented:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"a debugging feature which dumps outbound governor state on the ",(0,o.kt)("inlineCode",{parentName:"li"},"SIGUSR1")," event\n(supported on ",(0,o.kt)("em",{parentName:"li"},"POSIX")," compatible OSes); ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4730"},"ouroboros-network#4730"),", ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4789"},"ouroboros-network#4789"),"."),(0,o.kt)("li",{parentName:"ul"},"limited the rate at which one can discover nodes through peer sharing;\n",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4778"},"ouroboros-network#4778"),".")),(0,o.kt)("h2",{id:"open-source-contributions"},"Open Source Contributions"),(0,o.kt)("h3",{id:"iosim"},"IOSim"),(0,o.kt)("p",null,"We released a new version of ",(0,o.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/io-sim"},"io-sim to Hackage"),":"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/ch1bo"},"Sebastian Nagel")," (IOG) fixed a bug in the ",(0,o.kt)("inlineCode",{parentName:"li"},"flushTQueue")," implementation; ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/135"},"io-sim#135")),(0,o.kt)("li",{parentName:"ul"},"We fixed the underflow error in ",(0,o.kt)("inlineCode",{parentName:"li"},"threadDelay")," in the ",(0,o.kt)("inlineCode",{parentName:"li"},"si-timers")," library\n(",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/129"},"io-sim#129"),") reported by ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/nfrisby"},"Nick Frisby")," (Tweag)")),(0,o.kt)("h3",{id:"nothunks"},"NoThunks"),(0,o.kt)("p",null,"We released a new version of ",(0,o.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/nothunks"},"nothunks to Hackage"),":"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"wherefrom")," support; ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/nothunks/pull/46"},"nothunks#46")),(0,o.kt)("li",{parentName:"ul"},"added ",(0,o.kt)("inlineCode",{parentName:"li"},"Solo")," instance; ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/nothunks/pull/45"},"nothunks#45")),(0,o.kt)("li",{parentName:"ul"},"added instances for ",(0,o.kt)("inlineCode",{parentName:"li"},"Monoid")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"Semigroup")," newtype wrappers; ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/nothunks/pull/43"},"nothunks#43"))),(0,o.kt)("h2",{id:"low-level-summary"},"Low-level summary"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We started using the ",(0,o.kt)("inlineCode",{parentName:"li"},"ImportQualifiedPost")," extension, hence a large\n(autogenerated) syntax change; ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4715"},"ouroboros-network#4715"),"."),(0,o.kt)("li",{parentName:"ul"},"Code cleanup; ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4792"},"ouroboros-network#4792"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5de0f279.532c91e1.js b/assets/js/5de0f279.532c91e1.js new file mode 100644 index 0000000000..59491d5f8c --- /dev/null +++ b/assets/js/5de0f279.532c91e1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[35646],{46106:e=>{e.exports=JSON.parse('{"permalink":"/tags/mithril/page/11","page":11,"postsPerPage":5,"totalPages":13,"totalCount":63,"previousPage":"/tags/mithril/page/10","nextPage":"/tags/mithril/page/12","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/5e3dc99b.b4567d0d.js b/assets/js/5e3dc99b.b4567d0d.js new file mode 100644 index 0000000000..5f5b79e1e8 --- /dev/null +++ b/assets/js/5e3dc99b.b4567d0d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67272],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var d=r.createContext({}),s=function(e){var t=r.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},h=function(e){var t=s(e.components);return r.createElement(d.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,d=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),p=s(a),u=n,m=p["".concat(d,".").concat(u)]||p[u]||c[u]||o;return a?r.createElement(m,i(i({ref:t},h),{},{components:a})):r.createElement(m,i({ref:t},h))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=u;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2022-12-16-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-12-16-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-16-hydra.md",source:"@site/blog/2022-12-16-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2022-12-16T00:00:00.000Z",formattedDate:"December 16, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.27,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-12-16-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-12-28-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2022-12-15-mithril"}},d={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:s},p="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on ",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/benchmarks/transaction-cost/"},"the website")," and reduced the cost for commit transactions by ~30% with the help of reference scripts."),(0,n.kt)("p",null,"The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Kicked-off Hydra Voting project with Catalyst, CF, and IO Research."),(0,n.kt)("li",{parentName:"ul"},"Reduce commit transaction costs by ~30% with reference scripts."),(0,n.kt)("li",{parentName:"ul"},"Prepared an RFP for external audit of the Hydra Head solution."),(0,n.kt)("li",{parentName:"ul"},"Fixed transaction cost benchmarks for abort tx ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/631"},"#631"),"."),(0,n.kt)("li",{parentName:"ul"},"Recorded decision to use model-based testing (",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/adr/22/"},"ADR22"),") and improved Model ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/haddock/hydra-node/tests/Hydra-Model.html"},"documentation"),".",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Concluding the first increment on ","\u201c","Validate coordinated Head protocol","\u201d"," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/194"},"#194"),"."),(0,n.kt)("li",{parentName:"ul"},"Formulated next step / follow-up on testing the Soundness property of our protocol ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/656"},"#656"),"."))),(0,n.kt)("li",{parentName:"ul"},"Switched to using nix flakes for development setup and CI build ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/646"},"#646"),".")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Push ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md"},"ADR21")," & tx validity gap over the finish line (smoke tests missing)."),(0,n.kt)("li",{parentName:"ul"},"Integrate the ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-tutorial"),"."),(0,n.kt)("li",{parentName:"ul"},"Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec."),(0,n.kt)("li",{parentName:"ul"},"Close & recap on the year with another monthly report (+ blog post).")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5e730d4f.81268577.js b/assets/js/5e730d4f.81268577.js new file mode 100644 index 0000000000..0d02338f87 --- /dev/null +++ b/assets/js/5e730d4f.81268577.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[76762],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>h});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=o.createContext({}),p=function(e){var t=o.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return o.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,u=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),c=p(r),d=n,h=c["".concat(u,".").concat(d)]||c[d]||m[d]||a;return r?o.createElement(h,i(i({ref:t},l),{},{components:r})):o.createElement(h,i({ref:t},l))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var o=r(87462),n=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-05-12-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-05-12-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-12-network.md",source:"@site/blog/2023-05-12-network.md",title:"Network Team Update",description:"High level summary",date:"2023-05-12T00:00:00.000Z",formattedDate:"May 12, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.79,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-05-12-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-05-12-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2023-05-05-ledger"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Detailed summary",id:"detailed-summary",level:2}],l={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"We started working on a new way to switch between root & ledger peers (see\nbelow). We continued to work on ",(0,n.kt)("inlineCode",{parentName:"p"},"eclipse-evasion"),". We merged changes to\nHandshake contributed by Galois Inc. We made improvements to our tests (fixed\na flaky test, added cddl specs for ",(0,n.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionData")," and\n",(0,n.kt)("inlineCode",{parentName:"p"},"NodeToClientVersionData"),"). We improved our CI and automated the process of\nreleasing new package version to ",(0,n.kt)("inlineCode",{parentName:"p"},"CHaP"),"."),(0,n.kt)("h2",{id:"detailed-summary"},"Detailed summary"),(0,n.kt)("p",null,"We continued to work on testing ",(0,n.kt)("inlineCode",{parentName:"p"},"eclipse-evasion"),"."),(0,n.kt)("p",null,"We came up with an idea to limit how full node wallets relay on root peers\n(currently operated by IOG, in future also CF and Emurgo). We designed\na switch to use ledger peers if the node tip is close enough to the current\ntime. For more details see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4530"},"#4530"),"."),(0,n.kt)("p",null,"We merged changes to the handshake mini-protocol which allow one to query\nserver's ",(0,n.kt)("inlineCode",{parentName:"p"},"node-to-node")," / ",(0,n.kt)("inlineCode",{parentName:"p"},"node-to-client")," parameters. We are grateful to\nGalois Inc. for implementing it, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4256"},"#4256")," and ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4538"},"#4538"),". We published new version\nof packages to CHaP ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages/pull/253"},"chap-#253"),"."),(0,n.kt)("p",null,"We added ",(0,n.kt)("inlineCode",{parentName:"p"},"DiffusionError")," wrapper. Thanks to it, ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," will\nnot duplicate diffusion errors messages in the log, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4537"},"#4537"),"."),(0,n.kt)("p",null,"We fixed an issue which caused one of our tests to be flaky, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4515"},"#4515"),"."),(0,n.kt)("p",null,"We added cddl tests for ",(0,n.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionData")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"NodeToClientVersionData"),":\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4540"},"#4540"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4544"},"#4544")," (in review)."),(0,n.kt)("p",null,"We wrote scripts which will help us release packages as well as verify that we\nreleased all the package necessary to build the newest set of packages,\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4542"},"#4542"),"."),(0,n.kt)("p",null,"We renamed the consensus startup tracer and make sure it doesn't log\n",(0,n.kt)("inlineCode",{parentName:"p"},"ExitSuccess")," exceptions, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pulls/71"},"consensus-#71"),"."),(0,n.kt)("p",null,"We reviewed PR which adds ",(0,n.kt)("inlineCode",{parentName:"p"},"RawBearer")," API, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4395"},"#4395"),"."),(0,n.kt)("p",null,"We made series of improvements to our CI:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4539"},"#4539"),": we don't need to install cryptographic libraries in CI;"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4545"},"#4545"),": Javier Sagredo (consensus) cleaned up CI after ",(0,n.kt)("inlineCode",{parentName:"li"},"consensus")," moved\nto a new repo;"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4546"},"#4546"),": we switched to use ",(0,n.kt)("a",{parentName:"li",href:"https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue"},"GitHub merge queues"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4549"},"#4549"),": we made it possible to trigger building haddocks manually;"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4553"},"#4553"),": we fixed and enhanced caching of building dependencies.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5e9a4be9.6140d25f.js b/assets/js/5e9a4be9.6140d25f.js new file mode 100644 index 0000000000..268e5a802f --- /dev/null +++ b/assets/js/5e9a4be9.6140d25f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11748],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var l=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,l)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=l.createContext({}),u=function(e){var t=l.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=u(e.components);return l.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},c=l.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=u(a),c=r,h=d["".concat(p,".").concat(c)]||d[c]||m[c]||n;return a?l.createElement(h,o(o({ref:t},s),{},{components:a})):l.createElement(h,o({ref:t},s))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,o=new Array(n);o[0]=c;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,o[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>i,toc:()=>u});var l=a(87462),r=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2023-11-22-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-11-22-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-22-ledger.md",source:"@site/blog/2023-11-22-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-11-22T00:00:00.000Z",formattedDate:"November 22, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.705,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-11-22-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-11-24-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2023-11-22-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3}],s={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,l.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"Last two weeks progress was mainly on testing, bug fixes and improvements to clarity of\nCDDL specification. Important bugfixes include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Fix deserialization of ",(0,r.kt)("inlineCode",{parentName:"li"},"ValueNotConservedUTxO")," predicate failure that could not\npreviously report zero ADA."),(0,r.kt)("li",{parentName:"ul"},"Fix deserialization of ",(0,r.kt)("inlineCode",{parentName:"li"},"CostModels")," in the ",(0,r.kt)("inlineCode",{parentName:"li"},"PParamsUpdate"),". Invalid ",(0,r.kt)("inlineCode",{parentName:"li"},"CostModels")," are no\nlonger allowed, only ",(0,r.kt)("inlineCode",{parentName:"li"},"CostModels")," for unrecognized Plutus versions are allowed starting\nwith Conway"),(0,r.kt)("li",{parentName:"ul"},"Fix returning of Deposits for ProposalProcedures")),(0,r.kt)("p",null,"Testing tooling has been improved and new tests have been implemented for Conway era."),(0,r.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,r.kt)("h3",{id:"conway"},"Conway"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3858"},"pull-3858")," - Restructure computing Refunds and Deposits in a TxBody across all eras"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3860"},"pull-3860")," - Removed ",(0,r.kt)("inlineCode",{parentName:"li"},"mock/crypto.cddl"),", added optional tag to sets"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3864"},"pull-3864")," - Fix Proposal deposits and add deposit tests to imp tests"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3859"},"pull-3859")," - Rename ProposalsSnapshot to Proposals"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3867"},"pull-3867")," - ",(0,r.kt)("inlineCode",{parentName:"li"},"MaryValue")," fixes"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3869"},"pull-3869")," - Indicate that tag 258 is optional for OSet. Fix rational CDDL"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3863"},"pull-3863")," - Improve deposits refunds re-usability"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3861"},"pull-3861")," - Fail PParamsUpdate deserialization for invalid costmodels in Conway"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3875"},"pull-3875")," - Fix cddl spec for CostModels in Conway"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3876"},"pull-3876")," - Change 4 PParam fields from EpochNo to EpochInterval"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3884"},"pull-3884")," - Relax requirement on the Set tag 258 to be enforced in the next era")),(0,r.kt)("h3",{id:"testing"},"Testing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3868"},"pull-3868")," - Improvements to support property tests on Traces with simple Tx with DRep related Certs"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3792"},"pull-3792")," - RATIFY and GOV constraint tests"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3885"},"pull-3885")," - Added a test for genTxAndNewEpoch"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3886"},"pull-3886")," - QuickCheck Imp integration")),(0,r.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3854"},"pull-3854")," - Integration work for node 8.7.0"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3872"},"pull-3872")," - Fixup ReadTheDocs build"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3871"},"pull-3871")," - Bump plutus dep to 1.16"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3874"},"pull-3874")," - Post release changes"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3880"},"pull-3880")," - Remove generic-monoid dependency"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3887"},"pull-3887")," - Add changelog for features that landed in cardano-node-8.7")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5eec6141.91ae6e3c.js b/assets/js/5eec6141.91ae6e3c.js new file mode 100644 index 0000000000..b43bb1c873 --- /dev/null +++ b/assets/js/5eec6141.91ae6e3c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[45394],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),d=u(r),m=n,h=d["".concat(p,".").concat(m)]||d[m]||c[m]||l;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=m;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[d]="string"==typeof e?e:n,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-04-24-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-04-24-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-24-ledger.md",source:"@site/blog/2024-04-24-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-04-24T00:00:00.000Z",formattedDate:"April 24, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.99,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-04-24-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-04-26-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2024-04-24-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3}],s={toc:u},d="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Ability to specify ",(0,n.kt)("inlineCode",{parentName:"p"},"CostModel")," for ",(0,n.kt)("inlineCode",{parentName:"p"},"PlutusV3")," in the genesis file was implemented, which\nwill allow us to execute ",(0,n.kt)("inlineCode",{parentName:"p"},"PlutusV3")," as soon as we enter ",(0,n.kt)("inlineCode",{parentName:"p"},"Conway")," era, which is essential\nfor guardrails script. Important bugs that have been fixed:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Invalid reporting of ",(0,n.kt)("inlineCode",{parentName:"li"},"InsufficientCollateral")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"ValueNotConservedUTxO")," predicate\nfailures. In case of validation failure a confusing deserialization was reported instead\nof those predicate failures."),(0,n.kt)("li",{parentName:"ul"},"Calculation of votes for Constitutional Committee Members did not consider expired\nmembers correctly."),(0,n.kt)("li",{parentName:"ul"},"Useful function ",(0,n.kt)("inlineCode",{parentName:"li"},"redeemerPointer")," was deprecated without good justification.")),(0,n.kt)("p",null,"Besides bugfixes there was a lot of work done on the testing side. Constraint based data\ngeneration is receiving continuous improvements. More unit and property tests for Conway\nera functionality."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4259"},"pull-4259")," - Undeprecate redeemerPointer and expose it in cardano-ledger-api"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4252"},"pull-4252")," - Add PlutusV3 CostModel to UpgradeConwayPParams"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4247"},"pull-4247")," - Change the balance in ",(0,n.kt)("inlineCode",{parentName:"li"},"InsufficientCollateral")," to ",(0,n.kt)("inlineCode",{parentName:"li"},"DeltaCoin")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4267"},"pull-4267")," - Expand TxAuxData interface"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4265"},"pull-4265")," - Inline UTxO and UTxOW ",(0,n.kt)("inlineCode",{parentName:"li"},"PredFailure")," for ",(0,n.kt)("inlineCode",{parentName:"li"},"Conway")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4281"},"pull-4281")," - Discount expired CC from CC-size calculation"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4290"},"pull-4290")," - Add ",(0,n.kt)("inlineCode",{parentName:"li"},"NoThunks")," instance for UTxO pred failures"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4288"},"pull-4288")," - Fix burning tokens predicate failure")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4241"},"pull-4241")," - Add fixup combinators to ImpTest framework"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4229"},"pull-4229")," - Shrinking for ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4244"},"pull-4244")," - Imptests: CommitteeMinSize affects in-flight props"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4269"},"pull-4269")," - Fix generation bug for sums of positive member spec"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4266"},"pull-4266")," - Add imptest to propose and enact unknown costmodels"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4261"},"pull-4261")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators")," cleanup for hackage"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4279"},"pull-4279")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Fix bug in toPreds for maps + add additional tests"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4272"},"pull-4272")," - simplify foldMap interface to higher order syntax"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4283"},"pull-4283")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": add new test to test suite"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4286"},"pull-4286")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": refactor ",(0,n.kt)("inlineCode",{parentName:"li"},"reify")," to reduce the number of binding sites + delay simplification more to avoid variable capture in higher order syntax")),(0,n.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4260"},"pull-4260")," - Bump idna from 3.3 to 3.7 in /doc"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4277"},"pull-4277")," - Fixed formatting in ",(0,n.kt)("inlineCode",{parentName:"li"},"HowToProfileLedger.md")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4282"},"pull-4282")," - Bump plutus deps to 1.26"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4294"},"pull-4294")," - Avoid cancelling scheduled CI when a new merge happens on master")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5f1db61d.76c0b809.js b/assets/js/5f1db61d.76c0b809.js new file mode 100644 index 0000000000..f06ccccad2 --- /dev/null +++ b/assets/js/5f1db61d.76c0b809.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[68452],{96166:e=>{e.exports=JSON.parse('{"permalink":"/tags/consensus/page/7","page":7,"postsPerPage":5,"totalPages":9,"totalCount":45,"previousPage":"/tags/consensus/page/6","nextPage":"/tags/consensus/page/8","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/5f42e212.f5f4fbb7.js b/assets/js/5f42e212.f5f4fbb7.js new file mode 100644 index 0000000000..6f5f290a2b --- /dev/null +++ b/assets/js/5f42e212.f5f4fbb7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20578],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=p(n),d=a,h=m["".concat(s,".").concat(d)]||m[d]||u[d]||o;return n?r.createElement(h,i(i({ref:t},c),{},{components:n})):r.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const o={title:"Benchmarking -- Node 8.9.0",slug:"2024-03-performance-8.9.0",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},i=void 0,l={permalink:"/reports/2024-03-performance-8.9.0",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-03-performance-8.9.0.md",source:"@site/reports/2024-03-performance-8.9.0.md",title:"Benchmarking -- Node 8.9.0",description:"Setup",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"benchmarking-reports",permalink:"/reports/tags/benchmarking-reports"}],readingTime:2.43,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Benchmarking -- Node 8.9.0",slug:"2024-03-performance-8.9.0",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},prevItem:{title:"Benchmarking -- Node 8.7.2",permalink:"/reports/2023-12-performance-8.7.2"},nextItem:{title:"Benchmarking -- Node 8.9.1",permalink:"/reports/2024-03-performance-8.9.1"}},s={authorsImageUrls:[void 0]},p=[{value:"Setup",id:"setup",level:2},{value:"Observations",id:"observations",level:2},{value:"Resource Usage",id:"resource-usage",level:3},{value:"Forging Loop",id:"forging-loop",level:3},{value:"Peer propagation",id:"peer-propagation",level:3},{value:"End-to-end propagation",id:"end-to-end-propagation",level:3},{value:"Conclusion",id:"conclusion",level:3},{value:"Contact",id:"contact",level:2},{value:"Attachments",id:"attachments",level:2}],c={toc:p},m="wrapper";function u(e){let{components:t,...o}=e;return(0,a.kt)(m,(0,r.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"setup"},"Setup"),(0,a.kt)("p",null,"As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2")," - baseline for previous mainnet release"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.8.0")," - an intermediate reference point"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0")," - the next mainnet release")),(0,a.kt)("p",null,"For each version, we're gathering various metrics under 2 different workloads:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"value-only"),": Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"Plutus"),": Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.")),(0,a.kt)("p",null,"Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\nwere performed in the Babbage era."),(0,a.kt)("h2",{id:"observations"},"Observations"),(0,a.kt)("p",null,"These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet. "),(0,a.kt)("p",null,"The observations stated refer to the direct comparison between the ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.0")," versions."),(0,a.kt)("h3",{id:"resource-usage"},"Resource Usage"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Overall CPU usage exhibits a small to moderate (5% - 8%) increase."),(0,a.kt)("li",{parentName:"ol"},"Memory usage is very slightly decreased by 1%.")),(0,a.kt)("p",null,"Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness."),(0,a.kt)("h3",{id:"forging-loop"},"Forging Loop"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"For full blocks, Mempool Snapshotting improves by 4% (or 3ms)."),(0,a.kt)("li",{parentName:"ol"},"For small blocks, Self Adoption times improve by 8% (or 4ms)."),(0,a.kt)("li",{parentName:"ol"},"All other forger metrics do not exhibit significant change.")),(0,a.kt)("p",null,"The metric ",(0,a.kt)("em",{parentName:"p"},"'Slot start to announced'")," (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header."),(0,a.kt)("h3",{id:"peer-propagation"},"Peer propagation"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"For full blocks, Block Fetch duration shows a notable improvement by 10ms (or 3%).")),(0,a.kt)("h3",{id:"end-to-end-propagation"},"End-to-end propagation"),(0,a.kt)("p",null,"This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. "),(0,a.kt)("p",null,"End-to-end propagation times on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.0")," exhibit a small improvement by 2% across all centiles for full blocks, whereas they remain largely unchanged for small blocks."),(0,a.kt)("h3",{id:"conclusion"},"Conclusion"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The performance changes observed between ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2")," are only minor - with ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0")," slightly improving on ",(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2"),". Therefore, we'd expect ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0")," Mainnet performance to be akin to ",(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2"),"."),(0,a.kt)("li",{parentName:"ul"},"We have demonstrated no performance regression has been introduced in ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0"),".")),(0,a.kt)("h2",{id:"contact"},"Contact"),(0,a.kt)("p",null,"As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. "),(0,a.kt)("p",null,"We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future."),(0,a.kt)("h2",{id:"attachments"},"Attachments"),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"value-only workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(31942).Z},"here"),"."),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"Plutus workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(24998).Z},"here"),"."),(0,a.kt)("p",null,"NB. Mainnet release ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.3")," did not include any performance-related changes; measurements taken on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2")," remain valid."))}u.isMDXComponent=!0},24998:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.9.0.plutus-2153f07c96f823ebea49f0bd3ed93e44.pdf"},31942:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.9.0.value-only-acff1460799d3a362997dc37816d39dd.pdf"}}]); \ No newline at end of file diff --git a/assets/js/5f459bde.8d41e040.js b/assets/js/5f459bde.8d41e040.js new file mode 100644 index 0000000000..9169d2c174 --- /dev/null +++ b/assets/js/5f459bde.8d41e040.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65761],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-01-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-01-10-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-10-mithril.md",source:"@site/blog/2024-01-10-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-01-10T00:00:00.000Z",formattedDate:"January 10, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.34,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-01-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-01-10-ledger"},nextItem:{title:"Network Team Update",permalink:"/2024-01-09-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team worked on implementing the client in the explorer to enable direct verification of certificates from the browser. They also addressed the configuration issue in the signer node service, which occasionally resulted in signers not registering their keys after a restart. Additionally, the team kept implementing a mock aggregator to strengthen Mithril client tests in WASM, continued working on threat modeling and risk analysis for P2P networking, and progressed with the devnet upgrade to support the Conway era."),(0,i.kt)("p",null,"Finally, they worked on enhancing node communications between Mithril and Cardano and completed the upgrade of the Cardano node topology used in the Mithril networks' infrastructure."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Published a development blog post ",(0,i.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/01/03/signer-service-new-configuration/"},(0,i.kt)("strong",{parentName:"a"},"Mithril signer service new configuration"))),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Simplify Mithril client CLI download command")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1406"},"#1406")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Make all infra Cardano nodes use P2P topology")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1405"},"#1405")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement ",(0,i.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," adapter configuration in aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1396"},"#1396")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Fix signer node service setup")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1404"},"#1404")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement a fake standalone aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1397"},"#1397")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement the mithril client WASM package in the explorer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1409"},"#1409")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Light Wallet: Implement browser tests with fake aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1407"},"#1407")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Activate ",(0,i.kt)("inlineCode",{parentName:"strong"},"babbage"),"/",(0,i.kt)("inlineCode",{parentName:"strong"},"conway")," eras on ",(0,i.kt)("inlineCode",{parentName:"strong"},"devnet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1425"},"#1425")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Upgrade Cardano node to ",(0,i.kt)("inlineCode",{parentName:"strong"},"8.7.2"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1410"},"#1410")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Create a test network on ",(0,i.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6004d2a4.c0e4a6ef.js b/assets/js/6004d2a4.c0e4a6ef.js new file mode 100644 index 0000000000..60b538a6b8 --- /dev/null +++ b/assets/js/6004d2a4.c0e4a6ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[57193],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>m});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),c=u(r),d=o,m=c["".concat(p,".").concat(d)]||c[d]||h[d]||a;return r?n.createElement(m,i(i({ref:t},l),{},{components:r})):n.createElement(m,i({ref:t},l))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var n=r(87462),o=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-08-04-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-08-04-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-network.md",source:"@site/blog/2023-08-04-network.md",title:"Network Team Update",description:"High-level overview of sprint 41",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.515,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-08-04-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-08-04-ledger"},nextItem:{title:"Performance & tracing update",permalink:"/2023-08-04-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level overview of sprint 41",id:"high-level-overview-of-sprint-41",level:2},{value:"Other contributions",id:"other-contributions",level:2}],l={toc:u},c="wrapper";function h(e){let{components:t,...r}=e;return(0,o.kt)(c,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-41"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+41%22"},"sprint 41")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"24th July - 6th August 2023")),(0,o.kt)("p",null,"We started the implementation of ",(0,o.kt)("strong",{parentName:"p"},"bootstrap peers"),". Bootstrap peers are designed\nto provide a safety guarantee for nodes joining the network while still taking\nadvantage of the distributed network for nodes that are synced. This will be\nan intermediate step before Genesis which will allow for further distribute the\nsystem. The bootstrap peers will be run by some trusted partners like CF,\nEmurgo or IOG. They are primarily designed for leaf nodes (e.g. full node\nwallets), which often end up syncing and require access to the honest chain. See\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4615"},"ouroboros-network#4615")," for a more detailed implementation plan."),(0,o.kt)("h2",{id:"other-contributions"},"Other contributions"),(0,o.kt)("p",null,"We started to use ",(0,o.kt)("inlineCode",{parentName:"p"},"nothunks")," library to discover if we have any unevaluated\nthunks which can lead to memory leaks ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4633"},"ouroboros-network#4633"),". We found\na small one in the peer metric component of the P2P networking stack. Fixing\nit put us on a small detour of fixing the API of the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/tree/master/strict-checked-vars"},(0,o.kt)("inlineCode",{parentName:"a"},"strict-checked-vars")),"\npackage: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pulls/431"},"cardano-base#431"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pulls/432"},"cardano-base#432"),", as well as adding ",(0,o.kt)("inlineCode",{parentName:"p"},"NFData"),"\ninstance to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/110"},(0,o.kt)("inlineCode",{parentName:"a"},"io-classes")),". We also improved ",(0,o.kt)("inlineCode",{parentName:"p"},"nothunks"),"\nlibrary to make debugging easier and we provided a ",(0,o.kt)("inlineCode",{parentName:"p"},"NoThunks")," instance for\n",(0,o.kt)("inlineCode",{parentName:"p"},"ThreadId")," which we will need in the future (see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/nothunks/pull/33"},"nothunks#33"),")."),(0,o.kt)("p",null,"We released a new version of ",(0,o.kt)("inlineCode",{parentName:"p"},"io-classes")," (version ",(0,o.kt)("inlineCode",{parentName:"p"},"1.2.0.0"),") and related\npackages to ",(0,o.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/io-classes-1.2.0.0io-classes-1.2.0.0"},"Hackage"),"."),(0,o.kt)("p",null,"We addressed all review comments on the eclipse evasion PR which introduces big\nledger peers, ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3886"},"ouroboros-network#3886"),"."),(0,o.kt)("p",null,"We fixed how ",(0,o.kt)("inlineCode",{parentName:"p"},"SIGHUP")," signal handlers are registered, so it's not possible to\nshutdown a node which was starting while trying to update network topology,\nsee ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5421"},"cardano-node#5421"),"."),(0,o.kt)("p",null,"I didn't mention that in the previous update, so here it goes: in the previous\nsprint we released ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/blob/f84fcddce472d6cfc2b838b20a2ad085fe0896ed/ouroboros-network/CHANGELOG.md"},(0,o.kt)("inlineCode",{parentName:"a"},"ouroboros-network-0.8.2.0"))," and\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/blob/ouroboros-network-framework-0.7.0.0/ouroboros-network-framework/CHANGELOG.md"},(0,o.kt)("inlineCode",{parentName:"a"},"ouroboros-network-framework-0.7.0.0")),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/600e4190.ba391183.js b/assets/js/600e4190.ba391183.js new file mode 100644 index 0000000000..c52f16be88 --- /dev/null +++ b/assets/js/600e4190.ba391183.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80599],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>d});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=a.createContext({}),u=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=u(n),h=o,d=m["".concat(p,".").concat(h)]||m[h]||c[h]||r;return n?a.createElement(d,i(i({ref:t},s),{},{components:n})):a.createElement(d,i({ref:t},s))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:o,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>l,toc:()=>u});var a=n(87462),o=(n(67294),n(3905));const r={title:"Network Q1 2023 Update",slug:"2023-04-04-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2023-04-04-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-04-04-network.md",source:"@site/quarterly/2023-04-04-network.md",title:"Network Q1 2023 Update",description:"2023-01 - 2023-03",date:"2023-04-04T00:00:00.000Z",formattedDate:"April 4, 2023",tags:[{label:"network",permalink:"/quarterly/tags/network"}],readingTime:2.62,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Q1 2023 Update",slug:"2023-04-04-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Quarterly Update",permalink:"/quarterly/2023-04-25-consensus"},nextItem:{title:"Ledger Team Update",permalink:"/quarterly/2023-04-03-ledger"}},p={authorsImageUrls:[void 0]},u=[{value:"2023-01 - 2023-03",id:"2023-01---2023-03",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Gradual dynamic P2P release on mainnet",id:"gradual-dynamic-p2p-release-on-mainnet",level:4},{value:"Peer Sharing",id:"peer-sharing",level:4},{value:"Eclipse Evasion",id:"eclipse-evasion",level:4},{value:"Cardano Network Service Assurance",id:"cardano-network-service-assurance",level:4},{value:"Cardano-Node",id:"cardano-node",level:4},{value:"Testing improvements",id:"testing-improvements",level:4},{value:"Technical Debt",id:"technical-debt",level:4},{value:"Documentation",id:"documentation",level:4},{value:"IO-Sim",id:"io-sim",level:4},{value:"NoThunks",id:"nothunks",level:4},{value:"Next steps",id:"next-steps",level:3}],s={toc:u},m="wrapper";function c(e){let{components:t,...n}=e;return(0,o.kt)(m,(0,a.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"2023-01---2023-03"},"2023-01 - 2023-03"),(0,o.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,o.kt)("h4",{id:"gradual-dynamic-p2p-release-on-mainnet"},"Gradual dynamic P2P release on mainnet"),(0,o.kt)("p",null,"We released two version of ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," with dynamic P2P capabilities:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/1.35.6"},(0,o.kt)("inlineCode",{parentName:"a"},"1.35.6")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"we found and fixed a bug in exception handling in ",(0,o.kt)("inlineCode",{parentName:"li"},"peer-state-actions"),(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4357"},"pull-4357")),(0,o.kt)("li",{parentName:"ul"},"we found and fixed a busy loop when demoting a peer from hot to warm ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4385"},"pull-4385")," "))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/1.35.7"},(0,o.kt)("inlineCode",{parentName:"a"},"1.35.7")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"includes interoperability in the legacy non-p2p network stack ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/outoboros-network/pull/4467"},"pull-4467")))),(0,o.kt)("li",{parentName:"ul"},"we fixed a busy loop of demotion & promotions: ",(0,o.kt)("inlineCode",{parentName:"li"},"warm -> hot -> warm"),"[pull-4485]"," /it will be included in ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-node-8.0.0")," release/.")),(0,o.kt)("p",null,"Currently there are more than 200 P2P relays on mainnet."),(0,o.kt)("h4",{id:"peer-sharing"},"Peer Sharing"),(0,o.kt)("p",null,"We implemented /peer sharing/ ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"pull-4019")," which will be available as an\nexperimental feature in one of the future ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," releases."),(0,o.kt)("p",null,"We implemented /light peer sharing/, e.g. adding inbound connections to the set\nof known peers of the outbound governor, which allows to bootstrap relays not\nregistered on chain. This complements peer sharing. The ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4277"},"pull-4277")," is in\nlate review stages."),(0,o.kt)("h4",{id:"eclipse-evasion"},"Eclipse Evasion"),(0,o.kt)("p",null,"We finalised design of eclipse evasion and we started implementing it. We\nhave an initial implementation (not merged). We are in the process of extending\nour test suite to cover new implementation details: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3886"},"issue-3886"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/outoboros-network/pull/4462"},"pull-4462"),"."),(0,o.kt)("h4",{id:"cardano-network-service-assurance"},"Cardano Network Service Assurance"),(0,o.kt)("p",null,"Galois has been making progress on ",(0,o.kt)("em",{parentName:"p"},"Cardano Network Service Assurance")," project."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"In cardano-node, they have developed a ",(0,o.kt)("inlineCode",{parentName:"p"},"datapoint")," abstraction that creates\na queue of (existing) log events, they now have two such ",(0,o.kt)("inlineCode",{parentName:"p"},"datapoint"),"s (of log\nevents) implemented.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"They have developed a ",(0,o.kt)("inlineCode",{parentName:"p"},"datapoint"),' client executable that can connect to a node\nwhich serves the "new tracing".')),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"They have been exploring approaches for the consolidation and analysis of\n",(0,o.kt)("inlineCode",{parentName:"p"},"datapoint")," data to extract actionable network health status."))),(0,o.kt)("h4",{id:"cardano-node"},"Cardano-Node"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We made it possible to configure accepted connections limit ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4902"},"pull-4902"),".")),(0,o.kt)("h4",{id:"testing-improvements"},"Testing improvements"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We fixed a bug in network simulation implementation of TCP simultaneous open ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4265"},"pull-4265"),".")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We introduced header-body split in the diffusion simulation ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/outoboros-network/pull/4419"},"pull-4419")," (in review).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We introduced initiator only nodes in the diffusion simulation ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4280"},"pull-4280"),".")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We fixed a connection-manager test failure ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4370"},"issue-4370"),"."))),(0,o.kt)("h4",{id:"technical-debt"},"Technical Debt"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We refactored ",(0,o.kt)("inlineCode",{parentName:"p"},"Snocket")," interface decoupling it from the multiplexer\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4260"},"pull-4260"),". This simplified some aspects of the KES agent implementation.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We introduces a record for CBOR codecs which are used for various data\nstructures by mini-protocol codecs ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/outoboros-network/pull/4430"},"pull-4430"),"."))),(0,o.kt)("h4",{id:"documentation"},"Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We explained some limitations of CDDL in our technical report ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4351"},"pull-4351"),".")),(0,o.kt)("h4",{id:"io-sim"},"IO-Sim"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We fixed implementation of ",(0,o.kt)("inlineCode",{parentName:"li"},"MVar"),"'s ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/70"},"pull-70"),".")),(0,o.kt)("h4",{id:"nothunks"},"NoThunks"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We published a new version of ",(0,o.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/nothunks"},(0,o.kt)("inlineCode",{parentName:"a"},"nothunks"))," library to Hackage.")),(0,o.kt)("h3",{id:"next-steps"},"Next steps"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Finish implementation & testing of eclipse evasion ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3886"},"issue-3886"),"."),(0,o.kt)("li",{parentName:"ul"},"Optimise connectivity to peers behind firewall ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4381"},"issue-4381"),"."),(0,o.kt)("li",{parentName:"ul"},"Finish the work on enabling block production dynamically to allow using P2P\non block producers ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3159"},"issue-3159"),"."),(0,o.kt)("li",{parentName:"ul"},"If time permits we would like also to reserve some time for finishing\npublication of ",(0,o.kt)("inlineCode",{parentName:"li"},"io-sim")," to Hackage.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/60293520.ccf215d0.js b/assets/js/60293520.ccf215d0.js new file mode 100644 index 0000000000..0806e1696f --- /dev/null +++ b/assets/js/60293520.ccf215d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93283],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>c});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(n),d=i,c=h["".concat(s,".").concat(d)]||h[d]||m[d]||a;return n?r.createElement(c,o(o({ref:t},u),{},{components:n})):r.createElement(c,o({ref:t},u))}));function c(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=n(87462),i=(n(67294),n(3905));const a={title:"Mithril Team Update",slug:"2024-03-13-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-13-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-13-mithril.md",source:"@site/blog/2024-03-13-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-03-13T00:00:00.000Z",formattedDate:"March 13, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.365,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-03-13-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-03-13-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2024-03-08-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(h,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the adaptation of the Mithril explorer to support Cardano transaction verification, kept improving its UI, fixed the bug that prevented the signature of some Conway era transactions, implemented a more robust transactions parser, and started providing metadata about the point of the chain used during the verification process. Additionally, they have completed the optimization of the communications of the Mithril nodes and the Cardano node with the finalization of the Pallas chain observer."),(0,i.kt)("p",null,"Finally, the team enhanced the handling of logs in the CLI of the Mithril nodes and investigated some remaining flakiness in the end-to-end test in the CI."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Output CLIs logs to ",(0,i.kt)("inlineCode",{parentName:"strong"},"stderr"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1515"},"#1515")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," in explorer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1497"},"#1497")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"npm")," publish fails on ",(0,i.kt)("inlineCode",{parentName:"strong"},"latest")," when ",(0,i.kt)("inlineCode",{parentName:"strong"},"next")," exists")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1531"},"#1531")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Cardano transactions are not all signed in ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1537"},"#1537")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance ",(0,i.kt)("inlineCode",{parentName:"strong"},"www")," demonstration in ",(0,i.kt)("inlineCode",{parentName:"strong"},"mithril-client-wasm"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1552"},"#1552")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement a Block Range Merkle Tree for ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1533"},"#1533")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Provide latest immutable file number with certified ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano transactions")," in client")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1536"},"#1536")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Explorer improvements Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1554"},"#1554")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Refactor the Cardano transactions parser with ",(0,i.kt)("inlineCode",{parentName:"strong"},"pallas-hardano"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1557"},"#1557")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"End to end tests are flaky in CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1558"},"#1558")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/60e1630c.c49555ac.js b/assets/js/60e1630c.c49555ac.js new file mode 100644 index 0000000000..a2370fc0cc --- /dev/null +++ b/assets/js/60e1630c.c49555ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[31831],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(a),s=r,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,l(l({ref:t},c),{},{components:a})):n.createElement(h,l({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-02-08-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2023-02-08-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-08-node-cli-api.md",source:"@site/blog/2023-02-08-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-02-08T00:00:00.000Z",formattedDate:"February 8, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.095,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-02-08-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-02-08-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2023-02-08-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"CI & project mainteance",id:"ci--project-mainteance",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3},{value:"cardano-testnet",id:"cardano-testnet-1",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-02-08---2023-02-21"},"2023-02-08 - 2023-02-21"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"More maintenance and resolving raised issues."),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4889"},"Remove use of multiline literals")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4775"},"Markdown links CI check")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4755"},"Date ranges for copyright"))),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4894"},"Re-add support for decoding GenesisExtendedKey text envelope")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4885"},"Disallow empty cost model for create update proposal")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4815"},"Refactor code using onLeft and onNothing"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4876"},"Simplify SerialiseAsRawBytes type class"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h2",{id:"ci--project-mainteance"},"CI & project mainteance"),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4761"},"Fix bug in hash computation in cardano-cli genesis create-cardano")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4636"},"Cleanup exports of cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4659"},"Render consistent plutus script failure output")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4666"},"Read network ID from environment")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4647"},"CLI option to append additional signatures to a transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"Cardano ping")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4777"},"Better error message for query utxo on oops"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4763"},"Remove simple script distinction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4753"},"Export SubmitResult from Cardano.Api"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))),(0,r.kt)("h3",{id:"cardano-testnet-1"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4845"},"Use Haskell variables for passing values"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/611f3a9e.4784dc54.js b/assets/js/611f3a9e.4784dc54.js new file mode 100644 index 0000000000..35d8fce482 --- /dev/null +++ b/assets/js/611f3a9e.4784dc54.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25351],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),u=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,d=p(e,["components","mdxType","originalType","parentName"]),s=u(a),m=n,h=s["".concat(i,".").concat(m)]||s[m]||c[m]||o;return a?r.createElement(h,l(l({ref:t},d),{},{components:a})):r.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[s]="string"==typeof e?e:n,l[1]=p;for(var u=2;u{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>p,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-09-15-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,p={permalink:"/2023-09-15-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-sre.md",source:"@site/blog/2023-09-15-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-09-15T00:00:00.000Z",formattedDate:"September 15, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.055,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-09-15-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-09-15-network"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-09-14-db-sync"}},i={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Cardano-world",id:"cardano-world",level:3}],d={toc:u},s="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet environment was updated to 8.3.0-pre."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts"},"Cardano-parts")," now enables downstream consumers to spin up multiple cardano-networks per repository, an example of which is ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/blob/main/flake/colmena.nix#L89-L108"},"here"),".")),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Add a readme, optimize flake inputs, improve nu and ruby parsing scripts: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/f3dcffb...c2c7680"},"capkgs-compare"))),(0,n.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Adjust mainnet p2p relays to ~100%, with a legacy canary: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/commit/d3cce2585fae6a52ff5833373137af3cddbc6710"},"cardano-ops-commit"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Utilize content addressed binaries to significantly improve eval, build and devShell performance: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/8"},"cardano-parts-pull-8")),(0,n.kt)("li",{parentName:"ul"},"Add an aws flakeModule for obtaining ec2 specs, fix node.socket devShell error: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/10"},"cardano-parts-pull-10")),(0,n.kt)("li",{parentName:"ul"},"Fix warns thrown during some builds and devShell usage: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/11"},"cardano-parts-pull-11")),(0,n.kt)("li",{parentName:"ul"},"Add flakeModules and nixosModules in preparation for cardano-node grouped deployments: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/12"},"cardano-parts-pull-12")),(0,n.kt)("li",{parentName:"ul"},"Enable group deployments by: adding several module, profile and role nixosModules; updating flakeModules; adding sops age secrets handling: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/13"},"cardano-parts-pull-13"))),(0,n.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Modify the wireguard network from mesh to star, enable ICMP, enable Nomad raw_exec and add hydraJobs: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/9f9917c...7fc1b4c"},"cardano-perf-compare"))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Define preliminary cardano-world networks on cardano-playground: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/1"},"cardano-playground"))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Rotate KES on preview and preprod, purge unused subnets, adjust explorer rate limits: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/compare/306ef6c...e9b2ed2"},"cardano-world-compare")),(0,n.kt)("li",{parentName:"ul"},"Update sanchonet network to 8.3.0: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/compare/master...sanchonet-updated"},"cardano-world-compare"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/617b050a.7d54aebe.js b/assets/js/617b050a.7d54aebe.js new file mode 100644 index 0000000000..25abbfa64a --- /dev/null +++ b/assets/js/617b050a.7d54aebe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40232],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=c(r),u=a,g=d["".concat(s,".").concat(u)]||d[u]||p[u]||o;return r?n.createElement(g,i(i({ref:t},m),{},{components:r})):n.createElement(g,i({ref:t},m))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Performance & Tracing Update",slug:"2023-12-11-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-12-11-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-11-performance-and-tracing.md",source:"@site/blog/2023-12-11-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2023-12-11T00:00:00.000Z",formattedDate:"December 11, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:3.39,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2023-12-11-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-12-13-mithril"},nextItem:{title:"Goedel Team Update",permalink:"/2023-12-08-goedel"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:c},d="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Release benchmarking for node ",(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2"),", as well as P2P benchmarks - the latter being a premiere for the Nomad cluster."),(0,a.kt)("li",{parentName:"ul"},"Development: Work on automating the submission of Conway transactions for registration of and stake delegation to ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep"),"s is ongoing."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: We're preparing to safely retire our current benchmarking cluster."),(0,a.kt)("li",{parentName:"ul"},"Tracing: The documentation for the new tracing system is being reworked. Additionally, we've added a feature to ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," to capture performance over a long runtime."),(0,a.kt)("li",{parentName:"ul"},"Nomad cluster: The Nomad backend has been successfully equipped with support for up-to-date P2P topology, as well as deployment for Plutus script data.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed a full set of release benchmarks for node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2"),". From a performance perspective, it has been greenlit for mainnet release. Starting with this version, our team will publish observations alongside the original comparative analysis of benchmarks, providing insight into key metrics and resource usage. Hence, for the post on version ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2"),", see ",(0,a.kt)("a",{parentName:"p",href:"/reports/2023-12-performance-8.7.2"},"here"),"."),(0,a.kt)("p",null,"Additionally, we're running P2P versus no-P2P benchmarks on the same version. We intend to establish future baseline runs using P2P topology as the default setting. All our cluster nodes being block producers, it is crucial to establish the P2P stack does not exhibit any regression regarding block forging. Furthermore, the evidence gathered from those benchmarks forms the base for a recommended setting for P2P on mainnet block producers. "),(0,a.kt)("p",null,"It deserves special mention that those P2P benchmarks are our first production runs with the Nomad cluster - and using the new tracing system exclusively. Having finalized all optimization rounds of the latter, and having meticulously eliminated all confounding factors from the Nomad infrastructure, we're confident in the measurements being subject to extremely low variance - which we made sure of in many past validation runs on Nomad."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Orchestrating ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep")," actions into benchmarking workflows has opened up a fairly large design space. Currently, we're focusing on having stake delegated to ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s, in order to trigger ledger pulses for calculations particular to ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep")," actions. We can benchmark a possible\nperformance impact of those pulses - even if there are no actions ongoing - as a first step. "),(0,a.kt)("p",null,"The contributing factors to the cost of those pulses are both the number of ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s registered, and the number of delegations to them. It is still under debate which values represent a probable model for mainnet, and whether we can achieve stake delegation programmatically (i.e. by submitting transactions), or if, for large numbers, we need means to inject those delegations into genesis."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"With the switch of all production benchmarks to the Nomad cluster, we will retire the legacy ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-ops")," cluster very shortly. Currently, we're making sure that when all its resources are released, we keep an archive for all runs performed, including all raw log data - with the oldest runs dating back as far as December 2019."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"We've outfitted the ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," service with the same kind of resource tracing machinery that's used by ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," - as well as created a dedicated benchmarking profile for it. It puts very little pressure on the node; instead it causes 6 nodes to emit traces at a rate of >35 messages per second, putting pressure on ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," via trace forwarding at >200 messages per second for an extended period of time. Analysis of these traces will form the ground for various optimizations of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," that are currently being worked on. "),(0,a.kt)("p",null,"As we aim for early 2024 to be able to recommend the new tracing system as default in production use, we're currently also reworking the comprehensive documentation to reflect all changes made over the last months."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"In addition to being able to deploy Plutus script data and redeemers seperately (instead of inlining them as the legacy cluster did), the Nomad cluster now supports being set up with recent P2P topology. No-P2P topology format will still be supported\nfor occasional regression benchmarking of the P2P stack, when desired. Furthermore, we've completed porting all benchmarking profiles from the legacy cluster to Nomad."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6190b2fb.080c4e25.js b/assets/js/6190b2fb.080c4e25.js new file mode 100644 index 0000000000..735960cbc0 --- /dev/null +++ b/assets/js/6190b2fb.080c4e25.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48600],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),s=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=s(a),m=r,h=c["".concat(p,".").concat(m)]||c[m]||d[m]||i;return a?n.createElement(h,o(o({ref:t},u),{},{components:a})):n.createElement(h,o({ref:t},u))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=a(87462),r=(a(67294),a(3905));const i={title:"Developer Experience Update",slug:"2023-06-09-developer-experience",authors:"angerman",tags:["devx"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-06-09-developer-experience",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-09-developer-experience.md",source:"@site/blog/2023-06-09-developer-experience.md",title:"Developer Experience Update",description:"High level summary",date:"2023-06-09T00:00:00.000Z",formattedDate:"June 9, 2023",tags:[{label:"devx",permalink:"/tags/devx"}],readingTime:2.035,hasTruncateMarker:!1,authors:[{name:"Moritz Angermann",title:"Head of Developer Experience",url:"https://github.com/angerman",imageURL:"https://github.com/angerman.png",key:"angerman"}],frontMatter:{title:"Developer Experience Update",slug:"2023-06-09-developer-experience",authors:"angerman",tags:["devx"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-06-09-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-06-09-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"build support & maintainance",id:"build-support--maintainance",level:3},{value:"compiler upgrades",id:"compiler-upgrades",level:3},{value:"CHaP (cardano-haskell-packages)",id:"chap-cardano-haskell-packages",level:3},{value:"GitHub Actions",id:"github-actions",level:3},{value:"iohk-nix",id:"iohk-nix",level:3},{value:"haskell.nix",id:"haskellnix",level:3},{value:"devx",id:"devx",level:3},{value:"upstream tooling",id:"upstream-tooling",level:3}],u={toc:s},c="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The Developer Experience team has been devoted to day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, the maintaince of our cardano-haskell-packages (CHaP), and infrastructure like GitHub Actions, iohk-nix, haskell.nix, and devx. Furthermore, we have also contributed to upstream tooling improvements."),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"build-support--maintainance"},"build support & maintainance"),(0,r.kt)("p",null,"Our DevX team has been instrumental in troubleshooting and fixing a wide range of issues, from broken windows builds and obscure ",(0,r.kt)("inlineCode",{parentName:"p"},"LoadDLL")," errors to ",(0,r.kt)("inlineCode",{parentName:"p"},"blst")," integration across Nix and Github CI. We've also initiated automatic uploads for release assets. Our efforts in streamlining complex CI setups have paid off, with some repositories like ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base"},"cardano-base")," experiencing significant reductions in CI complexity."),(0,r.kt)("h3",{id:"compiler-upgrades"},"compiler upgrades"),(0,r.kt)("p",null,"After the support for 9.2 across our libraries, we have started working on 9.6 compabilitiy as well. This move brings us closer to the upstream compiler, facilitating the contribution of patches and enabling early detection of regressions. In addition, we're prioritizing compaining even stronger for better backwards compatibility."),(0,r.kt)("h3",{id:"chap-cardano-haskell-packages"},"CHaP (cardano-haskell-packages)"),(0,r.kt)("p",null,"We relocated the underlying tooling, (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/foliage"},"foliage"),"), for ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages"},"CHaP")," into the IOG organization. Furthermore, we have introduced ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages/pull/260"},"improved tooling to quickly add constraints to packages"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages/issues/285"},"better error reporting for add-revision")," and ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/foliage/pull/63"},"better hackage url compatibility")," to facilitate easer usage of CHaP."),(0,r.kt)("h3",{id:"github-actions"},"GitHub Actions"),(0,r.kt)("p",null,"Our repository, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/actions"},"input-output-hk/actions"),", now houses the necessary actions for installing pre-requisites to build Cardano projects using GitHub Actions. Leveraging the ",(0,r.kt)("inlineCode",{parentName:"p"},"base")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"haskell")," install actions has allowed us to simplify workflows in the repos, focusing primarily on invoking ",(0,r.kt)("inlineCode",{parentName:"p"},"cabal"),"."),(0,r.kt)("h3",{id:"iohk-nix"},"iohk-nix"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix"},"iohk-nix")," repository has undergone a major revamp and now provides pre-built packages of the cryptographic libraries IOG utilizes for GitHub Runners. The key components we use, ",(0,r.kt)("inlineCode",{parentName:"p"},"sodium"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"blst"),", and ",(0,r.kt)("inlineCode",{parentName:"p"},"secp256k1"),", are also fixed to certain revisions within the ",(0,r.kt)("inlineCode",{parentName:"p"},"iohk-nix")," repository."),(0,r.kt)("h3",{id:"haskellnix"},"haskell.nix"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/haskell.nix"},"Haskell.nix")," has been maintained and updated with the addition of GHC 9.6.2 and GHC 8.2.8. After discovering performance regression in the native bignum backend, we switched the default bignum backend to ",(0,r.kt)("inlineCode",{parentName:"p"},"gmp"),"."),(0,r.kt)("h3",{id:"devx"},"devx"),(0,r.kt)("p",null,"The relatively new ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/devx"},"devx")," repository is where we experiment with a single nix development shell that aims to suffice for most use-cases at IOG. This initiative is expected to eliminate a number of CI failures related to project-build and shell interaction problems. The ",(0,r.kt)("inlineCode",{parentName:"p"},"devx")," repository's readme has been updated to reflect its purpose and usage guidelines."),(0,r.kt)("h3",{id:"upstream-tooling"},"upstream tooling"),(0,r.kt)("p",null,"Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/61e62d68.bf1333c0.js b/assets/js/61e62d68.bf1333c0.js new file mode 100644 index 0000000000..b719f01dc9 --- /dev/null +++ b/assets/js/61e62d68.bf1333c0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[81169],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),m=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=m(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=m(r),u=a,f=c["".concat(p,".").concat(u)]||c[u]||d[u]||o;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:a,l[1]=i;for(var m=2;m{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>m});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-09-01-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-09-01-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-goedel.md",source:"@site/blog/2023-09-01-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-09-01T00:00:00.000Z",formattedDate:"September 1, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.43,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-09-01-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-09-06-consensus"},nextItem:{title:"Hydra Team Update",permalink:"/2023-09-01-hydra"}},p={authorsImageUrls:[void 0]},m=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],s={toc:m},c="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and also further\ndeveloping the performance modelling prototype."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"finalising a presenting performance analysis internship work to the\nformal methods team")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"developed a new Isabelle mini-protocol framework and examples")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"planning an extended version of the ICE DeltaQ paper")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"working on algebraic rules for properisation of any-to-finish"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6226ba71.e2ed9a9e.js b/assets/js/6226ba71.e2ed9a9e.js new file mode 100644 index 0000000000..053fdef2e2 --- /dev/null +++ b/assets/js/6226ba71.e2ed9a9e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70644],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=p(r),c=n,m=d["".concat(s,".").concat(c)]||d[c]||h[c]||o;return r?a.createElement(m,l(l({ref:t},u),{},{components:r})):a.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Ledger Team Update",slug:"2022-11-23-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2022-11-23-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-23-ledger.md",source:"@site/blog/2022-11-23-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2022-11-23T00:00:00.000Z",formattedDate:"November 23, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.19,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-11-23-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-11-25-hydra"},nextItem:{title:"Hydra Team Update",permalink:"/2022-11-18-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"The Conway ledger era",id:"the-conway-ledger-era",level:3},{value:"Versioned CBOR",id:"versioned-cbor",level:3},{value:"Deposit tracking",id:"deposit-tracking",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Node release",id:"node-release",level:3}],u={toc:p},d="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"We released ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/380"},"CIP-1694"),",\nour proposal for entering the ",(0,n.kt)("a",{parentName:"p",href:"https://roadmap.cardano.org/en/voltaire/"},"Voltaire phase"),".\n",(0,n.kt)("strong",{parentName:"p"},"Please come join the discussion"),", this will be an incredibly exciting transition for\nCardano and we want everyone to participate!"),(0,n.kt)("p",null,"We now have a sensible way to version all of the serialization schemes used in the ledger.\nThe draft pull request was polished, reviewed, and merged this week.\nThis solves many problems that have vexed us since the beginning of the Shelley ledger era."),(0,n.kt)("p",null,"Everyone working on the Cardano node is working together to improve our release process,\nand the ledger team in particular dedicated one engineer to help with these efforts\nfor the next release."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"the-conway-ledger-era"},"The Conway ledger era"),(0,n.kt)("p",null,"The current proposal in ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/380"},"CIP-1694")," encompasses two new ledger eras.\nThe first era will be called Conway, after the English mathematician John Horton Conway.\nThe community facing aspects of the Conway ledger era will be very minimal,\nbut it will pave the way for introducing liquid democracy.\nThe details can be viewed ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/projects/4"},"here"),".\nWe do not yet have a formal specification for the Conway era.\nOur plan is to debut the\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/formal-ledger-specifications"},"formal ledger model"),".\nBriefly, the Conway ledger era will:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"introduce SPO voting for hard forks (in the spirit of the now abandoned ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/318"},"CIP-47"),")"),(0,n.kt)("li",{parentName:"ul"},"provide an on-chain mechanism for rotating the governance keys"),(0,n.kt)("li",{parentName:"ul"},"re-plumb the ledger rules involving governance to be in line with ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/380"},"CIP-1694"))),(0,n.kt)("h3",{id:"versioned-cbor"},"Versioned CBOR"),(0,n.kt)("p",null,"We now have the ability to easily tie our serialization schemes to the Cardano\nmajor protocol version.\nWe still aim to preserve backwards compatibility as much as possible, but we now have a principled\nplan for resolving problems (see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/372"},"CIP-ledger-cbor"),").\nIn particular, we can now address several long standing issues, such as\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/issues/2444"},"issue-2444"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/issues/2965"},"issue-2965"),", and ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/issues/3003"},"issue-3003"),". "),(0,n.kt)("p",null,"The final (and massive!) pull request which brought us the versioning is ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3138"},"pull-3138"),"."),(0,n.kt)("h3",{id:"deposit-tracking"},"Deposit tracking"),(0,n.kt)("p",null,"The draft pull request which was exploring how best to track individual deposits\nis much closer now to being ready to take out of draft (",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3127"},"pull-3127"),").\nFor background on the issue, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/issues/3113"},"issue-3113"),".\nThis is quite an invasive change which effects many of our tests, which we are now addressing."),(0,n.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,n.kt)("p",null,"As always, we keep working on technical debt.\nWe have deduplicated a some things: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3129"},"pull-3129"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3162"},"pull-3162"),".\nWe have memoized a problematic computation (though more due diligence is needed before we can\nmerge): ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3141"},"pull-3141"),"."),(0,n.kt)("h3",{id:"node-release"},"Node release"),(0,n.kt)("p",null,"We have been helping with the node release efforts. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4608"},"pull-4608"),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/623a19a8.bab67a31.js b/assets/js/623a19a8.bab67a31.js new file mode 100644 index 0000000000..4aa5335c81 --- /dev/null +++ b/assets/js/623a19a8.bab67a31.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6543],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=p(a),d=n,h=c["".concat(s,".").concat(d)]||c[d]||m[d]||l;return a?r.createElement(h,i(i({ref:t},u),{},{components:a})):r.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[c]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2024-05-08-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-05-08-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-08-ledger.md",source:"@site/blog/2024-05-08-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-05-08T00:00:00.000Z",formattedDate:"May 8, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.325,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-05-08-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-05-10-sre"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-05-07-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3}],u={toc:p},c="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Some of the most important and final Conway features were implemented since the last report:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Bootstrap phase is fully implemented"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"HardForkInitiaztion")," governance action will now correctly take us into the next era\nthat will follow the Conway era."),(0,n.kt)("li",{parentName:"ul"},"DRep stake distribution now also includes the amount in the reward account and deposits\nthat were left for the governance proposals."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"CostModels")," updates for plutus scripts made more flexible, which will allow us adding\nnew primitives for all plutus versions starting with the Conway era.")),(0,n.kt)("p",null,"As always, besides new features, we also wrote a lot of testing functionality. We now have\nour first and fully functional conformance test for a ",(0,n.kt)("inlineCode",{parentName:"p"},"GOV")," rule, with a few more in the\nworks. Many improvements and bugfixes to constraint based generating functionality. Last,\nbut not least, we did a major and long awaited improvement to our CI setup that makes it\nmuch easier to spot failing tests and deal with potential flakiness."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4275"},"pull-4275")," - Restrict gov actions during bootstrap"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4253"},"pull-4253")," - Hardfork Initiation into a new era"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4273"},"pull-4273")," - DRepDistr: Iterate over the DRep delegations in UMap"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4309"},"pull-4309")," - Add proposal deposits to DRep active voting stake."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4284"},"pull-4284")," - Flexible costmodel params"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4328"},"pull-4328")," - Disable drep thresholds in bootstrap")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4295"},"pull-4295")," - Improve generator in ImpTestsState"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4292"},"pull-4292")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": add genHint for maps"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4298"},"pull-4298")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": utility function for asserting over a reified value"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4300"},"pull-4300")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": hotfix of latest derp..."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4297"},"pull-4297")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Fix ",(0,n.kt)("inlineCode",{parentName:"li"},"ifElse")," dependencies"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4301"},"pull-4301")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Add monitoring capability to get a handle on test case distribution"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4315"},"pull-4315")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Improve error messages and make the tree generator reasonably sized"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4317"},"pull-4317")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Fix bug in reifies"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4299"},"pull-4299")," - Fix strange CI failure."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4285"},"pull-4285")," - Start Conway Imp tests with an initial committee and constitution"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4303"},"pull-4303")," - Fix test caused by erroneous merge"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4310"},"pull-4310")," - Fix ",(0,n.kt)("inlineCode",{parentName:"li"},"OMap.assocList")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4268"},"pull-4268")," - Enable conformance tests for GOV rule")),(0,n.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4276"},"pull-4276")," - Use a separate job for each test suite in GitHub CI"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4304"},"pull-4304")," - Ensure the CI complete step fails when tests fail"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4308"},"pull-4308")," - Add a CI status check to prevent merging PRs that contain merges"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4305"},"pull-4305")," - Use the correct iohk action for installing Haskell in GitHub CI"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4322"},"pull-4322")," - Bump jinja2 from 3.1.3 to 3.1.4 in /doc")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/62422ab6.8333998e.js b/assets/js/62422ab6.8333998e.js new file mode 100644 index 0000000000..c5fba34e9b --- /dev/null +++ b/assets/js/62422ab6.8333998e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[55855],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),h=u(r),d=n,m=h["".concat(p,".").concat(d)]||h[d]||c[d]||l;return r?a.createElement(m,o(o({ref:t},s),{},{components:r})):a.createElement(m,o({ref:t},s))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[h]="string"==typeof e?e:n,o[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-02-17-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-02-17-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-ledger.md",source:"@site/blog/2023-02-17-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-02-17T00:00:00.000Z",formattedDate:"February 17, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.33,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-02-17-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-02-17-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-02-17-network"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Integration work",id:"integration-work",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Small documentation improvements",id:"small-documentation-improvements",level:3},{value:"Specifying CIP-1694",id:"specifying-cip-1694",level:3},{value:"Constraint based testing",id:"constraint-based-testing",level:3}],s={toc:u},h="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This past two weeks saw many months worth of ledger changes integrated with the ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-base"),"\nand ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," repositories.\nThe vast majority of the effort involved all the changes to the ledger serialization libraries\n(and the interplay with ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-base"),") which now support proper versioning.\nSupporting the conway ledger era, and in particular allowing the ledger state to transition\nto a whole new system of governance, also played a noticeable part in the integration."),(0,n.kt)("p",null,"Besides the integration work, the team continues to address technical debt, improve the\ndocumentation, make our testing infrastructure better (such as experimenting with better\nnightly tests), and formally specifying more parts of CIP-1694."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"integration-work"},"Integration work"),(0,n.kt)("p",null,"Below is all the integration work completed, which will enable a release to node from\nthe current ledger master. Many thanks to\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/lehins"},"Alexey")," for this colossal undertaking!"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3303"},"pull-3303")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3302"},"pull-3302")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3300"},"pull-3300")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3299"},"pull-3299")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3298"},"pull-3298")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3297"},"pull-3297")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3292"},"pull-3292")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3289"},"pull-3289")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3288"},"pull-3288")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3279"},"pull-3279")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3282"},"pull-3282")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4349"},"pull-4349"))),(0,n.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,n.kt)("p",null,"Starting in major protocol version 9, zero-valued multi-assets will no longer be permitted\nin the CBOR specification. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3241"},"pull-3241"),"."),(0,n.kt)("p",null,"We now have our ",(0,n.kt)("inlineCode",{parentName:"p"},".cabal")," files being checked for a consistent formatting given by\n",(0,n.kt)("inlineCode",{parentName:"p"},"cabal format")," in our CI. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3286"},"pull-3286"),"."),(0,n.kt)("p",null,"We are still experimenting with better nightly tests for our long running\nproperty based tests. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3276"},"pull-3276")," and ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3296"},"pull-3296"),"."),(0,n.kt)("h3",{id:"small-documentation-improvements"},"Small documentation improvements"),(0,n.kt)("p",null,"The hand proofs of the preservation ADA property have been added back to the\nShelley ledger specification. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3295"},"pull-3295"),"."),(0,n.kt)("p",null,"We have clarified how the script integrity hash is computed in the CDDL description.\nSee ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3290"},"pull-3290"),"."),(0,n.kt)("h3",{id:"specifying-cip-1694"},"Specifying CIP-1694"),(0,n.kt)("p",null,"Our new formal specifications backed by Agda have seen a lot of progress!\nUpgrading to Agda 2.6.3 fixed our main build infrastructure problems,\nand we no longer have to rely on our custom fork. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/formal-ledger-specifications/pull/50"},"pull-50"),"."),(0,n.kt)("p",null,"Our progress on formally specifying CIP-1694 can be followed here:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"in Agda: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/formal-ledger-specifications/pull/40"},"pull-40")),(0,n.kt)("li",{parentName:"ul"},"the corresponding Haskell: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3291"},"pull-3291"))),(0,n.kt)("h3",{id:"constraint-based-testing"},"Constraint based testing"),(0,n.kt)("p",null,"We are still actively working on our new constraint based property testing framework.\nWe have nearly all of the constraints for an entire ledger state\nhooked into generators, and tests that the generators do indeed obey the constraints.\nThe variable count in the constraints is over 100!\nThere is still much work to do on shrinking, making the generators faster,\nand writing actual property tests for the ledger, but the approach still seems viable and\nwe are hopeful that it could replace our trace generators.\nThe WIP can be followed here: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3219"},"pull-3219"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/62c838a9.13cf9180.js b/assets/js/62c838a9.13cf9180.js new file mode 100644 index 0000000000..c45cb5d107 --- /dev/null +++ b/assets/js/62c838a9.13cf9180.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[55522],{14642:e=>{e.exports=JSON.parse('{"permalink":"/tags/performance-tracing/page/2","page":2,"postsPerPage":5,"totalPages":7,"totalCount":34,"previousPage":"/tags/performance-tracing","nextPage":"/tags/performance-tracing/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/62d3f25f.f4c8d071.js b/assets/js/62d3f25f.f4c8d071.js new file mode 100644 index 0000000000..a5cb42fdfb --- /dev/null +++ b/assets/js/62d3f25f.f4c8d071.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91644],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var d=r.createContext({}),p=function(e){var t=r.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(d.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,d=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=p(a),u=n,h=s["".concat(d,".").concat(u)]||s[u]||m[u]||o;return a?r.createElement(h,i(i({ref:t},c),{},{components:a})):r.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=u;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-02-16-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-02-16-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-16-hydra.md",source:"@site/blog/2024-02-16-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-02-16T00:00:00.000Z",formattedDate:"February 16, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.88,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-02-16-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-02-19-network"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-02-16-performance-and-tracing"}},d={authorsImageUrls:[void 0]},p=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],c={toc:p},s="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This week, the team made finally progress on the model based testing framework (and reproducing a bug) by fixing issues related to fully validating Cardano transactions. They also enabled continuous deployment of ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-explorer")," to ",(0,n.kt)("a",{parentName:"p",href:"http://explorer.hydra.family/heads"},"http://explorer.hydra.family/heads"),", facilitating easier access for users. Furthermore, they improved code quality by incorporating Haskell linting into their CI workflow and addeda user-ished conversion of ",(0,n.kt)("inlineCode",{parentName:"p"},"HeadId")," to ",(0,n.kt)("inlineCode",{parentName:"p"},"CurrencySymbol"),"."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fixed model based testing framework to fully validate Cardano transactions"),(0,n.kt)("li",{parentName:"ul"},"Enabled continuous deployment of ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-explorer")," to ",(0,n.kt)("a",{parentName:"li",href:"http://explorer.hydra.family/heads"},"http://explorer.hydra.family/heads")),(0,n.kt)("li",{parentName:"ul"},"Identified need for cardano-node 8.8 and cardano-api 8.38 (breaking changes) to continue integration with Conway networks"),(0,n.kt)("li",{parentName:"ul"},"Added Haskell linting to our CI workflow - Minor addition to convert ",(0,n.kt)("inlineCode",{parentName:"li"},"HeadId")," into ",(0,n.kt)("inlineCode",{parentName:"li"},"CurrencySymbol")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/919"},"#","919")),(0,n.kt)("li",{parentName:"ul"},"Reviewed a small refactor PR on our model-based test runner ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1300"},"#","1300"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fix the fanout after contest bug"),(0,n.kt)("li",{parentName:"ul"},"Bite the bullet and have a non-mainnet compatible ",(0,n.kt)("inlineCode",{parentName:"li"},"master")," to complete smoke tests on ",(0,n.kt)("inlineCode",{parentName:"li"},"sanchonet")),(0,n.kt)("li",{parentName:"ul"},"Specify the on-chain validators for incremental decommits")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/62ec9f43.522dfa89.js b/assets/js/62ec9f43.522dfa89.js new file mode 100644 index 0000000000..1218e24c16 --- /dev/null +++ b/assets/js/62ec9f43.522dfa89.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8694],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>c});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function l(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):l(l({},t),e)),i},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),h=u(i),d=n,c=h["".concat(p,".").concat(d)]||h[d]||m[d]||a;return i?r.createElement(c,l(l({ref:t},s),{},{components:i})):r.createElement(c,l({ref:t},s))}));function c(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,l=new Array(a);l[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[h]="string"==typeof e?e:n,l[1]=o;for(var u=2;u{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>a,metadata:()=>o,toc:()=>u});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-06-01-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-06-01-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-01-mithril.md",source:"@site/blog/2023-06-01-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-06-01T00:00:00.000Z",formattedDate:"June 1, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.415,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-06-01-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-06-02-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-05-31-consensus"}},p={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:u},h="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(h,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team released a new ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2321.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2321.1"))," distribution that fully implements the mechanism developed to sign generic data. They completed the upgrade of the Cardano node in the Mithril networks to v.8.0.0 and the implementation of the new computation of the stake distribution. They refactored the state machines of the signer and aggregator, and the signed entity service of the aggregator. Additionally, they worked on adapting the client and implementing a new sub-command for restoring the Cardano immutable file snapshots."),(0,n.kt)("p",null,"Finally, the team worked on adding a new certificate list route in the aggregator REST API, and started enhancing the infrastructure of the Mithril networks."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2321.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2321.1"))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that designs and implements generic signing/verification of entity services ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/780"},"#780"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Enhance MessageAdapter for Artifact in aggregator REST API")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/925"},"#925")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Create the sub-command for 'Cardano Immutable Files Full' in client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/895"},"#895")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Enhance state machines Aggregator/Signer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/933"},"#933")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Adapt the aggregator REST API to list certificates")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/892"},"#892")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Adapt end to end tests to handle new types of data")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/899"},"#899")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Update client documentation")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/897"},"#897")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Update architecture documentations for new types of data")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/898"},"#898")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that prepares the Mithril infrastructure for ",(0,n.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/767"},"#767"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Enhance terraform infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/930"},"#930")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that implements the computation of the stake distribution for ",(0,n.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/880"},"#880"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Upgrade Cardano node to '8.0.0'")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/920"},"#920")))),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add export path in Client CLI")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/512"},"#512"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/62f46a38.0fa09951.js b/assets/js/62f46a38.0fa09951.js new file mode 100644 index 0000000000..41fca14059 --- /dev/null +++ b/assets/js/62f46a38.0fa09951.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2681],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=s(r),u=a,g=m["".concat(p,".").concat(u)]||m[u]||d[u]||o;return r?n.createElement(g,i(i({ref:t},c),{},{components:r})):n.createElement(g,i({ref:t},c))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-02-17-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-02-17-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-goedel.md",source:"@site/blog/2023-02-17-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-02-17T00:00:00.000Z",formattedDate:"February 17, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.53,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-02-17-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-02-17-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-02-17-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],c={toc:s},m="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the team has been working on drafts of two papers and one\ntechnical report, distributivity properties of deltaQ, and consulting\non performance design with the Marlowe team."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Processing reviews on performance engineering paper and planning\npaper revisions accordingly")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Investigating distributivity properties of DeltaQ")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing sections on the thorn calculus and idempotency laws for\ndraft paper about verifying design refinements for distributed\nsystem design")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Consulting on performance design with Marlowe team"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/632979e8.9f1c582c.js b/assets/js/632979e8.9f1c582c.js new file mode 100644 index 0000000000..9f27324e37 --- /dev/null +++ b/assets/js/632979e8.9f1c582c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32831],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>c});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=u(i),d=n,c=m["".concat(p,".").concat(d)]||m[d]||h[d]||a;return i?r.createElement(c,o(o({ref:t},s),{},{components:i})):r.createElement(c,o({ref:t},s))}));function c(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,o=new Array(a);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var u=2;u{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-06-29-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-06-29-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-29-mithril.md",source:"@site/blog/2023-06-29-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-06-29T00:00:00.000Z",formattedDate:"June 29, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:2.205,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-06-29-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-06-30-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-06-28-consensus"}},p={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:u},m="wrapper";function h(e){let{components:t,...i}=e;return(0,n.kt)(m,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team completed the design of the signer deployment model for the SPOs to run Mithril on their Cardano ",(0,n.kt)("inlineCode",{parentName:"p"},"mainnet")," infrastructure, and implemented the associated Mithril Relay in the Mithril networks. They started working on the design and implementation of a stress test tool for benchmarking the aggregator performances. They worked on the refactoring of the Mithril Stake Distribution entity and the uniformization of the date types in the nodes. They also worked on implementing a new tool command in the aggregator and its first sub-command that helps avoiding re-genesis of the certificate chain when the structure of the certificate is updated. Additionally, they worked on implementing some monitoring for the Mithril infrastructure, and worked on a retry mechanism for the artifact creation of the aggregator."),(0,n.kt)("p",null,"Finally, they fixed some bugs, and they completed the upgrade of the Mithril networks to Cardano node v.8.1.1."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that prepares the Mithril infrastructure for ",(0,n.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/767"},"#767"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add infrastructure monitoring")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/987"},"#987")))),(0,n.kt)("li",{parentName:"ul"},"Completed the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Prepare Mithril Signer deployment model for SPO")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/862"},"#862"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod'")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/961"},"#961")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Adapt infrastructure to use Mithril Relay")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1018"},"#1018")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Announce the new signer deployment model in a dev blog post")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1017"},"#1017")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Benchmark performances of Mithril Aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/904"},"#904"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Design & implement basic stress test tool for aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/991"},"#991")))),(0,n.kt)("li",{parentName:"ul"},"Worked on bugs:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Aggregator does not exit on critical error")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/993"},"#993")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Computation of master certificate of an epoch is incorrect")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1006"},"#1006")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"End to end tests are flaky")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/954"},"#954")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"'testing-preview' network does not create certificates")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1015"},"#1015")))),(0,n.kt)("li",{parentName:"ul"},"Worked on optimizations:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Dates format is not standardized")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/946"},"#946")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add 'recompute-certificates-hash' command to aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1001"},"#1001")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add a retry mechanism for artifact creation in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/984"},"#984")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Log node version at startup in Aggregator/Signer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/944"},"#944")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Reactivate Publish Results job in CI")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/978"},"#978")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Clean 'pending_snapshot' directory of aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/983"},"#983")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Update OpenAPI spec examples")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1000"},"#1000")))),(0,n.kt)("li",{parentName:"ul"},"Worked on refactoring:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Refactor 'MithrilStakeDistribution' entity")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/967"},"#967")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Refactoring client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/982"},"#982")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Refactor download code in client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1010"},"#1010")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Factorize protocol crypto operations")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/669"},"#669")))),(0,n.kt)("li",{parentName:"ul"},"Worked on dependencies:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Upgrade Cardano node to '8.1.1'")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/973"},"#973"))))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/637356df.1be2a9a9.js b/assets/js/637356df.1be2a9a9.js new file mode 100644 index 0000000000..846257ebaf --- /dev/null +++ b/assets/js/637356df.1be2a9a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95979],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=c(n),h=a,m=d["".concat(p,".").concat(h)]||d[h]||u[h]||o;return n?r.createElement(m,i(i({ref:t},l),{},{components:n})):r.createElement(m,i({ref:t},l))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB Sync Team Update",slug:"2022-09-19-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2022-09-19-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-19-db-sync.md",source:"@site/blog/2022-09-19-db-sync.md",title:"DB Sync Team Update",description:"DBSync Update",date:"2022-09-19T00:00:00.000Z",formattedDate:"September 19, 2022",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:1.525,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB Sync Team Update",slug:"2022-09-19-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-09-20-consensus"},nextItem:{title:"Ledger Team Update",permalink:"/2022-09-16-ledger"}},p={authorsImageUrls:[void 0]},c=[{value:"DBSync Update",id:"dbsync-update",level:2},{value:"New Tag",id:"new-tag",level:3},{value:"Open source",id:"open-source",level:3},{value:"Progress on tech debt and new features",id:"progress-on-tech-debt-and-new-features",level:3}],l={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"dbsync-update"},"DBSync Update"),(0,a.kt)("h3",{id:"new-tag"},"New Tag"),(0,a.kt)("p",null,"We created a new db-sync tag 13.0.5 which addresses shortcomings of the last\nrelease 13.0.4. It is currently under testing.\nThe Changelog is\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/blob/8ad98d48e0068f3768d48e18fdcbe254037cba3b/cardano-db-sync/CHANGELOG.md#1305"},"here")," and in more details:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We fixed fees for tx with phase 2 failure that didn't include a total collateral field.\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1248"},"1248"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We fixed an issue that could cause db-sync to crash if a specific rollback occured.\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1247"},"1247"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"DBSync will now avoid reserialising data, especially Datums, which not only slows down db-sync but\ncould result in the wrong CBOR encoding being inserted.\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1217"},"1217"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"All the fixes above come with unit tests which validates the fix.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Added support for preprod and preview from docker. DBSync no longer needs to include the configs\nfor different networks, these are directly fetched from the cardano world.\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1254"},"1254"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We added better support from docker for the new disable options and the overall documentation.\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1260"},"1260")))),(0,a.kt)("p",null,"All the above were also backported to the master branch"),(0,a.kt)("h3",{id:"open-source"},"Open source"),(0,a.kt)("p",null,"We made the db-sync ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/52/views/1"},"board public"),", so\neveryone can have access on the issues we prioritise.\nWe also added new tasks to the board, some of them could be approachable to newcomers or people who\nwant to contribute."),(0,a.kt)("h3",{id:"progress-on-tech-debt-and-new-features"},"Progress on tech debt and new features"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1223"},"1223")," was merged, which removes the\nforeign keys from the db schema. This opens the road to a number of optimizations.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"An additional fix on top of the previous work was added\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1250"},"1250"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"An initial version where DBSync does not rollback on restart is done here\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1266"},"1266"),".\nThis allows db-sync to restart much faster, without the need to delete data and reinsert them. In\nthe future it can also facilitate migrations in cases where the ledger snapshots have a breaking\nchange, without the need to resync everything from genesis."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/63a0ff66.679353c2.js b/assets/js/63a0ff66.679353c2.js new file mode 100644 index 0000000000..a352625c65 --- /dev/null +++ b/assets/js/63a0ff66.679353c2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[22585],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),c=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=c(a),d=n,h=u["".concat(p,".").concat(d)]||u[d]||m[d]||l;return a?r.createElement(h,o(o({ref:t},s),{},{components:a})):r.createElement(h,o({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:n,o[1]=i;for(var c=2;c{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-03-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",i={permalink:"/2024-03-15-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-15-node-cli-api.md",source:"@site/blog/2024-03-15-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-03-15T00:00:00.000Z",formattedDate:"March 15, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.15,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-03-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-03-15-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2024-03-15-sre"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],s={toc:c},u="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-03-01---2024-03-15"},"2024-03-01 - 2024-03-15"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-cli: Focus is on testing Conway features. Several improvements to create-testnet-data command, useful for creating/deploying local clusters for testing. Enable parallel execution of tests. ")),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/648"},"Update cardano-api-8.40.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/644"},"create-testnet-data: fix that treasury could be unexpectedly negative")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/640"},"Fix parallel ",(0,n.kt)("inlineCode",{parentName:"a"},"create-testnet-data")," stdout contents test ")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/639"},"cardano-cli-test: remove compatibility shim that is now useless")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/638"},"create-testnet-data: fix computation of not-delegated amount")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/636"},"Follow-ups of create-testnet-data+relays")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/635"},"Allow an output file to be specified for query pool-state")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/633"},"Bump cardano-ping")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/632"},"create-testnet-data: allow to specify relays for SPOs (like create-staked)"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/483"},"Fix for foldEpochState haddock"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/482"},"Expose default genesis for Conway and Alonzo, and DRepState constructors"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/480"},"New version ",(0,n.kt)("inlineCode",{parentName:"a"},"cardano-api-8.40.0.0")))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/478"},"Remove error ",(0,n.kt)("inlineCode",{parentName:"a"},'"evaluateTransactionFee: TODO support Byron key witnesses"')))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/475"},"Use the ledger's Coin instead of our custom Lovelace type"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/472"},'Revert "Remove unused constraint"'))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/470"},"Add ",(0,n.kt)("inlineCode",{parentName:"a"},"SlotNo")," and ",(0,n.kt)("inlineCode",{parentName:"a"},"BlockNo")," parameters to ",(0,n.kt)("inlineCode",{parentName:"a"},"foldEpochState"),"'s callback function"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-api/pull/468"},"Expose Block constructors")))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5710"},"Update cardano-ping to the same version as cardano-cli")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5707"},"Remove flaky calls to by ",(0,n.kt)("inlineCode",{parentName:"a"},"byDeadlineM")," in ",(0,n.kt)("inlineCode",{parentName:"a"},"cardano-testnet"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5706"},"Add PARALLEL_TESTNETS flag")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5701"},"testnet: reduce log length significantly, by not logging the config")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5700"},"Use more realistic default conway genesis")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5699"},"Make testnet's nodes' ports allocation dynamic"))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/637"},"Enable parallel execution of tests (cli)")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/471"},"Enable parallel execution of tests (api)"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/63a2f993.62063dc6.js b/assets/js/63a2f993.62063dc6.js new file mode 100644 index 0000000000..4a08be5ec9 --- /dev/null +++ b/assets/js/63a2f993.62063dc6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94164],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(r),m=n,h=c["".concat(p,".").concat(m)]||c[m]||d[m]||l;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=m;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:n,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-06-05-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-06-05-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-05-ledger.md",source:"@site/blog/2024-06-05-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-06-05T00:00:00.000Z",formattedDate:"June 5, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.125,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-06-05-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-06-10-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-06-05-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing and formal spec",id:"testing-and-formal-spec",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3}],s={toc:u},c="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This time around we continued on testing the Conway era and improving our conformance\ntests. Thanks to this extensive testing we found and fixed a few more bugs in the Conway\nimplementation. We fixed bugs related to DRep expiry and the choice of correct threshold for\nthe committee voting. One important feature that was implemented is ignoring the\nminimun committee size during the bootstrap phase, in order to avoid a deadlock situation in\ncase that enough committeee members were to resign. We've also improved the correctness of\nour CDDL specification and improved the safety by restricting some of the types of\nprotocol parameters."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4350"},"pull-4350")," - Add identity instance for ",(0,n.kt)("inlineCode",{parentName:"li"},"Inject")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4361"},"pull-4361")," - Fixed a bug in RATIFY"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4358"},"pull-4358")," - DRep expiry update with number of dormant epochs"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4365"},"pull-4365")," - Create pool stake distribution query for voting"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4376"},"pull-4376")," - Ignore ",(0,n.kt)("inlineCode",{parentName:"li"},"ppCommitteeMinSize")," during bootstrap"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4364"},"pull-4364")," - DRep state query and related tests"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4357"},"pull-4357")," - Specify numeric ranges explicitly in conway cddl files")),(0,n.kt)("h3",{id:"testing-and-formal-spec"},"Testing and formal spec"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4339"},"pull-4339")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": introduce tools for controlling test case distribution"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4348"},"pull-4348")," - Conformance: GOVCERT"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4213"},"pull-4213")," - Utxow Predicate failure tests"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4351"},"pull-4351")," - Enable retrying flaky tests in nightly CI"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4345"},"pull-4345")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Add ",(0,n.kt)("inlineCode",{parentName:"li"},"explanation :: [String] -> Pred fn -> Pred fn")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4362"},"pull-4362")," - Threshold translation in conformance testing"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4369"},"pull-4369")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Add ",(0,n.kt)("inlineCode",{parentName:"li"},"flip_")," to avoid having to add new native functions"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4377"},"pull-4377")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": propagate information backwards in the solver"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4389"},"pull-4389")," - Fixed issue #4340. Problem with futurePParams not adequate in Conway."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4378"},"pull-4378")," - Conformance: POOL"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4388"},"pull-4388")," - Improved the translation of ",(0,n.kt)("inlineCode",{parentName:"li"},"PParamUpdate")," in conformance"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4355"},"pull-4355")," - Fix order of arguments to verifyVrf")),(0,n.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4352"},"pull-4352")," - Remove dependency on deprecated ansi-wl-print package"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4344"},"pull-4344")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": identify and fix an issue with big bodies to ifElse"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4338"},"pull-4338")," - Add conformance testing for ",(0,n.kt)("inlineCode",{parentName:"li"},"ENACT")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4354"},"pull-4354")," - Added conformance test for ",(0,n.kt)("inlineCode",{parentName:"li"},"DELEG")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4367"},"pull-4367")," - Fixed ",(0,n.kt)("inlineCode",{parentName:"li"},"8.10")," not building"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4368"},"pull-4368")," - Ensure GitHub CI fails when tests are skipped due to a build failure"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4373"},"pull-4373")," - Add -rtsopts to all test suites")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/63c9ac3d.75454db0.js b/assets/js/63c9ac3d.75454db0.js new file mode 100644 index 0000000000..880c3a4b79 --- /dev/null +++ b/assets/js/63c9ac3d.75454db0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[62431],{37672:e=>{e.exports=JSON.parse('{"permalink":"/page/66","page":66,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/65","nextPage":"/page/67","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/63fae4f0.00cfda02.js b/assets/js/63fae4f0.00cfda02.js new file mode 100644 index 0000000000..5d33e5c5c5 --- /dev/null +++ b/assets/js/63fae4f0.00cfda02.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[39898],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),u=s(n),m=o,h=u["".concat(l,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(h,i(i({ref:t},c),{},{components:n})):r.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[u]="string"==typeof e?e:o,i[1]=p;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>p,toc:()=>s});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-03-21-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2023-03-21-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-21-network.md",source:"@site/blog/2023-03-21-network.md",title:"Network Team Update",description:"High level summary",date:"2023-03-21T00:00:00.000Z",formattedDate:"March 21, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.315,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-03-21-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-03-22-performance-and-tracing"},nextItem:{title:"Crypto Team Update",permalink:"/2023-03-17-crypto"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"In the last spring we released ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node-1.35.6")," with dynamic P2P\nfunctionality."),(0,o.kt)("p",null,"We received reports from some SPOs who encountered problems with their non\nP2P block producing nodes not being able to connect to their P2P relay. Karl\nKnutsson (from Cardano Foundation) reproduced this issue between two nodes (a\nnon P2P and a P2P one) on mainnet. Karl and the IOG Networking Team analysed\nit and found a bug in the legacy non p2p code. The bug is only possible to\ntrigger with a P2P node which is binding its outbound connection port to\na fixed IP address and port (default in p2p). A possible solution was found.\nFor more information see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4465"},"#4465"),"."),(0,o.kt)("p",null,"We released ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-ping-0.1.0.0")," package to ",(0,o.kt)("inlineCode",{parentName:"p"},"CHaP"),". ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-ping")," is no\nlonger available as a standalone binary, but instead it will become part of\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-cli")," (see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"#4664"),")"),(0,o.kt)("p",null,"We are testing ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," with peer sharing functionality (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"#4019"),")."),(0,o.kt)("p",null,"We are working on ",(0,o.kt)("em",{parentName:"p"},"eclipse evasion"),". We added new class of peers: big ledger\npeers to the outbound governor, implemented tests and fixed found issues\n(",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4462"},"#4462"),"). We also made the information if a given peer plays the role of\na big ledger peer to the mini-protocols. This will allow to modify\nmini-protocol applications for such peers. As part of this functionality we\nrefactored some core types in the network code which simplifies exposed API."),(0,o.kt)("p",null,"Together with Moritz Angerman we started to update ",(0,o.kt)("inlineCode",{parentName:"p"},"io-sim")," to ",(0,o.kt)("inlineCode",{parentName:"p"},"ghc-9.6.1")," (see\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/73"},"#73"),")."),(0,o.kt)("p",null,"We merged a fix of configuration of accepted connections limit in\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," (see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4902"},"#4902"),")."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/649eea43.b7aee78d.js b/assets/js/649eea43.b7aee78d.js new file mode 100644 index 0000000000..aeb28a7bc5 --- /dev/null +++ b/assets/js/649eea43.b7aee78d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[55914],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),u=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),p=u(a),c=n,d=p["".concat(s,".").concat(c)]||p[c]||m[c]||i;return a?r.createElement(d,o(o({ref:t},h),{},{components:a})):r.createElement(d,o({ref:t},h))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-01-19-hydra",authors:["abailly"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-01-19-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-19-hydra.md",source:"@site/blog/2024-01-19-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-01-19T00:00:00.000Z",formattedDate:"January 19, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.03,hasTruncateMarker:!1,authors:[{name:"Arnaud Bailly",title:"Head of Architecture, Cardano Scaling",url:"https://github.com/abailly",imageURL:"https://github.com/abailly.png",key:"abailly"}],frontMatter:{title:"Hydra Team Update",slug:"2024-01-19-hydra",authors:["abailly"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-01-22-network"},nextItem:{title:"SRE Team Update",permalink:"/2024-01-19-sre"}},s={authorsImageUrls:[void 0]},u=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:u},p="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,'The team made good progress this week, with the release of version\n0.15.0 marking a milestone, along with the monthly review including\nboth Mithril and Hydra work. We addressed issues in smoke tests and\nwebsite publishing workflows, ensuring a more robust development\nenvironment, and along the way included more "dogfooding" through the\nuse of Mithril to synchronize nodes in smoke tests.'),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Release of Version\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.15.0"},"0.15.0"),". This\nrelease enhances the overall stability and functionality of our\nproduct."),(0,n.kt)("li",{parentName:"ul"},"Monthly Review and Community Demos"),(0,n.kt)("li",{parentName:"ul"},"Smoke Tests and Website Publishing Workflow Fixes: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1246"},"#1246"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Resolved glitches in the website publishing workflows, enhancing\nthe efficiency of our deployment processes."))),(0,n.kt)("li",{parentName:"ul"},"Integration of Mithril for Smoke Test Synchronization: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1252"},"#1252")),(0,n.kt)("li",{parentName:"ul"},"Polishing of Hydra-Chess v0.1.0: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1237"},"#1237"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on polishing hydra-chess v0.1.0, treating it as an example\napplication running on Hydra. This not only demonstrates the\ncapabilities of our platform but also aims at providing a reference for future Hydra\ndevelopers.")))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Merge Off-Chain Protocol Logic for incremental decommits"),(0,n.kt)("li",{parentName:"ul"},"Initiate work on the on-chain portion of incremental decommits"),(0,n.kt)("li",{parentName:"ul"},"Merge CBOR API Change ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1240"},"#1240")),(0,n.kt)("li",{parentName:"ul"},"Troubleshoot Dangling Fanout Issue ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1260"},"#1260"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/65837eee.5f60931e.js b/assets/js/65837eee.5f60931e.js new file mode 100644 index 0000000000..8056a51576 --- /dev/null +++ b/assets/js/65837eee.5f60931e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2589],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(a),d=n,h=s["".concat(c,".").concat(d)]||s[d]||m[d]||o;return a?r.createElement(h,i(i({ref:t},u),{},{components:a})):r.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-12-30-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2023-12-30-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-30-node-cli-api.md",source:"@site/blog/2023-12-30-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-12-30T00:00:00.000Z",formattedDate:"December 30, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.97,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-12-30-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-01-05-sre"},nextItem:{title:"Hydra Team Update",permalink:"/2023-12-22-hydra"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],u={toc:p},s="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2023-12-09---2023-12-30"},"2023-12-09 - 2023-12-30"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Migrated reposotiries to IntersectMBO."),(0,n.kt)("li",{parentName:"ul"},"Improved era handling on cardano-api. Instead of enumerating every possible era, we use two constructors:\n'CurrentEra' and 'UpcomingEra'. This design simplifies the handling of eras, especially for ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-api")," consumers who are primarily concerned with the current mainnet era and the next era for an upcoming hardfork."),(0,n.kt)("li",{parentName:"ul"},"Cleaning-up the ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-cli"),", in particular to the babbage era commands where some Conway options had spilled. ")),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/535"},"Use AnyShelleyBasedEra in ScriptWitnessErrorReferenceScriptsNotSupportedInEra")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/523"},"[--output-format json|--output-format json] format becomes [--output-yaml|--output-json]")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/521"},"governance vote view: use ",(0,n.kt)("inlineCode",{parentName:"a"},"--output-format"),", like other commands, instead of ",(0,n.kt)("inlineCode",{parentName:"a"},"--yaml"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/520"},"fix: invalid options on cardano-cli babbage transaction build and build-raw")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/515"},"legacy query: remove constitution-hash option")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/514"},"Make ",(0,n.kt)("inlineCode",{parentName:"a"},"query pool-state")," default to returning information on all pools"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/414"},"Expose CurrentEra and UpcomingEra pattern synonyms")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/412"},"update cname for github pages")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/411"},"Fix links killed by GitHub migration")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/410"},"Move renderSafeHashAsHex from cardano-node")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/409"},"Upgrade hedgehog extras")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/405"},"chap: migrate to chap.intersectmbo.org")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/402"},"Era handling"))),(0,n.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5581"},"chap: migrate to intersectmbo.org"))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5583"},"cardano-testnet 8.7.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5581"},"chap: migrate to intersectmbo.org"))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/65d0391b.dba76c13.js b/assets/js/65d0391b.dba76c13.js new file mode 100644 index 0000000000..e5038a70be --- /dev/null +++ b/assets/js/65d0391b.dba76c13.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[88572],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=p(r),h=n,d=m["".concat(u,".").concat(h)]||m[h]||c[h]||i;return r?a.createElement(d,l(l({ref:t},s),{},{components:r})):a.createElement(d,l({ref:t},s))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,l=new Array(i);l[0]=h;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-08-17-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-08-17-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-17-crypto.md",source:"@site/blog/2023-08-17-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-08-17T00:00:00.000Z",formattedDate:"August 17, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:.65,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-08-17-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-08-18-sre"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-08-17-db-sync"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"MuSig2",id:"musig2",level:3},{value:"Sidechains",id:"sidechains",level:3},{value:"KES agent",id:"kes-agent",level:3}],s={toc:p},m="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation"),(0,n.kt)("li",{parentName:"ul"},"mithril: Full node verifier"),(0,n.kt)("li",{parentName:"ul"},"musig2: Include MuSig2 description in cryptography handbook"),(0,n.kt)("li",{parentName:"ul"},"kes_agent: Finilising test and CI. Working on KES binary")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Full Node Verifier merged ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/939"},"#939"),".")),(0,n.kt)("h3",{id:"musig2"},"MuSig2"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Started describing MuSig2 to include it as part of the cryptography handbook ")),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Analysis of Halo2 verifier with the goal of implementing SNARK verifier in Plutus. Implemented ad-hoc IPA verifier. Work progress in ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/alexandroszacharakis8/halo2/tree/iquerejeta"},"this")," fork.")),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"KES agent is ready:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"CI ready ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes-agent/issues/19"},"#19")),(0,n.kt)("li",{parentName:"ul"},"Receipt confirmation message ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes-agent/issues/20"},"#20")),(0,n.kt)("li",{parentName:"ul"},"KES agent binary ready ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes-agent/issues/21"},"#21")),(0,n.kt)("li",{parentName:"ul"},"Control client implemented ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes-agent/issues/11"},"#11"))))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/65d07996.ed778e80.js b/assets/js/65d07996.ed778e80.js new file mode 100644 index 0000000000..7905a8b1ed --- /dev/null +++ b/assets/js/65d07996.ed778e80.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[13160],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,h=p["".concat(i,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},c),{},{components:n})):r.createElement(h,s({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[p]="string"==typeof e?e:a,s[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-05-15-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,l={permalink:"/2024-05-15-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-15-consensus.md",source:"@site/blog/2024-05-15-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-05-15T00:00:00.000Z",formattedDate:"May 15, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.545,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-05-15-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-05-22-mithril"},nextItem:{title:"Mithril Team Update",permalink:"/2024-05-15-mithril"}},i={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Released Consensus for Node 8.11 (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1101"},"#1101"),")"),(0,a.kt)("li",{parentName:"ul"},"Improved the Praos chain order:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Restricted VRF tiebreaker based on slot distance (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1047"},"#1047"),")"),(0,a.kt)("li",{parentName:"ul"},"Small tweak to the issue number tiebreaker (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1086"},"#1086"),")"))),(0,a.kt)("li",{parentName:"ul"},"Wrote overview on the statistics on the leader schedule (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1096"},"#1096"),")"),(0,a.kt)("li",{parentName:"ul"},"Integrated robustness refinement for concluding that a node is caught up in the context of bootstrap peers (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1031"},"#1031"),")"),(0,a.kt)("li",{parentName:"ul"},"The P&T team managed to complete the UTXO-HD benchmarks using the LMDB backend and the ",(0,a.kt)("a",{parentName:"li",href:"https://updates.cardano.intersectmbo.org/2024-05-07-performance-and-tracing#utxo-hd--lmdb"},"results")," are promising."),(0,a.kt)("li",{parentName:"ul"},"We're working on setting up the Consensus Technical Working Group within Intersect, so if you'd like to participate please reach out to ",(0,a.kt)("a",{parentName:"li",href:"mailto:damian.nadales@iohk.io"},"Damian Nadales"),".")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/65dd336a.b3b48020.js b/assets/js/65dd336a.b3b48020.js new file mode 100644 index 0000000000..257e1ec652 --- /dev/null +++ b/assets/js/65dd336a.b3b48020.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92680],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),d=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=d(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=d(a),u=r,h=c["".concat(p,".").concat(u)]||c[u]||m[u]||o;return a?n.createElement(h,i(i({ref:t},s),{},{components:a})):n.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=u;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:r,i[1]=l;for(var d=2;d{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var n=a(87462),r=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2024-05-24-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-05-24-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-24-sre.md",source:"@site/blog/2024-05-24-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-05-24T00:00:00.000Z",formattedDate:"May 24, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.53,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-05-24-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-05-24-performance-and-tracing"},nextItem:{title:"Ledger Team Update",permalink:"/2024-05-22-ledger"}},p={authorsImageUrls:[void 0]},d=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs:",id:"capkgs",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-ogmios",id:"cardano-ogmios",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3}],s={toc:d},c="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sanchonet was respun for cardano-node ",(0,r.kt)("inlineCode",{parentName:"p"},"8.11.0-pre"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Private chain was respun twice for pre-sancho respin testing and short epoch\ntesting with cardano-node ",(0,r.kt)("inlineCode",{parentName:"p"},"8.11.0-pre"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Shelley-qa, two-thirds of preview and one-third of preprod networks were\ndeployed to cardano-node ",(0,r.kt)("inlineCode",{parentName:"p"},"8.11.0-pre"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sanchonet, private chain and shelley-qa networks had dbsync ",(0,r.kt)("inlineCode",{parentName:"p"},"sancho-4-3-0"),"\ndeployed")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A dbsync ",(0,r.kt)("inlineCode",{parentName:"p"},"show_current_forging")," prepared statement was added to the\ncardano-parts ",(0,r.kt)("inlineCode",{parentName:"p"},"profile-cardano-postgres")," nixosModule to aid with debugging\nchain quality issues")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Three documents were added to cardano-playground to better explain some\noperations procedures: KES rotation, chain quality debugging and new network\ncreation. Found at:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-playground/tree/main/docs/explain"},"docs/explain"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A new mithril dashboard template is available in cardano-parts"))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"capkgs"},"Capkgs:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Avoid git API rate limit errors on update github action via netrc usage and\ncorresponding secret:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/commit/1f3bf0a49e79d71d593f7de80ed783e5e2cb7053"},"capkgs-commit"))),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-node-ng to ",(0,r.kt)("inlineCode",{parentName:"li"},"8.11.0-pre")," and cardano-db-sync-ng to ",(0,r.kt)("inlineCode",{parentName:"li"},"sancho-4-3-0"),".\nAdds a dbsync prepared statement, mithril dashboard template, updates the\nnode application dashboard template, improves justfile recipe templates and\ntunes some systemd dependencies. Iohk-nix-ng was updated for sanchonet and\nprivate chain respins. More detail is available in the PR description:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/41"},"cardano-parts-pull-41"))),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Rotates KES, pins iogp4 as ",(0,r.kt)("inlineCode",{parentName:"li"},"-ng"),", adds a mithril dashboard, updates the node\napplication dashboard, improves justfile recipes and tunes systemd node and\nmithril services to avoid some edge case errors. See the PR description for\nmore details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/15"},"cardano-mainnet-pull-15"))),(0,r.kt)("h3",{id:"cardano-ogmios"},"Cardano-ogmios"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Build ogmios ",(0,r.kt)("inlineCode",{parentName:"li"},"v6.3.0")," with nix:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ogmios/compare/main...ogmios-6-3-0"},"cardano-ogmios-branch-compare"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Respins sancho and private chains and deploys cardano-node ",(0,r.kt)("inlineCode",{parentName:"li"},"8.11.0-pre")," and\ncardano-db-sync ",(0,r.kt)("inlineCode",{parentName:"li"},"sancho-4-3-0")," to appropriate envs and machines. Adds a mithril\ndashboard template, updates the node application dashboard template, improves\njustfile recipe templates. Adds three new explainer readme documents. See the\nPR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/24"},"cardano-playground-pull-24"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/65ecf6d5.603e2906.js b/assets/js/65ecf6d5.603e2906.js new file mode 100644 index 0000000000..898374678f --- /dev/null +++ b/assets/js/65ecf6d5.603e2906.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64112],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(r),m=a,f=d["".concat(p,".").concat(m)]||d[m]||s[m]||o;return r?n.createElement(f,l(l({ref:t},c),{},{components:r})):n.createElement(f,l({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2023-08-04-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-08-04-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-sre.md",source:"@site/blog/2023-08-04-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.64,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-08-04-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-08-04-performance-and-tracing"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-08-01-node-cli-api"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-world",id:"cardano-world",level:3}],c={toc:u},d="wrapper";function s(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,a.kt)("p",null,"Some notable recent updates or improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Preprod and preview envionments were updated to 8.1.2."),(0,a.kt)("li",{parentName:"ul"},"Sanchonet and shelley-qa environments were updated to 8.2.0-pre."),(0,a.kt)("li",{parentName:"ul"},"Work on a new cardano performance repo which utilizes a lightweight Cloudformation/Rain to Terraform infra bootstrap and Nomad environment has begun.")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Deploy cardano-node 8.1.2, merge p2p modifications, script fixes and cleanup: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/pull/416"},"cardano-ops-pull-416"))),(0,a.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"New repo: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf"},"cardano-perf-repo"))),(0,a.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Deploy cardano-node 8.1.2, emurgo p2p config, optimize faucet resources: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/104"},"cardano-world-pull-104")),(0,a.kt)("li",{parentName:"ul"},"Resolve nomad segfaults via nix versioning and fixup dbSync metal job for iohkNix env update: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/105"},"cardano-world-pull-105")),(0,a.kt)("li",{parentName:"ul"},"Add nomad dbSync fix for iohkNix env update: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/106"},"cardano-world-pull-106"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/66345e96.bb21bc81.js b/assets/js/66345e96.bb21bc81.js new file mode 100644 index 0000000000..cdae61308a --- /dev/null +++ b/assets/js/66345e96.bb21bc81.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48983],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),u=a,g=s["".concat(p,".").concat(u)]||s[u]||d[u]||o;return r?n.createElement(g,l(l({ref:t},m),{},{components:r})):n.createElement(g,l({ref:t},m))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-06-23-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-06-23-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-23-goedel.md",source:"@site/blog/2023-06-23-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-06-23T00:00:00.000Z",formattedDate:"June 23, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.335,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-06-23-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-06-28-performance-and-tracing"},nextItem:{title:"Hydra Team Update",permalink:"/2023-06-23-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the teams presented two papers at ICE 2023."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Presented two papers at ICE 2023: ",(0,a.kt)("a",{parentName:"p",href:"https://www.discotec.org/2023/ice"},"https://www.discotec.org/2023/ice"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Analysing and implementing chain synchronization mini protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The team is hiring a performance engineering intern - ",(0,a.kt)("a",{parentName:"p",href:"https://apply.workable.com/io-global/j/BFEC5B0AFF/"},"https://apply.workable.com/io-global/j/BFEC5B0AFF/")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/66555aa8.40640613.js b/assets/js/66555aa8.40640613.js new file mode 100644 index 0000000000..9abbd4ef38 --- /dev/null +++ b/assets/js/66555aa8.40640613.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[34088],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,s(s({ref:t},c),{},{components:n})):r.createElement(f,s({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-06-26-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-06-26-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-26-consensus.md",source:"@site/blog/2024-06-26-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-06-26T00:00:00.000Z",formattedDate:"June 26, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.175,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-06-26-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-07-03-mithril"},nextItem:{title:"Mithril Team Update",permalink:"/2024-06-26-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Supported debugging activities related to bootstrap nodes."),(0,a.kt)("li",{parentName:"ul"},"Merged various improvements to the ",(0,a.kt)("inlineCode",{parentName:"li"},"db-X")," tools; in particular, ",(0,a.kt)("inlineCode",{parentName:"li"},"db-truncater")," (which is used regularly by community members on sanchonet) ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1143"},"got much faster"),".")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6728e788.c85c7f97.js b/assets/js/6728e788.c85c7f97.js new file mode 100644 index 0000000000..3330ef4b29 --- /dev/null +++ b/assets/js/6728e788.c85c7f97.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7374],{50562:e=>{e.exports=JSON.parse('{"permalink":"/tags/performance-tracing/page/4","page":4,"postsPerPage":5,"totalPages":7,"totalCount":34,"previousPage":"/tags/performance-tracing/page/3","nextPage":"/tags/performance-tracing/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/67ce4884.48858b96.js b/assets/js/67ce4884.48858b96.js new file mode 100644 index 0000000000..1035d3399f --- /dev/null +++ b/assets/js/67ce4884.48858b96.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[86830],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),c=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=c(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=c(r),u=n,h=m["".concat(p,".").concat(u)]||m[u]||d[u]||o;return r?a.createElement(h,l(l({ref:t},s),{},{components:r})):a.createElement(h,l({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[m]="string"==typeof e?e:n,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-05-12-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-05-12-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-12-goedel.md",source:"@site/blog/2023-05-12-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-05-12T00:00:00.000Z",formattedDate:"May 12, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.445,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-05-12-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-05-12-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-05-12-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],s={toc:c},m="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This sprint the team had two paper accepted for ICE 2023\n(",(0,n.kt)("a",{parentName:"p",href:"https://www.discotec.org/2023/ice"},"https://www.discotec.org/2023/ice"),"). The event will be held in Lisbon\non 19th June 2023. The papers will be published in EPTCS."),(0,n.kt)("h2",{id:"details"},"Details"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Application layer for Praos formalisation in review.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Participating in interactive peer review process for ICE 2023.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"The team is hiring a performance engineering intern - ",(0,n.kt)("a",{parentName:"p",href:"https://apply.workable.com/io-global/j/BFEC5B0AFF/"},"https://apply.workable.com/io-global/j/BFEC5B0AFF/")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/684ac28b.2ae9fc0f.js b/assets/js/684ac28b.2ae9fc0f.js new file mode 100644 index 0000000000..c8081805f0 --- /dev/null +++ b/assets/js/684ac28b.2ae9fc0f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[37355],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(r),m=n,h=c["".concat(p,".").concat(m)]||c[m]||d[m]||l;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=m;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:n,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-06-05-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-06-05-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-05-ledger.md",source:"@site/blog/2024-06-05-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-06-05T00:00:00.000Z",formattedDate:"June 5, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.125,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-06-05-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-06-10-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-06-05-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing and formal spec",id:"testing-and-formal-spec",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3}],s={toc:u},c="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This time around we continued on testing the Conway era and improving our conformance\ntests. Thanks to this extensive testing we found and fixed a few more bugs in the Conway\nimplementation. We fixed bugs related to DRep expiry and the choice of correct threshold for\nthe committee voting. One important feature that was implemented is ignoring the\nminimun committee size during the bootstrap phase, in order to avoid a deadlock situation in\ncase that enough committeee members were to resign. We've also improved the correctness of\nour CDDL specification and improved the safety by restricting some of the types of\nprotocol parameters."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4350"},"pull-4350")," - Add identity instance for ",(0,n.kt)("inlineCode",{parentName:"li"},"Inject")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4361"},"pull-4361")," - Fixed a bug in RATIFY"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4358"},"pull-4358")," - DRep expiry update with number of dormant epochs"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4365"},"pull-4365")," - Create pool stake distribution query for voting"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4376"},"pull-4376")," - Ignore ",(0,n.kt)("inlineCode",{parentName:"li"},"ppCommitteeMinSize")," during bootstrap"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4364"},"pull-4364")," - DRep state query and related tests"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4357"},"pull-4357")," - Specify numeric ranges explicitly in conway cddl files")),(0,n.kt)("h3",{id:"testing-and-formal-spec"},"Testing and formal spec"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4339"},"pull-4339")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": introduce tools for controlling test case distribution"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4348"},"pull-4348")," - Conformance: GOVCERT"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4213"},"pull-4213")," - Utxow Predicate failure tests"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4351"},"pull-4351")," - Enable retrying flaky tests in nightly CI"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4345"},"pull-4345")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Add ",(0,n.kt)("inlineCode",{parentName:"li"},"explanation :: [String] -> Pred fn -> Pred fn")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4362"},"pull-4362")," - Threshold translation in conformance testing"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4369"},"pull-4369")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Add ",(0,n.kt)("inlineCode",{parentName:"li"},"flip_")," to avoid having to add new native functions"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4377"},"pull-4377")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": propagate information backwards in the solver"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4389"},"pull-4389")," - Fixed issue #4340. Problem with futurePParams not adequate in Conway."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4378"},"pull-4378")," - Conformance: POOL"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4388"},"pull-4388")," - Improved the translation of ",(0,n.kt)("inlineCode",{parentName:"li"},"PParamUpdate")," in conformance"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4355"},"pull-4355")," - Fix order of arguments to verifyVrf")),(0,n.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4352"},"pull-4352")," - Remove dependency on deprecated ansi-wl-print package"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4344"},"pull-4344")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": identify and fix an issue with big bodies to ifElse"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4338"},"pull-4338")," - Add conformance testing for ",(0,n.kt)("inlineCode",{parentName:"li"},"ENACT")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4354"},"pull-4354")," - Added conformance test for ",(0,n.kt)("inlineCode",{parentName:"li"},"DELEG")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4367"},"pull-4367")," - Fixed ",(0,n.kt)("inlineCode",{parentName:"li"},"8.10")," not building"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4368"},"pull-4368")," - Ensure GitHub CI fails when tests are skipped due to a build failure"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4373"},"pull-4373")," - Add -rtsopts to all test suites")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/68585f67.613a7bf1.js b/assets/js/68585f67.613a7bf1.js new file mode 100644 index 0000000000..d7725a25cc --- /dev/null +++ b/assets/js/68585f67.613a7bf1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[14274],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(r),m=a,h=d["".concat(p,".").concat(m)]||d[m]||s[m]||o;return r?n.createElement(h,l(l({ref:t},c),{},{components:r})):n.createElement(h,l({ref:t},c))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2023-07-21-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-07-21-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-21-sre.md",source:"@site/blog/2023-07-21-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-07-21T00:00:00.000Z",formattedDate:"July 21, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.685,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-07-21-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-07-21-ledger"},nextItem:{title:"Goedel Team Update",permalink:"/2023-07-20-goedel"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3}],c={toc:u},d="wrapper";function s(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,a.kt)("p",null,"Some notable recent improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Re-spin sanchonet for testing a new node version followed by fork to Conway"),(0,a.kt)("li",{parentName:"ul"},"Deploying a sanchonet compatible faucet to sanchonet"),(0,a.kt)("li",{parentName:"ul"},"Migrate shelley qa legacy environment to cardano-world")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Bump iohk-nix for sanchonet and shelley qa environment updates: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5406"},"cardano-node-pull-5406"))),(0,a.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Mainnet relays are 50% migrated to p2p topology and 1 relay per region dedicated for ledger peers: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/31cce1a...496f085"},"cardano-ops-compare"))),(0,a.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Cardano-node p2p all local roots entrypoint option was added: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/102"},"cardano-world-pull-102")),(0,a.kt)("li",{parentName:"ul"},"Migrate shelley qa legacy environment to cardano-world: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/103"},"cardano-world-pull-103")),(0,a.kt)("li",{parentName:"ul"},"Create a sanchonet compatible faucet: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/91"},"cardano-world-pull-91"))),(0,a.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Migrate shelley qa legacy environment to cardano-world: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/549"},"iohk-nix-pull-549")),(0,a.kt)("li",{parentName:"ul"},"Drop legacy byron environment parameters: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/550"},"iohk-nix-pull-550"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6875c492.16502a56.js b/assets/js/6875c492.16502a56.js new file mode 100644 index 0000000000..d12db18662 --- /dev/null +++ b/assets/js/6875c492.16502a56.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48610],{99703:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(67294),l=a(95999),r=a(32244);function s(e){const{metadata:t}=e,{previousPage:a,nextPage:s}=t;return n.createElement("nav",{className:"pagination-nav","aria-label":(0,l.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},a&&n.createElement(r.Z,{permalink:a,title:n.createElement(l.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")}),s&&n.createElement(r.Z,{permalink:s,title:n.createElement(l.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries"),isNext:!0}))}},79985:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(67294),l=a(9460),r=a(30390);function s(e){let{items:t,component:a=r.Z}=e;return n.createElement(n.Fragment,null,t.map((e=>{let{content:t}=e;return n.createElement(l.n,{key:t.metadata.permalink,content:t},n.createElement(a,null,n.createElement(t,null)))})))}},41714:(e,t,a)=>{a.r(t),a.d(t,{default:()=>E});var n=a(67294),l=a(86010),r=a(95999),s=a(88824),o=a(1944),i=a(35281),g=a(39960),c=a(39058),m=a(99703),p=a(90197),u=a(79985);function d(e){const t=function(){const{selectMessage:e}=(0,s.c)();return t=>e(t,(0,r.I)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}();return(0,r.I)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function h(e){let{tag:t}=e;const a=d(t);return n.createElement(n.Fragment,null,n.createElement(o.d,{title:a}),n.createElement(p.Z,{tag:"blog_tags_posts"}))}function b(e){let{tag:t,items:a,sidebar:l,listMetadata:s}=e;const o=d(t);return n.createElement(c.Z,{sidebar:l},n.createElement("header",{className:"margin-bottom--xl"},n.createElement("h1",null,o),n.createElement(g.Z,{href:t.allTagsPath},n.createElement(r.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page"},"View All Tags"))),n.createElement(u.Z,{items:a}),n.createElement(m.Z,{metadata:s}))}function E(e){return n.createElement(o.FG,{className:(0,l.Z)(i.k.wrapper.blogPages,i.k.page.blogTagPostListPage)},n.createElement(h,e),n.createElement(b,e))}}}]); \ No newline at end of file diff --git a/assets/js/687d3bf5.d87da8aa.js b/assets/js/687d3bf5.d87da8aa.js new file mode 100644 index 0000000000..a6f9a31a4b --- /dev/null +++ b/assets/js/687d3bf5.d87da8aa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94302],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var p=a.createContext({}),s=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=s(n),m=r,h=d["".concat(p,".").concat(m)]||d[m]||c[m]||o;return n?a.createElement(h,l(l({ref:t},u),{},{components:n})):a.createElement(h,l({ref:t},u))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));const o={title:"SRE Team Update",slug:"2024-04-12-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-04-12-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-12-sre.md",source:"@site/blog/2024-04-12-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-04-12T00:00:00.000Z",formattedDate:"April 12, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.435,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-04-12-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-04-12-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2024-04-10-ledger"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3}],u={toc:s},d="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Private chain for Voltaire team was respun for cardano-node 8.10.0-pre\npre-release and re-hard forked into Conway era.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sanchonet was respun for cardano-node 8.10.0-pre pre-release and re-hard\nforked into Conway era.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node 8.10.0-pre was also deployed to one-third of IOGs preprod\nenvironment nodes and two-thirds of IOGs preview environment nodes."))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-node|cli-ng to 8.10.0-pre, dbsync-ng to sancho-4.1.0; bumps\nnixpkgs (23.11) and nixpkgs-unstable; improves, adds new and fixes a number\nof just recipes; allows repo custom recipes to be kept as a separate import\nfor easy justfile maintenance; refactors ip module checking into its own\nnixosModule and adds an extra abort option for safety. Much more detail is\navailable in the PR description:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/36"},"cardano-parts-pull-36"))),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps cardano-parts for a number of recipe additions, improvements, fixes.\nFixes blockperf dnsmasq looksups and adjusts colmena topology code to account\nfor intra-cluster localRoots now defaulting to trustable true and implements\nall updates in cardano-parts PR#36. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/11"},"cardano-mainnet-pull-11"))),(0,r.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Add a new perf-ssd machine class and deployment for ssd related performance\ntesting and benchmarking. Add new just recipes and cluster resource tagging.\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/19a7ddd...a6a9b39"},"cardano-perf-compare"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps cardano-parts for a number of recipe additions, improvements, fixes,\nand node 8.10.0-pre. Respins private chain and sanchonet for node 8.10.0-pre\nwith corresponding book updates and implements all updates in cardano-parts\nPR#36. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/20"},"cardano-playground-pull-20"))),(0,r.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"WIP: Prepares block producer configurations to accomodate upcoming peerSharing default change:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/575"},"iohk-nix-pull-575"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Provides iohk-nix updates for node 8.10:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/576"},"iohk-nix-pull-576")))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/689c81d9.df94b939.js b/assets/js/689c81d9.df94b939.js new file mode 100644 index 0000000000..44b3ee5616 --- /dev/null +++ b/assets/js/689c81d9.df94b939.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[51363],{77992:e=>{e.exports=JSON.parse('{"permalink":"/page/31","page":31,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/30","nextPage":"/page/32","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/68b2c30a.03309998.js b/assets/js/68b2c30a.03309998.js new file mode 100644 index 0000000000..9282f792bb --- /dev/null +++ b/assets/js/68b2c30a.03309998.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94432],{6879:a=>{a.exports=JSON.parse('{"label":"consensus","permalink":"/quarterly/tags/consensus","allTagsPath":"/quarterly/tags","count":5}')}}]); \ No newline at end of file diff --git a/assets/js/68b9da9c.5d2405fe.js b/assets/js/68b9da9c.5d2405fe.js new file mode 100644 index 0000000000..93629d53a9 --- /dev/null +++ b/assets/js/68b9da9c.5d2405fe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97348],{17492:e=>{e.exports=JSON.parse('{"permalink":"/quarterly/tags/open-source","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/68fb9d2f.619b68f4.js b/assets/js/68fb9d2f.619b68f4.js new file mode 100644 index 0000000000..f7438bad08 --- /dev/null +++ b/assets/js/68fb9d2f.619b68f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80048],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=p(a),m=n,h=c["".concat(u,".").concat(m)]||c[m]||s[m]||o;return a?r.createElement(h,l(l({ref:t},d),{},{components:a})):r.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:n,l[1]=i;for(var p=2;p{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Ledger Team Update",slug:"2022-09-16-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2022-09-16-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-16-ledger.md",source:"@site/blog/2022-09-16-ledger.md",title:"Ledger Team Update",description:"Ledger Update",date:"2022-09-16T00:00:00.000Z",formattedDate:"September 16, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.625,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-09-16-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"DB Sync Team Update",permalink:"/2022-09-19-db-sync"},nextItem:{title:"Ledger Team Update",permalink:"/2022-09-01-ledger"}},u={authorsImageUrls:[void 0]},p=[{value:"Ledger Update",id:"ledger-update",level:2}],d={toc:p},c="wrapper";function s(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"ledger-update"},"Ledger Update"),(0,n.kt)("p",null,"We have been focused nearly entirely on addressing technical debt."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We introduced more consistent naming across eras, this time for the auxiliary data.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3032"},"3032"),"."),(0,n.kt)("li",{parentName:"ul"},"We made clear how the ",(0,n.kt)("inlineCode",{parentName:"li"},"consumed")," functions differs between eras (which was a previous source of\nconfusion), and added some related support to the fledgling ledger API.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3016"},"3016"),"."),(0,n.kt)("li",{parentName:"ul"},"We added clarity and organizational consistency to the main ledger era type synonyms.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3017"},"3017"),"."),(0,n.kt)("li",{parentName:"ul"},"We removed code duplication related to the input data hashes.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3018"},"3018"),"."),(0,n.kt)("li",{parentName:"ul"},"We split up a large module into smaller components. The large module was actually causing our\nCI to time out.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3020"},"3020"),"."),(0,n.kt)("li",{parentName:"ul"},"We cleaned up stale information in our cabal files, and upgraded cabal 3.8.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3023"},"3023"),",\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3031"},"3031"),",\nand ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3028"},"3028"),"."),(0,n.kt)("li",{parentName:"ul"},"We made consistent, standalone ",(0,n.kt)("inlineCode",{parentName:"li"},"TxOut")," (transaction output) modules for every era.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3024"},"3024"),"."),(0,n.kt)("li",{parentName:"ul"},"We brought consistency to a maddening inconsistent use of type variables indicating the specific\nchoice of cryptographic primitives. In particular, all uses of ",(0,n.kt)("inlineCode",{parentName:"li"},"crypto")," have been renamed to ",(0,n.kt)("inlineCode",{parentName:"li"},"c"),".\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3027"},"3027"),"."),(0,n.kt)("li",{parentName:"ul"},"We did a clean up of the types in the Alonzo era. In particular, we switched to more parametric\ntypes that will compose better in the future and which simplifies the constraints.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3029"},"3029"),"."),(0,n.kt)("li",{parentName:"ul"},"We consolidated some existing fragmented logic regarding how we gather the scripts needed for a\ngiven transaction. This is a much needed cleanup to prevent future mistakes.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3019"},"3019"),"."),(0,n.kt)("li",{parentName:"ul"},"We fixed a problem with our generators that was causing a fair number of our property tests to\nfail in CI.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3039"},"3039"),"."),(0,n.kt)("li",{parentName:"ul"},"We have started the work to update Plutus. This will bring support for SECP in the next major\nprotocol version, and also address a\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/2902"},"problem"),"\nthat we current have evolving the cost models.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3030"},"3030"),"."),(0,n.kt)("li",{parentName:"ul"},"We addressed a small issue that came up when integrating the conway era downstream, namely\nthe lack of some serialization instances.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3022"},"3022"),".")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/691b1ed7.ddce9504.js b/assets/js/691b1ed7.ddce9504.js new file mode 100644 index 0000000000..36a578935e --- /dev/null +++ b/assets/js/691b1ed7.ddce9504.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4944],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},c=o.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),h=p(n),c=a,m=h["".concat(l,".").concat(c)]||h[c]||d[c]||r;return n?o.createElement(m,s(s({ref:t},u),{},{components:n})):o.createElement(m,s({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,s=new Array(r);s[0]=c;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[h]="string"==typeof e?e:a,s[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>p});var o=n(87462),a=(n(67294),n(3905));const r={title:"Consensus Team Update",slug:"2023-01-25-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-01-25-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-25-consensus.md",source:"@site/blog/2023-01-25-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-01-25T00:00:00.000Z",formattedDate:"January 25, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.27,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-01-25-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-01-26-mithril"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-01-25-node-cli-api"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD Prototype",id:"utxo-hd-prototype",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Support",id:"support",level:3}],u={toc:p},h="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(h,(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the past two weeks, the consensus team finished the testing activities\naround the UTxO-HD prototype. This is a very important milestone which will\nenable us to run system-level tests and benchmarks, as well as start refactoring\nand cleaning the prototype. Regarding our Genesis workstream, we elaborated a\nroadmap that gives an indication of the remaining work. We also continued our\nwork on benchmarking chain-sync-jumping. We also continued working on improving\nthe way we handle blocks from the future, and advancing the integration of the\nnew VRF and KES crypto."),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD Prototype"),(0,a.kt)("p",null,"As the prototype is nearing its completion, it was important to have enough\nconfidence that we will be able to move additional parts of the ledger state\nonto disk. We worked together with the Ledger team to ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4296"},"elaborate a\nsketch")," on how the UTxO-HD design would accommodate the migration of\nadditional data from memory to disk. This gave us enough confidence that the\ncurrent architecture will be extensible in the future."),(0,a.kt)("p",null,"On the testing front, we ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4274"},"added")," property-based tests for the UTxO-HD\ntype classes. "),(0,a.kt)("p",null,"We also ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4289"},"enabled disabled components"),", and addressed several\ntechnical debt issues:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Implement ",(0,a.kt)("inlineCode",{parentName:"li"},"splitSized")," anti-diff split (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4269"},"#4269"),"), and integrate it\ninto consensus (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4273"},"#4273"),")."),(0,a.kt)("li",{parentName:"ul"},"Renaming of ",(0,a.kt)("inlineCode",{parentName:"li"},"peekVal")," to ",(0,a.kt)("inlineCode",{parentName:"li"},"peekMDBVal")," (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/lmdb-simple/pull/7"},"#7"),").")),(0,a.kt)("p",null,"We ran ad-hoc benchmarks for syncing a chain from scratch and replaying. We\nfound a race condition in the LMDB backing store, which ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4283"},"we fixed"),".\nAfter the fix we were able to successfully run these benchmarks. The results\nwere published by ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4295"},"this pull request"),"."),(0,a.kt)("p",null,"We used our ",(0,a.kt)("inlineCode",{parentName:"p"},"db-analyser")," tool to benchmark the cost of reading keys and\nflushing values to disk. The following plot shows the duration of these disk\noperation in relation to the main ledger operations, where we can see that the\ncost of the former are comparatively low. The spike at the beginning of the\ngraph is when, at the start of the Shelley era, the ",(0,a.kt)("em",{parentName:"p"},"entire")," UTxO set is flushed\nto disk."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"UTxO-HD read and flush benchmarks",src:n(90595).Z,width:"1600",height:"800"})),(0,a.kt)("p",null,"After months of hard work adding tests for the prototype, we are ready to run\nend-to-end tests on the node, and system level benchmarks. This signals a very\nimportant milestone for the UTxO-HD workstream \ud83c\udf89."),(0,a.kt)("h3",{id:"genesis"},"Genesis"),(0,a.kt)("p",null,"We elaborated a ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/blob/a626c84f6df585dd27d735eb7eec73904a1f570e/ouroboros-consensus/docs/2023-Jan-Genesis-roadmap.md"},"high-level decomposition")," of the remaining\nwork for Genesis. We also continued benchmarking the chain-sync-jumping\nhappy-path."),(0,a.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,a.kt)("p",null,"We continued working on improving the way we handle blocks from the future."),(0,a.kt)("h3",{id:"support"},"Support"),(0,a.kt)("p",null,"We completed the mapping of ",(0,a.kt)("inlineCode",{parentName:"p"},"Crypto")," to ",(0,a.kt)("inlineCode",{parentName:"p"},"HeaderCrypto")," and body ",(0,a.kt)("inlineCode",{parentName:"p"},"Crypto"),".\n",(0,a.kt)("inlineCode",{parentName:"p"},"HeaderCrypto")," is moved to ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-protocol-tpraos"),". We created a draft ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3262"},"pull\nrequest")," to facilitate compiling consensus."))}d.isMDXComponent=!0},90595:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/2023-01-25-consensus-utxo-hd-read-and-flush-benchmarks-6b129a1acaa4bb48443ee81add51fd39.png"}}]); \ No newline at end of file diff --git a/assets/js/692497e1.4115e573.js b/assets/js/692497e1.4115e573.js new file mode 100644 index 0000000000..8980239903 --- /dev/null +++ b/assets/js/692497e1.4115e573.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92214],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(n),m=a,h=p["".concat(l,".").concat(m)]||p[m]||d[m]||o;return n?r.createElement(h,i(i({ref:t},c),{},{components:n})):r.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:a,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-08-09-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-08-09-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-09-consensus.md",source:"@site/blog/2023-08-09-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-08-09T00:00:00.000Z",formattedDate:"August 9, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.46,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-08-09-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-08-10-mithril"},nextItem:{title:"Crypto Team Update",permalink:"/2023-08-04-crypto"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"UTxO-HD",id:"utxo-hd",level:2},{value:"Genesis",id:"genesis",level:2},{value:"Fostering collaboration",id:"fostering-collaboration",level:2},{value:"Support",id:"support",level:2}],c={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This week the Consensus team worked on integrating the latest node release into the UTxO HD branch. Our ad-hoc benchmarks in which we sync a node from scratch showed that the LMDB backend uses around 8GB of memory. We also released new versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"fs-sim")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"fs-api"),", and released ",(0,a.kt)("inlineCode",{parentName:"p"},"strict-checked-vars"),"."),(0,a.kt)("h2",{id:"utxo-hd"},"UTxO-HD"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Rebased UTxO-HD on top of node 8.2 (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/256"},"issue"),")"),(0,a.kt)("li",{parentName:"ul"},"Address new ",(0,a.kt)("inlineCode",{parentName:"li"},"Maybe")," translations for UTxOs in Conway 1.6. (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/261"},"PR"),")."),(0,a.kt)("li",{parentName:"ul"},"Performed ad-hoc benchmarking syncs with both implementations. The LMDB backend uses around 8GB of memory."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/compare/96e92351ad35cfce1b0c2c47c4ed05792bf81fad..90d4c93af0846c9b027d530c042180c51aeee4fd"},"Fixed")," an infinite loop on the mempool tracing code that was preventing the node from shutting down gracefully."),(0,a.kt)("li",{parentName:"ul"},"Fixed an infinite loop on the ledger state query for traversing queries that prevented the node from running ",(0,a.kt)("inlineCode",{parentName:"li"},"QueryUTxOByAddress")," (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/273"},"PR"),")."),(0,a.kt)("li",{parentName:"ul"},"Measured the speed of ",(0,a.kt)("inlineCode",{parentName:"li"},"QueryUTxOByAddress")," under different ",(0,a.kt)("inlineCode",{parentName:"li"},"queryBatchSize")," values. There is a significant performance degradation for these queries when using the UTxO-HD version. Using the mainnet UTxO set at slot 90 million, querying an address took 40 seconds using the in-memory backend and 90 seconds using the LMDB backend, whereas the baseline took 7 seconds. We need to investigate if we can improve this situation or whether an external service that runs alongside the node is a better solution."),(0,a.kt)("li",{parentName:"ul"},"Refactored and implemented ledgertable-related classes for the general ",(0,a.kt)("inlineCode",{parentName:"li"},"HardforkBlock"),".")),(0,a.kt)("h2",{id:"genesis"},"Genesis"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/nfrisby"},"Frisby")," and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/amesgen"},"Esgen")," continue to engage with the Researchers on grinding against the Genesis design.")),(0,a.kt)("h2",{id:"fostering-collaboration"},"Fostering collaboration"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Drafted a document explaining versioning of local state queries ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/273"},"#273"),".")),(0,a.kt)("h2",{id:"support"},"Support"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/nfrisby"},"Frisby")," is the release engineer this cycle."),(0,a.kt)("li",{parentName:"ul"},"Successfully created work-in-progress ",(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-api")," commits that integrate the 2023 Aug 7 tip of ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-ledger"),". This will require a release of ",(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus"),", which hasn't happened yet.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6927f7c4.42687e61.js b/assets/js/6927f7c4.42687e61.js new file mode 100644 index 0000000000..704d8205c4 --- /dev/null +++ b/assets/js/6927f7c4.42687e61.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[60019],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=i.createContext({}),s=function(e){var t=i.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=s(e.components);return i.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(r),c=n,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-10-25-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-10-25-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-25-mithril.md",source:"@site/blog/2023-10-25-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-10-25T00:00:00.000Z",formattedDate:"October 25, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.125,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-10-25-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-10-27-sre"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-10-24-node-cli-api"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team released a new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2342.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2342.0")),". This release includes support for SPO tickers displayed in the Mithril explorer and the ability to produce slim Docker images for Mithril nodes."),(0,n.kt)("p",null,"They also kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, progressed with the adaptation of the Mithril client as a library, and worked on the deterministic computation of the UTXO set from the immutable files. "),(0,n.kt)("p",null,"Finally, they fixed the bottleneck of the key registration in the aggregator, investigated some unreachability on the ",(0,n.kt)("inlineCode",{parentName:"p"},"release-mainnet")," aggregator, and enhanced the Mithril explorer UI."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P Networking - Proof of Concept")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1300"},"#1300")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Make ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," crate a library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1141"},"#1141")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Compute deterministic Cardano UTxO set PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1283"},"#1283")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"ProtocolKeyRegistration")," creates performance bottleneck in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1187"},"#1187")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Fix ",(0,n.kt)("inlineCode",{parentName:"strong"},"devnet")," Mithril Docker images")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1272"},"#1272")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"release-mainnet")," aggregator is unreachable")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1310"},"#1310")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Build ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-common")," and ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," in WASM PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1284"},"#1284")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Display a summary of signers before the full list in explorer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1133"},"#1133")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Add certificates list in explorer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1184"},"#1184")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"CoreVerifier")," setup does not compute ",(0,n.kt)("inlineCode",{parentName:"strong"},"total_stake")," correctly")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1306"},"#1306"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/69c7a5a7.e51235de.js b/assets/js/69c7a5a7.e51235de.js new file mode 100644 index 0000000000..309b6708e7 --- /dev/null +++ b/assets/js/69c7a5a7.e51235de.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[56950],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},m=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),u=s(n),p=a,h=u["".concat(c,".").concat(p)]||u[p]||d[p]||i;return n?r.createElement(h,o(o({ref:t},m),{},{components:n})):r.createElement(h,o({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-09-22-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-22-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-22-performance-and-tracing.md",source:"@site/blog/2023-09-22-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-09-22T00:00:00.000Z",formattedDate:"September 22, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.445,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-09-22-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-09-22-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-09-20-consensus"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3},{value:"New team member",id:"new-team-member",level:3}],m={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've performed both low-level network and high-level variance analysis of our benchmarking clusters."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: Our reporting pipeline was adjusted to classify various workloads easily reducing rework time."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Work on machine-readable tracing of tracer configuration is ongoing."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: We've been able to eliminate several possible confounders on the nomad cluster."),(0,a.kt)("li",{parentName:"ul"},"Team: We're currently onboarding a new team member: Welcome to Cardano Performance & Tracing, Baldur Bl\xf6ndal!")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"As part of the effort to bring the Nomad backend into production use, we've been equipping both that and the existing benchmarking\nbackend with means to measure and document network latency for each run. Furthermore we've implemented means to\ncapture TCP packets for a limited time window during a benchmarking run - which will allow us to spot differences\nin the behaviour of the underlying networking stack at OS level. "),(0,a.kt)("p",null,"Additionally, we're running variance analysis in parallel on both backends to ascertain confidence in metrics originating from either. We've concluded that baseline profile runs aren't directly comparable between the two, so we decided\nto compare standard deviations instead to validate the measurements from nomad."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"Reporting on benchmarks does require human time and effort to rework the final document. Improvements to the reporting pipeline\nhave been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". They reduce the time necessary to do so by various changes to the template and the workload classification logic in analysis. "),(0,a.kt)("p",null,"Beyond that, we've looked into issues where services would quit with an unjustified exit failure upon shutdown - under rare circumstances. By reworking shutdown logic for ",(0,a.kt)("inlineCode",{parentName:"p"},"trace-dispatcher")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"tx-generator")," we were able to address those issues."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"After various steps in constructing a configuration upon node startup, it is vital to document\nwhich runtime configuration the node arrived eventually. We're working on providing a machine-readable JSON/YAML\ntrace message for that purpose. "),(0,a.kt)("p",null,"This will facilitate hot-reloading a node's tracer configuration in the future: users will be able to take such a trace message, apply their intended change and hot-reload it immediately into the node. "),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"As with the existing benchmarking cluster, nomad is currently under scrutiny with regard to the reliability of metrics it\nproduces, as well as the behaviour of its OS-level network stack. For instance, differing kernel versions can have an\nimpact on our measurements, as we'd be basically using two different instruments to take them. "),(0,a.kt)("p",null,"Along the way we've already been successful in eliminating some possible confounders that had been introduced by the nomad service\nor the slightly different system architecture of the new cluster."),(0,a.kt)("h3",{id:"new-team-member"},"New team member"),(0,a.kt)("p",null,"Baldur Bl\xf6ndal is an extremely capable and experienced Haskell developer. Also, he's an excellent fit for our existing team.\nSo I'm very pleased to welcome him onboard with IOG, and with Performance & Tracing. He will be working on ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),", the component receiving, processing and making available node traces and metrics."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/69d44fe6.a437345d.js b/assets/js/69d44fe6.a437345d.js new file mode 100644 index 0000000000..31a0ce965f --- /dev/null +++ b/assets/js/69d44fe6.a437345d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[62748],{71090:e=>{e.exports=JSON.parse('{"permalink":"/page/22","page":22,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/21","nextPage":"/page/23","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/6a75c57a.a0e37b80.js b/assets/js/6a75c57a.a0e37b80.js new file mode 100644 index 0000000000..138cf5378f --- /dev/null +++ b/assets/js/6a75c57a.a0e37b80.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[88592],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=s(n),p=a,h=d["".concat(l,".").concat(p)]||d[p]||m[p]||o;return n?r.createElement(h,i(i({ref:t},u),{},{components:n})):r.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & tracing update",slug:"2023-08-04-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,c={permalink:"/2023-08-04-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-performance-and-tracing.md",source:"@site/blog/2023-08-04-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.76,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-08-04-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-08-04-network"},nextItem:{title:"SRE Team Update",permalink:"/2023-08-04-sre"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],u={toc:s},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We're adjusting the benchmarking cluster to handle runs for node version ",(0,a.kt)("inlineCode",{parentName:"li"},"8.2.0"),"."),(0,a.kt)("li",{parentName:"ul"},"Tracing: We've finished optimization of the new tracing system and added extra robustness with regard to namespacing."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: We've been working on making all benchmarking code compliant with the latest GHC9.6."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: The new backend has seen adjustments due to a change of underlying hardware. Additionally, we've successfully performed various benchmarking runs on it.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"8.2.0")," version of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," required adjustment of some of the sanity checks that are part of our benchmarking\ncluster automation. We've pinpointed the necessary changes and are currently setting up the cluster for the new node version."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The optimization efforts for the new tracing system have been completed and have significantly reduced the resource footprint\nwhen using it as default for a running node. "),(0,a.kt)("p",null,"A linchpin of the new system is the organization of traces into a namespace hierarchy. This affects configuration, self-documentation as well as rendering of desired trace messages. The new system is now equipped to detect any\ninconsistency in the whole set of tracers, defined across all components, even if they are never turned on in a running node.\nThis feature adds another layer of robustness to the whole system."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"A potential switch to GHC9.6 (or higher) required some work on our code bases to make it compliant with recent compiler\nversions. We've future-proofed our benchmarking code."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"The hardware cluster that our nomad backend was accessing has been changed, and we were able to adjust our backend\naccordingly without touching its higher level abstractions and functionality. Moreover, with the new hardware and cluster setup, certain tasks such as retrieving run artifacts or healthcheck monitoring have become more performant. "),(0,a.kt)("p",null,"The validation phase is ongoing. We were able to perform successful runs and analyses for various ",(0,a.kt)("inlineCode",{parentName:"p"},"8.x")," node versions, including ",(0,a.kt)("inlineCode",{parentName:"p"},"8.2.0-pre"),". With parallel runs on the current cluster, we hope to measure the same effects we've observed with the\nnomad backend - which will be a big step towards production use."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6b16e156.386c5813.js b/assets/js/6b16e156.386c5813.js new file mode 100644 index 0000000000..7c56c7ac9e --- /dev/null +++ b/assets/js/6b16e156.386c5813.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52650],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),c=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,h=s["".concat(u,".").concat(d)]||s[d]||m[d]||o;return r?n.createElement(h,l(l({ref:t},p),{},{components:r})):n.createElement(h,l({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"DB-sync Team Update",slug:"2023-05-01-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-05-01-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-01-db-sync.md",source:"@site/blog/2023-05-01-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-05-01T00:00:00.000Z",formattedDate:"May 1, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.515,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-05-01-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-05-03-performance-and-tracing"},nextItem:{title:"Crypto Team Update",permalink:"/2023-04-28-crypto"}},u={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],p={toc:c},s="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Prepared a schema change which is expected to speed up queries and help clients\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1389"},"#1389"),"."),(0,a.kt)("li",{parentName:"ul"},"Ran a big number of benchmarks on the above to evaluate if this change is reasonable."),(0,a.kt)("li",{parentName:"ul"},"Performance optimization related to rewards\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1382"},"#1382")),(0,a.kt)("li",{parentName:"ul"},"Using the cache in more places to reduce recourses usage\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1380"},"#1380")),(0,a.kt)("li",{parentName:"ul"},"Evaluated risks related to UTXO-HD integration"),(0,a.kt)("li",{parentName:"ul"},"Worked on a feauture request to split the ",(0,a.kt)("inlineCode",{parentName:"li"},"tx_out")," to an address table\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1396"},"#1396")),(0,a.kt)("li",{parentName:"ul"},"Worked on another feauture request to prune the consumed entries from the ",(0,a.kt)("inlineCode",{parentName:"li"},"tx_out")," table\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1398"},"#1398")),(0,a.kt)("li",{parentName:"ul"},"Prepared for CIP-1694 integration")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6b51f988.9cce0847.js b/assets/js/6b51f988.9cce0847.js new file mode 100644 index 0000000000..e3350fa831 --- /dev/null +++ b/assets/js/6b51f988.9cce0847.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24384],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(n),m=r,d=p["".concat(l,".").concat(m)]||p[m]||h[m]||o;return n?a.createElement(d,i(i({ref:t},c),{},{components:n})):a.createElement(d,i({ref:t},c))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:r,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Q2 2023 Update",slug:"2023-Q2-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/quarterly/2023-Q2-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q2-consensus.md",source:"@site/quarterly/2023-Q2-consensus.md",title:"Consensus Q2 2023 Update",description:"2023-04 -- 2023-06",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"consensus",permalink:"/quarterly/tags/consensus"}],readingTime:4.47,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Q2 2023 Update",slug:"2023-Q2-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},nextItem:{title:"Network Q2 2023 Update",permalink:"/quarterly/2023-Q2-network"}},l={authorsImageUrls:[void 0]},u=[{value:"2023-04 -- 2023-06",id:"2023-04----2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"UTxO HD",id:"utxo-hd",level:4},{value:"Genesis",id:"genesis",level:4},{value:"Support",id:"support",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"UTxO HD",id:"utxo-hd-1",level:4},{value:"Genesis",id:"genesis-1",level:4}],c={toc:u},p="wrapper";function h(e){let{components:t,...o}=e;return(0,r.kt)(p,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-04----2023-06"},"2023-04 -- 2023-06"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We finished a major prototype refactoring, which includes:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"A better and finer grained DB lock mechanism."),(0,r.kt)("li",{parentName:"ul"},"Elimination of race conditions."),(0,r.kt)("li",{parentName:"ul"},"Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance."),(0,r.kt)("li",{parentName:"ul"},"Architectural simplifications and performance improvements."))),(0,r.kt)("li",{parentName:"ul"},"We implemented a new package to support db-sync integration with UTxO-HD."),(0,r.kt)("li",{parentName:"ul"},"We ran another set of ad-hoc benchmarks:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We uncovered a performance regression on the Network component when using ",(0,r.kt)("inlineCode",{parentName:"li"},"GHC-9.2/9.4"),"."),(0,r.kt)("li",{parentName:"ul"},"The synchronization and replay speed are as expected."),(0,r.kt)("li",{parentName:"ul"},"However, we uncovered memory consumption issues (see figure below).",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The in-memory backend is consuming more memory than the baseline."),(0,r.kt)("li",{parentName:"ul"},"The LMDB backend shows an unexpected memory usage peak."),(0,r.kt)("li",{parentName:"ul"},"Investigation on these issues is ongoing."))))),(0,r.kt)("li",{parentName:"ul"},"We integrated the latest changes in ",(0,r.kt)("inlineCode",{parentName:"li"},"main")," branch.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This required a re-design of the mempool to include the mempool fairness\nimprovement.")))),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(49718).Z,width:"2500",height:"1700"})),(0,r.kt)("h4",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This particular question was not anticipated when the Q2 PI was planned."),(0,r.kt)("li",{parentName:"ul"},"As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized."),(0,r.kt)("li",{parentName:"ul"},"That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package."))),(0,r.kt)("li",{parentName:"ul"},"The IOG Researchers' feedback on the design was very valuable. It had two primary effects."),(0,r.kt)("li",{parentName:"ul"},'Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated."),(0,r.kt)("li",{parentName:"ul"},"The additional design complexity is relatively small."))),(0,r.kt)("li",{parentName:"ul"},"Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era."),(0,r.kt)("li",{parentName:"ul"},"All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras."),(0,r.kt)("li",{parentName:"ul"},"Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later."),(0,r.kt)("li",{parentName:"ul"},"The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks."))),(0,r.kt)("li",{parentName:"ul"},"Relevant questions that the IOG Researchers are still assessing.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"These do not block the Genesis implementation, but do affect the ultimate values of specific parameters."),(0,r.kt)("li",{parentName:"ul"},"Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?"),(0,r.kt)("li",{parentName:"ul"},"Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?")))),(0,r.kt)("h4",{id:"support"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We performed an analysis on number of file descriptors used by Consensus, this\ninformation can be used by the node operators to check if the number of file\ndescriptors they want to support are enough, thus improving the user (eg node\noperator) experience."),(0,r.kt)("li",{parentName:"ul"},"We implemented a mempool fairness improvement, by which transactions are\nguaranteed to be processed irrespective of their size.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug in followers logic, which was discovered by our ",(0,r.kt)("inlineCode",{parentName:"li"},"QuickCheck"),"\nproperty tests."),(0,r.kt)("li",{parentName:"ul"},"We created an ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/68"},"immutable DB\nserver"),". This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results."),(0,r.kt)("li",{parentName:"ul"},"We created a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/70"},(0,r.kt)("inlineCode",{parentName:"a"},"db-truncater"))," tool, which can be used in disaster recovery and benchmarking scenarios."),(0,r.kt)("li",{parentName:"ul"},"We created a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/161"},"benchmarks comparison tool")," that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance ",(0,r.kt)("em",{parentName:"li"},"improvements")," introduced by the Ledger team in version ",(0,r.kt)("inlineCode",{parentName:"li"},"0.6.0.0")," of Consensus wrt version ",(0,r.kt)("inlineCode",{parentName:"li"},"0.5.0.0"),".")),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(23425).Z,width:"1840",height:"1372"})),(0,r.kt)("h4",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We released ",(0,r.kt)("inlineCode",{parentName:"li"},"fs-sim")," as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project."),(0,r.kt)("li",{parentName:"ul"},"We migrated the consensus code to a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus"},"new repository"),", splitting\nit from the ",(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-network")," repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases)."),(0,r.kt)("li",{parentName:"ul"},"We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users)."),(0,r.kt)("li",{parentName:"ul"},"We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.")),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"utxo-hd-1"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/28"},"get UTxO-HD ready for handover"),".")),(0,r.kt)("h4",{id:"genesis-1"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.")))}h.isMDXComponent=!0},23425:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2023-Q2-beacon-graph-ded65e814bfe6d927faa1c5c66bbbfad.png"},49718:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks-74f9d76c2602f09652f584cc4d6a0962.png"}}]); \ No newline at end of file diff --git a/assets/js/6bae8700.22455ef6.js b/assets/js/6bae8700.22455ef6.js new file mode 100644 index 0000000000..e59b07758c --- /dev/null +++ b/assets/js/6bae8700.22455ef6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[35703],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),s=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(a),h=n,m=p["".concat(c,".").concat(h)]||p[h]||u[h]||o;return a?r.createElement(m,i(i({ref:t},d),{},{components:a})):r.createElement(m,i({ref:t},d))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=h;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-08-11-hydra",authors:["ffakenz","ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-08-11-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-11-hydra.md",source:"@site/blog/2023-08-11-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-08-11T00:00:00.000Z",formattedDate:"August 11, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.8,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"},{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-08-11-hydra",authors:["ffakenz","ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-08-15-node-cli-api"},nextItem:{title:"Performance & tracing update",permalink:"/2023-08-11-performance-and-tracing"}},c={authorsImageUrls:[void 0,void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:s},p="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team updated ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," to support ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node"),' version\n8.1.2, ensuring compatibility with the latest mainnet release. The team also\nparticipated in discussions about a "cardanonical" JSON schema and added it as a\nsubmodule to the project, contributing to improved data modeling and\ninteroperability.'),(0,n.kt)("p",null,"In terms of community engagement, the team successfully onboarded a new\ncontributor, also participated in a RareEvo Twitter space, and continued\npreparations for the Hydra master-class."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated dependencies to support cardano-node 8.1.2 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1007"},"#1007")),(0,n.kt)("li",{parentName:"ul"},"Engaged in discussions about a ","\u201c","cardanonical","\u201d"," json schema and\nadd it as submodule to the project\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1013"},"#1013")),(0,n.kt)("li",{parentName:"ul"},"Onboarded a new contributor to the hydra project (@locallycompact)"),(0,n.kt)("li",{parentName:"ul"},"Joined RareEvo twitter space and continued preparation of hydra master-class")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update & streamline tutorial to work with latest version of hydra-node"),(0,n.kt)("li",{parentName:"ul"},"Remove the internal commit functionality ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/954"},"#954")),(0,n.kt)("li",{parentName:"ul"},"Release 0.12.0")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c10d32f.d331fe36.js b/assets/js/6c10d32f.d331fe36.js new file mode 100644 index 0000000000..cb03d0c321 --- /dev/null +++ b/assets/js/6c10d32f.d331fe36.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11759],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||s;return n?r.createElement(h,o(o({ref:t},c),{},{components:n})):r.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,o[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const s={title:"Consensus Team Update",slug:"2024-01-10-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2024-01-10-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-10-consensus.md",source:"@site/blog/2024-01-10-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-01-10T00:00:00.000Z",formattedDate:"January 10, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.515,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-01-10-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-01-12-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2024-01-10-ledger"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"For the past two weeks the Consensus team:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/858"},"Resumed work on implementing")," the initialization and internals of the second iteration of the in-memory ledger database."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/815"},"Resumed work on integrating")," the new ledger database API for UTxO HD."),(0,a.kt)("li",{parentName:"ul"},"Simplified query versioning for downstream users (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/863"},"863")," and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/403"},"403"),")."),(0,a.kt)("li",{parentName:"ul"},"Confirmed the cause of missed leadership checks due to ledger snapshots (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/868"},"868"),")."),(0,a.kt)("li",{parentName:"ul"},"Derived principles for the versioning/declaration of queries, since Conway complicates it (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/864"},"864")," and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/866"},"866"),")."),(0,a.kt)("li",{parentName:"ul"},"Unblocked the Node Team in the work on rollback-insensitive leadership schedule queries (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4765"},"4765"),")."),(0,a.kt)("li",{parentName:"ul"},"Drafted the (Pre-Genesis) Bootstrap State Machine (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/808"},"808"),").")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c50c5d9.dbc38c41.js b/assets/js/6c50c5d9.dbc38c41.js new file mode 100644 index 0000000000..77e72a1711 --- /dev/null +++ b/assets/js/6c50c5d9.dbc38c41.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24155],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(r),h=o,d=c["".concat(l,".").concat(h)]||c[h]||m[h]||a;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2024-03-18-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2024-03-18-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-18-network.md",source:"@site/blog/2024-03-18-network.md",title:"Network Team Update",description:"High-level overview of sprint 57",date:"2024-03-18T00:00:00.000Z",formattedDate:"March 18, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.26,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-03-18-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-03-20-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-03-15-hydra"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 57",id:"high-level-overview-of-sprint-57",level:2},{value:"Low-level summary",id:"low-level-summary",level:2}],u={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(c,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-57"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+57%22"},"sprint 57")),(0,o.kt)("p",null,"We released ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/releases/tag/8.9.0"},(0,o.kt)("inlineCode",{parentName:"a"},"cardano-node-8.9.0"))," ","(","which includes\n",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-newtork-0.12.0.0"),"). This release contains the following network\nupgrades:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"bootstrap peers (aka ",(0,o.kt)("em",{parentName:"li"},"Light Genesis"),"): ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4555"},"ouroboros-network#4555"),",\n",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4799"},"ouroboros-network#4799"),", ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4810"},"ouroboros-network#4810"),"; "),(0,o.kt)("li",{parentName:"ul"},"churn changes: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4800"},"ouroboros-network#4800"),";"),(0,o.kt)("li",{parentName:"ul"},"peer sharing changes: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4778"},"ouroboros-network#4778"),", ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4788"},"ouroboros-network#4788"),", ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4793"},"ouroboros-network#4793"),";"),(0,o.kt)("li",{parentName:"ul"},"code refactoring & documentation fixes.")),(0,o.kt)("p",null,"Soon we will release ","[",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node-8.9.1"),"]"," ","(","which includes\n",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.12.0.0"),"). This release will contain:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Peer sharing improvements & fixes. Contributed and tested by Karl Knutsson ",(0,o.kt)("a",{parentName:"li",href:"https://cardanofoundation.org"},"CF"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"cardano-ping")," updates to support ",(0,o.kt)("inlineCode",{parentName:"li"},"NodeToNode_V13")," & peer sharing."),(0,o.kt)("li",{parentName:"ul"},"Some smaller maintenance changes.")),(0,o.kt)("p",null,"The list of network features included in ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.12.0.0")," and\n",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.13.0.0")," can be found ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/orgs/IntersectMBO/projects/5/views/18"},"here"),"."),(0,o.kt)("p",null,"We also continued working on ",(0,o.kt)("inlineCode",{parentName:"p"},"tx-submission"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network#3311"),". Mostly\nworking on the pure internal API for decision-making and testing it with\nproperty-based tests. The next step is to get all the information needed to run\nthe decision logic in an efficient way and later write a mini-protocol client\nwhich is using the new API and testing it."),(0,o.kt)("p",null,"We also started working on thing to finalise the Genesis support from the\nnetwork. We have a PR under review, ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4832"},"ouroboros-network#4832"),". We also started\nto investigate how to support big ledger peer snapshots. This requires changes\nin the topology file as well as ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," & ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," to\nunderstand the snapshots; and on the other hand creation of such snapshots by\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-cli"),"."),(0,o.kt)("h2",{id:"low-level-summary"},"Low-level summary"),(0,o.kt)("p",null,"This time everything was ",(0,o.kt)("em",{parentName:"p"},"high-level"),", \ud83d\ude09."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c8b7ad4.af79ab43.js b/assets/js/6c8b7ad4.af79ab43.js new file mode 100644 index 0000000000..bceb3aa638 --- /dev/null +++ b/assets/js/6c8b7ad4.af79ab43.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28577],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=s(n),d=a,h=u["".concat(p,".").concat(d)]||u[d]||m[d]||o;return n?r.createElement(h,i(i({ref:t},c),{},{components:n})):r.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"SRE Q3 2023 Update",slug:"2023-Q3-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2023-Q3-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q3-sre.md",source:"@site/quarterly/2023-Q3-sre.md",title:"SRE Q3 2023 Update",description:"2023-07 - 2023-09",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"sre",permalink:"/quarterly/tags/sre"}],readingTime:.905,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q3 2023 Update",slug:"2023-Q3-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Q3 2023 Update",permalink:"/quarterly/2023-Q3-performance-and-tracing"},nextItem:{title:"Consensus Q4 2023 Update",permalink:"/quarterly/2023-Q4-consensus"}},p={authorsImageUrls:[void 0]},s=[{value:"2023-07 - 2023-09",id:"2023-07---2023-09",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],c={toc:s},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"2023-07---2023-09"},"2023-07 - 2023-09"),(0,a.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,a.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Completion of mainnet relay networking conversion to p2p topology"),(0,a.kt)("li",{parentName:"ul"},"Cardano sanchonet environment respins for testing new cardano-node pre-release Conway era functionality"),(0,a.kt)("li",{parentName:"ul"},"Stabilization of cardano-explorer in cardano-world using high IOPS bare metal machines"),(0,a.kt)("li",{parentName:"ul"},"Creation of a nix content addressed packages repository, ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs"},"capkgs"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"To provide lightweight release binaries thereby avoiding sluggish nix flakes and devShells"))),(0,a.kt)("li",{parentName:"ul"},"Creation of a cardano performance benchmarking cluster, ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf"},"cardano-perf"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"To replace legacy cluster benchmark tooling"))),(0,a.kt)("li",{parentName:"ul"},"Creation of a cardano cluster composition repository, ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts"},"cardano-parts"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"For enabling multi-cluster, multi-role cardano network deployments"))),(0,a.kt)("li",{parentName:"ul"},"Creation of a cardano testnets repository, ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground"},"cardano-playground"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Utilizing cardano-parts for testnet deployments"))),(0,a.kt)("li",{parentName:"ul"},"Creation of a sanchonet demo repository, ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet-demo"},"sanchonet-demo"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Utilizing cardano-parts for fast sanchonet test environment and demo purposes")))),(0,a.kt)("h3",{id:"next-steps"},"Next steps"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Continue with migration of cardano-world testnets to cardano-playground"),(0,a.kt)("li",{parentName:"ul"},"Proceed with spinup of mainnet p2p bootstrap cluster"),(0,a.kt)("li",{parentName:"ul"},"Scale down mainnet non-p2p legacy cluster at the appropriate time")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6d0badab.9dbedcfe.js b/assets/js/6d0badab.9dbedcfe.js new file mode 100644 index 0000000000..42c431bc1b --- /dev/null +++ b/assets/js/6d0badab.9dbedcfe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[87675],{77987:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"2024-07-17-hydra","metadata":{"permalink":"/2024-07-17-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-17-hydra.md","source":"@site/blog/2024-07-17-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2024-07-17T00:00:00.000Z","formattedDate":"July 17, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.93,"hasTruncateMarker":false,"authors":[{"name":"Noon van der Silk","title":"Software Engineering Lead","url":"https://github.com/noonio","imageURL":"https://github.com/noonio.png","key":"noonio"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-07-17-hydra","authors":["noonio"],"tags":["hydra"],"hide_table_of_contents":false},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-07-17-mithril"}},"content":"### High-level summary\\n\\nThis week, the Hydra team made significant progress on incremental decommits\\nby closing the last gaps and cleaning up the specification. They collected\\nscenarios and prepared for incremental commits, updated dependencies for\\ncompatibility with cardano-node 9.0.0, and continued tidying up documentation.\\nWork continued on an easy spin-up of the getting-started demo via\\nprocess-compose. Additionally, the team onboarded a new contributor and held\\nan early design meeting about payment channels and Blockfrost. They also\\nrefined the SDK wallet idea.\\n\\n### What did the team achieve?\\n\\n* Incremental decommit progress: closed last gaps, cleanup specification [#1483](https://github.com/cardano-scaling/hydra/issues/1483)\\n* Collected scenarios and preparing for incremental commit [#1484](https://github.com/cardano-scaling/hydra/issues/1484)\\n* Updated dependencies, compatibility cardano-node 9.0.0 [#1481](https://github.com/cardano-scaling/hydra/pull/1481)\\n* Continued documentation tidyups\\n* WIP easy spin-up of the getting-started demo via process-compose [#1503](https://github.com/cardano-scaling/hydra/pull/1503)\\n* Onboarded new contributor\\n* Early design meeting about payment channels and Blockfrost [#1305](https://github.com/cardano-scaling/hydra/issues/1305)\\n* SDK wallet idea refinement [#1509](https://github.com/cardano-scaling/hydra/issues/1509)\\n\\n\\n### What\'s next?\\n\\n* Merge and release incremental decommit\\n* Continued work on incremental commit\\n* Support Hydra demo at Rare Evo\\n* Have a Head open on `preview` to see it working through the upcoming hard fork"},{"id":"2024-07-17-mithril","metadata":{"permalink":"/2024-07-17-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-17-mithril.md","source":"@site/blog/2024-07-17-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-07-17T00:00:00.000Z","formattedDate":"July 17, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.365,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-07-17-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-07-17-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2024-07-10-consensus"}},"content":"## High level overview\\n\\nThis week, the Mithril team released the new distribution [`2428.0`](https://github.com/input-output-hk/mithril/releases/tag/2428.0), which includes support for Cardano node version `9.0.0`, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks by calibrating the signature parameters for mainnet, fixing a bug preventing the signature of the last block advertised as certified, optimizing a part of the artifact production that was blocking the certification, and starting removing the code reading transactions from the immutable files.\\n\\nFinally, the team started working on the certification of the Cardano stake distribution and continued redacting a CIP for the diffusion of Mithril signatures through the Cardano network.\\n\\n## Low level overview\\n- Released the new distribution [`2428.0`](https://github.com/input-output-hk/mithril/releases/tag/2428.0)\\n- Completed the issue **Release `2428` distribution** [#1810](https://github.com/input-output-hk/mithril/issues/1810)\\n- Completed the issue **Calibrate Cardano transaction signature parameters** [#1814](https://github.com/input-output-hk/mithril/issues/1814)\\n- Completed the issue **Non blocking artifact production in aggregator** [#1792](https://github.com/input-output-hk/mithril/issues/1792)\\n- Completed the issue **Cardano transaction importer does not import the last block advertised as certified** [#1785](https://github.com/input-output-hk/mithril/issues/1785)\\n- Completed the issue **A recorded but non certified Cardano transaction creates an error in prover** [#1819](https://github.com/input-output-hk/mithril/issues/1819)\\n- Completed the issue **Signer `make test` command fails** [#1816](https://github.com/input-output-hk/mithril/issues/1816)\\n- Completed the issue **Document Prometheus metrics and Grafana Dahsboard for signer** [#1834](https://github.com/input-output-hk/mithril/issues/1834)\\n- Completed the issue **Explorer keeps previous Cardano transaction error** [#1818](https://github.com/input-output-hk/mithril/issues/1818)\\n- Worked on the issue **Implement signable and artifacts builders for Cardano Stake Distribution** [#1832](https://github.com/input-output-hk/mithril/issues/1832)\\n- Worked on the issue **CIP for Mithril signature diffusion through Cardano network** [#1775](https://github.com/input-output-hk/mithril/issues/1775)\\n- Worked on the issue **Cleanup Immutable File in Cardano transaction** [#1825](https://github.com/input-output-hk/mithril/issues/1825)\\n- Worked on the issue **Upgrade `testing-sanchonet` for respin with Cardano `9.0.0`** [#1822](https://github.com/input-output-hk/mithril/issues/1822)"},{"id":"2024-07-10-consensus","metadata":{"permalink":"/2024-07-10-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-10-consensus.md","source":"@site/blog/2024-07-10-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2024-07-10T00:00:00.000Z","formattedDate":"July 10, 2024","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.305,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2024-07-10-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-07-17-mithril"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-07-10-mithril"}},"content":"## High level summary\\n\\n- Assisted with Node release 9.0:\\n - Performed security audits, engaged with other teams, implemented improvements, and released Consensus packages.\\n- We are now running additional `NoThunks` tests, which help us safeguard against memory leaks in the node.\\n- Reviewed [Milestone 13](https://github.com/IntersectMBO/ouroboros-consensus/pull/1113) of Genesis, which improves the code documentation of Genesis, and implements some fixes and optimizations."},{"id":"2024-07-10-mithril","metadata":{"permalink":"/2024-07-10-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-10-mithril.md","source":"@site/blog/2024-07-10-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-07-10T00:00:00.000Z","formattedDate":"July 10, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.315,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-07-10-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2024-07-10-consensus"},"nextItem":{"title":"Network Team Update","permalink":"/2024-07-08-network"}},"content":"## High level overview\\n\\nThis week, the Mithril team worked on supporting Cardano node version `9.0.0` and started working on a new Mithril distribution. They also continued implementing the certification of Cardano transactions in Mithril networks. They fixed some bugs blocking the REST API during transactions import, causing resource exhaustion on the aggregator Cardano node, and creating some exceptions in the explorer. They also kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.\\n\\nFinally, the team worked on enhancing the artifact production in the aggregator to avoid blocking the certification and finalized enforcing the linting of all the files in the repository with the CI.\\n\\n## Low level overview\\n- Completed the issue **Upgrade Cardano node `9.0.0`** [#1787](https://github.com/input-output-hk/mithril/issues/1787)\\n- Completed the issue **Aggregator/Signer preload transactions when Cardano transactions certification is not activated** [#1782](https://github.com/input-output-hk/mithril/issues/1782)\\n- Completed the issue **Explorer does not handle invalid transaction hashes** [#1784](https://github.com/input-output-hk/mithril/issues/1784)\\n- Completed the issue **Cardano transactions import blocks aggregator and signer** [#1797](https://github.com/input-output-hk/mithril/issues/1797)\\n- Completed the issue **Resource exhausted on Cardano node socket** [#1803](https://github.com/input-output-hk/mithril/issues/1803)\\n- Completed the issue **Certificate pending route overwhelms the Cardano node in aggregator** [#1804](https://github.com/input-output-hk/mithril/issues/1804)\\n- Completed the issue **Optimize Cardano transaction prover performances with parallelization** [#1756](https://github.com/input-output-hk/mithril/issues/1756)\\n- Completed the issue **Lint Markdown/JavaScript files in repository** [#1754](https://github.com/input-output-hk/mithril/issues/1754)\\n- Worked on the issue **CIP for Mithril signature diffusion through Cardano network** [#1775](https://github.com/input-output-hk/mithril/issues/1775)\\n- Worked on the issue **Release `2428` distribution** [#1810](https://github.com/input-output-hk/mithril/issues/1810)\\n- Worked on the issue **Non blocking artifact production in aggregator** [#1792](https://github.com/input-output-hk/mithril/issues/1792)\\n- Worked on the issue **Cardano transaction importer does not import the last block advertised as certified** [#1785](https://github.com/input-output-hk/mithril/issues/1785)"},{"id":"2024-07-08-network","metadata":{"permalink":"/2024-07-08-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-08-network.md","source":"@site/blog/2024-07-08-network.md","title":"Network Team Update","description":"High-level overview of sprint 65","date":"2024-07-08T00:00:00.000Z","formattedDate":"July 8, 2024","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.165,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2024-07-08-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-07-10-mithril"},"nextItem":{"title":"SRE Team Update","permalink":"/2024-07-05-sre"}},"content":"## High-level overview of [sprint 65][sprint-65]\\n\\nKarl Knutsson ([CF]) fixed a bug which prevented a node using bootstrap peers\\nto sync using them, for a more detailed description see [ouroboros-network#4899].\\n\\nEarlier this year we fixed bugs in `IOSimPOR` which prevent us from using it in\\n`ouroboros-network` ([io-sim#153], [io-sim#159]); since\\n[ouroboros-network#4872] was merged we have a large number of tests that are\\nusing `IOSimPOR`\'s schedule exploration. In the last sprint we fixed\\nsome bugs discovered by `IOSimPOR` in `ouroboros-network`:\\n\\n* **Block Fetch Client assertion failure** - [ouroboros-network#4890],\\n* **Connection manager\'s invalid transition** - [ouroboros-network#4891].\\n\\nWe continued working on new `tx-submission` logic: [ouroboros-network#3311] as\\nwell as on Genesis. The work on Genesis is split in a few PRs which are\\ncurrently in review process:\\n\\n* **Big Ledger Peer Targets for Genesis** - [ouroboros-network#4832]\\n* **Feed peer selection governor with big ledger peers obtained from a snapshot** - [ouroboros-network#4850]\\n* **Introduction of serialization instances in support of ledger peer snapshot** - [ouroboros-network#4851]\\n* **Verification of big ledger peer snapshot file** - [ouroboros-network#4888]\\n\\n\\n## High-level overview of [sprint 64][sprint-64]\\n\\nKarl Knutsson ([CF]) modified peer sharing behaviour to not share peers whith\\nwhich connections failed, see [ouroboros-network#4883] for more details.\\n\\nWe fixed inbound governor counters tracer, see [ouroboros-network#4885].\\n\\n[sprint-65]: https://github.com/orgs/IntersectMBO/projects/5/views/1?filterQuery=sprint%3A%22Sprint+65%22\\n[sprint-64]: https://github.com/orgs/IntersectMBO/projects/5/views/1?filterQuery=sprint%3A%22Sprint+64%22\\n\\n[CF]: https://cardanofoundation.org\\n\\n[io-sim#153]: https://github.com/input-output-hk/io-sim/pull/153\\n[io-sim#159]: https://github.com/input-output-hk/io-sim/pull/159\\n[ouroboros-network#3311]: https://github.com/IntersectMBO/ouroboros-network/issues/3311\\n[ouroboros-network#4832]: https://github.com/IntersectMBO/ouroboros-network/issues/4832\\n[ouroboros-network#4850]: https://github.com/IntersectMBO/ouroboros-network/issues/4890\\n[ouroboros-network#4851]: https://github.com/IntersectMBO/ouroboros-network/issues/4890\\n[ouroboros-network#4872]: https://github.com/IntersectMBO/ouroboros-network/issues/4872\\n[ouroboros-network#4883]: https://github.com/IntersectMBO/ouroboros-network/issues/4883\\n[ouroboros-network#4885]: https://github.com/IntersectMBO/ouroboros-network/issues/4885\\n[ouroboros-network#4890]: https://github.com/IntersectMBO/ouroboros-network/issues/4890\\n[ouroboros-network#4891]: https://github.com/IntersectMBO/ouroboros-network/issues/4891\\n[ouroboros-network#4899]: https://github.com/IntersectMBO/ouroboros-network/issues/4899"},{"id":"2024-07-05-sre","metadata":{"permalink":"/2024-07-05-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-05-sre.md","source":"@site/blog/2024-07-05-sre.md","title":"SRE Team Update","description":"High level summary","date":"2024-07-05T00:00:00.000Z","formattedDate":"July 5, 2024","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":2.265,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2024-07-05-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2024-07-08-network"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-07-03-ledger"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general\\nenvironment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Cardano-node `9.0.0` is now deployed to mainnet, preprod, preview, private and\\n shelley-qa environments. The last several weeks have been very busy with\\n pre-release and release activity and environment upgrades involving\\n cardano-node versions `8.9.3`, `8.9.4`, `8.12.0-pre`, `8.12.1`, `8.12.2` and\\n now `9.0.0` as of this update.\\n\\n* Sanchonet environment remains pinned at cardano-node version `8.11.0-pre` until\\n the next respin which will support `9.0.0` or greater.\\n\\n* Ogmios service and package options were added to cardano-parts.\\n\\n* Four documents were added to cardano-playground to better explain some\\n operational procedures: debugging of peer-to-peer connections; governance\\n voting with the playground stakepools; faucet setup; faucet pool\\n de-delegation. Found at:\\n [docs/explain](https://github.com/input-output-hk/cardano-playground/tree/main/docs/explain)\\n\\n* One document was added to cardano-mainnet to explain cardano-snapshot\\n operations. Found at:\\n [docs/explain](https://github.com/input-output-hk/cardano-mainnet/tree/main/docs/explain)\\n\\n* Private chain was stopped and re-spun with 2 hr epochs for testing.\\n\\n* Hydra and performance cluster machines had their configuration updated to be\\n more robust to transient nix store caches outages which may re-occur in the\\n future.\\n\\n* All machines in cardano-playground and cardano-mainnet clusters were updated\\n to nixpkgs `24.05`.\\n\\n## Lower level summary\\n\\n### Cardano-mainnet\\n* Sets cardano-node to `8.12.2` as well as usage of a custom gc delay parameter\\n branch for bootstrap nodes. Updates all machines to nixpkgs to `24.05` with\\n openssh `9.8p1`. Adds one new explainer readme document, new alerts and various\\n script, recipe, and other improvements. See the PR description for more\\n details:\\n [cardano-mainnet-pull-16](https://github.com/input-output-hk/cardano-mainnet/pull/16)\\n\\n### Cardano-ops\\n* Bumps to cardano-node `9.0.0`, adds coredump metrics, adds OOM/coredump\\n alerting, adjusts systemd stop timeout to avoid some unneccesary chain\\n replays:\\n [cardano-ops-compare](https://github.com/input-output-hk/cardano-ops/compare/1fca100...7dd0502)\\n\\n### Cardano-parts\\n* Sets cardano-node (release) and cardano-node-ng (pre-release) versions to\\n `8.12.2` and cardano-db-sync-ng to `sancho-5-0-0`. Updates nixpkgs to\\n `24.05`. Includes nixosModule, dashboard, metric, alert and recipe\\n improvements and new features. More detail is available in the PR\\n description:\\n [cardano-parts-pull-43](https://github.com/input-output-hk/cardano-parts/pull/43)\\n\\n### Cardano-perf\\n* Adjusts nix config to avoid R2 500 errors on transient cache problems and\\n adds explorer to perf class:\\n [cardano-perf-compare](https://github.com/input-output-hk/cardano-perf/compare/5631a13...911ec61)\\n\\n### Cardano-playground\\n* Sets cardano-node (release) and cardano-node-ng (pre-release) versions to\\n `8.12.2` and cardano-db-sync-ng to `sancho-5-0-0`. Updates all machines to\\n nixpkgs to `24.05` with openssh `9.8p1`. Respins private chain and KES\\n rotates multiple chains. Adds four new explainer readme documents, new alerts\\n and various script, recipe, and other improvements. See the PR description\\n for more details:\\n [cardano-playground-pull-27](https://github.com/input-output-hk/cardano-playground/pull/27)\\n\\n### Iohk-nix\\n* Node 8.12 configuration changes:\\n [iohk-nix-pull-581](https://github.com/input-output-hk/iohk-nix/pull/581)\\n\\n* Private chain conway configuration update post 2hr epoch repsin:\\n [iohk-nix-pull-582](https://github.com/input-output-hk/iohk-nix/pull/582)\\n\\n* Adjusts p2p target number of known peers for non-block-producers:\\n [iohk-nix-pull-583](https://github.com/input-output-hk/iohk-nix/pull/583)\\n\\n### Ops-lib\\n* Updates deployers with recent nixpkgs, nix, refactors to preserve legacy\\n nixops usage, adds starship and fzf:\\n [ops-lib-pull-134](https://github.com/input-output-hk/ops-lib/pull/134)\\n\\n* Bumps openssh to `9.8p1`\\n [ops-lib-pull-135](https://github.com/input-output-hk/ops-lib/pull/135)"},{"id":"2024-07-03-ledger","metadata":{"permalink":"/2024-07-03-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-03-ledger.md","source":"@site/blog/2024-07-03-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-07-03T00:00:00.000Z","formattedDate":"July 3, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.875,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-07-03-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2024-07-05-sre"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-07-03-mithril"}},"content":"## High level summary\\n\\nThis period we added some last minute changes that were necessary for improving resilience\\nand safety of Conway implementation:\\n\\n* Authorization of hot credentials for constitutional committee members is now only possible\\nfor cold credentials that are present in the ledger state, either in the current committee\\nor in one of the proposals.\\n* Voting is restricted to entities that are present in the ledger state\\n* DRep votes will be removed whenever DRep unregisters\\n* Pricing model for the size of reference scripts was changed from linear to\\n exponential. Moreover, extra limits on the total size of reference scripts being used\\n have been put in place.\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-4430] - CostModel json parsing\\n* [pull-4438] - Fix UTXOW era in diagrams for Conway\\n* [pull-4443] - Make reference scripts fee grow exponentially with size\\n* [pull-4436] - Authorize known cc members only\\n* [pull-4433] - Improve resilience of future PParams\\n* [pull-4453] - Tx refscript size check\\n* [pull-4452] - Prevent votes for non existent entities\\n* [pull-4450] - BBODY refscript size check\\n\\n### Testing\\n\\n* [pull-4417] - `constrained-generators`: use consistent warning pragma\\n* [pull-4431] - `constrained-generators`: fix flakyness in set generator\\n* [pull-4312] - Convert AlonzoValidTxUTXOW to ImpTest (Part 1)\\n* [pull-4386] - Increase the size of the committee for testing\\n* [pull-4425] - Conformance test plumbing: EPOCH\\n* [pull-4442] - Update executable-spec SRP\\n* [pull-4405] - Add more scripts to alonzo utxosspec\\n* [pull-4445] - Conformance tests plumbing: `NEWEPOCH`\\n* [pull-4460] - Remove unnecessary allocation in non-integral reference code\\n* [pull-4457] - Conformance: POOL: Translate and adjust\\n\\n### Infrastructure and releasing\\n\\n* [pull-4429] - Bump `CHANGELOG` versions post-release\\n* [pull-4432] - `cardano-node-8.12` ledger changelog\\n* [pull-4447] - Backport of size calculation\\n* [pull-4446] - Update changelog to reflect recent release\\n* [pull-4456] - Bump up version for `cardano-data`\\n* [pull-4459] - Update CHANGELOG files following release\\n* [pull-4454] - Follow up to #4445\\n\\n[pull-4429]: https://github.com/IntersectMBO/cardano-ledger/pull/4429\\n[pull-4417]: https://github.com/IntersectMBO/cardano-ledger/pull/4417\\n[pull-4431]: https://github.com/IntersectMBO/cardano-ledger/pull/4431\\n[pull-4430]: https://github.com/IntersectMBO/cardano-ledger/pull/4430\\n[pull-4432]: https://github.com/IntersectMBO/cardano-ledger/pull/4432\\n[pull-4312]: https://github.com/IntersectMBO/cardano-ledger/pull/4312\\n[pull-4386]: https://github.com/IntersectMBO/cardano-ledger/pull/4386\\n[pull-4425]: https://github.com/IntersectMBO/cardano-ledger/pull/4425\\n[pull-4438]: https://github.com/IntersectMBO/cardano-ledger/pull/4438\\n[pull-4443]: https://github.com/IntersectMBO/cardano-ledger/pull/4443\\n[pull-4446]: https://github.com/IntersectMBO/cardano-ledger/pull/4446\\n[pull-4447]: https://github.com/IntersectMBO/cardano-ledger/pull/4447\\n[pull-4436]: https://github.com/IntersectMBO/cardano-ledger/pull/4436\\n[pull-4433]: https://github.com/IntersectMBO/cardano-ledger/pull/4433\\n[pull-4442]: https://github.com/IntersectMBO/cardano-ledger/pull/4442\\n[pull-4405]: https://github.com/IntersectMBO/cardano-ledger/pull/4405\\n[pull-4453]: https://github.com/IntersectMBO/cardano-ledger/pull/4453\\n[pull-4445]: https://github.com/IntersectMBO/cardano-ledger/pull/4445\\n[pull-4452]: https://github.com/IntersectMBO/cardano-ledger/pull/4452\\n[pull-4450]: https://github.com/IntersectMBO/cardano-ledger/pull/4450\\n[pull-4456]: https://github.com/IntersectMBO/cardano-ledger/pull/4456\\n[pull-4459]: https://github.com/IntersectMBO/cardano-ledger/pull/4459\\n[pull-4454]: https://github.com/IntersectMBO/cardano-ledger/pull/4454\\n[pull-4460]: https://github.com/IntersectMBO/cardano-ledger/pull/4460\\n[pull-4457]: https://github.com/IntersectMBO/cardano-ledger/pull/4457"},{"id":"2024-07-03-mithril","metadata":{"permalink":"/2024-07-03-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-03-mithril.md","source":"@site/blog/2024-07-03-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-07-03T00:00:00.000Z","formattedDate":"July 3, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.22,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-07-03-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-07-03-ledger"},"nextItem":{"title":"Consensus Team Update","permalink":"/2024-06-26-consensus"}},"content":"## High level overview\\n\\nThis week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They completed the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas and worked on fixing some bugs occurring during the warmup phase of the signer and aggregator. They also worked on supporting the new Cardano node version 8.12 and kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.\\n\\nFinally, the team fixed a bug that prevented the parsing of some blocks in the SanchoNet network and made some optimizations on the databases of the signer and aggregator.\\n\\n## Low level overview\\n- Completed the issue **Import Cardano transactions with `ChainReader`** [#1705](https://github.com/input-output-hk/mithril/issues/1705)\\n- Completed the issue **Cardano signatures are not produced on `testing-sanchonet`** [#1750](https://github.com/input-output-hk/mithril/issues/1750)\\n- Completed the issue **SQLite WAL files are not truncated in signer and aggregator** [#1707](https://github.com/input-output-hk/mithril/issues/1707)\\n- Completed the issue **Conditional embedding of Cardano CLI in Docker images** [#1725](https://github.com/input-output-hk/mithril/issues/1725)\\n- Worked on the issue **CIP for Mithril signature diffusion through Cardano network** [#1775](https://github.com/input-output-hk/mithril/issues/1775)\\n- Worked on the issue **Optimize Cardano transaction prover performances with parallelization** [#1756](https://github.com/input-output-hk/mithril/issues/1756)\\n- Worked on the issue **Upgrade Cardano node `8.12.2`** [#1787](https://github.com/input-output-hk/mithril/issues/1787)\\n- Worked on the issue **Aggregator/Signer preload transactions when Cardano transactions certification is not activated** [#1782](https://github.com/input-output-hk/mithril/issues/1782)\\n- Worked on the issue **Cardano transaction importer does not import the last block advertised as certified** [#1785](https://github.com/input-output-hk/mithril/issues/1785)\\n- Worked on the issue **Lint Markdown/JavaScript files in repository** [#1754](https://github.com/input-output-hk/mithril/issues/1754)"},{"id":"2024-06-26-consensus","metadata":{"permalink":"/2024-06-26-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-26-consensus.md","source":"@site/blog/2024-06-26-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2024-06-26T00:00:00.000Z","formattedDate":"June 26, 2024","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.175,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2024-06-26-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-07-03-mithril"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-06-26-mithril"}},"content":"## High level summary\\n\\n- Supported debugging activities related to bootstrap nodes.\\n- Merged various improvements to the `db-X` tools; in particular, `db-truncater` (which is used regularly by community members on sanchonet) [got much faster](https://github.com/IntersectMBO/ouroboros-consensus/pull/1143)."},{"id":"2024-06-26-mithril","metadata":{"permalink":"/2024-06-26-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-26-mithril.md","source":"@site/blog/2024-06-26-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-06-26T00:00:00.000Z","formattedDate":"June 26, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.155,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-06-26-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2024-06-26-consensus"},"nextItem":{"title":"Performance & Tracing Update","permalink":"/2024-06-25-performance-and-tracing"}},"content":"## High level overview\\n\\nThis week, the Mithril team released the [threat modeling explainer](https://mithril.network/doc/next/mithril/threat-model) for the documentation website. They also continued implementing the certification of Cardano transactions in Mithril networks and the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas. Additionally, the team started redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.\\n\\nFinally, they fixed a bug that prevented the verification of the transactions included in the last certified block and improved the WASM client\'s documentation.\\n\\n## Low level overview\\n- Completed the issue **Threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Completed the issue **Implement database connection pooling for Cardano transaction repository** [#1760](https://github.com/input-output-hk/mithril/issues/1760)\\n- Completed the issue **Import Cardano transactions by sequences of block ranges** [#1766](https://github.com/input-output-hk/mithril/issues/1766)\\n- Completed the issue **Limit Cardano transactions prover input** [#1757](https://github.com/input-output-hk/mithril/issues/1757)\\n- Completed the issue **Transactions of the block number in the artifact are never certified by the prover** [#1762](https://github.com/input-output-hk/mithril/issues/1762)\\n- Completed the issue **Add missing pre-requisite to build WASM client** [#1753](https://github.com/input-output-hk/mithril/issues/1753)\\n- Worked on the issue **Import Cardano transactions with `ChainReader`** [#1705](https://github.com/input-output-hk/mithril/issues/1705)\\n- Worked on the issue **CIP for Mithril signature diffusion through Cardano network** [#1775](https://github.com/input-output-hk/mithril/issues/1775)\\n- Worked on the issue **Optimize Cardano transaction prover performances with parallelization** [#1756](https://github.com/input-output-hk/mithril/issues/1756)\\n- Worked on the issue **Cardano signatures are not produced on `testing-sanchonet`** [#1750](https://github.com/input-output-hk/mithril/issues/1750)\\n- Worked on the issue **Lint Markdown/JavaScript files in repository** [#1754](https://github.com/input-output-hk/mithril/issues/1754)"},{"id":"2024-06-25-performance-and-tracing","metadata":{"permalink":"/2024-06-25-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-25-performance-and-tracing.md","source":"@site/blog/2024-06-25-performance-and-tracing.md","title":"Performance & Tracing Update","description":"High level summary","date":"2024-06-25T00:00:00.000Z","formattedDate":"June 25, 2024","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":3.285,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & Tracing Update","slug":"2024-06-25-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-06-26-mithril"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-06-19-ledger"}},"content":"## High level summary\\n\\n* Benchmarking: Release benchmarks for Node `8.12.0`; `DRep` benchmarks with 100k DReps.\\n* Development: Merged a performance fix on `8.11`; kicked off development of governance action workload.\\n* Workbench: Adjusted automations to latest `8.12` Conway features and Plutus cost model; implementation of CIP-69 and CIP-117 for our tooling is in validation phase.\\n* Tracing: Work on metrics naming ongoing. Factoring out RTView component is completed and has entered testing.\\n* IOI Tech Meetup: Our team contributed two presentations at the meetup in Zurich; worked on community report of UTxO scaling benchmarks.\\n\\n## Low level overview\\n\\n\\n### Benchmarking\\n\\nWe\'ve run and analyzed a full set of release benchmarks for Node versions `8.12.0`. In comparison with the latest mainnet release `8.9.3`, we could not observe any regressions. In fact, `8.12.0` was able to deliver equal network\\nperformance at a slightly reduced resource cost - both for CPU and memory.\\n\\nAnother benchmark of the Conway ledger with large amounts of `DRep`s has been performed. This time, 100000 DReps were chosen - this amount aims to simulate a scenario where lots of self-delegation takes place. While a performance\\nimpact is observable in this instance, we can still see that the number of DReps scales well overall, and poses no concern for network peformance.\\n\\n### Development\\n\\nWe have contributed and merged a performance fix on `8.11` which adresses a regressing metric in the forging loop. The regression was only observable under specific conditions. Benchmarks on `8.12`\\nhave already confirmed the fix to be successful. \\n \\nWe\'ve kicked off governance action workloads for benchmarking. This will be an entirely new workload type for Conway era, targeting performance measurements of its decentralized decision making process. The workload will feature\\nregistering proposals, acting as multiple DReps to vote on active proposals, vote tallying and proposal enactment. We\'re very grateful for the Ledger team\'s helpful support so far in creating a workload design for benchmarking - one that evenly stresses \\nthe network over extended periods of time.\\n\\n### Workbench\\n\\nThe workbench automations have been upgraded to handle Node `8.12` and the corresponding integrations of Cardano API and CLI. \\n\\nFurthermore, we\'ve updated to the latest PlutusV3 costmodel in our benchmarks - as well as implemented CIP-69 and CIP-117 for all our PlutusV3 benchmarking scripts, pending validation by the Plutus team.\\n\\n### Tracing\\n\\nThe work on aligning of metrics naming and semantics of new and legacy tracing is ongoing. Additionally, we\'re adding a handful of metrics to the new tracing system which currently exist in legacy tracing only.\\n\\nFactoring out the RTView (\\"real-time view\\") component of `cardano-tracer` in the new tracing system has finished. This includes a considerable refactoring of `cardano-tracer`\'s codebase, so that we\'re currently running test on the new codebase. Isolating\\nRTView is due to its being in prototype stage for too long, and the design decisions taken. In the short term, this will make several package dependencies optional, which have become troublesome for CI, as well as making `cardano-tracer` more lightweight.\\nRTView remains as an opt-in. \\n\\n### IOI Tech Meetup\\n\\nOur entire team traveled to Zurich, Switzerland to attend ZuriHac\'24 and the IOI Tech Meetup. It was fantastic to meet everyone in person, and we all had an amazing and very productive time. A big Thank You to everyone involved in making that happen, and making it a success. \\n\\nWe contributed two presentations for the meetup: a thourough introduction of the new tracing system aimed at developers - as it\'s not tailored exclusively to `cardano-node`, but can be used in other (Haskell) services as well. And secondly, \\nan overview over the benchmarking framework based on Quantitative Timeliness Agreements which we\'re building - as well as a show-and-tell of our prototype, implementing part of said framework. We\'re grateful for the great interest and feedback from all\\nthe participants. \\n\\nLast not least, we worked on creating a community report of the UTxO scaling benchmarks performed during March and April - to be released soon."},{"id":"2024-06-19-ledger","metadata":{"permalink":"/2024-06-19-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-19-ledger.md","source":"@site/blog/2024-06-19-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-06-19T00:00:00.000Z","formattedDate":"June 19, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.37,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-06-19-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Update","permalink":"/2024-06-25-performance-and-tracing"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-06-19-mithril"}},"content":"## High level summary\\n\\nMajor milestone was reached this period. We\'ve implemented\\n[CIP-0069](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0069) that improves\\n`PlutusV3` functionality by making spending datums optional and enforcing all scripts to\\nhave exactly one argument. This feature allows for spending scripts to be usable for other\\npurposes, like minting for example.\\n\\nCouple of important bugs have been fixed:\\n\\n* Script execution for certificates with the same plutus script did not execute correctly.\\n* Prevent delegation to a non-existent pool.\\n\\nWith this feature complete and a few bug fixes we were also able to mark Conway era and\\n[CIP-1694](https://github.com/cardano-foundation/CIPs/tree/master/CIP-1694) as feature\\ncomplete and ready for release. Naturally, testing of Conway era will continue all the way\\ninto the hard fork.\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-4374] - CIP-0069\\n* [pull-4394] - Fix Certifying Redeemer issue\\n* [pull-4400] - Check that the pool being delegated to exists for `ConwayDelegCert`\\n* [pull-4409] - Update to plutus-ledger-api-1.30\\n\\n### Testing\\n\\n* [pull-4384] - Re-enabled Full NewEpochstate test\\n* [pull-4397] - Add a lens to HasSubState\\n* [pull-4399] - New simple examples for maps\\n* [pull-4403] - `constrained-generators`: Add `lookup_` for maps\\n* [pull-4414] - `constrained-generators`: Hotfix failing test\\n* [pull-4411] - `constrained-generators`: introduce a hook for naming variables\\n\\n### Infrastructure and releasing\\n\\n* [pull-4424] - GHA: Downgrade the version of actions/upload-artifact\\n* [pull-4426] - Take care of all compiler warnings for GHC-9.8\\n* [pull-4407] - Change the default ghc version to 9.6.5\\n* [pull-4416] - Bump urllib3 from 1.26.18 to 1.26.19 in /doc\\n\\n[pull-4384]: https://github.com/IntersectMBO/cardano-ledger/pull/4384\\n[pull-4394]: https://github.com/IntersectMBO/cardano-ledger/pull/4394\\n[pull-4399]: https://github.com/IntersectMBO/cardano-ledger/pull/4399\\n[pull-4400]: https://github.com/IntersectMBO/cardano-ledger/pull/4400\\n[pull-4374]: https://github.com/IntersectMBO/cardano-ledger/pull/4374\\n[pull-4403]: https://github.com/IntersectMBO/cardano-ledger/pull/4403\\n[pull-4397]: https://github.com/IntersectMBO/cardano-ledger/pull/4397\\n[pull-4414]: https://github.com/IntersectMBO/cardano-ledger/pull/4414\\n[pull-4409]: https://github.com/IntersectMBO/cardano-ledger/pull/4409\\n[pull-4424]: https://github.com/IntersectMBO/cardano-ledger/pull/4424\\n[pull-4411]: https://github.com/IntersectMBO/cardano-ledger/pull/4411\\n[pull-4426]: https://github.com/IntersectMBO/cardano-ledger/pull/4426\\n[pull-4407]: https://github.com/IntersectMBO/cardano-ledger/pull/4407\\n[pull-4416]: https://github.com/IntersectMBO/cardano-ledger/pull/4416"},{"id":"2024-06-19-mithril","metadata":{"permalink":"/2024-06-19-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-19-mithril.md","source":"@site/blog/2024-06-19-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-06-19T00:00:00.000Z","formattedDate":"June 19, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.275,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-06-19-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-06-19-ledger"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-06-12-mithril"}},"content":"## High level overview\\n\\nThis week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They implemented a warmup strategy for the signer and aggregator to begin importing transactions as early as possible, thus minimizing the impact of network activation on certification. They also significantly improved the throughput of the prover route of the aggregator by addressing database access bottlenecks. Additionally, the team made progress on low-latency certification by completing the handling of chain rollbacks and nearly completing the retrieval of transactions using the chain sync mini-protocol and Pallas.\\n\\nFinally, they made final modifications to the threat modeling explainer for the documentation website, which will be released shortly, and worked on a bug that occurs when parsing some blocks of the SanchoNet network.\\n\\n## Low level overview\\n- Completed the issue **Handle rollbacks in Cardano transactions** [#1724](https://github.com/input-output-hk/mithril/issues/1724)\\n- Completed the issue **Pooled resources should be reset when given back** [#1743](https://github.com/input-output-hk/mithril/issues/1743)\\n- Completed the issue **Lock signature of signed entity types during warm-up** [#1693](https://github.com/input-output-hk/mithril/issues/1693)\\n- Completed the issue **Warmup import Cardano transactions at node startup** [#1692](https://github.com/input-output-hk/mithril/issues/1692)\\n- Completed the issue **Build, test and package `arm64` binaries in CI** [#1751](https://github.com/input-output-hk/mithril/issues/1751)\\n- Worked on the issue **Threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Worked on the issue **Import Cardano transactions with `ChainReader`** [#1705](https://github.com/input-output-hk/mithril/issues/1705)\\n- Worked on the issue **Import Cardano transactions by sequences of block ranges** [#1766](https://github.com/input-output-hk/mithril/issues/1766)\\n- Worked on the issue **Implement database connection pooling for Cardano transaction repository** [#1760](https://github.com/input-output-hk/mithril/issues/1760)\\n- Worked on the issue **Cardano signatures are not produced on `testing-sanchonet`** [#1750](https://github.com/input-output-hk/mithril/issues/1750)"},{"id":"2024-06-12-mithril","metadata":{"permalink":"/2024-06-12-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-12-mithril.md","source":"@site/blog/2024-06-12-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-06-12T00:00:00.000Z","formattedDate":"June 12, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.4,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-06-12-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-06-19-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-06-10-hydra"}},"content":"## High level overview\\n\\nThis week, the Mithril team released the new distribution [`2423.0`](https://github.com/input-output-hk/mithril/releases/tag/2423.0), which includes the removal of the `snaphot` command of the client CLI, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks and improved the throughput of the prover route of the aggregator by fixing some bottlenecks in the Merkle proof computation. Additionally, the team made progress on low-latency certification by working on the retrieval of the transactions with the chain sync mini-protocol and Pallas, as well as the handling of rollbacks of the chain.\\n\\nFinally, they kept working on the threat modeling explainer for the documentation website and provided support for multiple TLS implementations in the client library thanks to a community contribution.\\n\\n## Low level overview\\n- Released the new distribution [`2423.0`](https://github.com/input-output-hk/mithril/releases/tag/2423.0)\\n- Publication of a [dev blog post](https://mithril.network/doc/dev-blog/2024/06/12/client-cli-removed-command) about the **removed Mithril client CLI \'snapshot\' command**\\n- Completed the issue **Client verification fails with an already stored but non certified yet transaction** [#1719](https://github.com/input-output-hk/mithril/issues/1719)\\n- Completed the issue **Computation of Merkle proof has bottleneck with multiple transactions** [#1730](https://github.com/input-output-hk/mithril/issues/1730)\\n- Completed the issue **Automatic rollback on SQL transactions** [#1741](https://github.com/input-output-hk/mithril/issues/1741)\\n- Completed the issue **Allow the underlying TLS implementation to be selectable when using a library.** [#1737](https://github.com/input-output-hk/mithril/issues/1737)\\n- Completed the issue **Release `2423` distribution** [#1695](https://github.com/input-output-hk/mithril/issues/1695)\\n- Completed the issue **Mithril Signer Local Error Policy : Error 182 - MuxError** [#1632](https://github.com/input-output-hk/mithril/issues/1632)\\n- Worked on the issue **Handle rollbacks in Cardano transactions** [#1724](https://github.com/input-output-hk/mithril/issues/1724)\\n- Worked on the issue **Pooled resources should be reset when given back** [#1743](https://github.com/input-output-hk/mithril/issues/1743)\\n- Worked on the issue **Threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Worked on the issue **Import Cardano transactions with `ChainReader`** [#1705](https://github.com/input-output-hk/mithril/issues/1705)"},{"id":"2024-06-10-hydra","metadata":{"permalink":"/2024-06-10-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-10-hydra.md","source":"@site/blog/2024-06-10-hydra.md","title":"Hydra Team Update","description":"High-level Summary","date":"2024-06-10T00:00:00.000Z","formattedDate":"June 10, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.735,"hasTruncateMarker":false,"authors":[{"name":"Daniel Firth","title":"Hydra Software Engineer","url":"https://github.com/locallycompact","imageURL":"https://github.com/locallycompact.png","key":"locallycompact"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-06-10-hydra","authors":["locallycompact"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-06-12-mithril"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-06-05-ledger"}},"content":"### High-level Summary\\n\\nThis sprint, the Hydra team updated the node to be compatible with cardano-node 8.11-pre. We continued work on increment decommits, investigating adversarial attacks on the smart contract and preparing it to be merged. We also discussed options for the incremental commit work, including designs for a `hydra-ledger`.\\n\\nNext sprint we aim to merge incremental decommits and make further progress on the incremental commit design.\\n\\n### What did the team achieve this sprint?\\n\\n* Update to cardano-node 8.11-pre [#1439](https://github.com/input-output-hk/hydra/pull/1439)\\n* Allow committing internal wallet utxos [#1442](https://github.com/input-output-hk/hydra/pull/1442)\\n* Rewrite introduction section and fknown issues section. [#1451](https://github.com/input-output-hk/hydra/pull/1451)\\n* Make specification editing in markdown possible [#1187](https://github.com/input-output-hk/hydra/pull/1187)\\n* Fix ignored hydra-plutus tests [#1458](https://github.com/input-output-hk/hydra/pull/1458)\\n* Re-open internal head with blueprint commits.\\n\\n### What are the goals of the next sprint?\\n\\n* Incremental decommit [#1057](https://github.com/input-output-hk/hydra/pull/1057)\\n* Make progress on the design for incremental commit [#199](https://github.com/input-output-hk/hydra/pull/199)\\n* Test combinations of decrement/close/fanout [#1390](https://github.com/input-output-hk/hydra/pull/1390)"},{"id":"2024-06-05-ledger","metadata":{"permalink":"/2024-06-05-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-05-ledger.md","source":"@site/blog/2024-06-05-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-06-05T00:00:00.000Z","formattedDate":"June 5, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.125,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-06-05-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-06-10-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-06-05-mithril"}},"content":"## High level summary\\n\\nThis time around we continued on testing the Conway era and improving our conformance\\ntests. Thanks to this extensive testing we found and fixed a few more bugs in the Conway\\nimplementation. We fixed bugs related to DRep expiry and the choice of correct threshold for\\nthe committee voting. One important feature that was implemented is ignoring the\\nminimun committee size during the bootstrap phase, in order to avoid a deadlock situation in\\ncase that enough committeee members were to resign. We\'ve also improved the correctness of\\nour CDDL specification and improved the safety by restricting some of the types of\\nprotocol parameters.\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-4350] - Add identity instance for `Inject`\\n* [pull-4361] - Fixed a bug in RATIFY\\n* [pull-4358] - DRep expiry update with number of dormant epochs\\n* [pull-4365] - Create pool stake distribution query for voting\\n* [pull-4376] - Ignore `ppCommitteeMinSize` during bootstrap\\n* [pull-4364] - DRep state query and related tests\\n* [pull-4357] - Specify numeric ranges explicitly in conway cddl files\\n\\n### Testing and formal spec\\n\\n* [pull-4339] - `constrained-generators`: introduce tools for controlling test case distribution\\n* [pull-4348] - Conformance: GOVCERT\\n* [pull-4213] - Utxow Predicate failure tests\\n* [pull-4351] - Enable retrying flaky tests in nightly CI\\n* [pull-4345] - `constrained-generators`: Add `explanation :: [String] -> Pred fn -> Pred fn`\\n* [pull-4362] - Threshold translation in conformance testing\\n* [pull-4369] - `constrained-generators`: Add `flip_` to avoid having to add new native functions\\n* [pull-4377] - `constrained-generators`: propagate information backwards in the solver\\n* [pull-4389] - Fixed issue #4340. Problem with futurePParams not adequate in Conway.\\n* [pull-4378] - Conformance: POOL\\n* [pull-4388] - Improved the translation of `PParamUpdate` in conformance\\n* [pull-4355] - Fix order of arguments to verifyVrf\\n\\n### Infrastructure and releasing\\n\\n* [pull-4352] - Remove dependency on deprecated ansi-wl-print package\\n* [pull-4344] - `constrained-generators`: identify and fix an issue with big bodies to ifElse\\n* [pull-4338] - Add conformance testing for `ENACT`\\n* [pull-4354] - Added conformance test for `DELEG`\\n* [pull-4367] - Fixed `8.10` not building\\n* [pull-4368] - Ensure GitHub CI fails when tests are skipped due to a build failure\\n* [pull-4373] - Add -rtsopts to all test suites\\n\\n[pull-4339]: https://github.com/IntersectMBO/cardano-ledger/pull/4339\\n[pull-4348]: https://github.com/IntersectMBO/cardano-ledger/pull/4348\\n[pull-4350]: https://github.com/IntersectMBO/cardano-ledger/pull/4350\\n[pull-4352]: https://github.com/IntersectMBO/cardano-ledger/pull/4352\\n[pull-4213]: https://github.com/IntersectMBO/cardano-ledger/pull/4213\\n[pull-4351]: https://github.com/IntersectMBO/cardano-ledger/pull/4351\\n[pull-4355]: https://github.com/IntersectMBO/cardano-ledger/pull/4355\\n[pull-4344]: https://github.com/IntersectMBO/cardano-ledger/pull/4344\\n[pull-4338]: https://github.com/IntersectMBO/cardano-ledger/pull/4338\\n[pull-4354]: https://github.com/IntersectMBO/cardano-ledger/pull/4354\\n[pull-4361]: https://github.com/IntersectMBO/cardano-ledger/pull/4361\\n[pull-4345]: https://github.com/IntersectMBO/cardano-ledger/pull/4345\\n[pull-4362]: https://github.com/IntersectMBO/cardano-ledger/pull/4362\\n[pull-4367]: https://github.com/IntersectMBO/cardano-ledger/pull/4367\\n[pull-4368]: https://github.com/IntersectMBO/cardano-ledger/pull/4368\\n[pull-4369]: https://github.com/IntersectMBO/cardano-ledger/pull/4369\\n[pull-4377]: https://github.com/IntersectMBO/cardano-ledger/pull/4377\\n[pull-4373]: https://github.com/IntersectMBO/cardano-ledger/pull/4373\\n[pull-4358]: https://github.com/IntersectMBO/cardano-ledger/pull/4358\\n[pull-4365]: https://github.com/IntersectMBO/cardano-ledger/pull/4365\\n[pull-4376]: https://github.com/IntersectMBO/cardano-ledger/pull/4376\\n[pull-4364]: https://github.com/IntersectMBO/cardano-ledger/pull/4364\\n[pull-4357]: https://github.com/IntersectMBO/cardano-ledger/pull/4357\\n[pull-4389]: https://github.com/IntersectMBO/cardano-ledger/pull/4389\\n[pull-4378]: https://github.com/IntersectMBO/cardano-ledger/pull/4378\\n[pull-4388]: https://github.com/IntersectMBO/cardano-ledger/pull/4388"},{"id":"2024-06-05-mithril","metadata":{"permalink":"/2024-06-05-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-05-mithril.md","source":"@site/blog/2024-06-05-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-06-05T00:00:00.000Z","formattedDate":"June 5, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.22,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-06-05-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-06-05-ledger"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2024-06-05-node-cli-api"}},"content":"## High level overview\\n\\nThis week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They improved the throughput of the prover route of the aggregator by using resource pooling and made progress on low-latency certification by transitioning to a chain point-based beacon, which allows for faster transaction signing. They also kept investigating prover performance bottlenecks, worked on fixing a bug that caused unsigned transactions to appear as signed, and continued implementing the import of transactions with the ChainSync mini-protocol and Pallas.\\n\\nAdditionally, the team started preparing the threat modeling explainer for the documentation website and kept investigating some Cardano node error messages that could be caused by how the Pallas client handles connections to mini-protocols.\\n\\n## Low level overview\\n- Completed the issue **Implement Resource Pooling for Block Range Merkle maps** [#1698](https://github.com/input-output-hk/mithril/issues/1698)\\n- Completed the issue **Sign Cardano transactions with ChainPoint based beacon** [#1697](https://github.com/input-output-hk/mithril/issues/1697)\\n- Completed the issue **Cardano transactions prover performances drop with more than 5 transactions** [#1722](https://github.com/input-output-hk/mithril/issues/1722)\\n- Worked on the issue **Import Cardano transactions with `ChainReader`** [#1705](https://github.com/input-output-hk/mithril/issues/1705)\\n- Worked on the issue **Client verification fails with an already stored but non certified yet transaction** [#1719](https://github.com/input-output-hk/mithril/issues/1719)\\n- Worked on the issue **Computation of Merkle proof has bottleneck with multiple transactions** [#1730](https://github.com/input-output-hk/mithril/issues/1730)\\n- Worked on the issue **Threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Worked on the issue **Release `2423` distribution** [#1695](https://github.com/input-output-hk/mithril/issues/1695)\\n- Worked on the issue **Mithril Signer Local Error Policy : Error 182 - MuxError** [#1632](https://github.com/input-output-hk/mithril/issues/1632)"},{"id":"2024-06-05-node-cli-api","metadata":{"permalink":"/2024-06-05-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-05-node-cli-api.md","source":"@site/blog/2024-06-05-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2024-06-05T00:00:00.000Z","formattedDate":"June 5, 2024","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.245,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2024-06-05-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-06-05-mithril"},"nextItem":{"title":"Consensus Team Update","permalink":"/2024-05-29-consensus"}},"content":"# 2024-05-13 - 2024-06-05\\n\\n## High level summary\\n\\nCARDANO NODE\\n- In order to avoid an accidental hardfork, when \\"ConwayGenesisFile\\" is not set in the node configuration file, by default the node can only understand protocol version 8 (Babbage era).\\n\\nCARDANO CLI \\n- `query protocol-parameters` now shows Conway era protocol parameters when in Conway. \\n- `transaction view` now shows proposales and votes inside a transaction body. \\n- Release of cardano-cli 8.23.1.0 \\n- We now publish pre-compiled binaries of each release together with the corresponding SHA256Sum. \\n\\nCARDANO-API \\n- Release of 8.46.0.0\\n\\n## Details\\n### cardano-cli\\n\\n- [New `debug log-epoch-state` command](https://github.com/IntersectMBO/cardano-cli/pull/775)\\n- [transaction view: show proposals and votes](https://github.com/IntersectMBO/cardano-cli/pull/774)\\n- [Make `--fee` mandatory in `transaction build-raw`](https://github.com/IntersectMBO/cardano-cli/pull/768)\\n- [Release 8.23.1.0 (for node-8.11.0)](https://github.com/IntersectMBO/cardano-cli/pull/761)\\n- [query protocol-parameters: use ledger JSON encoding, not API one](https://github.com/IntersectMBO/cardano-cli/pull/758)\\n\\n### cardano-api\\n\\n- [Release `cardano-api-8.46.0.0`](https://github.com/IntersectMBO/cardano-api/pull/535)\\n - Updated cardano-ledger, ouroboros-consensus and plutus packages.\\n - Added FailT dependency.\\n - Updated conwayGenesisDefaults and alonzoGenesisDefaults.\\n - Changed CostModel to use Int64 instead of Integer.\\n - Fixed ProtocolParameters golden test to account for the Integer -> Int64 change in the CostModel. (breaking, test) PR 523\\n\\n### cardano-node\\n\\n- [Enforce protocol version 8 if \\"ConwayGenesisFile\\" is not set in node configuration](https://github.com/IntersectMBO/cardano-node/pull/5858)\\n\\n### cardano-testnet\\n\\n- [Add tallying of votes to the \\"Motion of no confidence\\" test](https://github.com/IntersectMBO/cardano-node/pull/5870)\\n- [Simplify epoch state diff logging](https://github.com/IntersectMBO/cardano-node/pull/5863)\\n- [Fix GHC 9.8 build](https://github.com/IntersectMBO/cardano-node/pull/5862)\\n- [Use TestWatchdog from hedgehog-extras.](https://github.com/IntersectMBO/cardano-node/pull/5857)\\n- [Improve `NewEpochState` logging](https://github.com/IntersectMBO/cardano-node/pull/5854)\\n- [hlint: fix cardano-testnet-test](https://github.com/IntersectMBO/cardano-node/pull/5845)\\n- [Use waiting for blocks instead epochs, when waiting for new UTXOs](https://github.com/IntersectMBO/cardano-node/pull/5843)\\n- [Refactor: Reorganize testnet CLI functions](https://github.com/IntersectMBO/cardano-node/pull/5840)"},{"id":"2024-05-29-consensus","metadata":{"permalink":"/2024-05-29-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-29-consensus.md","source":"@site/blog/2024-05-29-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2024-05-29T00:00:00.000Z","formattedDate":"May 29, 2024","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.285,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2024-05-29-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2024-06-05-node-cli-api"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-05-29-mithril"}},"content":"## High level summary\\n\\n- Updated UTXO-HD to use simple diffs which drastically improved the mempool benchmarks ([#1114](https://github.com/IntersectMBO/ouroboros-consensus/issues/1114)).\\n- Helped `quickcheck-state-machine` to release version 0.10.0 ([#48](https://github.com/stevana/quickcheck-state-machine/pull/48)). We rely on this library for our high-assurance property-tests.\\n- Rebased UTXO-HD on top of node 8.11 ([#1121](https://github.com/IntersectMBO/ouroboros-consensus/pull/1121)). A replay with the in-memory backend took 5:05 hours up to slot 124M."},{"id":"2024-05-29-mithril","metadata":{"permalink":"/2024-05-29-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-29-mithril.md","source":"@site/blog/2024-05-29-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-05-29T00:00:00.000Z","formattedDate":"May 29, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.425,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-05-29-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2024-05-29-consensus"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-05-27-hydra"}},"content":"## High level overview\\n\\nThis week, the Mithril team released a new [**Mithril protocol insights dashboard**](https://lookerstudio.google.com/u/0/reporting/8b05ea4b-6a43-45ea-aef2-237906ec7a42/page/kem0D?s=oi6CR5eZrnQ) and a new explorer page displaying active and deregistered SPOs for the latest Cardano epochs. They also continued implementing the certification of Cardano transactions in Mithril networks by improving the throughput of the prover route of the aggregator and making progress on low-latency certification by completing the implementation of a chain block reader from the Cardano mini-protocol with Pallas.\\n\\nAdditionally, the team started working on a new beacon for signing Cardano transactions based on the chain point. Finally, they refactored the persistence library, enhanced their testing tools for Cardano transactions, and fixed a block parsing problem that prevented the signature of Cardano transactions in the test networks.\\n\\n## Low level overview\\n- Released the [**Mithril Protocol Insights Dashboard**](https://lookerstudio.google.com/u/0/reporting/8b05ea4b-6a43-45ea-aef2-237906ec7a42/page/kem0D?s=oi6CR5eZrnQ)\\n- Completed the issue **Prototype optimizations for increasing Cardano transactions proof generation throughput** [#1687](https://github.com/input-output-hk/mithril/issues/1687)\\n- Completed the issue **Retrieve Cardano blocks with `chainsync` in `pallas` PoC** [#1590](https://github.com/input-output-hk/mithril/issues/1590)\\n- Completed the issue **Explorer display in/out SPOs in registered signers page** [#1686](https://github.com/input-output-hk/mithril/issues/1686)\\n- Completed the issue **Create a test Cardano transactions builder** [#1667](https://github.com/input-output-hk/mithril/issues/1667)\\n- Completed the issue **Cardano signatures are not produced on `testing-sanchonet` and `testing-mainnet`** [#1681](https://github.com/input-output-hk/mithril/issues/1681)\\n- Completed the issue **Remove `snapshot` command in client CLI** [#1690](https://github.com/input-output-hk/mithril/issues/1690)\\n- Completed the issue **Block Streamer returns `ChainScannedBlocks`** [#1704](https://github.com/input-output-hk/mithril/issues/1704)\\n- Completed the issue **Remove connections coupling with providers in database** [#1711](https://github.com/input-output-hk/mithril/issues/1711)\\n- Worked on the issue **Implement Resource Pooling for Block Range Merkle maps** [#1698](https://github.com/input-output-hk/mithril/issues/1698)\\n- Worked on the issue **Sign Cardano transactions with ChainPoint based beacon** [#1697](https://github.com/input-output-hk/mithril/issues/1697)\\n- Worked on the issue **Import Cardano transactions with `ChainReader`** [#1705](https://github.com/input-output-hk/mithril/issues/1705)\\n- Worked on the issue **Mithril Signer Local Error Policy : Error 182 - MuxError** [#1632](https://github.com/input-output-hk/mithril/issues/1632)"},{"id":"2024-05-27-hydra","metadata":{"permalink":"/2024-05-27-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-27-hydra.md","source":"@site/blog/2024-05-27-hydra.md","title":"Hydra Team Update","description":"High-level Summary","date":"2024-05-27T00:00:00.000Z","formattedDate":"May 27, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.8,"hasTruncateMarker":false,"authors":[{"name":"Daniel Firth","title":"Hydra Software Engineer","url":"https://github.com/locallycompact","imageURL":"https://github.com/locallycompact.png","key":"locallycompact"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-05-27-hydra","authors":["locallycompact"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-05-29-mithril"},"nextItem":{"title":"Performance & Tracing Update","permalink":"/2024-05-24-performance-and-tracing"}},"content":"### High-level Summary\\n\\nThis sprint, the Hydra team released version 0.17.0 of the hydra-node, containing the new blueprint commit transaction mechanism and upgrades to the networking protocol incorporated over the last several weeks. We also completed several documentation upgrades.\\n\\nNext sprint, we aim to focus the outstanding increment decommit work, completing the model tests for it as well as investigating adversarial attacks on the smart contract.\\n\\n### What did the team achieve this sprint?\\n\\n* Combine blueprint and commit tx metadata [#1409](https://github.com/input-output-hk/hydra/pull/1409)\\n* Diagnose currently stuck head. [#1415](https://github.com/input-output-hk/hydra/pull/1415)\\n* Document offline mode [#1414](https://github.com/input-output-hk/hydra/pull/1414)\\n* Document writing an Event Sink and Source [#1413](https://github.com/input-output-hk/hydra/pull/1413)\\n* Streaming Plugins [#1325](https://github.com/input-output-hk/hydra/pull/1325)\\n* Ensure -Werror is running in CI. [#1426](https://github.com/input-output-hk/hydra/pull/1426)\\n* Release [hydra-node-0.17.0](https://github.com/input-output-hk/hydra/blob/0.17.0/CHANGELOG.md)\\n\\n### What are the goal of the next sprint?\\n\\n* Update to cardano-node 8.11-pre [#1439](https://github.com/input-output-hk/hydra/pull/1439)\\n* Incremental decommit [#1057](https://github.com/input-output-hk/hydra/pull/1057)\\n* Make progress on the design for incremental commit [#199](https://github.com/input-output-hk/hydra/pull/199)\\n* Reopen a head to test blueprint commits.\\n* Test combinations of decrement/close/fanout [#1390](https://github.com/input-output-hk/hydra/pull/1390)"},{"id":"2024-05-24-performance-and-tracing","metadata":{"permalink":"/2024-05-24-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-24-performance-and-tracing.md","source":"@site/blog/2024-05-24-performance-and-tracing.md","title":"Performance & Tracing Update","description":"High level summary","date":"2024-05-24T00:00:00.000Z","formattedDate":"May 24, 2024","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":3.87,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & Tracing Update","slug":"2024-05-24-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-05-27-hydra"},"nextItem":{"title":"SRE Team Update","permalink":"/2024-05-24-sre"}},"content":"## High level summary\\n\\n* Benchmarking: Node versions `8.9.3` and `8.11.0`; new `PlutusV3` plus addtional `DRep` benchmarks; re-evaluation of network latency.\\n* Development: BLST workload for PlutusV3 was implemented; improved error/shutdown behaviour for `tx-generator` is in testing phase.\\n* Workbench: UTxO-HD tracer configs harmonized. New `plutusv3` profiles supporting experimental budgets. Work on Haskell profile definition is in validation phase.\\n* Tracing: New metrics and handle registry feature merged to `master`. Work on metrics naming ongoing. Factoring out RTView component has begun.\\n\\n\\n## Low level overview\\n\\n\\n### Benchmarking\\n\\nRuns and analyses of full sets of release benchmarks have been performed for Node versions `8.9.3` and `8.11.0`. \\n\\nFor comparison of how the Conway ledger performs when injecting large amounts of `DRep`s and delegations versus one with zero `DReps` we\'ve run additional configurations with existing workloads from release benchmarking. So far we\'ve found\\nthat the number of `DReps` in ledger scales well and does not lead to notable performance penalties. \\n\\nAdditionally, we\'ve successfully run the baseline for the upcoming `PlutusV3` benchmarks on our Nomad cluster. Those will, given the new V3 cost model, serve to determine headroom, or constraint, regarding resource usage and network metrics when\\noperating under various execution budgets. \\n\\nLast not least, with much appreciated support and feedback from the network team, we performed a re-evaluation of the network the latency matrix for our benchmarking cluster. The cluster stretches over three regions globally. Due to unknown changes in the underlying\\nhardware infrastructure, a slight delay between Europe and Asia/Pacific regions could be measured. We needed to adjust some existing baselines accordingly - otherwise, this delay could be falsely attributed to a software regression.\\n\\n### Development\\n\\nWe have implemented a benchmarking workload using `PlutusV3`\'s new BLST internals. As those do little memory allocation, but require more CPU steps, this workload will allow us to focus on that particular aspect of block and transaction budgets.\\n \\n\\nThe `tx-generator` service will now label each submission thread with its submission target. Additionally, it has been equipped with custom signal handlers. This will improve both how gracefully shutdowns can be performed, and how\\nprecise error reporting is done when losing connection to a submission target. Last not least, the service now supports a configurable `KeepAlive` timeout for the `NodeToNode` mini-protocol - accounting for very long major GC pauses on\\nsubmission targets under very specific benchmarking workloads. Those features have entered testing phase. \\n\\n### Workbench\\n\\nThanks to feedback from the consensus team, we\'ve harmonized tracing configurations for our benchmarks between regular and UTxO-HD node. As the latter is more verbose by default, this is a confounding factor for our metrics: We\'re analysing north\\nof 90 traces per second per cluster node, so all node flavours are required to be equally verbose. \\n\\nThe benchmarks based on the BLST workload now additionally support scaling budget components up or down at will. This means we can run a given cost model against custom execution budgets, controlling the point where the workload will exhaust it. This enables comparison\\nof performance impact of potential changes to those budgets. \\n\\nPorting our performance workbench\'s profile definitions to Haskell has been nearly completed, and an adequate test suite been implemented. This new component has now entered validation phase to make sure it correctly replicates all existing profile content.\\n\\n### Tracing\\n\\nTwo new metrics for `cardano-node` have landed in `master` - both for new and legacy tracing systems. They provide detailed build info, and indicate wether the node is a block producer or not. \\n\\nWe\'re now working on closing the gap in the metric naming schema between new and legacy tracing. The aim is to allow for a seamless interchange, without additional configuration required, so that all existing monitoring services can rely on identical metric\\nnames with identical semantics. \\n\\nFurthermore, work has begun to factor out the RTView (\\"real-time view\\") component of `cardano-tracer` in the new tracing system. Unfortunately, the component has remained in prototype stage for over a year, and has revealed some design shortcomings. It\'s aim\\nis to provide an interactive, real-time dashboard based on metrics from all nodes connected to `cardano-tracer`. The current design has all front-end side code baked into the backend service, requiring to rebuild the entire service in Haskell even for simple changes in the\\ndashboard. We decided to isolate the component in the current code base, which still allows for optionally enabling it for a build. The long term goal however is to convert it into a downstream service: It will ingest metrics by reforwarding, or querying a REST API, and will provide\\na clear separation of frontend facing code. Thus we, and anybody, can use their favourite web technology for visualization of metrics."},{"id":"2024-05-24-sre","metadata":{"permalink":"/2024-05-24-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-24-sre.md","source":"@site/blog/2024-05-24-sre.md","title":"SRE Team Update","description":"High level summary","date":"2024-05-24T00:00:00.000Z","formattedDate":"May 24, 2024","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.53,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2024-05-24-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Update","permalink":"/2024-05-24-performance-and-tracing"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-05-22-ledger"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general\\nenvironment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n\\n* Sanchonet was respun for cardano-node `8.11.0-pre`\\n\\n* Private chain was respun twice for pre-sancho respin testing and short epoch\\n testing with cardano-node `8.11.0-pre`\\n\\n* Shelley-qa, two-thirds of preview and one-third of preprod networks were\\n deployed to cardano-node `8.11.0-pre`\\n\\n* Sanchonet, private chain and shelley-qa networks had dbsync `sancho-4-3-0`\\n deployed\\n\\n* A dbsync `show_current_forging` prepared statement was added to the\\n cardano-parts `profile-cardano-postgres` nixosModule to aid with debugging\\n chain quality issues\\n\\n* Three documents were added to cardano-playground to better explain some\\n operations procedures: KES rotation, chain quality debugging and new network\\n creation. Found at:\\n [docs/explain](https://github.com/input-output-hk/cardano-playground/tree/main/docs/explain)\\n\\n* A new mithril dashboard template is available in cardano-parts\\n\\n## Lower level summary\\n\\n### Capkgs:\\n* Avoid git API rate limit errors on update github action via netrc usage and\\n corresponding secret:\\n [capkgs-commit](https://github.com/input-output-hk/capkgs/commit/1f3bf0a49e79d71d593f7de80ed783e5e2cb7053)\\n\\n### Cardano-parts\\n* Sets cardano-node-ng to `8.11.0-pre` and cardano-db-sync-ng to `sancho-4-3-0`.\\n Adds a dbsync prepared statement, mithril dashboard template, updates the\\n node application dashboard template, improves justfile recipe templates and\\n tunes some systemd dependencies. Iohk-nix-ng was updated for sanchonet and\\n private chain respins. More detail is available in the PR description:\\n [cardano-parts-pull-41](https://github.com/input-output-hk/cardano-parts/pull/41)\\n\\n### Cardano-mainnet\\n* Rotates KES, pins iogp4 as `-ng`, adds a mithril dashboard, updates the node\\n application dashboard, improves justfile recipes and tunes systemd node and\\n mithril services to avoid some edge case errors. See the PR description for\\n more details:\\n [cardano-mainnet-pull-15](https://github.com/input-output-hk/cardano-mainnet/pull/15)\\n\\n### Cardano-ogmios\\n* Build ogmios `v6.3.0` with nix:\\n [cardano-ogmios-branch-compare](https://github.com/input-output-hk/cardano-ogmios/compare/main...ogmios-6-3-0)\\n\\n### Cardano-playground\\n* Respins sancho and private chains and deploys cardano-node `8.11.0-pre` and\\n cardano-db-sync `sancho-4-3-0` to appropriate envs and machines. Adds a mithril\\n dashboard template, updates the node application dashboard template, improves\\n justfile recipe templates. Adds three new explainer readme documents. See the\\n PR description for more details:\\n [cardano-playground-pull-24](https://github.com/input-output-hk/cardano-playground/pull/24)"},{"id":"2024-05-22-ledger","metadata":{"permalink":"/2024-05-22-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-22-ledger.md","source":"@site/blog/2024-05-22-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-05-22T00:00:00.000Z","formattedDate":"May 22, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.185,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-05-22-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2024-05-24-sre"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-05-22-mithril"}},"content":"## High level summary\\n\\nMost of the focus was on the conformance testing this time around. We had completed\\nconformance tests for `CERT` and `RATIFY` rules and progressed on some of the others. This\\nalso resulted in some improvements to the `constraint-generators` framework. Besides that\\nwe\'ve also fixed Stake Pool Operator stake distribution calculation that is used for\\nvoting by including proposal deposits that are currently locked in the system. One of the\\nLedger team members was also performing duties of a release engineer, so we also\\nfacilitated the latest `cardano-node-8.11` release.\\n\\n## Low level summary\\n\\n### Features and fixes\\n\\n* [pull-4324] - Proposal deposits in SPO voting stake\\n* [pull-4316] - Complete `EraScript` hierarchy with missing classes\\n* [pull-4287] - Fix various minor issues in the Shelley & Babbage specs\\n\\n### Testing\\n\\n* [pull-4320] - `CERT` conformance\\n* [pull-4334] - `RATIFY` conformance\\n* [pull-4337] - Fix `RATIFY` conformance\\n* [pull-4325] - `constrained-generators`: soundness tests and bugfixes\\n* [pull-4323] - `constrained-generators`: clean up interface\\n* [pull-4336] - `constrained-generators`: Introduce `fromList_ :: (HasSpec fn a, Ord a) => Term fn [a] -> Term fn (Set a)`\\n\\n### Infrastructure and releasing\\n\\n* [pull-4333] - Fix `babbage-test` and `conway-test` versions\\n* [pull-4332] - Update `CHANGELOG`s\\n* [pull-4343] - Bump requests from 2.31.0 to 2.32.0 in /doc\\n\\n[pull-4333]: https://github.com/IntersectMBO/cardano-ledger/pull/4333\\n[pull-4324]: https://github.com/IntersectMBO/cardano-ledger/pull/4324\\n[pull-4323]: https://github.com/IntersectMBO/cardano-ledger/pull/4323\\n[pull-4332]: https://github.com/IntersectMBO/cardano-ledger/pull/4332\\n[pull-4320]: https://github.com/IntersectMBO/cardano-ledger/pull/4320\\n[pull-4325]: https://github.com/IntersectMBO/cardano-ledger/pull/4325\\n[pull-4334]: https://github.com/IntersectMBO/cardano-ledger/pull/4334\\n[pull-4316]: https://github.com/IntersectMBO/cardano-ledger/pull/4316\\n[pull-4287]: https://github.com/IntersectMBO/cardano-ledger/pull/4287\\n[pull-4343]: https://github.com/IntersectMBO/cardano-ledger/pull/4343\\n[pull-4337]: https://github.com/IntersectMBO/cardano-ledger/pull/4337\\n[pull-4336]: https://github.com/IntersectMBO/cardano-ledger/pull/4336"},{"id":"2024-05-22-mithril","metadata":{"permalink":"/2024-05-22-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-22-mithril.md","source":"@site/blog/2024-05-22-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-05-22T00:00:00.000Z","formattedDate":"May 22, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.355,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-05-22-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-05-22-ledger"},"nextItem":{"title":"Consensus Team Update","permalink":"/2024-05-15-consensus"}},"content":"## High level overview\\n\\nThis week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling proof generation for `mainnet` by prototyping optimizations and benchmarking performance improvements. They also made progress on low-latency certification by completing the retrieval of the chain tip and importing transactions from the Cardano mini-protocol with Pallas. Additionally, they worked on a new explorer page to display in/out SPOs for the latest Cardano epochs.\\n\\nFinally, the team upgraded the `testing-sanchonet` network following the `SanchoNet` network respin, created a module for building test transactions, and began removing the deprecated `snapshot` command from the client CLI.\\n\\n## Low level overview\\n\\n- Completed the issue **Aggregator stress test crashes during signer registration** [#1676](https://github.com/input-output-hk/mithril/issues/1676)\\n- Completed the issue **Prune Cardano transactions stored on signer** [#1645](https://github.com/input-output-hk/mithril/issues/1645)\\n- Completed the issue **`ChainObserver` supports retrieving the Chain Point of the tip of the chain** [#1589](https://github.com/input-output-hk/mithril/issues/1589)\\n- Completed the issue **Prepare `testing-sanchonet` for respin with Cardano `8.11-pre`** [#1694](https://github.com/input-output-hk/mithril/issues/1694)\\n- Completed the issue **MacOS Rust tests are flaky in CI** [#1556](https://github.com/input-output-hk/mithril/issues/1556)\\n- Worked on the issue **Prototype optimizations for increasing Cardano transactions proof generation throughput** [#1687](https://github.com/input-output-hk/mithril/issues/1687)\\n- Worked on the issue **Retrieve Cardano blocks with `chainsync` in `pallas` PoC** [#1590](https://github.com/input-output-hk/mithril/issues/1590)\\n- Worked on the issue **Explorer display in/out SPOs in registered signers page** [#1686](https://github.com/input-output-hk/mithril/issues/1686)\\n- Worked on the issue **Create a test Cardano transactions builder** [#1667](https://github.com/input-output-hk/mithril/issues/1667)\\n- Worked on the issue **Cardano signatures are not produced on `testing-sanchonet` and `testing-mainnet`** [#1681](https://github.com/input-output-hk/mithril/issues/1681)\\n- Worked on the issue **Remove `snapshot` command in client CLI** [#1690](https://github.com/input-output-hk/mithril/issues/1690)\\n- Worked on the issue **Mithril Signer Local Error Policy : Error 182 - MuxError** [#1632](https://github.com/input-output-hk/mithril/issues/1632)"},{"id":"2024-05-15-consensus","metadata":{"permalink":"/2024-05-15-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-15-consensus.md","source":"@site/blog/2024-05-15-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2024-05-15T00:00:00.000Z","formattedDate":"May 15, 2024","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.545,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2024-05-15-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-05-22-mithril"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-05-15-mithril"}},"content":"## High level summary\\n\\n\\n- Released Consensus for Node 8.11 ([#1101](https://github.com/IntersectMBO/ouroboros-consensus/pull/1101))\\n- Improved the Praos chain order:\\n - Restricted VRF tiebreaker based on slot distance ([#1047](https://github.com/IntersectMBO/ouroboros-consensus/pull/1047))\\n - Small tweak to the issue number tiebreaker ([#1086](https://github.com/IntersectMBO/ouroboros-consensus/pull/1086))\\n- Wrote overview on the statistics on the leader schedule ([#1096](https://github.com/IntersectMBO/ouroboros-consensus/pull/1096))\\n- Integrated robustness refinement for concluding that a node is caught up in the context of bootstrap peers ([#1031](https://github.com/IntersectMBO/ouroboros-consensus/pull/1031))\\n- The P&T team managed to complete the UTXO-HD benchmarks using the LMDB backend and the [results](https://updates.cardano.intersectmbo.org/2024-05-07-performance-and-tracing#utxo-hd--lmdb) are promising.\\n- We\'re working on setting up the Consensus Technical Working Group within Intersect, so if you\'d like to participate please reach out to [Damian Nadales](mailto:damian.nadales@iohk.io)."},{"id":"2024-05-15-mithril","metadata":{"permalink":"/2024-05-15-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-15-mithril.md","source":"@site/blog/2024-05-15-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-05-15T00:00:00.000Z","formattedDate":"May 15, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.83,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-05-15-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2024-05-15-consensus"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2024-05-13-node-cli-api"}},"content":"## High level overview\\n\\nThis week, the Mithril team released the new distribution [`2418.1`](https://github.com/input-output-hk/mithril/releases/tag/2418.1), which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes aimed at preventing memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for `mainnet`. Specifically, they completed the implementation of compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges and initiated testing and assessing performance on `mainnet` in a test Mithril network. Additionally, they started working on minimizing the extra disk space requirements for the signer on the SPO infrastructure.\\n\\nFinally, the team implemented some optimizations for the aggregator, fixed some bugs on the client, and introduced new documentation for compiling the Mithril relay from source.\\n\\n## Low level overview\\n- Released the new distribution [`2418.1`](https://github.com/input-output-hk/mithril/releases/tag/2418.1)\\n- Completed the issue **Use Block Range Merkle roots to sign Cardano transactions** [#1634](https://github.com/input-output-hk/mithril/issues/1634)\\n- Completed the issue **Use Block Range Merkle roots to prove Cardano transactions** [#1635](https://github.com/input-output-hk/mithril/issues/1635)\\n- Completed the issue **Deploy Cardano transactions to `testing-mainnet`** [#1647](https://github.com/input-output-hk/mithril/issues/1647)\\n- Completed the issue **Consistent sorting of transactions from `GetCardanoTransactionProvider` in signer and aggregator** [#1657](https://github.com/input-output-hk/mithril/issues/1657)\\n- Completed the issue **Use SQLite transactions when inserting `Cardano Transactions` and `Block Range Roots`** [#1656](https://github.com/input-output-hk/mithril/issues/1656)\\n- Completed the issue **Implement `Ord` on `SignedEntityTypeDiscriminants`** [#1648](https://github.com/input-output-hk/mithril/issues/1648)\\n- Completed the issue **Merkle roots don\'t have fixed size in the `block_range_root` table** [#1668](https://github.com/input-output-hk/mithril/issues/1668)\\n- Completed the issue **Refactor Cardano transactions database layer in persistence for signer and aggregator** [#1677](https://github.com/input-output-hk/mithril/issues/1677)\\n- Completed the issue **Some timing tests fail on ARM** [#1466](https://github.com/input-output-hk/mithril/issues/1466)\\n- Completed the issue **Add Mithril networks configurations in `networks.json`** [#1638](https://github.com/input-output-hk/mithril/issues/1638)\\n- Completed the issue **Add section for manual setup of squid in SPO guide** [#1610](https://github.com/input-output-hk/mithril/issues/1610)\\n- Worked on the issue **Aggregator stress test crashes during signer registration** [#1676](https://github.com/input-output-hk/mithril/issues/1676)\\n- Worked on the issue **Prune Cardano transactions stored on signer** [#1645](https://github.com/input-output-hk/mithril/issues/1645)\\n- Worked on the issue **`ChainObserver` supports retrieving the Chain Point of the tip of the chain** [#1589](https://github.com/input-output-hk/mithril/issues/1589)\\n- Worked on the issue **Retrieves Cardano blocks with `chainsync` in `pallas` PoC** [#1590](https://github.com/input-output-hk/mithril/issues/1590)\\n- Worked on the issue **Mithril Signer Local Error Policy : Error 182 - MuxError** [#1632](https://github.com/input-output-hk/mithril/issues/1632)"},{"id":"2024-05-13-node-cli-api","metadata":{"permalink":"/2024-05-13-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-13-node-cli-api.md","source":"@site/blog/2024-05-13-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2024-05-13T00:00:00.000Z","formattedDate":"May 13, 2024","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.275,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2024-05-13-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-05-15-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-05-10-hydra"}},"content":"# 2024-04-27 - 2024-05-13\\n\\n## High level summary\\n\\nEnhancements to the CLI encompass several noteworthy additions. These include the introduction of a new hardfork initiation command, rendering --prev-governance-action-tx-id optional for create-no-confidence actions, addressing scenarios where the committee is defined in the Conway Genesis file, and refining help texts. Additionally, there have been updates to the description fields in governance action files.\\n\\nAdjust maximum understood protocol version from 9 to 10 when the experimental hardforks flag is enabled. This allows us to bypass Conway\'s bootstrap phase in testing\\n\\nContinued work in testing implementation of CIP1694 with cardano-testnet. \\n\\n### cardano-cli\\n\\n- [Make `--prev-governance-action-tx-id` and `--prev-governance-action-tx-id` optional for `create-no-confidence` command](https://github.com/IntersectMBO/cardano-cli/pull/753)\\n- [Clarify help texts related to JSON and CBOR](https://github.com/IntersectMBO/cardano-cli/pull/751)\\n- [Release 8.23.0.0 + upgrade cardano-api to 8.45.2.0](https://github.com/IntersectMBO/cardano-cli/pull/749)\\n- [Export friendly function that returns ByteString + export buildShelleyAddress](https://github.com/IntersectMBO/cardano-cli/pull/748)\\n- [action create-hardfork cmd + update description fields in all governance action files.](https://github.com/IntersectMBO/cardano-cli/pull/746)\\n- [Export toTxOutInAnyEra](https://github.com/IntersectMBO/cardano-cli/pull/745)\\n- [Enable manual specification of execution units for plutus voting and proposing scripts](https://github.com/IntersectMBO/cardano-cli/pull/744)\\n\\n### cardano-api\\n\\n- [Release cardano-api-8.45.2.0](https://github.com/IntersectMBO/cardano-api/pull/528)\\n- [Update estimateBalancedTxBody to account for required deposits ](https://github.com/IntersectMBO/cardano-api/pull/527)\\n\\n### cardano-node\\n\\n- [Count votes in Propose Constitution test before ratification](https://github.com/IntersectMBO/cardano-node/pull/5827)\\n- [Adjust maximum understood protocol version from 9 to 10](https://github.com/IntersectMBO/cardano-node/pull/5820)\\n\\n### cardano-testnet\\n\\n- [Refactor: Use KeyPair type for key pairs in cardano-testnet](https://github.com/IntersectMBO/cardano-node/pull/5829)\\n- [Count votes in Propose Constitution test before ratification](https://github.com/IntersectMBO/cardano-node/pull/5827)\\n- [Disable DRep Activity test ](https://github.com/IntersectMBO/cardano-node/pull/5825)\\n- [Reorganize cardano-testnet](https://github.com/IntersectMBO/cardano-node/pull/5824)\\n- [cardano-testnet: Add new constitutional committee](https://github.com/IntersectMBO/cardano-node/pull/5821)\\n- [Enable epoch state logging by default](https://github.com/IntersectMBO/cardano-node/pull/5818)\\n- [Refactor `ProposeNewConstitutionSPO` test to reuse code](https://github.com/IntersectMBO/cardano-node/pull/5816)\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2024-05-10-hydra","metadata":{"permalink":"/2024-05-10-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-10-hydra.md","source":"@site/blog/2024-05-10-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2024-05-10T00:00:00.000Z","formattedDate":"May 10, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.63,"hasTruncateMarker":false,"authors":[{"name":"Daniel Firth","title":"Hydra Software Engineer","url":"https://github.com/locallycompact","imageURL":"https://github.com/locallycompact.png","key":"locallycompact"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-05-10-hydra","authors":["locallycompact"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2024-05-13-node-cli-api"},"nextItem":{"title":"SRE Team Update","permalink":"/2024-05-10-sre"}},"content":"### High-level summary\\n\\nThis week, the Hydra team upgraded the hydra-node networking layer to use a versioned handshake protocol, as well as extensive documentation restructuring and bug fixes to the hydra-tui.\\n\\n### What did the team achieve this week\\n\\n- Use versioned hadshake when connecting hydra-nodes.\\n- Restructure documentation.\\n- Fixed the transaction envelope type parsing in order to be compatible with cardano-cli and update our docs.\\n- Show the contestations in the hydra-tui\\n- Experiment with removing persistence in the reliability layer and adding custom command to Reset the head state to the last confirmed snapshot\\n\\n### What are the goals of next week\\n\\n- Provide aarch64-linux docker images for hydra-node.\\n- Release hydra-node 0.17.0\\n- Finish new model spec changes related to decommit testing"},{"id":"2024-05-10-sre","metadata":{"permalink":"/2024-05-10-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-10-sre.md","source":"@site/blog/2024-05-10-sre.md","title":"SRE Team Update","description":"High level summary","date":"2024-05-10T00:00:00.000Z","formattedDate":"May 10, 2024","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.69,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2024-05-10-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-05-10-hydra"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-05-08-ledger"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general\\nenvironment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* A preview of the new cardano tracing system is available by using the\\n `profile-cardano-node-new-tracing` new nixosModule from cardano-parts and is\\n complemented with new tracing system dashboards and alerts\\n\\n* Custom cardano metrics can be pushed to a statsd server and then scraped to a\\n monitoring solution using the `profile-cardano-custom-metrics` new\\n nixosModule from cardano-parts\\n\\n* A new cardano-parts job for spinning up clusters using a recent cardano-cli\\n command, create-testnet-data, was implemented: `.#job-gen-custom-node-config-data`\\n\\n## Lower level summary\\n\\n### Cardano-faucet\\n* Cardano-faucet was upgraded to use the latest cardano-api and cardano-cli\\n versions:\\n [cardano-faucet-pull-10](https://github.com/input-output-hk/cardano-faucet/pull/10)\\n\\n### Cardano-parts\\n* Sets cardano-faucet-ng to 8.10, and mithril\\\\[-ng\\\\] to 2418-1. A preview\\n nixosModule for cardano-node\'s new tracing system has been added as well as a\\n cardano custom-metrics module. Dashboards have been added for the new tracing\\n system. Cardano-node alerts have been refactored into several rulesets which\\n include some new alerts as well as new tracing system alerts. A job for\\n spinning a cardano cluster up using a new underlying cardano-cli mechanism,\\n create-testnet-data, was added. More detail is available in the PR description:\\n [cardano-parts-pull-40](https://github.com/input-output-hk/cardano-parts/pull/40)\\n\\n### Cardano-mainnet\\n* Sets mithril to 2418-1. Cardano-node alerts have been refactored into\\n several rulesets which include some new alerts as well as new tracing system\\n alerts. See the PR description for more details:\\n [cardano-mainnet-pull-14](https://github.com/input-output-hk/cardano-mainnet/pull/14)\\n\\n### Cardano-perf\\n* Cluster scaling changes and minor improvments to the perf machine cluster:\\n [cardano-perf-compare](https://github.com/input-output-hk/cardano-perf/compare/3cce0de...5631a13)\\n\\n### Cardano-playground\\n* Sets cardano-faucet-ng to 8.10 which fixes a sanchonet faucet instability, and\\n mithril\\\\[-ng\\\\] to 2418-1. Adds a new cardano-node tracing system preview to some\\n machines with corresponding dashboards. Cardano-node alerts have been\\n refactored into several rulesets which include some new alerts as well as new\\n tracing system alerts. A job for spinning a cardano cluster up using a new\\n underlying cardano-cli mechanism, create-testnet-data, was added and integrated\\n with the Justfile start-demo recipe. Includes other misc tuning and\\n improvements. See the PR description for more details:\\n [cardano-playground-pull-23](https://github.com/input-output-hk/cardano-playground/pull/23)"},{"id":"2024-05-08-ledger","metadata":{"permalink":"/2024-05-08-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-08-ledger.md","source":"@site/blog/2024-05-08-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-05-08T00:00:00.000Z","formattedDate":"May 8, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.325,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-05-08-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2024-05-10-sre"},"nextItem":{"title":"Performance & Tracing Update","permalink":"/2024-05-07-performance-and-tracing"}},"content":"## High level summary\\n\\nSome of the most important and final Conway features were implemented since the last report:\\n\\n* Bootstrap phase is fully implemented\\n* `HardForkInitiaztion` governance action will now correctly take us into the next era\\n that will follow the Conway era.\\n* DRep stake distribution now also includes the amount in the reward account and deposits\\n that were left for the governance proposals.\\n* `CostModels` updates for plutus scripts made more flexible, which will allow us adding\\n new primitives for all plutus versions starting with the Conway era.\\n\\nAs always, besides new features, we also wrote a lot of testing functionality. We now have\\nour first and fully functional conformance test for a `GOV` rule, with a few more in the\\nworks. Many improvements and bugfixes to constraint based generating functionality. Last,\\nbut not least, we did a major and long awaited improvement to our CI setup that makes it\\nmuch easier to spot failing tests and deal with potential flakiness.\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-4275] - Restrict gov actions during bootstrap\\n* [pull-4253] - Hardfork Initiation into a new era\\n* [pull-4273] - DRepDistr: Iterate over the DRep delegations in UMap\\n* [pull-4309] - Add proposal deposits to DRep active voting stake.\\n* [pull-4284] - Flexible costmodel params\\n* [pull-4328] - Disable drep thresholds in bootstrap\\n\\n### Testing\\n\\n* [pull-4295] - Improve generator in ImpTestsState\\n* [pull-4292] - `constrained-generators`: add genHint for maps\\n* [pull-4298] - `constrained-generators`: utility function for asserting over a reified value\\n* [pull-4300] - `constrained-generators`: hotfix of latest derp...\\n* [pull-4297] - `constrained-generators`: Fix `ifElse` dependencies\\n* [pull-4301] - `constrained-generators`: Add monitoring capability to get a handle on test case distribution\\n* [pull-4315] - `constrained-generators`: Improve error messages and make the tree generator reasonably sized\\n* [pull-4317] - `constrained-generators`: Fix bug in reifies\\n* [pull-4299] - Fix strange CI failure.\\n* [pull-4285] - Start Conway Imp tests with an initial committee and constitution\\n* [pull-4303] - Fix test caused by erroneous merge\\n* [pull-4310] - Fix `OMap.assocList`\\n* [pull-4268] - Enable conformance tests for GOV rule\\n\\n### Infrastructure and releasing\\n\\n* [pull-4276] - Use a separate job for each test suite in GitHub CI\\n* [pull-4304] - Ensure the CI complete step fails when tests fail\\n* [pull-4308] - Add a CI status check to prevent merging PRs that contain merges\\n* [pull-4305] - Use the correct iohk action for installing Haskell in GitHub CI\\n* [pull-4322] - Bump jinja2 from 3.1.3 to 3.1.4 in /doc\\n\\n[pull-4295]: https://github.com/IntersectMBO/cardano-ledger/pull/4295\\n[pull-4292]: https://github.com/IntersectMBO/cardano-ledger/pull/4292\\n[pull-4298]: https://github.com/IntersectMBO/cardano-ledger/pull/4298\\n[pull-4300]: https://github.com/IntersectMBO/cardano-ledger/pull/4300\\n[pull-4299]: https://github.com/IntersectMBO/cardano-ledger/pull/4299\\n[pull-4276]: https://github.com/IntersectMBO/cardano-ledger/pull/4276\\n[pull-4285]: https://github.com/IntersectMBO/cardano-ledger/pull/4285\\n[pull-4273]: https://github.com/IntersectMBO/cardano-ledger/pull/4273\\n[pull-4303]: https://github.com/IntersectMBO/cardano-ledger/pull/4303\\n[pull-4304]: https://github.com/IntersectMBO/cardano-ledger/pull/4304\\n[pull-4305]: https://github.com/IntersectMBO/cardano-ledger/pull/4305\\n[pull-4297]: https://github.com/IntersectMBO/cardano-ledger/pull/4297\\n[pull-4275]: https://github.com/IntersectMBO/cardano-ledger/pull/4275\\n[pull-4308]: https://github.com/IntersectMBO/cardano-ledger/pull/4308\\n[pull-4301]: https://github.com/IntersectMBO/cardano-ledger/pull/4301\\n[pull-4310]: https://github.com/IntersectMBO/cardano-ledger/pull/4310\\n[pull-4315]: https://github.com/IntersectMBO/cardano-ledger/pull/4315\\n[pull-4268]: https://github.com/IntersectMBO/cardano-ledger/pull/4268\\n[pull-4317]: https://github.com/IntersectMBO/cardano-ledger/pull/4317\\n[pull-4322]: https://github.com/IntersectMBO/cardano-ledger/pull/4322\\n[pull-4309]: https://github.com/IntersectMBO/cardano-ledger/pull/4309\\n[pull-4253]: https://github.com/IntersectMBO/cardano-ledger/pull/4253\\n[pull-4284]: https://github.com/IntersectMBO/cardano-ledger/pull/4284\\n[pull-4328]: https://github.com/IntersectMBO/cardano-ledger/pull/4328"},{"id":"2024-05-07-performance-and-tracing","metadata":{"permalink":"/2024-05-07-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-07-performance-and-tracing.md","source":"@site/blog/2024-05-07-performance-and-tracing.md","title":"Performance & Tracing Update","description":"High level summary","date":"2024-05-07T00:00:00.000Z","formattedDate":"May 7, 2024","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":4.045,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & Tracing Update","slug":"2024-05-07-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-05-08-ledger"},"nextItem":{"title":"Network Team Update","permalink":"/2024-05-06-network"}},"content":"## High level summary\\n\\n* Benchmarking: We\'ve performed and analysed benchmarks in the Conway era, with `DRep`s injected.\\n* Development: Tracing `DRep` data has been implemented; improved error reporting in `tx-generator` and analysis quick queries are ongoing work.\\n* Workbench: We now fully supports the new CLI `create-testnet-data` command and `DRep` injection into Conway genesis. Haskell profile definition work is ongoing.\\n* Tracing: Various additions to Node metrics are being worked on, such as build info and block producer role. Metrics naming will be further harmonized.\\n* UTxO Growth: We\'ve finalized analysis and reports of all benchmarks targeting UTxO scaling scenarios.\\n* UTxO-HD / LMDB: We\'ve performed multiple runs benchmarking the LMDB (on-disk) backend of UTxO-HD.\\n\\n## Low level overview\\n\\n\\n### Benchmarking\\n\\nWe\'ve run and analyzed a full set of benchmarks comparing the Conway ledger against the Babbage one, on Node `8.10.1-pre`. For Conway, our additional goal was to measure a vanilla ledger state against one with a large amount of `DRep`s - and delegations to those `DRep`s - present. The\\nbenchmarks used our existing value and Plutus workloads to remain comparable to each other.\\n\\n### Development\\n\\nAdditional ledger queries for the tracing system have been implemented and merged to `master`. Those capture the amount of, and the number\\nof existing delegations to, `DRep`s as trace output - and thus enable creating a metric on top of it, which can then be monitored.\\n\\nThe (in our case) non-deterministic nature of shutting down different cluster setups - both local and cloud-based - carries the possibility\\nthat our transaction generation service occasionally misclassifies a regular shutdown as an error. Furthermore, in the case of network malfunctions, the service\'s errors are too unspecific. By implementing thread labels for submission threads, corresponding to each\\nsubmission target, and by adding custom smart signal handlers, we\'ll improve the generator\'s error reporting significantly.\\n\\nThe initial tests for quick queries are being developed further. We\'re moving towards a principled, and generalized, syntax that supports both\\nprepared, parametrizable queries from the application code, as well as ad-hoc queries stated e.g. on the command line.\\n\\n### Workbench\\n\\nThe performance workbench now fully supports the new `cardano-cli` command `create-test-data`. We use it to inject both stake\\ndelegated to stake pools into genesis, and - recently added - stake delegated to `DRep`s as well. It has been proven very useful\\nand versatile so far, and will eventually replace the current `create-staked` command. \\n\\nWork on porting our performance workbench\'s profile definitions to Haskell, and providing them with an appropriate test suite, is still ongoing; currently, we\'re integrating all new profile families that came out of the UTxO growth scenarios.\\n\\n### Tracing\\n\\nNew metrics are being implemented for the tracing system. They will also be part of Prometheus output and as such accessible to\\nmonitoring services. There\'ll be `cardano-node`\'s detailed build info, as well as a node\'s block producer status, meaning the presence of forger credentials. Those new metrics are being backported to the legacy tracing system, too. \\n\\nFurthermore, we\'ve determined the need to revisit metrics naming. There\'s still a divergence between naming in the legacy\\nand the new system. While this could be mitigated by passing in extra config options, we think that a transition to the new system\\nshould not impose any unnecessary effort for node operators. A design to fully harmonize the existing naming schemata is currently being\\nset up.\\n\\n### UTxO Growth\\n\\nThe UTxO Growth benchmarking series has been finalized. We\'ve finished analyses and reports for all scenarios that\\nwere tested and explored. \\n\\nThe overarching questions were, given a network of 32GB host systems, how large can the UTxO set grow in general, \\nhow large can it grow before the nodes have to operate close to the RAM limit over extended periods of time, and how does scaling the UTxO set size affect network metrics, such as block diffusion. \\n\\nA dedicated \\"UTxO Scaling Squad\\" was set up, who was driving the entire process, and we enjoyed a very focused and productive collaboration with them.\\n\\n### UTxO-HD / LMDB\\n\\nLast not least, we were able to benchmark UTxO-HD\'s on-disk backend on a network of block producing nodes, on a recent `8.9.1` version\\nof `cardano-node`. The setup allowed of using a direct access SSD device for performance critical disk I/O, whereas the bulk of ChainDB and ledger snapshots remained on a standard AWS EBS volume. \\n\\nThe benchmarks comprised both optimistic and pessimistic RAM assumptions for the host OS to further optimize I/O via page cache, as well as medium and large UTxO set sizes - the latter almost tripling current mainnet\'s size. The results were promising; the LMDB backend has proven to be able to accomodate large UTxO sets using significantly less RAM than the default all-in-memory node - and with a more than reasonable trade-off performance-wise. Furthermore, running with pessimistic assumptions, the performance impact on LMDB was very moderate only."},{"id":"2024-05-06-network","metadata":{"permalink":"/2024-05-06-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-06-network.md","source":"@site/blog/2024-05-06-network.md","title":"Network Team Update","description":"High-level overview of sprint 60","date":"2024-05-06T00:00:00.000Z","formattedDate":"May 6, 2024","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":2.45,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2024-05-06-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Update","permalink":"/2024-05-07-performance-and-tracing"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-05-03-hydra"}},"content":"## High-level overview of [sprint 60][sprint-60]\\n\\n\\nEdited on 8th of May: new EGK counters will be included in\\n`cardano-node-8.9.3`, added links to `cardano-node-8.9.3`\\nPR and `ouroboros-network-0.15`\\nrelease.\\n\\n\\n### Peer-Sharing Improvements\\n\\nWe continued working on improving peer sharing. As part of this work light\\npeer sharing (e.g. including inbound peers to the known set of outbound\\ngovernor), was restructured. Now, sending more peers than what was requested by\\nthe peer-sharing client is a protocol error, and the connection will be terminated;\\nThis hasn\'t been a resource attack vector since we always limited the number of\\npeers taken by the `outbound-governor` and the number of peers has always been\\nlimited by the size of the mux ingress queue reserved for peer-sharing\\nmini-protocol. These changes will be released in `cardano-node-8.9.3`. See\\n[ouroboros-network#4868]\\n\\nWe also merged the work on outbound governor counters, which initially started\\nas just an extension for peer-sharing counters but turned into a larger\\nrefactorisation. We announced it in the previous report. These changes will\\nbe included in `8.9.3`. See [ouroboros-network#4845],\\n[ouroboros-network#4861].\\n\\nLight peer sharing (inbound peers) refactorisation allowed us to refactor the\\ninbound governor loop: we restructured it so that the internal state is kept\\npure (and thus not shared with other threads), while the public part is\\ncomputed incrementally (with good amortised costs and thus leading to good performance) and exposed to other\\ncomponents (e.g. the `outbound-governor`), see [ouroboros-network#4871] \\\\(which\\nis built on top of [ouroboros-network#4868]).\\n\\nThe PR [cardano-nod#5831] integrates `ouroboros-network-0.15` with\\n`cardano-node-8.9.x` branch. All included PRs / issues in\\n`ouroboros-network-0.15` are listed [here][ouroboros-network-releases].\\n\\n### Genesis\\n\\nWe implemented the API needed by the consensus layer for `Genesis`; see\\n[ouroboros-network#4815], [ouroboros-network#4846]. \\n\\nWe continued working on outbound governor changes to support `Genesis`:\\n\\n* [ouroboros-network#3396]\\n* [ouroboros-network#4813] \\n* [ouroboros-network#4849] \\n\\n### Bootstrap Peers\\n\\nKarl Knutsson ([CF]) found and fixed some problems related to big-ledger and\\npublic root peers. Here\'s an excerpt from the changelog file:\\n* updated the big-ledger retry state in case of an exception;\\n* reset public root retry state when transitioning between `LedgerStateJudgements`;\\n* reduced public root retry timer;\\n* don\'t classify a config file with public-root/bootstrap-peers IP addresses only\\n as a DNS error. \\nSee [ouroboros-network#4867].\\n\\n### Churn\\n\\nWe merged a refactorisation which synchronises churn with the outbound\\ngovernor, see [ouroboros-network#4617].\\n\\n## Minor Improvements\\n\\nA few other minor improvements were merged:\\n\\n* updated tools used by `nix`, see [ouroboros-network#4860];\\n* updated pull request template, see [ouroboros-network#4862]\\n\\n### Testing\\n\\nWe added `quickcheck-monoids` package and also submitted an upstream patch to\\n`QuickCheck` to include a version of the standard [`All`] / [`Any`] monoids, which\\nare helpful when writing more complex properties. We will use\\n`quickcheck-monoids` until the upstream PR will be released. It will be\\navailable from [CHaP]. See [quickcheck#397].\\n\\n\\n\\n\\n[sprint-60]: https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+60%22\\n\\n[ouroboros-network#3396]: https://github.com/IntersectMBO/ouroboros-network/pull/3396\\n[ouroboros-network#4617]: https://github.com/IntersectMBO/ouroboros-network/issues/4617\\n[ouroboros-network#4813]: https://github.com/IntersectMBO/ouroboros-network/pull/4813\\n[ouroboros-network#4815]: https://github.com/IntersectMBO/ouroboros-network/issues/4815\\n[ouroboros-network#4845]: https://github.com/IntersectMBO/ouroboros-network/issues/4845\\n[ouroboros-network#4846]: https://github.com/IntersectMBO/ouroboros-network/issues/4846\\n[ouroboros-network#4849]: https://github.com/IntersectMBO/ouroboros-network/pull/4849\\n[ouroboros-network#4860]: https://github.com/IntersectMBO/ouroboros-network/pull/4860\\n[ouroboros-network#4861]: https://github.com/IntersectMBO/ouroboros-network/pull/4861\\n[ouroboros-network#4862]: https://github.com/IntersectMBO/ouroboros-network/pull/4862\\n[ouroboros-network#4868]: https://github.com/IntersectMBO/ouroboros-network/pull/4869\\n[ouroboros-network#4867]: https://github.com/IntersectMBO/ouroboros-network/pull/4867\\n[ouroboros-network#4871]: https://github.com/IntersectMBO/ouroboros-network/pull/4871\\n[ouroboros-network-releases]: https://github.com/orgs/IntersectMBO/projects/5/views/18\\n\\n[cardano-node#5831]: https://github.com/IntersectMBO/cardano-node/pull/5831\\n\\n[`All`]: https://hackage.haskell.org/package/base-4.19.1.0/docs/Data-Monoid.html#t:All\\n[`Any`]: https://hackage.haskell.org/package/base-4.19.1.0/docs/Data-Monoid.html#t:Any\\n\\n[quickcheck#397]: https://github.com/nick8325/quickcheck/pull/397\\n\\n[CHaP]: https://chap.intersectmbo.org/"},{"id":"2024-05-03-hydra","metadata":{"permalink":"/2024-05-03-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-03.md","source":"@site/blog/2024-05-03.md","title":"Hydra Team Update","description":"High-level summary","date":"2024-05-03T00:00:00.000Z","formattedDate":"May 3, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.67,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-05-03-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2024-05-06-network"},"nextItem":{"title":"Consensus Team Update","permalink":"/2024-05-01-consensus"}},"content":"### High-level summary\\n\\nThis week, the Hydra team has been working on refactoring and detecting network protocol version mismatches. They have also merged the /commit endpoint changes including a follow-up fix about fee calculation. Besides this, they applied minor workflow fixes by adding docker images to nix checks and disabling mithril integration testing on `preview` (until mithril `2418` is released).\\n\\n### What did the team achieve this week\\n\\n- Refactor connectivity and detect network protocol version mismatches [\\\\#1381](https://github.com/input-output-hk/hydra/pull/1381)\\n- Merged and completed [\\\\#1350](https://github.com/input-output-hk/hydra/issues/1350), including a follow-up fix about fee calculation\\n- Add docker images to nix checks\\n- Disable mithril-client testing on Preview\\n\\n### What are the goals of next week\\n\\n- Restructure documentation including a how to about streaming plugins [\\\\#1325](https://github.com/input-output-hk/hydra/issues/1325)\\n- Add arm64 docker images as requested in [\\\\#1404](https://github.com/input-output-hk/hydra/issues/1404)\\n- Release 0.17.0"},{"id":"2024-05-01-consensus","metadata":{"permalink":"/2024-05-01-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-01-consensus.md","source":"@site/blog/2024-05-01-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2024-05-01T00:00:00.000Z","formattedDate":"May 1, 2024","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.43,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2024-05-01-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-05-03-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-04-30-mithril"}},"content":"## High level summary\\n\\n- Reworked the argument for the different databases used in Consensus, in preparation for UTxO-HD ([#1059](https://github.com/IntersectMBO/ouroboros-consensus/pull/1059)).\\n- Helped review the first Peras Innovation draft report.\\n- Continued working on VRF restriction based on slot distance. The corresponding PR ([#1047](https://github.com/IntersectMBO/ouroboros-consensus/pull/1047)) went through its first round of reviews.\\n- Provided support to the Networking team to review their work on querying big ledger peers ([#1067](https://github.com/IntersectMBO/ouroboros-consensus/pull/1067)).\\n- Continued working on open-sourcing `fs-api` and `fs-sim`.\\n- Performed other minor refactorings in the codebase ([#1073](https://github.com/IntersectMBO/ouroboros-consensus/pull/1073) and [#1070](https://github.com/IntersectMBO/ouroboros-consensus/pull/1070))."},{"id":"2024-04-30-mithril","metadata":{"permalink":"/2024-04-30-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-30-mithril.md","source":"@site/blog/2024-04-30-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-04-30T00:00:00.000Z","formattedDate":"April 30, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.495,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-04-30-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2024-05-01-consensus"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2024-04-27-node-cli-api"}},"content":"## High level overview\\n\\nThis week, the Mithril team prepared a new pre-release distribution [`2418.1-pre`](https://github.com/input-output-hk/mithril/releases/tag/2418.1-pre), which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes to prevent memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for `mainnet` by leveraging the compression of the transaction Merkle tree using sub-Merkle trees based on transaction block ranges during signature and proving. Additionally, they implemented a stream mechanism for importing transactions into the signer and aggregator stores.\\n\\nFinally, the team started implementing a global Mithril networks configuration file and continued investigating some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.\\n\\n## Low level overview\\n- Created a pre-release for the new distribution [`2418.1-pre`](https://github.com/input-output-hk/mithril/releases/tag/2418.1-pre)\\n- Completed the issue **Store Block Range Merkle roots in signer and aggregator databases** [#1633](https://github.com/input-output-hk/mithril/issues/1633)\\n- Completed the issue **Stream import of Cardano transactions** [#1646](https://github.com/input-output-hk/mithril/issues/1646)\\n- Completed the issue **Memory leak in Cardano transactions signature/proof** [#1629](https://github.com/input-output-hk/mithril/issues/1629)\\n- Completed the issue **Handle unparsed blocks in Cardano transactions parser** [#1567](https://github.com/input-output-hk/mithril/issues/1567)\\n- Worked on the issue **Use Block Range Merkle roots to sign Cardano transactions** [#1634](https://github.com/input-output-hk/mithril/issues/1634)\\n- Worked on the issue **Use Block Range Merkle roots to prove Cardano transactions** [#1635](https://github.com/input-output-hk/mithril/issues/1635)\\n- Worked on the issue **Use SQLite transactions when inserting `Cardano Transactions` and `Block Range Roots`** [#1656](https://github.com/input-output-hk/mithril/issues/1656)\\n- Worked on the issue **Add Mithril networks configurations in `networks.json`** [#1638](https://github.com/input-output-hk/mithril/issues/1638)\\n- Worked on the issue **`ChainObserver` supports retrieving the Chain Point of the tip of the chain** [#1589](https://github.com/input-output-hk/mithril/issues/1589)\\n- Worked on the issue **Add section for manual setup of squid in SPO guide** [#1610](https://github.com/input-output-hk/mithril/issues/1610)\\n- Worked on the issue **Mithril Signer Local Error Policy : Error 182 - MuxError** [#1632](https://github.com/input-output-hk/mithril/issues/1632)"},{"id":"2024-04-27-node-cli-api","metadata":{"permalink":"/2024-04-27-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-26-node-cli-api.md","source":"@site/blog/2024-04-26-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2024-04-26T00:00:00.000Z","formattedDate":"April 26, 2024","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":0.69,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2024-04-27-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-04-30-mithril"},"nextItem":{"title":"SRE Team Update","permalink":"/2024-04-26-sre"}},"content":"# 2024-04-16 - 2024-04-26\\n\\n## High level summary\\n\\n[8.10.1-pre](https://github.com/IntersectMBO/cardano-node/releases/tag/8.10.1-pre) was released to SanchoNet. \\n\\nThe team continues focused on implementing tests for the Conway era on the cardano-node repository. This sprint the team made various improvements to \\nCI pipelines on cardano-cli. \\n\\n- Cardano-cli: implemented `build-estimate` to facilitate automatic transaction balancing without access to a live node; and added `minFeeRefScriptCostPerByte` as an option to `create-protocol-parameters-update` command. \\n\\n### cardano-node \\n\\n- [version bumps for 8.10.1-pre](https://github.com/IntersectMBO/cardano-node/pull/5794)\\n- [Rename new \'can_forge_blocks\' metric to \'forging_enabled\'](https://github.com/IntersectMBO/cardano-node/pull/5802)\\n\\n### cardano-cli\\n\\n- [add minFeeRefScriptCostPerByte to create-protocol-param-update + bump cardano-api](https://github.com/IntersectMBO/cardano-cli/pull/736)\\n- [Introduce new `cardano-cli latest transaction build-estimate` command](https://github.com/IntersectMBO/cardano-cli/pull/728)\\n- [Fix misunderstanding in generated README](https://github.com/IntersectMBO/cardano-cli/pull/726)\\n- [Better use of golden files in CI](https://github.com/IntersectMBO/cardano-cli/pull/724)\\n\\n### cardano-api\\n\\n- [cardano-api 8.45.1.0](https://github.com/IntersectMBO/cardano-api/pull/526)\\n- [adding MinFeeRefScriptCostPerByte to Conway PParams](https://github.com/IntersectMBO/cardano-api/pull/524)\\n\\n### cardano-testnet\\n\\n- [Use random port number when starting cardano-testnet](https://github.com/IntersectMBO/cardano-node/pull/5791)\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2024-04-26-sre","metadata":{"permalink":"/2024-04-26-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-26-sre.md","source":"@site/blog/2024-04-26-sre.md","title":"SRE Team Update","description":"High level summary","date":"2024-04-26T00:00:00.000Z","formattedDate":"April 26, 2024","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":2.39,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2024-04-26-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2024-04-27-node-cli-api"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-04-24-ledger"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general\\nenvironment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Cardano-node 8.9.2 is now deployed to mainnet, preprod, preview and\\n shelley-qa environments.\\n\\n* Cardano-node 8.10.1-pre is now deployed to sanchonet and also to one-third of\\n IOGs preprod environment nodes and two-thirds of IOGs preview environment\\n nodes.\\n\\n* Private chain for Voltaire team was paused with plans for a future respin.\\n\\n* The network team\'s ouroboros-network-ops machine cluster was re-written using\\n the cardano-parts stack to upgrade from the nixops/terraform/niv stack it was\\n previously using.\\n\\n\\n## Lower level summary\\n\\n### Cardano-parts\\n* Sets cardano-node to 8.9.2, dbsync-ng to sancho-4.2.0; mithril to 2412.0,\\n iohk-nix to include new peerSharing defaults and introduce a new block\\n producer config. Adds a new truncate-chain recipe and improves mithril\\n related services. More detail is available in the PR description:\\n [cardano-parts-pull-38](https://github.com/input-output-hk/cardano-parts/pull/38)\\n\\n* Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2; mithril pre (-ng)\\n to unstable, iohk-nix and iohk-nix-ng pin includes new Cardano Foundation\\n bootstrap relays. Adds new aws machine management and other recipes, metadata\\n job support for pool creation, misc fixes and improvements. More detail is\\n available in the PR description:\\n [cardano-parts-pull-39](https://github.com/input-output-hk/cardano-parts/pull/39)\\n\\n### Cardano-mainnet\\n* Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new\\n peerSharing defaults and colmena.nix cluster refactor for peerSharing\\n adjustments and implements all updates in cardano-parts PR#38. See the PR\\n description for more details:\\n [cardano-mainnet-pull-12](https://github.com/input-output-hk/cardano-mainnet/pull/12)\\n\\n* Sets dbsync to 13.2.0.2, iohk-nix and iohk-nix-ng to include new CF relays,\\n adds new aws machine management recipes and implements all updates in\\n cardano-parts PR#39. See the PR description for more details:\\n [cardano-mainnet-pull-13](https://github.com/input-output-hk/cardano-mainnet/pull/13)\\n\\n### Cardano-node\\n* Default peerSharing true and add block producer config to release binaries.\\n See the PR description for more details:\\n [cardano-node-pull-5789](https://github.com/IntersectMBO/cardano-node/pull/5789)\\n\\n### Cardano-ops\\n* Bumps to cardano-node 8.9.2:\\n [cardano-ops-compare](https://github.com/input-output-hk/cardano-ops/compare/5d4925b...1fca100)\\n\\n### Cardano-perf\\n* Adds a caddy webserver for run reviews and tunes the NVME FS mounts for performance:\\n [cardano-perf-compare](https://github.com/input-output-hk/cardano-perf/compare/a6a9b39...3cce0de)\\n\\n### Cardano-playground\\n* Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new\\n peerSharing defaults, refactors mdbook out of docs dir, adds example chain\\n manipulation doc and implements all updates in cardano-parts PR#38. See the\\n PR description for more details:\\n [cardano-playground-pull-21](https://github.com/input-output-hk/cardano-playground/pull/21)\\n\\n* Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2, mithril pre (-ng)\\n to unstable, iohk-nix and iohk-nix-ng to include new CF relays, adds a public\\n TLS dbsync user connection option, stops private chain cluster and implements\\n all updates in cardano-parts PR#39. See the PR description for more details:\\n [cardano-playground-pull-22](https://github.com/input-output-hk/cardano-playground/pull/22)\\n\\n### Iohk-nix\\n* Creates block producer configurations to accomodate PeerSharing set true by default:\\n [iohk-nix-pull-575](https://github.com/input-output-hk/iohk-nix/pull/575)\\n\\n* Adds Cardano Foundation mainnet bootstrap peers:\\n [iohk-nix-pull-578](https://github.com/input-output-hk/iohk-nix/pull/578)\\n\\n### Ouroboros-network-ops\\n* Rewrites the networking-team machine cluster using the cardano-parts stack;\\n waiting for adoption prior to merge:\\n [ouroboros-network-ops-pull-13](https://github.com/input-output-hk/ouroboros-network-ops/pull/13)\\n\\n### Sanchonet\\n* Adds a sanchonet faucet return address:\\n [sanchonet-pull-141](https://github.com/input-output-hk/sanchonet/pull/141)\\n\\n### Sanchonet-demo\\n* Updates node to 8.10.0-pre and modifies scripts for compatibility:\\n [sanchonet-demo-compare](https://github.com/input-output-hk/sanchonet-demo/compare/8797c24...c2d9bfb)"},{"id":"2024-04-24-ledger","metadata":{"permalink":"/2024-04-24-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-24-ledger.md","source":"@site/blog/2024-04-24-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-04-24T00:00:00.000Z","formattedDate":"April 24, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.99,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-04-24-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2024-04-26-sre"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-04-24-mithril"}},"content":"## High level summary\\n\\nAbility to specify `CostModel` for `PlutusV3` in the genesis file was implemented, which\\nwill allow us to execute `PlutusV3` as soon as we enter `Conway` era, which is essential\\nfor guardrails script. Important bugs that have been fixed:\\n\\n* Invalid reporting of `InsufficientCollateral` and `ValueNotConservedUTxO` predicate\\n failures. In case of validation failure a confusing deserialization was reported instead\\n of those predicate failures.\\n* Calculation of votes for Constitutional Committee Members did not consider expired\\n members correctly.\\n* Useful function `redeemerPointer` was deprecated without good justification.\\n\\nBesides bugfixes there was a lot of work done on the testing side. Constraint based data\\ngeneration is receiving continuous improvements. More unit and property tests for Conway\\nera functionality.\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-4259] - Undeprecate redeemerPointer and expose it in cardano-ledger-api\\n* [pull-4252] - Add PlutusV3 CostModel to UpgradeConwayPParams\\n* [pull-4247] - Change the balance in `InsufficientCollateral` to `DeltaCoin`\\n* [pull-4267] - Expand TxAuxData interface\\n* [pull-4265] - Inline UTxO and UTxOW `PredFailure` for `Conway`\\n* [pull-4281] - Discount expired CC from CC-size calculation\\n* [pull-4290] - Add `NoThunks` instance for UTxO pred failures\\n* [pull-4288] - Fix burning tokens predicate failure\\n\\n### Testing\\n\\n* [pull-4241] - Add fixup combinators to ImpTest framework\\n* [pull-4229] - Shrinking for `constrained-generators`\\n* [pull-4244] - Imptests: CommitteeMinSize affects in-flight props\\n* [pull-4269] - Fix generation bug for sums of positive member spec\\n* [pull-4266] - Add imptest to propose and enact unknown costmodels\\n* [pull-4261] - `constrained-generators` cleanup for hackage\\n* [pull-4279] - `constrained-generators`: Fix bug in toPreds for maps + add additional tests\\n* [pull-4272] - simplify foldMap interface to higher order syntax\\n* [pull-4283] - `constrained-generators`: add new test to test suite\\n* [pull-4286] - `constrained-generators`: refactor `reify` to reduce the number of binding sites + delay simplification more to avoid variable capture in higher order syntax\\n\\n### Infrastructure and releasing\\n\\n* [pull-4260] - Bump idna from 3.3 to 3.7 in /doc\\n* [pull-4277] - Fixed formatting in `HowToProfileLedger.md`\\n* [pull-4282] - Bump plutus deps to 1.26\\n* [pull-4294] - Avoid cancelling scheduled CI when a new merge happens on master\\n\\n[pull-4241]: https://github.com/IntersectMBO/cardano-ledger/pull/4241\\n[pull-4229]: https://github.com/IntersectMBO/cardano-ledger/pull/4229\\n[pull-4260]: https://github.com/IntersectMBO/cardano-ledger/pull/4260\\n[pull-4259]: https://github.com/IntersectMBO/cardano-ledger/pull/4259\\n[pull-4247]: https://github.com/IntersectMBO/cardano-ledger/pull/4247\\n[pull-4244]: https://github.com/IntersectMBO/cardano-ledger/pull/4244\\n[pull-4252]: https://github.com/IntersectMBO/cardano-ledger/pull/4252\\n[pull-4269]: https://github.com/IntersectMBO/cardano-ledger/pull/4269\\n[pull-4267]: https://github.com/IntersectMBO/cardano-ledger/pull/4267\\n[pull-4266]: https://github.com/IntersectMBO/cardano-ledger/pull/4266\\n[pull-4261]: https://github.com/IntersectMBO/cardano-ledger/pull/4261\\n[pull-4265]: https://github.com/IntersectMBO/cardano-ledger/pull/4265\\n[pull-4279]: https://github.com/IntersectMBO/cardano-ledger/pull/4279\\n[pull-4272]: https://github.com/IntersectMBO/cardano-ledger/pull/4272\\n[pull-4277]: https://github.com/IntersectMBO/cardano-ledger/pull/4277\\n[pull-4283]: https://github.com/IntersectMBO/cardano-ledger/pull/4283\\n[pull-4286]: https://github.com/IntersectMBO/cardano-ledger/pull/4286\\n[pull-4281]: https://github.com/IntersectMBO/cardano-ledger/pull/4281\\n[pull-4290]: https://github.com/IntersectMBO/cardano-ledger/pull/4290\\n[pull-4282]: https://github.com/IntersectMBO/cardano-ledger/pull/4282\\n[pull-4294]: https://github.com/IntersectMBO/cardano-ledger/pull/4294\\n[pull-4288]: https://github.com/IntersectMBO/cardano-ledger/pull/4288"},{"id":"2024-04-24-mithril","metadata":{"permalink":"/2024-04-24-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-24-mithril.md","source":"@site/blog/2024-04-24-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-04-24T00:00:00.000Z","formattedDate":"April 24, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.22,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-04-24-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-04-24-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-04-19-hydra"}},"content":"## High level overview\\n\\nThis week, most of the Mithril team attended the [Cardano Buidler Fest #1](https://buidl.2024.cardano.org/) in Toulouse, France. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for `mainnet` by compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges. The team identified the source of an issue preventing proper memory release during the signing/proving of a large set of transactions and developed a fix for it. Additionally, they completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network.\\n\\nFinally, the team implemented a configurable feature for test networks to log unparsable blocks instead of panicking and investigated some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.\\n\\n## Low level overview\\n- Completed the issue **Mithril relay broadcasts signer registrations with P2P PubSub** [#1587](https://github.com/input-output-hk/mithril/issues/1587)\\n- Worked on the issue **Store Block Range Merkle roots in signer and aggregator databases** [#1633](https://github.com/input-output-hk/mithril/issues/1633)\\n- Worked on the issue **Stream import of Cardano transactions** [#1646](https://github.com/input-output-hk/mithril/issues/1646)\\n- Worked on the issue **Memory leak in Cardano transactions signature/proof** [#1629](https://github.com/input-output-hk/mithril/issues/1629)\\n- Worked on the issue **`ChainObserver` supports retrieving the Chain Point of the tip of the chain** [#1589](https://github.com/input-output-hk/mithril/issues/1589)\\n- Worked on the issue **Add section for manual setup of squid in SPO guide** [#1610](https://github.com/input-output-hk/mithril/issues/1610)\\n- Worked on the issue **Mithril Signer Local Error Policy : Error 182 - MuxError** [#1632](https://github.com/input-output-hk/mithril/issues/1632)"},{"id":"2024-04-19-hydra","metadata":{"permalink":"/2024-04-19-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-19-hydra.md","source":"@site/blog/2024-04-19-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2024-04-19T00:00:00.000Z","formattedDate":"April 19, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.5,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-04-19-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-04-24-mithril"},"nextItem":{"title":"Performance & Tracing Update","permalink":"/2024-04-19-performance-and-tracing"}},"content":"### High-level summary\\n\\nThis week, the Hydra team refactored the heartbeat logic to prepare for the versioned network protocol. They have also switched to run on the `preview` network. Additionally, the team has added property tests to the `/commit` endpoint changes.\\n\\n### What did the team achieve this week\\n\\n- Refactor heartbeat logic to prepare for versioned network protocol.\\n- Switch to run on `preview` network.\\n- Add property tests to `/commit` endpoint changes\\n\\n### What are the goals of next week\\n\\n- Attend and connect with community on Cardano Builder Fest\\n- Merge new `/commit` endpoint changes"},{"id":"2024-04-19-performance-and-tracing","metadata":{"permalink":"/2024-04-19-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-19-performance-and-tracing.md","source":"@site/blog/2024-04-19-performance-and-tracing.md","title":"Performance & Tracing Update","description":"High level summary","date":"2024-04-19T00:00:00.000Z","formattedDate":"April 19, 2024","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.735,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & Tracing Update","slug":"2024-04-19-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-04-19-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/2024-04-15-network"}},"content":"## High level summary\\n\\n* Benchmarking: We\'ve performed benchmarks and analyses for Node versions `8.9.2` and `8.10.0`.\\n* Development: Design phase for implementing quick queries in the analysis pipeline has begun.\\n* Workbench: We\'re finishing up the new features for the reporting pipeline; Haskell profile definition work is ongoing.\\n* Tracing: Improving the Prometheus output is ongoing; the node\'s build info will be accessible as a Prometheus label.\\n* UTxO Growth: Our tooling has been augmented to support benchmarks starting with a non-empty chain.\\n\\n## Low level overview\\n\\n\\n### Benchmarking\\n\\nWe\'ve performed a full set of release benchmarks for Node `8.9.2`. Comparing with release `8.9.1`, we could not detect any performance risks for that version. \\n\\nThe benchmarks for `8.10.0` have shown a slight improvement in the time the block forging loop needs to evaluate, whilst additionally, resource usage of the `cardano-node` process was also slightly reduced - a nice performance improvement.\\n\\n### Development\\n\\nOur analysis pipeline is based on batch analysis of data from over 50 cluster nodes; it consumes very large amounts of trace output ex post facto, when the actual benchmark has terminated.\\nThis is very time-intensive, and not viable for obeserving an additional metric that you later on determine might need consideration. \\n\\nWe\'re planning to add quick queries into a benchmarking run\'s trace data to our analysis pipeline. These will be structured such that parameterizable, ad-hoc querying is supported. Initial tests showed that evaluation speed\\nof such queries is fast enough to merit designing a principled, and generalized, syntax for them - and a subsequent implementation.\\n\\n### Workbench\\n\\nThe reporting pipeline has been augmented with direct support for customizable, and stylable, TeX rendering - currently receiving final touches. \\n\\nPorting our performance workbench\'s profile definitions to Haskell, and providing them with an appropriate test suite, is ongoing work. It is our goal to both increase reliable profile definition and validation, and\\nfacilitate usage by engineers less familiar with the workbench.\\n\\n### Tracing\\n\\nThe work to improve system metrics as presented to Prometheus is still ongoing. Type annotations, as well as introducing Prometheus labels for certain metrics to convey (like e.g. build information), will make that interface\\nmore versatile. It also facilitates configuration of monitoring or dashboards like Grafana on top of those Prometheus metrics.\\n\\n### UTxO Growth\\n\\nFor the UTxO scaling benchmarks, we\'ve augmented the workbench with the capability to support injection of a custom synthesized chain into the deployment, and start a benchmark only after replaying that chain - whereas\\nour benchmarks usually start just with a genesis block. \\n\\nTo achieve that, different components of our tooling needed addition of features: distributing that chain to the node cluster, having analysis work without necessarily providing trace evidence of each block in the chain being forged by a benchmarking node. Cluster timing had to be adjusted to account for the gap between genesis start time and the chain tip. However, this entire mechanism opens up the possibility of having a very distinct ledger state at hand for a benchmark - one, that\'s been particularly crafted via a series of \\npre-defined transactions constituting the blocks during creation of the synthesized chain. \\n\\nIn the future, we plan to flesh out a more general design of that mechanism, which currently is tied to a very specific use case only."},{"id":"2024-04-15-network","metadata":{"permalink":"/2024-04-15-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-18-network.md","source":"@site/blog/2024-04-18-network.md","title":"Network Team Update","description":"High-level overview of sprint 58 and sprint 59","date":"2024-04-18T00:00:00.000Z","formattedDate":"April 18, 2024","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":3.22,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2024-04-15-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Update","permalink":"/2024-04-19-performance-and-tracing"},"nextItem":{"title":"Consensus Team Update","permalink":"/2024-04-17-consensus"}},"content":"## High-level overview of [sprint 58][sprint-58] and [sprint 59][sprint-59]\\n\\n### Releases\\n\\nWe released [`cardano-node-8.9.1`], and we tagged a soon to be released\\n[`cardano-node-8.9.2`]\\nThe `8.9.2` release will have a fixed peer sharing support, which we\\nincidentally broke in `8.9.1`. We expanded our test suite to cover discovered\\nbugs (see below for more details). Please also see [the release\\ntab][ouroboros-network-releases] in our project to see which PRs / issues were\\nincluded in a given release, the following mapping might also be useful:\\n\\n* `ouroboros-network-0.13.1.0` -> `cardano-node-8.9.1`\\n* `ouroboros-entwork-0.14.0.0` -> `cardano-node-8.9.2`\\n\\n### Genesis\\n\\nWe continued working on network Genesis support: \\n* [ouroboros-network#3396] - churn policy for Genesis;\\n* [ouroboros-network#4813] - outbound governor support for Genesis;\\n* support for `cardano-cli` to write a big ledger peers snapshot to disk and\\n for `cardano-node` to pass it to `ouroboros-network`.\\n\\nAs well as a feature required by consensus:\\n* [ouroboros-network#4815] - inform consensus about outbound connections state\\n\\n### TxSubmission\\n\\nOnly a little progress was made due to one of us being on vacation.\\n\\n### Churn and EKG metrics\\n\\nWhile working on [ouroboros-network#4815], we addressed technical debt\\nin churn. The PR removes implicit synchronisation (in terms of delays) in\\nfavour of explicit synchronisation with the outbound governor. The PR extends\\nEKG counters traced by the node. See below for some graphs.\\n\\n### Documentation\\n\\nWe updated the [documentation][p2p-configuration-wiki] on peer sharing, see\\n[cardano-node-wiki#44].\\n\\n## Low level details\\n\\n### Peer Sharing Testing\\n\\nWe wrote a testing scenario for peer sharing, which simulates a node setup:\\n`A -> B <- C`, where neither of the nodes `B` and `C` have any local roots; they only learn about other nodes through (light) peer sharing. `B` learns\\nabout `A` and `C` because they connect to it, while `C` should learn about `A`\\nthrough peer sharing. This test scenario should prevent us from breaking peer sharing in the\\nfuture in some obvious ways. In the future, we will also work on extending our\\ntest suite with peer sharing in mind. See [ouroboros-network#4839],\\n[ouroboros-network#4841].\\n\\n### EKG / Prometheus Counters\\n\\nNote that this is in progress, so some things might still change.\\n\\nWe will provide counters for `active` (also known as `hot`) peers,\\n`established` (e.g. `hot` & `warm`) peers and `known` (e.g. `hot`, `warm` and\\n`cold`) peers. This is the same way one specifies targets in the node\'s\\nconfiguration. In addition, the three groups are split into five categories:\\n\\n* ledger peers\\n* big ledger peers\\n* local root peers\\n* bootstrap peers\\n* shared peers\\n\\nIn addition, we also provide a counter for root peers, which counts ledger peers,\\nbig ledger peers, local roots and bootstrap peers, which correspond to the\\nroot peers target `TargetNumberOfRootPeers` in the configuration.\\n\\nWe also provide counters for ongoing promotions and demotions.\\n\\nLedger peers are affected by `TargetNumberOf{Known,Established,Active}Peers` and `TargetNumberOfRootPeers`.\\nThe gap between `TargetNumberOfRootPeers` and `TargetNumberOfKnownPeers` will\\nbe filled either with ledger peers or peers, which the node discovered through\\npeer sharing.\\nBig ledger peers are affected by `TargetNumberOf{Known,Established,Active}BigLedgerPeers`.\\n\\nBelow are some Grafana graphs from an experimental `cardano-node` branch:\\n\\n#### Deprecation policy\\n\\nThe previous `hot`, `warm` / `cold` EKG counters will also be available,\\nalthough deprecated after the new ones are released. Sometime in the future\\nthey will be removed.\\n\\n#### Grafana graphs\\n\\nThe screenshots are from a node, which is configured without any bootstrap\\npeers, which is why all bootstrap metrics are `0`. The node is configured with the following targets:\\n```json\\n \\"TargetNumberOfRootPeers\\": 60,\\n \\"TargetNumberOfKnownPeers\\": 100,\\n \\"TargetNumberOfEstablishedPeers\\": 40,\\n \\"TargetNumberOfActivePeers\\": 15,\\n \\"TargetNumberOfKnownBigLedgerPeers\\": 15,\\n \\"TargetNumberOfEstablishedBigLedgerPeers\\": 10,\\n \\"TargetNumberOfActiveBigLedgerPeers\\": 5,\\n```\\nand has a small number of local root peers and one peer in its `publicRoots`\\nconfiguration.\\n\\n##### Active Peers Metrics\\n\\n![P2P relays](/images/network/2024-04-15-active-peers.png)\\n \\n##### Established Peers Metrics\\n\\n![P2P relays](/images/network/2024-04-15-established-peers.png)\\n\\n##### Known Peers Metrics\\n\\n![P2P relays](/images/network/2024-04-15-known-peers.png)\\n\\n##### Churn Metrics\\n\\n![P2P relays](/images/network/2024-04-15-churn.png)\\n\\n[CF]: https://cardanofoundation.org\\n\\n[sprint-58]: https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+58%22\\n[sprint-59]: https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+59%22\\n\\n[`cardano-node-8.9.1`]: https://github.com/IntersectMBO/cardano-node/releases/tag/8.9.1\\n[`cardano-node-8.9.2`]: https://github.com/IntersectMBO/cardano-node/releases/tag/8.9.2\\n\\n[ouroboros-network-releases]: https://github.com/orgs/IntersectMBO/projects/5/views/18\\n\\n[ouroboros-network#3396]: https://github.com/IntersectMBO/ouroboros-network/issues/3396\\n[ouroboros-network#4813]: https://github.com/IntersectMBO/ouroboros-network/issues/4813\\n[ouroboros-network#4815]: https://github.com/IntersectMBO/ouroboros-network/issues/4815\\n[ouroboros-network#4839]: https://github.com/IntersectMBO/ouroboros-network/issues/4839\\n[ouroboros-network#4841]: https://github.com/IntersectMBO/ouroboros-network/issues/4841\\n[cardano-node-wiki#44]: https://github.com/input-output-hk/cardano-node-wiki/pull/44\\n[p2p-configuration-wiki]: https://github.com/input-output-hk/cardano-node-wiki/wiki/understanding-config-files#the-p2p-topologyjson-file"},{"id":"2024-04-17-consensus","metadata":{"permalink":"/2024-04-17-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-17-consensus.md","source":"@site/blog/2024-04-17-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2024-04-17T00:00:00.000Z","formattedDate":"April 17, 2024","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.51,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2024-04-17-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2024-04-15-network"},"nextItem":{"title":"DB Sync Team Update","permalink":"/2024-04-17-db-sync"}},"content":"## High level summary\\n\\n- [Implemented](https://github.com/IntersectMBO/ouroboros-consensus/pull/955) the new diffusion pipelining criterion.\\n- Presented, reviewed and merged the March [milestone](https://github.com/IntersectMBO/ouroboros-consensus/pull/1015) for Genesis.\\n- [Integrated](https://github.com/IntersectMBO/cardano-node/pull/5774) latest changes into Node version 8.10.\\n- Regarding the UTXO-HD feature we:\\n - Completed fixes in test-suites from `cardano-node`, `cardano-api`, and `ouroboros-consensus`. All tests are passing in latest prototype.\\n - Prepared UTXO-HD prototype for LMDB benchmarking.\\n - [Fixed](https://github.com/IntersectMBO/cardano-node/pull/5768) tracing in `cardano-node`.\\n - Started merging code from the UTXO-HD branch into `main` ([1053](https://github.com/IntersectMBO/ouroboros-consensus/pull/1053), [1052](https://github.com/IntersectMBO/ouroboros-consensus/pull/1052), and [1054](https://github.com/IntersectMBO/ouroboros-consensus/pull/1054)).\\n- We\'re currently working on getting rid of `NoThunks` errors in Consensus, so that we can enable these tests in CI, for extra assurance."},{"id":"2024-04-17-db-sync","metadata":{"permalink":"/2024-04-17-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-17-db-sync.md","source":"@site/blog/2024-04-17-db-sync.md","title":"DB Sync Team Update","description":"High level summary","date":"2024-04-17T00:00:00.000Z","formattedDate":"April 17, 2024","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.465,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB Sync Team Update","slug":"2024-04-17-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2024-04-17-consensus"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-04-17-mithril"}},"content":"## High level summary\\nThe DBSync team has released 1 version for mainnet `13.2.0.1` and 3 pre-releases for sanchonet\\n`4.0.0`, `4.1.0`, `4.2.0`. We have continued the integration of Conway (CIP-1694) and the support\\nof off-chain data (CIP-100)\\n\\n## Lower level summary\\n- CI build and docker fixes\\n[#1670](https://github.com/IntersectMBO/cardano-db-sync/pull/1670)\\n[#1668](https://github.com/IntersectMBO/cardano-db-sync/pull/1668)\\n[#1667](https://github.com/IntersectMBO/cardano-db-sync/pull/1667)\\n[#1662](https://github.com/IntersectMBO/cardano-db-sync/pull/1662)\\n\\n- Improved committee representation\\n[#1662](https://github.com/IntersectMBO/cardano-db-sync/pull/1655)\\n[#1571](https://github.com/IntersectMBO/cardano-db-sync/issues/1571)\\n[#1633](https://github.com/IntersectMBO/cardano-db-sync/issues/1633)\\n\\n- Offchain metadata partial support\\n[#1654](https://github.com/IntersectMBO/cardano-db-sync/pull/1654)\\n\\n- Refactoring and tech-debt\\n[#1635](https://github.com/IntersectMBO/cardano-db-sync/pull/1635)\\n\\n- Fixing epoch_stake_progress\\n[#1620](https://github.com/IntersectMBO/cardano-db-sync/issues/1620)\\n\\n- Config and modulatirty improvements\\n[#1653](https://github.com/IntersectMBO/cardano-db-sync/pull/1653)\\n[#1652](https://github.com/IntersectMBO/cardano-db-sync/pull/1652)\\n\\n- Updating to node-8.10-pre. Better support for deposits, refunds and proposal state\\n[#1673](https://github.com/IntersectMBO/cardano-db-sync/pull/1673)"},{"id":"2024-04-17-mithril","metadata":{"permalink":"/2024-04-17-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-17-mithril.md","source":"@site/blog/2024-04-17-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-04-17T00:00:00.000Z","formattedDate":"April 17, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.625,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-04-17-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"DB Sync Team Update","permalink":"/2024-04-17-db-sync"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2024-04-15-node-cli-api"}},"content":"## High level overview\\n\\nThis week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling the signature and proof generation for `mainnet` with the compression of the transaction Merkle tree by using sub-Merkle trees of transactions by block ranges. They also made progress in designing low latency certification, investigated a memory leak in the signature/proof process, and worked on retrieving the tip of the chain with the Pallas chain observer. The team almost completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they completed the refactoring of the database providers of the aggregator and re-span the `testing-sanchonet` network following the release of Cardano node `8.10.0-pre`.\\n\\nFinally, the team made some optimizations on the compilation of their pre-built binaries to fix panics occurring on CPUs without ADX instructions, and created a network configuration file on the repository to facilitate automatic compatibility checks.\\n\\n## Low level overview\\n- Completed the issue **Create file with Cardano minimum versions in repository** [#1615](https://github.com/input-output-hk/mithril/issues/1615)\\n- Completed the issue **Deploy `testing-mainnet` network** [#1617](https://github.com/input-output-hk/mithril/issues/1617)\\n- Completed the issue **Refactor `database` module in aggregator** [#1583](https://github.com/input-output-hk/mithril/issues/1583)\\n- Completed the issue **Client deprecation notice should be written in JSON when `--json` option is used** [#1616](https://github.com/input-output-hk/mithril/issues/1616)\\n- Completed the issue **Activate `portable` feature in `mithril-stm` by default** [#1613](https://github.com/input-output-hk/mithril/issues/1613)\\n- Completed the issue **Prepare `testing-sanchonet` for respin with Cardano `8.10`** [#1618](https://github.com/input-output-hk/mithril/issues/1618)\\n- Worked on the issue **Store Block Range Merkle roots in signer and aggregator databases** [#1633](https://github.com/input-output-hk/mithril/issues/1633)\\n- Worked on the issue **Memory leak in Cardano transactions signature/proof** [#1629](https://github.com/input-output-hk/mithril/issues/1629)\\n- Worked on the issue **Mithril relay broadcasts signer registrations with P2P PubSub** [#1587](https://github.com/input-output-hk/mithril/issues/1587)\\n- Worked on the issue **`ChainObserver` supports retrieving the Chain Point of the tip of the chain** [#1589](https://github.com/input-output-hk/mithril/issues/1589)\\n- Worked on the issue **Add section for manual setup of squid in SPO guide** [#1610](https://github.com/input-output-hk/mithril/issues/1610)\\n- Worked on the issue **Mithril Signer Local Error Policy : Error 182 - MuxError** [#1632](https://github.com/input-output-hk/mithril/issues/1632)"},{"id":"2024-04-15-node-cli-api","metadata":{"permalink":"/2024-04-15-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-15-node-cli-api.md","source":"@site/blog/2024-04-15-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2024-04-15T00:00:00.000Z","formattedDate":"April 15, 2024","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.16,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2024-04-15-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-04-17-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-04-12-hydra"}},"content":"# 2024-04-01 - 2024-04-15\\n\\n## High level summary\\n\\nAdding support for script based committee members certificates: authorization and resignation. It is now possible to convert extended signing Drep and Committee keys to a Shelley-format key. Improvements to Conway era tests. Use threshold instead of quorum for committee members. \\n\\n### cardano-cli\\n\\n- [Provide a default value for `calculate-min-fee --reference-script-size`](https://github.com/IntersectMBO/cardano-cli/pull/716)\\n- [Improvements to governance tests](https://github.com/IntersectMBO/cardano-cli/pull/714)\\n- [Add transaction metadata golden test](https://github.com/IntersectMBO/cardano-cli/pull/713)\\n- [key non-extended-key: make pattern matches exhaustive, so that we are notified of possible extensions](https://github.com/IntersectMBO/cardano-cli/pull/710)\\n- [foldSomeAddressVerificationKey->mapSomeAddressVerificationKey](https://github.com/IntersectMBO/cardano-cli/pull/708)\\n- [Enable both --cold-script-file and --cold-script-hash for committee auth and resig commands](https://github.com/IntersectMBO/cardano-cli/pull/699)\\n- [Fix inversion in --include-stake parser + print \\"stake\\" field even when there is no stake (do not hide stake absence)](https://github.com/IntersectMBO/cardano-cli/pull/698)\\n- [Release cardano-cli-8.22.0.0](https://github.com/IntersectMBO/cardano-cli/pull/697)\\n- [Fix broken golden tests](https://github.com/IntersectMBO/cardano-cli/pull/694)\\n- [Fix protocol params order for minFeeA and minFeeB](https://github.com/IntersectMBO/cardano-cli/pull/693)\\n- [convert-cardano-address-key: support DRep and CC keys](https://github.com/IntersectMBO/cardano-cli/pull/691)\\n- [updating cli to use threshold instead of quorum for constitutional co\u2026](https://github.com/IntersectMBO/cardano-cli/pull/689)\\n\\n### cardano-api\\n\\n- [Sort metadata keys for no-schema json for canonical CBOR](https://github.com/IntersectMBO/cardano-api/pull/517)\\n- [Add support for CC keys in the SomeAddressVerificationKey type](https://github.com/IntersectMBO/cardano-api/pull/514)\\n- [Implement estimateBalancedTxBody and estimateOrCalculateBalancedTxBody](https://github.com/IntersectMBO/cardano-api/pull/511)\\n- [Release cardano-api-8.44.0.0](https://github.com/IntersectMBO/cardano-api/pull/506)\\n- [LedgerState.hs improvements](https://github.com/IntersectMBO/cardano-api/pull/503)\\n\\n### cardano-testnet\\n\\n- [Updated copyright](https://github.com/IntersectMBO/cardano-node/pull/5766)\\n- [Set NumThreads to 1 in cardano-testnet-test](https://github.com/IntersectMBO/cardano-node/pull/5758)\\n- [Remove manual DRep registration from InfoAction test](https://github.com/IntersectMBO/cardano-node/pull/5749)\\n- [DRep deposits test](https://github.com/IntersectMBO/cardano-node/pull/5748)\\n- [Add tx fee check to hprop_transaction](https://github.com/IntersectMBO/cardano-node/pull/5747)\\n- [cardano-testnet: Avoid rewrite of sgMaxLovelaceSupply](https://github.com/IntersectMBO/cardano-node/pull/5746)\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2024-04-12-hydra","metadata":{"permalink":"/2024-04-12-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-12-hydra.md","source":"@site/blog/2024-04-12-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2024-04-12T00:00:00.000Z","formattedDate":"April 12, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.76,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-04-12-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2024-04-15-node-cli-api"},"nextItem":{"title":"SRE Team Update","permalink":"/2024-04-12-sre"}},"content":"### High-level summary\\n\\nThis week, the Hydra team fixed a bug in the smoke test and refactored to allow network functions to distinguish between inbound and outbound. The team also prepared a cardano-api 8.44 branch for cardano-node 8.10 once it gets released. They also contributed to the `cardano-ledger-api` by undeprecating and exposing `redeemerPointer`.\\n\\n### What did the team achieve this week\\n\\n- Fix FaucetFailedToBuildTx in smoke test [\\\\#1384](https://github.com/input-output-hk/hydra/pull/1384)\\n- Refactoring to allow network functions to distinguish between inbound and outbound\\n- Prepared a cardano-api 8.44 branch, but got blocked \ud83d\udc47\\n- Undeprecate redeemerPointer and expose it in `cardano-ledger-api` [cardano-ledger#4259](https://github.com/IntersectMBO/cardano-ledger/pull/4259)\\n\\n### What are the goals of next week\\n\\n- Complete new /commit endpoint interface [\\\\#1350](https://github.com/input-output-hk/hydra/issues/1350)\\n- Refactor to allow NodeLogic to pass through connection messages, to unblock \ud83d\udc47\\n- Use versioned handshake when connecting hydra-nodes [\\\\#1010](https://github.com/input-output-hk/hydra/issues/1010)\\n- Test all combinations of decrement/close/fanout for [\\\\#1057](https://github.com/input-output-hk/hydra/issues/1057)\\n- Meet with tech writers about the landing page"},{"id":"2024-04-12-sre","metadata":{"permalink":"/2024-04-12-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-12-sre.md","source":"@site/blog/2024-04-12-sre.md","title":"SRE Team Update","description":"High level summary","date":"2024-04-12T00:00:00.000Z","formattedDate":"April 12, 2024","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.435,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2024-04-12-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-04-12-hydra"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-04-10-ledger"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general\\nenvironment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Private chain for Voltaire team was respun for cardano-node 8.10.0-pre\\n pre-release and re-hard forked into Conway era.\\n\\n* Sanchonet was respun for cardano-node 8.10.0-pre pre-release and re-hard\\n forked into Conway era.\\n\\n* Cardano-node 8.10.0-pre was also deployed to one-third of IOGs preprod\\n environment nodes and two-thirds of IOGs preview environment nodes.\\n\\n## Lower level summary\\n\\n### Cardano-parts\\n* Sets cardano-node|cli-ng to 8.10.0-pre, dbsync-ng to sancho-4.1.0; bumps\\n nixpkgs (23.11) and nixpkgs-unstable; improves, adds new and fixes a number\\n of just recipes; allows repo custom recipes to be kept as a separate import\\n for easy justfile maintenance; refactors ip module checking into its own\\n nixosModule and adds an extra abort option for safety. Much more detail is\\n available in the PR description:\\n [cardano-parts-pull-36](https://github.com/input-output-hk/cardano-parts/pull/36)\\n\\n### Cardano-mainnet\\n* Bumps cardano-parts for a number of recipe additions, improvements, fixes.\\n Fixes blockperf dnsmasq looksups and adjusts colmena topology code to account\\n for intra-cluster localRoots now defaulting to trustable true and implements\\n all updates in cardano-parts PR#36. See the PR description for more details:\\n [cardano-mainnet-pull-11](https://github.com/input-output-hk/cardano-mainnet/pull/11)\\n\\n### Cardano-perf\\n* Add a new perf-ssd machine class and deployment for ssd related performance\\n testing and benchmarking. Add new just recipes and cluster resource tagging.\\n [cardano-perf-compare](https://github.com/input-output-hk/cardano-perf/compare/19a7ddd...a6a9b39)\\n\\n### Cardano-playground\\n* Bumps cardano-parts for a number of recipe additions, improvements, fixes,\\n and node 8.10.0-pre. Respins private chain and sanchonet for node 8.10.0-pre\\n with corresponding book updates and implements all updates in cardano-parts\\n PR#36. See the PR description for more details:\\n [cardano-playground-pull-20](https://github.com/input-output-hk/cardano-playground/pull/20)\\n\\n### Iohk-nix\\n* WIP: Prepares block producer configurations to accomodate upcoming peerSharing default change:\\n [iohk-nix-pull-575](https://github.com/input-output-hk/iohk-nix/pull/575)\\n\\n* Provides iohk-nix updates for node 8.10:\\n [iohk-nix-pull-576](https://github.com/input-output-hk/iohk-nix/pull/576)"},{"id":"2024-04-10-ledger","metadata":{"permalink":"/2024-04-10-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-10-ledger.md","source":"@site/blog/2024-04-10-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-04-10T00:00:00.000Z","formattedDate":"April 10, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.22,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-04-10-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2024-04-12-sre"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-04-10-mithril"}},"content":"## High level summary\\n\\nMost notable progress is on testing. In particular data generation for conformance test\\nhas been improved and the implementation organized. Addition of various Conway related\\nunit and property tests.\\n\\n### Conway\\n\\n* [pull-4236] - Fix typo in `ToJSON` of `ConwayGovState`\\n* [pull-4250] - Add some ToJSON instances needed by cardano-node\\n\\n### Testing\\n\\n* [pull-4221] - Fix a NoThunks test failure on nightly builds\\n* [pull-4214] - Fix `estimateMinFeeTx` w/ bootstrap test\\n* [pull-4189] - Imptests - treasury withdrawals\\n* [pull-4207] - Added tests from a bug report\\n* [pull-4238] - Imptests: ParameterChange affects ratification for in-flight proposals\\n* [pull-4243] - Convert `small-steps` testsuite to `Hspec`\\n* [pull-4248] - Fix withdrawals test data generation in `EnactSpec`\\n* [pull-4212] - Update and reorganize conformance tests\\n* [pull-4242] - Added UnitTestTools and IncrementalStakeTest\\n\\n### Infrastructure and releasing\\n\\n* [pull-4219] - Fixes for 8.10 release\\n* [pull-4225] - Post release updates\\n* [pull-4235] - Revert to full formolu runs on CI\\n* [pull-4239] - Use the Cabal-syntax package instead of the Cabal package\\n* [pull-4234] - Add separate `devShell` for `pre-commit`\\n* [pull-4245] - Plutus 1.25.0.0\\n* [pull-4246] - Changelog for node release 8.10\\n* [pull-4249] - Update tooling and minor fixups\\n\\n## Low level summary\\n\\n[pull-4219]: https://github.com/IntersectMBO/cardano-ledger/pull/4219\\n[pull-4225]: https://github.com/IntersectMBO/cardano-ledger/pull/4225\\n[pull-4221]: https://github.com/IntersectMBO/cardano-ledger/pull/4221\\n[pull-4214]: https://github.com/IntersectMBO/cardano-ledger/pull/4214\\n[pull-4235]: https://github.com/IntersectMBO/cardano-ledger/pull/4235\\n[pull-4236]: https://github.com/IntersectMBO/cardano-ledger/pull/4236\\n[pull-4189]: https://github.com/IntersectMBO/cardano-ledger/pull/4189\\n[pull-4207]: https://github.com/IntersectMBO/cardano-ledger/pull/4207\\n[pull-4239]: https://github.com/IntersectMBO/cardano-ledger/pull/4239\\n[pull-4234]: https://github.com/IntersectMBO/cardano-ledger/pull/4234\\n[pull-4238]: https://github.com/IntersectMBO/cardano-ledger/pull/4238\\n[pull-4246]: https://github.com/IntersectMBO/cardano-ledger/pull/4246\\n[pull-4243]: https://github.com/IntersectMBO/cardano-ledger/pull/4243\\n[pull-4245]: https://github.com/IntersectMBO/cardano-ledger/pull/4245\\n[pull-4248]: https://github.com/IntersectMBO/cardano-ledger/pull/4248\\n[pull-4249]: https://github.com/IntersectMBO/cardano-ledger/pull/4249\\n[pull-4212]: https://github.com/IntersectMBO/cardano-ledger/pull/4212\\n[pull-4250]: https://github.com/IntersectMBO/cardano-ledger/pull/4250\\n[pull-4242]: https://github.com/IntersectMBO/cardano-ledger/pull/4242"},{"id":"2024-04-10-mithril","metadata":{"permalink":"/2024-04-10-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-10-mithril.md","source":"@site/blog/2024-04-10-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-04-10T00:00:00.000Z","formattedDate":"April 10, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.2,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-04-10-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-04-10-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-04-05-hydra"}},"content":"## High level overview\\n\\nThis week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for `mainnet`, completed the incremental storage of transactions, activated the signature of the transactions on the `testing-preview` network, and prepared a new network to test the scaling on `mainnet` data. The team also made progress on a prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they worked on refactoring the database providers of the aggregator.\\n\\nFinally, the team delivered a community requested feature that displays the minimum versions of the Cardano node that the signer supports in a machine-readable format. They also provided a manual setup guide for the relay in the SPO user guide.\\n\\n## Low level overview\\n- Completed the issue **Implement incremental storage of Cardano transactions in signer/aggregator** [#1591](https://github.com/input-output-hk/mithril/issues/1591)\\n- Worked on the issue **Mithril relay broadcasts signer registrations with P2P PubSub** [#1587](https://github.com/input-output-hk/mithril/issues/1587)\\n- Worked on the issue **Refactor `database` module in aggregator** [#1583](https://github.com/input-output-hk/mithril/issues/1583)\\n- Worked on the issue **`ChainObserver` supports retrieving the Chain Point of the tip of the chain** [#1589](https://github.com/input-output-hk/mithril/issues/1589)\\n- Worked on the issue **Create file with Cardano minimum versions in repository** [#1615](https://github.com/input-output-hk/mithril/issues/1615)\\n- Worked on the issue **Deploy `testing-mainnet` network** [#1617](https://github.com/input-output-hk/mithril/issues/1617)\\n- Worked on the issue **Add section for manual setup of squid in SPO guide** [#1610](https://github.com/input-output-hk/mithril/issues/1610)\\n- Completed the issue **Signer metrics server displays confusing log message** [#1620](https://github.com/input-output-hk/mithril/issues/1620)"},{"id":"2024-04-05-hydra","metadata":{"permalink":"/2024-04-05-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-05-hydra.md","source":"@site/blog/2024-04-05-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2024-04-05T00:00:00.000Z","formattedDate":"April 5, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.72,"hasTruncateMarker":false,"authors":[{"name":"Daniel Firth","title":"Hydra Software Engineer","url":"https://github.com/locallycompact","imageURL":"https://github.com/locallycompact.png","key":"locallycompact"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-04-05-hydra","authors":["locallycompact"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-04-10-mithril"},"nextItem":{"title":"Consensus Team Update","permalink":"/2024-04-03-consensus"}},"content":"### High-level summary\\n\\nThis week, the Hydra team released hydra 0.16.0, which supports cardano-node 8.9.0\\nand can interpret conway blocks on the cardano-node. We have also updated some hydra\\nclients to be compatible with the new hydra api format, including hydraw and kupo.\\n\\n### What did the team achieve this week\\n- Update our head and `hydraw` instance to `master` (a release candidate)\\n- Release 0.16.0 (without incremental decommits)\\n- Reproduce close > contest > contest scenarios using stateful testing\\n- Have end-to-end scenarios working for the improved `/commit` endpoint\\n\\n### What are the goals of next week\\n- Complete the improved `/commit` endpoint to unblock users\\n- Potentially release 0.17.0 (with improved `/commit` endpoint)\\n- Wrap up the incremental decommit work including the decommit action into the new TxTrace tests\\n- Use Versioned Ouroboros protocol for handshaking between nodes.\\n- Update to cardano-api-8.44."},{"id":"2024-04-03-consensus","metadata":{"permalink":"/2024-04-03-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-03-consensus.md","source":"@site/blog/2024-04-03-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2024-04-03T00:00:00.000Z","formattedDate":"April 3, 2024","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.685,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2024-04-03-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-04-05-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-04-03-mithril"}},"content":"## High level summary\\n\\n- [Made](https://github.com/IntersectMBO/ouroboros-consensus/issues/1009) the `LocalTxMonitor` `HasTx` cross-era behavior less surprising.\\n- Finalized the tests in `ouroboros-consensus` for the UTXO-HD branch, except the mempool-parallel test which is still failing sometimes.\\n- [Fixed](https://github.com/stevana/quickcheck-state-machine/pull/43) an upstream complication in `quickcheck-state-machine` related to Parallel state machines which should allow us for an easier and more understandable setup of the parallel mempool tests.\\n- [Drafted](https://github.com/input-output-hk/quickcheck-dynamic/pull/72) parallel state machine testing infrastructure for `quickcheck-dynamic`. Eventually could be used to replace the QSM infra for mempool parallel tests.\\n- [Cleaned](https://github.com/IntersectMBO/cardano-api/pull/503) up the `Cardano.API.LedgerState` module, required for UTXO-HD integration.\\n- We have been working on Node release 8.10. The changes upstream are integrated all the way to Node. Tests and benchmarks are pending. The versions of Consensus, Ledger, and Networking are released, and we will focus next on releasing CLI, API, and finally Node."},{"id":"2024-04-03-mithril","metadata":{"permalink":"/2024-04-03-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-03-mithril.md","source":"@site/blog/2024-04-03-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-04-03T00:00:00.000Z","formattedDate":"April 3, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.055,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-04-03-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2024-04-03-consensus"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2024-03-30-node-cli-api"}},"content":"## High level overview\\n\\nThis week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for `mainnet`, completed the implementation of a more versatile beaconing mechanism, worked on implementing incremental storage of transactions, and fixed the bug in the block parser that prevented some Conway transactions from being signed. Additionally, they continued working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.\\n\\nFinally, they enhanced the internal storage of data on the test aggregator server and addressed a source of flakiness in the CI end-to-end test.\\n\\n## Low level overview\\n- Worked on the issue **Implement incremental storage of Cardano transactions in signer/aggregator** [#1591](https://github.com/input-output-hk/mithril/issues/1591)\\n- Completed the issue **Support multiple beacon types in signer/aggregator** [#1562](https://github.com/input-output-hk/mithril/issues/1562)\\n- Worked on the issue **Mithril relay broadcasts signer registrations with P2P PubSub** [#1587](https://github.com/input-output-hk/mithril/issues/1587)\\n- Completed the issue **Provide fake aggregator data in an aggregated form** [#1594](https://github.com/input-output-hk/mithril/issues/1594)\\n- Completed the issue **Some transactions are not signed in `testing-sanchonet`** [#1577](https://github.com/input-output-hk/mithril/issues/1577)\\n- Completed the issue **End to end tests are flaky in CI** [#1558](https://github.com/input-output-hk/mithril/issues/1558)\\n- Completed the issue **`npm` publication fails in the release workflow** [#1595](https://github.com/input-output-hk/mithril/issues/1595)\\n- Completed the issue **Add indexes on foreign keys of SQLite stores** [#1603](https://github.com/input-output-hk/mithril/issues/1603)"},{"id":"2024-03-30-node-cli-api","metadata":{"permalink":"/2024-03-30-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-30-node-cli-api.md","source":"@site/blog/2024-03-30-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2024-03-30T00:00:00.000Z","formattedDate":"March 30, 2024","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.19,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2024-03-30-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-04-03-mithril"},"nextItem":{"title":"SRE Team Update","permalink":"/2024-03-29-sre"}},"content":"# 2024-03-16 - 2024-03-30\\n\\n## High level summary\\n\\nAdding support for script based committee and dreps. This includes queries and using script as arguments instead of keys on various command.\\n\\n### cardano-cli\\n\\n- [Fix issues in `MonadWarning` Haddock](https://github.com/IntersectMBO/cardano-cli/pull/684)\\n- [Follow-ups of merged PRs](https://github.com/IntersectMBO/cardano-cli/pull/683)\\n- [Comments and indentation](https://github.com/IntersectMBO/cardano-cli/pull/682)\\n- [Throw an error on identical action-ids in votes of one voter](https://github.com/IntersectMBO/cardano-cli/pull/681)\\n- [Add `--drep-script-hash` parameter to `conway governance drep retirement-certificate`](https://github.com/IntersectMBO/cardano-cli/pull/678)\\n- [Update index-state and set cardano-git-rev ^>= 0.2.2](https://github.com/IntersectMBO/cardano-cli/pull/677)\\n- [Update index-state and set cardano-git-rev ^>= 0.2.2](https://github.com/IntersectMBO/cardano-cli/pull/675)\\n- [drep: registration-certificate, update-certificate: test anchors URLs of length > 64 and <= 128](https://github.com/IntersectMBO/cardano-cli/pull/671)\\n- [Update ouroboros-consensus-cardano-0.14.2](https://github.com/IntersectMBO/cardano-cli/pull/670)\\n- [proposal: disambiguate binary data from text data](https://github.com/IntersectMBO/cardano-cli/pull/669)\\n- [Release cardano-cli-8.21.0.0](https://github.com/IntersectMBO/cardano-cli/pull/668)\\n- [Support querying drep-state by script hash](https://github.com/IntersectMBO/cardano-cli/pull/666)\\n- [vote create: support DRep and CC script hash](https://github.com/IntersectMBO/cardano-cli/pull/665)\\n- [Display redeemers in `transaction view`](https://github.com/IntersectMBO/cardano-cli/pull/664)\\n- [ Add Plutus script hash support in `update-committee`, `overnance committee create-cold-key-resignation-certificate` and `query committee-state` commands.](https://github.com/IntersectMBO/cardano-cli/pull/658)\\n- [Add semaphore for vote view JSON test cases](https://github.com/IntersectMBO/cardano-cli/pull/655)\\n- [verification-key: support DRep keys as well as committee keys, extended or not](https://github.com/IntersectMBO/cardano-cli/pull/652)\\n\\n### cardano-api\\n\\n- [Replace unsafeMergeVotingProcedures by mergeVotingProcedures](https://github.com/IntersectMBO/cardano-api/pull/498)\\n- [Undeprecate `evaluateTransactionFee`](https://github.com/IntersectMBO/cardano-api/pull/493)\\n- [New version `cardano-api-8.43.0.0`](https://github.com/IntersectMBO/cardano-api/pull/492)\\n- [Release cardano-api-8.42.0.0](https://github.com/IntersectMBO/cardano-api/pull/491)\\n- [Tidy up \\"New calculateMinTxFee function\\"](https://github.com/IntersectMBO/cardano-api/pull/490)\\n- [Add support for script-based CC members](https://github.com/IntersectMBO/cardano-api/pull/489)\\n- [Bump ouroboros-consensus-diffusion](https://github.com/IntersectMBO/cardano-api/pull/488)\\n\\n### cardano-testnet\\n\\n- [Bump cardano-api to 8.39.3.0 and ouroboros-* and ekg-forward as a consequence](https://github.com/IntersectMBO/cardano-node/pull/5724)\\n- [testnet: fix that custom genesis files were not passed to create-testnet-data](https://github.com/IntersectMBO/cardano-node/pull/5722)\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2024-03-29-sre","metadata":{"permalink":"/2024-03-29-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-29-sre.md","source":"@site/blog/2024-03-29-sre.md","title":"SRE Team Update","description":"High level summary","date":"2024-03-29T00:00:00.000Z","formattedDate":"March 29, 2024","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.33,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2024-03-29-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2024-03-30-node-cli-api"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-03-28-hydra"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general\\nenvironment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Cardano-node 8.9.1 is now deployed to all environments.\\n\\n* The legacy IOG mainnet metadata server has been retired with CF now providing\\n metadata server services going forward.\\n\\n* Cardano-parts PR#35, merged and linked below, offers ip information\\n integration into nixosConfiguration modules as well as template-diff and\\n template-patch recipes for easier upgrades going forward.\\n\\n\\n## Lower level summary\\n\\n### Capkgs\\n* Adds a shortRev suffix to package names, fixes an rclone recipe, fixes a CI\\n push action, defaults to recursively dereferenced object hashes, cleans up\\n reference patterns. See the PR description for more details:\\n [capkgs-pull-2](https://github.com/input-output-hk/capkgs/pull/2)\\n\\n### Cardano-mainnet\\n* Bumps to cardano-node 8.9.1 and deploys all machines, makes ip information\\n available in nixosCfgs, adds new expected machine alerts, tunes snapshot\\n alerts and implements all updates in cardano-parts PR#35. See the PR\\n description for more details:\\n [cardano-mainnet-pull-10](https://github.com/input-output-hk/cardano-mainnet/pull/10)\\n\\n### Cardano-ops\\n* Bumps to cardano-node 8.9.1, removes the legacy metadata server:\\n [cardano-ops-commit](https://github.com/input-output-hk/cardano-ops/commit/5d4925b2fe825f28d72372c7b4b3d0fa0c514fd4)\\n\\n### Cardano-parts\\n* Upgrades cardano-node to 8.9.1 for both release and pre-release, integrates\\n machine ip information into nixosConfigurations, enables /etc/hosts file\\n usage in cardano-node topology, enhances cardano-node topology producer\\n generation with customizable address types, introduces template patching\\n recipes for easier cardano-parts updates to existing clusters. Much more\\n detail is available in the PR description:\\n [cardano-parts-pull-35](https://github.com/input-output-hk/cardano-parts/pull/35)\\n\\n### Cardano-playground\\n* Bumps to cardano-node 8.9.1 and deploys all envs, rotates KES keys in most\\n envs, makes ip information available in nixosCfgs and implements all updates\\n in cardano-parts PR#35. See the PR description for more details:\\n [cardano-playground-pull-18](https://github.com/input-output-hk/cardano-playground/pull/18)"},{"id":"2024-03-28-hydra","metadata":{"permalink":"/2024-03-28-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-28-hydra.md","source":"@site/blog/2024-03-28-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2024-03-28T00:00:00.000Z","formattedDate":"March 28, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.05,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-03-28-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2024-03-29-sre"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-03-27-ledger"}},"content":"### High-level summary\\n\\nThis week, the Hydra team conducted the monthly review meeting and investigated\\na broken head situation. The team slightly improved conway forward compatibility\\nin `explorer` / `hydra-node`, enhanced `hydra-cluster --devnet` which allows e2e\\ntesting of `kupo`, extended smoke test to also include committing ADA into the\\nhead, documented the anticipated behavior of incremental decommits, and added\\ndecommits to the tutorial.\\n\\n### What did the team achieve this week\\n\\n- Conducted the monthly review meeting (link to recording already?)\\n- Investigated a broken head situation [\\\\#1374](https://github.com/input-output-hk/hydra/issues/1374)\\n- Slightly improved conway forward compatibility in explorer / hydra-node [\\\\#1373](https://github.com/input-output-hk/hydra/pull/1373)\\n- Busy `hydra-cluster --devnet` sandbox which allows e2e testing of `kupo` [\\\\#1378](https://github.com/input-output-hk/hydra/pull/1378)\\n- Extended smoke test to also include committing ADA into the head [\\\\#1377](https://github.com/input-output-hk/hydra/pull/1377)\\n- Documented the anticipated behavior of incremental [decommits](https://github.com/input-output-hk/hydra/commit/60d55e8bb5a75c77647e17e44f22a754fa33ac0f) and added decommits to [tutorial](https://github.com/input-output-hk/hydra/commit/efc2809909636b6925b39dcb0810010fcd4a84c7)\\n- Another write-up of how the incremental commit/decommit could work (without needing merkle trees or L2/L1 interleaving) [on this issue](https://github.com/input-output-hk/hydra/issues/199#issuecomment-2018001381)\\n\\n### What are the goals of next week\\n\\n- Complete the written monthly report\\n- Update our head and `hydraw` instance to `master` (a release candidate)\\n- Complete the improved `/commit` endpoint to unblock users\\n- Release `0.16.0` (likely without incremental decommits)\\n- Reproduce close \\\\> contest \\\\> contest scenarios using stateful testing"},{"id":"2024-03-27-ledger","metadata":{"permalink":"/2024-03-27-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-27-ledger.md","source":"@site/blog/2024-03-27-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-03-27T00:00:00.000Z","formattedDate":"March 27, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":0.81,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-03-27-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-03-28-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-03-27-mithril"}},"content":"## High level summary\\n\\nWe continued focusing on adding tests and improving the test frameworks, including the quality of the generated data used in tests.\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-4205] - Disable CC ratification when number of members is below `ppCommitteeMinSize`\\n* [pull-4169] - Add `GovInfoEvent` and add event testing capabilities to `ImpTest`\\n* [pull-4208] - Remove missingScriptsSymmetricDifference\\n\\n### Testing\\n\\n* [pull-4121] - Newconstraints phase3, Add newtypes: Size, SizeSpec and class Sized.\\n* [pull-4197] - add unsafeMkProposals to be used for testing\\n* [pull-4200] - Fix `prop_GOV` so that it runs again\\n* [pull-4216] - improve the `GOV` generator to generate more interesting signals\\n\\n### Improvements\\n\\n* [pull-4195] - Fix Haddocks CI\\n* [pull-4175] - Set the `column-limit` in `fourmolu` config\\n* [pull-4210] - Remove small steps test folder\\n\\n### Releasing\\n\\n* [pull-4206] - Update hackage flake\\n\\n\\n[pull-4121]: https://github.com/IntersectMBO/cardano-ledger/pull/4121\\n[pull-4197]: https://github.com/IntersectMBO/cardano-ledger/pull/4197\\n[pull-4169]: https://github.com/IntersectMBO/cardano-ledger/pull/4169\\n[pull-4195]: https://github.com/IntersectMBO/cardano-ledger/pull/4195\\n[pull-4175]: https://github.com/IntersectMBO/cardano-ledger/pull/4175\\n[pull-4200]: https://github.com/IntersectMBO/cardano-ledger/pull/4200\\n[pull-4206]: https://github.com/IntersectMBO/cardano-ledger/pull/4206\\n[pull-4205]: https://github.com/IntersectMBO/cardano-ledger/pull/4205\\n[pull-4210]: https://github.com/IntersectMBO/cardano-ledger/pull/4210\\n[pull-4208]: https://github.com/IntersectMBO/cardano-ledger/pull/4208\\n[pull-4216]: https://github.com/IntersectMBO/cardano-ledger/pull/4216"},{"id":"2024-03-27-mithril","metadata":{"permalink":"/2024-03-27-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-27-mithril.md","source":"@site/blog/2024-03-27-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-03-27T00:00:00.000Z","formattedDate":"March 27, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.475,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-03-27-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-03-27-ledger"},"nextItem":{"title":"Performance & Tracing Update","permalink":"/2024-03-27-performance-and-tracing"}},"content":"## High level overview\\n\\nThis week, the Mithril team released a new [`Mithril distribution 2412.0`](https://github.com/input-output-hk/mithril/releases/tag/2412.0). This release includes several critical updates and enhancements, such as support for the Prometheus metrics endpoint in signer, deprecation of the `snapshot` command in the client CLI, full Pallas-based implementation of the chain observer, and support for Cardano node v.8.9.0. \\n\\nThe team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for `mainnet`, kept implementing a more versatile beaconing mechanism, reducing the latency of transactions signature, and continued investigating a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they started working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.\\n\\nFinally, the team completed the implementation of some community-requested features to verify the output folder structure made by the client, and kept investigating a source of flakiness in the CI end-to-end test.\\n\\n## Low level overview\\n- Released the new distribution [`2412.0`](https://github.com/input-output-hk/mithril/releases/tag/2412.0)\\n- Publication of a [dev blog post](https://mithril.network/doc/dev-blog/2024/03/26/mithril-signer-prometheus-endpoint) about the **Mithril signer Prometheus endpoint release**\\n- Publication of a [dev blog post](https://mithril.network/doc/dev-blog/2024/03/26/client-cli-deprecated-command) about the **Mithril client CLI `snapshot` command deprecation**\\n- Completed the issue **Implement a Block Range Merkle Tree for `Cardano Transactions`** [#1533](https://github.com/input-output-hk/mithril/issues/1533)\\n- Completed the issue **Do not require the mithril client to create the DB directory** [#1572](https://github.com/input-output-hk/mithril/issues/1572)\\n- Worked on the issue **Support multiple beacon types in signer/aggregator** [#1562](https://github.com/input-output-hk/mithril/issues/1562)\\n- Worked on the issue **Mithril relay broadcasts signer registrations with P2P PubSub** [#1587](https://github.com/input-output-hk/mithril/issues/1587)\\n- Worked on the issue **Provide fake aggregator data in an aggregated form** [#1594](https://github.com/input-output-hk/mithril/issues/1594)\\n- Worked on the issue **Some transactions are not signed in `testing-sanchonet`** [#1577](https://github.com/input-output-hk/mithril/issues/1577)\\n- Worked on the issue **End to end tests are flaky in CI** [#1558](https://github.com/input-output-hk/mithril/issues/1558)"},{"id":"2024-03-27-performance-and-tracing","metadata":{"permalink":"/2024-03-27-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-27-performance-and-tracing.md","source":"@site/blog/2024-03-27-performance-and-tracing.md","title":"Performance & Tracing Update","description":"High level summary","date":"2024-03-27T00:00:00.000Z","formattedDate":"March 27, 2024","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.99,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & Tracing Update","slug":"2024-03-27-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-03-27-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-03-22-hydra"}},"content":"## High level summary\\n\\n* Benchmarking: Release benchmarks for `8.9.1` have been performed and analysed.\\n* Development: We\'ve implemented a benchmarking setup for UTxO-HD\'s LMDB (on-disk) backend.\\n* Workbench: The now modular, `nix`-based genesis creation has been merged to `master`; `DRep` delegation and integration of a new `cardano-cli` command are ongoing.\\n* Tracing: Benchmarking the new handle registry feature in `cardano-tracer` is complete; quality-of-life improvements to Prometheus output.\\n* UTxO Growth: We\'ve adjusted our framework to support running UTxO scaling benchmarks on both a single node and a cluster.\\n* Nomad cluster: new multi-cluster support with the capability to quickly adjust to changes in deployed hardware\\n\\n## Low level overview\\n\\n\\n### Benchmarking\\n\\nWe\'ve performed a full set of release benchmarks for Node `8.9.1`. Comparing with release `8.9.0`, we could not detect any performance risks for that version. \\n\\n### Development\\n\\nIn context of UTxO scaling, we want to assess the feasability of the current on-disk solution (which is LMDB) of a UTxO-HD enabled node. Using that, the UTxO set will be kept \\nin live tables and snapshots on disk, significantly reducing memory requirements. \\n\\nWe\'ve implemented a benchmark setting, and a node service configuration, supporting direct disk access to a dedicated device which can be initialized with optimized\\nfile system and mount settings. It\'s purpose is to serve as storage for the highly performance-critical disk I/O of the LMDB component.\\n\\n### Workbench\\n\\nOur automation for creating all flavours of geneses has seen cleanup and refactoring - which has been merged to `master`. It can now use a more principled, and rigorously checked, modular approach\\nto define, create and cache the desired genesis files. \\n\\nWorking on integrating new `cardano-cli` functionality in our automation is ongoing. The performance workbench will support a different, and updated, CLI command which will allow injection of `DRep` delegations into genesis.\\n\\n### Tracing\\n\\nBenchmarking `cardano-tracer`\'s new handle registry feature has been performed and evaluated. We\'re satisfied with seeing clear performance improvements along with cleaner code, and much better test coverage.\\nEspecially allocation rate and number of garbage collections (GC) could be significantly reduced, along with the CPU time required for performing GCs. This will allow for higher trace message throughput given\\nidentiacal system resources - plus less system calls issued to the OS in the process. \\n\\nFurthermore, the new tracing system is getting improvements for its Prometheus output - like providing version numbers as metrics, or annotating metrics with their type - enhancing the output\'s overall utility.\\n\\n### UTxO Growth\\n\\nThe performance workbench now supports profiles aimed at simulating UTxO growth both for a single node and an entire cluster. Additionally, simulating different\\nRAM sizes in combination with specific UTxO set sizes is supported. For a single block producing node, the focus is on quick turnaround when running\\na benchmark, gaining insight into the node\'s RAM usage and possible impact on the forging loop. \\n\\nThe cluster profiles enable capturing block diffusion metrics as well, however they require a much longer runtime. We can now successfully benchmark the node\'s behaviour\\nwhen dealing with UTxO set sizes 4x - 5x of current mainnet, as well as a possible change in behaviour when operating close to phsyical RAM limit due to that.\\n\\n### Nomad cluster\\n\\nOur backend now supports allocating and deploying Nomad jobs for multiple clusters simultaneously - all while keeping existing automations operational. We\'ve taken special precautions\\na cluster, as seen by the backend, can be efficiently and easily modified to reflect newly deployed, or changed, hardware. Additionally, we\'ve added support for host volumes inside a Nomad\\nallocation - which will be needed for benchmarking UTxO-HD\'s on-disk solution."},{"id":"2024-03-22-hydra","metadata":{"permalink":"/2024-03-22-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-22-hydra.md","source":"@site/blog/2024-03-22-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2024-03-22T00:00:00.000Z","formattedDate":"March 22, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.895,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-03-22-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Update","permalink":"/2024-03-27-performance-and-tracing"},"nextItem":{"title":"Consensus Team Update","permalink":"/2024-03-20-consensus"}},"content":"### High-level summary\\n\\nThis week, the Hydra team restored test compatibility with all networks, reviewed and merged streaming plugins contributed by SundaeLabs. The team also fixed tutorial instructions for downloading the latest cardano-node, fixed the observed contesters bug, prepared a PRs for downstream clients to use the new API format for transactions (preparing the release with this breaking change). Finally, they also recorded a walkthrough video on how the hydra project is run: https://www.youtube.com/watch?v=JGUeO7A6mMU\\n\\n### What did the team achieve this week\\n\\n- Restored compatibility with all networks [\\\\#1355](https://github.com/input-output-hk/hydra/pull/1355).\\n- Reviewed and merged streaming plugins (only missing a how-to) [\\\\#1325](https://github.com/input-output-hk/hydra/issues/1325).\\n- Fixed tutorial instructions for downloading cardano-node 8.9.0 [\\\\#1367](https://github.com/input-output-hk/hydra/pull/1367).\\n- Fixed the observed contesters bug [\\\\#1266](https://github.com/input-output-hk/hydra/pull/1266).\\n- Prepared a PR for Kupo using new Hydra transaction format [kupo#166](https://github.com/CardanoSolutions/kupo/pull/166).\\n- Recorded a walkthrough on how the hydra project is run (uncut) .\\n\\n### What are the goals of next week\\n\\n- Conduct the monthly review meeting\\n- Improve the `/commit` endpoint to unblock users\\n- Stateful testing of transaction traces to verify corner cases for\\n incremental decommit\\n- Release `0.16.0`"},{"id":"2024-03-20-consensus","metadata":{"permalink":"/2024-03-20-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-20-consensus.md","source":"@site/blog/2024-03-20-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2024-03-20T00:00:00.000Z","formattedDate":"March 20, 2024","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.485,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2024-03-20-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-03-22-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-03-20-mithril"}},"content":"## High level summary\\n\\n- [Merged](https://github.com/input-output-hk/fs-sim/pull/46) the alternative `fs-api` interface for I/O using user-supplied buffers. This feature is important because it defines lower-level primitives for the filesystem API, which opens op avenues for more use cases and more efficient I/O operations (for instance when implementing `lsm-tree`, which is part of our efforts to move the ledger state to disk). This feature has not been released yet.\\n- [Implemented](https://github.com/IntersectMBO/ouroboros-consensus/pull/955) new diffusion pipelining criterion .\\n- Released Consensus packages containing backports for Node `8.9.1`.\\n- Focused on fixing the tests for `ouroboros-consensus` in the UTXO-HD branch. Work is ongoing."},{"id":"2024-03-20-mithril","metadata":{"permalink":"/2024-03-20-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-20-mithril.md","source":"@site/blog/2024-03-20-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-03-20T00:00:00.000Z","formattedDate":"March 20, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.23,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-03-20-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2024-03-20-consensus"},"nextItem":{"title":"Network Team Update","permalink":"/2024-03-18-network"}},"content":"## High level overview\\n\\nThis week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for `mainnet`, completed UI improvements for the explorer, provided metadata about the point of the chain used during the verification process, and investigated a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they began prototyping the implementation of a more versatile beaconing mechanism to sign transactions with low latency.\\n\\nFinally, the team started implementing some community-requested features to verify the output folder structure made by the client, and fixed a source of flakiness in the CI end-to-end test.\\n\\n## Low level overview\\n\\n- Completed the issue **Upgrade Cardano node to `8.9.0`** [#1570](https://github.com/input-output-hk/mithril/issues/1570)\\n- Completed the issue **Explorer improvements for Cardano transactions** [#1554](https://github.com/input-output-hk/mithril/issues/1554)\\n- Completed the issue **Refactor the Cardano transactions parser with `pallas-hardano`** [#1557](https://github.com/input-output-hk/mithril/issues/1557)\\n- Completed the issue **Provide latest immutable file number with certified transactions in client** [#1536](https://github.com/input-output-hk/mithril/issues/1536)\\n- Worked on the issue **Implement a Block Range Merkle Tree for `Cardano Transactions`** [#1533](https://github.com/input-output-hk/mithril/issues/1533)\\n- Worked on the issue **Support multiple beacon types in signer/aggregator** [#1562](https://github.com/input-output-hk/mithril/issues/1562)\\n- Worked on the issue **Do not require the mithril client to create the DB directory** [#1572](https://github.com/input-output-hk/mithril/issues/1572)\\n- Worked on the issue **Some transactions are not signed in `testing-sanchonet`** [#1577](https://github.com/input-output-hk/mithril/issues/1577)\\n- Worked on the issue **End to end tests are flaky in CI** [#1558](https://github.com/input-output-hk/mithril/issues/1558)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)"},{"id":"2024-03-18-network","metadata":{"permalink":"/2024-03-18-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-18-network.md","source":"@site/blog/2024-03-18-network.md","title":"Network Team Update","description":"High-level overview of sprint 57","date":"2024-03-18T00:00:00.000Z","formattedDate":"March 18, 2024","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.26,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2024-03-18-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-03-20-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-03-15-hydra"}},"content":"## High-level overview of [sprint 57][sprint-57]\\n\\nWe released [`cardano-node-8.9.0`] \\\\(which includes\\n`ouroboros-newtork-0.12.0.0`). This release contains the following network\\nupgrades:\\n\\n* bootstrap peers (aka _Light Genesis_): [ouroboros-network#4555],\\n [ouroboros-network#4799], [ouroboros-network#4810]; \\n* churn changes: [ouroboros-network#4800];\\n* peer sharing changes: [ouroboros-network#4778], [ouroboros-network#4788], [ouroboros-network#4793];\\n* code refactoring & documentation fixes.\\n\\nSoon we will release [`cardano-node-8.9.1`] \\\\(which includes\\n`ouroboros-network-0.12.0.0`). This release will contain:\\n\\n* Peer sharing improvements & fixes. Contributed and tested by Karl Knutsson [CF].\\n* `cardano-ping` updates to support `NodeToNode_V13` & peer sharing.\\n* Some smaller maintenance changes.\\n\\nThe list of network features included in `ouroboros-network-0.12.0.0` and\\n`ouroboros-network-0.13.0.0` can be found [here][ouroboros-network-releases].\\n\\nWe also continued working on `tx-submission`, [ouroboros-network#3311]. Mostly\\nworking on the pure internal API for decision-making and testing it with\\nproperty-based tests. The next step is to get all the information needed to run\\nthe decision logic in an efficient way and later write a mini-protocol client\\nwhich is using the new API and testing it.\\n\\nWe also started working on thing to finalise the Genesis support from the\\nnetwork. We have a PR under review, [ouroboros-network#4832]. We also started\\nto investigate how to support big ledger peer snapshots. This requires changes\\nin the topology file as well as `cardano-node` & `ouroboros-network` to\\nunderstand the snapshots; and on the other hand creation of such snapshots by\\n`cardano-cli`.\\n\\n## Low-level summary\\n\\nThis time everything was _high-level_, :wink:.\\n\\n[sprint-57]: https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+57%22\\n\\n[CF]: https://cardanofoundation.org\\n\\n[`cardano-node-8.9.0`]: https://github.com/IntersectMBO/cardano-node/releases/tag/8.9.0\\n[ouroboros-network-releases]: https://github.com/orgs/IntersectMBO/projects/5/views/18\\n\\n[ouroboros-network#3311]: https://github.com/IntersectMBO/ouroboros-network/issues/3311\\n[ouroboros-network#4555]: https://github.com/IntersectMBO/ouroboros-network/issues/4555\\n[ouroboros-network#4778]: https://github.com/IntersectMBO/ouroboros-network/issues/4778\\n[ouroboros-network#4788]: https://github.com/IntersectMBO/ouroboros-network/issues/4788\\n[ouroboros-network#4793]: https://github.com/IntersectMBO/ouroboros-network/issues/4793\\n[ouroboros-network#4794]: https://github.com/IntersectMBO/ouroboros-network/issues/4794\\n[ouroboros-network#4799]: https://github.com/IntersectMBO/ouroboros-network/issues/4799\\n[ouroboros-network#4800]: https://github.com/IntersectMBO/ouroboros-network/issues/4800\\n[ouroboros-network#4810]: https://github.com/IntersectMBO/ouroboros-network/issues/4810\\n[ouroboros-network#4832]: https://github.com/IntersectMBO/ouroboros-network/issues/4832"},{"id":"2024-03-15-hydra","metadata":{"permalink":"/2024-03-15-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-15-hydra.md","source":"@site/blog/2024-03-15-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2024-03-15T00:00:00.000Z","formattedDate":"March 15, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.38,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-03-15-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2024-03-18-network"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2024-03-15-node-cli-api"}},"content":"### High-level summary\\n\\nThis week, the Hydra team worked on aligning the specification with the current\\nincremental decommit implementation, added decommit to model-based tests and\\nalso discussed the incremental commit protocol extension with researchers. The\\nteam also updated to `cardano-api 8.40` and tests against `cardano-node 8.9.0`,\\nwhich unblocked a possible release and re-enabled smoke tests on public\\nnetworks. They also groomed a new `/commit` endpoint interface from a user\\ndiscussion and discussed restructuring of the Hydra documentation. The team also\\nprepared a `Conway`-supporting `hydra-node` on branch `lc/conway-support` for\\nearly adopters (Hi @Juantxu and @ash \ud83d\udc4b). Some internal refactoring prepared for\\nupcoming streaming plugins by SundaeLabs and minor fixes to the TUI and\\n`hydra-explorer` rounded off the week.\\n\\n### What did the team achieve this week\\n\\n- Aligned specification with current incremental decommit implementation and added Decommit to model based tests.\\n- Discussed and explored further on incremental commits with researchers.\\n- Refactored `Event -> Input` [#1348](https://github.com/input-output-hk/hydra/pull/1348) to prepare for streaming plugins [#1325](https://github.com/input-output-hk/hydra/issues/1325).\\n- Minor fixes to the TUI and hydra-explorer clients.\\n- Updated to `cardano-node 8.9.0` and `cardano-api 8.40` - this unblocked a possible release and re-enabled smoke tests on public networks.\\n- Groomed new `/commit` endpoint interface [#1350](https://github.com/input-output-hk/hydra/issues/1350) from a user discussion [#1337](https://github.com/input-output-hk/hydra/discussions/1337).\\n- Discussed restructuring of the Hydra documentation [#1349](https://github.com/input-output-hk/hydra/issues/1349).\\n- Prepared a `Conway`-supporting `hydra-node` on branch `lc/conway-support` [#1178](https://github.com/input-output-hk/hydra/issues/1178) (will be merged only after the hard-fork).\\n\\n### What are the goals of next week\\n\\n- Prepare a PR for Kupo using new Hydra transaction format (to prepare for 0.16.0 release)\\n- Review and merge streaming plugins [#1325](https://github.com/input-output-hk/hydra/issues/1325)\\n- Improve the `/commit` endpoint to unblock users\\n- Test corner cases of incremental decommit transaction traces"},{"id":"2024-03-15-node-cli-api","metadata":{"permalink":"/2024-03-15-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-15-node-cli-api.md","source":"@site/blog/2024-03-15-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2024-03-15T00:00:00.000Z","formattedDate":"March 15, 2024","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.15,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2024-03-15-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-03-15-hydra"},"nextItem":{"title":"SRE Team Update","permalink":"/2024-03-15-sre"}},"content":"# 2024-03-01 - 2024-03-15\\n\\n## High level summary\\n\\n- cardano-cli: Focus is on testing Conway features. Several improvements to create-testnet-data command, useful for creating/deploying local clusters for testing. Enable parallel execution of tests. \\n\\n### cardano-cli\\n\\n- [Update cardano-api-8.40.0.0](https://github.com/IntersectMBO/cardano-cli/pull/648)\\n- [create-testnet-data: fix that treasury could be unexpectedly negative](https://github.com/IntersectMBO/cardano-cli/pull/644)\\n- [Fix parallel `create-testnet-data` stdout contents test ](https://github.com/IntersectMBO/cardano-cli/pull/640)\\n- [cardano-cli-test: remove compatibility shim that is now useless](https://github.com/IntersectMBO/cardano-cli/pull/639)\\n- [create-testnet-data: fix computation of not-delegated amount](https://github.com/IntersectMBO/cardano-cli/pull/638)\\n- [Follow-ups of create-testnet-data+relays](https://github.com/IntersectMBO/cardano-cli/pull/636)\\n- [Allow an output file to be specified for query pool-state](https://github.com/IntersectMBO/cardano-cli/pull/635)\\n- [Bump cardano-ping](https://github.com/IntersectMBO/cardano-cli/pull/633)\\n- [create-testnet-data: allow to specify relays for SPOs (like create-staked)](https://github.com/IntersectMBO/cardano-cli/pull/632)\\n\\n\\n### cardano-api\\n\\n- [Fix for foldEpochState haddock](https://github.com/IntersectMBO/cardano-api/pull/483)\\n- [Expose default genesis for Conway and Alonzo, and DRepState constructors](https://github.com/IntersectMBO/cardano-api/pull/482)\\n- [New version `cardano-api-8.40.0.0`](https://github.com/IntersectMBO/cardano-api/pull/480)\\n- [Remove error `\\"evaluateTransactionFee: TODO support Byron key witnesses\\"`](https://github.com/IntersectMBO/cardano-api/pull/478)\\n- [Use the ledger\'s Coin instead of our custom Lovelace type](https://github.com/IntersectMBO/cardano-api/pull/475)\\n- [Revert \\"Remove unused constraint\\"](https://github.com/IntersectMBO/cardano-api/pull/472)\\n\\n- [Add `SlotNo` and `BlockNo` parameters to `foldEpochState`\'s callback function](https://github.com/IntersectMBO/cardano-api/pull/470)\\n- [Expose Block constructors](https://github.com/IntersectMBO/cardano-api/pull/468)\\n\\n### cardano-testnet\\n\\n- [Update cardano-ping to the same version as cardano-cli](https://github.com/IntersectMBO/cardano-node/pull/5710)\\n- [Remove flaky calls to by `byDeadlineM` in `cardano-testnet`](https://github.com/IntersectMBO/cardano-node/pull/5707)\\n- [Add PARALLEL_TESTNETS flag](https://github.com/IntersectMBO/cardano-node/pull/5706)\\n- [testnet: reduce log length significantly, by not logging the config](https://github.com/IntersectMBO/cardano-node/pull/5701)\\n- [Use more realistic default conway genesis](https://github.com/IntersectMBO/cardano-node/pull/5700)\\n- [Make testnet\'s nodes\' ports allocation dynamic](https://github.com/IntersectMBO/cardano-node/pull/5699)\\n\\n### docs\\n\\n### CI & project maintenance\\n\\n- [Enable parallel execution of tests (cli)](https://github.com/IntersectMBO/cardano-cli/pull/637)\\n- [Enable parallel execution of tests (api)](https://github.com/IntersectMBO/cardano-api/pull/471)"},{"id":"2024-03-15-sre","metadata":{"permalink":"/2024-03-15-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-15-sre.md","source":"@site/blog/2024-03-15-sre.md","title":"SRE Team Update","description":"High level summary","date":"2024-03-15T00:00:00.000Z","formattedDate":"March 15, 2024","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.545,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2024-03-15-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2024-03-15-node-cli-api"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-03-13-ledger"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general\\nenvironment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Cardano-node 8.9.0 is now deployed to all environments.\\n\\n* A new profile-cardano-db-sync-snapshots nixosModule is available for\\n snapshotting dbsync state.\\n\\n## Lower level summary\\n\\n### Cardano-mainnet\\n* Updates cardano node and cli pre-release (-ng) to 8.9.0. Adds a new\\n cardano-db-sync snapshots server. Bumps mithril and enhances mithril\\n usability with IOG trusted pool signature verification for clients and\\n mithril verifier service for signers. Adds miscellaneous other small\\n improvements, bug fixes and tuning. See the pull request description for\\n more details:\\n [cardano-mainnet-pull-8](https://github.com/input-output-hk/cardano-mainnet/pull/9)\\n\\n### Cardano-node\\n* Adds nixos service and topology updates related to cardano-node 8.9.0\\n release:\\n [cardano-node-compare](https://github.com/IntersectMBO/cardano-node/compare/22f11ec...dd6ad0f)\\n\\n### Cardano-ops\\n* Bumps to cardano-node 8.9.0, fixes metadata server module, removes the legacy\\n snapshots server:\\n [cardano-ops-compare](https://github.com/input-output-hk/cardano-ops/compare/56bdf14...mn-legacy-scale-down)\\n\\n### Cardano-parts\\n* Updates cardano node and cli pre-release (-ng) to 8.9.0 and enables new\\n bootstrapPeers features and compatibility in the topology functions. Bumps\\n mithril and enhances mithril usability with IOG trusted pool signature\\n verification for clients, mithril verifier service for signers, mithril\\n capability for process-compose and node entrypoint jobs. Adds miscellaneous\\n other small improvements, bug fixes and tuning. See the pull request\\n description for more details:\\n [cardano-parts-pull-34](https://github.com/input-output-hk/cardano-parts/pull/34)\\n\\n### Cardano-playground\\n* Updates cardano node and cli pre-release (-ng) to 8.9.0. Bumps mithril and\\n enhances mithril usability with IOG trusted pool signature verification for\\n clients, mithril verifier service for signers, mithril capability for\\n process-compose and node entrypoint jobs. Adds miscellaneous other small\\n improvements, bug fixes and tuning. See the pull request description for\\n more details:\\n [cardano-playground-pull-18](https://github.com/input-output-hk/cardano-playground/pull/18)\\n\\n### Govtool\\n* Fixes a coalesce function sql query bug in the govtool backend:\\n [govtool-commit](https://github.com/IntersectMBO/govtool/commit/9920dcb53db35ee1196ebdd77af3090bbdc7c754)\\n\\n### Iohk-nix\\n* Adds support for bootstrap peers and sanchonet mithril configuration:\\n [iohk-nix-pull-574](https://github.com/input-output-hk/iohk-nix/pull/574)\\n\\n### Sanchonet-demo\\n* Bumps cardano-parts for cardano-node 8.9.0 and brings the justfile demo\\n recipes up to 8.9.0 compatibility:\\n [sanchonet-demo-compare](https://github.com/input-output-hk/sanchonet-demo/compare/b54da94...8797c24)"},{"id":"2024-03-13-ledger","metadata":{"permalink":"/2024-03-13-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-13-ledger.md","source":"@site/blog/2024-03-13-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-03-13T00:00:00.000Z","formattedDate":"March 13, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.165,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-03-13-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2024-03-15-sre"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-03-13-mithril"}},"content":"## High level summary\\n\\nFocus has been on testing: adding tests and improving our testing framework to make it easier to write tests for various Conway features. \\nWe also did some cleanup and reorganisation of code, to make it more manageable and easier to release. \\nWe have started work on Hardfork Initiation: support for intra-era hardfork initiation and necessary updates the SPO stake distribution calculation. \\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-4140] - Intra era hardfork initiation\\n* [pull-4154] - SPO stake distr calc for HardForkInitiation\\n* [pull-4150] - Add `ConwayUtxosPredFailure`\\n* [pull-4162] - Add `ConwayDRepIncorrectRefund` and tests for `GovCert`\\n* [pull-4112] - Fail when conway features are present in transactions that use Plutus v1/v2\\n* [pull-4164] - Change hot credential representation in `CommitteeState`\\n* [pull-4178] - Remove code repetition in Conway era CDDL\\n\\n### Testing\\n\\n* [pull-4096] - Add a collection of test Plutus scripts for use in ImpTests\\n* [pull-4144] - Add imptests for delaying actions enactment\\n* [pull-4104] - Governance policy tests\\n* [pull-4123] - Add the ability to do constraints over trees in `constrained-generators`\\n* [pull-4163] - Reorganise GovSpec, add GovCertSpec\\n* [pull-4152] - Add extra type-safety to ensure that all predicate failures have roundtrip tests\\n* [pull-4172] - Add imptests for some more GOV predicate failures\\n* [pull-4139] - Add extra time from 1 sec to 2 sec for prop_soundness test.\\n* [pull-4173] - Update profiling instructions\\n* [pull-4177] - Plutusv3 initialization tests\\n* [pull-4155] - Fix nightly build failures\\n\\n### Improvements\\n\\n* [pull-4141] - Add `boom` placeholder\\n* [pull-4157] - Split Conway governance\\n* [pull-4188] - Simplify implementation of ToJSON1 of ListMap\\n* [pull-4129] - Modify PParams to use similar naming to ProtocolParams in `cardano-api` \\n* [pull-4160] - Make shelley `TxWits` consistent with other eras\\n* [pull-4168] - Add missing `InjectFailure` instances for `ConwayUtxosPredFailure`\\n* [pull-4086] - Change applySTS to return NonEmpty (PredicateFailure s)\\n* [pull-4176] - Add CARDANO_MAINNET_MIRROR to Nix shell\\n* [pull-4174] - Convert `small-steps-test` into a sublibrary\\n* [pull-4159] - Shelley rules cleanup\\n\\n### Specification\\n\\n* [pull-4042] - Fix the prose being inconsistent with the figure\\n* [pull-4151] - Fix an issue with txinfo and unusual notation in Babbage UTXO rule\\n\\n### Releasing\\n\\n* [pull-4190] - Bump plutus version to 1.23.00\\n\\n\\n[pull-4112]: https://github.com/IntersectMBO/cardano-ledger/pull/4112\\n[pull-4141]: https://github.com/IntersectMBO/cardano-ledger/pull/4141\\n[pull-4140]: https://github.com/IntersectMBO/cardano-ledger/pull/4140\\n[pull-4042]: https://github.com/IntersectMBO/cardano-ledger/pull/4042\\n[pull-4096]: https://github.com/IntersectMBO/cardano-ledger/pull/4096\\n[pull-4144]: https://github.com/IntersectMBO/cardano-ledger/pull/4144\\n[pull-4104]: https://github.com/IntersectMBO/cardano-ledger/pull/4104\\n[pull-4123]: https://github.com/IntersectMBO/cardano-ledger/pull/4123\\n[pull-4150]: https://github.com/IntersectMBO/cardano-ledger/pull/4150\\n[pull-4151]: https://github.com/IntersectMBO/cardano-ledger/pull/4151\\n[pull-4157]: https://github.com/IntersectMBO/cardano-ledger/pull/4157\\n[pull-4129]: https://github.com/IntersectMBO/cardano-ledger/pull/4129\\n[pull-4160]: https://github.com/IntersectMBO/cardano-ledger/pull/4160\\n[pull-4163]: https://github.com/IntersectMBO/cardano-ledger/pull/4163\\n[pull-4152]: https://github.com/IntersectMBO/cardano-ledger/pull/4152\\n[pull-4168]: https://github.com/IntersectMBO/cardano-ledger/pull/4168\\n[pull-4162]: https://github.com/IntersectMBO/cardano-ledger/pull/4162\\n[pull-4172]: https://github.com/IntersectMBO/cardano-ledger/pull/4172\\n[pull-4154]: https://github.com/IntersectMBO/cardano-ledger/pull/4154\\n[pull-4139]: https://github.com/IntersectMBO/cardano-ledger/pull/4139\\n[pull-4173]: https://github.com/IntersectMBO/cardano-ledger/pull/4173\\n[pull-4086]: https://github.com/IntersectMBO/cardano-ledger/pull/4086\\n[pull-4164]: https://github.com/IntersectMBO/cardano-ledger/pull/4164\\n[pull-4177]: https://github.com/IntersectMBO/cardano-ledger/pull/4177\\n[pull-4155]: https://github.com/IntersectMBO/cardano-ledger/pull/4155\\n[pull-4176]: https://github.com/IntersectMBO/cardano-ledger/pull/4176\\n[pull-4174]: https://github.com/IntersectMBO/cardano-ledger/pull/4174\\n[pull-4159]: https://github.com/IntersectMBO/cardano-ledger/pull/4159\\n[pull-4190]: https://github.com/IntersectMBO/cardano-ledger/pull/4190\\n[pull-4178]: https://github.com/IntersectMBO/cardano-ledger/pull/4178\\n[pull-4188]: https://github.com/IntersectMBO/cardano-ledger/pull/4188"},{"id":"2024-03-13-mithril","metadata":{"permalink":"/2024-03-13-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-13-mithril.md","source":"@site/blog/2024-03-13-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-03-13T00:00:00.000Z","formattedDate":"March 13, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.365,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-03-13-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-03-13-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-03-08-hydra"}},"content":"## High level overview\\n\\nThis week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the adaptation of the Mithril explorer to support Cardano transaction verification, kept improving its UI, fixed the bug that prevented the signature of some Conway era transactions, implemented a more robust transactions parser, and started providing metadata about the point of the chain used during the verification process. Additionally, they have completed the optimization of the communications of the Mithril nodes and the Cardano node with the finalization of the Pallas chain observer.\\n\\nFinally, the team enhanced the handling of logs in the CLI of the Mithril nodes and investigated some remaining flakiness in the end-to-end test in the CI.\\n\\n## Low level overview\\n- Completed the issue **Output CLIs logs to `stderr`** [#1515](https://github.com/input-output-hk/mithril/issues/1515)\\n- Completed the issue **Implement `Cardano Transactions` in explorer** [#1497](https://github.com/input-output-hk/mithril/issues/1497)\\n- Completed the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)\\n- Completed the issue **`npm` publish fails on `latest` when `next` exists** [#1531](https://github.com/input-output-hk/mithril/issues/1531)\\n- Completed the issue **Cardano transactions are not all signed in `testing-sanchonet`** [#1537](https://github.com/input-output-hk/mithril/issues/1537)\\n- Completed the issue **Enhance `www` demonstration in `mithril-client-wasm`** [#1552](https://github.com/input-output-hk/mithril/issues/1552)\\n- Worked on the issue **Implement a Block Range Merkle Tree for `Cardano Transactions`** [#1533](https://github.com/input-output-hk/mithril/issues/1533)\\n- Worked on the issue **Provide latest immutable file number with certified `Cardano transactions` in client** [#1536](https://github.com/input-output-hk/mithril/issues/1536)\\n- Worked on the issue **Explorer improvements Cardano transactions** [#1554](https://github.com/input-output-hk/mithril/issues/1554)\\n- Worked on the issue **Refactor the Cardano transactions parser with `pallas-hardano`** [#1557](https://github.com/input-output-hk/mithril/issues/1557)\\n- Worked on the issue **End to end tests are flaky in CI** [#1558](https://github.com/input-output-hk/mithril/issues/1558)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)"},{"id":"2024-03-08-hydra","metadata":{"permalink":"/2024-03-08-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-08-hydra.md","source":"@site/blog/2024-03-08-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2024-03-08T00:00:00.000Z","formattedDate":"March 8, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.08,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-03-08-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-03-13-mithril"},"nextItem":{"title":"Performance & Tracing Update","permalink":"/2024-03-08-performance-and-tracing"}},"content":"### High-level summary\\n\\nThis week, the Hydra team has been working on a new library `cardano-api-classy` containing type class instances for era witnesses and also switched nix code to use `flake-parts`. They also further improved the Hydra Head \\\\[explorer\\\\]() UI. The team also improved error reporting on integration tests and refactored the outcome algebra in the hydra-node protocol logic. Finally, they reviewed the incremental decommit specification with researchers. Meanwhile, SundeaLabs already implemented first UDP and Kinesis event sinks based on the EventSource / EventSink refactoring.\\n\\n### What did the team achieve this week\\n\\n- New library `cardano-api-classy` containing type class instances for era witnesses.\\n- Switched the nix code to use `flake-parts`.\\n- Completed another increment on the head explorer UI [\\\\#1333](https://github.com/input-output-hk/hydra/pull/1333).\\n- Improved error reporting on integration tests [\\\\#1335](https://github.com/input-output-hk/hydra/pull/1335).\\n- Refactored the outcome algebra in the hydra-node protocol logic [\\\\#1340](https://github.com/input-output-hk/hydra/pull/1340).\\n- Reviewed incremental decommit specification with researchers.\\n- SundaeLabs implemented first UDP and Kinesis event sinks based on [\\\\#1267](https://github.com/input-output-hk/hydra/pull/1267).\\n\\n### What are the goals of next week\\n\\n- Prepare [\\\\#1178](https://github.com/input-output-hk/hydra/issues/1178) on a branch for users to try out Conway on hydra.\\n- Align specification with incremental decommit implementation\\n- Improve MTB in terms of new Decommit input\\n- Prepare a PR for Kupo using new Hydra transaction format\\n- Spike on literate Agda specification pdf"},{"id":"2024-03-08-performance-and-tracing","metadata":{"permalink":"/2024-03-08-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-08-performance-and-tracing.md","source":"@site/blog/2024-03-08-performance-and-tracing.md","title":"Performance & Tracing Update","description":"High level summary","date":"2024-03-08T00:00:00.000Z","formattedDate":"March 8, 2024","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":4.04,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & Tracing Update","slug":"2024-03-08-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-03-08-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2024-03-06-consensus"}},"content":"## High level summary\\n\\n* Benchmarking: We\'ve performed release benchmarks for Node `8.9.0`. Additionally, we benchmarked different GC settings for `cardano-node`.\\n* Development: Ongoing work on the reporting pipeline and high-level profile definitions.\\n* Workbench: In conjunction with `DRep` delegations in genesis, we\'re working on adjustments to a new `cardano-cli` command.\\n* Tracing: Test coverage for the new handle registry feature in `cardano-tracer` is complete.\\n* UTxO Growth: Currently, we\'re developing a series of benchmarks targeting performance implications of increased UTxO set size.\\n* Nomad cluster: Disk storage safety net; better admin access to Nomad nodes; basic backend support for more than 1 cluster; new latency service.\\n\\n## Low level overview\\n\\n\\n### Benchmarking\\n\\nWe\'ve performed a full set of release benchmarks for Node `8.9.0`. Initially, we identified a performance regression in connection to ledger snapshots. This has been addressed very swiftly.\\nHaving re-run the fixed version, we could detect no performance risks in comparison with `8.7.2` / `8.7.3`. \\n\\nIn an additional set of benchmarks, we targeted the garbage collector (GC) settings that `cardano-node` is built with by default. Specifically, we compared these (copying, sequential GC) as a baseline\\nto using the parallel GC, the compacting GC and the non-moving GC - all of which are supported by GHC\'s runtime system. As GC always is a trade-off between space and time (and as a consequence, responsiveness);\\nwe could measure the parallel GC offering a slight increase in responsiveness at the cost of delaying some evaluations - which is suboptimal for a block forger. The compacting GC could clearly\\nachieve a smaller RAM footprint, but only at the cost of increased CPU usage - and clearly worsened responsiveness. The non-moving GC could greatly enhance responsiveness - but increased the RAM footprint tremendously, as\\nwell as introduced delays in the forging loop. In conclusion: the existing default is still the best choice by far for `cardano-node` - validated both on GHC8.10.7 and GHC9.6.3.\\n\\n### Development\\n\\n\\nThe work on moving benchmark profile, and genesis, definitions out of the `bash` scripting / JSON data transformation space is still ongoing. Type safety and a test suite for those tasks\\nwill allow for a much more principled approach. \\n\\nThe implementation of additional rendering formats and report templates for our reporting pipeline has been completed; it is currently in testing and validation phase.\\n\\n### Workbench\\n\\nWe\'re working on integrating new `cardano-cli` functionality in our automations. Injecting `DRep` delegations into genesis - for Conway ledger benchmarks - will require us\\nto use a new CLI command, which differs in in output structure and options provided from the one we\'re using to inject stake pool delegations. This requires us to\\nimplement and additional post-processing step for backends to find everything as expected.\\n\\nFurthermore, a PR has been merged which refactors and cleans up benchmarking profiles, with a focus on fine-tuning solo-node benchmarks which scrutinize a single `cardano-node` process.\\n\\n### Tracing\\n\\nThe test suite for `cardano-tracer`\'s new handle registry feature is complete, and the new feature passes all tests. At the moment, we\'re\\npreparing it for merging into `master`.\\n\\n### UTxO Growth\\n\\nWe\'re developing a series of benchmarks that will provide insight into possible changes to the Node\'s performance characteristics given different UTxO set sizes and numbers of delegated wallets.\\nWhat we aim to capture in these benchmarks is the system\'s capability to scale with UTxO growth - while simultaneously evaluating hardware requirements. The workloads will be based on existing release benchmarks, but allow for flexibility regarding UTxO set and delegations. They will target the existing in-memory solution, and at the same time permit feasability testing UTxO-HD\'s on-disk\\nflavour - which does not keep the entire UTxO set in RAM permanently.\\n\\n### Nomad cluster\\n\\nImplementation of cluster machine disk space checking and garbage collection is complete. A requirement was that no\\nmonitoring process interferes with a running benchmark, so a non-synchronous approach was chosen to guarantee enough disk space. This prevents failing\\nruns, and thus the necessity to repeat them. \\n\\nIn the process, the workbench backend was equipped with a wider range of cluster commands and abstractions, which makes administrating cluster\\nmachines more flexible. This includes a new service to create a network latency matrix for deployed cluster hardware - generalizing the approach\\nchosen during the Nomad cluster\'s initial validation phase. This can guarantee the validity of existing baselines in case of hardware reboots, or changes\\nin topology. \\n\\nLast not least, the backend is currently receiving an additional feature: supporting more than 1 hardware cluster. This will enable us,\\nin the future, to benchmark on ephemeral clusters - without interfering with the hard requirements, or the schedule, of release benchmarking\\non our default deployment. The motivation is being able to benchmark different hardware configurations, along with varying `cardano-node` options and\\ninitial ledger states on a parallel schedule - also, without having to keep those clusters running at all times."},{"id":"2024-03-06-consensus","metadata":{"permalink":"/2024-03-06-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-06-consensus.md","source":"@site/blog/2024-03-06-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2024-03-06T00:00:00.000Z","formattedDate":"March 6, 2024","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.675,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2024-03-06-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Update","permalink":"/2024-03-08-performance-and-tracing"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-03-06-mithril"}},"content":"## High level summary\\n\\n- Completed the rebase of the production libraries for UTXO-HD on 8.9, both in `ouroboros-consensus`, `cardano-api` and `cardano-node`.\\n- Measured sync and replay times and memory in UTXO-HD. The latest result are reported [here](https://github.com/IntersectMBO/cardano-node/issues/5495).\\n- [Bugfixed](https://github.com/IntersectMBO/ouroboros-consensus/pull/985) the snapshot interval.\\n- [Added](https://github.com/IntersectMBO/ouroboros-consensus/pull/983) an extra case to `isIncorrectClaimedFlag` for `Babbage` and `Conway` eras.\\n- [Added](https://github.com/IntersectMBO/ouroboros-consensus/pull/970) a `db-analyser` analysis to get the UTXO size per slot. The result of the analysis is illustrated [here](https://github.com/IntersectMBO/ouroboros-consensus/pull/970#issuecomment-1981052455).\\n- Started integration work for Node release 8.10.\\n- Reviewed the Genesis pull-requests submitted by Tweag. They are pending a final round of review.\\n- Helped the current release engineer prepare the 8.9 release candidate.\\n- The Consensus Team has also been helping troubleshoot known issues with 8.9 (eg snapshots causing missed leadership schedules, unexpected snapshot interval, integration tests, etc)."},{"id":"2024-03-06-mithril","metadata":{"permalink":"/2024-03-06-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-06-mithril.md","source":"@site/blog/2024-03-06-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-03-06T00:00:00.000Z","formattedDate":"March 6, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.24,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-03-06-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2024-03-06-consensus"},"nextItem":{"title":"Network Team Update","permalink":"/2024-03-04-network"}},"content":"## High level overview\\n\\nThis week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they worked on adapting the Mithril explorer to support Cardano transaction verification, started implementing a more efficient transaction signing scheme, stabilized the type names in the API, and kept investigating a bug that prevents the signature of some Conway era transactions. Additionally, they have completed the first version of the Prometheus monitoring endpoint for the signer.\\n\\nFinally, the team fixed a bug occuring in the publication of the `npm` packages of the client, enhanced the HTTP tests of the aggregator, and kept working on the KES period computation in the Pallas chain observer.\\n\\n## Low level overview\\n\\n\\n- Completed the issue **Expose Prometheus metrics for Mithril signer** [#1096](https://github.com/input-output-hk/mithril/issues/1096)\\n- Completed the issue **Make HTTP server tests more robust** [#1524](https://github.com/input-output-hk/mithril/issues/1524)\\n- Completed the issue **Stabilize namings in `Cardano Transactions` API** [#1535](https://github.com/input-output-hk/mithril/issues/1535)\\n- Completed the issue **Reorganize crates in the repository** [#1528](https://github.com/input-output-hk/mithril/issues/1528)\\n- Worked on the issue **Implement `Cardano Transactions` in explorer** [#1497](https://github.com/input-output-hk/mithril/issues/1497)\\n- Worked on the issue **Implement a Block Range Merkle Tree for `Cardano Transactions`** [#1533](https://github.com/input-output-hk/mithril/issues/1533)\\n- Worked on the issue **Output CLIs logs to `stderr`** [#1515](https://github.com/input-output-hk/mithril/issues/1515)\\n- Worked on the issue **`npm` publish fails on `latest` when `next` exists** [#1531](https://github.com/input-output-hk/mithril/issues/1531)\\n- Worked on the issue **Cardano transactions are not all signed in `testing-sanchonet`** [#1537](https://github.com/input-output-hk/mithril/issues/1537)\\n- Worked on the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)"},{"id":"2024-03-04-network","metadata":{"permalink":"/2024-03-04-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-04-network.md","source":"@site/blog/2024-03-04-network.md","title":"Network Team Update","description":"High-level overview of sprint 56","date":"2024-03-04T00:00:00.000Z","formattedDate":"March 4, 2024","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.25,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2024-03-04-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-03-06-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-03-01-hydra"}},"content":"## High-level overview of [sprint 56][sprint-56]\\n\\n### Cardano-Node, Cardano-API, Cardano-CLI\\n\\nIn the last sprint, the network team was designated to take the Release\\nEngineering Role, as the coming release contains mostly network advances.\\nArmando Santos has been making progress on it. The following packages were\\npublished to `CHaP`:\\n\\n* `ouroboros-network-0.12.0.0`, [changelog][ouroboros-network-0.12.0.0];\\n* `ouroboros-network-protocols-0.8.0.0`, [changelog][ouroboros-network-protocols-0.8.0.0];\\n* `ouroboros-network-api-0.7.0.0`, [changelog][ouroboros-network-api-0.7.0.0];\\n\\nand other `ouroboros-network` packages with minor changes. The following\\npackages were also published:\\n\\n* `ouroboros-consensus-0.16.0.0`, [changelog][ouroboros-consensus-0.16.0.0];\\n* `ouroboros-consensus-cardano-0.14.0.0`, [changelog][ouroboros-consensus-cardano-0.14.0.0];\\n* [`cardano-cli-8.20.3.0`][cardano-cli#615], [changelog][cardano-cli-8.20.3.0];\\n* [`cardano-api-8.39.2.0`][cardano-api#459], [changelog][cardano-api-8.39.2.0].\\n\\nThe work on `cardano-node` is in progress, see [cardano-node#5485]\\n\\nWe would like to thank Karl Knutsson ([CF]) for helping us to test the upcoming\\n`cardano-node` release.\\n\\n### Ouroboros-Network\\n\\nWe continued working on `tx-submission`, [ouroboros-network#3311]\\n\\nWe started to execute an idea to put all configuration values used by the\\ndiffusion layer `Ouroboros.Network.Diffusion.Configuration` module. Currently,\\ndefault values are spread in different repositories (e.g. `cardano-node`,\\n`ouroboros-consensus`). See [ouroboros-network#4805].\\n\\nWe restored how syncing works in bootstrap mode to get the same performance\\ncharacteristics, see [ouroboros-network#4809], [ouroboros-network#4810].\\n\\nWe started working on Outbound-Governor Genesis mode, see\\n[ouroboros-network#4813].\\n\\n### Ouroboros-Consensus\\n\\nWe requested to modify how bulk-sync mode works to make it use the same\\nmechanism that the newly added `LedgerStateJudgement`. See\\n[ouroboros-consensus#958].\\n\\n## Low-level summary\\n\\nWe also addressed a minor issue regarding tracing `LedgerStateJudgement`\\nchanges, see [ouroboros-network#4816].\\n\\n[sprint-56]: https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+56%22\\n\\n[CF]: https://cardanofoundation.org\\n\\n[cardano-api#459]: https://github.com/IntersectMBO/cardano-api/pull/459\\n[cardano-cli#615]: https://github.com/IntersectMBO/cardano-cli/pull/615\\n[cardano-node#5485]: https://github.com/IntersectMBO/cardano-node/pull/5485\\n[cardano-cli-8.20.3.0]: https://github.com/IntersectMBO/cardano-cli/blob/main/cardano-cli/CHANGELOG.md#82030\\n[cardano-api-8.39.2.0]: https://github.com/IntersectMBO/cardano-api/blob/main/cardano-api/CHANGELOG.md#83920\\n\\n[ouroboros-network#3311]: https://github.com/IntersectMBO/ouroboros-network/issues/3311\\n[ouroboros-network#4805]: https://github.com/IntersectMBO/ouroboros-network/issues/4805\\n[ouroboros-network#4809]: https://github.com/IntersectMBO/ouroboros-network/issues/4809\\n[ouroboros-network#4810]: https://github.com/IntersectMBO/ouroboros-network/issues/4810\\n[ouroboros-network#4813]: https://github.com/IntersectMBO/ouroboros-network/issues/4813\\n[ouroboros-network#4816]: https://github.com/IntersectMBO/ouroboros-network/issues/4816\\n\\n[ouroboros-network-0.12.0.0]: https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network/CHANGELOG.md#01200----2023-02-21\\n[ouroboros-network-protocols-0.8.0.0]: https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network-protocols/CHANGELOG.md#0800----2024-02-21\\n[ouroboros-network-api-0.7.0.0]: https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network-api/CHANGELOG.md#0700----2024-02-21\\n\\n[ouroboros-consensus#958]: https://github.com/IntersectMBO/ouroboros-consensus/issues/958\\n[ouroboros-consensus-cardano-0.14.0.0]: https://github.com/IntersectMBO/ouroboros-consensus/blob/main/ouroboros-consensus-cardano/CHANGELOG.md#01400--2024-02-23\\n[ouroboros-consensus-0.16.0.0]: https://github.com/IntersectMBO/ouroboros-consensus/blob/main/ouroboros-consensus/CHANGELOG.md#01600--2024-02-23"},{"id":"2024-03-01-hydra","metadata":{"permalink":"/2024-03-01-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-01-hydra.md","source":"@site/blog/2024-03-01-hydra.md","title":"Hydra Team Update","description":"High-level Summary","date":"2024-03-01T00:00:00.000Z","formattedDate":"March 1, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.11,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-03-01-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2024-03-04-network"},"nextItem":{"title":"SRE Team Update","permalink":"/2024-03-01-sre"}},"content":"### High-level Summary\\n\\nThis week the Hydra team, in addition to the usual maintenance and bug fixing, has been working on the preparation for the switch to Conway making the codebase less babbage specific. The team also conducted the monthly review meeting and published the monthly report on a new website (to keep those reports separate of main repository). They also added a basic UI to the Hydra explorer, switched to aggregating `sanchonet` data and also fixed the smoke tests to work on `sanchonet`. Finally, they continued progress the off-chain incremental commit protocol changes.\\n\\n# What did the team achieve this week\\n\\n- Conducted the monthly review meeting, written and published the [monthly report](https://cardano-scaling.github.io/website/monthly/2024-02) on new website (just pushed to ).\\n- Added a basic UI to the [Hydra explorer](http://explorer.hydra.family) in [\\\\#1331](https://github.com/input-output-hk/hydra/issues/1330) and switched to displaying `sanchonet` data.\\n- Fixed sanchonet smoke tests [\\\\#1323](https://github.com/input-output-hk/hydra/pull/1323), see Github [Actions](https://github.com/input-output-hk/hydra/actions/workflows/smoke-test.yaml).\\n- Refactored and simplified the nix flake [\\\\#1317](https://github.com/input-output-hk/hydra/pull/1317).\\n- Updated to cardano-api-8.39 [\\\\#1316](https://github.com/input-output-hk/hydra/pull/1316).\\n- Prepare future switch to Conway by making hydra-cardano-api less babbage specific in [\\\\#1326](https://github.com/input-output-hk/hydra/pull/1326), [\\\\#1327](https://github.com/input-output-hk/hydra/pull/1327) and [\\\\#1328](https://github.com/input-output-hk/hydra/pull/1328).\\n\\n### What are the goals of next week\\n\\n- Complete preparation for [\\\\#1178](https://github.com/input-output-hk/hydra/issues/1178) to switch to Conway (by \\"flipping\\" a switch)\\n- Complete off-chain incremental commit protocol changes [\\\\#199](https://github.com/input-output-hk/hydra/issues/199) (and focus on the on-chain part after).\\n- Re-align with SundaeLabs on `EventSource` and `EventSink` refactoring."},{"id":"2024-03-01-sre","metadata":{"permalink":"/2024-03-01-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-01-sre.md","source":"@site/blog/2024-03-01-sre.md","title":"SRE Team Update","description":"High level summary","date":"2024-03-01T00:00:00.000Z","formattedDate":"March 1, 2024","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.26,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2024-03-01-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-03-01-hydra"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2024-02-29-node-cli-api"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general\\nenvironment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Cardano-node 8.8.1-pre is now deployed to sanchonet, two-thirds of preprod,\\n one-third of preview and also voltaire private chain networks.\\n\\n* Catalyst Voltaire private chain was respun and an updated db-sync and govtool\\n backend deployed after hard fork to Conway era.\\n\\n* IOG sanchonet pool block producers are now also signing mithril\\n certificates.\\n\\n* A mithril-signer-verifier service now runs on all IOG SRE mithril signers and\\n generates alerts if no recent mithril certificates have been signed.\\n\\n* All cardano-parts mithril clients, whether via nixosConfiguration,\\n process-compose jobs or the nix cardano-node entrypoint, will now\\n automatically verify that a trusted IOG pool has signed a mithril certificate\\n prior to using the associated mithril state. If no trusted IOG pool has\\n signed a recent mithril certificate, mithril state usage with be skipped and\\n a classic sync from genesis to tip will be performed.\\n\\n* A significant amount of effort was applied towards the upcoming cardano-node\\n 8.9.x-pre release in order to align nixos service module code between\\n cardano-node nixos services, iohk-nix topology generation, cardano-ops legacy\\n code, and cardano-parts module compatibility.\\n\\n## Lower level summary\\n\\n### Work in progress\\n* The following PRs contain the mentioned work above and will be finalized and\\n merged once cardano-node 8.9.x-pre or equivalent is tagged. Summary details\\n for each PR will be added in the next biweekly update once merged.\\n * [cardano-parts-pull-34](https://github.com/input-output-hk/cardano-parts/pull/34)\\n * [cardano-playground-pull-18](https://github.com/input-output-hk/cardano-playground/pull/18)\\n * [cardano-mainnet-pull-9](https://github.com/input-output-hk/cardano-mainnet/pull/9)"},{"id":"2024-02-29-node-cli-api","metadata":{"permalink":"/2024-02-29-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-29-node-cli-api.md","source":"@site/blog/2024-02-29-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2024-02-29T00:00:00.000Z","formattedDate":"February 29, 2024","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":0.645,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2024-02-29-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2024-03-01-sre"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-02-28-ledger"}},"content":"# 2024-02-16 - 2024-02-29\\n\\n## High level summary\\n\\n- cardano-cli: Release cardano-cli-8.20.3.0; Integrate with most recent ouroboros network, consensus and api. Enhancements to various queries. Continue working on implementing tests for Conway era. \\n\\n### cardano-cli\\n\\n- [Release cardano-cli-8.20.3.0](https://github.com/IntersectMBO/cardano-cli/pull/626)\\n- [Release 8.20.2.0](https://github.com/IntersectMBO/cardano-cli/pull/622)\\n- [Add missing newlines to `cardano-cli query utxo` output](https://github.com/IntersectMBO/cardano-cli/pull/620)\\n- [query stake-pools: add --output-[json,text] flag to control format of the output](https://github.com/IntersectMBO/cardano-cli/pull/617)\\n- [Integrate with most recent network, consensus and api](https://github.com/IntersectMBO/cardano-cli/pull/615)\\n- [Bump hedgehog-extras to 0.6.1.0](https://github.com/IntersectMBO/cardano-cli/pull/613)\\n\\n### cardano-api\\n\\n- [Release cardano-api-8.39.2.0](https://github.com/IntersectMBO/cardano-api/pull/465)\\n- [Release cardano-api 8.39.1.0](https://github.com/IntersectMBO/cardano-api/pull/463)\\n- [Release 8.39.0.0](https://github.com/IntersectMBO/cardano-api/pull/460)\\n- [Integrates with most recent network, consensus and api](https://github.com/IntersectMBO/cardano-api/pull/459)\\n\\n### cardano-testnet\\n\\n- [Plutus v3 conway simple spending, minting and certifying script tests](https://github.com/IntersectMBO/cardano-node/pull/5685)\\n- [Upgrade to hedgehog-extras 0.6.1.0](https://github.com/IntersectMBO/cardano-node/pull/5681)\\n- [blst version upgrade and CHaP bump](https://github.com/IntersectMBO/cardano-node/pull/5680)\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2024-02-28-ledger","metadata":{"permalink":"/2024-02-28-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-28-ledger.md","source":"@site/blog/2024-02-28-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-02-28T00:00:00.000Z","formattedDate":"February 28, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.495,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-02-28-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2024-02-29-node-cli-api"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-02-28-mithril"}},"content":"## High level summary\\n\\nQuite a useful and desired feature described in\\n[CIP-0110](https://github.com/cardano-foundation/CIPs/pull/679) of allowing reference\\nscripts for PlutusV1 has been implemented for Conway.\\n\\nFor the most part we are now spending time on writing tests and enhancing out tooling that\\nwe use for testing. This is paying out dividends since we are finding and fixing important\\nConway related bugs. Notable bugs that were squashed this time around are related to using\\nincorrect stake distribution for both DReps and Stake Pools.\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-4059] - Enable Plutus v1 reference scripts in Conway\\n* [pull-4088] - Committee query improvements\\n* [pull-4115] - Switch to using the correct stake pool distribution for voting\\n* [pull-4116] - Fix Drep stake distribution\\n\\n### Testing\\n\\n* [pull-4100] - PPU wellformedness tests\\n* [pull-4097] - Test that unwithdrawn rewards contribute to voting power\\n* [pull-4102] - fix `prop_DELEG` in STS tests\\n* [pull-4106] - Imp script fixes\\n* [pull-4118] - Add test for maps with small domains\\n* [pull-4119] - NewConstraints phase1. Add BoolFn And and Or and tests\\n* [pull-4120] - Newconstaints phase2 rename IsUniverse (BaseUniverse), Fn (BaseFn)\\n* [pull-4130] - Added tests for checking proposal network IDs\\n* [pull-4114] - Imp Bootstrap address support\\n\\n### Improvements\\n\\n* [pull-4071] - Introduction of InjectRuleFailure\\n* [pull-4082] - Deprecate `PPUPPredFailure`\\n* [pull-4087] - Move `EpochInterval` to `cardano-base`\\n* [pull-4122] - Use `MemoBytes` in `ShelleyTxAuxData`\\n\\n### Specification\\n\\n* [pull-4093] - Fix small error in the prose\\n\\n### Releasing\\n\\n* [pull-4105] - Update `RELEASING` with revisioning instructions\\n* [pull-4117] - Use plutus-ledger-api 1.22.1\\n\\n[pull-4071]: https://github.com/IntersectMBO/cardano-ledger/pull/4071\\n[pull-4082]: https://github.com/IntersectMBO/cardano-ledger/pull/4082\\n[pull-4059]: https://github.com/IntersectMBO/cardano-ledger/pull/4059\\n[pull-4087]: https://github.com/IntersectMBO/cardano-ledger/pull/4087\\n[pull-4100]: https://github.com/IntersectMBO/cardano-ledger/pull/4100\\n[pull-4088]: https://github.com/IntersectMBO/cardano-ledger/pull/4088\\n[pull-4097]: https://github.com/IntersectMBO/cardano-ledger/pull/4097\\n[pull-4102]: https://github.com/IntersectMBO/cardano-ledger/pull/4102\\n[pull-4093]: https://github.com/IntersectMBO/cardano-ledger/pull/4093\\n[pull-4106]: https://github.com/IntersectMBO/cardano-ledger/pull/4106\\n[pull-4105]: https://github.com/IntersectMBO/cardano-ledger/pull/4105\\n[pull-4115]: https://github.com/IntersectMBO/cardano-ledger/pull/4115\\n[pull-4117]: https://github.com/IntersectMBO/cardano-ledger/pull/4117\\n[pull-4118]: https://github.com/IntersectMBO/cardano-ledger/pull/4118\\n[pull-4119]: https://github.com/IntersectMBO/cardano-ledger/pull/4119\\n[pull-4120]: https://github.com/IntersectMBO/cardano-ledger/pull/4120\\n[pull-4116]: https://github.com/IntersectMBO/cardano-ledger/pull/4116\\n[pull-4130]: https://github.com/IntersectMBO/cardano-ledger/pull/4130\\n[pull-4122]: https://github.com/IntersectMBO/cardano-ledger/pull/4122\\n[pull-4114]: https://github.com/IntersectMBO/cardano-ledger/pull/4114"},{"id":"2024-02-28-mithril","metadata":{"permalink":"/2024-02-28-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-28-mithril.md","source":"@site/blog/2024-02-28-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-02-28T00:00:00.000Z","formattedDate":"February 28, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":2,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-02-28-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-02-28-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-02-23-hydra"}},"content":"## High level overview\\n\\nThis week the Mithril team announced the release of a new [`Mithril distribution 2408.0`](https://github.com/input-output-hk/mithril/releases/tag/2408.0). This release includes several critical updates and enhancements, such as improved support for stake distribution, Mithril era markers retrieval in the Pallas chain observer, enhanced support for the Conway era and Sanchonet network, as well as various bug fixes and performance improvements. \\nIn addition, the team has made changes to the Mithril client CLI, changing the log output from `stdout` to `stderr` from `v0.7.0`. This announcement was made in the [developer blog post](https://mithril.network/doc/dev-blog/2024/02/26/mithril-client-cli-output-breaking-change).\\n\\n\\nThe team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the support for the verification in the browser with the WASM client, they worked on enhancing the associated client CLI API, and implemented smoke tests. Additionally, the team has activated the signature of Cardano transactions on the `testing-sanchonet` network, and they have investigated a bug that prevents the signature of some transactions on this network.\\n\\nFinally, the team worked on reorganizing the repository structure, fixed an issue with test folder generation on MacOS, and worked on some documentation improvements.\\n\\n## Low level overview\\n- Released the new distribution [`2408.0`](https://github.com/input-output-hk/mithril/releases/tag/2408.0)\\n- Publication of a [dev blog post](https://mithril.network/doc/dev-blog/2024/02/08/testing-sanchonet-network-available) about the **Mithril SanchoNet network release**.\\n- Publication of a [dev blog post](https://mithril.network/doc/dev-blog/2024/02/26/mithril-client-cli-output-breaking-change) about a **breaking change in the Mithril client CLI**.\\n- Completed the issue **Implement `Cardano Transactions` commands in the client binary** [#1469](https://github.com/input-output-hk/mithril/issues/1469)\\n- Completed the issue **Implement `Cardano Transactions` verification in the WASM client** [#1470](https://github.com/input-output-hk/mithril/issues/1470)\\n- Completed the issue **Some end to end tests are flaky in the CI** [#1147](https://github.com/input-output-hk/mithril/issues/1147)\\n- Completed the issue **Release `2408` distribution** [#1500](https://github.com/input-output-hk/mithril/issues/1500)\\n- Completed the issue **Unify test folder generation** [#1508](https://github.com/input-output-hk/mithril/issues/1508)\\n- Completed the issue **Adapt Mithril Client multi-platform test for Cardano Transactions** [#1510](https://github.com/input-output-hk/mithril/issues/1510)\\n- Completed the issue **Document Mithril signer footprint** [#1519](https://github.com/input-output-hk/mithril/issues/1519)\\n- Completed the issue **Add a runbook for running Client multi-platform tests** [#1530](https://github.com/input-output-hk/mithril/issues/1530)\\n- Completed the issue **Update workflow github actions to node-20** [#1520](https://github.com/input-output-hk/mithril/issues/1520)\\n- Worked on the issue **Cardano transactions are not all signed in `testing-sanchonet`** [#1537](https://github.com/input-output-hk/mithril/issues/1537)\\n- Worked on the issue **Make HTTP server tests more robust** [#1524](https://github.com/input-output-hk/mithril/issues/1524)\\n- Worked on the issue **Stabilize namings in `Cardano Transactions` API** [#1535](https://github.com/input-output-hk/mithril/issues/1535)\\n- Worked on the issue **Reorganize crates in the repository** [#1528](https://github.com/input-output-hk/mithril/issues/1528)\\n- Worked on the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)"},{"id":"2024-02-23-hydra","metadata":{"permalink":"/2024-02-23-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-23-hydra.md","source":"@site/blog/2024-02-23-hydra.md","title":"Hydra Team Update","description":"High-level Summary","date":"2024-02-23T00:00:00.000Z","formattedDate":"February 23, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.87,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-02-23-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-02-28-mithril"},"nextItem":{"title":"Consensus Team Update","permalink":"/2024-02-21-consensus"}},"content":"### High-level Summary\\n\\nThis week, the Hydra team successfully fixed the fanout after contest bug using their significantly improved model-based test suite. Additionally, they transitioned to cardano-api version 8.38 and started testing against cardano-node version 8.8. Furthermore, they enhanced fee estimation within the hydra-node internal wallet resulting in cheaper head opening / closing transactions and added transaction metadata to help identifying Hydra protocol transactions.\\n\\n# What did the team achieve this week\\n\\n- Fixed the fanout after contest bug using our signifcantly improved model-based test suite [#1260](https://github.com/input-output-hk/hydra/issues/1260)\\n- Switched to cardano-api 8.38 and run tests against cardano-node 8.8 [#1297](https://github.com/input-output-hk/hydra/pull/1297)\\n- Improved fee estimation in `hydra-node` internal wallet [#1315](https://github.com/input-output-hk/hydra/pull/1315)\\n- Added transaction metadata to identify Hydra protocol transactions (on L1) [#1311](https://github.com/input-output-hk/hydra/pull/1311)\\n\\n# What are the goals of next week\\n\\n- Have the monthly review meeting + write a report\\n- Explorer targeting and showing data of the latest released `hydra` version\\n- Implement off-chain incremental commit protocol changes\\n- Review `EventSource` and `EventSink` refactor done by SundaeLabs\\n- See smoke tests passing consistently on Sanchonet"},{"id":"2024-02-21-consensus","metadata":{"permalink":"/2024-02-21-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-21-consensus.md","source":"@site/blog/2024-02-21-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2024-02-21T00:00:00.000Z","formattedDate":"February 21, 2024","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.31,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2024-02-21-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-02-23-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-02-21-mithril"}},"content":"## High level summary\\n\\n- Triaged an [issue](https://github.com/IntersectMBO/ouroboros-consensus/issues/952) where blocks were unnecessarily downloaded, and coded a prototype for a partial solution.\\n- Discovered an [io-sim](https://github.com/input-output-hk/io-sim) bug while developing the [Genesis state machine tests](https://github.com/IntersectMBO/ouroboros-consensus/pull/808). The bug was already fixed upstream.\\n- Added support for making the number of ledger state snapshots to be kept [configurable](https://github.com/IntersectMBO/ouroboros-consensus/pull/943). This needs to be integrated in the node."},{"id":"2024-02-21-mithril","metadata":{"permalink":"/2024-02-21-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-21-mithril.md","source":"@site/blog/2024-02-21-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-02-21T00:00:00.000Z","formattedDate":"February 21, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.29,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-02-21-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2024-02-21-consensus"},"nextItem":{"title":"Network Team Update","permalink":"/2024-02-19-network"}},"content":"## High level overview\\n\\nThis week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They worked on enhancing the client CLI output and almost completed the support for the verification of Cardano transactions in the browser with the WASM client. The team also worked on a new feature of the Pallas chain observer to support stake distribution retrieval, and fixed the majority of the flakiness occurring in the CI end-to-end tests. Additionally, they have deployed the new Mithril network running on SanchoNet.\\n\\nFinally, the team created a new example crate for using the client library to verify Cardano transactions, kept working on the threat modeling and risk analysis for the Mithril network, and completed their new tool for automatic documentation generation for the CLIs.\\n\\n## Low level overview\\n- Worked on the issue **Implement `Cardano Transactions` commands in the client binary** [#1469](https://github.com/input-output-hk/mithril/issues/1469)\\n- Worked on the issue **Implement `Cardano Transactions` verification in the WASM client** [#1470](https://github.com/input-output-hk/mithril/issues/1470)\\n- Worked on the issue **Some end to end tests are flaky in the CI** [#1147](https://github.com/input-output-hk/mithril/issues/1147)\\n- Completed the issue **Re-spin `Sanchonet` network** [#1503](https://github.com/input-output-hk/mithril/issues/1503)\\n- Worked on the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)\\n- Completed the issue **Add signing capabilities to the root route of the aggregator** [#1496](https://github.com/input-output-hk/mithril/issues/1496)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Completed the issue **Add an example crate for the `CardanoTransactions` type** [#1495](https://github.com/input-output-hk/mithril/issues/1495)\\n- Worked on the issue **Unify test folder generation** [#1508](https://github.com/input-output-hk/mithril/issues/1508)\\n- Completed the issue **Generate automatic documentation for CLIs** [#1471](https://github.com/input-output-hk/mithril/issues/1471)"},{"id":"2024-02-19-network","metadata":{"permalink":"/2024-02-19-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-19-network.md","source":"@site/blog/2024-02-19-network.md","title":"Network Team Update","description":"High-level overview of sprint 55","date":"2024-02-19T00:00:00.000Z","formattedDate":"February 19, 2024","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.225,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2024-02-19-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-02-21-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-02-16-hydra"}},"content":"## High-level overview of [sprint 55][sprint-55]\\n\\nThis sprint the networking was nominated for the Cardano Release Engineer role and\\nwe\'ve been working on the integration of bootstrap peers with `cardano-node`. This\\nis a work in progress: [cardano-node-5485]. `cardano-node-8.9` will be the first\\nnode which supports the bootstrap peers feature, but we anticipate additional\\nimprovements needed before this is used at scale.\\n\\nWe disabled mean reward for new peers in the churn mechanism which was hurting\\nconnection in remote destinations. Thanks to [Karl Knutsson] ([CF]) for\\nproviding evidence and a patch. In future, this mechanism will be further\\nchanged, but this requires more analysis. [ouroboros-network#4800]\\n\\nWe continued working on `tx-submission`, [ouroboros-network#3311]\\n\\nWe welcome [Marcin W\xf3jtowicz][crocodile-dentist] as part of the Networking\\nTeam of Cardano Core Tech. He reviewed our documentation as part of his\\nonboarding process: [ouroboros-network#4802].\\n\\n[Andrew Westberg] ([DripDropz]) corrected documentation regarding which\\n`node-to-node` protocol version introduced `P2P`.\\n\\n## Low-level summary\\n\\n* We fixed an issue related to local root peers related to bootstrap peers: [ouroboros-network#4799].\\n\\n## Open Source Contributions\\n\\n### IOSim\\n\\nWe released [`io-sim-1.4.1.0`] with some new features & improvements:\\n\\n* QuickCheck monadic combinators: [io-sim#140].\\n* Provide `PrimMonad` instance: [io-sim#141], thanks to [Duncan Coutts] ([Well-Typed]).\\n* Fixed `threadDelay` in the presence of `registerDelay`s: [io-sim#143], thanks to\\n Consensus Team.\\n\\n\\n[sprint-55]: https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+55%22\\n\\n[Andrew Westberg]: https://github.com/AndrewWestberg\\n[CF]: https://cardanofoundation.org\\n[DripDropz]: https://dripdropz.io/\\n[Duncan Coutts]: https://github.com/dcoutts\\n[Karl Knutsson]: https://github.com/karknu\\n[Well-Typed]: https://well-typed.com\\n\\n[cardano-node-5485]: https://github.com/IntersectMBO/cardano-node/pull/5485\\n\\n[ouroboros-network#3311]: https://github.com/IntersectMBO/ouroboros-network/issues/3311\\n[ouroboros-network#4799]: https://github.com/IntersectMBO/ouroboros-network/issues/4799\\n[ouroboros-network#4800]: https://github.com/IntersectMBO/ouroboros-network/issues/4800\\n[ouroboros-network#4802]: https://github.com/IntersectMBO/ouroboros-network/issues/4802\\n\\n[io-sim#140]: https://github.com/input-output-hk/io-sim/pull/140\\n[io-sim#141]: https://github.com/input-output-hk/io-sim/pull/141\\n[io-sim#143]: https://github.com/input-output-hk/io-sim/pull/143\\n[`io-sim-1.4.1.0`]: https://hackage.haskell.org/package/io-sim-1.4.1.0\\n\\n[crocodile-dentist]: https://github.com/crocodile-dentist"},{"id":"2024-02-16-hydra","metadata":{"permalink":"/2024-02-16-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-16-hydra.md","source":"@site/blog/2024-02-16-hydra.md","title":"Hydra Team Update","description":"High-level Summary","date":"2024-02-16T00:00:00.000Z","formattedDate":"February 16, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.88,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-02-16-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2024-02-19-network"},"nextItem":{"title":"Performance & Tracing Update","permalink":"/2024-02-16-performance-and-tracing"}},"content":"### High-level Summary\\n\\nThis week, the team made finally progress on the model based testing framework (and reproducing a bug) by fixing issues related to fully validating Cardano transactions. They also enabled continuous deployment of `hydra-explorer` to , facilitating easier access for users. Furthermore, they improved code quality by incorporating Haskell linting into their CI workflow and addeda user-ished conversion of `HeadId` to `CurrencySymbol`.\\n\\n### What did the team achieve this week\\n\\n- Fixed model based testing framework to fully validate Cardano transactions\\n- Enabled continuous deployment of `hydra-explorer` to \\n- Identified need for cardano-node 8.8 and cardano-api 8.38 (breaking changes) to continue integration with Conway networks\\n- Added Haskell linting to our CI workflow - Minor addition to convert `HeadId` into `CurrencySymbol` [\\\\#919](https://github.com/input-output-hk/hydra/issues/919)\\n- Reviewed a small refactor PR on our model-based test runner [\\\\#1300](https://github.com/input-output-hk/hydra/pull/1300)\\n\\n### What are the goals of next week\\n\\n- Fix the fanout after contest bug\\n- Bite the bullet and have a non-mainnet compatible `master` to complete smoke tests on `sanchonet`\\n- Specify the on-chain validators for incremental decommits"},{"id":"2024-02-16-performance-and-tracing","metadata":{"permalink":"/2024-02-16-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-16-performance-and-tracing.md","source":"@site/blog/2024-02-16-performance-and-tracing.md","title":"Performance & Tracing Update","description":"High level summary","date":"2024-02-16T00:00:00.000Z","formattedDate":"February 16, 2024","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.97,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & Tracing Update","slug":"2024-02-16-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-02-16-hydra"},"nextItem":{"title":"SRE Team Update","permalink":"/2024-02-16-sre"}},"content":"## High level summary\\n\\n* Benchmarking: Release benchmarks for `8.8.0` have been performed; we created a local repro for a residual issue.\\n* Performance: We\'ve implemented and benchmarked two candidates investigating residual issues with GHC9.6.\\n* Development: Work on the reporting pipeline is ongoing; integration of `DRep`s into benchmarking workloads has begun.\\n* Workbench: Implementation of high-level profile definition is ongoing. \\n* Tracing: The handle registry feature for `cardano-tracer` is completed; currently in testing.\\n* Nomad cluster: Increased robustness of deployment and run monitoring has been merged; work on garbage collection has started.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nWe\'ve performed a full set of release benchmarks for Node `8.8.0-pre`. Comparing with release `8.7.2`, we could\\nnot detect any performance risks for that version. We even saw a slight improvement in block fetch related metrics, which led to slightly improved block diffusion times. \\n\\nFurthermore, we\'ve managed to boil down a complex residual performance issue measured on the cluster to a local reproduction. This enables our DevX team, with highly specialized knowledge of GHC\'s compiler internals, to \\ninvestigate each step in code generation and optimzation, and independently observe the effects of code changes to the affected component.\\n\\n### Performance\\n\\nWork on the remaining performance issue with GHC9.6 led us to produce two candidates based on Node `8.7.2`, benchmarking\\nthe implacations local small changes have for GHC9.6\'s optimizer. Though those candidates did not uncover the\\nissue\'s root cause, they were able to disprove a hypothesis as to its nature, and quantify the performance impact of said small changes.\\n\\n### Development\\n\\nNode `8.8.0` comes with capabilities to inject `DRep`s and `DRep` delegations into Conway genesis. We\'ve started work\\non integrating those into our automations, and setting sensible values for benchmarking. The aforementioned\\ndelegations representing a new data structure in the Conway ledger, we aim to run\\nexisting workflows extended with varying sizes of that new structure, measuring their pressure on ledger queries and operations.\\n\\n### Workbench\\n\\nThe performance workbench relies heavily on shell scripting and manipulating JSON data for a great part of its features. This approach\\nis very effective for quick experimentation, but lacks in verifiable properties as well as accessibility for new users of workbench.\\n\\nAfter the successful Haskell port of cluster topology creation, and verification, we\'re currently applying\\nthe same model in porting the entirety of benchmarking profiles to Haskell. The obvious gains are widening workbench\'s\\naudience both for users and developers, as well as implementing a principled approach to all workbench data structures and transformations. \\n\\nAt the same time, we\'re porting workbench\'s many options to create fine-tuned geneses, following the same approach.\\n\\n### Tracing\\n\\nWe\'ve outfitted `cardano-tracer` with a handle registry feature that lets the service work on file handles internally, rather than opening and closing files for each operation. The feature is completed; at the moment we\'re adding\\nappropriate test cases to the service\'s test suite for validation of its behaviour, and for safeguarding future development.\\n\\n### Nomad backend\\n\\nSeveral improvements for our cluster backend have been merged to `master`, increasing its overall robustness. We can now safely handle some corner cases where Nomad processes unexpectedly exited, or deployments errored out. Furthermore, an ongoing\\nrun can now reliably survive a temporary loss of heartbeat connection between Nomad client and server, without\\nthe benchmarking metrics being affected. \\n\\nCurrently, we\'re working on a reliable automation of garbage collecting old `nix` store entries on the cluster machines, as they fill up disk space. The design has to consider both not interfering with ongoing benchmarks, and\\navoiding deployment overhead caused by cleaning the store too frequently."},{"id":"2024-02-16-sre","metadata":{"permalink":"/2024-02-16-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-16-sre.md","source":"@site/blog/2024-02-16-sre.md","title":"SRE Team Update","description":"High level summary","date":"2024-02-16T00:00:00.000Z","formattedDate":"February 16, 2024","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.03,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2024-02-16-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Update","permalink":"/2024-02-16-performance-and-tracing"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2024-02-15-node-cli-api"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general\\nenvironment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Sanchonet state was respun from slot 14255995 for cardano-node 8.8.0-pre\\n* Cardano node 8.8.0-pre is now deployed to sanchonet, shelley-qa, two-thirds\\n of preprod and one-third of preview networks\\n* IOG pool block producers are now signing mithril certificates for preview,\\n preprod and mainnet networks\\n* A cardano performance dashboard is now available for both playground and\\n cardano-mainnet deployments\\n\\n## Lower level summary\\n\\n### Cardano-mainnet\\n* Adds mithril signers and perf dashboard to the mainnet cluster; improves\\n network docs, tunes alerts, plus misc fixes:\\n [cardano-mainnet-pull-8](https://github.com/input-output-hk/cardano-mainnet/pull/8)\\n\\n### Cardano-parts\\n* Adds mithril signer capability to role-block-producer nixosModule, adds a\\n profile-mithril-relay nixosModule and includes misc other improvements and\\n fixes:\\n [cardano-parts-pull-31](https://github.com/input-output-hk/cardano-parts/pull/31)\\n\\n* Updates packages for sanchonet respin, adds a node performance dashboard\\n template and fixes misc issues:\\n [cardano-parts-pull-32](https://github.com/input-output-hk/cardano-parts/pull/32)\\n\\n### Cardano-parts\\n* Adds mithril signers and mithril relays to preview and preprod networks and\\n includes misc other improvements and fixes:\\n [cardano-playground-pull-15](https://github.com/input-output-hk/cardano-playground/pull/15)\\n\\n* Updates machines and pin for sanchonet respin, adds a node performance\\n dashboard and fixes misc issues:\\n [cardano-playground-pull-16](https://github.com/input-output-hk/cardano-playground/pull/16)\\n\\n### Iohk-nix\\n* Updates conway-genesis for node 8.8.0-pre:\\n [iohk-nix-pull-571](https://github.com/input-output-hk/iohk-nix/pull/571)\\n\\n* Updates useLedgerAfterSlot for respin of sanchonet:\\n [iohk-nix-pull-572](https://github.com/input-output-hk/iohk-nix/pull/572)"},{"id":"2024-02-15-node-cli-api","metadata":{"permalink":"/2024-02-15-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-15-node-cli-api.md","source":"@site/blog/2024-02-15-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2024-02-15T00:00:00.000Z","formattedDate":"February 15, 2024","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.01,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2024-02-15-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2024-02-16-sre"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-02-14-ledger"}},"content":"# 2024-02-01 - 2024-02-15\\n\\n## High level summary\\n\\n- cardano-cli: Added the \'immutable\' tip parameter to conway queries that allow the user to query either the current volatile tip (default) or the immutable tip. The committee keys can now sign transactions, required to submit votes. \\n\\n- cardano-api: Fix Conway PlutusV3 script hash mismatch. Make committee hash prefixes CIP-5 compliant. \\n\\n### cardano-cli\\n\\n- [Release 8.20.1.0](https://github.com/IntersectMBO/cardano-cli/pull/608)\\n- [Upgrade cardano-api to 8.38.0.2](https://github.com/IntersectMBO/cardano-cli/pull/607)\\n- [Fix error messages as CLI format is no longer supported](https://github.com/IntersectMBO/cardano-cli/pull/605)\\n- [Add immutable tip parameter to conway queries](https://github.com/IntersectMBO/cardano-cli/pull/603)\\n- [Update 8.20.0.0 changelog](https://github.com/IntersectMBO/cardano-cli/pull/600)\\n- [Fix create-testnet-data creating negative supply](https://github.com/IntersectMBO/cardano-cli/pull/599)\\n- [Release 8.20.0.0](https://github.com/IntersectMBO/cardano-cli/pull/597)\\n- [Make committee keys able to sign transactions](https://github.com/IntersectMBO/cardano-cli/pull/596)\\n- [Cl/testnetdata](https://github.com/IntersectMBO/cardano-cli/pull/595)\\n- [Make it build with ghc-9.8](https://github.com/IntersectMBO/cardano-cli/pull/594)\\n\\n### cardano-api\\n\\n- [Fix Conway script hash mismatch](https://github.com/IntersectMBO/cardano-api/pull/452)\\n- [Release 8.38.0.2](https://github.com/IntersectMBO/cardano-api/pull/451)\\n- [Release 8.38.0.1](https://github.com/IntersectMBO/cardano-api/pull/446)\\n- [Fix removal of toScriptIndex export](https://github.com/IntersectMBO/cardano-api/pull/445)\\n- [Fix haddock in checkLedgerState](https://github.com/IntersectMBO/cardano-api/pull/443)\\n- [Release 8.38.0.0](https://github.com/IntersectMBO/cardano-api/pull/442)\\n- [Make committee keys able to sign transactions](https://github.com/IntersectMBO/cardano-api/pull/441)\\n- [Make committee hash prefixes CIP-5 compliant](https://github.com/IntersectMBO/cardano-api/pull/440)\\n\\n### cardano-testnet\\n\\n- [cardano-testnet: read JSON from the CLI more easily](https://github.com/IntersectMBO/cardano-node/pull/5664)\\n- [Use environment variable for network magic instead of CLI arg in testnet tests](https://github.com/IntersectMBO/cardano-node/pull/5658)\\n\\n### docs\\n\\n### CI & project maintenance\\n\\n- [Fix git revision reported by --version on nix build](https://github.com/IntersectMBO/cardano-cli/pull/610)"},{"id":"2024-02-14-ledger","metadata":{"permalink":"/2024-02-14-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-14-ledger.md","source":"@site/blog/2024-02-14-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-02-14T00:00:00.000Z","formattedDate":"February 14, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.88,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-02-14-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2024-02-15-node-cli-api"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-02-14-mithril"}},"content":"## High level summary\\n\\nLast few weeks were spent mostly on implementing various fixes, writing tests and\\nimproving capabilities of our testing frameworks. Important bug fixes are:\\n\\n* Retention of Anchor for proposal procedures in the ledger state in order for users to be\\n able to query the node for those anchors\\n* JSON serialization of rational numbers in protocol parameters and governance procedures\\n are encoded without loss of precision\\n\\nFeature wise, we\'ve added a new protocol parameter that controls the contribution of\\nreference scripts sizes in the transaction fee calculation formula.\\n\\nMajor achievement that is worth announcing is a Haskell package named\\n[`cuddle`](https://github.com/input-output-hk/cuddle) that we developed over the last few\\nmonths. Soon we will be transitioning to specifying CDDL in Haskell for all eras using\\nthat package. It will be used to compile the CDDL specification that developers in the\\ncommunity rely on so much. There are enormous benefits in using this tool, when compared\\nto writing CDDL specification manually. Namely it allows us to reduce duplication and\\nreuse common and unchanged specification from previous eras. It also improves safety and\\ncorrectness of our specification and decoders, because it ensures that the specification\\nis well typed and it uses QuickCheck to generate random data for validating that our\\ndecoders are implemented according to the spec.\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-4031] - Further proposals improvements. Take 2\\n* [pull-3996] - Index aware PlutusPurpose\\n* [pull-3983] - Include reference scripts size in min fee calculation\\n* [pull-4040] - Redeemers serialization fixes\\n* [pull-4033] - Make Conway-specific queries only available in Conway\\n* [pull-4028] - Embed ProposalProcedure in GovActionState\\n* [pull-4056] - Reduce duplication in Conway UTXOW rule\\n* [pull-4055] - Update MinFeeRefScriptCoinsPerByte.\\n* [pull-4053] - Rename committeeQuorum to committeeThreshold\\n* [pull-4058] - Fix `ToJSON` instance of `BoundedRatio` to avoid precision loss\\n* [pull-4070] - Rename AsIndex to AsIx\\n* [pull-4065] - Remove `ConwayPool` rule definition\\n\\n### Improvements\\n\\n* [pull-4037] - Add capability to hash `Plutus` scripts directly\\n* [pull-4030] - Report Plutus `ScriptHash` upon execution failure\\n\\n### Testing\\n\\n* [pull-3895] - Constrained v2\\n* [pull-3981] - Test proposals rewrite\\n* [pull-4051] - Full support of `random` and `quickcheck-transformers` in impTest\\n* [pull-4050] - Fixed the \\"All Tx are valid on traces of length 150\\" intermittent bug\\n* [pull-4049] - Support for Plutus scripts in ImpTest\\n* [pull-4075] - Discontinue the mingw target in the nix build\\n* [pull-4072] - Fix ouroborus-consensus serialization roundtrip test\\n* [pull-4080] - Test that a resigned CC cannot be reelected without removal\\n* [pull-4083] - Fix flakyness at the cost of turning test on during development\\n* [pull-4084] - Fix intermittent test failures in leader-proportion test\\n\\n### Specification\\n\\n* [pull-4015] - Shelley ledger spec: amend erratum on nonce stabilization window\\n* [pull-4064] - Fix wrong prose for new epoch environment\\n* [pull-4081] - Fix MIR rule using wrong values for treasury and reserves\\n\\n### Releasing\\n\\n* [pull-4041] - Update `haskellNix`flake\\n* [pull-4035] - Add a file needed for GithubPages to use a custom domain\\n* [pull-4060] - Release notes 8.8\\n* [pull-4073] - Add aarch64-darwin in flake.nix\\n\\n[pull-4031]: https://github.com/IntersectMBO/cardano-ledger/pull/4031\\n[pull-3996]: https://github.com/IntersectMBO/cardano-ledger/pull/3996\\n[pull-3983]: https://github.com/IntersectMBO/cardano-ledger/pull/3983\\n[pull-3895]: https://github.com/IntersectMBO/cardano-ledger/pull/3895\\n[pull-4037]: https://github.com/IntersectMBO/cardano-ledger/pull/4037\\n[pull-4041]: https://github.com/IntersectMBO/cardano-ledger/pull/4041\\n[pull-4035]: https://github.com/IntersectMBO/cardano-ledger/pull/4035\\n[pull-4040]: https://github.com/IntersectMBO/cardano-ledger/pull/4040\\n[pull-4030]: https://github.com/IntersectMBO/cardano-ledger/pull/4030\\n[pull-3981]: https://github.com/IntersectMBO/cardano-ledger/pull/3981\\n[pull-4033]: https://github.com/IntersectMBO/cardano-ledger/pull/4033\\n[pull-4051]: https://github.com/IntersectMBO/cardano-ledger/pull/4051\\n[pull-4028]: https://github.com/IntersectMBO/cardano-ledger/pull/4028\\n[pull-4056]: https://github.com/IntersectMBO/cardano-ledger/pull/4056\\n[pull-4050]: https://github.com/IntersectMBO/cardano-ledger/pull/4050\\n[pull-4053]: https://github.com/IntersectMBO/cardano-ledger/pull/4053\\n[pull-4055]: https://github.com/IntersectMBO/cardano-ledger/pull/4055\\n[pull-4049]: https://github.com/IntersectMBO/cardano-ledger/pull/4049\\n[pull-4058]: https://github.com/IntersectMBO/cardano-ledger/pull/4058\\n[pull-4015]: https://github.com/IntersectMBO/cardano-ledger/pull/4015\\n[pull-4060]: https://github.com/IntersectMBO/cardano-ledger/pull/4060\\n[pull-4073]: https://github.com/IntersectMBO/cardano-ledger/pull/4073\\n[pull-4075]: https://github.com/IntersectMBO/cardano-ledger/pull/4075\\n[pull-4070]: https://github.com/IntersectMBO/cardano-ledger/pull/4070\\n[pull-4072]: https://github.com/IntersectMBO/cardano-ledger/pull/4072\\n[pull-4064]: https://github.com/IntersectMBO/cardano-ledger/pull/4064\\n[pull-4065]: https://github.com/IntersectMBO/cardano-ledger/pull/4065\\n[pull-4081]: https://github.com/IntersectMBO/cardano-ledger/pull/4081\\n[pull-4080]: https://github.com/IntersectMBO/cardano-ledger/pull/4080\\n[pull-4083]: https://github.com/IntersectMBO/cardano-ledger/pull/4083\\n[pull-4084]: https://github.com/IntersectMBO/cardano-ledger/pull/4084"},{"id":"2024-02-14-mithril","metadata":{"permalink":"/2024-02-14-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-14-mithril.md","source":"@site/blog/2024-02-14-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-02-14T00:00:00.000Z","formattedDate":"February 14, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.235,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-02-14-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-02-14-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-02-09-hydra"}},"content":"## High level overview\\n\\nThis week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the upgrade of the client library and the CLI to support the verification of Cardano transactions. They also released the new Mithril network running on SanchoNet. Additionally, the team rolled out a new feature of the Pallas chain observer (that now supports the retrieval of Mithril era markers), and kept investigating some flakiness occurring in the CI end-to-end tests.\\n\\nFinally, the team kept working on the threat modeling and risk analysis for the Mithril network and updated the Mithril network architecture documentation.\\n\\n## Low level overview\\n- Published a development blog post [**Mithril SanchoNet network released**](https://mithril.network/doc/dev-blog/2024/02/08/testing-sanchonet-network-available)\\n- Completed the issue **Implement transactions verification in client library** [#1468](https://github.com/input-output-hk/mithril/issues/1468)\\n- Completed the issue **Implement `Cardano Transactions` commands in the client binary** [#1469](https://github.com/input-output-hk/mithril/issues/1469)\\n- Completed the issue **Create a test network on `SanchoNet`** [#1173](https://github.com/input-output-hk/mithril/issues/1173)\\n- Completed the issue **Update Mithril network architecture documentation** [#1488](https://github.com/input-output-hk/mithril/issues/1488)\\n- Completed the issue **Upgrade `http` dependency** [#1474](https://github.com/input-output-hk/mithril/issues/1474)\\n- Completed the issue **Extract database feature from common crate** [#1492](https://github.com/input-output-hk/mithril/issues/1492)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Worked on the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)\\n- Worked on the issue **Some end to end tests are flaky in the CI** [#1147](https://github.com/input-output-hk/mithril/issues/1147)\\n- Worked on the issue **Add an example crate for the `CardanoTransactions` type** [#1495](https://github.com/input-output-hk/mithril/issues/1495)\\n- Worked on the issue **Generate automatic documentation for CLIs** [#1471](https://github.com/input-output-hk/mithril/issues/1471)"},{"id":"2024-02-09-hydra","metadata":{"permalink":"/2024-02-09-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/hydra-2024-02-09.md","source":"@site/blog/hydra-2024-02-09.md","title":"Hydra Team Update","description":"High-level Summary","date":"2024-02-09T00:00:00.000Z","formattedDate":"February 9, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.64,"hasTruncateMarker":false,"authors":[{"name":"Daniel Firth","title":"Hydra Software Engineer","url":"https://github.com/locallycompact","imageURL":"https://github.com/locallycompact.png","key":"locallycompact"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-02-09-hydra","authors":["locallycompact"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-02-14-mithril"},"nextItem":{"title":"Consensus Team Update","permalink":"/2024-02-07-consensus"}},"content":"### High-level Summary\\n\\nThis week, the Hydra team worked on forward compatibility for Conway support, deployed the hydra explorer tool, and improved the model based testing to support more actions (Fanout and Rollbacks).\\n\\n### What did the team achieve this week\\n\\n- Addressed flakyness in two types of integration tests\\n- Fixed our tooling (HLS 2.6 on GHC 9.6.4)\\n- Fixed configuration of running head in preview\\n- Added Fanout and Rollbacks to our Model basd test suite #1296\\n- Deployed the hydra explorer to http://explorer.hydra.family:9090/heads (url will change a bit more)\\n- Updated smoke test to run sanchonet\\n\\n### What are the goals of next week\\n\\n- Fix the fanout after contest bug \\n- Specify the on-chain validators for incremental decommits\\n- Complete smoke tests on sanchonet"},{"id":"2024-02-07-consensus","metadata":{"permalink":"/2024-02-07-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-07-consensus.md","source":"@site/blog/2024-02-07-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2024-02-07T00:00:00.000Z","formattedDate":"February 7, 2024","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.315,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2024-02-07-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-02-09-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-02-07-mithril"}},"content":"## High level summary\\n\\nThis week we managed to integrate in the node the Consensus version of the UTxO-HD prototype that features the second version of the Ledger DB API.\\nWe also [changed the epoch structure for Conway](https://github.com/IntersectMBO/ouroboros-consensus/pull/927), made progress towards the Bootstrap State Machine and Peras planning.\\nOn the support front, we are investigating the impact of snapshots on missed leadership checks."},{"id":"2024-02-07-mithril","metadata":{"permalink":"/2024-02-07-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-07-mithril.md","source":"@site/blog/2024-02-07-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-02-07T00:00:00.000Z","formattedDate":"February 7, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.305,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-02-07-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2024-02-07-consensus"},"nextItem":{"title":"Network Team Update","permalink":"/2024-02-05-network"}},"content":"## High level overview\\n\\nThis week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the aggregator routes responsible for generating proofs of membership for a list of Cardano transactions and for listing produced artifacts. Additionally, they worked on extending the Mithril client library to support the verification of Cardano transactions, and on the creation of the new Mithril network running on SanchoNet.\\n\\nFinally, the team kept working on the threat modeling and risk analysis for the Mithril network and investigated some flakiness occurring in the end-to-end tests in the CI.\\n\\n## Low level overview\\n- Completed the issue **Implement proof generation route in the aggregator** [#1467](https://github.com/input-output-hk/mithril/issues/1467)\\n- Completed the issue **Implement artifact routes in the aggregator** [#1478](https://github.com/input-output-hk/mithril/issues/1478)\\n- Completed the issue **Enhance ImmutableFile list computation resilience** [#1450](https://github.com/input-output-hk/mithril/issues/1450)\\n- Completed the issue **Add WASM client step in Mithril Client multi-platform test** [#1408](https://github.com/input-output-hk/mithril/issues/1408)\\n- Completed the issue **Enhance end to end test for Cardano hard forks** [#1464](https://github.com/input-output-hk/mithril/issues/1464)\\n- Worked on the issue **Implement transactions verification in client library** [#1468](https://github.com/input-output-hk/mithril/issues/1468)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Worked on the issue **Create a test network on `SanchoNet`** [#1173](https://github.com/input-output-hk/mithril/issues/1173)\\n- Worked on the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)\\n- Worked on the issue **Some end to end tests are flaky in the CI** [#1147](https://github.com/input-output-hk/mithril/issues/1147)\\n- Worked on the issue **Handle cancellation of certificate verification in WASM client** [#1480](https://github.com/input-output-hk/mithril/issues/1480)\\n- Worked on the issue **Upgrade `http` dependency** [#1474](https://github.com/input-output-hk/mithril/issues/1474)\\n- Worked on the issue **Generate automatic documentation for CLIs** [#1471](https://github.com/input-output-hk/mithril/issues/1471)"},{"id":"2024-02-05-network","metadata":{"permalink":"/2024-02-05-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-05-network.md","source":"@site/blog/2024-02-05-network.md","title":"Network Team Update","description":"High-level overview of sprint 54","date":"2024-02-05T00:00:00.000Z","formattedDate":"February 5, 2024","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.375,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2024-02-05-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-02-07-mithril"},"nextItem":{"title":"SRE Team Update","permalink":"/2024-02-02-sre"}},"content":"## High-level overview of [sprint 54][sprint-54]\\n\\n\\nIn this sprint, we merged the bootstrap peers (aka weak genesis) changes to\\nthe `ouroboros-network` repository ([ouroboros-network#4615]). We continued\\nworking on integration & testing it using an early development version of\\n`cardano-node` ([cardano-node#5485]).\\n\\n[Andrew Westberg] ([DripDropz]) noticed and fixed a mistake in the cddl spec which resulted in\\nmisleading documentation; [ouroboros-network#4790]. The Handshake protocol flag\\nshould be called `initiatorOnlyDiffusionMode`. Library authors providing\\nconnectivity with other nodes via the `node-to-node` protocol are advised to review\\ntheir implementation.\\n\\nWe continued working on the `tx-submission` decision logic;\\n[ouroboros-network#3311].\\n\\n[Karl Knutsson] ([CF]) implemented:\\n\\n* a debugging feature which dumps outbound governor state on the `SIGUSR1` event\\n (supported on *POSIX* compatible OSes); [ouroboros-network#4730], [ouroboros-network#4789].\\n* limited the rate at which one can discover nodes through peer sharing;\\n [ouroboros-network#4778].\\n\\n## Open Source Contributions\\n\\n### IOSim\\n\\nWe released a new version of [io-sim to Hackage][io-sim-1.4.0.0]:\\n* [Sebastian Nagel] (IOG) fixed a bug in the `flushTQueue` implementation; [io-sim#135]\\n* We fixed the underflow error in `threadDelay` in the `si-timers` library\\n ([io-sim#129]) reported by [Nick Frisby] (Tweag)\\n\\n### NoThunks\\n\\nWe released a new version of [nothunks to Hackage][nothunks-0.2.0.0]:\\n* `wherefrom` support; [nothunks#46]\\n* added `Solo` instance; [nothunks#45]\\n* added instances for `Monoid` and `Semigroup` newtype wrappers; [nothunks#43]\\n\\n## Low-level summary\\n\\n* We started using the `ImportQualifiedPost` extension, hence a large\\n (autogenerated) syntax change; [ouroboros-network#4715].\\n* Code cleanup; [ouroboros-network#4792]\\n\\n[sprint-54]: https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+54%22\\n\\n[Andrew Westberg]: https://github.com/AndrewWestberg\\n[CF]: https://cardanofoundation.org\\n[DripDropz]: https://dripdropz.io/\\n[Karl Knutsson]: https://github.com/karknu\\n[Nick Frisby]: https://github.com/nfrisby\\n[Sebastian Nagel]: https://github.com/ch1bo\\n\\n\\n[cardano-node#5485]: https://github.com/IntersectMBO/cardano-node/pull/5485\\n\\n[ouroboros-network#3311]: https://github.com/IntersectMBO/ouroboros-network/issues/3311\\n[ouroboros-network#4615]: https://github.com/IntersectMBO/ouroboros-network/issues/4615\\n[ouroboros-network#4715]: https://github.com/IntersectMBO/ouroboros-network/pull/4715\\n[ouroboros-network#4730]: https://github.com/IntersectMBO/ouroboros-network/issues/4730\\n[ouroboros-network#4778]: https://github.com/IntersectMBO/ouroboros-network/issues/4778\\n[ouroboros-network#4789]: https://github.com/IntersectMBO/ouroboros-network/issues/4789\\n[ouroboros-network#4790]: https://github.com/IntersectMBO/ouroboros-network/issues/4790\\n[ouroboros-network#4792]: https://github.com/IntersectMBO/ouroboros-network/issues/4792\\n\\n[io-sim-1.4.0.0]: https://hackage.haskell.org/package/io-sim\\n[io-sim#129]: https://github.com/input-output-hk/io-sim/pull/129\\n[io-sim#135]: https://github.com/input-output-hk/io-sim/pull/135\\n\\n[nothunks-0.2.0.0]: https://hackage.haskell.org/package/nothunks \\n[nothunks#43]: https://github.com/input-output-hk/nothunks/pull/43\\n[nothunks#45]: https://github.com/input-output-hk/nothunks/pull/45\\n[nothunks#46]: https://github.com/input-output-hk/nothunks/pull/46"},{"id":"2024-02-02-sre","metadata":{"permalink":"/2024-02-02-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-02-sre.md","source":"@site/blog/2024-02-02-sre.md","title":"SRE Team Update","description":"High level summary","date":"2024-02-02T00:00:00.000Z","formattedDate":"February 2, 2024","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":0.96,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2024-02-02-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2024-02-05-network"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-02-02-hydra"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general\\nenvironment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Cardano explorer is being sunset and will soon be replaced by a new [Cardano\\n Foundation explorer](https://beta.explorer.cardano.org/)\\n* IOG mainnet pools are now participating in propagation time reporting using\\n Cardano Foundation\'s [blockperf\\n tool](https://github.com/cardano-foundation/blockperf)\\n* Cardano-parts node nixosConfigurations, node entrypoint and process-compose\\n node jobs now utilize [mithril](https://github.com/input-output-hk/mithril)\\n client automatically on preview and preprod networks for faster\\n synchronization of first start up. Mainnet mithril client use as well as\\n signer modules will be available soon.\\n\\n## Lower level summary\\n\\n### Cardano-mainnet\\n* Adds a blockperf reporting module to the bootstrap nodes and block producer\\n relays:\\n [cardano-mainnet-pull-7](https://github.com/input-output-hk/cardano-mainnet/pull/7)\\n\\n### Cardano-parts\\n* Adds a block performance module which utilizes cardano-foundation\'s blockperf\\n for aggregate block propagation reporting:\\n [cardano-parts-pull-29](https://github.com/input-output-hk/cardano-parts/pull/29)\\n* Adds a mithril client for nixosConfigurations, process-compose cardano-node\\n processes and cardano-node entrypoint:\\n [cardano-parts-pull-30](https://github.com/input-output-hk/cardano-parts/pull/30)\\n\\n### Iohk-nix\\n* Adds required mithril client environment information for preview, preprod,\\n mainnet:\\n [iohk-nix-pull-570](https://github.com/input-output-hk/iohk-nix/pull/570)\\n\\n### Cardano-world\\n* Add the sunset banner to explorer:\\n [cardano-world-commit](https://github.com/IntersectMBO/cardano-world/commit/b010f5f5b1ba92091145dc638e1a37f1612b3fa7)\\n\\n## Upstream Contributions\\n\\n### Blockperf\\n* Add a nix flake with blockperf package and ci action:\\n [blockperf-pull-22](https://github.com/cardano-foundation/blockperf/pull/22)"},{"id":"2024-02-02-hydra","metadata":{"permalink":"/2024-02-02-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/hydra-2024-02-02.md","source":"@site/blog/hydra-2024-02-02.md","title":"Hydra Team Update","description":"High-level Summary","date":"2024-02-02T00:00:00.000Z","formattedDate":"February 2, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.925,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-02-02-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2024-02-02-sre"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-01-31-ledger"}},"content":"### High-level Summary\\n\\nThis week, the Hydra team authored and published the monthly report for January 2024, enhanced user feedback for failed commands, updated cardano-api dependency and GHC to newer versions, re-opened their persistent head in preparation for the hard-fork, extended the model-based testing suite to cover the closing of heads, fixed a bug in io-sim, and contributed to cardano-node.\\n\\n### What did the team achieve this week\\n\\n- Wrote and published the [monthly report for January 2024](https://hydra.family/head-protocol/monthly/2024-01)\\n- Improved user feedback when a command failed [#1251](https://github.com/input-output-hk/hydra/issues/1251)\\n- Update cardano-api dependency and ghc to newer versions [#1269](https://github.com/input-output-hk/hydra/pull/1269) and [#1232](https://github.com/input-output-hk/hydra/pull/1232)\\n- Re-opened our persistent head using latest versions and ready for the hard-fork [#1256](https://github.com/input-output-hk/hydra/issues/1256)\\n- Extended model-based testing suite to cover closing of heads [#1276](https://github.com/input-output-hk/hydra/pull/1276)\\n- Fixed a bug in [io-sim#133](https://github.com/input-output-hk/io-sim/issues/133)\\n- Contributed a PR to [cardano-node#5657](https://github.com/IntersectMBO/cardano-node/pull/5657)\\n\\n### What are the goals of next week\\n\\n- Fix the fanout after contest bug [#1260](https://github.com/input-output-hk/hydra/issues/1260)\\n- Run Hydra smoke tests on sanchonet [#1257](https://github.com/input-output-hk/hydra/issues/1257)\\n- Specify the on-chain validators for incremental decommits [#1057](https://github.com/input-output-hk/hydra/issues/1057)\\n- Have the explorer hosted [#696](https://github.com/input-output-hk/hydra/issues/696)\\n- Prepare PRs for dropped JSON instances from API [#1213](https://github.com/input-output-hk/hydra/issues/1213)"},{"id":"2024-01-31-ledger","metadata":{"permalink":"/2024-01-31-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-31-ledger.md","source":"@site/blog/2024-01-31-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-01-31T00:00:00.000Z","formattedDate":"January 31, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.685,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-01-31-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-02-02-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-01-31-mithril"}},"content":"## High level summary\\n\\nOne very important Conway feature that became available since last report is the ability\\nfor Stake Pool Operators to vote on some of the security relevant protocol parameter\\nupdates. We organized proposal hierarchy into a cohesive implementation, which together\\nwith good tests gives us confidence in its correctness.\\n\\nWe also fixed a few important bugs:\\n\\n* Preventing Constitutional Committee Members from voting on governance actions that they\\n should not be allowed to vote on.\\n* Prevent deposits from appearing in orphaned reward accounts after the staking credential\\n has been unregistered, but before the proposal procedure deposit has been returned.\\n* Ensure Sets are encoded in CBOR with tag 258 by default\\n\\nFurther improvements in testing tools and addition of more tests.\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-3982] - Added SPO voting thresholds for security relevant parameters\\n* [pull-3978] - Proposals pruning rewrite\\n* [pull-4003] - Prefix Set encoding with tag 258\\n* [pull-3999] - Add PParamUpdates to the plutus context, by transforming them to Plutus Data\\n* [pull-4008] - Fixed a bug in GOV rule\\n* [pull-4013] - Remove `EnactState` from `ConwayGovState`\\n* [pull-4025] - Further improvements to `Proposals`\\n* [pull-4021] - Move unclaimed rewards from proposals to treasury\\n\\n### Testing\\n\\n* [pull-3997] - Added DRep delegation injections to Conway\\n* [pull-4023] - Add a function `registerInState` to `EraTransition`\\n* [pull-4005] - Fixes in Shelley `Imp` framework and other small things\\n* [pull-4004] - Verify that enacted gov action is removed\\n* [pull-4016] - Fix Arbitrary instance and invariant checking for `Proposals`\\n\\n### Improvements\\n\\n* [pull-4002] - Rename `Acnt` to `Account`\\n\\n### Releasing\\n\\n* [pull-4020] - Remove usages of decommissioned zw3rk nix substituter\\n* [pull-4014] - Update CHaP to fix `nix develop`\\n* [pull-4011] - Prepare ledger release\\n* [pull-4012] - Updates for Plutus 1.21\\n\\n[pull-3982]: https://github.com/IntersectMBO/cardano-ledger/pull/3982\\n[pull-3997]: https://github.com/IntersectMBO/cardano-ledger/pull/3997\\n[pull-3978]: https://github.com/IntersectMBO/cardano-ledger/pull/3978\\n[pull-4003]: https://github.com/IntersectMBO/cardano-ledger/pull/4003\\n[pull-3999]: https://github.com/IntersectMBO/cardano-ledger/pull/3999\\n[pull-4012]: https://github.com/IntersectMBO/cardano-ledger/pull/4012\\n[pull-4008]: https://github.com/IntersectMBO/cardano-ledger/pull/4008\\n[pull-4011]: https://github.com/IntersectMBO/cardano-ledger/pull/4011\\n[pull-4014]: https://github.com/IntersectMBO/cardano-ledger/pull/4014\\n[pull-4020]: https://github.com/IntersectMBO/cardano-ledger/pull/4020\\n[pull-4002]: https://github.com/IntersectMBO/cardano-ledger/pull/4002\\n[pull-4005]: https://github.com/IntersectMBO/cardano-ledger/pull/4005\\n[pull-4016]: https://github.com/IntersectMBO/cardano-ledger/pull/4016\\n[pull-4004]: https://github.com/IntersectMBO/cardano-ledger/pull/4004\\n[pull-4013]: https://github.com/IntersectMBO/cardano-ledger/pull/4013\\n[pull-4025]: https://github.com/IntersectMBO/cardano-ledger/pull/4025\\n[pull-4021]: https://github.com/IntersectMBO/cardano-ledger/pull/4021\\n[pull-4023]: https://github.com/IntersectMBO/cardano-ledger/pull/4023"},{"id":"2024-01-31-mithril","metadata":{"permalink":"/2024-01-31-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-31-mithril.md","source":"@site/blog/2024-01-31-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-01-31T00:00:00.000Z","formattedDate":"January 31, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.22,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-01-31-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-01-31-ledger"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2024-01-31-node-cli-api"}},"content":"## High level overview\\n\\nThis week, the Mithril team continued implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the signature of the transactions set and implemented the aggregator route, responsible for generating proofs of membership for a list of Cardano transactions. Additionally, they finalized the manual workflow to test the NPM client package in the CI and enhanced the resilience of computing the list of immutable files in a Cardano node database. The team also expanded the coverage of end-to-end tests in the CI to accommodate multiple versions of the Cardano node and various hard fork scenarios.\\n\\nFinally, they completed the enhanced node communications between Mithril and Cardano for retrieving UTXOs and kept working on the threat modeling and risk analysis for P2P networking.\\n\\n## Low level overview\\n- Completed the issue **Light Wallet: Compute message to sign for `CardanoTransactions`** [#1436](https://github.com/input-output-hk/mithril/issues/1436)\\n- Completed the issue **Light Wallet: Implement proof generation route in the aggregator** [#1467](https://github.com/input-output-hk/mithril/issues/1467)\\n- Completed the issue **Enhance ImmutableFile list computation resilience** [#1450](https://github.com/input-output-hk/mithril/issues/1450)\\n- Completed the issue **Enhance end to end test for Cardano hard forks** [#1464](https://github.com/input-output-hk/mithril/issues/1464)\\n- Completed the issue **Add WASM client step in Mithril Client multi-platform test** [#1408](https://github.com/input-output-hk/mithril/issues/1408)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Worked on the issue **Create a test network on `SanchoNet`** [#1173](https://github.com/input-output-hk/mithril/issues/1173)\\n- Worked on the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)\\n- Worked on the issue **Generate automatic documentation for CLIs** [#1471](https://github.com/input-output-hk/mithril/issues/1471)"},{"id":"2024-01-31-node-cli-api","metadata":{"permalink":"/2024-01-31-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-31-node-cli-api.md","source":"@site/blog/2024-01-31-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2024-01-31T00:00:00.000Z","formattedDate":"January 31, 2024","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":0.845,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2024-01-31-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-01-31-mithril"},"nextItem":{"title":"Performance & Tracing Update","permalink":"/2024-01-31-performance-and-tracing"}},"content":"# 2024-01-16 - 2024-01-31\\n\\n## High level summary\\n\\n- cardano-cli: Adapt the output of the `protocol-parameters` query to show all parameters in Conway. Improved help on various commands. New command create-testnet-data to eventually replace create-staked. \\n\\n### cardano-cli\\n\\n- [Update hedgehog-extras to 0.6.0.1](https://github.com/IntersectMBO/cardano-cli/pull/589)\\n- [create-testnet-data: don\'t fail trying to create irrelevant READMEs](https://github.com/IntersectMBO/cardano-cli/pull/588)\\n- [Update help for `drep-stake-distribution` and `drep-state` queries](https://github.com/IntersectMBO/cardano-cli/pull/585)\\n- [Release 8.19.0.0](https://github.com/IntersectMBO/cardano-cli/pull/578)\\n- [Update cardano-api 8.37.1](https://github.com/IntersectMBO/cardano-cli/pull/576)\\n- [create-testnet-data: various enhancements](https://github.com/IntersectMBO/cardano-cli/pull/575)\\n- [Revert #569: Back to cardano-api JSON for protocol parameters](https://github.com/IntersectMBO/cardano-cli/pull/572)\\n- [Use (slightly hacked) cardano-ledger JSON output for protocol parameters](https://github.com/IntersectMBO/cardano-cli/pull/569)\\n\\n### cardano-api\\n\\n- [Expose getAnyNewEpochState. Simplify rendering LedgerState errors](https://github.com/IntersectMBO/cardano-api/pull/439)\\n- [Bump CHaP, update hedgehog-extras 0.6.0.2](https://github.com/IntersectMBO/cardano-api/pull/438)\\n- [Fix bech32 prefixes of committee keys](https://github.com/IntersectMBO/cardano-api/pull/435)\\n- [Update hedgehog-extras to 0.6.0.1](https://github.com/IntersectMBO/cardano-api/pull/434)\\n- [Add return value to `checkLedgerStateCondition`](https://github.com/IntersectMBO/cardano-api/pull/433)\\n- [Release 8.37.1.0](https://github.com/IntersectMBO/cardano-api/pull/432)\\n- [Better `MonadError` handling to avoid nesting `ExceptT` in `modifyError`](https://github.com/IntersectMBO/cardano-api/pull/431)\\n- [Bump hedgehog-extras 0.6.0.0](https://github.com/IntersectMBO/cardano-api/pull/430)\\n- [Fix cardano-node deadlink](https://github.com/IntersectMBO/cardano-api/pull/429)\\n\\n### cardano-testnet\\n\\n- [Bump hedgehog-extras 0.6.0.1](https://github.com/IntersectMBO/cardano-node/pull/5647)\\n- [Update cardano-cli 8.19](https://github.com/IntersectMBO/cardano-node/pull/5644)\\n- [Disable ledger events governance test temporarily ](https://github.com/IntersectMBO/cardano-node/pull/5640)\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2024-01-31-performance-and-tracing","metadata":{"permalink":"/2024-01-31-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-31-performance-and-tracing.md","source":"@site/blog/2024-01-31-performance-and-tracing.md","title":"Performance & Tracing Update","description":"High level summary","date":"2024-01-31T00:00:00.000Z","formattedDate":"January 31, 2024","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":1.88,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & Tracing Update","slug":"2024-01-31-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2024-01-31-node-cli-api"},"nextItem":{"title":"DB Sync Team Update","permalink":"/2024-01-30-db-sync"}},"content":"## High level summary\\n\\n* Benchmarking: GHC 9.6.3 benchmarks for node `8.7.2` have been performed.\\n* Development: Additional features for our reporting pipeline, while simultaneously reducing dependency footprint.\\n* Tracing: Implementation for `cardano-tracer` to work on handles instead of files; work on New Tracing Quickstart document has begun.\\n* Nomad cluster: We\'re preparing an upgrade to the latest Nomad version.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nWe\'ve performed a full set of GHC 9.6.3 benchmarks for node `8.7.2`. For recommending GHC9.6 as a default build platform for `cardano-node` - from a performance perspective - we observe only one residual issue. As a way to\\naddress this, we\'ve decided to create a reproduction benchmark targeting the affected component.\\n\\n### Development\\n\\nOur reporting pipeline will be expanded to support a wider range of rendering formats, as well as report templates. As the pipeline is part of our workbench - and thus gets downloaded and built when entering the workbench shell - it\'s \\ngood practice to keep a small dependency footprint. When reworking the pipeline, we aim to simultaneously reduce dependencies.\\n\\n### Tracing\\n\\nSo far, `cardano-tracer` has internally been using files, or file names, for the purpose of logging trace messages it receives via forwarding. This is simple, but induces quite some overhead at runtime: files have to be opened and closed for each message.\\nUsing and managing open file handles inside `cardano-tracer` does remove that overhead, but unsurprisingly introduces some complexity into the application code. Currently, we\'re working on implementing that change. \\n\\nFurthermore, we\'re working on a Quickstart document for the new tracing system, with end users as its intended audience. It will contain recommended production use setup(s), and how to efficiently configure and run them step by step. Additionally, it\\nwill provide a brief, but comprehensive overview over the features at the user\'s disposal.\\n\\n### Nomad backend\\n\\nOn the Nomad cluster, we\'ve experienced undesired system behaviour when the heartbeat between the Nomad server and a client is interrupted temporarily - although the Nomad job itself is still 100% functional. A Nomad\\nupgrade to the latest version promises to fix that, but it turn comes with other issues. We\'re currently working on adapting our automation and deployment around those known issues, before we can eventually\\napply the upgrade."},{"id":"2024-01-30-db-sync","metadata":{"permalink":"/2024-01-30-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-30-db-sync.md","source":"@site/blog/2024-01-30-db-sync.md","title":"DB Sync Team Update","description":"High level summary","date":"2024-01-30T00:00:00.000Z","formattedDate":"January 30, 2024","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.395,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB Sync Team Update","slug":"2024-01-30-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Update","permalink":"/2024-01-31-performance-and-tracing"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-01-26-hydra"}},"content":"## High level summary\\nThe DBSync team has prepared and tested a new db-sync version for mainnet, we have continued our\\nintegration and update for Conway and have extended its modularity.\\n\\n## Lower level summary\\n- We attempt to turn db-sync into a modular project that can run with wither low or high recourses\\n[#1610](https://github.com/IntersectMBO/cardano-db-sync/pull/1610)\\n[#1613](https://github.com/IntersectMBO/cardano-db-sync/pull/1613)\\n[#1590](https://github.com/IntersectMBO/cardano-db-sync/pull/1590)\\n\\n- Moving the flags above to a config file\\n[#1609](https://github.com/IntersectMBO/cardano-db-sync/pull/1609)\\n\\n- Optimizations\\n[#1595](https://github.com/IntersectMBO/cardano-db-sync/pull/1595)\\n[#1607](https://github.com/IntersectMBO/cardano-db-sync/pull/1607)\\n\\n- Conway Support and updates\\n[#1581](https://github.com/IntersectMBO/cardano-db-sync/pull/1581)\\n[#1573](https://github.com/IntersectMBO/cardano-db-sync/pull/1573)\\n[#1570](https://github.com/IntersectMBO/cardano-db-sync/pull/1570)"},{"id":"2024-01-26-hydra","metadata":{"permalink":"/2024-01-26-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-26-hydra.md","source":"@site/blog/2024-01-26-hydra.md","title":"Hydra Team Update","description":"High-level Summary","date":"2024-01-26T00:00:00.000Z","formattedDate":"January 26, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.75,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-01-26-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"DB Sync Team Update","permalink":"/2024-01-30-db-sync"},"nextItem":{"title":"Consensus Team Update","permalink":"/2024-01-24-consensus"}},"content":"### High-level Summary\\n\\nThis week, the Hydra team conducted yearly roadmapping sessions, introduced a\\nbreaking API change to eliminate JSON encoding of transactions (refer to issue\\n#1213 for details), completed off-chain logic for incremental decommits through,\\nand implemented a hydra-explorer backend.\\n\\n### What did the team achieve this week\\n\\n- Conducted yearly roadmapping sessions\\n- Merged a breaking API change to drop JSON encoding of transactions [#1213](https://github.com/input-output-hk/hydra/issues/1213) - contact us if you were relying on this.\\n- Completed off-chain logic for incremental decommits [#1223](https://github.com/input-output-hk/hydra/pull/1223)\\n- Implemented a hydra-explorer backend [#1235](https://github.com/input-output-hk/hydra/pull/1235)\\n\\n### What are the goals of next week\\n\\n- Publish the monthly report\\n- Prepare PRs for hydra clients to switch to CBOR due to the changed API (see above)\\n- Enhance the model testing framework to cover close/contest (needed to fix a bug and incremental decommit development)\\n- Fix new bugs (all minors) and finish things before starting new"},{"id":"2024-01-24-consensus","metadata":{"permalink":"/2024-01-24-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-24-consensus.md","source":"@site/blog/2024-01-24-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2024-01-24T00:00:00.000Z","formattedDate":"January 24, 2024","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.345,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2024-01-24-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-01-26-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-01-24-mithril"}},"content":"## High level summary\\n\\nThis week the team continued working on the second iteration of the Ledger DB API for UTxO-HD, as well as on Genesis.\\nWe incorporated further improvements to the [onboarding documentation](https://github.com/IntersectMBO/ouroboros-consensus/pull/879), and [wrote a document](https://github.com/IntersectMBO/ouroboros-consensus/pull/891) explaining a specific subtlety of our chain orders.\\nFor Conway, we integrated [DReps and initial delegates injection](https://github.com/IntersectMBO/ouroboros-consensus/pull/894), which will allow the Performance and Tracing team to run benchmarks for this era."},{"id":"2024-01-24-mithril","metadata":{"permalink":"/2024-01-24-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-24-mithril.md","source":"@site/blog/2024-01-24-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-01-24T00:00:00.000Z","formattedDate":"January 24, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.505,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-01-24-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2024-01-24-consensus"},"nextItem":{"title":"Network Team Update","permalink":"/2024-01-22-network"}},"content":"## High level overview\\n\\nThis week, the Mithril team released the initial version of the [Mithril client NPM package](https://www.npmjs.com/package/@mithril-dev/mithril-client-wasm), enabling developers to integrate core Mithril features into their web applications running in a browser. They also released a new distribution, [`2403.1`](https://github.com/input-output-hk/mithril/releases/tag/2403.1), which includes support for Cardano node version `8.7.3`, a new chain observer based on the [Pallas](https://crates.io/crates/pallas) library, along with bug fixes and performance improvements.\\n\\nThe team kept implementing a new entity type for certifying the Cardano transactions set in Mithril networks and made good progress on retrieving transactions and combining them into a Mithril protocol message. Additionally, they finished implementing a mock aggregator and using it in the browser tests for the Mithril client in WASM.\\n\\nFinally, they worked on enhancing node communications between Mithril and Cardano and continued working on threat modeling and risk analysis for P2P networking.\\n\\n## Low level overview\\n- Release of the [`mithril-client npm package`](https://www.npmjs.com/package/@mithril-dev/mithril-client-wasm) library crate\\n- Publication of a [dev blog post](https://mithril.network/doc/dev-blog/2024/01/23/mithril-client-npm-package-released) about the released Mithril client npm package\\n- Released the new distribution [`2403.1`](https://github.com/input-output-hk/mithril/releases/tag/2403.1)\\n- Completed the issue **Light Wallet: Gather transactions from immutable files and store them in the database** [#1435](https://github.com/input-output-hk/mithril/issues/1435)\\n- Completed the issue **Light Wallet: Implement browser tests with fake aggregator** [#1407](https://github.com/input-output-hk/mithril/issues/1407)\\n- Completed the issue **Implement a fake standalone aggregator** [#1397](https://github.com/input-output-hk/mithril/issues/1397)\\n- Worked on the issue **Light Wallet: Compute message to sign for `CardanoTransactions`** [#1436](https://github.com/input-output-hk/mithril/issues/1436)\\n- Worked on the issue **Enhance ImmutableFile list computation resilience** [#1450](https://github.com/input-output-hk/mithril/issues/1450)\\n- Worked on the issue **Add WASM client step in Mithril Client multi-platform test** [#1408](https://github.com/input-output-hk/mithril/issues/1408)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Worked on the issue **Create a test network on `SanchoNet`** [#1173](https://github.com/input-output-hk/mithril/issues/1173)\\n- Worked on the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)\\n- Completed the issue **Add warn missing docs in mithril client cli** [#1439](https://github.com/input-output-hk/mithril/issues/1439)"},{"id":"2024-01-22-network","metadata":{"permalink":"/2024-01-22-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-22-network.md","source":"@site/blog/2024-01-22-network.md","title":"Network Team Update","description":"High level overview of sprint 53","date":"2024-01-22T00:00:00.000Z","formattedDate":"January 22, 2024","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.075,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2024-01-22-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-01-24-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-01-19-hydra"}},"content":"## High level overview of [sprint 53][sprint-53]\\n\\nWe integrated bootstrap peers with `cardano-node` in an experimental branch\\n([cardano-node-5485], [ouroboros-network-4615]). We continued working on\\n`tx-submission`: [ouroboros-network-3311].\\n\\nKarl Knutsson (CF) worked on peer sharing improvements: [ouroboros-network-4778].\\n\\nErik de Castro Lopo made `ouroboros-network` packages compile with `GHC-9.8`:\\n[ouroboros-network-4727].\\n\\nNick Frisby (Tweag, Consensus Team), modified `local-state-query` mini-protocol\\nso that one can acquire the immutable tip and thus get information which is not\\nsubject to rollbacks: [ouroboros-network-4765].\\n\\n## Low level summary\\n\\nOther, less significant changes / improvements include:\\n\\n* we helped diagnose `TVar` memory leak when using `ghc-9.8`. This will\\n require more work from us in the near future, see [ouroboros-network-4776];\\n* we fixed a minor issues with `block-size` in `ouroboros-network`:\\n [ouroboros-network-4775];\\n* we changed pipelining depth configuration to use `Word16` (thanks to Eric de\\n Castro Lopo): [ouroboros-network-4774];\\n* we changed pipelining depth QuickCheck generator: [ouroboros-network-4771];\\n* we moved `configureOutboundConnection` to `ouroboros-network` as a private\\n function: [ouroboros-network-4773];\\n* we updated copyright information of network packages: [Win32-network-27],\\n [ouroboros-network-4761];\\n* we merged a PR which added a test which could discover the bug fixed in\\n [ouroboros-network-4748], see [ouroboros-network-4757].\\n\\n\\n\\n[sprint-53]: https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+53%22\\n[Win32-network-27]: https://github.com/IntersectMBO/Win32-network/pull/27\\n[cardano-node-5484]: https://github.com/IntersectMBO/cardano-node/pull/5485\\n[ouroboros-network-3311]: https://github.com/IntersectMBO/ouroboros-network/issues/3311\\n[ouroboros-network-4615]: https://github.com/IntersectMBO/ouroboros-network/issues/4615\\n[ouroboros-network-4727]: https://github.com/IntersectMBO/ouroboros-network/issues/4727\\n[ouroboros-network-4735]: https://github.com/IntersectMBO/ouroboros-network/issues/4735\\n[ouroboros-network-4748]: https://github.com/IntersectMBO/ouroboros-network/issues/4748\\n[ouroboros-network-4757]: https://github.com/IntersectMBO/ouroboros-network/issues/4757\\n[ouroboros-network-4761]: https://github.com/IntersectMBO/ouroboros-network/issues/4761\\n[ouroboros-network-4765]: https://github.com/IntersectMBO/ouroboros-network/issues/4765\\n[ouroboros-network-4771]: https://github.com/IntersectMBO/ouroboros-network/issues/4771\\n[ouroboros-network-4773]: https://github.com/IntersectMBO/ouroboros-network/issues/4773\\n[ouroboros-network-4774]: https://github.com/IntersectMBO/ouroboros-network/issues/4774\\n[ouroboros-network-4775]: https://github.com/IntersectMBO/ouroboros-network/issues/4775\\n[ouroboros-network-4776]: https://github.com/IntersectMBO/ouroboros-network/issues/4776\\n[ouroboros-network-4778]: https://github.com/IntersectMBO/ouroboros-network/issues/4778"},{"id":"2024-01-19-hydra","metadata":{"permalink":"/2024-01-19-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-19-hydra.md","source":"@site/blog/2024-01-19-hydra.md","title":"Hydra Team Update","description":"High-level Summary","date":"2024-01-19T00:00:00.000Z","formattedDate":"January 19, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.03,"hasTruncateMarker":false,"authors":[{"name":"Arnaud Bailly","title":"Head of Architecture, Cardano Scaling","url":"https://github.com/abailly","imageURL":"https://github.com/abailly.png","key":"abailly"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-01-19-hydra","authors":["abailly"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2024-01-22-network"},"nextItem":{"title":"SRE Team Update","permalink":"/2024-01-19-sre"}},"content":"### High-level Summary\\n\\nThe team made good progress this week, with the release of version\\n0.15.0 marking a milestone, along with the monthly review including\\nboth Mithril and Hydra work. We addressed issues in smoke tests and\\nwebsite publishing workflows, ensuring a more robust development\\nenvironment, and along the way included more \\"dogfooding\\" through the\\nuse of Mithril to synchronize nodes in smoke tests.\\n\\n### What did the team achieve this week\\n\\n- Release of Version\\n [0.15.0](https://github.com/input-output-hk/hydra/releases/tag/0.15.0). This\\n release enhances the overall stability and functionality of our\\n product.\\n- Monthly Review and Community Demos\\n- Smoke Tests and Website Publishing Workflow Fixes: [#1246](https://github.com/input-output-hk/hydra/pull/1246)\\n - Resolved glitches in the website publishing workflows, enhancing\\n the efficiency of our deployment processes.\\n- Integration of Mithril for Smoke Test Synchronization: [#1252](https://github.com/input-output-hk/hydra/pull/1252)\\n- Polishing of Hydra-Chess v0.1.0: [#1237](https://github.com/input-output-hk/hydra/issues/1237)\\n - Worked on polishing hydra-chess v0.1.0, treating it as an example\\n application running on Hydra. This not only demonstrates the\\n capabilities of our platform but also aims at providing a reference for future Hydra\\n developers.\\n\\n### What are the goals of next week\\n\\n- Merge Off-Chain Protocol Logic for incremental decommits\\n- Initiate work on the on-chain portion of incremental decommits\\n- Merge CBOR API Change [#1240](https://github.com/input-output-hk/hydra/pull/1240)\\n- Troubleshoot Dangling Fanout Issue [#1260](https://github.com/input-output-hk/hydra/issues/1260)"},{"id":"2024-01-19-sre","metadata":{"permalink":"/2024-01-19-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-19-sre.md","source":"@site/blog/2024-01-19-sre.md","title":"SRE Team Update","description":"High level summary","date":"2024-01-19T00:00:00.000Z","formattedDate":"January 19, 2024","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.39,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2024-01-19-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-01-19-hydra"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-01-17-ledger"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general\\nenvironment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Cardano-node 8.7.3 is now generally deployed to all testnet and mainnet environments\\n managed by coretech SRE\\n* Dbsync and node stack process-compose jobs are now available from\\n cardano-parts for users running `nix >= 2.17.0` and nix `experimental-features\\n = nix-command flakes fetch-closure`\\n* These can be run with:\\n ```\\n nix run github:input-output-hk/cardano-parts#run-process-compose-node-stack\\n nix run github:input-output-hk/cardano-parts#run-process-compose-dbsync-$NETWORK\\n ```\\n\\n* For more details, see the merged cardano-parts process-compose\\n [PR](https://github.com/input-output-hk/cardano-parts/pull/28)\\n\\n## Lower level summary\\n\\n### Cardano-monitoring\\n* Adds code documentation and some nix refactoring:\\n [cardano-monitoring-pull-1](https://github.com/input-output-hk/cardano-monitoring/pull/1)\\n\\n### Cardano-mainnet\\n* Adds a readme, switches to nonmoving gc for producers, plus misc improvements\\n from cardano-parts:\\n [cardano-mainnet-pull-6](https://github.com/input-output-hk/cardano-mainnet/pull/6)\\n\\n### Cardano-ops\\n* Merged a long standing branch converting legacy mainnet relays to p2p, node ->\\n 8.7.2, db-sync snapshots -> 13.1.1.3, and other improvements:\\n [cardano-ops-pull-417](https://github.com/input-output-hk/cardano-ops/pull/417)\\n\\n### Cardano-parts\\n* Adds a readme, provides misc improvements, service optimizations, alert tuning,\\n sql pool performance analysis fix, package updates:\\n [cardano-parts-pull-27](https://github.com/input-output-hk/cardano-parts/pull/27)\\n* Adds process-compose dbsync and node stacks:\\n [cardano-parts-pull-28](https://github.com/input-output-hk/cardano-parts/pull/28)\\n\\n### Cardano-playground\\n* Updates the readme, adds mainnet missedSlot testing, rotates KES on 4 networks,\\n plus misc improvements from cardano-parts:\\n [cardano-playground-pull-13](https://github.com/input-output-hk/cardano-playground/pull/13)\\n* Adds process-compose dbsync and node stacks from cardano-parts flakeModule:\\n [cardano-playground-pull-14](https://github.com/input-output-hk/cardano-playground/pull/14)\\n\\n\\n## Upstream Contributions\\n* Contributions to upstream process-compose related repos were made in order to\\n complete the process-compose dbsync and node stacks in cardano-parts,\\n including the following:\\n\\n### Process-compose-flake\\n* Adds apiServer process-compose cli option:\\n [process-compose-flake-pull-54](https://github.com/Platonic-Systems/process-compose-flake/pull/54)\\n* Add a pre- and post- hook for the process-compose wrapper:\\n [process-compose-flake-pull-56](https://github.com/Platonic-Systems/process-compose-flake/pull/56)\\n\\n### Services-flake\\n* Adds socketDir option for postgres service:\\n [services-flake-pull-77](https://github.com/juspay/services-flake/pull/77)\\n* Ensure socketDir mktemp init succeeds for postgres service:\\n [services-flake-pull-81](https://github.com/juspay/services-flake/pull/81)"},{"id":"2024-01-17-ledger","metadata":{"permalink":"/2024-01-17-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-17-ledger.md","source":"@site/blog/2024-01-17-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-01-17T00:00:00.000Z","formattedDate":"January 17, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":0.485,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-01-17-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2024-01-19-sre"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-01-17-mithril"}},"content":"## High level summary\\n\\nLast week\'s achievement was that we finished PlutusV3 integration, which a massive piece of work.\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-3960] - Plutus script purpose\\n* [pull-3987] - PlutusV3 context\\n\\n### Testing\\n\\n* [pull-3989] - Fix too many discards.\\n* [pull-3986] - Remove libs/cardano-ledger-pretty\\n* [pull-3991] - Imp native script support\\n* [pull-3993] - Change Test.Cardano.Ledger.Generic.Proof so that there is no more Crypto Evidence.\\n\\n### Releasing\\n\\n* [pull-3988] - Bump jinja2 from 3.1.2 to 3.1.3 in /doc\\n\\n[pull-3988]: https://github.com/IntersectMBO/cardano-ledger/pull/3988\\n[pull-3989]: https://github.com/IntersectMBO/cardano-ledger/pull/3989\\n[pull-3986]: https://github.com/IntersectMBO/cardano-ledger/pull/3986\\n[pull-3960]: https://github.com/IntersectMBO/cardano-ledger/pull/3960\\n[pull-3987]: https://github.com/IntersectMBO/cardano-ledger/pull/3987\\n[pull-3991]: https://github.com/IntersectMBO/cardano-ledger/pull/3991\\n[pull-3993]: https://github.com/IntersectMBO/cardano-ledger/pull/3993"},{"id":"2024-01-17-mithril","metadata":{"permalink":"/2024-01-17-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-17-mithril.md","source":"@site/blog/2024-01-17-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-01-17T00:00:00.000Z","formattedDate":"January 17, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.165,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-01-17-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-01-17-ledger"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2024-01-15-node-cli-api"}},"content":"## High level overview\\n\\nThis week, the Mithril team completed the implementation of the client in the explorer, enabling direct certificate verification from the browser. They initiated the implementation of a new entity type for signing to certify the Cardano transactions set in Mithril networks. The team also upgraded the devnet to support the Conway era and activated the Mithril era marker reader on the Cardano chain in the end-to-end test. Additionally, they kept implementing a mock aggregator to strengthen Mithril client tests in WASM and continued working on threat modeling and risk analysis for P2P networking.\\n\\nFinally, they worked on enhancing node communications between Mithril and Cardano, and they started rolling out the Cardano node in the infrastructure to version `8.7.3`.\\n\\n## Low level overview\\n- Completed the issue **Light Wallet: Create new signed entity type for `CardanoTransactions`** [#1434](https://github.com/input-output-hk/mithril/issues/1434)\\n- Completed the issue **Implement the mithril client WASM package in the explorer** [#1409](https://github.com/input-output-hk/mithril/issues/1409)\\n- Completed the issue **Activate `babbage`/`conway` eras on `devnet`** [#1425](https://github.com/input-output-hk/mithril/issues/1425)\\n- Completed the issue **Transition Mithril Era Reader adapter to `CardanoChain` in `devnet`** [#1428](https://github.com/input-output-hk/mithril/issues/1428)\\n- Completed the issue **Upgrade Cardano node to `8.7.3`** [#1410](https://github.com/input-output-hk/mithril/issues/1410)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Worked on the issue **Implement a fake standalone aggregator** [#1397](https://github.com/input-output-hk/mithril/issues/1397)\\n- Worked on the issue **Create a test network on `SanchoNet`** [#1173](https://github.com/input-output-hk/mithril/issues/1173)\\n- Worked on the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)"},{"id":"2024-01-15-node-cli-api","metadata":{"permalink":"/2024-01-15-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-15-node-cli-api.md","source":"@site/blog/2024-01-15-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2024-01-15T00:00:00.000Z","formattedDate":"January 15, 2024","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":0.63,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2024-01-15-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-01-17-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-01-12-hydra"}},"content":"# 2024-01-01 - 2024-01-15\\n\\n## High level summary\\n\\n- cardano-cli: Improve queries drep and stake pool queries. Code clean-up\\n- cardano-api: Added support for drep extended keys\\n- cardano-testnet: Update to cardano-cli 8.18.0.0\\n\\n### cardano-cli\\n\\n- [Detail: remove some dead code](https://github.com/IntersectMBO/cardano-cli/pull/560)\\n- [Clarify DRep queries with an all-or-some logic](https://github.com/IntersectMBO/cardano-cli/pull/555)\\n- [Fix changelog syntax, so that cardano-dev\'s tag.sh script works](https://github.com/IntersectMBO/cardano-cli/pull/545)\\n- [Update to hedgehog-extras-0.5.1.0](https://github.com/IntersectMBO/cardano-cli/pull/544)\\n- [Release 8.18.0.0](https://github.com/IntersectMBO/cardano-cli/pull/542)\\n- [Clarify stake-pool queries with an \\"all or some\\"-logic](https://github.com/IntersectMBO/cardano-cli/pull/541)\\n- [Update cardano-api to 8.37.0.0](https://github.com/IntersectMBO/cardano-cli/pull/538)\\n- [Update hedgehog-extras to 0.5.0.0](https://github.com/IntersectMBO/cardano-cli/pull/536)\\n\\n### cardano-api\\n\\n- [Support signing with drep extended key](https://github.com/IntersectMBO/cardano-api/pull/419)\\n- [Update to hedgehog-extras-0.5.1.0](https://github.com/IntersectMBO/cardano-api/pull/418)\\n- [Release 8.37.0.0](https://github.com/IntersectMBO/cardano-api/pull/417)\\n\\n### cardano-node\\n\\n### cardano-testnet\\n\\n- [Update CLI to 8.18.0.0](https://github.com/IntersectMBO/cardano-node/pull/5633)\\n- [Use lenses for JSON editing. Upgrade to `hedgehog-extras0.5.1.0`](https://github.com/IntersectMBO/cardano-node/pull/5626)\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2024-01-12-hydra","metadata":{"permalink":"/2024-01-12-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-12.md","source":"@site/blog/2024-01-12.md","title":"Hydra Team Update","description":"High-level summary","date":"2024-01-12T00:00:00.000Z","formattedDate":"January 12, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.06,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-01-12-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2024-01-15-node-cli-api"},"nextItem":{"title":"Consensus Team Update","permalink":"/2024-01-10-consensus"}},"content":"### High-level summary\\n\\nThis week, the Hydra team improved Github actions workflows, addressed protocol\\nparameter schema consistency in hydra-node, and made enhancements to log schema\\ntests. They created an Architectural Decision Record (ADR) for Cardano\\ntransactions serialization in APIs, moved the hydra-chess project to a dedicated\\nrepository, and resolved a bug in quickcheck-dynamic and model tests.\\n\\nThere will be the monthly review meeting with demos on Hydra, Mithril and\\nrelated projects. If this sounds interesting, join us in Google Meet\\nhttps://meet.google.com/udc-zgyw-agd next week, January 19 2024 at 17:30 UTC.\\n\\n\\n### What did the team achieve this week\\n\\n- Github actions improvements and small fixes to the smoke tests [\\\\#1242](https://github.com/input-output-hk/hydra/pull/1242), [\\\\#1233](https://github.com/input-output-hk/hydra/pull/1233)\\n- Fixed protocol parameter schema consistency around `hydra-node` [\\\\#1234](https://github.com/input-output-hk/hydra/issues/1234)\\n- Log schema tests improvements and fixes [\\\\#1244](https://github.com/input-output-hk/hydra/pull/1244)\\n- Created [ADR](https://github.com/input-output-hk/hydra/pull/1215/files?short_path=3a6c7dc#diff-3a6c7dcfd58c753d4e2639cbfeeff78b09bdd0709a01e6658884de790590c702) about Cardano transactions serialisation in our APIs\\n [\\\\#1215](https://github.com/input-output-hk/hydra/pull/1215)\\n- Moved `hydra-chess` [\\\\#1237](https://github.com/input-output-hk/hydra/issues/1237) to a dedicated cardano-scaling organisation repository \\n- Identified bug on `quickcheck-dynamic` / our model tests [\\\\#1239](https://github.com/input-output-hk/hydra/issues/1239)\\n\\n### What are the goals of next week\\n\\n- Monthly review meeting (January 19, 17:30 UTC) including several demos (from team and contributors)\\n- Do release 0.15.0\\n- Improve `quickcheck-dynamic` model to be more robust and cover more\\n behaviour.\\n- Draft POC about backend for a `hydra-explorer` that can track all\\n heads on-chain."},{"id":"2024-01-10-consensus","metadata":{"permalink":"/2024-01-10-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-10-consensus.md","source":"@site/blog/2024-01-10-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2024-01-10T00:00:00.000Z","formattedDate":"January 10, 2024","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.515,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2024-01-10-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-01-12-hydra"},"nextItem":{"title":"Ledger Team Update","permalink":"/2024-01-10-ledger"}},"content":"## High level summary\\n\\nFor the past two weeks the Consensus team:\\n\\n- [Resumed work on implementing](https://github.com/IntersectMBO/ouroboros-consensus/pull/858) the initialization and internals of the second iteration of the in-memory ledger database.\\n- [Resumed work on integrating](https://github.com/IntersectMBO/ouroboros-consensus/pull/815) the new ledger database API for UTxO HD.\\n- Simplified query versioning for downstream users ([863](https://github.com/IntersectMBO/ouroboros-consensus/pull/863) and [403](https://github.com/IntersectMBO/cardano-api/pull/403)).\\n- Confirmed the cause of missed leadership checks due to ledger snapshots ([868](https://github.com/IntersectMBO/ouroboros-consensus/issues/868)).\\n- Derived principles for the versioning/declaration of queries, since Conway complicates it ([864](https://github.com/IntersectMBO/ouroboros-consensus/issues/864) and [866](https://github.com/IntersectMBO/ouroboros-consensus/issues/866)).\\n- Unblocked the Node Team in the work on rollback-insensitive leadership schedule queries ([4765](https://github.com/IntersectMBO/ouroboros-network/pull/4765)).\\n- Drafted the (Pre-Genesis) Bootstrap State Machine ([808](https://github.com/IntersectMBO/ouroboros-consensus/pull/808))."},{"id":"2024-01-10-ledger","metadata":{"permalink":"/2024-01-10-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-10-ledger.md","source":"@site/blog/2024-01-10-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2024-01-10T00:00:00.000Z","formattedDate":"January 10, 2024","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":3.005,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2024-01-10-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2024-01-10-consensus"},"nextItem":{"title":"Mithril Team Update","permalink":"/2024-01-10-mithril"}},"content":"## High level summary\\n\\nMajor Conway related development was the refactoring of how we distinguish Plutus\\nlanguage versions in every era, thus drasticly improving the type safety and getting us\\nmuch closer to PlutusV3 integration.\\n\\nThere has also been many bug fixes and improvements since the last update. Some important bug\\nfixes are:\\n\\n* missing `\\"protocolVersion\\"` field in JSON instance for Babbage and Conway protocol parameters\\n* requiring witnesses for DRep registration\\n* new committee governance action ratification was implemented incorrectly\\n* guard against invalid protocol versions in hard fork initiation proposals\\n* failures during updates of Plutus CostModels were not retained\\n* fixed the types for some protocol parameters in order to prevent values that are too large\\n* serialization and CDDL fixes\\n\\nA few useful features have been also implemented, like new ledger events, doubling the\\nlimit for Url length, consensus query, JSON instances and so on. It was also required\\nfor testing to implement a reliable transaction fee estimation function, which is now\\navailable not only for testing, but also for cardano-cli.\\n\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-3915] - Utilize `Inject` type class for `Val`\'s `inject`\\n* [pull-3899] - Bring Plutus language version to the type level\\n* [pull-3917] - Ensure DRepRegistration certificate requires a witness\\n* [pull-3921] - Fix committee validation in Ratify\\n* [pull-3935] - Fixed a bug in `Conway.Rules.Gov`\\n* [pull-3956] - Allow 128 byte Url and DnsNames for decoder version atleast 9.\\n* [pull-3954] - Fix how we update `CostModels`\\n* [pull-3947] - Change the type of some pparam fields to align with how they are represented in Consensus\\n* [pull-3951] - Conway genesis DRep injection\\n* [pull-3961] - Switch ContextError to an injective type family from a data family\\n* [pull-3963] - Abstract `getWitsVKeyNeeded`\\n* [pull-3933] - Improve cbor serialization of TxWits in Conway\\n* [pull-3971] - ToJson instances for context error\\n* [pull-3977] - Added `GetAccountStateQuery`\\n* [pull-3975] - Add policy hash protection to `TreasuryWithdrawals` and `ParameterChange`\\n\\n### Testing\\n\\n* [pull-3892] - Translate DRep expiry test from `ConwayFeatures` to Imp `GovSpec`\\n* [pull-3913] - Add certs to conformance testing\\n* [pull-3911] - Add a Preds to generate valid GovActionStates.\\n* [pull-3929] - Improve comment on `unit_interval` in cddl\\n* [pull-3950] - Use discard to avoid bad traces for fixOutput\\n* [pull-3935] - Add some Imp tests for HardForkInitiation.\\n* [pull-3964] - Ignore thunks in `utxosDeposited`\\n* [pull-3962] - Add `estimateMinFeeTx`\\n* [pull-3976] - Introduce accurate min fee calculation function: `calcMinFeeTx`\\n\\n### Improvements\\n\\n* [pull-3930] - Change type of `mintedTxBodyL` to `PolicyID`\\n* [pull-3924] - Split type classes out of eras Core module\\n* [pull-3934] - Type safety bugfixes\\n* [pull-3949] - Add FromJSON BabbagePParams instance\\n* [pull-3953] - Babbage / Conway PParams JSON serialization\\n* [pull-3946] - Epoch interval instances\\n* [pull-3932] - Add ledger event TxUTxODiff\\n* [pull-3969] - Add missing stake key deposit in formal spec\\n* [pull-3973] - Move functionality of Cardano.Ledger.Pretty to Test.Cardano.Ledger.Generic.PrettyCore\\n\\n### Releasing\\n\\n* [pull-3918] - Bump Plutus to 1.18\\n* [pull-3955] - Bump Plutus to 1.19\\n* [pull-3938] - chap: migrate to chap.intersectmbo.org\\n* [pull-3966] - Update cddl gem and dependencies\\n* [pull-3877] - Make it build with ghc-9.8\\n\\n[pull-3915]: https://github.com/IntersectMBO/cardano-ledger/pull/3915\\n[pull-3918]: https://github.com/IntersectMBO/cardano-ledger/pull/3918\\n[pull-3892]: https://github.com/IntersectMBO/cardano-ledger/pull/3892\\n[pull-3913]: https://github.com/IntersectMBO/cardano-ledger/pull/3913\\n[pull-3899]: https://github.com/IntersectMBO/cardano-ledger/pull/3899\\n[pull-3917]: https://github.com/IntersectMBO/cardano-ledger/pull/3917\\n[pull-3921]: https://github.com/IntersectMBO/cardano-ledger/pull/3921\\n[pull-3924]: https://github.com/IntersectMBO/cardano-ledger/pull/3924\\n[pull-3911]: https://github.com/IntersectMBO/cardano-ledger/pull/3911\\n[pull-3930]: https://github.com/IntersectMBO/cardano-ledger/pull/3930\\n[pull-3929]: https://github.com/IntersectMBO/cardano-ledger/pull/3929\\n[pull-3938]: https://github.com/IntersectMBO/cardano-ledger/pull/3938\\n[pull-3934]: https://github.com/IntersectMBO/cardano-ledger/pull/3934\\n[pull-3950]: https://github.com/IntersectMBO/cardano-ledger/pull/3950\\n[pull-3935]: https://github.com/IntersectMBO/cardano-ledger/pull/3935\\n[pull-3949]: https://github.com/IntersectMBO/cardano-ledger/pull/3949\\n[pull-3946]: https://github.com/IntersectMBO/cardano-ledger/pull/3946\\n[pull-3953]: https://github.com/IntersectMBO/cardano-ledger/pull/3953\\n[pull-3955]: https://github.com/IntersectMBO/cardano-ledger/pull/3955\\n[pull-3954]: https://github.com/IntersectMBO/cardano-ledger/pull/3954\\n[pull-3932]: https://github.com/IntersectMBO/cardano-ledger/pull/3932\\n[pull-3956]: https://github.com/IntersectMBO/cardano-ledger/pull/3956\\n[pull-3947]: https://github.com/IntersectMBO/cardano-ledger/pull/3947\\n[pull-3951]: https://github.com/IntersectMBO/cardano-ledger/pull/3951\\n[pull-3961]: https://github.com/IntersectMBO/cardano-ledger/pull/3961\\n[pull-3966]: https://github.com/IntersectMBO/cardano-ledger/pull/3966\\n[pull-3969]: https://github.com/IntersectMBO/cardano-ledger/pull/3969\\n[pull-3963]: https://github.com/IntersectMBO/cardano-ledger/pull/3963\\n[pull-3964]: https://github.com/IntersectMBO/cardano-ledger/pull/3964\\n[pull-3962]: https://github.com/IntersectMBO/cardano-ledger/pull/3962\\n[pull-3877]: https://github.com/IntersectMBO/cardano-ledger/pull/3877\\n[pull-3933]: https://github.com/IntersectMBO/cardano-ledger/pull/3933\\n[pull-3971]: https://github.com/IntersectMBO/cardano-ledger/pull/3971\\n[pull-3973]: https://github.com/IntersectMBO/cardano-ledger/pull/3973\\n[pull-3977]: https://github.com/IntersectMBO/cardano-ledger/pull/3977\\n[pull-3976]: https://github.com/IntersectMBO/cardano-ledger/pull/3976\\n[pull-3975]: https://github.com/IntersectMBO/cardano-ledger/pull/3975"},{"id":"2024-01-10-mithril","metadata":{"permalink":"/2024-01-10-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-10-mithril.md","source":"@site/blog/2024-01-10-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2024-01-10T00:00:00.000Z","formattedDate":"January 10, 2024","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.34,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2024-01-10-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2024-01-10-ledger"},"nextItem":{"title":"Network Team Update","permalink":"/2024-01-09-network"}},"content":"## High level overview\\n\\nThis week, the Mithril team worked on implementing the client in the explorer to enable direct verification of certificates from the browser. They also addressed the configuration issue in the signer node service, which occasionally resulted in signers not registering their keys after a restart. Additionally, the team kept implementing a mock aggregator to strengthen Mithril client tests in WASM, continued working on threat modeling and risk analysis for P2P networking, and progressed with the devnet upgrade to support the Conway era.\\n\\nFinally, they worked on enhancing node communications between Mithril and Cardano and completed the upgrade of the Cardano node topology used in the Mithril networks\' infrastructure.\\n\\n## Low level overview\\n- Published a development blog post [**Mithril signer service new configuration**](https://mithril.network/doc/dev-blog/2024/01/03/signer-service-new-configuration/)\\n- Completed the issue **Simplify Mithril client CLI download command** [#1406](https://github.com/input-output-hk/mithril/issues/1406)\\n- Completed the issue **Make all infra Cardano nodes use P2P topology** [#1405](https://github.com/input-output-hk/mithril/issues/1405)\\n- Completed the issue **Implement `ChainObserver` adapter configuration in aggregator** [#1396](https://github.com/input-output-hk/mithril/issues/1396)\\n- Completed the issue **Fix signer node service setup** [#1404](https://github.com/input-output-hk/mithril/issues/1404)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Worked on the issue **Implement a fake standalone aggregator** [#1397](https://github.com/input-output-hk/mithril/issues/1397)\\n- Worked on the issue **Implement the mithril client WASM package in the explorer** [#1409](https://github.com/input-output-hk/mithril/issues/1409)\\n- Worked on the issue **Light Wallet: Implement browser tests with fake aggregator** [#1407](https://github.com/input-output-hk/mithril/issues/1407)\\n- Worked on the issue **Activate `babbage`/`conway` eras on `devnet`** [#1425](https://github.com/input-output-hk/mithril/issues/1425)\\n- Worked on the issue **Upgrade Cardano node to `8.7.2`** [#1410](https://github.com/input-output-hk/mithril/issues/1410)\\n- Worked on the issue **Create a test network on `SanchoNet`** [#1173](https://github.com/input-output-hk/mithril/issues/1173)\\n- Worked on the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)"},{"id":"2024-01-09-network","metadata":{"permalink":"/2024-01-09-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-09-network.md","source":"@site/blog/2024-01-09-network.md","title":"Network Team Update","description":"High-level overview of sprint 52","date":"2024-01-09T00:00:00.000Z","formattedDate":"January 9, 2024","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.52,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2024-01-09-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2024-01-10-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2024-01-05-hydra"}},"content":"## High-level overview of [sprint 52][sprint-52]\\n\\nHappy New Year!\\n\\nIn this short sprint we analysed a failure which happened on a new large\\ncluster that\'s run by IOG. The process exhausted all file handles and was left\\nwithout any functional connections. The issues apparently is rare, and thus\\ndoesn\'t impose a high risk.\\n\\nWe also continued working on `tx-submission`: [ouroboros-network-3311].\\n\\n## Detailed description\\n\\nIt turned out that the process exhausted the number of file handles leaking\\nmultiple `/proc/{PID}/stat` files open. We suspect that the bug is caused by\\n\\n* using lazy IO in `iohk-monitoring-framework`, and\\n* using a recent kernel version\\n\\nWith lazy IO file handles are read as long as the data is required and they are\\nclosed only when `EOF` is reached. We currently suspect that a new linux kernel\\nadded something at the end of the `/proc/{PID}/stat` which is not parsed by\\n`iohk-monitoring-framework`, so whenever the file is read we leak it (it\'s\\nnever closed) and eventually, there are no file handles to be used by the\\nnetwork layer: the `accept` loop doesn\'t return any inbound connection, neither\\nan outbound connection can be created. This issue will be addressed by the\\nprofiling team (which owns the logging subsystem).\\n\\nThe fix will be proposed in the future release, in the meantime we suggest to\\nkeep observing file handles used by the node.\\n\\nI would like to thank John Lotoski (IOG), Karl Knutsson (CF), Neil Davies\\n(PNSol) and Michael Karg (IOG) who all contributed to this analysis.\\n\\nWhile analysing the log we also found a few smaller issues in the outbound\\ngovernor which were fixed in [ouroboros-network-#4764].\\n\\nThe IO error indicating exhausting file handles is not currently visible. It\\nis not re-thrown nor logged. This needs to be fixed in a future version. See\\n[ouroboros-network-4769].\\n\\n[sprint-52]: https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+52%22\\n[ouroboros-network-4764]: https://github.com/IntersectMBO/ouroboros-network/pull/4764\\n[ouroboros-network-4769]: https://github.com/IntersectMBO/ouroboros-network/issues/4769\\n[ouroboros-network-3311]: https://github.com/IntersectMBO/ouroboros-network/issues/3311"},{"id":"2024-01-05-hydra","metadata":{"permalink":"/2024-01-05-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-05-hydra.md","source":"@site/blog/2024-01-05-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2024-01-05T00:00:00.000Z","formattedDate":"January 5, 2024","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.93,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2024-01-05-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2024-01-09-network"},"nextItem":{"title":"SRE Team Update","permalink":"/2024-01-05-sre"}},"content":"### High-level summary\\n\\nIn between the end-of-year holidays, the Hydra team completed the implementation\\nof the Conway support feature, fixed a minor bug that was hindering tests from\\nrunning on MacOS, and addressed a regression in the protocol-parameter formats\\nused by the `hydra-node`. They also worked on off-chain code for incremental\\ndecommits, specifically focusing on transaction creation. Furthermore, they\\nconducted a spike on implementing a Chess game using Hydra, with an experience\\nreport provided.\\n\\n### What did the team achieve this week\\n\\n- Fixed a regression on protocol-parameter formats used by the `hydra-node` [#1226](https://github.com/input-output-hk/hydra/issues/1218)\\n- Fixed a minor bug prohibiting tests running on MacOS [#1218](https://github.com/input-output-hk/hydra/issues/1218)\\n- Complete conway support feature [#1227](https://github.com/input-output-hk/hydra/pull/1227)\\n- Transaction creation off-chain code for incremental decommits [#1218](https://github.com/input-output-hk/hydra/issues/1218)\\n- First spike on implementing a Chess game on Hydra [report](https://github.com/abailly/black-jack/blob/main/2023-experience-report.md), related to: [#1098](https://github.com/input-output-hk/hydra/issues/1098)\\n\\n### What are the goals of next week\\n\\n- Fully resolve protocol parameter misalignment [#1234](https://github.com/input-output-hk/hydra/issues/1234)\\n- Cut a release 0.15.0 to ship offline-mode and conway support\\n- Prepare demo for conway support\\n- Complete transaction creation and observation for incremental decommits\\n- Backend for a `hydra-explorer` that can track all heads on-chain"},{"id":"2024-01-05-sre","metadata":{"permalink":"/2024-01-05-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-05-sre.md","source":"@site/blog/2024-01-05-sre.md","title":"SRE Team Update","description":"High level summary","date":"2024-01-05T00:00:00.000Z","formattedDate":"January 5, 2024","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":0.34,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2024-01-05-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2024-01-05-hydra"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-12-30-node-cli-api"}},"content":"## High level summary\\n\\nDuring the lightly staffed holiday period for node SRE, the emphasis was on\\nmaintaining environment stability, tuning and resolving any noisey alerts.\\n\\nInvestigation into and testing around the following two topics also\\nstarted during this period:\\n\\n* Ledger snapshots causing a small number of missed slots for forgers on mainnet:\\n [ouroboros-consensus-issue-868](https://github.com/IntersectMBO/ouroboros-consensus/issues/868)\\n\\n* A cardano-node rare file descriptor leak, with a more detailed description\\n [here](2024-01-09-network.md)"},{"id":"2023-12-30-node-cli-api","metadata":{"permalink":"/2023-12-30-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-30-node-cli-api.md","source":"@site/blog/2023-12-30-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-12-30T00:00:00.000Z","formattedDate":"December 30, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":0.97,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-12-30-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2024-01-05-sre"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-12-22-hydra"}},"content":"# 2023-12-09 - 2023-12-30\\n\\n## High level summary\\n\\n- Migrated reposotiries to IntersectMBO.\\n- Improved era handling on cardano-api. Instead of enumerating every possible era, we use two constructors:\\n\'CurrentEra\' and \'UpcomingEra\'. This design simplifies the handling of eras, especially for `cardano-api` consumers who are primarily concerned with the current mainnet era and the next era for an upcoming hardfork.\\n- Cleaning-up the `cardano-cli`, in particular to the babbage era commands where some Conway options had spilled. \\n\\n### cardano-cli\\n\\n- [Use AnyShelleyBasedEra in ScriptWitnessErrorReferenceScriptsNotSupportedInEra](https://github.com/IntersectMBO/cardano-cli/pull/535)\\n- [[--output-format json|--output-format json] format becomes [--output-yaml|--output-json]](https://github.com/IntersectMBO/cardano-cli/pull/523)\\n- [governance vote view: use `--output-format`, like other commands, instead of `--yaml`](https://github.com/IntersectMBO/cardano-cli/pull/521)\\n- [fix: invalid options on cardano-cli babbage transaction build and build-raw](https://github.com/IntersectMBO/cardano-cli/pull/520)\\n- [legacy query: remove constitution-hash option](https://github.com/IntersectMBO/cardano-cli/pull/515)\\n- [Make `query pool-state` default to returning information on all pools](https://github.com/IntersectMBO/cardano-cli/pull/514)\\n\\n### cardano-api\\n\\n- [Expose CurrentEra and UpcomingEra pattern synonyms](https://github.com/IntersectMBO/cardano-api/pull/414)\\n- [update cname for github pages](https://github.com/IntersectMBO/cardano-api/pull/412)\\n- [Fix links killed by GitHub migration](https://github.com/IntersectMBO/cardano-api/pull/411)\\n- [Move renderSafeHashAsHex from cardano-node](https://github.com/IntersectMBO/cardano-api/pull/410)\\n- [Upgrade hedgehog extras](https://github.com/IntersectMBO/cardano-api/pull/409)\\n- [chap: migrate to chap.intersectmbo.org](https://github.com/IntersectMBO/cardano-api/pull/405)\\n- [Era handling](https://github.com/IntersectMBO/cardano-api/pull/402)\\n\\n### cardano-node\\n\\n- [chap: migrate to intersectmbo.org](https://github.com/IntersectMBO/cardano-node/pull/5581)\\n\\n### cardano-testnet\\n\\n- [cardano-testnet 8.7.2](https://github.com/IntersectMBO/cardano-node/pull/5583)\\n- [chap: migrate to intersectmbo.org](https://github.com/IntersectMBO/cardano-node/pull/5581)\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2023-12-22-hydra","metadata":{"permalink":"/2023-12-22-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-22-hydra.md","source":"@site/blog/2023-12-22-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-12-22T00:00:00.000Z","formattedDate":"December 22, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.78,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-12-22-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-12-30-node-cli-api"},"nextItem":{"title":"Network Team Update","permalink":"/2023-12-22-network"}},"content":"### High-level summary\\n\\nThis week, the Hydra team made significant progress, implementing an offline mode with associated refactoring. They enhanced user experience by detecting incompatible eras in `hydra-node`. Protocol changes were implemented for incremental decommits, addressing off-chain logic. Additionally, the team contributed fixes to `cardano-ledger` and coordinated with the Eternl team on enabling committing into a head from their wallet.\\n\\n### What did the team achieve this week\\n\\n- Offline mode implementation\\n [\\\\#1118](https://github.com/input-output-hk/hydra/pull/1118) and\\n refactoring\\n [\\\\#1222](https://github.com/input-output-hk/hydra/pull/1222)\\n- Detect incompatible era in `hydra-node` and provide better UX\\n [\\\\#1216](https://github.com/input-output-hk/hydra/issues/1216)\\n- Implemented protocol changes for incremental decommits (off-chain\\n logic) [\\\\#1057](https://github.com/input-output-hk/hydra/issues/1057)\\n- Contributed fixes to `cardano-ledger`\\n [\\\\#3949](https://github.com/IntersectMBO/cardano-ledger/pull/3949) and\\n [\\\\#3953](https://github.com/IntersectMBO/cardano-ledger/pull/3953)\\n- Synced up with the Eternl team on enabling committing into a head from\\n their wallet\\n\\n### What are the goals of next week\\n\\n- Maybe cut a release 0.15.0 to ship offline-mode and unsupported era UX\\n- Full conway support in hydra-node\\n- Transaction creation and observation for incremental decommits"},{"id":"2023-12-22-network","metadata":{"permalink":"/2023-12-22-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-22-network.md","source":"@site/blog/2023-12-22-network.md","title":"Network Team Update","description":"High-level overview of sprint 51","date":"2023-12-22T00:00:00.000Z","formattedDate":"December 22, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.97,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-12-22-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-12-22-hydra"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-12-22-sre"}},"content":"## High-level overview of [sprint 51][sprint-51]\\n\\n### Outbound Governor Bug in `cardano-node-8.7.2`\\n\\nIn the current sprint, we received a bunch of reports from SPOs about nodes not\\nmaintaining some connection when using `cardano-node-8.7.2` (running in P2P\\nmode). Such regressions are very important to us since they can lead to lost\\nblocks. We were able to reproduce this issue. Every time there\'s a longer\\npause of block production (due to the statistical nature of Ouroboros), there\\nis a chance that the bug will be armed. For this reason `cardano-node-8.7.2`\\nneeds to be closely monitored.\\n\\nWe found the bug and developed a fix, [ref][ouroboros-network#4748]. Karl\\nKntusson ([CF]) wasn\'t able to reproduce the bug with the patched version of\\nthe node for long enough (almost two weeks now) for us to belive that the fix\\nis correct. \\n\\n### Advise for SPOs\\n\\nWe created a [release branch for `8.7.3`][cardano-node-8.7.3]. The advice from\\nthe *network team* is to either downgrade to the previous release, e.g. `8.1.2`\\nor use the above release branch (note that there were no benchmarks made or Q&A\\ntests yet).\\n\\n### Testing plans\\n\\nWe were also able to reproduce the bug using `IOSim`, [ouroboros-network#4757].\\nHowever, the bug relies on a particular schedule of two threads which are\\ninvolved and we needed to artificailly modify `IOSim` schedule in production\\ncode - something that we don\'t want to commit to the `master` branch. We also\\nexperimented with a randomised scheduler for `IOSim`, but that did not lead to\\nfinding the schedule which arms the bug: the search space grows exponentially\\nwith the number of steps in the threads, partial order reduction techniques\\nimplemented in `IOSimPOR` are more appropriate - unfortunatelly the simulation\\ntest is too large to be executed in `IOSimPOR` even with large amounts of\\n`RAM`. To use `IOSimPOR` we need to implement a test which includes the two\\ninteracting components:\\n\\n* `connection-manager`\\n* `outbound-governor` (where the bug was located)\\n\\nwhich communicate through `PeerStateActions`, without including all the\\ndiffusion components as we do in our [sim-net] tests. More in style of\\n`outbound-governor` tests where there is just a single `outbound-governor`,\\nunlike in the [sim-net] which runs multiple communicating diffusions.\\n\\n### Bootstrap peers\\n\\nWe continued working on bootstrap peers, [ouroboros-network#4555]\\n\\n### TxSubmission Decision Logic\\n\\nWe continued working on tx-submission decision logic, [ouroboros-network#3311]\\n\\n\\n[CF]: https://cardanofoundation.org\\n[cardano-node-8.7.3]: https://github.com/IntersectMBO/cardano-node/tree/release/8.7 \\n[ouroboros-network#3311]: https://github.com/input-output-hk/ouroboros-network/pull/3311\\n[ouroboros-network#4555]: https://github.com/input-output-hk/ouroboros-network/pull/4555\\n[ouroboros-network#4748]: https://github.com/IntersectMBO/ouroboros-network/pull/4748\\n[ouroboros-network#4757]: https://github.com/IntersectMBO/ouroboros-network/pull/4757\\n[sim-net]: https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Testnet.hs\\n[sprint-51]: https://github.com/orgs/intersectmbo/projects/5/views/1?filterQuery=sprint%3A%22sprint+51%22"},{"id":"2023-12-22-sre","metadata":{"permalink":"/2023-12-22-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-22-sre.md","source":"@site/blog/2023-12-22-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-12-22T00:00:00.000Z","formattedDate":"December 22, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.305,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-12-22-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-12-22-network"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-12-20-mithril"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general environment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* A new repository was created which enables agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: [cardano-monitoring](https://github.com/input-output-hk/cardano-monitoring)\\n* The govtool backend swagger interface was nix flake packaged and deployed for Voltaire private chain testing usage\\n* Grafana cloud monitoring stacks were migrated to new EC2 cardano-monitoring servers\\n* Cardano-db-sync state snapshots now support client range requests, details [here](https://github.com/IntersectMBO/cardano-db-sync/issues/1552)\\n* In addition to monitoring server centralized grafana metrics, sysstat collected system metrics are now available locally on all cluster machines at high time resolution\\n* Code changes required due to repository migrations to IntersectMBO have largely been completed\\n\\n## Lower level summary\\n\\n### Auth-keys-hub\\n* Add extra nixos module assertions and warnings to address edge cases: [auth-keys-hub-pull-6](https://github.com/input-output-hk/auth-keys-hub/pull/6)\\n\\n### Cardano-monitoring\\n* A new repository enabling agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: [cardano-monitoring](https://github.com/input-output-hk/cardano-monitoring)\\n\\n### Cardano-parts\\n* Migrate from grafana cloud monitoring to ec2 monitoring, add resource tagging support, declarative route53 CNAME list, and additional improvements and fixes: [cardano-parts-pull-25](https://github.com/input-output-hk/cardano-parts/pull/25)\\n* Improve ssh key handling and edge cases, resolve misc issues, add IOPS and throughput gp3 openTofu support: [cardano-parts-pull-26](https://github.com/input-output-hk/cardano-parts/pull/26)\\n\\n### Cardano-playground\\n* Migrate from grafana cloud monitoring to ec2 monitoring, add resource tagging support, declarative route53 CNAME list, and additional improvements and fixes: [cardano-playground-pull-10](https://github.com/input-output-hk/cardano-playground/pull/10)\\n* Update auth-keys-hub config to address edge cases: [cardano-playground-pull-11](https://github.com/input-output-hk/cardano-playground/pull/11)\\n* Add a voltaire govtool backend swagger UI for private chain, misc fixes and updates: [cardano-playground-pull-12](https://github.com/input-output-hk/cardano-playground/pull/12)"},{"id":"2023-12-20-mithril","metadata":{"permalink":"/2023-12-20-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-20-mithril.md","source":"@site/blog/2023-12-20-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-12-20T00:00:00.000Z","formattedDate":"December 20, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.17,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-12-20-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-12-22-sre"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-12-15-hydra"}},"content":"## High level overview\\n\\nThis week, the Mithril team completed aggregator optimizations, enabling the certification of new data types without introducing a new era. They also facilitated the selection of these data types through a simple configuration parameter. Additionally, the team started implementing a mock aggregator to strengthen Mithril client tests in WASM, kept working on threat modeling and risk analysis for P2P networking, and progressed with the implementation of a testing Mithril network for SanchoNet.\\n\\nFinally, they worked on some optimizations and refactoring of the Mithril client CLI and started upgrading the Cardano node topology used in the Mithril networks\' infrastructure.\\n\\n## Low level overview\\n- Completed the issue **Implement `open_message` timeout in aggregator** [#1387](https://github.com/input-output-hk/mithril/issues/1387)\\n- Completed the issue **Implement configurable signed entity types in aggregator** [#1388](https://github.com/input-output-hk/mithril/issues/1388)\\n- Completed the issue **Enhance machine readable logs in client** [#1234](https://github.com/input-output-hk/mithril/issues/1234)\\n- Completed the issue **Manual publication to `npm` registry with GitHub action** [#1411](https://github.com/input-output-hk/mithril/issues/1411)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Worked on the issue **Create a test network on `SanchoNet`** [#1173](https://github.com/input-output-hk/mithril/issues/1173)\\n- Worked on the issue **Implement a fake standalone aggregator** [#1397](https://github.com/input-output-hk/mithril/issues/1397)\\n- Worked on the issue **Simplify Mithril client CLI download command** [#1406](https://github.com/input-output-hk/mithril/issues/1406)\\n- Worked on the issue **Make all infra Cardano nodes use P2P topology** [#1405](https://github.com/input-output-hk/mithril/issues/1405)\\n- Worked on the issue **Upgrade Cardano node to `8.7.2`** [#1410](https://github.com/input-output-hk/mithril/issues/1410)\\n- Worked on the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)"},{"id":"2023-12-15-hydra","metadata":{"permalink":"/2023-12-15-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-15-hydra.md","source":"@site/blog/2023-12-15-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-12-15T00:00:00.000Z","formattedDate":"December 15, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.96,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-12-15-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-12-20-mithril"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-12-13-mithril"}},"content":"### High-level summary\\n\\nThis week, the Hydra team identified and resolved issues with a malfunctioning\\nhead on mainnet, implementing preventive measures. They edited and merged a new\\nArchitectural Decision Record (ADR) proposed by SundaeLabs, upgraded\\ncardano-node to version 8.7.2, and improved the TUI user experience.\\nPreparations for \\"Conway support\\" were initiated, and updates were made to logs\\nand API schemas. Additionally, initial steps were taken towards incremental\\ndecommits.\\n\\n### What did the team achieve this week\\n\\n- Troubleshoot and recover a broken head on mainnet. Opened issue\\n [\\\\#1202](https://github.com/input-output-hk/hydra/issues/1202) and PR\\n avoiding this in-flight\\n [\\\\#1211](https://github.com/input-output-hk/hydra/pull/1211)\\n- Designed and proposed a new ADR to generalize `EventSource` and\\n `EventSinks`\\n [\\\\#1157](https://github.com/input-output-hk/hydra/pull/1157),\\n contributed by SundaeLabs.\\n- Upgrade cardano-node to 8.7.2\\n [\\\\#1199](https://github.com/input-output-hk/hydra/pull/1199) and\\n re-enables e2e nix-shell support on Darwin\\n [\\\\#1203](https://github.com/input-output-hk/hydra/pull/1203)\\n- UX enhancement on TUI\\n [\\\\#1201](https://github.com/input-output-hk/hydra/pull/1201)\\n- Preparations for \\"Conway support\\"\\n [\\\\#1177](https://github.com/input-output-hk/hydra/issues/1177)\\n \\\\[[\\\\#1206](https://github.com/input-output-hk/hydra/pull/1206) &\\n [\\\\#1207](https://github.com/input-output-hk/hydra/pull/1207)\\\\]\\n- Update logs and api schemas\\n [\\\\#1212](https://github.com/input-output-hk/hydra/pull/1212)\\n- First steps on incremental decommits\\n [\\\\#1057](https://github.com/input-output-hk/hydra/issues/1057):\\n - Drafted the e2e workflow\\n [\\\\#1205](https://github.com/input-output-hk/hydra/issues/1205)\\n - Added decommit API endpoints\\n [\\\\#1209](https://github.com/input-output-hk/hydra/issues/1209)\\n\\n### What are the goals of next week\\n\\n- Detect incompatible blocks and provide better UX\\n- Conway support in hydra-node\\n- Off-chain logic for incremental decommits"},{"id":"2023-12-13-mithril","metadata":{"permalink":"/2023-12-13-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-13-mithril.md","source":"@site/blog/2023-12-13-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-12-13T00:00:00.000Z","formattedDate":"December 13, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.095,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-12-13-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-12-15-hydra"},"nextItem":{"title":"Performance & Tracing Update","permalink":"/2023-12-11-performance-and-tracing"}},"content":"## High level overview\\n\\nThis week, the Mithril team completed the adaptation of the Mithril client library for WASM compilation, providing a JavaScript API for it. They also completed the proof of concept to demonstrate that a subset of Cardano transactions is part of the entire transactions set. The refactoring of the Mithril client CLI with the Mithril client library was also finalized. Additionally, the team kept working on the threat modeling and risk analysis for P2P networking, along with progressing in the implementation of a testing Mithril network for SanchoNet.\\n\\nFinally, they started implementing an expiration mechanism for the open messages in the aggregator, and they completed the upgrade of Rust dependencies with breaking changes.\\n\\n## Low level overview\\n- Completed the issue **Light Wallet: Implement `mithril-client` WASM library** [#1336](https://github.com/input-output-hk/mithril/issues/1336)\\n- Completed the issue **Light Wallet: Certify Cardano UTXO/transactions set PoC** [#1393](https://github.com/input-output-hk/mithril/issues/1393)\\n- Completed the issue **Refactor `mithril-client-cli` with `mithril-client` library** [#1335](https://github.com/input-output-hk/mithril/issues/1335)\\n- Worked on the issue **Implement `open_message` timeout in aggregator** [#1387](https://github.com/input-output-hk/mithril/issues/1387)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Worked on the issue **Enhance machine readable logs in client** [#1234](https://github.com/input-output-hk/mithril/issues/1234)\\n- Worked on the issue **Create a test network on `SanchoNet`** [#1173](https://github.com/input-output-hk/mithril/issues/1173)\\n- Completed the issue **Upgrade breaking changes crates** [#1357](https://github.com/input-output-hk/mithril/issues/1357)\\n- Worked on the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)"},{"id":"2023-12-11-performance-and-tracing","metadata":{"permalink":"/2023-12-11-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-11-performance-and-tracing.md","source":"@site/blog/2023-12-11-performance-and-tracing.md","title":"Performance & Tracing Update","description":"High level summary","date":"2023-12-11T00:00:00.000Z","formattedDate":"December 11, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":3.39,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & Tracing Update","slug":"2023-12-11-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-12-13-mithril"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-12-08-goedel"}},"content":"## High level summary\\n\\n* Benchmarking: Release benchmarking for node `8.7.2`, as well as P2P benchmarks - the latter being a premiere for the Nomad cluster.\\n* Development: Work on automating the submission of Conway transactions for registration of and stake delegation to `DRep`s is ongoing.\\n* Infrastructure: We\'re preparing to safely retire our current benchmarking cluster.\\n* Tracing: The documentation for the new tracing system is being reworked. Additionally, we\'ve added a feature to `cardano-tracer` to capture performance over a long runtime.\\n* Nomad cluster: The Nomad backend has been successfully equipped with support for up-to-date P2P topology, as well as deployment for Plutus script data.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nWe\'ve performed a full set of release benchmarks for node `8.7.2`. From a performance perspective, it has been greenlit for mainnet release. Starting with this version, our team will publish observations alongside the original comparative analysis of benchmarks, providing insight into key metrics and resource usage. Hence, for the post on version `8.7.2`, see [here](/reports/2023-12-performance-8.7.2).\\n\\nAdditionally, we\'re running P2P versus no-P2P benchmarks on the same version. We intend to establish future baseline runs using P2P topology as the default setting. All our cluster nodes being block producers, it is crucial to establish the P2P stack does not exhibit any regression regarding block forging. Furthermore, the evidence gathered from those benchmarks forms the base for a recommended setting for P2P on mainnet block producers. \\n\\nIt deserves special mention that those P2P benchmarks are our first production runs with the Nomad cluster - and using the new tracing system exclusively. Having finalized all optimization rounds of the latter, and having meticulously eliminated all confounding factors from the Nomad infrastructure, we\'re confident in the measurements being subject to extremely low variance - which we made sure of in many past validation runs on Nomad.\\n\\n### Development\\n\\n\\nOrchestrating `DRep` actions into benchmarking workflows has opened up a fairly large design space. Currently, we\'re focusing on having stake delegated to `DRep`s, in order to trigger ledger pulses for calculations particular to `DRep` actions. We can benchmark a possible\\nperformance impact of those pulses - even if there are no actions ongoing - as a first step. \\n\\nThe contributing factors to the cost of those pulses are both the number of `DRep`s registered, and the number of delegations to them. It is still under debate which values represent a probable model for mainnet, and whether we can achieve stake delegation programmatically (i.e. by submitting transactions), or if, for large numbers, we need means to inject those delegations into genesis.\\n\\n### Infrastructure\\n\\nWith the switch of all production benchmarks to the Nomad cluster, we will retire the legacy `cardano-ops` cluster very shortly. Currently, we\'re making sure that when all its resources are released, we keep an archive for all runs performed, including all raw log data - with the oldest runs dating back as far as December 2019.\\n\\n### Tracing\\n\\nWe\'ve outfitted the `cardano-tracer` service with the same kind of resource tracing machinery that\'s used by `cardano-node` - as well as created a dedicated benchmarking profile for it. It puts very little pressure on the node; instead it causes 6 nodes to emit traces at a rate of >35 messages per second, putting pressure on `cardano-tracer` via trace forwarding at >200 messages per second for an extended period of time. Analysis of these traces will form the ground for various optimizations of `cardano-tracer` that are currently being worked on. \\n\\nAs we aim for early 2024 to be able to recommend the new tracing system as default in production use, we\'re currently also reworking the comprehensive documentation to reflect all changes made over the last months.\\n\\n### Nomad backend\\n\\nIn addition to being able to deploy Plutus script data and redeemers seperately (instead of inlining them as the legacy cluster did), the Nomad cluster now supports being set up with recent P2P topology. No-P2P topology format will still be supported\\nfor occasional regression benchmarking of the P2P stack, when desired. Furthermore, we\'ve completed porting all benchmarking profiles from the legacy cluster to Nomad."},{"id":"2023-12-08-goedel","metadata":{"permalink":"/2023-12-08-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08-goedel.md","source":"@site/blog/2023-12-08-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-12-08T00:00:00.000Z","formattedDate":"December 8, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.385,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-12-08-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Update","permalink":"/2023-12-11-performance-and-tracing"},"nextItem":{"title":"Network Team Update","permalink":"/2023-12-08-network"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThe team is currently formalising mini protocols, working on a\\nperformance modelling paper and working on a performance modelling\\nprototype tool\\n\\n## Details\\n\\n* completing work on chain sync mini-protocol\\n\\n* proof sketch of conformance property of chain sync mini-protocol\\n\\n* new content for JLAMP paper\\n\\n* NWPT talk"},{"id":"2023-12-08-network","metadata":{"permalink":"/2023-12-08-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08-network.md","source":"@site/blog/2023-12-08-network.md","title":"Network Team Update","description":"High-level overview of sprint 49 & sprint 50","date":"2023-12-08T00:00:00.000Z","formattedDate":"December 8, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":2.445,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-12-08-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-12-08-goedel"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-12-08-node-cli-api"}},"content":"## High-level overview of [sprint 49][sprint-49] & [sprint 50][sprint-50]\\n\\n### Fixed PeerSelection bug\\n\\nKarl Knutsson ([Cardano Foundation (CF)][CF]) found a bug in\\nthe `cardano-node-8.7.0` version used on the Sancho Net which was fixed in `8.7.1`.\\nIt resulted in a node not being able to reconnect to an upstream peer once it\\nwas demoted by an asynchronous exception. This bug would be caught by Q&A in\\na mainet release, but for testnet releases, Q&A test suite is not used. We also\\ndeveloped a test which covers the bug in the `ouroboros-network`, we also identified\\na missing `PeerSelection` test which we need to port to our simulation network.\\nSee [ouroboros-network#4734], [ouroboros-network#4665].\\n\\n### Bootstrap Peers\\n\\nStill under review, [ouroboros-network#4555]. The consensus team is now\\nimplementing the API we need for bootstrap peers. Once consensus API is implemented we will integrate changes in an experimental branch of\\n`cardano-node`.\\n\\n### Tx-Submission\\n\\nWe started working on a new implementation of the tx-submission application. No\\n`tx-submission` protocol changes are foreseen, but we want to be able to\\ndownload each `tx` from just one upstream peer and share the results between\\ndifferent connections. We want to distribute the bandwidth between multiple\\nclients. We also think that this work will prepare us for the future\\nOuroboros-Leios changes, which will contain various versions of `tx-submission`\\nlike mini-protocols. See [ouroboros-network#4701].\\n\\n## Peer Sharing\\n\\nVarious fixes and improvements were implemented:\\n\\n* [ouroboros-network#4725]\\n * disabled peer sharing with initiator-only nodes: currently it\'s not\\n possible to get peers from initiator-only nodes (edge nodes, e.g.\\n wallets). In the future, we might change this, which will require running\\n a server-side of the `peer-sharing` protocol by such nodes. See\\n [ouroboros-network#4726].\\n * fixed `peer-sharing` codec\\n * fixed a handshake bug which returned a wrong peer-sharing option\\n* [ouroboros-network#4728]\\n * disabled `peer-sharing` for `NodeToNodeV_11` and `NodeToNodeV_12`\\n\\n* Karl Knutsson ([CF]) has been working on additional improvements, e.g. [ouroboros-network#4735]\\n\\nWith these fixes, Karl Knutsson ([CF]) was able to see that two peers on the mainnet\\ncan discover themselves through `peer-sharing` and keep being mutually useful\\nand thus the connection surviving `outbound-governor` churn events.\\n\\n### IOSim\\n\\nWe improved the memory footprint of `IOSim` in [io-sim#126], see\\n[ouroboros-network#4721] for heap profile improvements on large test cases.\\n\\nWe are working on optimising the memory footprint of `IOSimPOR`. We are\\nreimplementing `VectorClocks` using a trie, instead of a map which leads to\\nsignificant improvements.\\n\\n### Cardano-Ping\\n\\n`cardano-node-0.2.0.10` was released to `CHaP`, [ouroboros-network#4746]. This\\nversion exports more APIs which turned out to be useful in `cardano-node` test\\nsuite, see [cardano-node#5536].\\n\\n### Technical Debt\\n\\nWe addressed some small tech-debt issues in [ouroboros-network#4722]:\\n* fixed some typos\\n* using `bracket` instead of `onException` in `withSnocket`\\n* improved haddocks\\n* organised `TracePeerSelection` constructors\\n\\nWe improved the memory footprint of some of our tests in [ouroboros-network#4721].\\n\\n[CF]: https://cardanofoundation.org\\n[cardano-node#5536]: https://github.com/input-output-hk/cardano-node/pull/5536\\n[io-sim#126]: https://github.com/input-output-hk/io-sim/pull/126\\n[ouroboros-network#4555]: https://github.com/input-output-hk/ouroboros-network/pull/4555\\n[ouroboros-network#4665]: https://github.com/input-output-hk/ouroboros-network/issues/4665\\n[ouroboros-network#4701]: https://github.com/input-output-hk/ouroboros-network/pull/4701\\n[ouroboros-network#4721]: https://github.com/input-output-hk/ouroboros-network/pull/4722\\n[ouroboros-network#4722]: https://github.com/input-output-hk/ouroboros-network/pull/4722\\n[ouroboros-network#4725]: https://github.com/input-output-hk/ouroboros-network/pull/4725\\n[ouroboros-network#4726]: https://github.com/input-output-hk/ouroboros-network/issues/4726\\n[ouroboros-network#4728]: https://github.com/input-output-hk/ouroboros-network/pull/4728\\n[ouroboros-network#4734]: https://github.com/input-output-hk/ouroboros-network/pull/4734\\n[ouroboros-network#4735]: https://github.com/input-output-hk/ouroboros-network/pull/4735\\n[ouroboros-network#4746]: https://github.com/input-output-hk/ouroboros-network/pull/4746\\n[sprint-49]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+49%22\\n[sprint-50]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+50%22"},{"id":"2023-12-08-node-cli-api","metadata":{"permalink":"/2023-12-08-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08-node-cli-api.md","source":"@site/blog/2023-12-08-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-12-08T00:00:00.000Z","formattedDate":"December 8, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":2.2,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-12-08-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-12-08-network"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-12-08-sre"}},"content":"# 2023-11-15 - 2023-12-08\\n\\n## High level summary\\n\\nThis is sprint was mostly about bug fixing, code clean-ups and optimizations in preparation for a mainnet suitable release.\\n\\n### cardano-cli\\n\\n- [Unify previous governance action parameters across actions](https://github.com/input-output-hk/cardano-cli/pull/511)\\n- [Release 8.17.0.0](https://github.com/input-output-hk/cardano-cli/pull/510)\\n- [ Restore the inclusion of datum hashes in Alonzo era tx bodies](https://github.com/input-output-hk/cardano-cli/pull/507)\\n- [create-staked: add test](https://github.com/input-output-hk/cardano-cli/pull/498)\\n- [create-staked: simplify some code](https://github.com/input-output-hk/cardano-cli/pull/497)\\n- [Remove unused cabal file code](https://github.com/input-output-hk/cardano-cli/pull/495)\\n- [New version cardano-cli-8.16.0.1](https://github.com/input-output-hk/cardano-cli/pull/491)\\n- [Fix era mismatch error in stake-address-info](https://github.com/input-output-hk/cardano-cli/pull/490)\\n- [Release 8.16.0](https://github.com/input-output-hk/cardano-cli/pull/489)\\n- [Add create-testnet-data command](https://github.com/input-output-hk/cardano-cli/pull/488)\\n- [Rename stake-address-info field: stakeDelegation -> delegation for eras prior to Conway](https://github.com/input-output-hk/cardano-cli/pull/487)\\n- [Update the `--key-output-format` help text: default is text-envelope](https://github.com/input-output-hk/cardano-cli/pull/486)\\n- [Complete help texts for `create-protocol-parameters-update`](https://github.com/input-output-hk/cardano-cli/pull/484)\\n- [Fix using queryStakeVoteDelegatees in eras before conway](https://github.com/input-output-hk/cardano-cli/pull/483)\\n- [Use node queries with tighter eons. Simplify prettyprinting.](https://github.com/input-output-hk/cardano-cli/pull/481)\\n- [Add support for Plutus V3 in command line interface](https://github.com/input-output-hk/cardano-cli/pull/479)\\n- [Remove Byron Tx](https://github.com/input-output-hk/cardano-cli/pull/478)\\n- [Use `selectStakeCredentialWitness` instead of duplicating credential selection](https://github.com/input-output-hk/cardano-cli/pull/476)\\n- [Revert \\"query protocol parameters: use ledger instances\\"](https://github.com/input-output-hk/cardano-cli/pull/475)\\n- [governance action: prefix stake-verification-key/stake-key arguments with --deposit-return](https://github.com/input-output-hk/cardano-cli/pull/470)\\n- [Fix NodeEraMismatchError mismatch](https://github.com/input-output-hk/cardano-cli/pull/469)\\n- [Byron isolation 2 of n](https://github.com/input-output-hk/cardano-cli/pull/467)\\n- [Fix description of `vote-delegation-certificate` command](https://github.com/input-output-hk/cardano-cli/pull/466)\\n- [New version `cardano-cli-8.15.0.0`](https://github.com/input-output-hk/cardano-cli/pull/464)\\n- [Integration work for Node 8.7.0](https://github.com/input-output-hk/cardano-cli/pull/463)\\n- [Align create-constitution anchor flags with other anchor flags](https://github.com/input-output-hk/cardano-cli/pull/460)\\n- [conway governance hash: add option to write hash to file (--out-file)](https://github.com/input-output-hk/cardano-cli/pull/459)\\n- [Update pCmds to take `ShelleyBasedEra era` instead of `Cardano era`](https://github.com/input-output-hk/cardano-cli/pull/458)\\n- [Add one missing extended to non extended golden tests](https://github.com/input-output-hk/cardano-cli/pull/457)\\n- [Correct conway parser, so that --key-reg-deposit-amt is mandatory](https://github.com/input-output-hk/cardano-cli/pull/456)\\n\\n### cardano-api\\n\\n- [Release 8.36.1.1](https://github.com/input-output-hk/cardano-api/pull/399)\\n- [Restore the inclusion of datum hashes in Alonzo era tx bodies](https://github.com/input-output-hk/cardano-api/pull/398)\\n- [New version cardano-api-8.36.1.0](https://github.com/input-output-hk/cardano-api/pull/396)\\n- [Expose AnyProposals and AnyRatificationState](https://github.com/input-output-hk/cardano-api/pull/395)\\n- [New version `cardano-api-8.36.0.0`](https://github.com/input-output-hk/cardano-api/pull/394)\\n- [New `ToJSON` instance for `TxValidationErrorInCardanoMode`](https://github.com/input-output-hk/cardano-api/pull/393)\\n- [Update to latest consensus release](https://github.com/input-output-hk/cardano-api/pull/392)\\n- [Fix generated textEnvelope type on registering a Stake Address Registration Certificate](https://github.com/input-output-hk/cardano-api/pull/390)\\n- [New version `cardano-api-8.35.0.0`](https://github.com/input-output-hk/cardano-api/pull/389)\\n- [Expose NewGovernanceProposals and EpochBoundaryRatificationState ledger events](https://github.com/input-output-hk/cardano-api/pull/388)\\n- [Remove renderEra. Rename prettyTo* to docTo* functions](https://github.com/input-output-hk/cardano-api/pull/387)\\n- [Guard queries with their respective eras](https://github.com/input-output-hk/cardano-api/pull/386)\\n- [Release 8.34.1](https://github.com/input-output-hk/cardano-api/pull/385)\\n- [Expose `stakeCredentialWitness` function, which returns only stake credentials for the certificates requiring witnessing: delegation and deregistration](https://github.com/input-output-hk/cardano-api/pull/383)\\n- [Remove ByronTx](https://github.com/input-output-hk/cardano-api/pull/382)\\n- [New version `cardano-api-8.34.0.0`](https://github.com/input-output-hk/cardano-api/pull/381)\\n- [`ToJSON` instance for `TxValidationError`](https://github.com/input-output-hk/cardano-api/pull/379)\\n- [Parameterize `createAndValidateTransactionBody` on `ShelleyBasedEra era`](https://github.com/input-output-hk/cardano-api/pull/378)\\n- [New version `cardano-api-8.33.0.0`](https://github.com/input-output-hk/cardano-api/pull/377)\\n- [Minor `prettyprinter` fixes](https://github.com/input-output-hk/cardano-api/pull/375)\\n- [Export `AllegraEraOnwards`](https://github.com/input-output-hk/cardano-api/pull/374)\\n- [New version `cardano-api-8.32.0.0`](https://github.com/input-output-hk/cardano-api/pull/371)\\n- [Use `Pretty` for rendering errors instead of `Show`](https://github.com/input-output-hk/cardano-api/pull/370)\\n\\n### cardano-node\\n\\n- [Bump CHaP](https://github.com/input-output-hk/cardano-node/pull/5566)\\n- [Allow text-1](https://github.com/input-output-hk/cardano-node/pull/5562)\\n- [Release cardano-node 8.7.1](https://github.com/input-output-hk/cardano-node/pull/5560)\\n- [Bump CHaP](https://github.com/input-output-hk/cardano-node/pull/5557)\\n- [Forcefully disable PeerSharing if InitiatorMode is used](https://github.com/input-output-hk/cardano-node/pull/5551)\\n- [Optimize new tracing further](https://github.com/input-output-hk/cardano-node/pull/5541)\\n\\n### cardano-testnet\\n\\n- [Bump CHaP](https://github.com/input-output-hk/cardano-node/pull/5566)\\n- [Transaction submission test via `cardano-submit-api`](https://github.com/input-output-hk/cardano-node/pull/5558)\\n- [Bump CHaP](https://github.com/input-output-hk/cardano-node/pull/5557)\\n- [Transaction integration test](https://github.com/input-output-hk/cardano-node/pull/5552)\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2023-12-08-sre","metadata":{"permalink":"/2023-12-08-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08-sre.md","source":"@site/blog/2023-12-08-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-12-08T00:00:00.000Z","formattedDate":"December 8, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.27,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-12-08-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-12-08-node-cli-api"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-12-08-hydra"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general environment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Sanchonet was respun to cardano-node `8.7.0-pre`, and upgraded to cardano-node `8.7.1-pre` shortly afterwards\\n* Cardano-node [8.7.2](https://github.com/input-output-hk/cardano-node/releases/tag/8.7.2) was released and all environments were then upgraded to 8.7.2\\n* Cardano-parts deployed machines were upgraded to nixpkgs 23.11 and nix 2.19.3\\n* Cardano-parts resource deployed environments were switched from the use of Terraform to [OpenTofu](https://opentofu.org/)\\n\\n## Lower level summary\\n\\n### Capkgs\\n* Updated for cardano-node 8.7.2 and process-compose packages: [capkgs-compare](https://github.com/input-output-hk/capkgs/compare/3ce364f...7649113)\\n\\n### Cardano-parts\\n* Update scripts for 8.6.0-pre: [cardano-parts-pull-21](https://github.com/input-output-hk/cardano-parts/pull/21)\\n* Sanchonet respin with additional lib refactor and postgres prepared statement update: [cardano-parts-pull-22](https://github.com/input-output-hk/cardano-parts/pull/22)\\n* Nixpkgs 23.11 update with migration from Terraform to OpenTofu: [cardano-parts-pull-23](https://github.com/input-output-hk/cardano-parts/pull/23)\\n* Node 8.7.2 release update and process-compose flakeModule addition: [cardano-parts-pull-24](https://github.com/input-output-hk/cardano-parts/pull/24)\\n\\n### Cardano-ops\\n* Mainnet high load relays were updated to cardano-node 8.7.2 [cardano-ops-compare](https://github.com/input-output-hk/cardano-ops/compare/739287a...a5432fc)\\n\\n### Cardano-playground\\n* Sancho respin plus related book updates and network debug reference code: [cardano-playground-pull-7](https://github.com/input-output-hk/cardano-playground/pull/7)\\n* Nixpkgs 23.11 update with required module changes, lint updates and tofu utilization.: [cardano-playground-pull-8](https://github.com/input-output-hk/cardano-playground/pull/8)\\n* Node 8.7.2 release and process-compose addition, misc fixes: [cardano-playground-pull-9](https://github.com/input-output-hk/cardano-playground/pull/9)\\n\\n### Cardano-world\\n* Sanchonet update PR: [cardano-world-pull-111](https://github.com/input-output-hk/cardano-world/pull/111)\\n * Merge the long running sanchonet-updated branch\\n * Migrate explorers from ziti to wireguard tunnel usage\\n * Remove remaining ziti code and provisioned resources\\n * Retire remaining nomad jobs in preference of the cardano-playground environments\\n * Downsize the cluster in preference of the cardano-playground environments\\n\\n### Iohk-nix\\n* Update mainnet p2p config: [iohk-nix-pull-566](https://github.com/input-output-hk/iohk-nix/pull/566)\\n* Update mainnet default mempool tracing: [iohk-nix-pull-567](https://github.com/input-output-hk/iohk-nix/pull/567)"},{"id":"2023-12-08-hydra","metadata":{"permalink":"/2023-12-08-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08.md","source":"@site/blog/2023-12-08.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-12-08T00:00:00.000Z","formattedDate":"December 8, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.75,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-12-08-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-12-08-sre"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-12-06-ledger"}},"content":"### High-level summary\\n\\nThis week, the Hydra team made progress by releasing version\\n[0.14.0](https://github.com/input-output-hk/hydra/releases/tag/0.14.0),\\nincorporating updates and improvements. They also updated dependencies\\nin preparation for Conway support, addressing\\n[\\\\#1114](https://github.com/input-output-hk/hydra/issues/1114).\\nAdditionally, the team completed substantial refactoring in hydra-node\\nusing stateless observation, aiming to enhance system efficiency and\\nperformance\\n[\\\\#1096](https://github.com/input-output-hk/hydra/issues/1096). Lastly,\\nthey investigated regressions related to JSON serialized transactions\\nand consider dropping this in favor of CBOR only submission.\\n\\n### What did the team achieve this week\\n\\n- Released version\\n [0.14.0](https://github.com/input-output-hk/hydra/releases/tag/0.14.0)\\n- Updated dependencies to prepare for Conway support\\n [\\\\#1114](https://github.com/input-output-hk/hydra/issues/1114)\\n- Completed substantial refactoring in hydra-node using stateless\\n observation\\n [\\\\#1096](https://github.com/input-output-hk/hydra/issues/1096)\\n- Investigated regressions about JSON serialized transactions\\n\\n### What are the goals of next week\\n\\n- Analysed our mainnet head and why some transactions were invalid\\n- Detect incompatible blocks and provide better UX\\n- Update to newer cardano-node and Conway support in hydra-node\\n- Draft the end-to-end workflow for incremental decommits"},{"id":"2023-12-06-ledger","metadata":{"permalink":"/2023-12-06-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-06-ledger.md","source":"@site/blog/2023-12-06-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-12-06T00:00:00.000Z","formattedDate":"December 6, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.53,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-12-06-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-12-08-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-12-06-mithril"}},"content":"## High level summary\\n\\nThis period we reached a major milestone, namely we now have an initial version of Conway\\nconformance testing working. We are now able to generate random valid data with the help\\nof constraint based testing framework, apply that data to Conway Ledger rules and verify\\nthat the output matches to the one produced by the executable version of the Formal Ledger\\nSpecification, when it is applied to the same random data.\\n\\nWe also had a couple of Conway bugs fixed and a few new predicate check implemented. Get\\nConstitutional Committee query is complete and tested. Various improvements to the\\ntesting tools. Addition of more test cases.\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-3888] - Add checks for valid ProtVer when a proposal is a HardFork\\n* [pull-3902] - Fix pvCanFollow usage in Conway and improve clarity in Shelley\\n* [pull-3855] - Remove unreachable proposals\\n* [pull-3903] - Add lenient decoder for `Addr`\\n* [pull-3878] - Committee query - implement next epoch change\\n\\n### Testing\\n\\n* [pull-3893] - Move `tree-diff` dependency to tests together with all instances\\n* [pull-3896] - Fix Brute force failure\\n* [pull-3904] - New ListWhere Pred added to the Constrained Solver.\\n* [pull-3907] - cardano-ledger-conformance: Remove CHANGELOG.md from cabal file\\n* [pull-3883] - Committee QuerySpec Imp Test\\n* [pull-3909] - Make `impAnn` a bit more useful, by making the logs scoped by `impAnn`\\n* [pull-3908] - Use upstream testing instances for very basic types\\n* [pull-3912] - Removed call to tail, and the 'watchPulser' test\\n* [pull-3852] - Added constrained generators to conformance tests - Part 1\\n\\n### Improvements and releasing\\n\\n* [pull-3891] - Bump plutus to 1.17\\n\\n[pull-3891]: https://github.com/input-output-hk/cardano-ledger/pull/3891\\n[pull-3888]: https://github.com/input-output-hk/cardano-ledger/pull/3888\\n[pull-3893]: https://github.com/input-output-hk/cardano-ledger/pull/3893\\n[pull-3896]: https://github.com/input-output-hk/cardano-ledger/pull/3896\\n[pull-3855]: https://github.com/input-output-hk/cardano-ledger/pull/3855\\n[pull-3904]: https://github.com/input-output-hk/cardano-ledger/pull/3904\\n[pull-3907]: https://github.com/input-output-hk/cardano-ledger/pull/3907\\n[pull-3903]: https://github.com/input-output-hk/cardano-ledger/pull/3903\\n[pull-3902]: https://github.com/input-output-hk/cardano-ledger/pull/3902\\n[pull-3883]: https://github.com/input-output-hk/cardano-ledger/pull/3883\\n[pull-3878]: https://github.com/input-output-hk/cardano-ledger/pull/3878\\n[pull-3909]: https://github.com/input-output-hk/cardano-ledger/pull/3909\\n[pull-3908]: https://github.com/input-output-hk/cardano-ledger/pull/3908\\n[pull-3852]: https://github.com/input-output-hk/cardano-ledger/pull/3852\\n[pull-3912]: https://github.com/input-output-hk/cardano-ledger/pull/3912"},{"id":"2023-12-06-mithril","metadata":{"permalink":"/2023-12-06-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-06-mithril.md","source":"@site/blog/2023-12-06-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-12-06T00:00:00.000Z","formattedDate":"December 6, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.01,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-12-06-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-12-06-ledger"},"nextItem":{"title":"Performance & Tracing Update","permalink":"/2023-12-04-performance-and-tracing"}},"content":"## High level overview\\n\\nThis week, the Mithril team made progress in adapting the Mithril client library for WASM compilation and providing a JavaScript API for it. They also completed the optimization of the aggregator\'s performance. Additionally, the team initiated the implementation of a testing Mithril network for SanchoNet and conducted threat modeling and risk analysis for P2P networking.\\n\\nFinally, they enhanced the developer experience of the Mithril client library by providing ready-to-run examples in the repository and implemented a workflow to manually publish libraries on crates.io.\\n\\n## Low level overview\\n- Worked on the issue **Light Wallet: Release `mithril-client` WASM library** [#1336](https://github.com/input-output-hk/mithril/issues/1336)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Worked on the issue **Create a test network on `Sanchonet`** [#1173](https://github.com/input-output-hk/mithril/issues/1173)\\n- Worked on the issue **Upgrade breaking changes crates** [#1357](https://github.com/input-output-hk/mithril/issues/1357)\\n- Worked on the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)\\n- Completed the issue **Enhance aggregator REST API performances** [#1327](https://github.com/input-output-hk/mithril/issues/1327)\\n- Completed the issue **Signer runtime is stuck for some SPO** [#1312](https://github.com/input-output-hk/mithril/issues/1312)\\n- Completed the issue **Make `mithril-client` examples full crates** [#1385](https://github.com/input-output-hk/mithril/issues/1385)\\n- Completed the issue **Manual publication to crates.io with GitHub action** [#1380](https://github.com/input-output-hk/mithril/issues/1380)\\n- Completed the issue **Remove `sqlite` dependency from `mithril-client` crate** [#1390](https://github.com/input-output-hk/mithril/issues/1390)"},{"id":"2023-12-04-performance-and-tracing","metadata":{"permalink":"/2023-12-04-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-04-performance-and-tracing.md","source":"@site/blog/2023-12-04-performance-and-tracing.md","title":"Performance & Tracing Update","description":"High level summary","date":"2023-12-04T00:00:00.000Z","formattedDate":"December 4, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.085,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & Tracing Update","slug":"2023-12-04-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-12-06-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-12-01-hydra"}},"content":"## High level summary\\n\\n* Benchmarking: Release benchmarking for node `8.7.0`. Also, we performed the first-ever Conway benchmarks.\\n* Development: Conway capability of our workload generator has been implemented and merged to `master`.\\n* Infrastructure: Changes to our workbench facilitating easy access and archiving of raw benchmarking data.\\n* Tracing: Quality-of-life improvements to tracing output and addition of a test suite.\\n* Nomad cluster: Expand the list of benchmarking profiles that can be run on Nomad; generalize cluster topology generation.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nA full set of benchmarks for node `8.7.0` has been performed, with the focus of enabling the next mainnet release. We\'ve measured slight performance improvements of `8.7.0` over `8.6.0`, and can confirm no regressions have been introduced.\\n\\nFurthermore, we\'ve run system integration level benchmarks in the Conway era for the first time, on the same node version.\\nOnly Babbage-compatible workloads have entered comparison as to ascertain performance consequences of only changing the ledger version, and nothing else. The results are very promising, as we could show that switching ledger versions for existing workloads does not come with a performance penalty.\\n\\n### Development\\n\\nOur transaction generator has been extended to be able to submit all present benchmarking workflows in the Conway era.\\nCurrently, we\'re looking into adding Conway-exclusive features, such as `DRep` registration. Those would be submitted at the very beginning of a run, as we\'re interested in seeing potential performance implications of maintaining `DRep` sets of varying size in ledger. Furthermore, this will serve as the basis for future development Conway-exclusive workloads, such as governance actions or vote tallying.\\n\\n### Infrastructure\\n\\nAs our workbench will be pivotal in orchestrating and organizing benchmarking runs on the Nomad cloud backend, we\'ve\\nimproved how raw benchmark data is tagged, which metadata is documented in an automated manner. This enhances both access to existing run sets, as well as maintaining an archive for benchmarking data.\\n\\n### Tracing\\n\\nThe new tracing system is currently receiving usability improvements as we\'re reworking the output of several trace messages.\\nAdditionally, we\'re setting up a rigorous test suite to provide safety for future development of and component integration inte the system.\\n\\n### Nomad backend\\n\\nWe\'ve been working on adapting various benchmarking workloads, which are defined by our workbench\'s profiles, to running on the new infrastructure. This mainly concerns a workload utilizing Plutus, as well as peer-to-peer flavoured workloads. Furthermore, we\'re implementing a solution to create all possible cluster topologies algorithmically, instead of still using fixed literal definitions for some cases."},{"id":"2023-12-01-hydra","metadata":{"permalink":"/2023-12-01-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-01-hydra.md","source":"@site/blog/2023-12-01-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-12-01T00:00:00.000Z","formattedDate":"December 1, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.865,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-12-01-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Update","permalink":"/2023-12-04-performance-and-tracing"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-11-29-consensus"}},"content":"### High-level summary\\n\\nThis week, the Hydra team conducted a packed Monthly Review meeting,\\nfeaturing demonstrations and the preparation of the monthly report. They\\naddressed flakiness in tests and enhanced the logs json schema,\\nimproving overall test reliability. Additionally, the team successfully\\nbuilt MacOS ARM64 (`aarch64-darwin`) binaries in CI, expanding platform\\nsupport. They further improved the network configuration by detecting\\nincompatible persisted states, contributing to overall system\\nrobustness. Finally, the team released version 0.14.0, highlighting\\ntheir commitment to delivering regular updates and improvements.\\n\\n### What did the team achieve this week\\n\\n- Monthly Review\\n [meeting](https://drive.google.com/file/d/1-iv8IveUzA2KrJV_Kqrgx4ts05Ow0zjM)\\n packed with demonstrations and prepared monthly report\\n [\\\\#1189](https://github.com/input-output-hk/hydra/pull/1189)\\n- Fixed several flaky tests and improved the logs json schema\\n [\\\\#1188](https://github.com/input-output-hk/hydra/pull/1188)\\n [\\\\#1190](https://github.com/input-output-hk/hydra/issues/1190)\\n [\\\\#1192](https://github.com/input-output-hk/hydra/pull/1192)\\n- Built MacOS ARM64 (`aarch64-darwin`) binaries in CI\\n [\\\\#1182](https://github.com/input-output-hk/hydra/pull/1182)\\n- Improved network configuration by detecting incompatible persisted\\n states [\\\\#1174](https://github.com/input-output-hk/hydra/issues/1174)\\n- Released version 0.14.0\\n\\n### What are the goals of next week\\n\\n- Start work on incremental decommit\\n- Continue shepherding contributed PRs to completion\\n- Finish stateless-observation work\\n- Open a head on a Conway network"},{"id":"2023-11-29-consensus","metadata":{"permalink":"/2023-11-29-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-29-consensus.md","source":"@site/blog/2023-11-29-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-11-29T00:00:00.000Z","formattedDate":"November 29, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.51,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-11-29-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-12-01-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-11-29-mithril"}},"content":"## High level summary\\n\\nThe Consensus team implemented and tested a [patch](https://github.com/input-output-hk/ouroboros-consensus/pull/525) that does not propagate future headers.\\nIt is under review, and we expect it can be released in the next Cardano node version.\\nOn the UTxO-HD front, we [finished](https://github.com/input-output-hk/ouroboros-consensus/issues/510) prototyping the `LedgerDB` and `BackingStore` redesign, which is required for the LSM-tree integration and might help us implement a more resource efficient in-memory backend.\\nWith this prototype finished we can start integrating the rest of the code.\\nWe [investigated](https://github.com/input-output-hk/ouroboros-consensus/pull/513) the unexpected performance degradation observed when acquiring the block context.\\nWe also [released Cardano node 8.7.0](https://github.com/input-output-hk/cardano-node/releases/tag/8.7.0-pre) and [moved](https://github.com/input-output-hk/cardano-ledger/pull/3893) `tree-diff` outside `cardano-ledger` libraries."},{"id":"2023-11-29-mithril","metadata":{"permalink":"/2023-11-29-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-29-mithril.md","source":"@site/blog/2023-11-29-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-11-29T00:00:00.000Z","formattedDate":"November 29, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.415,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-11-29-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-11-29-consensus"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-11-24-goedel"}},"content":"## High level overview\\n\\nThis week, the Mithril team released the initial version of the [Mithril client library](https://crates.io/crates/mithril-client), enabling developers to integrate core Mithril features into their applications. They also released a new distribution, [`2347.0`](https://github.com/input-output-hk/mithril/releases/tag/2347.0), which includes support for slim certificate production by the aggregator, along with bug fixes and performance improvements.\\n\\nThe team also introduced the initial version of Cardano/Mithril node communication enhancements, implemented by TxPipe as part of the Catalyst project. They made progress in decentralizing Mithril networks, including testing the Mithril peer-to-peer (P2P) relay on a test network and conducting threat modeling and risk analysis for P2P networking. Additionally, they started working on adapting the Mithril client library for WASM compilation and made progress in optimizing aggregator performance. \\n\\nFinally, they fixed inaccuracies in the verbosity level of logs across most nodes and worked on troubleshooting for some users.\\n\\n## Low level overview\\n- Release of the [`mithril-client`](https://crates.io/crates/mithril-client) library crate\\n- Publication of a [dev blog post](https://mithril.network/doc/dev-blog/2023/11/27/mithril-client-library-released) about the released Mithril library\\n- Released the new distribution [`2347.0`](https://github.com/input-output-hk/mithril/releases/tag/2347.0)\\n- Worked on the issue **Light Wallet: Release `mithril-client` WASM library** [#1336](https://github.com/input-output-hk/mithril/issues/1336)\\n- Worked on the issue **Enhance Mithril/Cardano node communication** [#1315](https://github.com/input-output-hk/mithril/issues/1315)\\n- Worked on the issue **P2P threat modeling and risk analysis** [#1350](https://github.com/input-output-hk/mithril/issues/1350)\\n- Worked on the issue **Enhance aggregator REST API performances** [#1327](https://github.com/input-output-hk/mithril/issues/1327)\\n- Worked on the issue **Signer runtime is stuck for some SPO** [#1312](https://github.com/input-output-hk/mithril/issues/1312)\\n- Completed the issue **Support P2P relay in infrastructure** [#1361](https://github.com/input-output-hk/mithril/issues/1361)\\n- Completed the issue **Make Cardano node version custom in CI/CD** [#1355](https://github.com/input-output-hk/mithril/issues/1355)\\n- Completed the issue **Manually deploy a test Mithril network** [#1356](https://github.com/input-output-hk/mithril/issues/1356)\\n- Completed the issue **mithril-client verbosity not following usage menu** [#1325](https://github.com/input-output-hk/mithril/issues/1325)\\n- Completed the issue **Error message for mithril-client snapshot download** [#1375](https://github.com/input-output-hk/mithril/issues/1375)"},{"id":"2023-11-24-goedel","metadata":{"permalink":"/2023-11-24-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-24-goedel.md","source":"@site/blog/2023-11-24-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-11-24T00:00:00.000Z","formattedDate":"November 24, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.365,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-11-24-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-11-29-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-11-24-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThe team is currently formalising mini protocols and working on a\\nperformance modelling paper\\n\\n## Details\\n\\n* completing work on chain sync mini-protocol\\n\\n* proof sketch of conformance property of chain sync mini-protocol\\n\\n* onboarding new performance modelling intern\\n\\n* new content for JLAMP paper"},{"id":"2023-11-24-hydra","metadata":{"permalink":"/2023-11-24-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-24-hydra.md","source":"@site/blog/2023-11-24-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-11-24T00:00:00.000Z","formattedDate":"November 24, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.12,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-11-24-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-11-24-goedel"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-11-24-sre"}},"content":"### High-level summary\\n\\nThis week, the Hydra team spent significant time opening a head among\\nthemselves on `mainnet` using the release candidate, revealing and\\naddressing lurking bugs such as\\n[\\\\#1174](https://github.com/input-output-hk/hydra/issues/1174). Also\\nrequired was this change to dynamically calculate the min utxo value\\n[\\\\#1176](https://github.com/input-output-hk/hydra/pull/1176), a\\nnecessary adjustment following the switch to inline datums. The team\\nengaged with `cardano-cli` / `cardano-api` maintainers to discuss recent\\nchanges and collaborated on drafting feature ideas, including providing\\n[Conway support](https://github.com/input-output-hk/hydra/issues/1177)\\nfor the Hydra roadmap. As part of ongoing improvements, they\\nexperimented with writing the specification in markdown instead of\\nLaTex.\\n\\n### What did the team achieve this week\\n\\n- Opened head among us on mainnet and uncovered a few lurking bugs like\\n [\\\\#1174](https://github.com/input-output-hk/hydra/issues/1174) in the\\n release candidate\\n- Calculate the min utxo value instead of hard-coding it\\n [\\\\#1176](https://github.com/input-output-hk/hydra/pull/1176), which is\\n needed since we switched to inline datums.\\n- Met with the `cardano-cli` / `cardano-api` maintainers to discuss\\n recent changes and way forward\\n- Drafted features ideas to provide [Conway\\n support](https://github.com/input-output-hk/hydra/issues/1177) on the\\n Hydra roadmap\\n- Experimented in writing the specification in markdown instead of LaTex\\n\\n### What are the goals of next week\\n\\n- Have the Monthly review meeting with several demos\\n- Release version 0.14.0 with [this\\n scope](https://github.com/input-output-hk/hydra/milestone/14?closed=1)\\n- Complete tidying up chain layer via stateless observation changes in\\n hydra-node\\n [\\\\#1096](https://github.com/input-output-hk/hydra/issues/1096)\\n- Update dependencies to prepare for Conway\\n [\\\\#1114](https://github.com/input-output-hk/hydra/issues/1114)"},{"id":"2023-11-24-sre","metadata":{"permalink":"/2023-11-24-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-24-sre.md","source":"@site/blog/2023-11-24-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-11-24T00:00:00.000Z","formattedDate":"November 24, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":3.115,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-11-24-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-11-24-hydra"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-11-22-ledger"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general environment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* The cardano-node nixos service now supports SIGHUP p2p topology reloading when the `useSystemdReload` option is enabled\\n\\n## Lower level summary\\n\\n### Capkgs\\n* Update cardano-db-sync and offchain-metadata-tools package paths and/or references: [capkgs-compare](https://github.com/input-output-hk/capkgs/compare/994696f...3ce364f)\\n\\n### Cardano-node\\n* Optionally have cardano-node nixos service utilize SIGHUP p2p topology reload: [cardano-node-pull-5537](https://github.com/input-output-hk/cardano-node/pull/5537)\\n * Creates a useSystemdReload bool option for the cardano-node nixos service\\n * This will move the topology file(s) to `/etc/cardano-node/topology-$i.yaml` and inject systemd reload hooks for p2p configured cardano-node instances\\n * Moving topology files to `/etc` also allows for manual topology updates when a quick test is needed and full service re-deployment isn\'t desired\\n\\n### Cardano-parts\\n* Adds a metadata server profile and a number of other features and improvements: [cardano-parts-pull-20](https://github.com/input-output-hk/cardano-parts/pull/20)\\n * Adds a new metadata-service profile\\n * Adds metadata service and pkg configuration options for cardano-groups to utilize the metadata-server profile\\n * Adds a cardano-webserver profile for multiple virtualHosts and TLS ACME server aliases for a cluster\'s static needs, with each cached behind varnish\\n * Adds extra node list producers and public producers for cardano-node-topology profile\\n * Adds delegation amounts to cardano-postgres psql prepared query show_pools_block_history_in_epoch\\n * Adds select systemd metrics reporting to grafana-agent profile\\n * Adds a bookRelay multivalue DNS option to disambiguate with groupRelay multivalue DNS\\n * Adds an opsLib library to the cardano-parts lib flakeModule and refactors some common code into it\\n * Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo\\n * Adds job-gen-env-config for both release and pre-release configuration files to support configuration book generation\\n * Adds support for grafana recording rules in the template files\\n * Improves cardano-group profile handling of producers with respect to multiple instance nodes\\n * Improves grafana-agent profile metrics handling for multi-instance cardano-node servers\\n * Improves smash service preStart handling while waiting for a node socket\\n * Updates Justfile for ERA_CMD demo support\\n * Migrates default grafana cloud node exporter, varnish alert and recording rules to grafana alert and recording rule templates\\n * Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile\\n * Defaults cardano-postgres profile psqlrc use to false\\n\\n### Cardano-playground\\n* Adds a new testnet metadata server, cluster webserver, and other improvements: [cardano-playground-pull-6](https://github.com/input-output-hk/cardano-playground/pull/6)\\n * Adds a new metadata server\\n * Adds a new webserver for the cluster\'s static virtualhost needs\\n * Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo\\n * Adds systemd metrics monitoring to the cluster\\n * Resizes sanchonet machines to support the growing chain\\n * Completes migration of preprod from world\\n * Updates groups to utilize both bookRelay and groupRelay multivalue DNS attributes\\n * Updates Justfile for ERA_CMD demo support\\n * Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile\\n * Migrates book static code to playground from world, with refactor, cleanup and updates\\n * Migrates default grafana cloud node exporter, varnish alert and recording rules to declarative grafana alert and recording rules\\n\\n### Offchain-metadata-tools\\n* Adds db password option with obfuscation plus misc improvements: [offchain-metadata-tools-pull-61](https://github.com/input-output-hk/offchain-metadata-tools/pull/61)\\n * Adds db password connection option and obfuscates passwords in output for metadata server, sync, webhook services\\n * Updates the nixos service for metadata-webhook service to optionally use an environmentFile for secrets: cfg.environmentFile\\n * Moves from std use in the nix flake to standard flake schema\\n * Fixes hydra CI failures\\n * Builds update-docs in hydra to avoid long local build times\\n * Removes deprecated tullia\\n * Removes deprecated check-hydra from pkgs\\n * Removes deprecated bors files and references"},{"id":"2023-11-22-ledger","metadata":{"permalink":"/2023-11-22-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-22-ledger.md","source":"@site/blog/2023-11-22-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-11-22T00:00:00.000Z","formattedDate":"November 22, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.705,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-11-22-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-11-24-sre"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-11-22-mithril"}},"content":"## High level summary\\n\\nLast two weeks progress was mainly on testing, bug fixes and improvements to clarity of\\nCDDL specification. Important bugfixes include:\\n\\n* Fix deserialization of `ValueNotConservedUTxO` predicate failure that could not\\n previously report zero ADA.\\n* Fix deserialization of `CostModels` in the `PParamsUpdate`. Invalid `CostModels` are no\\n longer allowed, only `CostModels` for unrecognized Plutus versions are allowed starting\\n with Conway\\n* Fix returning of Deposits for ProposalProcedures\\n\\nTesting tooling has been improved and new tests have been implemented for Conway era.\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-3858] - Restructure computing Refunds and Deposits in a TxBody across all eras\\n* [pull-3860] - Removed `mock/crypto.cddl`, added optional tag to sets\\n* [pull-3864] - Fix Proposal deposits and add deposit tests to imp tests\\n* [pull-3859] - Rename ProposalsSnapshot to Proposals\\n* [pull-3867] - `MaryValue` fixes\\n* [pull-3869] - Indicate that tag 258 is optional for OSet. Fix rational CDDL\\n* [pull-3863] - Improve deposits refunds re-usability\\n* [pull-3861] - Fail PParamsUpdate deserialization for invalid costmodels in Conway\\n* [pull-3875] - Fix cddl spec for CostModels in Conway\\n* [pull-3876] - Change 4 PParam fields from EpochNo to EpochInterval\\n* [pull-3884] - Relax requirement on the Set tag 258 to be enforced in the next era\\n\\n### Testing\\n\\n* [pull-3868] - Improvements to support property tests on Traces with simple Tx with DRep related Certs\\n* [pull-3792] - RATIFY and GOV constraint tests\\n* [pull-3885] - Added a test for genTxAndNewEpoch\\n* [pull-3886] - QuickCheck Imp integration\\n\\n### Improvements and releasing\\n\\n* [pull-3854] - Integration work for node 8.7.0\\n* [pull-3872] - Fixup ReadTheDocs build\\n* [pull-3871] - Bump plutus dep to 1.16\\n* [pull-3874] - Post release changes\\n* [pull-3880] - Remove generic-monoid dependency\\n* [pull-3887] - Add changelog for features that landed in cardano-node-8.7\\n\\n[pull-3858]: https://github.com/input-output-hk/cardano-ledger/pull/3858\\n[pull-3860]: https://github.com/input-output-hk/cardano-ledger/pull/3860\\n[pull-3864]: https://github.com/input-output-hk/cardano-ledger/pull/3864\\n[pull-3859]: https://github.com/input-output-hk/cardano-ledger/pull/3859\\n[pull-3867]: https://github.com/input-output-hk/cardano-ledger/pull/3867\\n[pull-3869]: https://github.com/input-output-hk/cardano-ledger/pull/3869\\n[pull-3863]: https://github.com/input-output-hk/cardano-ledger/pull/3863\\n[pull-3854]: https://github.com/input-output-hk/cardano-ledger/pull/3854\\n[pull-3861]: https://github.com/input-output-hk/cardano-ledger/pull/3861\\n[pull-3872]: https://github.com/input-output-hk/cardano-ledger/pull/3872\\n[pull-3871]: https://github.com/input-output-hk/cardano-ledger/pull/3871\\n[pull-3875]: https://github.com/input-output-hk/cardano-ledger/pull/3875\\n[pull-3874]: https://github.com/input-output-hk/cardano-ledger/pull/3874\\n[pull-3868]: https://github.com/input-output-hk/cardano-ledger/pull/3868\\n[pull-3880]: https://github.com/input-output-hk/cardano-ledger/pull/3880\\n[pull-3792]: https://github.com/input-output-hk/cardano-ledger/pull/3792\\n[pull-3876]: https://github.com/input-output-hk/cardano-ledger/pull/3876\\n[pull-3885]: https://github.com/input-output-hk/cardano-ledger/pull/3885\\n[pull-3884]: https://github.com/input-output-hk/cardano-ledger/pull/3884\\n[pull-3887]: https://github.com/input-output-hk/cardano-ledger/pull/3887\\n[pull-3886]: https://github.com/input-output-hk/cardano-ledger/pull/3886"},{"id":"2023-11-22-mithril","metadata":{"permalink":"/2023-11-22-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-22-mithril.md","source":"@site/blog/2023-11-22-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-11-22T00:00:00.000Z","formattedDate":"November 22, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":0.895,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-11-22-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-11-22-ledger"},"nextItem":{"title":"Initial CIP 1694 Security Analysis and Responses","permalink":"/2023-11-20-cip1694"}},"content":"## High level overview\\n\\n\\nThis week, the Mithril team made progress in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, completing the first prototype implementation of the Mithril relay, which enables P2P signature broadcasting. They also made progress in optimizing the performance of the aggregator. Additionally, the team completed some enhancements on the CI/CD that will help manually deploy experimental Mithril networks for SanchoNet, as well as for the new P2P network layer.\\n\\nFinally, they investigated occasional runtime issues causing delays for certain SPOs and started preparing for the next distribution release.\\n\\n## Low level overview\\n- Completed the issue **Prototype a P2P relay with `libp2p`** [#1326](https://github.com/input-output-hk/mithril/issues/1326)\\n- Worked on the issue **Enhance aggregator REST API performances** [#1327](https://github.com/input-output-hk/mithril/issues/1327)\\n- Worked on the issue **Signer runtime is stuck for some SPO** [#1312](https://github.com/input-output-hk/mithril/issues/1312)\\n- Completed the issue **Manually deploy a test Mithril network** [#1356](https://github.com/input-output-hk/mithril/issues/1356)\\n- Completed the issue **Make Cardano node version custom in CI/CD** [#1355](https://github.com/input-output-hk/mithril/issues/1355)\\n- Worked on the issue **Support P2P relay in infrastructure** [#1361](https://github.com/input-output-hk/mithril/issues/1361)\\n- Completed the issue **mithril-client fails to extract archive** [#1352](https://github.com/input-output-hk/mithril/issues/1352)"},{"id":"2023-11-20-cip1694","metadata":{"permalink":"/2023-11-20-cip1694","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-20-cip1694.md","source":"@site/blog/2023-11-20-cip1694.md","title":"Initial CIP 1694 Security Analysis and Responses","description":"High level summary","date":"2023-11-20T00:00:00.000Z","formattedDate":"November 20, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"},{"label":"cip1694","permalink":"/tags/cip-1694"},{"label":"security","permalink":"/tags/security"}],"readingTime":5.345,"hasTruncateMarker":false,"authors":[{"name":"Kevin Hammond","title":"Head of Software Engineering, Cardano Core","url":"https://github.com/kevinhammond","imageURL":"https://github.com/kevinhammond.png","key":"kevinhammond"}],"frontMatter":{"title":"Initial CIP 1694 Security Analysis and Responses","slug":"2023-11-20-cip1694","authors":"kevinhammond","tags":["ledger","cip1694","security"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-11-22-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-11-17-hydra"}},"content":"## High level summary\\n\\nWe have undertaken an initial high-level security analysis of the CIP-1694 design. We summarise the analysis and our responses here.\\n\\n## Initial CIP-1694 Security Analysis and Responses\\n\\n### Section: The constitutional committee\\n\\n---\\n\\n- \u201cFor example, if we consider the hypothetical Constitution rule \\"The Cardano network must always be able to produce new blocks\\" - In this example, if the governance action to reduce block size to 0 is passed, then there will be no way of passing or enacting further proposals. That is, this governance action is completely non-reversable. Suggestion: Instating a built-in mechanism that checks (and perhaps enforces) that the proposed governance actions, if passed, can be reverted in the future.\\n\\nThere is a \'guardrails document\' in preparation which captures issues such as these. Some of them may be automatable, as suggested; others will need to be evaluated by humans.\\n\\n---\\n\\n### Section: Size of the constitutional committee\\n\\n---\\n\\n- A possible issue with very large committee sizes (or large number of proposals/voters in general) is that it may take longer to have votes appear on-chain, which in extreme cases may require longer voting periods.\\n\\nThanks. Yes, we\u2019ve been thinking about this issue for a long time, see for example the section \u2018Final safety measure, post bootstrapping\u2019. We don\u2019t consider this as an issue for the CC since they need to be elected while DReps can just register, so we expect the number of CC members to be much less than the number of DReps\\n\\n---\\n\\n### Section: Terms\\n\\n---\\n\\n- The following sentence is a bit awkward to read: \u201cFor example, a committee of size five with a threshold of 3/5 a minimum size of three and two expired members can still pass governance actions if two non-expired members vote Yes.\u201d \u2014> Suggestion: \u201cFor example, if we have a committee of size five with a threshold of 3/5, then a committee of three non-expired and two expired members can still pass governance actions if two non-expired members vote Yes.\u201d \\n\\nThanks. Yes, that suggestion is a bit easier to read.\\n\\n---\\n\\n### Section: Registered DReps\\n\\n---\\n\\n- \u201cAdditionally, registered DReps will need to vote regularly to still be considered active.\u201d - There is a minor issue with requiring \u201cvoting regularly\u201d. That is, if there are no proposals to vote on for a long time, this means that no DRep can vote regularly (or they have to issue bogus proposals just to vote on them).\\n\\nThanks. We\u2019ve added a mechanism to prevent that issue in the spec/code where if there\u2019s nothing to vote on for an entire epoch, we increment the epoch that each DRep expires.\\n\\n---\\n\\n### Section: Ratification\\n\\n---\\n\\n- It is a bit unclear why protocol changes: network group and technical group are two separate groups.\\n \\nThese correspond exactly to the groups that are administered by the Parameter Committee.\\n\\n---\\n\\n- I didn\u2019t understand the rationale for requiring 100% \u201cYes\u201d votes to pass \u201cInfo\u201d type governance actions? It seems they have the least potential to harm the system.\\n\\nYes, it\u2019s not about harming the system, since `Info` \\nactions have no direct effect on the operation of Cardano. The motivation is simply to record the actual level of support for the action. \\n\\nOnce an action is enacted it\u2019s no longer possible to vote on it. So if there was e.g. a threshold of 50%, then there is no way of telling whether the support for it might eventually have reached 90% or higher if it was not immediately enacted when the threshold was reached.\\n\\n---\\n\\n### Section: Content\\n\\n---\\n\\n- For Hard-fork initiation, the changed parameters should probably also be required as part of Additional data.\\n\\nProtocol parameters can be changed in arbitrary ways by the hard fork and new ones might be introduced, so anything this action pins down might not actually be the value that will be present after the hard fork.\\n\\n---\\n\\n### Section: Protocol Parameter groups\\n\\n---\\n\\n- It is a bit unclear to the reader what some of these parameters mean, for example: monetary expansion (rho) and treasury expansion (tau). Suggestion: Include brief explanations for the non-obvious parameters.\\n\\nThese are existing protocol parameters, described in e.g. [https://cips.cardano.org/cips/cip9/](https://docs.cardano.org/explore-cardano/parameter-guide/#:~:text=Protocol%20parameters%20on%20Cardano%20are,to%20changing%20conditions%20over%20time.)9 or [The Cardano Protocol Parameters Guide](https://docs.cardano.org/explore-cardano/parameter-guide/#:~:text=Protocol%20parameters%20on%20Cardano%20are,to%20changing%20conditions%20over%20time.).\\n\\n\\n---\\n\\n- With the current set of governance actions, it seems that it is not possible to add new types of protocol parameters, or categories of governance voting thresholds. Suggestion: Consider possibility of incorporating governance actions that allow addition of new protocol parameters, deletion of defunct protocol parameters, or modification of governance voting threshold categories. \\n\\nAll of this needs to be done via a hard fork. If we had an action that added a parameter then there is no way of giving it semantics anyway, since that must be done by logic in the code.\\n\\n---\\n\\n### Section: Votes\\n\\n---\\n\\n- Is a constitutional committee member also a DRep? If so, do they vote twice, once as a committee member and once as a DRep?\\n\\nThey may or may not be (and they could also be an SPO). Note that this is fine, since these are completely separate tallies. This is also not preventable, since we don\u2019t have an on-chain mechanism for identity. And yes, each credential gets to vote on each action for all roles in the governance system it has.\\n\\n---\\n\\n\\n### Section: Separation of Hard Fork Initiation from Standard Protocol Parameter Changes\\n\\n---\\n\\n- It is unclear whether there would be automated checks for whether a proposal is indeed a soft fork or hard fork, which would reduce human error in categorising proposals.\\n\\nThere is no on-chain mechanism that could enforce this, the best we could do is some kind of certificate. However, this may not be trustworthy, of course. We will consider this in future versions of Voltaire.\\n\\n---\\n\\n### Section: Changes post Edinburgh workshop (July 2023)\\n\\n---\\n\\n- \u201cAll governance actions are enacted one epoch after they are ratified.\u201d - I\u2019m not sure if this line is currently in the main body of the CIP?\\n\\nIt is, but it is phrased differently: \u2018All governance actions are enacted on the epoch boundary after their ratification.\u2019\\n\\n---\\n\\n### Section: Reduced deposits for some government actions\\n\\n---\\n\\n- Another downside of requiring endorsement from the constitutional committee is that this likely does not apply to constitutional committee-related proposals, such as no-confidence votes.\\n\\nIndeed. We have no plans for this at the moment."},{"id":"2023-11-17-hydra","metadata":{"permalink":"/2023-11-17-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-17-hydra.md","source":"@site/blog/2023-11-17-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-11-17T00:00:00.000Z","formattedDate":"November 17, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.135,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-11-17-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Initial CIP 1694 Security Analysis and Responses","permalink":"/2023-11-20-cip1694"},"nextItem":{"title":"Performance & Tracing Update","permalink":"/2023-11-17-performance-and-tracing"}},"content":"## High-level summary\\n\\nThis week, the Hydra team made several impactful updates. They addressed\\nmisleading errors regarding collect com transactions, resolved a security\\nadvisory (CVE-2023-42806), and simplified the Hydra Head protocol by using\\ninline datums. The team also tackled minor inconsistencies in specifications and\\nimplementation, documented reasons for potentially dropped close transactions by\\nthe cardano-node, and collaborated with SundaeLabs on an offline mode for\\n`hydra-node`. Additionally, they engaged in discussions with researchers about\\nincremental de-/commits.\\n\\n## What did the team achieve this week\\n\\n- Removed misleading errors about collect com transactions [#839](https://github.com/input-output-hk/hydra/issues/839)\\n- Addressed security advisory [CVE-2023-42806](https://github.com/input-output-hk/hydra/security/advisories/GHSA-gr36-mc6v-72qq) in PR [#1161](https://github.com/input-output-hk/hydra/pull/1161)\\n- Changed the head protocol to use inline datums, simplifying things in the hydra-node [#1162](https://github.com/input-output-hk/hydra/pull/1162)\\n- Addressed minor inconsistencies in spec and implementation [#1104](https://github.com/input-output-hk/hydra/issues/1104)\\n- Documented why close transacations might be dropped by the cardano-node (can’t fix) [#1039](https://github.com/input-output-hk/hydra/issues/1039)\\n- Tidy up a few things here and there\\n- Worked with SundaeLabs on the offline mode for `hydra-node`\\n- Discussed incremental de-/commits with researchers\\n\\n## What are the goals of next week\\n\\n- Start work on incremental decommits protocol specification [#1057](https://github.com/input-output-hk/hydra/issues/1057)\\n- Provide support to Hypix\\n- Address all [open bugs](https://github.com/input-output-hk/hydra/labels/bug%20%3Abug%3A)\\n- Release version 0.14.0 with [this scope](https://github.com/input-output-hk/hydra/milestone/14?closed=1)\\n- Update dependencies to prepare for Conway [#1114](https://github.com/input-output-hk/hydra/issues/1114)\\n- Shepherd off-line mode PR over the finish line\\n- Complete tidying up chain layer via stateless observation changes in hydra-node [#1096](https://github.com/input-output-hk/hydra/issues/1096)"},{"id":"2023-11-17-performance-and-tracing","metadata":{"permalink":"/2023-11-17-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-17-performance-and-tracing.md","source":"@site/blog/2023-11-17-performance-and-tracing.md","title":"Performance & Tracing Update","description":"High level summary","date":"2023-11-17T00:00:00.000Z","formattedDate":"November 17, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.585,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & Tracing Update","slug":"2023-11-17-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-11-17-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/2023-11-16-network"}},"content":"## High level summary\\n\\n* Benchmarking: Release benchmarking for node `8.6.0` as well as benchmarks scrutinizing GHC versions and the new tracing system.\\n* Development: PlutusV3 capability of our workload generator has been implemented.\\n* Tracing: First round of optimization of the `cardano-tracer` service has completed, awaiting validation.\\n* Nomad backend: A significant PR has landed addressing automation features and debugging capabilites.\\n* Workbench: Configurable remote environments and improvements to run documentation have been merged to `master`.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nWe\'ve performed and analyzed a full set of benchmarks for node `8.6.0`, both in comparison to recent release tags\\nand mainnet version `8.1.2`. A lot of development work has entered the system since then, so it is crucial\\nwe can rule out any potential performance risks for the next mainnet release. \\n\\nAdditionally, we\'ve been benchmarking GHC9.6.3 builds of `cardano-node`. Overall, we\'ve observed reliable optimization behaviour by that compiler version - which is much more in line with expectations than what we\'ve seen on GHC9.2.7. Getting evidence on how predictable (and malleable, by code annotations) performance is when building with a certain compiler version is essential for settling on a version as supported release platform. \\n\\nA last set of benchmarks was dedicated to the new tracing system with node `8.6.0`. We were able to show that\\nthere is no performance risk to enabling the new system, even when forwarding all trace messages to a `cardano-tracer`\\nservice on the receiving end. Key metrics for block forging, as well as block diffusion, did not exhibit any regression.\\n\\n### Development\\n\\nFor future benchmarks to be built around PlutusV3, we\'ve equipped our transaction generator with basic integration and tests for the upcoming Plutus version. This enables us to target the new cost model and potential changes\\nto the execution budgets by developing specialized workloads.\\n\\n### Tracing\\n\\nThe `cardano-tracer` service has received its first batch of optimizations. Profiling output is promising; to measure\\nperformance for a long service run time, we\'re currently equipping the service binary with the same capability to\\nemit regular resource traces as `cardano-node`. Analysis of those will be the basis for validating this and possible future optimization efforts.\\n\\n### Nomad backend\\n\\nMany improvements for the nomad backend have been implemented and merged to `master`. This encompasses a unified naming schema for all nomad profiles, improved internal management of cluster topology, a more fine-grained healthcheck service,\\nmore detailed automated documentation of underlying hardware, as well as lazy resource release. The latter enables\\nour team to investigate and debug interrupted runs for the exact moment and in the exact cluster state a potential failure occurred.\\n\\n### Workbench\\n\\nOur performance workbench has seen upgrades in documenting and reporting `cardano-node` builds. This ranges from capturing package versions and commit ids of key dependencies, to querying a deployed node for its build compiler.\\nWhen alternating between compiler versions and benchmarking custom built branches, automating such documentation is essential. \\n\\nFurthermore, the workbench is now able to access several remote deployments on all active clusters. This allows for fetching data, analyzing, comparing and reporting on all benchmarks from just one centralized workbench instance."},{"id":"2023-11-16-network","metadata":{"permalink":"/2023-11-16-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-16-network.md","source":"@site/blog/2023-11-16-network.md","title":"Network Team Update","description":"High-level overview of sprint 48","date":"2023-11-16T00:00:00.000Z","formattedDate":"November 16, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":0.545,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-11-16-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Update","permalink":"/2023-11-17-performance-and-tracing"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-11-15-consensus"}},"content":"## High-level overview of [sprint 48][sprint-48]\\n\\n### Bootstrap Peers\\n\\nWe continued reviewing bootstrap peers, [ouroboros-network#4555].\\n\\n### IOClasses / IOSim\\n\\nWe prepared slides for a Haskell meetup were we presented a talk on `IOSimPOR`.\\nThe recording will be availble on `YouTube`.\\n\\nWe also used the opportunity to do some refactoring of the `IOSim` code base: [io-sim#117].\\nWe released `io-sim-1.3.0.0` on `Hackage`: [io-sim#119].\\n\\nWe also added `forkFinally` to `MonadFork` (not included in `1.3.0.0` release): [io-sim#123].\\n\\n### Tech debt\\n\\nWe refactored `Resource` used by the DNS subsystem: [ouroboros-network#4707].\\nWe continued reviewing the [ouroboros-network#4625] PR, which refactors\\n`RootPeersDNS` module.\\n\\n[io-sim#117]: https://github.com/input-output-hk/io-sim/pull/117\\n[io-sim#119]: https://github.com/input-output-hk/io-sim/pull/119\\n[io-sim#123]: https://github.com/input-output-hk/io-sim/pull/123\\n[ouroboros-network#4555]: https://github.com/input-output-hk/ouroboros-network/pull/4555\\n[ouroboros-network#4625]: https://github.com/input-output-hk/ouroboros-network/pull/4625\\n[ouroboros-network#4707]: https://github.com/input-output-hk/ouroboros-network/pull/4707\\n[sprint-48]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+48%22"},{"id":"2023-11-15-consensus","metadata":{"permalink":"/2023-11-15-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-15-consensus.md","source":"@site/blog/2023-11-15-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-11-15T00:00:00.000Z","formattedDate":"November 15, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":1.34,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-11-15-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-11-16-network"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-11-15-mithril"}},"content":"## High level summary\\n\\nOver the last two weeks, we managed to run a UTxO-HD capable node in _legacy mode_, which maintains the baseline memory usage while keeping all the ledger state in memory (as the current node does).\\nThis _legacy mode_ could provide an alternative for releasing a UTxO-HD capable node where people can choose whether to store the large part of the UTxO set on disk or not.\\nHowever, legacy mode involves code duplication, requires several weeks of work before it is production ready (more integration and testing). Moreover, we will not release UTxO-HD before Conway to avoid the risk of delaying the latter.\\nOn the other hand, to integrate the LSM-tree backend for UTxO-HD we need to redesign the Consensus storage layer, and this new design might enable us to implement an alternative in-memory backing store that will have a very similar performance and resource requirements as the current Cardano node.\\nTherefore, during the coming months we will focus our efforts on the redesign of the storage layer and the LSM-tree backend.\\n\\nOn the Genesis front, we reviewed the [peer simulator](https://github.com/input-output-hk/ouroboros-consensus/pull/434) for Genesis tests, which was implemented by Tweag and was signed-off by the Consensus team.\\n\\nWe also continued our work on improving the handling of blocks from the future. We presented possible approaches to handling blocks from the future in the Chief Scientist Meeting at IOG, which was very well-received. The discussion with the IOG scientists touched upon the relationship of this approach to Ouroboros Chronos.\\n\\n[Javier Sagredo](https://github.com/jasagredo) continues his cycle as release engineer, and he is working on version 8.7 of Cardano node."},{"id":"2023-11-15-mithril","metadata":{"permalink":"/2023-11-15-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-15-mithril.md","source":"@site/blog/2023-11-15-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-11-15T00:00:00.000Z","formattedDate":"November 15, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":0.92,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-11-15-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-11-15-consensus"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-11-14-node-cli-api"}},"content":"## High level overview\\n\\nThis week, the Mithril team completed the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof-of-concept, achieving the implementation of P2P signatures broadcast with the relay in the end-to-end tests. Additionally, the team completed the proof-of-concept for the deterministic computation of the UTXO/transactions set from the immutable files.\\n\\nFinally, they continued addressing some performance issue associated with the \'release-mainnet\' aggregator, and fixed a bug with the tool used to process batch certificate hash re-computation.\\n\\n## Low level overview\\n- Worked on the issue **Prototype a P2P relay with `libp2p`** [#1300](https://github.com/input-output-hk/mithril/issues/1300)\\n- Completed the issue **Light Wallet: Release `mithril-client` library** [#1311](https://github.com/input-output-hk/mithril/issues/1311)\\n- Completed the issue **Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC** [#1283](https://github.com/input-output-hk/mithril/issues/1283)\\n- Completed the issue **`release-mainnet` aggregator is unreachable** [#1310](https://github.com/input-output-hk/mithril/issues/1310)\\n- Completed the issue **Fix certificate hashes re-computation in aggregator** [#1343](https://github.com/input-output-hk/mithril/issues/1343)\\n- Completed the issue **Remove `unstable` tag in `unstable` release** [#1235](https://github.com/input-output-hk/mithril/issues/1235)\\n- Worked on the issue **Enhance aggregator REST API performances** [#1327](https://github.com/input-output-hk/mithril/issues/1327)\\n- Worked on the issue **Signer runtime is stuck for some SPO** [#1312](https://github.com/input-output-hk/mithril/issues/1312)"},{"id":"2023-11-14-node-cli-api","metadata":{"permalink":"/2023-11-14-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-14-node-cli-api.md","source":"@site/blog/2023-11-14-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-11-14T00:00:00.000Z","formattedDate":"November 14, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.155,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-11-14-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-11-15-mithril"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-11-10-goedel"}},"content":"# 2023-11-01 - 2023-11-14\\n\\n## High level summary\\n\\nCARDANO-NODE\\n- [Pre-release of Cardano Node 8.6.0-pre](https://github.com/input-output-hk/cardano-node/releases/tag/8.6.0-pre)\\n\\nCARDANO-CLI\\n- Improve golden tests\\n- Clean-up of conway era commands\\n\\n### cardano-cli\\n- [Replace usages of assertFileOccurences (6/6)](https://github.com/input-output-hk/cardano-cli/pull/451)\\n- [Replace usages of assertFileOccurences (5/6)](https://github.com/input-output-hk/cardano-cli/pull/448)\\n- [Replace usages of assertFileOccurences by usage of new functions \u2728 (4/n)](https://github.com/input-output-hk/cardano-cli/pull/444)\\n- [put n shelley/byron key witnesses arguments in correct order](https://github.com/input-output-hk/cardano-cli/pull/443)\\n- [Replace usages of assertFileOccurences by comparisons with golden files (3/n)](https://github.com/input-output-hk/cardano-cli/pull/441)\\n- [Replace usages of assertFileOccurences by comparisons with golden files (2/n)](https://github.com/input-output-hk/cardano-cli/pull/436)\\n- [Update to `cardano-8.31.0.0`](https://github.com/input-output-hk/cardano-cli/pull/435)\\n- [Remove remaining uses of `IsCardanoEra`](https://github.com/input-output-hk/cardano-cli/pull/434)\\n- [Release 8.14.0.0](https://github.com/input-output-hk/cardano-cli/pull/432)\\n- [Upgrade cardano-api to 8.30](https://github.com/input-output-hk/cardano-cli/pull/430)\\n- [Command types for `node` commands](https://github.com/input-output-hk/cardano-cli/pull/428)\\n- [Split governance `MIRTransferConstructor`](https://github.com/input-output-hk/cardano-cli/pull/427)\\n- [Replace usages of assertFileOccurences by comparisons with golden files (1/n)](https://github.com/input-output-hk/cardano-cli/pull/426)\\n- [Command argument types for `drep` commands](https://github.com/input-output-hk/cardano-cli/pull/425)\\n- [Add golden test for `governance action create-no-confidence`](https://github.com/input-output-hk/cardano-cli/pull/421)\\n- [Command arguments types for stake-pool commands](https://github.com/input-output-hk/cardano-cli/pull/419)\\n\\n\\n### cardano-api\\n- [New version `cardano-api-8.31.0.0`](https://github.com/input-output-hk/cardano-api/pull/364)\\n- [Use ledger presentation of multi-asset values directly. Lens to make this uniform over `ShelleyBasedEra`](https://github.com/input-output-hk/cardano-api/pull/360)\\n- [Protocol version change is not common to all versions anymore](https://github.com/input-output-hk/cardano-api/pull/358)\\n- [Delete `ByronAndAllegraEraOnwards`](https://github.com/input-output-hk/cardano-api/pull/355)\\n- [Replace `IsCardanoEra` and `IsShelleyBasedEra` contraints in GADT constructors with `Typeable`](https://github.com/input-output-hk/cardano-api/pull/354)\\n- [Modify foldBlocks to recurse on ledger events ](https://github.com/input-output-hk/cardano-api/pull/353)\\n- [Add generators for `EraBasedProtocolParametersUpdate`](https://github.com/input-output-hk/cardano-api/pull/352)\\n- [New version `cardano-api-8.30.0.0`](https://github.com/input-output-hk/cardano-api/pull/351)\\n\\n### cardano-node\\n- [Pre-release of Cardano Node 8.6.0-pre](https://github.com/input-output-hk/cardano-node/releases/tag/8.6.0-pre)\\n- - [cardano-node: use ouroboros-network-protocols-0.5.2](https://github.com/input-output-hk/cardano-node/pull/5525)\\n\\n\\n### cardano-testnet\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2023-11-10-goedel","metadata":{"permalink":"/2023-11-10-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-10-goedel.md","source":"@site/blog/2023-11-10-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-11-10T00:00:00.000Z","formattedDate":"November 10, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.355,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-11-10-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-11-14-node-cli-api"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-11-10-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThe team is currently formalising mini protocols and working on a\\nperformance modelling paper\\n\\n## Details\\n\\n* completing work on chain sync mini-protocol\\n\\n* specifying correctness property of chain sync mini-protocol\\n\\n* creating diagrams for JLAMP paper\\n\\n* finalising structure of JLAMP paper"},{"id":"2023-11-10-hydra","metadata":{"permalink":"/2023-11-10-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-10-hydra.md","source":"@site/blog/2023-11-10-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-11-10T00:00:00.000Z","formattedDate":"November 10, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.65,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-11-10-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-11-10-goedel"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-11-10-sre"}},"content":"### High-level summary\\n\\nThe last two weeks, the Hydra team achieved several milestones. They published\\nthe monthly report for October, providing updates on project developments. The\\nteam delivered a presentation and workshop at the Cardano Summit, contributing\\nto community engagement. They implemented a \\\\\\"dirt road\\\\\\" solution for the\\n\\\\\\"Ignored init tx\\\\\\" notification and moved the `hydra-poll` example project to a\\ndedicated repository. Additionally, the team built a `hydra-chain-observer` tool\\nfor Hydra Heads, updated the toolchain to GHC 9.6.3, and made various\\nimprovements to tooling and code formatting. They addressed specific issues,\\nsuch as fixing the `gen-hydra-keys` command and resolving concerns with the\\nrewritten `hydra-tui`. The team also enhanced the `hydra-cluster` smoke test\\nsuite by fetching network configurations dynamically. Lastly, they actively\\nreviewed pull requests and architectural decision records from the community,\\nincluding contributions from SundaeSwap. An experiment, the Hydra tally, was\\ncompleted and successfully deployed to the mainnet by the Cardano Foundation.\\n\\n### What did the team achieve this week\\n\\n- Published the monthly [report for\\n october](https://hydra.family/head-protocol/monthly/2023-10)\\n- Given a presentation / workshop at the Cardano summit\\n [#1109](https://github.com/input-output-hk/hydra/issues/1109)\\n- Dirt road implementation for \\\\\\"Ignored init tx\\\\\\" notification\\n [#529](https://github.com/input-output-hk/hydra/issues/529) (without\\n stateless observation)\\n- Completed and moved `hydra-poll` example project into a\\n dedicated\\n [repository](https://github.com/cardano-scaling/hydra-poll)\\n- Built a first version of a chain observation tool for Hydra Heads\\n [#1096](https://github.com/input-output-hk/hydra/issues/1096)\\n- Switched toolchain to GHC 9.6.3 and various improvements on tooling\\n and code formatting\\n [#1135](https://github.com/input-output-hk/hydra/pull/1135)\\n [#1152](https://github.com/input-output-hk/hydra/pull/1152)\\n [#1151](https://github.com/input-output-hk/hydra/pull/1151)\\n [#1154](https://github.com/input-output-hk/hydra/pull/1154)\\n- Fix `gen-hydra-keys` command to not overwrite existing\\n keys [#1136](https://github.com/input-output-hk/hydra/issues/1136)\\n- Fixed the rewritten `hydra-tui`\\n [#1113](https://github.com/input-output-hk/hydra/issues/1113)\\n [#1137](https://github.com/input-output-hk/hydra/issues/1137)\\n- Fetch network configurations instead of packaging them into\\n hydra-cluster (smoke) test suite\\n [#1156](https://github.com/input-output-hk/hydra/pull/1156)\\n- Reviewing PRs and ADRs from the community (SundaeSwap)\\n [#1118](https://github.com/input-output-hk/hydra/pull/1118)\\n [#1157](https://github.com/input-output-hk/hydra/pull/1157)\\n- Hydra tally experiment (Cardano Foundation) deployed to mainnet\\n\\n### What are the goals of next week\\n\\n- Tackle reported bugs\\n- Shepherd contributed off-line mode PR to the main codeline\\n- Improve chain observation tool to include more data and refactor\\n existing code towards more stateless observation\\n- Start work on incremental decommits"},{"id":"2023-11-10-sre","metadata":{"permalink":"/2023-11-10-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-10-sre.md","source":"@site/blog/2023-11-10-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-11-10T00:00:00.000Z","formattedDate":"November 10, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":2.225,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-11-10-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-11-10-hydra"},"nextItem":{"title":"DB-sync Team Update","permalink":"/2023-11-09-db-sync"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general environment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Cardano-world testnets of preprod, preview, sanchonet and some private test chains have largely completed their migration to the [cardano-playground](https://github.com/input-output-hk/cardano-playground) stack\\n\\n## Lower level summary\\n\\n### Capkgs\\n* Minor bug fix and db-sync sanchonet package update: [capkgs-compare](https://github.com/input-output-hk/capkgs/compare/b1f1cbd...994696f)\\n\\n### Cardano-parts\\n* General migration support PR for cardano-world to cardano-playground [cardano-parts-pull-18](https://github.com/input-output-hk/cardano-parts/pull/18)\\n * Iohk-nix and iohk-nix-ng were updated support the migration of cardano-world networks to cardano-playground\\n * Sops-secrets dependent systemd services were fixed to ensure restart upon sops secrets changes\\n * Db chain utilities (db-{analyser,synthesizer,truncater}) had -ng variants created to operate on both release and pre-release network chains\\n * The profile-cardano-postgres nixos module received preset variables and prepared statements via pgsqlrc for faster and easier analysis of network state\\n * The flakeModule jobs now has support for the cardano-cli era command in each of the job scripts by passing the $ERA_CMD variable\\n * Default cardano-node-ng package is now 8.6.0-pre, dbsync on sanchonet is now sancho-2-2-0\\n * For scripts using a nix-shell shebang, the cardano-parts devShell menu can be disabled from injecting itself into stdout by passing NOMENU=true\\n * Template updates include:\\n * Adds optional TF AZ declaration on ec2 resources\\n * Adds a cardano node p2p dashboard to the grafana cloud stack\\n * Adds a dbsync pool performance analysis query\\n * Updates python distribute and delegation scripts from world for playground compatibility\\n * Starts a python script lib to reduce shared code among the python scripts\\n * Several justfile improvements and new recipes\\n * More detail is available in the PR description\\n* Update submit action script for 8.6 [cardano-parts-pull-19](https://github.com/input-output-hk/cardano-parts/pull/19)\\n* Update scripts for 8.6.0-pre [cardano-parts-pull-21](https://github.com/input-output-hk/cardano-parts/pull/21)\\n * Fixes subcommand names based on ERA_CMD\\n * Adds deposits to some commands\\n * Separates CC cold/hot key generation as host authorization has to occur after action is approved\\n * CC voting enabled in vote job\\n\\n### Cardano-playground\\n* Migration PR to largely complete the network migration from cardano-world to cardano-playground: [cardano-playground-pull-5](https://github.com/input-output-hk/cardano-playground/pull/5)\\n * Adds re-spun private chain network\\n * Migrates shelley-qa chain network from world\\n * Justfile improvements and new recipes\\n * Improve concurrent environment chain support\\n * More detail is available in the PR description\\n\\n### Iohk-nix\\n* Migration to play: [iohk-nix-pull-561](https://github.com/input-output-hk/iohk-nix/pull/561)\\n * Migrate cardano-lib networks from world.dev.cardano.org to play.dev.cardano.org\\n * Remove deprecated cardano-lib p2p network environment\\n * Update sanchonet chain with respin changes\\n * Update private chain with respin changes\\n * Bump private and shelley-qa chains to sanchonet equivalent conway genesis\\n * Bump preview, preprod chains to sanchonet equivalent conway genesis for node 8.6.0-pre pre-release testing\\n\\n### Sanchonet-demo\\n* Update for cardano-node 8.6.0-pre demo: [sanchonet-demo-commit](https://github.com/input-output-hk/sanchonet-demo/commit/b54da94057ac0949421918208fd04795d029447d)"},{"id":"2023-11-09-db-sync","metadata":{"permalink":"/2023-11-09-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-09-db-sync.md","source":"@site/blog/2023-11-09-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-11-09T00:00:00.000Z","formattedDate":"November 9, 2023","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.485,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-11-09-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-11-10-sre"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-11-08-ledger"}},"content":"## High level summary\\nWe have created new tag `sancho-2-2-0`, which integrates missing Conway feautures and some minor fix\\ntags `sancho-2-1-0`, `sancho-2-0-1`.\\nWe have completed the initial implementation for the bootstrap instance objective.\\n\\n## Lower level summary\\n- Add a new `--disable-gov` flag which disabled Conway ferautures\\n[#1558](https://github.com/input-output-hk/cardano-db-sync/pull/1558)\\n- Fix of the committee key size\\n[#1544](https://github.com/input-output-hk/cardano-db-sync/pull/1544)\\n- Workaround a ledger issue with unregistered pools\\n[#1542](https://github.com/input-output-hk/cardano-db-sync/pull/1542)\\n- Implemented a mechanism that loads the UTxO from the ledger resulting is way faster syncs\\n[#1539](https://github.com/input-output-hk/cardano-db-sync/pull/1539)\\n- Rename offline to offchain\\n[#1533](https://github.com/input-output-hk/cardano-db-sync/pull/1533)\\n- Transfer existing tests to Conway era\\n[#1529](https://github.com/input-output-hk/cardano-db-sync/pull/1529)\\n[#1547](https://github.com/input-output-hk/cardano-db-sync/pull/1547)"},{"id":"2023-11-08-ledger","metadata":{"permalink":"/2023-11-08-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-08-ledger.md","source":"@site/blog/2023-11-08-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-11-08T00:00:00.000Z","formattedDate":"November 8, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.685,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-11-08-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/2023-11-09-db-sync"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-11-08-mithril"}},"content":"## High level summary\\n\\nThis update contains mostly improvements to quality of Conway era implementation and\\ntooling that we use for testing Ledger. Major Conway bugs that were discovered and\\nsquashed are:\\n\\n* PParamsUpdate proposals will now correctly use DRep thresholds for ratification\\n* Treasury withdrawals are now properly enacted.\\n* Corrected snapshotting and DRep Stake Distribution Pulser initialization\\n* Delegation to non-existent Stake pool is no longer possible\\n\\nOther important quality of life improvements are addition of reusable interfaces for an\\nordered set `OSet` and ordered map `OMap`. Which allowed us to disable duplicate\\ncertificates and proposals in a transaction. As a precursor to `PlutusV3` integration, a\\nserious reorganization of Plutus related functionality was performed.\\n\\nConway related additions that are noteworthy: Conway Ledger events, disallowing voting on\\nexpired proposals, addition of Anchor to Constitutional Committee resignation proposals.\\n\\nSignificant improvements have been made to a specialized \\"Imp\\" test library that allows us\\nwriting concise stateful unit tests for verifying the Ledger logic. Serious progress has\\nbeen made on the conformance testing, where we can now interface with Haskell generated\\ncode from the Agda specification. Serialization testing has been extended to increase\\nbinary conformance coverage.\\n\\n\\n## Low level summary\\n\\n### Conway\\n\\n* [pull-3808] - Enhance `CommitteeMembersState` query to return quorum and NoConfidence\\n* [pull-3801] - Fix epoch rule and tests\\n* [pull-3803] - Fix delegation validation\\n* [pull-3759] - Reshuffle things to the DRepPulser incorporates some snap shot things\\n* [pull-3779] - Prevent duplicate certs and proposals\\n* [pull-3794] - Added anchor to resign certs\\n* [pull-3797] - Cleanup JSON instances for Conway governance\\n* [pull-3848] - Plutus modules restructure\\n* [pull-3840] - Fix anomalies in Deposits in the Conway Era\\n* [pull-3856] - Add governance related ledger events\\n* [pull-3825] - Prevent voting on expired GovActions\\n* [pull-3831] - Treasury withdrawal fix\\n* [pull-3791] - Use a Data.OMap.Strict to replace ProposalsSnapshot\\n* [pull-3836] - PParamsUpdate enactment fix\\n* [pull-3846] - Revert argument order swap.\\n\\n### Testing\\n\\n* [pull-3782] - Move `ImpTest` to Shelley testlib\\n* [pull-3842] - Imp improvements\\n* [pull-3844] - Add mappings to Agda types\\n* [pull-3853] - Fix strange assertion failure, which hides real Block too big problem.\\n* [pull-3809] - CDDL roundtrip testing\\n* [pull-3832] - Treasury withdrawals tests\\n* [pull-3839] - Added `cardano-ledger-conformance`\\n* [pull-3841] - Add `sha256` to `cardano-ledger-executable-spec`\\n\\n### Improvements and releasing\\n\\n* [pull-3843] - Add ...WithLogs versions of evalScripts and friends\\n* [pull-3795] - Bump plutus to 1.15\\n* [pull-3798] - Bump urllib3 from 1.26.17 to 1.26.18 in /doc\\n* [pull-3799] - Changes needed for 8.6 release\\n* [pull-3807] - Add invalidBeforeL and invalidHereAfterL functions\\n* [pull-3819] - Fixups needed for a release\\n* [pull-3829] - Post release CHANGELOG version bumps\\n* [pull-3830] - Bump aeson to 2.2\\n* [pull-3833] - Backport release cardano-ledger-conway-1.10.1.0\\n* [pull-3828] - Add changelog for node release 8.6\\n\\n[pull-3759]: https://github.com/input-output-hk/cardano-ledger/pull/3759\\n[pull-3795]: https://github.com/input-output-hk/cardano-ledger/pull/3795\\n[pull-3794]: https://github.com/input-output-hk/cardano-ledger/pull/3794\\n[pull-3798]: https://github.com/input-output-hk/cardano-ledger/pull/3798\\n[pull-3797]: https://github.com/input-output-hk/cardano-ledger/pull/3797\\n[pull-3782]: https://github.com/input-output-hk/cardano-ledger/pull/3782\\n[pull-3779]: https://github.com/input-output-hk/cardano-ledger/pull/3779\\n[pull-3801]: https://github.com/input-output-hk/cardano-ledger/pull/3801\\n[pull-3803]: https://github.com/input-output-hk/cardano-ledger/pull/3803\\n[pull-3799]: https://github.com/input-output-hk/cardano-ledger/pull/3799\\n[pull-3808]: https://github.com/input-output-hk/cardano-ledger/pull/3808\\n[pull-3807]: https://github.com/input-output-hk/cardano-ledger/pull/3807\\n[pull-3819]: https://github.com/input-output-hk/cardano-ledger/pull/3819\\n[pull-3809]: https://github.com/input-output-hk/cardano-ledger/pull/3809\\n[pull-3825]: https://github.com/input-output-hk/cardano-ledger/pull/3825\\n[pull-3829]: https://github.com/input-output-hk/cardano-ledger/pull/3829\\n[pull-3830]: https://github.com/input-output-hk/cardano-ledger/pull/3830\\n[pull-3833]: https://github.com/input-output-hk/cardano-ledger/pull/3833\\n[pull-3831]: https://github.com/input-output-hk/cardano-ledger/pull/3831\\n[pull-3832]: https://github.com/input-output-hk/cardano-ledger/pull/3832\\n[pull-3839]: https://github.com/input-output-hk/cardano-ledger/pull/3839\\n[pull-3791]: https://github.com/input-output-hk/cardano-ledger/pull/3791\\n[pull-3841]: https://github.com/input-output-hk/cardano-ledger/pull/3841\\n[pull-3828]: https://github.com/input-output-hk/cardano-ledger/pull/3828\\n[pull-3836]: https://github.com/input-output-hk/cardano-ledger/pull/3836\\n[pull-3846]: https://github.com/input-output-hk/cardano-ledger/pull/3846\\n[pull-3842]: https://github.com/input-output-hk/cardano-ledger/pull/3842\\n[pull-3843]: https://github.com/input-output-hk/cardano-ledger/pull/3843\\n[pull-3844]: https://github.com/input-output-hk/cardano-ledger/pull/3844\\n[pull-3853]: https://github.com/input-output-hk/cardano-ledger/pull/3853\\n[pull-3848]: https://github.com/input-output-hk/cardano-ledger/pull/3848\\n[pull-3840]: https://github.com/input-output-hk/cardano-ledger/pull/3840\\n[pull-3856]: https://github.com/input-output-hk/cardano-ledger/pull/3856"},{"id":"2023-11-08-mithril","metadata":{"permalink":"/2023-11-08-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-08-mithril.md","source":"@site/blog/2023-11-08-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-11-08T00:00:00.000Z","formattedDate":"November 8, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":0.805,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-11-08-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-11-08-ledger"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-11-01-consensus"}},"content":"## High level overview\\n\\nThis week, the Mithril team continued working on completing the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, achieving the implementation of a very basic working demo with a peer-to-peer publish-subscribe (pub-sub) mechanism. Additionally, the team continued working on the deterministic computation of the UTXO/transactions set from the immutable files.\\n\\nFinally, they resolved the naming issue of the Docker package responsible for storing images of the new Mithril client CLI, and continued addressing a performance issue associated with the \'release-mainnet\' aggregator.\\n\\n## Low level overview\\n- Worked on the issue **Prototype a P2P relay with `libp2p`** [#1300](https://github.com/input-output-hk/mithril/issues/1300)\\n- Worked on the issue **Light Wallet: Release `mithril-client` library** [#1311](https://github.com/input-output-hk/mithril/issues/1311)\\n- Worked on the issue **Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC** [#1283](https://github.com/input-output-hk/mithril/issues/1283)\\n- Worked on the issue **`release-mainnet` aggregator is unreachable** [#1310](https://github.com/input-output-hk/mithril/issues/1310)\\n- Completed the issue **Client Docker package is incorrect** [#1322](https://github.com/input-output-hk/mithril/issues/1322)"},{"id":"2023-11-01-consensus","metadata":{"permalink":"/2023-11-01-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-01-consensus.md","source":"@site/blog/2023-11-01-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-11-01T00:00:00.000Z","formattedDate":"November 1, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.44,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-11-01-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-11-08-mithril"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-11-01-mithril"}},"content":"## High level summary\\n\\n\\nThis week the Consensus team made progress on two fronts: the question of [survivable eclipse duration](https://github.com/input-output-hk/ouroboros-consensus/pull/422), which is part of our work [supporting Genesis delivery](https://github.com/input-output-hk/ouroboros-consensus/issues/427), and how to [improve the handling of blocks from the future](https://github.com/input-output-hk/ouroboros-network/issues/4251).\\nRegarding the UTxO-HD branch, we managed to run a node with [legacy blocks](https://github.com/input-output-hk/ouroboros-consensus/issues/344), which is syncing with mainnet, up to including Alonzo.\\nWe also [investigated](https://github.com/input-output-hk/ouroboros-consensus/issues/465#issuecomment-1788685122) a regression in mempool snapshotting, which was ultimately solved by a Ledger update, and will be fixed in the upcoming Node 8.6 release."},{"id":"2023-11-01-mithril","metadata":{"permalink":"/2023-11-01-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-01-mithril.md","source":"@site/blog/2023-11-01-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-11-01T00:00:00.000Z","formattedDate":"November 1, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":0.895,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-11-01-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-11-01-consensus"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-10-27-goedel"}},"content":"## High level overview\\n\\nThis week, the Mithril team kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept. They progressed with the adaptation of the Mithril client as a library, and worked on its full WASM compatibility in a proof of concept. The team kept working on the deterministic computation of the transactions from the immutable files, and fixed some unreachability issue on the `release-mainnet` aggregator.\\n\\nFinally, they implemented new Docker images that build the Mithril nodes on the \'devnet\' faster and fixed some regressions in the Mithril client CLI.\\n\\n## Low level overview\\n- Worked on the issue **P2P Networking - Proof of Concept** [#1300](https://github.com/input-output-hk/mithril/issues/1300)\\n- Completed the issue **Build `mithril-common` and `mithril-client` in WASM PoC** [#1284](https://github.com/input-output-hk/mithril/issues/1284)\\n- Completed the issue **Fix `devnet` Mithril Docker images** [#1272](https://github.com/input-output-hk/mithril/issues/1272\\n- Worked on the issue **Light Wallet: Release `mithril-client` library** [#1311](https://github.com/input-output-hk/mithril/issues/1311)\\n- Worked on the issue **Compute deterministic Cardano UTxO set PoC** [#1283](https://github.com/input-output-hk/mithril/issues/1283)\\n- Worked on the issue **`release-mainnet` aggregator is unreachable** [#1310](https://github.com/input-output-hk/mithril/issues/1310)\\n- Completed the issue **Client regressions in snapshot list and download** [#1321](https://github.com/input-output-hk/mithril/issues/1321)"},{"id":"2023-10-27-goedel","metadata":{"permalink":"/2023-10-27-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-27-goedel.md","source":"@site/blog/2023-10-27-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-10-27T00:00:00.000Z","formattedDate":"October 27, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.305,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-10-27-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-11-01-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-10-27-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThe team is currently formalising mini protocols and writing a paper\\non performance modelling\\n\\n## Details\\n\\n* completing work on chain sync mini-protocol\\n\\n* outline for JLAMP journal paper submission\\n\\n* analysing timeouts"},{"id":"2023-10-27-hydra","metadata":{"permalink":"/2023-10-27-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-27-hydra.md","source":"@site/blog/2023-10-27-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-10-27T00:00:00.000Z","formattedDate":"October 27, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.895,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-10-27-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-10-27-goedel"},"nextItem":{"title":"Network Team Update","permalink":"/2023-10-27-network"}},"content":"### High-level summary\\n\\nThis week, the Hydra team fixed the `gen-hydra-keys` command to avoid\\noverwriting existing keys, and resolved issues related to the rewritten\\n`hydra-tui`. They also worked on a \\\\\\"dirt road\\\\\\" implementation for the\\n\\\\\\"Ignored init tx\\\\\\" notification, improving the robustness of the system.\\n\\nThe team finalized preparations for the Cardano Summit presentation, including\\nimplementation of the `hydra-poll` example DApp.\\n\\nIf you happen to read this and attend the Summit in Dubai, make sure to check\\nout our Masterclass about \\\\\\"Developing Hydra + Mithril for Scaling Cardano\\\\\\" on\\nFriday, November 3 at 14:00-15:30 local time in the \\\\\\"Al Dar\\\\\\" room!\\n\\n### What did the team achieve this week\\n\\n- Fix `gen-hydra-keys` command to not overwrite existing keys\\n [#1136](https://github.com/input-output-hk/hydra/issues/1136)\\n- Fixed the rewritten `hydra-tui`\\n [#1113](https://github.com/input-output-hk/hydra/issues/1113)\\n [#1137](https://github.com/input-output-hk/hydra/issues/1137)\\n- Finalized cardano summit preparation\\n [#1109](https://github.com/input-output-hk/hydra/issues/1109)\\n- Implemented the `hydra-poll` example DApp [link to\\n repository](https://github.com/cardano-scaling/hydra-poll)\\n- Dirt road implementation for \\\\\\"Ignored init tx\\\\\\" notification\\n [#529](https://github.com/input-output-hk/hydra/issues/529)\\n\\n### What are the goals of next week\\n\\n- Attend cardano summit and deliver presentation\\n- Clarify / close user created issues\\n- Build `aarch64-darwin` binaries in CI"},{"id":"2023-10-27-network","metadata":{"permalink":"/2023-10-27-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-27-network.md","source":"@site/blog/2023-10-27-network.md","title":"Network Team Update","description":"High-level overview of sprint 47","date":"2023-10-27T00:00:00.000Z","formattedDate":"October 27, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.765,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-10-27-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-10-27-hydra"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-10-27-sre"}},"content":"## High-level overview of [sprint 47][sprint-47]\\n\\n### Bootstrap Peers\\n\\nWe continued to review the process of bootstrap peers, see [ouroboros-network#4555]\\n\\n### CI / Tests\\n\\nWe investigated our CI issues. We found a memory leak in `typed-protocols`\\nfunction used for testing codecs which triggered out of memory manager (OOM) on\\nsome platforms ([typed-protocols#43]); we also found a bug in the connection manager which resulted in CI\\n`timeouts` (see [connection-manager-fix]). \\n\\n### KeepAlive client\\n\\nWe found two small issues with the keep-alive client, which were addressed\\nby Karl Knutsson ([Cardano Foundation][CF]), [ouroboros-network#4689].\\n\\n### Galois\\n\\nWe merged two large PRs prepared by [Galois]:\\n* [inspect `error` call sites][ouroboros-network#4660]\\n* [implement micro benchmarks for `PeerMetrics`][ouroboros-network#4663]\\n\\n### Cardano Network Service Assurance (CNSA)\\n\\nGalois made the following progress on CNSA:\\n* a simple [InfuxDB] database backend has been added;\\n* the documentation has been updated;\\n* internal improvements to the code;\\n* progress on a new \\"CSNA analysis\\" that provides, for each sampler node, the\\n block download throughput in bytes over time.\\n\\n### New CHaP Release\\n\\nWe cut a new release of `ouroboros-netowrk` packages to `CHaP`: [chap#547]\\n\\n## More details\\n\\n### CI / Tests\\n\\nWe improved the memory footprint of some of our tests by analysing a stream of\\n`IOSim` traces without retaining them, see [ouroboros-network#4696]\\n\\nAs a safety measure, we introduced an upper bound for heap memory used by test\\nartefacts in our `nix` tests. We use `200MB` limit for all tests except for\\n`network-mux` tests which use `350MB` limit, see [ouroboros-network#4702].\\n\\nWe refactored one of our tests to use ephemeral ports thus allowing it to\\nrun concurrently, see [ouroboros-network#4702].\\n\\nWe merged [ouroboros-network#4623] which fixes a bunch of test failures.\\n* [inbound-governor: connection leak][ouroboros-network#4694]\\n* [connection-manager: assertion failure][ouroboros-network#4607]\\n* [not released connection][ouroboros-network#4605]\\n\\nAll of them were due to a bug in test logic rather than a bug in production\\ncode.\\n\\n### Release Process\\n\\nWe updated our release process & associated scripts, see\\n[ouroboros-network#4705].\\n\\n[CF]: https://cardanofoundation.org/\\n[Galois]: https://galois.com/\\n[chap#547]: https://github.com/input-output-hk/cardano-haskell-packages/pull/547\\n[connection-manager-fix]: https://github.com/input-output-hk/ouroboros-network/pull/4696/commits/010d9b2bd76356373d8c139eaedd8aea7ad90680\\n[ouroboros-network#4555]: https://github.com/input-output-hk/ouroboros-network/pull/4555\\n[ouroboros-network#4605]: https://github.com/input-output-hk/ouroboros-network/issues/4605\\n[ouroboros-network#4607]: https://github.com/input-output-hk/ouroboros-network/issues/4607\\n[ouroboros-network#4623]: https://github.com/input-output-hk/ouroboros-network/pull/4623\\n[ouroboros-network#4660]: https://github.com/input-output-hk/ouroboros-network/issues/4660\\n[ouroboros-network#4663]: https://github.com/input-output-hk/ouroboros-network/issues/4663\\n[ouroboros-network#4689]: https://github.com/input-output-hk/ouroboros-network/issues/4689\\n[ouroboros-network#4694]: https://github.com/input-output-hk/ouroboros-network/issues/4694\\n[ouroboros-network#4696]: https://github.com/input-output-hk/ouroboros-network/pull/4696\\n[ouroboros-network#4702]: https://github.com/input-output-hk/ouroboros-network/pull/4702\\n[ouroboros-network#4705]: https://github.com/input-output-hk/ouroboros-network/pull/4705\\n[sprint-47]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+47%22\\n[typed-protocols#43]: https://github.com/input-output-hk/typed-protocols/pull/43\\n[InfluxDB]: https://www.influxdata.com/"},{"id":"2023-10-27-sre","metadata":{"permalink":"/2023-10-27-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-27-sre.md","source":"@site/blog/2023-10-27-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-10-27T00:00:00.000Z","formattedDate":"October 27, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.405,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-10-27-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-10-27-network"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-10-25-mithril"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general environment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Cardano-world testnets of preprod, preview, sanchonet and some private test chains are in the process of being migrated to the [cardano-playground](https://github.com/input-output-hk/cardano-playground) stack\\n\\n## Lower level summary\\n\\n### Capkgs\\n* Adds offchain-metadata-tools, dbsync sanchonet updates: [capkgs-compare](https://github.com/input-output-hk/capkgs/compare/b197e22...b1f1cbd)\\n\\n### Cardano-parts\\n* General package updates, modules improvements and template recipes to support network migration from world to playground [cardano-parts-pull-17](https://github.com/input-output-hk/cardano-parts/pull/17)\\n * Bumps cardano-db-sync-ng to sancho-2-0-0 tag\\n * Bumps iohk-nix-ng to mig-sancho branch for sanchonet pool migration from world to play\\n * Adds more machine system bins and devShell bins for scripting and debug purposes\\n * Adds cardano-show-kes-period alias on any node machine importing profile-cardano-node-group module\\n * Adds profile-cardano-node-topology module for a simplified interface to most common topology needs\\n * Adds a job-delegate-rewards-stake-key job as an optional follow on to pool creation and registration jobs\\n * Adds a topology function to filter self from group machines with an allowList for matching infixes\\n * Adds metadata-server and related offchain-metadata-tools bins from capkgs\\n * Updates justfile template with:\\n * a new query-all recipe for getting status of multiple concurrent running environments\\n * a new set-default-cardano-env recipe for fast switching between environments\\n * a new start-demo recipe for forking a custom env into conway\\n * a new start-node recipe for generic environment start\\n * a new stop-node recipe for generic environment stop\\n * updated list-machines recipe for handling of empty nixos machine config and empty ssh_config conditions\\n * updated query-tip recipe to a generic query tip compatible with each environment\\n\\n### Cardano-playground\\n* Migrates sanchonet from world, prepares further migration and support automation: [cardano-playground-pull-4](https://github.com/input-output-hk/cardano-playground/pull/4)"},{"id":"2023-10-25-mithril","metadata":{"permalink":"/2023-10-25-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-25-mithril.md","source":"@site/blog/2023-10-25-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-10-25T00:00:00.000Z","formattedDate":"October 25, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.125,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-10-25-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-10-27-sre"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-10-24-node-cli-api"}},"content":"## High level overview\\n\\nThis week, the Mithril team released a new distribution [`2342.0`](https://github.com/input-output-hk/mithril/releases/tag/2342.0). This release includes support for SPO tickers displayed in the Mithril explorer and the ability to produce slim Docker images for Mithril nodes.\\n\\nThey also kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, progressed with the adaptation of the Mithril client as a library, and worked on the deterministic computation of the UTXO set from the immutable files. \\n\\nFinally, they fixed the bottleneck of the key registration in the aggregator, investigated some unreachability on the `release-mainnet` aggregator, and enhanced the Mithril explorer UI.\\n\\n## Low level overview\\n- Worked on the issue **P2P Networking - Proof of Concept** [#1300](https://github.com/input-output-hk/mithril/issues/1300)\\n- Completed the issue **Make `mithril-client` crate a library** [#1141](https://github.com/input-output-hk/mithril/issues/1141)\\n- Worked on the issue **Compute deterministic Cardano UTxO set PoC** [#1283](https://github.com/input-output-hk/mithril/issues/1283)\\n- Completed the issue **`ProtocolKeyRegistration` creates performance bottleneck in aggregator** [#1187](https://github.com/input-output-hk/mithril/issues/1187)\\n- Worked on the issue **Fix `devnet` Mithril Docker images** [#1272](https://github.com/input-output-hk/mithril/issues/1272)\\n- Worked on the issue **`release-mainnet` aggregator is unreachable** [#1310](https://github.com/input-output-hk/mithril/issues/1310)\\n- Worked on the issue **Build `mithril-common` and `mithril-client` in WASM PoC** [#1284](https://github.com/input-output-hk/mithril/issues/1284)\\n- Completed the issue **Display a summary of signers before the full list in explorer** [#1133](https://github.com/input-output-hk/mithril/issues/1133)\\n- Completed the issue **Add certificates list in explorer** [#1184](https://github.com/input-output-hk/mithril/issues/1184)\\n- Completed the issue **`CoreVerifier` setup does not compute `total_stake` correctly** [#1306](https://github.com/input-output-hk/mithril/issues/1306)"},{"id":"2023-10-24-node-cli-api","metadata":{"permalink":"/2023-10-24-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-24-node-cli-api.md","source":"@site/blog/2023-10-24-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-10-24T00:00:00.000Z","formattedDate":"October 24, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.68,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-10-24-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-10-25-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-10-20-hydra"}},"content":"# 2023-10-11 - 2023-10-24\\n\\n## High level summary\\n\\nCARDANO-CLI\\n- Disambiguate cardano-cli stake credential related flags on treasury withdrawal governance actions making it easy to identify which is used for the deposit refund and which for the destination of the funds from the treasury if the action is ratified.\\n- `stake-address-info` now shows deposits balance.\\n- Added `conway governance action view` to allow to inspect governance action files before submitting them on a transaction.\\n- `build-raw` support for `--vote-file` and `--proposal-file`\\n\\n\\nCARDANO-API\\n- Support DRep extended keys\\n- Support Plutus V1 in Conway\\n\\n### cardano-cli\\n- [Upgrade to `cardano-api-8.28.0.0`](https://github.com/input-output-hk/cardano-cli/pull/394)\\n- [Simplify `toTxOutInAnyEra`](https://github.com/input-output-hk/cardano-cli/pull/393)\\n- [Upgrade to `cardano-api-8.27.0.0`](https://github.com/input-output-hk/cardano-cli/pull/390)\\n- [Upgrade to `cardano-api-8.26.0.0`](https://github.com/input-output-hk/cardano-cli/pull/389)\\n- [Check that poll answer index is not negative, to avoid a Prelude.!! error](https://github.com/input-output-hk/cardano-cli/pull/380)\\n- [drep registration-certificate: add a golden test](https://github.com/input-output-hk/cardano-cli/pull/379)\\n- [Disambiguate treasury withdrawal flags](https://github.com/input-output-hk/cardano-cli/pull/378)\\n- [Make `stake-address-info` query also return deposit](https://github.com/input-output-hk/cardano-cli/pull/375)\\n- [Add `conway governance action view`](https://github.com/input-output-hk/cardano-cli/pull/374)\\n- [Ch/clearer anchor flags](https://github.com/input-output-hk/cardano-cli/pull/372)\\n- [Command argument types for `transaction` commands](https://github.com/input-output-hk/cardano-cli/pull/371)\\n- [Remove eras\' constitution-hash](https://github.com/input-output-hk/cardano-cli/pull/370)\\n- [Shelley to Alonzo: add create-genesis-key-delegation-certificate to governance](https://github.com/input-output-hk/cardano-cli/pull/368)\\n- [Enable reading of Conway `TxWitness`es](https://github.com/input-output-hk/cardano-cli/pull/367)\\n- [Make `governance action create-protocol-parameters-update` Conway onwards only](https://github.com/input-output-hk/cardano-cli/pull/366)\\n- [`transaction build-raw` support for `--vote-file` and `--proposal-file`](https://github.com/input-output-hk/cardano-cli/pull/365)\\n- [Command argument types for governance key commands](https://github.com/input-output-hk/cardano-cli/pull/364)\\n- [Add test of voting using a cc hot key](https://github.com/input-output-hk/cardano-cli/pull/363)\\n\\n### cardano-api\\n- [Add Show instance for FoldBlocksError](https://github.com/input-output-hk/cardano-api/pull/338)\\n- [Upgrade typed-protocols to 1.1.1](https://github.com/input-output-hk/cardano-api/pull/336)\\n- [Improved validity range handling](https://github.com/input-output-hk/cardano-api/pull/332)\\n- [New version `cardano-api-8.28.0.0`](https://github.com/input-output-hk/cardano-api/pull/331)\\n- [Delete `AlonzoEraOnly`](https://github.com/input-output-hk/cardano-api/pull/330)\\n- [New `shelleyToAlonzoEraToShelleyToBabbageEra` function](https://github.com/input-output-hk/cardano-api/pull/329)\\n- [DRep extended key: add CastVerificationKeyRole](https://github.com/input-output-hk/cardano-api/pull/327)\\n- [New version `cardadno-api-8.27.0.0`](https://github.com/input-output-hk/cardano-api/pull/326)\\n- [Delete unnecessary calls to `shelleyBasedEraConstraints`](https://github.com/input-output-hk/cardano-api/pull/325)\\n- [New version `cardadno-api-8.27.0.0`](https://github.com/input-output-hk/cardano-api/pull/324)\\n- [Support Plutus V1 in Conway](https://github.com/input-output-hk/cardano-api/pull/323)\\n- [Parameterize GovernanceAction on era ](https://github.com/input-output-hk/cardano-api/pull/322)\\n- [Support DRep extended keys](https://github.com/input-output-hk/cardano-api/pull/320)\\n- [New version `cardano-api-8.26.0.0`](https://github.com/input-output-hk/cardano-api/pull/317)\\n- [Haddock document the case functions, so that their behavior is easier to understand when calling them](https://github.com/input-output-hk/cardano-api/pull/314)\\n- [Avoid `IsShelleyBasedEra` and `IsCardanoEra` where possible](https://github.com/input-output-hk/cardano-api/pull/313)\\n- [New `MaryEraOnly` eon. Disjoint functions](https://github.com/input-output-hk/cardano-api/pull/312)\\n\\n### cardano-node\\n\\n### cardano-testnet\\n- [Factor out file creation for SPO](https://github.com/input-output-hk/cardano-node/pull/5515)\\n\\n### docs\\n- [Tracer documentation generation enhacements ](https://github.com/input-output-hk/cardano-node/pull/5504)\\n\\n### CI & project maintenance"},{"id":"2023-10-20-hydra","metadata":{"permalink":"/2023-10-20-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-20-hydra.md","source":"@site/blog/2023-10-20-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-10-20T00:00:00.000Z","formattedDate":"October 20, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.84,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-10-20-hydra","authors":["ffakenz"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-10-24-node-cli-api"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-10-18-consensus"}},"content":"## High-level summary\\n\\nThis week, the Hydra team mainly focused on preparing a masterclass and workshop for #CardanoSummit2023.\\n\\nIn addition, they improved the Hydra node API\'s submit-transaction endpoint to accept three different encoding types: Base16 encoded CBOR string, TextEnvelope type, and JSON.\\nThis improvement offers users greater flexibility and ease of interaction with the API.\\n\\nFinally, the team has followed up on the TUI brick upgrade to version 1.10.\\nThis effort has resulted in addressing minor details and enhancing the overall user experience with the TUI.\\n\\n\\n## What did the team achieve this week\\n\\n- Prepare presentation and workshop for Cardano Summit.\\n- More TUI fixes and improvements.\\n + [#1127](https://github.com/input-output-hk/hydra/pull/1127)\\n + [#1120](https://github.com/input-output-hk/hydra/issues/1120)\\n- Upgrade GHC from 9.2.8 -> 9.6.2 [#1105](https://github.com/input-output-hk/hydra/pull/1105)\\n- Solved user issue related to submitting transactions in cbor format [#1111](https://github.com/input-output-hk/hydra/issues/1111).\\n- Fix hydraw connection issue making it more stable [#1121](https://github.com/input-output-hk/hydra/pull/1121).\\n\\n\\n## What are the goals of next week\\n\\n- Work on hydra-poll dApp for Cardano summit.\\n- Start the work on packaging hydra-node and related services."},{"id":"2023-10-18-consensus","metadata":{"permalink":"/2023-10-18-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-18-consensus.md","source":"@site/blog/2023-10-18-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-10-18T00:00:00.000Z","formattedDate":"October 18, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":1.65,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-10-18-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-10-20-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-10-18-mithril"}},"content":"## High level summary\\n\\nDuring the past two weeks the Consensus team received additional benchmark results for the UTxO-HD feature that show the resource usage for the in-memory backend is not satisfactory for a mainnet release, and we need to wait on the implementation of a new infrastructure to benchmark the LMDB backend (not likely to happen before next year). While we wait on this, we are evaluating the feasibility of making the UTxO-HD feature switchable, which will enable us to release it as an experimental feature. On the Genesis front we produced the first draft for a Survivable Eclipse Duration Model. We released version 8.5.0 of Cardano node, resumed work on subpar handling of blocks from the future, and improved our tracing system to assist problem troubleshooting in the node.\\n\\n### UTxO-HD\\n\\n- The Plutus workload benchmark for the in-memory backend [showed no regressions](https://github.com/input-output-hk/ouroboros-consensus/issues/203#issuecomment-1768560330) for the metrics of interest, but it does show an increase in resource usage.\\n- We got additional ad-hoc [measurements](https://github.com/input-output-hk/cardano-node/issues/5495#issuecomment-1768593069) on memory UTxO-HD consumption. The memory usage of the in-memory backend is not satisfactory for a release. The memory usage of the LMDB backend is considerably lower, but we need to see how much lower we can bring it by running a node whose memory is constrained to 8GB.\\n- We resumed work on an alternative solution that will make the UTxO-HD switchable. This will enable us to keep the baseline performance by totally disabling UTxO-HD, while allowing users to experiment with the feature if they wish to do so.\\n\\n### Genesis\\n\\n- We produced the first draft for a Survivable Eclipse Duration Model ([422](https://github.com/input-output-hk/ouroboros-consensus/pull/422)).\\n\\n### Support\\n\\n- [Esgen](https://github.com/amesgen) finished his cycle as release engineer. Node [8.5.0](https://github.com/input-output-hk/cardano-node/releases/tag/8.5.0-pre) has been released.\\n- We resumed work on the subpar handling of block from the future ([4251](https://github.com/input-output-hk/ouroboros-network/issues/4251)).\\n- We prepared the integration of [new tracing events](https://github.com/input-output-hk/cardano-node/pull/5502) for the next node release. These tracing events will help debugging potential issues in the node (such as the previously mentioned [issue](https://github.com/input-output-hk/ouroboros-network/issues/4251))."},{"id":"2023-10-18-mithril","metadata":{"permalink":"/2023-10-18-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-18-mithril.md","source":"@site/blog/2023-10-18-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-10-18T00:00:00.000Z","formattedDate":"October 18, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.07,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-10-18-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-10-18-consensus"},"nextItem":{"title":"Network Team Update","permalink":"/2023-10-15-network"}},"content":"## High level overview\\n\\nThis week, the Mithril team started working on the decentralization of the Mithril networks with a proof of concept of peer-to-peer (P2P) networking between nodes. The team kept working on the adaptation of the Mithril client as a library, on the deterministic computation of the transaction history of an address from the immutable files, and on the refactoring that will fix the bottleneck of the key registration in the aggregator. Additionally, they published a security advisory for the Mithril relay.\\n\\nFinally, they enhanced the CI/CD to publish multiple packages to [crates.io](https://crates.io/) and started improving the developer experience with the Mithril devnet.\\n\\n## Low level overview\\n\\n- Published the security advisory **Mithril relay could expose Cardano block producer internal IP when updated** [#GHSA-9m3h-72xj-x2gq](https://github.com/input-output-hk/mithril/security/advisories/GHSA-9m3h-72xj-x2gq)\\n- Worked on the issue **P2P Networking - Proof of Concept** [#1300](https://github.com/input-output-hk/mithril/issues/1300)\\n- Worked on the issue **Make `mithril-client` crate a library** [#1141](https://github.com/input-output-hk/mithril/issues/1141)\\n- Worked on the issue **Compute deterministic Cardano transactions history PoC** [#1283](https://github.com/input-output-hk/mithril/issues/1283)\\n- Worked on the issue **`ProtocolKeyRegistration` creates performance bottleneck in aggregator** [#1187](https://github.com/input-output-hk/mithril/issues/1187)\\n- Completed the issue **Publish multiple packages to `crates.io`** [#1298](https://github.com/input-output-hk/mithril/issues/1298)\\n- Completed the issue **Rename public key published in releases** [#1292](https://github.com/input-output-hk/mithril/issues/1292)\\n- Completed the issue **Mithril networks infrastructure maintenance** [#1218](https://github.com/input-output-hk/mithril/issues/1218)\\n- Worked on the issue **Fix `devnet` Mithril Docker images** [#1272](https://github.com/input-output-hk/mithril/issues/1272)"},{"id":"2023-10-15-network","metadata":{"permalink":"/2023-10-15-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-15-network.md","source":"@site/blog/2023-10-15-network.md","title":"Network Team Update","description":"High-level overview of sprint 46","date":"2023-10-15T00:00:00.000Z","formattedDate":"October 15, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":0.59,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-10-15-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-10-18-mithril"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-10-13-goedel"}},"content":"## High-level overview of [sprint 46][sprint-46]\\n\\n### Bootstrap Peers\\n\\nWe continued reviewing of bootstrap peers, see [ouroboros-network#4555].\\n\\n### Towards Typed Protocols 0.2.0.0\\n\\nWe diagnosed the performance regression of the new design. The work on\\n`typed-protocols` will be postponed. For more details see the\\n[typed-protocols#3]. As an outcome of the performance debugging we prepared\\n[PR][ouroboros-network#4691] which updates the `demo-ping-pong` and\\n`demo-chain-sync` applications.\\n\\n### Peer Sharing\\n\\nWe made progress in review of [ouroboros-network#4644], which simplifies the\\npeer sharing and fixes the [ouroboros-network#4642] issue.\\n\\n### Tech Debt\\n\\nWe reviewed the [ouroboros-network#3836] PR which inspects all the uses of\\n`error` in `ouroboros-network`. The PR was prepared by Galois.\\n\\n\\n[sprint-46]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+46%22\\n[typed-protocols#3]: https://github.com/input-output-hk/typed-protocols/pull/3\\n[ouroboros-network#3836]: https://github.com/input-output-hk/ouroboros-network/pull/3836\\n[ouroboros-network#4555]: https://github.com/input-output-hk/ouroboros-network/pull/4555\\n[ouroboros-network#4642]: https://github.com/input-output-hk/ouroboros-network/pull/4642\\n[ouroboros-network#4644]: https://github.com/input-output-hk/ouroboros-network/pull/4644\\n[ouroboros-network#4691]: https://github.com/input-output-hk/ouroboros-network/pull/4691"},{"id":"2023-10-13-goedel","metadata":{"permalink":"/2023-10-13-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-13-goedel.md","source":"@site/blog/2023-10-13-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-10-13T00:00:00.000Z","formattedDate":"October 13, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.38,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-10-13-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-10-15-network"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-10-13-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThe team is currently formalising mini protocols and testing the\\nperformance analysis tool\\n\\n## Details\\n\\n* extending thorn-calculus to support synchronous channels\\n\\n* extending mini-protocol framework to support communication with the\\n environment\\n\\n* working on chain sync mini-protocol\\n\\n* planning for JLAMP journal paper submission\\n\\n* analysying any-to-finish"},{"id":"2023-10-13-hydra","metadata":{"permalink":"/2023-10-13-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-13-hydra.md","source":"@site/blog/2023-10-13-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-10-13T00:00:00.000Z","formattedDate":"October 13, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.745,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-10-13-hydra","authors":["ffakenz"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-10-13-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-10-13-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team\'s primary focus was on finalizing the new network resilience layer. This involved adding persistency to ensure data integrity.\\n\\nThey also completed the exploration of potentially moving the Plutus validator scripts to Aiken.\\n\\nAdditionally, the team dedicated some attention to our TUI by upgrading the Brick framework. They also undertook a comprehensive refactoring of the project\'s structure and addressed various bug fixes. These efforts are aimed at enhancing the overall user experience of our project.\\n\\n\\n## What did the team achieve this week\\n\\n- Network Resilience Persistence (#1101)[https://github.com/input-output-hk/hydra/pull/1101].\\n- Upgrade brick on TUI (#1103)[https://github.com/input-output-hk/hydra/pull/1103].\\n- Aiken commit validator translation (#1072)[https://github.com/input-output-hk/hydra/pull/1072].\\n- Fixed some bugs in our TUI client.\\n\\n\\n## What are the goals of next week\\n\\n- Prepare presentation and workshop for Cardano Summit.\\n- Work on hydra-poll dApp for Cardano summit.\\n- Start the work on packaging hydra-node and related services."},{"id":"2023-10-13-ledger","metadata":{"permalink":"/2023-10-13-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-13-ledger.md","source":"@site/blog/2023-10-13-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-10-13T00:00:00.000Z","formattedDate":"October 13, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":0.965,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-10-13-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-10-13-hydra"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-10-13-sre"}},"content":"## High level summary\\n\\nThe Ledger team has been shifting focus from implementing Conway related features to\\ntesting. For this reason there is a very little amount features that are reported this\\ntime aorund. Notable Conway related changes are a specialized ledger query for getting\\nConstitutional Committee state and prevention of submitting proposal procedures that have\\nno valid path to enactment.\\n\\nTesting related work was mainly on a constraint base system as well as on roundtrip\\nserialization. As a result of this extra testing a bug in Conway Genesis serialization\\nwas eliminated.\\n\\n## Low level summary\\n\\n### Conway era\\n\\n* [pull-3768] - Fail proposal on invalid prevGovActionId\\n* [pull-3781] - CommitteeState query\\n\\n### Integration and releasing\\n\\n* [pull-3774] - Bump urllib3 from 1.26.10 to 1.26.17 in /doc\\n* [pull-3770] - cabal.project: Bump index states\\n* [pull-3778] - Bump plutus to 1.14\\n\\n### Testing\\n\\n* [pull-3769] - Add roundtrip testing by validating FlatTerm\\n* [pull-3783] - Update TranslationInstance.hs\\n* [pull-3775] - Refactor and improve constraint based STS tests\\n* [pull-3793] - Fix sums with negative RHS.\\n\\n[pull-3774]: https://github.com/input-output-hk/cardano-ledger/pull/3774\\n[pull-3770]: https://github.com/input-output-hk/cardano-ledger/pull/3770\\n[pull-3778]: https://github.com/input-output-hk/cardano-ledger/pull/3778\\n[pull-3769]: https://github.com/input-output-hk/cardano-ledger/pull/3769\\n[pull-3768]: https://github.com/input-output-hk/cardano-ledger/pull/3768\\n[pull-3781]: https://github.com/input-output-hk/cardano-ledger/pull/3781\\n[pull-3783]: https://github.com/input-output-hk/cardano-ledger/pull/3783\\n[pull-3775]: https://github.com/input-output-hk/cardano-ledger/pull/3775\\n[pull-3793]: https://github.com/input-output-hk/cardano-ledger/pull/3793"},{"id":"2023-10-13-sre","metadata":{"permalink":"/2023-10-13-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-13-sre.md","source":"@site/blog/2023-10-13-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-10-13T00:00:00.000Z","formattedDate":"October 13, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":2.595,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-10-13-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-10-13-ledger"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-10-11-mithril"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general environment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Sanchonet environment was updated to 8.5.0-pre.\\n* Cardano-parts now supports cardano-db-sync, cardano-smash, cardano-faucet and grafana cloud monitoring\\n\\n## Lower level summary\\n\\n### Capkgs\\n* Various improvements and fixes including:\\n * Add GHA cron schedule\\n * Add nix auto-gc to avoid running out of storage during large package set builds\\n * Add new packages to capkgs\\n * Reduce runner storage requirement leaving more room for builds\\n * Restructure capkgs attribute names to avoid package name collisions\\n * Return to non-musl builds for cardano packages to retain journald compatability\\n * Update cache usage to from file level to folder level to reduce network and latency overhead\\n * Commit diff: [capkgs-compare](https://github.com/input-output-hk/capkgs/compare/a274b72...b197e22)\\n\\n### Cardano-parts\\n* Updates cardano-node-ng to 8.5.0-pre and adds a Conway era automation job: [cardano-parts-pull-16](https://github.com/input-output-hk/cardano-parts/pull/16)\\n* Dbsync, smash, faucet and more: [cardano-parts-pull-15](https://github.com/input-output-hk/cardano-parts/pull/15)\\n * Adds cardano-db-sync, cardano-faucet, cardano-postgres, cardano-smash, profiles and/or services and related changes\\n * Adds nginx vhost metrics exporter profile\\n * Adds smash registered-relay-dump service and exporter for use until legacy relay nodes are scaled down\\n * Adds bash *-ng autocompletion compatible wrappers\\n * Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview\\n * Adds downstream grafana cloud dashboard as templates\\n * Adds downstream grafana cloud alerts as templates\\n * Updates grafana-agent profile with new exporter scrape hooks: cardano-db-sync, cardano-faucet, nginx-vts, varnish\\n * Updates the basic profile with IOG cache and commonly used bins\\n * Updates the pre-release profile to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning\\n * Updates flakeModule jobs with new conway era automation and additional IO encryption shimming and file type checks\\n * Updates .sops.yaml template for supporting faucet secrets, workbench secrets, state-demo secrets\\n * Updates the Justfile template with terraform fixes for workspace switching and provider auto-reconfiguration\\n * Updates the cloudFormation terraformState template with stack modifications to preserve all resources in case of deletion\\n * Updates the colmena template with dbsync, smash, faucet machines profiles and roles\\n * Improves prior cardano-postgres modules to now automatically tune pg parameters based on machine cpuCount, memMiB and desired conns\\n * Bumps capkgs node-ng to 8.5.0-pre\\n\\n### Cardano-playground\\n* Dbsync, smash, faucet and more: [cardano-playground-pull-3](https://github.com/input-output-hk/cardano-playground/pull/3)\\n * Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview\\n * Adds dbsync, smash, faucet machines and corresponding metrics exporters, dashboards and alerts\\n * Moves the flake.cardano-parts.cluster.group attrSet name to groups to accurately reflect the plurality and the upstream corresponding change\\n * Optimizes machine sizes\\n * Updates .sops.yaml for supporting faucet secrets, workbench secrets, state-demo secrets\\n * Updates the cloudFormation terraformState file with stack modifications to preserve all resources in case of deletion\\n * Updates the cluster isNg definition to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning\\n * Updates the Justfile with terraform fixes for workspace switching and provider auto-reconfiguration\\n\\n### Cardano-world\\n* Update sanchonet network to cardano-node 8.5.0: [cardano-world-commit](https://github.com/input-output-hk/cardano-world/commit/c8a480fa7cdb6eff4f8b4565450c57361ddfdec4)\\n\\n### Sanchonet-demo\\n* Update for cardano-node 8.5.0, conway job recipes and cardano-parts interface changes: [sanchonet-demo-commit](https://github.com/input-output-hk/sanchonet-demo/commit/4124465c0c663d11c8cf4ef80af18a5246f89b31)"},{"id":"2023-10-11-mithril","metadata":{"permalink":"/2023-10-11-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-11-mithril.md","source":"@site/blog/2023-10-11-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-10-11T00:00:00.000Z","formattedDate":"October 11, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":0.77,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-10-11-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-10-13-sre"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-10-10-node-cli-api"}},"content":"## High level overview\\n\\nThis week, the Mithril team worked on the distribution of the Mithril client as a library that will be distributed on [crates.io](https://crates.io/), the Rust dependencies repository. The team also worked on the deterministic computation of the transaction history of an address from the immutable files and started fixing a bottleneck in the aggregator that limits the ingestion of signatures.\\n\\nFinally, they kept working on the activation of Cloudflare on the infrastructure and fixed some bugs in the Nix CI.\\n\\n## Low level overview\\n\\n- Worked on the issue **Make `mithril-client` crate a library** [#1141](https://github.com/input-output-hk/mithril/issues/1141)\\n- Worked on the issue **Compute deterministic Cardano transactions history PoC** [#1283](https://github.com/input-output-hk/mithril/issues/1283)\\n- Worked on the issue **`ProtocolKeyRegistration` creates performance bottleneck in aggregator** [#1187](https://github.com/input-output-hk/mithril/issues/1187)\\n- Completed the issue **Update `Rust` compiler in `nix` CI** [#1282](https://github.com/input-output-hk/mithril/issues/1282)\\n- Worked on the issue **Mithril networks infrastructure maintenance** [#1218](https://github.com/input-output-hk/mithril/issues/1218)\\n- Worked on the issue **Activate Cloudflare protection of infrastructure** [#1230](https://github.com/input-output-hk/mithril/issues/1230)"},{"id":"2023-10-10-node-cli-api","metadata":{"permalink":"/2023-10-10-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-10-node-cli-api.md","source":"@site/blog/2023-10-10-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-10-10T00:00:00.000Z","formattedDate":"October 10, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.985,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-10-10-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-10-11-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-10-06-hydra"}},"content":"# 2023-09-27 - 2023-10-10\\n\\n## High level summary\\n\\nCARDANO-NODE\\n- [Pre-release of cardano-node 8.5.0-pre](https://github.com/input-output-hk/cardano-node/releases/tag/8.5.0-pre)\\n\\nCARDANO-CLI\\n- Depracated governance query commands and moved all governance related queries to `cardano-cli query`\\n- Drep registration certificates now allow to include an anchor\\n- Integrated Drep retirement ceriticates\\n- clean up of Drep registration certificates.\\n\\nCARDANO-API\\n- Add support for committee hot key witnesses\\n- Require conway onwards for voting\\n- Conway drep registration: expose ledger anchor parameter\\n- Add certs to txbody of Conway transactions\\n\\n### cardano-cli\\n\\n- [Move `governance query` commands to `query` command group](https://github.com/input-output-hk/cardano-cli/pull/347)\\n- [Rename create-new-committee into update-committee](https://github.com/input-output-hk/cardano-cli/pull/344)\\n- [New version cardano-cli-8.12.0.0](https://github.com/input-output-hk/cardano-cli/pull/341)\\n- [Add support for committee hot key witnesses](https://github.com/input-output-hk/cardano-cli/pull/338)\\n- [conway governance vote create: make it possible to use cc hot keys](https://github.com/input-output-hk/cardano-cli/pull/337)\\n- [New version `cardano-cli-8.11.0.0`](https://github.com/input-output-hk/cardano-cli/pull/331)\\n- [Drep certification registration: add parameters for anchor](https://github.com/input-output-hk/cardano-cli/pull/330)\\n- [Upgrade to `cardano-api-8.25.0.1`](https://github.com/input-output-hk/cardano-cli/pull/329)\\n- [Move files that are not golden files into `input` directory](https://github.com/input-output-hk/cardano-cli/pull/327)\\n- [Update to cardano-api-8.24](https://github.com/input-output-hk/cardano-cli/pull/324)\\n- [Fix #311 - Add Cold Committee Key text envelope](https://github.com/input-output-hk/cardano-cli/pull/323)\\n- [create-poll, answer-poll, verify-poll: move to \'babbage governance\' block](https://github.com/input-output-hk/cardano-cli/pull/322)\\n- [Update to `cardano-api-8.23.1.0`](https://github.com/input-output-hk/cardano-cli/pull/320)\\n- [Make `transaction view` emit JSON](https://github.com/input-output-hk/cardano-cli/pull/319)\\n- [Tidy up query command structure](https://github.com/input-output-hk/cardano-cli/pull/318)\\n- [Use `caseShelleyToBabbageOrConwayEraOnwards` from `cardano-api`](https://github.com/input-output-hk/cardano-cli/pull/317)\\n- [Add DRep Retirement Certificate command](https://github.com/input-output-hk/cardano-cli/pull/316)\\n- [Update to cardano api 8.22.0.0](https://github.com/input-output-hk/cardano-cli/pull/310)\\n- [drep registration-certificate: remove mix with SPO registration](https://github.com/input-output-hk/cardano-cli/pull/309)\\n\\n### cardano-api\\n\\n- [Delete `EraCast` instance for `Certificate`](https://github.com/input-output-hk/cardano-api/pull/307)\\n- [Add certs to txbody of Conway transactions](https://github.com/input-output-hk/cardano-api/pull/306)\\n- [Move DRep reg certificate anchor types from cardano-cli to cardano-api](https://github.com/input-output-hk/cardano-api/pull/305)\\n- [Add BabbageEraOnly](https://github.com/input-output-hk/cardano-api/pull/304)\\n- [New version cardano-api-8.25.2.0](https://github.com/input-output-hk/cardano-api/pull/303)\\n- [Add support for committee hot key witnesses](https://github.com/input-output-hk/cardano-api/pull/300)\\n- [Reduce constraint usage with eons](https://github.com/input-output-hk/cardano-api/pull/299)\\n- [Delete `withShelleyBasedEraConstraintsForLedger`](https://github.com/input-output-hk/cardano-api/pull/297)\\n- [Simplify `DebugLedgerState` with eons](https://github.com/input-output-hk/cardano-api/pull/296)\\n- [New version cardano-api-8.25.0.0](https://github.com/input-output-hk/cardano-api/pull/294)\\n- [Require conway onwards for voting](https://github.com/input-output-hk/cardano-api/pull/293)\\n- [Add witness committee cold key](https://github.com/input-output-hk/cardano-api/pull/292)\\n- [Fix CHaP failure due to haddock issue](https://github.com/input-output-hk/cardano-api/pull/291)\\n- [Amend cardano-api/pull/284 to use ReexposeLedger](https://github.com/input-output-hk/cardano-api/pull/290)\\n- [Rename `AnyEraInEon` to `EraInEon`](https://github.com/input-output-hk/cardano-api/pull/289)\\n- [Release 8.24.0.0](https://github.com/input-output-hk/cardano-api/pull/288)\\n- [Parameterize `AnyEraInEon`. Add `AnyEon`](https://github.com/input-output-hk/cardano-api/pull/287)\\n- [New version `cardano-api-8.23.0.0`](https://github.com/input-output-hk/cardano-api/pull/286)\\n- [conway drep registration: expose ledger anchor parameter](https://github.com/input-output-hk/cardano-api/pull/284)\\n- [New `caseAlonzoOnlyOrBabbageEraOnwards` and `alonzoEraOnlyToAlonzoEraOnwards` functions](https://github.com/input-output-hk/cardano-api/pull/282)\\n- [Rename eon functions](https://github.com/input-output-hk/cardano-api/pull/281)\\n- [New `AnyEraInEon`](https://github.com/input-output-hk/cardano-api/pull/280)\\n- [Replace `ValidityLowerBoundSupportedInEra`](https://github.com/input-output-hk/cardano-api/pull/279)\\n- [Replace `TxExtraKeyWitnessesSupportedInEra`](https://github.com/input-output-hk/cardano-api/pull/278)\\n- [Explicit pattern match on all ledger certificates constructors. Remove redundant module](https://github.com/input-output-hk/cardano-api/pull/277)\\n- [Release 8.22.0.0](https://github.com/input-output-hk/cardano-api/pull/276)\\n- [Replace `TxTotalAndReturnCollateralSupportedInEra`](https://github.com/input-output-hk/cardano-api/pull/275)\\n\\n### cardano-node\\n\\n- [Integrate upstream libraries for 8.5](https://github.com/input-output-hk/cardano-node/pull/5490)\\n\\n### cardano-testnet\\n\\n- [bump cardano-api to 8.25.2](https://github.com/input-output-hk/cardano-node/pull/5497)\\n- [Remove unused code in cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/5491)\\n- [Integrate upstream libraries for 8.5](https://github.com/input-output-hk/cardano-node/pull/5490)\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2023-10-06-hydra","metadata":{"permalink":"/2023-10-06-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-06-hydra.md","source":"@site/blog/2023-10-06-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-10-06T00:00:00.000Z","formattedDate":"October 6, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.88,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-10-06-hydra","authors":["ffakenz"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-10-10-node-cli-api"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-10-06-performance-and-tracing"}},"content":"## High-level summary\\n\\nThis week, the Hydra team released version 0.13.0, which includes fixes and extensions for state persistency and the ability to draft a commit transaction using inline datums.\\n\\nThe team also delivered the first version of the network resilience layer, significantly increasing head availability.\\n\\nAdditionally, they have been providing support to several funded Catalyst projects that want to build on Hydra.\\n\\nLast but not least, they updated and published security policy and vulnerability disclosure policy reports on how to handle security vulnerabilities within Hydra.\\n\\n\\n## What did the team achieve this week\\n- Release [0.13.0](https://github.com/input-output-hk/hydra/releases/tag/0.13.0)\\n- Published vulnerability reports [#1088](https://github.com/input-output-hk/hydra/pull/1088)\\n- Merged network resilience work part I [#1074](https://github.com/input-output-hk/hydra/pull/1074)\\n- Planning for Cardano Summit participation \\n- Discussions with funded Catalyst projects wanting to build on Hydra for support\\n- Merged typos fix PR from @omahs [#1095](https://github.com/input-output-hk/hydra/pull/1095)\\n\\n\\n## What are the goals of next week\\n\\n- Complete Aiken commit validator script [#1072](https://github.com/input-output-hk/hydra/pull/1072)\\n- Complete Kupo integration [#1078](https://github.com/input-output-hk/hydra/issues/1078)\\n- Brick upgrade on TUI [#1103](https://github.com/input-output-hk/hydra/pull/1103)\\n- Clean backlog\\n- Prepare and rehearse demo and talk for Cardano Summit"},{"id":"2023-10-06-performance-and-tracing","metadata":{"permalink":"/2023-10-06-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-06-performance-and-tracing.md","source":"@site/blog/2023-10-06-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-10-06T00:00:00.000Z","formattedDate":"October 6, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.625,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-10-06-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-10-06-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-10-04-consensus"}},"content":"## High level summary\\n\\n* Benchmarking: Continued benchmarking of UTxO-HD and performed benchmarks for the new tracing system.\\n* Consensus QTAs: Our protoype approach is applied to potential regression fixes with GHC 9.2.7.\\n* Development: We\'ve developed strategies for future benchmarks of PlutusV3 and UTxO-HD\'s on-disk backing store.\\n* Tracing: The machine-readable tracer configuration has been merged. Optimization of `cardano-tracer` started.\\n* Nomad backend: Ongoing variance analysis and refined cluster topology.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nPerforming and analyzing benchmarks for the UTxO-HD feature is an ongoing effort; we can reliably assess the\\nperformance of the in-memory backing store and evaluate possible optimizations (or regressions) for it. \\n\\nFurthermore, benchmarks of our new tracing system after several rounds of optimization have been performed. The results\\nshow all key metrics now being unaffected by the choice of tracing system (legacy or new) - with the new system being able to provide more features and flexibility in comparison. The benchmarks also highlighted further points for optimization, with the focus now on the `cardano-tracer` service.\\n\\n### Consensus QTAs\\n\\nThe Quantitative Timeliness Agreements (QTA) prototype is being used in coordination with Consensus and DevX to validate a series of patches that address optmization opportunities which GHC8.10 seizes, but GHC9.2 misses. The\\nfeedback from this approach is much more immediate than running benchmarks at system integration level. But once we eventually do, we expect to reproduce the relevant observations - which would mean a big step towards maturing the prototype.\\n\\n### Development\\n\\nBenchmarking UTxO-HD\'s on-disk backing store needs special attention: in virtualized environments, disk I/O is not a reliable metric as it passes several layers of indirection. As this is the very metric which will influence overall performance of this UTxO-HD flavour, we developed a plan to monitor such nodes, connected to a running network, on dedicated hardware - having direct SSD access. Replicating this setup for an entire benchmarking cluster of such nodes will be a future effort. \\n\\nPlutusV3 will come with new builtins and a new cost model. It will take a specialized benchmark to ascertain the soundness of that model running a full cluster of nodes, possibly stressing expensive builtins. At the same time,\\nwe\'d like to validate the many improvements that have gone into the Plutus evaluator.\\n\\n### Tracing\\n\\nThe focus for further optimization of the new tracing system has shifted to `cardano-tracer` - the service\\nreceiving and processing traces from one (or more) nodes. Whilst undisputed that the code living in `cardano-node` is\\nmore performance critical, the receiving service must still minimize its resource footprint. Moreover, it can\\ngenerate load for a running node when querying data points from it - which calls for tight control of that mechanism and its possible configurations.\\n\\n### Nomad backend\\n\\nVariance analysis of new nomad backend has revealed a necessary adjustment of the cluster\'s topology. We repeated\\nthe same analysis and now see even better confidence in the measurements taken with nomad. This concludes the work on the backend proper for the time being. The last steps before production use will focus on the interface between backend and our workbench, which provides all high-level benchmark definitions and analysis machinery."},{"id":"2023-10-04-consensus","metadata":{"permalink":"/2023-10-04-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-04-consensus.md","source":"@site/blog/2023-10-04-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-10-04T00:00:00.000Z","formattedDate":"October 4, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":1.135,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-10-04-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-10-06-performance-and-tracing"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-10-04-mithril"}},"content":"## High level summary\\n\\nThe value-only workload benchmarks showed that the mempool forging regression observed in the UTxO-HD branch was fixed by the latest patch. In spite of the higher resource demands, for the metrics of interest (forging, peer-propagation, end-to-end propagation) we see no regression when using the UTxO-HD version of Cardano node, with the *in-memory* backend.\\n\\nOn the Genesis front the Researchers continue reviewing different aspects of the design, in particular the argument that the Genesis rule will select the Cardano historical chain.\\nWe also merged a fix for the Babbage to Conway transition, and released a new version of Consensus.\\n\\n\\n### Genesis\\n\\n- We elicited review from the Researchers on a final draft of the argument that the Genesis rule will select the Cardano historical chain ([392](https://github.com/input-output-hk/ouroboros-consensus/issues/392)).\\n\\n\\n### Support\\n\\n- We merged a minimal patch that fixes parameter update bug during the Babbage to Conway transition ([366](https://github.com/input-output-hk/ouroboros-consensus/pull/366)).\\n- We enabled richer tracers in `cardano-node` that can be useful in future debugging ([384](https://github.com/input-output-hk/ouroboros-consensus/pull/384)).\\n- [Esgen](https://github.com/amesgen) continues with his release engineer activities, and created a new Consensus release.\\n\\n### Fostering collaboration\\n\\n- We merged a new section into our documentation that explains the existing hard-fork combinator (HFC) interface and its complexities, which are relate do why the Babagge to Conway transition surprised us in this way. This explanation is step one towards improving the HFC interface ([369](https://github.com/input-output-hk/ouroboros-consensus/pull/369))."},{"id":"2023-10-04-mithril","metadata":{"permalink":"/2023-10-04-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-04-mithril.md","source":"@site/blog/2023-10-04-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-10-04T00:00:00.000Z","formattedDate":"October 4, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.15,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-10-04-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-10-04-consensus"},"nextItem":{"title":"Network Team Update","permalink":"/2023-10-02-network"}},"content":"## High level overview\\nThis week, the Mithril team updated a proposal for implementing Mithril in a light wallet and created a discussion [on implementing Mithril in a light wallet](https://github.com/input-output-hk/mithril/discussions/1273) to receive feedback and contributions from the community.\\n\\nThey also completed a proof of concept to run a Mithril client in a browser with WASM and worked on enhancing the explorer UI with SPO tickers displayed next to the pool IDs. Additionally, the team finalized a tool for benchmarking aggregator performance over a range of signer and client loads and for visualizing the results of these benchmarks.\\n\\nFinally, the team added a root page to the aggregator endpoint, created a status page for the Mithril networks, and added a section about KES key rotation in the signer documentation for SPOs.\\n\\n## Low level overview\\n- Created the discussion **Implement Mithril in a light wallet** [#1273](https://github.com/input-output-hk/mithril/discussions/1273)\\n- Completed the issue **Run client in browser WASM PoC** [#1254](https://github.com/input-output-hk/mithril/issues/1254)\\n- Completed the issue **Benchmark aggregator performances** [#1220](https://github.com/input-output-hk/mithril/issues/1220)\\n- Worked on the issue **Add SPO tickers in explorer** [#1185](https://github.com/input-output-hk/mithril/issues/1185)\\n- Completed the issue **Add a non `404` status code on the aggregator endpoint** [#1103](https://github.com/input-output-hk/mithril/issues/1103)\\n- Completed the issue **Use source attribute in errors** [#1265](https://github.com/input-output-hk/mithril/issues/1265)\\n- Completed the issue **Create a SPO checklist for KES keys update** [#1267](https://github.com/input-output-hk/mithril/issues/1267)\\n- Completed the issue **Configure status page and alerting** [#1277](https://github.com/input-output-hk/mithril/issues/1277)\\n- Completed the issue **Upgrade dependencies** [#1274](https://github.com/input-output-hk/mithril/issues/1274)"},{"id":"2023-10-02-network","metadata":{"permalink":"/2023-10-02-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-02-network.md","source":"@site/blog/2023-10-02-network.md","title":"Network Team Update","description":"High-level overview of sprint 45","date":"2023-10-02T00:00:00.000Z","formattedDate":"October 2, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":2.485,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-10-02-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-10-04-mithril"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-09-29-goedel"}},"content":"## High-level overview of [sprint 45][sprint-45]\\n\\n[sprint-45]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+45%22\\n\\n### Bootstrap Peers\\n\\nWe started reviewing the bootstrap peers PR, [ouroboros-network#4615].\\n\\n### Towards Typed Protocols 0.2.0.0\\n\\nWe discovered a performance regression when using `typed-protocols-0.2.0.0`, and we\\nstarted investigating where it comes from. Currently, we see that\\n`typed-protocols-0.2.0.0` can outperform `typed-protocols-0.1.0.0` when running\\nin isolation with a simple `ping-pong` protocol, so the regression might be in\\nthe new block fetch implementation which comes with `typed-protocols-0.2.0.0`\\nSee [typed-protocols#3].\\n\\n### Tech Debt\\n\\nWe merged two PRs written by Galois engineers:\\n\\n* a pull request which refactors the main entry function for P2P, see [ouroboros-network#3834]; \\n* a pull request which reviews usage of `unsafe` function in the network code based.\\n\\nGalois also made progress with the following two issues:\\n * add microbenchmarks to some of our tests: [ouroboros-network#3832]\\n * inspect use of `error` in `ouroboros-network` repository:\\n [ouroboros-network#3836]\\n\\n### IO-Sim\\n\\n#### IOSimPOR\\nWe found and fixed a bug in `IOSimPOR`. We\'d like to thank Prof. John Hughes\\n(Quviq AB) for helping us with debugging the issue.\\n\\nWe also provided a more uniform API for `IOSimPOR`, and added ways to make the\\ndebugging similar problems in the future easier.\\n\\n
\\nTechnical Details on IOSim refactoring\\nWe removed the usage of `unsafePerformIO` from `IOSimPOR`, which also means\\nremoving parallel evaluation of discovered races. We found out that it gives\\nonly 25% better performance. In the future QuickCheck will offer running\\ndifferent cases in parallel which should provide better performance as there\\nare no dependencies between the evaluation of different test cases, while schedules\\nare discovered while running which limits the possible gains from running them\\nconcurrently. The performance was not the only factor though. When using\\nparallelism in the lazy `ST` monad we\'d need to rely on memory guarantees of\\n`STRefs`. In `GHC-9.6` they share the implementation with `IORef`s, but it\\nmight not be the case in the future.\\n
\\n\\n#### IOSim\\n\\nTo prepare for the next release, we consolidate packages taking advantage of\\nthe public sublibraries supported now both by `cabal` and `Hackage`. This is\\na work in progress, [io-sim#114].\\n\\n### Cardano Newtork Service Assurance\\n\\nGalois made the following progress:\\n\\n* A test run of spinning up a CNSA instance was done, as a result documentation\\n was updated.\\n* Based on the IOG code review of the CNSA code, updates to the CNSA code were\\n made.\\n* Galois has started the design for adding a CNSA analysis for \\"fetched bytes\\n over time while node is syncing\\".\\n\\n### P2P adoption\\n\\nIn the last two weeks, we\'ve seen increase in P2P adoption.\\n![P2P relays](/images/network/2023-10-04-p2p-relays.png)\\n\\n\\nThe following graphs show several different versions of relays running on the mainnet. The\\ngreen line `NodeToNodeVersionV10.True` denotes P2P relays.\\n![node versions](/images/network/2023-10-04-relay-versions.png)\\n\\n### Open Source\\n\\nWe upstreamed our FFI bindings to Windows named pipes to `Win32` package, the\\nPR was accepted and merged.\\n\\nWe also received an external contribution which enhanced our documentation, see\\n[ouroboros-network#4676].\\n\\n[ouroboros-network#3832]: https://github.com/input-output-hk/ouroboros-network/issues/3832\\n[ouroboros-network#3834]: https://github.com/input-output-hk/ouroboros-network/issues/3834\\n[ouroboros-network#3835]: https://github.com/input-output-hk/ouroboros-network/issues/3835\\n[ouroboros-network#3836]: https://github.com/input-output-hk/ouroboros-network/issues/3836\\n[ouroboros-network#4615]: https://github.com/input-output-hk/ouroboros-network/issues/4615\\n[ouroboros-network#4676]: https://github.com/input-output-hk/ouroboros-network/pull/4676\\n[io-sim#113]: https://github.com/input-output-hk/io-sim/issues/113\\n[io-sim#114]: https://github.com/input-output-hk/io-sim/issues/114\\n[typed-protocols#3]: https://github.com/input-output-hk/typed-protocols/pull/3"},{"id":"2023-09-29-goedel","metadata":{"permalink":"/2023-09-29-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-29-goedel.md","source":"@site/blog/2023-09-29-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-09-29T00:00:00.000Z","formattedDate":"September 29, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.42,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-09-29-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-10-02-network"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-09-29-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThe team is currently formalising mini protocols and testing the\\nperformance analysis tool\\n\\n## Details\\n\\n* drafting processs calculus semantics of mini protocol programs\\n\\n* testing the new performance modelling tool\\n\\n* further work on specification of mini protocols\\n\\n* extension of mini protocol framework to support communication of\\n programs with local environments via synchronous channels"},{"id":"2023-09-29-hydra","metadata":{"permalink":"/2023-09-29-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-29-hydra.md","source":"@site/blog/2023-09-29-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-09-29T00:00:00.000Z","formattedDate":"September 29, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.49,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-09-29-hydra","authors":["ffakenz"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-09-29-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-09-29-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team mainly focused on having a working new reliability\\nnetwork layer; and specified its expected behavior in a new ADR.\\n\\nThey also revisited the security policy and vulnerability disclosure policy on\\nhow to handle security vulnerability within Hydra, and in particular how to\\nhandle so-called \\"Silent fixes\\".\\n\\n\\n## What did the team achieve this week\\n\\n- Updated security policy and vulnerability disclosure policy [#1088](https://github.com/input-output-hk/hydra/pull/1088)\\n- Adr/network reliability [#1082](https://github.com/input-output-hk/hydra/pull/1082)\\n\\n\\n## What are the goals of next week\\n\\n- Introduce reliability network layer [#1074] (https://github.com/input-output-hk/hydra/pull/1074)\\n- Refactor the vCommit validator in Aiken [#1072](https://github.com/input-output-hk/hydra/pull/1072)"},{"id":"2023-09-29-ledger","metadata":{"permalink":"/2023-09-29-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-29-ledger.md","source":"@site/blog/2023-09-29-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-09-29T00:00:00.000Z","formattedDate":"September 29, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.465,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-09-29-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-09-29-hydra"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-09-29-sre"}},"content":"## High level summary\\n\\nFew important Conway related features were completed in this two week period:\\n\\n* Constitutional Committee was the last missing Conway related entity that has now been\\n fully implemented.\\n* Treasury withdrawals governance actions have been fixed and now behave as expected.\\n* Current treasury amount supplied in the transaction is now enforced by the rules.\\n* DRep\'s expiry is prevented by delaying the expiry for all DReps whenever there are no\\nproposals to vote on.\\n* Semantics of how CostModels are updated with Protocol Parameters have been changed to\\nallow for individual Plutus language version updates, rather than requiring a complete\\nreplacement of all CostModels\\n\\nBesides the new features there were also important performance and testing improvements:\\n\\n* In particular stake distribution computation and native script handling received some\\noptimizations.\\n* New testing DSL has been implemented that drastically simplifies writing unit tests for\\nledger rules.\\n* Integration tests and benchmarks are now possible for Conway era because of the overhaul\\nof functionality for initial funds and staking injection whenever node starts up in\\nConway, while bypassing all previous eras.\\n\\n## Low level summary\\n\\n### Conway era\\n\\n* [pull-3729] - DRep expiry update after a contiguous set of epochs with no proposals to vote on\\n* [pull-3739] - Rename some PParams to be consistent with Agda specification\\n* [pull-3743] - Move DRepDistr from VState to ConwayGovState\\n* [pull-3746] - Implement `tcTranslationContextL` for Shelley\\n* [pull-3737] - Implement EraTransition\\n* [pull-3749] - Add predicate failure: current treasury value mismatch in LEDGER\\n* [pull-3748] - Apply enacted treasury withdrawals\\n* [pull-3745] - Constitutional Committee Ratification\\n* [pull-3763] - Plutus interface improvements\\n* [pull-3771] - Changed how costmodel updates are applied\\n* [pull-3766] - Prevent updating protocol version with `PParamUpdate`\\n\\n### Performance\\n\\n* [pull-3765] - Improve native script handling\\n* [pull-3747] - Use (CompactForm Coin) in IncrementalStake, DRepDistr (and other places) instead of Coin\\n* [pull-3758] - Cardano-Perf regression: UMap.size regression fix\\n* [pull-3754] - Use Alonzo-style TxOut encoder when possible\\n\\n### Releasing\\n\\n* [pull-3742] - Update fourmolu, ghcid and hls. Update haskellNix and iohkNix flakes\\n* [pull-3744] - Changelog 8.4\\n* [pull-3752] - Patch release of cardano ledger conway 1.8.1.0\\n* [pull-3753] - Minor cleanup and changelog entries\\n* [pull-3760] - Fixup issues for release\\n* [pull-3764] - Bump plutus deps to 1.13\\n\\n### Testing\\n\\n* [pull-3734] - Removed `Shaped` instance for `Rep`\\n* [pull-3735] - Simplify the implementations of `hasOrd` and `hasEq`\\n* [pull-3728] - STS tests based on constraints\\n* [pull-3714] - Implement the remaining upgradable families\\n* [pull-3733] - Add some unit tests for Conway features\\n* [pull-3762] - Update CDDL for praos headers.\\n\\n\\n[pull-3729]: https://github.com/input-output-hk/cardano-ledger/pull/3729\\n[pull-3739]: https://github.com/input-output-hk/cardano-ledger/pull/3739\\n[pull-3742]: https://github.com/input-output-hk/cardano-ledger/pull/3742\\n[pull-3744]: https://github.com/input-output-hk/cardano-ledger/pull/3744\\n[pull-3743]: https://github.com/input-output-hk/cardano-ledger/pull/3743\\n[pull-3746]: https://github.com/input-output-hk/cardano-ledger/pull/3746\\n[pull-3728]: https://github.com/input-output-hk/cardano-ledger/pull/3728\\n[pull-3737]: https://github.com/input-output-hk/cardano-ledger/pull/3737\\n[pull-3735]: https://github.com/input-output-hk/cardano-ledger/pull/3735\\n[pull-3747]: https://github.com/input-output-hk/cardano-ledger/pull/3747\\n[pull-3749]: https://github.com/input-output-hk/cardano-ledger/pull/3749\\n[pull-3748]: https://github.com/input-output-hk/cardano-ledger/pull/3748\\n[pull-3745]: https://github.com/input-output-hk/cardano-ledger/pull/3745\\n[pull-3734]: https://github.com/input-output-hk/cardano-ledger/pull/3734\\n[pull-3714]: https://github.com/input-output-hk/cardano-ledger/pull/3714\\n[pull-3752]: https://github.com/input-output-hk/cardano-ledger/pull/3752\\n[pull-3754]: https://github.com/input-output-hk/cardano-ledger/pull/3754\\n[pull-3753]: https://github.com/input-output-hk/cardano-ledger/pull/3753\\n[pull-3760]: https://github.com/input-output-hk/cardano-ledger/pull/3760\\n[pull-3758]: https://github.com/input-output-hk/cardano-ledger/pull/3758\\n[pull-3764]: https://github.com/input-output-hk/cardano-ledger/pull/3764\\n[pull-3762]: https://github.com/input-output-hk/cardano-ledger/pull/3762\\n[pull-3763]: https://github.com/input-output-hk/cardano-ledger/pull/3763\\n[pull-3733]: https://github.com/input-output-hk/cardano-ledger/pull/3733\\n[pull-3771]: https://github.com/input-output-hk/cardano-ledger/pull/3771\\n[pull-3765]: https://github.com/input-output-hk/cardano-ledger/pull/3765\\n[pull-3766]: https://github.com/input-output-hk/cardano-ledger/pull/3766"},{"id":"2023-09-29-sre","metadata":{"permalink":"/2023-09-29-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-29-sre.md","source":"@site/blog/2023-09-29-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-09-29T00:00:00.000Z","formattedDate":"September 29, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":0.68,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-09-29-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-09-29-ledger"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-09-27-mithril"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general environment maintenance.\\n\\nSome notable recent changes, updates or improvements include:\\n* Sanchonet environment was re-spun starting from slot 7171200 and updated to cardano-node [8.4.0-pre](https://github.com/input-output-hk/cardano-node/releases/tag/8.4.0-pre).\\n* The use of cardano-node [docker hub](https://hub.docker.com/r/inputoutput/cardano-node) will be deprecated in preference of [GHCR](https://github.com/input-output-hk/cardano-node/pkgs/container/cardano-node)\\n\\n## Lower level summary\\n\\n### Capkgs\\n* Refactor parsing scripts, add github action automation, various bugfixes and cleanup: [capkgs-compare](https://github.com/input-output-hk/capkgs/compare/c2c7680...a274b72)\\n\\n### Cardano-parts\\n* Updates secrets layout scheme, adds sops enc/dec for jobs, adds cloud monitoring profile, updates flake templates and other improvements/fixes: [cardano-parts-pull-8](https://github.com/input-output-hk/cardano-parts/pull/14)\\n\\n### Cardano-playground\\n* Updates for new cardano-parts secrets handling and layout, TF workspace handling, group multivalue DNS support, grafana cloud monitoring and other improvements: [cardano-playground](https://github.com/input-output-hk/cardano-playground/pull/2)\\n\\n### Cardano-world\\n* Update sanchonet network to cardano-node 8.4.0: [cardano-world-compare](https://github.com/input-output-hk/cardano-world/compare/8cb559a...3edafb9)\\n* Rotate KES on shelley-qa: [cardano-world-commit](https://github.com/input-output-hk/cardano-world/commit/8301b044ad106ff8ca71dcbbdb5b17fe9ec6fc6d)"},{"id":"2023-09-27-mithril","metadata":{"permalink":"/2023-09-27-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-27-mithril.md","source":"@site/blog/2023-09-27-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-09-27T00:00:00.000Z","formattedDate":"September 27, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":0.975,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-09-27-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-09-29-sre"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-09-26-node-cli-api"}},"content":"## High level overview\\nThe Mithril team has released a new distribution [`2337.0`](https://github.com/input-output-hk/mithril/releases/tag/2337.0), which includes the following enhancements: support for `zstandard` compression of snapshot archives, support for the Cardano node version in snapshot metadata, and support for recording snapshot download statistics in the aggregator.\\n\\nThey also completed the refactoring and standardization of the errors in the Mithril nodes and published an [Architectural decision record](https://mithril.network/doc/adr/6) on the documentation website. Additionally, they kept working on adding Cloudflare protection to the infrastructure.\\n\\nFinally, the team fixed a performance issue on the stress test tool for the aggregator and made some improvements to the documentation for SPOs.\\n\\n## Low level overview\\n- Completed the issue **Release new `2337` distribution** [#1219](https://github.com/input-output-hk/mithril/issues/1219)\\n- Completed the issue **Errors refactoring** [#798](https://github.com/input-output-hk/mithril/issues/798)\\n- Completed the issue **Client traffic creates performance bottleneck in aggregator** [#1207](https://github.com/input-output-hk/mithril/issues/1207)\\n- Completed the issue **Record statistics about the downloaded snapshot in the aggregator** [#1127](https://github.com/input-output-hk/mithril/issues/1127)\\n- Completed the issue **Create a SPO checklist for KES keys update** [#1267](https://github.com/input-output-hk/mithril/issues/1267)\\n- Worked on the issue **Spike: Run client in browser WASM PoC** [#1254](https://github.com/input-output-hk/mithril/issues/1254)\\n- Worked on the issue **Benchmark aggregator performances** [#1220](https://github.com/input-output-hk/mithril/issues/1220)\\n- Worked on the issue **Activate Cloudflare protection of infrastructure** [#1230](https://github.com/input-output-hk/mithril/issues/1230)"},{"id":"2023-09-26-node-cli-api","metadata":{"permalink":"/2023-09-26-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-26-node-cli-api.md","source":"@site/blog/2023-09-26-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-09-26T00:00:00.000Z","formattedDate":"September 26, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.68,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-09-26-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-09-27-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-09-22-hydra"}},"content":"# 2023-09-13 - 2023-09-26\\n\\n## High level summary\\n* [cardano-node 8.4.0-pre](https://github.com/input-output-hk/cardano-node/releases/tag/8.4.0-pre) release suitable for SanchoNet.\\n* CLI continues making progress integrating governance features. During this sprint we integrated the **info** and **new-committee** governance actions.\\n* The team continued moving to the ERA top-level commands structure. Removed `--conway-era` flag from the legacy commands making conway era commands only accessible via `cardano-cli conway`.\\n* `stake-pool` command is now under the ERA top level structure.\\n* API continues integration with governance features, it is worth to higlight that now _ProposeNewCommitee_ uses the right key type (cc-cold)\\n\\n### cardano-cli\\n\\n- [Disambiguate 2-n flags in governance new-committee action](https://github.com/input-output-hk/cardano-cli/pull/302)\\n- [New version `cardano-cli-8.10.0.0`](https://github.com/input-output-hk/cardano-cli/pull/298)\\n- [Upgrade to `cardano-api-8.20.2`](https://github.com/input-output-hk/cardano-cli/pull/295)\\n- [cardano-cli: add governance create-info command](https://github.com/input-output-hk/cardano-cli/pull/292)\\n- [Release 8.9.0.0](https://github.com/input-output-hk/cardano-cli/pull/287)\\n- [Export `Cardano.CLI.Legacy.Options.pLegacyCardanoEra` for cardano-testnet](https://github.com/input-output-hk/cardano-cli/pull/286)\\n- [Rename `SomeWitness` to `SomeSigningWitness`. Rename constructors to avoid name conflicts.](https://github.com/input-output-hk/cardano-cli/pull/284)\\n- [Update cardano-api to 8.20.1.0](https://github.com/input-output-hk/cardano-cli/pull/283)\\n- [Remove unused governance-related code](https://github.com/input-output-hk/cardano-cli/pull/282)\\n- [Fix typo in stake-pool help text and clarify drep queries arguments](https://github.com/input-output-hk/cardano-cli/pull/281)\\n- [Remove redundant conversions in JSON friendly instances ](https://github.com/input-output-hk/cardano-cli/pull/280)\\n- [Regularise era based command structure](https://github.com/input-output-hk/cardano-cli/pull/279)\\n- [Simplify era handling](https://github.com/input-output-hk/cardano-cli/pull/277)\\n- [Remove `--conway-era` flag](https://github.com/input-output-hk/cardano-cli/pull/276)\\n- [Era-based `stake-pool` command](https://github.com/input-output-hk/cardano-cli/pull/275)\\n- [Fix git revision in `version` command](https://github.com/input-output-hk/cardano-cli/pull/274)\\n- [cardano-cli-8.8.0.0](https://github.com/input-output-hk/cardano-cli/pull/273)\\n\\n### cardano-api\\n\\n- [Organise eon re-exports. Export `MaryEraOnwards`](https://github.com/input-output-hk/cardano-api/pull/265)\\n- [cardano-api-internal: ProposeNewCommittee: StakeKey -> CommitteeColdKey](https://github.com/input-output-hk/cardano-api/pull/264)\\n- [New version `cardano-api-8.21.0.0`](https://github.com/input-output-hk/cardano-api/pull/262)\\n- [Delete unused eon constraints](https://github.com/input-output-hk/cardano-api/pull/256)\\n- [Export ByronEraOnly](https://github.com/input-output-hk/cardano-api/pull/255)\\n- [Replace only `AdaSupportedInEra` and `MultiAssetSupportedInEra` with eons](https://github.com/input-output-hk/cardano-api/pull/254)\\n- [New version `cardano-api-8.20.2.0`](https://github.com/input-output-hk/cardano-api/pull/250)\\n- [Add JSON instance for Hash GenesisKey ](https://github.com/input-output-hk/cardano-api/pull/249)\\n- [Support more ledger constraints](https://github.com/input-output-hk/cardano-api/pull/248)\\n- [Rename `FeatureInEra` to `Eon`](https://github.com/input-output-hk/cardano-api/pull/247)\\n- [Release 8.20.1.0](https://github.com/input-output-hk/cardano-api/pull/246)\\n- [Fix DRep Stake and DRep Stake queries for empty lists](https://github.com/input-output-hk/cardano-api/pull/245)\\n- [Delete `TxFeesExplicitInEra` and `TxFeesImplicitInEra`](https://github.com/input-output-hk/cardano-api/pull/244)\\n- [Fix typos in some deserialization error messages](https://github.com/input-output-hk/cardano-api/pull/243)\\n- [Fix querying for dreps in `transaction build` in eras before conway](https://github.com/input-output-hk/cardano-api/pull/240)\\n\\n### cardano-node\\n\\n- [Trace Configuration Trace Message Enhancement](https://github.com/input-output-hk/cardano-node/pull/5480)\\n- [Bump versions for cardano-node-8.4.0-pre](https://github.com/input-output-hk/cardano-node/pull/5474)\\n- [Updated dependencies for cardano-node-8.4.0-pre](https://github.com/input-output-hk/cardano-node/pull/5467)\\n- [cardano-node: reduce orphan instances](https://github.com/input-output-hk/cardano-node/pull/5466)\\n\\n### cardano-testnet\\n\\n- [Bump versions for cardano-node-8.4.0-pre](https://github.com/input-output-hk/cardano-node/pull/5474)\\n- [Update to cardano-cli 8.9.0.0](https://github.com/input-output-hk/cardano-node/pull/5471)\\n- [Updated dependencies for cardano-node-8.4.0-pre](https://github.com/input-output-hk/cardano-node/pull/5467)\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2023-09-22-hydra","metadata":{"permalink":"/2023-09-22-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-22-hydra.md","source":"@site/blog/2023-09-22-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-09-22T00:00:00.000Z","formattedDate":"September 22, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.035,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-09-22-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-09-26-node-cli-api"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-09-22-performance-and-tracing"}},"content":"## High-level summary\\n\\nThis week, the Hydra team conducted the monthly review meeting in\\ncollaboration with Mithril, enhancing project coordination.\\n\\nThe team improved the gen-hydra-key node command for smoother usability\\nand identified concrete steps to enhance network resiliency in feature\\nitems [#188](https://github.com/input-output-hk/hydra/issues/188),\\n[#1080](https://github.com/input-output-hk/hydra/issues/1080), and\\n[#1079](https://github.com/input-output-hk/hydra/issues/1079).\\nAdditionally, they contributed the aiken-mode editor integration to the\\naiken-lang organization, updated dependencies to utilize cardano-api\\n8.20, and published the Hydra security advisory CVE-2023-42806 with a\\nworkaround available for users.\\n\\nThese efforts demonstrate the team\\\\\'s commitment to project improvement,\\nsecurity, and open-source community collaboration.\\n\\n## What did the team achieve this week\\n\\n- Conducted the monthly review meeting together with Mithril\\n- Improved gen-hydra-key node command\\n [#1077](https://github.com/input-output-hk/hydra/pull/1077)\\n- Established a clear plan to improve resiliency of network and manifested\\n feature items [#188](https://github.com/input-output-hk/hydra/issues/188),\\n [#1080](https://github.com/input-output-hk/hydra/issues/1080) and\\n [#1079](https://github.com/input-output-hk/hydra/issues/1079)\\n- Moved [aiken-mode](https://github.com/aiken-lang/aiken-mode) (created by SN)\\n to aiken-lang organization\\n- Updated dependencies to using cardano-api 8.20\\n [#1075](https://github.com/input-output-hk/hydra/pull/1075)\\n- Published security advisory\\n [CVE-2023-42806](https://github.com/input-output-hk/hydra/security/advisories/GHSA-gr36-mc6v-72qq)\\n (workaround available)\\n\\n## What are the goals of next week\\n\\n- Write-up the monthly report for September\\n- Finish \\"network resilience to disconnects\\"\\n [#188](https://github.com/input-output-hk/hydra/issues/188)\\n- Finish kupo integration with hydra\\n [#1078](https://github.com/input-output-hk/hydra/issues/1078)\\n- Discuss and decide on using aiken or not\\n- Address the published security advisory\\n [CVE-2023-42806](https://github.com/input-output-hk/hydra/security/advisories/GHSA-gr36-mc6v-72qq)\\n (to not require workaround)\\n- Ideally, release 0.13.0"},{"id":"2023-09-22-performance-and-tracing","metadata":{"permalink":"/2023-09-22-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-22-performance-and-tracing.md","source":"@site/blog/2023-09-22-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-09-22T00:00:00.000Z","formattedDate":"September 22, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.445,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-09-22-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-09-22-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-09-20-consensus"}},"content":"## High level summary\\n\\n* Benchmarking: We\'ve performed both low-level network and high-level variance analysis of our benchmarking clusters.\\n* Infrastructure: Our reporting pipeline was adjusted to classify various workloads easily reducing rework time.\\n* Tracing: Work on machine-readable tracing of tracer configuration is ongoing.\\n* Nomad backend: We\'ve been able to eliminate several possible confounders on the nomad cluster.\\n* Team: We\'re currently onboarding a new team member: Welcome to Cardano Performance & Tracing, Baldur Bl\xf6ndal!\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nAs part of the effort to bring the Nomad backend into production use, we\'ve been equipping both that and the existing benchmarking\\nbackend with means to measure and document network latency for each run. Furthermore we\'ve implemented means to\\ncapture TCP packets for a limited time window during a benchmarking run - which will allow us to spot differences\\nin the behaviour of the underlying networking stack at OS level. \\n\\nAdditionally, we\'re running variance analysis in parallel on both backends to ascertain confidence in metrics originating from either. We\'ve concluded that baseline profile runs aren\'t directly comparable between the two, so we decided\\nto compare standard deviations instead to validate the measurements from nomad.\\n\\n### Infrastructure\\n\\nReporting on benchmarks does require human time and effort to rework the final document. Improvements to the reporting pipeline\\nhave been merged to `master`. They reduce the time necessary to do so by various changes to the template and the workload classification logic in analysis. \\n\\nBeyond that, we\'ve looked into issues where services would quit with an unjustified exit failure upon shutdown - under rare circumstances. By reworking shutdown logic for `trace-dispatcher` and `tx-generator` we were able to address those issues.\\n\\n### Tracing\\n\\nAfter various steps in constructing a configuration upon node startup, it is vital to document\\nwhich runtime configuration the node arrived eventually. We\'re working on providing a machine-readable JSON/YAML\\ntrace message for that purpose. \\n\\nThis will facilitate hot-reloading a node\'s tracer configuration in the future: users will be able to take such a trace message, apply their intended change and hot-reload it immediately into the node. \\n\\n### Nomad backend\\n\\nAs with the existing benchmarking cluster, nomad is currently under scrutiny with regard to the reliability of metrics it\\nproduces, as well as the behaviour of its OS-level network stack. For instance, differing kernel versions can have an\\nimpact on our measurements, as we\'d be basically using two different instruments to take them. \\n\\nAlong the way we\'ve already been successful in eliminating some possible confounders that had been introduced by the nomad service\\nor the slightly different system architecture of the new cluster.\\n\\n### New team member\\n\\nBaldur Bl\xf6ndal is an extremely capable and experienced Haskell developer. Also, he\'s an excellent fit for our existing team.\\nSo I\'m very pleased to welcome him onboard with IOG, and with Performance & Tracing. He will be working on `cardano-tracer`, the component receiving, processing and making available node traces and metrics."},{"id":"2023-09-20-consensus","metadata":{"permalink":"/2023-09-20-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-20-consensus.md","source":"@site/blog/2023-09-20-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-09-20T00:00:00.000Z","formattedDate":"September 20, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":1.82,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-09-20-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-09-22-performance-and-tracing"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-09-20-mithril"}},"content":"## High level summary\\n\\nWe have a proposed fix for the mempool forging regression observed in the UTxO-HD branch. We need to confirm this by running system level benchmarks.\\nWe are still working on a fall back mechanism for keeping the baseline performance of Cardano node, if the performance of the UTxO-HD is not enough.\\nOn the Genesis front, we confirmed with the researchers that the proposed Genesis design is satisfactory for the historical Cardano chain.\\nWe also have a proposed fix for the wrong protocol version bug, found in the Sanchonet, after transitioning to Conway.\\n\\n### UTxO-HD\\n\\n- We optimized the mempool revalidation process, which in turn ought to solve the regression observed during system-level benchmarks in the in-memory version ([349](https://github.com/input-output-hk/ouroboros-consensus/pull/349)). System level benchmark results are pending.\\n- Regarding the workaround to keep the node\'s baseline performance if that of the in-memory backend turns out not to be enough for our stakeholders ([344](https://github.com/input-output-hk/ouroboros-consensus/issues/344)), we are still expanding the legacy block package such that we could at some point run the node with a legacy Cardano block. There are some loose ends to wrap up before we can begin the first test run.\\n- We also brought the `UTxO-HD` branch up to date with node version `8.4.0`.\\n\\n### Genesis\\n\\n- We finished the discussion with the Researchers on how to argue that the proposed Genesis design is satisfactory for the existing historical Cardano chain.\\n We are now drafting the final self-contained argument. ([4157](https://github.com/input-output-hk/ouroboros-network/issues/4157))\\n\\n### Support\\n\\n- We debugged a bad parameter update on the `Babbage` to `Conway` transition in the SanchoNet testnet ([339](https://github.com/input-output-hk/ouroboros-consensus/issues/339)).\\n A superficial patch is within reach and we are in the process of reviewing the PRs related to this fix ([340](https://github.com/input-output-hk/ouroboros-consensus/pull/340), [354](https://github.com/input-output-hk/ouroboros-consensus/pull/354), and [355](https://github.com/input-output-hk/ouroboros-consensus/pull/355))\\n However we are investigating a more principled redesign of the epoch transition logic, which required us to revisit the existing interfaces of the `ConsensusProtocol` type class and the `HardForkBlock` combinator ([345](https://github.com/input-output-hk/ouroboros-consensus/issues/345) and [346](https://github.com/input-output-hk/ouroboros-consensus/pull/346)). This is important to prevent these kind of errors in the future. This is an overdue step in the process of taking full ownership of the HFC: reconsidering original HFC design decisions for which we now have much more context, a few years later."},{"id":"2023-09-20-mithril","metadata":{"permalink":"/2023-09-20-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-20-mithril.md","source":"@site/blog/2023-09-20-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-09-20T00:00:00.000Z","formattedDate":"September 20, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":0.935,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-09-20-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-09-20-consensus"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-09-15-goedel"}},"content":"## High level overview\\nThis week, the Mithril team has completed the refactoring of the terraform deployment workflows in GitHub actions, and the implementation of snapshot compression parameters in the deployments. They kept working on the refactoring and standardization of the errors in the Mithril nodes. The team also completed the implementation of Cloudflare protection for the aggregator infrastructure and started working on its deployment and activation in the Mithril networks. Additionally, they worked on recording download statistics on the aggregator which will be used to produce usage reports. \\n\\nFinally, they kept working on the aggregator performance bottleneck that occurs with high client traffic and started creating a new distribution.\\n\\n## Low level overview\\n- Completed the issue **Add snapshot compression parameters in infrastructure deployments** [#1200](https://github.com/input-output-hk/mithril/issues/1200)\\n- Completed the issue **Add Cloudflare protection of infrastructure** [#986](https://github.com/input-output-hk/mithril/issues/986)\\n- Worked on the issue **Record statistics about the downloaded snapshot in the aggregator** [#1127](https://github.com/input-output-hk/mithril/issues/1127)\\n- Worked on the issue **Error refactoring** [#798](https://github.com/input-output-hk/mithril/issues/798)\\n- Worked on the issue **Activate Cloudflare protection of infrastructure** [#1230](https://github.com/input-output-hk/mithril/issues/1230)\\n- Worked on the issue **Release new `2337` distribution** [#1219](https://github.com/input-output-hk/mithril/issues/1219)\\n- Completed the issue **Upgrade dependencies** [#1238](https://github.com/input-output-hk/mithril/issues/1238)"},{"id":"2023-09-15-goedel","metadata":{"permalink":"/2023-09-15-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-goedel.md","source":"@site/blog/2023-09-15-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-09-15T00:00:00.000Z","formattedDate":"September 15, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.44,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-09-15-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-09-20-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-09-15-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThe team is currently formalising mini protocols and also further\\ndeveloping the performance modelling prototype.\\n\\n## Details\\n\\n* working on collating and open sourcing performance analysis prototype\\n\\n* improvements to Ouroboros Praos specification in Isabelle\\n\\n* working on formalising chain sync mini-protocol\\n\\n* reviewing an alternatice semantics for DeltaQ\\n\\n* Seminar talk at U. Bergen on algebraic properties of timeliness"},{"id":"2023-09-15-hydra","metadata":{"permalink":"/2023-09-15-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-hydra.md","source":"@site/blog/2023-09-15-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-09-15T00:00:00.000Z","formattedDate":"September 15, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.94,"hasTruncateMarker":false,"authors":[{"name":"Sasha Bogicevic","title":"Hydra Software Engineer","url":"https://github.com/v0d1ch","imageURL":"https://github.com/v0d1ch.png","key":"v0d1ch"},{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-09-15-hydra","authors":["v0d1ch","ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-09-15-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-09-15-ledger"}},"content":"## High-level summary\\n\\nThis week, most of the Hydra team was attending a cardano scaling workshop in\\nNantes, France. They used this oportunity to meet fellow mithril team and spend\\nsome time together to hack on some code and, as always, reflect on the past work\\nand find optimal path forward for both projects. They also fixed a bug that\\ncaused hydra-node to crash when querying L1, worked on a new network resillience\\nproof-of-concept and accepted a new ADR related to stateless transaction\\nobservation.\\n\\n## What did the team achieve this week\\n\\n- Cardano scaling workshop with members of hydra and mithril teams \\n- Accepted user contribution for possible new use-case [#1048](https://github.com/input-output-hk/hydra/pull/1048)\\n- Fix for the hydra-node crash related to internal wallet query [#1053](https://github.com/input-output-hk/hydra/pull/1053)\\n- Collected experimental CI findings [#1070](https://github.com/input-output-hk/hydra/pull/1070)\\n- Propose first POC for the network resilience [#1074](https://github.com/input-output-hk/hydra/pull/1074)\\n\\n## What are the goals of next week\\n\\n- Monthly review meeting & report including updates from Mithril\\n- Review POC and discuss our options for the network resilience\\n- Update cardano-api to version 8.20\\n- Address TODOs on aiken commit validator [#1072](https://github.com/input-output-hk/hydra/pull/1072)\\n- Complete hydra-support in kupo [kupo#117](https://github.com/CardanoSolutions/kupo/pull/117)"},{"id":"2023-09-15-ledger","metadata":{"permalink":"/2023-09-15-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-ledger.md","source":"@site/blog/2023-09-15-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-09-15T00:00:00.000Z","formattedDate":"September 15, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.645,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-09-15-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-09-15-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/2023-09-15-network"}},"content":"## High level summary\\n\\nThe Ledger team\'s focus is still mainly on the Conway era implementation.\\n\\nWe were able to add ability to specify initial Constitutional Comittee and the initial\\nversion of Constitution. Priority in which Governance Action are now enacted matches the\\nspecification. DRep\'s deposits are now properly accounted for. Governance actions that are\\nnot allowed to be voted on by Stake Pool operators and Constitutional Committee members\\nare prevented by transaction submission failure, rather than simply being ignored. There\\nwas a few important CDDL fixes as well as a lot of new round trip serialization\\ntests. Constraint based testing framework has also received a lot of improvements.\\n\\n## Low level summary\\n\\n### Conway era\\n\\n* [pull-3681] - Conway Genesis additions\\n* [pull-3690] - Preserve the order of ProposalProcedures\\n* [pull-3705] - Removed ProtVer from EnactState\\n* [pull-3700] - Add conway-specific certs to deposit/refunds\\n* [pull-3704] - Add comments on deprecating certs to Conway CDDL\\n* [pull-3698] - Reordering of governance actions\\n* [pull-3712] - Disallow empty fields in ConwayTxBodyRaw\\n* [pull-3716] - Abstract threshold calculation\\n* [pull-3725] - Fix mistaken use of dollar sign in cddl files\\n* [pull-3718] - Predicate failure for mismatched Voter GovAction\\n* [pull-3721] - Committee expiration, validation and modification\\n\\n### Improvements and releasing\\n\\n* [pull-3629] - Add rule-transition diagrams in dot syntax\\n* [pull-3680] - Bump Plutus deps to 1.11\\n* [pull-3708] - Post release changes\\n\\n### Testing\\n\\n* [pull-3730] - Implement `Show` instance for `Rep` using `IsTypeable`\\n* [pull-3697] - Rewrite testEql using Typeable to make it impossible to forget cases\\n* [pull-3709] - Add many new features to the Constrained modues in cardano-ledger-test\\n* [pull-3726] - Conway and other eras serialization roundtrip tests\\n* [pull-3713] - Improve CI resiliency against GitHub issues\\n\\n[pull-3681]: https://github.com/input-output-hk/cardano-ledger/pull/3681\\n[pull-3690]: https://github.com/input-output-hk/cardano-ledger/pull/3690\\n[pull-3705]: https://github.com/input-output-hk/cardano-ledger/pull/3705\\n[pull-3680]: https://github.com/input-output-hk/cardano-ledger/pull/3680\\n[pull-3708]: https://github.com/input-output-hk/cardano-ledger/pull/3708\\n[pull-3700]: https://github.com/input-output-hk/cardano-ledger/pull/3700\\n[pull-3704]: https://github.com/input-output-hk/cardano-ledger/pull/3704\\n[pull-3698]: https://github.com/input-output-hk/cardano-ledger/pull/3698\\n[pull-3713]: https://github.com/input-output-hk/cardano-ledger/pull/3713\\n[pull-3712]: https://github.com/input-output-hk/cardano-ledger/pull/3712\\n[pull-3697]: https://github.com/input-output-hk/cardano-ledger/pull/3697\\n[pull-3629]: https://github.com/input-output-hk/cardano-ledger/pull/3629\\n[pull-3716]: https://github.com/input-output-hk/cardano-ledger/pull/3716\\n[pull-3725]: https://github.com/input-output-hk/cardano-ledger/pull/3725\\n[pull-3718]: https://github.com/input-output-hk/cardano-ledger/pull/3718\\n[pull-3709]: https://github.com/input-output-hk/cardano-ledger/pull/3709\\n[pull-3726]: https://github.com/input-output-hk/cardano-ledger/pull/3726\\n[pull-3721]: https://github.com/input-output-hk/cardano-ledger/pull/3721\\n[pull-3730]: https://github.com/input-output-hk/cardano-ledger/pull/3730"},{"id":"2023-09-15-network","metadata":{"permalink":"/2023-09-15-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-network.md","source":"@site/blog/2023-09-15-network.md","title":"Network Team Update","description":"High-level overview of sprint 44","date":"2023-09-15T00:00:00.000Z","formattedDate":"September 15, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.41,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-09-15-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-09-15-ledger"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-09-15-sre"}},"content":"## High-level overview of [sprint 44][sprint-44]\\n\\n### Bootstrap Peers\\n\\nIn this sprint, we focused on developing bootstrap peers.\\n\\nThanks to the input from Samuel Leathers (IOG) and John Lotoski (IOG), we\\nidentified a possible improvement to bootstrap peers. A more detailed\\ndescription is available [here][ouroboros-network-#4675].\\n\\n### Cardano-Node-8.4.0 Release\\n\\nWe also were responsible for the `cardano-node-8.4.0-pre` release. A final\\nintegration [PR][cardano-node-#5467] is currently being merged. We published\\nnew versions of `ouroboros-consensus`, `cardano-api` and `cardano-cli`.\\n\\n### Towards Typed Protocols 0.2.0.0\\n\\nWe also updated the future `typed-protocols-0.2.0.0` and its integration with\\n`cardano-node`. This is towards our goal which we planned for the next\\nquarter. The identified tasks are to fix breaking tests, and then measure and\\naddress possible performance regressions.\\n\\n### Tech Debt\\n\\nMark Tullsen (Galois) submitted two more PRs: [ouroboros-network-#4663],\\n[ouroboros-network-#4664]. We provided feedback on their other pull requests: [ouroboros-network-#4661] and \\n[ouroboros-network-#4660].\\n\\n### P2P adoption\\n\\nIn the last two weeks, there was a regression in P2P adoption concerning\\nthe number of SPOs or stakes, although the number of overall P2P relays has\\nincreased. Karl Knutsson ([Cardano Foundation][CF]) is investigating \\nthis issue.\\n![P2P relays](/images/network/2023-09-14-p2p-relays.png)\\n\\n\\nThe following graphs show several different versions of relays running on the mainnet. The\\ngreen line `NodeToNodeVersionV10.True` denotes P2P relays, which slowly\\nincrease over time. The `V9` and earlier versions of the `node-to-node`\\nthe protocol indicates nodes version `1.35.x` or earlier.\\n![node versions](/images/network/2023-09-14-relay-versions.png)\\n\\nData has been kindly provided by [Cardano Foundation][CF] and their mainnet\\nmonitoring infrastructure.\\n\\n### Open Source\\n\\nWe are in the process of upstreaming our ffi to Windows Named Pipes API to the `Win32` package, see [win32-220].\\n\\n[CF]: https://cardanofoundation.org/\\n[Galois]: https://galois.com/\\n[cardano-node-#5467]: https://github.com/input-output-hk/cardano-node/pull/5467\\n[ouroboros-network-#3836]: https://github.com/input-output-hk/ouroboros-network/issues/3836\\n[ouroboros-network-#4660]: https://github.com/input-output-hk/ouroboros-network/pull/4660\\n[ouroboros-network-#4661]: https://github.com/input-output-hk/ouroboros-network/pull/4661\\n[ouroboros-network-#4663]: https://github.com/input-output-hk/ouroboros-network/pull/4663\\n[ouroboros-network-#4664]: https://github.com/input-output-hk/ouroboros-network/pull/4664\\n[ouroboros-network-#4675]: https://github.com/input-output-hk/ouroboros-network/issues/4675\\n[sprint-44]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+44%22\\n[win32-#220]: https://github.com/haskell/win32/pull/220"},{"id":"2023-09-15-sre","metadata":{"permalink":"/2023-09-15-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-sre.md","source":"@site/blog/2023-09-15-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-09-15T00:00:00.000Z","formattedDate":"September 15, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.055,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-09-15-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-09-15-network"},"nextItem":{"title":"DB-sync Team Update","permalink":"/2023-09-14-db-sync"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general environment maintenance.\\n\\nSome notable recent updates or improvements include:\\n* Sanchonet environment was updated to 8.3.0-pre.\\n* [Cardano-parts](https://github.com/input-output-hk/cardano-parts) now enables downstream consumers to spin up multiple cardano-networks per repository, an example of which is [here](https://github.com/input-output-hk/cardano-playground/blob/main/flake/colmena.nix#L89-L108).\\n\\n## Lower level summary\\n\\n### Capkgs\\n* Add a readme, optimize flake inputs, improve nu and ruby parsing scripts: [capkgs-compare](https://github.com/input-output-hk/capkgs/compare/f3dcffb...c2c7680)\\n\\n### Cardano-ops\\n* Adjust mainnet p2p relays to ~100%, with a legacy canary: [cardano-ops-commit](https://github.com/input-output-hk/cardano-ops/commit/d3cce2585fae6a52ff5833373137af3cddbc6710)\\n\\n### Cardano-parts\\n* Utilize content addressed binaries to significantly improve eval, build and devShell performance: [cardano-parts-pull-8](https://github.com/input-output-hk/cardano-parts/pull/8)\\n* Add an aws flakeModule for obtaining ec2 specs, fix node.socket devShell error: [cardano-parts-pull-10](https://github.com/input-output-hk/cardano-parts/pull/10)\\n* Fix warns thrown during some builds and devShell usage: [cardano-parts-pull-11](https://github.com/input-output-hk/cardano-parts/pull/11)\\n* Add flakeModules and nixosModules in preparation for cardano-node grouped deployments: [cardano-parts-pull-12](https://github.com/input-output-hk/cardano-parts/pull/12)\\n* Enable group deployments by: adding several module, profile and role nixosModules; updating flakeModules; adding sops age secrets handling: [cardano-parts-pull-13](https://github.com/input-output-hk/cardano-parts/pull/13)\\n\\n### Cardano-perf\\n* Modify the wireguard network from mesh to star, enable ICMP, enable Nomad raw_exec and add hydraJobs: [cardano-perf-compare](https://github.com/input-output-hk/cardano-perf/compare/9f9917c...7fc1b4c)\\n\\n### Cardano-playground\\n* Define preliminary cardano-world networks on cardano-playground: [cardano-playground](https://github.com/input-output-hk/cardano-playground/pull/1)\\n\\n### Cardano-world\\n* Rotate KES on preview and preprod, purge unused subnets, adjust explorer rate limits: [cardano-world-compare](https://github.com/input-output-hk/cardano-world/compare/306ef6c...e9b2ed2)\\n* Update sanchonet network to 8.3.0: [cardano-world-compare](https://github.com/input-output-hk/cardano-world/compare/master...sanchonet-updated)"},{"id":"2023-09-14-db-sync","metadata":{"permalink":"/2023-09-14-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-14-db-sync.md","source":"@site/blog/2023-09-14-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-09-14T00:00:00.000Z","formattedDate":"September 14, 2023","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.47,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-09-14-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-09-15-sre"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-09-12-node-cli-api"}},"content":"## High level summary\\nWe have created a DBSync tag `sancho-1-1-0` which can follow sanchonet. Also\\nthe team has ran a number of benchmarks and tests for the new options/flavours of DBSync\\nand prepared a blogpost which summorises them, for downstream components.\\n\\n## Lower level summary\\n- Integration of node-8.3.x and support for Sanchonet on Conway\\n[#1498](https://github.com/input-output-hk/cardano-db-sync/pull/1498)\\n- Simplifications of new feautures\\n[#1496](https://github.com/input-output-hk/cardano-db-sync/pull/1496)\\n- Makes it impossible to restart DBSync with different schema options and adds\\ntests for them\\n[#1466](https://github.com/input-output-hk/cardano-db-sync/pull/1466)\\n- CI fixes\\n[#1494](https://github.com/input-output-hk/cardano-db-sync/pull/1494)\\n[#1491](https://github.com/input-output-hk/cardano-db-sync/pull/1491)\\n- Prepared a blogpost about different DBSync options\\n[blog](https://github.com/input-output-hk/cardano-db-sync/blob/blog/blog/blog.pdf)"},{"id":"2023-09-12-node-cli-api","metadata":{"permalink":"/2023-09-12-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-12-node-cli-api.md","source":"@site/blog/2023-09-12-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-09-12T00:00:00.000Z","formattedDate":"September 12, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":2.605,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-09-12-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/2023-09-14-db-sync"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-09-08-hydra"}},"content":"# 2023-08-30 - 2023-09-12\\n\\n## High level summary\\n\\nRelease of [Cardano-node 8.3.0-pre](https://github.com/input-output-hk/cardano-node/releases/tag/8.3.0-pre) for SanchoNet. Adds DReps to the Conway governance rules. Allows registration of DReps, delegation to DReps and voting on constitution action with DReps and SPOs.\\nThis release completes [phase 2 of SanchoNet feature roll out plan](https://sancho.network/get-started#sanchonet-feature-rollout)\\n\\nCLI continues on its migration to a era-based top-level commands. This sprint we moved `text-view`, `key`, `query`, `genesis`, `node`, `stake-address`, `transaction` and `address` into this new command structure. This is the initial migration, there is still some clean-up to do on future sprints.\\n\\nWe are moving the `drep delegation-certificate` to the stake-address command so delegating to a drep is done via `stake-addres vote-delegation-certificate`. Along the same lines, we are renaming\\n`stake-address delegation-certificate` (delagating to a stake pool) to `stake-address stake-delegation-certificate` to distinguish between stake delegation to a pool and votes delegation to a drep. On top\\nof that, there is a new type of delegation certificate to delegate (stake) to a stake pool and (votes) to a drep simultaneosuly `stake-address stake-and-vote-delegation-certificate`. Note that change is not included on 8.3 but will come on 8.4.\\nRemoving `--conway-era` flag from all the `transaction` sub-commands.\\n\\nUpdate description fields in delegation certificates from `Stake Address Delegation Certificate` to respectively (Conway onwards):\\n - `Stake Delegation Certificate`\\n - `Vote Delegation Certificate`\\n - `Stake and Vote Delegation Certificate`\\n\\n### cardano-cli\\n\\n- [New `stake-address vote-delegation-certificate` command](https://github.com/input-output-hk/cardano-cli/pull/261)\\n- [New `stake-address stake-and-vote-delegation-certificate` command](https://github.com/input-output-hk/cardano-cli/pull/257)\\n- [Change `TreasuryWithdrawalCmd` to a record](https://github.com/input-output-hk/cardano-cli/pull/260)\\n- [Simplify `stake-address stake-delegation-certificate` command across eras](https://github.com/input-output-hk/cardano-cli/pull/256)\\n- [Remove `EraBased` prefix and add `Cmd` suffix](https://github.com/input-output-hk/cardano-cli/pull/254)\\n- [#221 Update description fields on delegation certificates](https://github.com/input-output-hk/cardano-cli/pull/250)\\n- [Update error message for eras mismatch between node and cli](https://github.com/input-output-hk/cardano-cli/pull/249)\\n- [Era based `address` commands](https://github.com/input-output-hk/cardano-cli/pull/248)\\n- [Consistent naming for `stake-pool` command related types, functions and modules](https://github.com/input-output-hk/cardano-cli/pull/246)\\n- [Disable `redundant-constraints` warning only on `ghc-8.10.7`](https://github.com/input-output-hk/cardano-cli/pull/245)\\n- [Remove `EraBased` prefix from era-based commands](https://github.com/input-output-hk/cardano-cli/pull/244)\\n- [Rename `delegation-certificate` to `stake-delegation-certificate` only in era-based command structure](https://github.com/input-output-hk/cardano-cli/pull/243)\\n- [Move `node` run commands implementation into era based](https://github.com/input-output-hk/cardano-cli/pull/242)\\n- [Era-based `stake-address` command group](https://github.com/input-output-hk/cardano-cli/pull/241)\\n- [Remove duplicate instances and add new `FeatureInEra ShelleyBasedEra` instance](https://github.com/input-output-hk/cardano-cli/pull/240)\\n- [Remove `EraBased` prefix from errors](https://github.com/input-output-hk/cardano-cli/pull/239)\\n- [Move `text-view` run commands implementation into era-based](https://github.com/input-output-hk/cardano-cli/pull/238)\\n- [Move `key` run commands implementation into era based](https://github.com/input-output-hk/cardano-cli/pull/237)\\n- [Move `query` run commands implementation into era based](https://github.com/input-output-hk/cardano-cli/pull/236)\\n- [Move `genesis` run commands implementation into era based](https://github.com/input-output-hk/cardano-cli/pull/235)\\n- [Move `pool` run commands implementation into era based](https://github.com/input-output-hk/cardano-cli/pull/234)\\n- [Move `stake-address` run commands implementation into era based](https://github.com/input-output-hk/cardano-cli/pull/233)\\n- [Move `address` run command implementation into era-based](https://github.com/input-output-hk/cardano-cli/pull/232)\\n- [Delete legacy `conway governance` commands](https://github.com/input-output-hk/cardano-cli/pull/231)\\n- [Era sensitive transaction run commands](https://github.com/input-output-hk/cardano-cli/pull/230)\\n- [Move transaction command code into era based](https://github.com/input-output-hk/cardano-cli/pull/229)\\n- [Fix query `key-period-info`](https://github.com/input-output-hk/cardano-cli/pull/228)\\n- [New `hprop_golden_shelleyStakeAddressRegistrationCertificateWithBuildRaw` test](https://github.com/input-output-hk/cardano-cli/pull/227)\\n- [Prefix complex delegation certificate option](https://github.com/input-output-hk/cardano-cli/pull/225)\\n\\n### cardano-api\\n\\n- [Fix test constraints functions](https://github.com/input-output-hk/cardano-api/pull/233)\\n- [New `caseShelleyToBabbageAndConwayEraOnwards` function](https://github.com/input-output-hk/cardano-api/pull/231)\\n- [Delete deprecated functions and types](https://github.com/input-output-hk/cardano-api/pull/230)\\n- [Release 8.19.0.0](https://github.com/input-output-hk/cardano-api/pull/228)\\n- [`FeatureInEra` instances for `CardanoEra` and `ShelleyBasedEra`](https://github.com/input-output-hk/cardano-api/pull/226)\\n- [New `mapSomeAddressVerification` key function](https://github.com/input-output-hk/cardano-api/pull/225)\\n- [Fix type signature of `queryGenesisParameters` so that it can be queried in any era](https://github.com/input-output-hk/cardano-api/pull/224)\\n- [Release 8.18.0.0](https://github.com/input-output-hk/cardano-api/pull/222)\\n- [Fix exception when executing drep queries](https://github.com/input-output-hk/cardano-api/pull/221)\\n\\n### cardano-node\\n\\n- [Cardano-node 8.3.0-pre](https://github.com/input-output-hk/cardano-node/releases/tag/8.3.0-pre)\\n- [Fix deadlock issue with stdout tracer in tx-generator](https://github.com/input-output-hk/cardano-node/pull/5460)\\n- [nix: workbench tracing configuration](https://github.com/input-output-hk/cardano-node/pull/5453)\\n\\n### cardano-testnet\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2023-09-08-hydra","metadata":{"permalink":"/2023-09-08-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-08-hydra.md","source":"@site/blog/2023-09-08-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-09-08T00:00:00.000Z","formattedDate":"September 8, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.06,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-09-08-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-09-12-node-cli-api"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-09-07-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team improved the commit process with support for inline\\ndatums. They simplified the chain layer by refactoring how the chain state is\\npersisted. Updates to the Hydra tutorial were completed, including CI workflows\\nto keep it up-to-date. The team engaged in discussions with researchers about\\nincremental commits & decommits, and drafted an architectural decision record\\nfor a resource-based API. They also explored simpler solutions for the upcoming\\nnetwork resilience feature.\\n\\n## What did the team achieve this week\\n\\n- Support InlineScriptDatum in commit\\n [#1043](https://github.com/input-output-hk/hydra/issues/1043)\\n- Refactored chain state persistency\\n [#1049](https://github.com/input-output-hk/hydra/pull/1049)\\n- Completed tutorial updates (by adding CI and some cleanup)\\n [#997](https://github.com/input-output-hk/hydra/issues/997)\\n- Intersect Open Source committee meeting\\n- Experimented with various models to better express the \\\\\\"Network\\n resilience problem\\\\\\" to find a KISS solution for\\n [#188](https://github.com/input-output-hk/hydra/issues/188)\\n- Drafted and discussed incremental de-/commit features within team\\n and with researchers\\n [#199](https://github.com/input-output-hk/hydra/issues/199) and\\n [#1057](https://github.com/input-output-hk/hydra/issues/1057)\\n- Created ADR for a resource based overhaul of the API\\n [#1028](https://github.com/input-output-hk/hydra/pull/1028)\\n\\n## What are the goals of next week\\n\\n- Meetup of Hydra & Mithril contributors in Nantes, France\\n- Integrated cardano-api 8.15 to have GHC 9.6 support\\n- A clear design for incremental commits (decommits are already\\n understood)\\n- An ADR for improving tx construction & observation to not need chain\\n state"},{"id":"2023-09-07-mithril","metadata":{"permalink":"/2023-09-07-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-07-mithril.md","source":"@site/blog/2023-09-07-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-09-07T00:00:00.000Z","formattedDate":"September 7, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.53,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-09-07-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-09-08-hydra"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-09-07-performance-and-tracing"}},"content":"## High level overview\\nThe Mithril team has released a new distribution [`2335.0`](https://github.com/input-output-hk/mithril/releases/tag/2335.0) which brings enhancements to the client: support for simultaneous downloading and unpacking of the snapshot archives, support for one line command restoration of the latest snapshot, and availability of machine readable progress information.\\n\\nThey have also worked on snapshots enhancements: implementation of the `zstandard` compression to produce smaller archives, and providing the version of the Cardano node used to create the archive in the snapshot artifacts. They have completed the second phase of the implementation of the stress test tool to benchamrk the aggregator. Additionally, they have kept working on refactoring and standardizing errors in the Mithril nodes.\\n\\nFinally, they have worked on adding Cloudflare protection to the infrastructure, and they have fixed some bugs that occurred during restoration of a snapshot by a client.\\n\\n## Low level overview\\n- Completed the issue `Use \'zstandard\' compression for snapshot archives` [#876](https://github.com/input-output-hk/mithril/issues/876)\\n- Completed the issue `Design & implement stress test tool for aggregator - phase 2` [#1155](https://github.com/input-output-hk/mithril/issues/1155)\\n- Completed the issue `Provide progress information with \'--json\' option in Client` [#1095](https://github.com/input-output-hk/mithril/issues/1095)\\n- Completed the issue `Make client download and extract the archive simultaneously` [#1115](https://github.com/input-output-hk/mithril/issues/1115)\\n- Completed the issue `Add aggregator Cardano node version in snapshot artifact` [#948](https://github.com/input-output-hk/mithril/issues/948)\\n- Completed the issue `Make Cardano node version part of the Mithril network configuration` [#947](https://github.com/input-output-hk/mithril/issues/947)\\n- Completed the issue `Post deployment \'mainnet\' infrastructure` [#1091](https://github.com/input-output-hk/mithril/issues/1091)\\n- Worked on the issue `Errors refactoring` [#798](https://github.com/input-output-hk/mithril/issues/798)\\n- Worked on the issue `Add Cloudflare protection of infrastructure` [#986](https://github.com/input-output-hk/mithril/issues/986)\\n- Completed the issue `Failed to restore recent snapshot with strange error` [#1160](https://github.com/input-output-hk/mithril/issues/1160)\\n- Completed the issue `Update \'ed25519-dalek\' to \'2.0.0\'` [#1188](https://github.com/input-output-hk/mithril/issues/1188)\\n- Completed the issue `Add target networks blocks in release notes` [#1151](https://github.com/input-output-hk/mithril/issues/1151)\\n- Completed the issue `Fix end to end \'wait_for_the_expected_time\' test` [#1191](https://github.com/input-output-hk/mithril/issues/1191)\\n- Completed the issue `Fix docs \'git checkout\' command` [#1174](https://github.com/input-output-hk/mithril/issues/1174)"},{"id":"2023-09-07-performance-and-tracing","metadata":{"permalink":"/2023-09-07-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-07-performance-and-tracing.md","source":"@site/blog/2023-09-07-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-09-07T00:00:00.000Z","formattedDate":"September 7, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.3,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-09-07-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-09-07-mithril"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-09-06-consensus"}},"content":"## High level summary\\n\\n* Benchmarking: We\'ve performed and analysed feature benchmarks for both UTxO-HD and the current P2P stack.\\n* Infrastructure: Various improvements of our analysis pipeline have been merged to `master`, supporting safe log truncation.\\n* Tracing: Namespace consistency checks have been merged to `master` along with a curated configuration for benchmarking.\\n* Nomad backend: We\'re productively using the new backend to measure new vs. legacy tracing system, adding many quality-of-life improvements.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nWe\'ve completed various runs and analyses targeting two distinct features of the node: UTxO-HD and Peer2Peer. \\n\\nWith our UTxO-HD benchmark we could clearly localize one point where this new way of maintaining ledger state is still costly, but at the same time confirm that in basically all other aspects UTxO-HD makes no difference in performance. \\n\\nThe Peer2Peer benchmarks focused on the effects that enabling this feature on a block producing node has on propagation times, as well as scrutinized a proposed change to the Peer2Peer network stack.\\n\\n### Infrastructure\\n\\nAs a result of optimizing in-memory representation of log objects, which are constructed from a node\'s traces, we can now analyse runs that last longer in total. For runs that exceed their expected duration, analysis now supports a truncation\\noperation that keeps the interdependencies of block events intact. \\n\\nTruncation might happen at a slightly different point\\nin time - and therefore in its log object stream - for each node in the cluster. An additional step validating the block hash timeline of the cluster has been implemented for the pipeline. It provides early feedback on whether a specific truncation will lead to a valid full analysis, which requires much more time.\\n\\n### Tracing\\n\\nConsistency checking of namespace implementation and configuration when using the new system has been completed.\\nThis feature enables feedback on when tracer implementation details in some component might have changed. It\'s also able to detect when a configuration used for operating a `cardano-node` shows inconsistencies with the namespaces the system provides - and hence needs attention. \\n \\nFurthermore, we\'ve created a fine-grained configuration of the new system that caters to benchmarking\'s need of very many\\ndetailed trace messages. It\'s aimed at mirroring the same amount of trace messages, and information, we\'re seeing from our usage of the legacy system; an important step in making benchmarks between systems comparable.\\n\\n### Nomad backend\\n\\nThe new backend is currently being used for further validation with regard to the existing cluster. Additionally, we\'re using it in production mode to comparatively benchmark both tracing systems after merging past month\'s optimizations - which is the\\nfirst real-life application of the nomad cluster. Hands-on experience in that phase translates into many small improvements which can be immediately applied to enhance user experience for the new backend."},{"id":"2023-09-06-consensus","metadata":{"permalink":"/2023-09-06-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-06-consensus.md","source":"@site/blog/2023-09-06-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-09-06T00:00:00.000Z","formattedDate":"September 6, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":2.22,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-09-06-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-09-07-performance-and-tracing"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-09-01-goedel"}},"content":"## High level summary\\n\\nWe were able to successfully run the system-level benchmarks for the UTxO-HD implementation, for the first time. There was an important regression in block forging performance that will have to be addressed before UTxO-HD is released. We also revisited the implementation of our query processing logic, which was needed to address the performance regression found in the query-by-address command. The preliminary performance results show that now the performance of this query is on-par with the Cardano baseline version, but we need further confirmation.\\nOn the Genesis front, we presented the grinding-aware safety argument for the proposed historical Cardano Genesis windows to the IOG Researchers.\\nThe Consensus release engineer finished his rotation: version `8.3.0-pre` of `cardano-node` is releasing 2023 September 5.\\n\\n## UTxO-HD\\n\\n- We ran the first successful system-level benchmarks for UTxO-HD (see [#203](https://github.com/input-output-hk/ouroboros-consensus/issues/203)) using the *in-memory* backend.\\n - We observed a factor 12 regression in the forging performance, which we will have to address. There are strong indications that the regression is due to the backing store accesses that take place when taking a mempool snapshot.\\n - After the mempool regression is fixed the benchmarks need to be ran again.\\n - System-level UTxO-HD benchmarks with the LMDB are still pending.\\n- UTxO-HD will eventually be necessary due to the growth of the UTxO set and other ledger state structures that live in memory at the moment. However, we are trying a strategy by which we could preserve the baseline performance of the node, in case SPOs and other node users are not ready to migrate yet (see [#344](https://github.com/input-output-hk/ouroboros-consensus/issues/344)).\\n- We implemented a new way of processing queries at the hard-fork block level, which resolves the performance regression observed in `GetUTxOByAddress` (see [this comment](https://github.com/input-output-hk/ouroboros-consensus/issues/205#issuecomment-1706878418)). Preliminary results are promising.\\n- Regarding the roll out plan, UTxO-HD requires a significant change in the Consensus codebase. Even though we might be able to hide any potential performance impact in the node by keeping all data in memory ([#344](https://github.com/input-output-hk/ouroboros-consensus/issues/344)), the Consensus component was significantly changed, so we might have to postpone releasing this feature to mitigate any risks of conflicting with the implementation of CIP-1694 and release of Conway.\\n\\n## Tech debt\\n\\n- We added tests that Consensus emits valid CBOR ([#3099](https://github.com/input-output-hk/ouroboros-network/issues/3099)). This helped us detect a couple of serialization bugs. The tests still need to be merged into the `main` branch ([#323](https://github.com/input-output-hk/ouroboros-consensus/pull/323)).\\n\\n## Support\\n\\n- [Nick Frisby](https://github.com/nfrisby) finished his release engineer rotation; `cardano-node 8.3.0-pre` is releasing 2023 September 5.\\n- We helped to investigate a protocol version bug in Sanchonet (see [#3491](https://github.com/input-output-hk/cardano-ledger/issues/3491)).\\n- We started to implement the Network interface for bootstrap peer functionality, from which Genesis will benefit as well (see [#91](https://github.com/input-output-hk/ouroboros-consensus/issues/91)."},{"id":"2023-09-01-goedel","metadata":{"permalink":"/2023-09-01-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-goedel.md","source":"@site/blog/2023-09-01-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-09-01T00:00:00.000Z","formattedDate":"September 1, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.43,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-09-01-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-09-06-consensus"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-09-01-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThe team is currently formalising mini protocols and also further\\ndeveloping the performance modelling prototype.\\n\\n## Details\\n\\n* finalising a presenting performance analysis internship work to the\\n formal methods team\\n\\n* developed a new Isabelle mini-protocol framework and examples\\n\\n* planning an extended version of the ICE DeltaQ paper\\n\\n* working on algebraic rules for properisation of any-to-finish"},{"id":"2023-09-01-hydra","metadata":{"permalink":"/2023-09-01-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-hydra.md","source":"@site/blog/2023-09-01-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-09-01T00:00:00.000Z","formattedDate":"September 1, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.93,"hasTruncateMarker":false,"authors":[{"name":"Sasha Bogicevic","title":"Hydra Software Engineer","url":"https://github.com/v0d1ch","imageURL":"https://github.com/v0d1ch.png","key":"v0d1ch"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-09-01-hydra","authors":["v0d1ch"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-09-01-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-09-01-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team focused primarily on changes needed in the network\\nlayer and have the first draft document related to needed design. They also\\nimproved the user experience by allowing a commit using inline datums.\\nDiscussed the off-chain governance with researchers and improved internal model\\ntests. \\n\\n## What did the team achieve this week\\n\\n- Monthly report published\\n- Small changes to hydraw and tutorial in light of the Masterclass\\n- Investigated a bug and saw it was solved by recent developments\\n- Improved the model tests by fully validating L1 transactions\\n- Enhanced the /commit API to also allow commit from scripts with inline datums (user request)\\n- Discussed off-chain governance with IOG and CF researchers\\n- Drafted a first network specification document in the context of Network resilience\\n\\n## What are the goals of next week\\n\\n- Have a clear understanding of the changes we need for the \\"Improve network resiliency\\" feature\\n- Groomed and agreed plan on incremental commits/decommits\\n- Updated tutorials including CI workflows to check consistency\\n- Update to GHC 9.6 and latest cardano dependencies (ledger/plutus)"},{"id":"2023-09-01-ledger","metadata":{"permalink":"/2023-09-01-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-ledger.md","source":"@site/blog/2023-09-01-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-09-01T00:00:00.000Z","formattedDate":"September 1, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.355,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-09-01-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-09-01-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/2023-09-01-network"}},"content":"## High level summary\\n\\nBroadly speaking the Ledger team focused on a few main areas of Conway era:\\n\\n* Creation of voting state snapshots in order to correctly delay ratification for one epoch\\n* Validation of the Governance Actions sequencing and ordering\\n* Proper expiry of DReps and Proposal Procedures\\n* Expanding Conway Genesis functionality\\n* Utilization of some of the new Protocol Parameters in ledger validation rules\\n\\n## Low level summary\\n\\n### Conway era\\n\\n* [pull-3659] - Validate Network for ProposalProcedure and TreasuryWithdrawal\\n* [pull-3637] - Avoid using sequence of tuples, by adding GovActionId to GovActionState\\n* [pull-3651] - Inactive DReps\\n* [pull-3664] - Track proposal expiry\\n* [pull-3668] - Add min committee size predicate to NewCommittee\\n* [pull-3669] - Add Proposal deposit check against PParam\\n* [pull-3676] - Fix inactive PoolStake not counting as Drep Stake\\n* [pull-3635] - Make snapshots of GovActionsState\\n* [pull-3670] - Validate previously enacted govAction\\n* [pull-3694] - Improve error reporting on the positive coin decoder\\n* [pull-3674] - Added RATIFY thresholds\\n* [pull-3684] - Add proposal delaying, remove predicate failure from ENACT\\n* [pull-3688] - DRep Refunds and update evalTransactionBalance\\n\\n### Improvements and releasing\\n\\n* [pull-3677] - Minor patch that fixes the DRep distribution computation\\n* [pull-3686] - Post patch release fixup\\n* [pull-3695] - Changelog for cardano-node-8.3 release\\n* [pull-3683] - Add two new bench mark programs\\n\\n### Testing\\n\\n* [pull-3662] - Equality on raw types\\n\\n[pull-3659]: https://github.com/input-output-hk/cardano-ledger/pull/3659\\n[pull-3637]: https://github.com/input-output-hk/cardano-ledger/pull/3637\\n[pull-3651]: https://github.com/input-output-hk/cardano-ledger/pull/3651\\n[pull-3664]: https://github.com/input-output-hk/cardano-ledger/pull/3664\\n[pull-3668]: https://github.com/input-output-hk/cardano-ledger/pull/3668\\n[pull-3669]: https://github.com/input-output-hk/cardano-ledger/pull/3669\\n[pull-3662]: https://github.com/input-output-hk/cardano-ledger/pull/3662\\n[pull-3676]: https://github.com/input-output-hk/cardano-ledger/pull/3676\\n[pull-3677]: https://github.com/input-output-hk/cardano-ledger/pull/3677\\n[pull-3635]: https://github.com/input-output-hk/cardano-ledger/pull/3635\\n[pull-3683]: https://github.com/input-output-hk/cardano-ledger/pull/3683\\n[pull-3686]: https://github.com/input-output-hk/cardano-ledger/pull/3686\\n[pull-3670]: https://github.com/input-output-hk/cardano-ledger/pull/3670\\n[pull-3694]: https://github.com/input-output-hk/cardano-ledger/pull/3694\\n[pull-3674]: https://github.com/input-output-hk/cardano-ledger/pull/3674\\n[pull-3684]: https://github.com/input-output-hk/cardano-ledger/pull/3684\\n[pull-3695]: https://github.com/input-output-hk/cardano-ledger/pull/3695\\n[pull-3688]: https://github.com/input-output-hk/cardano-ledger/pull/3688"},{"id":"2023-09-01-network","metadata":{"permalink":"/2023-09-01-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-network.md","source":"@site/blog/2023-09-01-network.md","title":"Network Team Update","description":"High-level overview of sprint 43","date":"2023-09-01T00:00:00.000Z","formattedDate":"September 1, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":2.765,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-09-01-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-09-01-ledger"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-09-01-sre"}},"content":"## High-level overview of [sprint 43][sprint-43]\\n\\nIn this sprint, we received contributions from [CF] & [Galois]. Karl Knutsson\\n([CF]) has addressed various issues regarding peer churning in P2P, timeouts\\nand our `WireShark` dissector. While the [Galois] developers focused on\\naddressing issues from their review last year. See below for more details.\\n\\nWe continued working on bootstrap peers [ouroboros-network-#4661].\\n\\nWe refactored our test suites: they are split into `io-tests` which require to\\nbe run natively on all platforms (these tests mostly contain tests that\\nrequire `IO` system calls) and `sim-tests` which are platform independent. We\\nrun `io-tests` on all supported platforms (e.g. `x86_64-linux`,\\n`x86-64-darwin`, `aarch64-darwin` and `x86_64-w64-mingw32` (Windows)) natively.\\nThe `sim-tests` are not executed on `Windows` due to memory limitations on\\nGitHub Actions runners. [ouroboros-network-#4653]\\n\\nWe also started rebasing `typed-protocols` refactoring branches.\\n\\nMarcin was appointed as the `cardano-node` release engineer for the `8.4.0-pre`\\nversion. So far he integrated `cardano-ledger-conway-1.8` and\\n`ouroboros-network-0.9.1.0` to `ouroboros-consensus`, `cardano-cli` and\\n`cardano-api`. Once we will have an integration branch for `cardano-node`,\\n`cardano-ledger-conway-1.8` and `ouroboros-consensus` packages can be released\\nto `CHaP` and PRs can be merged once they go through review & CI.\\n\\nWe also fixed some smaller issues regarding peer sharing (both were discovered\\nby Karl from [CF]). More details are included below.\\n\\n### Progress on P2P addoption\\n\\n#### SPO relays\\n\\nThere are currently ~2000 relays running P2P\\nenabled nodes that belong to 557 pools with a combined stake of 7900Mil Ada. On\\n16th of August it was ~1700 relays, 531 pools with a combined stake of 7700Mil\\nAda.\\n\\n![P2P relays](/images/network/2023-08-31-p2p-relays.png)\\n\\nThe following graphs show several different versions of relays running on the mainnet. The\\ngreen line `NodeToNodeVersionV10.True` denotes P2P relays, which slowly\\nincrease over time. The `V9` and earlier versions of the `node-to-node`\\nthe protocol indicates nodes version `1.35.x` or earlier.\\n![node versions](/images/network/2023-08-31-relay-versions.png)\\n\\nData has been kindly provided by [CF] and their mainnet monitoring\\ninfrastructure.\\n\\n#### IOG relays\\n\\nAs of this week, 90% of IOG relays are running a P2P setup. In the next sprint all\\nIOG relays will be running P2P.\\n\\n## Detailed description\\n\\nIn this sprint, we got a few contributions from [CF]:\\n* Karl made peer churning mechanism less aggressive [ouroboros-network-#4656]; and\\n* he added timeouts for idle states in `ChainSync` & `KeepAlive`\\n miniprotocols. These timeouts help a node remove idle connections from the\\n responder (server) side [ouroboros-network-#4648].\\n* he improved the `WireShark` dissector by adding support for the `peer-sharing` mini-protocol [ouroboros-network-#4656].\\n\\n[Galois] has been making progress in addressing some of the issues they raised in their review (last year):\\n* Mark Tullsen ([Galois]) has been working on refactoring the main entry function of P2P [ouroboros-network-#4661] (in review);\\n* Sam Cowger ([Galois]) has been reviewing all use cases of `error` and `unsafe` calls\\n [ouroboros-network-#4661] (in review).\\n\\n## Peer Sharing\\n\\n* Light peer sharing is only enabled when peer sharing is turned on [ouroboros-network-#4652];\\n* Handshake incorrectly reports peer sharing value. It\'s supposed to relay the\\n remote value, but instead, it returns the local value. [ouroboros-network-#4642] (in review).\\n\\n## Async Demotion Test Fix\\n\\n* We fixed an async demotion test failure which turned out to be a weakness of\\n the test itself rather than a bug in the connection manager. [ouroboros-network-#4655]\\n\\n[CF]: https://cardanofoundation.org/\\n[Galois]: https://galois.com/\\n[sprint-43]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+43%22\\n[ouroboros-network-#4615]: https://github.com/input-output-hk/ouroboros-network/issues/4615\\n[ouroboros-network-#4648]: https://github.com/input-output-hk/ouroboros-network/pull/4648\\n[ouroboros-network-#4653]: https://github.com/input-output-hk/ouroboros-network/issues/4653\\n[ouroboros-network-#4656]: https://github.com/input-output-hk/ouroboros-network/pull/4656\\n[ouroboros-network-#4657]: https://github.com/input-output-hk/ouroboros-network/pull/4657\\n[ouroboros-network-#4660]: https://github.com/input-output-hk/ouroboros-network/pull/4660\\n[ouroboros-network-#4661]: https://github.com/input-output-hk/ouroboros-network/pull/4661\\n[ouroboros-network-#4652]: https://github.com/input-output-hk/ouroboros-network/pull/4652\\n[ouroboros-network-#4642]: https://github.com/input-output-hk/ouroboros-network/issues/4642\\n[ouroboros-network-#4655]: https://github.com/input-output-hk/ouroboros-network/issues/4655"},{"id":"2023-09-01-sre","metadata":{"permalink":"/2023-09-01-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-sre.md","source":"@site/blog/2023-09-01-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-09-01T00:00:00.000Z","formattedDate":"September 1, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.075,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-09-01-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-09-01-network"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-08-29-node-cli-api"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general environment maintenance.\\n\\nSome notable recent updates or improvements include:\\n* Work on cardano-parts repo continues and was utilized by the sanchonet-demo repository for demonstration purposes\\n* Work on a new [capkgs](https://github.com/input-output-hk/capkgs) repository started -- \\"Content Addressed Packages\\"\\n * This repository provides common Cardano release and pre-release binaries in a pure content addressed nix package type via flake output\\n * These packages don\'t have the associated IFD, long eval times and large source dependencies that the originating source repositories often do\\n * Consumers of such packages, such as devShells or nixos machines, can benefit from the improved performance this offers\\n\\n## Lower level summary\\n\\n### Capkgs\\n* Content addressed packages -- new repo: [capkgs](https://github.com/input-output-hk/capkgs)\\n\\n### Cardano-ops\\n* Cardano p2p relay updates, dbSync snapshots server update, monitoring adjustments: [cardano-ops-compare](https://github.com/input-output-hk/cardano-ops/compare/5a0eabe...03e8e42)\\n\\n### Cardano-parts\\n* Flake devShell module improvements: [cardano-parts-pull-4](https://github.com/input-output-hk/cardano-parts/pull/4)\\n* Cardano-world entrypoints migrated to flake parts module: [cardano-parts-pull-5](https://github.com/input-output-hk/cardano-parts/pull/5)\\n* Cardano-world jobs migrated to flake parts module: [cardano-parts-pull-6](https://github.com/input-output-hk/cardano-parts/pull/6)\\n* Drep delegation fixups: [cardano-parts-pull-7](https://github.com/input-output-hk/cardano-parts/pull/7)\\n* Utilize content addressed binaries, WIP: [cardano-parts-pull-8](https://github.com/input-output-hk/cardano-parts/pull/8)\\n* Cardano-node module preparation branch, WIP: [cardano-parts-compare](https://github.com/input-output-hk/cardano-parts/compare/capkgs...node-module)\\n\\n### Cardano-perf\\n* Availability zone pinning and explorer mods: [cardano-perf-compare](https://github.com/input-output-hk/cardano-perf/compare/d3a8644...9f9917c)\\n\\n### Cardano-world\\n* Remove performance nodes for migration to cardano-perf: [cardano-world-commit](https://github.com/input-output-hk/cardano-world/commit/306ef6c6dd6c09d9b90b9768f2b84a1d05cded26)\\n\\n### Sanchonet-demo\\n* Sanchonet demonstration repository: [sanchonet-demo](https://github.com/input-output-hk/sanchonet-demo)"},{"id":"2023-08-29-node-cli-api","metadata":{"permalink":"/2023-08-29-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-29-node-cli-api.md","source":"@site/blog/2023-08-29-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-08-29T00:00:00.000Z","formattedDate":"August 29, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.55,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-08-29-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-09-01-sre"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-08-28-mithril"}},"content":"# 2023-08-16 - 2023-08-29\\n\\n## High level summary\\n\\nCLI is making progress towards phases 3 and 4 of SanchoNet.\\n- Ability to create info, no-confidence and new committee governance actions.\\n- Voting as DREP is possible now on the CLI\\n\\n- API is now using Ledger\'s PParams and VotingProcedures\\n- Expose following queries from consensus:\\n - GetGovState\\n - GetDRepState\\n - GetDRepStakeDistr\\n - GetCommitteeState\\n - GetConstitution\\n\\n### cardano-cli\\n\\n- [Add goverance info action creation to era based cli](https://github.com/input-output-hk/cardano-cli/pull/179)\\n- [Add create-no-confidence command to era based cardano-cli](https://github.com/input-output-hk/cardano-cli/pull/176)\\n- [Add create-new-committee command to era based cli](https://github.com/input-output-hk/cardano-cli/pull/175)\\n- [Enable `--drep-script-hash` option](https://github.com/input-output-hk/cardano-cli/pull/204)\\n- [Remove `experimental` subcommand](https://github.com/input-output-hk/cardano-cli/pull/211)\\n- [Upgrade to `cardano-api-8.17.0.0`](https://github.com/input-output-hk/cardano-cli/pull/210)\\n- [New `governance drep id` command](https://github.com/input-output-hk/cardano-cli/pull/194)\\n- [Add `governance query` commands](https://github.com/input-output-hk/cardano-cli/pull/189)\\n- [Add `--verification-key` option to `committee key-hash` command](https://github.com/input-output-hk/cardano-cli/pull/187)\\n- [Read and write `VotingProcedures` files instead of `VotingEntry` files](https://github.com/input-output-hk/cardano-cli/pull/203)\\n- [Release 8.6.0.0](https://github.com/input-output-hk/cardano-cli/pull/201)\\n- [Merge `LegacyClientCmdError` into `CmdError` ](https://github.com/input-output-hk/cardano-cli/pull/195)\\n- [Add test for conway governance action create-constitution](https://github.com/input-output-hk/cardano-cli/pull/193)\\n- [Move legacy errors out of legacy command structure modules](https://github.com/input-output-hk/cardano-cli/pull/192)\\n- [Governance `drep` and `vote` command groups](https://github.com/input-output-hk/cardano-cli/pull/191)\\n- [Move command errors from era-based to `CmdError` module](https://github.com/input-output-hk/cardano-cli/pull/188)\\n- [Move some error types](https://github.com/input-output-hk/cardano-cli/pull/186)\\n- [Delete unused module](https://github.com/input-output-hk/cardano-cli/pull/185)\\n- [Refactor: Use `maybeFeatureInEra` instead of `featureInEra` where possible](https://github.com/input-output-hk/cardano-cli/pull/183)\\n- [Remove all uses of `toS`, `purer`, `cborError` and `intercalate` from `Cardano.Prelude`](https://github.com/input-output-hk/cardano-cli/pull/182)\\n- [Remove example era-based parsers we don\'t need anymore](https://github.com/input-output-hk/cardano-cli/pull/180)\\n- [Bump CHaP index in preparation for 8.3.0 pre](https://github.com/input-output-hk/cardano-cli/pull/174)\\n\\n\\n### cardano-api\\n\\n- [New version `cardano-api-8.17.0.0`](https://github.com/input-output-hk/cardano-api/pull/216)\\n- [Replace ProtocolParameters usage with ledger\'s PParams](https://github.com/input-output-hk/cardano-api/pull/214)\\n- [Use injective type families to improve type inference](https://github.com/input-output-hk/cardano-api/pull/210)\\n- [Delete `TxVotes` and `VotingEntry` and use `VotingProcedures` instead](https://github.com/input-output-hk/cardano-api/pull/209)\\n- [New functions `emptyVotingProcedures`, `singletonVotingProcedures` and `mergeVotingProcedures`](https://github.com/input-output-hk/cardano-api/pull/208)\\n- [New `makeStakeAddressAndDRepDelegationCertificate` function](https://github.com/input-output-hk/cardano-api/pull/207)\\n- [Expose ledger lenses for governance types](https://github.com/input-output-hk/cardano-api/pull/206)\\n- [New version cardano-api-8.16.1.0](https://github.com/input-output-hk/cardano-api/pull/205)\\n- [Add `VotingProcedures` type](https://github.com/input-output-hk/cardano-api/pull/204)\\n- [Release 8.16.0.0](https://github.com/input-output-hk/cardano-api/pull/202)\\n- [Update createAnchor to use hashAnchorData](https://github.com/input-output-hk/cardano-api/pull/200)\\n- [Release 8.15.0.0](https://github.com/input-output-hk/cardano-api/pull/197)\\n- [Add consensus governance queries](https://github.com/input-output-hk/cardano-api/pull/196)\\n\\n### cardano-node\\n\\n### cardano-testnet\\n\\n### docs\\n\\n### CI & project maintenance"},{"id":"2023-08-28-mithril","metadata":{"permalink":"/2023-08-28-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-28-mithril.md","source":"@site/blog/2023-08-28-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-08-28T00:00:00.000Z","formattedDate":"August 28, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-08-28-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-08-29-node-cli-api"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-08-25-hydra"}},"content":"## High level overview\\nThe Mithril team created an explorer page with the registered signers to give recognition to the SPOs already running on mainnet. They also worked on refactoring and standardizing errors in the Mithril nodes, and they enhanced the clarity and reduced verbosity of the logs for the signer and aggregator nodes. Additionally, they started working on the implementation of `zstandard` compression of the snapshot archive, and streaming its download and decompression in the client.\\n\\nFinally, they implemented machine readable progress information in the client, and streamlined the process of verifying the registration status of a signer. \\n\\n## Low level overview\\n- Completed the issue `Create explorer page with registered signers` [#1097](https://github.com/input-output-hk/mithril/issues/1097)\\n- Completed the issue `Simplify logs on the Signer/Aggregator` [#1106](https://github.com/input-output-hk/mithril/issues/1106)\\n- Completed the issue `Refactor (de)serialization of crypto entities` [#668](https://github.com/input-output-hk/mithril/issues/668)\\n- Completed the issue `Mithril client last snapshot download` [#1078](https://github.com/input-output-hk/mithril/issues/1078)\\n- Completed the issue `Use the \'/signers/registered\' route to verify if a signer is registered` [#1152](https://github.com/input-output-hk/mithril/issues/1152)\\n- Worked on the issue `Provide progress information with \'--json\' option in Client` [#1095](https://github.com/input-output-hk/mithril/issues/1095)\\n- Worked on the issue `Use \'zstandard\' compression for snapshot archives` [#876](https://github.com/input-output-hk/mithril/issues/876)\\n- Worked on the issue `Make client download and extract the archive simultaneously` [#1115](https://github.com/input-output-hk/mithril/issues/1115)"},{"id":"2023-08-25-hydra","metadata":{"permalink":"/2023-08-25-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-25-hydra.md","source":"@site/blog/2023-08-25-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-08-25T00:00:00.000Z","formattedDate":"August 25, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.875,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-08-25-hydra","authors":["ffakenz"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-08-28-mithril"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-08-24-performance-and-tracing"}},"content":"## High-level summary\\n\\nThis week, the Hydra team conducted the monthly review meeting for Agust,which\\ncontinously ensures transparent communication and project evaluation.\\n\\nIn terms of community engagement, the Hydra team gave a Hydra master-class at\\nRareEvo workshop as an educational initiative for the community.\\nAdditionally, the team updated the Hydra demo and tutorial to include Mithril\\nand latest release changes.\\n\\nThey also focused on exploring the Hydra network resiliance in order to improve\\n`hydra-node` availability, as it becomes stuck very easily and that leads to a\\nbad user experience.\\n\\n## What did the team achieve this week\\n\\n- Hydra master-class at RareEvo workshop!\\n- Monthly report & review meeting\\n- Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff\\n- Groomed network resilience and explorer features [#188](https://github.com/input-output-hk/hydra/issues/188)\\n- New ADR for \u201cResourced based API\u201d [#1028](https://github.com/input-output-hk/hydra/pull/1028)\\n\\n## What are the goals of next week\\n\\n- Have a poc on network resilience working [#188](https://github.com/input-output-hk/hydra/issues/188)\\n- Fix issue [#931](https://github.com/input-output-hk/hydra/issues/931): \u201cChain state in head state not updated on replayed observation\u201d\\n- Fix issue [#1039](https://github.com/input-output-hk/hydra/issues/1039): \\"Close transaction dropped from cardano-node\\""},{"id":"2023-08-24-performance-and-tracing","metadata":{"permalink":"/2023-08-24-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-24-performance-and-tracing.md","source":"@site/blog/2023-08-24-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-08-24T00:00:00.000Z","formattedDate":"August 24, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":1.7,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-08-24-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-08-25-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-08-23-consensus"}},"content":"## High level summary\\n\\n* Benchmarking: Benchmarking node version `8.2.1` has concluded. Additionally we\'re developing benchmarking setups for GHC9.6 and UTxO-HD.\\n* Infrastructure: Our analysis pipeline has received improvements reducing memory footprint.\\n* Tracing: Another batch of optimizations for the new tracing system has been merged; work on namespace consistency guarantees is ongoing.\\n* Nomad backend: We\'re performing and analysing various runs for validation purposes on the new hardware cluster.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nWe\'ve performed and analysed the benchmarks for the `8.2.1` version of `cardano-node` as part of our release benchmarking cycle. \\n\\nSetting up cluster benchmarks requires completing full system integration. This applies to both supporting a new build platform, as is GHC9.6, as well as targeting a specific feature, like a UTxO-HD enabled node. Currently, we\'re working on respective integrations on both those paths.\\n\\n### Infrastructure\\n\\nAs cluster runs increase in duration, more and more data is accumulated for analysis. Batch analysis mode needs all data to be held\\nin memory, which wouldn\'t fit anymore even on a 64GB RAM machine. Changes to the in-memory data representation improving on compactness were able to reduce the RAM requirements of our analysis pipeline.\\n\\n### Tracing\\n\\nThe next portion of optimizations has been completed and merged to `master`, getting rid of Haskell\'s native `String` representation on critical code paths. This concludes the optimization phase of the new tracing system for all its components used by `cardano-node`. \\n\\nThe implementation for validation of consistent naming and configuration is ongoing. We\'re splitting out everything that\'s verifiable at compile time into a seperate test case which we hope to integrate into CI - leaving only configuration constraints to be verified at or before node startup.\\n\\n### Nomad backend\\n\\nThe verification phase of the nomad cloud backend is ongoing. We\'re able to perform full runs on the new hardware cluster\\nand porting profiles and configurations from the legacy one. The goal is to reproduce with confidence known regressions, or improvements, between runs performed on the legacy cluster and runs performed with the new backend."},{"id":"2023-08-23-consensus","metadata":{"permalink":"/2023-08-23-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-23-consensus.md","source":"@site/blog/2023-08-23-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-08-23T00:00:00.000Z","formattedDate":"August 23, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":1.42,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-08-23-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-08-24-performance-and-tracing"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-08-18-goedel"}},"content":"## High level summary\\n\\nOn the UTxO-HD front we reached another important milestone, where we handed over the implementation for benchmarking and testing. We are working on addressing the first issues that were found during the integration tests.\\nOn the Genesis front we are finalizing the argument that a checkpoint is not necessary for the initial release, including supporting to support said argument. We are also working on the new node release, and several improvements to our code-base.\\n\\n## UTxO-HD\\n\\n- We addressed the issues that came from the benchmarking and testing phase (see [#314](https://github.com/input-output-hk/ouroboros-consensus/issues/314)).\\n - We fixed the operational-certificate update exception ([#305](https://github.com/input-output-hk/ouroboros-consensus/pull/305)).\\n\\n## Tech debt \\n\\n- We elaborated an inventory of the symbols used by downstream clients in an effort to clearly define the Consensus API, which will help managing changes and their impact to the downstream clients (see [this branch](https://github.com/input-output-hk/cardano-api/tree/jasagredo/consensus-api)).\\n- We extracted the SOP modules to a separate package as part of our effort to reduce the Consensus API surface area (see [this branch](https://github.com/input-output-hk/ouroboros-consensus/tree/jasagredo/test-sop)).\\n- We took the first step towards improving how the Cardano hard-fork block is instantiated when running a node (see [#275](https://github.com/input-output-hk/ouroboros-consensus/issues/275)).\\n- We decreased the flakiness for our test suite ([#284](https://github.com/input-output-hk/ouroboros-consensus/pull/284)).\\n- We incorporated and merged the pull-request on query versioning ([#273](https://github.com/input-output-hk/ouroboros-consensus/pull/273)).\\n- We started working on new performance-based regression tests for mempool operations.\\n\\n## Support \\n\\n- [Nick Frisby](https://github.com/nfrisby) continues with his engineer responsibilities. Notably getting the Consensus release out for node `pre-release 8.3`. Nick also began integrating it into downstream branches (`cardano{-api,-cli,-node}`). The Node team has now taken over, since Nick had progressed up to the point where they needed to start making new design decisions. Related PRs:\\n - [#283](https://github.com/input-output-hk/ouroboros-consensus/pull/283)\\n - [#301](https://github.com/input-output-hk/ouroboros-consensus/pull/301)\\n - [#304](https://github.com/input-output-hk/ouroboros-consensus/pull/304)\\n\\t- [#308](https://github.com/input-output-hk/ouroboros-consensus/pull/308)"},{"id":"2023-08-18-goedel","metadata":{"permalink":"/2023-08-18-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-goedel.md","source":"@site/blog/2023-08-18-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-08-18T00:00:00.000Z","formattedDate":"August 18, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.72,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-08-18-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-08-23-consensus"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-08-18-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThe team is currently formalising mini protocols and also further\\ndeveloping the performance modelling prototype.\\n\\n## Details\\n\\n\\n* Development of an automated prover for showing conformance of\\n programs to state machines (as part of the mini-protocol framework)\\n\\n* Completion of the documentation of the (current state of the)\\n mini-protocol framework\\n\\n* Discussion about two DeltaQ lectures with two practical sessions as part\\n of 4th year masters course on distributed systemsby colleagues at UC\\n Louvain in the Autumn\\n\\n* Discussion about four DeltaQ lectures by colleagues at U. Bergen as part\\n of a 5th year Masters course in the Autumn\\n\\n* Adapted original DeltaQ implementation to the new typeclasses and\\n wrote property tests for its algebraic laws"},{"id":"2023-08-18-hydra","metadata":{"permalink":"/2023-08-18-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-hydra.md","source":"@site/blog/2023-08-18-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-08-18T00:00:00.000Z","formattedDate":"August 18, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.13,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-08-18-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-08-18-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-08-18-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team released version 0.12.0, a significant update that\\nbrings support for cardano-node 8.1.2, along with performance enhancements and\\nvarious API improvements. Additionally, the team successfully onboarded a new\\ncontributor who is now actively participating in operating a Hydra Head. They\\ntook part in a meeting of the Intersect open source committee and prepared the\\nHydra master-class for RareEvo, an educational initiative for the community.\\n\\nIf you happen to be at RareEvo, register for the Hydra master-class [using this\\nform](https://docs.google.com/forms/d/1Q9KIxwKeyZeNrKDBiYWceYjnbxIxaEwC8Eo5LWxSa2g/viewform?edit_requested=true).\\nWe hope to make it possible to follow along on-line as well and will announce\\ndetails on the Hydra announcements channel on the [IOG discord\\nserver](https://discord.gg/Qq5vNTg9PT).\\n\\n## What did the team achieve this week\\n\\n- Released version 0.12.0 which adds support for cardano-node 8.1.2, performance\\n and several API improvements. [Release notes](https://github.com/input-output-hk/hydra/releases/tag/0.12.0)\\n- Replaced commit via websocket with external draft + submit. [#954](https://github.com/input-output-hk/hydra/issues/954)\\n- Onboarded new contributor to the point where he actively participates in operating a Head now.\\n- Joined a first meeting of the Intersect open source committee\\n- Prepared the Hydra master-class for RareEvo.\\n\\n## What are the goals of next week\\n\\n- Monthly review meeting\\n- Run the Hydra master-class at RareEvo!\\n- Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff\\n- Clear out red bin items (technical debt)\\n- Groom network resilience and explorer features"},{"id":"2023-08-18-ledger","metadata":{"permalink":"/2023-08-18-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-ledger.md","source":"@site/blog/2023-08-18-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-08-18T00:00:00.000Z","formattedDate":"August 18, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.7,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-08-18-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-08-18-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/2023-08-18-network"}},"content":"## High level summary\\n\\nThe ledger team made great progress in advancing Conway era forward. In particular, voting\\nfor DRep and Stake Pool Operators is now at the state that can be used by downstream\\ncomponents. Addition of new ledger state queries makes it possible to verify changes to\\nthe governance state, such as placement of votes, submission of governance proposals,\\ninspecting DRep stake distribution and more. Addition of treasury withdrawals concludes the\\nability to enact all of the governance actions, except for the hard fork initiation.\\n\\n\\n## Low level summary\\n\\n### Conway progress\\n\\n* [pull-3577] - Move `PParams` to `GovState`\\n* [pull-3609] - Adjust thresholds for sanchonet\\n* [pull-3604] - README: update CIP-1694 link\\n* [pull-3616] - Switch `TreasuryWithdrawals` to use `RewardAcnt`\\n* [pull-3599] - Add governance action well-formedness check\\n* [pull-3607] - Rename governance to gov\\n* [pull-3601] - Added `DRep` anchors\\n* [pull-3615] - Add optional previous `GovActionId` in some `ProposalProcedures`\\n* [pull-3596] - Upgradeable families\\n* [pull-3625] - Change constitution to use `Anchor`\\n* [pull-3592] - Added pulsing incremental computation of the DRep distribution\\n* [pull-3523] - Treasury donations\\n* [pull-3633] - Prevent state changes on phase2 failure\\n* [pull-3634] - Disable serialization of protocolVersion param update\\n* [pull-3630] - Implemented DRep refreshing\\n* [pull-3640] - Remove crypto parameterization from `AnchorData`\\n* [pull-3636] - Implement DRep ratification with an \\"always passing\\"; threshold\\n* [pull-3648] - Governance queries\\n* [pull-3650] - Change environment for `ShelleyPOOLREAP` rule\\n* [pull-3658] - Set `DRep` ratify threshold to 51%\\n* [pull-3628] - `DELEG`, `POOL`, `GOVCERT` conformance with Spec v0.8\\n\\n### Testing\\n\\n* [pull-3619] - Disabled a broken test\\n\\n### Improvements and releasing\\n\\n* [pull-3660] - Fix bounds and versions\\n* [pull-3661] - Adjust versions, bounds and CHANGELOGs to account for the latest release\\n\\n[pull-3577]: https://github.com/input-output-hk/cardano-ledger/pull/3577\\n[pull-3609]: https://github.com/input-output-hk/cardano-ledger/pull/3609\\n[pull-3604]: https://github.com/input-output-hk/cardano-ledger/pull/3604\\n[pull-3616]: https://github.com/input-output-hk/cardano-ledger/pull/3616\\n[pull-3599]: https://github.com/input-output-hk/cardano-ledger/pull/3599\\n[pull-3619]: https://github.com/input-output-hk/cardano-ledger/pull/3619\\n[pull-3607]: https://github.com/input-output-hk/cardano-ledger/pull/3607\\n[pull-3601]: https://github.com/input-output-hk/cardano-ledger/pull/3601\\n[pull-3615]: https://github.com/input-output-hk/cardano-ledger/pull/3615\\n[pull-3596]: https://github.com/input-output-hk/cardano-ledger/pull/3596\\n[pull-3625]: https://github.com/input-output-hk/cardano-ledger/pull/3625\\n[pull-3592]: https://github.com/input-output-hk/cardano-ledger/pull/3592\\n[pull-3523]: https://github.com/input-output-hk/cardano-ledger/pull/3523\\n[pull-3633]: https://github.com/input-output-hk/cardano-ledger/pull/3633\\n[pull-3634]: https://github.com/input-output-hk/cardano-ledger/pull/3634\\n[pull-3630]: https://github.com/input-output-hk/cardano-ledger/pull/3630\\n[pull-3640]: https://github.com/input-output-hk/cardano-ledger/pull/3640\\n[pull-3636]: https://github.com/input-output-hk/cardano-ledger/pull/3636\\n[pull-3648]: https://github.com/input-output-hk/cardano-ledger/pull/3648\\n[pull-3650]: https://github.com/input-output-hk/cardano-ledger/pull/3650\\n[pull-3658]: https://github.com/input-output-hk/cardano-ledger/pull/3658\\n[pull-3628]: https://github.com/input-output-hk/cardano-ledger/pull/3628\\n[pull-3660]: https://github.com/input-output-hk/cardano-ledger/pull/3660\\n[pull-3661]: https://github.com/input-output-hk/cardano-ledger/pull/3661"},{"id":"2023-08-18-network","metadata":{"permalink":"/2023-08-18-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-network.md","source":"@site/blog/2023-08-18-network.md","title":"Network Team Update","description":"High-level overview of sprint 42","date":"2023-08-18T00:00:00.000Z","formattedDate":"August 18, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":2.09,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-08-18-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-08-18-ledger"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-08-18-sre"}},"content":"## High-level overview of [sprint 42][sprint-42]\\n\\n### Eclipse Evasion\\n\\nWe merged and released a new version of the `ouroboros-network` package (version\\n`0.9.0.0`) which includes [big ledger peers feature][ouroboros-network#3886].\\nThis is the primary peer selection mechanism to defend against eclipses. We\\nalso prepared a PR to updated [`ouroboros-cosnensus`][ouroboros-consensus#165]\\nand [`ekg-forward`][ekg-forward#30] packages.\\n\\n### CDDL specs for protocol codecs\\n\\nWe made the `cddl` spec for network codec more inline with the implementation\\nwhich is highly polymorphic. `cddl` doesn\'t have the notion of polymorphism,\\nbut has `any` which can generate any valid cbor term. We matched it with an\\n`Any` type on the Haskell side and made all remaining tests & specs use it.\\nThis simplified the specifications and made it easier to understand which parts\\nare defined in the spec, and which parts are left unspecified. See\\n[ouroboros-network#4595].\\n\\n### Ouroboros-Network-Framework API changes\\n\\nWe also released `ouroboros-network-framework` and other network components.\\nThe `ouroboros-network-framework` package contains a redesign of API exposed to\\n`ouroboros-consensus`. We consolidated, cleaned it and made it easier to\\nextend in the future if there will be new arguments that need to be passed to\\nmini-protocol initiator and responders which comes from the low-level network\\nlayer.\\n\\n### Nix setup (CI)\\n\\nWe also made a major review of our `nix` setup. With help from our DevX team\\nwe ended up with a clean `flake.nix` file which can:\\n\\n* compile & test the code on `x86_64-linux`, `x86_64-darwin` and `aarch64-darwin`\\n* cross-compile to `Windows` on `x86_64-linux` \\n\\nAnd provides a shell which contains all the build tools, including `ghc-9.6`,\\n`hls`, `cddl`, and more. See [ouroboros-network#4640],\\n[ouroboros-network#4643].\\n\\n\\n## Other contributions\\n\\n### Cardano Network Service Assurance\\n\\n* The work and writeup in finishing up the CNSA, first stage (first\\n contract).\\n* Getting Sam Cowger (Galois Inc) up to speed.\\n* The IOG Networking team carried a reivew of CNSA project progress: a limitted\\n code & design review.\\n\\n### Galois Review\\n\\nSam Cowger and Mark Tullsen (Galois Inc) have made some progress on each of the tech debt issues\\n\\n* [ouroboros-network#3832],\\n* [ouroboros-network#3834],\\n* [ouroboros-network#3835],\\n* [ouroboros-network#3836];\\n\\nscoping, requirements, and getting started.\\n\\n### CI\\n\\nWe added a nightly run for GitHub actions and made the GitHub actions test be\\nexecuted with extra concurrency [ouroboros-network#4637], [ouroboros-network#4649].\\n\\nWe also added GitHub\'s dependabot [ouroboros-network#4650].\\n\\n### Bootstrap Peers\\n\\nWe settled on implementation design of bootstrap peers which is being\\nimplemented, [ouroboros-network#4615].\\n\\n\\n[sprint-42]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+42%22\\n\\n[ekg-forward#30]: https://github.com/input-output-hk/ekg-forward/pull/30\\n\\n[ouroboros-consensus#165]: https://github.com/input-output-hk/ouroboros-consensus/pull/165\\n\\n[ouroboros-network#3832]: https://github.com/input-output-hk/ouroboros-network/issues/3832\\n[ouroboros-network#3834]: https://github.com/input-output-hk/ouroboros-network/issues/3834\\n[ouroboros-network#3835]: https://github.com/input-output-hk/ouroboros-network/issues/3835\\n[ouroboros-network#3836]: https://github.com/input-output-hk/ouroboros-network/issues/3836\\n[ouroboros-network#3886]: https://github.com/input-output-hk/ouroboros-network/issues/3886\\n[ouroboros-network#4595]: https://github.com/input-output-hk/ouroboros-network/issues/4595\\n[ouroboros-network#4615]: https://github.com/input-output-hk/ouroboros-network/issues/4615\\n[ouroboros-network#4637]: https://github.com/input-output-hk/ouroboros-network/pull/4637\\n[ouroboros-network#4640]: https://github.com/input-output-hk/ouroboros-network/pull/4640\\n[ouroboros-network#4643]: https://github.com/input-output-hk/ouroboros-network/pull/4643\\n[ouroboros-network#4649]: https://github.com/input-output-hk/ouroboros-network/pull/4649\\n[ouroboros-network#4650]: https://github.com/input-output-hk/ouroboros-network/pull/4650"},{"id":"2023-08-18-sre","metadata":{"permalink":"/2023-08-18-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-sre.md","source":"@site/blog/2023-08-18-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-08-18T00:00:00.000Z","formattedDate":"August 18, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":0.66,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-08-18-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-08-18-network"},"nextItem":{"title":"Crypto Team Update","permalink":"/2023-08-17-crypto"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general environment maintenance.\\n\\nSome notable recent updates or improvements include:\\n* Sanchonet and shelley-qa environments were updated to 8.2.1-pre.\\n* Work on two new repos utilizing [flake parts](https://flake.parts) for cardano cluster generation, automation and operation.\\n * [cardano-parts](https://github.com/input-output-hk/cardano-parts) -- Nix flake parts for cardano clusters\\n * [cardano-playground](https://github.com/input-output-hk/cardano-playground) -- Cardano testnet clusters\\n\\n## Lower level summary\\n\\n### Cardano-ops\\n* Cardano p2p relay and alert threshold adjustments: [cardano-ops-compare](https://github.com/input-output-hk/cardano-ops/compare/c4a04cc...5a0eabe)\\n\\n### Cardano-parts\\n* New repo: [cardano-parts](https://github.com/input-output-hk/cardano-parts)\\n\\n### Cardano-perf\\n* Misc improvements to perf cluster functionality: [cardano-perf-compare](https://github.com/input-output-hk/cardano-perf/compare/0944c40...d3a8644)\\n\\n### Cardano-playground\\n* New repo: [cardano-playground](https://github.com/input-output-hk/cardano-playground)\\n\\n### Cardano-world\\n* Improve explorer topology generation alerting: [cardano-world-pull-109](https://github.com/input-output-hk/cardano-world/pull/109)\\n* Update p2p configs: [cardano-world-pull-110](https://github.com/input-output-hk/cardano-world/pull/110)\\n\\n### Inputs-check\\n* A flake parts module to check input closure sizes recursively for optimization considerations: [inputs-check](https://github.com/input-output-hk/inputs-check)"},{"id":"2023-08-17-crypto","metadata":{"permalink":"/2023-08-17-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-17-crypto.md","source":"@site/blog/2023-08-17-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-08-17T00:00:00.000Z","formattedDate":"August 17, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":0.65,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-08-17-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-08-18-sre"},"nextItem":{"title":"DB-sync Team Update","permalink":"/2023-08-17-db-sync"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation\\n* mithril: Full node verifier\\n* musig2: Include MuSig2 description in cryptography handbook\\n* kes_agent: Finilising test and CI. Working on KES binary\\n\\n## Low level summary\\n### Mithril\\n* Full Node Verifier merged [#939](https://github.com/input-output-hk/mithril/pull/939).\\n### MuSig2\\n* Started describing MuSig2 to include it as part of the cryptography handbook \\n### Sidechains\\n* Analysis of Halo2 verifier with the goal of implementing SNARK verifier in Plutus. Implemented ad-hoc IPA verifier. Work progress in [this](https://github.com/alexandroszacharakis8/halo2/tree/iquerejeta) fork.\\n### KES agent\\n* KES agent is ready:\\n * CI ready [#19](https://github.com/input-output-hk/kes-agent/issues/19)\\n * Receipt confirmation message [#20](https://github.com/input-output-hk/kes-agent/issues/20)\\n * KES agent binary ready [#21](https://github.com/input-output-hk/kes-agent/issues/21)\\n * Control client implemented [#11](https://github.com/input-output-hk/kes-agent/issues/11)"},{"id":"2023-08-17-db-sync","metadata":{"permalink":"/2023-08-17-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-17-db-sync.md","source":"@site/blog/2023-08-17-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-08-17T00:00:00.000Z","formattedDate":"August 17, 2023","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.41,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-08-17-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2023-08-17-crypto"},"nextItem":{"title":"SECP bindings Security Issue Report","permalink":"/2023-08-17-secp-issue"}},"content":"## High level summary\\nWe have integrated many new Conway feutures and allow db-sync to sync sanchonet.\\nWe also continued testing and improving the new db-sync options.\\n\\n## Lower level summary\\n- Conway integration\\n[#1484](https://github.com/input-output-hk/cardano-db-sync/pull/1484)\\n- Support for Sanchonet\\n[#1476](https://github.com/input-output-hk/cardano-db-sync/pull/1476)\\n- Stake distribution is computed earlier\\n[#1484](https://github.com/input-output-hk/cardano-db-sync/pull/1484)\\n- Deposit ledger events are now used. This reduces the db queries and makes syncing faster\\n[#1484](https://github.com/input-output-hk/cardano-db-sync/pull/1484)\\n- Testing new db-sync options\\n[#1466](https://github.com/input-output-hk/cardano-db-sync/pull/1466)\\n- Added support for ghc-9.6\\n[#1479](https://github.com/input-output-hk/cardano-db-sync/pull/1479)\\n- Tech debt: improve exceptions\\n[#1471](https://github.com/input-output-hk/cardano-db-sync/pull/1471)"},{"id":"2023-08-17-secp-issue","metadata":{"permalink":"/2023-08-17-secp-issue","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-17-secp-security-issue-report.md","source":"@site/blog/2023-08-17-secp-security-issue-report.md","title":"SECP bindings Security Issue Report","description":"Security Issue Report: SECP256k1 bug","date":"2023-08-17T00:00:00.000Z","formattedDate":"August 17, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"},{"label":"incident","permalink":"/tags/incident"}],"readingTime":3.3,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"SECP bindings Security Issue Report","slug":"2023-08-17-secp-issue","authors":"iquerejeta","tags":["crypto","incident"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/2023-08-17-db-sync"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-08-15-node-cli-api"}},"content":"## Security Issue Report: SECP256k1 bug\\n\\nDate Occurred: July 15, 2022\\nSeverity: Potentially Very High if exploited on Mainnet\\nAuthors: I\xf1igo Querejeta Azurmendi\\n\\nDate of Report: August 17, 2023\\n### Summary of Issue\\n#### Criticality Level\\nActually low (since the issue was detected prior to deployment) but potentially very high if it had been deployed to mainnet\\nContext\\n\\nNew SECP256k1 Plutus bindings were being introduced in order to support interoperability with other major chains, such as Bitcoin and Ethereum. The intention was to deploy these as part of the Vasil hard-fork. The bindings were considered to be a low-security risk since the underlying library functions were well tested and had been deployed on other blockchains.\\nHow was the Issue Detected\\n\\nThe issue was detected via specific End-to-End tests that had been commissioned. It was (accidentally) triggered on the Cardano Testnet before a fix could be deployed there.\\n\\n#### What Action was Taken\\nThe Cardano Testnet was permanently halted, and new test environments were deployed (Preview and Pre-Prod).\\nFixes were applied to prevent the use of the primitives.\\nA full security audit was carried out on the bindings.\\nThe rollout of the primitives was postponed to a new hard fork (Valentine)\\n\\n#### Potential Effect\\nThe potential effect was that an adversary might be able to craft invalid Plutus transactions to crash any node, requiring execution of the Cardano disaster recovery plan to revert to a safe state and bypass the transaction.\\n\\n#### Actual Effect\\n* Delay to the Vasil hard-fork\\n* Temporary removal of SECP256k1 primitives\\n* Additional hard-fork to introduce SECP256k1 primitives\\n\\n#### Ongoing Mitigations Needed, if any\\nNone\\n\\n#### Responsibility for Mitigations\\nCore team\\n\\n### Detailed description of Incident\\nNew Plutus **secp256k1** cryptographic primitives for Plutus v2 failed to apply the necessary validity checks on the input data, meaning that the primitives could theoretically be used in an unsafe environment. The vulnerability was present in recent node versions (1.35.0 onwards), including ones deployed to Cardano Testnet.\\n\\nThe problem was not in the deserialization functions of the underlying library (Bitcoin\'s library) but rather that the Haskell functions that implemented the Plutus builtins were not calling them correctly. In particular, the library functions were designed to take structured data as input. However, the Haskell FFI implementation that was produced for the Plutus builtins allowed a caller to pass in (possibly) unstructured data. There were no checks that these data were structured in the correct way. This issue was detected during End-to-End testing.\\n\\n* [This](https://github.com/bitcoin-core/secp256k1/blob/master/include/secp256k1.h#L518) is the ECDSA signature verification algorithm that was used. It takes a SECP256k1_pubkey as input. That type is an opaque type with an [expected](https://github.com/bitcoin-core/secp256k1/blob/master/include/secp256k1.h#L61) structure: a parsed and valid public key. It was not immediately obvious that structured data needed to be passed to allow the function to be used safely.\\n* The same happened with the Schnorr [verification function](https://github.com/bitcoin-core/secp256k1/blob/master/include/secp256k1_schnorrsig.h#L170). It takes as input a SECP256k1_xonly_pubkey, which is again an [opaque structure](https://github.com/bitcoin-core/secp256k1/blob/master/include/secp256k1_extrakeys.h#L10) that holds a parsed and valid public key.\\n\\nThe FFI skipped checks over these structured keys and directly passed the raw bytes that were given as arguments. If an adversary were to pass in data that was not properly structured, then it could result in unexpected behavior of the library. This could perhaps translate into an adversary being able to crash the nodes that ran these functions. All nodes in the network could be crashed by a single transaction that would then be executed repeatedly, so stalling the network until the disaster recovery process was initiated.\\n\\nThe fix was addressed in [this](https://github.com/input-output-hk/cardano-base/pull/289) PR. It consisted of using the external representation that the deserialization function expects and running the deserialization prior to signature verification. This was audited by security experts.\\n\\n### Recommendations\\n* Check all new Plutus bindings for correct use.\\n* Audit all new Plutus built-in bindings.\\n* Continue to develop specific End-to-End tests for all new Plutus features.\\n* Do not assume that any existing library functions are \\"safe\\". Treat all external calls circumspectly."},{"id":"2023-08-15-node-cli-api","metadata":{"permalink":"/2023-08-15-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-15-node-cli-api.md","source":"@site/blog/2023-08-15-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-08-15T00:00:00.000Z","formattedDate":"August 15, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.29,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-08-15-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"SECP bindings Security Issue Report","permalink":"/2023-08-17-secp-issue"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-08-11-hydra"}},"content":"# 2023-08-02 - 2023-08-15\\n\\n## High level summary\\n\\n- cardano-node 8.2.1 (pre-release) to SanchoNet\\n- Continue moving CLI into era-based top level command structure\\n- Wire-up DREP key generation,\\n- Fix DREP deregistration certificates\\n- Implement Constitutional Committee Key generation on the CLI\\n- Introducing era-based protocol parameters on the API\\n- Removing depracated functions and types on the API\\n\\n\\n### cardano-cli\\n\\n- [Update to `cardano-api-8.13.0.0`](https://github.com/input-output-hk/cardano-cli/pull/169)\\n- [Reenable golden tests](https://github.com/input-output-hk/cardano-cli/pull/164)\\n- [#128 DRep key generation](https://github.com/input-output-hk/cardano-cli/pull/163)\\n- [Bump index states](https://github.com/input-output-hk/cardano-cli/pull/160)\\n- [Fix deregistration-certificate: generate deregistration instead of registration certs](https://github.com/input-output-hk/cardano-cli/pull/159)\\n- [Structuring legacy code so that era-based code does not depend on it](https://github.com/input-output-hk/cardano-cli/pull/158)\\n- [Plural for command groups](https://github.com/input-output-hk/cardano-cli/pull/151)\\n- [Implement `conway governance committee key-hash` command](https://github.com/input-output-hk/cardano-cli/pull/144)\\n- [Wire up constitution creation in the new era based cli commands](https://github.com/input-output-hk/cardano-cli/pull/142)\\n- [cardano-cli 8.5.0.0](https://github.com/input-output-hk/cardano-cli/pull/140)\\n- [Wire up remaining DReps](https://github.com/input-output-hk/cardano-cli/pull/137)\\n- [Implement `conway governance committee hot-key-gen` command](https://github.com/input-output-hk/cardano-cli/pull/136)\\n- [Convert to use `tasty-discover`](https://github.com/input-output-hk/cardano-cli/pull/127)\\n\\n### cardano-api\\n\\n- [Release cardano-api 8.13.1.0](https://github.com/input-output-hk/cardano-api/pull/189)\\n- [Fix build](https://github.com/input-output-hk/cardano-api/pull/187)\\n- [cardano-api 8.13.0.0](https://github.com/input-output-hk/cardano-api/pull/185)\\n- [Modify `queryGenesisParameters` so that its type advertises it only returns genesis parameters for the Shelley era](https://github.com/input-output-hk/cardano-api/pull/181)\\n- [Introduce EraBasedProtocolParametersUpdate](https://github.com/input-output-hk/cardano-api/pull/180)\\n- [Delete deprecated functions and types](https://github.com/input-output-hk/cardano-api/pull/173)\\n- [Simplify code with new constraints functions](https://github.com/input-output-hk/cardano-api/pull/171)\\n- [Fix `EraCast Certificate`](https://github.com/input-output-hk/cardano-api/pull/170)\\n- [New version `cardano-api-8.12.0.0`](https://github.com/input-output-hk/cardano-api/pull/168)\\n- [Fix committee hot keys](https://github.com/input-output-hk/cardano-api/pull/167)\\n- [New version `cardano-api-8.11.1.0`](https://github.com/input-output-hk/cardano-api/pull/164)\\n- [Fix typo Constitional -> Constitutional](https://github.com/input-output-hk/cardano-api/pull/163)\\n\\n\\n### cardano-node\\n\\n- [cardano-git-rev: New version for CHaP](https://github.com/input-output-hk/cardano-node/pull/5430)\\n- [Fix broken links in docs](https://github.com/input-output-hk/cardano-node/pull/5427)\\n- [cardano-node 8.2.1](https://github.com/input-output-hk/cardano-node/pull/5423)\\n\\n\\n### cardano-testnet\\n\\n- [Fix broken links in docs](https://github.com/input-output-hk/cardano-node/pull/5427)\\n- [cardano-node 8.2.1](https://github.com/input-output-hk/cardano-node/pull/5423)\\n\\n\\n### docs\\n\\n[Fix broken links in docs](https://github.com/input-output-hk/cardano-node/pull/5427)\\n\\n### CI & project maintenance\\n\\n- [Convert to use `tasty-discover`](https://github.com/input-output-hk/cardano-cli/pull/127)"},{"id":"2023-08-11-hydra","metadata":{"permalink":"/2023-08-11-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-11-hydra.md","source":"@site/blog/2023-08-11-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-08-11T00:00:00.000Z","formattedDate":"August 11, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.8,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"},{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-08-11-hydra","authors":["ffakenz","ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-08-15-node-cli-api"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-08-11-performance-and-tracing"}},"content":"## High-level summary\\n\\nThis week, the Hydra team updated `hydra-node` to support `cardano-node` version\\n8.1.2, ensuring compatibility with the latest mainnet release. The team also\\nparticipated in discussions about a \\"cardanonical\\" JSON schema and added it as a\\nsubmodule to the project, contributing to improved data modeling and\\ninteroperability.\\n\\nIn terms of community engagement, the team successfully onboarded a new\\ncontributor, also participated in a RareEvo Twitter space, and continued\\npreparations for the Hydra master-class.\\n\\n## What did the team achieve this week\\n\\n- Updated dependencies to support cardano-node 8.1.2 [#1007](https://github.com/input-output-hk/hydra/issues/1007)\\n- Engaged in discussions about a “cardanonical” json schema and\\n add it as submodule to the project\\n [#1013](https://github.com/input-output-hk/hydra/pull/1013)\\n- Onboarded a new contributor to the hydra project (@locallycompact)\\n- Joined RareEvo twitter space and continued preparation of hydra master-class\\n\\n## What are the goals of next week\\n\\n- Update & streamline tutorial to work with latest version of hydra-node\\n- Remove the internal commit functionality [#954](https://github.com/input-output-hk/hydra/issues/954)\\n- Release 0.12.0"},{"id":"2023-08-11-performance-and-tracing","metadata":{"permalink":"/2023-08-11-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-11-performance-and-tracing.md","source":"@site/blog/2023-08-11-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-08-11T00:00:00.000Z","formattedDate":"August 11, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":1.335,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-08-11-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-08-11-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-08-10-mithril"}},"content":"## High level summary\\n\\n* Benchmarking: We\'ve concluded benchmarking node version `8.2.0`.\\n* Tracing: Optimization of the new tracing system has been merged; we\'re currently working on self-documenting tracing configuration.\\n* Nomad backend: A PR that makes our backend take advantage of added flexibility of the new hardware cluster has been merged.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nAs part of our release benchmarking cycle, we\'ve completed and analysed the runs for the `8.2.0` version of `cardano-node`. In addition to the adjustment of sanity checks in our automation, we had to implement small changes in the analysis pipeline as well to accomodate the new version.\\n\\n### Tracing\\n\\nA significant amount of optimizations for the new tracing system has finally been merged to `master`. At the moment,\\nwe\'re working on having a trace message self-document the final tracing configuration of a running node. Apart from adding\\ninsight into the system, this feature also aims at making future hot reloading of tracing configuration explicit and straightforward. \\n\\nFurthermore, we\'re setting up a final round of system integration level benchmarks comparing new against legacy tracing.\\n\\n### Nomad backend\\n\\nThe new hardware cluster permits greater flexibility as far as SSH access is concerned. By using nomad for a consistent\\nand reliable deployment, but taking advantage of direct connections for healthchecks and data transfer we believe we were\\nable to reduce overall network latency in the nomad cluster. This improves confidence when capturing all network related measurements during our benchmarks. \\n\\nA PR that adds these capabalities to our nomad backend - along with very many quality-of-life improvements - has been merged to `master`."},{"id":"2023-08-10-mithril","metadata":{"permalink":"/2023-08-10-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-10-mithril.md","source":"@site/blog/2023-08-10-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-08-10T00:00:00.000Z","formattedDate":"August 10, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.7,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-08-10-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-08-11-performance-and-tracing"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-08-09-consensus"}},"content":"## High level overview\\nThe Mithril team completed the **Mithril protocol\u2019s mainnet beta** launch: the `release-mainnet` network is now consistently producing new certificates and snapshots! The team has released a new distribution [`2331.1`](https://github.com/input-output-hk/mithril/releases/tag/2331.1) which includes some optimizations and bug fixes: the bootstrap time of a Cardano node restored from a Mithril snapshot has been significantly reduced, and a bug that made the aggregator produce corrupted archives has been fixed. They also kept working on the implementation of the stress test tool for benchmarking the aggregator: the first phase has been implemented, as well as a monitoring feature. Additionally, they kept implementing the refactoring of the serialization/deserialization of the entities of the cryptographic library, and working on the post deployment of the `mainnet` infrastructure.\\n\\nFinally, they completed the rewriting and enhancements of the documentation website, and they completed the runbook for operating a production Mithril network.\\n\\n## Low level overview\\n- Released the new distribution [`2331.1`](https://github.com/input-output-hk/mithril/releases/tag/2331.1)\\n- Completed the epic `Release \'mainnet\' Mithril network` [#918](https://github.com/input-output-hk/mithril/issues/918)\\n- Worked on the epic `Benchmark performances of Mithril Aggregator` [#904](https://github.com/input-output-hk/mithril/issues/904):\\n - Completed the issue `Design & implement basic stress test tool for aggregator - phase 1` [#991](https://github.com/input-output-hk/mithril/issues/991)\\n- Worked on the epic `Post deployment \'mainnet\' infrastructure` [#1091](https://github.com/input-output-hk/mithril/issues/1091):\\n - Completed the issue `Create Production Infrastructure Runbook` [#1085](https://github.com/input-output-hk/mithril/issues/1085)\\n - Completed the issue `Ingest \'mainnet\' metrics/logs in Grafana` [#1122](https://github.com/input-output-hk/mithril/issues/1122)\\n- Worked on optimizations:\\n - Completed the issue `Add a \'clean\' file to extracted database in client` [#1131](https://github.com/input-output-hk/mithril/issues/1131)\\n - Worked on the issue `Create explorer page with registered signers` [#1097](https://github.com/input-output-hk/mithril/issues/1097)\\n- Worked on refactoring:\\n - Worked on the issue `Refactor (de)serialization of crypto entities` [#668](https://github.com/input-output-hk/mithril/issues/668)\\n- Worked on bugs:\\n - Completed the issue `Client fails to unpack some snapshot archive` [#1137](https://github.com/input-output-hk/mithril/issues/1137)\\n - Completed the issue `The \'release-preprod\' network stopped producing certificates` [#1114](https://github.com/input-output-hk/mithril/issues/1114)\\n - Completed the issue `The \'release-mainnet\' network does not show up in the explorer` [#1111](https://github.com/input-output-hk/mithril/issues/1111)\\n- Worked on dependencies:\\n - Completed the issue `Upgrade Cardano node to \'8.1.2\'` [#1090](https://github.com/input-output-hk/mithril/issues/1090)\\n- Worked on troubleshooting:\\n - Completed the issue `Signer can\'t sign with \'Invalid signature for party\' error` [#1125](https://github.com/input-output-hk/mithril/issues/1125)"},{"id":"2023-08-09-consensus","metadata":{"permalink":"/2023-08-09-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-09-consensus.md","source":"@site/blog/2023-08-09-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-08-09T00:00:00.000Z","formattedDate":"August 9, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":1.46,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-08-09-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-08-10-mithril"},"nextItem":{"title":"Crypto Team Update","permalink":"/2023-08-04-crypto"}},"content":"## High level summary\\n\\nThis week the Consensus team worked on integrating the latest node release into the UTxO HD branch. Our ad-hoc benchmarks in which we sync a node from scratch showed that the LMDB backend uses around 8GB of memory. We also released new versions of `fs-sim` and `fs-api`, and released `strict-checked-vars`.\\n\\n## UTxO-HD\\n\\n- Rebased UTxO-HD on top of node 8.2 ([issue](https://github.com/input-output-hk/ouroboros-consensus/issues/256))\\n- Address new `Maybe` translations for UTxOs in Conway 1.6. ([PR](https://github.com/input-output-hk/ouroboros-consensus/pull/261)).\\n- Performed ad-hoc benchmarking syncs with both implementations. The LMDB backend uses around 8GB of memory.\\n- [Fixed](https://github.com/input-output-hk/cardano-node/compare/96e92351ad35cfce1b0c2c47c4ed05792bf81fad..90d4c93af0846c9b027d530c042180c51aeee4fd) an infinite loop on the mempool tracing code that was preventing the node from shutting down gracefully.\\n- Fixed an infinite loop on the ledger state query for traversing queries that prevented the node from running `QueryUTxOByAddress` ([PR](https://github.com/input-output-hk/ouroboros-consensus/pull/273)).\\n- Measured the speed of `QueryUTxOByAddress` under different `queryBatchSize` values. There is a significant performance degradation for these queries when using the UTxO-HD version. Using the mainnet UTxO set at slot 90 million, querying an address took 40 seconds using the in-memory backend and 90 seconds using the LMDB backend, whereas the baseline took 7 seconds. We need to investigate if we can improve this situation or whether an external service that runs alongside the node is a better solution.\\n- Refactored and implemented ledgertable-related classes for the general `HardforkBlock`.\\n\\n## Genesis\\n\\n- [Frisby](https://github.com/nfrisby) and [Esgen](https://github.com/amesgen) continue to engage with the Researchers on grinding against the Genesis design.\\n\\n## Fostering collaboration\\n\\n- Drafted a document explaining versioning of local state queries [#273](https://github.com/input-output-hk/ouroboros-consensus/pull/273).\\n\\n## Support\\n\\n- [Frisby](https://github.com/nfrisby) is the release engineer this cycle.\\n- Successfully created work-in-progress `ouroboros-consensus` and `cardano-api` commits that integrate the 2023 Aug 7 tip of `cardano-ledger`. This will require a release of `ouroboros-consensus`, which hasn\'t happened yet."},{"id":"2023-08-04-crypto","metadata":{"permalink":"/2023-08-04-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-crypto.md","source":"@site/blog/2023-08-04-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-08-04T00:00:00.000Z","formattedDate":"August 4, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":0.495,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-08-04-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-08-09-consensus"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-08-04-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation\\n* mithril: Full node verifier\\n* musig2: Finalised the missing fuzz tests\\n* kes_agent: engineer on PTO. Work halted \\n\\n## Low level summary\\n### Mithril\\n* Work on a mithril flaky test [#1105](https://github.com/input-output-hk/mithril/pull/1105)\\n* Keep working on Full Node Verifier [#939](https://github.com/input-output-hk/mithril/pull/939).\\n Should be merged in the coming week.\\n### MuSig2\\n* Finalised the fuzz tests [#43](https://github.com/input-output-hk/musig2/pull/43)\\n### Sidechains\\n* Analysis of Halo2 verifier. Necessary for a future implementation of a plutus verifier."},{"id":"2023-08-04-goedel","metadata":{"permalink":"/2023-08-04-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-goedel.md","source":"@site/blog/2023-08-04-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-08-04T00:00:00.000Z","formattedDate":"August 4, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.43,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-08-04-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2023-08-04-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-08-04-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThe team is formalising mini protocols and also further developing the\\nperformance modelling prototype.\\n\\n## Details\\n\\n* Developing new framework for specification and verification of\\n mini-protocols which is closer to the Haskell implementation.\\n\\n* Developed a new internal representation for the DeltaQ algebra that\\n allows for more modularity in backend implementations\\n\\n* Discussions regarding the Cardano networking specification"},{"id":"2023-08-04-hydra","metadata":{"permalink":"/2023-08-04-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-hydra.md","source":"@site/blog/2023-08-04-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-08-04T00:00:00.000Z","formattedDate":"August 4, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.06,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-08-04-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-08-04-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-08-04-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team achieved notable progress in various aspects of the\\nproject. The team updated the use case section for auctions on the [/unstable](https://hydra.family/head-protocol/unstable/use-cases/)\\nbranch of the website, improving the understanding of Hydra’s applicability.\\n\\nFrom the development side, the team successfully completed event-sourced\\npersistence, a key enhancement in the project’s architecture which improves\\noff-chain transaction processing performance. They also added a\\n“submit-transaction” endpoint to the API.\\n\\nIn addition to project-related progress, the team actively engaged in community\\nreviews for several catalyst proposals related to Hydra and Mithril,\\ncontributing to the wider Cardano ecosystem.\\n\\nFinally, the full report for the month of July was also published [here](https://hydra.family/head-protocol/monthly/2023-07).\\n\\n## What did the team achieve this week\\n\\n- Published the [monthly report for July](https://hydra.family/head-protocol/monthly/2023-07)\\n- Updated the use case section for auctions (published on [/unstable](https://hydra.family/head-protocol/unstable/use-cases/) branch)\\n- Completed event sourced persistence [#913](https://github.com/input-output-hk/hydra/issues/913)\\n- Added a “submit-transaction” endpoint to the API [#966](https://github.com/input-output-hk/hydra/issues/966)\\n- Community reviews for several catalyst proposals related to Hydra and Mithril\\n- Created a network testing tool (hydra-net) [#1006](https://github.com/input-output-hk/hydra/pull/1006)\\n\\n## What are the goals of next week\\n\\n- Update hydra-node to work with cardano-node version 8.x\\n- Remove the internal commit functionality\\n- Release version 0.12.0\\n- Update & streamline tutorial to work with latest version of hydra-node"},{"id":"2023-08-04-ledger","metadata":{"permalink":"/2023-08-04-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-ledger.md","source":"@site/blog/2023-08-04-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-08-04T00:00:00.000Z","formattedDate":"August 4, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.915,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-08-04-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-08-04-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/2023-08-04-network"}},"content":"## High level summary\\n\\nThe ledger team was working almost exclusively on the Conway era implementation. In\\nparticular, the main focus was directed towards solidifying transaction related types and\\ntheir binary representation. We also directed some effort into unblocking Plutus team with\\nrespect to PlutusV3 integration.\\n\\n## Low level summary\\n\\n### Conway progress\\n\\n* [pull-3552] - Allow Constitutional Committee Hot Key to be ScriptHash\\n* [pull-3581] - Make Constitutional Committee Cold Key to be ScriptHash\\n* [pull-3571] - Implement a portion of the TICKF rule.\\n* [pull-3556] - Add Script to Constitution\\n* [pull-3576] - Add optional Anchor to ConwayRegDRep certificate\\n* [pull-3495] - Implement refund logic for Proposal deposits\\n* [pull-3579] - Change voting procedure in the transaction to a nested Map\\n* [pull-3585] - Rename `CommitteeCert` into a `GovCert`\\n* [pull-3587] - Remove `DelegStakeTxCert` from the `COMPLETE` pragma for `TxCert`\\n* [pull-3586] - Add `CurrentTreasuryValue` to `TxBody`\\n* [pull-3588] - Rename key roles\\n* [pull-3557] - Update `NewCommittee` action to use `RewardAcnt` and add more info\\n* [pull-3595] - Add `ConwayUpdateDRep` constructor to ConwayTxCertGov type\\n* [pull-3600] - Filter out zero TxOuts on Byron/Shelley boundary instead of Babbage/Conway\\n* [pull-3597] - Update `ProposalProcedure` return address to be a `RewardAcnt`\\n\\n### Testing\\n\\n* [pull-3374] - New features for generation subject to constraints\\n* [pull-3519] - Basic Conway features test\\n\\n### Bugfixes\\n\\n* [pull-3566] - Mint field translation bugfix.\\n\\n### Plutus integration\\n\\n* [issue-3538] - A fairly complete specification was created for the PlutusV3 context\\n* [pull-3593] - Conway TxInfo for PlutusV3 is now compatible with all pre-Conway functionality\\n\\n### Improvements and releasing\\n\\n* [pull-3574] - Improve clarity and performance of collateral Non-ADA validation:\\n* [pull-3573] - Update top-level `CHANGELOG.md` with cardano-node relevant changes\\n* [pull-3555] - Bump pygments from 2.12.0 to 2.15.0 in /doc\\n* [pull-3575] - Bump certifi from 2022.12.7 to 2023.7.22 in /doc\\n* [pull-3567] - Backport mint field translation bugfix\\n* [pull-3568] - Fixed typo in byron ledger spec\\n* [pull-3572] - Release/backport tickf bugfix\\n\\n\\n\\n[issue-3538]: https://github.com/input-output-hk/cardano-ledger/issues/3538\\n[pull-3555]: https://github.com/input-output-hk/cardano-ledger/pull/3555\\n[pull-3566]: https://github.com/input-output-hk/cardano-ledger/pull/3566\\n[pull-3567]: https://github.com/input-output-hk/cardano-ledger/pull/3567\\n[pull-3568]: https://github.com/input-output-hk/cardano-ledger/pull/3568\\n[pull-3572]: https://github.com/input-output-hk/cardano-ledger/pull/3572\\n[pull-3552]: https://github.com/input-output-hk/cardano-ledger/pull/3552\\n[pull-3571]: https://github.com/input-output-hk/cardano-ledger/pull/3571\\n[pull-3575]: https://github.com/input-output-hk/cardano-ledger/pull/3575\\n[pull-3573]: https://github.com/input-output-hk/cardano-ledger/pull/3573\\n[pull-3556]: https://github.com/input-output-hk/cardano-ledger/pull/3556\\n[pull-3574]: https://github.com/input-output-hk/cardano-ledger/pull/3574\\n[pull-3576]: https://github.com/input-output-hk/cardano-ledger/pull/3576\\n[pull-3581]: https://github.com/input-output-hk/cardano-ledger/pull/3581\\n[pull-3495]: https://github.com/input-output-hk/cardano-ledger/pull/3495\\n[pull-3579]: https://github.com/input-output-hk/cardano-ledger/pull/3579\\n[pull-3585]: https://github.com/input-output-hk/cardano-ledger/pull/3585\\n[pull-3587]: https://github.com/input-output-hk/cardano-ledger/pull/3587\\n[pull-3586]: https://github.com/input-output-hk/cardano-ledger/pull/3586\\n[pull-3588]: https://github.com/input-output-hk/cardano-ledger/pull/3588\\n[pull-3557]: https://github.com/input-output-hk/cardano-ledger/pull/3557\\n[pull-3593]: https://github.com/input-output-hk/cardano-ledger/pull/3593\\n[pull-3595]: https://github.com/input-output-hk/cardano-ledger/pull/3595\\n[pull-3374]: https://github.com/input-output-hk/cardano-ledger/pull/3374\\n[pull-3600]: https://github.com/input-output-hk/cardano-ledger/pull/3600\\n[pull-3597]: https://github.com/input-output-hk/cardano-ledger/pull/3597\\n[pull-3519]: https://github.com/input-output-hk/cardano-ledger/pull/3519"},{"id":"2023-08-04-network","metadata":{"permalink":"/2023-08-04-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-network.md","source":"@site/blog/2023-08-04-network.md","title":"Network Team Update","description":"High-level overview of sprint 41","date":"2023-08-04T00:00:00.000Z","formattedDate":"August 4, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.515,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-08-04-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-08-04-ledger"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-08-04-performance-and-tracing"}},"content":"## High-level overview of [sprint 41][sprint-41]\\n_24th July - 6th August 2023_\\n\\nWe started the implementation of __bootstrap peers__. Bootstrap peers are designed\\nto provide a safety guarantee for nodes joining the network while still taking\\nadvantage of the distributed network for nodes that are synced. This will be\\nan intermediate step before Genesis which will allow for further distribute the\\nsystem. The bootstrap peers will be run by some trusted partners like CF,\\nEmurgo or IOG. They are primarily designed for leaf nodes (e.g. full node\\nwallets), which often end up syncing and require access to the honest chain. See\\n[ouroboros-network#4615] for a more detailed implementation plan.\\n\\n## Other contributions\\n\\nWe started to use `nothunks` library to discover if we have any unevaluated\\nthunks which can lead to memory leaks [ouroboros-network#4633]. We found\\na small one in the peer metric component of the P2P networking stack. Fixing\\nit put us on a small detour of fixing the API of the [`strict-checked-vars`]\\npackage: [cardano-base#431], [cardano-base#432], as well as adding `NFData`\\ninstance to [`io-classes`][io-classes#110]. We also improved `nothunks`\\nlibrary to make debugging easier and we provided a `NoThunks` instance for\\n`ThreadId` which we will need in the future (see [nothunks#33]).\\n\\nWe released a new version of `io-classes` (version `1.2.0.0`) and related\\npackages to [Hackage][io-classes-1.2.0.0].\\n\\nWe addressed all review comments on the eclipse evasion PR which introduces big\\nledger peers, [ouroboros-network#3886].\\n\\nWe fixed how `SIGHUP` signal handlers are registered, so it\'s not possible to\\nshutdown a node which was starting while trying to update network topology,\\nsee [cardano-node#5421].\\n\\nI didn\'t mention that in the previous update, so here it goes: in the previous\\nsprint we released [`ouroboros-network-0.8.2.0`] and\\n[`ouroboros-network-framework-0.7.0.0`].\\n\\n[sprint-41]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+41%22\\n\\n[`strict-checked-vars`]: https://github.com/input-output-hk/cardano-base/tree/master/strict-checked-vars\\n[cardano-base#431]: https://github.com/input-output-hk/cardano-base/pulls/431\\n[cardano-base#432]: https://github.com/input-output-hk/cardano-base/pulls/432\\n[cardano-node#5421]: https://github.com/input-output-hk/cardano-node/pull/5421\\n[ouroboros-network#3886]: https://github.com/input-output-hk/ouroboros-network/issues/3886\\n[ouroboros-network#4615]: https://github.com/input-output-hk/ouroboros-network/issues/4615\\n[ouroboros-network#4633]: https://github.com/input-output-hk/ouroboros-network/issues/4633\\n[`ouroboros-network-0.8.2.0`]: https://github.com/input-output-hk/ouroboros-network/blob/f84fcddce472d6cfc2b838b20a2ad085fe0896ed/ouroboros-network/CHANGELOG.md\\n[`ouroboros-network-framework-0.7.0.0`]: https://github.com/input-output-hk/ouroboros-network/blob/ouroboros-network-framework-0.7.0.0/ouroboros-network-framework/CHANGELOG.md\\n[io-classes#110]: https://github.com/input-output-hk/io-sim/pull/110\\n[io-classes-1.2.0.0]: https://hackage.haskell.org/package/io-classes-1.2.0.0io-classes-1.2.0.0\\n[nothunks#33]: https://github.com/input-output-hk/nothunks/pull/33"},{"id":"2023-08-04-performance-and-tracing","metadata":{"permalink":"/2023-08-04-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-performance-and-tracing.md","source":"@site/blog/2023-08-04-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-08-04T00:00:00.000Z","formattedDate":"August 4, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":1.76,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-08-04-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-08-04-network"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-08-04-sre"}},"content":"## High level summary\\n\\n* Benchmarking: We\'re adjusting the benchmarking cluster to handle runs for node version `8.2.0`.\\n* Tracing: We\'ve finished optimization of the new tracing system and added extra robustness with regard to namespacing.\\n* Infrastructure: We\'ve been working on making all benchmarking code compliant with the latest GHC9.6.\\n* Nomad backend: The new backend has seen adjustments due to a change of underlying hardware. Additionally, we\'ve successfully performed various benchmarking runs on it.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nThe `8.2.0` version of `cardano-node` required adjustment of some of the sanity checks that are part of our benchmarking\\ncluster automation. We\'ve pinpointed the necessary changes and are currently setting up the cluster for the new node version.\\n\\n### Tracing\\n\\nThe optimization efforts for the new tracing system have been completed and have significantly reduced the resource footprint\\nwhen using it as default for a running node. \\n\\nA linchpin of the new system is the organization of traces into a namespace hierarchy. This affects configuration, self-documentation as well as rendering of desired trace messages. The new system is now equipped to detect any\\ninconsistency in the whole set of tracers, defined across all components, even if they are never turned on in a running node.\\nThis feature adds another layer of robustness to the whole system.\\n\\n### Infrastructure\\n\\nA potential switch to GHC9.6 (or higher) required some work on our code bases to make it compliant with recent compiler\\nversions. We\'ve future-proofed our benchmarking code.\\n\\n### Nomad backend\\n\\nThe hardware cluster that our nomad backend was accessing has been changed, and we were able to adjust our backend\\naccordingly without touching its higher level abstractions and functionality. Moreover, with the new hardware and cluster setup, certain tasks such as retrieving run artifacts or healthcheck monitoring have become more performant. \\n\\nThe validation phase is ongoing. We were able to perform successful runs and analyses for various `8.x` node versions, including `8.2.0-pre`. With parallel runs on the current cluster, we hope to measure the same effects we\'ve observed with the\\nnomad backend - which will be a big step towards production use."},{"id":"2023-08-04-sre","metadata":{"permalink":"/2023-08-04-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-sre.md","source":"@site/blog/2023-08-04-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-08-04T00:00:00.000Z","formattedDate":"August 4, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":0.64,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-08-04-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-08-04-performance-and-tracing"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-08-01-node-cli-api"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general environment maintenance.\\n\\nSome notable recent updates or improvements include:\\n* Preprod and preview envionments were updated to 8.1.2.\\n* Sanchonet and shelley-qa environments were updated to 8.2.0-pre.\\n* Work on a new cardano performance repo which utilizes a lightweight Cloudformation/Rain to Terraform infra bootstrap and Nomad environment has begun.\\n\\n## Lower level summary\\n\\n### Cardano-ops\\n* Deploy cardano-node 8.1.2, merge p2p modifications, script fixes and cleanup: [cardano-ops-pull-416](https://github.com/input-output-hk/cardano-ops/pull/416)\\n\\n### Cardano-perf\\n* New repo: [cardano-perf-repo](https://github.com/input-output-hk/cardano-perf)\\n\\n### Cardano-world\\n* Deploy cardano-node 8.1.2, emurgo p2p config, optimize faucet resources: [cardano-world-pull-104](https://github.com/input-output-hk/cardano-world/pull/104)\\n* Resolve nomad segfaults via nix versioning and fixup dbSync metal job for iohkNix env update: [cardano-world-pull-105](https://github.com/input-output-hk/cardano-world/pull/105)\\n* Add nomad dbSync fix for iohkNix env update: [cardano-world-pull-106](https://github.com/input-output-hk/cardano-world/pull/106)"},{"id":"2023-08-01-node-cli-api","metadata":{"permalink":"/2023-08-01-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-01-node-cli-api.md","source":"@site/blog/2023-08-01-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-08-01T00:00:00.000Z","formattedDate":"August 1, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.76,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-08-01-node-cli-api","tags":["cli-api"],"authors":"carlos","hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-08-04-sre"},"nextItem":{"title":"Network Team Update","permalink":"/2023-07-31-network"}},"content":"# 2023-07-19 - 2023-08-01\\n\\n## High level summary\\n\\n- Release of Node 8.2.0\\n - Updates to the ledger packages extend progress on the Conway ledger era to support new governance features via CIP-1694.\\n - This release is phase 1 of the SanchoNet roll out\\n - Allows SPOs to vote on changes to the on-chain constitution.\\n - Ability to start the node in block production mode with no secrets loaded using the --non-producing-node flag.\\n - Updates to the networking packages prepare the road for peer sharing.\\n- cardano-cli and cardano-api continue to integrate Conway era features\\n- Continue refactoring of cardano-testnet\\n\\n### cardano-cli\\n\\n- [Use AnyShelleyToBabbageEra from cardano-api instead](https://github.com/input-output-hk/cardano-cli/pull/116)\\n- [Update to `cardano-api-8.10.2.0`](https://github.com/input-output-hk/cardano-cli/pull/115)\\n- [Add rendering for `ConwayCertificate` in `Cardano.Cli.Json.Friendly`](https://github.com/input-output-hk/cardano-cli/pull/113)\\n- [Update to `cardano-api-8.10.1.0`](https://github.com/input-output-hk/cardano-cli/pull/111)\\n- [Add DRep registration certificate command](https://github.com/input-output-hk/cardano-cli/pull/110)\\n- [Add options to delegate voting stake ](https://github.com/input-output-hk/cardano-cli/pull/109)\\n- [Share MIR certificates code between era-based and legacy CLI parsers](https://github.com/input-output-hk/cardano-cli/pull/107)\\n- [Release cardano-cli 8.4.0.0](https://github.com/input-output-hk/cardano-cli/pull/106)\\n- [Update to`cardano-api-8.10.0.0`](https://github.com/input-output-hk/cardano-cli/pull/103)\\n- [Change directory structure from Options/.. to EraBased/..](https://github.com/input-output-hk/cardano-cli/pull/100)\\n- [Era-sensitive command structure](https://github.com/input-output-hk/cardano-cli/pull/98)\\n- [#86 Set default era to Babbage in stake-address, stake-pool and governance commmands](https://github.com/input-output-hk/cardano-cli/pull/90)\\n\\n\\n### cardano-api\\n\\n\\n- [Deprecate `shelleyCertificateConstraints` and `conwayCertificateConstraints`](https://github.com/input-output-hk/cardano-api/pull/155)\\n- [Deprecate `TxVotesSupportedInEra`](https://github.com/input-output-hk/cardano-api/pull/154)\\n- [Add SerialiseAsBech32 instances for committee cold and hot keys](https://github.com/input-output-hk/cardano-api/pull/152)\\n- [Deprecate some constraint functions](https://github.com/input-output-hk/cardano-api/pull/151)\\n- [Deprecate `TxGovernanceActionSupportedInEra`](https://github.com/input-output-hk/cardano-api/pull/150)\\n- [More `shelleyBasedEraConstraint` constraints](https://github.com/input-output-hk/cardano-api/pull/149)\\n- [New version `cardano-api-8.10.2.0`](https://github.com/input-output-hk/cardano-api/pull/148)\\n- [Expose shelleyCertificateConstraints and conwayCertificateConstraints](https://github.com/input-output-hk/cardano-api/pull/147)\\n- [Remove unnecessary function `getShelleyEraTxBodyConstraint`](https://github.com/input-output-hk/cardano-api/pull/146)\\n- [Provide additional constraints in `shelleyBasedEraConstraints`](https://github.com/input-output-hk/cardano-api/pull/143)\\n- [Update changelogs for `cardano-api-8.10.1.0`](https://github.com/input-output-hk/cardano-api/pull/142)\\n- [handleFileForWritingWithOwnerPermissionImpl: Fix permisions](https://github.com/input-output-hk/cardano-api/pull/141)\\n- [Update DRepKey with correct `Voting` keyrole](https://github.com/input-output-hk/cardano-api/pull/138)\\n- [Support more constraints for Conway witnesses](https://github.com/input-output-hk/cardano-api/pull/137)\\n- [New version `cardano-api-8.10.0.0`](https://github.com/input-output-hk/cardano-api/pull/135)\\n- [Expose toShelleyPoolParams for conway integration](https://github.com/input-output-hk/cardano-api/pull/134)\\n- [`FeatureInEra` instance for `ShelleyBasedEra`](https://github.com/input-output-hk/cardano-api/pull/131)\\n- [Expose more functionality from cardano-api](https://github.com/input-output-hk/cardano-api/pull/130)\\n- [Improved feature ergonomics](https://github.com/input-output-hk/cardano-api/pull/128)\\n- [Rename `AtMostBabbageEra` to `ShelleyToBabbageEra`](https://github.com/input-output-hk/cardano-api/pull/127)\\n\\n\\n### cardano-node\\n\\n- [Fix stubbed LogFormatting instances](https://github.com/input-output-hk/cardano-node/pull/5412)\\n- [8.2.0 version bumps](https://github.com/input-output-hk/cardano-node/pull/5411)\\n- [Bump network packages version](https://github.com/input-output-hk/cardano-node/pull/5409)\\n- [Fix missing `ToObject` tracing instances.](https://github.com/input-output-hk/cardano-node/pull/5404)\\n- [input-output-hk/cardano-cli#85 Fix node crashing in babbage](https://github.com/input-output-hk/cardano-node/pull/5401)\\n\\n\\n### cardano-testnet\\n\\n- [8.2.0 version bumps](https://github.com/input-output-hk/cardano-node/pull/5411)\\n- [Bump network packages version](https://github.com/input-output-hk/cardano-node/pull/5409)\\n- [Fix missing `ToObject` tracing instances.](https://github.com/input-output-hk/cardano-node/pull/5404)\\n- [Fix plutus script costing in cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/5400)\\n\\n### docs\\n\\n- [Bump network packages version](https://github.com/input-output-hk/cardano-node/pull/5409)\\n - [WarmValency](https://github.com/input-output-hk/cardano-node/blob/05c0392b4722d7fe2f82db1854b28de4f28a917b/doc/getting-started/understanding-config-files.md?plain=1#L84C1-L97C42)\\n\\n### CI & project maintenance"},{"id":"2023-07-31-network","metadata":{"permalink":"/2023-07-31-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-31-network.md","source":"@site/blog/2023-07-31-network.md","title":"Network Team Update","description":"Network Update (Sprints 39 & 40)","date":"2023-07-31T00:00:00.000Z","formattedDate":"July 31, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":2.18,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-07-31-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-08-01-node-cli-api"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-07-28-hydra"}},"content":"## Network Update (Sprints 39 & 40)\\n\\nThe network updates got distracted. Mostly because of me leaving for the meeting in Edinburgh, Scotland and the being away.\\nIt was great to see and talk to so many of the community members.\\n\\n### Sprint 39 (Jun 26 - Jul 09)\\n\\n#### Major changes\\n\\nNow the following __list of traces will be turned on by default__:\\n\\n##### `node-to-client` protocol\\n\\n- `LocalConnectionManagerTracer` \\n- `LocalInboundGovernor`\\n- `LocalHandshake`\\n- `LocalServer`\\n\\n##### `node-to-node` protocol\\n\\n- `Server`\\n\\nSee [cardano-node#5353]. This will be released in `node-8.2.0`.\\n\\n\\nWe made sure that `cardano-client-0.1.0.x` library (which is `db-sync`) is not using the experimental `node-to-client` protocol.\\nThe `cardano-client-0.2.0.0` was not affected.\\nSee [ouroboros-network#4612].\\n\\nWe merged the __dynamic block production feature__ to `ouroboros-consensus` (also available in the `cardano-node-8.2.0` release).\\nDynamic block production enables hot-swap p2p nodes, which are important for the p2p deployment of block-producing nodes.\\nSee [ouroboros-network#3159], [ouroboros-consensu#140].\\n\\nWe continued to review the implementation of big ledger peers for eclipse evasion, see [ouroboros-network#4462].\\n\\n#### Minor changes\\n\\n- We refactored the top level `cardano-node` error handler: [cardano-node#5356]\\n\\n\\n### Sprint 40 (Jul 09 - Jul 23)\\n\\n#### Major changes\\n\\nWe integrated `ouroboros-network-0.8.2.0` with the `master` branch of `cardano-node` for the `8.2.0` release (the version match between `ouroboros-network` and `cardano-node` is purely accidental).\\nThis includes:\\n\\n* integration with __dynamic block production__ feature.\\n This feature is documented in the [following PR][cardano-node#5399].\\n* __Warm valency__ for local root peers (see below).\\n\\nFor the full list of features included in the `8.2.0` release from the network side, please take a look at the [pre-release nodes][cardano-node-8.2.0-pre].\\n\\n\\nWe __improved the memory footprint__ of peer metrics measured by the P2P stack.\\nPeer metrics are used to decide which peers to demote every churn interval (roughly every hour with some probabilistic fluctuation).\\nSee [ouroboros-network#4620].\\nThe improvement will be available in `cardano-node-8.2.0`.\\n\\nWe added an __optional explicit warm valency__ to local root peers of the __P2P topology file__.\\nPreviously we used an implicit valency, e.g. the node keeps connections to all of the local roots; with local warm valency the node will pick only that many peers from the local root peers group to connect to.\\nThe hot valency (previously known simply as valency) hasn\'t changed, but it must be smaller than the warm valency as hot peers are selected from warm ones.\\nWarm valency is a useful feature to limit resource consumption if one of the domain names in the local root peer group resolves to many IP addresses.\\nSee [ouroboros-network#4575], [cardano-node#5409].\\n\\n[cardano-node#5353]: https://github.com/input-output-hk/cardano-node/pull/5353\\n[cardano-node#5356]: https://github.com/input-output-hk/cardano-node/pull/5356\\n[cardano-node#5399]: https://github.com/input-output-hk/cardano-node/pull/5399\\n[cardano-node#5409]: https://github.com/input-output-hk/cardano-node/pull/5409\\n[cardano-node-8.2.0-pre]: https://github.com/input-output-hk/cardano-node/releases/tag/8.2.0-pre\\n[ouroboros-network#4575]: https://github.com/input-output-hk/ouroboros-network/pull/4575\\n[ouroboros-network#4612]: https://github.com/input-output-hk/ouroboros-network/pull/4612\\n[ouroboros-network#4620]: https://github.com/input-output-hk/ouroboros-network/pull/4620\\n[ouroboros-network#3159]: https://github.com/input-output-hk/ouroboros-network/issues/3159\\n[ouroboros-network#4462]: https://github.com/input-output-hk/ouroboros-network/pull/4462\\n[ouroboros-consensus#140]: https://github.com/input-output-hk/ouroboros-consensus/pull/140\\n\\n[sprint-39]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22Sprint+39%22\\n[sprint-40]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22Sprint+40%22"},{"id":"2023-07-28-hydra","metadata":{"permalink":"/2023-07-28-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-28-hydra.md","source":"@site/blog/2023-07-28-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-07-28T00:00:00.000Z","formattedDate":"July 28, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.005,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-07-28-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-07-31-network"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-07-27-mithril"}},"content":"## High-level summary\\n\\nDuring this week, the Hydra team achieved significant progress in various areas.\\nThey conducted the monthly review meeting for July, which continously ensures\\ntransparent communication and project evaluation. The team migrated the core\\nlogic of the node to an event-sourced architecture and incremental writes of\\nevents to persistence, enhancing the project’s performance and maintainability.\\nFurthermore, the team added the ability to read protocol parameters via the API\\nand fixed the CI workflows to support pull requests from forks of external\\ncontributors, streamlining the development process for community involvement.\\n\\n## What did the team achieve this week\\n\\n- Held the monthly review meeting for July ([recording](https://drive.google.com/file/d/14ANZ3efuxgXpYK94EBWxZLR9TtN7voru/))\\n- Migrate the core logic of the node to an event-sourced architecture [#999](https://github.com/input-output-hk/hydra/pull/999)\\n- Updated persistence to faster incremental writes of events [#1000](https://github.com/input-output-hk/hydra/pull/1000)\\n- Added ability to read protocol parameters via API [#735](https://github.com/input-output-hk/hydra/issues/735)\\n- Fix CI workflows to support pull requests from forks of external contributors [#993](https://github.com/input-output-hk/hydra/pull/993)\\n- Updated to GHC 9.2.8 [#1005](https://github.com/input-output-hk/hydra/pull/1005)\\n- Prepared an updated use cases section on (published with next release)\\n\\n## What are the goals of next week\\n\\n- Publish monthly report\\n- Complete user transaction submission work [#966](https://github.com/input-output-hk/hydra/issues/966)\\n- Remove commit from internal wallet (deprecated) [#954](https://github.com/input-output-hk/hydra/issues/954)"},{"id":"2023-07-27-mithril","metadata":{"permalink":"/2023-07-27-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-27-mithril.md","source":"@site/blog/2023-07-27-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-07-27T00:00:00.000Z","formattedDate":"July 27, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.715,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-07-27-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-07-28-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-07-26-consensus"}},"content":"## High level overview\\nThe Mithril team launched **Mithril protocol\u2019s mainnet beta**: the `release-mainnet` network is now open for signer registrations, and its genesis certificate has been created. The team is monitoring the network, and expects it to start producing certificates during the next Cardano epoch. \\n\\nThey have released a new distribution [`2329.0`](https://github.com/input-output-hk/mithril/releases/tag/2329.0), which is running on the `release-mainnet` network. They also kept working on the implementation of the stress test tool for benchmarking the aggregator. The team kept working on the refactoring of the serialization/deserialization of the entities of the cryptographic library. Additionally, they completed the cleanup of the legacy store adapters in the aggregator.\\n\\nFinally, they have worked on enhancing the documentation for [onboarding SPOs](https://mithril.network/doc/manual/getting-started/SPO-on-boarding-guide) and setting up a [Mithril signer](https://mithril.network/doc/manual/getting-started/run-signer-node), and fixing installation bugs of the binary artifacts produced in the CI.\\n\\n\\n## Low level overview\\n- Created the dev blog post [Mithril Protocol\u2019s Mainnet Beta Launch](https://mithril.network/doc/dev-blog/2023/07/21/mainnet-beta-launch)\\n- Released the new distribution [`2329.0`](https://github.com/input-output-hk/mithril/releases/tag/2329.0)\\n- Closed the epic that prepares the Mithril infrastructure for `mainnet` [#767](https://github.com/input-output-hk/mithril/issues/767):\\n - Completed the issue `Deploy \'mainnet\' infrastructure` [#988](https://github.com/input-output-hk/mithril/issues/988)\\n - Completed the issue `Handle Secrets management` [#989](https://github.com/input-output-hk/mithril/issues/989)\\n- Worked on the epic `Release \'mainnet\' Mithril network` [#918](https://github.com/input-output-hk/mithril/issues/918)\\n - Completed the issue `Prepare SPO on-boarding guide` [#1049](https://github.com/input-output-hk/mithril/issues/1049)\\n- Worked on the epic `Benchmark performances of Mithril Aggregator` [#904](https://github.com/input-output-hk/mithril/issues/904):\\n - Worked on the issue `Design & implement basic stress test tool for aggregator` [#991](https://github.com/input-output-hk/mithril/issues/991)\\n- Worked on optimizations:\\n - Completed the issue `Enhance the configuration of Mithril relay` [#1080](https://github.com/input-output-hk/mithril/issues/1080)\\n - Completed the issue `Remove legacy store adapters from aggregator` [#1053](https://github.com/input-output-hk/mithril/issues/1053)\\n - Completed the issue `Add a \'sign\' sub-command to \'genesis\' command in aggregator` [#1081](https://github.com/input-output-hk/mithril/issues/1081)\\n- Worked on refactoring:\\n - Worked on the issue `Refactor (de)serialization of crypto entities` [#668](https://github.com/input-output-hk/mithril/issues/668)\\n- Worked on documentation:\\n - Completed the issue `Enhance \'Run a Mithril Signer node (SPO)\' guide` [#1055](https://github.com/input-output-hk/mithril/issues/1055)\\n- Worked on bugs:\\n - Completed the issue `Shared library error in CI binaries` [#1073](https://github.com/input-output-hk/mithril/issues/1073)\\n - Completed the issue `Debian package does not install cleanly on older ubuntu versions` [#834](https://github.com/input-output-hk/mithril/issues/834)\\n - Completed the issue `Aggregator panics with new (de)serialization of \'ProtocolVerificationKey\'` [#1083](https://github.com/input-output-hk/mithril/issues/1083)"},{"id":"2023-07-26-consensus","metadata":{"permalink":"/2023-07-26-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-26-consensus.md","source":"@site/blog/2023-07-26-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-07-26T00:00:00.000Z","formattedDate":"July 26, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.85,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-07-26-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-07-27-mithril"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-07-21-hydra"}},"content":"## High level summary\\n\\nThe `db-sync` team confirmed that the adaptor module the Consensus team provided for UTxO-HD integration, shows no performance degradation. Other clients who wish to integrate with UTxO-HD without using a on-disk storage could use that same approach for now.\\nWe also focused on completing tracing support for UTxO-HD in `cardano-node`.\\nCurrently we are working on UTxO-HD documentation, both for downstream consumers and for the general public; and generalizing the implementation further. \\n\\nThe team working on Genesis decided on a Genesis-motivated change of the epoch structure with the researchers, wrote a self-contained description of the statistical model for historical Genesis windows and eclipse durations, and merged two small improvements to the `ChainSync` client as part of the onboarding efforts for the team that will implement Genesis.\\n\\nThe Consensus team also investigated an issue on sanchonet (the Conway testnet) manifesting in long syncing pauses; identified a ledger bug which was promptly fixed by the Ledger team.\\n\\n### Genesis liaising\\n\\nImprovements to the `ChainSync` client:\\n\\n- [#222](https://github.com/input-output-hk/ouroboros-consensus/pull/222).\\n- [#233](https://github.com/input-output-hk/ouroboros-consensus/pull/233)."},{"id":"2023-07-21-hydra","metadata":{"permalink":"/2023-07-21-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-21-hydra.md","source":"@site/blog/2023-07-21-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-07-21T00:00:00.000Z","formattedDate":"July 21, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.7,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-07-21-hydra","authors":["ch1bo"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-07-26-consensus"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-07-21-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team updated the specification to align with recent\\noff-chain protocol changes, completed refactoring the snapshot emission\\nin preparation for event-sourced protocol logic, and updated to GHC\\n9.2.7, resulting in improved compile times and slightly smaller Plutus\\nscripts.\\n\\n## What did the team achieve this week\\n\\n- Updated the specification to match the recent off-chain protocol\\n changes to complete\\n [#728](https://github.com/input-output-hk/hydra/pull/728)\\n- Refactored the snapshot emission logic in preparation for event\\n sourced protocol logic.\\n- Updated to GHC 9.2.7, which led to improved compile times and\\n slightly smaller plutus scripts.\\n\\n## What are the goals of next week\\n\\n- Monthly review meeting next wednesday and July report\\n- Reflect latest information onto our roadmap.\\n- Actual implemention of event-sourced persistence\\n [#913](https://github.com/input-output-hk/hydra/pull/913).\\n- Update the use cases section on \\n- Remove deprecated internal commit\\n [#954](https://github.com/input-output-hk/hydra/pull/954)."},{"id":"2023-07-21-ledger","metadata":{"permalink":"/2023-07-21-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-21-ledger.md","source":"@site/blog/2023-07-21-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-07-21T00:00:00.000Z","formattedDate":"July 21, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.715,"hasTruncateMarker":false,"authors":[{"name":"Alexey Kuleshevich","title":"Ledger Team Software Engineer","url":"https://github.com/lehins","imageURL":"https://github.com/lehins.png","key":"lehins"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-07-21-ledger","authors":"lehins","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-07-21-hydra"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-07-21-sre"}},"content":"## High level summary\\n\\nOur focus was on planning and implementing Conway features that we would like to see deployed and running on Sanchonet. \\nAll members of the ledger team participated in the CIP-1694 workshop and had an in-person meeting, where we discussed plans forward for the Conway era.\\nWe also investigated some transaction validation issues that occurred on preview with the latest node (for 8.2 release).\\nAdditionally, we did some preparatory work that will help us define the types we need for Plutus V3 and integrate with the new version when it will become available.\\nWe also made progress on the constraint-based generators, which can now generate valid transactions and ledger states. \\n\\n## What we achieved \\n\\n* [[pull-3521]] [[pull-3554]] Improved Governance model (GovernanceProcedures, ProposalProcedure)\\n* [[pull-3520]] Improved Governance-related naming (Renamed Tally to Gov and VDel to GovCert ) \\n* [[pull-3531]] Refactored and simplified code interacting with Plutus\\n* [[pull-3558]] Fixed a bug that was breaking validation on preview, related to refernce inputs witnesses. We backported and released the fix. \\n* [[pull-3550]] For Conway to run on Sanchonet, we updated the era Translation to remove zero-ADA outputs. This was necessary because such outputs exist on mainnet, but in Conway they are not allowed.\\n* [[pull-3551]] [[pull-3546]] [[pull-3472]] Updated tools and added some small improvements \\n* [[issue-3146]] [[pull-3498]] Introduced Conway protocol parameters \\n* [[issue-2948]] [[pull-3499]] Implemented ConwayGenesis with the new protocol parameters\\n\\n## What is currently in progress\\n\\n* [[issue-3494]] [[pull-3495]] Implement returning of proposal deposits\\n* [[issue-3436]] [[pull-3523]] Implement transferring lovelace from UTxO to treasury\\n* [[issue-3509]] [[pull-3552]] Add script-support for the committee hot key\\n* [[issue-3532]] [[pull-3556]] Add script-support for the constitution\\n* [[issue-3543]] [[pull-3557]] Improve the \'new committee\' governance action by specifying the members to be replaced, expiration epoch of new members and adding script-support\\n\\n\\n[pull-3521]: https://github.com/input-output-hk/cardano-ledger/pull/3521\\n[pull-3554]: https://github.com/input-output-hk/cardano-ledger/pull/3554\\n[pull-3520]: https://github.com/input-output-hk/cardano-ledger/pull/3520\\n[pull-3531]: https://github.com/input-output-hk/cardano-ledger/pull/3531\\n[pull-3558]: https://github.com/input-output-hk/cardano-ledger/pull/3558\\n[pull-3550]: https://github.com/input-output-hk/cardano-ledger/pull/3550\\n[pull-3551]: https://github.com/input-output-hk/cardano-ledger/pull/3551\\n[pull-3546]: https://github.com/input-output-hk/cardano-ledger/pull/3546\\n[pull-3472]: https://github.com/input-output-hk/cardano-ledger/pull/3472\\n[pull-3498]: https://github.com/input-output-hk/cardano-ledger/pull/3498\\n[pull-3499]: https://github.com/input-output-hk/cardano-ledger/pull/3499\\n[pull-3495]: https://github.com/input-output-hk/cardano-ledger/pull/3495 \\n[pull-3523]: https://github.com/input-output-hk/cardano-ledger/pull/3523\\n[pull-3552]: https://github.com/input-output-hk/cardano-ledger/pull/3552\\n[pull-3556]: https://github.com/input-output-hk/cardano-ledger/pull/3556\\n[pull-3557]: https://github.com/input-output-hk/cardano-ledger/pull/3557 \\n[issue-3494]: https://github.com/input-output-hk/cardano-ledger/issues/3494\\n[issue-2948]: https://github.com/input-output-hk/cardano-ledger/issues/2948\\n[issue-3436]: https://github.com/input-output-hk/cardano-ledger/issues/3436\\n[issue-3532]: https://github.com/input-output-hk/cardano-ledger/issues/3532\\n[issue-3509]: https://github.com/input-output-hk/cardano-ledger/issues/3509\\n[issue-3146]: https://github.com/input-output-hk/cardano-ledger/issues/3146\\n[issue-3543]: https://github.com/input-output-hk/cardano-ledger/issues/3543"},{"id":"2023-07-21-sre","metadata":{"permalink":"/2023-07-21-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-21-sre.md","source":"@site/blog/2023-07-21-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-07-21T00:00:00.000Z","formattedDate":"July 21, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":0.685,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-07-21-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-07-21-ledger"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-07-20-goedel"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements and general environment maintenance.\\n\\nSome notable recent improvements include:\\n* Re-spin sanchonet for testing a new node version followed by fork to Conway\\n* Deploying a sanchonet compatible faucet to sanchonet\\n* Migrate shelley qa legacy environment to cardano-world\\n\\n## Lower level summary\\n\\n### Cardano-node\\n* Bump iohk-nix for sanchonet and shelley qa environment updates: [cardano-node-pull-5406](https://github.com/input-output-hk/cardano-node/pull/5406)\\n\\n### Cardano-ops\\n* Mainnet relays are 50% migrated to p2p topology and 1 relay per region dedicated for ledger peers: [cardano-ops-compare](https://github.com/input-output-hk/cardano-ops/compare/31cce1a...496f085)\\n\\n### Cardano-world\\n* Cardano-node p2p all local roots entrypoint option was added: [cardano-world-pull-102](https://github.com/input-output-hk/cardano-world/pull/102)\\n* Migrate shelley qa legacy environment to cardano-world: [cardano-world-pull-103](https://github.com/input-output-hk/cardano-world/pull/103)\\n* Create a sanchonet compatible faucet: [cardano-world-pull-91](https://github.com/input-output-hk/cardano-world/pull/91)\\n\\n### Iohk-nix\\n\\n* Migrate shelley qa legacy environment to cardano-world: [iohk-nix-pull-549](https://github.com/input-output-hk/iohk-nix/pull/549)\\n* Drop legacy byron environment parameters: [iohk-nix-pull-550](https://github.com/input-output-hk/iohk-nix/pull/550)"},{"id":"2023-07-20-goedel","metadata":{"permalink":"/2023-07-20-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-20-goedel.md","source":"@site/blog/2023-07-20-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-07-20T00:00:00.000Z","formattedDate":"July 20, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.47,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-07-20-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-07-21-sre"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-07-18-node-cli-api"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThe team is working on formalising mini protocols, the performance\\nmodelling prototype and also finishing off their ICE papers.\\n\\n## Details\\n\\n* Formalization of the chain synchronization mini-protocol in the\\n thorn calculus\\n\\n* Final pre-publication steps for ICE 2023 papers\\n\\n* Developing approach for specification and verification of\\n mini-protocols\\n\\n* Started work on porting the DeltaQ framework to a new, more concrete\\n backend based on piecewise-polynomials"},{"id":"2023-07-18-node-cli-api","metadata":{"permalink":"/2023-07-18-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-18-node-cli-api.md","source":"@site/blog/2023-07-18-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-07-18T00:00:00.000Z","formattedDate":"July 18, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.065,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-07-18-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-07-20-goedel"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-07-14-hydra"}},"content":"# 2023-07-05 - 2023-07-18\\n\\n## High level summary\\n\\n- Integrate Conway certificates in cardano-api\\n- Prepare cardano-cli and cardano-api for cardano-node 8.1.2\\n- Tagged cardano-cli 8.3.0.0\\n - Query for the hash of the constitution (Conway)\\n - Ability to create votes and governance actions\\n- Tagged cardano-cli 8.3.1.0\\n - Make it build with ghc-9.6\\n- Upgrade to optparse-applicative-fork-0.18.1.0 for parsing command line options\\n\\n\\n### cardano-cli\\n\\n- [Upgrade to `optparse-applicative-fork-0.18.1.0`](https://github.com/input-output-hk/cardano-cli/pull/74)\\n- [Integrate cardano-api changes for fixed Show and Eq instances for Proposal type](https://github.com/input-output-hk/cardano-cli/pull/72)\\n- [New version `cardano-cli-8.3.1.0`](https://github.com/input-output-hk/cardano-cli/pull/68)\\n- [Add alonzo era to `Parser AnyShelleyBasedEra`](https://github.com/input-output-hk/cardano-cli/pull/67)\\n- [Use `sbe` variable name for the type is `ShelleyBasedEra`](https://github.com/input-output-hk/cardano-cli/pull/66)\\n- [New version `cardano-cli-8.3.0.0`](https://github.com/input-output-hk/cardano-cli/pull/65)\\n\\n### cardano-api\\n\\n- [Fix ghc version CPP](https://github.com/input-output-hk/cardano-api/pull/123)\\n- [Add a HasTypeProxy constraint to getVerificationKey](https://github.com/input-output-hk/cardano-api/pull/122)\\n- [Incorporate remaining ledger certificates](https://github.com/input-output-hk/cardano-api/pull/119)\\n- [Release cardano-api 8.8.1.0, cardano-api-gen 8.1.1.0](https://github.com/input-output-hk/cardano-api/pull/117)\\n- [Fix Eq, Show for Proposal type](https://github.com/input-output-hk/cardano-api/pull/115)\\n- [Wire up remaining governance actions](https://github.com/input-output-hk/cardano-api/pull/112)\\n- [Export `withShelleyBasedEraConstraintsForLedger`](https://github.com/input-output-hk/cardano-api/pull/108)\\n- [Remove unnecessary constraint](https://github.com/input-output-hk/cardano-api/pull/106)\\n- [Make it build with ghc-9.6](https://github.com/input-output-hk/cardano-api/pull/104)\\n- [New `shelleyBasedEraConstraints` function](https://github.com/input-output-hk/cardano-api/pull/103)\\n- [New version `cardano-api-8.8.0.0`](https://github.com/input-output-hk/cardano-api/pull/102)\\n- [Add CastVerificationKeyRole StakePoolKey StakeKey instance](https://github.com/input-output-hk/cardano-api/pull/101)\\n- [Update ledger and consensus](https://github.com/input-output-hk/cardano-api/pull/99)\\n- [Rename `era` to `sbe` when type is `ShelleyBasedEra`](https://github.com/input-output-hk/cardano-api/pull/98)\\n\\n### cardano-node\\n\\n### cardano-testnet\\n\\n- [Fix Shutdown test for new exit codes](https://github.com/input-output-hk/cardano-node/pull/5391)\\n\\n### docs\\n\\n- [Fix markdown links](https://github.com/input-output-hk/cardano-node/pull/5387)\\n\\n### CI & project maintenance\\n\\n- [Apply `stylish-haskell` to project](https://github.com/input-output-hk/cardano-cli/pull/69)"},{"id":"2023-07-14-hydra","metadata":{"permalink":"/2023-07-14-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-14-hydra.md","source":"@site/blog/2023-07-14-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-07-14T00:00:00.000Z","formattedDate":"July 14, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.79,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"},{"name":"Sasha Bogicevic","title":"Hydra Software Engineer","url":"https://github.com/v0d1ch","imageURL":"https://github.com/v0d1ch.png","key":"v0d1ch"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-07-14-hydra","authors":["ffakenz","v0d1ch"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-07-18-node-cli-api"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-07-13-mithril"}},"content":"## High-level summary\\n\\nThis week the team focused on exploring the event sourced persistence in order\\nto improve `hydra-node` performance. Because of this work the team noticed we\\nneed to refactor the emit snapshot emission logic and update the spec in the\\nlight of new changes. They also took the time to revisit their goals and product\\nplans for the next quarter as well as doing some security fixes related to\\nmultisignatures.\\n\\n## What did the team achieve this week\\n\\n- Finished spike about performance improvements of event sourced persistence [#963](https://github.com/input-output-hk/hydra/pull/963).\\n- Refactor snapshot emission in protocol logic.\\n- Revisited our roadmap and goals.\\n- Prepared and conducated a learning session on lean-waste.\\n- Improve security of multi-signature checks, see [this Github security advisory](https://github.com/input-output-hk/hydra/security/advisories/GHSA-c8qp-cv4h-vcc4).\\n- Implemented a cache friendly way to version our binaries [#962](https://github.com/input-output-hk/hydra/pull/962).\\n\\n## What are the goals of next week\\n\\n- Implement Event sourced persistence [#913](https://github.com/input-output-hk/hydra/pull/913).\\n- Remove deprecated internal commit [#954](https://github.com/input-output-hk/hydra/pull/954) and close [#728](https://github.com/input-output-hk/hydra/pull/728)."},{"id":"2023-07-13-mithril","metadata":{"permalink":"/2023-07-13-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-13-mithril.md","source":"@site/blog/2023-07-13-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-07-13T00:00:00.000Z","formattedDate":"July 13, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.92,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-07-13-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-07-14-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-07-12-consensus"}},"content":"## High level overview\\nThe Mithril team created a new [`2327.0`](https://github.com/input-output-hk/mithril/releases/tag/2327.0) distribution. They focused on preparing the beta launch on the `mainnet`: they tested the new production signer deployment model with the pioneer SPOs, they prepared an SPO on-boarding guide, and they kept working on the deployment and monitoring of the `mainnet` infrastructure. The team also worked on the implementation of a simple stress test tool for benchmarking the aggregator. Additionally, they completed the refactoring of the interface to the cryptographic library. \\n\\nFinally, they fixed a bug that sporadically prevented the latest signer registration of a SPO to be used in the associated signing epoch, they fixed a bug in the epoch gap detection of the certificate chain in the aggregator, and worked on multiple other optimizations and bugs.\\n\\n## Low level overview\\n- Released the new distribution [`2327.0`](https://github.com/input-output-hk/mithril/releases/tag/2327.0)\\n- Worked on the epic that prepares the Mithril infrastructure for `mainnet` [#767](https://github.com/input-output-hk/mithril/issues/767):\\n - Completed the issue `Add infrastructure monitoring` [#987](https://github.com/input-output-hk/mithril/issues/987)\\n - Worked on the issue `Deploy \'mainnet\' infrastructure` [#988](https://github.com/input-output-hk/mithril/issues/988)\\n - Worked on the issue `Handle Secrets management` [#989](https://github.com/input-output-hk/mithril/issues/989)\\n- Worked on the epic `Benchmark performances of Mithril Aggregator` [#904](https://github.com/input-output-hk/mithril/issues/904):\\n - Worked on the issue `Design & implement basic stress test tool for aggregator` [#991](https://github.com/input-output-hk/mithril/issues/991)\\n- Worked on optimizations:\\n - Completed the issue `Remove certificate hash from Artifact` [#932](https://github.com/input-output-hk/mithril/issues/932)\\n - Completed the issue `Check vulnerabilities in CI` [#1037](https://github.com/input-output-hk/mithril/issues/1037)\\n - Completed the issue `Add \'created_at\' in Mithril Stake Distribution messages` [#1030](https://github.com/input-output-hk/mithril/issues/1030)\\n - Completed the issue `Add a \'run-only\' option in end to end test` [#1048](https://github.com/input-output-hk/mithril/issues/1048)\\n- Worked on refactoring:\\n - Completed the issue `Factorize protocol crypto operations` [#669](https://github.com/input-output-hk/mithril/issues/669)\\n - Completed the issue `Refactor aggregator dependency injection and services` [#1058](https://github.com/input-output-hk/mithril/issues/1058)\\n - Completed the issue `Build static binaries in CI` [#874](https://github.com/input-output-hk/mithril/issues/874)\\n- Worked on documentation:\\n - Completed the issue `Prepare SPO on-boarding guide` [#1049](https://github.com/input-output-hk/mithril/issues/1049)\\n - Completed the issue `Add instructions to set firewall using iptables` [#1040](https://github.com/input-output-hk/mithril/issues/1040)\\n - Completed the issue `Update ufw command to set firewall on Mithril Signer installation instructions` [#1041](https://github.com/input-output-hk/mithril/issues/1041)\\n- Worked on bugs:\\n - Completed the issue `Aggregator does not detect certificate chain epoch gap` [#952](https://github.com/input-output-hk/mithril/issues/952)\\n - Completed the issue `\'testing-preview\' network does not create certificates` [#1015](https://github.com/input-output-hk/mithril/issues/1015)\\n - Completed the issue `SQLite compatibility in aggregator` [#837](https://github.com/input-output-hk/mithril/issues/837)\\n - Completed the issue `Q&A followup fixes` [#1035](https://github.com/input-output-hk/mithril/issues/1035)\\n - Completed the issue `E2E tests are flaky in CI` [#1023](https://github.com/input-output-hk/mithril/issues/1023)"},{"id":"2023-07-12-consensus","metadata":{"permalink":"/2023-07-12-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-12-consensus.md","source":"@site/blog/2023-07-12-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-07-12T00:00:00.000Z","formattedDate":"July 12, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.59,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-07-12-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-07-13-mithril"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-07-12-performance-and-tracing"}},"content":"## High level summary\\n\\nThis week the team working on UTxO-HD discovered a space leak in the peer metrics code. This was communicated to the Networking team who has a [proposed fix](https://github.com/input-output-hk/ouroboros-network/pull/4620). The ad-hoc benchmarks that the team ran using a local immutable DB server showed good memory and time performance. We still have to check the performance on a memory constrained machine.\\n\\nThe team working on the Genesis design started onboarding the team of engineers that will implement the new Genesis protocol. This team is also finalizing the statistical model for historical Genesis feasibility.\\n\\nOn the support front, the team [drafted](https://github.com/input-output-hk/ouroboros-consensus/pull/200) an information exchange requirement (IER) for the Networking team to safely and efficiently control peer load."},{"id":"2023-07-12-performance-and-tracing","metadata":{"permalink":"/2023-07-12-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-12-performance-and-tracing.md","source":"@site/blog/2023-07-12-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-07-12T00:00:00.000Z","formattedDate":"July 12, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.29,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-07-12-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-07-12-consensus"},"nextItem":{"title":"Crypto Team Update","permalink":"/2023-07-07-crypto"}},"content":"## High level summary\\n\\n* Benchmarking: The peformance investigation into the compiler switch to GHC9 is ongoing. Additionally, a roadmap for implementing Consensus QTAs has been developed.\\n* Infrastructure: Our workbench has undergone some refactoring to seamlessly integrate its profiles into all available backends.\\n* Tracing: Optimization of the new tracing system is ongoing and yielding good performance results.\\n* Nomad backend: We developed a new feature for the nomad backend which allows pinning deployments to specific machines.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nOur analysis of the GHC9 build of `cardano-node` has produced several locations in the code base where the new compiler seems to miss opportunities for optimization. Our hypothesis is, that those can account for the difference in resource usage we observe when benchmarking with a full cluster run. Instructing the compiler on how to perform the optimizations which GHC8 apparently applied out of the box requires further investigation. \\n \\nIn an effort to define Quantitative Timeliness Agreements (QTAs) on a per-component basis, we have coordinated with the Consensus team and developed a roadmap for providing those on consensus level. Making use of the insight that system-level benchmarks allow, we intend to set up and calibrate a benchmark that can reliably predict a regression or optimization for select metrics before needing full integration into `cardano-node`. This will help tremendously in various ways: catching regressions much earlier, localizing them much easier, avoiding repeated component integration and much shorter feedback cycle.\\n\\n### Infrastructure\\n\\nWe have worked on seamless integration of our benchmarking profiles into the many available backends that the workbench provides. The goal was to be backend-agnostic, to guarantee that all benchmarking run artifacts be structurally identical as far as their file name, format and location are concerned. This lead to refactoring work and has already landed in `master`.\\n\\n### Tracing\\n\\nMuch effort went into further optimization of the new tracing system. After working on configuration to align both new and legacy tracing system with regard to their trace frequencies, we could uncover some increase in resource usage. This occurred for corner cases under very heavy load. These cases have been addressed already, and do now surpass the legacy tracing system in terms of performance.\\n\\n### Nomad backend\\n\\nFor reliable benchmarking results it is vital to introduce as few confounding factors as possible when performing runs. This includes hardware and network topology. The nomad backend has been outfitted with a mechanism to pin the nomad job for some node in our benhcmarking cluster to a specific machine instance. This greatly increases confidence in the metrics observed from a run. \\n\\nFurthermore this feature will detect any change in the underlying hardware or topology so it can be taken into account. The new feature has been merged to `master`."},{"id":"2023-07-07-crypto","metadata":{"permalink":"/2023-07-07-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-07-crypto.md","source":"@site/blog/2023-07-07-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-07-07T00:00:00.000Z","formattedDate":"July 7, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":0.795,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-07-07-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-07-12-performance-and-tracing"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-07-07-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Sidechains: First version of snark-based ATMS\\n* mithril: Full node verifier\\n* kes_agent: Keep progress, and prepare CIP and CPS\\n* CIPs and community: Finishing BLS12-381 CIP and working on a KECCAK CIP\\n\\n## Low level summary\\n### kes_agent\\n* KES Agent CIP/CSP. Preparing documents. Will become public in the future.\\n* KES Agent testsuite (https://github.com/input-output-hk/kes-agent/issues/14)\\n* RawBearer abstraction in ouroboros-network-framework (https://github.com/input-output-hk/ouroboros-network/pull/4395)\\n* Maintaining required changes to cardano-base for KES Agent (https://github.com/input-output-hk/cardano-base/pull/317)\\n### Mithril\\n* Final review of the implementation of Full Node Verifier [#939](https://github.com/input-output-hk/mithril/pull/939).\\n Included benchmarks and further tests.\\n### Sidechains\\n* Schnorr signature implemented\\n* ATMS signature implemented\\n* First benchmarks show that for the committe size we expect, we need 2^21 constraints. \\n### CIPs and community\\n* Addressed some review comments in [#PR506](https://github.com/cardano-foundation/CIPs/pull/506)\\n* Worked with the communityt on [#PR524](https://github.com/cardano-foundation/CIPs/pull/524) to include Keccak as part of the next Plutus release."},{"id":"2023-07-07-goedel","metadata":{"permalink":"/2023-07-07-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-07-goedel.md","source":"@site/blog/2023-07-07-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-07-07T00:00:00.000Z","formattedDate":"July 7, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.42,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-07-07-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2023-07-07-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-07-07-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the teams have been working on finalising their ICE papers\\nfor publication in EPTCS, formalising concensus, and investigating chain\\nsync.\\n\\n## Details\\n\\n* Preparing final versions of ICE papers\\n\\n* Reviewing the chain sync design and documentation\\n\\n* Refactoring the thorn calculus\\n\\n* First draft of Praos specification\\n\\n* Developing bounding factors on timeouts"},{"id":"2023-07-07-hydra","metadata":{"permalink":"/2023-07-07-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-07-hydra.md","source":"@site/blog/2023-07-07-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-07-07T00:00:00.000Z","formattedDate":"July 7, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.865,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"},{"name":"Sasha Bogicevic","title":"Hydra Software Engineer","url":"https://github.com/v0d1ch","imageURL":"https://github.com/v0d1ch.png","key":"v0d1ch"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-07-07-hydra","authors":["ffakenz","v0d1ch"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-07-07-goedel"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-07-07-sre"}},"content":"## High-level summary\\n\\nThis week the Hydra team accomplished some nice progress. They secured the\\nnetwork layer further by implementing authentication of the messages between the\\npeers in the Head protocol. In the process they also managed to separate\\nHeartBeat messages from the protocol ones which somewhat improved the quality of\\ncode in Hydra. The team also finished work related to sending only transaction\\nids in ReqSn messages, fixed an issue in the smoke tests, and improved benchmark\\npublishing on the website.\\n\\n## What did the team achieve this week\\n\\n- [Implemented](https://github.com/input-output-hk/hydra/issues/727) authenticated messages\\n- [Implemented](https://github.com/input-output-hk/hydra/issues/728) send only transaction ids in ReqSn messages\\n- Separate [HeartBeat](https://github.com/input-output-hk/hydra/pull/969) messages from the core network protocol messages\\n- Publish multiple pre-defined [benchmarks](https://github.com/input-output-hk/hydra/pull/947)\\n- [Fixed](https://github.com/input-output-hk/hydra/pull/967) a smoke-test issue where funds would not be returned to the faucet\\n- Found a bug in the [off-chain signature\\n verification](https://github.com/input-output-hk/hydra-ghsa-c8qp-cv4h-vcc4/pull/1)\\n\\n## What are the goals of next week\\n\\n- Spike on performance improvements of event sourced persistence [#913](https://github.com/input-output-hk/hydra/issues/913)\\n- Add new endpoint for submitting client transactions\\n- Remove commit from internal wallet"},{"id":"2023-07-07-sre","metadata":{"permalink":"/2023-07-07-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-07-sre.md","source":"@site/blog/2023-07-07-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-07-07T00:00:00.000Z","formattedDate":"July 7, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":0.815,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-07-07-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-07-07-hydra"},"nextItem":{"title":"Developer Experience Update","permalink":"/2023-07-06-developer-experience"}},"content":"## High level summary\\n\\nThe SRE team continues work on cardano environment improvements, supporting CI improvements, and general environment maintenance.\\n\\nSome notable recent improvements include:\\n* Improved cardano-node entrypoint handling to allow for clean restarts in the Nomad environment\\n* Explorer component updates\\n* Spongix caching server rewrite for R2 Cloudflare support and various performance improvements\\n\\n## Lower level summary\\n\\n### Cardano-node\\n* Nixos service update to enable non-systemd socket activation multi-node relays: [cardano-node-pull-5360](https://github.com/input-output-hk/cardano-node/pull/5360)\\n\\n### Cardano-ogmios\\n* Cardano ogmios bump to 5.6.0 for nixos service: [cardano-ogmios-pull-6](https://github.com/input-output-hk/cardano-ogmios/pull/6)\\n\\n### Cardano-ops\\n* Improve storage resize script, workaround systemd node signal handling, rescale p2p relays: [cardano-ops-compare](https://github.com/input-output-hk/cardano-ops/compare/88a17c9...dfde751)\\n\\n### Cardano-rosetta\\n* Cardano-rosetta nixos modifications for rosetta 2.1.0 service: [cardano-rosetta-pull-532](https://github.com/cardano-foundation/cardano-rosetta/pull/532)\\n\\n### Cardano-world\\n* Cardano-node entrypoint improvements: [cardano-world-pull-99](https://github.com/input-output-hk/cardano-world/pull/99)\\n* Further automate pool performance SQL query: [cardano-world-pull-100](https://github.com/input-output-hk/cardano-world/pull/100)\\n* Performance and benchmark job related tweaks: [cardano-world-commit](https://github.com/input-output-hk/cardano-world/commit/02f1ba424d3e36bd114df6f53b769d2cd25301c3)\\n* Explorer related component version bumps and traefik definition handline: [cardano-world-pull-101](https://github.com/input-output-hk/cardano-world/pull/101)\\n\\n### Spongix\\n* Spongix caching server rewrite for Cloudflare R2 backend support plus misc improvements: [spongix-simple-branch](https://github.com/input-output-hk/spongix/compare/afd77728f5823d61732425df52a363949096e163...4890ff93308f45584bea8443cc13fbc16c8ce911)"},{"id":"2023-07-06-developer-experience","metadata":{"permalink":"/2023-07-06-developer-experience","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-06-developer-experience.md","source":"@site/blog/2023-07-06-developer-experience.md","title":"Developer Experience Update","description":"High level summary","date":"2023-07-06T00:00:00.000Z","formattedDate":"July 6, 2023","tags":[{"label":"devx","permalink":"/tags/devx"}],"readingTime":1.145,"hasTruncateMarker":false,"authors":[{"name":"Moritz Angermann","title":"Head of Developer Experience","url":"https://github.com/angerman","imageURL":"https://github.com/angerman.png","key":"angerman"}],"frontMatter":{"title":"Developer Experience Update","slug":"2023-07-06-developer-experience","authors":"angerman","tags":["devx"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-07-07-sre"},"nextItem":{"title":"DB-sync Team Update","permalink":"/2023-07-04-db-sync"}},"content":"## High level summary\\n\\nThe Developer Experience team has been dealing with day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, CI migration from Cicero to Hydra, and Buildkite to GitHub Actions. iohk-nix, haskell.nix, and devx have seen improvements.\\n\\n## Lower level summary\\n\\n### build support & maintainance\\n\\nThe DevX team has helped troubleshoot a few CI issues, and focused on helping to migrate from Cicero to Hydra, as well as from Buildkite to GitHub Actions.\\n\\n### compiler upgrades\\n\\nCompatibility with 9.6 has been continued and most of our libraries are not 9.6 compatible. Only a few are not, we hope to have this done by the end of the month. We\'ve also started preliminarily adding GHC 9.8 to our infrastructure for early compiler regression tests.\\n\\n\\n### Hydra Tools\\nOur repository, [input-output-hk/actions](https://github.com/input-output-hk/hydra-tools), has seen quite some improvements to facility the hydra <-> github integration.\\n\\n\\n### haskell.nix\\n[Haskell.nix](https://github.com/input-output-hk/haskell.nix) has been maintained and updated with the addition of preliminary GHC 9.8 support.\\n\\n### devx\\n\\nThe [devx](https://github.com/input-output-hk/devx) repository has seen significant improvements, including the addition of GitHub Codespaces, and DevContainers. Integrated with our [actions/devx](https://github.com/input-output-hk/actions) GitHub Actions, we have a consistent set of tooling for\\n- nix develop shells\\n- GitHub CodeSpaces integration\\n- VSCode DevContainer support\\n- GitHub Actions integration\\n\\n### upstream tooling\\n\\nOur team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix."},{"id":"2023-07-04-db-sync","metadata":{"permalink":"/2023-07-04-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-04-db-sync.md","source":"@site/blog/2023-07-04-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-07-04T00:00:00.000Z","formattedDate":"July 4, 2023","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.73,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-07-04-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Developer Experience Update","permalink":"/2023-07-06-developer-experience"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-07-04-node-cli-api"}},"content":"## High level summary\\nWe\'ve made progress in all high level objectives\\n- CIP-1694 integration design\\n- UTxO-HD integration proof of concept\\n- schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2 and tested\\n- Many devx issues resolved\\n\\n## Lower level summary\\n- We have improved and validated the design for the Conway integration in db-sync\\n- Improved the initial integration of the UTxO-HD feauture branches which are under test\\n- Prepared a new release 13.1.1.3 which supports node 8.1.1\\n[#1455](https://github.com/input-output-hk/cardano-db-sync/pull/1455).\\n- This also fixes a bug\\n[#1451](https://github.com/input-output-hk/cardano-db-sync/issues/1451)\\n- Added new tests to the new tx_out options\\n[#1429](https://github.com/input-output-hk/cardano-db-sync/pull/1429)\\n- Fixed a chronic issue in db-sync related to exception handling and concurrency\\nThis fixes many other issues and simplifies the logic in db-sync\\n[#1447](https://github.com/input-output-hk/cardano-db-sync/pull/1447)\\n- A number of fixes and improvements in ci, docker, devx, docs\\n[#1436](https://github.com/input-output-hk/cardano-db-sync/pull/1436)\\n[#1442](https://github.com/input-output-hk/cardano-db-sync/pull/1442)\\n[#1448](https://github.com/input-output-hk/cardano-db-sync/pull/1448)\\n[#1452](https://github.com/input-output-hk/cardano-db-sync/pull/1452)"},{"id":"2023-07-04-node-cli-api","metadata":{"permalink":"/2023-07-04-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-04-node-cli-api.md","source":"@site/blog/2023-07-04-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-07-04T00:00:00.000Z","formattedDate":"July 4, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.495,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-07-04-node-cli-api","authors":"carlos","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/2023-07-04-db-sync"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-06-30-hydra"}},"content":"# 2023-06-21 - 2023-07-04\\n\\n## High level summary\\n\\n- Started integration of conway era into the cardano-api,\\n- Pre-release of cardano-cli 8.2.1 which enables creating goveranance \\"Update constitution\\" governance actionsas well as voting. Both only as SPO. DREP and CC will come in future releases.\\n- Cardano-cli is moving to a top-level era command structure (i.e. cardano-cli conway, cardano-cli babbage, etc to accomodate for different fucntionalities available in diferent eras. In particular between Babbage and Conway governance-related functionalities.\\n- Continue refactoring cardano-testnet\\n- CI and docs house keeping on the new cardnao-cli and cardano-api repositories\\n\\n\\n### cardano-cli\\n\\n- [Update to `cardano-api-8.7.0.0`](https://github.com/input-output-hk/cardano-cli/pull/60)\\n- [Release 8.2.1](https://github.com/input-output-hk/cardano-cli/pull/44)\\n- [Use new function-based API instead of using query data types directly](https://github.com/input-output-hk/cardano-cli/pull/39)\\n\\n### cardano-api\\n\\n- [Release cardano-api 8.7](https://github.com/input-output-hk/cardano-api/pull/94)\\n- [New version `cardano-api-8.6.0.0`](https://github.com/input-output-hk/cardano-api/pull/92)\\n- [New version `cardano-api-8.2.0.0.1.0.0`](https://github.com/input-output-hk/cardano-api/pull/90)\\n- [Backport: Add era phantom type parameter to Certificate](https://github.com/input-output-hk/cardano-api/pull/88)\\n- [Parameterise `Certificate` type with phantom `era` type argument](https://github.com/input-output-hk/cardano-api/pull/86)\\n- [Voting procedure and proposal procedure updates](https://github.com/input-output-hk/cardano-api/pull/85)\\n- [Parameterise `Certificate` with `era`](https://github.com/input-output-hk/cardano-api/pull/84)\\n- [Parameterise `Certificate` type with phantom `era` type argument](https://github.com/input-output-hk/cardano-api/pull/83)\\n- [Add contributing guide](https://github.com/input-output-hk/cardano-api/pull/79)\\n- [Unified `ShelleyBasedEra` constraint summoning](https://github.com/input-output-hk/cardano-api/pull/77)\\n- [Update CHaP index](https://github.com/input-output-hk/cardano-api/pull/70)\\n- [CIP-1694 API - Part 1](https://github.com/input-output-hk/cardano-api/pull/41)\\n\\n\\n### cardano-node\\n\\n- [cardano-node top level error handler](https://github.com/input-output-hk/cardano-node/pull/5356)\\n- [Turn on some traces by default](https://github.com/input-output-hk/cardano-node/pull/5353)\\n\\n### cardano-testnet\\n\\n- [Report payment address and UTxOs in testnets](https://github.com/input-output-hk/cardano-node/pull/5364)\\n- [New Conway `stake-snapshot` tests](https://github.com/input-output-hk/cardano-node/pull/5362)\\n\\n### docs\\n\\n- [Add contributing guide](https://github.com/input-output-hk/cardano-api/pull/79)\\n- [Release workflow description](https://github.com/input-output-hk/cardano-api/pull/33)\\n- [Turn on some traces by default](https://github.com/input-output-hk/cardano-node/pull/5353)\\n\\n\\n\\n### CI & project maintenance\\n\\n- [Add PR changelog check](https://github.com/input-output-hk/cardano-api/pull/75)\\n- [Fix stylish haskell in github action workflow](https://github.com/input-output-hk/cardano-api/pull/71)\\n- [Enable CI on PRs from forks](https://github.com/input-output-hk/cardano-api/pull/62)\\n- [Remove merge_group trigger from changelog check CI](https://github.com/input-output-hk/cardano-cli/pull/53)\\n- [Add PR changelog check. Add core-tech group to GHA description codeowners.](https://github.com/input-output-hk/cardano-cli/pull/46)\\n- [Fix stylish haskell in github action workflow](https://github.com/input-output-hk/cardano-cli/pull/41)\\n- [Enable CI in PRs from forks](https://github.com/input-output-hk/cardano-cli/pull/40)\\n- [Add contributing guide](https://github.com/input-output-hk/cardano-cli/pull/48)"},{"id":"2023-06-30-hydra","metadata":{"permalink":"/2023-06-30-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-30-hydra.md","source":"@site/blog/2023-06-30-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-06-30T00:00:00.000Z","formattedDate":"June 30, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.925,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-06-30-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-07-04-node-cli-api"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-06-29-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team wrote and published the monthly report for June,\\nimplemented the end-to-end functionality for external commits, and tested it on\\nthe preview environment. They also listed Hydra as a tool on the Cardano\\ndeveloper portal, providing more visibility for the project. The team clarified\\nthe path forward for L2 protocol improvements and explored an alternative CI\\napproach using cabal instead of nix. Additionally, they released version 0.11.0,\\nmarking another milestone in the project’s development.\\n\\n## What did the team achieve this week\\n\\n- Written and published the monthly report for [June](https://hydra.family/head-protocol/monthly/2023-06)\\n- Implemented external commits end-to-end incl. tested it on preview [#215](https://github.com/input-output-hk/hydra/issues/215)\\n- Listed Hydra as a tool on cardano [developer portal](https://developers.cardano.org/tools/)\\n- Cleared up path forward on L2 protocol improvements [#728](https://github.com/input-output-hk/hydra/issues/728)\\n- Established an alternative CI using more cabal tools [#923](https://github.com/input-output-hk/hydra/pull/923)\\n- Release version [0.11.0](https://github.com/input-output-hk/hydra/releases/tag/0.10.0)\\n\\n## What are the goals of next week\\n\\n- Spike on performance improvements of event sourced persistence [#913](https://github.com/input-output-hk/hydra/issues/913)\\n- Complete ReqSn only sends transaction ids [#728](https://github.com/input-output-hk/hydra/issues/728)\\n- Groom and plan last items for 0.12.0 (remove internal commit)\\n- Improve reliability of benchmarks"},{"id":"2023-06-29-mithril","metadata":{"permalink":"/2023-06-29-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-29-mithril.md","source":"@site/blog/2023-06-29-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-06-29T00:00:00.000Z","formattedDate":"June 29, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":2.205,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-06-29-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-06-30-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-06-28-consensus"}},"content":"## High level overview\\nThe Mithril team completed the design of the signer deployment model for the SPOs to run Mithril on their Cardano `mainnet` infrastructure, and implemented the associated Mithril Relay in the Mithril networks. They started working on the design and implementation of a stress test tool for benchmarking the aggregator performances. They worked on the refactoring of the Mithril Stake Distribution entity and the uniformization of the date types in the nodes. They also worked on implementing a new tool command in the aggregator and its first sub-command that helps avoiding re-genesis of the certificate chain when the structure of the certificate is updated. Additionally, they worked on implementing some monitoring for the Mithril infrastructure, and worked on a retry mechanism for the artifact creation of the aggregator.\\n\\nFinally, they fixed some bugs, and they completed the upgrade of the Mithril networks to Cardano node v.8.1.1.\\n\\n## Low level overview\\n- Worked on the epic that prepares the Mithril infrastructure for `mainnet` [#767](https://github.com/input-output-hk/mithril/issues/767):\\n - Worked on the issue `Add infrastructure monitoring` [#987](https://github.com/input-output-hk/mithril/issues/987)\\n- Completed the epic `Prepare Mithril Signer deployment model for SPO` [#862](https://github.com/input-output-hk/mithril/issues/862):\\n - Completed the issue `Design recommended deployment model for SPOs on \'mainnet\' and \'preview\'/\'preprod\'` [#961](https://github.com/input-output-hk/mithril/issues/961)\\n - Completed the issue `Adapt infrastructure to use Mithril Relay` [#1018](https://github.com/input-output-hk/mithril/issues/1018)\\n - Completed the issue `Announce the new signer deployment model in a dev blog post` [#1017](https://github.com/input-output-hk/mithril/issues/1017)\\n- Worked on the epic `Benchmark performances of Mithril Aggregator` [#904](https://github.com/input-output-hk/mithril/issues/904):\\n - Worked on the issue `Design & implement basic stress test tool for aggregator` [#991](https://github.com/input-output-hk/mithril/issues/991)\\n- Worked on bugs:\\n - Completed the issue `Aggregator does not exit on critical error` [#993](https://github.com/input-output-hk/mithril/issues/993)\\n - Completed the issue `Computation of master certificate of an epoch is incorrect` [#1006](https://github.com/input-output-hk/mithril/issues/1006)\\n - Completed the issue `End to end tests are flaky` [#954](https://github.com/input-output-hk/mithril/issues/954)\\n - Worked on the issue `\'testing-preview\' network does not create certificates` [#1015](https://github.com/input-output-hk/mithril/issues/1015)\\n- Worked on optimizations:\\n - Completed the issue `Dates format is not standardized` [#946](https://github.com/input-output-hk/mithril/issues/946)\\n - Completed the issue `Add \'recompute-certificates-hash\' command to aggregator` [#1001](https://github.com/input-output-hk/mithril/issues/1001)\\n - Completed the issue `Add a retry mechanism for artifact creation in aggregator` [#984](https://github.com/input-output-hk/mithril/issues/984)\\n - Completed the issue `Log node version at startup in Aggregator/Signer` [#944](https://github.com/input-output-hk/mithril/issues/944)\\n - Completed the issue `Reactivate Publish Results job in CI` [#978](https://github.com/input-output-hk/mithril/issues/978)\\n - Completed the issue `Clean \'pending_snapshot\' directory of aggregator` [#983](https://github.com/input-output-hk/mithril/issues/983)\\n - Completed the issue `Update OpenAPI spec examples` [#1000](https://github.com/input-output-hk/mithril/issues/1000)\\n- Worked on refactoring:\\n - Completed the issue `Refactor \'MithrilStakeDistribution\' entity` [#967](https://github.com/input-output-hk/mithril/issues/967)\\n - Completed the issue `Refactoring client` [#982](https://github.com/input-output-hk/mithril/issues/982)\\n - Completed the issue `Refactor download code in client` [#1010](https://github.com/input-output-hk/mithril/issues/1010)\\n - Worked on the issue `Factorize protocol crypto operations` [#669](https://github.com/input-output-hk/mithril/issues/669)\\n- Worked on dependencies:\\n - Completed the issue `Upgrade Cardano node to \'8.1.1\'` [#973](https://github.com/input-output-hk/mithril/issues/973)"},{"id":"2023-06-28-consensus","metadata":{"permalink":"/2023-06-28-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-28-consensus.md","source":"@site/blog/2023-06-28-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-06-28T00:00:00.000Z","formattedDate":"June 28, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":1.85,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-06-28-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-06-29-mithril"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-06-28-performance-and-tracing"}},"content":"## High level summary\\n\\nDuring the past two weeks the team working on the Genesis implementation continued to engage with the researchers, which resulted in various simplifications of the correctness argument for the historical Genesis window. They also decided on an approach for a syncing node to decide that it is (no longer) caught up. This functionality was requested by the networking team. \\n\\nThe team working on the UTxO-HD implementation ran ad-hoc benchmarks that showed performance issues, which are being investigated. They also merged several improvements required for the first UTxO-HD release, and added a package for easing integration with other downstream components.\\n\\nRegarding our support activities, we integrated the latest Ledger changes into Consensus in preparation for release 8.2 of node. \\n\\n### Genesis\\n\\n- We continued to engage with the researchers on our probabilistic model for historical Genesis window, resulting in various simplifications that make the correctness argument more clear while not being excessively conservative.\\n\\n- We [decided on an approach](https://github.com/input-output-hk/ouroboros-consensus/issues/101#issuecomment-1607767722) of how to implement functionality requested by the Networking team; namely, how a syncing node can safely conclude that it is (no longer) caught up. Certain parameters are still subject to discussion with the researchers, and we have still have to agree on a concrete API for this functionality with the Networking team.\\n\\n### UTxO-HD\\n\\n- We merged the last of the PRs that were part of UTxO-HD improvements for version [0.1](https://github.com/input-output-hk/ouroboros-consensus/issues/149): expose UTxO-HD configuration options in the node, refactor ledger tables, and expose a method of computing the UTxO set size.\\n- We [added](https://github.com/input-output-hk/ouroboros-consensus/pull/87) a new \\"legacy\\" cardano block in a new `ouroboros-consensus-cardano-legacy-block` package that should ease the transition for some downstream packages to UTxO-HD, like `db-sync`. This is really only useful for downstream packages that use the parts of consensus that don\'t involve the storage components, in which case we can largely ignore ledger tables. Ignoring ledger tables could also make functionality like block (re-)application more performant for the legacy Cardano block as compared to the actual (UTxO-HD compatible) Cardano block.\\n- We performed ad-hoc benchmarks of the UTxO-HD implementation, observing a regression in sync speed in the LMDB implementation as well as a regression in memory usage on the in-memory implementation. We are investigating this."},{"id":"2023-06-28-performance-and-tracing","metadata":{"permalink":"/2023-06-28-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-28-performance-and-tracing.md","source":"@site/blog/2023-06-28-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-06-28T00:00:00.000Z","formattedDate":"June 28, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":1.885,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-06-28-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-06-28-consensus"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-06-23-goedel"}},"content":"## High level summary\\n\\n* Benchmarking: We\'ve performed several new benchmarks and a performance investigation in preparation of switching the default compiler to GHC9.\\n* Infrastructure: The first batch of refactoring and documentation for our `tx-generator` has been merged to `master`.\\n* Tracing: We\'ve looked into an issue where the tracing system\'s concurrency could prevent a graceful node shutdown.\\n* Nomad backend: Our new cloud backend has seen various improvements regarding deployment and monitoring; validation runs for the backend are ongoing.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nThe compiler switch to GHC9 as the default build platform for `cardano-node` and its components still has noticeable effects on system-wide performance metrics. An investigation into the different resource usage profiles of compiler versions does seem to indicate GHC9\'s significantly different inlining behaviour may produce those effects. We\'re currently locating the specific places in component code that have the most extensive effect in that regard. \\n \\nUsing the `forge-stress` approximation we set up, we could determine that above effect is not due to a range of RTS parameters, as for example the number of capabilites used by the node.\\n\\n### Infrastructure\\n\\nThe `tx-generator` is a crucial part of our tooling responsible for producing very specific workloads for our benchmarking cluster. In an effort to flesh out an API to make it reusable for more general use cases, a first set of refactorings has been merged to `master`. Additionally, this merge contained systematic documentation both for internal and for exposed areas of the code base.\\n\\n### Tracing\\n\\nThe tracing system\'s concurrency could under certain conditions prevent a graceful shutdown of the node. This issue did occur only after adding specific new traces on a development branch. We could localize and address that issue.\\n\\n### Nomad backend\\n\\nWith the data gathered from running the new nomad cloud backend, we\'ve been able to address many, many small and medium-sized improvements. The deployment process has been restructured for better efficiency, and the healthcheck system could be fine-tuned to recognize severity of various conditions that might occur. Optimization of fetching all run data from the cloud for evaluation is in progress.\\n\\nAdditionally, we\'re continuing the new backend\'s validation by setting up test runs and looking into comparative analyses with metrics gathered from the current cluster backend."},{"id":"2023-06-23-goedel","metadata":{"permalink":"/2023-06-23-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-23-goedel.md","source":"@site/blog/2023-06-23-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-06-23T00:00:00.000Z","formattedDate":"June 23, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.335,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-06-23-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-06-28-performance-and-tracing"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-06-23-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the teams presented two papers at ICE 2023.\\n\\n## Details\\n\\n* Presented two papers at ICE 2023: https://www.discotec.org/2023/ice\\n\\n* Analysing and implementing chain synchronization mini protocol\\n\\n* The team is hiring a performance engineering intern - https://apply.workable.com/io-global/j/BFEC5B0AFF/"},{"id":"2023-06-23-hydra","metadata":{"permalink":"/2023-06-23-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-23-hydra.md","source":"@site/blog/2023-06-23-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-06-23T00:00:00.000Z","formattedDate":"June 23, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.79,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"},{"name":"Pascal Grange","title":"Hydra Software Engineer","url":"https://github.com/pgrange","imageURL":"https://github.com/pgrange.png","key":"pgrange"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-06-23-hydra","authors":["ffakenz","pgrange"],"tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-06-23-goedel"},"nextItem":{"title":"Network Team Update","permalink":"/2023-06-23-network"}},"content":"## High-level summary\\n\\nThis week, the Hydra team shared progress updates during the monthly review\\nmeeting (monthly report and video recording available soon) and started\\nexperimenting on preview network with the new commit from external wallet\\nfeature.\\n\\n## What did the team achieve this week\\n\\n- Monthly report & review meeting, demonstrating [commit from external\\n wallet](https://github.com/input-output-hk/hydra/pull/887)\\n- Published regular [benchmarks for\\n Hydra](https://hydra.family/head-protocol/unstable/benchmarks/end-to-end-benchmarks)\\n- Moved forward the journey for external commits using multiple script UTxOs\\n [#903](https://github.com/input-output-hk/hydra/pull/903)\\n- Changed the API to only put transaction id in snapshots, instead of the full\\n transactions [#922](https://github.com/input-output-hk/hydra/pull/922) -> this\\n is now evolved into fully addressing [#728](\\n https://github.com/input-output-hk/hydra/issues/728)\\n- Fuel marking is now optional as one can now commit from an external wallet\\n [#924](https://github.com/input-output-hk/hydra/pull/924)\\n- Add flag option to display node version on tui\\n [#934](https://github.com/input-output-hk/hydra/pull/934)\\n\\n## What are the goals of next week\\n\\n- Complete external commits using multiple script UTxOs [#903](https://github.com/input-output-hk/hydra/pull/903)\\n- New release 0.11.0\\n- Dirtroad solution of improved persistence performance [#913](https://github.com/input-output-hk/hydra/pull/913)"},{"id":"2023-06-23-network","metadata":{"permalink":"/2023-06-23-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-23-network.md","source":"@site/blog/2023-06-23-network.md","title":"Network Team Update","description":"Network Update","date":"2023-06-23T00:00:00.000Z","formattedDate":"June 23, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.7,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-06-23-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-06-23-hydra"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-06-23-sre"}},"content":"## Network Update\\n\\n### Key contributions\\n\\nWe held a series of session to review the implementation of big ledger peers\\n(eclipse evasion). See [#4462].\\n\\nWe get a request from a 3rd party to clarify an inconsistency between CDDL spec\\nand protocol implementation. We worked out a nice solution which takes\\nadvantage of the `any` notion available in `CDDL`. On the Haskell side we\\nprovide `Any` type which gen generate almost any CBOR term (some are excluded\\nonly because they are not decoded back to the same form, and we relay on that\\nproperty). See [#4580].\\n\\nWe fixed a bunch of problems of the `cardano-cli ping` command. It also now has\\na limited support of `node-to-client` mini-protocol (the `-c` option is\\nignored, as it cannot be supported by `node-to-client` protocol). Note that\\nthe format of messages has changed, timestamps are printed in ISO8601 format.\\nSee [#4601], [#5326], [#5313], [#30]\\n\\nIn order to provide a new flag in the topology file which enables ledger peers\\nwhen the chain is close to the tip, we continued to work on [#4530]. This is\\ncurrently in review, the consensus team will need to provide us with the new\\napi. This feature is useful for two reasons: makes it easier to maintain\\na topology file, it will also limit the traffic on public roots generated by\\nfor example full node wallets and distribute it to ledger peers.\\n\\nWe also continued to work on a blog post which describes the journey of design\\n& implementation of the dynamic P2P network layer. Too be announced soon :). \\n\\n### Other smaller changes\\n\\nWe limit the concurrency of resolving dns names. Up to 8 root peers or ledger\\npeers DNS names are resolved concurrently, and at most 2 local root peer DNS\\nnames. See [#4596].\\n\\nWe fixed handshake query timeout in [#4603].\\n\\nWe renamed one of the block-fetch decision constructors as requested by the\\nconsensus team, see [#4608].\\n\\n[#30]: https://github.com/input-output-hk/cardano-cli/pull/30\\n[#4462]: https://github.com/input-output-hk/ouroboros-network/pull/4462\\n[#4580]: https://github.com/input-output-hk/ouroboros-network/pull/4580\\n[#4596]: https://github.com/input-output-hk/ouroboros-network/pull/4596\\n[#4598]: https://github.com/input-output-hk/ouroboros-network/issues/4598\\n[#4601]: https://github.com/input-output-hk/ouroboros-network/pull/4601\\n[#5313]: https://github.com/input-output-hk/cardano-node/pull/5313\\n[#5326]: https://github.com/input-output-hk/cardano-node/pull/5326\\n[#4603]: https://github.com/input-output-hk/ouroboros-network/pull/4603\\n[#4530]: https://github.com/input-output-hk/ouroboros-network/issues/4530\\n[#4608]: https://github.com/input-output-hk/ouroboros-network/pull/4608"},{"id":"2023-06-23-sre","metadata":{"permalink":"/2023-06-23-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-23-sre.md","source":"@site/blog/2023-06-23-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-06-23T00:00:00.000Z","formattedDate":"June 23, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":0.98,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-06-23-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-06-23-network"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-06-16-hydra"}},"content":"## High level summary\\n\\nThe SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include:\\n* A devx-ci cluster containing a Hydra build server and Linux build farm was stood up and is intended to replace Cicero functionality\\n* Cardano Sanchonet environment was stood up to test Conway era functionality\\n* Cardano-node nixos service was updated to support the latest p2p topology format and non-systemd socket activation use case\\n* Cardano-node 8.1.1 was deployed to preview, preprod and mainnet environments\\n\\n## Lower level summary\\n\\n### Cardano-node\\n\\n- Update cardano-node nixos service for updated p2p topology and non-systemd socket activation: [cardano-node-pull-5318](https://github.com/input-output-hk/cardano-node/pull/5318)\\n\\n### Cardano-ops\\n\\n- Updates required for node 8.1.1 nixos service: [cardano-ops-pull-414](https://github.com/input-output-hk/cardano-ops/pull/414)\\n- Work in progress continues on mixed legacy and p2p topology clusters in cardano-ops: [cardano-ops-ops-local](https://github.com/input-output-hk/cardano-ops/tree/ops-local), [cardano-ops-mn-mixed-p2p](https://github.com/input-output-hk/cardano-ops/tree/mn-mixed-p2p)\\n\\n### Cardano-world\\n\\n- Add Sanchonet environment: [cardano-world-pull-96](https://github.com/input-output-hk/cardano-world/pull/96)\\n\\n### Ci-ops\\n\\n- Add devx-ci cluster integration for legacy darwin [ci-ops-compare](https://github.com/input-output-hk/ci-ops/compare/b158b17...ed875b9)\\n\\n### Ci-world\\n\\n- Add devx-ci cluster integration for caching, monitoring during cicero to devx-ci transition: [ci-world-compare](https://github.com/input-output-hk/ci-world/compare/840cdb6...b08c250)\\n\\n### Devx-ci\\n\\n- A CI cluster with a hydra build server was stood up and is intended to replace usage of Cicero: [devx-ci-repo](https://github.com/input-output-hk/devx-ci)\\n\\n### Iohk-nix\\n\\n- Add Sanchonet environment: [iohk-nix-pull-545](https://github.com/input-output-hk/iohk-nix/pull/545)"},{"id":"2023-06-16-hydra","metadata":{"permalink":"/2023-06-16-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-16-hydra.md","source":"@site/blog/2023-06-16-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-06-16T00:00:00.000Z","formattedDate":"June 16, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.815,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-06-16-hydra","authors":"ffakenz","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-06-23-sre"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-06-15-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team focused their efforts on continuing to investigate and\\nexperiment operating a head on mainnet. They collected several bugs and issues\\nand worked on fixing them. Now the team is soon to release a new version,\\n0.11.0, which comes with a lot of improvements and bug fixes.\\n\\n\\n## What did the team achieve this week\\n\\n- Restored and fixed a bug which stalled our head on mainnet [#927](https://github.com/input-output-hk/hydra/issues/927)\\n- Solved one user issue [#914](https://github.com/input-output-hk/hydra/issues/914)\\n- Reduced significantly local state size and logs by removing the full scripts from it [#928](https://github.com/input-output-hk/hydra/pull/928)\\n- (pending review) Reduced snapshot size in the API, by only including tx ids [#922](https://github.com/input-output-hk/hydra/pull/922)\\n\\n## What are the goals of next week\\n\\n- New release 0.11.0\\n- Monthly report & review meeting.\\n- Fix some minor bugs discovered when operating our head on mainnet\\n- Complete journey for external commits using multiple script UTxOs [#903](https://github.com/input-output-hk/hydra/pull/903)\\n- Publish benchmarks and provide regular benchmarks for Hydra [#186](https://github.com/input-output-hk/hydra/issues/186)"},{"id":"2023-06-15-mithril","metadata":{"permalink":"/2023-06-15-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-15-mithril.md","source":"@site/blog/2023-06-15-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-06-15T00:00:00.000Z","formattedDate":"June 15, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.795,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-06-15-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-06-16-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-06-14-consensus"}},"content":"## High level overview\\nThe Mithril team completed the implementation of the new sub-command for restoring a Mithril stake distribution in the client. They also updated the client\u2019s developer documentation and architecture documentation, and did some refactoring on the client and its dependency injection mechanism. Additionally, they completed and deployed infrastructure enhancements on the test Mithril networks. They also completed the performance tests of the new stake distribution computation on the Cardano mainnet.\\n\\nFinally, the team worked on fixing a bug on the client multi-platform test, a bug on the aggregator state machine, and some flakiness on the CI.\\n\\n## Low level overview\\n- Completed on the epic that designs and implements generic signing/verification of entity services [#780](https://github.com/input-output-hk/mithril/issues/780):\\n - Completed the issue `Create the sub-command for \'Mithril Stake Distribution\' in client` [#896](https://github.com/input-output-hk/mithril/issues/896)\\n - Completed the issue `Adapt end to end tests to handle new types of data` [#899](https://github.com/input-output-hk/mithril/issues/899)\\n - Completed the issue `Update client documentation` [#897](https://github.com/input-output-hk/mithril/issues/897)\\n - Completed the issue `Update architecture documentations for new types of data` [#898](https://github.com/input-output-hk/mithril/issues/898)\\n - Completed the issue `Refactoring client` [#960](https://github.com/input-output-hk/mithril/issues/960)\\n- Worked on the epic that prepares the Mithril infrastructure for `mainnet` [#767](https://github.com/input-output-hk/mithril/issues/767):\\n - Completed the issue `Enhance terraform infrastructure` [#930](https://github.com/input-output-hk/mithril/issues/930)\\n- Completed the epic that implements the computation of the stake distribution for `mainnet` [#880](https://github.com/input-output-hk/mithril/issues/880):\\n - Completed the issue `Check performance impact of new stake distribution command on the \'mainnet\'` [#962](https://github.com/input-output-hk/mithril/issues/962)\\n- Worked on the epic `Prepare Mithril Signer deployment model for SPO` [#862](https://github.com/input-output-hk/mithril/issues/862):\\n - Worked on the issue `Design recommended deployment model for SPOs on \'mainnet\' and \'preview\'/\'preprod\'` [#961](https://github.com/input-output-hk/mithril/issues/961)\\n- Worked on bugs and optimizations:\\n - Completed the issue `Aggregator does not always detect new immutable file` [#953](https://github.com/input-output-hk/mithril/issues/953)\\n - Completed the issue `CI tests fail with Rust \'1.70.0\'` [#958](https://github.com/input-output-hk/mithril/issues/958)\\n - Worked on the issue `End to end tests are flaky` [#954](https://github.com/input-output-hk/mithril/issues/954)\\n - Worked on the issue `Certificate dates in metadata are not on the same timezone` [#946](https://github.com/input-output-hk/mithril/issues/946)\\n - Worked on the issue `Refactor \'MithrilStakeDistribution\' entity` [#967](https://github.com/input-output-hk/mithril/issues/967)\\n - Completed the issue `Fix \'Mithril Client multi-platform test\' with new client interface` [#956](https://github.com/input-output-hk/mithril/issues/956)\\n - Completed the issue `Enhance \'ImmutableDigesterError::NotEnoughImmutable\' error` [#969](https://github.com/input-output-hk/mithril/issues/969)\\n - Completed the issue `Client \'snapshot download\' command fails with option \'--download-dir\'` [#979](https://github.com/input-output-hk/mithril/issues/979)"},{"id":"2023-06-14-consensus","metadata":{"permalink":"/2023-06-14-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-14-consensus.md","source":"@site/blog/2023-06-14-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-06-14T00:00:00.000Z","formattedDate":"June 14, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":1.115,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-06-14-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-06-15-mithril"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-06-14-performance-and-tracing"}},"content":"## High level summary\\n\\nThe Consensus team had a very productive meeting with IOG Researchers. We now seem to be in alignment in regards to a strong argument that the `Byron` and `TPraos` eras do not need to be checkpointed for an MVP.\\nThere is one remaining question (which applies also to the `Praos` era): how to assess the threat that short forks pose against historical windows that underperformed? We are currently collaborating on that. We also drafted an argument that the updated \\"Limit on Patience\\" timeout sufficiently bounds how long the adversary can inflate a victim\'s overall sync time.\\n\\nOn the UTxO-HD front, the prototype branch was rebased on top of the latest `ouroboros-consensus` `main` branch and integrated on top of `cardano-node 8.1.1-pre`. As a result, the mempool fairness fix that was released recently is now integrated into UTxO-HD.\\nWe managed to run a node again with UTxO-HD enabled. \\nWe also identified a race condition in the UTxO-HD prototype and fixed it. In addition, we started performing UTxO-HD ad-hoc benchmarks for `cardano-node`, which uncovered a performance regression on the Network component when using `GHC-9.2/9.4`. This is being addressed.\\n\\nRegarding our support activities, we Released `fs-sim-0.2.0.0` and are in the process of preparing the 8.2 release of `cardano-node`. We also identified and started fixing incorrectly-unevaluated thunks in preparation for enabling CI NoThunks tests."},{"id":"2023-06-14-performance-and-tracing","metadata":{"permalink":"/2023-06-14-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-14-performance-and-tracing.md","source":"@site/blog/2023-06-14-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-06-14T00:00:00.000Z","formattedDate":"June 14, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":1.515,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-06-14-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-06-14-consensus"},"nextItem":{"title":"Network Team Update","permalink":"/2023-06-12-network"}},"content":"## High level summary\\n\\n* Benchmarking: We\'ve continued release benchmarking and established a new baseline for `8.0.0`.\\n* New tracing: Our benchmarking profile for measuring new vs. legacy tracing performance has been refined.\\n* Nomad backend: The healthcheck system for the the nomad cloud has been completed. We\'ve performed the first full runs on the new backend.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nIn our release benchmarking cycle, we established a new performance baseline for `8.0.0`. Additionally, we\'ve measured\\nperformance under various workloads for `8.1.1-pre`; the results look promising and validate the optimization efforts\\ndone on several system components. \\n \\nIn the meantime, we\'ve finalized a build plan with GHC9.2 that matches the current one with GHC8.10; a requirement for\\nbenchmarking as a large amount of differences in the dependency graph can confound the results for the application code proper.\\n\\n\\n### Tracing\\n\\nThe legacy and the new tracing system differ fundamentally in design, implementation and handling. So for metrics to be\\nmeaningful in a comparison, benchmarking profiles have to be tuned such that not only log line frequency but frequency of specific\\ntrace messages are closely aligned. We\'ve found that higher granularity in this regard was necessary, and done additional work on our dedicated profiles. \\n\\nAdditionally, we\'ve had a first glance of what additional traces could be valuable in the context of benchmarking UTxO-HD.\\n\\n\\n### Nomad backend\\n\\nAs the new backend\'s healthcheck system in its first iteration can now serve as a guardrail to ensure sanity of a full-length run, we\'ve performed our first 52-node cluster runs on nomad cloud. We\'re currently smoothing the edges around cluster deployment, and analysing the metrics gathered from those runs. \\n\\nThis means the backend is entering validation phase, where we systematically compare all metrics taken from the new\\ninfrastructure to the existing ones, including determining reproducibility and variance."},{"id":"2023-06-12-network","metadata":{"permalink":"/2023-06-12-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-12-network.md","source":"@site/blog/2023-06-12-network.md","title":"Network Team Update","description":"Network Update","date":"2023-06-12T00:00:00.000Z","formattedDate":"June 12, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":2.205,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-06-12-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-06-14-performance-and-tracing"},"nextItem":{"title":"Crypto Team Update","permalink":"/2023-06-09-crypto"}},"content":"## Network Update\\n\\n### Key contributions and advances\\n\\nWe merged `light peer sharing` feature, which allows to include inbound peers\\ninto outbound governor known peers. This is the primary way for new\\nunregistered nodes to enter the network, which then can be shared using peer\\nsharing. Note that peer sharing is an experimental feature which is disabled\\nuntil genesis & eclipse evasion as fully implemented. See [#3596].\\n\\nWe are making progress reviewing eclipse evasion, [#3886].\\n\\nWe fixed another bug in local root peers. We found out that if the local roots\\nwhere ignored until the first domain name was resolved, see [#4583]. The bug\\nfix was backported and released in `ouroboros-network-0.8.1.1`.\\n\\nWe re-started working on dynamically enabling block forging to address issue\\n[#3159], which will enable us to release `P2P` on block producing nodes. See [#140].\\n\\n#### New `cardano-ping` / `cardano-cli ping` release\\n\\nWe prepared a new release of `cardano-ping` library which supports the new\\nquery feature (query supported versions). See [#4589], [#4593] and [#5313].\\nThe new version of `cardano-cli ping` will use `ISO8601` formatted\\ntimestamps; also the formatting of ping results is slightly improved, and it\\nwill introduce the new `--query-versions` (`-Q`) switch. If the remote site\\nsupports the query parameter, the command will print:\\n```\\nredacted-ip:port network rtt: 0.064\\nredacted-ip:port handshake rtt: 0.064010896s\\nredacted-ip:port Queried versions [NodeToNodeVersionV11 764824073 InitiatorAndResponder,NodeToNodeVersionV10 764824073 InitiatorAndResponder,NodeToNodeVersionV9 764824073 Initiat\\norAndResponder,NodeToNodeVersionV8 764824073 InitiatorAndResponder,NodeToNodeVersionV7 764824073 InitiatorAndResponder]\\n```\\notherwise it will print the negotiation results\\n```\\nredacted-ip:port network rtt: 0.045\\nredacted-ip:port handshake rtt: 0.101867615s\\nredacted-ip:port Negotiated version NodeToNodeVersionV10 764824073 InitiatorAndResponder\\n```\\nNote that in that case `cardano-cli ping` offers `InitiatorAndResponder`, which\\nallows us to detect whether the remote side is an `InitiatorOnly` or\\n`InitiatorAndResponder`. Also `cardano-cli ping` will no longer announce\\nitself as `InitiatorAndResponder`, except for the case mentioned above.\\n\\n### Other smaller contributions\\n\\nOn a request from the Marlow Team, we published haddocks of `typed-protocols`,\\nwhich are now available [here][typed-protocols-haddocks] ([#40], [#41]).\\n\\nWe made a new release of `strict-stm-1.1.0.1` on Hackage, which fixed a bug in\\npackage description file, [#101] .\\n\\nWe also helped to debug a deadlock when using named pipes on Windows in the new\\n`RawBearer` API. The API is being used to store secret keys only in memory.\\nThe PR [#4395] is under review.\\n\\nWe also have two more PRs which are under review:\\n\\n* [#4530]: enabling ledger peers on a fixed number of slots before the tip of the chain;\\n* [#4580]: a PR which fixes inconsistencies in one of our cddl specs.\\n\\n[typed-protocols-haddocks]: https://input-output-hk.github.io/typed-protocols/\\n\\n[#40]: https://github.com/input-output-hk/typed-protocols/pull/40\\n[#41]: https://github.com/input-output-hk/typed-protocols/pull/41\\n[#101]: https://github.com/input-output-hk/io-sim/pull/101\\n[#140]: https://github.com/input-output-hk/ouroboros-consensus/pull/140\\n[#3159]: https://github.com/input-output-hk/ouroboros-network/issues/3159\\n[#3596]: https://github.com/input-output-hk/ouroboros-network/issues/3596\\n[#3886]: https://github.com/input-output-hk/ouroboros-network/issues/3886\\n[#4395]: https://github.com/input-output-hk/ouroboros-network/pull/4395\\n[#4530]: https://github.com/input-output-hk/ouroboros-network/issues/4530\\n[#4580]: https://github.com/input-output-hk/ouroboros-network/issues/4580\\n[#4583]: https://github.com/input-output-hk/ouroboros-network/issues/4583\\n[#4589]: https://github.com/input-output-hk/ouroboros-network/pull/4589\\n[#4593]: https://github.com/input-output-hk/ouroboros-network/pull/4593\\n[#5313]: https://github.com/input-output-hk/cardano-node/pull/5313"},{"id":"2023-06-09-crypto","metadata":{"permalink":"/2023-06-09-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-09-crypto.md","source":"@site/blog/2023-06-09-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-06-09T00:00:00.000Z","formattedDate":"June 9, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":0.705,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-06-09-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-06-12-network"},"nextItem":{"title":"Developer Experience Update","permalink":"/2023-06-09-developer-experience"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* cardano-base: E2E tests for BLS bindings and KES agent \\n* Sidechains: Implement ECC chip and Rescue hash primitives for ATMS\\n* mithril: Full node verifier\\n\\n## Low level summary\\n### cardano-base\\n* RawBearer API in ouroboros-network-framework (https://github.com/input-output-hk/ouroboros-network/pull/4395); blocked due to issue with windows\' localSnocket. Trying to resolve.\\n* Adapting cardano-base for direct memory transfers between mlocked RAM and file descriptors [#317](https://github.com/input-output-hk/cardano-base/pull/317).\\n* Above, blocked by the simplification of typeclasses [#404](https://github.com/input-output-hk/cardano-base/pull/404).\\n* Provided e2e test cases to the testing team with aggregated signatures and schnorr signatures for the BLS bindings\\n### Mithril\\n* Implementation of Full Node Verifier [#939](https://github.com/input-output-hk/mithril/pull/939)\\n### Sidechains\\n* [ECC chip](https://github.com/input-output-hk/sidechains-zk/tree/master/prover/src/ecc) implemented for JubJub over BLS12-381\\n* [Rescue chip](https://github.com/input-output-hk/sidechains-zk/tree/master/prover/src/rescue) implemented for hashing.\\n* Currently working on Schnorr signature (which uses the above constraints)"},{"id":"2023-06-09-developer-experience","metadata":{"permalink":"/2023-06-09-developer-experience","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-09-developer-experience.md","source":"@site/blog/2023-06-09-developer-experience.md","title":"Developer Experience Update","description":"High level summary","date":"2023-06-09T00:00:00.000Z","formattedDate":"June 9, 2023","tags":[{"label":"devx","permalink":"/tags/devx"}],"readingTime":2.035,"hasTruncateMarker":false,"authors":[{"name":"Moritz Angermann","title":"Head of Developer Experience","url":"https://github.com/angerman","imageURL":"https://github.com/angerman.png","key":"angerman"}],"frontMatter":{"title":"Developer Experience Update","slug":"2023-06-09-developer-experience","authors":"angerman","tags":["devx"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2023-06-09-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-06-09-hydra"}},"content":"## High level summary\\n\\nThe Developer Experience team has been devoted to day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, the maintaince of our cardano-haskell-packages (CHaP), and infrastructure like GitHub Actions, iohk-nix, haskell.nix, and devx. Furthermore, we have also contributed to upstream tooling improvements.\\n\\n## Lower level summary\\n\\n### build support & maintainance\\n\\nOur DevX team has been instrumental in troubleshooting and fixing a wide range of issues, from broken windows builds and obscure `LoadDLL` errors to `blst` integration across Nix and Github CI. We\'ve also initiated automatic uploads for release assets. Our efforts in streamlining complex CI setups have paid off, with some repositories like [cardano-base](https://github.com/input-output-hk/cardano-base) experiencing significant reductions in CI complexity.\\n\\n### compiler upgrades\\nAfter the support for 9.2 across our libraries, we have started working on 9.6 compabilitiy as well. This move brings us closer to the upstream compiler, facilitating the contribution of patches and enabling early detection of regressions. In addition, we\'re prioritizing compaining even stronger for better backwards compatibility.\\n\\n### CHaP (cardano-haskell-packages)\\nWe relocated the underlying tooling, ([foliage](https://github.com/input-output-hk/foliage)), for [CHaP](https://github.com/input-output-hk/cardano-haskell-packages) into the IOG organization. Furthermore, we have introduced [improved tooling to quickly add constraints to packages](https://github.com/input-output-hk/cardano-haskell-packages/pull/260), [better error reporting for add-revision](https://github.com/input-output-hk/cardano-haskell-packages/issues/285) and [better hackage url compatibility](https://github.com/input-output-hk/foliage/pull/63) to facilitate easer usage of CHaP.\\n\\n### GitHub Actions\\nOur repository, [input-output-hk/actions](https://github.com/input-output-hk/actions), now houses the necessary actions for installing pre-requisites to build Cardano projects using GitHub Actions. Leveraging the `base` and `haskell` install actions has allowed us to simplify workflows in the repos, focusing primarily on invoking `cabal`.\\n\\n\\n### iohk-nix\\nThe [iohk-nix](https://github.com/input-output-hk/iohk-nix) repository has undergone a major revamp and now provides pre-built packages of the cryptographic libraries IOG utilizes for GitHub Runners. The key components we use, `sodium`, `blst`, and `secp256k1`, are also fixed to certain revisions within the `iohk-nix` repository.\\n\\n### haskell.nix\\n[Haskell.nix](https://github.com/input-output-hk/haskell.nix) has been maintained and updated with the addition of GHC 9.6.2 and GHC 8.2.8. After discovering performance regression in the native bignum backend, we switched the default bignum backend to `gmp`.\\n\\n\\n### devx\\n\\nThe relatively new [devx](https://github.com/input-output-hk/devx) repository is where we experiment with a single nix development shell that aims to suffice for most use-cases at IOG. This initiative is expected to eliminate a number of CI failures related to project-build and shell interaction problems. The `devx` repository\'s readme has been updated to reflect its purpose and usage guidelines.\\n\\n### upstream tooling\\n\\nOur team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix."},{"id":"2023-06-09-hydra","metadata":{"permalink":"/2023-06-09-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-09-hydra.md","source":"@site/blog/2023-06-09-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-06-09T00:00:00.000Z","formattedDate":"June 9, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.18,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-06-09-hydra","authors":"ffakenz","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Developer Experience Update","permalink":"/2023-06-09-developer-experience"},"nextItem":{"title":"DB-sync Team Update","permalink":"/2023-06-08-db-sync"}},"content":"## High-level summary\\n\\nThis week, the Hydra team worked on multiple fronts. They finished the\\ninvestigation about the broken head on mainnet and re-opened their persistent\\nhead instance. The team also fixed the monthly report publication on their\\nwebsite and started sketching ideas and further improvements. Also, they are on\\nthe last mile to deliver a new feature which will allow parties to commit funds\\nfrom extern wallets. Finally the team started to work on optimizing the\\nperformance on their benchmarks.\\n\\n## What did the team achieve this week\\n\\n- Finished investigation on broken head on mainnet [#897](https://github.com/input-output-hk/hydra/issues/897) and re-opened it.\\n- Added support for externally committing regular utxo [#887](https://github.com/input-output-hk/hydra/pull/887)\\n- Fix monthly report publication on docs website and published the [monthly report](https://hydra.family/head-protocol/monthly/2023-05). Odd problems when publishing monthly report:\\n + Make us think about if we should change something about the website [#908](https://github.com/input-output-hk/hydra/issues/908)\\n + Open issue to docusaurus [#9036](https://github.com/facebook/docusaurus/issues/9036)\\n- Fixed a bug in the benchmark process [#910](https://github.com/input-output-hk/hydra/pull/910)\\n- Explored performance of the `hydra-node`{.verbatim} and identified a\\n bottleneck.\\n- Timed transaction feature is being used by the auction project \ud83c\udf89 \\n\\n## What are the goals of next week\\n\\n- Complete performance analysis and start/plan improvements and provide\\n regular benchmarks for Hydra [#186](https://github.com/input-output-hk/hydra/issues/186)\\n- Add hydra as tool to developer platform [#872](https://github.com/input-output-hk/hydra/issues/872).\\n- Authenticate network messages [#727](https://github.com/input-output-hk/hydra/issues/727).\\n- Complete journey for external commits using multiple script UTxOs [#903](https://github.com/input-output-hk/hydra/pull/903)\\n- Start implementing _Option B_ for external commits [#215](https://github.com/input-output-hk/hydra/issues/215)."},{"id":"2023-06-08-db-sync","metadata":{"permalink":"/2023-06-08-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-08-db-sync.md","source":"@site/blog/2023-06-08-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-06-08T00:00:00.000Z","formattedDate":"June 8, 2023","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.745,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-06-08-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-06-09-hydra"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-06-08-goedel"}},"content":"## High level summary\\nWe\'ve made progress in all high level objectives\\n- CIP-1694 integration design\\n- UTxO-HD integration proof of concept\\n- schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2\\n- A new hire will help us with devx issues.\\n\\n## Lower level summary\\n- We have an initial design for the Conway integration in db-sync\\n- The initial UTxO-HD integration resulted in a requested feuture that\\nthe consensus team is working on\\n[#88](https://github.com/input-output-hk/ouroboros-consensus/issues/88).\\n- Added two optional migrations that speed up querying UTxO\\n[#1416](https://github.com/input-output-hk/cardano-db-sync/pull/1416)\\n- Work on improving the above feauture by adding tests and fixing tech debt\\n[#1429](https://github.com/input-output-hk/cardano-db-sync/pull/1429)\\n[#1419](https://github.com/input-output-hk/cardano-db-sync/pull/1419)\\n- Fixed issue with ada_pots being wrong\\nhttps://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/1ad4521a5601e8e98dc06bba2826d6b2f9b4fcf4\\n- Added a process which fixes in place scripts with wrong CBOR serialisation.\\nhttps://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/8792f72e2485b320de26c02dacc4d504d377ba17\\n- Prepared a tag [`13.1.1.2`](https://github.com/input-output-hk/cardano-db-sync/releases)\\nwhich is tested and ready to release. It contains many of the above."},{"id":"2023-06-08-goedel","metadata":{"permalink":"/2023-06-08-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-08-goedel.md","source":"@site/blog/2023-06-08-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-06-08T00:00:00.000Z","formattedDate":"June 8, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.605,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-06-08-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/2023-06-08-db-sync"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-06-08-sre"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been working on giving and preparing public\\ntalks, also on preparing final versions of their ICE 2023 papers, and\\non analysing chain selection.\\n\\nThis sprint the team has been working on final revisions for the\\npre-proceedings versions of two ICE 2023 papers.\\n\\n## Details\\n\\n* Lambda Days keynote by Kevin Hammond:\\n https://www.lambdadays.org/lambdadays2023\\n\\n* Codebeam keynote by Peter Van Roy: https://www.youtube.com/watch?v=h8sE3Ai8Dsk; https://www.youtube.com/watch?v=h8sE3Ai8Dsk\\n\\n* Preparing talks and final versions for two ICE 2023 contributions:\\n https://www.discotec.org/2023/ice\\n\\n* Analysing chain selection.\\n\\n* The team is hiring a performance engineering intern - https://apply.workable.com/io-global/j/BFEC5B0AFF/"},{"id":"2023-06-08-sre","metadata":{"permalink":"/2023-06-08-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-08-sre.md","source":"@site/blog/2023-06-08-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-06-08T00:00:00.000Z","formattedDate":"June 8, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.795,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-06-08-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-06-08-goedel"},"nextItem":{"title":"System Test Team Update","permalink":"/2023-06-08-system-test"}},"content":"## High level summary\\n\\nThe SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include: expanding the darwin CI cluster and providing new aarch64 builder support; adding bare metal bitte cluster capability with network overlay for high IOPS workload performance, such as explorer.\\n\\n## Lower level summary\\n\\n### Bitte\\n\\n- Equinix bare metal capability was added to bitte: [bitte-pull-194](https://github.com/input-output-hk/bitte/pull/194)\\n- Update bitte nixpkgs, nix version, nomad driver, equinix lifecycle, misc bug fixes: [bitte-pull-201](https://github.com/input-output-hk/bitte/pull/201)\\n\\n### Bitte-cells\\n\\n- Improvements made for patroni cluster recovery of large databases: [bitte-cells-branch](https://github.com/input-output-hk/bitte-cells/compare/main...patroni-flex)\\n\\n### Cardano-graphql\\n\\n- Update cardano-graphql and nixos service: [cardano-graphql-pull-815](https://github.com/input-output-hk/cardano-graphql/pull/815)\\n\\n### Cardano-node\\n\\n- Update cardano-node to use the updated iohk-nix environments: [cardano-node-pull-5241](https://github.com/input-output-hk/cardano-node/pull/5241)\\n\\n### Cardano-ops\\n\\n- Update cardano-graphql, adds monitoring improvements and misc bug fixes: [cardano-ops-pull-411](https://github.com/input-output-hk/cardano-ops/pull/411)\\n- Work in progress on mixed legacy and p2p topology clusters in cardano-ops: [cardano-ops-branch](https://github.com/input-output-hk/cardano-ops/compare/master...ops-local)\\n\\n### Cardano-world\\n\\n- Add a declarative cardano-faucet dashboard: [cardano-world-commit](https://github.com/input-output-hk/cardano-world/commit/e7d40d34aff52bbeb309f87939bd0d40f585e60a)\\n- Remove a requirement for root user in Nomad docker images: [cardano-world-pull-68](https://github.com/input-output-hk/cardano-world/pull/68)\\n- Enable explorer in cardano-world for high IOPS metal access: [cardano-world-pull-69](https://github.com/input-output-hk/cardano-world/pull/69)\\n- Migrate explorer cluster to cardano-world: [cardano-world-pull-75](https://github.com/input-output-hk/cardano-world/pull/75)\\n- Migrate testnet metadata server to cardano-world, cleanup envs: [cardano-world-pull-77](https://github.com/input-output-hk/cardano-world/pull/77)\\n- Add a faucet restore delegation script to cardano-world for non-functioning delegated pools: [cardano-world-pull-79](https://github.com/input-output-hk/cardano-world/pull/79)\\n- Integrate node 8.x into cardano-world: [cardano-world-pull-84](https://github.com/input-output-hk/cardano-world/pull/84)\\n- Update cardano-world to use iohk-nix for node environments: [cardano-world-pull-87](https://github.com/input-output-hk/cardano-world/pull/87)\\n- Create a stakepool analysis query for cluster pool performance overview: [cardano-world-commit](https://github.com/input-output-hk/cardano-world/commit/64fe3b9d4067c24eef028ac1c561d6f9a7d5a9a8)\\n- Added an iptables fixup script for broken bridged networking nomad jobs: [cardano-world-commit](https://github.com/input-output-hk/cardano-world/commit/02550206e4e34d121135794b6e54084635e55a50)\\n- Improve cardano-world job automation with additional parameterization: [cardano-world-pr-92](https://github.com/input-output-hk/cardano-world/pull/92)\\n- Update preview network experimental config defaults: [cardano-world-pr-93](https://github.com/input-output-hk/cardano-world/pull/93)\\n\\n### Ci-ops\\n\\n- Update legacy darwin builders and buildkite agent for ci-world network overlay and monitoring: [ci-ops-pull-108](https://github.com/input-output-hk/ci-ops/pull/108)\\n\\n### Ci-world\\n\\n- Resolve ci-world linux buildkite agent cleanup bug: [ci-world-commit](https://github.com/input-output-hk/ci-world/commit/3d053b202a6e40fab23db49801de7d6e580fab1f)\\n- Integrate new darwin builders into ci-world: [ci-world-pull-22](https://github.com/input-output-hk/ci-world/pull/22)\\n- Migrate patroni HA db to it\'s own namespace in ci-world: [ci-world-pull-24](https://github.com/input-output-hk/ci-world/pull/24)\\n\\n### Cicero\\n\\n- Implement a cicero webhook backoff with exponential decay plus jitter: [cicero-pull-79](https://github.com/input-output-hk/cicero/pull/79)\\n\\n### Iohk-nix\\n\\n- Update iohk-nix to be source of truth for node environments: [iohk-nix-pull-534](https://github.com/input-output-hk/iohk-nix/pull/534)\\n- Update preview network experimental config defaults: [iohk-nix-pull-544](https://github.com/input-output-hk/iohk-nix/pull/544)\\n\\n### Openziti\\n\\n- Add darwin intel and arm support to ziti-edge-tunnel nix modules: [openziti-bins-pull-1](https://github.com/johnalotoski/openziti-bins/pull/1)"},{"id":"2023-06-08-system-test","metadata":{"permalink":"/2023-06-08-system-test","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-08-system-test.md","source":"@site/blog/2023-06-08-system-test.md","title":"System Test Team Update","description":"High level summary","date":"2023-06-08T00:00:00.000Z","formattedDate":"June 8, 2023","tags":[{"label":"system-test","permalink":"/tags/system-test"}],"readingTime":1.005,"hasTruncateMarker":false,"authors":[{"name":"Martin Kourim","title":"System Test Engineer","url":"https://github.com/mkoura","imageURL":"https://github.com/mkoura.png","key":"mkoura"}],"frontMatter":{"title":"System Test Team Update","slug":"2023-06-08-system-test","authors":"mkoura","tags":["system-test"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-06-08-sre"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-06-07-node-cli-api"}},"content":"## High level summary\\nSince the last update (2023-03-26) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the _1.35.7_ and _8.0.0_ releases.\\n\\n## Workstreams\\n\\n[Full list of closed PRs](https://github.com/input-output-hk/cardano-node-tests/pulls?page=1&q=is%3Apr+is%3Aclosed+updated%3A2023-03-26..2023-06-08)\\n\\n### Framework improvements:\\n- Make cardano-submit-api REST API service available and run corresponding regression tests by default\\n- Update cabal build testing for 8.0.0\\n- Add support for testing governance SPO poll\\n- Use Poetry for Python dependency management\\n- Check status of known GH issues during tests runtime and finish the test accordingly\\n- Generate topology files with both IP addresses and DNS names\\n- Log issues like failure to start a cluster instance and report errors during tests runtime\\n\\n### Testing improvements\\n- Add rollback testing:\\n 1. global consensus is reached after rollback, in situation where less than `securityParam` blocks were produced since cluster split\\n 1. global consensus is not reached when more than `securityParam` blocks were produced, and the result is permanent fork\\n- Add tests to governance SPO poll commands\\n\\n### Node:\\n- tested the [1.35.7](https://tests.cardano.intersectmbo.org/test_results/node/tag_1_35_7.html) release\\n- tested the [8.0.0](https://tests.cardano.intersectmbo.org/test_results/node/tag_8_0_0.html) release\\n\\n### DB-Sync:\\n- improvements in db-sync sync tests\\n- improvements in db-sync functional tests"},{"id":"2023-06-07-node-cli-api","metadata":{"permalink":"/2023-06-07-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-07-node-cli-api.md","source":"@site/blog/2023-06-07-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-06-07T00:00:00.000Z","formattedDate":"June 7, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.37,"hasTruncateMarker":false,"authors":[{"name":"Carlos LopezDeLara","title":"Node Product Owner","url":"https://github.com/CarlosLopezDeLara","imageURL":"https://github.com/CarlosLopezDeLara.png","key":"carlos"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-06-07-node-cli-api","tags":["cli-api"],"authors":"carlos","hide_table_of_contents":false},"prevItem":{"title":"System Test Team Update","permalink":"/2023-06-08-system-test"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-06-02-hydra"}},"content":"# 2023-06-07 - 2023-06-20\\n\\n## High level summary\\n\\n* Completed cardano-cli migration to input-output-hk/cardano-cli\\n* cardano-cli ping now uses cardano-ping-0.2.0.5\\n* New queries on API:\\n * `queryCurrentEpochState`\\n * `queryDebugLedgerState`\\n * `queryGenesisParameters`\\n * `queryPoolDistribution`\\n * `queryPoolState`\\n * `queryProtocolParameters`\\n * `queryProtocolParametersUpdate`\\n * `queryProtocolState`\\n * `queryStakeAddresses`\\n * `queryStakeDistribution`\\n * `queryStakePoolParameters`\\n * `queryStakeSnapshot`\\n* Deprecate:\\n * `queryPparams`\\n* Export query API as functions\\n * `genFeatureValueInEra`\\n * `featureInShelleyBasedEra`\\n * `isFeatureValue`\\n * `valueOrDefault`\\n * `asFeatureValue`\\n * `asFeatureValueInShelleyBasedEra`\\n * `queryEpoch`\\n * `requireShelleyBasedEra`\\n* Restructure cardano-testnet (WIP)\\n____\\n\\n### cardano-cli\\n\\n- [update network dependency and versions](https://github.com/input-output-hk/cardano-node/pull/5328)\\n- [Updated cardano-cli to use `cardano-ping-0.2.0.5`.](https://github.com/input-output-hk/cardano-node/pull/5326)\\n- [Use `cardano-cli` from CHaP](https://github.com/input-output-hk/cardano-node/pull/5316)\\n- [Add `--conway-era` flag](https://github.com/input-output-hk/cardano-node/pull/5315)\\n- [Updated cardano-cli ping command](https://github.com/input-output-hk/cardano-node/pull/5313)\\n- [Add `--conway-era` flag](https://github.com/input-output-hk/cardano-node/pull/5311)\\n\\n- [Use cardano-ping-0.2.0.5](https://github.com/input-output-hk/cardano-cli/pull/30)\\n- [Deprecate `--protocol-params-file` option of the `transaction build` command more thoroughly](https://github.com/input-output-hk/cardano-cli/pull/28)\\n- [New `Cardano.Api.Query.Expr` module](https://github.com/input-output-hk/cardano-cli/pull/25)\\n- [Use simplified `queryStateForBalancedTx`](https://github.com/input-output-hk/cardano-cli/pull/24)\\n- [Add `--conway-era` flag](https://github.com/input-output-hk/cardano-cli/pull/20)\\n\\n\\n### cardano-api\\n\\n- [New version `cardano-api-8.5.2.0`](https://github.com/input-output-hk/cardano-api/pull/59)\\n- [New `requireShelleyBasedEra` function](https://github.com/input-output-hk/cardano-api/pull/58)\\n- [New version cardano-api-8.5.1.0](https://github.com/input-output-hk/cardano-api/pull/57)\\n- [New `queryEpoch` function](https://github.com/input-output-hk/cardano-api/pull/56)\\n- [New version 8.5.0.0](https://github.com/input-output-hk/cardano-api/pull/55)\\n- [Error on `hlint` warnings in CI](https://github.com/input-output-hk/cardano-api/pull/54)\\n- [Additional query expression functions](https://github.com/input-output-hk/cardano-api/pull/53)\\n- [New version `cardano-api-8.4.0.0`](https://github.com/input-output-hk/cardano-api/pull/52)\\n- [New version `cardano-api-8.3.0.0`](https://github.com/input-output-hk/cardano-api/pull/49)\\n- [New `Cardano.Api.Query.Expr` module](https://github.com/input-output-hk/cardano-api/pull/48)\\n- [Simplify `queryStateForBalancedTx`](https://github.com/input-output-hk/cardano-api/pull/47)\\n- [Revert to use `testProperty` now that it isn\'t deprecated anymore](https://github.com/input-output-hk/cardano-api/pull/46)\\n\\n### cardano-node\\n\\n- [cardano-node 8.1.1 release](https://github.com/input-output-hk/cardano-node/releases/tag/8.1.1)\\n- [update network dependency and versions](https://github.com/input-output-hk/cardano-node/pull/5328)\\n\\n### cardano-testnet\\n\\n- [Add ability to retry tests with DISABLE_RETRIES=1](https://github.com/input-output-hk/cardano-node/pull/5340)\\n- [Move golden files to proper location](https://github.com/input-output-hk/cardano-node/pull/5339)\\n- [Conway testnet](https://github.com/input-output-hk/cardano-node/pull/5336)\\n- [Don\'t retry testnet when failed](https://github.com/input-output-hk/cardano-node/pull/5335)\\n- [Remove YAML filepath record from data Conf](https://github.com/input-output-hk/cardano-node/pull/5321)\\n- [Add `--conway-era` flag](https://github.com/input-output-hk/cardano-node/pull/5315)\\n- [Add `--conway-era` flag](https://github.com/input-output-hk/cardano-node/pull/5311)\\n- [Remove duplicate --testnet-magic flag](https://github.com/input-output-hk/cardano-node/pull/5309)\\n- [Restructure cardano testnet ](https://github.com/input-output-hk/cardano-node/pull/5307)\\n\\n### docs\\n\\n### CI & project maintenance\\n\\n- [Fix Windows CI issues](https://github.com/input-output-hk/cardano-cli/pull/18)"},{"id":"2023-06-02-hydra","metadata":{"permalink":"/2023-06-02-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-02-hydra.md","source":"@site/blog/2023-06-02-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-06-02T00:00:00.000Z","formattedDate":"June 2, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.215,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-06-02-hydra","authors":"ffakenz","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-06-07-node-cli-api"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-06-01-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has put their effort on finding solutions on many\\ndifferent problems, such as our broken head on mainnet\\n[#897](https://github.com/input-output-hk/hydra/issues/897), our fragile monthly\\nreport publications on the website and implementing “Option A” for\\nexternal commits [#215](https://github.com/input-output-hk/hydra/issues/215).\\nAlthough most of these items are still open, huge progress has been made. To\\naccelerate the investigation, they improved their logging to give more precise\\nerrors when a transition requirement fails, and to reduce duplication on effets\\nlogged content. Last but not least, the team is exploring formal methods and\\nattended a workshop on formalizing cryptographic protocols in Agda.\\n\\n\\n## What did the team achieve this week\\n\\n- Continued investigating broken head and opened an issue to keep track [#897](https://github.com/input-output-hk/hydra/issues/897).\\n \\n As part of this issue, improvements were made to the node logs:\\n\\n + Give a precise error when a transition requirement fails [#895](https://github.com/input-output-hk/hydra/pull/895).\\n\\n + Reduce duplication for effects logged content by using sequential eventId and effectId pair [#896](https://github.com/input-output-hk/hydra/pull/896).\\n\\n- Fixed references in the hydra specification [#893](https://github.com/input-output-hk/hydra/pull/893).\\n\\n- Attended a workshop on formal methods and crypto in Agda.\\n\\n## What are the goals of next week\\n\\n- Investigate and re-open our team-internal head on mainnet.\\n- Improve and provide regular benchmarks for Hydra [#186](https://github.com/input-output-hk/hydra/issues/186).\\n- Complete journey for external commits implementing “Option A” and start implementing “Option B” [#215](https://github.com/input-output-hk/hydra/issues/215).\\n- Authenticate network messages [#727](https://github.com/input-output-hk/hydra/issues/727).\\n- Add hydra as tool to developr platform [#872](https://github.com/input-output-hk/hydra/issues/872).\\n- Fix monthly report publication on docs website."},{"id":"2023-06-01-mithril","metadata":{"permalink":"/2023-06-01-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-01-mithril.md","source":"@site/blog/2023-06-01-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-06-01T00:00:00.000Z","formattedDate":"June 1, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.415,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-06-01-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-06-02-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-05-31-consensus"}},"content":"## High level overview\\nThe Mithril team released a new [`2321.1`](https://github.com/input-output-hk/mithril/releases/tag/2321.1) distribution that fully implements the mechanism developed to sign generic data. They completed the upgrade of the Cardano node in the Mithril networks to v.8.0.0 and the implementation of the new computation of the stake distribution. They refactored the state machines of the signer and aggregator, and the signed entity service of the aggregator. Additionally, they worked on adapting the client and implementing a new sub-command for restoring the Cardano immutable file snapshots.\\n\\nFinally, the team worked on adding a new certificate list route in the aggregator REST API, and started enhancing the infrastructure of the Mithril networks.\\n\\n## Low level overview\\n- Released the new distribution [`2321.1`](https://github.com/input-output-hk/mithril/releases/tag/2321.1)\\n- Worked on the epic that designs and implements generic signing/verification of entity services [#780](https://github.com/input-output-hk/mithril/issues/780):\\n - Completed the issue `Enhance MessageAdapter for Artifact in aggregator REST API` [#925](https://github.com/input-output-hk/mithril/issues/925)\\n - Completed the issue `Create the sub-command for \'Cardano Immutable Files Full\' in client` [#895](https://github.com/input-output-hk/mithril/issues/895)\\n - Completed the issue `Enhance state machines Aggregator/Signer` [#933](https://github.com/input-output-hk/mithril/issues/933)\\n - Completed the issue `Adapt the aggregator REST API to list certificates` [#892](https://github.com/input-output-hk/mithril/issues/892)\\n - Worked on the issue `Adapt end to end tests to handle new types of data` [#899](https://github.com/input-output-hk/mithril/issues/899)\\n - Worked on the issue `Update client documentation` [#897](https://github.com/input-output-hk/mithril/issues/897)\\n - Worked on the issue `Update architecture documentations for new types of data` [#898](https://github.com/input-output-hk/mithril/issues/898)\\n- Worked on the epic that prepares the Mithril infrastructure for `mainnet` [#767](https://github.com/input-output-hk/mithril/issues/767):\\n - Worked on the issue `Enhance terraform infrastructure` [#930](https://github.com/input-output-hk/mithril/issues/930)\\n- Worked on the epic that implements the computation of the stake distribution for `mainnet` [#880](https://github.com/input-output-hk/mithril/issues/880):\\n - Completed the issue `Upgrade Cardano node to \'8.0.0\'` [#920](https://github.com/input-output-hk/mithril/issues/920)\\n- Completed the issue `Add export path in Client CLI` [#512](https://github.com/input-output-hk/mithril/issues/512)"},{"id":"2023-05-31-consensus","metadata":{"permalink":"/2023-05-31-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-31-consensus.md","source":"@site/blog/2023-05-31-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-05-31T00:00:00.000Z","formattedDate":"May 31, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.825,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-05-31-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-06-01-mithril"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-05-31-performance-and-tracing"}},"content":"## High level summary\\n\\nDuring the Past two weeks we drafted an implementation path for concluding that a node is caught up, which will also be used to back Network\'s ledger-peer selection (see [this issue](https://github.com/input-output-hk/ouroboros-consensus/issues/101)). We also carried a thorough investigation into the exact feasibility of applying the Genesis rule to certain historical parts of the chain.\\n\\nOn the UTxO-HD front, we are working on improving the ledger tables design and wrapping up the improved DB locking mechanism. We also released packages that are required not only by UTxO-HD but are already used in cardano.\\n\\n## UTxO-HD\\n\\n- We have a plan for making the ledger tables in UTxO-HD more ergonomic by mimicking `SOP` classes like `HPure` and `HAp` . In short, we implement generalised versions of important classes like `Applicative` and `Traversable`.\\n\\n## Support\\n\\n- `fs-sim-0.1.0.2` and `fs-api-0.1.0.2` were released, which makes them now compatible with GHC up to `9.6`.\\n- `ouroboros-consensus-0.7.0.0` was released for `cardano-node` `8.1`, including query serialization fixes for backwards compatibility."},{"id":"2023-05-31-performance-and-tracing","metadata":{"permalink":"/2023-05-31-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-31-performance-and-tracing.md","source":"@site/blog/2023-05-31-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-05-31T00:00:00.000Z","formattedDate":"May 31, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.055,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-05-31-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-05-31-consensus"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-05-26-goedel"}},"content":"## High level summary\\n\\n* Benchmarking: We\'ve performed and analysed first benchmarks with GHC9.2 builds. Additionally we have developed an early indicator for how build config changes might reflect on metrics from our model cluster.\\n* New tracing: Collaboration with Galois led to the new tracing system to be equipped with a re-forwarding mechanism.\\n* Nomad backend: Porting the 52 node model cluster to nomad cloud is ongoing, with the focus on deployment and health checks.\\n\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nThe first set of runs with GHC9.2 as a build platform are in. We\'ve discovered a significant difference in resource profile usage compared to GHC8.10. Further investigation uncovered the need for benchmarking another parameter change in the build\\nconfiguration: As it stands, the `ghc-bignum` package is using the Haskell `native-backend` as a default. We strive\\nto benchmark a build with the `gmp-backend` next. \\n\\nA variant of our `forge-stress` local benchmark has been set up to serve as an early indicator for the resource usage profile\\nwe\'d expect to observe on the model cluster. This provides us with a much tighter feedback loop, as local run duration is way\\nshorter. This indicator is specific to changes in the configuration of build and the runtime systems, and will be of great\\nsupport when evaluating different compiler versions or RTS flags incrementally.\\n\\n### Tracing\\n\\nThe hub of the new tracing system `cardano-tracer` is designed with a fixed output behaviour, which is limited to various\\nlogging options. Thanks to the contribution from Galois, that design is now extended to be able to re-forward all, or a pre-filtered portion, of traces from the node in a configurable manner. This will enable downstream applications to \\ndirectly receive the set of trace values relevant to their logic, without any additional cost for the node itself at all.\\n\\n\\n### Nomad backend\\nWe\'re currently working out the details of efficiently deploying and monitoring a fleet of 50+ nodes, along with\\njob definitions for tracing and transaction generation. Scaling up to those many instances, and monitoring an ongoing\\nbenchmarking run required us to fine-tune communications with the nomad server. \\n\\nRelated to that, the new cloud backend will provide a monitoring and health-checking mechanism which is far more flexible\\nand offers more detailed insight than the previous iteration in `cardano-ops`. The backend will enable you to formulate\\nvery specific conditions for an ongoing run to be considered healthy, and offer automation of certain actions should these conditions not be met."},{"id":"2023-05-26-goedel","metadata":{"permalink":"/2023-05-26-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-26-goedel.md","source":"@site/blog/2023-05-26-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-05-26T00:00:00.000Z","formattedDate":"May 26, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.39,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-05-26-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-05-31-performance-and-tracing"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-05-26-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been working on final revisions for the\\npre-proceedings versions of two ICE 2023 papers.\\n\\n## Details\\n\\n* Porting Ouroboros Praos formalisation to new application layer.\\n\\n* Preparing pre-proceedings version of two ICE 2023 papers.\\n\\n* The team is hiring a performance engineering intern - https://apply.workable.com/io-global/j/BFEC5B0AFF/"},{"id":"2023-05-26-hydra","metadata":{"permalink":"/2023-05-26-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-26-hydra.md","source":"@site/blog/2023-05-26-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-05-26T00:00:00.000Z","formattedDate":"May 26, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.11,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-05-26-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-05-26-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-05-26-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team accomplished several important tasks. They held their\\nmonthly review meeting and drafted the report for May. They made progress on\\nimplementing the first end-to-end journey for external commits using \\"Option A\\"\\nfor normal UTxOs, while still considering \\"Option B\\". The team also integrated a\\nSpanish translation contributed by the community, created micro-benchmarks for\\ntransaction validation and deserialization, and made improvements to\\nhydra-node\'s version reporting. Last but not least, they implemented the ability\\nto commit multiple UTxOs to a head at once.\\n\\n## What did the team achieve this week\\n\\n- Held the monthly review meeting ([recording](https://drive.google.com/file/d/1_N6b4RDe579TgLawiJzbE0NLofD3ljE6/view) + [slides](https://docs.google.com/presentation/d/1anUC3Z1idloyR6uwiSHLZtV6-LQvUcByHPMUgCBOVIA)) & drafted the report for May.\\n- Have a first end-to-end journey for external commits implementing “Option A”\\n for normal UTxOs [#887](https://github.com/input-output-hk/hydra/pull/887) (still considering “Option B”).\\n- Integrated the spanish translation [#866](https://github.com/input-output-hk/hydra/pull/866).\\n- Created micro-benchmarks for transaction validation and deserialization [#884](https://github.com/input-output-hk/hydra/pull/884).\\n- Improve hydra-node –version reporting on non-released builds [#849](https://github.com/input-output-hk/hydra/issues/849)\\n- Some minor CI improvements following up last weeks changes.\\n- Allow commit transactions with multiple UTxO [#774](https://github.com/input-output-hk/hydra/pull/774).\\n\\n## What are the goals of next week\\n\\n- Investigate and re-open our team-internal head on mainnet.\\n- Improve and provide regular benchmarks for Hydra [#186](https://github.com/input-output-hk/hydra/issues/186).\\n- Complete external commits with script UTxOs [#215](https://github.com/input-output-hk/hydra/issues/215).\\n- Authenticate network messages [#727](https://github.com/input-output-hk/hydra/issues/727).\\n- Add hydra as tool to developr platform [#872](https://github.com/input-output-hk/hydra/issues/872)."},{"id":"2023-05-26-ledger","metadata":{"permalink":"/2023-05-26-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-26-ledger.md","source":"@site/blog/2023-05-26-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-05-26T00:00:00.000Z","formattedDate":"May 26, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.565,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-05-26-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-05-26-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/2023-05-26-network"}},"content":"## High level summary\\n\\nThe ledger team made progress on the conway ledger era. In particular, the design and implementation\\nof the new certificates is near complete, we refactored some of our data structures\\nto be able to support DReps, we cleaned up the serialization format, and renamed things to make\\nclearer the differences with Shelley.\\n\\nThe team also completed integration work for the next node release, namely 8.1.0.\\nAnd, as always, we continue to address technical debt.\\n\\n## Low level summary\\n\\n### Conway progress\\n\\n- [pull-3408] - Improve conway delegation certificates\\n- [pull-3428] - Get rid of Constitutional in favor of Genesis and Committee\\n- [pull-3426] - Add DRep to internal data struture (UMap)\\n- [pull-3425] - Improve witness logic needed for conway\\n- [pull-3423] - Rename ShelleyDelegCerts constructors to distinguish them from Conway\\n- [pull-3421] - Rename DCert -> TxCert\\n- [pull-3454] - conway CDDL minor fixes\\n\\n### Improve testing\\n\\n- [pull-3403] - Add Plutus script context golden tests\\n\\n### Integration work\\n\\n- [pull-3410] - Update chaps index\\n- [pull-3416] - Bump cardano-ledger-alonzo-test version\\n- [pull-3414] - Bump cardano-ledger-shelley-test minor version\\n- [pull-3420] - Bump cardano-ledger-shelley-ma-test version\\n- [pull-3441] - Release cardano-ledger-[alonzo|babbage]-1.2.1\\n\\n### Technical debt\\n\\n- [pull-3409] - Unit test - no such thing as a reference datum\\n- [pull-3407] - Fixup release process documentation\\n- [pull-3404] - Create TotalDeposits events during all eras\\n- [pull-3402] - Fix broken references in the Shelley spec\\n- [pull-3424] - Remove no longer used cardano-ledger-shelley-ma package\\n- [pull-3432] - Add an example on how to bump up versions in the changelog \\n- [pull-3440] - Revert back to the group serialization for ProtVer for PParams \\n\\n[pull-3409]: https://github.com/input-output-hk/cardano-ledger/pull/3409\\n[pull-3408]: https://github.com/input-output-hk/cardano-ledger/pull/3408\\n[pull-3407]: https://github.com/input-output-hk/cardano-ledger/pull/3407\\n[pull-3404]: https://github.com/input-output-hk/cardano-ledger/pull/3404\\n[pull-3403]: https://github.com/input-output-hk/cardano-ledger/pull/3403\\n[pull-3402]: https://github.com/input-output-hk/cardano-ledger/pull/3402\\n[pull-3410]: https://github.com/input-output-hk/cardano-ledger/pull/3410\\n[pull-3416]: https://github.com/input-output-hk/cardano-ledger/pull/3416\\n[pull-3414]: https://github.com/input-output-hk/cardano-ledger/pull/3414\\n[pull-3428]: https://github.com/input-output-hk/cardano-ledger/pull/3428\\n[pull-3426]: https://github.com/input-output-hk/cardano-ledger/pull/3426\\n[pull-3425]: https://github.com/input-output-hk/cardano-ledger/pull/3425\\n[pull-3424]: https://github.com/input-output-hk/cardano-ledger/pull/3424\\n[pull-3423]: https://github.com/input-output-hk/cardano-ledger/pull/3423\\n[pull-3421]: https://github.com/input-output-hk/cardano-ledger/pull/3421\\n[pull-3420]: https://github.com/input-output-hk/cardano-ledger/pull/3420\\n[pull-3432]: https://github.com/input-output-hk/cardano-ledger/pull/3432\\n[pull-3454]: https://github.com/input-output-hk/cardano-ledger/pull/3454\\n[pull-3441]: https://github.com/input-output-hk/cardano-ledger/pull/3441\\n[pull-3440]: https://github.com/input-output-hk/cardano-ledger/pull/3440"},{"id":"2023-05-26-network","metadata":{"permalink":"/2023-05-26-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-26-network.md","source":"@site/blog/2023-05-26-network.md","title":"Network Team Update","description":"High level summary","date":"2023-05-26T00:00:00.000Z","formattedDate":"May 26, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":0.515,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-05-26-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-05-26-ledger"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-05-24-node-cli-api"}},"content":"## High level summary\\n\\nWe continued working on `eclipse-evasion`. We also analysed and fixed a bug\\nwhen using DNS names in local root peers. We continued working on engineering\\nblog post about P2P. We released a new version of packages for\\n`cardano-node-8.1.0` release.\\n\\nWe improved our CI, removed obsolete scripts add extra validation which checks\\nif `CHANGELOG.md` files were updated.\\n\\nWe also improved release scripts.\\n\\n## Detailed summary\\n\\n* Eclipse evasion: [#4462]\\n* Local root peers bug fix: [#4559]\\n* Release to CHaP: [#4573]\\n* CI improvements: [#4572]\\n* Release script improvements: [#4573]\\n\\n[#4462]: https://github.com/input-output-hk/ouroboros-network/pull/4462\\n[#4558]: https://github.com/input-output-hk/ouroboros-network/pull/4558\\n[#4559]: https://github.com/input-output-hk/ouroboros-network/pull/4559\\n[#4572]: https://github.com/input-output-hk/ouroboros-network/pull/4572\\n[#4573]: https://github.com/input-output-hk/ouroboros-network/pull/4573"},{"id":"2023-05-24-node-cli-api","metadata":{"permalink":"/2023-05-24-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-24-node-cli-api.md","source":"@site/blog/2023-05-24-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-05-24T00:00:00.000Z","formattedDate":"May 24, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-05-24-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-05-26-network"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-05-19-hydra"}},"content":"# 2023-05-24 - 2023-06-06\\n\\n## High level summary\\n- The last sprint focused on removing cardano-cli and cardano-api from the cardano-node repository. We have successfully moved cardano-api to its own repository and will do the same for cardano-cli after the 8.1 node is released. \\n- We provided assitance where needed in the release\\n- An integration repository https://github.com/input-output-hk/fusion-flamingo was created to enable my team to more easily work on cardano-cli and cardano-api\\n\\n### docs\\n\\n### CI & project maintenance\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Update `cardano-cli` changelog](https://github.com/input-output-hk/cardano-node/pull/5290) \\n- [Propagate protocol parameters conversion errors](https://github.com/input-output-hk/cardano-node/pull/5197) \\n- [Command line option for parsing UTC time to slot number](https://github.com/input-output-hk/cardano-node/pull/5149) \\n\\n### cardano-api\\n- [Switch to `tasty-discover`](https://github.com/input-output-hk/cardano-api/pull/31) \\n- [Move tests to standard locations](https://github.com/input-output-hk/cardano-api/pull/30) \\n- [Make cardano-api:internal component public](https://github.com/input-output-hk/cardano-api/pull/26) \\n- [update chaps index](https://github.com/input-output-hk/cardano-api/pull/24) \\n- [Make `ErrorSpec` check for all constructors, move golden tests together](https://github.com/input-output-hk/cardano-api/pull/18) \\n- [Expose toAlonzoCostModels](https://github.com/input-output-hk/cardano-api/pull/17) \\n- [Make `ErrorsSpec` use generated types and constructors names](https://github.com/input-output-hk/cardano-api/pull/9) \\n- [Check changelog in tag script](https://github.com/input-output-hk/cardano-api/pull/32) \\n- [Use tag script from `cardano-dev` repository instead](https://github.com/input-output-hk/cardano-api/pull/34) \\n- [Use .x suffix for release branches](https://github.com/input-output-hk/cardano-api/pull/38) \\n\\n### cardano-node\\n- [Use `cryptoInit` instead of `sodiumInit`](https://github.com/input-output-hk/cardano-node/pull/5291) \\n- [Move configuration tests to `cardano-node` tests](https://github.com/input-output-hk/cardano-node/pull/5284) \\n- [update chaps & integration](https://github.com/input-output-hk/cardano-node/pull/5243) \\n- [#5222 Remove `ApplicationName` and `ApplicationVersion` config parameters](https://github.com/input-output-hk/cardano-node/pull/5240) \\n\\n### cardano-testnet"},{"id":"2023-05-19-hydra","metadata":{"permalink":"/2023-05-19-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-19-hydra.md","source":"@site/blog/2023-05-19-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-05-19T00:00:00.000Z","formattedDate":"May 19, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.045,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-05-19-hydra","authors":"ffakenz","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-05-24-node-cli-api"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-05-17-consensus"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has worked on several fronts, including improvements of their CI speed, logs, documentation pages and adding the support for timed transactions. They also updated the \\"Coding Standards\\" for the project, improved the troubleshooting page on their website and wrote a section about how to operate a hydra node. Finally the team completed a feature request that allows clients to submit and validate transactions to their hydra nodes using time validity ranges, ensuring isomorphism with L1.\\n\\n## What did the team achieve this week\\n\\n- Complete validation of timed transactions feature [#196](https://github.com/input-output-hk/hydra/issues/196).\\n- Write “ops” instructions and troubleshooting [#569](https://github.com/input-output-hk/hydra/issues/569) and improve logs.\\n- Remove `--ledger-genesis` argument to hydra-node options [#863](https://github.com/input-output-hk/hydra/pull/863).\\n- Fix issue with garbage collected caches by using a new cardano-scaling.cachix in more workflows [#877](https://github.com/input-output-hk/hydra/pull/877).\\n- Use nix to build test binaries to increase CI speed [#867](https://github.com/input-output-hk/hydra/pull/867).\\n- Updated our [Coding Standards](https://github.com/input-output-hk/hydra/wiki/Coding-Standards).\\n\\n## What are the goals of next week\\n\\n- Monthly report & review meeting.\\n- Have a first end-to-end journey for external commits implementing \\"Option A\\" [#215](https://github.com/input-output-hk/hydra/issues/215).\\n- Integrate spanish translation [#866](https://github.com/input-output-hk/hydra/pull/866).\\n- Improve and provide regular benchmarks for Hydra [#186](https://github.com/input-output-hk/hydra/issues/186).\\n- Allow commit transactions with multiple UTxO [#774](https://github.com/input-output-hk/hydra/pull/774).\\n- Explored stateless observation and refined hydra explorer ticket [#696](https://github.com/input-output-hk/hydra/issues/696)."},{"id":"2023-05-17-consensus","metadata":{"permalink":"/2023-05-17-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-17-consensus.md","source":"@site/blog/2023-05-17-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-05-17T00:00:00.000Z","formattedDate":"May 17, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":1.285,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-05-17-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-05-19-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-05-17-mithril"}},"content":"## High level summary\\n\\nDuring the past two weeks we brought further improvements into the Genesis design in collaboration with the IO Research and Networking teams. These improvements concern the Genesis selection rule, candidate rule, and root peers usage. See the [Genesis][#genesis] section for more details.\\n\\nRegarding our UTxO-HD prototype, during the past two weeks we put together a pull-request that improves the DB locking mechanism, started porting the mempool fairness improvements from our `main` branch, and integrated a new open source library (that implements cancellative monoids) that allowed us to simplify our code and get a small performance gain.\\n\\nWe improved our tooling by releasing an [immutable DB server](https://github.com/input-output-hk/ouroboros-consensus/pull/68), which can be used for testing and benchmarking purposes, and a [`db-truncater`](https://github.com/input-output-hk/ouroboros-consensus/pull/70) program, which can be used in disaster recovery and benchmarking scenarios.\\n\\n## Genesis \\n\\nThe consensus team working on Genesis:\\n\\n- Improved the genesis selection rule as a result of our interaction with IO Research.\\n- Studied how the hard-fork combinator handles forecasting at era transitions, and [improved our documentation](https://github.com/input-output-hk/ouroboros-consensus/pull/89).\\n- Determined that the simplest candidate rule we had considered will work for the Genesis window at era transitions, at least for the MVP.\\n- Elaborated concrete proposal for the Genesis State Machine.\\n- Met with the Networking Team and advised/co-designed how to implement the stop gap usage of public trusted root peers before Genesis is released (it\'s similar to the Genesis State Machine).\\n\\nThe team is currently re-analyzing the Limit on Patience, which can be less aggressive now that we\'ve re-introduced the Genesis State Machine."},{"id":"2023-05-17-mithril","metadata":{"permalink":"/2023-05-17-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-17-mithril.md","source":"@site/blog/2023-05-17-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-05-17T00:00:00.000Z","formattedDate":"May 17, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.555,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-05-17-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-05-17-consensus"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-05-17-performance-and-tracing"}},"content":"## High level overview\\nThe Mithril team released a new [`2318.0`](https://github.com/input-output-hk/mithril/releases/tag/2318.0) distribution that implements the last migration phase of the aggregator stores and embeds a bug fix for the signer registration. They also completed the implementation of the interfaces defined to provide certification for the immutable full snapshot of Cardano files and Mithril stake distribution. They finalized the implementation of the framework to sign generic types of data in the aggregator and the signer nodes. They also updated the runtime of the aggregator to handle open messages associated with the available types, and evolved the REST API of the aggregator to deliver the artifacts for these types. Additionally, they have upgraded the network explorer in order to display the artifacts and certificates for these different types.\\n\\nFinally, the team started designing an on-chain decentralized signer registration process, and started implementing the new stake distribution computation available from Cardano node `8.0.0` (along with the backward compatibility for previous `1.35.x` versions).\\n\\n## Low level overview\\n- Worked on the epic that designs and implements generic signing/verification of entity services [#780](https://github.com/input-output-hk/mithril/issues/780):\\n - Completed the handling of multiple types of signed entity in the aggregator runtime [#907](https://github.com/input-output-hk/mithril/issues/907)\\n - Completed the adaptation of the signer runtime to use the signable builder service [#854](https://github.com/input-output-hk/mithril/issues/854)\\n - Completed the adaptation of the aggregator runtime to use the artifact builder service [#869](https://github.com/input-output-hk/mithril/issues/869)\\n - Completed the appending of the next AVK to all protocol messages [#888](https://github.com/input-output-hk/mithril/issues/888)\\n - Completed the adaptation of the aggregator REST API to retrieve the list/details of the artifacts produced [#893](https://github.com/input-output-hk/mithril/issues/893)\\n - Completed the adaptation of the explorer to handle new artifact routes of the aggregator [#927](https://github.com/input-output-hk/mithril/issues/927)\\n- Worked on the epic that implements the computation of the stake distribution for `mainnet` [#880](https://github.com/input-output-hk/mithril/issues/880):\\n - Completed the implementation of the new stake distribution computation in the chain observer [#919](https://github.com/input-output-hk/mithril/issues/919)\\n - Worked on upgrading the Cardano node to `8.0.0` [#920](https://github.com/input-output-hk/mithril/issues/920)"},{"id":"2023-05-17-performance-and-tracing","metadata":{"permalink":"/2023-05-17-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-17-performance-and-tracing.md","source":"@site/blog/2023-05-17-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-05-17T00:00:00.000Z","formattedDate":"May 17, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":3.21,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-05-17-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-05-17-mithril"},"nextItem":{"title":"Crypto Team Update","permalink":"/2023-05-12-crypto"}},"content":"## High level summary\\n\\n* Benchmarking: We\'re preparing our model cluster to perform GHC9.2 benchmarks, as well as experimenting with increased dataset sizes.\\n* New tracing: After optimization work on the new tracing system, another cycle of validation and documentation is due.\\n* Analysis pipeline: First steps on implementing incremental analysis have been untertaken.\\n* Open Sourcing: Exhaustive dataflow charts for both our analysis tool `locli` and our `workbanch` have been merged to `master`\\n* Nomad backend: The first set of CI-centric workbench profiles have been adjusted and run on the nomad backend; currently we\'re porting the definition of our model cluster.\\n* P&T Meetup: We had a very productive personal meetup in Lugano, Switzerland.\\n* Offboarding: Sadly, we have to say goodbye to our team lead. Currently, we\'re busy with the handover.\\n\\n## Low level overview\\n\\n### Benchmarking\\n\\nAs a compiler switch to GHC 9.2.7 for `cardano-node`\'s default build environment is around the corner, we\'re setting up our benchmarking cluster to\\nhandle the new version. Special attention is given to the fact that we might need more flexibility in switching compiler versions in the future. This\\nalso involves choosing a reliable baseline as reference point for inter-version comparisons. \\n\\nAdditionally we\'ve been working on refining our model cluster: by increasing UTxO and delegation map sizes to closer match those of current mainnet,\\nwe strive to have a more accurate model - and thus be able to make more detailed predictions regarding performance. However, this still needs to\\nbe balanced against resource demand for all our cluster\'s nodes.\\n\\n### Tracing\\n\\nFor our new tracing system, we\'re currently validating the behaviour of the system after optimizations have been applied. Furthermore, some\\nquality-of-life details that have changed required us to revision the system documentation.\\n\\n### Analysis\\n\\nAs a mid-term goal, we aim to provide incremental analysis of our benchmarking metrics. While currently, we can only reliably process runs that have been\\nnormally (or abnormally) terminated, we see the possibility of incrementally analysing ongoing runs, or any data source yielding our key metrics, as a\\nhuge opportunity to increase our operational flexibility. All in all, this approach entails building completely new features for our pipeline. A first effort to accomodate incrementally incoming data points has been undertaken. \\n\\n### Open Sourcing\\n\\nA very involved and exhaustive documentation and visualization effort has been undertaken to make the data flow through our key benchmarking\\ncopmonents more accessible. As a result, detailed charts for both our LogObject CLI `locli` and our `workbench` have been merged to `master`. \\n\\n### Nomad backend\\nWhile our Nomad backend is reaching completion, and hardware setup is being implemented in collaboration with SRE, we\'ve been adjusting\\nthose profiles of our `workbench` that target CI-oriented workloads to the new backend. Those profiles should demonstrate the full functionality\\nof the nomad cloud backend. \\n\\nAdditionally, we\'re porting a first deployable version of our model cluster to nomad cloud, which will form the basis for validation of our actual key metrics with regard to those from the existing cluster.\\n\\n### Performance & Tracing Meetup\\n\\nWe held a personal team meetup in Lugano, Switzerland. In an amazing location, and with a great seminar room to focus, we had 2 very productive\\ndays together. Being able to discuss live and in colour, we could effectively synchronize on where the team is at, and how we want to develop in the future.\\nAlso, it was a great opportunity to finally meet in person.\\n\\n### Offboarding\\n\\nLast not least we regret that our team lead is leaving at the end of May. Currently, he\'s handing over all his obligations, which requires reorganisation\\nof team structure, and responsabilities of team members for specific tasks. Serge, we all want to thank you for your excellent and reliable lead; we very much enjoyed the time with you, and wish you all the best for your future endeavours!"},{"id":"2023-05-12-crypto","metadata":{"permalink":"/2023-05-12-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-12-crypto.md","source":"@site/blog/2023-05-12-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-05-12T00:00:00.000Z","formattedDate":"May 12, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":1.095,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-05-12-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-05-17-performance-and-tracing"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-05-12-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* cardano-base: Include final tests for BLS signature. Further adaptations for KES agent. \\n* Sidechains: Implement BLS and JubJub using upstream\'s macros to merge these curves in halo2curves.\\n## Low level summary\\n### cardano-base\\n* RawBearer API in ouroboros-network-framework (https://github.com/input-output-hk/ouroboros-network/pull/4395); this is needed for KES Agent. Review ongoing.\\n* Facilitate BLS test vectors in Haskell test suite (https://github.com/input-output-hk/cardano-base/pull/408)\\n* Add the SignKeyWithKES type to cardano-base (https://github.com/input-output-hk/cardano-base/pull/389)\\n* Restructuring and simplifying the MLocking code in cardano-base (https://github.com/input-output-hk/cardano-base/pull/404, https://github.com/input-output-hk/cardano-base/pull/405), getting rid of the purpose-built MonadMLock etc. typeclasses in the process\\n* Merging the DSIGN and DSIGNM APIs such that the same phantom type can be used to select both the pure and mlocked versions of the same DSIGN algorithm (https://github.com/input-output-hk/cardano-base/pull/411)\\n* Simplifying the KES API into a single KESAlgorithm typeclass, merging the KESSignAlgorithm class into it (this is possible due to the simplifications from #404). (Same PR as above: https://github.com/input-output-hk/cardano-base/pull/411).\\n* Update CIP-0381 with new plutus built-in functions, [#506](https://github.com/cardano-foundation/CIPs/pull/506). In particular hash_to_curve now takes as input a secon input for the Domain Separation Tag (DST), and we limit to have a maximu size of 255 bytes. \\n### Sidechains\\n* Opened PR in halo2curves to include BLS12-381 and JubJub, [#38](https://github.com/privacy-scaling-explorations/halo2curves/pull/38)\\n* Addition constraint over JubJub merged [#10](https://github.com/input-output-hk/sidechains-zk/pull/10)"},{"id":"2023-05-12-goedel","metadata":{"permalink":"/2023-05-12-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-12-goedel.md","source":"@site/blog/2023-05-12-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-05-12T00:00:00.000Z","formattedDate":"May 12, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.445,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-05-12-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2023-05-12-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-05-12-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team had two paper accepted for ICE 2023\\n(https://www.discotec.org/2023/ice). The event will be held in Lisbon\\non 19th June 2023. The papers will be published in EPTCS.\\n\\n## Details\\n\\n* Application layer for Praos formalisation in review.\\n\\n* Participating in interactive peer review process for ICE 2023.\\n\\n* The team is hiring a performance engineering intern - https://apply.workable.com/io-global/j/BFEC5B0AFF/"},{"id":"2023-05-12-hydra","metadata":{"permalink":"/2023-05-12-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-12-hydra.md","source":"@site/blog/2023-05-12-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-05-12T00:00:00.000Z","formattedDate":"May 12, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.145,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-05-12-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-05-12-goedel"},"nextItem":{"title":"Network Team Update","permalink":"/2023-05-12-network"}},"content":"## High-level summary\\n\\nThis week, the Hydra team achieved a number of milestones, including the release\\nof the first mainnet compatible version. Besides this they also addressed\\ninconsistencies in rollback handling, added an architecture page to the website,\\nreducing the size of logs using event IDs. They also had productive discussions\\nwith researchers on plans for incremental commits/decommits and had a whiteboard\\nsession on DeFi and lending protocols. The goals for next week include\\ncompleting the validation of the timed transactions feature, exploring stateless\\nobservation, refining the Hydra explorer ticket, writing ops instructions and\\ntroubleshooting, and implementing the first end-to-end journey for external\\ncommits.\\n\\n## What did the team achieve this week\\n\\n- Released first mainnnet compatible version [0.10.0](https://github.com/input-output-hk/hydra/releases/tag/0.10.0)\\n- Addressed inconsist handling of rollbacks [#784](https://github.com/input-output-hk/hydra/issues/784)\\n- Added [architecture page](https://hydra.family/head-protocol/core-concepts/architecture/) and fixed haddock links on our website [#838](https://github.com/input-output-hk/hydra/pull/838)\\n- Opened a new hydra head on mainnet\\n- Talked with researchers on initial plan for incremental commits/decommits\\n- Had a Whiteboard session on DeFi and lending protocols\\n- Reduced size of logs using event ids [#859](https://github.com/input-output-hk/hydra/pull/859)\\n- Published the [monthly report for April](https://hydra.family/head-protocol/monthly/2023-04)\\n\\n## What are the goals of next week\\n\\n- Complete validation of timed transactions feature [#196](https://github.com/input-output-hk/hydra/issues/196)\\n- Explored stateless observation and refined hydra explorer ticket [#696](https://github.com/input-output-hk/hydra/issues/696)\\n- Write “ops” instructions and troubleshooting [#569](https://github.com/input-output-hk/hydra/issues/569) and improve logs\\n- Have a first end-to-end journey for external commits implemented [#215](https://github.com/input-output-hk/hydra/issues/215)"},{"id":"2023-05-12-network","metadata":{"permalink":"/2023-05-12-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-12-network.md","source":"@site/blog/2023-05-12-network.md","title":"Network Team Update","description":"High level summary","date":"2023-05-12T00:00:00.000Z","formattedDate":"May 12, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.79,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-05-12-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-05-12-hydra"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-05-05-ledger"}},"content":"## High level summary\\n\\nWe started working on a new way to switch between root & ledger peers (see\\nbelow). We continued to work on `eclipse-evasion`. We merged changes to\\nHandshake contributed by Galois Inc. We made improvements to our tests (fixed\\na flaky test, added cddl specs for `NodeToNodeVersionData` and\\n`NodeToClientVersionData`). We improved our CI and automated the process of\\nreleasing new package version to `CHaP`.\\n\\n## Detailed summary\\n\\nWe continued to work on testing `eclipse-evasion`.\\n\\nWe came up with an idea to limit how full node wallets relay on root peers\\n(currently operated by IOG, in future also CF and Emurgo). We designed\\na switch to use ledger peers if the node tip is close enough to the current\\ntime. For more details see [#4530].\\n\\nWe merged changes to the handshake mini-protocol which allow one to query\\nserver\'s `node-to-node` / `node-to-client` parameters. We are grateful to\\nGalois Inc. for implementing it, [#4256] and [#4538]. We published new version\\nof packages to CHaP [chap-#253].\\n\\nWe added `DiffusionError` wrapper. Thanks to it, `ouroboros-consensus` will\\nnot duplicate diffusion errors messages in the log, [#4537].\\n\\nWe fixed an issue which caused one of our tests to be flaky, [#4515].\\n\\nWe added cddl tests for `NodeToNodeVersionData` and `NodeToClientVersionData`:\\n[#4540], [#4544] (in review).\\n\\nWe wrote scripts which will help us release packages as well as verify that we\\nreleased all the package necessary to build the newest set of packages,\\n[#4542].\\n\\nWe renamed the consensus startup tracer and make sure it doesn\'t log\\n`ExitSuccess` exceptions, [consensus-#71].\\n\\nWe reviewed PR which adds `RawBearer` API, [#4395].\\n\\nWe made series of improvements to our CI:\\n* [#4539]: we don\'t need to install cryptographic libraries in CI;\\n* [#4545]: Javier Sagredo (consensus) cleaned up CI after `consensus` moved\\n to a new repo;\\n* [#4546]: we switched to use [GitHub merge queues][mq];\\n* [#4549]: we made it possible to trigger building haddocks manually;\\n* [#4553]: we fixed and enhanced caching of building dependencies.\\n\\n[#4256]: https://github.com/input-output-hk/ouroboros-network/issues/4256\\n[#4395]: https://github.com/input-output-hk/ouroboros-network/issues/4395\\n[#4515]: https://github.com/input-output-hk/ouroboros-network/issues/4515\\n[#4530]: https://github.com/input-output-hk/ouroboros-network/issues/4530\\n[#4537]: https://github.com/input-output-hk/ouroboros-network/issues/4537\\n[#4538]: https://github.com/input-output-hk/ouroboros-network/issues/4538\\n[#4539]: https://github.com/input-output-hk/ouroboros-network/issues/4539\\n[#4540]: https://github.com/input-output-hk/ouroboros-network/issues/4540\\n[#4542]: https://github.com/input-output-hk/ouroboros-network/issues/4542\\n[#4544]: https://github.com/input-output-hk/ouroboros-network/issues/4544\\n[#4545]: https://github.com/input-output-hk/ouroboros-network/issues/4545\\n[#4546]: https://github.com/input-output-hk/ouroboros-network/issues/4546\\n[#4549]: https://github.com/input-output-hk/ouroboros-network/issues/4549\\n[#4553]: https://github.com/input-output-hk/ouroboros-network/issues/4553\\n\\n[chap-#253]: https://github.com/input-output-hk/cardano-haskell-packages/pull/253\\n\\n[consensus-#71]: https://github.com/input-output-hk/ouroboros-consensus/pulls/71\\n\\n[mq]: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue"},{"id":"2023-05-05-ledger","metadata":{"permalink":"/2023-05-05-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-05-ledger.md","source":"@site/blog/2023-05-05-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-05-05T00:00:00.000Z","formattedDate":"May 5, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.235,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-05-05-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-05-12-network"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-05-05-node-cli-api"}},"content":"## High level summary\\n\\nThe ledger team focused mainly on the conway ledger era and node integration.\\nFor conway, we completed a large structural change that now allows\\nfor delegation certificates to be parameterized by era, and introducing\\nnew certificates for the first time since Shelley.\\nWe also continue to build out our contraint based generators that we will\\nuse to property test the conway era.\\nIn particular, we can now generate an entire ledger state and a\\ntransaction which is balanced with respect to the ledger state.\\n\\n## Low level summary\\n\\n## Conway certificates\\n\\nCertificiates are now abstracted as a type family in the ledger codebase.\\nMoreover, there are new certificates in the Conway era to support CIP-1694,\\nand MIR certificates have been removed.\\n\\n* [pull-3387]\\n\\n## Constraint based testing\\n\\nOur plan for property testing in the conway era is to no longer use the trace generators,\\nbut instead generate ledger states and transactions based on constraints.\\nWe hit a milestone this week, namely the ability to generate a balanced transaction in the context\\nof a ledger state, all based on our ever growing constaint language.\\n\\n* [pull-3374]\\n* [pull-3386]\\n\\n## Integration work\\n\\n* [pull-3393] - Performance improvements\\n* [pull-3395] - Conway instances\\n* [pull-3398] - Fix mint translation in the script context\\n\\n## Technical debt\\n\\n* [pull-3389] - Reduce github pages size\\n* [pull-3390] - Reinstate the tickf optimizations\\n\\n[pull-3374]: https://github.com/input-output-hk/cardano-ledger/pull/3374\\n[pull-3398]: https://github.com/input-output-hk/cardano-ledger/pull/3398\\n[pull-3395]: https://github.com/input-output-hk/cardano-ledger/pull/3395\\n[pull-3393]: https://github.com/input-output-hk/cardano-ledger/pull/3393\\n[pull-3390]: https://github.com/input-output-hk/cardano-ledger/pull/3390\\n[pull-3389]: https://github.com/input-output-hk/cardano-ledger/pull/3389\\n[pull-3386]: https://github.com/input-output-hk/cardano-ledger/pull/3386\\n[pull-3387]: https://github.com/input-output-hk/cardano-ledger/pull/3387"},{"id":"2023-05-05-node-cli-api","metadata":{"permalink":"/2023-05-05-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-05-node-cli-api.md","source":"@site/blog/2023-05-05-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-05-05T00:00:00.000Z","formattedDate":"May 5, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.81,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-05-05-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-05-05-ledger"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-05-04-mithril"}},"content":"# 2023-05-05 - 2023-05-23\\n\\n## High level summary\\n- Golden tests for cardano-cli command help output were added.\\n- Documentation was updated with new libsodium installation instructions.\\n- There were several updates for the cardano-cli:\\n - Deletion of the deprecated shelley command group.\\n - Addition of golden tests for CLI help.\\n - An improvement to avoid bare IO in tests, allowing better error reporting in failed tests.\\n - Generation of UTCTime test values without leap seconds (avoids erroneous test failures)\\n - Support for signing transactions with GenesisDelegateSigningKey_ed25519_bip32.\\n- The cardano-api underwent multiple refinements:\\n - Implementing deposit handling when balancing transactions (necessary for Conway)\\n - Cleaning up socket file path code.\\n- Several changes were made to the cardano-testnet:\\n - Adding golden tests for cardano-testnet help.\\n - Removing all hardcoded yaml files in cardano-testnet\\n - Improving cardano-testnet help output.\\n - Parameterizing default yaml configuration value, allowing for easier hardforking to the era of choice.\\n\\n### docs\\n- [Update libsodium installation instructions](https://github.com/input-output-hk/cardano-node/pull/5181) \\n\\n### CI & project maintenance\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Delete deprecated `shelley` command group](https://github.com/input-output-hk/cardano-node/pull/5264) \\n- [Add golden tests for CLI help](https://github.com/input-output-hk/cardano-node/pull/5206) \\n- [Avoid bare IO in tests](https://github.com/input-output-hk/cardano-node/pull/5201) \\n- [Split `cardano-cli` test files into separate directories](https://github.com/input-output-hk/cardano-node/pull/5200) \\n- [Make UTCTime test generator generate values without leap seconds](https://github.com/input-output-hk/cardano-node/pull/5198) \\n- [Add support with signing transactions with `GenesisDelegateSigningKey_ed25519_bip32`](https://github.com/input-output-hk/cardano-node/pull/5189) \\n- [Rename --signed-tx-file argument to --tx-file argument in verify-poll command](https://github.com/input-output-hk/cardano-node/pull/5184) \\n- [Simplify socket path code](https://github.com/input-output-hk/cardano-node/pull/5120) \\n\\n### cardano-api\\n- [refactor: make renderScriptWitnessIndex output more explicit](https://github.com/input-output-hk/cardano-node/pull/5221) \\n- [Implement deposit handling when balancing transactions](https://github.com/input-output-hk/cardano-node/pull/5218) \\n- [Replace remaining `FilePath` use in `cardano-api`](https://github.com/input-output-hk/cardano-node/pull/5217) \\n- [Cleanup socket file path code](https://github.com/input-output-hk/cardano-node/pull/5215) \\n- [Delete `readEnvSocketPath` function](https://github.com/input-output-hk/cardano-node/pull/5207) \\n- [IO functions for reading. Remove PoolMetadataFile type](https://github.com/input-output-hk/cardano-node/pull/5194) \\n- [Expose config reader](https://github.com/input-output-hk/cardano-node/pull/5191) \\n- [Golden tests for `cardano-api` errors](https://github.com/input-output-hk/cardano-node/pull/5188) \\n- [Fix `toEraInMode` for conway](https://github.com/input-output-hk/cardano-node/pull/5175) \\n- [Use machine readable output for ToJSON ScriptWitnessIndex](https://github.com/input-output-hk/cardano-node/pull/5168) \\n- [Expose LocalTxSubmissionClient data constructor](https://github.com/input-output-hk/cardano-node/pull/5096) \\n- [Use cardano-api from separate repository](https://github.com/input-output-hk/cardano-node/pull/5047) \\n- [[cardano-api] Export fromConsensusPointHF](https://github.com/input-output-hk/cardano-node/pull/4684) \\n\\n### cardano-node\\n- [Provide orphan `ToJSON` instances for `HardForkNodeToClientVersion` and `HardForkNodeToNodeVersion`](https://github.com/input-output-hk/cardano-node/pull/5022) \\n\\n### cardano-testnet\\n- [Add golden test for `cardano-testnet` help](https://github.com/input-output-hk/cardano-node/pull/5254) \\n- [Remove all hardcoded yaml files from cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/5242) \\n- [Fix cardano-testnet help](https://github.com/input-output-hk/cardano-node/pull/5234) \\n- [Parameterize default yaml configuration value in cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/5211) \\n- [Freeze callstack in integration and integrationRetryWorkspace functions](https://github.com/input-output-hk/cardano-node/pull/5165) \\n- [Create defaultYamlValue for cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/5128)"},{"id":"2023-05-04-mithril","metadata":{"permalink":"/2023-05-04-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-04-mithril.md","source":"@site/blog/2023-05-04-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-05-04T00:00:00.000Z","formattedDate":"May 4, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.56,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-05-04-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-05-05-node-cli-api"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-05-03-consensus"}},"content":"## High level overview\\nThe Mithril team completed the implementation of the new certifier service of the aggregator, which is in charge of producing certificates for multi-signatures. They also finished implementing the interfaces defined to provide certification for the full immutable Cardano files snapshot and the Mithril stake distribution. Additionally, they have completed the refactoring of the multi-signer in the aggregator. The team also fixed the bug in the signer registration that was responsible for gaps during the signature phase for some signers, and they upgraded the Cardano node used in the Mithril testnets and devnet to version `1.35.7`.\\n\\nFinally, they have worked on designing a decentralized registration for the signers that takes place on the Cardano chain.\\n\\n## Low level overview\\n- Worked on the epic that designs and implements generic signing/verification of entity services [#780](https://github.com/input-output-hk/mithril/issues/780):\\n - Completed the implementation of the `Certifier` service in the aggregator [#850](https://github.com/input-output-hk/mithril/issues/850)\\n - Completed the implementation of the signable builder for the `Mithril Stake Distribution` [#851](https://github.com/input-output-hk/mithril/issues/851)\\n - Completed the implementation of the artifact builder for the `Mithril Stake Distribution` [#870](https://github.com/input-output-hk/mithril/issues/870)\\n - Completed the implementation of the signable builder for the `Full Immutables Snapshot` [#852](https://github.com/input-output-hk/mithril/issues/852)\\n - Completed the implementation of the artifact builder for the `Full Immutables Snapshot` [#871](https://github.com/input-output-hk/mithril/issues/871)\\n - Completed the adaptation of the aggregator runtime to use the signable builder service [#853](https://github.com/input-output-hk/mithril/issues/853)\\n - Worked on the adaptation of the signer runtime to use the signable builder service [#854](https://github.com/input-output-hk/mithril/issues/854)\\n - Completed the definition of the entity service interface for verification/restoration [#868](https://github.com/input-output-hk/mithril/issues/868)\\n - Completed the refactoring of the `OpenMessage` type [#878](https://github.com/input-output-hk/mithril/issues/878)\\n- Completed the epic that simplifies the multi-signer in the aggregator [#398](https://github.com/input-output-hk/mithril/issues/398):\\n - Completed the extraction of the single signature registration from the multi-signer [#643](https://github.com/input-output-hk/mithril/issues/643)\\n- Completed the upgrade of the Cardano node to version `1.35.7` [#881](https://github.com/input-output-hk/mithril/issues/881)\\n- Fixed the bug that created a discrepancy of the signer verification keys between signers and aggregators [#873](https://github.com/input-output-hk/mithril/issues/873)"},{"id":"2023-05-03-consensus","metadata":{"permalink":"/2023-05-03-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-03-consensus.md","source":"@site/blog/2023-05-03-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-05-03T00:00:00.000Z","formattedDate":"May 3, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":1.755,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-05-03-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-05-04-mithril"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-05-03-performance-and-tracing"}},"content":"## High level summary\\n\\nDuring the past two weeks we made some important progress in the Genesis design.\\nIt seems the `BlockFetch` logic need not be modified for Genesis, although this\\nneeds to be confirmed. We started a DoS mitigation handbook and updated our\\nconceptual component diagram to guide the Genesis design. We engaged with the\\nIOG researchers to work on the Limit on Patience attack vector, work in this\\narea is still ongoing. We sketched a design to decouple the CPU load of the node\\nfrom its responsiveness to the socket. Finally, we discussed with Networking our\\napproach to lower the performance impact of the BlockFetch decision logic, and\\ngot green light from them.\\n\\nWe migrated the consensus code to a [new\\nrepository](https://github.com/input-output-hk/ouroboros-consensus), splitting\\nit from the `ouroboros-network` repository, and released version 0.6 of\\nConsensus.\\n\\nWe also merged the mempool fairness improvement to main branch.\\n\\nAnother significant enhancement to our documentation was the addition of an\\nexplanation of the hardfork combinator forecast horizon.\\n\\nSee the sections below for more details.\\n\\n## Genesis\\n\\nWe reviewed the `BlockFetch` design documentation, and added some source-code\\ncomments that emphasize certain properties of the decisions the `BlockFetch`\\nlogic makes that are helping us confirm that Genesis does not require any\\nchanges to `BlockFetch`. We are waiting on input from our former system\\narchitect to verify this.\\n\\nWe migrated and updated the conceptual component diagram in the `ouroboros-consensus`\\nrepository which helps us situate the Genesis design and argument.\\n\\nWe engaged with the IOG researchers about the Genesis design. We sketched out a\\nway to address the concern that the Limit on Patiente (LoP) attack vector duty\\ncycle is indeed low, but it\'s still non-trivial to ultimately conclude it\'s\\nsufficiently low.\\n\\nWe also sketched a design to decouple the CPU load of the node from its\\nresponsiveness to the socket, since the LoP is a relatively tight timeout, and\\nnode performance bugs inducing seconds-worth of latency are unfortunately\\nfamiliar phenomena.\\n\\n## Fostering collaboration\\n\\nWe [added an\\nexplanation](https://github.com/input-output-hk/ouroboros-consensus/pull/62) of\\na question that we had to explain many times about the exact behavior of the\\nhardfork combinator forecast horizon."},{"id":"2023-05-03-performance-and-tracing","metadata":{"permalink":"/2023-05-03-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-03-performance-and-tracing.md","source":"@site/blog/2023-05-03-performance-and-tracing.md","title":"Performance & tracing update","description":"* Benchmarking: The benchmarks and performance investigations for the new 8.0 release branch are ongoing.","date":"2023-05-03T00:00:00.000Z","formattedDate":"May 3, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":1.76,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-05-03-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-05-03-consensus"},"nextItem":{"title":"DB-sync Team Update","permalink":"/2023-05-01-db-sync"}},"content":"* Benchmarking: The benchmarks and performance investigations for the new `8.0` release branch are ongoing.\\n* New tracing: Performance optimization of the new tracing system is paying off and we could notably shrink its resource footprint.\\n* Analysis pipeline: An exhaustive documentation and dataflow diagram for our analyses is being worked on.\\n* Infrastructure: The `plutus-apps` flake input for `cardano-node` has finally been removed.\\n* Nomad backend: A PR implementing placement of benchmarking clusters has been merged.\\n \\n# Benchmarking\\n\\nThe performance investigations on the `8.0` release branch have lead to pinpointing and addressing incosistent behaviour. For that,\\nwe created yet another local reproduction with the workbench\'s `forge-stress` benchmark. \\n\\nCurrently we\'re working on scaling up the dataset size (UTxO and delegations) on the AWS cluster to gain further insight into `8.0` and\\nsubsequent releases. \\n\\nAdditionally, we\'ve refined the `trace-bench` family of profiles that target benchmarking our own new tracing system. \\n\\n# Tracing\\n\\nOptimization of the tracing system has identified several locations where inefficient serializations were used; those were not originally\\nintended to run on a performance-critical codepath. We\'ve worked on improving those, as well as eliminating cases of redundant\\nconversion between different serialization formats. This has brought down both memory and CPU impact of the tracing system.\\n\\n# Infrastructure & Analysis\\n\\n### Dataflow documentation\\nThe LogObject CLI `locli` is at the heart of our analysis and reporting pipeline. To increase its accessibility and facilitate\\nfurther development, we\'re creating a detailed and illustrated documentation of all dataflows that happen during analysis and reporting. \\n\\n### Remove redundant Plutus flake input\\nThis step is the conclusion of porting Plutus benchmarking scripts to our own library. By finally removing the now unnecessary flake input,\\nwe simplify the dependency graph for `cardano-node`, as well as enable immediate feedback when developing Plutus benchmarks.\\n\\n### Nomad backend\\nSophisticated placement of nodes across various regions of the globe is a cornerstone of the model cluster we use for benchmarking.\\nThis capability has now been added to the Nomad backend and can be controlled with Nomad job descriptions. A PR with this, along\\nwith various quality-of-life improvements, has been merged to `master`."},{"id":"2023-05-01-db-sync","metadata":{"permalink":"/2023-05-01-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-01-db-sync.md","source":"@site/blog/2023-05-01-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-05-01T00:00:00.000Z","formattedDate":"May 1, 2023","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.515,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-05-01-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-05-03-performance-and-tracing"},"nextItem":{"title":"Crypto Team Update","permalink":"/2023-04-28-crypto"}},"content":"## High level summary\\n\\n\\n\\n## Lower level summary\\n- Prepared a schema change which is expected to speed up queries and help clients\\n[#1389](https://github.com/input-output-hk/cardano-db-sync/pull/1389).\\n- Ran a big number of benchmarks on the above to evaluate if this change is reasonable.\\n- Performance optimization related to rewards\\n[#1382](https://github.com/input-output-hk/cardano-db-sync/pull/1382)\\n- Using the cache in more places to reduce recourses usage\\n[#1380](https://github.com/input-output-hk/cardano-db-sync/pull/1380)\\n- Evaluated risks related to UTXO-HD integration\\n- Worked on a feauture request to split the `tx_out` to an address table\\n[#1396](https://github.com/input-output-hk/cardano-db-sync/pull/1396)\\n- Worked on another feauture request to prune the consumed entries from the `tx_out` table\\n[#1398](https://github.com/input-output-hk/cardano-db-sync/pull/1398)\\n- Prepared for CIP-1694 integration"},{"id":"2023-04-28-crypto","metadata":{"permalink":"/2023-04-28-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-28-crypto.md","source":"@site/blog/2023-04-28-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-04-28T00:00:00.000Z","formattedDate":"April 28, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":1.26,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-04-28-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/2023-05-01-db-sync"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-04-28-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* cardano-base: New KES structure finally merged. Included additional tests to BLS, and including test vectors created with zkcrypto\'s library.\\n* KES agent: Reaching state of MVP. Rewriting KES agent networking code to use the Snockets abstraction.\\n* Sidechains: Started implementing ECC chip of JubJub over BLS12-381.\\n## Low level summary\\n### cardano-base\\n* [#255](https://github.com/input-output-hk/cardano-base/pull/255) finally merged :tada:\\n* Additional tests for BLS bindings [#384](https://github.com/input-output-hk/cardano-base/pull/384)\\n* Open PR for including test vectors created with [zkscrypto](https://github.com/zkcrypto/bls12_381)\'s library, [PR#397](https://github.com/input-output-hk/cardano-base/pull/397)\\n### KES agent\\n* Introducing the SignKeyWithPeriodKES wrapper type, which bundles a KES key with its corresponding KES period [PR#389](https://github.com/input-output-hk/cardano-base/pull/389).\\n* Introducing the DirectSerialise API into cardano-base, which allows us to write mlocked memory directly to a file descriptor, without going through intermediate encodings stored on the GHC heap (which is a no-no due to secure forgetting requirements) [#317](https://github.com/input-output-hk/cardano-base/pull/317).\\n* Figuring out how to generalize the KES, DSIGN, and mlocking code in cardano-base such that it can run in IOSim\\n* Rewriting KES agent networking code to use the Snockets abstraction, which gives us a platform-independent sockets layer (i.e., it will also work on Windows), and also allows us to run networked code in IOSim for testing purposes\\n* Refactor MonadSodium into MonadMLock [PR#388](https://github.com/input-output-hk/cardano-base/pull/388).\\n### Sidechains\\n* Started working on ECC chip for JubJub over BLS (problems still with the multiplication constraint)\\n* Use macros used by PSE library to try and merge our fork of halo2curves into PSE\'s repo"},{"id":"2023-04-28-goedel","metadata":{"permalink":"/2023-04-28-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-28-goedel.md","source":"@site/blog/2023-04-28-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-04-28T00:00:00.000Z","formattedDate":"April 28, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.375,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-04-28-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2023-04-28-crypto"},"nextItem":{"title":"Network Team Update","permalink":"/2023-04-28-network"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThe team is working on porting an existing formalisation of Ouroboros\\nPraos to a newer foundation.\\n\\n## Details\\n\\n* The team worked on documentation.\\n\\n* The team worked on an application layer for the Praos formalisation.\\n\\n* The team is hiring a performance engineering intern - https://apply.workable.com/io-global/j/BFEC5B0AFF/"},{"id":"2023-04-28-network","metadata":{"permalink":"/2023-04-28-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-28-network.md","source":"@site/blog/2023-04-28-network.md","title":"Network Team Update","description":"High level summary","date":"2023-04-28T00:00:00.000Z","formattedDate":"April 28, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.21,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-04-28-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-04-28-goedel"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-04-27-hydra"}},"content":"## High level summary\\n\\nThe networking team has released the following packages to `Hackage`:\\n\\n* [`io-classes`],\\n* [`io-classes-mtl`]\\n* [`io-sim`],\\n* [`strict-stm`],\\n* [`strict-mvar`]\\n\\nWe published an announcement [blog post][io-sim-blog-post]. We made progress\\nalso on another blog post which will describes the design of the P2P networking\\nlayer.\\n\\nAfter moving `ouroboros-consensus` to its own repository, we made\\n`ouroboros-network` compatible with `GHC` `9.4` and `9.6`.\\n\\nWe made `cardano-client` library independent of\\n`ouroboros-consensus-diffusion`.\\n\\nWe prepared release of network packages for `cardano-node-8.0`.\\n\\n## Detailed log\\n\\n### Ouroboros-Network\\n\\n* Compatibility with `io-classes-1.1.0.0`: [ouroboros-network#4281].\\n* Compatibility with `GHC` `9.4` and `9.6`: [ouroboros-network#4527].\\n* `cardano-client` independent of `ouroboros-cosnensus-diffusion`: [ouroboros-network#4526].\\n* Release new versions of packages for `cardano-node-8.0`: [ouroboros-network#4532].\\n* Galois Inc, has been making progress towards merging [ouroboros-network#4256].\\n\\n### IO-Sim\\n\\n* `io-classes-1.0.0.0`, and following up releases: `1.0.0.1` (`ghc-9.6`\\n support), `1.1.0.0` (documentation fix).\\n* Fixed timeouts and delays in `io-sim` in a series of PRs: [io-sim#81],\\n [io-sim#82], [io-sim#86], [io-sim#87].\\n* Renamed a module: [io-sim#88].\\n* Fixed a failing `registerDelayCancellable` test: [io-sim#80].\\n* Use GitHub merge queue in `io-sim` repository.\\n* CI: download `stylish-haskell`: [io-sim#83].\\n\\n### Typed Protocols\\n\\n* Released `typed-protocols-0.1.0.4` which support `io-classes-1.1.0.0`:\\n [typed-protocols#227].\\n* Use GitHub merge queue in `typed-protocols`: [typed-protocols#30].\\n* CI: download `stylish-haskell`: [typed-protocols#29].\\n\\n\\n[`io-classes`]: https://hackage.haskell.org/package/io-classes\\n[`io-classes-mtl`]: https://hackage.haskell.org/package/io-classes-mtl\\n[`io-sim`]: https://hackage.haskell.org/package/io-sim\\n[`strict-stm`]: https://hackage.haskell.org/package/strict-stm\\n[`strict-mvar`]: https://hackage.haskell.org/package/strict-mvar\\n[io-sim-blog-post]: https://engineering.iog.io/2023-04-14-io-sim-annoucement\\n\\n[io-sim#81]: https://github.com/input-output-hk/io-sim/pull/81\\n[io-sim#82]: https://github.com/input-output-hk/io-sim/pull/82\\n[io-sim#83]: https://github.com/input-output-hk/io-sim/pull/83\\n[io-sim#86]: https://github.com/input-output-hk/io-sim/pull/86\\n[io-sim#87]: https://github.com/input-output-hk/io-sim/pull/87\\n[io-sim#88]: https://github.com/input-output-hk/io-sim/pull/88\\n[io-sim#90]: https://github.com/input-output-hk/io-sim/pull/90\\n\\n[ouroboros-network#4256]: https://github.com/input-output-hk/ouroboros-network/pull/4256\\n[ouroboros-network#4281]: https://github.com/input-output-hk/ouroboros-network/pull/4281\\n[ouroboros-network#4526]: https://github.com/input-output-hk/ouroboros-network/pull/4526\\n[ouroboros-network#4527]: https://github.com/input-output-hk/ouroboros-network/pull/4527\\n[ouroboros-network#4532]: https://github.com/input-output-hk/ouroboros-network/pull/4532\\n\\n[typed-protocols#29]: https://github.com/input-output-hk/typed-protocols/pull/29\\n[typed-protocols#30]: https://github.com/input-output-hk/typed-protocols/pull/30\\n[typed-protocols#227]: https://github.com/input-output-hk/cardano-haskell-packages/pull/227"},{"id":"2023-04-27-hydra","metadata":{"permalink":"/2023-04-27-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-27-hydra.md","source":"@site/blog/2023-04-27-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-04-27T00:00:00.000Z","formattedDate":"April 27, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.11,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-04-27-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-04-28-network"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-04-21-hydra"}},"content":"## High-level summary\\n\\nThis week, the Hydra team held their Monthly review meeting and drafted the\\nreport which likely is published next week. They put the spec into the\\nrepository and website, addressed a user issue and fixed the TUI peer list.\\nFurthermore, they updated dependencies, conducted a Twitter space on Auctions\\nuse cases, covered the rollback bug with tests and implemented a solution.\\nLooking ahead, their goals for next week include releasing 0.10.0, implementing\\ntimed transactions support, writing a Query API ADR, and grooming work items\\nlike off-chain benchmarks.\\n\\n## What did the team achieve this week\\n\\n- Held the Monthly review meeting and drafted the report (to be published next week)\\n- Added the spec into the repository\\n [#693](https://github.com/input-output-hk/hydra/issues/693) and published on\\n [the\\n website](https://hydra.family/head-protocol/unstable/core-concepts/specification)\\n- Groom and addressed user issue [#823](https://github.com/input-output-hk/hydra/issues/823)\\n- Covered the rollback bug with tests and implemented a solution (to be reviewed) [#784](https://github.com/input-output-hk/hydra/issues/784)\\n- Fixed the TUI peer list\\n- Updated dependencies to match `cardano-node` master\\n- Conducted a twitter space on Auctions use cases\\n\\n## What are the goals of next week\\n\\n- Release 0.10.0\\n- Support timed transactions solution drafted and validated API with users\\n- Write Query API ADR and groom a concrete step\\n- Groom and solve `PostTxOnChainFailed` UX problem [#832](https://github.com/input-output-hk/hydra/issues/832)\\n- Groom off-chain benchmarks idea [#186](https://github.com/input-output-hk/hydra/issues/186) and turn it into a “feature”"},{"id":"2023-04-21-hydra","metadata":{"permalink":"/2023-04-21-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-21-hydra.md","source":"@site/blog/2023-04-21-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-04-21T00:00:00.000Z","formattedDate":"April 21, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.26,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-04-21-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-04-27-hydra"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-04-21-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team worked on several fronts, including fixing state\\nmachine continuity on-chain, discussing voting project solutions, exploring\\nadding Hydra support to kupo, and improving API navigation with a sidebar. The\\nteam also updated dependencies and fixed issues in their test suites. Moving\\nforward, the team plans to hold the next monthly review meeting, address a user\\nissue, prepare for the 0.10.0 release, and work on a dirt road fix for the\\nrollbacks issue with proper test coverage.\\n\\n## What did the team achieve this week\\n\\n- Fixed scripts to enforce state machine continuity on-chain [#777](https://github.com/input-output-hk/hydra/pull/777).\\n- Took part in a twitter space on [“Scaling Cardano”](https://twitter.com/thepizzaknight_/status/1647833904282320896).\\n- Joined a CBIA meeting to discuss Cardano network protocols & how to specify them.\\n- Discussed potential solutions of ensuring vote uniqueness in the voting project.\\n- Updated dependencies to match `cardano-node` master to prepare for upcoming releases and hard-forks\\n- Explored adding Hydra [support to kupo](https://github.com/CardanoSolutions/kupo/pull/117), a lightweight Cardano chain indexer - some more work required.\\n- Improved navigation of the API Reference with a sidebar, see [unstable API version](https://hydra.family/head-protocol/unstable/api-reference/).\\n- Fixed two things in our test suites (random port conflicts and an arithmetic underflow in smoke test)\\n\\n## What are the goals of next week\\n\\n- Monthly review meeting (join via [Discord](https://discord.gg/inputoutput?event=1097863746216538194) or [AddEvent](https://www.addevent.com/event/ck16794110)) & report\\n- Dirt road fix for rollbacks [#784](https://github.com/input-output-hk/hydra/issues/784) properly covered by a test.\\n- Groom and ideally address user issue [#823](https://github.com/input-output-hk/hydra/issues/823).\\n- Put the spec into the repo [#693](https://github.com/input-output-hk/hydra/issues/693) and prepare release 0.10.0."},{"id":"2023-04-21-ledger","metadata":{"permalink":"/2023-04-21-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-21-ledger.md","source":"@site/blog/2023-04-21-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-04-21T00:00:00.000Z","formattedDate":"April 21, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":0.905,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-04-21-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-04-21-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-04-20-mithril"}},"content":"## High level summary\\n\\nWe continued to make progress on CIP-1694 and the conway ledger era.\\nIn particular, the conway era now supports Plutus V3.\\nFinally, we made small improvements to the ledger API and now host\\nour Haskell code documentation (haddocks) on github pages.\\n\\n\\n## Low level summary\\n\\n### Conway ledger era\\n\\n* [[pull-3365]] - Support for Plutus V3.\\n* [[pull-3368]] - Conway genesis fix.\\n* [[pull-3369]] - Added some governance ledger state.\\n* [[pull-3372]] - Work on the conway delegation certificates.\\n* [[pull-3384]] - Rename.\\n\\n### Haddocks hosted on github pages\\n\\n* [[pull-3385]] \\n\\n### Small improvements to the API\\n\\n* [[pull-3366]]\\n\\n### Technical Debt\\n\\n* [[pull-3367]] Fix cost model json instances.\\n* [[pull-3371]] UMap cleanup.\\n* [[pull-3373]] Upgrade to ghc 9.2.7 and cabal 3.10.1.\\n* [[pull-3375]] Sadly, we had to revert the `TICKF` optimizations. There was a regression we do not yet understand.\\n* [[pull-3377]] Fix cabal warnings.\\n* [[pull-3383]] Fix multi-asset test.\\n\\n[pull-3365]: https://github.com/input-output-hk/cardano-ledger/pull/3365\\n[pull-3366]: https://github.com/input-output-hk/cardano-ledger/pull/3366\\n[pull-3367]: https://github.com/input-output-hk/cardano-ledger/pull/3367\\n[pull-3368]: https://github.com/input-output-hk/cardano-ledger/pull/3368\\n[pull-3369]: https://github.com/input-output-hk/cardano-ledger/pull/3369\\n[pull-3371]: https://github.com/input-output-hk/cardano-ledger/pull/3371\\n[pull-3372]: https://github.com/input-output-hk/cardano-ledger/pull/3372\\n[pull-3373]: https://github.com/input-output-hk/cardano-ledger/pull/3373\\n[pull-3375]: https://github.com/input-output-hk/cardano-ledger/pull/3375\\n[pull-3377]: https://github.com/input-output-hk/cardano-ledger/pull/3377\\n[pull-3383]: https://github.com/input-output-hk/cardano-ledger/pull/3383\\n[pull-3384]: https://github.com/input-output-hk/cardano-ledger/pull/3384\\n[pull-3385]: https://github.com/input-output-hk/cardano-ledger/pull/3385"},{"id":"2023-04-20-mithril","metadata":{"permalink":"/2023-04-20-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-20-mithril.md","source":"@site/blog/2023-04-20-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-04-20T00:00:00.000Z","formattedDate":"April 20, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.245,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-04-20-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-04-21-ledger"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-04-20-node-cli-api"}},"content":"## High level overview\\nThe Mithril team released a new [`2315.0`](https://github.com/input-output-hk/mithril/releases/tag/2315.0) distribution that implements the first part of the migration of the aggregator stores along with minor improvements and bug fixes. They finished the migration of the aggregator stores to a relational design by completing the adaptation and migration of the signed entity, signer and single signature stores. They also created a new tick service that provides beacons to other services of the aggregator. Additionally, they started implementing the new new certifier service of the aggregator that is in charge of producing certificates for multi-signatures.\\n\\nFinally, they completed the design and definition of the interfaces that must be implemented to provide certification for a new type of data in a Mithril network.\\n\\n\\n## Low level overview\\n- Released the new distribution [`2315.0`](https://github.com/input-output-hk/mithril/releases/tag/2315.0)\\n- Completed the epic that implements a relational store in the aggregator [#779](https://github.com/input-output-hk/mithril/issues/779):\\n - Completed the migration/adaptation of the `signed_entity` table [#816](https://github.com/input-output-hk/mithril/issues/816)\\n - Completed the creation of the `signer` table [#814](https://github.com/input-output-hk/mithril/issues/814)\\n - Completed the migration/adaptation of the `single_signature` table [#829](https://github.com/input-output-hk/mithril/issues/829)\\n- Worked on the epic that designs and implement generic signing/verification of entity services [#780](https://github.com/input-output-hk/mithril/issues/780):\\n - Completed the definition of the interface of the generic entity service for signing [#847](https://github.com/input-output-hk/mithril/issues/847)\\n - Worked on the implementation of the `Certifier` service in the aggregator [#850](https://github.com/input-output-hk/mithril/issues/850)\\n - Completed the extension of the `SignedEntityType` type [#848](https://github.com/input-output-hk/mithril/issues/848)\\n - Completed the implementation of the `Tick` service in the aggregator [#849](https://github.com/input-output-hk/mithril/issues/849)\\n - Worked on implementing the signable builder for the `Mithril Stake Distribution` [#851](https://github.com/input-output-hk/mithril/issues/851)"},{"id":"2023-04-20-node-cli-api","metadata":{"permalink":"/2023-04-20-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-20-node-cli-api.md","source":"@site/blog/2023-04-20-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-04-20T00:00:00.000Z","formattedDate":"April 20, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":0.4,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-04-20-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-04-20-mithril"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-04-19-consensus"}},"content":"# 2023-04-20 - 2023-05-04\\n\\n## High level summary\\n- Various fixes and improvements\\n\\n### docs\\n\\n### CI & project maintenance\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Modify golden test functions to automatically create parent directories](https://github.com/input-output-hk/cardano-node/pull/5136) \\n- [SPO on-chain poll commands adjustments](https://github.com/input-output-hk/cardano-node/pull/5132) \\n- [New environment variable CARDANO_NODE_NETWORK_ID](https://github.com/input-output-hk/cardano-node/pull/5119) \\n\\n### cardano-api\\n- [`--out-file` option for governance commands](https://github.com/input-output-hk/cardano-node/pull/5172) \\n- [UTC Time to slots conversion function](https://github.com/input-output-hk/cardano-node/pull/5130) \\n\\n### cardano-node\\n- [Update CHaP to get latest ledger with performance fix](https://github.com/input-output-hk/cardano-node/pull/5157) \\n- [Integration with Peer Sharing](https://github.com/input-output-hk/cardano-node/pull/4854) \\n\\n### cardano-testnet"},{"id":"2023-04-19-consensus","metadata":{"permalink":"/2023-04-19-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-19-consensus.md","source":"@site/blog/2023-04-19-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-04-19T00:00:00.000Z","formattedDate":"April 19, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.77,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-04-19-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-04-20-node-cli-api"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-04-19-performance-and-tracing"}},"content":"## High level summary\\n\\nThis week the consensus team continued working on the improved DB lock mechanism\\nfor UTxO-HD, and modifications to the mempool benchmarks that this prototype\\nrequires.\\n\\nOn the Genesis front we validated that the fragment size calculation in\\n`BlockFetch` is a major performance sink for ChainSync Jumping. By removing it\\nwe will get performance that is acceptably close to that of the baseline. We\\nalso started investigating a performance fix that does not alter the existing\\nbaseline behavior too much. In addition we reviewed our Genesis attack vector\\ncalculations.\\n\\nOn the support front we released Consensus 0.4, and we are working on improving\\nour release process, to support the Cardano-wide efforts in this area. We also\\nperformed an analysis on the number of file descriptors that consensus use. This\\ninformation can be used by the node operators to check if the number of file\\ndescriptors they want to support are enough."},{"id":"2023-04-19-performance-and-tracing","metadata":{"permalink":"/2023-04-19-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-19-performance-and-tracing.md","source":"@site/blog/2023-04-19-performance-and-tracing.md","title":"Performance & tracing update","description":"* Benchmarking: We performed a series of benchmarks aimed at the new 8.0 release branch and built a timeline from the 1.35 releases to that branch.","date":"2023-04-19T00:00:00.000Z","formattedDate":"April 19, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.575,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-04-19-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-04-19-consensus"},"nextItem":{"title":"Cardano Block Production Temporary Outage","permalink":"/2023-04-17-ledger"}},"content":"* Benchmarking: We performed a series of benchmarks aimed at the new `8.0` release branch and built a timeline from the `1.35` releases to that branch.\\n* New tracing: Work on safeguarding the new tracing system performance-wise is ongoing. A practical use case for data points is being tackled with Galois.\\n* Analysis pipeline: We\'re working on automatically obtaining a detailed manifest for each run.\\n* Infrastructure: The library for benchmarking Plutus scripts has been merged. Also, we\'ve laid the ground for including GHC profiling data into our workbench.\\n* Nomad backend: The first iteration of a distributed / multi-client Nomad cluster has been merged.\\n \\n# Benchmarking\\n\\nWe have performed various cluster runs targeting the `8.0` release branch. That way we were able to catch an inconsistency in behaviour early on. This led to the creation of a specialized workbench profile `epoch-transition` for local reproduction of what we observed on the benchmarking cluster. \\n\\nFurthermore, we bridged the gap between the run data from the `1.35.x` releases to the the new `8.0.x` release branch. This included walking the\\n`master` branch backwards and pinpointing the order, as well as the dates and commits of all relevant component bumps. This timeline is absolutely crucial\\nin locating possible regressions for the new release branch, as it provides the exact points in history we would need to target with a comprehensive set of\\nbenchmarks.\\n\\n# Tracing\\n\\nIn-depth performance analysis of the new tracing system has already yielded results and helped us smoothing some rough edges. However, this work is still\\nongoing. \\n\\nIn coordination with Galois, who are developing a system assurance service by observing a number of `cardano-node`s, we\'re working with the implementation\\nof data points which the node provides during runtime. While making the view on data points expressive enough for the external service, the computational\\nburden inside the node needs to be kept to an absolute minimum. We\'re currently in ideation about whether `cardano-tracer` could be extended with a richer\\nfeature set to that end.\\n\\n# Infrastructure & Analysis\\n\\n### Detailed manifest\\nA run manifest documents, among other things, the component dependencies that were used for a specific build the run has been performed with.\\nThese dependencies come from different package sources, have different versioning policies, and an identical package version might provide different\\nperformance characteristics depending on the exact commit used for the build. This manifest will greatly increase insight into where changes in measured behaviour might have originated\\nby making all component bumps visible and accessible.\\n\\n### GHC profiling inside workbench\\nThe workbench has been equipped with a new `-profnix` profile flavour. This enforces a `-fprof-auto` build for all node-related packages. The type of\\nprofiling data generated by the GHC runtime can be customized and will enter statistical analysis. The relevant PR for this new feature has already\\nbeen merged to `master`.\\n\\n### Nomad backend\\nThe added feature for a multi-client Nomad cluster greatly enhances how jobs are organized by the backend and mapped within specific instances.\\nThis results in great maintainability while not giving up on flexibility. However, work on that feature is still ongoing."},{"id":"2023-04-17-ledger","metadata":{"permalink":"/2023-04-17-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-17-incident.md","source":"@site/blog/2023-04-17-incident.md","title":"Cardano Block Production Temporary Outage","description":"Cardano block production temporary outage","date":"2023-04-17T00:00:00.000Z","formattedDate":"April 17, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"},{"label":"incident","permalink":"/tags/incident"}],"readingTime":1.37,"hasTruncateMarker":false,"authors":[{"name":"Kevin Hammond","title":"Head of Software Engineering, Cardano Core","url":"https://github.com/kevinhammond","imageURL":"https://github.com/kevinhammond.png","key":"kevinhammond"}],"frontMatter":{"title":"Cardano Block Production Temporary Outage","slug":"2023-04-17-ledger","authors":"kevinhammond","tags":["ledger","incident"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-04-19-performance-and-tracing"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-04-14-goedel"}},"content":"## Cardano block production temporary outage\\n\\nOn Sunday, January 22, 2023, an incident occurred resulting in block production pausing for a brief period of time (approximately two minutes, similar to the usual pause at an epoch boundary). Around 50% of block-producing nodes and relays restarted during this period. Having restarted, nodes continued to produce blocks without failure. While the network continued to operate, the issue did have the potential to affect network integrity, so was flagged as a \u2018critical\u2019 incident, thus warranting immediate response and investigation by IOG engineers.\\nThe investigation (with SPO & Cardano Foundation collaboration) quickly revealed the cause of the issue \u2013 a complex bug in data structure handling code related to the precise order of insertion/deletion of multi-asset tokens into the internal ledger record. Input Output Global (IOG) engineers, along with SPOs and DApp developers, collectively identified how to reproduce the issue as a unit test that could be included in the standard Cardano node test suite.\\nFollowing successful testing, this led to a bug fix being implemented, tested, benchmarked, and deployed as a hotfix in the node v.1.35.5 release on Friday, January 27, 2023. Care was taken not to highlight the exact cause of the bug during this process so that it could not be exploited prior to SPOs deploying this new node version.\\nWith the fix deployed, the Cardano SPO and developer community have not seen any further instances of this issue.\\n\\n### Further Details\\n\\nYou can read more details on the incident and how it was managed from SundaeSwap\u2019s Pi Lanningham [here](https://www.314pool.com/post/cardano-post-mortem-1). Thanks again to all the community for its support in identifying and fixing this bug."},{"id":"2023-04-14-goedel","metadata":{"permalink":"/2023-04-14-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-14-goedel.md","source":"@site/blog/2023-04-14-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-04-14T00:00:00.000Z","formattedDate":"April 14, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.415,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-04-14-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Cardano Block Production Temporary Outage","permalink":"/2023-04-17-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-04-14-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has submitted two papers for publication, carried\\nout consultancy with other teams and has an opening for an intern.\\n\\n## Details\\n\\n* Finalised and submitted two papers to ICE 2023\\n\\n* Studying Praos paper.\\n\\n* The team is hiring a performance engineering intern - https://apply.workable.com/io-global/j/BFEC5B0AFF/\\n\\n* Design exploration for congestion management."},{"id":"2023-04-14-hydra","metadata":{"permalink":"/2023-04-14-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-14-hydra.md","source":"@site/blog/2023-04-14-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-04-14T00:00:00.000Z","formattedDate":"April 14, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.98,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-04-14-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-04-14-goedel"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-04-07-hydra"}},"content":"## High-level summary\\n\\nThis week, the Hydra team focused on improving the smoke test, fixing developer\\ntooling, and improving the API for voting use cases. They reviewed progress on\\nauction, payments, and voting projects and made worked on reproducing a bug with\\nhandling rollbacks. Moving forward, the team plans to update dependencies,\\nimplement a dirt road fix for the rollbacks bug, and explore adding Hydra\\nsupport to kupo.\\n\\n## What did the team achieve this week\\n\\n- Reviewed progress on auction, payments and voting projects\\n- Improved smoke tests so they can run on mainnet\\n- Fixed a regression in the development environment and updated cardano-node\\n used in tests\\n- Improved API with more configurability to unblock voting use case\\n - Exclude utxo in `SnapshotConfirmed` outputs [#808](https://github.com/input-output-hk/hydra/pull/808)\\n - Addressed a user request by only sending `Greetings` once [#813](https://github.com/input-output-hk/hydra/issues/813)\\n- Reproduced the rollback bug by improving our model-based test suite [#784](https://github.com/input-output-hk/hydra/issues/784)\\n\\n## What are the goals of next week\\n\\n- Update dependencies to match `cardano-node` master\\n- Dirt road fix for rollbacks [#784](https://github.com/input-output-hk/hydra/issues/784)\\n- Update Hydraw to maintain state locally\\n- Explore adding Hydra support to kupo\\n- Put disclaimer texts and closing mainnet compatibility feature [#713](https://github.com/input-output-hk/hydra/issues/713)"},{"id":"2023-04-07-hydra","metadata":{"permalink":"/2023-04-07-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-07-hydra.md","source":"@site/blog/2023-04-07-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-04-07T00:00:00.000Z","formattedDate":"April 7, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.875,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-04-07-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-04-14-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-04-06-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team published the monthly report for March, created\\nseparate links for different versions of documentation, and clarified potential\\nsolutions for the Rollbacks bug. The team also discussed Query API requests for\\nthe Hydra Voting project and met with community members to answer questions\\nabout Hydra. Moving forward, the team plans to integrate the specification into\\nthe repository, implement a short-term fix for the Rollbacks issue, and draft a\\nQuery API ADR.\\n\\n## What did the team achieve this week\\n\\n- Published monthly reports on [website](https://hydra.family/head-protocol/monthly/2023-03)\\n- Separate last released and latest versions of docs (e.g. normal [released](https://hydra.family/head-protocol/core-concepts/behavior/#replay-of-past-server-outputs) vs. [/unstable](https://hydra.family/head-protocol/unstable/core-concepts/behavior/#replay-of-past-server-outputs))\\n- Discussed Query API concerns from Hydra Voting project ([link](https://github.com/input-output-hk/hydra/discussions/797))\\n- Clarified rollbacks bug and defined possible solutions (short and long term) [#784](https://github.com/input-output-hk/hydra/issues/784)\\n- Met with community members to answer questions about Hydra\\n\\n## What are the goals of next week\\n\\n- Finally get the docs integrated into the repository [#693](https://github.com/input-output-hk/hydra/issues/693)\\n- Dirt road fix for rollbacks [#784](https://github.com/input-output-hk/hydra/issues/784)\\n- Disclaimer text and detail known issues about mainnet compatibility\\n [#713](https://github.com/input-output-hk/hydra/issues/713)"},{"id":"2023-04-06-mithril","metadata":{"permalink":"/2023-04-06-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-06-mithril.md","source":"@site/blog/2023-04-06-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-04-06T00:00:00.000Z","formattedDate":"April 6, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.075,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-04-06-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-04-07-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-04-05-consensus"}},"content":"## High level overview\\nThe Mithril team released a new [`2313.0`](https://github.com/input-output-hk/mithril/releases/tag/2313.0) distribution that implements minor improvements and bug fixes. They continued implementing the migration of the aggregator stores to a relational design. They finished adaptating and migrating the certificate, epoch settings, signed entity type, signer registration and open message stores. Additionally, they completed the refactoring of the dependency injector of the aggregator and simplified its multi-signer in order for it to sign multiple concurrent messages.\\n\\nFinally, the team has worked on designing the new architecture of the network to support signing multiple types of data and upgraded the version of the Cardano node used in the Mithril testnets and devnet to `1.35.6`.\\n\\n## Low level overview\\n- Released the new distribution [`2313.0`](https://github.com/input-output-hk/mithril/releases/tag/2313.0)\\n- Worked on the epic that implements a relational store in the aggregator [#779](https://github.com/input-output-hk/mithril/issues/779):\\n - Completed the migration/adaptation of the `epoch_settings` table [#813](https://github.com/input-output-hk/mithril/issues/813)\\n - Completed the migration/adaptation of the `signed-entity-type` table [#815](https://github.com/input-output-hk/mithril/issues/815)\\n - Completed the migration/adaptation of the `certificate` table [#817](https://github.com/input-output-hk/mithril/issues/817)\\n - Completed the migration/adaptation of the `open_message` table [#827](https://github.com/input-output-hk/mithril/issues/827)\\n - Completed the migration/adaptation of the `signer_registration` table [#828](https://github.com/input-output-hk/mithril/issues/828)\\n- Completed the refactoring of the dependency injection of the aggregator [#823](https://github.com/input-output-hk/mithril/issues/823)\\n- Completed the cleanup of the multi-signer of the aggregator [#824](https://github.com/input-output-hk/mithril/issues/824)\\n- Completed the upgrade of the Cardano node to `1.35.6` [#843](https://github.com/input-output-hk/mithril/issues/843)"},{"id":"2023-04-05-consensus","metadata":{"permalink":"/2023-04-05-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-05-consensus.md","source":"@site/blog/2023-04-05-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-04-05T00:00:00.000Z","formattedDate":"April 5, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.66,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-04-05-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-04-06-mithril"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-04-05-node-cli-api"}},"content":"## High level summary\\n\\nThis week the consensus team finished the UTxO-HD prototype refactoring. We are\\nnow working on improving the DB lock mechanism to improve performance. We also\\nintroduced several improvements to the file system abstraction and simulation\\nlayer (`fs-sim`), which culminated in the release of `fs-sim-0.1.0.0` and\\n`fs-api-0.1.0.0` to `CHaP`.\\n\\nOn the Genesis front we distributed the updated Genesis design document,\\nsoliciting feedback from Networking Team and IOG Researchers. We also opened up\\na PR for the adversarial leader schedule `QuickCheck` generator, which is being\\nreviewed.\\n\\nOn the support front, we got a new Consensus version that can use different\\nfundamental VRF crypto primitives for Babbage and Conway eras.\\n\\nOn the tech debt front we fixed an bug in the followers logic, which was\\ndiscovered by our `QuickCheck` property tests."},{"id":"2023-04-05-node-cli-api","metadata":{"permalink":"/2023-04-05-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-05-node-cli-api.md","source":"@site/blog/2023-04-05-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-04-05T00:00:00.000Z","formattedDate":"April 5, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.315,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-04-05-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-04-05-consensus"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-04-05-performance-and-tracing"}},"content":"# 2023-04-05 - 2023-04-19\\n\\n## High level summary\\n- Introduce new governance commands create, answer and verify. This allows us to have onchain polls.\\n- Begin making changes in cardano-api to accomodate for CIP-1694\\n- Rename `TestEnableDevelopmentHardForkEras` to `ExperimentalHardForksEnabled` and `TestEnableDevelopmentNetworkProtocols` to `ExperimentalProtocolsEnabled`\\n- Various bug fixes and improvements \\n\\n### docs\\n\\n### CI & project maintenance\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Add new interim governance commands: {create, answer, verify}-poll](https://github.com/input-output-hk/cardano-node/pull/5112) \\n- [Remove --stake-address option from stake-address build](https://github.com/input-output-hk/cardano-node/pull/5061) \\n- [Frozen callstack for checkTextEnvelopeFormat function](https://github.com/input-output-hk/cardano-node/pull/5059) \\n- [#5052 Remove reading protocol parameters from Shelley genesis file](https://github.com/input-output-hk/cardano-node/pull/5053) \\n- [Move parsers to reusable location](https://github.com/input-output-hk/cardano-node/pull/5046) \\n- [New --socket-path cli option](https://github.com/input-output-hk/cardano-node/pull/4910) \\n\\n### cardano-api\\n- [CIP-1694 make space for DRep certificates](https://github.com/input-output-hk/cardano-node/pull/5108) \\n- [File type to track the content and direction of files](https://github.com/input-output-hk/cardano-node/pull/5105) \\n- [Fix import warning](https://github.com/input-output-hk/cardano-node/pull/5087) \\n- [Expose UsingRawBytes et al types](https://github.com/input-output-hk/cardano-node/pull/5086) \\n- [Expose SerialiseAsRawBytesError in Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/5085) \\n- [Introduce new AnyShelleyBasedEra type and simplify CDDL tests.](https://github.com/input-output-hk/cardano-node/pull/5072) \\n- [New genCardanoKeyWitness function](https://github.com/input-output-hk/cardano-node/pull/5071) \\n- [Replace roundtripCBOR with trippingCbor](https://github.com/input-output-hk/cardano-node/pull/5069) \\n- [Remove non-round-trippable value TxInsReferenceNone for babbage onwards in generator](https://github.com/input-output-hk/cardano-node/pull/5064) \\n- [Improve roundtrip functions to report annotations on callsite](https://github.com/input-output-hk/cardano-node/pull/5063) \\n- [Define Functor instance for FileError](https://github.com/input-output-hk/cardano-node/pull/5057) \\n- [Split serialisation from IO](https://github.com/input-output-hk/cardano-node/pull/5049) \\n\\n### cardano-node\\n- [Master build failure fixes](https://github.com/input-output-hk/cardano-node/pull/5115) \\n- [Allow renamed fields to exist if values the same](https://github.com/input-output-hk/cardano-node/pull/5106) \\n- [workbench: updates](https://github.com/input-output-hk/cardano-node/pull/5091) \\n- [Delete duplicate packages sort packages and imports](https://github.com/input-output-hk/cardano-node/pull/5084) \\n- [Rename TestEnableDevelopmentHardForkEras and TestEnableDevelopmentNetworkProtocols](https://github.com/input-output-hk/cardano-node/pull/4341) \\n\\n### cardano-testnet\\n- [Additional check for not-leader slots in LeadershipSchedule tests](https://github.com/input-output-hk/cardano-node/pull/5110) \\n- [Fix epochLength and securityParam to conform to the formula 10 * k / f](https://github.com/input-output-hk/cardano-node/pull/5099) \\n- [Ergonomic directory creation code in tests](https://github.com/input-output-hk/cardano-node/pull/5083) \\n- [Default Cardano.Testnet to NodeLoggingFormatAsJson](https://github.com/input-output-hk/cardano-node/pull/5036) \\n- [Integrate latest ledger dependencies](https://github.com/input-output-hk/cardano-node/pull/5013)"},{"id":"2023-04-05-performance-and-tracing","metadata":{"permalink":"/2023-04-05-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-05-performance-and-tracing.md","source":"@site/blog/2023-04-05-performance-and-tracing.md","title":"Performance & tracing update","description":"* Benchmarking: We worked on adjusting our infrastructure to the new 8.0 release branch and performed a (very) early run.","date":"2023-04-05T00:00:00.000Z","formattedDate":"April 5, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.33,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-04-05-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-04-05-node-cli-api"},"nextItem":{"title":"Crypto Team Update","permalink":"/2023-03-31-crypto"}},"content":"* Benchmarking: We worked on adjusting our infrastructure to the new `8.0` release branch and performed a (very) early run.\\n* New tracing: We\'re profiling the new tracing system for minimizing its resource footprint and guarantee high throughput.\\n* Analysis pipeline: Variance analysis both for reporting and for serving as a point of comparison has been merged.\\n* Infrastructure: A library for Plutus scripts will be integrated in our tooling and benchmarking profiles. Also, a profile family aimed at the tracing systems has been added.\\n* Nomad backend: Various specializations of the backend are currently being implemented, along with streamlining credentials management.\\n \\n# Benchmarking\\n\\nWe have adapted our benchmarking cluster to the requirements of the `8.0` release branch. Testing runs of a very early feature branch for `8.0`\\nhelped us localize an important issue in collaboration with the other teams. We look forward to gathering preliminary metrics for `8.0` soon.\\n\\n# Tracing\\n\\nAnalysis of resource usage profiles of both the legacy and new tracing system, with and without trace forwarding, have lead us to gather very\\ndetailed profiling data for each possible setup. This is to ensure we keep resource usage within the node to an absolute minimum, while still providing\\nthe highest possible throughput of data for forwarding to `cardano-tracer`. \\n\\nAdditionally, we\'ve worked on a very practically-oriented document targeted at end users of the new tracing system. It provides tested step-by-step instructions\\nfor tunneling trace forwarding from a node to `cardano-tracer` via an easy to manage system service, which will match the production setup of most users.\\n\\n# Infrastructure & Analysis\\n\\n### General\\nVariance analysis as a full-fledged entity in our tooling has been merged. Not only is this type of analysis now part of our reporting pipeline - variance\\nanalysis can be fed back and serve as an additional point of comparison.\\n\\nFurthermore, we\'ve created a profile family for the workbench that\'s specifically aimed at measuring and comparing tracing system configurations.\\n\\n### Plutus library\\nWe opened a PR containing a new package for benchmarking - an extendable library that holds all Plutus scripts we use in our benchmarking profiles.\\nThis will enable us in the future to iteratively work on customizing any given script, and the way is called in the context of a specific profile.\\nIt is a refinement of current affairs, where we have additional build inputs solely to generate a static script file tied to an external commit.\\n\\n### Nomad backend\\nThe nomad backend is being specialized in three ways: using a podman driver locally, using nomad agents supporting nix installables, and using nomad cloud agents. This supports having a common surface independent of the actual backend driver being used. In addition, vault retrieval and management of cloud access credentials is\\nbeing improved to minimize any friction for the backend user."},{"id":"2023-03-31-crypto","metadata":{"permalink":"/2023-03-31-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-31-crypto.md","source":"@site/blog/2023-03-31-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-03-31T00:00:00.000Z","formattedDate":"March 31, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":1.105,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-03-31-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-04-05-performance-and-tracing"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-03-31-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: Started looking into full-node verifier\\n* cardano-base: BLS12-381\'s PR merged. Creating test-vectors for verifying basic pairing properties.\\n* KES agent: Blockers overcome. Reaching a first MVP level of the KES-agent. \\n* Sidechains: Included BLS12-381 & JubJub to halo2curves\\n* MuSig2: Final modifs to C version.\\n## Low level summary\\n### Mithril\\n* Started designing how a full-node verifier would work. Issue comming in the next couple of weeks. \\n### cardano-base\\n* BLS12-381 branch merged [PR#266](https://github.com/input-output-hk/cardano-base/pull/266). \\n* Testing strategy for BLS bindings:\\n * Test-vectors for Groth16, and simple BLS signatures ready.\\n * Test-vectors with different library, and created by different engineer. \\n### KES agent\\n* Resolved issues of circular dependency\\n* Got rid of separate DSIGN and DSIGNM, we now have DSIGN over mlocked keys, but the phantom type is the same. \\n* Opened a PR for raw bearer branch in ouroboros network [PR4395](https://github.com/input-output-hk/ouroboros-network/pull/4395)\\n* Resolved a bug where the agent node did not properly closed connections\\n* Updated version of [IOSim](https://github.com/input-output-hk/io-sim/pull/70) allowed us to finish a first version of KES agent.\\n### Sidechains\\n* Included [BLS12-381](https://github.com/iquerejeta/halo2curves/commit/1ccf987b772dcfaa3c1e3439a4a28f23fcf07c7a) curve to our branch of halo2curves\\n* Included [JubJub](https://github.com/iquerejeta/halo2curves/commit/3f20edb2ed112733a0a0986b0a0386c1b9bc439f) to our branch of halo2curves \\n### MuSig2\\n* Minor reorg [PR#42](https://github.com/input-output-hk/musig2/pull/42)\\n* Started including fuzz testing for deserialisation [PR#](https://github.com/input-output-hk/musig2/pull/43)"},{"id":"2023-03-31-goedel","metadata":{"permalink":"/2023-03-31-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-31-goedel.md","source":"@site/blog/2023-03-31-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-03-31T00:00:00.000Z","formattedDate":"March 31, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.455,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-03-31-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2023-03-31-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-03-31-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been working on final drafts of two papers\\nfor internal review and planning next steps of analysis of consensus\\ndesign refiniments.\\n\\n## Details\\n\\n* Preparing final draft of DeltaQSD algebra paper for internal review\\n\\n* Preparing final draft of verifying design refinements for\\n distributed system design for internal review\\n\\n* Planning next phase of consensus design refinement analysis"},{"id":"2023-03-31-hydra","metadata":{"permalink":"/2023-03-31-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-31-hydra.md","source":"@site/blog/2023-03-31-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-03-31T00:00:00.000Z","formattedDate":"March 31, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.82,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-03-31-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-03-31-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-03-31-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra continued work on finishing mainnet compatibility. The\\nsemi-automated smoke tests and some missing documentation is still preventing\\nfrom calling that fully done. They fixed smaller issues and made a step in the\\nHead protocol more robust. Besides development, they met with interested people\\nfrom the community who want to get started collaborating on communication and\\nmarketing materials.\\n\\n## What did the team achieve this week\\n\\n- Groomed and followed-up on `GetUTxO` user request discussion [#797](https://github.com/input-output-hk/hydra/discussions/797)\\n- Fixed `hydra-node` crashes after forks [#560](https://github.com/input-output-hk/hydra/issues/560)\\n- Made `collectCom` more robust and aligned with spec [#786](https://github.com/input-output-hk/hydra/pull/786)\\n- Completed configurable API feature [#380](https://github.com/input-output-hk/hydra/issues/380)\\n- Met potential contributors about Hydra communication and marketing materials\\n- Versioned documentation: we have a `unstable` bleeding edge version available as well now, seperate from the last released version\\n\\n## What are the goals of next week\\n\\n- Follow-up backlog and roadmap clean-up\\n- Complete mainnet compatibility feature [#713](https://github.com/input-output-hk/hydra/issues/713) (documentation updates)\\n- Integrate Hydra specification into repository [#693](https://github.com/input-output-hk/hydra/issues/693)"},{"id":"2023-03-31-ledger","metadata":{"permalink":"/2023-03-31-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-31-ledger.md","source":"@site/blog/2023-03-31-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-03-31T00:00:00.000Z","formattedDate":"March 31, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.97,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-03-31-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-03-31-hydra"},"nextItem":{"title":"System Test Team Update","permalink":"/2023-03-27-system-test"}},"content":"## High level summary\\n\\nWe are still heavily involved in work related to preparing the next release.\\nThe other main thing we have worked on is experimentation about how we will\\nhandle the DRep stake distribution for CIP-1694 in the conway ledger era.\\nLastly, we merged a fix for\\n[node-4826](https://github.com/input-output-hk/cardano-node/issues/4826)\\ninto our main branch (there will be a post-mortem shortly).\\n\\n## Low level summary\\n\\n### Support for the next release\\n\\n* [pull-3363] - Fix problems relating to Arbitrary instances used by consensus.\\n* [pull-3361] - Remove the alonze genesis from the conway genesis.\\n* [pull-3360] - Translate bad pointer addresses to valid ones in conway.\\n* [pull-3357] - Fix a bug relating to zero valued ADA in the script context.\\n* [pull-3356] - Added needed instances (Arbitrary and Serialization) for conway integration.\\n* [pull-3345] - Added helper functions for the CLI.\\n* [pull-3342] - Fix a bug with a CLI helper function (having to do with deposit tracking).\\n\\n### Experiments for DRep stake distribution\\n\\nAdding another stake distribution to the ledger state presents some new challenges.\\nWe would like to be able to use the current stake distribution at the epoch boundary\\nfor DRep voting so that people can always vote themselves in time for any proposal.\\nTo this end, we have a prototype of an incremental computation based on the incremental\\nlambda calculus, together with tests and benchmarks (which are very promising).\\nSee [pull-3344].\\n\\nAdditionally, more of the ledger state is going to need to be rearranged to accomodate\\nthe new incremental computations.\\nWe have two draft PRs up for possibles solution.\\nSee [pull-3353] and [pull-3364].\\n\\n### Technical debt and bug fixes\\n\\n* [pull-3343] - A fix [node-4826](https://github.com/input-output-hk/cardano-node/issues/4826).\\n* [pull-3333] - Moving more code out of the shelley packages. \\n* [pull-3347] - Bug fix for the multi-asset generators.\\n* [pull-3341] - Removal of code duplication.\\n\\n### Documentation changes\\n\\n* [pull-3354] - Rename \\"optional datums\\" with \\"supplemental datums\\" in the alonzo spec.\\n* [pull-3352] - Add a section to the Shelly errata about the individual deposit tracking.\\n* [pull-3351] - Further clarify the details regarding the script integrity hash.\\n* [pull-3350] - Some cleanup of the Babbage spec.\\n\\n\\n[pull-3363]: https://github.com/input-output-hk/cardano-ledger/pull/3363\\n[pull-3361]: https://github.com/input-output-hk/cardano-ledger/pull/3361\\n[pull-3360]: https://github.com/input-output-hk/cardano-ledger/pull/3360\\n[pull-3357]: https://github.com/input-output-hk/cardano-ledger/pull/3357\\n[pull-3356]: https://github.com/input-output-hk/cardano-ledger/pull/3356\\n[pull-3345]: https://github.com/input-output-hk/cardano-ledger/pull/3345\\n[pull-3342]: https://github.com/input-output-hk/cardano-ledger/pull/3342\\n[pull-3344]: https://github.com/input-output-hk/cardano-ledger/pull/3344\\n[pull-3353]: https://github.com/input-output-hk/cardano-ledger/pull/3353\\n[pull-3364]: https://github.com/input-output-hk/cardano-ledger/pull/3364\\n[pull-3343]: https://github.com/input-output-hk/cardano-ledger/pull/3343\\n[pull-3333]: https://github.com/input-output-hk/cardano-ledger/pull/3333\\n[pull-3347]: https://github.com/input-output-hk/cardano-ledger/pull/3347\\n[pull-3341]: https://github.com/input-output-hk/cardano-ledger/pull/3341\\n[pull-3354]: https://github.com/input-output-hk/cardano-ledger/pull/3354\\n[pull-3352]: https://github.com/input-output-hk/cardano-ledger/pull/3352\\n[pull-3351]: https://github.com/input-output-hk/cardano-ledger/pull/3351\\n[pull-3350]: https://github.com/input-output-hk/cardano-ledger/pull/3350"},{"id":"2023-03-27-system-test","metadata":{"permalink":"/2023-03-27-system-test","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-27-system-test.md","source":"@site/blog/2023-03-27-system-test.md","title":"System Test Team Update","description":"High level summary","date":"2023-03-27T00:00:00.000Z","formattedDate":"March 27, 2023","tags":[{"label":"system-test","permalink":"/tags/system-test"}],"readingTime":0.785,"hasTruncateMarker":false,"authors":[{"name":"Martin Kourim","title":"System Test Engineer","url":"https://github.com/mkoura","imageURL":"https://github.com/mkoura.png","key":"mkoura"}],"frontMatter":{"title":"System Test Team Update","slug":"2023-03-27-system-test","authors":"mkoura","tags":["system-test"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-03-31-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-03-24-hydra"}},"content":"## High level summary\\nSince the last update (2023-1-13) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the _1.35.5_ and _1.35.6_ releases (and their predecessing release candidates) and ran tests on branch with the _UTxO-HD_ functionality.\\n\\n## Workstreams\\n\\n### Framework improvements:\\n- improvements in searching for unexpected error messages in log files during test run\\n- added support for UTxO-HD testing\\n- added support for the new P2P topology format\\n- added local cluster variant that has the same properties as mainnet (epoch length, fees, etc.)\\n- added preliminary support for the Conway era\\n- added support for running tests on the _Preview_ testnet\\n\\n[Full list of closed PRs](https://github.com/input-output-hk/cardano-node-tests/pulls?q=is%3Apr+is%3Aclosed+updated%3A2023-01-13..2023-03-26)\\n\\n### Node:\\n- ran tests on node branch with the UTxO-HD functionality\\n- tested the [1.35.5](https://tests.cardano.intersectmbo.org/test_results/node/tag_1_35_5.html) release\\n- tested the [1.35.6](https://tests.cardano.intersectmbo.org/test_results/node/tag_1_35_6.html) release\\n\\n### DB-Sync:\\n- improvements in db-sync sync tests\\n- improvements in db-sync functional tests"},{"id":"2023-03-24-hydra","metadata":{"permalink":"/2023-03-24-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-24-hydra.md","source":"@site/blog/2023-03-24-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-03-24T00:00:00.000Z","formattedDate":"March 24, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.95,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-03-24-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"System Test Team Update","permalink":"/2023-03-27-system-test"},"nextItem":{"title":"DB-sync Team Update","permalink":"/2023-03-23-db-sync"}},"content":"## High-level summary\\n\\nThis week, the Hydra had a team workshop and conducted the monthly review\\nmeeting for March. They demonstrated a Hydra Head on mainnet, which was running\\nthe hydraw demo application. While this marks an important milestone, they also\\nemphasized that more features are still to be added as needed for applications\\nto run on Hydra. Besides this, the roadmap is getting cleaned up to encourage\\ndiscussions and provide more space for user requests.\\n\\n## What did the team achieve this week\\n\\n- Monthly review meeting [slides](https://docs.google.com/presentation/d/1yZ4AqUQ8OBMG9ARMYvj3IOjaIAqglf7kZei4vsLMrbs/edit#slide=id.g1f87a7454a5_0_1392)/[recording](https://drive.google.com/file/d/1krzM8VN-gpKTtpVdC2JQx-lGti-4gKQS/view?ts=641b3c1c), full report of March next week\\n - Opened a head on mainnet with hydraw demonstration\\n - Hydra pay updates\\n- Team workshop in Austria\\n - Hydra presentation at the Cardano Foundation in Zurich\\n - In-person grooming session, marked many items as candidates to be rather :idea: dicussions\\n - Improved head protocol [#786](https://github.com/input-output-hk/hydra/pull/786) and investigated a potential bug in rollback handling [#784](https://github.com/input-output-hk/hydra/issues/784)\\n - Team building and retrospective\\n\\n## What are the goals of next week\\n\\n- Follow-up on backlog and roadmap clean-up\\n- Complete mainnet compatibility feature (documentation updates)\\n- Make API more configurable [#380](https://github.com/input-output-hk/hydra/issues/380)\\n- Integrate Hydra specification into repository [#693](https://github.com/input-output-hk/hydra/issues/693)"},{"id":"2023-03-23-db-sync","metadata":{"permalink":"/2023-03-23-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-23-db-sync.md","source":"@site/blog/2023-03-23-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-03-23T00:00:00.000Z","formattedDate":"March 23, 2023","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.755,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-03-23-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-03-24-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-03-23-mithril"}},"content":"## High level summary\\n\\nThe DBSync team worked in performance enhancements issues, on providing new db-sync options and on\\ntechnical debt and bug fixing. The DBSync team also on boarded a new member.\\n\\n## Low level summary\\n- Worked on an issue which causes `ada_pots` tables to include the values related not only to an\\nepoch, but also the first epoch of the last epoch.\\n[#1367](https://github.com/input-output-hk/cardano-db-sync/pull/1367)\\n- Fixed an issue where the `epoch` table didn\'t rollback and caused wrong values\\n[#1370](https://github.com/input-output-hk/cardano-db-sync/pull/1370)\\n- Fixed an issue were users with `disable-ledger` option had to provide the state dir option, even\\nthough it was never used. Also refactored the no ledger part of the codebase.\\n[#1378](https://github.com/input-output-hk/cardano-db-sync/pull/1378)\\n- Improved the perforance by using the cache more. Also provided many new options which enables or\\ndisables parts of db-sync. In addition a new `--turbo` mode is enables which allows db-sync to sync\\nmainnet in hours.\\n[#1379](https://github.com/input-output-hk/cardano-db-sync/pull/1379)"},{"id":"2023-03-23-mithril","metadata":{"permalink":"/2023-03-23-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-23-mithril.md","source":"@site/blog/2023-03-23-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-03-23T00:00:00.000Z","formattedDate":"March 23, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.615,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-03-23-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/2023-03-23-db-sync"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-03-22-consensus"}},"content":"## High level overview\\nThe Mithril team released a new [`2310.0`](https://github.com/input-output-hk/mithril/releases/tag/2310.0) distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images.\\n\\nFinally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano `mainnet` and they have fixed some bugs. \\n\\n## Low level overview\\n- Completed the epic that implements eras behavior switch [#707](https://github.com/input-output-hk/mithril/issues/707):\\n - Completed handling the API version switch at era transition [#727](https://github.com/input-output-hk/mithril/issues/727)\\n- Worked on the epic that implements a relational store in the aggregator [#779](https://github.com/input-output-hk/mithril/issues/779):\\n - Completed on the migration/adaptation of the `stake_pool` table [#787](https://github.com/input-output-hk/mithril/issues/787)\\n - Worked on the migration/adaptation of the `epoch_settings` table [#813](https://github.com/input-output-hk/mithril/issues/813)\\n - Worked on the migration/adaptation of the `signed-entity-type` table [#815](https://github.com/input-output-hk/mithril/issues/815)\\n - Completed the creation of a stake distribution service [#799](https://github.com/input-output-hk/mithril/issues/799)\\n- Completed the testing of Mithril with Cardano `mainnet` network [#777](https://github.com/input-output-hk/mithril/issues/777)\\n- Completed qualifying the computation of the stake distribution [#810](https://github.com/input-output-hk/mithril/issues/810)\\n- Completed the testing of the Docker client in the `Mithril Client multi-platform test` workflow [#794](https://github.com/input-output-hk/mithril/issues/794)\\n- Worked on bugs and optimizations:\\n - Fixed a bug that made computation of the stake distribution occur multiple times during an epoch [#804](https://github.com/input-output-hk/mithril/issues/804)\\n - Fixed a bug that created deadlocks on the SQLite connection [#807](https://github.com/input-output-hk/mithril/issues/807)\\n - Optimized the error message and the behavior of the signer node when KES keys have expired [#820](https://github.com/input-output-hk/mithril/issues/820)\\n - Upgraded the infrastructure of the `testing-preview` and `pre-release-preview` networks [#801](https://github.com/input-output-hk/mithril/issues/801)\\n - Re-genesis of the `testing-preview` network [#803](https://github.com/input-output-hk/mithril/issues/803)\\n - Re-genesis of the `pre-release-preview` network [#818](https://github.com/input-output-hk/mithril/issues/818)"},{"id":"2023-03-22-consensus","metadata":{"permalink":"/2023-03-22-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-22-consensus.md","source":"@site/blog/2023-03-22-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-03-22T00:00:00.000Z","formattedDate":"March 22, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":0.63,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-03-22-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-03-23-mithril"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-03-22-node-cli-api"}},"content":"## High level summary\\n\\nThis week the consensus team continued working on the refactoring of the UTxO HD\\nprototype, and design and testing of Genesis. We also extracted the `fs-sim`\\npackage, which provides a file-system abstraction layer that can be used for\\ntesting and simulation. This makes the Consensus code base smaller, while\\nproviding a package that the community can reuse and contribute to. We also\\nfixed a failing property test related to iterators. We are also working on\\nmempool and VRF improvements.\\n\\n\\n## Low-level details\\n\\n- Extraction of `fs-sim` code from `ouroboros-network`:\\n - https://github.com/input-output-hk/ouroboros-network/pull/4425\\n - https://github.com/input-output-hk/fs-sim/pull/1\\n - https://github.com/input-output-hk/fs-sim/pull/2\\n - https://github.com/input-output-hk/ouroboros-network/pull/4460\\n- Smaller changes in `fs-sim` code (some required by `UTxO-HD`):\\n - https://github.com/input-output-hk/fs-sim/pull/5\\n - https://github.com/input-output-hk/fs-sim/pull/6\\n - https://github.com/input-output-hk/fs-sim/pull/7\\n - https://github.com/input-output-hk/fs-sim/pull/8\\n- Released cardano-lmdb-simple-0.6.0.0\\n - https://github.com/input-output-hk/lmdb-simple/pull/20\\n - https://github.com/input-output-hk/cardano-haskell-packages/pull/150"},{"id":"2023-03-22-node-cli-api","metadata":{"permalink":"/2023-03-22-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-22-node-cli-api.md","source":"@site/blog/2023-03-22-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-03-22T00:00:00.000Z","formattedDate":"March 22, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":0.645,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-03-22-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-03-22-consensus"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-03-22-performance-and-tracing"}},"content":"# 2023-03-22 - 2023-04-05\\n\\n## High level summary\\n\\n- Added new cardano-cli ping command which allows users to ping remote cardano-nodes.\\n- The `transaction build` command now can automatically balance multiassets\\n- New combinators for constructing transaction bodies. This allows us to construct transaction bodies in a composable manner.\\n\\n### docs\\n\\n### CI & project maintenance\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Remove unused error constructors](https://github.com/input-output-hk/cardano-node/pull/5041) \\n- [Fix qKesKesKeyExpiry to not always be null](https://github.com/input-output-hk/cardano-node/pull/4909) \\n- [New cardano-cli ping command.](https://github.com/input-output-hk/cardano-node/pull/4664) \\n\\n### cardano-api\\n- [Remove use of AcquireFailure type](https://github.com/input-output-hk/cardano-node/pull/5040) \\n- [Simplify implementation of executeQueryAnyMode](https://github.com/input-output-hk/cardano-node/pull/5038) \\n- [Script data serialisation](https://github.com/input-output-hk/cardano-node/pull/5002) \\n- [Guard against overflows in Shelley TxIns](https://github.com/input-output-hk/cardano-node/pull/4956) \\n- [Combinators for TxBodyContent and related types](https://github.com/input-output-hk/cardano-node/pull/4941) \\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450) \\n\\n### cardano-node\\n\\n### cardano-testnet\\n- [Use Haskell variables for passing values.](https://github.com/input-output-hk/cardano-node/pull/5011) \\n- [Re-enable kes-period-info test.](https://github.com/input-output-hk/cardano-node/pull/4879)"},{"id":"2023-03-22-performance-and-tracing","metadata":{"permalink":"/2023-03-22-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-22-performance-and-tracing.md","source":"@site/blog/2023-03-22-performance-and-tracing.md","title":"Performance & tracing update","description":"* Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.","date":"2023-03-22T00:00:00.000Z","formattedDate":"March 22, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.5,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-03-22-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-03-22-node-cli-api"},"nextItem":{"title":"Network Team Update","permalink":"/2023-03-21-network"}},"content":"* Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.\\n* New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we\'re currently improving documentation and creating setup guidelines for end users.\\n* Analysis pipeline: Our refined metrics PR has been merged. We\'re working on including variance analysis to our reporting machinery.\\n* Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we\'re laying the groundwork for enabling GHC 9.2 in our benchmarks.\\n* Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing.\\n* Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.\\n\\n# Performance\\n\\n### New tracing\\nThe new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe\\na slight shift in the resource usage profile from memory to CPU, but no regressions in block propagation metrics. Variance was observed to be notably smaller, which gives the new system a much better predictability. From this angle, we consider the new system fit for production use.\\n\\n### GHC RTS parametrization\\nWe\'re currently prerforming various runs on the cluster to explore the space of different GHC RTS settings for running nodes. The main focus lies\\non different configurations for the garbage collector, as well as increasing the number of CPU cores the node may use.\\n\\n### Open Sourcing\\nOur API demo has reached prototype stage, and operates on live data from the production database. Making use of the experience gained, we\'re refining version 1 of the API to provide optimized usability, and creating documentation that both is descriptive of the API endpoints, and focuses on practical, exemplary use cases.\\n\\n# Tracing\\nFor the new tracing system we\'re currently undertaking an effort to multi-layered documentation: a condensed version, as well\\nas a setup guide with pragmatical focus, will be provided alongside the in-depth documentation. This effort should cater to different audiences, and provide distinct entry points\\nfor users of the new system, depending on their wants and needs. \\n\\n# Infrastructure & Analysis\\n\\n### General\\nHaving included Conway genesis in the workbench, as a next step in future-proofing out benchmarking infrastructure, we\'re laying the foundation for a switch in compiler version to GHC 9.2. Additionally, we considered variance analysis of our runs to merit inclusion into our reporting pipeling - which will\\nincrease confidence in specific metrics.\\n\\n### Nomad backend\\nWe have implemented an appropriate mechanism for genesis distribution: Only after a benchmarking cluster has been deployed successfully, genesis\\nis patched and uploaded to an AWS S3 bucket for the nodes to retrieve - as a final step before initiating the actual run. We\'re confident that this deferred approach will provide clearer evidence for genesis patches, as well as minimize startup time for all runs by factoring in deployment re-tries."},{"id":"2023-03-21-network","metadata":{"permalink":"/2023-03-21-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-21-network.md","source":"@site/blog/2023-03-21-network.md","title":"Network Team Update","description":"High level summary","date":"2023-03-21T00:00:00.000Z","formattedDate":"March 21, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.315,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-03-21-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-03-22-performance-and-tracing"},"nextItem":{"title":"Crypto Team Update","permalink":"/2023-03-17-crypto"}},"content":"## High level summary\\n\\nIn the last spring we released `cardano-node-1.35.6` with dynamic P2P\\nfunctionality.\\n\\nWe received reports from some SPOs who encountered problems with their non\\nP2P block producing nodes not being able to connect to their P2P relay. Karl\\nKnutsson (from Cardano Foundation) reproduced this issue between two nodes (a\\nnon P2P and a P2P one) on mainnet. Karl and the IOG Networking Team analysed\\nit and found a bug in the legacy non p2p code. The bug is only possible to\\ntrigger with a P2P node which is binding its outbound connection port to\\na fixed IP address and port (default in p2p). A possible solution was found.\\nFor more information see [#4465].\\n\\nWe released `cardano-ping-0.1.0.0` package to `CHaP`. `cardano-ping` is no\\nlonger available as a standalone binary, but instead it will become part of\\n`cardano-cli` (see [#4664])\\n\\nWe are testing `cardano-node` with peer sharing functionality ([#4019]).\\n\\nWe are working on _eclipse evasion_. We added new class of peers: big ledger\\npeers to the outbound governor, implemented tests and fixed found issues\\n([#4462]). We also made the information if a given peer plays the role of\\na big ledger peer to the mini-protocols. This will allow to modify\\nmini-protocol applications for such peers. As part of this functionality we\\nrefactored some core types in the network code which simplifies exposed API.\\n\\nTogether with Moritz Angerman we started to update `io-sim` to `ghc-9.6.1` (see\\n[#73]).\\n\\nWe merged a fix of configuration of accepted connections limit in\\n`cardano-node` (see [#4902]).\\n\\n\\n[#4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[#4462]: https://github.com/input-output-hk/ouroboros-network/pull/4462\\n[#4465]: https://github.com/input-output-hk/ouroboros-network/issues/4465\\n[#4664]: https://github.com/input-output-hk/cardano-node/pull/4664\\n[#73]: https://github.com/input-output-hk/io-sim/pull/73\\n[#4902]: https://github.com/input-output-hk/cardano-node/pull/4902"},{"id":"2023-03-17-crypto","metadata":{"permalink":"/2023-03-17-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-17-crypto.md","source":"@site/blog/2023-03-17-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-03-17T00:00:00.000Z","formattedDate":"March 17, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":1.255,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-03-17-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-03-21-network"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-03-17-hydra"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: RFP finished. Code ready for audit.\\n* cardano-base: BLS12-381\'s PR approved, only blocker is Windows\' CI. Preparing extensive testing strategy together with Plutus and Testing teams.\\n* KES agent: Working on a desing on how to use IO sim in order to allow for proper network simulation testing.\\n* Sidechains: Preparing proving system to use the curves needed for main-net PoC. \\n## Low level summary\\n### Mithril\\n* Merged [PR#783](https://github.com/input-output-hk/mithril/pull/783)\\n* RFP for crypto audit ready.\\n### cardano-base\\n* BLS12-381 branch approved [PR#266](https://github.com/input-output-hk/cardano-base/pull/266). Blocker is Windown\'s CI. Working on it\\n* Testing strategy for BLS bindings:\\n * Preparing test-vectors for Groth16, and simple BLS signatures\\n * Finding community projects to help write their use cases\\n * Designing AC, and expected tests for higher levels of development (Plutus team, E2E tests, etc)\\n* Wrote [blogpost](https://github.com/input-output-hk/blogpost_breaking_ed25519_vrf/blob/main/blog.md) on how using the same key for ed25519 and VRF completely breaks the security of both systems \\n### KES agent\\n* Started integration of sockets interface used in consensus\\n* Use that for de/ser\\n* Resolving problems with block memory in IOSim. Can\'t use withForeignPtr in IOSim\\n* Results in having to parametrise for IOSim in KES and DSIGN for testing\\n### Sidechains\\n* Prepared an API for proof generation in sidechains, with it\'s C API for integration with JVM languages.\\n* Design document and start interacting with researchers for concrete instantiation of SNARK-based ATMS.\\n* EdDSA over JubJub ready"},{"id":"2023-03-17-hydra","metadata":{"permalink":"/2023-03-17-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-17-hydra.md","source":"@site/blog/2023-03-17-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-03-17T00:00:00.000Z","formattedDate":"March 17, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.015,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-03-17-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2023-03-17-crypto"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-03-17-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has continued work on the mainnet compatibility of the\\nhydra-node. They added a golden test suite for `hydra-plutus` scripts, added\\nsome detection of `hydra-node` misconfiguration, established a limit of 100 ADA\\nper commit and other smaller tasks to prepare for a mainnet beta release.\\n\\nNext week there will be a small team workshop to push for demonstrating a Hydra\\nHead on the Cardano mainnet, ideally just in time for the monthly review\\nmeeting. See the hydra channels on the IOG Technical Community discord server\\nfor details.\\n\\n## What did the team achieve this week\\n\\n- Implement a 100 ADA hard-coded commit limit in the hydra-node\\n [#763](https://github.com/input-output-hk/hydra/pull/763)\\n- Pay back funds to faucet after smoke-test run\\n [#773](https://github.com/input-output-hk/hydra/pull/773)\\n- Setup custom github runner for smoke-tests on mainnet\\n [#775](https://github.com/input-output-hk/hydra/pull/775)\\n- Created golden tests to assure the script hash stays the same between\\n changes [#772](https://github.com/input-output-hk/hydra/pull/772)\\n- Removed hardcoded error codes in plutus scripts\\n [#768](https://github.com/input-output-hk/hydra/pull/768)\\n- Detect misconfiguration of a hydra-node given persistent state\\n [#767](https://github.com/input-output-hk/hydra/pull/767)\\n- Met with potential users for hydra-pay\\n- Prepared hydra workshop\\n\\n## What are the goals of next week\\n\\n- Hydra monthly meeting\\n- Open a multi-party head on mainnet\\n- Complete mainnet compatibility feature"},{"id":"2023-03-17-ledger","metadata":{"permalink":"/2023-03-17-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-17-ledger.md","source":"@site/blog/2023-03-17-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-03-17T00:00:00.000Z","formattedDate":"March 17, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.415,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-03-17-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-03-17-hydra"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-03-16-goedel"}},"content":"## High level summary\\n\\nWe made further progress on the conway ledger era.\\nIn particular, we expanded the ledger API significantly, including lots of governance features.\\nWe also made progress on the specification and corresponding work in the Haskell implementation.\\n\\nWe also continued to integrate the latest ledger packages into cardano node and addressed\\ntechnical debt.\\n\\n## Low level summary\\n\\n### Expanded ledger API\\n\\nThe ledger API was significantly expanded to include:\\n* a lot of protocol parameter support\\n* versioning support (type level ledger eras and protocol versions)\\n* auxiliary data support\\n* many new lenses\\n* support for witnesses\\n* support for conway governance\\n\\nSee [pull-3328].\\n\\n### Conway ledger rules\\n\\nWe have made progress on the formal ledger specification for the Conway era.\\nMoreover, the corresponding Haskell updates were also completed:\\n\\n* See [pull-3339]\\n* See [pull-3326]\\n* See [pull-3330]\\n\\n### Incremental SPO/DRep stake distribution computation\\n\\nWe have a working (and correct) proof of concept for how to use the incremental lambda calculus\\nto maintain several of the stake distributions incrementally.\\nFor the per-SPO distribution, this is a performance improvement.\\nFor the (conway) per-DRep distribution, this is will allow those who have delegated their votes\\nto a DRep to have time to react to any votes that they disapprove of.\\n(Sorry, no code to share just yet, more to come.)\\n\\n### Technical debt\\n\\n* Improved CBOR testing facilities [pull-3332]\\n* GitHub actions improvement [pull-3320]\\n* Move ToJSON orphans from cardano-node [pull-3323] [pull-3338]\\n* Minor OCert improvements [pull-3327]\\n* Remove duplication [pull-3341]\\n* Enforce unique elements in CBOR sets [pull-3331] \\n\\n[pull-3320]: https://github.com/input-output-hk/cardano-ledger/pull/3320\\n[pull-3323]: https://github.com/input-output-hk/cardano-ledger/pull/3323\\n[pull-3326]: https://github.com/input-output-hk/cardano-ledger/pull/3326\\n[pull-3327]: https://github.com/input-output-hk/cardano-ledger/pull/3327\\n[pull-3328]: https://github.com/input-output-hk/cardano-ledger/pull/3328\\n[pull-3330]: https://github.com/input-output-hk/cardano-ledger/pull/3330\\n[pull-3331]: https://github.com/input-output-hk/cardano-ledger/pull/3331\\n[pull-3332]: https://github.com/input-output-hk/cardano-ledger/pull/3332\\n[pull-3338]: https://github.com/input-output-hk/cardano-ledger/pull/3338\\n[pull-3339]: https://github.com/input-output-hk/cardano-ledger/pull/3339\\n[pull-3341]: https://github.com/input-output-hk/cardano-ledger/pull/3341"},{"id":"2023-03-16-goedel","metadata":{"permalink":"/2023-03-16-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-16-goedel.md","source":"@site/blog/2023-03-16-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-03-16T00:00:00.000Z","formattedDate":"March 16, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.55,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-03-16-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-03-17-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-03-10-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been working on drafts of two papers\\nimproving the deltaQ tutorial, consulting on performance design, and\\nthe final version of the Djed paper.\\n\\n## Details\\n\\n* Preparing draft of DeltaQSD algebra paper for ICE 2023\\n\\n* Successful outcome of Marlowe consultancy leading to substantial\\n improvement in performance\\n\\n* Preparing sections on the communication language and bisimulation\\n proofs for draft paper about verifying design refinements for\\n distributed system design\\n\\n* Camera ready version of Djed paper under preparation"},{"id":"2023-03-10-hydra","metadata":{"permalink":"/2023-03-10-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-10-hydra.md","source":"@site/blog/2023-03-10-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-03-10T00:00:00.000Z","formattedDate":"March 10, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.825,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-03-10-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-03-16-goedel"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-03-09-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team addressed issues with committing complex UTxOs into a\\nHydra Head, prepared the `hydra-node` to be run on mainnet (soon) and improved\\nthe test suite of the `hydra-plutus` scripts. The specification is constantly\\ngetting improved upon reviewer feedback on overleaf - this week the graphical\\nnotation was refined to be more transaction-focused.\\n\\n## What did the team achieve this week\\n\\n- Clarified “bug” of committing UTxOs with reference scripts to a Hydra head [#737](https://github.com/input-output-hk/hydra/issues/737)\\n- Prepare usage of `hydra-node` on mainnet by updating command line options [#715](https://github.com/input-output-hk/hydra/pull/715)\\n- Improved our mutation test suite to all expected errors [#705](https://github.com/input-output-hk/hydra/issues/705)\\n- Re-opened our persistent hydraw demo head on `preprod` using version `0.9.0`\\n- Updated on-chain graphs to be more transaction-focused in the specification\\n\\n## What are the goals of next week\\n\\n- Complete mainnet compatibility feature\\n- Prepare the Hydra workshop\\n- Address all todo\u2019s in the Hydra specification\\n- Unblock the auctions project with “commit from script” a solution"},{"id":"2023-03-09-mithril","metadata":{"permalink":"/2023-03-09-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-09-mithril.md","source":"@site/blog/2023-03-09-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-03-09T00:00:00.000Z","formattedDate":"March 9, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.42,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-03-09-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-03-10-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-03-08-consensus"}},"content":"## High level overview\\nThe Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano `mainnet` and computes the stake distribution with the optimized unreleased Cardano CLI command.\\n\\nFinally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.\\n\\n## Low level overview\\n- Worked on the epic that implements eras behavior switch [#707](https://github.com/input-output-hk/mithril/issues/707):\\n - Completed the deployment of the era behavior switch to the test networks [#752](https://github.com/input-output-hk/mithril/issues/752)\\n - Completed the enhancement of datum generation for era markers [#786](https://github.com/input-output-hk/mithril/issues/786)\\n - Worked on handling the API version with an era switch [#727](https://github.com/input-output-hk/mithril/issues/727)\\n- Worked on the epic that implements a relational store in the aggregator [#779](https://github.com/input-output-hk/mithril/issues/779):\\n - Worked on the migration/adaptation of the `stake_pool` table [#787](https://github.com/input-output-hk/mithril/issues/787)\\n- Completed the refactoring of errors in the signer and aggregator state machines [#665](https://github.com/input-output-hk/mithril/issues/665)\\n- Worked on testing Mithril with a `mainnet` Cardano network [#777](https://github.com/input-output-hk/mithril/issues/777)\\n- Worked on fixing bugs with the Docker client image:\\n - Fixed a bug that made the Docker client container crash at startup [#769](https://github.com/input-output-hk/mithril/issues/769)\\n - Fixed a bug that prevented the restoration of a snapshot with a Docker client [#791](https://github.com/input-output-hk/mithril/issues/791)\\n - Worked on testing the Docker client in the `Mithril Client multi-platform test` workflow [#794](https://github.com/input-output-hk/mithril/issues/794)"},{"id":"2023-03-08-consensus","metadata":{"permalink":"/2023-03-08-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-08-consensus.md","source":"@site/blog/2023-03-08-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-03-08T00:00:00.000Z","formattedDate":"March 8, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":2.46,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-03-08-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-03-09-mithril"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-03-08-node-cli-api"}},"content":"## High level summary\\n\\nThe Consensus team continued working on refactoring and improving the UTxO-HD\\nprototype, and introducing improvements to the `lmdb` related packages. In\\nparticular we identified an opportunity to gain performance by handling locks in\\na more optimal way.\\n\\nOn the Genesis front, we sketched a mitigation for an issue that `PNSol` and\\nResearchers caught. We also came op with a road map for not only testing the\\nGenesis prototypes, but also for enriching the tests we already have.\\n\\nRegarding technical debt, next to some minor improvements, we created\\ncomponent-level micro-benchmarks for adding transactions to the mempool. The\\nresults of these benchmarks will be published in the `ouroboros-consensus` [web\\npage][oc-web-page].\\n\\nWe also finished moving the Consensus documentation to the `ouroboros-consensus`\\nrepository, released `ouroboros-consensus` `0.3.0.0`, and reduced the time\\nGitHub actions take in `ouroboros-network`.\\n\\n## Workstreams\\n\\n### UTxO HD Prototype\\n\\nWe continued working on refactoring and improving the UTxO-HD prototype. As a\\nresult of the first round of sytem-level benchmarks, we identified an\\nopportunity to optimise the way we handle locks to improve performance\\n([#4393][issue-4393]).\\n\\nAlso, we introduced several improvements to the `lmdb` related packages:\\n- [New tests][pull-19] for read-only transaction handles.\\n- [New functions][pull-18] and [data types][pull-13].\\n- [Updates][pull-11] to support improved type safety and smaller constraints in\\n the UTxO HD prototype.\\n- Windows and MacOS [CI support][pull-8].\\n\\n### Genesis\\n\\nWe sketched out a mitigation of the issue that `PNSol` and Researchers caught in\\nthe Genesis design.\\n\\nWe came up with a road map for testing the Genesis prototypes, including early\\nmilestones that are applicable to today\'s master branch, ie tests that are\\nuseful before Genesis, and that will be nicely enriched when we do add Genesis.\\n\\nWe developed the aforementioned tests, specifically a `QuickCheck` generator for\\nthe Honest leader schedule and one as-aggressive-as-possible Adversarial\\nleader schedule that together satisfy the Praos properties that the Consensus\\ndesign takes as invariants.\\n\\nWe investigated why the improved `ChainDB` queueing implementation behaves\\ndifferently in the baseline compared to the prototype, and we are close to\\nhaving a full picture of how the Consensus components interact during bulk sync.\\n\\n### Technical debt\\n\\nWe [created][pull-4400] component-level micro-benchmarks for adding transactions\\nto the mempool. We plan on extending this to more mempool actions and different\\ntypes of blocks. We [store][pull-4422] the benchmark data to make it available\\nto the GitHub action that [publishes][pull-12] the benchmarks results.\\n\\nOther minor improvements include:\\n\\n- [Removal][pull-4429] of `Test.Util.Classify` in favour of `Test.StateMachine.Labelling`.\\n- [Addition][pull-4423] of `-Wunused-packages` to the default `ghc-options` for Consensus\\n packages.\\n\\n### Fostering collaboration\\n\\nWe finished moving the Consensus documentation [from][pull-4374]\\n`ouroboros-network` [to][pull-8] `ouroboros-consensus`, in preparation for\\nmigrating the code to the latter repository.\\n\\n### Support\\n\\nWe [released][pull-4412] ouroboros-consensus 0.3.0.0.\\n\\nWe [reduced][pull-4421] the load in the `ouroboros-network` GitHub actions,\\nthereby reducing the time CI jobs take.\\n\\n[issue-4393]: https://github.com/input-output-hk/ouroboros-network/issues/4393\\n[pull-19]: https://github.com/input-output-hk/lmdb-simple/pull/19\\n[pull-18]: https://github.com/input-output-hk/lmdb-simple/pull/18\\n[pull-13]: https://github.com/input-output-hk/lmdb-simple/pull/13\\n[pull-11]: https://github.com/input-output-hk/lmdb-simple/pull/11\\n[pull-8]: https://github.com/input-output-hk/haskell-lmdb/pull/8\\n[pull-4400]: https://github.com/input-output-hk/ouroboros-network/pull/4400\\n[pull-4422]: https://github.com/input-output-hk/ouroboros-network/pull/4422\\n[pull-12]: https://github.com/input-output-hk/ouroboros-consensus/pull/12\\n[pull-4429]: https://github.com/input-output-hk/ouroboros-network/pull/4429\\n[pull-4423]: https://github.com/input-output-hk/ouroboros-network/pull/4423\\n[pull-4374]: https://github.com/input-output-hk/ouroboros-network/pull/4374\\n[pull-8]: https://github.com/input-output-hk/ouroboros-consensus/pull/8\\n[pull-4412]: https://github.com/input-output-hk/ouroboros-network/pull/4412\\n[pull-4421]: https://github.com/input-output-hk/ouroboros-network/pull/4421\\n[oc-web-page]: https://ouroboros-consensus.cardano.intersectmbo.org/"},{"id":"2023-03-08-node-cli-api","metadata":{"permalink":"/2023-03-08-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-08-node-cli-api.md","source":"@site/blog/2023-03-08-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-03-08T00:00:00.000Z","formattedDate":"March 8, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":0.795,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-03-08-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-03-08-consensus"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-03-08-performance-and-tracing"}},"content":"# 2023-03-08 - 2023-03-21\\n\\n## High level summary\\n\\nGeneral bug fixes and some refactoring \\n## Completed\\n\\n### docs\\n\\n### CI & project maintenance\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Remove error calls in Cardano.CLI.Shelley.Run.Transaction](https://github.com/input-output-hk/cardano-node/pull/4958) \\n- [Detect invalid counter and certificate](https://github.com/input-output-hk/cardano-node/pull/4880) \\n\\n### cardano-api\\n- [Add missing imports](https://github.com/input-output-hk/cardano-node/pull/5003) \\n- [Add LedgerStateBabbage and LedgerStateConway pattern synonyms](https://github.com/input-output-hk/cardano-node/pull/5001) \\n- [Remove unnecessary functions](https://github.com/input-output-hk/cardano-node/pull/4967) \\n- [Remove duplicate scripts when building transaction body for Mary, Alonzo and Babbage](https://github.com/input-output-hk/cardano-node/pull/4953) \\n- [Reduce number of calls to toLedgerPParams](https://github.com/input-output-hk/cardano-node/pull/4903) \\n- [Remove simple script distinction](https://github.com/input-output-hk/cardano-node/pull/4763) \\n- [Add ToJSON/FromJSON instances for ChainPoint](https://github.com/input-output-hk/cardano-node/pull/4686) \\n- [Derive Eq instance for AcquiringFailure](https://github.com/input-output-hk/cardano-node/pull/4683) \\n- [Export `fromShelleyBasedScript` from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4682) \\n- [Remove unnecessary validation of Data](https://github.com/input-output-hk/cardano-node/pull/4344) \\n- [Remove hint of \\"string\\" support for ScriptData](https://github.com/input-output-hk/cardano-node/pull/3775) \\n\\n### cardano-node\\n- [Conway hard forks on prot-ver 9](https://github.com/input-output-hk/cardano-node/pull/4988) \\n- [Reinstate -Werror for cardano-node and fix errors](https://github.com/input-output-hk/cardano-node/pull/4968) \\n- [Take all dependencies from Hackage or CHaP](https://github.com/input-output-hk/cardano-node/pull/4921) \\n- [Less verbose node-to-client and node-to-node version logging](https://github.com/input-output-hk/cardano-node/pull/4911) \\n- [Get AcceptedConnectionsLimit from the configuration](https://github.com/input-output-hk/cardano-node/pull/4902) \\n\\n### cardano-testnet\\n- [fix cardano-testnet Babbage genesis.json](https://github.com/input-output-hk/cardano-node/pull/4729)"},{"id":"2023-03-08-performance-and-tracing","metadata":{"permalink":"/2023-03-08-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-08-performance-and-tracing.md","source":"@site/blog/2023-03-08-performance-and-tracing.md","title":"Performance & tracing update","description":"* Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.","date":"2023-03-08T00:00:00.000Z","formattedDate":"March 8, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":1.805,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-03-08-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-03-08-node-cli-api"},"nextItem":{"title":"Crypto Team Update","permalink":"/2023-03-03-crypto"}},"content":"* Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.\\n* New tracing: Backwards compatibility with legacy tracer nomenclature is being implemented to smoothe the transition for end users.\\n* Analysis pipeline: A major refinement of benchmarking metrics has been realized, along with a structural improvementents regarding metrics denomination.\\n* Open Sourcing: Work on going live with our benchmarking data has begun, as well as creating an API demo and documentation.\\n* Nomad backend: The backend was adapted to a major refactoring in workbench and is being equipped with a nomad-exec based task driver.\\n\\n\\n# Performance\\n\\n### 1.35.6 release\\nBenchmarking the second release candidate for 1.35.6 could again attest to a perfectly clean bill of health.\\n\\n### Analysis pipeline\\nOur analysis pipeline has seen an introduction of additional metrics, especially when focusing on the block producing node. They allow us to better\\ndifferentiate the timing of ledger ticking and mempool snapshotting in the forging loop - a feature that promises much deeper insight into UTxO-HD performance.\\nAdditionally, a restructuring of metrics names has been undertaken along with improvements in their data dictionary; a measure that will make benchmarking\\ndata more easily accessible.\\n\\n### Open Sourcing\\nAs a prerequisite for going live with our benchmarking data, we\'re currently working on consolidation of existing analyses, such as to provide a common foundation when accessing them externally. Additionally, we\'ve begun working on a small visualization demo and interactive API documentation. Those will enable \\nthird parties to make use of that data much more easily, by having reliable guidelines and a working example.\\n\\n# Tracing\\nThe new tracing system is being outfitted with a comprehensive mapping of its structure to the legacy tracer nomenclature. This feature will make\\nthe switch to the new system as smooth as possible for end users, allowing them to gradually adapt their tooling without breaking any functionality in the process.\\n\\n# Infrastructure\\n\\n### Nomad backend\\nThe Nomad backend was adapted to the latest major refactoring in workbench. Work was done on making stateful Nomad clients more autonomous, which will greatly facilitate any automation building on that backend. A task driver based on nomad-exec is currently being implemented."},{"id":"2023-03-03-crypto","metadata":{"permalink":"/2023-03-03-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-03-crypto.md","source":"@site/blog/2023-03-03-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-03-03T00:00:00.000Z","formattedDate":"March 3, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":1.155,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-03-03-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-03-08-performance-and-tracing"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-03-03-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.\\n* cardano-base: BLS branch is now ready for review. We are workign forward its merge. \\n* KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.\\n* Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs\\n## Low level summary\\n### Mithril\\n* Bumped to version [0.2.0](https://crates.io/crates/kes-summed-ed25519/0.2.0) the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using `mlock`.\\n* Opened [PR#783](https://github.com/input-output-hk/mithril/pull/783) to update dependency\\n* Improved testing for batch opening of mtree, [PR#773](https://github.com/input-output-hk/mithril/pull/773)\\n* Improved testing for batch verification of STM sigs [PR#774](https://github.com/input-output-hk/mithril/pull/774)\\n* RFP for crypto audit almost ready.\\n### cardano-base\\n* BLS12-381 branch finally ready for review [PR#266](https://github.com/input-output-hk/cardano-base/pull/266)\\n### KES agent\\nTeam off for one week. Other progress:\\n- Learning about raw direct-bearer abstraction. An interface for sockets in consensus.\\n- use that for direct ser/deser\\n- written those syntaxes for ouroboros (coming PR)\\n- the kes agent will depend on that. \\t\\n### Sidechains\\nProgress with familiarisation of Halo2 library to write circuits."},{"id":"2023-03-03-goedel","metadata":{"permalink":"/2023-03-03-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-03-goedel.md","source":"@site/blog/2023-03-03-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-03-03T00:00:00.000Z","formattedDate":"March 3, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.815,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-03-03-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2023-03-03-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-03-03-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been working on drafts of two papers and one\\ntechnical report, improving the deltaQ tutorial, consulting on\\nperformance design, and the Djed paper has been accepted for\\npublication.\\n\\n## Details\\n\\n* Preparing draft of DeltaQSD algebra paper for FORTE 2023\\n\\n* Extending the technical report on which the above paper is based\\n\\n* Consulting with an external company on performance engineering of Plutus contracts\\n\\n* Planning improvements and collecting material for the deltaQ\\n tutorial based on experience with systems that manage risk at\\n multiple timescales\\n\\n* Preparing sections on the communication language and idempontency\\n laws for draft paper about verifying design refinements for\\n distributed system design\\n\\n* Studying Cardano chain sync protocol\\n\\n* \\"Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin\\n Protocol\\" has been accepted for publication at IEEE ICBC 2023"},{"id":"2023-03-03-hydra","metadata":{"permalink":"/2023-03-03-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-03-hydra.md","source":"@site/blog/2023-03-03-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-03-03T00:00:00.000Z","formattedDate":"March 3, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.19,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-03-03-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-03-03-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-03-03-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team released version\\n[0.9.0](https://github.com/input-output-hk/hydra/releases/tag/0.9.0) - a version\\nof the `hydra-node` with fully specified behavior of on-chain scripts and\\noff-chain head-logic, decreased costs for opening/closing a Head and scalable\\ncontestation deadline semantics. Check out the full release notes for details.\\n\\nFurthermore, they published the [monthly\\nreport](https://hydra.family/head-protocol/monthly/2023-03) of the Hydra project\\nand conducted a review meeting with an increasingly wider audience. The team\\nplans to extend invitations through the new Hydra\\n[#announcements](https://discord.gg/Bwdy2jNdm2) discord channel for the next\\nmonths, stay tuned!\\n\\n## What did the team achieve this week\\n\\n- Monthly review meeting with report published [on website](https://hydra.family/head-protocol/monthly/2023-03)\\n- Fixed smoke tests [#726](https://github.com/input-output-hk/hydra/pull/726)\\n- Reduced the cost of opening/closing a Head (error codes [#748](https://github.com/input-output-hk/hydra/pull/748) + head reference script [#701](https://github.com/input-output-hk/hydra/pull/701))\\n- Released version [0.9.0](https://github.com/input-output-hk/hydra/releases/tag/0.9.0)\\n- Conducted a first experiment on mainnet compatibility [#713](https://github.com/input-output-hk/hydra/issues/713)\\n- New discord category with [#announcements](https://discord.gg/Bwdy2jNdm2) channel\\n- Received a demo about the Hydra for Voting project\\n- Lightning talk on mutation-based testing (to be shared)\\n- New [themes view](https://github.com/orgs/input-output-hk/projects/21/views/26) in on our roadmap and some rearranging as we align it with high-level objectives\\n- Clarified things with researchers, but mostly identified action items for them\\n\\n## What are the goals of next week\\n\\n- Redraw transaction graphs and address TODOs specification\\n- Run hydraw with 0.9.0 on preprod\\n- Make smoke tests on mainnet possible\\n- Groom the explorer item\\n- Unblock the auctions projecth with “commit from script” a solution"},{"id":"2023-03-03-ledger","metadata":{"permalink":"/2023-03-03-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-03-ledger.md","source":"@site/blog/2023-03-03-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-03-03T00:00:00.000Z","formattedDate":"March 3, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.57,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-03-03-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-03-03-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/2023-03-02-network"}},"content":"## High level summary\\n\\nWe have focused the last two weeks on CIP-1694, integration of the last several months of ledger\\nwork into consensus and node, and testing infrastrutcture that we will use in the conway ledger era.\\n\\n## Low level summary\\n\\n### Conway rules\\n\\nWe made a major update to the conway era so that the implementation is now in sync with the spec\\nwith respect to the ratification and enactment logic.\\n\\nSee the notes in [pull-3291] for more details.\\n\\n### Constraint based generators\\n\\nThis week we hit a major milestone in our efforts to build out better property based testing\\nsupport for the main ledger properties.\\nThe new constraint based generators can now generate full ledger states with what is probably\\nvery close to the real constraints (if anything, it is under constrained).\\nNext we will work on generating a transaction in the context of a ledger state, which would allow\\nus to actually start using these generators for real tests.\\n\\nSee [pull-3219].\\n\\n### Preparing a release, now with proper versioning\\n\\nAfter quite some time, we are ready to release a version of ledger that will work with a new\\nversion of consensus, using CHaPs.\\n\\nSee [pull-3308].\\n\\n### Technical debt\\n\\n* We cleaned up the redeemer serialization code (to prevent future mistakes). See [pull-3269].\\n* We added a note to the Alonzo spec, specifying that the transaction inputs are\\n lexicographically ordered in the Plutus script context. See [pull-3306].\\n* We fixed a problem with the address deserialiazation\\n (we mistakenly fixed a bug in the Babbage era which cannot be fixed until Conway).\\n See [pull-3307].\\n* We fixed a problem with our nix build. See [pull-3311].\\n* We fixed a problem with our `NoThunks` tests. See [pull-3310].\\n* We improved our nightly tests. See [pull-3316].\\n\\n[pull-3219]: https://github.com/input-output-hk/cardano-ledger/pull/3219\\n[pull-3269]: https://github.com/input-output-hk/cardano-ledger/pull/3269\\n[pull-3291]: https://github.com/input-output-hk/cardano-ledger/pull/3291\\n[pull-3306]: https://github.com/input-output-hk/cardano-ledger/pull/3306\\n[pull-3307]: https://github.com/input-output-hk/cardano-ledger/pull/3307\\n[pull-3308]: https://github.com/input-output-hk/cardano-ledger/pull/3308\\n[pull-3310]: https://github.com/input-output-hk/cardano-ledger/pull/3310\\n[pull-3311]: https://github.com/input-output-hk/cardano-ledger/pull/3311\\n[pull-3316]: https://github.com/input-output-hk/cardano-ledger/pull/3316"},{"id":"2023-03-02-network","metadata":{"permalink":"/2023-03-02-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-02-network.md","source":"@site/blog/2023-03-02-network.md","title":"Network Team Update","description":"High level summary","date":"2023-03-02T00:00:00.000Z","formattedDate":"March 2, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.85,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-03-02-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-03-03-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-02-24-hydra"}},"content":"## High level summary\\n\\nIn the current sprint the networking team focused on fixing bugs and pushing\\nforward implementation of eclipse evasion. We also found a bug in our\\nsimulation testing setup (in integration of test node). We also overviewed the\\nwork on extending handshake protocol which is delivered by Galois Inc.\\n\\nWe published `ouroboros-network-0.4.0.1` and\\n`ouroboros-network-protocols-0.3.0.0` to [CHaP][PR #147].\\n\\nWe also fixed a bug in `cardano-node` which results in not being able to\\nconfigure inbound connection limits, see [PR #4902].\\n\\nTogether with Karl Knutsson (CF) we realised an issue in `cardano-cli`: it\'s\\nvalidation of DNS names, IP address & ports when registering a stake pool\\nshould be more strict to protect against common mistakes which we identified on\\nthe chain. See [issue #4929].\\n\\n## Detailed work log\\n\\nIn [PR #4385] we fixed two bugs in peer state actions. First one results in\\na busy loop if demotion from hot to warm times outs. This busy loop is\\neventually exited when mux exits (we reported this in our previous report).\\nThis fix made it to `1.35.6` release as well.\\n\\nIn addition the [PR #4385] also fixes another bug which results in `hot -> warm\\n-> hot` demotion / promotion busy loop.\\n\\nThe [PR #4385] also fixed a bug in a node only used in simulation which\\nresulted in not using `chain-sync` or `block-fetch` mini-protocols. In the\\nreview process, we realised that the header-body split in the simulated node\\nrequires further work (see [PR #4419], which is under review).\\n\\nThe [PR #4385] also extend our generators, which together with the above fix,\\ncover the `hot -> warm -> hot` demotion / promotion busy loop.\\n\\nIn [PR #4419] we introduce a `ChainDB` for our simulation node, which plays\\nsimilar role to `ChainDB` in the `ouroboros-consensus`: a persistent (across\\nsimulated restarts) store of blocks which does chain selection. This ensures\\nthat the simulated node is using `block-fetch` to download blocks announced by\\n`chain-sync` mini-protocol.\\n\\nWe also made progress with reviewing [PR #4019] - peer sharing.\\n\\nWe also fixed [issue #4370] - a connection manager test failure, see [PR #4384].\\n\\n[PR #147]: https://github.com/input-output-hk/cardano-haskell-packages/pull/147\\n[PR #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[PR #4384]: https://github.com/input-output-hk/ouroboros-network/pull/4384\\n[PR #4385]: https://github.com/input-output-hk/ouroboros-network/pull/4385\\n[PR #4419]: https://github.com/input-output-hk/ouroboros-network/pull/4419\\n[PR #4902]: https://github.com/input-output-hk/cardano-node/pull/4902\\n[issue #4370]: https://github.com/input-output-hk/ouroboros-network/issues/4370\\n[issue #4929]: https://github.com/input-output-hk/cardano-node/issues/4929"},{"id":"2023-02-24-hydra","metadata":{"permalink":"/2023-02-24-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-24-hydra.md","source":"@site/blog/2023-02-24-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-02-24T00:00:00.000Z","formattedDate":"February 24, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.93,"hasTruncateMarker":false,"authors":[{"name":"Franco Testagrossa","title":"Hydra Software Engineer","url":"https://github.com/ffakenz","imageURL":"https://github.com/ffakenz.png","key":"ffakenz"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-02-24-hydra","authors":"ffakenz","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-03-02-network"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-02-23-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team continue closing many gaps and aligning the\\nimplementation with the specification. More over, they have groomed a plan to\\nmake Hydra Mainnet compatible. Also, they continue moving forward with the\\ninternal auditing and have published some auditing guidelines to receive\\ncontributions from the community.\\n\\n## What did the team achieve this week\\n\\n- Completed [#452](https://github.com/input-output-hk/hydra/issues/452) (what is\\n remaining in there)\\n- Aligned the Head protocol logic implementation with the specification\\n- Completed full minting policy implementation and spec\\n [#720](https://github.com/input-output-hk/hydra/issues/720)\\n- Clarified message authentication with researchers\\n- Groomed what is left to do for Mainnet compatibility\\n [#713](https://github.com/input-output-hk/hydra/issues/713) and drafted a\\n 0.10.0 version\\n- Added a tutorial by [@perturbing](https://github.com/perturbing/) to the\\n website [LINK](https://hydra.family/head-protocol/docs/tutorial/)\\n- Published auditing guidelines\\n [LINK](https://hydra.family/head-protocol/audit-guidelines)\\n- Made hydra-node work for macos\\n [#746](https://github.com/input-output-hk/hydra/issues/746) and added support\\n for building on aarch64\\n [#673](https://github.com/input-output-hk/hydra/issues/673)\\n- Met with a potential customer of Hydra for Payments\\n\\n## What are the goals of next week\\n\\n- Have the monthly review meeting incl. the report\\n- Have smoke tests fixed and running regularly\\n- Release 0.9.0 with updated scripts\\n- Redraw transaction graphs for specification"},{"id":"2023-02-23-mithril","metadata":{"permalink":"/2023-02-23-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-23-mithril.md","source":"@site/blog/2023-02-23-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-02-23T00:00:00.000Z","formattedDate":"February 23, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.47,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-02-23-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-02-24-hydra"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-02-23-performance-and-tracing"}},"content":"## High level overview\\nThe Mithril team released a new [`2306.0`](https://github.com/input-output-hk/mithril/releases/tag/2306.0) distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes\u2019 CLI that allows generating and signing an era marker\u2019s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.\\n\\n## Low level overview\\n- Released the new distribution [`2306.0`](https://github.com/input-output-hk/mithril/releases/tag/2306.0)\\n- Completed the epic that implements signer versions deployment monitoring [#718](https://github.com/input-output-hk/mithril/issues/718):\\n - Completed the implementation an event producer/consumer via channel [#738](https://github.com/input-output-hk/mithril/issues/738)\\n - Completed the creation of a database and its configuration to save the events on the consumer side [#740](https://github.com/input-output-hk/mithril/issues/740)\\n - Completed the creation of events and sending them on the channel on the producer side [#741](https://github.com/input-output-hk/mithril/issues/741)\\n - Completed the creation of the signer registration event [#742](https://github.com/input-output-hk/mithril/issues/742)\\n - Completed the creation a query to extract the node versions stakes distribution [#743](https://github.com/input-output-hk/mithril/issues/743)\\n- Worked on the epic that implements eras behavior switch [#707](https://github.com/input-output-hk/mithril/issues/707):\\n - Completed the loading of era reader adapters from config in the signer and the aggregator [#732](https://github.com/input-output-hk/mithril/issues/732)\\n - Completed the implementation of an era cli command in the aggregator [#755](https://github.com/input-output-hk/mithril/issues/755)\\n - Completed the implementation of a dynamic matrix of cases in CI end to end tests [#760](https://github.com/input-output-hk/mithril/issues/760)\\n- Fixed some bugs:\\n - Fixed the unsupported `unixepoch()` function [#757](https://github.com/input-output-hk/mithril/issues/757)\\n - Fixed the problem that prevented some signers from signing on the `testing-preview` network [#730](https://github.com/input-output-hk/mithril/issues/730)\\n - Update SQLite version to `3.40` in aggregator infrastructure [#765](https://github.com/input-output-hk/mithril/issues/765)"},{"id":"2023-02-23-performance-and-tracing","metadata":{"permalink":"/2023-02-23-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-23-performance-and-tracing.md","source":"@site/blog/2023-02-23-performance-and-tracing.md","title":"Performance & tracing update","description":"* SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.","date":"2023-02-23T00:00:00.000Z","formattedDate":"February 23, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.245,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-02-23-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-02-23-mithril"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-02-22-consensus"}},"content":"* SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.\\n* Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.\\n* UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.\\n* New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.\\n* Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.\\n* Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.\\n\\n# Performance\\n\\n### SECP\\n1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.\\n2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.\\n3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking. \\n\\n### UTxO-HD\\n1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.\\n2. We\'re currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.\\n\\n### 1.35.6 release\\nBenchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.\\n\\n# Tracing\\nWork on the new tracing system\'s introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.\\n\\n# Infrastructure\\n\\n### Nomad backend\\n1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.\\n2. Locality assumptions were removed and job monitoring was refactored.\\n3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.\\n4. We\'re currently evaluating different options for genesis distribution in said cluster.\\n\\n### NixOps backend\\nThe NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery."},{"id":"2023-02-22-consensus","metadata":{"permalink":"/2023-02-22-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-22-consensus.md","source":"@site/blog/2023-02-22-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-02-22T00:00:00.000Z","formattedDate":"February 22, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":2.45,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-02-22-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-02-23-performance-and-tracing"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-02-22-node-cli-api"}},"content":"## High level summary\\n\\nDuring the past two weeks we got the results from the system level benchmarks\\nfor UTxO HD. They showed a substantial performance regression, so we spent some\\ntime analyzing the results. We found out the frequency at which ledger snapshots\\nwere taken was too high, so we requested the benchmarking team a new run with a\\nmore realistic snapshotting policy. We continued refactoring and improving the\\nprototype, and we released UTxO-HD related packages to CHaP.\\n\\nWe met with IOG researchers and networking specialists to discuss the Genesis\\ndesign, which was well received. We continued working on testing and\\nbenchmarking different Genesis prototypes.\\n\\nWe are also working on solving a test failure related to iterators. This work\\nderived in several improvements such as better documentation, a framework for\\nwriting unit (and regression) tests, and the possibility of debugging\\n`QuickCheck` counter examples in the REPL.\\n\\nFinally, we released `ouroboros-consensus` 0.2.0.0 and\\n`ouroboros-consensus-cardano` 0.3.0.0 to CHaP\\n\\n## Workstreams \\n\\n### UTxO HD Prototype \\n\\nWe got the results of the first system level benchmarks for UTxO HD. They seemed\\nto indicate a significant regression in performance. After looking into the\\nbenchmark logs we found that the benchmark runs took ledger state snapshots too\\noften, due to the default snapshotting policy depending on `k`, and `k` being so\\nsmall in the benchmark runs. Therefore, the next step is to re-run the\\nbenchmarks with a snapshotting policy that more closely resembles the one from\\nmainnet.\\n\\nAt the same time, we continued refactoring and cleaning up the prototype. \\n\\nAlso, we prepared the `anti-diff` packages (`fingertree-rm`, `diff-containers`,\\n`simple-semigroupoids`) and the `lmdb` related packages (`cardano-lmdb` and\\n`cardano-lmdb-simple`) to [CHaP][chap].\\n\\n### Genesis\\n\\nThe Genesis design was presented to the IOG researchers and Peter Thompson from\\nNSol. It was well received. They pointed out one blindspot, but we think it\'ll\\nbe relatively simple to mitigate.\\n\\nIn parallel, we continued developing test and benchmarks for the Genesis\\nprototypes. I particular we tested and implemented a potential fix for\\n[increased ChainDB dequeue timings][increased-dequeue-timings], which partly\\nbehaved as we expected, but still needs further investigation. Also we obtained\\n[new benchmarking data][new-bench-data] for the prototype.\\n\\n### Technical debt\\n\\nRelated to [#4183][pull-4183], we developed a [DSL][pull-4379] for specifying\\n`ChainDB` unit tests. This will allow us to better understand the\\ncounter-examples returned by QuickCheck tests, and to write [regression\\ntests][pull-4383] for them. Also, we [added a module][pull-4358] to enable\\nQuickCheck counter-examples to be run on the REPL, allowing for faster debugging\\nfeedback. Also, we improved the documentation related to followers\\n([#4372][pull-4372]).\\n\\nWe are also working on a design for optimizing the way we handle blocks from the\\nfuture.\\n\\n### Support\\n\\nWe released `ouroboros-consensus` 0.2.0.0 and `ouroboros-consensus-cardano`\\n0.3.0.0 to CHaP. Remember that we decided to split the packages related to\\nConsensus into two bundles, one with the core functionality, Cardano-agnostic\\ncode, and another bundle with instantiations specific to Cardano.\\n\\n[new-bench-data]: https://github.com/input-output-hk/ouroboros-network/issues/4037#issuecomment-1434745031\\n[increased-dequeue-timings]: https://github.com/input-output-hk/ouroboros-network/issues/4037#issuecomment-1439708022\\n[chap]: https://github.com/input-output-hk/cardano-haskell-packages\\n[pull-4358]: https://github.com/input-output-hk/ouroboros-network/pull/4358\\n[pull-4183]: https://github.com/input-output-hk/ouroboros-network/issues/4183\\n[pull-4372]: https://github.com/input-output-hk/ouroboros-network/pull/4372\\n[pull-4379]: https://github.com/input-output-hk/ouroboros-network/pull/4379\\n[pull-4383]: https://github.com/input-output-hk/ouroboros-network/pull/4383"},{"id":"2023-02-22-node-cli-api","metadata":{"permalink":"/2023-02-22-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-22-node-cli-api.md","source":"@site/blog/2023-02-22-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-02-22T00:00:00.000Z","formattedDate":"February 22, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.385,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-02-22-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-02-22-consensus"},"nextItem":{"title":"DB-sync Team Update","permalink":"/2023-02-21-db-sync"}},"content":"# 2023-02-22 - 2023-03-07\\n\\n## High level summary\\n\\nGeneral bug fixes \\n\\n## Completed\\n\\n### docs\\n- [Fix some markdown links](https://github.com/input-output-hk/cardano-node/pull/4882)\\n- [Update changelog with PR4788 changes](https://github.com/input-output-hk/cardano-node/pull/4881)\\n\\n### CI & project maintenance\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Fix bug in hash computation in cardano-cli genesis create-cardano](https://github.com/input-output-hk/cardano-node/pull/4761)\\n- [Cleanup exports of cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/4636)\\n- [BUGFIX] - [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Export SubmitResult from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4753)\\n\\n### cardano-api\\n- [Remove pattern Tx](https://github.com/input-output-hk/cardano-node/pull/4901)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n\\n### cardano-testnet\\n\\n## In Progress\\n\\n## Documentation\\n- [Fix path to mkfiles.sh script in documentation](https://github.com/input-output-hk/cardano-node/pull/4949)\\n\\n## CI & project mainteance\\n- [New build complete job](https://github.com/input-output-hk/cardano-node/pull/4932)\\n- [Update ouroboros-network](https://github.com/input-output-hk/cardano-node/pull/4764)\\n\\n### cardano-cli\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n- [Read network ID from environment](https://github.com/input-output-hk/cardano-node/pull/4666)\\n- [CLI option to append additional signatures to a transactions](https://github.com/input-output-hk/cardano-node/pull/4647)\\n- [Cardano ping](https://github.com/input-output-hk/cardano-node/pull/4664)\\n- [Better error message for query utxo on oops](https://github.com/input-output-hk/cardano-node/pull/4777)\\n- [New --node-socket-path cli option](https://github.com/input-output-hk/cardano-node/pull/4910)\\n- [Fix qKesKesKeyExpiry to not always be null](https://github.com/input-output-hk/cardano-node/pull/4909)\\n- [Detect invalid counter and certificate](https://github.com/input-output-hk/cardano-node/pull/4880)\\n- [Straight line code for tx commands](https://github.com/input-output-hk/cardano-node/pull/4823)\\n- [New cardano-cli ping command.](https://github.com/input-output-hk/cardano-node/pull/4664)\\n- [Move cardano-ping from ouroboros-network to cardano-node project](https://github.com/input-output-hk/cardano-node/pull/4655)\\n\\n### cardano-api\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Remove simple script distinction](https://github.com/input-output-hk/cardano-node/pull/4763)\\n- [Combinators for TxBodyCon\u017btent and related types](https://github.com/input-output-hk/cardano-node/pull/4941)\\n- [Reduce number of calls to toLedgerPParams](https://github.com/input-output-hk/cardano-node/pull/4903)\\n- [Better error message for query utxo without oops 2](https://github.com/input-output-hk/cardano-node/pull/4825)\\n\\n### cardano-node\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)\\n- [Less verbose node-to-client and node-to-node version logging](https://github.com/input-output-hk/cardano-node/pull/4911)\\n\\n### cardano-testnet\\n- [Use Haskell variables for passing values](https://github.com/input-output-hk/cardano-node/pull/4845)\\n- [Re-enable kes-period-info test](https://github.com/input-output-hk/cardano-node/pull/4879)\\n- [Transaction debug script command](https://github.com/input-output-hk/cardano-node/pull/3783)"},{"id":"2023-02-21-db-sync","metadata":{"permalink":"/2023-02-21-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-21-db-sync.md","source":"@site/blog/2023-02-21-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-02-21T00:00:00.000Z","formattedDate":"February 21, 2023","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.75,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-02-21-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-02-22-node-cli-api"},"nextItem":{"title":"Crypto Team Update","permalink":"/2023-02-17-crypto"}},"content":"## High level summary\\n\\nThe db-sync team created a new tag `13.1.0.2` which is ready to release.\\nWe also investigated and had the first working UTxO-HD integration which is one\\nof the potential future risks for db-sync.\\n\\n## Low level summary\\n\\n- Integrated the UTxO-HD feauture branch in `kderme/utxo-hd-1`. This doesn\'t\\nuse the full on disk storage but keeps things in memory and the plan is to keep\\nit this way for the first iteration. The integration still has some performance\\nissues which we investigate\\n- Created tag `13.1.0.2` which upgrades the dependencies of db-sync\\n- Fixed an issue related to errors appearing in SMASH\\n[#1353](https://github.com/input-output-hk/cardano-db-sync/pull/1353)\\n- Continued with ghc-9.2 integration\\n[#1339](https://github.com/input-output-hk/cardano-db-sync/pull/1339)\\n- Worked on an new fixing procedure for\\n[#1348](https://github.com/input-output-hk/cardano-db-sync/issues/1348).\\nWe try to make these procedures work also on older schema version, without the\\nneed to migrate to newer schema, which can be very useful for fixing existing\\nsnapshots."},{"id":"2023-02-17-crypto","metadata":{"permalink":"/2023-02-17-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-crypto.md","source":"@site/blog/2023-02-17-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":1.43,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-02-17-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/2023-02-21-db-sync"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-02-17-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril\'s core library (decided to add audit of KES). Design proposal for viable registration.\\n* cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus.\\n* KES agent: using snockets and making things testable in IOSim\\n* MuSig2: started implementation in rust.\\n\\n## Low level summary\\n\\n### Mithril\\n* Transmute helpers merged [PR#722](https://github.com/input-output-hk/mithril/pull/722)\\n* We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope. \\n* We are working in a modification of KES to require caller to allocate the secret key buffer.\\n* Proposed a solution for signer registration of [Mithril](https://github.com/input-output-hk/mithril/wiki/Mithril-registration-procedure#cost).\\n### cardano-base\\n* Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 [proof](https://github.com/input-output-hk/plutus/tree/kwxm/BLS12_381/prototype/plutus-benchmark/bls-benchmarks).\\n\\t* Results are promising, with using only 23% of the execution budget to verify a realistic proof. \\n\\t* Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril.\\n* KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this.\\n* Conversion finally merged [PR#344](https://github.com/input-output-hk/cardano-base/pull/344).\\n\\n### KES agent\\n* Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation\\n* Figuring out how to go from fake file descriptor to write the raw bytes\\n\\n### MuSig2\\n* Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental."},{"id":"2023-02-17-goedel","metadata":{"permalink":"/2023-02-17-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-goedel.md","source":"@site/blog/2023-02-17-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.53,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-02-17-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2023-02-17-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-02-17-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been working on drafts of two papers and one\\ntechnical report, distributivity properties of deltaQ, and consulting\\non performance design with the Marlowe team.\\n\\n## Details\\n\\n* Processing reviews on performance engineering paper and planning\\n paper revisions accordingly\\n\\n* Investigating distributivity properties of DeltaQ\\n\\n* Preparing sections on the thorn calculus and idempotency laws for\\n draft paper about verifying design refinements for distributed\\n system design\\n\\n* Consulting on performance design with Marlowe team"},{"id":"2023-02-17-hydra","metadata":{"permalink":"/2023-02-17-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-hydra.md","source":"@site/blog/2023-02-17-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.75,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-02-17-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-02-17-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-02-17-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team completed work on dealing differently with contests\\nduring the contestation period. These will now always push out the deadline and\\nhence contestation periods are easier to pick (depending on the network a Head\\nruns on). Furthermore, they added an important acceptance test and completed\\ninternal refactoring of the protocol logic making future changes easier.\\n\\n## What did the team achieve this week\\n\\n- Push contestation deadline on each contest [#716](https://github.com/input-output-hk/hydra/pull/716)\\n- Wrote an acceptance (property) test “can always close/fanout when collect is successful”\\n- Internal refactoring of our `HeadLogic`\\n- Groomed remaining things from [#452](https://github.com/input-output-hk/hydra/issues/452) into dedicated features\\n\\n## What are the goals of next week\\n\\n- Complete full minting policy [#720](https://github.com/input-output-hk/hydra/issues/720)\\n- Release 0.9.0 with updated scripts\\n- Plan mainnet milestone and a 0.10.0 version\\n- Redraw transaction graphs for specification (upon feedback)\\n- Have smoke tests fixed and running regularly"},{"id":"2023-02-17-ledger","metadata":{"permalink":"/2023-02-17-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-ledger.md","source":"@site/blog/2023-02-17-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.33,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-02-17-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-02-17-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/2023-02-17-network"}},"content":"## High level summary\\n\\nThis past two weeks saw many months worth of ledger changes integrated with the `cardano-base`\\nand `ouroboros-network` repositories.\\nThe vast majority of the effort involved all the changes to the ledger serialization libraries\\n(and the interplay with `cardano-base`) which now support proper versioning.\\nSupporting the conway ledger era, and in particular allowing the ledger state to transition\\nto a whole new system of governance, also played a noticeable part in the integration.\\n\\nBesides the integration work, the team continues to address technical debt, improve the\\ndocumentation, make our testing infrastructure better (such as experimenting with better\\nnightly tests), and formally specifying more parts of CIP-1694.\\n\\n## Lower level summary\\n\\n### Integration work\\n\\nBelow is all the integration work completed, which will enable a release to node from\\nthe current ledger master. Many thanks to\\n[Alexey](https://github.com/lehins) for this colossal undertaking!\\n\\n* [pull-3303]\\n* [pull-3302]\\n* [pull-3300]\\n* [pull-3299]\\n* [pull-3298]\\n* [pull-3297]\\n* [pull-3292]\\n* [pull-3289]\\n* [pull-3288]\\n* [pull-3279]\\n* [pull-3282]\\n* [pull-4349]\\n\\n### Technical debt\\n\\nStarting in major protocol version 9, zero-valued multi-assets will no longer be permitted\\nin the CBOR specification. See [pull-3241].\\n\\nWe now have our `.cabal` files being checked for a consistent formatting given by\\n`cabal format` in our CI. See [pull-3286].\\n\\nWe are still experimenting with better nightly tests for our long running\\nproperty based tests. See [pull-3276] and [pull-3296].\\n\\n### Small documentation improvements\\n\\nThe hand proofs of the preservation ADA property have been added back to the\\nShelley ledger specification. See [pull-3295].\\n\\nWe have clarified how the script integrity hash is computed in the CDDL description.\\nSee [pull-3290].\\n\\n### Specifying CIP-1694\\n\\nOur new formal specifications backed by Agda have seen a lot of progress!\\nUpgrading to Agda 2.6.3 fixed our main build infrastructure problems,\\nand we no longer have to rely on our custom fork. See [pull-50].\\n\\nOur progress on formally specifying CIP-1694 can be followed here:\\n* in Agda: [pull-40]\\n* the corresponding Haskell: [pull-3291]\\n\\n### Constraint based testing\\n\\nWe are still actively working on our new constraint based property testing framework.\\nWe have nearly all of the constraints for an entire ledger state\\nhooked into generators, and tests that the generators do indeed obey the constraints.\\nThe variable count in the constraints is over 100!\\nThere is still much work to do on shrinking, making the generators faster,\\nand writing actual property tests for the ledger, but the approach still seems viable and\\nwe are hopeful that it could replace our trace generators.\\nThe WIP can be followed here: [pull-3219].\\n\\n[pull-3241]: https://github.com/input-output-hk/cardano-ledger/pull/3241\\n[pull-3295]: https://github.com/input-output-hk/cardano-ledger/pull/3295\\n[pull-3290]: https://github.com/input-output-hk/cardano-ledger/pull/3290\\n[pull-3286]: https://github.com/input-output-hk/cardano-ledger/pull/3286\\n\\n[pull-3303]: https://github.com/input-output-hk/cardano-ledger/pull/3303\\n[pull-3302]: https://github.com/input-output-hk/cardano-ledger/pull/3302\\n[pull-3300]: https://github.com/input-output-hk/cardano-ledger/pull/3300\\n[pull-3299]: https://github.com/input-output-hk/cardano-ledger/pull/3299\\n[pull-3298]: https://github.com/input-output-hk/cardano-ledger/pull/3298\\n[pull-3297]: https://github.com/input-output-hk/cardano-ledger/pull/3297\\n[pull-3292]: https://github.com/input-output-hk/cardano-ledger/pull/3292\\n[pull-3289]: https://github.com/input-output-hk/cardano-ledger/pull/3289\\n[pull-3288]: https://github.com/input-output-hk/cardano-ledger/pull/3288\\n[pull-3279]: https://github.com/input-output-hk/cardano-ledger/pull/3279\\n[pull-3282]: https://github.com/input-output-hk/cardano-ledger/pull/3282\\n[pull-3291]: https://github.com/input-output-hk/cardano-ledger/pull/3291\\n[pull-3276]: https://github.com/input-output-hk/cardano-ledger/pull/3276\\n[pull-3296]: https://github.com/input-output-hk/cardano-ledger/pull/3296\\n[pull-3219]: https://github.com/input-output-hk/cardano-ledger/pull/3219\\n\\n[pull-50]: https://github.com/input-output-hk/formal-ledger-specifications/pull/50\\n[pull-40]: https://github.com/input-output-hk/formal-ledger-specifications/pull/40\\n\\n[pull-4349]: https://github.com/input-output-hk/ouroboros-network/pull/4349"},{"id":"2023-02-17-network","metadata":{"permalink":"/2023-02-17-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-network.md","source":"@site/blog/2023-02-17-network.md","title":"Network Team Update","description":"High level summary","date":"2023-02-17T00:00:00.000Z","formattedDate":"February 17, 2023","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":0.865,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-02-17-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-02-17-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-02-10-hydra"}},"content":"## High level summary\\n\\nRecently QA found a bug in P2P code, which results in busy loops. We added one\\nfix to `1.35.6` release, another one will likely be part of next release. The\\nfirst one is already included in `ouroboros-network-0.3.0.1` release. These\\nbugs could only affect nodes which are out of sync and thus should not impose\\nrisk on well maintained nodes on mainnet. We also advertise to deploy at most\\none of the relays as a P2P node, which shields from possible consequences.\\n\\nWe recently finished design phase of eclipse evasion and we started\\nimplementing it (see [issue #3886] for progress).\\n\\nGalois finished implementing Handshake extension which will allow to query\\nnetwork protocol versions (see [pr #4256]).\\n\\nWe also recently released a newer set of network packages to be integrated with\\n`cardano-node` `master` branch, this includes:\\n * monoidal-synchronisation-0.1.0.2\\n * cardano-client-0.1.0.2\\n * network-mux-0.3.0.0\\n * ouroboros-network-api-0.1.0.0\\n * ouroboros-network-protocols-0.2.0.0\\n * ouroboros-network-testing-0.2.0.1\\n * ouroboros-network-mock-0.1.0.0\\n * ouroboros-network-framework-0.3.0.0\\n * ouroboros-network-0.4.0.0 (it doesn\'t not yet include the fix we included\\n in `0.3.0.1`)\\n\\n[issue #3886]: https://github.com/orgs/input-output-hk/projects/19/views/16?pane=issue&itemId=19819205\\n[pr #4256]: https://github.com/input-output-hk/ouroboros-network/pull/4256"},{"id":"2023-02-10-hydra","metadata":{"permalink":"/2023-02-10-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-10-hydra.md","source":"@site/blog/2023-02-10-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-02-10T00:00:00.000Z","formattedDate":"February 10, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.14,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-02-10-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-02-17-network"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-02-09-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team closed several gaps to align the Hydra scripts\\nimplementation further with the specification. This also resulted in a slight\\nimprovement on Hydra script size and costs. They consequently analysed the\\nasymptotic complexity of collect and fanout and how they relate. Also plutus-tx\\nprofiling toolchain was evaluated and set up for future improvements on Hydra\\non-chain performance. In discussions with researchers and internal auditors,\\nthey also uncovered next steps on further securing the Head protocl using a\\n\\"full\\" minting policy.\\n\\n## What did the team achieve this week\\n\\n- Closed several gaps to align script implementation with specification [#452](https://github.com/input-output-hk/hydra/issues/452)\\n - Allow contest only once [#680](https://github.com/input-output-hk/hydra/pull/680)\\n - Optimization through head output at index 0 [#700](https://github.com/input-output-hk/hydra/pull/700)\\n - Value is preserved [#702](https://github.com/input-output-hk/hydra/pull/702) + optimized exact value equality [#709](https://github.com/input-output-hk/hydra/pull/709)\\n- Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to [#721](https://github.com/input-output-hk/hydra/pull/721)\\n ![](https://user-images.githubusercontent.com/2621189/218124686-7a85b40d-12f7-4b00-ad16-128c99f5b707.png)\\n- Fixed our tooling around the Haskell language server\\n- Discussed full minting policy with researchers\\n- Started grooming \u201cwhat we need for mainnet\u201d on [this](https://github.com/input-output-hk/hydra/issues/713) idea ticket and [milestone](https://github.com/input-output-hk/hydra/milestone/8)\\n\\n## What are the goals of next week\\n\\n- Implement full minting policy\\n- All remaining protocol discrepancies are implemented or groomed as individual features\\n- Ideally release 0.9.0 with updated scripts\\n- Discuss what we need for mainnet (milestone planning)\\n- Redraw transaction graphs for specification (upon feedback)"},{"id":"2023-02-09-mithril","metadata":{"permalink":"/2023-02-09-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-09-mithril.md","source":"@site/blog/2023-02-09-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-02-09T00:00:00.000Z","formattedDate":"February 9, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.01,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-02-09-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-02-10-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-02-08-consensus"}},"content":"## High level overview\\nThe Mithril team released a new [`2304.1`](https://github.com/input-output-hk/mithril/releases/tag/2304.1) distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.\\n\\nFinally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version `1.35.5` on their `devnet` and infrastructure.\\n\\n## Low level overview\\n- Released the new distribution [`2304.1`](https://github.com/input-output-hk/mithril/releases/tag/2304.1)\\n- Fixed a bug that prevented some signers to sign with `2304.0-prerelease` [#716](https://github.com/input-output-hk/mithril/issues/716)\\n- Completed the implementation of an `EraChecker` that checks if an era is active [#708](https://github.com/input-output-hk/mithril/issues/708)\\n- Completed the implementation of an `EraReader` that gathers era activation data [#709](https://github.com/input-output-hk/mithril/issues/709)\\n- Completed the implementation of an `EraReader` adapter with on chain transaction as source [#710](https://github.com/input-output-hk/mithril/issues/710)\\n- Completed the relational design of the aggregator store [#476](https://github.com/input-output-hk/mithril/issues/476)\\n- Completed adding a new SPO on the `testing-preview` network [#729](https://github.com/input-output-hk/mithril/issues/729)\\n- Completed the upgrade of the Cardano node to `1.35.5` [#725](https://github.com/input-output-hk/mithril/issues/725)\\n- Fixed flakiness in the CI [#734](https://github.com/input-output-hk/mithril/issues/734)"},{"id":"2023-02-08-consensus","metadata":{"permalink":"/2023-02-08-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-08-consensus.md","source":"@site/blog/2023-02-08-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-02-08T00:00:00.000Z","formattedDate":"February 8, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":1.5,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-02-08-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-02-09-mithril"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-02-08-node-cli-api"}},"content":"## High level summary\\n\\nWe continue refactoring the UTxO HD prototype while we wait for the system level\\nbenchmarks. We have created a new repository that contains the `anti-diff`\\npackages used in this prototype.\\n\\nOn the Genesis front, we are preparing another meeting with the researchers to\\naudit the implementation design, and we continued working on basic tests and\\nsimplifications.\\n\\nDuring the past two weeks we also introduced two new tools. One for dumping CBOR\\nencoded blocks to JSON, and another to serve a local immutable DB.\\n\\n## Workstreams \\n\\n### UTxO HD Prototype \\n\\nWe are in the process of refactoring the UTxO HD prototype, while we wait for\\nthe system level benchmarks to confirm if the performance of the prototype is\\nsatisfactory.\\n\\nWe also set up a repository for the [`anti-diff`][anti-diff] package, which\\nrequired us to refactor the code, write documentation, and prepare a release to\\n[CHaP][chap].\\n\\n### Genesis\\n\\nWe worked on [basic tests][issue-4347] for the _Limit on Eagerness_ property of\\nGenesis. We also introduced further robustness and simplifications in the\\nGenesis Density governor. Finally, we developed a presentation to engage again\\nwith the researchers on our Genesis implementation design.\\n\\n### Technical debt\\n\\n### Fostering collaboration \\n\\nWe are in the process of [polishing][pull-6] the `ouroboros-consensus`\\ndocumentation site, which we will use a the entry point for Consensus related\\ndocumentation. The first version will not be complete, but we plan on\\nsystematically improving it.\\n\\n### Support\\n\\nWe [added a tool][pull-4335] to `ouroboros-consensus-cardano-tools` which allows\\nto dump the Chain DB blocks or any given CBOR encoded blocks as JSON.\\n\\nWe also added [another tool][pull-4339] that serves an existing immutable DB via\\nBlockFetch and ChainSync. This tool can help in assisting our local benchmarking\\nefforts (for instance Genesis\' ChainSync jumping prototype).\\n\\n\\n[pull-6]: https://github.com/input-output-hk/ouroboros-consensus/pull/6\\n[pull-4335]: https://github.com/input-output-hk/ouroboros-network/pull/4335\\n[pull-4339]: https://github.com/input-output-hk/ouroboros-network/pull/4339 \\n[issue-4347]: https://github.com/input-output-hk/ouroboros-network/issues/4347\\n[anti-diff]: https://github.com/input-output-hk/anti-diffs\\n[chap]: https://github.com/input-output-hk/cardano-haskell-packages"},{"id":"2023-02-08-node-cli-api","metadata":{"permalink":"/2023-02-08-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-08-node-cli-api.md","source":"@site/blog/2023-02-08-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-02-08T00:00:00.000Z","formattedDate":"February 8, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.095,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-02-08-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-02-08-consensus"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-02-08-performance-and-tracing"}},"content":"# 2023-02-08 - 2023-02-21\\n\\n## High level summary\\nMore maintenance and resolving raised issues.\\n\\n## Completed\\n\\n### docs\\n\\n### CI & project maintenance\\n- [Remove use of multiline literals](https://github.com/input-output-hk/cardano-node/pull/4889)\\n- [Markdown links CI check](https://github.com/input-output-hk/cardano-node/pull/4775)\\n- [Date ranges for copyright](https://github.com/input-output-hk/cardano-node/pull/4755)\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Re-add support for decoding GenesisExtendedKey text envelope](https://github.com/input-output-hk/cardano-node/pull/4894)\\n- [Disallow empty cost model for create update proposal](https://github.com/input-output-hk/cardano-node/pull/4885)\\n- [Refactor code using onLeft and onNothing](https://github.com/input-output-hk/cardano-node/pull/4815)\\n\\n### cardano-api\\n- [Simplify SerialiseAsRawBytes type class](https://github.com/input-output-hk/cardano-node/pull/4876)\\n\\n### cardano-node\\n\\n### cardano-testnet\\n\\n## In Progress\\n\\n## CI & project mainteance\\n\\n### cardano-cli\\n- [Fix bug in hash computation in cardano-cli genesis create-cardano](https://github.com/input-output-hk/cardano-node/pull/4761)\\n- [Cleanup exports of cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/4636)\\n- [BUGFIX] - [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n- [Read network ID from environment](https://github.com/input-output-hk/cardano-node/pull/4666)\\n- [CLI option to append additional signatures to a transactions](https://github.com/input-output-hk/cardano-node/pull/4647)\\n- [Cardano ping](https://github.com/input-output-hk/cardano-node/pull/4664)\\n- [Better error message for query utxo on oops](https://github.com/input-output-hk/cardano-node/pull/4777)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Remove simple script distinction](https://github.com/input-output-hk/cardano-node/pull/4763)\\n- [Export SubmitResult from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4753)\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)\\n\\n### cardano-testnet\\n- [Use Haskell variables for passing values](https://github.com/input-output-hk/cardano-node/pull/4845)"},{"id":"2023-02-08-performance-and-tracing","metadata":{"permalink":"/2023-02-08-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-08-performance-and-tracing.md","source":"@site/blog/2023-02-08-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-02-08T00:00:00.000Z","formattedDate":"February 8, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":2.445,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-02-08-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-02-08-node-cli-api"},"nextItem":{"title":"Crypto Team Update","permalink":"/2023-02-03-crypto"}},"content":"## High level summary\\n\\n1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we\'re currently running what we consider the final benchmark, to validate the underlying assumptions.\\n2. Release benchmarking: we\'ve performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.\\n3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.\\n4. New tracing: before going live, we\'re performing the documentation update, as well as reworking the end user migration guide.\\n5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.\\n6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.\\n7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.\\n\\n## Performance\\n\\nWe are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:\\n\\n- we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,\\n- after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,\\n- finally, we\'re redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.\\n\\nIn addition, we started benchmarks of the 1.35.6 release.\\n\\n## Tracing\\n\\nA rework of the new tracing system\'s internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.\\n\\nSpecifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.\\n\\n## Infrastructure\\n\\nOn the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we\'ll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.\\n\\nThe work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.\\n\\nThe Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops."},{"id":"2023-02-03-crypto","metadata":{"permalink":"/2023-02-03-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-03-crypto.md","source":"@site/blog/2023-02-03-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-02-03T00:00:00.000Z","formattedDate":"February 3, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":2.47,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-02-03-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-02-08-performance-and-tracing"},"nextItem":{"title":"Goedel Team Update","permalink":"/2023-02-03-goedel"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril\'s core library. Exploring future paths of mithril. \\n* cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting. \\n* KES agent: using snockets and making things testable in IOSim \\n* MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.\\n\\n## Low level summary\\n\\n### Mithril\\n* Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing [PR#722](https://github.com/input-output-hk/mithril/pull/722)\\n* We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.\\n* We are exploring possible paths of how mithril could be used \'as-a-service\'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.\\n### cardano-base\\n* There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it\'s trade-offs. Seems that the most interesting curve to have on main-net is still 381. \\n* The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.\\n* The update VRF [PR#341](https://github.com/input-output-hk/cardano-base/pull/341) is finally merged, and we are ready to merge [PR#344](https://github.com/input-output-hk/cardano-base/pull/344), which implements conversion functions from the compatible types between Praos and PraosBatchCompat.\\n\\n### KES agent\\n* Use of snockets to send the data directly from the socket to secure memory. \\n* We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives\\n* Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.\\n\\n### MuSig2\\nThe GitHub Action [linelint](https://github.com/fernandrone/linelint) is used to check the files.\\n* A new job for linting is added to the file `/.github/workflows/ci.yml`. The rules are configured in the file `/.github/workflows/.linelint.yml`. Some files from the configuration of `libsecp` were failing, so in the rules in `.linelint.yml` the failing files are denoted to be ignored by the linter.\\n* Folders are reorganized. We created a folder to handle the example. This folder includes the `examplemusig2.c`, a distinct `config.h`, and `helper.c`. The example is enhanced by implementing the functions in the helper for the configuration given in `config.h`. The number of messages is different than the tests. The example is made more generic to run with a loop."},{"id":"2023-02-03-goedel","metadata":{"permalink":"/2023-02-03-goedel","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-03-goedel.md","source":"@site/blog/2023-02-03-goedel.md","title":"Goedel Team Update","description":"The team works on applied research and consulting in formal methods","date":"2023-02-03T00:00:00.000Z","formattedDate":"February 3, 2023","tags":[{"label":"goedel","permalink":"/tags/goedel"}],"readingTime":0.57,"hasTruncateMarker":false,"authors":[{"name":"James Chapman","title":"Head of Formal Methods","url":"https://github.com/jmchapman","imageURL":"https://github.com/jmchapman.png","key":"jmchapman"}],"frontMatter":{"title":"Goedel Team Update","slug":"2023-02-03-goedel","authors":"jmchapman","tags":["goedel"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2023-02-03-crypto"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-02-03-hydra"}},"content":"The team works on applied research and consulting in formal methods\\nthat is directly applicable to evidence based engineering in Core Tech\\nand beyond.\\n\\n## High level summary\\n\\nThis sprint the team has been preparing several papers for peer review\\nand knowledge sharing and consulting within IO and the community.\\n\\n## Details\\n\\n* R&D Seminar on experience participating in a member based organisation\\n* Full day tutorial on performance engineering presented at HiPEAC\\n 2023 conference\\n* Finished preparing and submitted a paper on performance engineering\\n to an ACM workshop\\n* Preparing a draft paper for future submission about verifying design\\n refinements for distributed system design\\n* Consulting on performance design of other IO projects"},{"id":"2023-02-03-hydra","metadata":{"permalink":"/2023-02-03-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-03-hydra.md","source":"@site/blog/2023-02-03-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-02-03T00:00:00.000Z","formattedDate":"February 3, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.12,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-02-03-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Goedel Team Update","permalink":"/2023-02-03-goedel"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-02-02-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team completed the Hydra specification with a section about\\nrollbacks and updated graphs\\n([#448](https://github.com/input-output-hk/hydra/issues/448)). In a next step,\\nthe specification will be made more approachable and an open standard. They\\nimproved their `hydra-cluster` tool to launch a local `--devnet` sandbox\\nenvironment and continued aligning the `hydra-plutus` scripts with the\\nspecification by hardening the checks on `close` and `contest` transactions.\\n\\n## What did the team achieve this week\\n\\n- Completed the specification with a section about rollbacks and updated graphs\\n [#448](https://github.com/input-output-hk/hydra/issues/448), with a follow-up on making it more approachable and an open standard.\\n- Continued spec review with internal auditor and incorporated changes.\\n- Talked to TxPipe about how Demeter and Hydra could work together\\n- The `hydra-cluster` executable can be used to launch a local `--devnet` sandbox environment.\\n- Reproduced the \u201chead being stuck on network outage\u201d bug\\n - relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed.\\n- Progressed with higher velocity by addressing more and more gaps [#677](https://github.com/input-output-hk/hydra/pull/677)\\n\\n## What are the goals of next week\\n\\n- Upstream our JSON instances to the ledger\\n- Close all transaction security related on-chain gaps\\n- Ideally release 0.9.0 with updated scripts\\n- Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap"},{"id":"2023-02-02-ledger","metadata":{"permalink":"/2023-02-02-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-02-ledger.md","source":"@site/blog/2023-02-02-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-02-02T00:00:00.000Z","formattedDate":"February 2, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.23,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-02-02-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-02-03-hydra"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-01-27-hydra"}},"content":"## High level summary\\n\\nMuch of the work the past two weeks involved integration efforts,\\ncleaning up and debugging some serialization issues,\\nadding tests, and work on large projects that are still ongoing.\\nWe also released a CIP this week that aims to make the ledger\\na registered CIP category.\\n\\n## Lower level summary\\n\\n### Ledger evolution CIP\\n\\nWe published a\\n[CIP](https://github.com/cardano-foundation/CIPs/pull/456)\\nthat will make the Cardano ledger a registered category of the CIP process.\\n\\n### Serialization issues\\n\\nWe had previously thought that we had found a serialization problem with the redeemers,\\nbut it turned out to just be particularly confusing code.\\nWe have now clarified the issue for the future.\\n\\nSee [pull-3263], [pull-3269], and [pull-3268].\\n\\nStarting in protocol version 9, we will no longer accept duplicate keys in CBOR maps.\\n\\nSee [pull-3277].\\n\\n### New tests\\n\\nWe added a new property test suite for some of our custom containers.\\n\\nSee [pull-3270].\\n\\n### Progress on a better cost model serialization situation.\\n\\nWe are still working our way through [issue-2902].\\nTowards this end, we are now properly gating the new flexible encoders\\nuntil version 9.\\n\\nSee [pull-3274].\\n\\n### Nightly tests\\n\\nWe are still experimenting with moving more CI actions to GitHub actions.\\n\\nSee [pull-3276].\\n\\n### Constraint based generators\\n\\nWe continue to add to our proof of concept for constraint based generators.\\nSee the previous ledger update for more information about this project.\\n\\n[pull-3263]: https://github.com/input-output-hk/cardano-ledger/pull/3263\\n[pull-3268]: https://github.com/input-output-hk/cardano-ledger/pull/3268\\n[pull-3269]: https://github.com/input-output-hk/cardano-ledger/pull/3269\\n[pull-3270]: https://github.com/input-output-hk/cardano-ledger/pull/3270\\n[pull-3274]: https://github.com/input-output-hk/cardano-ledger/pull/3274\\n[pull-3277]: https://github.com/input-output-hk/cardano-ledger/pull/3277\\n[pull-3276]: https://github.com/input-output-hk/cardano-ledger/pull/3276\\n[issue-2902]: https://github.com/input-output-hk/cardano-ledger/issues/2902"},{"id":"2023-01-27-hydra","metadata":{"permalink":"/2023-01-27-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-27-hydra.md","source":"@site/blog/2023-01-27-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-01-27T00:00:00.000Z","formattedDate":"January 27, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.945,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-01-27-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-02-02-ledger"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-01-26-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team had a monthly review meeting with their stakeholders,\\ncontributors and interested people from the community. The monthly repot for\\n[January 2023](https://hydra.family/head-protocol/monthly/2023-01) is a digest\\nof the things presented and also includes a summary of the meeting. The Hydra\\nspecification was getting discussed and the team is incorporating suggested\\nchanges of reviewers. Last but not least, they compute and publish script\\ninformation on every PR and also on the\\n[website](https://hydra.family/head-protocol/benchmarks/transaction-cost/#script-summary)\\nnow.\\n\\n## What did the team achieve this week\\n\\n- Had the monthly review meeting with a broader audience\\n- Published the monthly report for [January 2023](https://hydra.family/head-protocol/monthly/2023-01)\\n- Reviewed the spec and discussed individual aborts with researchers\\n- Compute and publish script information along benchmarks on every PR and [website](https://hydra.family/head-protocol/benchmarks/transaction-cost/#script-summary)\\n\\n## What are the goals of next week\\n\\n- Add rollback section to Hydra spec, update pictures and publish it as part of repository\\n- Discuss bigger spec findings (full minting policy, individual aborts, split fanout) as change/pull requests on the spec in the repository.\\n- Groom & plan actions required for a maintainable Head explorer + break down “align gaps” feature."},{"id":"2023-01-26-mithril","metadata":{"permalink":"/2023-01-26-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-26-mithril.md","source":"@site/blog/2023-01-26-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-01-26T00:00:00.000Z","formattedDate":"January 26, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.175,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-01-26-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-01-27-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-01-25-consensus"}},"content":"## High level overview\\nThe Mithril team released a new [`2302.0`](https://github.com/input-output-hk/mithril/releases/tag/2302.0) distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.\\n\\nFinally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.\\n\\n## Low level overview\\n- Released the new distribution [`2302.0`](https://github.com/input-output-hk/mithril/releases/tag/2302.0)\\n- Implemented a backward/forward compatibility mechanism for API messages [#688](https://github.com/input-output-hk/mithril/issues/688):\\n - Implement the mechanism for the signer registration [#689](https://github.com/input-output-hk/mithril/issues/689)\\n - Implement the mechanism for the signature registration [#693](https://github.com/input-output-hk/mithril/issues/693)\\n - Implement the mechanism for epoch settings [#695](https://github.com/input-output-hk/mithril/issues/695)\\n - Implement the mechanism for certificate pending [#696](https://github.com/input-output-hk/mithril/issues/696)\\n - Implement the mechanism for certificate [#697](https://github.com/input-output-hk/mithril/issues/697)\\n - Implement the mechanism for snapshots list [#698](https://github.com/input-output-hk/mithril/issues/698)\\n - Implement the mechanism for snapshot [#699](https://github.com/input-output-hk/mithril/issues/699)\\n - Update enforcement of API version with Semver [#705](https://github.com/input-output-hk/mithril/issues/705)\\n- Completed the PoC implementation of backward compatibility with `protobuf` [#677](https://github.com/input-output-hk/mithril/issues/677)\\n- Completed the PoC implementation of backward compatibility with `avro` [#678](https://github.com/input-output-hk/mithril/issues/678)\\n- Completed the PoC to Read/Write transaction on chain for Era activations [#672](https://github.com/input-output-hk/mithril/issues/672)\\n- Completed the upgrade Cardano devnet to 1.35.4 [#523](https://github.com/input-output-hk/mithril/issues/523)"},{"id":"2023-01-25-consensus","metadata":{"permalink":"/2023-01-25-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-25-consensus.md","source":"@site/blog/2023-01-25-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-01-25T00:00:00.000Z","formattedDate":"January 25, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":2.27,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-01-25-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-01-26-mithril"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2023-01-25-node-cli-api"}},"content":"## High level summary\\n\\nDuring the past two weeks, the consensus team finished the testing activities\\naround the UTxO-HD prototype. This is a very important milestone which will\\nenable us to run system-level tests and benchmarks, as well as start refactoring\\nand cleaning the prototype. Regarding our Genesis workstream, we elaborated a\\nroadmap that gives an indication of the remaining work. We also continued our\\nwork on benchmarking chain-sync-jumping. We also continued working on improving\\nthe way we handle blocks from the future, and advancing the integration of the\\nnew VRF and KES crypto.\\n\\n## Workstreams \\n\\n### UTxO HD Prototype \\n\\nAs the prototype is nearing its completion, it was important to have enough\\nconfidence that we will be able to move additional parts of the ledger state\\nonto disk. We worked together with the Ledger team to [elaborate a\\nsketch][pull-4296] on how the UTxO-HD design would accommodate the migration of\\nadditional data from memory to disk. This gave us enough confidence that the\\ncurrent architecture will be extensible in the future.\\n\\nOn the testing front, we [added][pull-4274] property-based tests for the UTxO-HD\\ntype classes. \\n\\nWe also [enabled disabled components][pull-4289], and addressed several\\ntechnical debt issues:\\n\\n- Implement `splitSized` anti-diff split ([#4269][pull-4269]), and integrate it\\n into consensus ([#4273][pull-4273]).\\n- Renaming of `peekVal` to `peekMDBVal` ([#7][pull-7]).\\n\\nWe ran ad-hoc benchmarks for syncing a chain from scratch and replaying. We\\nfound a race condition in the LMDB backing store, which [we fixed][pull-4283].\\nAfter the fix we were able to successfully run these benchmarks. The results\\nwere published by [this pull request][pull-4295].\\n\\nWe used our `db-analyser` tool to benchmark the cost of reading keys and\\nflushing values to disk. The following plot shows the duration of these disk\\noperation in relation to the main ledger operations, where we can see that the\\ncost of the former are comparatively low. The spike at the beginning of the\\ngraph is when, at the start of the Shelley era, the *entire* UTxO set is flushed\\nto disk.\\n\\n![UTxO-HD read and flush benchmarks](/images/consensus/2023-01-25-consensus-utxo-hd-read-and-flush-benchmarks.png)\\n\\nAfter months of hard work adding tests for the prototype, we are ready to run\\nend-to-end tests on the node, and system level benchmarks. This signals a very\\nimportant milestone for the UTxO-HD workstream :tada:.\\n\\n### Genesis \\n\\nWe elaborated a [high-level decomposition][genesis-roadmap] of the remaining\\nwork for Genesis. We also continued benchmarking the chain-sync-jumping\\nhappy-path.\\n\\n### Technical debt\\n\\nWe continued working on improving the way we handle blocks from the future.\\n\\n### Support \\n\\nWe completed the mapping of `Crypto` to `HeaderCrypto` and body `Crypto`.\\n`HeaderCrypto` is moved to `cardano-protocol-tpraos`. We created a draft [pull\\nrequest][pull-3262] to facilitate compiling consensus.\\n\\n[pull-4274]: https://github.com/input-output-hk/ouroboros-network/pull/4274\\n[pull-4296]: https://github.com/input-output-hk/ouroboros-network/pull/4296\\n[pull-4289]: https://github.com/input-output-hk/ouroboros-network/issues/4289\\n[pull-4295]: https://github.com/input-output-hk/ouroboros-network/pull/4295\\n[genesis-roadmap]: https://github.com/input-output-hk/ouroboros-network/blob/a626c84f6df585dd27d735eb7eec73904a1f570e/ouroboros-consensus/docs/2023-Jan-Genesis-roadmap.md\\n[pull-4269]: https://github.com/input-output-hk/ouroboros-network/pull/4269\\n[pull-4273]: https://github.com/input-output-hk/ouroboros-network/pull/4273\\n[pull-7]: https://github.com/input-output-hk/lmdb-simple/pull/7\\n[pull-4283]: https://github.com/input-output-hk/ouroboros-network/pull/4283\\n[pull-3262]: https://github.com/input-output-hk/cardano-ledger/pull/3262"},{"id":"2023-01-25-node-cli-api","metadata":{"permalink":"/2023-01-25-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-25-node-cli-api.md","source":"@site/blog/2023-01-25-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2023-01-25T00:00:00.000Z","formattedDate":"January 25, 2023","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.585,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2023-01-25-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-01-25-consensus"},"nextItem":{"title":"Crypto Team Update","permalink":"/2023-01-20-crypto"}},"content":"# 2023-01-25 - 2023-02-07\\n\\n## High level summary\\nGeneral clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the `cardano-cli query stake-snapshot` command. \\n\\n## Completed\\n\\n### docs\\n\\n### CI & project maintenance\\n- [Fix how changed files are selected in stylish-haskell CI check](https://github.com/input-output-hk/cardano-node/pull/4853)\\n- [Copyright updates](https://github.com/input-output-hk/cardano-node/pull/4755)\\n- [Remove hlint from nix required CI](https://github.com/input-output-hk/cardano-node/pull/4848)\\n- [Remove reconfigure-hlint.sh script](https://github.com/input-output-hk/cardano-node/pull/4838)\\n- [Fix hlint warnings](https://github.com/input-output-hk/cardano-node/pull/4837)\\n- [Implement ADR-2: Restructure modules for generators](https://github.com/input-output-hk/cardano-node/pull/4833)\\n- [Stylish Haskell in CI](https://github.com/input-output-hk/cardano-node/pull/4803)\\n- [Revert skip doc in ci](https://github.com/input-output-hk/cardano-node/pull/4802)\\n- [Skip CI on doc only changes](https://github.com/input-output-hk/cardano-node/pull/4800)\\n- [Skip CI if only changes are documentation](https://github.com/input-output-hk/cardano-node/pull/4792)\\n- [Build all of cardano-node in CI](https://github.com/input-output-hk/cardano-node/pull/4776)\\n- [Check cabal files in CI](https://github.com/input-output-hk/cardano-node/pull/4766)\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Straight line error handling](https://github.com/input-output-hk/cardano-node/pull/4785)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n\\n### cardano-api\\n- [New NodeToClientVersionOf typeclass](https://github.com/input-output-hk/cardano-node/pull/4787)\\n- [Remove NoImplicitPrelude from cardano-api](https://github.com/input-output-hk/cardano-node/pull/4832)\\n- [Add ReaderT of NodeToClientVersion to LocalStateQueryExpr](https://github.com/input-output-hk/cardano-node/pull/4809)\\n- [Use hoistMaybe](https://github.com/input-output-hk/cardano-node/pull/4808)\\n- [Better error message for query utxo without oops](https://github.com/input-output-hk/cardano-node/pull/4788)\\n\\n### cardano-node\\n\\n### cardano-testnet\\n- [New query stake-snapshot integration test](https://github.com/input-output-hk/cardano-node/pull/4805)\\n- [Make leadership-schedule test less flaky](https://github.com/input-output-hk/cardano-node/pull/4671)\\n\\n## In Progress\\n\\n## CI & project mainteance\\n\\n### cardano-cli\\n- [Fix bug in hash computation in cardano-cli genesis create-cardano](https://github.com/input-output-hk/cardano-node/pull/4761)\\n- [Cleanup exports of cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/4636)\\n- [BUGFIX] - [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n- [Read network ID from environment](https://github.com/input-output-hk/cardano-node/pull/4666)\\n- [CLI option to append additional signatures to a transactions](https://github.com/input-output-hk/cardano-node/pull/4647)\\n- [Cardano ping](https://github.com/input-output-hk/cardano-node/pull/4664)\\n- [Better error message for query utxo on oops](https://github.com/input-output-hk/cardano-node/pull/4777)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Remove simple script distinction](https://github.com/input-output-hk/cardano-node/pull/4763)\\n- [Export SubmitResult from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4753)\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)\\n\\n### cardano-testnet\\n- [Use Haskell variables for passing values](https://github.com/input-output-hk/cardano-node/pull/4845)"},{"id":"2023-01-20-crypto","metadata":{"permalink":"/2023-01-20-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-20-crypto.md","source":"@site/blog/2023-01-20-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-01-20T00:00:00.000Z","formattedDate":"January 20, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":1.65,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-01-20-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2023-01-25-node-cli-api"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-01-20-hydra"}},"content":"## High level summary\\nThe open fronts that the crypto team is working on are:\\n* Mithril: We explored whether some uses of `transmute` could be removed, but it resulted in considerable regression. \\n* cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision. \\n* KES agent: An inconsistency between `contra-tracer` available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the `contra-tracer` used by consensus. \\n\\n## Low level summary\\n\\n### Mithril\\n* We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average [PR#675](https://github.com/input-output-hk/mithril/pull/675). We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing. \\n* We are writing a RFP for the audit of the core library. \\n### cardano-base\\n* A problem with Nix is blocking merge of [PR#341](https://github.com/input-output-hk/cardano-base/pull/341)\\n* Plutus team ran [benchmarks](https://github.com/input-output-hk/plutus/blob/kwxm/BLS12_381/prototype/plutus-benchmark/bls-benchmarks/Main.hs) of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we\'ll be able to verify some proofs in a single script execution.\\n* Team is fully digesting the Plonk paper. \\n* There\'s been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used. \\n\\n### KES agent\\n* A little unforseen delay has been caused by a mismatch in the use of `contra-tracer`. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are [doing the change](https://github.com/input-output-hk/cardano-base/pull/255/commits/39b2d9473aa296976825248360a73cf066065431), but still the CI is not happy.\\n* The [same](https://github.com/input-output-hk/cardano-base/pull/317/commits/39b2d9473aa296976825248360a73cf066065431) was needed for the KES agents prerequisites [PR#317](https://github.com/input-output-hk/cardano-base/pull/317).\\n* We\'ve started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency"},{"id":"2023-01-20-hydra","metadata":{"permalink":"/2023-01-20-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-20-hydra.md","source":"@site/blog/2023-01-20-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-01-20T00:00:00.000Z","formattedDate":"January 20, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.13,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-01-20-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2023-01-20-crypto"},"nextItem":{"title":"Network Team Update","permalink":"/2023-01-20-network"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has been focusing on the write-up of the Hydra HeadV1\\nspecification. Of which a first version has been aggregated and is currently\\nunder review. They aligned the on-chain scripts of reimbursing funds on abort\\nlike defined in the specification, improved the mutation test framework to have\\nmore control when testing plutus scripts. The added HeadId in the API and the\\nTUI example client make `hydra-node` easier to use and a first experiment of a\\nHydra Head explorer was showing the utility of this - see what Heads exist on\\nthe `preview` network [here](http://explorer.hydra.family).\\n\\n## What did the team achieve this week\\n\\n- HeadId to API and display in the TUI [#678](https://github.com/input-output-hk/hydra/pull/678)\\n- Experiment of creating a hydra explorer, first result hosted [here](http://explorer.hydra.family)\\n- Improved mutation framework allowing to fail for the right reason [#679](https://github.com/input-output-hk/hydra/pull/679)\\n- Correctly reimburse funds in abort (matching the spec) [#670](https://github.com/input-output-hk/hydra/pull/670)\\n- Finished a first write-up of the Hydra HeadV1 spec: [Read it on overleaf](https://www.overleaf.com/read/bbqzmptcxryj) ([Communication channels](https://github.com/input-output-hk/hydra/blob/master/SUPPORT.md) for feedback)\\n\\n## What are the goals of next week\\n\\n- Monthly review meeting with a broader audience\\n- Groom & plan actions required for a maintainable Head explorer\\n- Break \u201calign gaps\u201d feature into smaller chunks (at least on- /off-chain) and groom it\\n- Review the spec & discuss individual aborts with researchers (a bigger open question)"},{"id":"2023-01-20-network","metadata":{"permalink":"/2023-01-20-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-20-network.md","source":"@site/blog/2023-01-20-network.md","title":"Network Team Update","description":"High level summary","date":"2023-01-20T00:00:00.000Z","formattedDate":"January 20, 2023","tags":[{"label":"network","permalink":"/tags/network"},{"label":"release","permalink":"/tags/release"}],"readingTime":1.045,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2023-01-20-network","authors":"coot","tags":["network","release"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-01-20-hydra"},"nextItem":{"title":"SRE Team Update","permalink":"/2023-01-20-sre"}},"content":"## High level summary\\n\\nWe have been working towards `cardano-node-1.35.5` release. QA & benchmarking\\nteams gave a green light for the release, and we made decent progress with some\\nCI problem which we encountered on the way ([PR #4612]). We are also working on\\npeer sharing, making improvements in our testing infrastructure, reducing\\ntechnical debt and making progress towards `io-sim-1.0.0.0`. Galois is making\\nprogress on Handshake improvements.\\n\\n## Low level summary\\n\\nOur diffusion simulation network now includes a mixed network of `initiator\\nonly` and `initiator and responder` nodes. [issue #4222]\\n\\nWe are now reviewing the [peer sharing pull request][PR #4019].\\n\\nWe are also reviewing pull request which introduces handshake query flag. [PR #4256]\\n\\nWe fixed a bug in our network simulator. The bug was triggered when a node\\ndied when performing a simultaneous TCP open (a corner case of a corner case!). [PR #4265]\\n\\nWe also refactored `Snocket` interface and removed the bearer construction from\\nits methods. [PR #4260]\\n\\nWe are working towards releasing `io-sim-1.0.0.0` on Hackage, which includes\\nreviewing two PRs: [PR #57] and [PR #60] as well as writing an announcement\\nblog post. \\n\\n[PR #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[PR #4256]: https://github.com/input-output-hk/ouroboros-network/pull/4256\\n[PR #4260]: https://github.com/input-output-hk/ouroboros-network/pull/4260\\n[PR #4265]: https://github.com/input-output-hk/ouroboros-network/pull/4265\\n[PR #4612]: https://github.com/input-output-hk/cardano-node/pull/4612\\n[PR #57]: https://github.com/input-output-hk/io-sim/pull/57\\n[PR #60]: https://github.com/input-output-hk/io-sim/pull/60\\n[issue #4222]: https://github.com/input-output-hk/ouroboros-network/issues/4222"},{"id":"2023-01-20-sre","metadata":{"permalink":"/2023-01-20-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-20-sre.md","source":"@site/blog/2023-01-20-sre.md","title":"SRE Team Update","description":"High level summary","date":"2023-01-20T00:00:00.000Z","formattedDate":"January 20, 2023","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":1.13,"hasTruncateMarker":false,"authors":[{"name":"Michael Fellinger","title":"SRE Team Lead","url":"https://github.com/manveru","imageURL":"https://github.com/manveru.png","key":"manveru"}],"frontMatter":{"title":"SRE Team Update","slug":"2023-01-20-sre","authors":"manveru","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2023-01-20-network"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-01-19-ledger"}},"content":"## High level summary\\n\\nThe SRE team continues work on Cicero, Tullia, and Bitte, as well as providing\\nsupport for cardano-world.\\n\\n## Lower level summary\\n\\n### Cicero\\n\\n- Fixed various race conditions around transformers.\\n- Brought our CI up to date.\\n- Migrated to the Nomad exec driver with Nix support for many actions.\\n- Moved Nix builds to the Nomad clients for much better cache locality.\\n- Ongoing work on vastly improving the action matching and evaluation speed.\\n- \\n\\n### Tullia\\n\\n- Made it easier to support cloning from a PR\'s fork\\n- Update to latest std\\n- Add workaround for cgroup issue: [nomad#12877](https://github.com/hashicorp/nomad/issues/12877)\\n- github preset: add `github.ci.remote` and `(read|get)Repository` functions\\n- Fix various issues around CUE handling\\n\\n### Bitte\\n\\n- Upgrade to NixOS 22.11\\n- Prototype usage of [Colmena](https://colmena.cli.rs) for deploys instead of [deploy-rs](https://github.com/serokell/deploy-rs)\\n- Finalized work on Equinix Metal support\\n- Prototype better secrets management with [ragenix](https://github.com/yaxitech/ragenix) instead of [sops-nix](https://github.com/Mic92/sops-nix)\\n- Improve CI and bring it up to date\\n\\n### cardano-world\\n\\n- Fixd various OOM issues on preview and preprod\\n- Rotated KES keys on preview and preprod\\n- Optimize mainnet db-sync to cope with higher load\\n- Fix an issue where PostgreSQL would fail after a reboot\\n\\n### bitte-world\\n\\n- Updated to NixOS 22.11\\n\\n### ci-world\\n\\n- Updated to NixOS 22.11\\n- Added Equnix cluster\\n- Improve caching of Nix builds"},{"id":"2023-01-19-ledger","metadata":{"permalink":"/2023-01-19-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-19-ledger.md","source":"@site/blog/2023-01-19-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-01-19T00:00:00.000Z","formattedDate":"January 19, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.665,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-01-19-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2023-01-20-sre"},"nextItem":{"title":"DB-sync Team Update","permalink":"/2023-01-14-db-sync"}},"content":"## High level summary\\n\\nThe ledger team completed some preliminary ground work in preparation for CIP-1694\\n(restructuring the ledger state),\\nfixed the PDF hosting problem (mostly the formal specs),\\nbuilt out more of the new user-friendly ledger API,\\nfinished a proof of concept for constraint-based generators for property tests\\n(with the hopes of being able to replace our trace generators one day),\\nand addressed technical debt.\\n\\n## Lower level summary\\n\\n### Restructuring the ledger state\\n\\nThe existing governance structures will be replace in the conway ledger era,\\nas described in CIP-1694.\\nIn particular, the ledger rules will be restructured as follows:\\n\\n\\n```\\n BBODY\\n |\\n |-------------------------------|\\n v v\\n TICK LEDGERS\\n | |\\n |---------| |\\n v v v\\n RUPD ~NEWEPOCH~ ~LEDGER~\\n | |\\n |----------| |--------|-------------------|-----------|\\n v v v v v\\n ~EPOCH~ +ENACTMENT+ DELEGS UTXOW +TALLY+\\n | | |\\n |---------|------------| v |\\n v v v DELPL v\\n SNAP POOLREAP -UPEC- | UTXO\\n |--------| |\\n v v v\\n POOL DELEG ~UTXOS~\\n\\n-..- Removed\\n+..+ Added\\n~..~ Modified\\n```\\n\\nMoreover, the ledger state will also be restructured in accordance with the new rules.\\nIn the conway code, we have now removed UPEC, added TALLY, and stubbed ENACTMENT.\\nWe have also adapted all the data structures in the ledger state.\\n\\nSee:\\n\\n* [pull-3216]\\n\\n### PDF hosting\\n\\nWe now build all of our PDFs using a GitHub action which is triggered by pushing a tag\\nwith a specific form, `cardano-ledger-spec-YYYY-MM-DD`.\\nThe action creates a GitHub release containing the PDFs.\\nThe links in the main ledger README now point to the PDFs in the latest release.\\n\\nSee:\\n\\n* [pull-3245]\\n* [pull-3260]\\n\\n### Powering the new ledger API\\n\\nWe have now removed all the `HasField` instances from the protocol parameter data types,\\nand replaced them with lenses.\\nThis is probably the last major restructuring that the ledger team will do on the code base\\nfor the API for a while\\n(the Plutus tools team will be working on it next, see [here](https://github.com/input-output-hk/cardano-ledger/projects/5)).\\nWe also added a new helpful function `ensureMinCoinTxOut`.\\n\\nSee:\\n\\n* [pull-3242]\\n* [pull-3248]\\n\\n### Constraint-based generators\\n\\nOur largest scale property tests generate an initial ledger state and a long sequence of valid blocks\\nwhich span several epochs, mimicking a real network.\\nThese tests are, in theory, excellent for checking properties.\\nThey are, however, very difficult to maintain and are not as random as we would like\\n(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).\\n\\nWe would like to switch to tests which instead generate a random ledger state representative\\nof not just an initial state, generate a single random valid block, and then test our properties.\\nThe hope is that these will be much more random and easier to maintain.\\n\\nWe have finished a proof of concept are encouraged that this approach could work!\\n\\nSee:\\n\\n* [pull-3219]\\n\\n### Technical debt\\n\\n* [pull-3244] massive CI speedup\\n* [pull-3249] better types for fees in the protocol parameters\\n* [pull-3264] move our annotator code to the `cardano-ledger-binary` package where it belongs\\n* [pull-3239] move the `Wdrls` type to the `Core` module.\\n\\n\\n[pull-3244]: https://github.com/input-output-hk/cardano-ledger/pull/3244\\n[pull-3245]: https://github.com/input-output-hk/cardano-ledger/pull/3245\\n[pull-3248]: https://github.com/input-output-hk/cardano-ledger/pull/3248\\n[pull-3249]: https://github.com/input-output-hk/cardano-ledger/pull/3249\\n[pull-3260]: https://github.com/input-output-hk/cardano-ledger/pull/3260\\n[pull-3264]: https://github.com/input-output-hk/cardano-ledger/pull/3264\\n[pull-3239]: https://github.com/input-output-hk/cardano-ledger/pull/3239\\n[pull-3242]: https://github.com/input-output-hk/cardano-ledger/pull/3242\\n[pull-3216]: https://github.com/input-output-hk/cardano-ledger/pull/3216\\n[pull-3219]: https://github.com/input-output-hk/cardano-ledger/pull/3219"},{"id":"2023-01-14-db-sync","metadata":{"permalink":"/2023-01-14-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-14-db-sync.md","source":"@site/blog/2023-01-14-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2023-01-14T00:00:00.000Z","formattedDate":"January 14, 2023","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.36,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2023-01-14-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-01-19-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/2023-01-13-hydra"}},"content":"## High level summary\\n\\nAfter spending the last months on improving DBSync and releasing `13.1.0.0` the DBSync team focused\\nthe last weeks on integrating upstream changes and tech debt. This includes integrating CHaP, the\\nnew leger core and ghc-9.2.4\\n\\n## Lower level summary\\n- Integrate CHaP\\n[#1331](https://github.com/input-output-hk/cardano-db-sync/pull/1331)\\n- Integrate new ledger core `0.1.1.1` and ghc-9.2\\n[#1332](https://github.com/input-output-hk/cardano-db-sync/pull/1332)\\n- Technical debt: Add code formatter fourmolu\\n[#1334](https://github.com/input-output-hk/cardano-db-sync/pull/1334)\\n- Preparing and tracking Conway and UTxO integration"},{"id":"2023-01-13-hydra","metadata":{"permalink":"/2023-01-13-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-13-hydra.md","source":"@site/blog/2023-01-13-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.56,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2023-01-13-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/2023-01-14-db-sync"},"nextItem":{"title":"Node Release Team Update","permalink":"/2023-01-13-release"}},"content":"## High-level summary\\n\\nSince last weekly update before christmas, the Hydra team worked on the\\ntechnical specification, closed gaps in `hydra-plutus` scripts, made the unique\\n`headId` available to Hydra clients through the API, allow the `hydra-node` to\\nexplicitly synchronize from genesis (if configured), and fixed smaller log and\\nbuild issues reported by new users.\\n\\nBesides this, a retrospective [blog\\npost](https://cardanofoundation.org/en/news/hydra-head-protocol-an-open-source-solution-for-scalability/)\\nwas published by Matthias Benkort (CF) on Hydra, summarizing our progress made\\nin 2022 also an outlook where Hydra is headed for in 2023. Also, the team had\\nsome first sessions on the voting project with Catalyst and the CF.\\n\\nA full digest monthly digest for December 2022 can be found on the [hydra\\nwebsite](https://hydra.family/head-protocol/monthly/2022-12).\\n\\n## What did the team achieve this week\\n\\n- Had some first sessions on the voting project with Catalyst and CF\\n- Published retrospective [blog\\n post](https://cardanofoundation.org/en/news/hydra-head-protocol-an-open-source-solution-for-scalability/)\\n by Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also\\n an outlook where Hydra is headed for in 2023.\\n- Worked on the LaTeX spec for HydraHeadV1, not final or published yet - [latest\\n version in this repository](https://github.com/ch1bo/hydra-spec).\\n- Add unique `headId` to API and hence make it available to clients.\\n- Allow `hydra-node` to explicitly synchronize from genesis using `--start-chain-from 0`.\\n- Closed gaps in `hydra-plutus` scripts\\n - bounded transaction validity ([ADR21](https://hydra.family/head-protocol/adr/21/))\\n - enforcing contract continuity via state token in output\\n- Fixed JSON for some logs and smaller build issues reported by new users.\\n\\n## What are the goals of next week\\n\\n- Reach out to have `hydra-tutorial` integrated.\\n- Plan the next couple of months.\\n- Complete checking reimbursing of commits in head validator.\\n- Align plutus scripts to spec and simplify them (identified some simplifications)\\n- Improve mutation framework to be sure we fail tests for the right reasons\\n- Complete the spec except the open points (<5) and also discuss them with researchers."},{"id":"2023-01-13-release","metadata":{"permalink":"/2023-01-13-release","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-13-release.md","source":"@site/blog/2023-01-13-release.md","title":"Node Release Team Update","description":"Node Reelease Update","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"release","permalink":"/tags/release"}],"readingTime":0.64,"hasTruncateMarker":false,"authors":[{"name":"Samuel Leathers","title":"Service Reliability Manager","url":"https://github.com/disassembler","imageURL":"https://github.com/disassembler.png","key":"disassembler"}],"frontMatter":{"title":"Node Release Team Update","slug":"2023-01-13-release","authors":"disassembler","tags":["release"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2023-01-13-hydra"},"nextItem":{"title":"System Test Team Update","permalink":"/2023-01-13-system-test"}},"content":"## Node Reelease Update\\n## 2022-11-02 - 2023-01-13\\n\\n### Executive Summary\\n\\nA 1.35.5 release for single relay P2P is nearly completed and should be released this month. This release is based on\\n`release/1.35` branch and does not bump cardano-ledger.\\n\\nThe team successfully integrated an interim release bump of ledger and consensus into cardano-node master.\\nThis work will not be released in a node version, but will be continued by the current dependency bump in progress.\\n\\nWe anticipate once this dependency bump is completed, regular 2 week releases will be feasible again.\\n\\nThe 1.35.4 release is being ran by more than 70% of stake pools. Planning for the mainnet hard fork date is in progress.\\n\\n### Completed\\n\\n- [Release 1.35.4](https://github.com/input-output-hk/cardano-node/releases/tag/1.35.4)\\n\\n### In Progress\\n\\n- [Release 1.35.5](https://github.com/input-output-hk/cardano-node/commits/release/1.35)\\n\\n * [Test Status](https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.5_rc1/src_docs/source/test_results/node/tag_1_35_5_rc1.rst)"},{"id":"2023-01-13-system-test","metadata":{"permalink":"/2023-01-13-system-test","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-13-system-test.md","source":"@site/blog/2023-01-13-system-test.md","title":"System Test Team Update","description":"High level summary","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"system-test","permalink":"/tags/system-test"}],"readingTime":0.91,"hasTruncateMarker":false,"authors":[{"name":"Dorin Solomon","title":"System Test Team Lead","url":"https://github.com/dorin100","imageURL":"https://github.com/dorin100.png","key":"dorin100"}],"frontMatter":{"title":"System Test Team Update","slug":"2023-01-13-system-test","authors":"dorin100","tags":["system-test"],"hide_table_of_contents":false},"prevItem":{"title":"Node Release Team Update","permalink":"/2023-01-13-release"},"nextItem":{"title":"Mithril Team Update","permalink":"/2023-01-12-mithril"}},"content":"## High level summary\\nDuring the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the _P2P Single\\nRelay_ functionality.\\n\\nWe also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level.\\n\\n## Workstreams\\n\\n### Framework improvements:\\n- extended the _cardano-node-tests_ with the ability for anybody to fork the repo and [run all our System Tests on GitHub Actions](https://tests.cardano.intersectmbo.org/readme.html)\\n- added 2 new nightly pipelines - nightly-mixed and nightly-p2p - [details here](https://tests.cardano.intersectmbo.org/test_results/nightly_system_tests.html)\\n- some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;\\n\\n` === 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) ===\\n to\\n === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===`\\n\\n### Node:\\n- ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled\\n- started the preparations for testing the next tag - [details here](https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.5_rc1/src_docs/source/test_results/node/tag_1_35_5_rc1.rst)\\n\\n### DB-Sync:\\n- some improvements on db-sync sync tests"},{"id":"2023-01-12-mithril","metadata":{"permalink":"/2023-01-12-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-12-mithril.md","source":"@site/blog/2023-01-12-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2023-01-12T00:00:00.000Z","formattedDate":"January 12, 2023","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.165,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2023-01-12-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"System Test Team Update","permalink":"/2023-01-13-system-test"},"nextItem":{"title":"Consensus Team Update","permalink":"/2023-01-11-consensus"}},"content":"## High level overview\\nThe Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an [ADR](https://mithril.network/doc/adr/4). They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.\\n\\nFinally, they have worked on upgrading the `devnet` and fixing some flakiness in the end to end tests of the CI.\\n\\n## Low level overview\\n- Implemented the redaction of an ADR for handling graceful updates of the Mithril Network [#671](https://github.com/input-output-hk/mithril/issues/671)\\n- Worked on a proof of concept to handle backward compatibilty of exchanged messages with `protobuf` [#677](https://github.com/input-output-hk/mithril/issues/677)\\n- Worked on a proof of concept to handle backward compatibilty of exchanged messages with `avro` [#678](https://github.com/input-output-hk/mithril/issues/678)\\n- Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction [#672](https://github.com/input-output-hk/mithril/issues/672)\\n- Worked on upgrading the Cardano node of the Mithril `devnet`, as well as fixing flakiness of the CI [#523](https://github.com/input-output-hk/mithril/issues/523)\\n- Prepared and tested the new `2302` distribution pre-release [2302.0-prerelease](https://github.com/input-output-hk/mithril/releases/tag/2302.0-prerelease)\\n- Updated the documentation for SPO to build a signer node in order to better reflect the new release process [#681](https://github.com/input-output-hk/mithril/issues/681)"},{"id":"2023-01-11-consensus","metadata":{"permalink":"/2023-01-11-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-11-consensus.md","source":"@site/blog/2023-01-11-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2023-01-11T00:00:00.000Z","formattedDate":"January 11, 2023","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":2.35,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2023-01-11-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2023-01-12-mithril"},"nextItem":{"title":"Performance & tracing update","permalink":"/2023-01-11-performance-and-tracing"}},"content":"## High level summary\\n\\nThe consensus team is resuming its activities after the Christmas break. During\\nthese weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and\\ndiscussing with the Ledger team the changes that might be required for the next\\niterations. The pull request that adds the Conway era is waiting for a second\\nreview round and we hope to merge it soon. On the technical debt side we are\\nlooking into a property-test failure found in the iterators. We are\\ninvestigating if this is an error in the model or in the implementation. We also\\nimproved the documentation of our testing code.\\n\\n## Workstreams \\n\\n### UTxO HD Prototype \\n\\nWe worked with the Ledger team to start preparing the next versions of UTxO-HD.\\nThe Ledger team is concerned that for the remaining maps we might need the full\\nledger state on epoch boundaries. Since the main consumer of the ledger rules is\\nConsensus, the code that requires access to a full state could be moved from the\\nledger to some Ledger-Consensus bridge. Eg. the traversal of rewards could take\\nplace in such bridge, instead of querying the ledger for the values that are\\nrequired in the epoch-transition computations.\\n\\nWe [relocated][pull-4234] some UTxO-HD definitions, in preparation for merging\\nthe prototype into `master`.\\n\\nWe also completed updated local benchmarks comparing the replay time and memory\\nconsumption of:\\n\\n- the baseline node (`f2fc76ef45647275c98634da1718290b976ff364`) \\n- the UTxO-HD node with the in-memory backend \\n- the UTxO-HD node with the LMDB backend\\n\\nThe following plot shows the results: we can see that the LMDB node barely\\nreaches 8GB of memory, but it takes 1.78 times longer to replay the chain. The\\nin-memory backend is about 30 minutes faster, but still slower than the baseline\\nversion. We are aware of this phenomenon and it is inherent to the problem of\\nmaintaining sequences of differences of the last `k` ledger states that allows\\nus to perform rollback and roll-forward. We are in the process of measuring\\nsyncing from scratch times.\\n\\n![](/images/consensus/2023-01-11-utxo-hd-replay-benchmarks.png)\\n\\nWe also [added `StaticEither` accessors][pull-4263] that helped us to simplify\\nthe UTxO-HD prototype.\\n\\n### New Conway era\\n\\nWe incorporated the feedback of the [pull request][pull-3971], and rebased this\\nbranch on top of `master`. The PR is pending a second review round and we hope\\nto merge this soon.\\n\\n### Technical debt \\n\\nWe are investigating a [property-testing failure][issue-4183] involving\\niterators. Solving this requires understanding the expected behavior of\\niterators in the counterexample found by `QuickCheck` to determine if the error\\nis in the model or in the implementation.\\n\\n### Fostering collaboration\\n\\nWe [moved][pull-4248] the contents of `docs/Testing.md` closer to the code, so that the\\nexplanations about the tests are easier to find in the relevant modules, and the\\ndocumentation is easier to keep up to date.\\n\\n[pull-4234]: https://github.com/input-output-hk/ouroboros-network/pull/4234\\n[issue-4183]: https://github.com/input-output-hk/ouroboros-network/issues/4183\\n[pull-4248]: https://github.com/input-output-hk/ouroboros-network/pull/4248\\n[pull-3971]: https://github.com/input-output-hk/ouroboros-network/pull/3971\\n[pull-4263]: https://github.com/input-output-hk/ouroboros-network/pull/4263"},{"id":"2023-01-11-performance-and-tracing","metadata":{"permalink":"/2023-01-11-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-11-performance-and-tracing.md","source":"@site/blog/2023-01-11-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2023-01-11T00:00:00.000Z","formattedDate":"January 11, 2023","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":1.865,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2023-01-11-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2023-01-11-consensus"},"nextItem":{"title":"Crypto Team Update","permalink":"/2023-01-06-crypto"}},"content":"## High level summary\\n\\nSince our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:\\n\\n1. SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress.\\n2. The new tracing system: the improved API of the new tracing system was implemented, and we\'re now porting the tracing integration layer over.\\n3. Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks.\\n4. New benchmark deployment infrastructure: we\'ve made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs.\\n5. Legacy benchmarking: we\'ve started merging the legacy benchmark deployment infrastructure into the workbench.\\n6. Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.\\n\\n## Performance\\n\\nThe AWS cluster infrastructure necessary for SECP benchmarking is still being worked on.\\n\\n## Tracing\\n\\nThe improved tracing internals were implemented, and we\'re now into the phase of updating the tracing integration, which is also mostly done.\\n\\n## Infrastructure\\n\\nThanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components.\\n\\nOn the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters.\\nWe now have a very clear and granular method to keep track of protocol parameter evolution -- e.g. the mainnet history changes are now tracked at epoch granularity, while also allowing for systematically described change overlays. This makes the benchmark profile definition much more clear and robust against mistakes.\\n\\nWe also started a merge of the legacy benchmarking environment (based on cardano-ops) into the workbench. The separation between environments was too costly, causing us to reimplement any benchmarking change twice -- first, during development, in the workbench, then in cardano-ops. In addition, maintenance of compatibility code was incurring additional costs, slowing benchmark data analysis development.\\nOnce this merge is complete, this will allow us to sharply cut the benchmark development cycle and overheads."},{"id":"2023-01-06-crypto","metadata":{"permalink":"/2023-01-06-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-06-crypto.md","source":"@site/blog/2023-01-06-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2023-01-06T00:00:00.000Z","formattedDate":"January 6, 2023","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":1.46,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2023-01-06-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2023-01-11-performance-and-tracing"},"nextItem":{"title":"Ledger Team Update","permalink":"/2023-01-05-ledger"}},"content":"## High level summary\\nThe four open fronts that the crypto team is working on are:\\n* MuSig2: The API features (error handling) has been merged. \\n* Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures.\\n* cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. \\n* KES agent: We keep progressing with KES secure forgetting implementation.\\n\\nWe also started working in the cryptography engineering handbook, which will be a cross team effort.\\n\\n## Low level summary\\n### MuSig2\\n* Merged the more granular error handling mechanism [PR#33](https://github.com/input-output-hk/musig2/pull/33)\\n\\n### Mithril\\n* Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in [Version 0.1.1](https://github.com/input-output-hk/kes/commit/9de00835ed354cbb8d37838f6cee57930ea9fd3d), which was published in [crates.io](https://crates.io/crates/kes-summed-ed25519). \\n* Updated new KES format to mithril library [PR 674](https://github.com/input-output-hk/mithril/pull/674)\\n* We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync [PR 531](https://github.com/input-output-hk/mithril/pull/531)\\n* We keep progressing on reducing the use of `transmute` in `mithril-stm`.\\n### cardano-base\\n* Nothing new to report. Still working in merging these PRs. We are only missing nix merge of [PR#520](https://github.com/input-output-hk/iohk-nix/pull/520) and the updates on VRF will be merged.\\n\\n### KES agent\\n* We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests [PR#255](https://github.com/input-output-hk/cardano-base/pull/255#issuecomment-1362601518).\\n\\n### Cryptography handbook\\nWe have made available the (temporary) cryptography handbook https://input-output-hk.github.io/cryptography_spec/, and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives."},{"id":"2023-01-05-ledger","metadata":{"permalink":"/2023-01-05-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-05-ledger.md","source":"@site/blog/2023-01-05-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2023-01-05T00:00:00.000Z","formattedDate":"January 5, 2023","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":4.44,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-01-05-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2023-01-06-crypto"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2022-12-28-node-cli-api"}},"content":"## High level summary\\n\\nThe ledger team finished up the remaining work for tracking individual depots,\\nbuilt out the new Conway era transaction body (in line with CIP-1694),\\ngreatly reduce some problematically large calculations on the epoch boundary,\\nand addressed technical debt.\\n\\n## Lower level summary\\n\\n### Finishing the deposit tracking\\n\\nThe initial work on the individual deposit tracking project focused only on correctness.\\nAs this is a large data structure\\n(since its size is linear with respect to the number of registered stake credentials),\\nit is very important that we also reduce the memory overhead as much as possible.\\nFortunately, we were able to add very little overhead for the deposits by using existing\\nefficient data structures. The extra tracking now only incurs one word (8 bytes)\\nper registered stake credential.\\n\\nSee:\\n* [pull-3195]\\n* [pull-3202]\\n* [pull-3217]\\n\\n### New Conway era transaction\\n\\nWe implemented the Conway era transaction body, which is in line with CIP-1694.\\nNote that the Conway era implements, losing speaking, the parts of CIP-1694 that are not\\nrelated to the liquid democracy (the \\"DReps\\").\\nThe new transaction body adds the new governance actions and votes,\\nwhile also deprecating the old governance structures\\n(i.e. the old protocol parameter updates and MIR certificates).\\n\\nWe also now have the wire specification (CDDL file) and serialization code in place.\\nThe wire specification is still subject to change while we work on the Conway era,\\nbut it is now usable and has proper testing support\\n(so that, for example, the serialization round-trips, etc).\\n\\nSee:\\n* [pull-3176]\\n* [pull-3226]\\n\\n### Optimizing the `TICKF` transition\\n\\nEvery since the release of the Shelley era, we have been working to reduce the computational load\\nplaced on the node by the ledger at the epoch boundary.\\nWhile still not perfect, we believe that we have removed one of the final problematically long\\nepoch boundary computations that exacerbate situations like\\n[this](https://github.com/input-output-hk/cardano-node/issues/4421).\\nIn particular, the problem involved the way in which the consensus layer obtains a view of the\\nledger for the purposes of checking the leadership schedule in a new epoch.\\nWe implemented a stopgap measure which now only incurs a single multi-second cost once per epoch\\ninstead of potentially several multi-second costs while the networks waits for the first block\\nof a new epoch to be minted.\\n\\nSee:\\n* An [ADR](https://github.com/input-output-hk/cardano-ledger/blob/ea48d4815946c4f35239eb41815fe06cd6ffec2e/docs/adr/2022-12-12_007-optimize-ledger-view.md) about the decision.\\n* [pull-3209]\\n\\n### Technical debt\\n\\nWe closed the year out with a lot of reduction to the technical debt!\\n\\n#### Improved ledger event\\n\\n* [pull-3212] - The ledger events are not guaranteed to appear in any given order within a block.\\n For this reason, motivated by the use case in db-sync, the `TotalDeposits` event now\\n includes a transaction ID and emits the _change_ in deposits instead of the value.\\n\\n#### Improved type saftey\\n\\n* [pull-3208] - We replaced `NominalDiffTime` with a newtype wrapper. The problem was that our CBOR\\n encoders and decoders were using the wrong level of precision, having to due with with\\n the Shelley genesis file. We removed the potential problem with a newtype wrapper.\\n* [pull-3167] - We now use a GADT to ensure consistency of the Plutus language in the types\\n for `TransactionScriptFailure` and `PlutusDebug`.\\n\\n#### Code/Module organization\\n\\n* [pull-3175] - The Allegra and Mary eras had an unusual relationship in our codebase,\\n due to the uncertainly of release dates while we were implementing them.\\n In particular, they were coupled in way that is different from the rest of the code base.\\n With hindsight on our side, we split the combined `shelley-ma` Haskell package into two\\n separate ledger era packages, which is now consistent with the rest of the repository\\n and module structure.\\n* [pull-3184] - We created a core test sub-library, cleaning up a lot of our property test\\n generator code.\\n* [pull-3210] - We moved the `KeyPair` type to the test library. Outside of testing,\\n the ledger does not need to deal with signing keys, and since this is a topic that\\n deserves the utmost care, it is best to make it clear that our use of signing keys\\n is only for testing.\\n* [pull-3229] - We split the `Cardano.Ledger.Alonzo.Data` module, which is more consistent with the rest\\n of the codebase.\\n\\n#### Revert pointer address deprecation\\n\\nThanks to one of our excellent internal auditors,\\n[@jmhrpr](https://github.com/jmhrpr),\\nwe now have a better plan for deprecating pointer addresses.\\nThis meant that we had to revert the previous work to deprecate them.\\n\\nSee:\\n* [issue-3161]\\n* [pull-3215]\\n\\n#### Miscellaneous\\n\\n* [pull-3205] - We removed deprecated type synonyms.\\n* [pull-3218] - We cleaned up the address deserialization.\\n* [pull-3223] - We fixed faulty address deserialization tests.\\n* [pull-3222] - We switched to a general type family `TxOut` from concrete ones,\\n reducing many constraints.\\n* [pull-3224] - `ShelleyGenesis` is now parameterized by crypto instead of by era.\\n* [pull-3170] - We set the cabal-version to 3.0 in our projects.\\n* [pull-3172] - We removed the now useless `EncodeMint`/`DecodeMint` classes.\\n* [pull-3225] - We switch from [ormolu](https://hackage.haskell.org/package/ormolu) to \\n [fourmolu](https://hackage.haskell.org/package/fourmolu).\\n The reason was to be able to finally have more diff friendly code!\\n\\n[issue-3161]: https://github.com/input-output-hk/cardano-ledger/issues/3161\\n[pull-3175]: https://github.com/input-output-hk/cardano-ledger/pull/3175\\n[pull-3176]: https://github.com/input-output-hk/cardano-ledger/pull/3176\\n[pull-3184]: https://github.com/input-output-hk/cardano-ledger/pull/3184\\n[pull-3195]: https://github.com/input-output-hk/cardano-ledger/pull/3195\\n[pull-3202]: https://github.com/input-output-hk/cardano-ledger/pull/3202\\n[pull-3205]: https://github.com/input-output-hk/cardano-ledger/pull/3205\\n[pull-3208]: https://github.com/input-output-hk/cardano-ledger/pull/3208\\n[pull-3209]: https://github.com/input-output-hk/cardano-ledger/pull/3209\\n[pull-3210]: https://github.com/input-output-hk/cardano-ledger/pull/3210\\n[pull-3212]: https://github.com/input-output-hk/cardano-ledger/pull/3212\\n[pull-3214]: https://github.com/input-output-hk/cardano-ledger/pull/3214\\n[pull-3215]: https://github.com/input-output-hk/cardano-ledger/pull/3215\\n[pull-3217]: https://github.com/input-output-hk/cardano-ledger/pull/3217\\n[pull-3218]: https://github.com/input-output-hk/cardano-ledger/pull/3218\\n[pull-3222]: https://github.com/input-output-hk/cardano-ledger/pull/3222\\n[pull-3223]: https://github.com/input-output-hk/cardano-ledger/pull/3223\\n[pull-3224]: https://github.com/input-output-hk/cardano-ledger/pull/3224\\n[pull-3225]: https://github.com/input-output-hk/cardano-ledger/pull/3225\\n[pull-3226]: https://github.com/input-output-hk/cardano-ledger/pull/3226\\n[pull-3229]: https://github.com/input-output-hk/cardano-ledger/pull/3229\\n[pull-3167]: https://github.com/input-output-hk/cardano-ledger/pull/3167\\n[pull-3170]: https://github.com/input-output-hk/cardano-ledger/pull/3170\\n[pull-3172]: https://github.com/input-output-hk/cardano-ledger/pull/3172"},{"id":"2022-12-28-node-cli-api","metadata":{"permalink":"/2022-12-28-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-28-node-cli-api.md","source":"@site/blog/2022-12-28-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-12-28T00:00:00.000Z","formattedDate":"December 28, 2022","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.325,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-12-28-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2023-01-05-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/2022-12-16-hydra"}},"content":"# 2022-12-28 - 2023-01-10\\n\\n## High level summary\\n\\n## Completed\\n\\n### docs\\n\\n### CI & project maintenance\\n- [Fix hedgehog-extras sha hash](https://github.com/input-output-hk/cardano-node/pull/4762)\\n- [Update hegehog-extras bounds](https://github.com/input-output-hk/cardano-node/pull/4759)\\n- [GitHub token fix](https://github.com/input-output-hk/cardano-node/pull/4751)\\n- [Use setup-haskell action](https://github.com/input-output-hk/cardano-node/pull/4743)\\n- [Use Github Action to install libsecp256k1](https://github.com/input-output-hk/cardano-node/pull/4738)\\n- [Update index state and hedgehog-extras.](https://github.com/input-output-hk/cardano-node/pull/4714)\\n- [Cleaned cabal files](https://github.com/input-output-hk/cardano-node/pull/4710)\\n- [Add cache versioning](https://github.com/input-output-hk/cardano-node/pull/4737)\\n- [Delete obsolete scripts](https://github.com/input-output-hk/cardano-node/pull/4742)\\n- [Use SECURITY.md published in Cardano Engineering Handbook](https://github.com/input-output-hk/cardano-node/pull/4746)\\n\\n### Developer experience\\n\\n### cardano-cli\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Filter out duplicate collateral inputs in tx build cmds](https://github.com/input-output-hk/cardano-node/pull/4749)\\n- [Optimise query stake-snapshot command](https://github.com/input-output-hk/cardano-node/pull/4754)\\n\\n### cardano-api\\n\\n### cardano-node\\n\\n### cardano-testnet\\n\\n## In Progress\\n\\n## CI & project mainteance\\n- [Copyright updates](https://github.com/input-output-hk/cardano-node/pull/4755)\\n\\n### cardano-cli\\n- [Fix bug in hash computation in cardano-cli genesis create-cardano](https://github.com/input-output-hk/cardano-node/pull/4761)\\n- [Cleanup exports of cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/4636)\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n- [Read network ID from environment](https://github.com/input-output-hk/cardano-node/pull/4666)\\n- [CLI option to append additional signatures to a transactions](https://github.com/input-output-hk/cardano-node/pull/4647)\\n- [Cardano ping](https://github.com/input-output-hk/cardano-node/pull/4664)\\n- [Better error message for query utxo on oops](https://github.com/input-output-hk/cardano-node/pull/4777)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Remove simple script distinction](https://github.com/input-output-hk/cardano-node/pull/4763)\\n- [Export SubmitResult from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4753)\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)\\n\\n### cardano-testnet\\n- [Use Haskell variables for passing values](https://github.com/input-output-hk/cardano-node/pull/4845)"},{"id":"2022-12-16-hydra","metadata":{"permalink":"/2022-12-16-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-16-hydra.md","source":"@site/blog/2022-12-16-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-12-16T00:00:00.000Z","formattedDate":"December 16, 2022","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.27,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-12-16-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2022-12-28-node-cli-api"},"nextItem":{"title":"Mithril Team Update","permalink":"/2022-12-15-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on [the website](https://hydra.family/head-protocol/benchmarks/transaction-cost/) and reduced the cost for commit transactions by ~30% with the help of reference scripts.\\n\\nThe year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.\\n\\n## What did the team achieve this week\\n\\n- Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.\\n- Reduce commit transaction costs by ~30% with reference scripts.\\n- Prepared an RFP for external audit of the Hydra Head solution.\\n- Fixed transaction cost benchmarks for abort tx [#631](https://github.com/input-output-hk/hydra/issues/631).\\n- Recorded decision to use model-based testing ([ADR22](https://hydra.family/head-protocol/adr/22/)) and improved Model [documentation](https://hydra.family/head-protocol/haddock/hydra-node/tests/Hydra-Model.html).\\n - Concluding the first increment on “Validate coordinated Head protocol” [#194](https://github.com/input-output-hk/hydra/issues/194).\\n - Formulated next step / follow-up on testing the Soundness property of our protocol [#656](https://github.com/input-output-hk/hydra/issues/656).\\n- Switched to using nix flakes for development setup and CI build [#646](https://github.com/input-output-hk/hydra/pull/646).\\n\\n## What are the goals of next week\\n\\n- Push [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md) & tx validity gap over the finish line (smoke tests missing).\\n- Integrate the `hydra-tutorial`.\\n- Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.\\n- Close & recap on the year with another monthly report (+ blog post)."},{"id":"2022-12-15-mithril","metadata":{"permalink":"/2022-12-15-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-15-mithril.md","source":"@site/blog/2022-12-15-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2022-12-15T00:00:00.000Z","formattedDate":"December 15, 2022","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.11,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2022-12-15-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2022-12-16-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2022-12-14-consensus"}},"content":"## High level overview\\nThe Mithril team has released the new distribution [`2248.1`](https://github.com/input-output-hk/mithril/releases/tag/2248.1) of their nodes. They have published the first version of the Mithril cryptographic library on [`crates.io`](https://crates.io/crates/mithril-stm), the Rust community\u2019s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.\\n\\nFinally, they have kept on simplifying the aggregator node\'s multi-signer by removing the signer registration and the certificate creation from its responsibilities.\\n\\n## Low level overview\\n- Implemented removing verification key and stake from single signatures [#619](https://github.com/input-output-hk/mithril/issues/619)\\n- Completed the extraction of the signer registration from the multi-signer [#642](https://github.com/input-output-hk/mithril/issues/642)\\n- Completed the extraction of the certificate creation from the multi-signer [#638](https://github.com/input-output-hk/mithril/issues/638)\\n- Implemented a workflow to test client binaries (Linux / MacOS / Windows) [#601](https://github.com/input-output-hk/mithril/issues/601)\\n- Completed the signature of the artifacts produced by the CI [#587](https://github.com/input-output-hk/mithril/issues/587)\\n- Fixed the protocol parameters transition [#627](https://github.com/input-output-hk/mithril/issues/627)\\n- Worked on optimizing the snapshot digest computation [#510](https://github.com/input-output-hk/mithril/issues/510)\\n- Worked on enforcing the API protocol versions in the client and signer [#633](https://github.com/input-output-hk/mithril/issues/633)\\n- Worked on deactivating the non certified signer registration mode [#621](https://github.com/input-output-hk/mithril/issues/621)\\n- Worked on the re-genesis of the test networks [#651](https://github.com/input-output-hk/mithril/issues/651)"},{"id":"2022-12-14-consensus","metadata":{"permalink":"/2022-12-14-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-14-consensus.md","source":"@site/blog/2022-12-14-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2022-12-14T00:00:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":2.995,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-12-14-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2022-12-15-mithril"},"nextItem":{"title":"DB-sync Team Update","permalink":"/2022-12-14-db-sync"}},"content":"## High level summary\\n\\nDuring the past two weeks, the Consensus team finalized the QSM tests for the\\nbacking store and Mempool on the UTxO-HD branch with important discoveries\\nregarding parallel QSM testing. We also worked with the Ledger team to envisage\\nthe modifications that are required in Ledger and Consensus to accommodate the\\nchanges in the crypto VRF and KES. The `db-analyser` now supports bechmarking\\nthe ledger operations, which will allow us to identify, debug, and profile\\npotential performance problems. We drafted a document that defines how to manage\\nthe versions of Consensus-related packages. The top level documentation of\\n`ouroboros-network` now features a description of the consensus components and\\nprovides a hyperlinked map to the modules documentation.\\n\\n## Workstreams\\n\\n### UTxO HD prototype\\n\\nWhereas we had passing sequential state-machine tests for the mempool, the\\nparallel case proved to be more challenging than we thought. The operation of\\nadding a list of transactions to the mempool is not atomic and, as a result,\\nwhen adding a list of transactions, transactions from other processes can be\\nadded in between. The mempool implementation handles this correctly, however\\nthis required us to [redesign][pull-4076] the parallel model we had to take\\nthe lack of atomicity into account.\\n\\n#### Backing store property tests\\n\\nWe finished refactoring the backing store property tests. The second review\\nround is ongoing.\\n\\n### LSM tree implementation\\n\\nWe are working on benchmarking (in terms of time and number of IO operations)\\nfetching/looking up data from disk.\\n\\n### Genesis \\n\\nWe worked on the design of a mechanism to prevent a DoS attack on our Genesis\\ndesign related to rollbacks. This was arguably the biggest outstanding question.\\n\\nDuring the discussions around Genesis, we noticed a design boundary that nicely\\ndelineates a fundamental component. We almost have a full Haskell prototype of\\nit. It will be very nicely self-contained, perhaps even usable in the ultimate\\nimplementation!\\n\\n### New VRF and KES crypto integration\\n\\nWe collaborated with the Ledger team on preparing the ledger state and crypto\\ntypes to avoid huge allocation on the epoch boundary when changing aspects of\\nthe crypto that will only manifest in headers, not in the ledger states.\\n\\n### Technical debt\\n\\nWe merged the [pull-request][pull-4014] that adds a support to `db-analyser` for\\nbenchmarking ledger operations. This will allow us to identify, debug, and\\nprofile potential performance problems. The benchmark focus on the main 5 ledger\\noperations that are involved in chain syncing, block forging, and block\\nvalidation, namely:\\n\\n0. Forecast.\\n1. Header tick.\\n2. Header application.\\n3. Block tick.\\n4. Block application.\\n\\nThe following figure shows a plot of the benchmarking results for the first 65\\nmillion blocks (approximately) of the Cardano chain. The thin yellow lines under\\nthe x-axis show the epoch boundaries, whereas the thick yellow lines correspond\\nto the era transitions.\\n\\n![](/images/consensus/2022-12-14-ledger-ops-benchmark.png)\\n\\nAs we can see in this figure, era and epoch boundaries require more computation\\ntime. The ledger team are aware of this problem, and we are working to improve\\nthis situation.\\n\\n### Fostering collaboration\\n\\nWe [drafted a document][pull-4207] motivating and defining how Consensus (and\\npossibly other core teams) will/should manage our package versions. This\\npull-request garnered many great discussions from our team members and other\\nteams too: Sebastian Nagel, Arnaud Bailly, Michael Peyton-Jones, Ziyang Liu, et\\nal. We want to thank you all for your input, and we found this discussion very\\nenlightening!\\n\\nWe merged the [pull request][pull-4197] that adds an overview of consensus to\\nthe [top level\\ndocumentation](https://ouroboros-network.cardano.intersectmbo.org/) of\\nouroboros-network. This overview describes the consensus components and adds a\\nhyperlinked map to the modules documentation.\\n\\n[pull-4207]: https://github.com/input-output-hk/ouroboros-network/pull/4207\\n[pull-4014]: https://github.com/input-output-hk/ouroboros-network/pull/4014\\n[pull-4076]: https://github.com/input-output-hk/ouroboros-network/pull/4076\\n[pull-4197]: https://github.com/input-output-hk/ouroboros-network/pull/4197"},{"id":"2022-12-14-db-sync","metadata":{"permalink":"/2022-12-14-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-14-db-sync.md","source":"@site/blog/2022-12-14-db-sync.md","title":"DB-sync Team Update","description":"High level summary","date":"2022-12-14T00:00:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.73,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB-sync Team Update","slug":"2022-12-14-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2022-12-14-consensus"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2022-12-14-node-cli-api"}},"content":"## High level summary\\n\\nThe DBSync team continued testing release `13.1.0.0`. The QA team has reported that no issues have\\nbeen found. The DBSync team also worked on cherry-picks back to master and on fixing bugs.\\n\\n## Lower level summary\\n\\n- Release is cherry-picked back to master, which uses the new rollback mechanism which uses\\nreverse indexes, same as the release\\n[#1320](https://github.com/input-output-hk/cardano-db-sync/pull/1320)\\nThis also fixes a bug number of issues on master.\\n- Depenencies upgrade and CHaP integration\\n[#1324](https://github.com/input-output-hk/cardano-db-sync/pull/1324)\\n- AdaPots fix [#1323](https://github.com/input-output-hk/cardano-db-sync/pull/1323). This\\nfixes an issue where the per epoch AdaPots didn\'t match the epoch boundary, but\\nthey also included changes from the first block of the epoch.\\n- Deposits Event fix [#3212](https://github.com/input-output-hk/cardano-ledger/pull/3212). This pr\\nadjusts the Deposits ledger events, so that it can be better used by db-sync. This can reduce the\\nnumber of queries that db-sync does during syncing an make syncing faster."},{"id":"2022-12-14-node-cli-api","metadata":{"permalink":"/2022-12-14-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-14-node-cli-api.md","source":"@site/blog/2022-12-14-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-12-14T00:00:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.46,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-12-14-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"DB-sync Team Update","permalink":"/2022-12-14-db-sync"},"nextItem":{"title":"Performance & tracing update","permalink":"/2022-12-14-performance-and-tracing"}},"content":"# 2022-12-14 - 2022-12-27\\n\\n## High level summary\\n\\nPRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped. \\n\\n## Completed\\n\\n### docs\\n\\n- [Move style guide to wiki](https://github.com/input-output-hk/cardano-node/pull/4703)\\n\\n### CI & project maintenance\\n\\n- [Cache secp256k1](https://github.com/input-output-hk/cardano-node/pull/4734)\\n- [Use cabal-cache](https://github.com/input-output-hk/cardano-node/pull/4717)\\n- [build(deps): bump certifi from 2020.4.5.2 to 2022.12.7 in /doc/.sphinx](https://github.com/input-output-hk/cardano-node/pull/4699)\\n- [Update cabal.project](https://github.com/input-output-hk/cardano-node/pull/4724)\\n\\n### Developer experience\\n\\n- [Add aarch64-darwin to nix-shell](https://github.com/input-output-hk/cardano-node/pull/4125)\\n\\n### cardano-cli\\n- [Improved error message for failed asset name decode](https://github.com/input-output-hk/cardano-node/pull/4626)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Remove cardano-cli address build-script](https://github.com/input-output-hk/cardano-node/pull/4700)\\n\\n### cardano-api\\n- [Move signing key reading to cardano-api](https://github.com/input-output-hk/cardano-node/pull/4698)\\n\\n### cardano-node\\n\\n### cardano-testnet\\n- [Only run chairman test on latest era](https://github.com/input-output-hk/cardano-node/pull/4712)\\n- [Add fix and test for `foldBlocks`](https://github.com/input-output-hk/cardano-node/pull/4679)\\n\\n## In Progress\\n\\n## CI & project mainteance\\n- [Copyright updates](https://github.com/input-output-hk/cardano-node/pull/4755)\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n- [Read network ID from environment](https://github.com/input-output-hk/cardano-node/pull/4666)\\n- [CLI option to append additional signatures to a transactions](https://github.com/input-output-hk/cardano-node/pull/4647)\\n- [Cardano ping](https://github.com/input-output-hk/cardano-node/pull/4664)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)\\n\\n### cardano-testnet\\n- [Cleanup exports of cardano-testnet](https://github.com/input-output-hk/cardano-node/pull/4636)"},{"id":"2022-12-14-performance-and-tracing","metadata":{"permalink":"/2022-12-14-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-14-performance-and-tracing.md","source":"@site/blog/2022-12-14-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2022-12-14T00:00:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":3.095,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2022-12-14-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2022-12-14-node-cli-api"},"nextItem":{"title":"Network Team Update","permalink":"/2022-12-12-network"}},"content":"## High level summary\\n\\n1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.\\n2. A new workstream for Plutus cost modeling improvement: we\'ve planned and started implementing the smart contract call overhead measurement machinery.\\n3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we\'re continuing with the further performance-oriented rework of the internals.\\n4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.\\n5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.\\n\\n## Performance\\n\\nThe SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we\'ll be running the model cluster workload.\\n\\nWe\'ve also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.\\n\\n## Tracing\\n\\nAfter the initial model-scale performance data caused us to panic, among other things we\'ve done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.\\n\\nTo understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:\\n\\n 1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that\'s also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.\\n 2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it\'s the fair benchmark, because that\'s the way we expect SPO\'s to set up tracing. That, however also causes it to do more work.\\n\\nAll that said, since we\'ve established the performance of the new system to be adequate for the release, we won\'t be delaying it much further.\\n\\nIn addition, we\'re still pursuing our performance-enhancing rework of the new tracing internals.\\n\\n## Infrastructure\\n\\nAfter implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.\\n\\nMoving to analysis, we\'ve also improved provenance of the raw data, by collecting more identification information and statistics about it.\\nThis means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis.\\nThis will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports.\\n\\nA new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches.\\nPreviously we only had automation for two aspects separately, so we only could either:\\n - compare individual runs (used for different node configurations / versions)\\n - collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version)\\nNaturally, combining these two capabilities was a long-desired feature of our analysis pipeline."},{"id":"2022-12-12-network","metadata":{"permalink":"/2022-12-12-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-12-network.md","source":"@site/blog/2022-12-12-network.md","title":"Network Team Update","description":"High level summary","date":"2022-12-12T00:00:00.000Z","formattedDate":"December 12, 2022","tags":[{"label":"network","permalink":"/tags/network"},{"label":"release","permalink":"/tags/release"}],"readingTime":0.43,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-12-12-network","authors":"coot","tags":["network","release"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2022-12-14-performance-and-tracing"},"nextItem":{"title":"Crypto Team Update","permalink":"/2022-12-09-crypto"}},"content":"## High level summary\\n\\nIn last sprint the team focused on preparations for the conference talk at\\n[OPODIS 2022]. We also worked on preparations to publish `io-sim` and related\\npackages on Hackage ([PR #57], [PR #60]).\\n\\nWe also started reviewing:\\n* `ouroboros-network`\\n* `cardano-node`\\n* `cardano-ledger`\\nrepositories for open-source readiness ([PR #4128]).\\n\\nWe prepared a PR which changes how `node-to-node` and `node-to-client` protocol\\nversiones are serialised in `cardano-node` log ([PR #4691]).\\n\\n[OPODIS 2022]: https://sites.uclouvain.be/OPODIS2022/\\n[PR #57]: https://github.com/input-output-hk/io-sim/pull/57\\n[PR #60]: https://github.com/input-output-hk/io-sim/pull/60\\n[PR #4128]: https://github.com/input-output-hk/ouroboros-network/pull/4218\\n[PR #4691]: https://github.com/input-output-hk/cardano-node/pull/4691"},{"id":"2022-12-09-crypto","metadata":{"permalink":"/2022-12-09-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-09-crypto.md","source":"@site/blog/2022-12-09-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2022-12-09T00:00:00.000Z","formattedDate":"December 9, 2022","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":1.39,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2022-12-09-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2022-12-12-network"},"nextItem":{"title":"Hydra Team Update","permalink":"/2022-12-09-hydra"}},"content":"## High level summary\\nThe four open fronts that the crypto team is working on are:\\n* MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency. \\n* Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe. \\n* cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack. \\n* KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.\\n\\n## Low level summary\\n### MuSig2\\n* [Still in progress] We are introducing a more granular error handling mechanism [PR#33](https://github.com/input-output-hk/musig2/pull/33)\\n* We merged the API redesig [PR#35](https://github.com/input-output-hk/musig2/pull/35)\\n* We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We\'ll probably circle back to this in the future [PR#36](https://github.com/input-output-hk/musig2/pull/36)\\n\\n### Mithril\\n* We merged the individual signature [PR#620](https://github.com/input-output-hk/mithril/pull/620)\\n* We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser ([kes repo](https://github.com/input-output-hk/kes/commits/master)) \\n\\n### cardano-base\\n* Nothing new to report. Still working in merging these PRs. \\n* We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a [bug in GHC](https://gitlab.haskell.org/ghc/ghc/-/issues/22564)\\n\\n## KES agent\\n* We keep progressing in the secure forgetting PR and resolving some bugs on memory handling [PR#255](https://github.com/input-output-hk/cardano-base/pull/255)\\n* Fixed a \'use-after-free\' bug in the KES agent."},{"id":"2022-12-09-hydra","metadata":{"permalink":"/2022-12-09-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-09-hydra.md","source":"@site/blog/2022-12-09-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-12-09T00:00:00.000Z","formattedDate":"December 9, 2022","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.62,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-12-09-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2022-12-09-crypto"},"nextItem":{"title":"Ledger Team Update","permalink":"/2022-12-09-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has worked on completing to \\"Validate coordinated head protocol against formal model\\", this is a huge step to verify the implementation is secure. They also worked on implementing [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md) related to bounded tx validity which is now under review. [HydraPay](https://github.com/obsidiansystems/hydra-pay) project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of [issues](https://github.com/obsidiansystems/hydra-pay/issues?q=is%3Aissue) they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.\\n\\n## What did the team achieve this week\\n\\n- Document model based testing [#194](https://github.com/input-output-hk/hydra/issues/194) & [#641](https://github.com/input-output-hk/hydra/issues/641)\\n- Got [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md), reducing gaps between implementation and specification, under review.\\n- Complete review on `hydra-tutorial`.\\n- Complete first round of review on `HydraPay` work [#634](https://github.com/input-output-hk/hydra/issues/634)\\n- Meeting with `Director of CyberSecurity` frio `IOG` to unblock \\"the RFP prepared for the external audit\\" [#606](https://github.com/input-output-hk/hydra/issues/606)\\n- Remove `vasil-dev` and `testnet` from `smoke-test` because they were not working [#630](https://github.com/input-output-hk/hydra/issues/630)\\n- Fix flaky `plutus-merkle-tree` test [#642](https://github.com/input-output-hk/hydra/issues/642)\\n- Refactor `NetworkSpec` to improve legilibility.\\n- Fix benchmark cost for `abortTx` [#631](https://github.com/input-output-hk/hydra/issues/631)\\n- Adapt `nix.conf` to the recent hydra-ci nix cache migration.\\n\\n## What are the goals of next week\\n\\n- Get [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md) accepted & close tx validity gap in our implementation.\\n- Integrate the `hydra-tutorial`.\\n- Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.\\n- Get Cicero (new CI) working.\\n- Use reference inputs to reduce the cost of the `commitTx`."},{"id":"2022-12-09-ledger","metadata":{"permalink":"/2022-12-09-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-09-ledger.md","source":"@site/blog/2022-12-09-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-12-09T00:00:00.000Z","formattedDate":"December 9, 2022","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.87,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-12-09-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2022-12-09-hydra"},"nextItem":{"title":"Hydra Team Update","permalink":"/2022-12-02-hydra"}},"content":"## High level summary\\n\\nThe Plutus tools team at IOG has started helping the ledger team to build out a user friendly\\n`cardano-ledger-api` package!\\nA [GitHub project](https://github.com/input-output-hk/cardano-ledger/projects/5)\\nwill be filled out in the days ahead,\\npeople interested in the API can use it to follow along and join in on the conversations.\\n\\nThe ledger team has started using\\n[architectural decision records](https://github.com/input-output-hk/cardano-ledger/blob/6fc0e198560fb4169d435da882394930789a8af8/docs/adr/2022-12-01_001-record-architectural-decisions.md)\\nto leave a record of important decisions that the team makes.\\nWe will retroactively go back through past decisions and make ADRs for them.\\n\\nThe logic to track individual deposits is now nearly in place.\\nWe are prioritizing correctness with our first pull request, and will follow up with\\nperformance optimizations and general cleanup next.\\n\\nPointer addresses are being deprecated with the Cardano major protocol version 8.\\nSee [CPS-0002](https://github.com/cardano-foundation/CIPs/pull/374)\\nfor more context.\\n\\n## Lower level summary\\n\\n#### Cardano ledger API\\n\\nThe **Plutus tools team** has taken our minimal `cardano-ledger-api` package and started filling it\\nout and adding much needed documentation.\\nThey have also added doctests!\\nIn the days to come, the Plutus tools team will map out a lot more work for the API and record\\nit in this\\n[GitHub project](https://github.com/input-output-hk/cardano-ledger/projects/5).\\n\\nSee\\n\\n* [pull-3182]\\n* [pull-3188]\\n\\n#### Architectural Decision Records (ADRs)\\n\\nWe are now providing more context and leaving a record of important decisions that are made\\nin the ledger. The first ADR explains the very lightweight process.\\n\\nSee\\n\\n* [pull-3177] (rendered [here](https://github.com/input-output-hk/cardano-ledger/blob/6fc0e198560fb4169d435da882394930789a8af8/docs/adr/2022-12-01_001-record-architectural-decisions.md))\\n\\n#### Tracking individual deposits\\n\\nSee [ADR-3](https://github.com/input-output-hk/cardano-ledger/pull/3190/files)\\nfor background.\\nWe now have the logic in place to track individual deposits, and a host of property tests\\nto make sure that the logic is correct.\\nThe current implementation uses more memory than it needs to, and we will address that next,\\nwith our hope being to only use one word (8 bytes) per registered stake credential.\\nThere is a fair amount of other cleanup needed for general maintainability.\\n\\nSee\\n\\n* [pull-3127]\\n* [pull-3195]\\n* [pull-3202]\\n\\n#### Removing pointer addresses\\n\\nPointer addresses, which have never seen any real use\\n(there are something like eleven on mainnet), are being deprecated starting at Cardano major\\nversion 9.\\n[CPS-0002](https://github.com/cardano-foundation/CIPs/pull/374) gives the context.\\nWe are disabling them by first preventing transaction outputs containing them\\nfrom being serialized by the node at the moment we switch to version 9.\\nAt the hard fork after that, we will translate the existing few pointer addresses\\nto enterprise addresses.\\n\\nSee\\n\\n* [pull-3174]\\n\\n#### Technical debt\\n\\n* [pull-3162] - Sometimes we have to put safeguards in place for hard forks which may never\\n be exercised. After we have passed the given hardfork, we are able to clean up the code\\n and simplify our logic. We removed all of the ones that we are currently easily able to.\\n* [pull-3165] - We improved the type safety of our code while also discovering and fixing\\n a serialization bug.\\n* [pull-3172] - We removed dead code.\\n* [pull-3175] - The Allegra and the Mary code used to be coupled in a particular way the we grew to\\n dislike. We made these two ledger eras now uniform with the rest of our code base.\\n* [pull-3184] - We organized our property testing code.\\n* [pull-3200] - The Plutus tools teams fixed an outstanding bug in the translation from the\\n ledger state to the Plutus script context.\\n\\n\\n[pull-3127]: https://github.com/input-output-hk/cardano-ledger/pull/3127\\n[pull-3162]: https://github.com/input-output-hk/cardano-ledger/pull/3162\\n[pull-3165]: https://github.com/input-output-hk/cardano-ledger/pull/3165\\n[pull-3170]: https://github.com/input-output-hk/cardano-ledger/pull/3170\\n[pull-3172]: https://github.com/input-output-hk/cardano-ledger/pull/3172\\n[pull-3174]: https://github.com/input-output-hk/cardano-ledger/pull/3174\\n[pull-3175]: https://github.com/input-output-hk/cardano-ledger/pull/3175\\n[pull-3177]: https://github.com/input-output-hk/cardano-ledger/pull/3177\\n[pull-3182]: https://github.com/input-output-hk/cardano-ledger/pull/3182\\n[pull-3184]: https://github.com/input-output-hk/cardano-ledger/pull/3184\\n[pull-3188]: https://github.com/input-output-hk/cardano-ledger/pull/3188\\n[pull-3190]: https://github.com/input-output-hk/cardano-ledger/pull/3190\\n[pull-3195]: https://github.com/input-output-hk/cardano-ledger/pull/3195\\n[pull-3200]: https://github.com/input-output-hk/cardano-ledger/pull/3200\\n[pull-3202]: https://github.com/input-output-hk/cardano-ledger/pull/3202"},{"id":"2022-12-02-hydra","metadata":{"permalink":"/2022-12-02-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-02-hydra.md","source":"@site/blog/2022-12-02-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-12-02T00:00:00.000Z","formattedDate":"December 2, 2022","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.965,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-12-02-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2022-12-09-ledger"},"nextItem":{"title":"DB sync Team Update","permalink":"/2022-12-01-db-sync"}},"content":"## High-level summary\\n\\nThis week, the Hydra team has worked on cleaning up several things in progress\\nafter last week\'s summit. They have extended their model-based testing (MBT)\\napproach with transaction creation & observation\\n[#410](https://github.com/input-output-hk/hydra/issues/410), solved\\n`AcquirePointTooOld` problems of the `hydra-node` with by changing the wallet\\ninitialization [#439](https://github.com/input-output-hk/hydra/issues/439).\\nAlso, the Hydra researchers updated the security proofs of the Coordinated Hydra\\nHead, which are bound to be included in the Hydra HeadV1 specification.\\n\\n## What did the team achieve this week\\n\\n- Monthly review & report - will also be published on our website [#644](https://github.com/input-output-hk/hydra/pull/644)\\n- Extended the model-based testing (MBT) with transaction creation/observation [#410](https://github.com/input-output-hk/hydra/issues/410)\\n- Solve `AcquirePointTooOld` problems with new wallet initialization [#439](https://github.com/input-output-hk/hydra/issues/439)\\n- Fixed our hydraw deployments (EC2 instances)\\n- Created & discussed [ADR21](https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md) within tx validity work\\n- Received & discussed security proofs of Coordinated Hydra Head (requires more work)\\n\\n## What are the goals of next week\\n\\n- Get ADR21 accepted & close tx validity gap in our implementation\\n- Complete review & integrate the Hydra tutorial\\n- Review latest hydra-pay work\\n- Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec\\n- Get Cicero (new CI) working"},{"id":"2022-12-01-db-sync","metadata":{"permalink":"/2022-12-01-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-01-db-sync.md","source":"@site/blog/2022-12-01-db-sync.md","title":"DB sync Team Update","description":"High level summary","date":"2022-12-01T00:00:00.000Z","formattedDate":"December 1, 2022","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.78,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB sync Team Update","slug":"2022-12-01-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2022-12-02-hydra"},"nextItem":{"title":"Mithril Team Update","permalink":"/2022-12-01-mithril"}},"content":"## High level summary\\n\\nThe DB Sync team prepared a release `13.1.0.0-rc2` which includes many improvements for db-sync,\\nit makes rollbacks and syncing much faster, simplifies the schema, fixes bugs and introduces\\nmigrations. This release finalises the objectives that were set for db-sync for the previous\\n3 months period and part of the syncing speed objective set for the next period\\n[Changelog](https://github.com/input-output-hk/cardano-db-sync/blob/3640e5aa00b8bada61e5d4b6eee063749866711b/cardano-db-sync/CHANGELOG.md#13100)\\n\\n## Lower level summary\\n- Branch [release/13.1.0.x](https://github.com/input-output-hk/cardano-db-sync/compare/release/13.0.x..3640e5aa00b8bada61e5d4b6eee063749866711b)\\nincludes all the improvements related to the release. The release is passing through the testing\\nphase and a number of bugs and issues have been fixed, like\\n[#1312](https://github.com/input-output-hk/cardano-db-sync/issues/1312)\\n[#1311](https://github.com/input-output-hk/cardano-db-sync/issues/1311).\\nAlso many new unit tests have been added.\\n\\n- Part of the release branch is cherry-picked back into master, in a way that it respects the new\\nrelease and development process, so that it takes into account migrations\\n[release process](https://github.com/input-output-hk/cardano-db-sync/issues/1305)\\n\\n- The DB Sync team has also tagged release `13.0.6` which better supports preview and preprod for\\ndocker."},{"id":"2022-12-01-mithril","metadata":{"permalink":"/2022-12-01-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-01-mithril.md","source":"@site/blog/2022-12-01-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2022-12-01T00:00:00.000Z","formattedDate":"December 1, 2022","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.04,"hasTruncateMarker":false,"authors":[{"name":"Jean-Philippe Raynaud","title":"Mithril Tech Lead","url":"https://github.com/jpraynaud","imageURL":"https://github.com/jpraynaud.png","key":"jpraynaud"}],"frontMatter":{"title":"Mithril Team Update","slug":"2022-12-01-mithril","authors":"jpraynaud","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"DB sync Team Update","permalink":"/2022-12-01-db-sync"},"nextItem":{"title":"System Test Team Update","permalink":"/2022-12-01-system-test"}},"content":"## High level overview\\nThe Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes. \\n\\nFinally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.\\n\\n## Low level overview\\n- Implemented custom Mithril SPOs on testing/pre-release networks [#563](https://github.com/input-output-hk/mithril/issues/563)\\n- Deprecated Signer Declarative Pool Id registration mode [#585](https://github.com/input-output-hk/mithril/issues/585)\\n- Completed the second stage of the store automatic migration process [#600](https://github.com/input-output-hk/mithril/issues/600)\\n- Completed the deployment pipelines to crates.io registry [#588](https://github.com/input-output-hk/mithril/issues/588)\\n- Completed automatic generation of nodes/libraries versions manifest in releases notes [#599](https://github.com/input-output-hk/mithril/issues/599)\\n- Completed CI/CD handling of PR from forks [#597](https://github.com/input-output-hk/mithril/issues/597)\\n- Worked on the CIP design for Mithril piggybacked on the Cardano network layer [#586](https://github.com/input-output-hk/mithril/issues/586)\\n- Worked on signing the artifacts released in the distributions by the CI/CD [#587](https://github.com/input-output-hk/mithril/issues/587)\\n- Worked on multi-platforms end to end test [#601](https://github.com/input-output-hk/mithril/issues/601)\\n- Worked on the refactorizaton of the aggregator multi-signer engine [#398](https://github.com/input-output-hk/mithril/issues/398)"},{"id":"2022-12-01-system-test","metadata":{"permalink":"/2022-12-01-system-test","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-01-system-test.md","source":"@site/blog/2022-12-01-system-test.md","title":"System Test Team Update","description":"High level summary","date":"2022-12-01T00:00:00.000Z","formattedDate":"December 1, 2022","tags":[{"label":"system-test","permalink":"/tags/system-test"}],"readingTime":0.765,"hasTruncateMarker":false,"authors":[{"name":"Dorin Solomon","title":"System Test Team Lead","url":"https://github.com/dorin100","imageURL":"https://github.com/dorin100.png","key":"dorin100"}],"frontMatter":{"title":"System Test Team Update","slug":"2022-12-01-system-test","authors":"dorin100","tags":["system-test"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2022-12-01-mithril"},"nextItem":{"title":"Consensus Team Update","permalink":"/2022-11-30-consensus"}},"content":"## High level summary\\nDuring the last 2 weeks we did more improvements on our Test Framework, planned the testing of the _P2P Single \\nRelay_ functionality, and also tested some DB-Sync tags.\\n\\n## Workstreams\\n\\n### Framework improvements:\\n- moved the System Test CLI Pipelines from BuildKite to Github Actions\\n- improved the reporting tools to support the rerun of the failled tests and update of the reports \\n- added support for Github API in [report-aggregator](https://github.com/mkoura/report-aggregator), so reports will be generated from the GitHub nightly jobs from now on\\n- added support for mixed topology - P2P, legacy, mixed topologies\\n- planned the P2P Single Relay system test activities \\n- added support to start regression tests with PV8 + better selection of tests\\n\\n### DB-Sync:\\n- confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)\\n- tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2"},{"id":"2022-11-30-consensus","metadata":{"permalink":"/2022-11-30-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-30-consensus.md","source":"@site/blog/2022-11-30-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2022-11-30T00:00:00.000Z","formattedDate":"November 30, 2022","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":2.4,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-11-30-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"System Test Team Update","permalink":"/2022-12-01-system-test"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2022-11-30-node-cli-api"}},"content":"## High level summary\\n\\nDuring the past two weeks, the consensus team merged improvements to the monadic\\ncursor API that was needed to implement LMDB range reads, which is in turn\\nrequired for the implementation of the UTxO HD feature. We added tables to\\nseveral tests in for the UTxO HD feature, which increases our confidence in the\\ncorrectness of the prototype. The mempool property tests are close to being\\ncompleted. Also, we finished the LSM tree tuning algorithm.\\n\\nOn the Genesis front we started simplifying the BlockFetch logic with\\nCSJ-specific workloads in mind. \\n\\nWe are also documenting the Block Diffusion Pipelining feature, and added a\\nhigh-level overview of consensus to the top level documentation of\\n`ouroboros-network`.\\n\\n## Workstreams\\n\\n### UTxO HD prototype\\n\\nWe merged the implementation of a monadic cursor API ([#1][pull-1])) which was\\nneeded to solve a bug with LMDB range-reads. After this PR was merged, we focused on\\nbridging the gap between the `lmdb-simple` interface and consensus by facilitating\\nusing `lmdb-simple`\'s cursor API without `Serialise` constraints ([#3][pull-3]).\\n\\nWe refactored the backing store property tests to use `quickcheck-lockstep`\\n([#4081][pull-4081]).\\n\\nWe added tables to the mock ledger in the UTxO-HD feature branch\\n([#4184][pull-4184]). Every test that used to run with `SimpleBlocks` now uses\\ntables. This will enable us to exercise the UTxO HD mempool integration by\\nleveraging the existing mempool property-tests. The new state-machine\\nproperty-tests are still needed for testing the parallel behaviour of the\\nmempool.\\n\\nOur work on the mempool state-machine tests revealed the need for improvements\\nin the `quickcheck-state-machine` library. Parallel testing assumed that the\\nstate machine did not have access to mutable references. However, the mempool\\ntests require the use of such mutable references for mocking the ledger\\ninterface. As a result, our parallel tests were failing with rather obscure\\nmessages. @Jasagredo submitted a pull request ([#12][pull-12]) that allows for\\nnew mutable references to be created at each run of the state machine.\\n\\n#### Backing store property tests\\n\\n### LSM tree implementation\\n\\nWe finished the LSM Tree tuning algorithm. We are currently tidying up the code\\nand gathering results (i.e., plots and their interpretation).\\n\\n### CSJ prototype\\n\\nWe started simplifying the BlockFetch logic with CSJ-specific workloads in mind.\\n\\n### New VRF and KES crypto integration\\n\\nStarted working on supporting new version of `StandardCrypto` which uses compact\\nKES and batched VRF ([#4151][issue-4151]).\\n\\n### Technical debt\\n\\nWe reviewed the existing state of the Block Diffusion Pipelining document. We\\nare now working on the \\"Implementation\\" section ([#4020][issue-4020]).\\n \\n### Fostering collaboration\\n\\nWe cleared up our understanding of the error dynamics of forecasting\\n([#4146][pull-4146] and [#4174][pull-4174]).\\n\\nWe submitted a pull request that adds an overview of consensus to the [top level\\ndocumentation](https://ouroboros-network.cardano.intersectmbo.org/) of\\nouroboros-network ([#4197][pull-4197]). This overview describes the consensus components and adds a\\nhyperlinked map to the modules documentation.\\n\\nhttps://github.com/input-output-hk/ouroboros-network/pull/4197\\n\\n\\n[issue-4151]: https://github.com/input-output-hk/ouroboros-network/issues/4151\\n[pull-1]: https://github.com/input-output-hk/lmdb-simple/pull/1\\n[pull-3]: https://github.com/input-output-hk/lmdb-simple/pull/3\\n[pull-4081]: https://github.com/input-output-hk/ouroboros-network/pull/4081\\n[pull-4184]: https://github.com/input-output-hk/ouroboros-network/pull/4184\\n[pull-12]: https://github.com/stevana/quickcheck-state-machine/pull/12\\n[pull-4146]: https://github.com/input-output-hk/ouroboros-network/pull/4146\\n[pull-4174]: https://github.com/input-output-hk/ouroboros-network/pull/4174 \\n[issue-4020]: https://github.com/input-output-hk/ouroboros-network/issues/4020\\n[pull-4197]: https://github.com/input-output-hk/ouroboros-network/pull/4197"},{"id":"2022-11-30-node-cli-api","metadata":{"permalink":"/2022-11-30-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-30-node-cli-api.md","source":"@site/blog/2022-11-30-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-11-30T00:00:00.000Z","formattedDate":"November 30, 2022","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.01,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-11-30-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2022-11-30-consensus"},"nextItem":{"title":"Performance & tracing update","permalink":"/2022-11-30-performance-and-tracing"}},"content":"# 2022-11-30 - 2022-12-13\\n\\n## High level summary\\n\\nPRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped. \\n## Completed\\n\\n### docs\\n\\n### cardano-cli\\n- [Append tx output in cli transaction build command](https://github.com/input-output-hk/cardano-node/pull/4675)\\n- [Update Error messages in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4592)\\n\\n### cardano-api\\n\\n### cardano-node\\n- [Replace Data.Map with Data.Map.Strict](https://github.com/input-output-hk/cardano-node/pull/4675)\\n- [Update Github actions](https://github.com/input-output-hk/cardano-node/pull/4708)\\n\\n### cardano-testnet\\n\\n## In Progress\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n- [Render consistent plutus script failure output](https://github.com/input-output-hk/cardano-node/pull/4659)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n- [Fully remove the cli intermediate TxBody format](https://github.com/input-output-hk/cardano-node/pull/4713)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-11-30-performance-and-tracing","metadata":{"permalink":"/2022-11-30-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-30-performance-and-tracing.md","source":"@site/blog/2022-11-30-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2022-11-30T00:00:00.000Z","formattedDate":"November 30, 2022","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":1.95,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2022-11-30-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2022-11-30-node-cli-api"},"nextItem":{"title":"Network Team Update","permalink":"/2022-11-28-network"}},"content":"## High level summary\\n\\n1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.\\n2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.\\n3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.\\n4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.\\n5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.\\n\\n## Performance\\n\\nWe have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don\'t see any significant performance changes. The component bumps are therefore clear for release.\\n\\n## Tracing\\n\\nFor the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them.\\nThe idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time.\\n\\nTo support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics.\\n\\n## Infrastructure\\n\\nGeneration support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation.\\n\\nIn addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model.\\n\\nThe intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged.\\nWe are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration.\\n\\nWe continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability.\\n\\nWe are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP.\\n\\nAs usual, a number of smaller workbench, data analysis & reporting improvements have been made."},{"id":"2022-11-28-network","metadata":{"permalink":"/2022-11-28-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-28-network.md","source":"@site/blog/2022-11-28-network.md","title":"Network Team Update","description":"Stake-Driven Data Diffusion Release for Relays","date":"2022-11-28T00:00:00.000Z","formattedDate":"November 28, 2022","tags":[{"label":"network","permalink":"/tags/network"},{"label":"release","permalink":"/tags/release"}],"readingTime":3.675,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-11-28-network","authors":"coot","tags":["network","release"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2022-11-30-performance-and-tracing"},"nextItem":{"title":"Crypto Team Update","permalink":"/2022-11-25-crypto"}},"content":"## Stake-Driven Data Diffusion Release for Relays\\n\\nIOG networking team decided to release the _Stake-Driven Data Diffusion with\\nRobust Optimised Peer Selection_ also more commonly known as _P2P_. In the\\nlast update, we informed about a performance regression, but it turns out it\\nonly affects block producers, and thus we highly advise against running it on\\nsuch nodes. Further investigation is required to find the cause of it.\\n\\nOn IOG\'s benchmarking cluster we have seen quite a good performance improvement\\non block propagation itself. The cluster is running a static topology with\\nvalency 6 (each node is connected to 6 other nodes). In which every of the 50\\nnodes are block producers. The setup of this network is the same as mainnet.\\nWe\'ve seen 40-50% performance improvement on block propagation comparing to the\\nsame cluster deployed with the same topology but using non-P2P nodes. We think\\nthis performance improvement is caused by using full duplex connections. Quite\\nlikely the transaction traffic floating in both directions on the same TCP\\nconnection helps to keep the TCP window open. Note that in a cluster of 50\\nnodes with valency 6 the probability of having at least one duplex connection\\nis more than 50%. We don\'t expect the same improvement on mainnet because the\\nnetwork is much wider and the transaction traffic is not as large.\\n\\nJust before the release we squashed two small bugs:\\n\\n* [issue #4163] - top level integration bug in `keep-alive`;\\n* [issue #4177] - a bug in `outbound-governor`;\\n* [PR #4165] - a fix `cardano-ping` support of `NodeToNodeV_10`.\\n\\n\\n### Peer Sharing\\n\\nWe were carrying a review of [peer sharing PR][PR #4019].\\n\\n### DeltaQ\\n\\nNeil Davies was invited to give a guest lecture entitled `Avoiding System Catastrophes` at [UCLouvain].\\n\\n## What have we achieve last sprint\\n\\n* [issue #4163]: we found out that a control message is not passed to the\\n `keep-alive` mini-protocol, this results in every demotion executing demotion\\n timeout rather than a graceful termination. With the fix the node will no longer log:\\n ```json\\n { \\"kind\\": \\"PeerStatusChangeFailure\\"\\n , \\"peerStatusChangeType\\": \\"WarmToCold (ConnectionId {localAddress = 192.168.0.10:7000, remoteAddress = 3.129.186.40:3000})\\"\\n , \\"reason\\": \\"TimeoutError\\"\\n }\\n ````\\n\\n* [issue #4177]: we fixed an assertion failure in the `outbound-governor`; now\\n we don\'t try demoted peers which are being demoted already.\\n\\n* [PR #4155]: we refactored `ouroboros-network` packages. There\'s a top level\\n `ouroboros-consensus-diffusion` package which integrates `network`\\n & `consensus` code. We also introduced:\\n\\n - `ouroboros-network-api` package which contains the API shared between\\n `network` & `conensus`;\\n - `ouroboros-network-mock` package which contains mock API used for testing\\n (e.g. a mock chain & chain producer, etc.)\\n - `ouroboros-network-protocols` package which contains implementation of all\\n (but `handshake`) mini-protocols, exposes a `testlib` and contains `test`\\n and `cddl` components.\\n\\n This made the dependency tree of `network` & `consensus` packages much\\n cleaner.\\n\\n* [PR #4169]: we described the usage of release branches in `CONTRIBUTING.md`\\n doc.\\n\\n* [PR #4165]: we fixed `cardano-ping` support of `NodeToNodeV_10` protocol.\\n\\n\\n### DeltaQ\\n\\nThe abstract of the talk:\\n\\n> An essential step to ensuring that distributed systems are fit for\\n> purpose.\\n>\\n> Distributed systems have become an integral part of our society and\\n> daily lives. We are, both implicitly and explicitly, individually as well as\\n> collectively, placing ever more trust in them.\\n>\\n> Are they worthy of this trust? Our need for them to be \u2018fit-for-purpose\u2019 goes\\n> well beyond notions of functional correctness (i.e. never getting the wrong\\n> answer). We need them to deliver the desired outcomes in a timely, robust,\\n> reliable, resilient fashion, at scale and in a sustainable way (both\\n> economically and environmentally).\\n>\\n> This all sounds like a worthy aspiration, but what would be a practical\\n> approach to capturing and reasoning about these issues? How can we ensure that\\n> systems can meet their fit-for-purpose objectives, not just in their design but\\n> as they are deployed, encounter the imperfect world, are scaled to become\\n> economic, and proceed into ongoing maintenance?\\n>\\n> This talk will illustrate how the notions of Outcomes and Quality Attenuation\\n> (as captured by \u2018\u2206Q\u2019) are being used to both frame the necessary notions and\\n> provide a basis for assuring the refinement and reification of such systems,\\n> from initial concept to operational infrastructure.\\n\\nYou can download the slides from [here](../static/pdf/network/2022-11-24-UCL.pdf).\\n\\n[issue #4163]: https://github.com/input-output-hk/ouroboros-network/issues/4163\\n[issue #4177]: https://github.com/input-output-hk/ouroboros-network/issues/4177\\n[PR #4155]: https://github.com/input-output-hk/ouroboros-network/pull/4155\\n[PR #4169]: https://github.com/input-output-hk/ouroboros-network/pull/4169\\n[PR #4165]: https://github.com/input-output-hk/ouroboros-network/pull/4165\\n[PR #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[UCLouvain]: https://uclouvain.be/en/index.html"},{"id":"2022-11-25-crypto","metadata":{"permalink":"/2022-11-25-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-25-crypto.md","source":"@site/blog/2022-11-25-crypto.md","title":"Crypto Team Update","description":"High level summary","date":"2022-11-25T00:00:00.000Z","formattedDate":"November 25, 2022","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":1.705,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2022-11-25-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2022-11-28-network"},"nextItem":{"title":"Hydra Team Update","permalink":"/2022-11-25-hydra"}},"content":"## High level summary\\nThe four open fronts that the crypto team is working on are:\\n* MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team. \\n* Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes\\n* cardano-base: The VRF and BLS branchs are still open and in progress\\n* KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent. \\n\\n## Low level summary\\n### MuSig2\\n* We redesigned the library so that MuSig2 lib users don\'t need to be aware of the underlying secp256k1 library [PR#31](https://github.com/input-output-hk/musig2/pull/31)\\n* We are introducing a more granular error handling mechanism [PR#33](https://github.com/input-output-hk/musig2/pull/33)\\n* We rethought the API and made it more consistent with the underlying secp256k1 library [PR#35](https://github.com/input-output-hk/musig2/pull/35)\\n\\n### Mithril\\n* The mithril crates in general will be published in crates.io, and we adapted the core library\'s README [PR#616](https://github.com/input-output-hk/mithril/pull/616) \\n* We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information [PR#620](https://github.com/input-output-hk/mithril/pull/620)\\n\\n### cardano-base\\n* We\'ve been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) [PR#341](https://github.com/input-output-hk/cardano-base/pull/341)\\n* SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions [PR#344](https://github.com/input-output-hk/cardano-base/pull/344)\\n* Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus [PR#266](https://github.com/input-output-hk/cardano-base/pull/266)\\n\\n## KES agent\\n* We keep progressing in the secure forgetting PR and resolving some bugs on memory handling [PR#255](https://github.com/input-output-hk/cardano-base/pull/255)\\n* Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation."},{"id":"2022-11-25-hydra","metadata":{"permalink":"/2022-11-25-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-25-hydra.md","source":"@site/blog/2022-11-25-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-11-25T00:00:00.000Z","formattedDate":"November 25, 2022","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.73,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-11-25-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2022-11-25-crypto"},"nextItem":{"title":"Ledger Team Update","permalink":"/2022-11-23-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a [presentation](https://summit.cardano.org/agenda-day-2/cardano-ballot-speaker-winner-presentation-6/) about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.\\n\\n## What did the team achieve this week\\n\\n- Attended the Cardano Summit in Lausanne. Hydra was topic of one talk: \\n- Had a team workshop / hackathon after the summit:\\n - Retrospective\\n - Impact mapping session\\n - Hacked on smaller things\\n- Got a PR for tullia/cicero things by @kdermetfan\\n\\n## What are the goals of next week\\n\\n- Monthly report & review meeting\\n- Tie up several loose ends / branches.\\n- Resolve Tx validity discussions & PRs.\\n- Review cicero PR & try it out."},{"id":"2022-11-23-ledger","metadata":{"permalink":"/2022-11-23-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-23-ledger.md","source":"@site/blog/2022-11-23-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-11-23T00:00:00.000Z","formattedDate":"November 23, 2022","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.19,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-11-23-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2022-11-25-hydra"},"nextItem":{"title":"Hydra Team Update","permalink":"/2022-11-18-hydra"}},"content":"## High level summary\\n\\nWe released [CIP-1694],\\nour proposal for entering the [Voltaire phase](https://roadmap.cardano.org/en/voltaire/).\\n**Please come join the discussion**, this will be an incredibly exciting transition for\\nCardano and we want everyone to participate!\\n\\nWe now have a sensible way to version all of the serialization schemes used in the ledger.\\nThe draft pull request was polished, reviewed, and merged this week.\\nThis solves many problems that have vexed us since the beginning of the Shelley ledger era.\\n\\nEveryone working on the Cardano node is working together to improve our release process,\\nand the ledger team in particular dedicated one engineer to help with these efforts\\nfor the next release.\\n\\n## Lower level summary\\n\\n### The Conway ledger era\\n\\nThe current proposal in [CIP-1694] encompasses two new ledger eras.\\nThe first era will be called Conway, after the English mathematician John Horton Conway.\\nThe community facing aspects of the Conway ledger era will be very minimal,\\nbut it will pave the way for introducing liquid democracy.\\nThe details can be viewed [here](https://github.com/input-output-hk/cardano-ledger/projects/4).\\nWe do not yet have a formal specification for the Conway era.\\nOur plan is to debut the\\n[formal ledger model](https://github.com/input-output-hk/formal-ledger-specifications).\\nBriefly, the Conway ledger era will:\\n* introduce SPO voting for hard forks (in the spirit of the now abandoned [CIP-47])\\n* provide an on-chain mechanism for rotating the governance keys\\n* re-plumb the ledger rules involving governance to be in line with [CIP-1694]\\n\\n### Versioned CBOR\\n\\nWe now have the ability to easily tie our serialization schemes to the Cardano\\nmajor protocol version.\\nWe still aim to preserve backwards compatibility as much as possible, but we now have a principled\\nplan for resolving problems (see [CIP-ledger-cbor]).\\nIn particular, we can now address several long standing issues, such as\\n[issue-2444], [issue-2965], and [issue-3003]. \\n\\nThe final (and massive!) pull request which brought us the versioning is [pull-3138].\\n\\n### Deposit tracking\\n\\nThe draft pull request which was exploring how best to track individual deposits\\nis much closer now to being ready to take out of draft ([pull-3127]).\\nFor background on the issue, see [issue-3113].\\nThis is quite an invasive change which effects many of our tests, which we are now addressing.\\n\\n### Technical debt\\n\\nAs always, we keep working on technical debt.\\nWe have deduplicated a some things: [pull-3129], [pull-3162].\\nWe have memoized a problematic computation (though more due diligence is needed before we can\\nmerge): [pull-3141].\\n\\n### Node release\\n\\nWe have been helping with the node release efforts. See [pull-4608].\\n\\n[CIP-47]: https://github.com/cardano-foundation/CIPs/pull/318\\n[CIP-1694]: https://github.com/cardano-foundation/CIPs/pull/380\\n[CIP-ledger-cbor]: https://github.com/cardano-foundation/CIPs/pull/372\\n[issue-3003]: https://github.com/input-output-hk/cardano-ledger/issues/3003\\n[issue-2965]: https://github.com/input-output-hk/cardano-ledger/issues/2965\\n[issue-2444]: https://github.com/input-output-hk/cardano-ledger/issues/2444\\n[issue-3113]: https://github.com/input-output-hk/cardano-ledger/issues/3113\\n[pull-3129]: https://github.com/input-output-hk/cardano-ledger/pull/3129\\n[pull-3141]: https://github.com/input-output-hk/cardano-ledger/pull/3141\\n[pull-3127]: https://github.com/input-output-hk/cardano-ledger/pull/3127\\n[pull-3162]: https://github.com/input-output-hk/cardano-ledger/pull/3162\\n[pull-3138]: https://github.com/input-output-hk/cardano-ledger/pull/3138\\n[pull-4608]: https://github.com/input-output-hk/cardano-node/pull/4608"},{"id":"2022-11-18-hydra","metadata":{"permalink":"/2022-11-18-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-18-hydra.md","source":"@site/blog/2022-11-18-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-11-18T00:00:00.000Z","formattedDate":"November 18, 2022","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.085,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-11-18-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2022-11-23-ledger"},"nextItem":{"title":"Mithril Team Update","permalink":"/2022-11-18-mithril"}},"content":"## High-level summary\\n\\nThis week, the Hydra team released version `0.8.1`, which includes several fixes and a user-wished extension of the persistence introduced by `0.8.0` of replaying server outputs to make clients like the `hydra-tui` be aware of the latest `hydra-node` state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from `hydra-poc` to [`hydra`](https://github.com/input-output-hk/hydra)!\\n\\n## What did the team achieve this week\\n\\n- Implemented replaying of server outputs to address [#580](https://github.com/input-output-hk/hydra-poc/issues/580)\\n- Released version 0.8.1 containing this and other fixes [Release notes](https://github.com/input-output-hk/hydra/releases/tag/0.8.1)\\n- Worked on the bounded tx validity as one of the on-chain script fixes, but couldn’t finish it just yet [#615](https://github.com/input-output-hk/hydra/pull/615)\\n- Collaborated with the education team on a Hydra tutorial.\\n- Discovered and discussed issues with the “seen ledger”.\\n- Renamed the Hydra repository `hydra-poc` -> `hydra`\\n\\n## What are the goals of next week\\n\\n- Create and discuss an ADR about handling tx validity correctly.\\n- Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: **\\"Developing Hydra\\" on Day 2, Nov 21st, 13:50 CET**\\n- Have a team workshop / hackathon after the summit:\\n - Retrospective\\n - Roadmapping session\\n - Hack on something complex or useful"},{"id":"2022-11-18-mithril","metadata":{"permalink":"/2022-11-18-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-18-mithril.md","source":"@site/blog/2022-11-18-mithril.md","title":"Mithril Team Update","description":"High level overview","date":"2022-11-18T00:00:00.000Z","formattedDate":"November 18, 2022","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.35,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Mithril Team Update","slug":"2022-11-18-mithril","authors":"iquerejeta","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2022-11-18-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2022-11-16-consensus"}},"content":"## High level overview\\nThe Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks. \\n\\nFinally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer.\\n\\n## Low level overview\\n- Released a new Mithril distribution [2246.1](https://github.com/input-output-hk/mithril/releases/tag/2246.1)\\n- Completed the first stage of the store migrations process [#562](https://github.com/input-output-hk/mithril/issues/562)\\n- Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes [#565](https://github.com/input-output-hk/mithril/issues/565)\\n- Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage [#576](https://github.com/input-output-hk/mithril/issues/576)\\n- Prepared a Daedalus synchronization benchmark video with/without Mithril [#606](https://github.com/input-output-hk/mithril/issues/606)\\n- Upgraded the Cardano nodes of the testing Mithril networks to `1.35.4` [#594](https://github.com/input-output-hk/mithril/issues/594)\\n- Worked on implementing SPO tests nodes on testing Mithril networks [#563](https://github.com/input-output-hk/mithril/issues/563)\\n- Worked on the CIP design for Mithril piggybacked on the Cardano network layer [#588](https://github.com/input-output-hk/mithril/issues/588)\\n- Worked on the refactorizaton of the aggregator multi signer engine [#398](https://github.com/input-output-hk/mithril/issues/398)"},{"id":"2022-11-16-consensus","metadata":{"permalink":"/2022-11-16-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-16-consensus.md","source":"@site/blog/2022-11-16-consensus.md","title":"Consensus Team Update","description":"High-level summary","date":"2022-11-16T00:00:00.000Z","formattedDate":"November 16, 2022","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":5.06,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-11-16-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2022-11-18-mithril"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2022-11-16-node-cli-api"}},"content":"## High-level summary\\n\\nDuring the past two weeks, the consensus team started documenting the\\nimplementation of the UTxO HD feature and continued developing tests for it. As\\npart of our work on UTxO HD, we improved the Haskell support for LMDB. We also\\nspent time working on the LSM tree prototype, and designed a parameter tuning\\nalgorithm for it. Regarding our work on Genesis, our investigation of the\\n\\"plateaus\\" pointed at the `TICKF` slowdown on era boundaries as culprit. This\\nled us to developing a caching strategy that will not only remove the\\naforementioned \\"plateaus\\", but can help alleviating the growing block production\\ndelay on epoch switch. We also helped reviewing the block forge credential\\nhotswap feature, which is intended for use in the adoption of P2P.\\n\\nWe also worked on paying technical debt and fostering collaboration. In\\nparticular, we improved the `io-sim` framework, which is crucial for testing and\\nsimulating Cardano components. We also removed thunks that appeared on era\\ntranslations, and improved our diffusion pipelining feature. We are working on a\\npresentation for explaining Praos and Genesis.\\n\\n## High-level status report\\n\\n- Finish the UTxO HD prototype: in progress.\\n - We added documentation for this feature.\\n - We developed the second version of the mempool tests.\\n - We fixed benchmarks that were inflating the speedup we observed in the\\n anti-diff implementation of sequences of differences. Speedups are now in the\\n range of [3.33, 4.75], which remain significant.\\n - We continued improving Haskell LMDB support.\\n - We finished implementing a \\"parameter tuning algorithm\\" for the LSM tree\\n prototype. This enables us to run experiments to check the correctness of\\n the algorithm.\\n- Genesis: in progress.\\n - Work investigating the \\"plateaus\\" in the `ChainSync` jumping prototype\\n pointed to the `TICKF` slowdown on era boundaries as culprit.\\n- Tech debt:\\n - We improved the capabilities of our `io-sim` library, which is crucial for\\n testing and simulating Cardano components.\\n - We removed thunks from epoch translations in the ledger.\\n - We added Linux CI support for `lmdb-simple`.\\n - We got pending diffusion pipelining improvements merged.\\n- Fostering collaboration:\\n - We are working on a explanation of Praos and Genesis protocols.\\n- Support:\\n - Investigation of CSJ \\"plateaus\\" led us to developing a caching strategy for\\n `TICKF` that will not only remove these \\"plateaus\\", but can help alleviating\\n the growing block production delay on epoch switch.\\n - We reviewed the block forge credential hotswapping feature which is intended\\n for use in the adoption of P2P.\\n\\n## Workstreams\\n\\n### Finish the UTxO HD prototype\\n\\nWe merged PR [#4060][pr-4060], which adds a report documenting the UTxO HD\\nfeature, and puts emphasis in explaining how the mempool works in combination\\nwith UTxO HD.\\n\\nWe opened a draft PR with the second iteration of the property tests for the\\nmempool ([#4076][pr-4076]).\\n\\nWe fixed the `Arbitrary` instances for keys and values in `DiffSeq` benchmarks\\n([#4143][pr-4143]). The problem was that we were testing with mostly small\\nvalues, which artificially boosted the performance gains we saw on benhcmarks.\\nSpeedups are now in the range of [3.33, 4.75] across the different\\nconfigurations.\\n\\n#### Backing store property tests\\n\\nWe focused on incorporating feedback on the monadic cursor API PR ([#1][pr-1]).\\nThis required us to make small tweaks to `quickcheck-lockstep` to test the new\\nAPI. We also updated the backing store property tests to use the new version of\\nthe monadic cursor API.\\n\\n### LSM tree implementation\\n\\nWe worked on the LSM tree prototype. In particular: finished implementing a\\n\\"parameter tuning algorithm\\" that adapts the LSM tree design based on factors\\nlike:\\n- workload\\n- machine specs, \\n- and characteristics of the data being stored. \\n\\nWe are now running experiments to gather results and cross-reference them with\\nexisting experimental results from the LSM tree paper to see if the algorithm is\\nworking correctly.\\n\\n### Benchmarking the CSJ prototype\\n\\nWe focused on investigating the \\"plateaus\\" in the `ChainSync` tip, which turned\\nout to be due to the `TICKF` bug which we previously were only aware of in the\\ncontext of the long forging times near epoch boundaries. For the most drastic\\npatch by @nfrisby to speed up `TICKF`, full sync is speeding up by 7%.\\n\\nThe following plot shows that by caching the `TICKF` the `ChainSync` tip and the\\n`VolatileDB` tip progress at the same rate.\\n\\n![](/images/consensus/2022-11-16-removed-stuttering.png)\\n\\nThe plot below shows the speedup observed by caching the `TICKF` rule wrt the\\nbaseline.\\n\\n![](/images/consensus/2022-11-16-comparing-TICKF-batch.png)\\n\\n### Technical debt\\n\\nAfter addressing the PR comments, we merged PR [#16][pr-16], which implements\\nthe `MonadCatch` instance for `STM`. This extends the capability of our `io-sim`\\nlibrary, which is crucial for testing and simulating Cardano components PR #16\\nclosed [#1461][issue-1461]. This new feature was published as version `0.4.0.0`\\nof `io-sim`.\\n\\nWe continued with our work fixing the `NoThunk` errors required for enabling\\nnightly tests, with the help of `TVarInvariant` checks in `strict-stm` and\\n`nothunks` libraries. We proposed fixes in `cardano-ledger` that took care of\\nthunks that appeared in era translations ([#3143][pr-3143]). The fixes will be\\nintegrated back into consensus when `cardano-ledger` approves and publish the\\nchanges introduced in `#3143`.\\n\\nWe added CI support for `lmdb-simple` ([#2][pr-2]). We currently test the build on\\na Linux environment only.\\n\\nWe got pending diffusion pipelining PRs ([#3857][pr-3857], [#3860][pr-3860],\\n[#3856][pr-3856]) merged, after rebasing and addressing feedback.\\n\\n### Fostering collaboration\\n\\n@nfrisby finished a visualisation tool and outlined scripts for the Praos and\\nGenesis explanation presentations. The idea is to produce a video that gives an\\noverview of these protocols.\\n\\n### Support \\n\\nWe started working on caching the computation of the `TICKF` rule\\n([#4054][issue-4054]), since this was blocking our benchmarking work for\\nGenesis. In addition, this issue has the Cardano community [quite\\nconcerned][issue-4421], so we are hoping the work done in caching the\\ncomputation of the `TICKF` rule can help alleviating the growing block\\nproduction delay on epoch switch.\\n\\nWe reviewed the block forge credential hotswapping PR [#3800][pr-3800] from the\\nnetworking team, which is intended for use in the adoption of P2P.\\n\\n[issue-4054]: https://github.com/input-output-hk/ouroboros-network/issues/4054\\n[issue-4421]: https://github.com/input-output-hk/cardano-node/issues/4421\\n[issue-1461]: https://github.com/input-output-hk/ouroboros-network/issues/1461\\n\\n[pr-3800]: https://github.com/input-output-hk/ouroboros-network/pull/3800\\n[pr-16]: https://github.com/input-output-hk/io-sim/pull/16\\n[pr-3143]: https://github.com/input-output-hk/cardano-ledger/pull/3143\\n[pr-4060]: https://github.com/input-output-hk/ouroboros-network/pull/4060\\n[pr-4076]: https://github.com/input-output-hk/ouroboros-network/pull/4076\\n[pr-1]: https://github.com/input-output-hk/lmdb-simple/pull/1\\n[pr-4143]: https://github.com/input-output-hk/ouroboros-network/pull/4143\\n[pr-2]: https://github.com/input-output-hk/lmdb-simple/pull/2\\n[pr-3857]: https://github.com/input-output-hk/ouroboros-network/pull/3857\\n[pr-3860]: https://github.com/input-output-hk/ouroboros-network/pull/3860\\n[pr-3856]: https://github.com/input-output-hk/ouroboros-network/pull/3856"},{"id":"2022-11-16-node-cli-api","metadata":{"permalink":"/2022-11-16-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-16-node-cli-api.md","source":"@site/blog/2022-11-16-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-11-16T00:00:00.000Z","formattedDate":"November 16, 2022","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":0.68,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-11-16-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2022-11-16-consensus"},"nextItem":{"title":"Performance & tracing update","permalink":"/2022-11-16-performance-and-tracing"}},"content":"# 2022-11-16 - 2022-11-29\\n\\n## High level summary\\n\\n## Completed\\n\\n### docs\\n- [Add a native tokens tutorial and exercises](https://github.com/input-output-hk/cardano-node/pull/4562)\\n\\n### cardano-cli\\n- [Update cardano-cli\'s help](https://github.com/input-output-hk/cardano-node/pull/4674)\\n- [Remove error calls in renderShelleyTxCmdError](https://github.com/input-output-hk/cardano-node/pull/4644)\\n\\n### cardano-api\\n- [Implement Cardano.Api.DeserialiseAnyOf](https://github.com/input-output-hk/cardano-node/pull/4639)\\n\\n### cardano-node\\n- [Fix windows CI](https://github.com/input-output-hk/cardano-node/pull/4650)\\n\\n### cardano-testnet\\n\\n## In Progress\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n- [Handle pipes in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4625)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-11-16-performance-and-tracing","metadata":{"permalink":"/2022-11-16-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-16-performance-and-tracing.md","source":"@site/blog/2022-11-16-performance-and-tracing.md","title":"Performance & tracing update","description":"High level summary","date":"2022-11-16T00:00:00.000Z","formattedDate":"November 16, 2022","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":1.635,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & tracing update","slug":"2022-11-16-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2022-11-16-node-cli-api"},"nextItem":{"title":"Crypto Team Update","permalink":"/2022-11-11-crypto"}},"content":"## High level summary\\n\\n1. P2P performance investigation is ongoing, in support of the networking team.\\n2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.\\n3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.\\n4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.\\n5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.\\n\\n\\n## Performance\\n\\nWe are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.\\n\\n## Tracing\\n\\nWe ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.\\n\\n## Infrastructure\\n\\nThe first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.\\n\\nWe designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.\\n\\nA number of smaller workbench, data analysis & reporting improvements have been made."},{"id":"2022-11-11-crypto","metadata":{"permalink":"/2022-11-11-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-11-crypto.md","source":"@site/blog/2022-11-11-crypto.md","title":"Crypto Team Update","description":"High level overview","date":"2022-11-11T00:00:00.000Z","formattedDate":"November 11, 2022","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":1.305,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2022-11-11-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & tracing update","permalink":"/2022-11-16-performance-and-tracing"},"nextItem":{"title":"Hydra Team Update","permalink":"/2022-11-11-hydra"}},"content":"## High level overview\\n\\nThe SECP primitives AC has been met, and the test-vectors [PR](https://github.com/input-output-hk/cardano-base/pull/320) has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool [PR](https://github.com/input-output-hk/cardano-base/pull/336) has been merged, and we\'ve adapted the KES secure [PR](https://github.com/input-output-hk/cardano-base/pull/255) to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork ([PR#](https://github.com/input-output-hk/cardano-base/pull/341)). Finally, we\'ve \'cleaned\' our libsodium fork, and we directly fork upstream, rather than forking Algorand\'s fork. \\n\\n## Low level overview\\n* With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation. \\n* We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool. \\n* In parallel, we keep progressing on the [KES agent](https://github.com/input-output-hk/kes-agent)\\n* VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification. \\n* Our libsodium fork now links directly to upstream libsodium."},{"id":"2022-11-11-hydra","metadata":{"permalink":"/2022-11-11-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-11-hydra.md","source":"@site/blog/2022-11-11-hydra.md","title":"Hydra Team Update","description":"High-level summary","date":"2022-11-11T00:00:00.000Z","formattedDate":"November 11, 2022","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.94,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-11-11-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2022-11-11-crypto"},"nextItem":{"title":"Ledger Team Update","permalink":"/2022-11-11-ledger"}},"content":"## High-level summary\\n\\nThis week, the Hydra team published together with Obsidian Systems a light paper\\non our \\"Hydra for Payments\\" project ([Link](https://iohk.io/en/blog/posts/2022/11/10/hydra-for-payments-introducing-developer-tooling-to-unlock-micropayments-on-cardano/)). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of `hydra-node` processes. \\n\\n## What did the team achieve this week\\n\\n- Published Hydra for Payments light paper ([Link](https://iohk.io/en/blog/posts/2022/11/10/hydra-for-payments-introducing-developer-tooling-to-unlock-micropayments-on-cardano/))\\n- Have a draft RFP ready for a first review internally\\n- Answered the internal auditor’s questions\\n- Fixed a bug with following the chain when starting with persistence ([#599](https://github.com/input-output-hk/hydra-poc/issues/599))\\n- Minor improvements to logging for better observability ([#598](https://github.com/input-output-hk/hydra-poc/issues/598), [#600](https://github.com/input-output-hk/hydra-poc/issues/600))\\n- Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look ([#590](https://github.com/input-output-hk/hydra-poc/issues/590))\\n\\n## What are the goals of next week\\n\\n- Implement event-sourced persistence [#580](https://github.com/input-output-hk/hydra-poc/issues/580)\\n- Close more gaps [#452](https://github.com/input-output-hk/hydra-poc/pull/452)\\n- Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: **\\"Developing Hydra\\" on Day 2, Nov 21st, 13:50 CET**"},{"id":"2022-11-11-ledger","metadata":{"permalink":"/2022-11-11-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-11-ledger.md","source":"@site/blog/2022-11-11-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-11-11T00:00:00.000Z","formattedDate":"November 11, 2022","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.41,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-11-11-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2022-11-11-hydra"},"nextItem":{"title":"Network Team Update","permalink":"/2022-11-11-network"}},"content":"## High level summary\\n\\nI am extremely excited to say that we now have a pull request up which introduces our new versioned\\nCBOR serialization. This was an enormous effort, but it will solve a host of problems that we have\\nhad since the Shelley phase. It will take time to properly review it, and we will\\nneed to put in a lot of effort to integrate it with the downstream components, but this is a huge\\nmilestone. Additionally, we have a new CIP proposing a deprecation cycle for the transaction\\nserialization schemes.\\n\\nWe also have a draft pull request that reworks how deposits are tracked. Users of the system will\\nnot notice any difference, but it is a necessary change needed to prepare the way for\\ndecentralizing the governance of Cardano.\\n\\nFinally, we continued to address technical debt. In particular, we continued to make progress on\\nbringing coherency and consistency to the code base with a common naming convention, and\\nimproving some error messages.\\n\\n## Lower level summary\\n\\n- We have a pull request up for our new versioned CBOR serialization.\\n When we encounter a problem with our deserializers, it can be very difficult to implement a fix.\\n It is difficult because we can only fix such issues during a hard fork, and leading up to the\\n hard fork we must maintain two serializations for the same type in order to not cause unintended\\n network splitting (the problematic version must be used before the hard fork,\\n and the fixed version is used afterwards).\\n This can be especially tricky with the `FromCBOR` typeclass, since it is not always easy to\\n search for where all the problematic uses are located.\\n The new versioned CBOR serialization allows us to gracefully handle this transition.\\n See [[pull-3138]].\\n- We proposed a CIP for backwards compatibility of the transaction serialization schemes.\\n See [[pull-372]].\\n- We have draft for the new deposit tracking.\\n This draft is not as memory efficient as the final version will be,\\n but it is a sufficient proof of concept that we can write property tests against, ensuring\\n that we have not changed the semantics.\\n We will optimize after we are sure of the correctness.\\n See [[pull-3127]].\\n- We now provide better support for debugging failed Plutus scripts in an important helper\\n function, named `evaluateTransactionExecutionUnits`.\\n In particular, it now returns all the information needed to rerun the script with exactly the\\n same arguments. This feature will end up appearing in the CLI and other tools from the Plutus\\n tools team.\\n See [[pull-3135]].\\n- We did a lot more renaming to bring coherency and consistency to the code base.\\n See [[pull-3126]], [[pull-3120]], [[pull-3118]], and [[pull-3116]].\\n- We have added a few things to the ledger repository to make it conform to the\\n [Cardano Engineering Handbook](https://input-output-hk.github.io/cardano-engineering-handbook/)\\n See [[pull-3139]].\\n\\n\\n[pull-3138]: https://github.com/input-output-hk/cardano-ledger/pull/3138\\n[pull-3127]: https://github.com/input-output-hk/cardano-ledger/pull/3127\\n[pull-3135]: https://github.com/input-output-hk/cardano-ledger/pull/3135\\n[pull-3126]: https://github.com/input-output-hk/cardano-ledger/pull/3126\\n[pull-3120]: https://github.com/input-output-hk/cardano-ledger/pull/3120\\n[pull-3118]: https://github.com/input-output-hk/cardano-ledger/pull/3118\\n[pull-3116]: https://github.com/input-output-hk/cardano-ledger/pull/3116\\n[pull-3139]: https://github.com/input-output-hk/cardano-ledger/pull/3139\\n[pull-372]: https://github.com/cardano-foundation/CIPs/pull/372"},{"id":"2022-11-11-network","metadata":{"permalink":"/2022-11-11-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-11-network.md","source":"@site/blog/2022-11-11-network.md","title":"Network Team Update","description":"High-level summary","date":"2022-11-11T00:00:00.000Z","formattedDate":"November 11, 2022","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":1.595,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-11-11-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2022-11-11-ledger"},"nextItem":{"title":"Hydra Team Update","permalink":"/2022-11-04-hydra"}},"content":"import NoticedHeaders from \'@site/static/images/network/2022-11-11-noticed-headers.png\';\\n\\n## High-level summary\\n\\nIn last sprint we got a performance report of P2P performance testing cluster\\n(which consists of 50 nodes). There is a performance regression in the header\\nnotification metric. The P2P cluster is constructed with the same\\ntopology as the non-p2p reference one this indicates some regression which\\nneeds to be further investigated. This poses a risk for releasing P2P.\\n\\nWe also continued to work on peer sharing: [pull #4019].\\n\\nWe continued working on dynamic block production which is required for P2P\\nrelease for BP nodes: [pull #3159].\\n\\nWe simplified the P2P topology format: [issue #4559], [pull #3888].\\n\\nWe added a new trace point for asynchronous demotions of local peers with\\n`Warning` severity. This trace is **important** for SPOs.\\n\\n## Detail description\\n\\n### Performance regression\\n\\nBelow we include a graph which shows the performance regression of the P2P code base vs non P2P.\\n\\n\\n\\nOn the `x` axis is time in seconds which measures the delay from the start of\\nthe slot to when a header was received. The `y` axis is the percentile of nodes\\nthat received a header. We are currently investigating possible causes of the\\nregression. \\n\\n### New P2P topology form\\n\\nThe new topology file format is described in this [issue #4559].\\n\\n### Tracing improvements\\n\\n* We improved a handshake error reporting, [pull #4136]\\n* We added `TraceDemoteLocalAsynchronous` rendered as `DemoteLocalAsynchronous`\\n in `json` format, [pull #4127]. Such demotions should be investigated by the\\n pool operator. They can indicate a problem in the deployed system, but also\\n they could indicate a remote problem in arranged connections with other SPOs.\\n\\n### Open Source Improvements\\n\\nWe improved documentation of `io-sim` and `typed-protocols` for open-source\\ncontributors and/or maintenance tasks: [pull #22], [pull #45], [pull #48]. \\n\\n[pull #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[pull #3888]: https://github.com/input-output-hk/ouroboros-network/issues/3888\\n[pull #3159]: https://github.com/input-output-hk/ouroboros-network/issues/3159\\n[issue #4559]: https://github.com/input-output-hk/cardano-node/issues/4559\\n[pull #4136]: https://github.com/input-output-hk/ouroboros-network/pull/4136\\n[pull #4127]: https://github.com/input-output-hk/ouroboros-network/pull/4127\\n[pull #22]: https://github.com/input-output-hk/typed-protocols/pull/22\\n[pull #45]: https://github.com/input-output-hk/io-sim/pull/45\\n[pull #48]: https://github.com/input-output-hk/io-sim/pull/48"},{"id":"2022-11-04-hydra","metadata":{"permalink":"/2022-11-04-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-04-hydra.md","source":"@site/blog/2022-11-04-hydra.md","title":"Hydra Team Update","description":"High level summary","date":"2022-11-04T00:00:00.000Z","formattedDate":"November 4, 2022","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.935,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-11-04-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2022-11-11-network"},"nextItem":{"title":"Mithril Team Update","permalink":"/2022-11-04-mithril"}},"content":"## High level summary\\n\\nThis week, the hydra team first re-deployed the latest Hydra scripts to the re-spun `preview` network, see [0.8.0 release notes](https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0). They also completed implementation of [ADR18](https://hydra.family/head-protocol/adr/18/) and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates [#195](https://github.com/input-output-hk/hydra-poc/issues/195#issuecomment-1300503557) and alignment of the specification document with auditors.\\n\\n## What did the team achieve this week\\n\\n- Complete and merge ADR18 [#579](https://github.com/input-output-hk/hydra-poc/pull/579)\\n- Re-deploy hydra scripts to respun `preview` network, see [0.8.0 release notes](https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0) [#595](https://github.com/input-output-hk/hydra-poc/pull/595)\\n- Have first gap of [#452](https://github.com/input-output-hk/hydra-poc/pull/452) in review.\\n- Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.\\n- Engineering meeting to discuss hard forks and protocol parameter updates [#195](https://github.com/input-output-hk/hydra-poc/issues/195#issuecomment-1300503557)\\n- Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.\\n- Drafted project scope for an external audit RFP.\\n\\n## What are the goals of next week\\n\\n- Implement event-sourced persistence [#580](https://github.com/input-output-hk/hydra-poc/issues/580)\\n- Answer the internal auditor’s questions\\n- Have a draft RFP ready for a first review internally\\n- Close some gaps [#452](https://github.com/input-output-hk/hydra-poc/pull/452)"},{"id":"2022-11-04-mithril","metadata":{"permalink":"/2022-11-04-mithril","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-04-mithril.md","source":"@site/blog/2022-11-04-mithril.md","title":"Mithril Team Update","description":"This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we\'ve implemented an efficiency improvement on the size of the mithril certificates.","date":"2022-11-04T00:00:00.000Z","formattedDate":"November 4, 2022","tags":[{"label":"mithril","permalink":"/tags/mithril"}],"readingTime":1.015,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Mithril Team Update","slug":"2022-11-04-mithril","authors":"iquerejeta","tags":["mithril"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2022-11-04-hydra"},"nextItem":{"title":"Open-Source Team","permalink":"/2022-10-31-open-source"}},"content":"This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we\'ve implemented an efficiency improvement on the size of the mithril certificates.\\n# Low level overview\\n- We have been moving forward on the implementation of the release process [#500](https://github.com/input-output-hk/mithril/issues/500):\\n - Setup of the new hosted environments for `testing-preview`, `pre-release-preview` and `release-preprod` with their terraform and GitHub environments [#542](https://github.com/input-output-hk/mithril/issues/542)\\n - Adapted the CI workflows to work with the new release process [#543](https://github.com/input-output-hk/mithril/issues/543)\\n - Publication of an [ADR3](https://mithril.network/doc/adr/3)\\n - Publication of a [dev blog post](https://mithril.network/doc/dev-blog/2022/10/28/updated-environments) about Mithril networks evolution \\n - Releasing our first Mithril distribution [2244.0](https://github.com/input-output-hk/mithril/releases/tag/2244.0)\\n- Worked on the API versioning mechanism [#565](https://github.com/input-output-hk/mithril/issues/565)\\n- Worked on the implementation of the stores migration process for the signer and aggregator nodes [#562](https://github.com/input-output-hk/mithril/issues/562)\\n- Prepared a Mithril `devnet` video demo [#526](https://github.com/input-output-hk/mithril/issues/526)\\n- Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably [#484](https://github.com/input-output-hk/mithril/pull/484)"},{"id":"2022-10-31-open-source","metadata":{"permalink":"/2022-10-31-open-source","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-04-open-source.md","source":"@site/blog/2022-11-04-open-source.md","title":"Open-Source Team","description":"High Level Summary","date":"2022-11-04T00:00:00.000Z","formattedDate":"November 4, 2022","tags":[{"label":"open-source","permalink":"/tags/open-source"}],"readingTime":1.465,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Open-Source Team","slug":"2022-10-31-open-source","authors":"coot","tags":["open-source"],"hide_table_of_contents":false},"prevItem":{"title":"Mithril Team Update","permalink":"/2022-11-04-mithril"},"nextItem":{"title":"Embedding Quality Workstream","permalink":"/2022-11-03-embedding-quality"}},"content":"## High Level Summary\\n\\n* We\'ve been working toward publishing _Cardano Backlog_, currently its in\\n review by the IOG communication team.\\n* We identified a number of libraries which can be published.\\n* We setup and enhanced [cardano-updates][cardano-updates].\\n\\n## Detailed description\\n\\nI am glad to announce that I was given the role of open-source advocate for\\ncardano project. In last few weeks we were making steps towards publishing our\\nbacklog. It\'s currently under review by the communication team, although most\\nof the issues are already visible across various repositories.\\n\\nThe open-source initiatives have their own\\n[project](https://github.com/orgs/input-output-hk/projects/60). It is set up\\nto help us track our major open-source activities. Right now there are two\\nwork streams:\\n\\n* the work on [_Cardano Engineering Handbook_][ceh];\\n* libraries to be release on [Hackage][Hackage] or [crates.io][crates.io].\\n\\nWe identifies a number of libraries across all the teams which contribute to\\n_Cardano_ which we would like publish to publish, see the following\\n[link][publish-on-hackage]. Arnauld Bailly recently published\\n[`quickcheck-dynamic`](https://hackage.haskell.org/package/quickcheck-dynamic)\\nlibrary on Hackage. The networking team is slowly progressing towards\\npublishing [io-sim][io-sim] and related packages, checkout the progress\\n[here](https://github.com/orgs/input-output-hk/projects/19/views/24).\\n\\nThanks to Arnaud Bailly our [Cardano Updates][cardano-updates] website has\\na new look & feel! It\'s using [docusaurus.io][docusaurus].\\n\\n\\nChristian Taylor carried recently a detailed analysis of our open-source\\nrepositories. He collected many interesting metrics, which allows us to see\\nwhere we need to improve as an open-source project to make the Cardano project\\nand many smaller related libraries which we maintain be more open and available\\nfor open-source contributors.\\n\\nThe graph below shows which documents the 55 most important Cardano\\nrepositories are missing the most:\\n![Documentation Adoption](../static/img/doc-adoption.png)\\nYou can expect we will improve in these metrics in the coming weeks.\\n\\n\\n[Hackage]: https://hackage.haskell.org/\\n[crates.io]: https://crates.io\\n[publish-on-hackage]: https://github.com/orgs/input-output-hk/projects/60/views/3\\n[io-sim]: https://github.com/input-output-hk/io-sim\\n[ceh]: https://input-output-hk.github.io/cardano-engineering-handbook/\\n[cardano-updates]: https://updates.cardano.intersectmbo.org\\n[docusaurus]: https://docusaurus.io"},{"id":"2022-11-03-embedding-quality","metadata":{"permalink":"/2022-11-03-embedding-quality","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-03-embedding-quality.md","source":"@site/blog/2022-11-03-embedding-quality.md","title":"Embedding Quality Workstream","description":"High level summary","date":"2022-11-03T00:00:00.000Z","formattedDate":"November 3, 2022","tags":[{"label":"embedding-quality","permalink":"/tags/embedding-quality"}],"readingTime":0.65,"hasTruncateMarker":false,"authors":[{"name":"Dorin Solomon","title":"System Test Team Lead","url":"https://github.com/dorin100","imageURL":"https://github.com/dorin100.png","key":"dorin100"}],"frontMatter":{"title":"Embedding Quality Workstream","slug":"2022-11-03-embedding-quality","authors":"dorin100","tags":["embedding-quality"],"hide_table_of_contents":false},"prevItem":{"title":"Open-Source Team","permalink":"/2022-10-31-open-source"},"nextItem":{"title":"Consensus Team Update","permalink":"/2022-10-02-consensus"}},"content":"## High level summary\\n\\nWe made good progress on most of the Action Items we agreed on Lisbon, like:\\n* Cardano System Tests was fully open to public (tools, tests, results)\\n See [cardano-node-tests webpage](https://tests.cardano.intersectmbo.org)\\n* We defined an [user-facing-functionality template](https://github.com/input-output-hk/cardano-node/blob/master/.github/ISSUE_TEMPLATE/user-facing-feature.md) that is used with the cardano-cli team\\n * this includes acceptance criteria & user stories, and definition of done\\n* We are in the process of running the cardano-node-tests at commit & PR level in cardano-node (we are affected by the Cicero migration right now but we did most of the work already)\\n* We started to apply a _labelling convention_ on [cardano-node issues](https://github.com/input-output-hk/cardano-node/issues) that will be used to generate some visual dashboards with some metrics [TBD]\\n* Ziyand Liu started an _End-to-End Development and Testing Process for Plutus Features_"},{"id":"2022-10-02-consensus","metadata":{"permalink":"/2022-10-02-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-consensus.md","source":"@site/blog/2022-11-02-consensus.md","title":"Consensus Team Update","description":"High-level summary","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":3.53,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-10-02-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Embedding Quality Workstream","permalink":"/2022-11-03-embedding-quality"},"nextItem":{"title":"Ledger Team Update","permalink":"/2022-11-02-ledger"}},"content":"## High-level summary\\n\\nDuring the past two weeks, the consensus team continued its work on testing the\\nUTxO HD prototype. We completed the era-transition and backing store tests, and\\nthe mempool tests are advancing at a steady pace. Regarding our work in the\\nGenesis design, we continued our collaboration with the research and networking\\nteams, and we continue investigating strategies for making the chain-sync\\njumping prototype faster.\\n\\n## High-level status report\\n\\n- Finish the UTxO HD prototype: on track.\\n - We worked on state-machine tests for the mempool, and spotted potential bugs\\n in the implementation. Investigation is ongoing.\\n - We have a set of property tests for the backing store. We still need to\\n incorporate the improvements to the LMDB cursor API that these tests\\n made possible.\\n - We merged the era-transition tests PR.\\n- Genesis: on track.\\n - Design work around Genesis continues in collaboration with researchers and\\n the networking team.\\n - We continued trying to improve the performance of the chain-sync jumping\\n prototype. We gained additional insight on which parameters to tweak next.\\n In spite of the baseline still being faster, the current prototype already\\n achieves a significant speedup when compared to the naive approach of simply\\n running full chain-sync with all peers.\\n- Tech debt: on track.\\n - We clarified a common source of confusion around VRF tie-breaking and\\n cross-era chain selection.\\n\\n## Workstreams\\n\\n### Finish the UTxO HD prototype\\n\\nWe continued working on property-tests for the UTxO HD prototype. In particular\\nwe merged the [era-transition tests\\nPR](https://github.com/input-output-hk/ouroboros-network/pull/4073).\\n\\n#### Backing store property tests\\n\\nThe [backing store property tests\\nPR](https://github.com/input-output-hk/ouroboros-network/pull/4081) has been\\nreviewed. The next steps are:\\n\\n- Improve error handling and command generation.\\n- Add coverage testing to check that we are not failing to cover interesting\\n test cases.\\n\\nThe [monadic cursor API](https://github.com/input-output-hk/lmdb-simple/pull/1)\\nwent through its first review round. The API is in a relatively stable state.\\nThis PR also unifies the `cborg` and `serialise`-based interfaces to LMDB\\noperations. The next steps are:\\n\\n- Write\\n [`quickcheck-dynamic`](https://hackage.haskell.org/package/quickcheck-dynamic)\\n state-machine tests for this API.\\n- Adapt the changes in the serialisation interface in the backing store property\\n tests. This will involve adding boilerplate code in consensus to make up for\\n the removal of the `cborg`-based interface.\\n\\n## LSM tree implementation\\n\\nWe worked on the [LSM tree\\nprototype](https://github.com/input-output-hk/ouroboros-network/issues/4121). In\\nparticular, we focused on tuning the LSM tree design to the different workloads\\nthat consensus has (eg syncing, normal node operation, etc).\\n\\n### Benchmarking the CSJ prototype\\n\\nWork on improving the chain-sync jumping performance is ongoing. In particular\\nwe compared the performance of different jump intervals, which, somewhat\\nsurprisingly, do not make a significant difference. In particular, we are seeing\\nperiodic \\"plateaus\\" where the chain-sync tip does not progress, but they are\\nmuch longer for the prototype. Our hypothesis is that this seem to be due to a\\ncombination of the garbage collector (GC) pauses, and the actual time it takes\\nthe non-dynamo chain-sync peers to jump to the tip of the slot of the dynamo\\nfragment.\\n\\nIn the coming weeks we will try to shorten these plateaus via a combination of\\ntweaking GC options and less synchronisation in the CSJ governor.\\n\\nThe following plot shows the performance of the chain-sync jumping prototype\\nusing different jumping intervals. It compares the syncing progress by plotting\\nthe slots of adopted blocks against time. The baseline is still faster, however\\nit is worth noting that the current prototype already achieves a significant\\nspeedup when compared to the naive approach of simply running full chain-sync\\nwith all peers.\\n\\n![](/images/consensus/2022-11-02-csj-vs-baseline.svg)\\n\\nThe second plot shows the syncing progress sliced to a chosen ~5min interval,\\nand includes, in addition to the slots of adopted blocks, the slots of the tip\\nof the ChainSync fragment. This allows us to see how far ahead of the selected\\ntip the CS dynamo is, i.e. how much room we have for BlockFetch not to get\\nstalled. It shows periodic behaviour (due to the forecasting limit), and shows\\nthat the CS fragment tip is not progressing for significant periods\\n(\\"plateaus\\").\\n\\n![](/images/consensus/2022-11-02-csj-vs-baseline-sliced.svg)\\n\\n## Technical debt\\n\\nWe [clarified](https://github.com/input-output-hk/ouroboros-network/pull/4098) a\\ncommon source of confusion around VRF tie-breaking and cross-era chain\\nselection. This PR involved correcting potentially misleading names of\\nVRF-related functions, and providing context for a particular VRF value is\\nused for tie-breaking."},{"id":"2022-11-02-ledger","metadata":{"permalink":"/2022-11-02-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-ledger.md","source":"@site/blog/2022-11-02-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.275,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-11-02-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2022-10-02-consensus"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2022-11-02-node-cli-api"}},"content":"## High level summary\\nWe have made the decision to use the\\n[formal ledger repository](https://github.com/input-output-hk/formal-ledger-specifications)\\nin place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure\\nto the model. In particular, we now have a lot of support for axiomatic set theory.\\nWhile the next ledger era is still in the design phase, most of the team remains working\\non technical debt.\\nIn particular, we have moved a lot more code out of the Shelley specific modules and into\\na ledger core module, we have finished up our benchmarking around the problematic `TICKF`\\nledger transition (while improving the performance), made conveniences to the development\\nenvironment, cleaned up all the recent changes to the cost model, added a lot of documentation,\\nfixed some flaky tests, and deleted some dead code.\\n\\n## Lower level summary\\n\\n### Axiomatic Set Theory\\n\\nThe formal ledger model now has support for much of the set theory that we make use of in\\nthe formal ledger specifications. See [[pull-20]].\\n\\n### Completed Technical Debt\\n\\n- We have addressed issues with two of our most problematic and flaky tests.\\n See [[pull-3039]] and [[pull-3093]].\\n- We have added more documentation and tests to the Twiddler module. This is a module which\\n makes our CBOR serialization round-trip tests much more robust, and will also hopefully\\n help enforce the mandate for downstream libraries to never re-serialize data that needs\\n to be hashed. See [[pull-3073]] and [[pull-3095]]\\n (we cannot merge 3095 just yet, due to a preference for merging other features).\\n- We have finished our long analysis of the problematic `TICKF` transition.\\n We now have a lot of benchmarks surrounding this code, and have added performance improvements.\\n See [[pull-3068]] and [[issue-3035]].\\n- We have restored support for\\n [ghcid](https://hackage.haskell.org/package/ghcid)\\n in our repository. This is a tool for developing with Haskell that many of us find greatly\\n improves our productivity by providing us with constant feedback from the type checker.\\n See [[pull-3112]].\\n- After much activity on the cost model, we have done some final clean up of the code.\\n See [[pull-3075]] and [[pull-3101]].\\n- We moved a lot of the existing user facing documentation regarding native tokens into the\\n ledger repository, and cleaned it up\\n (most of the heavy lifting was done by our amazing technical writers).\\n See [[pull-3091]].\\n- We removed dead code. See [[pull-3089]].\\n- We moved a lot of code from the Shelley specific libraries to the ledger core library.\\n See [[pull-3109]] and [[pull-3110]].\\n- We\'ve removed more of the awkward legacy template Haskell names.\\n See [[pull-3108]].\\n\\n[issue-3035]: https://github.com/input-output-hk/cardano-ledger/issues/3035\\n\\n[pull-20]: https://github.com/input-output-hk/formal-ledger-specifications/pull/20\\n[pull-3039]: https://github.com/input-output-hk/cardano-ledger/pull/3039\\n[pull-3093]: https://github.com/input-output-hk/cardano-ledger/pull/3093\\n[pull-3073]: https://github.com/input-output-hk/cardano-ledger/pull/3073\\n[pull-3095]: https://github.com/input-output-hk/cardano-ledger/pull/3095\\n[pull-3068]: https://github.com/input-output-hk/cardano-ledger/pull/3068\\n[pull-3112]: https://github.com/input-output-hk/cardano-ledger/pull/3112\\n[pull-3075]: https://github.com/input-output-hk/cardano-ledger/pull/3075\\n[pull-3101]: https://github.com/input-output-hk/cardano-ledger/pull/3101\\n[pull-3091]: https://github.com/input-output-hk/cardano-ledger/pull/3091\\n[pull-3089]: https://github.com/input-output-hk/cardano-ledger/pull/3089\\n[pull-3109]: https://github.com/input-output-hk/cardano-ledger/pull/3109\\n[pull-3110]: https://github.com/input-output-hk/cardano-ledger/pull/3110\\n[pull-3108]: https://github.com/input-output-hk/cardano-ledger/pull/3108"},{"id":"2022-11-02-node-cli-api","metadata":{"permalink":"/2022-11-02-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-node-cli-api.md","source":"@site/blog/2022-11-02-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.265,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-11-02-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2022-11-02-ledger"},"nextItem":{"title":"Node Release Team Update","permalink":"/2022-11-02-release"}},"content":"# 2022-11-02 - 2022-11-15\\n\\n## High level summary\\n- Documentation improvments\\n- Merged community contributions\\n- Exposing types from cardano-api requested by the community/other teamss\\n- Test output has been improved so diagnosing failures is now easier\\n- Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)\\n- Refactoring of cardano-testnet making it more useable as a library (ongoing)\\n- Release 1.35.4 was merged & released\\n\\n## Completed\\n\\n### cardano-cli\\n- [Community contributions - doc fixes and spelling errors](https://github.com/input-output-hk/cardano-node/pull/4567)\\n\\n### cardano-api\\n- [Reduce exposed modules in cardano-api](https://github.com/input-output-hk/cardano-node/pull/4546)\\n- [Add Ord instance for AddressInEra](https://github.com/input-output-hk/cardano-node/pull/4587)\\n- [Export TxTotalAndReturnCollateralSupportedInEra from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4496)\\n- [Expose TextEnvelopeCddl from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4635)\\n- [Expose txScriptValidityToScriptValidity in Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4628)\\n- [export RawBytesHexError](https://github.com/input-output-hk/cardano-node/pull/4599)\\n\\n### cardano-node\\n- [Add Plutus minting script doc](https://github.com/input-output-hk/cardano-node/pull/2883)\\n- [Improve test output](https://github.com/input-output-hk/cardano-node/pull/4575/files)\\n- [Enable stale bot](https://github.com/input-output-hk/cardano-node/pull/4586)\\n- [Add link to troubleshooting page in the wiki](https://github.com/input-output-hk/cardano-node/pull/4557)\\n- [Use environment files in Github Actions](https://github.com/input-output-hk/cardano-node/pull/4550)\\n\\n\\n### cardano-testnet\\n- [Add single entrypoint for starting testnets](https://github.com/input-output-hk/cardano-node/pull/4544)\\n- [Improve cardano-testnet test output](https://github.com/input-output-hk/cardano-node/pull/4575)\\n- [Reorder module hierarchy](https://github.com/input-output-hk/cardano-node/pull/4595)\\n\\n## In Progress\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-11-02-release","metadata":{"permalink":"/2022-11-02-release","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-release.md","source":"@site/blog/2022-11-02-release.md","title":"Node Release Team Update","description":"Node Reelease Update","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"release","permalink":"/tags/release"}],"readingTime":0.445,"hasTruncateMarker":false,"authors":[{"name":"Samuel Leathers","title":"Service Reliability Manager","url":"https://github.com/disassembler","imageURL":"https://github.com/disassembler.png","key":"disassembler"}],"frontMatter":{"title":"Node Release Team Update","slug":"2022-11-02-release","authors":"disassembler","tags":["release"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2022-11-02-node-cli-api"},"nextItem":{"title":"System Test Team Update","permalink":"/2022-11-02-system-test"}},"content":"## Node Reelease Update\\n## 2022-10-19 - 2022-11-02\\n\\n### Executive Summary\\nThe team is formalizing the new release process and team structure. Both preview/preprod environments have been reset,\\na temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8.\\n\\n1.35.4 release candidates have been created and are being tested internally and externally.\\n\\n### Completed\\n\\n- [1.35.4-rc1 tag](https://github.com/input-output-hk/cardano-node/commits/1.35.4-rc1)\\n- [1.35.4-rc2 tag (config changes only for preview)](https://github.com/input-output-hk/cardano-node/commits/1.35.4-rc1)\\n- [CHaP Migration] (https://github.com/input-output-hk/cardano-node/pull/4540)\\n\\n### In Progress\\n\\n- [Release 1.35.4](https://github.com/input-output-hk/cardano-node/commits/release/1.35)\\n\\n * [Test Status](https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.4_rc1/src_docs/source/test_results/node/tag_1_35_4_rc1.rst)\\n\\n- [Cicero CI Migration](https://updates.cardano.intersectmbo.org/2022-08-12-sre)"},{"id":"2022-11-02-system-test","metadata":{"permalink":"/2022-11-02-system-test","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-system-test.md","source":"@site/blog/2022-11-02-system-test.md","title":"System Test Team Update","description":"High level summary","date":"2022-11-02T00:00:00.000Z","formattedDate":"November 2, 2022","tags":[{"label":"system-test","permalink":"/tags/system-test"}],"readingTime":0.4,"hasTruncateMarker":false,"authors":[{"name":"Dorin Solomon","title":"System Test Team Lead","url":"https://github.com/dorin100","imageURL":"https://github.com/dorin100.png","key":"dorin100"}],"frontMatter":{"title":"System Test Team Update","slug":"2022-11-02-system-test","authors":"dorin100","tags":["system-test"],"hide_table_of_contents":false},"prevItem":{"title":"Node Release Team Update","permalink":"/2022-11-02-release"},"nextItem":{"title":"DB Sync Team Update","permalink":"/2022-11-01-db-sync"}},"content":"## High level summary\\n\\nWe have been focused on:\\n* Fully opening our test results (on top of the existing tests & tools): \\n See [cardano-node-tests webpage](https://tests.cardano.intersectmbo.org/).\\n* Started to test and automate the new functionalities added in the `1.35.4-rc1` node tag \\n See [test results tracking page](https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.4_rc1/src_docs/source/test_results/node/tag_1_35_4_rc1.rst).\\n* Made some improvements to the automated db-sync sync tests \\n See [db-sync tests](https://github.com/input-output-hk/cardano-node-tests/tree/db_sync_tests/db_sync_tests).\\n* Multiple cleanups and updates to the cardano-node-tests framework\\n* Updated the nightly pipelines for the cardano-node-tests after the Babbage HF"},{"id":"2022-11-01-db-sync","metadata":{"permalink":"/2022-11-01-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-01-db-sync.md","source":"@site/blog/2022-11-01-db-sync.md","title":"DB Sync Team Update","description":"High level summary","date":"2022-11-01T00:00:00.000Z","formattedDate":"November 1, 2022","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":0.86,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB Sync Team Update","slug":"2022-11-01-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"System Test Team Update","permalink":"/2022-11-02-system-test"},"nextItem":{"title":"Hydra Team Update","permalink":"/2022-10-28-hydra"}},"content":"## High level summary\\n\\nThe DBSync team is preparing a release which introduces schema simplifications, removes indexes,\\nunique and foreign keys. It also provides a way to fix older values and migrates without the need to\\nresync from genesis.\\n\\n## Lower level summary\\n\\n### Schema simplifications\\n\\nIndexes, Unique and Foreign keys are removed in order to speedup syncing\\n[#1295](https://github.com/input-output-hk/cardano-db-sync/pull/1295)\\nThe same pr also introduces a different way to rollback, which doesn\'t rely on foreign keys and\\nindexes.\\n\\n### Performance\\n\\nThe DBSync team ran a big number of benchmarks and investigated ways to speedup syncing. A\\nconservative number of these will be included in the next release and the rest can be found in\\n[performance view](https://github.com/orgs/input-output-hk/projects/52/views/7).\\n\\n### Migrations and resyncing\\n\\nThe next release will be 13.1.0, it will enable a migration without the need to resync. It will also\\nintroduce a procedure that fixes bytes values of Datum and RedeemerData in existing databases\\n[#1294](https://github.com/input-output-hk/cardano-db-sync/pull/1294)\\n\\n### Release\\n\\nThe release has been mostly cherry-picked from master\\n[#1294](https://github.com/input-output-hk/cardano-db-sync/pull/1294) and its scope can be seen\\n[release view](https://github.com/orgs/input-output-hk/projects/52/views/6)"},{"id":"2022-10-28-hydra","metadata":{"permalink":"/2022-10-28-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-28-hydra.md","source":"@site/blog/2022-10-28-hydra.md","title":"Hydra Team Update","description":"High level summary","date":"2022-10-28T00:00:00.000Z","formattedDate":"October 28, 2022","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.795,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-10-28-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"DB Sync Team Update","permalink":"/2022-11-01-db-sync"},"nextItem":{"title":"Network Team Update","permalink":"/2022-10-28-network"}},"content":"## High level summary\\n\\nThis week, the hydra team completed several user experience improvements to the\\n`hydra-tui` and `hydra-node`, and delivered a first version of persisted head\\nstates by publishing release version\\n[`0.8.0`](https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0).\\nBesides this, they met with researchers on topic of the HeadV1 specification and\\nkicked-off work on the RFP for an external audit of the Hydra Head protocol and implementation.\\n\\n## What did the team achieve this week\\n\\n- Completed the UX improvements on the `hydra-tui`\\n- Released version [`0.8.0`](https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0), which delivers a first version of persisted head states\\n- Met with researchers on the HeadV1 specification\\n- Started work on the RFP for our external audit\\n\\n## What are the goals of next week\\n\\n- Complete ADR18 implementation and get it merged\\n- Start work on event-sourced persistence [#580](https://github.com/input-output-hk/hydra-poc/issues/580)\\n- Have a first plutus script gap closed [#452](https://github.com/input-output-hk/hydra-poc/issues/452)\\n- Revamp CI to use flakes and build macos artifacts (stretch goal: migrate to cicero for nix builds)"},{"id":"2022-10-28-network","metadata":{"permalink":"/2022-10-28-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-28-network.md","source":"@site/blog/2022-10-28-network.md","title":"Network Team Update","description":"High-level summary","date":"2022-10-28T00:00:00.000Z","formattedDate":"October 28, 2022","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":2.665,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-10-28-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2022-10-28-hydra"},"nextItem":{"title":"Performance & Tracing Team Update","permalink":"/2022-10-28-performance-and-tracing"}},"content":"## High-level summary\\n\\nThe team has focused on debuging & fixing bugs for the **P2P single relay release**, which included\\n\\n* diagnosing, fixing and writing tests for a bug in `peer-state-actions` which\\n fortunately hasn\'t been released;\\n* diagnosing & preventing misconfiguration of DNS\\n\\nWe also focused on developing **peer sharing**. We also held a session with\\nthe scientists on eclipse evasion.\\n\\n## Detailed description\\n\\n### P2P Network Stack\\n\\nDuring the past two weeks the team focused on p2p single relay release and peer\\nsharing. We found and fixed an important bug recently introduced in one of the\\ncomponents of p2p networking stack (fortunately never released). Together with\\na fix, we designed a unit test diffusion simulation as well as quickcheck\\nproperty test (both could reproduce it). We also changed the code in a way that\\nif such a bug is reintroduced in the future, it will be obvious to diagnose.\\nFor more see:\\n\\n* [ouroboros-network#4067](https://github.com/input-output-hk/ouroboros-network/pull/4067)\\n* [ouroboros-network#4086](https://github.com/input-output-hk/ouroboros-network/pull/4086)\\n\\nInitial benchmarking run of the P2P code was executed. The results where\\nunlike what we see on the mainnet. We found a possible misconfiguration of the\\ncluster (caused by 0 TTL on domain names), which could be the direct cause of\\nit. We wrote a PR which rules out such misconfiguration. We are awaiting on\\nthe next benchmarking results. See more at:\\n\\n[ouroboros-network#4106](https://github.com/input-output-hk/ouroboros-network/pull/4106)\\n\\nWe also started working on P2P single relay release. The PR\\n[ouroboros-network#4120](https://github.com/input-output-hk/ouroboros-network/pull/4120)\\nincludes _108_ patches cherry-picked from the `master` branch. We started\\nworking toward integration these changes against the release branch of\\n`cardano-node`. Early next week we ought to be able to have an early version\\nof `cardano-node` with _non experimental P2P support_!\\n\\nFor more detailed release plan please see [P2P - Single\\nRelay](https://github.com/input-output-hk/ouroboros-network/issues/3888)\\nissue.\\n\\n### Consensus\\n\\nWe identified and fixed missing error reporting in consensus\\ninitialisation phase. See more at\\n[ouroboros-network#4015](https://github.com/input-output-hk/ouroboros-network/pull/4015)\\n\\n### Cardano Node\\n\\nWe also made changes in `cardano-node` in order to give better experience for\\nnode operators. This includes updating severities of some of the traces as\\nwell as implementing new format of the p2p topology file. For more see:\\n\\n* [cardano-node#4563](https://github.com/input-output-hk/cardano-node/pull/4563).\\n* [cardano-node#4561](https://github.com/input-output-hk/cardano-node/pull/4561)\\n\\n### Peer Sharing\\n\\nWe continued working on implementation of peer sharing. We have an early\\nimplementation which will be reviewed and analysed in next weeks. We started\\nworking on `cardano-node` integration. We need\\n[PR #4392](https://github.com/input-output-hk/cardano-node/pull/4392) to be merged\\nbefore such integration will be able to land in `cardano-node`, although this\\nis _not blocking_ us currently. See more at:\\n\\n* [ouroboros-network#4019](https://github.com/input-output-hk/ouroboros-network/pull/4019)\\n\\n### Eclipse Evasion\\n\\nWe held a session which included Alexander Russel, Sandro Coretti-Drayton and\\nNick Frisby from the consensus team. We discussed high lever design of the\\neclipse evasion scheme, which is important for the design and implementation of\\n`ouroboros-genesis`. We got a positive feedback from the researchers.\\n\\n### IO-Sim\\n\\nIn this period we made little progress towards releasing `IO-Sim` on Hackage.\\nA single [PR](https://github.com/input-output-hk/io-sim/pull/32) which added\\na few missing instances of the `STM` monad.\\n\\n### Open Source\\n\\nWe made sure the CI runs for PRs which comes from forks (which is important to\\naccept contributions from 3rd parties).\\n\\n### Mithril Cardano Integration\\n\\nWe held initial discussions with Arnaud Bailly about possible path to integrate\\nmithril to `cardano-node` and take advantage of the `ouroboros-network`\\ndiffusion layer."},{"id":"2022-10-28-performance-and-tracing","metadata":{"permalink":"/2022-10-28-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-28-performance-and-tracing.md","source":"@site/blog/2022-10-28-performance-and-tracing.md","title":"Performance & Tracing Team Update","description":"High level summary","date":"2022-10-28T00:00:00.000Z","formattedDate":"October 28, 2022","tags":[{"label":"performance-tracing","permalink":"/tags/performance-tracing"}],"readingTime":1.155,"hasTruncateMarker":false,"authors":[{"name":"Serge Kosyrev","title":"Performance and Tracing Team Lead","url":"https://github.com/deepfire","imageURL":"https://github.com/deepfire.png","key":"deepfire"}],"frontMatter":{"title":"Performance & Tracing Team Update","slug":"2022-10-28-performance-and-tracing","authors":"deepfire","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2022-10-28-network"},"nextItem":{"title":"SRE Team Update","permalink":"/2022-08-12-sre"}},"content":"## High level summary\\n\\nOn the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline.\\n\\nOn the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario.\\n\\n## Executive summary\\n\\n- The new tracing system public release is getting closer, as we\'re resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale.\\n- The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment.\\n- The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE."},{"id":"2022-08-12-sre","metadata":{"permalink":"/2022-08-12-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-28-sre.md","source":"@site/blog/2022-10-28-sre.md","title":"SRE Team Update","description":"High level summary","date":"2022-10-28T00:00:00.000Z","formattedDate":"October 28, 2022","tags":[{"label":"sre","permalink":"/tags/sre"}],"readingTime":3.04,"hasTruncateMarker":false,"authors":[{"name":"Michael Fellinger","title":"SRE Team Lead","url":"https://github.com/manveru","imageURL":"https://github.com/manveru.png","key":"manveru"}],"frontMatter":{"title":"SRE Team Update","slug":"2022-08-12-sre","authors":"manveru","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Team Update","permalink":"/2022-10-28-performance-and-tracing"},"nextItem":{"title":"Crypto Team Update","permalink":"/2022-10-27-crypto"}},"content":"## High level summary\\n\\nThe SRE team is heavily working on the Equinix Metal migration, replacing Hydra\\nwith Cicero, and a new version of Spongix.\\n\\n## Lower level summary\\n\\n### OpenZiti\\n\\n- Work is ongoing on our OpenZiti integration into Bitte in [[bitte-zt]].\\n- CI-World deployment of Darwin CI Ziti service in [[ci-world-commit-d40f4d]].\\n- Multiple issues filed, and a lot of discussion with the OpenZiti developers,\\n we\'re making pretty rapid progress thanks to them.\\n- Work on getting Equinix baremetal machines integrated into AWS World Bitte\\n clusters utilizing a Ziti ZTNA network overlay to bridge the networking of\\n the two environments and get IAM extension to Equinix machine for Nomad\\n client onboarding.\\n- A Nix Flake for most of our OpenZiti dependencies including the Console,\\n Controller, Edge Tunnel, and Router is now at [[openziti-bins]].\\n- The Flake also includes a WiP NixOS modules for these components.\\n- Tested Ziti Desktop Edge official app for Darwin x86_64 w/ GUI -- works with\\n no issues seen so far\\n- Moved the console to traefik routing service (`zac.$DOMAIN`) and\\n controller/edge router stay at `zt.$DOMAIN`, but have registered consul\\n services\\n\\n### Cicero & Tullia Integrations\\n\\n- Added webhook for [[haskell.nix]].\\n- Finished Cicero CI action for [[cardano-addresses-pull-205]].\\n- Fixed cardano-prelude cicero action in [[cardano-prelude-pull-176]].\\n- Fixed the `abcird-stdlib/publish` action [[abcirdc-pull-104]]\\n- fix error on vm-bigdisk flake configs [[cicero-pull-66]].\\n- Helped with Cicero actions and answered questions for [[plutus]]\\n [[cardano-prelude]], and [[abcirdc]].\\n- Merged [[cardano-base-pull-323]] for Tullia on cardano-base.\\n- Merged Cicero action in [[cardano-ogmios-pull-5]].\\n- Opened [[cardano-explorer-app-pull-427]] to add Tullia and Cicero.\\n- Opened [[cardano-ledger-pull-3097]] to add Cicero CI action.\\n- Opened [[cardano-node-pull-4489]] to add Tullia and Cicero, including\\n OS-agnostic jobs.\\n- Opened [[ouroboros-network-pull-4108]] to add Cicero action.\\n- Reviewed [[plutus-pull-4918]] and helped test it.\\n- Update Tullia in [[abcirdc-pull-97]] to build if a tag is given.\\n\\n### Cicero & Tullia Features\\n\\n- Improvements to Tullia task aggregation to make [[cardano-addresses]] build\\n correctly.\\n- Better tullia CUE lib default for tags [[tullia-commit-4df3c5d]].\\n- Put `cache.nixos.org` back in `cache.iog.io`\'s upstreams. This is now\\n considered a public cache again, and without it some Cicero evaluations had\\n to build huge packages.\\n- Started working on a flake-parts module for Tullia.\\n- Started working on cutting down Tullia task build time by putting facts in\\n JSON files.\\n- Fixed running into kernel arg limit by reading tullia\'s DAG from a file\\n- Merged [[tullia-pull-9]] that fixes several issues related to error reporting.\\n and escaping.\\n- Added Mac builders in Cicero on CI-World.\\n- Started work on Tullia invocation caching.\\n\\n### Spongix\\n\\n- A lot of progress on an SQlite backed version of Spongix, it already supports\\n the full HTTP binary cache protocol but still lacks comprehensive testing and\\n some tuning, as well as recursive lookups.\\n- First steps in the implementation of the `nix-daemon` `ssh-ng` protocol so\\n Spongix can be used via SSH and we can get rid of basic auth.\\n\\n### Bugs\\n\\n- Discovered Cicero bug where Nomad reschedules cause the Github commit status\\n to get stuck in `pending`\\n- Discovered Cicero race condition bug around concurrent transactions for\\n codependent actions.\\n- Fixed tullia task order bug in [[cardano-addresses]]\\n- Diagnose Cicero action not triggered in [[abcirdc]]\\n- Fixed meta/description of the Tullia package in [[tullia-pull-7]]\\n- Add Vault token loop alerts in [[bitte-cells-pull-40]]\\n- Ongoing investigation on recurring Patroni and nomad-follower issues related\\n to token rotation.\\n\\n[abcirdc]: https://github.com/input-output-hk/abcirdc\\n[abcirdc-pull-104]: https://github.com/input-output-hk/abcirdc/pull/104\\n[abcirdc-pull-97]: https://github.com/input-output-hk/abcirdc/pull/97\\n[bitte-cells-pull-40]: https://github.com/input-output-hk/bitte-cells/pull/40\\n[bitte-zt]: https://github.com/input-output-hk/bitte/compare/zt\\n[cardano-addresses]: https://github.com/input-output-hk/cardano-addresses\\n[cardano-addresses-pull-205]: https://github.com/input-output-hk/cardano-addresses/pull/205\\n[cardano-base-pull-323]: https://github.com/input-output-hk/cardano-base/pull/323\\n[cardano-explorer-app-pull-427]: https://github.com/input-output-hk/cardano-explorer-app/pull/427\\n[cardano-ledger-pull-3097]: https://github.com/input-output-hk/cardano-ledger/pull/3097\\n[cardano-node-pull-4489]: https://github.com/input-output-hk/cardano-node/pull/4489\\n[cardano-ogmios-pull-5]: https://github.com/input-output-hk/cardano-ogmios/pull/5\\n[cardano-prelude]: https://github.com/input-output-hk/cardano-prelude\\n[cardano-prelude-pull-176]: https://github.com/input-output-hk/cardano-prelude/pull/176#issuecomment-1280947946\\n[cicero-pull-66]: https://github.com/input-output-hk/cicero/pull/66\\n[ci-world-commit-d40f4d]: https://github.com/input-output-hk/ci-world/commit/d40f4d19187a2128b6f0d63bde7e3f9a33071994\\n[haskell.nix]: https://github.com/input-output-hk/haskell.nix\\n[openziti-bins]: https://github.com/johnalotoski/openziti-bins\\n[ouroboros-network-pull-4108]: https://github.com/input-output-hk/ouroboros-network/pull/4108\\n[plutus]: https://github.com/input-output-hk/plutus\\n[plutus-pull-4918]: https://github.com/input-output-hk/plutus/pull/4918\\n[tullia-commit-4df3c5d]: https://github.com/input-output-hk/tullia/commit/4df3c5d956f1b062b950643da12768ae71acf245\\n[tullia-pull-7]: https://github.com/input-output-hk/tullia/pull/7\\n[tullia-pull-9]: https://github.com/input-output-hk/tullia/pull/9"},{"id":"2022-10-27-crypto","metadata":{"permalink":"/2022-10-27-crypto","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-27-crypto.md","source":"@site/blog/2022-10-27-crypto.md","title":"Crypto Team Update","description":"High level overview","date":"2022-10-27T00:00:00.000Z","formattedDate":"October 27, 2022","tags":[{"label":"crypto","permalink":"/tags/crypto"}],"readingTime":1.095,"hasTruncateMarker":false,"authors":[{"name":"I\xf1igo Querejeta Azurmendi","title":"Cardano Lead Cryptography Engineer","url":"https://github.com/iquerejeta","imageURL":"https://github.com/iquerejeta.png","key":"iquerejeta"}],"frontMatter":{"title":"Crypto Team Update","slug":"2022-10-27-crypto","authors":"iquerejeta","tags":["crypto"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Team Update","permalink":"/2022-08-12-sre"},"nextItem":{"title":"Hydra Team Update","permalink":"/2022-10-21-hydra"}},"content":"## High level overview\\n\\nThe crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to\\nmeeting the [acceptance criteria](https://github.com/input-output-hk/cardano-base/issues/315) in cardano-base,\\nwhich lacks some editorial comments on the style of dQuandrant\'s PR, the inclusion of one additional test, and\\nwe are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution,\\nbut also progressing on the implementation.\\n\\n## Low level overview\\n### SECP built-ins\\n* (missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in [PR 313](https://github.com/input-output-hk/cardano-base/pull/313)\\n* CIP-0049 was addressed in the editors meeting, and [PR 250](https://github.com/cardano-foundation/CIPs/pull/250) was merged\\n* The unit-tests [PR 320](https://github.com/input-output-hk/cardano-base/pull/320) is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.\\n\\n### KES agent\\n* We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them.\\n* We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s)."},{"id":"2022-10-21-hydra","metadata":{"permalink":"/2022-10-21-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-21-hydra.md","source":"@site/blog/2022-10-21-hydra.md","title":"Hydra Team Update","description":"High level summary","date":"2022-10-21T00:00:00.000Z","formattedDate":"October 21, 2022","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":0.97,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-10-21-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Crypto Team Update","permalink":"/2022-10-27-crypto"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2022-10-19-node-cli-api"}},"content":"## High level summary\\n\\nThis week, the hydra team reviewed and addressed several open comments on the\\nnew HeadV1 specification, completing a list the of identified gaps between\\nspecification and implementation while doing so. In the wake of the recent\\ndemonstration of SundaeSwap running their DEX in a Hydra Head, they met with\\nthem to capture feature ideas & incorporate their feedback on the roadmap, as\\nwell as potential research avenues.\\n\\n### What did the team achieve this week\\n\\n- Had the monthly review meeting, a bit earlier than expected: \\n- Reviewed and addressed several open comments on HeadV1 specification.\\n- Completed the list of identified gaps between specification and implementation [#452](https://github.com/input-output-hk/hydra-poc/issues/452)\\n- Had two meetings with SundaeSwap to incorporate their feedback (on research and on the roadmap).\\n- Some small fixes on TUI and our docker images. [#538](https://github.com/input-output-hk/hydra-poc/issues/538) [#562](https://github.com/input-output-hk/hydra-poc/pull/562)\\n- Met with the internal audit team and clarified scope.\\n\\n### What are the goals of next week\\n\\n- Complete the last two items required for a version `0.8.0`.\\n- Cut the next release, version `0.8.0`\\n- Get backup/recovery [#187](https://github.com/input-output-hk/hydra-poc/issues/187) done with proper event sourcing (ADR18)\\n- Have the CI build macos artifacts"},{"id":"2022-10-19-node-cli-api","metadata":{"permalink":"/2022-10-19-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-19-node-cli-api.md","source":"@site/blog/2022-10-19-node-cli-api.md","title":"Node API & CLI Team Update","description":"High level summary","date":"2022-10-19T00:00:00.000Z","formattedDate":"October 19, 2022","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":1.57,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-10-19-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2022-10-21-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2022-10-18-consensus"}},"content":"# 2022-10-19 - 2022-11-01\\n\\n## High level summary\\n\\nThis sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node\'s mempool for the following information:\\n- Ask the node about the current mempool\'s capacity and sizes\\n- Request the next transaction from the mempool\'s current list\\n- Query if a particular transaction exists in the mempool\\n\\nOutside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric `tx_submit_fail_count` has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:\\n- Documentation improvments\\n- Release 1.35.4 was merged & released\\n- Exported various types from cardano-api that were requested by community members\\n\\n## Completed\\n\\n- [Release 1.35.4](https://github.com/input-output-hk/cardano-node/pull/4508)\\n\\n### cardano-cli\\n- [Add tx-mempool command to CLI](https://github.com/input-output-hk/cardano-node/pull/4276)\\n- [BUGFIX] - [Fix query era mismatch bug in transaction build command](https://github.com/input-output-hk/cardano-node/pull/4538)\\n- [Serenity] - [Condense Read and Validation modules in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4516)\\n\\n### cardano-api\\n- [Return Lovelace for calculateMinimumUTxO](https://github.com/input-output-hk/cardano-node/pull/4482)\\n- [Export IsPlutusScriptLanguage from cardano-api](https://github.com/input-output-hk/cardano-node/pull/4554)\\n- [Reduce exposed modules in cardano-api](https://github.com/input-output-hk/cardano-node/pull/4546)\\n- [Add ToJSON and FromJSON instances for Address](https://github.com/input-output-hk/cardano-node/pull/4568)\\n- [Export TxIns type alias from Cardano.Api](https://github.com/input-output-hk/cardano-node/pull/4565)\\n- [Export more generators from cardano-api](https://github.com/input-output-hk/cardano-node/pull/4534)\\n\\n### cardano-submit-api\\n- [Add tx_submit_fail_count metric](https://github.com/input-output-hk/cardano-node/pull/4566)\\n\\n### cardano-node\\n- [Upgrade to cabal-3.8.1.0](https://github.com/input-output-hk/cardano-node/pull/4549)\\n- [Update building-the-node-using-nix.md](https://github.com/input-output-hk/cardano-node/pull/4613)\\n\\n### cardano-testnet\\n- None\\n\\n## In Progress\\n\\n### cardano-cli\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Multiple pools support in query stake snapshot](https://github.com/input-output-hk/cardano-node/pull/4279)\\n- [Optimise query leadership schedule command](https://github.com/input-output-hk/cardano-node/pull/4250)\\n- [Optimise query stake snapshot command](https://github.com/input-output-hk/cardano-node/pull/4179)\\n- [Debug output for transaction submit](https://github.com/input-output-hk/cardano-node/pull/3819)\\n\\n### cardano-api\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n\\n### cardano-node\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-10-18-consensus","metadata":{"permalink":"/2022-10-18-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-18-consensus.md","source":"@site/blog/2022-10-18-consensus.md","title":"Consensus Team Update","description":"High-level summary","date":"2022-10-18T00:00:00.000Z","formattedDate":"October 18, 2022","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":3.225,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-10-18-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2022-10-19-node-cli-api"},"nextItem":{"title":"Hydra Team Update","permalink":"/2022-10-14-hydra"}},"content":"## High-level summary\\n\\nDuring the past two weeks, the consensus team worked on adding property test for\\ndifferent aspects of the UTxO HD prototype: era transitions, mempool, and\\nbacking store. Thanks to these tests we were able to uncover a bug in the\\nprototype. On the Genesis front, we benchmarked a different version of the\\nChainSync jumping prototype to try to improve its performance, but this did not\\nresult in any noticeable speedup.\\n\\n## High-level status report\\n\\n- Finish the UTxO HD prototype: on track.\\n - We focused on increasing test coverage for the UTxO-HD prototype:\\n - We started implementing Cadano-eras transition property-tests.\\n - We started implementing state-machine property-tests for the mempool.\\n - We merged the mempool rewrite.\\n - We started working on state-machine tests for the backing store. This\\n uncovered a bug in the range-read implementation of the LMDB backing\\n store.\\n- Genesis: on track.\\n - We benchmarked a version of the Genesis ChainSync Jumping prototype that\\n spreads out the ChainSync updates over a longer period of time. This did not\\n result in any noticeable speedup.\\n - We investigated the overhead introduced by non-ChainSync components, but no\\n conclusions could be drawn from the benchmarks we ran.\\n\\n## Workstreams\\n\\n### Finish the UTxO HD prototype\\n\\nWe focused on increasing test coverage for the UTxO HD prototype. We also merged\\nthe [mempool\\nrewrite](https://github.com/input-output-hk/ouroboros-network/pull/4049).\\n\\n#### Era transition property tests\\n\\nWe started implementing [Cardano era transition property\\ntests](https://github.com/input-output-hk/ouroboros-network/issues/4043),\\nwhich are needed for making sure that the ledger tables get updated in the\\nright way when we move from one era to the next. There are at the moment two\\nimportant transitions.\\n- Byron to Shelley: where all the UTxO is transferred from in-memory Byron\\n state (which has no tables) to the ledger tables of the Shelley state.\\n- Shelley to Allegra: where the AVVM addresses must be deleted.\\n\\nWe have tests for the Byron to Shelley transitions. We are working on adding\\nthe remaining ones.\\n\\n#### Mempool state-machine tests\\n\\nWe started implementing [state-machine property tests for the\\nmempool](https://github.com/input-output-hk/ouroboros-network/issues/4044).\\nThe mempool is currently tested via pure property tests, and use a ledger\\nstate without tables. With the introduction of UTxO HD, testing the concurrent\\nbehavior of the mempool became of crucial importance (eg now we have to\\nacquire locks to flush the backing store). In addition, we need to test a\\nledger state with tables. These needs led to the creation of a new set of\\nproperty tests. In particular we aim to run parallel state-machine tests that\\nexercise the mempool in a way similar to how the node would make use of it.\\n\\n#### Backing store property tests\\n\\nWe started working on [state-machine tests for the backing\\nstore](https://github.com/input-output-hk/ouroboros-network/pull/4081) that UTxO\\nHD uses. The property tests uncovered errors in the range-reads implementation\\nof the LMDB backing store. To facilitate fixing this bug, we made\\n[changes](https://github.com/input-output-hk/lmdb-simple/pull/1) to the Haskell\\nLMDB bindings.\\n\\n### Benchmarking the CSJ prototype\\n\\nPrompted by previous benchmarks showing significant improvements in sync time by\\nusing more capabilities, we implemented a way to spread out the ChainSync\\nupdates over a larger period instead of firing them all at the same time. This\\ndidn\'t result in a noticeable speedup.\\n\\nWe also benchmarked the prototype with CSJ disabled (such that just the dynamo\\npeer is running ChainSync, but e.g. BlockFetch still sees all peers) to rule\\nout/confirm overhead by non-ChainSync (mainly BlockFetch) related components.\\nThis results in era-specific behavior (speed is like the prototype in Byron, but\\nlike the baseline in Shelley). This deserves a closer look in the future.\\n\\nThis diagram shows the respective syncing progress, starting at Genesis and\\ncontinuing a good part into Shelley (with the dashed line indicating the\\nByron-to-Shelley transition).\\n\\n - Red: baseline\\n - Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps.\\n - Blue: like Green, jumps are spread out.\\n - Orange: variant with no jumping, to measure unrelated overhead.\\n\\n![](/images/happy-path-csj-prototype-bench-2.svg)"},{"id":"2022-10-14-hydra","metadata":{"permalink":"/2022-10-14-hydra","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-14-hydra.md","source":"@site/blog/2022-10-14-hydra.md","title":"Hydra Team Update","description":"High level summary","date":"2022-10-14T00:00:00.000Z","formattedDate":"October 14, 2022","tags":[{"label":"hydra","permalink":"/tags/hydra"}],"readingTime":1.26,"hasTruncateMarker":false,"authors":[{"name":"Sebastian Nagel","title":"Hydra Team Lead","url":"https://github.com/ch1bo","imageURL":"https://github.com/ch1bo.png","key":"ch1bo"}],"frontMatter":{"title":"Hydra Team Update","slug":"2022-10-14-hydra","authors":"ch1bo","tags":["hydra"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2022-10-18-consensus"},"nextItem":{"title":"Ledger Team Update","permalink":"/2022-10-14-ledger"}},"content":"## High level summary\\n\\nThis week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the `hydra-node` over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks \\"past the opening of a Head\\". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.\\n\\n## What did the team achieve this week\\n\\n- Last week we thought we were done with [ADR18](https://hydra.family/head-protocol/adr/18/), but were not ...\\n- ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.\\n- Implemented a first version for persistence [#187](https://github.com/input-output-hk/hydra-poc/issues/187) in response.\\n- Enhanced CI to publish test results [on our website](https://hydra.family/head-protocol/benchmarks/tests/hydra-node/hspec-results)\\n- Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!\\n- Pulled static executable feature [#200](https://github.com/input-output-hk/hydra-poc/issues/200) into scope, implemented it and merged it!\\n- Received and read through a project proposal by a vendor (building a Hydra platform).\\n\\n## What are the goals of next week\\n\\n- Get backup/recovery [#187](https://github.com/input-output-hk/hydra-poc/issues/187) done with proper event sourcing (ADR18)\\n- Cut the next release, version `0.8.0`\\n- Address open comments on specification document & complete the list of identified gaps between specification and implementation [#452](https://github.com/input-output-hk/hydra-poc/issues/452)\\n- Have the CI build macos artifacts"},{"id":"2022-10-14-ledger","metadata":{"permalink":"/2022-10-14-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-14-ledger.md","source":"@site/blog/2022-10-14-ledger.md","title":"Ledger Team Update","description":"High level summary","date":"2022-10-14T00:00:00.000Z","formattedDate":"October 14, 2022","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.03,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-10-14-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Hydra Team Update","permalink":"/2022-10-14-hydra"},"nextItem":{"title":"Consensus Team Update","permalink":"/2022-10-05-consensus"}},"content":"## High level summary\\n\\nThe ledger team is still primarily focused on addressing\\n[technical](https://github.com/input-output-hk/cardano-ledger/issues?q=is%3Aissue+is%3Aopen+label%3A%22%3Acredit_card%3A+technical-debt%22)\\n[debt](https://github.com/input-output-hk/cardano-ledger/projects/3).\\nWe now have the infrastructure for versioning our serialization schemes,\\nwhich we continue to put into action.\\nWe have made first steps towards getting proper support for the\\n[formal ledger repository](https://github.com/input-output-hk/formal-ledger-specifications)\\n(in particular, we\'ve added nix builds and\\ncontinuous integration support).\\nWe are wrapping up an investigation of the performance of a critical\\nfunction used by the consensus layer for leader checks.\\nFinally, we are improving the packaging and versioning of our code.\\n\\n## Lower level summary\\n\\n### Completed Technical Debt\\n\\n- Because the Shelley ledger era was a complete re-write of the Byron ledger era, a lot of\\n our code lives in the `cardano-ledger-shelley` package, though with hindsight we can say that\\n much of it should live in `cardano-ledger-core`.\\n We continue to move things to `cardano-ledger-core`, and have much more to come. [[pull-3059]]\\n- We now have the infrastructure to support **versioned** serialization schemes.\\n The inability to do this has caused us a lot difficulties,\\n such as [[issue-3003]], [[issue-2965]] and [[issue-2444]].\\n We are still in the process of switching to the versioned serialization scheme\\n (such as [[pull-3078]]),\\n but the infrastructure was completed in [[pull-3063]].\\n- We now have proper nix and CI support for the formal ledger project. [[pull-19]]\\n- A separate team is helping bring support for\\n [CHaP](https://github.com/input-output-hk/cardano-haskell-packages)\\n to all the cardano-node repositories.\\n We have been helping out with this effort.\\n* A separate team continues working on upgrading all the\\n cardano-node repositories to work with ghc 9.2.4.\\n We have been helping out with this effort.\\n\\n### In-progress Technical Debt\\n\\nWe also have several fairly large pull-requests in review\\nthat we are working on.\\n\\n- In an on-going attempt to build out a more user-friendly API,\\n we continue to remove `HasField` instances in place of using micro-lenses.\\n The protocol parameters, in particular, are being worked on. [[pull-3045]]\\n- We are also renaming record fields to be consistent across the repository. [[pull-3062]]\\n- We are now cleaning up all the work we did to understand the performance\\n of the TICKF transition. We have some improvements to the computatation\\n as well. [[pull-3068]]\\n- We are adding more documentation, in particular to our `Twiddler` functionality. [[pull-3073]]\\n- The formal ledger is adding support for finite set theory. [[pull-20]]\\n\\n[issue-2444]: https://github.com/input-output-hk/cardano-ledger/issues/2444\\n[issue-2965]: https://github.com/input-output-hk/cardano-ledger/issues/2965\\n[issue-3003]: https://github.com/input-output-hk/cardano-ledger/issues/3003\\n\\n[pull-3059]: https://github.com/input-output-hk/cardano-ledger/pull/3059\\n[pull-3045]: https://github.com/input-output-hk/cardano-ledger/pull/3045\\n[pull-3062]: https://github.com/input-output-hk/cardano-ledger/pull/3062\\n[pull-3063]: https://github.com/input-output-hk/cardano-ledger/pull/3063\\n[pull-3068]: https://github.com/input-output-hk/cardano-ledger/pull/3068\\n[pull-3073]: https://github.com/input-output-hk/cardano-ledger/pull/3073\\n[pull-3078]: https://github.com/input-output-hk/cardano-ledger/pull/3078\\n[pull-19]: https://github.com/input-output-hk/formal-ledger-specifications/pull/19\\n[pull-20]: https://github.com/input-output-hk/formal-ledger-specifications/pull/20"},{"id":"2022-10-05-consensus","metadata":{"permalink":"/2022-10-05-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-05-consensus.md","source":"@site/blog/2022-10-05-consensus.md","title":"Consensus Team Update","description":"High level summary","date":"2022-10-05T00:00:00.000Z","formattedDate":"October 5, 2022","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":1.825,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-10-05-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2022-10-14-ledger"},"nextItem":{"title":"DB Sync Team Update","permalink":"/2022-10-04-db-sync"}},"content":"## High level summary\\n\\nDuring the past two weeks, the consensus team worked on improving the\\nperformance of the ChainSync jumping logic, which is needed for Genesis. We also\\nrewrote the implementation of the mempool in the UTxO HD prototype which solved\\nthe issues that prevented us from running system level benchmarks. Also on the\\nUTxO HD front, we have an improved implementation of the sequence-of-differences\\n(a crucial piece of UTxO HD), and we also elaborated a test sign-off list for\\nthe UTxO HD feature.\\n\\n## Executive summary\\n\\n- With the latest implementation of ChainSync jumping we are closer to the\\n baseline performance. In particular, the prototype seems to benefit from the\\n extra concurrency provided by additional capabilities.\\n- We rewrote the implementation of the mempool in the UTxO HD prototype. This\\n rewrite was required due to performance problems we observed when running the\\n [workbench](https://github.com/input-output-hk/cardano-node/blob/master/Makefile#L51).\\n These performance problems prevented us from running system level benchmarks.\\n The rewrite solved these issues. After the [UTxO-HD: mempool\\n rewrite](https://github.com/input-output-hk/ouroboros-network/pull/4049) PR is\\n merged, we will contact the Benchmarking team so that they run the system\\n level benchmarks.\\n- The implementation of sequences of differences based on anti-diffs was\\n integrated into the UTxO HD prototype. It is pending\\n [review](https://github.com/input-output-hk/ouroboros-network/pull/4036) and\\n we also need to run replay and syncing benchmarks to confirm that this will\\n deliver a performance improvement, as observed in our micro-benchmarks.\\n- [The UTxO HD prototype\\n inspection](https://github.com/input-output-hk/ouroboros-network/issues/3944)\\n resulted in a [list of\\n tests](https://github.com/input-output-hk/ouroboros-network/issues/4045)\\n needed for consensus to consider the UTxO HD prototype as fully tested.\\n\\n## Additional information\\n\\n### Genesis\\n\\nBenchmarking setup: 50MBit/s, 50ms latency\\n\\n - Red: baseline\\n - Green: Current CSJ prototype, 10 peers, jumps every 3000/f slots.\\n\\nAs ChainSync Jumping involves many concurrent network operations at every jump,\\nwe tried to run the node with 6 instead of the default 2 capabilties.\\n\\n - Orange: baseline with 6 capabilities\\n - Blue: CSJ prototype with 6 capabilities\\n\\nThis diagram shows the respective syncing progress, starting at Genesis and\\ncontinuing a good part into Shelley (with the dashed line indicating the\\nByron-to-Shelley transition).\\n\\n![](/images/happy-path-csj-prototype-bench-1.svg)\\n\\nFurther work includes whether we can tune the prototype to better handle few\\ncapabilities, or to adapt the default number of capabilities (potentially just\\nwhile syncing)."},{"id":"2022-10-04-db-sync","metadata":{"permalink":"/2022-10-04-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-04-db-sync.md","source":"@site/blog/2022-10-04-db-sync.md","title":"DB Sync Team Update","description":"DBSync Update","date":"2022-10-04T00:00:00.000Z","formattedDate":"October 4, 2022","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":1.65,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB Sync Team Update","slug":"2022-10-04-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2022-10-05-consensus"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/2022-10-04-node-cli-api"}},"content":"## DBSync Update\\n\\n\\n### Fast restarts\\n We fixed a long overdue issue in db-sync which caused long delays on restarts\\n [1266](https://github.com/input-output-hk/cardano-db-sync/pull/1266). This has been\\n one of db-sync main objectives for this period. Restarts are now very fast,\\n because db-sync deletes almost nothing from the db, it just replays the ledger rules until it\\n reaches the tip of the db. The fix also improves reconnection speed, in cases where the node\\n restarts or the connection is temporarily lost. It also speeds up even more in cases where due to a\\n deployment mess up a very old snapshot or no snapshot at all is used.\\n\\n### Property based testing\\nWe added stateful property based testing, using `quickcheck-state-machine`\\n [1269](https://github.com/input-output-hk/cardano-db-sync/pull/1269). These tests use empty or\\n almost empty blocks to test the new behaviour of restarts and rollbacks.\\n\\n These tests generate arbitrarily a list of symbolic commands from these:\\n\\n```\\nRollForward Int\\nRollBack BlockNo\\nStopDBSync\\nStartDBSync\\nRestartNode\\nAssertBlockNo BlockNo\\n```\\n\\nThe commands are translated into real commands. For example `RollForward Int` will forge a new block\\nthat fits on the current chain. These real commands are executed against db-sync using the mock\\nchain-sync server. The symbolic commands are executed against a vesy simplistic Model of db-sync\\nwhich looks like this:\\n\\n``` haskell\\n Model\\n { serverTip :: BlockNo\\n , dbSyncTip :: BlockNo\\n , dbSynsIsOn :: Bool\\n , dbSynsHasSynced :: Bool\\n }\\n```\\n\\nFinally a number of postconditions are checked, related to the eventual block number of db-sync.\\n\\n### Tech Debt\\n\\nWe handled a number of tech debt in\\n [1275](https://github.com/input-output-hk/cardano-db-sync/pull/1275)\\n This improves the code format of db-sync, deletes many queries that were never used and groups the\\n others. This tech debt resolution not only improves the experience of working in db-sync, but can\\n facilitate some of our other objectives, as it makes it very explicit which queries are used\\n during syncing and which indexes are necessary.\\n\\n### Smash\\n\\nWe worked on fixing an issue related to fetching pool metadata\\n [1276](https://github.com/input-output-hk/cardano-db-sync/pull/1276).\\n The issue which is described in\\n [1270](https://github.com/input-output-hk/cardano-db-sync/issues/1270)"},{"id":"2022-10-04-node-cli-api","metadata":{"permalink":"/2022-10-04-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-04-node-cli-api.md","source":"@site/blog/2022-10-04-node-cli-api.md","title":"Node API & CLI Team Update","description":"Node-Api-Cli Update","date":"2022-10-04T00:00:00.000Z","formattedDate":"October 4, 2022","tags":[{"label":"cli-api","permalink":"/tags/cli-api"}],"readingTime":0.98,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-10-04-node-cli-api","authors":"Jimbo4350","tags":["cli-api"],"hide_table_of_contents":false},"prevItem":{"title":"DB Sync Team Update","permalink":"/2022-10-04-db-sync"},"nextItem":{"title":"Ledger Team Update","permalink":"/2022-09-30-ledger"}},"content":"## Node-Api-Cli Update\\n## 2022-10-04 - 2022-10-18\\n\\n### Executive Summary\\nThe majority of the team\'s time was spent between getting `1.34.4` ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to `cardano-cli`.\\n\\n### Completed\\n\\n- [GHC 9.2.4 preparations](https://github.com/input-output-hk/cardano-node/pull/4504)\\n\\n#### cardano-cli\\n\\n- [Serenity] - [Separate IO from txBuild and txBuildRaw functions](https://github.com/input-output-hk/cardano-node/pull/4491)\\n\\n#### cardano-api\\n\\n- [BUGFIX] - [TxWitness text envelope format does not roundtrip in Shelley era](https://github.com/input-output-hk/cardano-node/pull/4501)\\n\\n#### cardano-node\\n\\n- [Fix MacOS GHA CI](https://github.com/input-output-hk/cardano-node/pull/4526)\\n\\n### In Progress\\n\\n- [Release 1.34.4](https://github.com/input-output-hk/cardano-node/pull/4508)\\n\\n#### cardano-cli\\n\\n- [BUGFIX] - [Fix query era mismatch bug in transaction build command](https://github.com/input-output-hk/cardano-node/pull/4538)\\n- [Serenity] - [Condense Read and Validation modules in cardano-cli](https://github.com/input-output-hk/cardano-node/pull/4516)\\n- [BUGFIX]- [Stop the cli from changing the bytes in user-supplied data](https://github.com/input-output-hk/cardano-node/pull/4537)\\n- [Infer protocol params in transaction build](https://github.com/input-output-hk/cardano-node/pull/4431)\\n- [Allow assembling transactions with no witnesses](https://github.com/input-output-hk/cardano-node/pull/4408)\\n- [Add tx-mempool command to CLI](https://github.com/input-output-hk/cardano-node/pull/4276)\\n\\n### cardano-api\\n\\n- [Return Lovelace for calculateMinimumUTxO](https://github.com/input-output-hk/cardano-node/pull/4482)\\n- [Make TxBodyContent an instance of Monoid](https://github.com/input-output-hk/cardano-node/pull/4458)\\n- [Auto-balance multiasset transactions](https://github.com/input-output-hk/cardano-node/pull/4450)\\n\\n### cardano-node\\n\\n- [Stop running CI when the only changes are to docs](https://github.com/input-output-hk/cardano-node/pull/4263)\\n- [Rename TestEnableDevelopmentHardForkEras](https://github.com/input-output-hk/cardano-node/pull/4341)"},{"id":"2022-09-30-ledger","metadata":{"permalink":"/2022-09-30-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-30-ledger.md","source":"@site/blog/2022-09-30-ledger.md","title":"Ledger Team Update","description":"Ledger Update","date":"2022-09-30T00:00:00.000Z","formattedDate":"September 30, 2022","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":2.285,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-09-30-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Node API & CLI Team Update","permalink":"/2022-10-04-node-cli-api"},"nextItem":{"title":"Network Team Update","permalink":"/2022-09-27-network"}},"content":"## Ledger Update\\n\\nWe have continued focusing nearly entirely on addressing technical debt.\\nA lot of design work has begun for the next ledger era,\\nbut we do not yet have anything concrete to share.\\n\\n### Technical debt issues completed\\n\\n* [[issue-1676]][[pull-2992]] We have finally removed the ledger dependency on the\\n `cardano-prelude` package. It was barely used in the ledger repository, and it added a dependency\\n that we did not want to maintain. It was a bit difficult to remove, and we had\\n to coordinate removing it from cardano-base.\\n A lot ended up going into [pull-2992][pull-2992], due to the coordination effort, and we ended\\n up updating Plutus as well.\\n This means that we\'ve now also made a lot of progress on the problematic cost model serialization\\n issues described in [issue-2902].\\n In particular, after we resolve [issue-3014], we will not have to wait an epoch before\\n releasing a cost model for a new version of Plutus, as we had to do for the Vasil HF.\\n* [[issue-3046]][[pull-3055]] We moved a module that is now only used in Byron to a Byron package.\\n* [[issue-3047]][[pull-3054]] We improved the interface to the `Value` (multi-asset) type.\\n* [[pull-3044]] We debugged and fixed a tricky compilation issue. Certain kinds of field updates\\n were adding approximately 20 minutes to our compile time!\\n* [[issue-2932]][[pull-3036]] As a part of our ongoing re-organization of the codebase, we\\n have added a `Cardano.Ledger.[Era].Core` module to each ledger era that has a TxBody class.\\n Most classes defined in the era should go in this new module.\\n We also re-export the `Cardno.Ledger.Core` module and the previous `Cardano.Ledger.[Era].Core`\\n modules from each era.\\n\\n### Technical debt in progress\\n\\n* [[issue-3034]][[issue-3035]][[node-issue-4421]] We are continuing to write benchmarks to understand exactly where\\n all the time is being spent on executing the `TICKF` transition.\\n The consolidation of the per-stake-credential stake distribution to the per-stake-pool\\n distribution does seem to account for a large amount of time (near a second as written, which we\\n have down to about half a second with some optimizations),\\n but this does not account for everything.\\n Applying the reward update may also be a big contributing factor.\\n* [[pull-3033]][[pull-3038]][[pull-3041]] A separate team is working on upgrading all the\\n cardano-node repositories to work with ghc 9.2.4. We have been helping out with this effort.\\n* The nix scripts used to build our new\\n [formal ledger model](https://github.com/input-output-hk/formal-ledger-specifications)\\n do not work consistently for everyone, and we have been working on fixing these issues.\\n* [[issue-3014]] We are still working on adding a versioning scheme to all of the ledger\\n serializers.\\n\\n[issue-1676]: https://github.com/input-output-hk/cardano-ledger/issues/1676\\n[issue-2902]: https://github.com/input-output-hk/cardano-ledger/issues/2902\\n[issue-2932]: https://github.com/input-output-hk/cardano-ledger/issues/2932\\n[issue-3014]: https://github.com/input-output-hk/cardano-ledger/issues/3014\\n[issue-3034]: https://github.com/input-output-hk/cardano-ledger/issues/3034\\n[issue-3035]: https://github.com/input-output-hk/cardano-ledger/issues/3035\\n[issue-3046]: https://github.com/input-output-hk/cardano-ledger/issues/3046\\n[issue-3047]: https://github.com/input-output-hk/cardano-ledger/issues/3047\\n\\n[node-issue-4421]: https://github.com/input-output-hk/cardano-node/issues/4421\\n\\n[pull-2992]: https://github.com/input-output-hk/cardano-ledger/pull/2992\\n[pull-3033]: https://github.com/input-output-hk/cardano-ledger/pull/3033\\n[pull-3038]: https://github.com/input-output-hk/cardano-ledger/pull/3038\\n[pull-3036]: https://github.com/input-output-hk/cardano-ledger/pull/3036\\n[pull-3041]: https://github.com/input-output-hk/cardano-ledger/pull/3041\\n[pull-3044]: https://github.com/input-output-hk/cardano-ledger/pull/3044\\n[pull-3054]: https://github.com/input-output-hk/cardano-ledger/pull/3054\\n[pull-3055]: https://github.com/input-output-hk/cardano-ledger/pull/3055"},{"id":"2022-09-27-network","metadata":{"permalink":"/2022-09-27-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-27-network.md","source":"@site/blog/2022-09-27-network.md","title":"Network Team Update","description":"Network Update","date":"2022-09-27T00:00:00.000Z","formattedDate":"September 27, 2022","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":2.24,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-09-27-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2022-09-30-ledger"},"nextItem":{"title":"Consensus Team Update","permalink":"/2022-09-20-consensus"}},"content":"```mdx-code-block\\nimport ReactPlayer from \'react-player\'\\n```\\n\\n## Network Update\\n\\n### Ouroboros Network\\n\\n* We finished high and low level _peer sharing_ design. See\\n [Peer Sharing Implementation Plan](https://github.com/input-output-hk/ouroboros-network/wiki/Peer-Sharing-Implementation-Plan)\\n* We started working on low-level design of _eclipse evasion_ (work in\\n progress).\\n* We decided to use **peer sharing** instead of overloaded and ambiguous _gossip_ term.\\n [PR input-output-hk/ouroboros-network#3980](https://github.com/input-output-hk/ouroboros-network/pull/3980)\\n* We fixed technical dept\\n [issue input-output-hk/cardano-node#3905](https://github.com/input-output-hk/ouroboros-network/issues/3905) in\\n the simulation testing of diffusion\\n [PR input-output-hk/cardano-node#4004](https://github.com/input-output-hk/ouroboros-network/pull/4004)\\n* We deployed all our nodes using our new nix based deployment architecture.\\n When deploying we found an issue in the\\n [`RTView`](https://github.com/input-output-hk/cardano-node/issues/3752).\\n\\n### Ouroboros Consensus\\n\\n* Recently we found out that the consensus does not log exceptions thrown during\\n intiialisation. This was fixed in\\n [PR input-output-hk/ouroboros-network#4015](https://github.com/input-output-hk/ouroboros-network/pull/4015)\\n As part of this pull request we also changed that all exceptions rethrown by\\n the connection handler thread are wrapped in `ExceptionInHandler`.\\n\\n#### Some older items, which were not announced\\n\\n* We identified and fixed an issue related to socket activation (socket options\\n where not set for sockets passed through socket activation).\\n [PR input-output-hk/cardano-node#3979](https://github.com/input-output-hk/ouroboros-network/pull/3979)\\n This fix will be released in the next `cardano-node` release.\\n\\n### Cardano Node\\n\\n* We extended the NixOs service module so that one can modify `socketPath`,\\n `runtimeDir`, `databasePath`, `traceSocketPathAccept`,\\n `traceSocketPathConnect` and `stateDir` options.\\n [PR input-output-hk/cardano-node#4196](https://github.com/input-output-hk/cardano-node/pull/4196)\\n\\n### IO-Sim\\n\\nWe resolved a number of issues before release of `io-sim` on hackage:\\n\\n* [issue input-output-hk/ouroboros-network#2797](https://github.com/input-output-hk/ouroboros-network/issues/2797)\\n* [issue input-output-hk/ouroboros-network#2650](https://github.com/input-output-hk/ouroboros-network/issues/2650)\\n* [issue input-output-hk/ouroboros-network#3436](https://github.com/input-output-hk/ouroboros-network/issues/3436)\\n* [issue input-output-hk/ouroboros-network#2588](https://github.com/input-output-hk/ouroboros-network/issues/2588)\\n* [issue input-output-hk/ouroboros-network#2587](https://github.com/input-output-hk/ouroboros-network/issues/2587)\\n* [issue input-output-hk/ouroboros-network#2586](https://github.com/input-output-hk/ouroboros-network/issues/2586)\\n\\nSee [PR #24](https://github.com/input-output-hk/io-sim/pull/24).\\n\\nWe also improved experience for contributors of `io-sim` and `typed-protocols` by adding issue templates:\\n* [PR input-output-hk/io-sim#25](https://github.com/input-output-hk/io-sim/pull/25)\\n\\n### Typed Protocols\\n\\n* We pushed a branch which identifies a GHC quirk:\\n [coot/typed-protocols-rewrite-StateToken-problem](https://github.com/input-output-hk/typed-protocols/tree/coot/typed-protocols-rewrite-StateToken-problem).\\n That\'s too be resolved in order to push forward review of the redesign in\\n [PR input-output-hk/typed-protocols#3](https://github.com/input-output-hk/typed-protocols/pull/3).\\n* As for `io-sim`, we wrote issue templates:\\n [PR input-output-hk/typed-protocols#11](https://github.com/input-output-hk/typed-protocols/pull/11)\\n\\n### Input Endorsers Simulation\\n\\nNew features include:\\n\\n* Histograms of block arrival frequency, for both network (inbound) and CPU\\n (block validation). This is interesting to check that we\'re not overloading\\n the CPU block validation capacity, or network link capacity. Or alternatively\\n to observe the behaviour in an overload situation if we set the block\\n generation rate high enough.\\n\\n* Pie chart of utilisation of TCP links. This shows how small a fraction of\\n links are being used at any one time, and shows that once the system \\"warms\\n up\\" and is operating stably, most block delivery is ballistic.\\n\\n* Showing off the new screen layout combinators, that let us put multiple\\n charts, titles etc on screen at once and scale them to whatever screen or\\n video resolution we like without having to tweak numbers (this example is\\n scaled to fit 1080HD video resolution).\\n\\n\\n```mdx-code-block\\n\\n```"},{"id":"2022-09-20-consensus","metadata":{"permalink":"/2022-09-20-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-20-consensus.md","source":"@site/blog/2022-09-20-consensus.md","title":"Consensus Team Update","description":"- We proposed a fix for the performance degradation observed when running","date":"2022-09-20T00:00:00.000Z","formattedDate":"September 20, 2022","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":3.895,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-09-20-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/2022-09-27-network"},"nextItem":{"title":"DB Sync Team Update","permalink":"/2022-09-19-db-sync"}},"content":"- We proposed a fix for the performance degradation observed when running\\n distributed multi-node benchmarks in the UTxO HD feature branch. While this\\n fixed the problems observed when running local benchmarks, it broke the\\n `ThreadNet` tests due to concurrency issues. Therefore, we think it is wise to\\n start redesigning the UTxO HD mempool integration.\\n- We did several rounds of code review on the alternative implementation of\\n diff-sequences required by the UTxO HD feature based on the idea of\\n anti-diffs. This alternative implementation is close to being merged, and the\\n next step is to integrate this to the UTxO HD branch, so that we can run\\n ad-hoc replaying and syncing from scratch benchmarks and compare these with\\n the baseline. The micro-benchmarks we elaborated for the alternative\\n implementation show speedups of up to 4x, so we are optimistic about the\\n performance of replaying and syncing from scratch benchmarks, however it is\\n important to notice that *due to the nature of UTxO HD* we will still be\\n slower than the baseline.\\n- The final draft of the Genesis implementation specification is ready for\\n review.\\n- We implemented a prototype for the happy path of Genesis\' ChainSync Jumping\\n (CSJ). The prototype is slower than the baseline, however it is not the latest\\n version of the prototype and the jump interval is very small.\\n- Work on integrating Conway has [stopped][nicks-comment-conway] since\\n priorities have changed.\\n- We started work on benchmarking epoch-boundaries and epoch overhead\\n [pr-4014][pr-4014]. To this end, we made use of a modified version of our\\n `db-analyser` tool. We ran the new benchmarking setup using the Cardano\\n mainnet chain, and we can see that block tick and application take\\n substantially longer at epoch boundaries, although there are a couple of slots\\n during an epoch in which these computations take more than normal. We notified\\n the ledger team about these findings. We will use this modified version of\\n `db-analyser` to investigate the epoch overhead.\\n\\n\\n# Workstreams\\n\\n## UTxO HD\\n\\n - Spent quite some time investigating the root cause of the degradation in\\n performance observed in the benchmarks. We run the `make forge-stress`\\n benchmarks locally in order to debug this behavior.\\n\\n - Transaction batching doesn\'t make a notable difference in the outcome\\n (considering we are using the in-memory backend).\\n\\n - The mempool batching implementation required asynchronous transaction\\n validation which is a violation of the `LocalTxSubmission` protocol\\n contract and therefore if we continued on that route, the impact would\\n have been quite big.\\n\\n - The STM logic we implemented by using a `TMVar` for the mempool internal\\n state was buggy and under certain circumstances it seemed to lock.\\n Reverting the mempool internal state to be stored in a `TVar` seems to\\n solve this problem.\\n\\n - The results we get after this change look almost identical to the ones\\n from the baseline.\\n\\n - [The anti-diff prototype (PR\\n #3997)](https://github.com/input-output-hk/ouroboros-network/pull/3997) has\\n been reviewed and is close to being merged.\\n\\n - A follow-up issue ([issue\\n #4010](https://github.com/input-output-hk/ouroboros-network/issues/4010))\\n to integrate the anti-diff prototype in the various `consensus` packages\\n was created. A first version of the integration exists, and all tests\\n pass. A next step is to get some indication of the \\"real\\" performance gain\\n by profiling `db-analyser` (or `cardano-node`).\\n\\n## Genesis\\n\\n - Final draft of the Genesis implementation specification, now up for review.\\n\\n - Local benchmark setup for parameter tuning via the happy path ChainSync\\n Jumping (CSJ) prototype ([Issue 3987][issue-3987]).\\n\\n - Context: Our Genesis design requires us to check in with a large (~20)\\n number of servers periodically while syncing. These servers are offered\\n jump requests via the ChainSync protocol (hence the name), which they can\\n accept or decline. If a peer declines, the Genesis rule allows us to\\n determine whether a node actually has a better chain.\\n\\n - The \\"happy path\\" is when no peer declines a jump. We want this to have\\n close to no overhead compared to status quo, i.e. syncing without Genesis.\\n\\n - We implemented a prototype for this happy path, and are now starting to\\n test in various configurations (number of peers, latency, bandwidth) to\\n tune the performance of ChainSync jumping, i.e. how complicated our logic\\n of choosing when to jump needs to be.\\n\\n **Example:**\\n\\n - Simulated connection: 50 MBit/s, 50ms latency\\n\\n - Jump interval: 3000 slots (on the low end, could be increased to up to\\n `3k/f`)\\n\\n - Red: baseline (1.35.3), one peer in topology file\\n\\n - Blue: Preliminary version of our prototype, with 10 peers.\\n\\n ![](/images/happy-path-csj-prototype-prelim.svg)\\n\\n It is slower by about ~30%, but it is not the latest version of the\\n prototype, and the jump interval is very small, making CSJ more of a\\n bottleneck.\\n\\n## Technical debt\\n\\n- Fix flakiness in ChainDB QSM tests ([PR 3990](https://github.com/input-output-hk/ouroboros-network/pull/3990)).\\n\\n[issue-3987]: https://github.com/input-output-hk/ouroboros-network/issues/3987\\n[nicks-comment-conway]: https://github.com/input-output-hk/ouroboros-network/pull/3971#issuecomment-1252524031\\n[pr-4014]: https://github.com/input-output-hk/ouroboros-network/pull/4014"},{"id":"2022-09-19-db-sync","metadata":{"permalink":"/2022-09-19-db-sync","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-19-db-sync.md","source":"@site/blog/2022-09-19-db-sync.md","title":"DB Sync Team Update","description":"DBSync Update","date":"2022-09-19T00:00:00.000Z","formattedDate":"September 19, 2022","tags":[{"label":"db-sync","permalink":"/tags/db-sync"}],"readingTime":1.525,"hasTruncateMarker":false,"authors":[{"name":"Kostas Dermentzis","title":"Cardano DB-Sync Software Engineer","url":"https://github.com/kderme","imageURL":"https://github.com/kderme.png","key":"kderme"}],"frontMatter":{"title":"DB Sync Team Update","slug":"2022-09-19-db-sync","authors":"kderme","tags":["db-sync"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2022-09-20-consensus"},"nextItem":{"title":"Ledger Team Update","permalink":"/2022-09-16-ledger"}},"content":"## DBSync Update\\n\\n### New Tag\\nWe created a new db-sync tag 13.0.5 which addresses shortcomings of the last\\nrelease 13.0.4. It is currently under testing.\\nThe Changelog is\\n [here](https://github.com/input-output-hk/cardano-db-sync/blob/8ad98d48e0068f3768d48e18fdcbe254037cba3b/cardano-db-sync/CHANGELOG.md#1305) and in more details:\\n\\n* We fixed fees for tx with phase 2 failure that didn\'t include a total collateral field.\\n [1248](https://github.com/input-output-hk/cardano-db-sync/pull/1248)\\n\\n* We fixed an issue that could cause db-sync to crash if a specific rollback occured.\\n [1247](https://github.com/input-output-hk/cardano-db-sync/pull/1247)\\n\\n* DBSync will now avoid reserialising data, especially Datums, which not only slows down db-sync but\\n could result in the wrong CBOR encoding being inserted.\\n [1217](https://github.com/input-output-hk/cardano-db-sync/pull/1217)\\n\\n* All the fixes above come with unit tests which validates the fix.\\n\\n* Added support for preprod and preview from docker. DBSync no longer needs to include the configs\\n for different networks, these are directly fetched from the cardano world.\\n [1254](https://github.com/input-output-hk/cardano-db-sync/pull/1254)\\n\\n* We added better support from docker for the new disable options and the overall documentation.\\n [1260](https://github.com/input-output-hk/cardano-db-sync/pull/1260)\\n\\nAll the above were also backported to the master branch\\n\\n### Open source\\n\\nWe made the db-sync [board public](https://github.com/orgs/input-output-hk/projects/52/views/1), so\\n everyone can have access on the issues we prioritise.\\n We also added new tasks to the board, some of them could be approachable to newcomers or people who\\n want to contribute.\\n\\n### Progress on tech debt and new features\\n* [1223](https://github.com/input-output-hk/cardano-db-sync/pull/1223) was merged, which removes the\\n foreign keys from the db schema. This opens the road to a number of optimizations.\\n\\n* An additional fix on top of the previous work was added\\n [1250](https://github.com/input-output-hk/cardano-db-sync/pull/1250)\\n\\n* An initial version where DBSync does not rollback on restart is done here\\n [1266](https://github.com/input-output-hk/cardano-db-sync/pull/1266).\\nThis allows db-sync to restart much faster, without the need to delete data and reinsert them. In\\n the future it can also facilitate migrations in cases where the ledger snapshots have a breaking\\n change, without the need to resync everything from genesis."},{"id":"2022-09-16-ledger","metadata":{"permalink":"/2022-09-16-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-16-ledger.md","source":"@site/blog/2022-09-16-ledger.md","title":"Ledger Team Update","description":"Ledger Update","date":"2022-09-16T00:00:00.000Z","formattedDate":"September 16, 2022","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.625,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-09-16-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"DB Sync Team Update","permalink":"/2022-09-19-db-sync"},"nextItem":{"title":"Ledger Team Update","permalink":"/2022-09-01-ledger"}},"content":"## Ledger Update\\n\\nWe have been focused nearly entirely on addressing technical debt.\\n\\n* We introduced more consistent naming across eras, this time for the auxiliary data.\\n See [3032](https://github.com/input-output-hk/cardano-ledger/pull/3032).\\n* We made clear how the `consumed` functions differs between eras (which was a previous source of\\n confusion), and added some related support to the fledgling ledger API.\\n See [3016](https://github.com/input-output-hk/cardano-ledger/pull/3016).\\n* We added clarity and organizational consistency to the main ledger era type synonyms.\\n See [3017](https://github.com/input-output-hk/cardano-ledger/pull/3017).\\n* We removed code duplication related to the input data hashes.\\n See [3018](https://github.com/input-output-hk/cardano-ledger/pull/3018).\\n* We split up a large module into smaller components. The large module was actually causing our\\n CI to time out.\\n See [3020](https://github.com/input-output-hk/cardano-ledger/pull/3020).\\n* We cleaned up stale information in our cabal files, and upgraded cabal 3.8.\\n See [3023](https://github.com/input-output-hk/cardano-ledger/pull/3023),\\n [3031](https://github.com/input-output-hk/cardano-ledger/pull/3031),\\n and [3028](https://github.com/input-output-hk/cardano-ledger/pull/3028).\\n* We made consistent, standalone `TxOut` (transaction output) modules for every era.\\n See [3024](https://github.com/input-output-hk/cardano-ledger/pull/3024).\\n* We brought consistency to a maddening inconsistent use of type variables indicating the specific\\n choice of cryptographic primitives. In particular, all uses of `crypto` have been renamed to `c`.\\n See [3027](https://github.com/input-output-hk/cardano-ledger/pull/3027).\\n* We did a clean up of the types in the Alonzo era. In particular, we switched to more parametric\\n types that will compose better in the future and which simplifies the constraints.\\n See [3029](https://github.com/input-output-hk/cardano-ledger/pull/3029).\\n* We consolidated some existing fragmented logic regarding how we gather the scripts needed for a\\n given transaction. This is a much needed cleanup to prevent future mistakes.\\n See [3019](https://github.com/input-output-hk/cardano-ledger/pull/3019).\\n* We fixed a problem with our generators that was causing a fair number of our property tests to\\n fail in CI.\\n See [3039](https://github.com/input-output-hk/cardano-ledger/pull/3039).\\n* We have started the work to update Plutus. This will bring support for SECP in the next major\\n protocol version, and also address a\\n [problem](https://github.com/input-output-hk/cardano-ledger/issues/2902)\\n that we current have evolving the cost models.\\n See [3030](https://github.com/input-output-hk/cardano-ledger/pull/3030).\\n* We addressed a small issue that came up when integrating the conway era downstream, namely\\n the lack of some serialization instances.\\n See [3022](https://github.com/input-output-hk/cardano-ledger/pull/3022)."},{"id":"2022-09-01-ledger","metadata":{"permalink":"/2022-09-01-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-01-ledger.md","source":"@site/blog/2022-09-01-ledger.md","title":"Ledger Team Update","description":"Ledger Update","date":"2022-09-01T00:00:00.000Z","formattedDate":"September 1, 2022","tags":[{"label":"ledger","permalink":"/tags/ledger"}],"readingTime":1.94,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-09-01-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2022-09-16-ledger"},"nextItem":{"title":"Consensus Team Update","permalink":"/2022-08-31-consensus"}},"content":"## Ledger Update\\n\\nSince finishing up support for the Vasil Hardfork, the ledger team has been\\nfocused on two main things: a new ledger era and technical debt.\\n\\n### New minimal ledger era\\n\\nWe have implemented a new ledger era named `conway` which is nearly identical\\nto the `babbage` era. This has been the first time that we have been able to see\\nwhat a minimal ledger era looks like. We have finished this task, modulo any\\nintegration issues that might come up. The only thing that the `conway` era\\ndoes differently from the `babbage` era is provide support for rotating\\nthe master keys using the hardfork combinator\'s state translation.\\nWe may end up adding features to the `conway` era, but it is a nice exercise\\nseeing what it looks like to get a minimal ledger era supported in all the\\ndownstream components.\\n\\n### Addressing technical debt\\n\\nWe have been addressing technical debt, mostly in an effort to make the\\nrepository a more friendly code base to work in.\\n\\n- We have begun work on a ledger API, called `cardano-ledger-api`.\\n- We have done a big re-design of the major type classes used in the ledger.\\n With hindsight on our side, we now have something much more organized and\\n easier to use.\\n- We have done a lot of re-naming. The names across eras are now much more\\n uniform, avoid certain confusions that plagued us, and are clearer in where\\n they are from.\\n- We have reduced a lot of code duplication that could lead to bugs if you\\n do not have the whole code base in your head.\\n- We have added a handful of performance improvements.\\n- We added type safety in a number of locations. In particular, the type of\\n values that can be minted in a transaction no longer allow for Lovelace\\n in the type, and some functions which used to handle both timelock scripts\\n and plutus script now correctly enoforce at the type level that only one of\\n them can be used.\\n- We made our generators so that they now produce a much richer set of\\n valid serializations. There is room within CBOR to serialize the same\\n data structure in multiple ways, and it is helpful to have the generators\\n use a wide variety.\\n- We have begun re-organizing our test suites."},{"id":"2022-08-31-consensus","metadata":{"permalink":"/2022-08-31-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-08-31-consensus.md","source":"@site/blog/2022-08-31-consensus.md","title":"Consensus Team Update","description":"Executive summary","date":"2022-08-31T00:00:00.000Z","formattedDate":"August 31, 2022","tags":[{"label":"consensus","permalink":"/tags/consensus"}],"readingTime":8.925,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Team Update","slug":"2022-08-31-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/2022-09-01-ledger"},"nextItem":{"title":"Network Team Update","permalink":"/2022-08-12-network"}},"content":"## Executive summary\\n\\n- We did most of the heavy lifting required to integrate the Conway era.\\n- We have property tests for the UTxO HD backing store API implementations. A\\n possible bug was identified. Work is ongoing to make sure the property-tests\\n cover all the relevant cases.\\n- We implemented and benchmarked the \\"anti-diff\\" prototype to speed up the UTxO\\n HD functionality. Results show a rough speedup of `4x` to `5.5x` across\\n several scenarios. Note that: [\\"Data reported by `tasty-bench` is only of\\n indicative and comparative significance.\\"](https://hackage.haskell.org/package/tasty-bench-0.3.2/docs/Test-Tasty-Bench.html).\\n We are investigating additional performance improvements. The \\"anti-diff\\"\\n prototype and benchmarks are still pending code review.\\n- We elaborated a draft specification for the Genesis implementation and\\n `ChainSync` jumping optimization.\\n\\n## Workstreams\\n\\n### Conway\\n\\n - Integration PR of the minimal Conway era ([Issue #3963][issue-3962], [PR\\n #3971][pull-3971]).\\n - Discussions with Ledger revealed possible sources of confusion about which\\n data should be changed in the Conway era. As a result, a new technical debt\\n issue was raised, which does not block the integration of the Conway era\\n ([Issue #3976][issue-3976]).\\n\\n### UTxO HD\\n\\n- [Issue #3954][issue-3954], [branch][branch-3954]: The functionality of a\\n backing store, which is the interface to the on-disk part of ledger state in\\n UTxO-HD, is tested at a high level through the `OnDisk` tests. However, some\\n functionalities remain untested, e.g., reads of ranges of keys. As such, we\\n have implemented `quickcheck-state-machine` tests that exercise backing stores\\n directly. The tests are reusable for different backing store implementations\\n because the tests are implementation-agnostic: Any backing store that conforms\\n to the backing store interface can be plugged into the tests. Work is still\\n ongoing to label/monitor the tests, such that we can verify that interesting\\n cases are being tested. Furthermore, a possible bug has been identified in the\\n LMDB backing store with respect to range reads, though the bug has not been\\n resolved yet.\\n- [Issue #3946][issue-3946], [branch][branch-4199], [PR #3882][pull-3882]: The\\n \\"anti-diff\\" prototype proposes an alternative approach to keeping track of\\n sequences (more specifically, `FingerTree`s) of diffs. These diff sequences\\n are a component of the in-memory parts of the ledger state in UTxO-HD. Since\\n the consensus code often requires the cumulative diff of a sequence of diffs,\\n the current implementation \\"caches\\" cumulative diffs of each subtree in the\\n diff sequence. This caching allows relatively fast reconstruction of the total\\n cumulative diff, but this caching proved to incur a non-negligible cost: when\\n we manipulate diff sequences through splits and appends, we force re-computing\\n a logarithmic number of caches. This is problematic, since we often split and\\n append in consensus: we split when we flush diffs to a backing store or when\\n we roll back blocks, and we append when pushing blocks. The new approach\\n should reduce the overhead of this caching.\\n\\n We implemented micro-benchmarks for the \\"anti-diff\\" prototype: we\\n first generate a sequence of commands (`Forward`, `Push`, `Flush`, or\\n `Rollback`) through a simulation, after which we measure the performance of\\n applying the commands to a diff sequence. In this context, `Forward` means\\n forwarding of values through a diff, whereas `Rollback` means switching to\\n a different fork by rolling back diffs/blocks and pushing new ones.\\n Moreover, we compare the performance for the two implementations: the\\n \\"legacy\\" approach, and the anti-diff approach.\\n\\n Some preliminary results were positive, but we needed to revisit the\\n benchmark\'s configuration to obtain more definitive results. After a\\n discussion with @dcoutts and the consensus team about this configuration\\n (e.g., number of commands generated, choice of the security parameter `k`),\\n the benchmarks should now be closer to the realistic setting. The following\\n configuration specifies the default configuration that is used in the\\n benchmarking code:\\n * Number of commands generated: `10_000`\\n * Security parameter `k`: `2160`\\n * Number of initial backing values: `100`\\n * Number of key-value pairs deleted by a push: `50`\\n * Number of key-value pairs inserted by a push: `50`\\n * Number of key-value pairs forwarded by a forward: `50`\\n * Probability of a large (in the range `[1000, 2000]`) rollback: `0.05`\\n * Probability of a small (in the range `[1, 10]`) rollback: `0.95`\\n * Order of commands:\\n * An equal number of forward and pushes.\\n * `1` flush every `10` pushes.\\n * `1` rollback every `100` pushes\\n\\n Moreover, we run four benchmark scenarios:\\n * Default configuration\\n * Without rollbacks\\n * With only small rollbacks\\n * Without rollbacks, larger flushes (`1` flush every `100` pushes)\\n\\n ### How to read results\\n\\n Note: this section uses documentation from the\\n [tasty-bench](https://hackage.haskell.org/package/tasty-bench) package to\\n explain how to read the results of running our benchmarks.\\n\\n Running a benchmark scenario gives us the following (curated) output:\\n ```text\\n ...\\n AntiDiff: OK (18.27s)\\n 2.527 s \xb1 47 ms, 2.1 GB allocated, 544 MB copied, 2.2 GB peak memory, 0.23x\\n LegacyDiff: OK (32.73s)\\n 10.829 s \xb1 148 ms, 6.8 GB allocated, 2.3 GB copied, 2.2 GB peak memory\\n ...\\n ```\\n\\n The output says that the first benchmark, which exercises the anti-diff\\n prototype, was repeatedly executed for `18.27` seconds (wall-clock time),\\n its predicted mean CPU time was `2.527` seconds and means of individual\\n samples do not often diverge from it further than `\xb1 47` milliseconds\\n (double standard deviation). We also configure the RTS to collect GC\\n statistics, which enables `tasty-bench` to estimate and report memory usage.\\n This data is reported as per `RTSStats` fields: `allocated_bytes`,\\n `copied_bytes` and `max_mem_in_use_bytes`. So, the output of the first\\n benchmark says that a total of `2.1 GB` of memory was allocated, that a\\n total of `544 MB` of memory were copied, and that the peak memory in usage\\n was `2.2 GB`. We read the output for the second benchmark in the same way.\\n\\n Furthermore, the benchmark compares the mean CPU times for\\n both the anti-diff and legacy approaches: In this case, the mean CPU time\\n for the anti-diff approach is `~0.23x` the mean CPU time for the legacy\\n approach. Conversely, the mean CPU time for the legacy approach is\\n `1 / 0.23 ~= 4.35x` the mean CPU time for the anti-diff approach. We will\\n call `0.23x` the *improvement factor*. We will call `4.35x` the *speedup*.\\n\\n Note that these improvement factors (and reported results) are subject to\\n noise, randomness, the specific configuration parameters, and the whims\\n of statistics. Data reported by `tasty-bench` is only of indicative and\\n comparative significance.\\n\\n ### Results\\n\\n For each of the 4 scenarios, we list the results of running the anti-diff and\\n legacy approaches 5 times. We run the benchmarks 5 times to get an indication\\n of whether the results are similar across multiple runs. Furthermore, we\\n calculate the accompanying *ranges* (if applicable) of improvement factors and\\n speedups.\\n\\n Note also the decrease in total bytes allocated and total bytes copied for\\n the anti-diff approach compared to the legacy approach.\\n\\n #### Default configuration\\n\\n |Name|Mean CPU time|2*Stdev (CPU time)|Total bytes allocated|Total bytes copied|Peak memory|\\n |-|-|-|-|-|-|\\n |Run 1: AntiDiff|2.533 s (0.23x)|4.7 ms|2.1 GB|557 MB|2.4 GB|\\n |Run 1: LegacyDiff|10.792 s|162 ms|6.8 GB|2.3 GB|2.4 GB|\\n |Run 2: AntiDiff|2.508 s (0.23x)|245 ms|2.1 GB|515 MB|2.2 GB|\\n |Run 2: LegacyDiff|10.850 s| 30 ms|6.9 GB|2.3 GB|2.2 GB|\\n |Run 3: AntiDiff|2.562 s (0.23x)|5.0 ms|2.1 GB|552 MB|2.2 GB|\\n |Run 3: LegacyDiff|10.993 s|149 ms|6.9 GB|2.3 GB|2.2 GB|\\n |Run 4: AntiDiff|2.168 s (0.22x)|5.3 ms|1.8 GB|434 MB|2.0 GB|\\n |Run 4: LegacyDiff|9.976 s| 39 ms|6.3 GB|2.0 GB|2.0 GB|\\n |Run 5: AntiDiff|2.527 s (0.23x)| 47 ms|2.1 GB|544 MB|2.2 GB|\\n |Run 5: LegacyDiff|10.829 s|148 ms|6.8 GB|2.3 GB|2.2 GB|\\n\\n * Improvement factor: `[0.22, 0.23]`\\n * Speedup : `[1 / 0.23 ~= 4.35, 1 / 0.22 ~= 4.55]`\\n\\n #### No rollbacks\\n\\n |Name|Mean CPU time|2*Stdev (CPU time)|Total bytes allocated|Total bytes copied|Peak memory|\\n |-|-|-|-|-|-|\\n |Run 1: AntiDiff|1.638 s (0.19x)| 36 ms|1.4 GB|181 MB|2.4 GB|\\n |Run 1: LegacyDiff|8.656 s|207 ms|5.7 GB|1.5 GB|2.4 GB|\\n |Run 2: AntiDiff|1.638 s (0.19x)| 75 ms|1.4 GB|181 MB|2.2 GB|\\n |Run 2: LegacyDiff|8.654 s|322 ms|5.7 GB|1.5 GB|2.2 GB|\\n |Run 3: AntiDiff|1.663 s (0.19x)| 74 ms|1.4 GB|181 MB|2.2 GB|\\n |Run 3: LegacyDiff|8.799 s|216 ms|5.7 GB|1.5 GB|2.2 GB|\\n |Run 4: AntiDiff|1.645 s (0.19x)| 51 ms|1.4 GB|181 MB|2.0 GB|\\n |Run 4: LegacyDiff|8.732 s|261 ms|5.7 GB|1.5 GB|2.0 GB|\\n |Run 5: AntiDiff|1.639 s (0.19x)| 19 ms|1.4 GB|181 MB|2.2 GB|\\n |Run 5: LegacyDiff|8.653 s|234 ms|5.7 GB|1.5 GB|2.2 GB|\\n\\n * Improvement factor: `0.19`\\n * Speedup : `1 / 0.19 ~= 5.25`\\n\\n\\n #### Only small rollbacks\\n\\n |Name|Mean CPU time|2*Stdev (CPU time)|Total bytes allocated|Total bytes copied|Peak memory|\\n |-|-|-|-|-|-|\\n |Run 1: AntiDiff|1.833 s (0.18x)| 36 ms|1.5 GB|185 MB|2.4 GB|\\n |Run 1: LegacyDiff|10.362 s|867 ms|5.8 GB|1.6 GB|2.4 GB|\\n |Run 2: AntiDiff|1.696 s (0.19x)| 30 ms|1.5 GB|185 MB|2.2 GB|\\n |Run 2: LegacyDiff|8.822 s|106 ms|5.8 GB|1.5 GB|2.2 GB|\\n |Run 3: AntiDiff|1.702 s (0.19x)| 44 ms|1.5 GB|186 MB|2.2 GB|\\n |Run 3: LegacyDiff|8.906 s|147 ms|5.8 GB|1.5 GB|2.2 GB|\\n |Run 4: AntiDiff|1.701 s (0.19x)| 47 ms|1.5 GB|185 MB|2.0 GB|\\n |Run 4: LegacyDiff|8.949 s|197 ms|5.8 GB|1.5 GB|2.0 GB|\\n |Run 5: AntiDiff|1.677 s (0.19x)| 55 ms|1.5 GB|186 MB|2.2 GB|\\n |Run 5: LegacyDiff|8.856 s|177 ms|5.8 GB|1.5 GB|2.2 GB|\\n\\n * Improvement factor: `[0.18, 0.19]`\\n * Speedup : `[1 / 0.19 ~= 5.25, 1 / 0.18 ~= 5.55]`\\n\\n #### No rollbacks, larger flushes (every 100 pushes)\\n\\n |Name|Mean CPU time|2*Stdev (CPU time)|Total bytes allocated|Total bytes copied|Peak memory|\\n |-|-|-|-|-|-|\\n |Run 1: AntiDiff|1.643 s (0.25x)| 21 ms|1.5 GB|196 MB|2.4 GB|\\n |Run 1: LegacyDiff|6.591 s|351 ms|4.0 GB|1.4 GB|2.4 GB|\\n |Run 2: AntiDiff|1.616 s (0.25x)| 47 ms|1.5 GB|196 MB|2.2 GB|\\n |Run 2: LegacyDiff|6.520 s|232 ms|4.0 GB|1.4 GB|2.2 GB|\\n |Run 3: AntiDiff|1.640 s (0.25x)| 34 ms|1.5 GB|196 MB|2.2 GB|\\n |Run 3: LegacyDiff|6.540 s|150 ms|4.0 GB|1.4 GB|2.2 GB|\\n |Run 4: AntiDiff|1.635 s (0.25x)| 76 ms|1.5 GB|196 MB|2.0 GB|\\n |Run 4: LegacyDiff|6.589 s|131 ms|4.0 GB|1.4 GB|2.0 GB|\\n |Run 5: AntiDiff|1.628 s (0.25x)| 19 ms|1.5 GB|196 MB|2.2 GB|\\n |Run 5: LegacyDiff|6.490 s|5.9 ms|4.0 GB|1.4 GB|2.2 GB|\\n\\n * Improvement factor: `0.25`\\n * Speedup : `1 / 0.25 ~= 4`\\n\\n### Genesis\\n\\n - We elaborated a draft of the specification of the Genesis implementation and\\n the ChainSync Jumping optimization. In particular, this includes a proof\\n sketch that the latter preserves liveness and safety in all cases ([Issue\\n 3964][issue-3964]).\\n - @nfrisby\'s main realization during this sprint was that he had been\\n focusing so far on the case where the selected chain is an extension of\\n the intersection of our peers\' ChainSync candidates.\\n - This is the main case, ie an \\"absorbing\\" state, but it\'s not the only\\n case.\\n - The new proof sketch begins by case splitting on that predicate, and\\n that made the sketch quite a bit easier to follow.\\n - We continued working on the \\"happy path\\" `ChainSync` Jumping prototype ([Issue\\n 3960][issue-3960]).\\n\\n### Technical debt\\n\\n - We started working on the issues required to re-enable nightly CI runs..\\n Nightly CI runs have far more lax time constraints, which gives the option to\\n run significantly more property tests than in our regular CI. To this end, we\\n merged a PR to easily adapt the number of tests globally ([PR\\n #3947][pull-3947]).\\n\\n[issue-3954]: https://github.com/input-output-hk/ouroboros-network/issues/3954\\n[branch-3954]: https://github.com/input-output-hk/ouroboros-network/tree/jdral/3954-backingstore-property-tests\\n[issue-3946]: https://github.com/input-output-hk/ouroboros-network/issues/3946\\n[branch-4199]: https://github.com/input-output-hk/ouroboros-network/tree/jdral/CAD-4199-prototype-anti-diffs\\n[pull-3882]: https://github.com/input-output-hk/ouroboros-network/pull/3882\\n[pull-3947]: https://github.com/input-output-hk/ouroboros-network/pull/3947\\n[issue-3960]: https://github.com/input-output-hk/ouroboros-network/issues/3960\\n[issue-3962]: https://github.com/input-output-hk/ouroboros-network/issues/3962\\n[issue-3964]: https://github.com/input-output-hk/ouroboros-network/issues/3964\\n[pull-3971]: https://github.com/input-output-hk/ouroboros-network/pull/3971\\n[issue-3976]: https://github.com/input-output-hk/ouroboros-network/issues/3976"},{"id":"2022-08-12-network","metadata":{"permalink":"/2022-08-12-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-08-12-network.md","source":"@site/blog/2022-08-12-network.md","title":"Network Team Update","description":"The networking team took an active part in the project iteration (PI) planning","date":"2022-08-12T00:00:00.000Z","formattedDate":"August 12, 2022","tags":[{"label":"network","permalink":"/tags/network"}],"readingTime":0.88,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-08-12-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Team Update","permalink":"/2022-08-31-consensus"}},"content":"```mdx-code-block\\nimport ReactPlayer from \'react-player\'\\n```\\n\\n\\nThe networking team took an active part in the project iteration (PI) planning\\nsession, see cardano-node [backlog](https://github.com/orgs/input-output-hk/projects/39) for detailed\\noutcomes.\\n\\n\\n* We started working on a detailed design / implementation plan for gossip.\\n\\n* We merged [input-output-hk/ouroboros-network#3859](https://github.com/input-output-hk/ouroboros-network/pull/3859) which\\n sets the ouroboros-network repository for the single relay release.\\n\\n* We identified a bug in the network simulator, which is fixed in the\\n [input-output-hk/ouroboros-network#3852](https://github.com/input-output-hk/ouroboros-network/pull/3852).\\n The above PR was reviewed.\\n\\n* We set the tracing configuration for nodes which we deploy and fixed and\\n identified some deployment hiccups. We identified some bugs in the RT view\\n which were registered by the maintainers.\\n [input-output-hk/ouroboros-network-ops#4](https://github.com/input-output-hk/ouroboros-network-ops/pull/4)\\n\\n* We fixed typos in network-mux library:\\n [input-output-hk/ouroboros-network#3921](https://github.com/input-output-hk/ouroboros-network/pull/3921)\\n\\n* For easy of debugging we renamed a trace point:\\n [input-output-hk/ouroboros-network#3922](https://github.com/input-output-hk/ouroboros-network/pull/3922)\\n\\n* Duncan iterated on his simulation / visualisation. He also was able to\\n identify and fix a bug in the simulator. The simulation contains 50 nodes.\\n Dashed lines indicate and established connection, while solid lines indicate\\n a TCP connection with fully open TCP window.\\n\\n```mdx-code-block\\n\\n```"}]}')}}]); \ No newline at end of file diff --git a/assets/js/6d22e028.50e9700b.js b/assets/js/6d22e028.50e9700b.js new file mode 100644 index 0000000000..95a41ea9b1 --- /dev/null +++ b/assets/js/6d22e028.50e9700b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29750],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(a),d=r,h=s["".concat(p,".").concat(d)]||s[d]||m[d]||l;return a?n.createElement(h,o(o({ref:t},c),{},{components:a})):n.createElement(h,o({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,o=new Array(l);o[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:r,o[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2023-11-14-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",i={permalink:"/2023-11-14-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-14-node-cli-api.md",source:"@site/blog/2023-11-14-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-11-14T00:00:00.000Z",formattedDate:"November 14, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.155,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-11-14-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-11-15-mithril"},nextItem:{title:"Goedel Team Update",permalink:"/2023-11-10-goedel"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},s="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(s,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-11-01---2023-11-14"},"2023-11-01 - 2023-11-14"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"CARDANO-NODE"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.6.0-pre"},"Pre-release of Cardano Node 8.6.0-pre"))),(0,r.kt)("p",null,"CARDANO-CLI"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Improve golden tests"),(0,r.kt)("li",{parentName:"ul"},"Clean-up of conway era commands")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/451"},"Replace usages of assertFileOccurences (6/6)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/448"},"Replace usages of assertFileOccurences (5/6)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/444"},"Replace usages of assertFileOccurences by usage of new functions \u2728 (4/n)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/443"},"put n shelley/byron key witnesses arguments in correct order")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/441"},"Replace usages of assertFileOccurences by comparisons with golden files (3/n)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/436"},"Replace usages of assertFileOccurences by comparisons with golden files (2/n)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/435"},"Update to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-8.31.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/434"},"Remove remaining uses of ",(0,r.kt)("inlineCode",{parentName:"a"},"IsCardanoEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/432"},"Release 8.14.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/430"},"Upgrade cardano-api to 8.30")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/428"},"Command types for ",(0,r.kt)("inlineCode",{parentName:"a"},"node")," commands")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/427"},"Split governance ",(0,r.kt)("inlineCode",{parentName:"a"},"MIRTransferConstructor"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/426"},"Replace usages of assertFileOccurences by comparisons with golden files (1/n)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/425"},"Command argument types for ",(0,r.kt)("inlineCode",{parentName:"a"},"drep")," commands")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/421"},"Add golden test for ",(0,r.kt)("inlineCode",{parentName:"a"},"governance action create-no-confidence"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/419"},"Command arguments types for stake-pool commands"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/364"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.31.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/360"},"Use ledger presentation of multi-asset values directly. Lens to make this uniform over ",(0,r.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/358"},"Protocol version change is not common to all versions anymore")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/355"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"ByronAndAllegraEraOnwards"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/354"},"Replace ",(0,r.kt)("inlineCode",{parentName:"a"},"IsCardanoEra")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"IsShelleyBasedEra")," contraints in GADT constructors with ",(0,r.kt)("inlineCode",{parentName:"a"},"Typeable"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/353"},"Modify foldBlocks to recurse on ledger events ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/352"},"Add generators for ",(0,r.kt)("inlineCode",{parentName:"a"},"EraBasedProtocolParametersUpdate"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/351"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.30.0.0")))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.6.0-pre"},"Pre-release of Cardano Node 8.6.0-pre")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5525"},"cardano-node: use ouroboros-network-protocols-0.5.2"))))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6d25229c.a964dca4.js b/assets/js/6d25229c.a964dca4.js new file mode 100644 index 0000000000..ee0922a714 --- /dev/null +++ b/assets/js/6d25229c.a964dca4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91879],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),s=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=s(a),d=r,h=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return a?n.createElement(h,i(i({ref:t},c),{},{components:a})):n.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:r,i[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=a(87462),r=(a(67294),a(3905));const o={title:"Goedel Team Update",slug:"2023-06-08-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-06-08-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-08-goedel.md",source:"@site/blog/2023-06-08-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-06-08T00:00:00.000Z",formattedDate:"June 8, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.605,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-06-08-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-06-08-db-sync"},nextItem:{title:"SRE Team Update",permalink:"/2023-06-08-sre"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],c={toc:s},m="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"This sprint the team has been working on giving and preparing public\ntalks, also on preparing final versions of their ICE 2023 papers, and\non analysing chain selection."),(0,r.kt)("p",null,"This sprint the team has been working on final revisions for the\npre-proceedings versions of two ICE 2023 papers."),(0,r.kt)("h2",{id:"details"},"Details"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Lambda Days keynote by Kevin Hammond:\n",(0,r.kt)("a",{parentName:"p",href:"https://www.lambdadays.org/lambdadays2023"},"https://www.lambdadays.org/lambdadays2023"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Codebeam keynote by Peter Van Roy: ",(0,r.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=h8sE3Ai8Dsk"},"https://www.youtube.com/watch?v=h8sE3Ai8Dsk"),"; ",(0,r.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=h8sE3Ai8Dsk"},"https://www.youtube.com/watch?v=h8sE3Ai8Dsk"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Preparing talks and final versions for two ICE 2023 contributions:\n",(0,r.kt)("a",{parentName:"p",href:"https://www.discotec.org/2023/ice"},"https://www.discotec.org/2023/ice"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Analysing chain selection.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The team is hiring a performance engineering intern - ",(0,r.kt)("a",{parentName:"p",href:"https://apply.workable.com/io-global/j/BFEC5B0AFF/"},"https://apply.workable.com/io-global/j/BFEC5B0AFF/")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6d371395.afc187e4.js b/assets/js/6d371395.afc187e4.js new file mode 100644 index 0000000000..68c199c50e --- /dev/null +++ b/assets/js/6d371395.afc187e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97730],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var d=a.createContext({}),s=function(e){var t=a.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=s(e.components);return a.createElement(d.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,d=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=s(n),m=r,h=u["".concat(d,".").concat(m)]||u[m]||p[m]||o;return n?a.createElement(h,i(i({ref:t},c),{},{components:n})):a.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));const o={title:"Ledger Team Update",slug:"2022-09-01-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-09-01-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-01-ledger.md",source:"@site/blog/2022-09-01-ledger.md",title:"Ledger Team Update",description:"Ledger Update",date:"2022-09-01T00:00:00.000Z",formattedDate:"September 1, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.94,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-09-01-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-09-16-ledger"},nextItem:{title:"Consensus Team Update",permalink:"/2022-08-31-consensus"}},d={authorsImageUrls:[void 0]},s=[{value:"Ledger Update",id:"ledger-update",level:2},{value:"New minimal ledger era",id:"new-minimal-ledger-era",level:3},{value:"Addressing technical debt",id:"addressing-technical-debt",level:3}],c={toc:s},u="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"ledger-update"},"Ledger Update"),(0,r.kt)("p",null,"Since finishing up support for the Vasil Hardfork, the ledger team has been\nfocused on two main things: a new ledger era and technical debt."),(0,r.kt)("h3",{id:"new-minimal-ledger-era"},"New minimal ledger era"),(0,r.kt)("p",null,"We have implemented a new ledger era named ",(0,r.kt)("inlineCode",{parentName:"p"},"conway")," which is nearly identical\nto the ",(0,r.kt)("inlineCode",{parentName:"p"},"babbage")," era. This has been the first time that we have been able to see\nwhat a minimal ledger era looks like. We have finished this task, modulo any\nintegration issues that might come up. The only thing that the ",(0,r.kt)("inlineCode",{parentName:"p"},"conway")," era\ndoes differently from the ",(0,r.kt)("inlineCode",{parentName:"p"},"babbage")," era is provide support for rotating\nthe master keys using the hardfork combinator's state translation.\nWe may end up adding features to the ",(0,r.kt)("inlineCode",{parentName:"p"},"conway")," era, but it is a nice exercise\nseeing what it looks like to get a minimal ledger era supported in all the\ndownstream components."),(0,r.kt)("h3",{id:"addressing-technical-debt"},"Addressing technical debt"),(0,r.kt)("p",null,"We have been addressing technical debt, mostly in an effort to make the\nrepository a more friendly code base to work in."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We have begun work on a ledger API, called ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-ledger-api"),"."),(0,r.kt)("li",{parentName:"ul"},"We have done a big re-design of the major type classes used in the ledger.\nWith hindsight on our side, we now have something much more organized and\neasier to use."),(0,r.kt)("li",{parentName:"ul"},"We have done a lot of re-naming. The names across eras are now much more\nuniform, avoid certain confusions that plagued us, and are clearer in where\nthey are from."),(0,r.kt)("li",{parentName:"ul"},"We have reduced a lot of code duplication that could lead to bugs if you\ndo not have the whole code base in your head."),(0,r.kt)("li",{parentName:"ul"},"We have added a handful of performance improvements."),(0,r.kt)("li",{parentName:"ul"},"We added type safety in a number of locations. In particular, the type of\nvalues that can be minted in a transaction no longer allow for Lovelace\nin the type, and some functions which used to handle both timelock scripts\nand plutus script now correctly enoforce at the type level that only one of\nthem can be used."),(0,r.kt)("li",{parentName:"ul"},"We made our generators so that they now produce a much richer set of\nvalid serializations. There is room within CBOR to serialize the same\ndata structure in multiple ways, and it is helpful to have the generators\nuse a wide variety."),(0,r.kt)("li",{parentName:"ul"},"We have begun re-organizing our test suites.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6d66ecac.46bb675b.js b/assets/js/6d66ecac.46bb675b.js new file mode 100644 index 0000000000..a50777df4f --- /dev/null +++ b/assets/js/6d66ecac.46bb675b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[14671],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),s=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=s(r),p=n,m=h["".concat(c,".").concat(p)]||h[p]||d[p]||o;return r?a.createElement(m,i(i({ref:t},u),{},{components:r})):a.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[h]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2024-01-26-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-01-26-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-26-hydra.md",source:"@site/blog/2024-01-26-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-01-26T00:00:00.000Z",formattedDate:"January 26, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.75,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-01-26-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"DB Sync Team Update",permalink:"/2024-01-30-db-sync"},nextItem:{title:"Consensus Team Update",permalink:"/2024-01-24-consensus"}},c={authorsImageUrls:[void 0]},s=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],u={toc:s},h="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This week, the Hydra team conducted yearly roadmapping sessions, introduced a\nbreaking API change to eliminate JSON encoding of transactions (refer to issue\n#1213 for details), completed off-chain logic for incremental decommits through,\nand implemented a hydra-explorer backend."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Conducted yearly roadmapping sessions"),(0,n.kt)("li",{parentName:"ul"},"Merged a breaking API change to drop JSON encoding of transactions ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1213"},"#1213")," - contact us if you were relying on this."),(0,n.kt)("li",{parentName:"ul"},"Completed off-chain logic for incremental decommits ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1223"},"#1223")),(0,n.kt)("li",{parentName:"ul"},"Implemented a hydra-explorer backend ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1235"},"#1235"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Publish the monthly report"),(0,n.kt)("li",{parentName:"ul"},"Prepare PRs for hydra clients to switch to CBOR due to the changed API (see above)"),(0,n.kt)("li",{parentName:"ul"},"Enhance the model testing framework to cover close/contest (needed to fix a bug and incremental decommit development)"),(0,n.kt)("li",{parentName:"ul"},"Fix new bugs (all minors) and finish things before starting new")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6d826f51.594c41d6.js b/assets/js/6d826f51.594c41d6.js new file mode 100644 index 0000000000..dbc5e236e2 --- /dev/null +++ b/assets/js/6d826f51.594c41d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7729],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),h=p(n),c=a,d=h["".concat(l,".").concat(c)]||h[c]||m[c]||o;return n?r.createElement(d,s(s({ref:t},u),{},{components:n})):r.createElement(d,s({ref:t},u))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=c;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[h]="string"==typeof e?e:a,s[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2022-10-18-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2022-10-18-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-18-consensus.md",source:"@site/blog/2022-10-18-consensus.md",title:"Consensus Team Update",description:"High-level summary",date:"2022-10-18T00:00:00.000Z",formattedDate:"October 18, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:3.225,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-10-18-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-10-19-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2022-10-14-hydra"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"High-level status report",id:"high-level-status-report",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Finish the UTxO HD prototype",id:"finish-the-utxo-hd-prototype",level:3},{value:"Era transition property tests",id:"era-transition-property-tests",level:4},{value:"Mempool state-machine tests",id:"mempool-state-machine-tests",level:4},{value:"Backing store property tests",id:"backing-store-property-tests",level:4},{value:"Benchmarking the CSJ prototype",id:"benchmarking-the-csj-prototype",level:3}],u={toc:p},h="wrapper";function m(e){let{components:t,...o}=e;return(0,a.kt)(h,(0,r.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,a.kt)("p",null,"During the past two weeks, the consensus team worked on adding property test for\ndifferent aspects of the UTxO HD prototype: era transitions, mempool, and\nbacking store. Thanks to these tests we were able to uncover a bug in the\nprototype. On the Genesis front, we benchmarked a different version of the\nChainSync jumping prototype to try to improve its performance, but this did not\nresult in any noticeable speedup."),(0,a.kt)("h2",{id:"high-level-status-report"},"High-level status report"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Finish the UTxO HD prototype: on track.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We focused on increasing test coverage for the UTxO-HD prototype:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We started implementing Cadano-eras transition property-tests."),(0,a.kt)("li",{parentName:"ul"},"We started implementing state-machine property-tests for the mempool."),(0,a.kt)("li",{parentName:"ul"},"We merged the mempool rewrite."),(0,a.kt)("li",{parentName:"ul"},"We started working on state-machine tests for the backing store. This\nuncovered a bug in the range-read implementation of the LMDB backing\nstore."))))),(0,a.kt)("li",{parentName:"ul"},"Genesis: on track.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We benchmarked a version of the Genesis ChainSync Jumping prototype that\nspreads out the ChainSync updates over a longer period of time. This did not\nresult in any noticeable speedup."),(0,a.kt)("li",{parentName:"ul"},"We investigated the overhead introduced by non-ChainSync components, but no\nconclusions could be drawn from the benchmarks we ran.")))),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"finish-the-utxo-hd-prototype"},"Finish the UTxO HD prototype"),(0,a.kt)("p",null,"We focused on increasing test coverage for the UTxO HD prototype. We also merged\nthe ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4049"},"mempool\nrewrite"),"."),(0,a.kt)("h4",{id:"era-transition-property-tests"},"Era transition property tests"),(0,a.kt)("p",null,"We started implementing ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4043"},"Cardano era transition property\ntests"),",\nwhich are needed for making sure that the ledger tables get updated in the\nright way when we move from one era to the next. There are at the moment two\nimportant transitions."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Byron to Shelley: where all the UTxO is transferred from in-memory Byron\nstate (which has no tables) to the ledger tables of the Shelley state."),(0,a.kt)("li",{parentName:"ul"},"Shelley to Allegra: where the AVVM addresses must be deleted.")),(0,a.kt)("p",null,"We have tests for the Byron to Shelley transitions. We are working on adding\nthe remaining ones."),(0,a.kt)("h4",{id:"mempool-state-machine-tests"},"Mempool state-machine tests"),(0,a.kt)("p",null,"We started implementing ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4044"},"state-machine property tests for the\nmempool"),".\nThe mempool is currently tested via pure property tests, and use a ledger\nstate without tables. With the introduction of UTxO HD, testing the concurrent\nbehavior of the mempool became of crucial importance (eg now we have to\nacquire locks to flush the backing store). In addition, we need to test a\nledger state with tables. These needs led to the creation of a new set of\nproperty tests. In particular we aim to run parallel state-machine tests that\nexercise the mempool in a way similar to how the node would make use of it."),(0,a.kt)("h4",{id:"backing-store-property-tests"},"Backing store property tests"),(0,a.kt)("p",null,"We started working on ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4081"},"state-machine tests for the backing\nstore")," that UTxO\nHD uses. The property tests uncovered errors in the range-reads implementation\nof the LMDB backing store. To facilitate fixing this bug, we made\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/lmdb-simple/pull/1"},"changes")," to the Haskell\nLMDB bindings."),(0,a.kt)("h3",{id:"benchmarking-the-csj-prototype"},"Benchmarking the CSJ prototype"),(0,a.kt)("p",null,"Prompted by previous benchmarks showing significant improvements in sync time by\nusing more capabilities, we implemented a way to spread out the ChainSync\nupdates over a larger period instead of firing them all at the same time. This\ndidn't result in a noticeable speedup."),(0,a.kt)("p",null,"We also benchmarked the prototype with CSJ disabled (such that just the dynamo\npeer is running ChainSync, but e.g. BlockFetch still sees all peers) to rule\nout/confirm overhead by non-ChainSync (mainly BlockFetch) related components.\nThis results in era-specific behavior (speed is like the prototype in Byron, but\nlike the baseline in Shelley). This deserves a closer look in the future."),(0,a.kt)("p",null,"This diagram shows the respective syncing progress, starting at Genesis and\ncontinuing a good part into Shelley (with the dashed line indicating the\nByron-to-Shelley transition)."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Red: baseline"),(0,a.kt)("li",{parentName:"ul"},"Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps."),(0,a.kt)("li",{parentName:"ul"},"Blue: like Green, jumps are spread out."),(0,a.kt)("li",{parentName:"ul"},"Orange: variant with no jumping, to measure unrelated overhead.")),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(35555).Z,width:"654",height:"459"})))}m.isMDXComponent=!0},35555:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/happy-path-csj-prototype-bench-2-e23d2986ddef0a187df9ce336b2db116.svg"}}]); \ No newline at end of file diff --git a/assets/js/6da0a796.f6493984.js b/assets/js/6da0a796.f6493984.js new file mode 100644 index 0000000000..1abcf1ba3a --- /dev/null +++ b/assets/js/6da0a796.f6493984.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80567],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=s(r),h=n,d=c["".concat(u,".").concat(h)]||c[h]||m[h]||i;return r?a.createElement(d,l(l({ref:t},p),{},{components:r})):a.createElement(d,l({ref:t},p))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,l=new Array(i);l[0]=h;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:n,l[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2022-11-25-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2022-11-25-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-25-crypto.md",source:"@site/blog/2022-11-25-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2022-11-25T00:00:00.000Z",formattedDate:"November 25, 2022",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.705,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2022-11-25-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2022-11-28-network"},nextItem:{title:"Hydra Team Update",permalink:"/2022-11-25-hydra"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"MuSig2",id:"musig2",level:3},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:2}],p={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The four open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team. "),(0,n.kt)("li",{parentName:"ul"},"Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes"),(0,n.kt)("li",{parentName:"ul"},"cardano-base: The VRF and BLS branchs are still open and in progress"),(0,n.kt)("li",{parentName:"ul"},"KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent. ")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"musig2"},"MuSig2"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We redesigned the library so that MuSig2 lib users don't need to be aware of the underlying secp256k1 library ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/31"},"PR#31")),(0,n.kt)("li",{parentName:"ul"},"We are introducing a more granular error handling mechanism ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/33"},"PR#33")),(0,n.kt)("li",{parentName:"ul"},"We rethought the API and made it more consistent with the underlying secp256k1 library ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/35"},"PR#35"))),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The mithril crates in general will be published in crates.io, and we adapted the core library's README ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/616"},"PR#616")," "),(0,n.kt)("li",{parentName:"ul"},"We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/620"},"PR#620"))),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We've been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/341"},"PR#341")),(0,n.kt)("li",{parentName:"ul"},"SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/344"},"PR#344")),(0,n.kt)("li",{parentName:"ul"},"Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/266"},"PR#266"))),(0,n.kt)("h2",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We keep progressing in the secure forgetting PR and resolving some bugs on memory handling ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/255"},"PR#255")),(0,n.kt)("li",{parentName:"ul"},"Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6ded2f47.aeb058ce.js b/assets/js/6ded2f47.aeb058ce.js new file mode 100644 index 0000000000..96c6715715 --- /dev/null +++ b/assets/js/6ded2f47.aeb058ce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[10217],{46914:a=>{a.exports=JSON.parse('{"label":"performance-tracing","permalink":"/tags/performance-tracing","allTagsPath":"/tags","count":34}')}}]); \ No newline at end of file diff --git a/assets/js/6e43d302.b5363a58.js b/assets/js/6e43d302.b5363a58.js new file mode 100644 index 0000000000..d689f7805a --- /dev/null +++ b/assets/js/6e43d302.b5363a58.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[59747],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>c});var l=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,l)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var u=l.createContext({}),o=function(e){var t=l.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=o(e.components);return l.createElement(u.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},d=l.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,u=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),m=o(a),d=r,c=m["".concat(u,".").concat(d)]||m[d]||h[d]||n;return a?l.createElement(c,i(i({ref:t},s),{},{components:a})):l.createElement(c,i({ref:t},s))}));function c(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,i=new Array(n);i[0]=d;var p={};for(var u in t)hasOwnProperty.call(t,u)&&(p[u]=t[u]);p.originalType=e,p[m]="string"==typeof e?e:r,i[1]=p;for(var o=2;o{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>h,frontMatter:()=>n,metadata:()=>p,toc:()=>o});var l=a(87462),r=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2023-09-29-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2023-09-29-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-29-ledger.md",source:"@site/blog/2023-09-29-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-09-29T00:00:00.000Z",formattedDate:"September 29, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.465,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-09-29-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-09-29-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-09-29-sre"}},u={authorsImageUrls:[void 0]},o=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway era",id:"conway-era",level:3},{value:"Performance",id:"performance",level:3},{value:"Releasing",id:"releasing",level:3},{value:"Testing",id:"testing",level:3}],s={toc:o},m="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,l.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"Few important Conway related features were completed in this two week period:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Constitutional Committee was the last missing Conway related entity that has now been\nfully implemented."),(0,r.kt)("li",{parentName:"ul"},"Treasury withdrawals governance actions have been fixed and now behave as expected."),(0,r.kt)("li",{parentName:"ul"},"Current treasury amount supplied in the transaction is now enforced by the rules."),(0,r.kt)("li",{parentName:"ul"},"DRep's expiry is prevented by delaying the expiry for all DReps whenever there are no\nproposals to vote on."),(0,r.kt)("li",{parentName:"ul"},"Semantics of how CostModels are updated with Protocol Parameters have been changed to\nallow for individual Plutus language version updates, rather than requiring a complete\nreplacement of all CostModels")),(0,r.kt)("p",null,"Besides the new features there were also important performance and testing improvements:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"In particular stake distribution computation and native script handling received some\noptimizations."),(0,r.kt)("li",{parentName:"ul"},"New testing DSL has been implemented that drastically simplifies writing unit tests for\nledger rules."),(0,r.kt)("li",{parentName:"ul"},"Integration tests and benchmarks are now possible for Conway era because of the overhaul\nof functionality for initial funds and staking injection whenever node starts up in\nConway, while bypassing all previous eras.")),(0,r.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,r.kt)("h3",{id:"conway-era"},"Conway era"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3729"},"pull-3729")," - DRep expiry update after a contiguous set of epochs with no proposals to vote on"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3739"},"pull-3739")," - Rename some PParams to be consistent with Agda specification"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3743"},"pull-3743")," - Move DRepDistr from VState to ConwayGovState"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3746"},"pull-3746")," - Implement ",(0,r.kt)("inlineCode",{parentName:"li"},"tcTranslationContextL")," for Shelley"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3737"},"pull-3737")," - Implement EraTransition"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3749"},"pull-3749")," - Add predicate failure: current treasury value mismatch in LEDGER"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3748"},"pull-3748")," - Apply enacted treasury withdrawals"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3745"},"pull-3745")," - Constitutional Committee Ratification"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3763"},"pull-3763")," - Plutus interface improvements"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3771"},"pull-3771")," - Changed how costmodel updates are applied"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3766"},"pull-3766")," - Prevent updating protocol version with ",(0,r.kt)("inlineCode",{parentName:"li"},"PParamUpdate"))),(0,r.kt)("h3",{id:"performance"},"Performance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3765"},"pull-3765")," - Improve native script handling"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3747"},"pull-3747")," - Use (CompactForm Coin) in IncrementalStake, DRepDistr (and other places) instead of Coin"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3758"},"pull-3758")," - Cardano-Perf regression: UMap.size regression fix"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3754"},"pull-3754")," - Use Alonzo-style TxOut encoder when possible")),(0,r.kt)("h3",{id:"releasing"},"Releasing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3742"},"pull-3742")," - Update fourmolu, ghcid and hls. Update haskellNix and iohkNix flakes"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3744"},"pull-3744")," - Changelog 8.4"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3752"},"pull-3752")," - Patch release of cardano ledger conway 1.8.1.0"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3753"},"pull-3753")," - Minor cleanup and changelog entries"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3760"},"pull-3760")," - Fixup issues for release"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3764"},"pull-3764")," - Bump plutus deps to 1.13")),(0,r.kt)("h3",{id:"testing"},"Testing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3734"},"pull-3734")," - Removed ",(0,r.kt)("inlineCode",{parentName:"li"},"Shaped")," instance for ",(0,r.kt)("inlineCode",{parentName:"li"},"Rep")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3735"},"pull-3735")," - Simplify the implementations of ",(0,r.kt)("inlineCode",{parentName:"li"},"hasOrd")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"hasEq")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3728"},"pull-3728")," - STS tests based on constraints"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3714"},"pull-3714")," - Implement the remaining upgradable families"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3733"},"pull-3733")," - Add some unit tests for Conway features"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3762"},"pull-3762")," - Update CDDL for praos headers.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6e743f1b.de5f26df.js b/assets/js/6e743f1b.de5f26df.js new file mode 100644 index 0000000000..4776e7e251 --- /dev/null +++ b/assets/js/6e743f1b.de5f26df.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[42686],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(n),h=o,m=c["".concat(l,".").concat(h)]||c[h]||d[h]||a;return n?r.createElement(m,i(i({ref:t},p),{},{components:n})):r.createElement(m,i({ref:t},p))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var r=n(87462),o=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-01-11-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-01-11-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-11-consensus.md",source:"@site/blog/2023-01-11-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-01-11T00:00:00.000Z",formattedDate:"January 11, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.35,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-01-11-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-01-12-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-01-11-performance-and-tracing"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD Prototype",id:"utxo-hd-prototype",level:3},{value:"New Conway era",id:"new-conway-era",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3}],p={toc:u},c="wrapper";function d(e){let{components:t,...a}=e;return(0,o.kt)(c,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"The consensus team is resuming its activities after the Christmas break. During\nthese weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and\ndiscussing with the Ledger team the changes that might be required for the next\niterations. The pull request that adds the Conway era is waiting for a second\nreview round and we hope to merge it soon. On the technical debt side we are\nlooking into a property-test failure found in the iterators. We are\ninvestigating if this is an error in the model or in the implementation. We also\nimproved the documentation of our testing code."),(0,o.kt)("h2",{id:"workstreams"},"Workstreams"),(0,o.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD Prototype"),(0,o.kt)("p",null,"We worked with the Ledger team to start preparing the next versions of UTxO-HD.\nThe Ledger team is concerned that for the remaining maps we might need the full\nledger state on epoch boundaries. Since the main consumer of the ledger rules is\nConsensus, the code that requires access to a full state could be moved from the\nledger to some Ledger-Consensus bridge. Eg. the traversal of rewards could take\nplace in such bridge, instead of querying the ledger for the values that are\nrequired in the epoch-transition computations."),(0,o.kt)("p",null,"We ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4234"},"relocated")," some UTxO-HD definitions, in preparation for merging\nthe prototype into ",(0,o.kt)("inlineCode",{parentName:"p"},"master"),"."),(0,o.kt)("p",null,"We also completed updated local benchmarks comparing the replay time and memory\nconsumption of:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"the baseline node (",(0,o.kt)("inlineCode",{parentName:"li"},"f2fc76ef45647275c98634da1718290b976ff364"),") "),(0,o.kt)("li",{parentName:"ul"},"the UTxO-HD node with the in-memory backend "),(0,o.kt)("li",{parentName:"ul"},"the UTxO-HD node with the LMDB backend")),(0,o.kt)("p",null,"The following plot shows the results: we can see that the LMDB node barely\nreaches 8GB of memory, but it takes 1.78 times longer to replay the chain. The\nin-memory backend is about 30 minutes faster, but still slower than the baseline\nversion. We are aware of this phenomenon and it is inherent to the problem of\nmaintaining sequences of differences of the last ",(0,o.kt)("inlineCode",{parentName:"p"},"k")," ledger states that allows\nus to perform rollback and roll-forward. We are in the process of measuring\nsyncing from scratch times."),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(15253).Z,width:"2500",height:"1700"})),(0,o.kt)("p",null,"We also ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4263"},"added ",(0,o.kt)("inlineCode",{parentName:"a"},"StaticEither")," accessors")," that helped us to simplify\nthe UTxO-HD prototype."),(0,o.kt)("h3",{id:"new-conway-era"},"New Conway era"),(0,o.kt)("p",null,"We incorporated the feedback of the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3971"},"pull request"),", and rebased this\nbranch on top of ",(0,o.kt)("inlineCode",{parentName:"p"},"master"),". The PR is pending a second review round and we hope\nto merge this soon."),(0,o.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,o.kt)("p",null,"We are investigating a ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4183"},"property-testing failure")," involving\niterators. Solving this requires understanding the expected behavior of\niterators in the counterexample found by ",(0,o.kt)("inlineCode",{parentName:"p"},"QuickCheck")," to determine if the error\nis in the model or in the implementation."),(0,o.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,o.kt)("p",null,"We ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4248"},"moved")," the contents of ",(0,o.kt)("inlineCode",{parentName:"p"},"docs/Testing.md")," closer to the code, so that the\nexplanations about the tests are easier to find in the relevant modules, and the\ndocumentation is easier to keep up to date."))}d.isMDXComponent=!0},15253:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2023-01-11-utxo-hd-replay-benchmarks-dcf6daaf5460de7591a60db1457d2e58.png"}}]); \ No newline at end of file diff --git a/assets/js/6e7b669d.6697021b.js b/assets/js/6e7b669d.6697021b.js new file mode 100644 index 0000000000..fc517cdfb4 --- /dev/null +++ b/assets/js/6e7b669d.6697021b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96799],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=o.createContext({}),l=function(e){var t=o.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=l(e.components);return o.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=l(r),h=n,m=u["".concat(p,".").concat(h)]||u[h]||c[h]||a;return r?o.createElement(m,i(i({ref:t},d),{},{components:r})):o.createElement(m,i({ref:t},d))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=h;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var o=r(87462),n=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-09-15-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-09-15-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-network.md",source:"@site/blog/2023-09-15-network.md",title:"Network Team Update",description:"High-level overview of sprint 44",date:"2023-09-15T00:00:00.000Z",formattedDate:"September 15, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.41,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-09-15-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-09-15-ledger"},nextItem:{title:"SRE Team Update",permalink:"/2023-09-15-sre"}},p={authorsImageUrls:[void 0]},l=[{value:"High-level overview of sprint 44",id:"high-level-overview-of-sprint-44",level:2},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"Cardano-Node-8.4.0 Release",id:"cardano-node-840-release",level:3},{value:"Towards Typed Protocols 0.2.0.0",id:"towards-typed-protocols-0200",level:3},{value:"Tech Debt",id:"tech-debt",level:3},{value:"P2P adoption",id:"p2p-adoption",level:3},{value:"Open Source",id:"open-source",level:3}],d={toc:l},u="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,o.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-44"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+44%22"},"sprint 44")),(0,n.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,n.kt)("p",null,"In this sprint, we focused on developing bootstrap peers."),(0,n.kt)("p",null,"Thanks to the input from Samuel Leathers (IOG) and John Lotoski (IOG), we\nidentified a possible improvement to bootstrap peers. A more detailed\ndescription is available ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4675"},"here"),"."),(0,n.kt)("h3",{id:"cardano-node-840-release"},"Cardano-Node-8.4.0 Release"),(0,n.kt)("p",null,"We also were responsible for the ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node-8.4.0-pre")," release. A final\nintegration ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5467"},"PR")," is currently being merged. We published\nnew versions of ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-api")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-cli"),"."),(0,n.kt)("h3",{id:"towards-typed-protocols-0200"},"Towards Typed Protocols 0.2.0.0"),(0,n.kt)("p",null,"We also updated the future ",(0,n.kt)("inlineCode",{parentName:"p"},"typed-protocols-0.2.0.0")," and its integration with\n",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node"),". This is towards our goal which we planned for the next\nquarter. The identified tasks are to fix breaking tests, and then measure and\naddress possible performance regressions."),(0,n.kt)("h3",{id:"tech-debt"},"Tech Debt"),(0,n.kt)("p",null,"Mark Tullsen (Galois) submitted two more PRs: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4663"},"ouroboros-network-#4663"),",\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4664"},"ouroboros-network-#4664"),". We provided feedback on their other pull requests: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4661"},"ouroboros-network-#4661")," and\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4660"},"ouroboros-network-#4660"),"."),(0,n.kt)("h3",{id:"p2p-adoption"},"P2P adoption"),(0,n.kt)("p",null,"In the last two weeks, there was a regression in P2P adoption concerning\nthe number of SPOs or stakes, although the number of overall P2P relays has\nincreased. Karl Knutsson (",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"Cardano Foundation"),") is investigating\nthis issue.\n",(0,n.kt)("img",{alt:"P2P relays",src:r(70480).Z,width:"2014",height:"1586"})),(0,n.kt)("p",null,"The following graphs show several different versions of relays running on the mainnet. The\ngreen line ",(0,n.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionV10.True")," denotes P2P relays, which slowly\nincrease over time. The ",(0,n.kt)("inlineCode",{parentName:"p"},"V9")," and earlier versions of the ",(0,n.kt)("inlineCode",{parentName:"p"},"node-to-node"),"\nthe protocol indicates nodes version ",(0,n.kt)("inlineCode",{parentName:"p"},"1.35.x")," or earlier.\n",(0,n.kt)("img",{alt:"node versions",src:r(20669).Z,width:"2016",height:"1576"})),(0,n.kt)("p",null,"Data has been kindly provided by ",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"Cardano Foundation")," and their mainnet\nmonitoring infrastructure."),(0,n.kt)("h3",{id:"open-source"},"Open Source"),(0,n.kt)("p",null,"We are in the process of upstreaming our ffi to Windows Named Pipes API to the ",(0,n.kt)("inlineCode",{parentName:"p"},"Win32")," package, see ","[win32-220]","."))}c.isMDXComponent=!0},70480:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/2023-09-14-p2p-relays-1b3da3da7ec3915f63ca8668bd38aff9.png"},20669:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/2023-09-14-relay-versions-a689a96e93e12ee1c78dfe14229f0ea9.png"}}]); \ No newline at end of file diff --git a/assets/js/6e9ea927.9e3d5212.js b/assets/js/6e9ea927.9e3d5212.js new file mode 100644 index 0000000000..3c4bf61c9a --- /dev/null +++ b/assets/js/6e9ea927.9e3d5212.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[62496],{80569:a=>{a.exports=JSON.parse('{"label":"db-sync","permalink":"/tags/db-sync","allTagsPath":"/tags","count":16}')}}]); \ No newline at end of file diff --git a/assets/js/6eecfaae.70b56ca8.js b/assets/js/6eecfaae.70b56ca8.js new file mode 100644 index 0000000000..660e7a1384 --- /dev/null +++ b/assets/js/6eecfaae.70b56ca8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[84069],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=p(r),h=n,d=c["".concat(u,".").concat(h)]||c[h]||m[h]||o;return r?a.createElement(d,i(i({ref:t},s),{},{components:r})):a.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Crypto Team Update",slug:"2023-06-09-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-06-09-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-09-crypto.md",source:"@site/blog/2023-06-09-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-06-09T00:00:00.000Z",formattedDate:"June 9, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:.705,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-06-09-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-06-12-network"},nextItem:{title:"Developer Experience Update",permalink:"/2023-06-09-developer-experience"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"cardano-base",id:"cardano-base",level:3},{value:"Mithril",id:"mithril",level:3},{value:"Sidechains",id:"sidechains",level:3}],s={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-base: E2E tests for BLS bindings and KES agent "),(0,n.kt)("li",{parentName:"ul"},"Sidechains: Implement ECC chip and Rescue hash primitives for ATMS"),(0,n.kt)("li",{parentName:"ul"},"mithril: Full node verifier")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"RawBearer API in ouroboros-network-framework (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4395)"},"https://github.com/input-output-hk/ouroboros-network/pull/4395)"),"; blocked due to issue with windows' localSnocket. Trying to resolve."),(0,n.kt)("li",{parentName:"ul"},"Adapting cardano-base for direct memory transfers between mlocked RAM and file descriptors ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/317"},"#317"),"."),(0,n.kt)("li",{parentName:"ul"},"Above, blocked by the simplification of typeclasses ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/404"},"#404"),"."),(0,n.kt)("li",{parentName:"ul"},"Provided e2e test cases to the testing team with aggregated signatures and schnorr signatures for the BLS bindings")),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implementation of Full Node Verifier ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/939"},"#939"))),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sidechains-zk/tree/master/prover/src/ecc"},"ECC chip")," implemented for JubJub over BLS12-381"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sidechains-zk/tree/master/prover/src/rescue"},"Rescue chip")," implemented for hashing."),(0,n.kt)("li",{parentName:"ul"},"Currently working on Schnorr signature (which uses the above constraints)")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6ef7a896.a406b1da.js b/assets/js/6ef7a896.a406b1da.js new file mode 100644 index 0000000000..12bb8610ff --- /dev/null +++ b/assets/js/6ef7a896.a406b1da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16616],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=p(a),m=r,h=u["".concat(s,".").concat(m)]||u[m]||c[m]||o;return a?n.createElement(h,l(l({ref:t},d),{},{components:a})):n.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:r,l[1]=i;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2024-03-29-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-03-29-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-29-sre.md",source:"@site/blog/2024-03-29-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-03-29T00:00:00.000Z",formattedDate:"March 29, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.33,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-03-29-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-03-30-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2024-03-28-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3}],d={toc:p},u="wrapper";function c(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node 8.9.1 is now deployed to all environments.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The legacy IOG mainnet metadata server has been retired with CF now providing\nmetadata server services going forward.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts PR#35, merged and linked below, offers ip information\nintegration into nixosConfiguration modules as well as template-diff and\ntemplate-patch recipes for easier upgrades going forward."))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"capkgs"},"Capkgs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds a shortRev suffix to package names, fixes an rclone recipe, fixes a CI\npush action, defaults to recursively dereferenced object hashes, cleans up\nreference patterns. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/pull/2"},"capkgs-pull-2"))),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps to cardano-node 8.9.1 and deploys all machines, makes ip information\navailable in nixosCfgs, adds new expected machine alerts, tunes snapshot\nalerts and implements all updates in cardano-parts PR#35. See the PR\ndescription for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/10"},"cardano-mainnet-pull-10"))),(0,r.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps to cardano-node 8.9.1, removes the legacy metadata server:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/commit/5d4925b2fe825f28d72372c7b4b3d0fa0c514fd4"},"cardano-ops-commit"))),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Upgrades cardano-node to 8.9.1 for both release and pre-release, integrates\nmachine ip information into nixosConfigurations, enables /etc/hosts file\nusage in cardano-node topology, enhances cardano-node topology producer\ngeneration with customizable address types, introduces template patching\nrecipes for easier cardano-parts updates to existing clusters. Much more\ndetail is available in the PR description:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/35"},"cardano-parts-pull-35"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps to cardano-node 8.9.1 and deploys all envs, rotates KES keys in most\nenvs, makes ip information available in nixosCfgs and implements all updates\nin cardano-parts PR#35. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/18"},"cardano-playground-pull-18"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6fb45133.a65a0945.js b/assets/js/6fb45133.a65a0945.js new file mode 100644 index 0000000000..21345f693c --- /dev/null +++ b/assets/js/6fb45133.a65a0945.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[79260],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(a),s=r,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,i(i({ref:t},c),{},{components:a})):n.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-03-08-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2023-03-08-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-08-node-cli-api.md",source:"@site/blog/2023-03-08-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-03-08T00:00:00.000Z",formattedDate:"March 8, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.795,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-03-08-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-03-08-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2023-03-08-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-03-08---2023-03-21"},"2023-03-08 - 2023-03-21"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"General bug fixes and some refactoring "),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4958"},"Remove error calls in Cardano.CLI.Shelley.Run.Transaction")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4880"},"Detect invalid counter and certificate")," ")),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5003"},"Add missing imports")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5001"},"Add LedgerStateBabbage and LedgerStateConway pattern synonyms")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4967"},"Remove unnecessary functions")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4953"},"Remove duplicate scripts when building transaction body for Mary, Alonzo and Babbage")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4903"},"Reduce number of calls to toLedgerPParams")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4763"},"Remove simple script distinction")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4686"},"Add ToJSON/FromJSON instances for ChainPoint")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4683"},"Derive Eq instance for AcquiringFailure")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4682"},"Export ",(0,r.kt)("inlineCode",{parentName:"a"},"fromShelleyBasedScript")," from Cardano.Api")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4344"},"Remove unnecessary validation of Data")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3775"},'Remove hint of "string" support for ScriptData')," ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4988"},"Conway hard forks on prot-ver 9")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4968"},"Reinstate -Werror for cardano-node and fix errors")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4921"},"Take all dependencies from Hackage or CHaP")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4911"},"Less verbose node-to-client and node-to-node version logging")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4902"},"Get AcceptedConnectionsLimit from the configuration")," ")),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4729"},"fix cardano-testnet Babbage genesis.json"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7030fa2f.7aa0c74e.js b/assets/js/7030fa2f.7aa0c74e.js new file mode 100644 index 0000000000..ec81a94d04 --- /dev/null +++ b/assets/js/7030fa2f.7aa0c74e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[39640],{3905:(t,e,a)=>{a.d(e,{Zo:()=>u,kt:()=>N});var n=a(67294);function l(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function i(t){for(var e=1;e=0||(l[a]=t[a]);return l}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(l[a]=t[a])}return l}var m=n.createContext({}),o=function(t){var e=n.useContext(m),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},u=function(t){var e=o(t.components);return n.createElement(m.Provider,{value:e},t.children)},s="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},k=n.forwardRef((function(t,e){var a=t.components,l=t.mdxType,r=t.originalType,m=t.parentName,u=p(t,["components","mdxType","originalType","parentName"]),s=o(a),k=l,N=s["".concat(m,".").concat(k)]||s[k]||d[k]||r;return a?n.createElement(N,i(i({ref:e},u),{},{components:a})):n.createElement(N,i({ref:e},u))}));function N(t,e){var a=arguments,l=e&&e.mdxType;if("string"==typeof t||l){var r=a.length,i=new Array(r);i[0]=k;var p={};for(var m in e)hasOwnProperty.call(e,m)&&(p[m]=e[m]);p.originalType=t,p[s]="string"==typeof t?t:l,i[1]=p;for(var o=2;o{a.r(e),a.d(e,{assets:()=>m,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>p,toc:()=>o});var n=a(87462),l=(a(67294),a(3905));const r={title:"Consensus Team Update",slug:"2022-08-31-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2022-08-31-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-08-31-consensus.md",source:"@site/blog/2022-08-31-consensus.md",title:"Consensus Team Update",description:"Executive summary",date:"2022-08-31T00:00:00.000Z",formattedDate:"August 31, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:8.925,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-08-31-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-09-01-ledger"},nextItem:{title:"Network Team Update",permalink:"/2022-08-12-network"}},m={authorsImageUrls:[void 0]},o=[{value:"Executive summary",id:"executive-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Conway",id:"conway",level:3},{value:"UTxO HD",id:"utxo-hd",level:3},{value:"Only small rollbacks",id:"only-small-rollbacks",level:4},{value:"Genesis",id:"genesis",level:3},{value:"Technical debt",id:"technical-debt",level:3}],u={toc:o},s="wrapper";function d(t){let{components:e,...a}=t;return(0,l.kt)(s,(0,n.Z)({},u,a,{components:e,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"executive-summary"},"Executive summary"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"We did most of the heavy lifting required to integrate the Conway era."),(0,l.kt)("li",{parentName:"ul"},"We have property tests for the UTxO HD backing store API implementations. A\npossible bug was identified. Work is ongoing to make sure the property-tests\ncover all the relevant cases."),(0,l.kt)("li",{parentName:"ul"},'We implemented and benchmarked the "anti-diff" prototype to speed up the UTxO\nHD functionality. Results show a rough speedup of ',(0,l.kt)("inlineCode",{parentName:"li"},"4x")," to ",(0,l.kt)("inlineCode",{parentName:"li"},"5.5x")," across\nseveral scenarios. Note that: ",(0,l.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/tasty-bench-0.3.2/docs/Test-Tasty-Bench.html"},'"Data reported by ',(0,l.kt)("inlineCode",{parentName:"a"},"tasty-bench"),' is only of\nindicative and comparative significance."'),'.\nWe are investigating additional performance improvements. The "anti-diff"\nprototype and benchmarks are still pending code review.'),(0,l.kt)("li",{parentName:"ul"},"We elaborated a draft specification for the Genesis implementation and\n",(0,l.kt)("inlineCode",{parentName:"li"},"ChainSync")," jumping optimization.")),(0,l.kt)("h2",{id:"workstreams"},"Workstreams"),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Integration PR of the minimal Conway era (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3962"},"Issue #3963"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3971"},"PR\n#3971"),")."),(0,l.kt)("li",{parentName:"ul"},"Discussions with Ledger revealed possible sources of confusion about which\ndata should be changed in the Conway era. As a result, a new technical debt\nissue was raised, which does not block the integration of the Conway era\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3976"},"Issue #3976"),").")),(0,l.kt)("h3",{id:"utxo-hd"},"UTxO HD"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},(0,l.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3954"},"Issue #3954"),", ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/tree/jdral/3954-backingstore-property-tests"},"branch"),": The functionality of a\nbacking store, which is the interface to the on-disk part of ledger state in\nUTxO-HD, is tested at a high level through the ",(0,l.kt)("inlineCode",{parentName:"p"},"OnDisk")," tests. However, some\nfunctionalities remain untested, e.g., reads of ranges of keys. As such, we\nhave implemented ",(0,l.kt)("inlineCode",{parentName:"p"},"quickcheck-state-machine")," tests that exercise backing stores\ndirectly. The tests are reusable for different backing store implementations\nbecause the tests are implementation-agnostic: Any backing store that conforms\nto the backing store interface can be plugged into the tests. Work is still\nongoing to label/monitor the tests, such that we can verify that interesting\ncases are being tested. Furthermore, a possible bug has been identified in the\nLMDB backing store with respect to range reads, though the bug has not been\nresolved yet.")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},(0,l.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3946"},"Issue #3946"),", ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/tree/jdral/CAD-4199-prototype-anti-diffs"},"branch"),", ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3882"},"PR #3882"),': The\n"anti-diff" prototype proposes an alternative approach to keeping track of\nsequences (more specifically, ',(0,l.kt)("inlineCode",{parentName:"p"},"FingerTree"),'s) of diffs. These diff sequences\nare a component of the in-memory parts of the ledger state in UTxO-HD. Since\nthe consensus code often requires the cumulative diff of a sequence of diffs,\nthe current implementation "caches" cumulative diffs of each subtree in the\ndiff sequence. This caching allows relatively fast reconstruction of the total\ncumulative diff, but this caching proved to incur a non-negligible cost: when\nwe manipulate diff sequences through splits and appends, we force re-computing\na logarithmic number of caches. This is problematic, since we often split and\nappend in consensus: we split when we flush diffs to a backing store or when\nwe roll back blocks, and we append when pushing blocks. The new approach\nshould reduce the overhead of this caching.'),(0,l.kt)("p",{parentName:"li"},'We implemented micro-benchmarks for the "anti-diff" prototype: we\nfirst generate a sequence of commands (',(0,l.kt)("inlineCode",{parentName:"p"},"Forward"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"Push"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"Flush"),", or\n",(0,l.kt)("inlineCode",{parentName:"p"},"Rollback"),") through a simulation, after which we measure the performance of\napplying the commands to a diff sequence. In this context, ",(0,l.kt)("inlineCode",{parentName:"p"},"Forward")," means\nforwarding of values through a diff, whereas ",(0,l.kt)("inlineCode",{parentName:"p"},"Rollback"),' means switching to\na different fork by rolling back diffs/blocks and pushing new ones.\nMoreover, we compare the performance for the two implementations: the\n"legacy" approach, and the anti-diff approach.'),(0,l.kt)("p",{parentName:"li"},"Some preliminary results were positive, but we needed to revisit the\nbenchmark's configuration to obtain more definitive results. After a\ndiscussion with @dcoutts and the consensus team about this configuration\n(e.g., number of commands generated, choice of the security parameter ",(0,l.kt)("inlineCode",{parentName:"p"},"k"),"),\nthe benchmarks should now be closer to the realistic setting. The following\nconfiguration specifies the default configuration that is used in the\nbenchmarking code:"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Number of commands generated: ",(0,l.kt)("inlineCode",{parentName:"li"},"10_000")),(0,l.kt)("li",{parentName:"ul"},"Security parameter ",(0,l.kt)("inlineCode",{parentName:"li"},"k"),": ",(0,l.kt)("inlineCode",{parentName:"li"},"2160")),(0,l.kt)("li",{parentName:"ul"},"Number of initial backing values: ",(0,l.kt)("inlineCode",{parentName:"li"},"100")),(0,l.kt)("li",{parentName:"ul"},"Number of key-value pairs deleted by a push: ",(0,l.kt)("inlineCode",{parentName:"li"},"50")),(0,l.kt)("li",{parentName:"ul"},"Number of key-value pairs inserted by a push: ",(0,l.kt)("inlineCode",{parentName:"li"},"50")),(0,l.kt)("li",{parentName:"ul"},"Number of key-value pairs forwarded by a forward: ",(0,l.kt)("inlineCode",{parentName:"li"},"50")),(0,l.kt)("li",{parentName:"ul"},"Probability of a large (in the range ",(0,l.kt)("inlineCode",{parentName:"li"},"[1000, 2000]"),") rollback: ",(0,l.kt)("inlineCode",{parentName:"li"},"0.05")),(0,l.kt)("li",{parentName:"ul"},"Probability of a small (in the range ",(0,l.kt)("inlineCode",{parentName:"li"},"[1, 10]"),") rollback: ",(0,l.kt)("inlineCode",{parentName:"li"},"0.95")),(0,l.kt)("li",{parentName:"ul"},"Order of commands:",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"An equal number of forward and pushes."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"1")," flush every ",(0,l.kt)("inlineCode",{parentName:"li"},"10")," pushes."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"1")," rollback every ",(0,l.kt)("inlineCode",{parentName:"li"},"100")," pushes")))),(0,l.kt)("p",{parentName:"li"},"Moreover, we run four benchmark scenarios:"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Default configuration"),(0,l.kt)("li",{parentName:"ul"},"Without rollbacks"),(0,l.kt)("li",{parentName:"ul"},"With only small rollbacks"),(0,l.kt)("li",{parentName:"ul"},"Without rollbacks, larger flushes (",(0,l.kt)("inlineCode",{parentName:"li"},"1")," flush every ",(0,l.kt)("inlineCode",{parentName:"li"},"100")," pushes)")),(0,l.kt)("h3",{parentName:"li",id:"how-to-read-results"},"How to read results"),(0,l.kt)("p",{parentName:"li"},"Note: this section uses documentation from the\n",(0,l.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/tasty-bench"},"tasty-bench")," package to\nexplain how to read the results of running our benchmarks."),(0,l.kt)("p",{parentName:"li"},"Running a benchmark scenario gives us the following (curated) output:"),(0,l.kt)("pre",{parentName:"li"},(0,l.kt)("code",{parentName:"pre",className:"language-text"},"...\nAntiDiff: OK (18.27s)\n 2.527 s \xb1 47 ms, 2.1 GB allocated, 544 MB copied, 2.2 GB peak memory, 0.23x\nLegacyDiff: OK (32.73s)\n 10.829 s \xb1 148 ms, 6.8 GB allocated, 2.3 GB copied, 2.2 GB peak memory\n...\n")),(0,l.kt)("p",{parentName:"li"},"The output says that the first benchmark, which exercises the anti-diff\nprototype, was repeatedly executed for ",(0,l.kt)("inlineCode",{parentName:"p"},"18.27")," seconds (wall-clock time),\nits predicted mean CPU time was ",(0,l.kt)("inlineCode",{parentName:"p"},"2.527")," seconds and means of individual\nsamples do not often diverge from it further than ",(0,l.kt)("inlineCode",{parentName:"p"},"\xb1 47")," milliseconds\n(double standard deviation). We also configure the RTS to collect GC\nstatistics, which enables ",(0,l.kt)("inlineCode",{parentName:"p"},"tasty-bench")," to estimate and report memory usage.\nThis data is reported as per ",(0,l.kt)("inlineCode",{parentName:"p"},"RTSStats")," fields: ",(0,l.kt)("inlineCode",{parentName:"p"},"allocated_bytes"),",\n",(0,l.kt)("inlineCode",{parentName:"p"},"copied_bytes")," and ",(0,l.kt)("inlineCode",{parentName:"p"},"max_mem_in_use_bytes"),". So, the output of the first\nbenchmark says that a total of ",(0,l.kt)("inlineCode",{parentName:"p"},"2.1 GB")," of memory was allocated, that a\ntotal of ",(0,l.kt)("inlineCode",{parentName:"p"},"544 MB")," of memory were copied, and that the peak memory in usage\nwas ",(0,l.kt)("inlineCode",{parentName:"p"},"2.2 GB"),". We read the output for the second benchmark in the same way."),(0,l.kt)("p",{parentName:"li"},"Furthermore, the benchmark compares the mean CPU times for\nboth the anti-diff and legacy approaches: In this case, the mean CPU time\nfor the anti-diff approach is ",(0,l.kt)("inlineCode",{parentName:"p"},"~0.23x")," the mean CPU time for the legacy\napproach. Conversely, the mean CPU time for the legacy approach is\n",(0,l.kt)("inlineCode",{parentName:"p"},"1 / 0.23 ~= 4.35x")," the mean CPU time for the anti-diff approach. We will\ncall ",(0,l.kt)("inlineCode",{parentName:"p"},"0.23x")," the ",(0,l.kt)("em",{parentName:"p"},"improvement factor"),". We will call ",(0,l.kt)("inlineCode",{parentName:"p"},"4.35x")," the ",(0,l.kt)("em",{parentName:"p"},"speedup"),"."),(0,l.kt)("p",{parentName:"li"},"Note that these improvement factors (and reported results) are subject to\nnoise, randomness, the specific configuration parameters, and the whims\nof statistics. Data reported by ",(0,l.kt)("inlineCode",{parentName:"p"},"tasty-bench")," is only of indicative and\ncomparative significance."),(0,l.kt)("h3",{parentName:"li",id:"results"},"Results"),(0,l.kt)("p",{parentName:"li"},"For each of the 4 scenarios, we list the results of running the anti-diff and\nlegacy approaches 5 times. We run the benchmarks 5 times to get an indication\nof whether the results are similar across multiple runs. Furthermore, we\ncalculate the accompanying ",(0,l.kt)("em",{parentName:"p"},"ranges")," (if applicable) of improvement factors and\nspeedups."),(0,l.kt)("p",{parentName:"li"},"Note also the decrease in total bytes allocated and total bytes copied for\nthe anti-diff approach compared to the legacy approach."),(0,l.kt)("h4",{parentName:"li",id:"default-configuration"},"Default configuration"),(0,l.kt)("table",{parentName:"li"},(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Mean CPU time"),(0,l.kt)("th",{parentName:"tr",align:null},"2*Stdev (CPU time)"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes allocated"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes copied"),(0,l.kt)("th",{parentName:"tr",align:null},"Peak memory"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"2.533 s (0.23x)"),(0,l.kt)("td",{parentName:"tr",align:null},"4.7 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"2.1 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"557 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"10.792 s"),(0,l.kt)("td",{parentName:"tr",align:null},"162 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"6.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.3 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"2.508 s (0.23x)"),(0,l.kt)("td",{parentName:"tr",align:null},"245 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"2.1 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"515 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"10.850 s"),(0,l.kt)("td",{parentName:"tr",align:null},"30 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"6.9 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.3 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"2.562 s (0.23x)"),(0,l.kt)("td",{parentName:"tr",align:null},"5.0 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"2.1 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"552 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"10.993 s"),(0,l.kt)("td",{parentName:"tr",align:null},"149 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"6.9 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.3 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"2.168 s (0.22x)"),(0,l.kt)("td",{parentName:"tr",align:null},"5.3 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"434 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"9.976 s"),(0,l.kt)("td",{parentName:"tr",align:null},"39 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"6.3 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"2.527 s (0.23x)"),(0,l.kt)("td",{parentName:"tr",align:null},"47 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"2.1 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"544 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"10.829 s"),(0,l.kt)("td",{parentName:"tr",align:null},"148 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"6.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.3 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")))),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Improvement factor: ",(0,l.kt)("inlineCode",{parentName:"li"},"[0.22, 0.23]")),(0,l.kt)("li",{parentName:"ul"},"Speedup : ",(0,l.kt)("inlineCode",{parentName:"li"},"[1 / 0.23 ~= 4.35, 1 / 0.22 ~= 4.55]"))),(0,l.kt)("h4",{parentName:"li",id:"no-rollbacks"},"No rollbacks"),(0,l.kt)("table",{parentName:"li"},(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Mean CPU time"),(0,l.kt)("th",{parentName:"tr",align:null},"2*Stdev (CPU time)"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes allocated"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes copied"),(0,l.kt)("th",{parentName:"tr",align:null},"Peak memory"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.638 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"36 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"181 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.656 s"),(0,l.kt)("td",{parentName:"tr",align:null},"207 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.7 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.638 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"75 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"181 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.654 s"),(0,l.kt)("td",{parentName:"tr",align:null},"322 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.7 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.663 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"74 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"181 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.799 s"),(0,l.kt)("td",{parentName:"tr",align:null},"216 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.7 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.645 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"51 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"181 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.732 s"),(0,l.kt)("td",{parentName:"tr",align:null},"261 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.7 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.639 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"19 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"181 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.653 s"),(0,l.kt)("td",{parentName:"tr",align:null},"234 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.7 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")))),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Improvement factor: ",(0,l.kt)("inlineCode",{parentName:"li"},"0.19")),(0,l.kt)("li",{parentName:"ul"},"Speedup : ",(0,l.kt)("inlineCode",{parentName:"li"},"1 / 0.19 ~= 5.25"))))),(0,l.kt)("h4",{id:"only-small-rollbacks"},"Only small rollbacks"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Mean CPU time"),(0,l.kt)("th",{parentName:"tr",align:null},"2*Stdev (CPU time)"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes allocated"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes copied"),(0,l.kt)("th",{parentName:"tr",align:null},"Peak memory"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.833 s (0.18x)"),(0,l.kt)("td",{parentName:"tr",align:null},"36 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"185 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"10.362 s"),(0,l.kt)("td",{parentName:"tr",align:null},"867 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.6 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.696 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"30 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"185 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.822 s"),(0,l.kt)("td",{parentName:"tr",align:null},"106 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.702 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"44 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"186 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.906 s"),(0,l.kt)("td",{parentName:"tr",align:null},"147 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.701 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"47 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"185 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.949 s"),(0,l.kt)("td",{parentName:"tr",align:null},"197 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.677 s (0.19x)"),(0,l.kt)("td",{parentName:"tr",align:null},"55 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"186 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"8.856 s"),(0,l.kt)("td",{parentName:"tr",align:null},"177 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"5.8 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")))),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"Improvement factor: ",(0,l.kt)("inlineCode",{parentName:"p"},"[0.18, 0.19]"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"Speedup : ",(0,l.kt)("inlineCode",{parentName:"p"},"[1 / 0.19 ~= 5.25, 1 / 0.18 ~= 5.55]")),(0,l.kt)("h4",{parentName:"li",id:"no-rollbacks-larger-flushes-every-100-pushes"},"No rollbacks, larger flushes (every 100 pushes)"),(0,l.kt)("table",{parentName:"li"},(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Mean CPU time"),(0,l.kt)("th",{parentName:"tr",align:null},"2*Stdev (CPU time)"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes allocated"),(0,l.kt)("th",{parentName:"tr",align:null},"Total bytes copied"),(0,l.kt)("th",{parentName:"tr",align:null},"Peak memory"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.643 s (0.25x)"),(0,l.kt)("td",{parentName:"tr",align:null},"21 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"196 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 1: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"6.591 s"),(0,l.kt)("td",{parentName:"tr",align:null},"351 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"4.0 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.4 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.616 s (0.25x)"),(0,l.kt)("td",{parentName:"tr",align:null},"47 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"196 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 2: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"6.520 s"),(0,l.kt)("td",{parentName:"tr",align:null},"232 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"4.0 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.640 s (0.25x)"),(0,l.kt)("td",{parentName:"tr",align:null},"34 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"196 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 3: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"6.540 s"),(0,l.kt)("td",{parentName:"tr",align:null},"150 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"4.0 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.635 s (0.25x)"),(0,l.kt)("td",{parentName:"tr",align:null},"76 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"196 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 4: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"6.589 s"),(0,l.kt)("td",{parentName:"tr",align:null},"131 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"4.0 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: AntiDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.628 s (0.25x)"),(0,l.kt)("td",{parentName:"tr",align:null},"19 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"1.5 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"196 MB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Run 5: LegacyDiff"),(0,l.kt)("td",{parentName:"tr",align:null},"6.490 s"),(0,l.kt)("td",{parentName:"tr",align:null},"5.9 ms"),(0,l.kt)("td",{parentName:"tr",align:null},"4.0 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"1.4 GB"),(0,l.kt)("td",{parentName:"tr",align:null},"2.2 GB"))))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"Improvement factor: ",(0,l.kt)("inlineCode",{parentName:"p"},"0.25"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"Speedup : ",(0,l.kt)("inlineCode",{parentName:"p"},"1 / 0.25 ~= 4")))),(0,l.kt)("h3",{id:"genesis"},"Genesis"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"We elaborated a draft of the specification of the Genesis implementation and\nthe ChainSync Jumping optimization. In particular, this includes a proof\nsketch that the latter preserves liveness and safety in all cases (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3964"},"Issue\n3964"),").",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"@nfrisby's main realization during this sprint was that he had been\nfocusing so far on the case where the selected chain is an extension of\nthe intersection of our peers' ChainSync candidates."),(0,l.kt)("li",{parentName:"ul"},'This is the main case, ie an "absorbing" state, but it\'s not the only\ncase.'),(0,l.kt)("li",{parentName:"ul"},"The new proof sketch begins by case splitting on that predicate, and\nthat made the sketch quite a bit easier to follow."))),(0,l.kt)("li",{parentName:"ul"},'We continued working on the "happy path" ',(0,l.kt)("inlineCode",{parentName:"li"},"ChainSync")," Jumping prototype (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3960"},"Issue\n3960"),").")),(0,l.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"We started working on the issues required to re-enable nightly CI runs..\nNightly CI runs have far more lax time constraints, which gives the option to\nrun significantly more property tests than in our regular CI. To this end, we\nmerged a PR to easily adapt the number of tests globally (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3947"},"PR\n#3947"),").")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/70372002.6df44eed.js b/assets/js/70372002.6df44eed.js new file mode 100644 index 0000000000..a654234260 --- /dev/null +++ b/assets/js/70372002.6df44eed.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52703],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},m=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),d=c(n),p=a,h=d["".concat(l,".").concat(p)]||d[p]||u[p]||i;return n?r.createElement(h,o(o({ref:t},m),{},{components:n})):r.createElement(h,o({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-10-06-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,s={permalink:"/2023-10-06-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-06-performance-and-tracing.md",source:"@site/blog/2023-10-06-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-10-06T00:00:00.000Z",formattedDate:"October 6, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.625,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-10-06-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-10-06-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-10-04-consensus"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Consensus QTAs",id:"consensus-qtas",level:3},{value:"Development",id:"development",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Continued benchmarking of UTxO-HD and performed benchmarks for the new tracing system."),(0,a.kt)("li",{parentName:"ul"},"Consensus QTAs: Our protoype approach is applied to potential regression fixes with GHC 9.2.7."),(0,a.kt)("li",{parentName:"ul"},"Development: We've developed strategies for future benchmarks of PlutusV3 and UTxO-HD's on-disk backing store."),(0,a.kt)("li",{parentName:"ul"},"Tracing: The machine-readable tracer configuration has been merged. Optimization of ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," started."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: Ongoing variance analysis and refined cluster topology.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"Performing and analyzing benchmarks for the UTxO-HD feature is an ongoing effort; we can reliably assess the\nperformance of the in-memory backing store and evaluate possible optimizations (or regressions) for it. "),(0,a.kt)("p",null,"Furthermore, benchmarks of our new tracing system after several rounds of optimization have been performed. The results\nshow all key metrics now being unaffected by the choice of tracing system (legacy or new) - with the new system being able to provide more features and flexibility in comparison. The benchmarks also highlighted further points for optimization, with the focus now on the ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," service."),(0,a.kt)("h3",{id:"consensus-qtas"},"Consensus QTAs"),(0,a.kt)("p",null,"The Quantitative Timeliness Agreements (QTA) prototype is being used in coordination with Consensus and DevX to validate a series of patches that address optmization opportunities which GHC8.10 seizes, but GHC9.2 misses. The\nfeedback from this approach is much more immediate than running benchmarks at system integration level. But once we eventually do, we expect to reproduce the relevant observations - which would mean a big step towards maturing the prototype."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Benchmarking UTxO-HD's on-disk backing store needs special attention: in virtualized environments, disk I/O is not a reliable metric as it passes several layers of indirection. As this is the very metric which will influence overall performance of this UTxO-HD flavour, we developed a plan to monitor such nodes, connected to a running network, on dedicated hardware - having direct SSD access. Replicating this setup for an entire benchmarking cluster of such nodes will be a future effort. "),(0,a.kt)("p",null,"PlutusV3 will come with new builtins and a new cost model. It will take a specialized benchmark to ascertain the soundness of that model running a full cluster of nodes, possibly stressing expensive builtins. At the same time,\nwe'd like to validate the many improvements that have gone into the Plutus evaluator."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The focus for further optimization of the new tracing system has shifted to ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," - the service\nreceiving and processing traces from one (or more) nodes. Whilst undisputed that the code living in ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," is\nmore performance critical, the receiving service must still minimize its resource footprint. Moreover, it can\ngenerate load for a running node when querying data points from it - which calls for tight control of that mechanism and its possible configurations."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"Variance analysis of new nomad backend has revealed a necessary adjustment of the cluster's topology. We repeated\nthe same analysis and now see even better confidence in the measurements taken with nomad. This concludes the work on the backend proper for the time being. The last steps before production use will focus on the interface between backend and our workbench, which provides all high-level benchmark definitions and analysis machinery."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/70396aa3.e6d65c1a.js b/assets/js/70396aa3.e6d65c1a.js new file mode 100644 index 0000000000..ec179455ac --- /dev/null +++ b/assets/js/70396aa3.e6d65c1a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92517],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-10-04-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-10-04-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-04-mithril.md",source:"@site/blog/2023-10-04-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-10-04T00:00:00.000Z",formattedDate:"October 4, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.15,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-10-04-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-10-04-consensus"},nextItem:{title:"Network Team Update",permalink:"/2023-10-02-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team updated a proposal for implementing Mithril in a light wallet and created a discussion ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/discussions/1273"},"on implementing Mithril in a light wallet")," to receive feedback and contributions from the community."),(0,n.kt)("p",null,"They also completed a proof of concept to run a Mithril client in a browser with WASM and worked on enhancing the explorer UI with SPO tickers displayed next to the pool IDs. Additionally, the team finalized a tool for benchmarking aggregator performance over a range of signer and client loads and for visualizing the results of these benchmarks."),(0,n.kt)("p",null,"Finally, the team added a root page to the aggregator endpoint, created a status page for the Mithril networks, and added a section about KES key rotation in the signer documentation for SPOs."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Created the discussion ",(0,n.kt)("strong",{parentName:"li"},"Implement Mithril in a light wallet")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/discussions/1273"},"#1273")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Run client in browser WASM PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1254"},"#1254")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Benchmark aggregator performances")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1220"},"#1220")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Add SPO tickers in explorer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1185"},"#1185")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Add a non ",(0,n.kt)("inlineCode",{parentName:"strong"},"404")," status code on the aggregator endpoint")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1103"},"#1103")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Use source attribute in errors")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1265"},"#1265")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a SPO checklist for KES keys update")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1267"},"#1267")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Configure status page and alerting")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1277"},"#1277")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Upgrade dependencies")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1274"},"#1274"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/704e5bb8.2460f2be.js b/assets/js/704e5bb8.2460f2be.js new file mode 100644 index 0000000000..c7d9ed45c2 --- /dev/null +++ b/assets/js/704e5bb8.2460f2be.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[56733],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>h});var l=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,l)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var u=l.createContext({}),p=function(e){var t=l.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=p(e.components);return l.createElement(u.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},c=l.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,u=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),d=p(a),c=r,h=d["".concat(u,".").concat(c)]||d[c]||s[c]||n;return a?l.createElement(h,i(i({ref:t},m),{},{components:a})):l.createElement(h,i({ref:t},m))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,i=new Array(n);i[0]=c;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[d]="string"==typeof e?e:r,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>s,frontMatter:()=>n,metadata:()=>o,toc:()=>p});var l=a(87462),r=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2023-08-04-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2023-08-04-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-ledger.md",source:"@site/blog/2023-08-04-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.915,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-08-04-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-08-04-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-08-04-network"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway progress",id:"conway-progress",level:3},{value:"Testing",id:"testing",level:3},{value:"Bugfixes",id:"bugfixes",level:3},{value:"Plutus integration",id:"plutus-integration",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3}],m={toc:p},d="wrapper";function s(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,l.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The ledger team was working almost exclusively on the Conway era implementation. In\nparticular, the main focus was directed towards solidifying transaction related types and\ntheir binary representation. We also directed some effort into unblocking Plutus team with\nrespect to PlutusV3 integration."),(0,r.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,r.kt)("h3",{id:"conway-progress"},"Conway progress"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3552"},"pull-3552")," - Allow Constitutional Committee Hot Key to be ScriptHash"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3581"},"pull-3581")," - Make Constitutional Committee Cold Key to be ScriptHash"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3571"},"pull-3571")," - Implement a portion of the TICKF rule."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3556"},"pull-3556")," - Add Script to Constitution"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3576"},"pull-3576")," - Add optional Anchor to ConwayRegDRep certificate"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3495"},"pull-3495")," - Implement refund logic for Proposal deposits"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3579"},"pull-3579")," - Change voting procedure in the transaction to a nested Map"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3585"},"pull-3585")," - Rename ",(0,r.kt)("inlineCode",{parentName:"li"},"CommitteeCert")," into a ",(0,r.kt)("inlineCode",{parentName:"li"},"GovCert")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3587"},"pull-3587")," - Remove ",(0,r.kt)("inlineCode",{parentName:"li"},"DelegStakeTxCert")," from the ",(0,r.kt)("inlineCode",{parentName:"li"},"COMPLETE")," pragma for ",(0,r.kt)("inlineCode",{parentName:"li"},"TxCert")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3586"},"pull-3586")," - Add ",(0,r.kt)("inlineCode",{parentName:"li"},"CurrentTreasuryValue")," to ",(0,r.kt)("inlineCode",{parentName:"li"},"TxBody")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3588"},"pull-3588")," - Rename key roles"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3557"},"pull-3557")," - Update ",(0,r.kt)("inlineCode",{parentName:"li"},"NewCommittee")," action to use ",(0,r.kt)("inlineCode",{parentName:"li"},"RewardAcnt")," and add more info"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3595"},"pull-3595")," - Add ",(0,r.kt)("inlineCode",{parentName:"li"},"ConwayUpdateDRep")," constructor to ConwayTxCertGov type"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3600"},"pull-3600")," - Filter out zero TxOuts on Byron/Shelley boundary instead of Babbage/Conway"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3597"},"pull-3597")," - Update ",(0,r.kt)("inlineCode",{parentName:"li"},"ProposalProcedure")," return address to be a ",(0,r.kt)("inlineCode",{parentName:"li"},"RewardAcnt"))),(0,r.kt)("h3",{id:"testing"},"Testing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3374"},"pull-3374")," - New features for generation subject to constraints"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3519"},"pull-3519")," - Basic Conway features test")),(0,r.kt)("h3",{id:"bugfixes"},"Bugfixes"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3566"},"pull-3566")," - Mint field translation bugfix.")),(0,r.kt)("h3",{id:"plutus-integration"},"Plutus integration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3538"},"issue-3538")," - A fairly complete specification was created for the PlutusV3 context"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3593"},"pull-3593")," - Conway TxInfo for PlutusV3 is now compatible with all pre-Conway functionality")),(0,r.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3574"},"pull-3574")," - Improve clarity and performance of collateral Non-ADA validation:"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3573"},"pull-3573")," - Update top-level ",(0,r.kt)("inlineCode",{parentName:"li"},"CHANGELOG.md")," with cardano-node relevant changes"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3555"},"pull-3555")," - Bump pygments from 2.12.0 to 2.15.0 in /doc"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3575"},"pull-3575")," - Bump certifi from 2022.12.7 to 2023.7.22 in /doc"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3567"},"pull-3567")," - Backport mint field translation bugfix"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3568"},"pull-3568")," - Fixed typo in byron ledger spec"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3572"},"pull-3572")," - Release/backport tickf bugfix")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/706d2bfc.5b80d322.js b/assets/js/706d2bfc.5b80d322.js new file mode 100644 index 0000000000..8021fd910a --- /dev/null +++ b/assets/js/706d2bfc.5b80d322.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65579],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>d});var n=a(67294);function i(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function p(t){for(var e=1;e=0||(i[a]=t[a]);return i}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(i[a]=t[a])}return i}var o=n.createContext({}),u=function(t){var e=n.useContext(o),a=e;return t&&(a="function"==typeof t?t(e):p(p({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(o.Provider,{value:e},t.children)},h="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},s=n.forwardRef((function(t,e){var a=t.components,i=t.mdxType,r=t.originalType,o=t.parentName,c=l(t,["components","mdxType","originalType","parentName"]),h=u(a),s=i,d=h["".concat(o,".").concat(s)]||h[s]||m[s]||r;return a?n.createElement(d,p(p({ref:e},c),{},{components:a})):n.createElement(d,p({ref:e},c))}));function d(t,e){var a=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var r=a.length,p=new Array(r);p[0]=s;var l={};for(var o in e)hasOwnProperty.call(e,o)&&(l[o]=e[o]);l.originalType=t,l[h]="string"==typeof t?t:i,p[1]=l;for(var u=2;u{a.r(e),a.d(e,{assets:()=>o,contentTitle:()=>p,default:()=>m,frontMatter:()=>r,metadata:()=>l,toc:()=>u});var n=a(87462),i=(a(67294),a(3905));const r={title:"Node API & CLI Team Update",slug:"2023-12-08-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},p="Node-Api-Cli Update",l={permalink:"/2023-12-08-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08-node-cli-api.md",source:"@site/blog/2023-12-08-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-12-08T00:00:00.000Z",formattedDate:"December 8, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:2.2,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-12-08-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-12-08-network"},nextItem:{title:"SRE Team Update",permalink:"/2023-12-08-sre"}},o={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},h="wrapper";function m(t){let{components:e,...a}=t;return(0,i.kt)(h,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"2023-11-15---2023-12-08"},"2023-11-15 - 2023-12-08"),(0,i.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,i.kt)("p",null,"This is sprint was mostly about bug fixing, code clean-ups and optimizations in preparation for a mainnet suitable release."),(0,i.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/511"},"Unify previous governance action parameters across actions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/510"},"Release 8.17.0.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/507"}," Restore the inclusion of datum hashes in Alonzo era tx bodies")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/498"},"create-staked: add test")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/497"},"create-staked: simplify some code")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/495"},"Remove unused cabal file code")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/491"},"New version cardano-cli-8.16.0.1")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/490"},"Fix era mismatch error in stake-address-info")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/489"},"Release 8.16.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/488"},"Add create-testnet-data command")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/487"},"Rename stake-address-info field: stakeDelegation -> delegation for eras prior to Conway")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/486"},"Update the ",(0,i.kt)("inlineCode",{parentName:"a"},"--key-output-format")," help text: default is text-envelope")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/484"},"Complete help texts for ",(0,i.kt)("inlineCode",{parentName:"a"},"create-protocol-parameters-update"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/483"},"Fix using queryStakeVoteDelegatees in eras before conway")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/481"},"Use node queries with tighter eons. Simplify prettyprinting.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/479"},"Add support for Plutus V3 in command line interface")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/478"},"Remove Byron Tx")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/476"},"Use ",(0,i.kt)("inlineCode",{parentName:"a"},"selectStakeCredentialWitness")," instead of duplicating credential selection")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/475"},'Revert "query protocol parameters: use ledger instances"')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/470"},"governance action: prefix stake-verification-key/stake-key arguments with --deposit-return")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/469"},"Fix NodeEraMismatchError mismatch")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/467"},"Byron isolation 2 of n")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/466"},"Fix description of ",(0,i.kt)("inlineCode",{parentName:"a"},"vote-delegation-certificate")," command")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/464"},"New version ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-cli-8.15.0.0"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/463"},"Integration work for Node 8.7.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/460"},"Align create-constitution anchor flags with other anchor flags")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/459"},"conway governance hash: add option to write hash to file (--out-file)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/458"},"Update pCmds to take ",(0,i.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra era")," instead of ",(0,i.kt)("inlineCode",{parentName:"a"},"Cardano era"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/457"},"Add one missing extended to non extended golden tests")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/456"},"Correct conway parser, so that --key-reg-deposit-amt is mandatory"))),(0,i.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/399"},"Release 8.36.1.1")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/398"},"Restore the inclusion of datum hashes in Alonzo era tx bodies")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/396"},"New version cardano-api-8.36.1.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/395"},"Expose AnyProposals and AnyRatificationState")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/394"},"New version ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-api-8.36.0.0"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/393"},"New ",(0,i.kt)("inlineCode",{parentName:"a"},"ToJSON")," instance for ",(0,i.kt)("inlineCode",{parentName:"a"},"TxValidationErrorInCardanoMode"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/392"},"Update to latest consensus release")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/390"},"Fix generated textEnvelope type on registering a Stake Address Registration Certificate")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/389"},"New version ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-api-8.35.0.0"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/388"},"Expose NewGovernanceProposals and EpochBoundaryRatificationState ledger events")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/387"},"Remove renderEra. Rename prettyTo",(0,i.kt)("em",{parentName:"a"}," to docTo")," functions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/386"},"Guard queries with their respective eras")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/385"},"Release 8.34.1")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/383"},"Expose ",(0,i.kt)("inlineCode",{parentName:"a"},"stakeCredentialWitness")," function, which returns only stake credentials for the certificates requiring witnessing: delegation and deregistration")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/382"},"Remove ByronTx")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/381"},"New version ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-api-8.34.0.0"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/379"},(0,i.kt)("inlineCode",{parentName:"a"},"ToJSON")," instance for ",(0,i.kt)("inlineCode",{parentName:"a"},"TxValidationError"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/378"},"Parameterize ",(0,i.kt)("inlineCode",{parentName:"a"},"createAndValidateTransactionBody")," on ",(0,i.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra era"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/377"},"New version ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-api-8.33.0.0"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/375"},"Minor ",(0,i.kt)("inlineCode",{parentName:"a"},"prettyprinter")," fixes")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/374"},"Export ",(0,i.kt)("inlineCode",{parentName:"a"},"AllegraEraOnwards"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/371"},"New version ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-api-8.32.0.0"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/370"},"Use ",(0,i.kt)("inlineCode",{parentName:"a"},"Pretty")," for rendering errors instead of ",(0,i.kt)("inlineCode",{parentName:"a"},"Show")))),(0,i.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5566"},"Bump CHaP")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5562"},"Allow text-1")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5560"},"Release cardano-node 8.7.1")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5557"},"Bump CHaP")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5551"},"Forcefully disable PeerSharing if InitiatorMode is used")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5541"},"Optimize new tracing further"))),(0,i.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5566"},"Bump CHaP")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5558"},"Transaction submission test via ",(0,i.kt)("inlineCode",{parentName:"a"},"cardano-submit-api"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5557"},"Bump CHaP")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5552"},"Transaction integration test"))),(0,i.kt)("h3",{id:"docs"},"docs"),(0,i.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7095f3d5.06fc92f2.js b/assets/js/7095f3d5.06fc92f2.js new file mode 100644 index 0000000000..0534499281 --- /dev/null +++ b/assets/js/7095f3d5.06fc92f2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[49545],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>c});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(n),d=i,c=m["".concat(p,".").concat(d)]||m[d]||h[d]||a;return n?r.createElement(c,o(o({ref:t},u),{},{components:n})):r.createElement(c,o({ref:t},u))}));function c(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var r=n(87462),i=(n(67294),n(3905));const a={title:"Mithril Team Update",slug:"2024-01-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-01-17-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-17-mithril.md",source:"@site/blog/2024-01-17-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-01-17T00:00:00.000Z",formattedDate:"January 17, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.165,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-01-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-01-17-ledger"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-01-15-node-cli-api"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(m,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team completed the implementation of the client in the explorer, enabling direct certificate verification from the browser. They initiated the implementation of a new entity type for signing to certify the Cardano transactions set in Mithril networks. The team also upgraded the devnet to support the Conway era and activated the Mithril era marker reader on the Cardano chain in the end-to-end test. Additionally, they kept implementing a mock aggregator to strengthen Mithril client tests in WASM and continued working on threat modeling and risk analysis for P2P networking."),(0,i.kt)("p",null,"Finally, they worked on enhancing node communications between Mithril and Cardano, and they started rolling out the Cardano node in the infrastructure to version ",(0,i.kt)("inlineCode",{parentName:"p"},"8.7.3"),"."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Light Wallet: Create new signed entity type for ",(0,i.kt)("inlineCode",{parentName:"strong"},"CardanoTransactions"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1434"},"#1434")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement the mithril client WASM package in the explorer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1409"},"#1409")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Activate ",(0,i.kt)("inlineCode",{parentName:"strong"},"babbage"),"/",(0,i.kt)("inlineCode",{parentName:"strong"},"conway")," eras on ",(0,i.kt)("inlineCode",{parentName:"strong"},"devnet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1425"},"#1425")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Transition Mithril Era Reader adapter to ",(0,i.kt)("inlineCode",{parentName:"strong"},"CardanoChain")," in ",(0,i.kt)("inlineCode",{parentName:"strong"},"devnet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1428"},"#1428")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Upgrade Cardano node to ",(0,i.kt)("inlineCode",{parentName:"strong"},"8.7.3"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1410"},"#1410")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement a fake standalone aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1397"},"#1397")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Create a test network on ",(0,i.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/71508f04.197b81fc.js b/assets/js/71508f04.197b81fc.js new file mode 100644 index 0000000000..378749ccfe --- /dev/null +++ b/assets/js/71508f04.197b81fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80019],{34651:e=>{e.exports=JSON.parse('{"permalink":"/page/14","page":14,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/13","nextPage":"/page/15","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/71d215be.ed9ec992.js b/assets/js/71d215be.ed9ec992.js new file mode 100644 index 0000000000..f0fc8e20f7 --- /dev/null +++ b/assets/js/71d215be.ed9ec992.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[74390],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=p(r),m=n,d=c["".concat(s,".").concat(m)]||c[m]||h[m]||i;return r?a.createElement(d,o(o({ref:t},u),{},{components:r})):a.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2023-07-14-hydra",authors:["ffakenz","v0d1ch"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-07-14-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-14-hydra.md",source:"@site/blog/2023-07-14-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-07-14T00:00:00.000Z",formattedDate:"July 14, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.79,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"},{name:"Sasha Bogicevic",title:"Hydra Software Engineer",url:"https://github.com/v0d1ch",imageURL:"https://github.com/v0d1ch.png",key:"v0d1ch"}],frontMatter:{title:"Hydra Team Update",slug:"2023-07-14-hydra",authors:["ffakenz","v0d1ch"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-07-18-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2023-07-13-mithril"}},s={authorsImageUrls:[void 0,void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:p},c="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week the team focused on exploring the event sourced persistence in order\nto improve ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," performance. Because of this work the team noticed we\nneed to refactor the emit snapshot emission logic and update the spec in the\nlight of new changes. They also took the time to revisit their goals and product\nplans for the next quarter as well as doing some security fixes related to\nmultisignatures."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Finished spike about performance improvements of event sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/963"},"#963"),"."),(0,n.kt)("li",{parentName:"ul"},"Refactor snapshot emission in protocol logic."),(0,n.kt)("li",{parentName:"ul"},"Revisited our roadmap and goals."),(0,n.kt)("li",{parentName:"ul"},"Prepared and conducated a learning session on lean-waste."),(0,n.kt)("li",{parentName:"ul"},"Improve security of multi-signature checks, see ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/security/advisories/GHSA-c8qp-cv4h-vcc4"},"this Github security advisory"),"."),(0,n.kt)("li",{parentName:"ul"},"Implemented a cache friendly way to version our binaries ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/962"},"#962"),".")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implement Event sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/913"},"#913"),"."),(0,n.kt)("li",{parentName:"ul"},"Remove deprecated internal commit ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/954"},"#954")," and close ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/728"},"#728"),".")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/71e4641a.3da43464.js b/assets/js/71e4641a.3da43464.js new file mode 100644 index 0000000000..d0b8eb7d87 --- /dev/null +++ b/assets/js/71e4641a.3da43464.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53940],{16528:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>u,contentTitle:()=>p,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var n=o(87462),a=(o(67294),o(3905)),r=o(22004);const i={title:"Network Team Update",slug:"2022-08-12-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},p=void 0,s={permalink:"/2022-08-12-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-08-12-network.md",source:"@site/blog/2022-08-12-network.md",title:"Network Team Update",description:"The networking team took an active part in the project iteration (PI) planning",date:"2022-08-12T00:00:00.000Z",formattedDate:"August 12, 2022",tags:[{label:"network",permalink:"/tags/network"}],readingTime:.88,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-08-12-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-08-31-consensus"}},u={authorsImageUrls:[void 0]},l=[],k={toc:l},h="wrapper";function m(t){let{components:e,...o}=t;return(0,a.kt)(h,(0,n.Z)({},k,o,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The networking team took an active part in the project iteration (PI) planning\nsession, see cardano-node ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/39"},"backlog")," for detailed\noutcomes."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We started working on a detailed design / implementation plan for gossip.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We merged ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3859"},"input-output-hk/ouroboros-network#3859")," which\nsets the ouroboros-network repository for the single relay release.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We identified a bug in the network simulator, which is fixed in the\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3852"},"input-output-hk/ouroboros-network#3852"),".\nThe above PR was reviewed.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We set the tracing configuration for nodes which we deploy and fixed and\nidentified some deployment hiccups. We identified some bugs in the RT view\nwhich were registered by the maintainers.\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network-ops/pull/4"},"input-output-hk/ouroboros-network-ops#4"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We fixed typos in network-mux library:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3921"},"input-output-hk/ouroboros-network#3921"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"For easy of debugging we renamed a trace point:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3922"},"input-output-hk/ouroboros-network#3922"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Duncan iterated on his simulation / visualisation. He also was able to\nidentify and fix a bug in the simulator. The simulation contains 50 nodes.\nDashed lines indicate and established connection, while solid lines indicate\na TCP connection with fully open TCP window."))),(0,a.kt)(r.Z,{playing:!0,controls:!0,url:"/p2p-relay3.mp4",mdxType:"ReactPlayer"}))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7214e9a2.1621da4b.js b/assets/js/7214e9a2.1621da4b.js new file mode 100644 index 0000000000..d8e588d81c --- /dev/null +++ b/assets/js/7214e9a2.1621da4b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54613],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-05-22-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-05-22-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-22-mithril.md",source:"@site/blog/2024-05-22-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-05-22T00:00:00.000Z",formattedDate:"May 22, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.355,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-05-22-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-05-22-ledger"},nextItem:{title:"Consensus Team Update",permalink:"/2024-05-15-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet")," by prototyping optimizations and benchmarking performance improvements. They also made progress on low-latency certification by completing the retrieval of the chain tip and importing transactions from the Cardano mini-protocol with Pallas. Additionally, they worked on a new explorer page to display in/out SPOs for the latest Cardano epochs."),(0,i.kt)("p",null,"Finally, the team upgraded the ",(0,i.kt)("inlineCode",{parentName:"p"},"testing-sanchonet")," network following the ",(0,i.kt)("inlineCode",{parentName:"p"},"SanchoNet")," network respin, created a module for building test transactions, and began removing the deprecated ",(0,i.kt)("inlineCode",{parentName:"p"},"snapshot")," command from the client CLI."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Aggregator stress test crashes during signer registration")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1676"},"#1676")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Prune Cardano transactions stored on signer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1645"},"#1645")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," supports retrieving the Chain Point of the tip of the chain")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1589"},"#1589")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Prepare ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet")," for respin with Cardano ",(0,i.kt)("inlineCode",{parentName:"strong"},"8.11-pre"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1694"},"#1694")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"MacOS Rust tests are flaky in CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1556"},"#1556")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Prototype optimizations for increasing Cardano transactions proof generation throughput")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1687"},"#1687")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Retrieve Cardano blocks with ",(0,i.kt)("inlineCode",{parentName:"strong"},"chainsync")," in ",(0,i.kt)("inlineCode",{parentName:"strong"},"pallas")," PoC")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1590"},"#1590")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Explorer display in/out SPOs in registered signers page")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1686"},"#1686")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Create a test Cardano transactions builder")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1667"},"#1667")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Cardano signatures are not produced on ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet")," and ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-mainnet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1681"},"#1681")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Remove ",(0,i.kt)("inlineCode",{parentName:"strong"},"snapshot")," command in client CLI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1690"},"#1690")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/72174b40.ce2d9041.js b/assets/js/72174b40.ce2d9041.js new file mode 100644 index 0000000000..5d16a4f157 --- /dev/null +++ b/assets/js/72174b40.ce2d9041.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58236],{3905:(e,t,n)=>{n.d(t,{Zo:()=>i,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):p(p({},t),e)),n},i=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),m=s(n),d=a,h=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?r.createElement(h,p(p({ref:t},i),{},{components:n})):r.createElement(h,p({ref:t},i))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,p=new Array(o);p[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:a,p[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB Sync Team Update",slug:"2024-04-17-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},p=void 0,l={permalink:"/2024-04-17-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-17-db-sync.md",source:"@site/blog/2024-04-17-db-sync.md",title:"DB Sync Team Update",description:"High level summary",date:"2024-04-17T00:00:00.000Z",formattedDate:"April 17, 2024",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.465,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB Sync Team Update",slug:"2024-04-17-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-04-17-consensus"},nextItem:{title:"Mithril Team Update",permalink:"/2024-04-17-mithril"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],i={toc:s},m="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},i,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team has released 1 version for mainnet ",(0,a.kt)("inlineCode",{parentName:"p"},"13.2.0.1")," and 3 pre-releases for sanchonet\n",(0,a.kt)("inlineCode",{parentName:"p"},"4.0.0"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"4.1.0"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"4.2.0"),". We have continued the integration of Conway (CIP-1694) and the support\nof off-chain data (CIP-100)"),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"CI build and docker fixes\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1670"},"#1670"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1668"},"#1668"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1667"},"#1667"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1662"},"#1662"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Improved committee representation\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1655"},"#1662"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/issues/1571"},"#1571"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/issues/1633"},"#1633"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Offchain metadata partial support\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1654"},"#1654"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Refactoring and tech-debt\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1635"},"#1635"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Fixing epoch_stake_progress\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/issues/1620"},"#1620"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Config and modulatirty improvements\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1653"},"#1653"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1652"},"#1652"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Updating to node-8.10-pre. Better support for deposits, refunds and proposal state\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1673"},"#1673")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7221b837.449b8b2a.js b/assets/js/7221b837.449b8b2a.js new file mode 100644 index 0000000000..3846ed599d --- /dev/null +++ b/assets/js/7221b837.449b8b2a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90045],{3905:(e,t,o)=>{o.d(t,{Zo:()=>h,kt:()=>m});var n=o(67294);function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},h=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=c(o),d=a,m=u["".concat(l,".").concat(d)]||u[d]||p[d]||r;return o?n.createElement(m,i(i({ref:t},h),{},{components:o})):n.createElement(m,i({ref:t},h))}));function m(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=o.length,i=new Array(r);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var n=o(87462),a=(o(67294),o(3905));const r={title:"Initial CIP 1694 Security Analysis and Responses",slug:"2023-11-20-cip1694",authors:"kevinhammond",tags:["ledger","cip1694","security"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-11-20-cip1694",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-20-cip1694.md",source:"@site/blog/2023-11-20-cip1694.md",title:"Initial CIP 1694 Security Analysis and Responses",description:"High level summary",date:"2023-11-20T00:00:00.000Z",formattedDate:"November 20, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"},{label:"cip1694",permalink:"/tags/cip-1694"},{label:"security",permalink:"/tags/security"}],readingTime:5.345,hasTruncateMarker:!1,authors:[{name:"Kevin Hammond",title:"Head of Software Engineering, Cardano Core",url:"https://github.com/kevinhammond",imageURL:"https://github.com/kevinhammond.png",key:"kevinhammond"}],frontMatter:{title:"Initial CIP 1694 Security Analysis and Responses",slug:"2023-11-20-cip1694",authors:"kevinhammond",tags:["ledger","cip1694","security"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-11-22-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-11-17-hydra"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Initial CIP-1694 Security Analysis and Responses",id:"initial-cip-1694-security-analysis-and-responses",level:2},{value:"Section: The constitutional committee",id:"section-the-constitutional-committee",level:3},{value:"Section: Size of the constitutional committee",id:"section-size-of-the-constitutional-committee",level:3},{value:"Section: Terms",id:"section-terms",level:3},{value:"Section: Registered DReps",id:"section-registered-dreps",level:3},{value:"Section: Ratification",id:"section-ratification",level:3},{value:"Section: Content",id:"section-content",level:3},{value:"Section: Protocol Parameter groups",id:"section-protocol-parameter-groups",level:3},{value:"Section: Votes",id:"section-votes",level:3},{value:"Section: Separation of Hard Fork Initiation from Standard Protocol Parameter Changes",id:"section-separation-of-hard-fork-initiation-from-standard-protocol-parameter-changes",level:3},{value:"Section: Changes post Edinburgh workshop (July 2023)",id:"section-changes-post-edinburgh-workshop-july-2023",level:3},{value:"Section: Reduced deposits for some government actions",id:"section-reduced-deposits-for-some-government-actions",level:3}],h={toc:c},u="wrapper";function p(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,n.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We have undertaken an initial high-level security analysis of the CIP-1694 design. We summarise the analysis and our responses here."),(0,a.kt)("h2",{id:"initial-cip-1694-security-analysis-and-responses"},"Initial CIP-1694 Security Analysis and Responses"),(0,a.kt)("h3",{id:"section-the-constitutional-committee"},"Section: The constitutional committee"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},'\u201cFor example, if we consider the hypothetical Constitution rule "The Cardano network must always be able to produce new blocks" - In this example, if the governance action to reduce block size to 0 is passed, then there will be no way of passing or enacting further proposals. That is, this governance action is completely non-reversable. Suggestion: Instating a built-in mechanism that checks (and perhaps enforces) that the proposed governance actions, if passed, can be reverted in the future.')),(0,a.kt)("p",null,"There is a 'guardrails document' in preparation which captures issues such as these. Some of them may be automatable, as suggested; others will need to be evaluated by humans."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-size-of-the-constitutional-committee"},"Section: Size of the constitutional committee"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"A possible issue with very large committee sizes (or large number of proposals/voters in general) is that it may take longer to have votes appear on-chain, which in extreme cases may require longer voting periods.")),(0,a.kt)("p",null,"Thanks. Yes, we\u2019ve been thinking about this issue for a long time, see for example the section \u2018Final safety measure, post bootstrapping\u2019. We don\u2019t consider this as an issue for the CC since they need to be elected while DReps can just register, so we expect the number of CC members to be much less than the number of DReps"),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-terms"},"Section: Terms"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The following sentence is a bit awkward to read: \u201cFor example, a committee of size five with a threshold of 3/5 a minimum size of three and two expired members can still pass governance actions if two non-expired members vote Yes.\u201d \u2014> Suggestion: \u201cFor example, if we have a committee of size five with a threshold of 3/5, then a committee of three non-expired and two expired members can still pass governance actions if two non-expired members vote Yes.\u201d ")),(0,a.kt)("p",null,"Thanks. Yes, that suggestion is a bit easier to read."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-registered-dreps"},"Section: Registered DReps"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u201cAdditionally, registered DReps will need to vote regularly to still be considered active.\u201d - There is a minor issue with requiring \u201cvoting regularly\u201d. That is, if there are no proposals to vote on for a long time, this means that no DRep can vote regularly (or they have to issue bogus proposals just to vote on them).")),(0,a.kt)("p",null,"Thanks. We\u2019ve added a mechanism to prevent that issue in the spec/code where if there\u2019s nothing to vote on for an entire epoch, we increment the epoch that each DRep expires."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-ratification"},"Section: Ratification"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"It is a bit unclear why protocol changes: network group and technical group are two separate groups.")),(0,a.kt)("p",null,"These correspond exactly to the groups that are administered by the Parameter Committee."),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"I didn\u2019t understand the rationale for requiring 100% \u201cYes\u201d votes to pass \u201cInfo\u201d type governance actions? It seems they have the least potential to harm the system.")),(0,a.kt)("p",null,"Yes, it\u2019s not about harming the system, since ",(0,a.kt)("inlineCode",{parentName:"p"},"Info"),"\nactions have no direct effect on the operation of Cardano. The motivation is simply to record the actual level of support for the action. "),(0,a.kt)("p",null,"Once an action is enacted it\u2019s no longer possible to vote on it. So if there was e.g. a threshold of 50%, then there is no way of telling whether the support for it might eventually have reached 90% or higher if it was not immediately enacted when the threshold was reached."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-content"},"Section: Content"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"For Hard-fork initiation, the changed parameters should probably also be required as part of Additional data.")),(0,a.kt)("p",null,"Protocol parameters can be changed in arbitrary ways by the hard fork and new ones might be introduced, so anything this action pins down might not actually be the value that will be present after the hard fork."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-protocol-parameter-groups"},"Section: Protocol Parameter groups"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"It is a bit unclear to the reader what some of these parameters mean, for example: monetary expansion (rho) and treasury expansion (tau). Suggestion: Include brief explanations for the non-obvious parameters.")),(0,a.kt)("p",null,"These are existing protocol parameters, described in e.g. ",(0,a.kt)("a",{parentName:"p",href:"https://docs.cardano.org/explore-cardano/parameter-guide/#:~:text=Protocol%20parameters%20on%20Cardano%20are,to%20changing%20conditions%20over%20time."},"https://cips.cardano.org/cips/cip9/"),"9 or ",(0,a.kt)("a",{parentName:"p",href:"https://docs.cardano.org/explore-cardano/parameter-guide/#:~:text=Protocol%20parameters%20on%20Cardano%20are,to%20changing%20conditions%20over%20time."},"The Cardano Protocol Parameters Guide"),"."),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"With the current set of governance actions, it seems that it is not possible to add new types of protocol parameters, or categories of governance voting thresholds. Suggestion: Consider possibility of incorporating governance actions that allow addition of new protocol parameters, deletion of defunct protocol parameters, or modification of governance voting threshold categories. ")),(0,a.kt)("p",null,"All of this needs to be done via a hard fork. If we had an action that added a parameter then there is no way of giving it semantics anyway, since that must be done by logic in the code."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-votes"},"Section: Votes"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Is a constitutional committee member also a DRep? If so, do they vote twice, once as a committee member and once as a DRep?")),(0,a.kt)("p",null,"They may or may not be (and they could also be an SPO). Note that this is fine, since these are completely separate tallies. This is also not preventable, since we don\u2019t have an on-chain mechanism for identity. And yes, each credential gets to vote on each action for all roles in the governance system it has."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-separation-of-hard-fork-initiation-from-standard-protocol-parameter-changes"},"Section: Separation of Hard Fork Initiation from Standard Protocol Parameter Changes"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"It is unclear whether there would be automated checks for whether a proposal is indeed a soft fork or hard fork, which would reduce human error in categorising proposals.")),(0,a.kt)("p",null,"There is no on-chain mechanism that could enforce this, the best we could do is some kind of certificate. However, this may not be trustworthy, of course. We will consider this in future versions of Voltaire."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-changes-post-edinburgh-workshop-july-2023"},"Section: Changes post Edinburgh workshop (July 2023)"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u201cAll governance actions are enacted one epoch after they are ratified.\u201d - I\u2019m not sure if this line is currently in the main body of the CIP?")),(0,a.kt)("p",null,"It is, but it is phrased differently: \u2018All governance actions are enacted on the epoch boundary after their ratification.\u2019"),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"section-reduced-deposits-for-some-government-actions"},"Section: Reduced deposits for some government actions"),(0,a.kt)("hr",null),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Another downside of requiring endorsement from the constitutional committee is that this likely does not apply to constitutional committee-related proposals, such as no-confidence votes.")),(0,a.kt)("p",null,"Indeed. We have no plans for this at the moment."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/729abf9f.0d7913a5.js b/assets/js/729abf9f.0d7913a5.js new file mode 100644 index 0000000000..4ffb90b3a6 --- /dev/null +++ b/assets/js/729abf9f.0d7913a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43837],{93487:e=>{e.exports=JSON.parse('{"permalink":"/quarterly","page":1,"postsPerPage":10,"totalPages":2,"totalCount":20,"nextPage":"/quarterly/page/2","blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/72c81964.4edc6f25.js b/assets/js/72c81964.4edc6f25.js new file mode 100644 index 0000000000..4f6c27cb09 --- /dev/null +++ b/assets/js/72c81964.4edc6f25.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94590],{3905:(e,t,i)=>{i.d(t,{Zo:()=>h,kt:()=>d});var r=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},h=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,a=e.mdxType,n=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),m=s(i),c=a,d=m["".concat(p,".").concat(c)]||m[c]||u[c]||n;return i?r.createElement(d,o(o({ref:t},h),{},{components:i})):r.createElement(d,o({ref:t},h))}));function d(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=i.length,o=new Array(n);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>n,metadata:()=>l,toc:()=>s});var r=i(87462),a=(i(67294),i(3905));const n={title:"Mithril Team Update",slug:"2023-01-26-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-26-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-26-mithril.md",source:"@site/blog/2023-01-26-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-01-26T00:00:00.000Z",formattedDate:"January 26, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.175,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-01-26-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-01-27-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-01-25-consensus"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],h={toc:s},m="wrapper";function u(e){let{components:t,...i}=e;return(0,a.kt)(m,(0,r.Z)({},h,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The Mithril team released a new ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2302.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2302.0"))," distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes."),(0,a.kt)("p",null,"Finally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2302.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2302.0"))),(0,a.kt)("li",{parentName:"ul"},"Implemented a backward/forward compatibility mechanism for API messages ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/688"},"#688"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for the signer registration ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/689"},"#689")),(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for the signature registration ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/693"},"#693")),(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for epoch settings ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/695"},"#695")),(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for certificate pending ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/696"},"#696")),(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for certificate ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/697"},"#697")),(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for snapshots list ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/698"},"#698")),(0,a.kt)("li",{parentName:"ul"},"Implement the mechanism for snapshot ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/699"},"#699")),(0,a.kt)("li",{parentName:"ul"},"Update enforcement of API version with Semver ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/705"},"#705")))),(0,a.kt)("li",{parentName:"ul"},"Completed the PoC implementation of backward compatibility with ",(0,a.kt)("inlineCode",{parentName:"li"},"protobuf")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/677"},"#677")),(0,a.kt)("li",{parentName:"ul"},"Completed the PoC implementation of backward compatibility with ",(0,a.kt)("inlineCode",{parentName:"li"},"avro")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/678"},"#678")),(0,a.kt)("li",{parentName:"ul"},"Completed the PoC to Read/Write transaction on chain for Era activations ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/672"},"#672")),(0,a.kt)("li",{parentName:"ul"},"Completed the upgrade Cardano devnet to 1.35.4 ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/523"},"#523"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/72dde749.7e53494f.js b/assets/js/72dde749.7e53494f.js new file mode 100644 index 0000000000..192233c726 --- /dev/null +++ b/assets/js/72dde749.7e53494f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70526],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),p=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=p(a),h=n,m=d["".concat(l,".").concat(h)]||d[h]||c[h]||o;return a?r.createElement(m,i(i({ref:t},u),{},{components:a})):r.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:n,i[1]=s;for(var p=2;p{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-12-08-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-12-08-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08.md",source:"@site/blog/2023-12-08.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-12-08T00:00:00.000Z",formattedDate:"December 8, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.75,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-12-08-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-12-08-sre"},nextItem:{title:"Ledger Team Update",permalink:"/2023-12-06-ledger"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],u={toc:p},d="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team made progress by releasing version\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/releases/tag/0.14.0"},"0.14.0"),",\nincorporating updates and improvements. They also updated dependencies\nin preparation for Conway support, addressing\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/1114"},"#","1114"),".\nAdditionally, the team completed substantial refactoring in hydra-node\nusing stateless observation, aiming to enhance system efficiency and\nperformance\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/1096"},"#","1096"),". Lastly,\nthey investigated regressions related to JSON serialized transactions\nand consider dropping this in favor of CBOR only submission."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released version\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.14.0"},"0.14.0")),(0,n.kt)("li",{parentName:"ul"},"Updated dependencies to prepare for Conway support\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1114"},"#","1114")),(0,n.kt)("li",{parentName:"ul"},"Completed substantial refactoring in hydra-node using stateless\nobservation\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1096"},"#","1096")),(0,n.kt)("li",{parentName:"ul"},"Investigated regressions about JSON serialized transactions")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Analysed our mainnet head and why some transactions were invalid"),(0,n.kt)("li",{parentName:"ul"},"Detect incompatible blocks and provide better UX"),(0,n.kt)("li",{parentName:"ul"},"Update to newer cardano-node and Conway support in hydra-node"),(0,n.kt)("li",{parentName:"ul"},"Draft the end-to-end workflow for incremental decommits")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/72e3f9d2.fe2ef88a.js b/assets/js/72e3f9d2.fe2ef88a.js new file mode 100644 index 0000000000..547297ed33 --- /dev/null +++ b/assets/js/72e3f9d2.fe2ef88a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15013],{85666:e=>{e.exports=JSON.parse('{"permalink":"/page/78","page":78,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/77","nextPage":"/page/79","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/732b35ea.526a6380.js b/assets/js/732b35ea.526a6380.js new file mode 100644 index 0000000000..1d8bd1595c --- /dev/null +++ b/assets/js/732b35ea.526a6380.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97230],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=u(r),s=n,d=m["".concat(p,".").concat(s)]||m[s]||h[s]||i;return r?a.createElement(d,o(o({ref:t},c),{},{components:r})):a.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2024-06-10-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-06-10-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-10-hydra.md",source:"@site/blog/2024-06-10-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-06-10T00:00:00.000Z",formattedDate:"June 10, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.735,hasTruncateMarker:!1,authors:[{name:"Daniel Firth",title:"Hydra Software Engineer",url:"https://github.com/locallycompact",imageURL:"https://github.com/locallycompact.png",key:"locallycompact"}],frontMatter:{title:"Hydra Team Update",slug:"2024-06-10-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-06-12-mithril"},nextItem:{title:"Ledger Team Update",permalink:"/2024-06-05-ledger"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this sprint?",id:"what-did-the-team-achieve-this-sprint",level:3},{value:"What are the goals of the next sprint?",id:"what-are-the-goals-of-the-next-sprint",level:3}],c={toc:u},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This sprint, the Hydra team updated the node to be compatible with cardano-node 8.11-pre. We continued work on increment decommits, investigating adversarial attacks on the smart contract and preparing it to be merged. We also discussed options for the incremental commit work, including designs for a ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-ledger"),"."),(0,n.kt)("p",null,"Next sprint we aim to merge incremental decommits and make further progress on the incremental commit design."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-sprint"},"What did the team achieve this sprint?"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update to cardano-node 8.11-pre ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1439"},"#1439")),(0,n.kt)("li",{parentName:"ul"},"Allow committing internal wallet utxos ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1442"},"#1442")),(0,n.kt)("li",{parentName:"ul"},"Rewrite introduction section and fknown issues section. ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1451"},"#1451")),(0,n.kt)("li",{parentName:"ul"},"Make specification editing in markdown possible ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1187"},"#1187")),(0,n.kt)("li",{parentName:"ul"},"Fix ignored hydra-plutus tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1458"},"#1458")),(0,n.kt)("li",{parentName:"ul"},"Re-open internal head with blueprint commits.")),(0,n.kt)("h3",{id:"what-are-the-goals-of-the-next-sprint"},"What are the goals of the next sprint?"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Incremental decommit ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1057"},"#1057")),(0,n.kt)("li",{parentName:"ul"},"Make progress on the design for incremental commit ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/199"},"#199")),(0,n.kt)("li",{parentName:"ul"},"Test combinations of decrement/close/fanout ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1390"},"#1390"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/733f2214.ec8a8fbf.js b/assets/js/733f2214.ec8a8fbf.js new file mode 100644 index 0000000000..25dcdfeb6f --- /dev/null +++ b/assets/js/733f2214.ec8a8fbf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[947],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=p(a),c=n,m=d["".concat(s,".").concat(c)]||d[c]||h[c]||o;return a?r.createElement(m,i(i({ref:t},u),{},{components:a})):r.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:n,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2022-10-14-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-10-14-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-14-hydra.md",source:"@site/blog/2022-10-14-hydra.md",title:"Hydra Team Update",description:"High level summary",date:"2022-10-14T00:00:00.000Z",formattedDate:"October 14, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.26,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-10-14-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-10-18-consensus"},nextItem:{title:"Ledger Team Update",permalink:"/2022-10-14-ledger"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:p},d="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node"),' over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks "past the opening of a Head". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.'),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Last week we thought we were done with ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/adr/18/"},"ADR18"),", but were not ..."),(0,n.kt)("li",{parentName:"ul"},"... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence."),(0,n.kt)("li",{parentName:"ul"},"Implemented a first version for persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/187"},"#187")," in response."),(0,n.kt)("li",{parentName:"ul"},"Enhanced CI to publish test results ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/benchmarks/tests/hydra-node/hspec-results"},"on our website")),(0,n.kt)("li",{parentName:"ul"},"Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!"),(0,n.kt)("li",{parentName:"ul"},"Pulled static executable feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/200"},"#200")," into scope, implemented it and merged it!"),(0,n.kt)("li",{parentName:"ul"},"Received and read through a project proposal by a vendor (building a Hydra platform).")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Get backup/recovery ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/187"},"#187")," done with proper event sourcing (ADR18)"),(0,n.kt)("li",{parentName:"ul"},"Cut the next release, version ",(0,n.kt)("inlineCode",{parentName:"li"},"0.8.0")),(0,n.kt)("li",{parentName:"ul"},"Address open comments on specification document & complete the list of identified gaps between specification and implementation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/452"},"#452")),(0,n.kt)("li",{parentName:"ul"},"Have the CI build macos artifacts")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/73a96f39.b98653b0.js b/assets/js/73a96f39.b98653b0.js new file mode 100644 index 0000000000..c5e35eda39 --- /dev/null +++ b/assets/js/73a96f39.b98653b0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95845],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=p(r),c=n,m=d["".concat(s,".").concat(c)]||d[c]||h[c]||i;return r?a.createElement(m,o(o({ref:t},u),{},{components:r})):a.createElement(m,o({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2023-04-21-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-04-21-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-21-hydra.md",source:"@site/blog/2023-04-21-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-04-21T00:00:00.000Z",formattedDate:"April 21, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.26,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-04-21-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-04-27-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2023-04-21-ledger"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:p},d="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team worked on several fronts, including fixing state\nmachine continuity on-chain, discussing voting project solutions, exploring\nadding Hydra support to kupo, and improving API navigation with a sidebar. The\nteam also updated dependencies and fixed issues in their test suites. Moving\nforward, the team plans to hold the next monthly review meeting, address a user\nissue, prepare for the 0.10.0 release, and work on a dirt road fix for the\nrollbacks issue with proper test coverage."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fixed scripts to enforce state machine continuity on-chain ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/777"},"#777"),"."),(0,n.kt)("li",{parentName:"ul"},"Took part in a twitter space on ",(0,n.kt)("a",{parentName:"li",href:"https://twitter.com/thepizzaknight_/status/1647833904282320896"},"\u201c","Scaling Cardano","\u201d"),"."),(0,n.kt)("li",{parentName:"ul"},"Joined a CBIA meeting to discuss Cardano network protocols & how to specify them."),(0,n.kt)("li",{parentName:"ul"},"Discussed potential solutions of ensuring vote uniqueness in the voting project."),(0,n.kt)("li",{parentName:"ul"},"Updated dependencies to match ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-node")," master to prepare for upcoming releases and hard-forks"),(0,n.kt)("li",{parentName:"ul"},"Explored adding Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/CardanoSolutions/kupo/pull/117"},"support to kupo"),", a lightweight Cardano chain indexer - some more work required."),(0,n.kt)("li",{parentName:"ul"},"Improved navigation of the API Reference with a sidebar, see ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/unstable/api-reference/"},"unstable API version"),"."),(0,n.kt)("li",{parentName:"ul"},"Fixed two things in our test suites (random port conflicts and an arithmetic underflow in smoke test)")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting (join via ",(0,n.kt)("a",{parentName:"li",href:"https://discord.gg/inputoutput?event=1097863746216538194"},"Discord")," or ",(0,n.kt)("a",{parentName:"li",href:"https://www.addevent.com/event/ck16794110"},"AddEvent"),") & report"),(0,n.kt)("li",{parentName:"ul"},"Dirt road fix for rollbacks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")," properly covered by a test."),(0,n.kt)("li",{parentName:"ul"},"Groom and ideally address user issue ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/823"},"#823"),"."),(0,n.kt)("li",{parentName:"ul"},"Put the spec into the repo ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/693"},"#693")," and prepare release 0.10.0.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/73bbd4d7.7df3a626.js b/assets/js/73bbd4d7.7df3a626.js new file mode 100644 index 0000000000..59fb011cac --- /dev/null +++ b/assets/js/73bbd4d7.7df3a626.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25590],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),m=p(n),h=r,d=m["".concat(l,".").concat(h)]||m[h]||c[h]||o;return n?a.createElement(d,i(i({ref:t},u),{},{components:n})):a.createElement(d,i({ref:t},u))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[m]="string"==typeof e?e:r,i[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2022-09-20-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i="Executive summary",s={permalink:"/2022-09-20-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-20-consensus.md",source:"@site/blog/2022-09-20-consensus.md",title:"Consensus Team Update",description:"- We proposed a fix for the performance degradation observed when running",date:"2022-09-20T00:00:00.000Z",formattedDate:"September 20, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:3.895,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-09-20-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2022-09-27-network"},nextItem:{title:"DB Sync Team Update",permalink:"/2022-09-19-db-sync"}},l={authorsImageUrls:[void 0]},p=[{value:"UTxO HD",id:"utxo-hd",level:2},{value:"Genesis",id:"genesis",level:2},{value:"Technical debt",id:"technical-debt",level:2}],u={toc:p},m="wrapper";function c(e){let{components:t,...o}=e;return(0,r.kt)(m,(0,a.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We proposed a fix for the performance degradation observed when running\ndistributed multi-node benchmarks in the UTxO HD feature branch. While this\nfixed the problems observed when running local benchmarks, it broke the\n",(0,r.kt)("inlineCode",{parentName:"li"},"ThreadNet")," tests due to concurrency issues. Therefore, we think it is wise to\nstart redesigning the UTxO HD mempool integration."),(0,r.kt)("li",{parentName:"ul"},"We did several rounds of code review on the alternative implementation of\ndiff-sequences required by the UTxO HD feature based on the idea of\nanti-diffs. This alternative implementation is close to being merged, and the\nnext step is to integrate this to the UTxO HD branch, so that we can run\nad-hoc replaying and syncing from scratch benchmarks and compare these with\nthe baseline. The micro-benchmarks we elaborated for the alternative\nimplementation show speedups of up to 4x, so we are optimistic about the\nperformance of replaying and syncing from scratch benchmarks, however it is\nimportant to notice that ",(0,r.kt)("em",{parentName:"li"},"due to the nature of UTxO HD")," we will still be\nslower than the baseline."),(0,r.kt)("li",{parentName:"ul"},"The final draft of the Genesis implementation specification is ready for\nreview."),(0,r.kt)("li",{parentName:"ul"},"We implemented a prototype for the happy path of Genesis' ChainSync Jumping\n(CSJ). The prototype is slower than the baseline, however it is not the latest\nversion of the prototype and the jump interval is very small."),(0,r.kt)("li",{parentName:"ul"},"Work on integrating Conway has ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3971#issuecomment-1252524031"},"stopped")," since\npriorities have changed."),(0,r.kt)("li",{parentName:"ul"},"We started work on benchmarking epoch-boundaries and epoch overhead\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4014"},"pr-4014"),". To this end, we made use of a modified version of our\n",(0,r.kt)("inlineCode",{parentName:"li"},"db-analyser")," tool. We ran the new benchmarking setup using the Cardano\nmainnet chain, and we can see that block tick and application take\nsubstantially longer at epoch boundaries, although there are a couple of slots\nduring an epoch in which these computations take more than normal. We notified\nthe ledger team about these findings. We will use this modified version of\n",(0,r.kt)("inlineCode",{parentName:"li"},"db-analyser")," to investigate the epoch overhead.")),(0,r.kt)("h1",{id:"workstreams"},"Workstreams"),(0,r.kt)("h2",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Spent quite some time investigating the root cause of the degradation in\nperformance observed in the benchmarks. We run the ",(0,r.kt)("inlineCode",{parentName:"p"},"make forge-stress"),"\nbenchmarks locally in order to debug this behavior."),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Transaction batching doesn't make a notable difference in the outcome\n(considering we are using the in-memory backend).")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The mempool batching implementation required asynchronous transaction\nvalidation which is a violation of the ",(0,r.kt)("inlineCode",{parentName:"p"},"LocalTxSubmission")," protocol\ncontract and therefore if we continued on that route, the impact would\nhave been quite big.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The STM logic we implemented by using a ",(0,r.kt)("inlineCode",{parentName:"p"},"TMVar")," for the mempool internal\nstate was buggy and under certain circumstances it seemed to lock.\nReverting the mempool internal state to be stored in a ",(0,r.kt)("inlineCode",{parentName:"p"},"TVar")," seems to\nsolve this problem.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The results we get after this change look almost identical to the ones\nfrom the baseline.")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3997"},"The anti-diff prototype (PR\n#3997)")," has\nbeen reviewed and is close to being merged."),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"A follow-up issue (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4010"},"issue\n#4010"),")\nto integrate the anti-diff prototype in the various ",(0,r.kt)("inlineCode",{parentName:"li"},"consensus"),' packages\nwas created. A first version of the integration exists, and all tests\npass. A next step is to get some indication of the "real" performance gain\nby profiling ',(0,r.kt)("inlineCode",{parentName:"li"},"db-analyser")," (or ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-node"),").")))),(0,r.kt)("h2",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Final draft of the Genesis implementation specification, now up for review.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Local benchmark setup for parameter tuning via the happy path ChainSync\nJumping (CSJ) prototype (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3987"},"Issue 3987"),")."),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Context: Our Genesis design requires us to check in with a large (~20)\nnumber of servers periodically while syncing. These servers are offered\njump requests via the ChainSync protocol (hence the name), which they can\naccept or decline. If a peer declines, the Genesis rule allows us to\ndetermine whether a node actually has a better chain.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'The "happy path" is when no peer declines a jump. We want this to have\nclose to no overhead compared to status quo, i.e. syncing without Genesis.')),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a prototype for this happy path, and are now starting to\ntest in various configurations (number of peers, latency, bandwidth) to\ntune the performance of ChainSync jumping, i.e. how complicated our logic\nof choosing when to jump needs to be."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"Example:"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Simulated connection: 50 MBit/s, 50ms latency")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Jump interval: 3000 slots (on the low end, could be increased to up to\n",(0,r.kt)("inlineCode",{parentName:"p"},"3k/f"),")")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Red: baseline (1.35.3), one peer in topology file")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Blue: Preliminary version of our prototype, with 10 peers."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{src:n(88213).Z,width:"654",height:"459"})),(0,r.kt)("p",{parentName:"li"},"It is slower by about ~30%, but it is not the latest version of the\nprototype, and the jump interval is very small, making CSJ more of a\nbottleneck."))))),(0,r.kt)("h2",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Fix flakiness in ChainDB QSM tests (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3990"},"PR 3990"),").")))}c.isMDXComponent=!0},88213:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/happy-path-csj-prototype-prelim-5bbe2e2a20a2740e6238a7c73e618168.svg"}}]); \ No newline at end of file diff --git a/assets/js/73f0dde0.9d923228.js b/assets/js/73f0dde0.9d923228.js new file mode 100644 index 0000000000..6d012c0c87 --- /dev/null +++ b/assets/js/73f0dde0.9d923228.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[30101],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=u(a),s=r,h=c["".concat(p,".").concat(s)]||c[s]||m[s]||i;return a?n.createElement(h,o(o({ref:t},d),{},{components:a})):n.createElement(h,o({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-05-05-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",l={permalink:"/2023-05-05-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-05-node-cli-api.md",source:"@site/blog/2023-05-05-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-05-05T00:00:00.000Z",formattedDate:"May 5, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.81,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-05-05-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-05-05-ledger"},nextItem:{title:"Mithril Team Update",permalink:"/2023-05-04-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],d={toc:u},c="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-05-05---2023-05-23"},"2023-05-05 - 2023-05-23"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Golden tests for cardano-cli command help output were added."),(0,r.kt)("li",{parentName:"ul"},"Documentation was updated with new libsodium installation instructions."),(0,r.kt)("li",{parentName:"ul"},"There were several updates for the cardano-cli:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Deletion of the deprecated shelley command group."),(0,r.kt)("li",{parentName:"ul"},"Addition of golden tests for CLI help."),(0,r.kt)("li",{parentName:"ul"},"An improvement to avoid bare IO in tests, allowing better error reporting in failed tests."),(0,r.kt)("li",{parentName:"ul"},"Generation of UTCTime test values without leap seconds (avoids erroneous test failures)"),(0,r.kt)("li",{parentName:"ul"},"Support for signing transactions with GenesisDelegateSigningKey_ed25519_bip32."))),(0,r.kt)("li",{parentName:"ul"},"The cardano-api underwent multiple refinements:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Implementing deposit handling when balancing transactions (necessary for Conway)"),(0,r.kt)("li",{parentName:"ul"},"Cleaning up socket file path code."))),(0,r.kt)("li",{parentName:"ul"},"Several changes were made to the cardano-testnet:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Adding golden tests for cardano-testnet help."),(0,r.kt)("li",{parentName:"ul"},"Removing all hardcoded yaml files in cardano-testnet"),(0,r.kt)("li",{parentName:"ul"},"Improving cardano-testnet help output."),(0,r.kt)("li",{parentName:"ul"},"Parameterizing default yaml configuration value, allowing for easier hardforking to the era of choice.")))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5181"},"Update libsodium installation instructions")," ")),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5264"},"Delete deprecated ",(0,r.kt)("inlineCode",{parentName:"a"},"shelley")," command group")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5206"},"Add golden tests for CLI help")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5201"},"Avoid bare IO in tests")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5200"},"Split ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli")," test files into separate directories")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5198"},"Make UTCTime test generator generate values without leap seconds")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5189"},"Add support with signing transactions with ",(0,r.kt)("inlineCode",{parentName:"a"},"GenesisDelegateSigningKey_ed25519_bip32"))," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5184"},"Rename --signed-tx-file argument to --tx-file argument in verify-poll command")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5120"},"Simplify socket path code")," ")),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5221"},"refactor: make renderScriptWitnessIndex output more explicit")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5218"},"Implement deposit handling when balancing transactions")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5217"},"Replace remaining ",(0,r.kt)("inlineCode",{parentName:"a"},"FilePath")," use in ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api"))," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5215"},"Cleanup socket file path code")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5207"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"readEnvSocketPath")," function")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5194"},"IO functions for reading. Remove PoolMetadataFile type")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5191"},"Expose config reader")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5188"},"Golden tests for ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api")," errors")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5175"},"Fix ",(0,r.kt)("inlineCode",{parentName:"a"},"toEraInMode")," for conway")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5168"},"Use machine readable output for ToJSON ScriptWitnessIndex")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5096"},"Expose LocalTxSubmissionClient data constructor")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5047"},"Use cardano-api from separate repository")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4684"},"[cardano-api] Export fromConsensusPointHF")," ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5022"},"Provide orphan ",(0,r.kt)("inlineCode",{parentName:"a"},"ToJSON")," instances for ",(0,r.kt)("inlineCode",{parentName:"a"},"HardForkNodeToClientVersion")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"HardForkNodeToNodeVersion"))," ")),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5254"},"Add golden test for ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-testnet")," help")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5242"},"Remove all hardcoded yaml files from cardano-testnet")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5234"},"Fix cardano-testnet help")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5211"},"Parameterize default yaml configuration value in cardano-testnet")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5165"},"Freeze callstack in integration and integrationRetryWorkspace functions")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5128"},"Create defaultYamlValue for cardano-testnet"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/741efb60.043d5ab0.js b/assets/js/741efb60.043d5ab0.js new file mode 100644 index 0000000000..c721f4f7de --- /dev/null +++ b/assets/js/741efb60.043d5ab0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[38705],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-04-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-04-10-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-10-mithril.md",source:"@site/blog/2024-04-10-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-04-10T00:00:00.000Z",formattedDate:"April 10, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.2,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-04-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-04-10-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2024-04-05-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet"),", completed the incremental storage of transactions, activated the signature of the transactions on the ",(0,i.kt)("inlineCode",{parentName:"p"},"testing-preview")," network, and prepared a new network to test the scaling on ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet")," data. The team also made progress on a prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they worked on refactoring the database providers of the aggregator."),(0,i.kt)("p",null,"Finally, the team delivered a community requested feature that displays the minimum versions of the Cardano node that the signer supports in a machine-readable format. They also provided a manual setup guide for the relay in the SPO user guide."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement incremental storage of Cardano transactions in signer/aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1591"},"#1591")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril relay broadcasts signer registrations with P2P PubSub")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1587"},"#1587")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Refactor ",(0,i.kt)("inlineCode",{parentName:"strong"},"database")," module in aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1583"},"#1583")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," supports retrieving the Chain Point of the tip of the chain")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1589"},"#1589")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Create file with Cardano minimum versions in repository")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1615"},"#1615")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Deploy ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-mainnet")," network")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1617"},"#1617")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Add section for manual setup of squid in SPO guide")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1610"},"#1610")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Signer metrics server displays confusing log message")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1620"},"#1620"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7439ef37.574404a1.js b/assets/js/7439ef37.574404a1.js new file mode 100644 index 0000000000..f8e19a9d37 --- /dev/null +++ b/assets/js/7439ef37.574404a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20433],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>c});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var o=r.createContext({}),u=function(e){var t=r.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(o.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,o=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),d=u(a),h=l,c=d["".concat(o,".").concat(h)]||d[h]||m[h]||n;return a?r.createElement(c,i(i({ref:t},s),{},{components:a})):r.createElement(c,i({ref:t},s))}));function c(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,i=new Array(n);i[0]=h;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[d]="string"==typeof e?e:l,i[1]=p;for(var u=2;u{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>m,frontMatter:()=>n,metadata:()=>p,toc:()=>u});var r=a(87462),l=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2023-11-08-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2023-11-08-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-08-ledger.md",source:"@site/blog/2023-11-08-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-11-08T00:00:00.000Z",formattedDate:"November 8, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.685,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-11-08-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-11-09-db-sync"},nextItem:{title:"Mithril Team Update",permalink:"/2023-11-08-mithril"}},o={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3}],s={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,l.kt)(d,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"This update contains mostly improvements to quality of Conway era implementation and\ntooling that we use for testing Ledger. Major Conway bugs that were discovered and\nsquashed are:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"PParamsUpdate proposals will now correctly use DRep thresholds for ratification"),(0,l.kt)("li",{parentName:"ul"},"Treasury withdrawals are now properly enacted."),(0,l.kt)("li",{parentName:"ul"},"Corrected snapshotting and DRep Stake Distribution Pulser initialization"),(0,l.kt)("li",{parentName:"ul"},"Delegation to non-existent Stake pool is no longer possible")),(0,l.kt)("p",null,"Other important quality of life improvements are addition of reusable interfaces for an\nordered set ",(0,l.kt)("inlineCode",{parentName:"p"},"OSet")," and ordered map ",(0,l.kt)("inlineCode",{parentName:"p"},"OMap"),". Which allowed us to disable duplicate\ncertificates and proposals in a transaction. As a precursor to ",(0,l.kt)("inlineCode",{parentName:"p"},"PlutusV3")," integration, a\nserious reorganization of Plutus related functionality was performed."),(0,l.kt)("p",null,"Conway related additions that are noteworthy: Conway Ledger events, disallowing voting on\nexpired proposals, addition of Anchor to Constitutional Committee resignation proposals."),(0,l.kt)("p",null,'Significant improvements have been made to a specialized "Imp" test library that allows us\nwriting concise stateful unit tests for verifying the Ledger logic. Serious progress has\nbeen made on the conformance testing, where we can now interface with Haskell generated\ncode from the Agda specification. Serialization testing has been extended to increase\nbinary conformance coverage.'),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3808"},"pull-3808")," - Enhance ",(0,l.kt)("inlineCode",{parentName:"li"},"CommitteeMembersState")," query to return quorum and NoConfidence"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3801"},"pull-3801")," - Fix epoch rule and tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3803"},"pull-3803")," - Fix delegation validation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3759"},"pull-3759")," - Reshuffle things to the DRepPulser incorporates some snap shot things"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3779"},"pull-3779")," - Prevent duplicate certs and proposals"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3794"},"pull-3794")," - Added anchor to resign certs"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3797"},"pull-3797")," - Cleanup JSON instances for Conway governance"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3848"},"pull-3848")," - Plutus modules restructure"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3840"},"pull-3840")," - Fix anomalies in Deposits in the Conway Era"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3856"},"pull-3856")," - Add governance related ledger events"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3825"},"pull-3825")," - Prevent voting on expired GovActions"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3831"},"pull-3831")," - Treasury withdrawal fix"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3791"},"pull-3791")," - Use a Data.OMap.Strict to replace ProposalsSnapshot"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3836"},"pull-3836")," - PParamsUpdate enactment fix"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3846"},"pull-3846")," - Revert argument order swap.")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3782"},"pull-3782")," - Move ",(0,l.kt)("inlineCode",{parentName:"li"},"ImpTest")," to Shelley testlib"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3842"},"pull-3842")," - Imp improvements"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3844"},"pull-3844")," - Add mappings to Agda types"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3853"},"pull-3853")," - Fix strange assertion failure, which hides real Block too big problem."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3809"},"pull-3809")," - CDDL roundtrip testing"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3832"},"pull-3832")," - Treasury withdrawals tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3839"},"pull-3839")," - Added ",(0,l.kt)("inlineCode",{parentName:"li"},"cardano-ledger-conformance")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3841"},"pull-3841")," - Add ",(0,l.kt)("inlineCode",{parentName:"li"},"sha256")," to ",(0,l.kt)("inlineCode",{parentName:"li"},"cardano-ledger-executable-spec"))),(0,l.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3843"},"pull-3843")," - Add ...WithLogs versions of evalScripts and friends"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3795"},"pull-3795")," - Bump plutus to 1.15"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3798"},"pull-3798")," - Bump urllib3 from 1.26.17 to 1.26.18 in /doc"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3799"},"pull-3799")," - Changes needed for 8.6 release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3807"},"pull-3807")," - Add invalidBeforeL and invalidHereAfterL functions"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3819"},"pull-3819")," - Fixups needed for a release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3829"},"pull-3829")," - Post release CHANGELOG version bumps"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3830"},"pull-3830")," - Bump aeson to 2.2"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3833"},"pull-3833")," - Backport release cardano-ledger-conway-1.10.1.0"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3828"},"pull-3828")," - Add changelog for node release 8.6")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7442b11e.f6c9c86e.js b/assets/js/7442b11e.f6c9c86e.js new file mode 100644 index 0000000000..931f832008 --- /dev/null +++ b/assets/js/7442b11e.f6c9c86e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25665],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var a=r(67294);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=a.createContext({}),s=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=l,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||n;return r?a.createElement(h,i(i({ref:t},u),{},{components:r})):a.createElement(h,i({ref:t},u))}));function h(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=r.length,i=new Array(n);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>n,metadata:()=>o,toc:()=>s});var a=r(87462),l=(r(67294),r(3905));const n={title:"Ledger Team Update",slug:"2024-02-28-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-02-28-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-28-ledger.md",source:"@site/blog/2024-02-28-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-02-28T00:00:00.000Z",formattedDate:"February 28, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.495,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-02-28-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-02-29-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2024-02-28-mithril"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements",id:"improvements",level:3},{value:"Specification",id:"specification",level:3},{value:"Releasing",id:"releasing",level:3}],u={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,l.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"Quite a useful and desired feature described in\n",(0,l.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/679"},"CIP-0110")," of allowing reference\nscripts for PlutusV1 has been implemented for Conway."),(0,l.kt)("p",null,"For the most part we are now spending time on writing tests and enhancing out tooling that\nwe use for testing. This is paying out dividends since we are finding and fixing important\nConway related bugs. Notable bugs that were squashed this time around are related to using\nincorrect stake distribution for both DReps and Stake Pools."),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4059"},"pull-4059")," - Enable Plutus v1 reference scripts in Conway"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4088"},"pull-4088")," - Committee query improvements"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4115"},"pull-4115")," - Switch to using the correct stake pool distribution for voting"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4116"},"pull-4116")," - Fix Drep stake distribution")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4100"},"pull-4100")," - PPU wellformedness tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4097"},"pull-4097")," - Test that unwithdrawn rewards contribute to voting power"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4102"},"pull-4102")," - fix ",(0,l.kt)("inlineCode",{parentName:"li"},"prop_DELEG")," in STS tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4106"},"pull-4106")," - Imp script fixes"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4118"},"pull-4118")," - Add test for maps with small domains"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4119"},"pull-4119")," - NewConstraints phase1. Add BoolFn And and Or and tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4120"},"pull-4120")," - Newconstaints phase2 rename IsUniverse (BaseUniverse), Fn (BaseFn)"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4130"},"pull-4130")," - Added tests for checking proposal network IDs"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4114"},"pull-4114")," - Imp Bootstrap address support")),(0,l.kt)("h3",{id:"improvements"},"Improvements"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4071"},"pull-4071")," - Introduction of InjectRuleFailure"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4082"},"pull-4082")," - Deprecate ",(0,l.kt)("inlineCode",{parentName:"li"},"PPUPPredFailure")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4087"},"pull-4087")," - Move ",(0,l.kt)("inlineCode",{parentName:"li"},"EpochInterval")," to ",(0,l.kt)("inlineCode",{parentName:"li"},"cardano-base")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4122"},"pull-4122")," - Use ",(0,l.kt)("inlineCode",{parentName:"li"},"MemoBytes")," in ",(0,l.kt)("inlineCode",{parentName:"li"},"ShelleyTxAuxData"))),(0,l.kt)("h3",{id:"specification"},"Specification"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4093"},"pull-4093")," - Fix small error in the prose")),(0,l.kt)("h3",{id:"releasing"},"Releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4105"},"pull-4105")," - Update ",(0,l.kt)("inlineCode",{parentName:"li"},"RELEASING")," with revisioning instructions"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4117"},"pull-4117")," - Use plutus-ledger-api 1.22.1")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/74d66224.563d93ab.js b/assets/js/74d66224.563d93ab.js new file mode 100644 index 0000000000..5d936fb1bd --- /dev/null +++ b/assets/js/74d66224.563d93ab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40767],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),c=p(n),h=a,m=c["".concat(l,".").concat(h)]||c[h]||u[h]||r;return n?o.createElement(m,i(i({ref:t},d),{},{components:n})):o.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:a,i[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var o=n(87462),a=(n(67294),n(3905));const r={title:"Consensus Team Update",slug:"2022-12-14-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2022-12-14-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-14-consensus.md",source:"@site/blog/2022-12-14-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2022-12-14T00:00:00.000Z",formattedDate:"December 14, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.995,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-12-14-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2022-12-15-mithril"},nextItem:{title:"DB-sync Team Update",permalink:"/2022-12-14-db-sync"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD prototype",id:"utxo-hd-prototype",level:3},{value:"Backing store property tests",id:"backing-store-property-tests",level:4},{value:"LSM tree implementation",id:"lsm-tree-implementation",level:3},{value:"Genesis",id:"genesis",level:3},{value:"New VRF and KES crypto integration",id:"new-vrf-and-kes-crypto-integration",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3}],d={toc:p},c="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,o.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the past two weeks, the Consensus team finalized the QSM tests for the\nbacking store and Mempool on the UTxO-HD branch with important discoveries\nregarding parallel QSM testing. We also worked with the Ledger team to envisage\nthe modifications that are required in Ledger and Consensus to accommodate the\nchanges in the crypto VRF and KES. The ",(0,a.kt)("inlineCode",{parentName:"p"},"db-analyser")," now supports bechmarking\nthe ledger operations, which will allow us to identify, debug, and profile\npotential performance problems. We drafted a document that defines how to manage\nthe versions of Consensus-related packages. The top level documentation of\n",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," now features a description of the consensus components and\nprovides a hyperlinked map to the modules documentation."),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD prototype"),(0,a.kt)("p",null,"Whereas we had passing sequential state-machine tests for the mempool, the\nparallel case proved to be more challenging than we thought. The operation of\nadding a list of transactions to the mempool is not atomic and, as a result,\nwhen adding a list of transactions, transactions from other processes can be\nadded in between. The mempool implementation handles this correctly, however\nthis required us to ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4076"},"redesign")," the parallel model we had to take\nthe lack of atomicity into account."),(0,a.kt)("h4",{id:"backing-store-property-tests"},"Backing store property tests"),(0,a.kt)("p",null,"We finished refactoring the backing store property tests. The second review\nround is ongoing."),(0,a.kt)("h3",{id:"lsm-tree-implementation"},"LSM tree implementation"),(0,a.kt)("p",null,"We are working on benchmarking (in terms of time and number of IO operations)\nfetching/looking up data from disk."),(0,a.kt)("h3",{id:"genesis"},"Genesis"),(0,a.kt)("p",null,"We worked on the design of a mechanism to prevent a DoS attack on our Genesis\ndesign related to rollbacks. This was arguably the biggest outstanding question."),(0,a.kt)("p",null,"During the discussions around Genesis, we noticed a design boundary that nicely\ndelineates a fundamental component. We almost have a full Haskell prototype of\nit. It will be very nicely self-contained, perhaps even usable in the ultimate\nimplementation!"),(0,a.kt)("h3",{id:"new-vrf-and-kes-crypto-integration"},"New VRF and KES crypto integration"),(0,a.kt)("p",null,"We collaborated with the Ledger team on preparing the ledger state and crypto\ntypes to avoid huge allocation on the epoch boundary when changing aspects of\nthe crypto that will only manifest in headers, not in the ledger states."),(0,a.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,a.kt)("p",null,"We merged the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4014"},"pull-request")," that adds a support to ",(0,a.kt)("inlineCode",{parentName:"p"},"db-analyser")," for\nbenchmarking ledger operations. This will allow us to identify, debug, and\nprofile potential performance problems. The benchmark focus on the main 5 ledger\noperations that are involved in chain syncing, block forging, and block\nvalidation, namely:"),(0,a.kt)("ol",{start:0},(0,a.kt)("li",{parentName:"ol"},"Forecast."),(0,a.kt)("li",{parentName:"ol"},"Header tick."),(0,a.kt)("li",{parentName:"ol"},"Header application."),(0,a.kt)("li",{parentName:"ol"},"Block tick."),(0,a.kt)("li",{parentName:"ol"},"Block application.")),(0,a.kt)("p",null,"The following figure shows a plot of the benchmarking results for the first 65\nmillion blocks (approximately) of the Cardano chain. The thin yellow lines under\nthe x-axis show the epoch boundaries, whereas the thick yellow lines correspond\nto the era transitions."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(2666).Z,width:"1600",height:"800"})),(0,a.kt)("p",null,"As we can see in this figure, era and epoch boundaries require more computation\ntime. The ledger team are aware of this problem, and we are working to improve\nthis situation."),(0,a.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,a.kt)("p",null,"We ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4207"},"drafted a document")," motivating and defining how Consensus (and\npossibly other core teams) will/should manage our package versions. This\npull-request garnered many great discussions from our team members and other\nteams too: Sebastian Nagel, Arnaud Bailly, Michael Peyton-Jones, Ziyang Liu, et\nal. We want to thank you all for your input, and we found this discussion very\nenlightening!"),(0,a.kt)("p",null,"We merged the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4197"},"pull request")," that adds an overview of consensus to\nthe ",(0,a.kt)("a",{parentName:"p",href:"https://ouroboros-network.cardano.intersectmbo.org/"},"top level\ndocumentation")," of\nouroboros-network. This overview describes the consensus components and adds a\nhyperlinked map to the modules documentation."))}u.isMDXComponent=!0},2666:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/2022-12-14-ledger-ops-benchmark-c46be3db45ff5480ed104e0d520711a6.png"}}]); \ No newline at end of file diff --git a/assets/js/7518bbd3.d1d879e6.js b/assets/js/7518bbd3.d1d879e6.js new file mode 100644 index 0000000000..5446fe9544 --- /dev/null +++ b/assets/js/7518bbd3.d1d879e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70606],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),s=u(a),m=n,c=s["".concat(p,".").concat(m)]||s[m]||d[m]||i;return a?r.createElement(c,o(o({ref:t},h),{},{components:a})):r.createElement(c,o({ref:t},h))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:n,o[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-12-15-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-12-15-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-15-hydra.md",source:"@site/blog/2023-12-15-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-12-15T00:00:00.000Z",formattedDate:"December 15, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.96,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-12-15-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-12-20-mithril"},nextItem:{title:"Mithril Team Update",permalink:"/2023-12-13-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:u},s="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,'This week, the Hydra team identified and resolved issues with a malfunctioning\nhead on mainnet, implementing preventive measures. They edited and merged a new\nArchitectural Decision Record (ADR) proposed by SundaeLabs, upgraded\ncardano-node to version 8.7.2, and improved the TUI user experience.\nPreparations for "Conway support" were initiated, and updates were made to logs\nand API schemas. Additionally, initial steps were taken towards incremental\ndecommits.'),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Troubleshoot and recover a broken head on mainnet. Opened issue\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1202"},"#","1202")," and PR\navoiding this in-flight\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1211"},"#","1211")),(0,n.kt)("li",{parentName:"ul"},"Designed and proposed a new ADR to generalize ",(0,n.kt)("inlineCode",{parentName:"li"},"EventSource")," and\n",(0,n.kt)("inlineCode",{parentName:"li"},"EventSinks"),(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1157"},"#","1157"),",\ncontributed by SundaeLabs."),(0,n.kt)("li",{parentName:"ul"},"Upgrade cardano-node to 8.7.2\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1199"},"#","1199")," and\nre-enables e2e nix-shell support on Darwin\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1203"},"#","1203")),(0,n.kt)("li",{parentName:"ul"},"UX enhancement on TUI\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1201"},"#","1201")),(0,n.kt)("li",{parentName:"ul"},'Preparations for "Conway support"\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1177"},"#","1177"),"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1206"},"#","1206")," &\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1207"},"#","1207"),"]"),(0,n.kt)("li",{parentName:"ul"},"Update logs and api schemas\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1212"},"#","1212")),(0,n.kt)("li",{parentName:"ul"},"First steps on incremental decommits\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1057"},"#","1057"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Drafted the e2e workflow\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1205"},"#","1205")),(0,n.kt)("li",{parentName:"ul"},"Added decommit API endpoints\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1209"},"#","1209"))))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Detect incompatible blocks and provide better UX"),(0,n.kt)("li",{parentName:"ul"},"Conway support in hydra-node"),(0,n.kt)("li",{parentName:"ul"},"Off-chain logic for incremental decommits")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/752b6ead.1fab45cd.js b/assets/js/752b6ead.1fab45cd.js new file mode 100644 index 0000000000..fecb823a58 --- /dev/null +++ b/assets/js/752b6ead.1fab45cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50165],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),m=s(n),p=a,h=m["".concat(c,".").concat(p)]||m[p]||u[p]||i;return n?r.createElement(h,o(o({ref:t},d),{},{components:n})):r.createElement(h,o({ref:t},d))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-05-31-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-31-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-31-performance-and-tracing.md",source:"@site/blog/2023-05-31-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-05-31T00:00:00.000Z",formattedDate:"May 31, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.055,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-05-31-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-05-31-consensus"},nextItem:{title:"Goedel Team Update",permalink:"/2023-05-26-goedel"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],d={toc:s},m="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've performed and analysed first benchmarks with GHC9.2 builds. Additionally we have developed an early indicator for how build config changes might reflect on metrics from our model cluster."),(0,a.kt)("li",{parentName:"ul"},"New tracing: Collaboration with Galois led to the new tracing system to be equipped with a re-forwarding mechanism."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: Porting the 52 node model cluster to nomad cloud is ongoing, with the focus on deployment and health checks.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"The first set of runs with GHC9.2 as a build platform are in. We've discovered a significant difference in resource profile usage compared to GHC8.10. Further investigation uncovered the need for benchmarking another parameter change in the build\nconfiguration: As it stands, the ",(0,a.kt)("inlineCode",{parentName:"p"},"ghc-bignum")," package is using the Haskell ",(0,a.kt)("inlineCode",{parentName:"p"},"native-backend")," as a default. We strive\nto benchmark a build with the ",(0,a.kt)("inlineCode",{parentName:"p"},"gmp-backend")," next. "),(0,a.kt)("p",null,"A variant of our ",(0,a.kt)("inlineCode",{parentName:"p"},"forge-stress")," local benchmark has been set up to serve as an early indicator for the resource usage profile\nwe'd expect to observe on the model cluster. This provides us with a much tighter feedback loop, as local run duration is way\nshorter. This indicator is specific to changes in the configuration of build and the runtime systems, and will be of great\nsupport when evaluating different compiler versions or RTS flags incrementally."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The hub of the new tracing system ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," is designed with a fixed output behaviour, which is limited to various\nlogging options. Thanks to the contribution from Galois, that design is now extended to be able to re-forward all, or a pre-filtered portion, of traces from the node in a configurable manner. This will enable downstream applications to\ndirectly receive the set of trace values relevant to their logic, without any additional cost for the node itself at all."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"We're currently working out the details of efficiently deploying and monitoring a fleet of 50+ nodes, along with\njob definitions for tracing and transaction generation. Scaling up to those many instances, and monitoring an ongoing\nbenchmarking run required us to fine-tune communications with the nomad server. "),(0,a.kt)("p",null,"Related to that, the new cloud backend will provide a monitoring and health-checking mechanism which is far more flexible\nand offers more detailed insight than the previous iteration in ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-ops"),". The backend will enable you to formulate\nvery specific conditions for an ongoing run to be considered healthy, and offer automation of certain actions should these conditions not be met."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7574ff34.48f856fe.js b/assets/js/7574ff34.48f856fe.js new file mode 100644 index 0000000000..f9eaee3843 --- /dev/null +++ b/assets/js/7574ff34.48f856fe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[34891],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),s=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),c=s(a),m=n,h=c["".concat(i,".").concat(m)]||c[m]||d[m]||o;return a?r.createElement(h,l(l({ref:t},u),{},{components:a})):r.createElement(h,l({ref:t},u))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[c]="string"==typeof e?e:n,l[1]=p;for(var s=2;s{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-09-01-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,p={permalink:"/2023-09-01-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-sre.md",source:"@site/blog/2023-09-01-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-09-01T00:00:00.000Z",formattedDate:"September 1, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.075,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-09-01-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-09-01-network"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-08-29-node-cli-api"}},i={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Sanchonet-demo",id:"sanchonet-demo",level:3}],u={toc:s},c="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Work on cardano-parts repo continues and was utilized by the sanchonet-demo repository for demonstration purposes"),(0,n.kt)("li",{parentName:"ul"},"Work on a new ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs"},"capkgs"),' repository started -- "Content Addressed Packages"',(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"This repository provides common Cardano release and pre-release binaries in a pure content addressed nix package type via flake output"),(0,n.kt)("li",{parentName:"ul"},"These packages don't have the associated IFD, long eval times and large source dependencies that the originating source repositories often do"),(0,n.kt)("li",{parentName:"ul"},"Consumers of such packages, such as devShells or nixos machines, can benefit from the improved performance this offers")))),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Content addressed packages -- new repo: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs"},"capkgs"))),(0,n.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano p2p relay updates, dbSync snapshots server update, monitoring adjustments: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/5a0eabe...03e8e42"},"cardano-ops-compare"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Flake devShell module improvements: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/4"},"cardano-parts-pull-4")),(0,n.kt)("li",{parentName:"ul"},"Cardano-world entrypoints migrated to flake parts module: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/5"},"cardano-parts-pull-5")),(0,n.kt)("li",{parentName:"ul"},"Cardano-world jobs migrated to flake parts module: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/6"},"cardano-parts-pull-6")),(0,n.kt)("li",{parentName:"ul"},"Drep delegation fixups: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/7"},"cardano-parts-pull-7")),(0,n.kt)("li",{parentName:"ul"},"Utilize content addressed binaries, WIP: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/8"},"cardano-parts-pull-8")),(0,n.kt)("li",{parentName:"ul"},"Cardano-node module preparation branch, WIP: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/compare/capkgs...node-module"},"cardano-parts-compare"))),(0,n.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Availability zone pinning and explorer mods: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/d3a8644...9f9917c"},"cardano-perf-compare"))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Remove performance nodes for migration to cardano-perf: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/306ef6c6dd6c09d9b90b9768f2b84a1d05cded26"},"cardano-world-commit"))),(0,n.kt)("h3",{id:"sanchonet-demo"},"Sanchonet-demo"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet demonstration repository: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet-demo"},"sanchonet-demo"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7598a821.9bec1a49.js b/assets/js/7598a821.9bec1a49.js new file mode 100644 index 0000000000..42cdbc1c37 --- /dev/null +++ b/assets/js/7598a821.9bec1a49.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92999],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var d=r.createContext({}),p=function(e){var t=r.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(d.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,d=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=p(a),u=n,h=s["".concat(d,".").concat(u)]||s[u]||m[u]||o;return a?r.createElement(h,i(i({ref:t},c),{},{components:a})):r.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=u;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-02-16-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-02-16-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-16-hydra.md",source:"@site/blog/2024-02-16-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-02-16T00:00:00.000Z",formattedDate:"February 16, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.88,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-02-16-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-02-19-network"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-02-16-performance-and-tracing"}},d={authorsImageUrls:[void 0]},p=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],c={toc:p},s="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This week, the team made finally progress on the model based testing framework (and reproducing a bug) by fixing issues related to fully validating Cardano transactions. They also enabled continuous deployment of ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-explorer")," to ",(0,n.kt)("a",{parentName:"p",href:"http://explorer.hydra.family/heads"},"http://explorer.hydra.family/heads"),", facilitating easier access for users. Furthermore, they improved code quality by incorporating Haskell linting into their CI workflow and addeda user-ished conversion of ",(0,n.kt)("inlineCode",{parentName:"p"},"HeadId")," to ",(0,n.kt)("inlineCode",{parentName:"p"},"CurrencySymbol"),"."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fixed model based testing framework to fully validate Cardano transactions"),(0,n.kt)("li",{parentName:"ul"},"Enabled continuous deployment of ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-explorer")," to ",(0,n.kt)("a",{parentName:"li",href:"http://explorer.hydra.family/heads"},"http://explorer.hydra.family/heads")),(0,n.kt)("li",{parentName:"ul"},"Identified need for cardano-node 8.8 and cardano-api 8.38 (breaking changes) to continue integration with Conway networks"),(0,n.kt)("li",{parentName:"ul"},"Added Haskell linting to our CI workflow - Minor addition to convert ",(0,n.kt)("inlineCode",{parentName:"li"},"HeadId")," into ",(0,n.kt)("inlineCode",{parentName:"li"},"CurrencySymbol")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/919"},"#","919")),(0,n.kt)("li",{parentName:"ul"},"Reviewed a small refactor PR on our model-based test runner ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1300"},"#","1300"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fix the fanout after contest bug"),(0,n.kt)("li",{parentName:"ul"},"Bite the bullet and have a non-mainnet compatible ",(0,n.kt)("inlineCode",{parentName:"li"},"master")," to complete smoke tests on ",(0,n.kt)("inlineCode",{parentName:"li"},"sanchonet")),(0,n.kt)("li",{parentName:"ul"},"Specify the on-chain validators for incremental decommits")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/75a8d947.ee73c41d.js b/assets/js/75a8d947.ee73c41d.js new file mode 100644 index 0000000000..8fda8bbdb5 --- /dev/null +++ b/assets/js/75a8d947.ee73c41d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48e3],{7966:e=>{e.exports=JSON.parse('{"permalink":"/tags/goedel","page":1,"postsPerPage":5,"totalPages":5,"totalCount":23,"nextPage":"/tags/goedel/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/76794a21.3c574d38.js b/assets/js/76794a21.3c574d38.js new file mode 100644 index 0000000000..11e8121832 --- /dev/null +++ b/assets/js/76794a21.3c574d38.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29071],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=i.createContext({}),s=function(e){var t=i.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=s(e.components);return i.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(r),c=a,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||n;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,o=new Array(n);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>n,metadata:()=>l,toc:()=>s});var i=r(87462),a=(r(67294),r(3905));const n={title:"Mithril Team Update",slug:"2023-02-23-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-02-23-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-23-mithril.md",source:"@site/blog/2023-02-23-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-02-23T00:00:00.000Z",formattedDate:"February 23, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.47,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-02-23-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-02-24-hydra"},nextItem:{title:"Performance & tracing update",permalink:"/2023-02-23-performance-and-tracing"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The Mithril team released a new ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2306.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2306.0"))," distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes\u2019 CLI that allows generating and signing an era marker\u2019s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2306.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2306.0"))),(0,a.kt)("li",{parentName:"ul"},"Completed the epic that implements signer versions deployment monitoring ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/718"},"#718"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the implementation an event producer/consumer via channel ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/738"},"#738")),(0,a.kt)("li",{parentName:"ul"},"Completed the creation of a database and its configuration to save the events on the consumer side ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/740"},"#740")),(0,a.kt)("li",{parentName:"ul"},"Completed the creation of events and sending them on the channel on the producer side ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/741"},"#741")),(0,a.kt)("li",{parentName:"ul"},"Completed the creation of the signer registration event ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/742"},"#742")),(0,a.kt)("li",{parentName:"ul"},"Completed the creation a query to extract the node versions stakes distribution ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/743"},"#743")))),(0,a.kt)("li",{parentName:"ul"},"Worked on the epic that implements eras behavior switch ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/707"},"#707"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the loading of era reader adapters from config in the signer and the aggregator ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/732"},"#732")),(0,a.kt)("li",{parentName:"ul"},"Completed the implementation of an era cli command in the aggregator ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/755"},"#755")),(0,a.kt)("li",{parentName:"ul"},"Completed the implementation of a dynamic matrix of cases in CI end to end tests ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/760"},"#760")))),(0,a.kt)("li",{parentName:"ul"},"Fixed some bugs:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Fixed the unsupported ",(0,a.kt)("inlineCode",{parentName:"li"},"unixepoch()")," function ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/757"},"#757")),(0,a.kt)("li",{parentName:"ul"},"Fixed the problem that prevented some signers from signing on the ",(0,a.kt)("inlineCode",{parentName:"li"},"testing-preview")," network ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/730"},"#730")),(0,a.kt)("li",{parentName:"ul"},"Update SQLite version to ",(0,a.kt)("inlineCode",{parentName:"li"},"3.40")," in aggregator infrastructure ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/765"},"#765"))))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/769eb34c.f9679a13.js b/assets/js/769eb34c.f9679a13.js new file mode 100644 index 0000000000..5897e477d8 --- /dev/null +++ b/assets/js/769eb34c.f9679a13.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6919],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},c),{},{components:n})):r.createElement(h,s({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-07-26-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-07-26-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-26-consensus.md",source:"@site/blog/2023-07-26-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-07-26T00:00:00.000Z",formattedDate:"July 26, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.85,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-07-26-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-07-27-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-07-21-hydra"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Genesis liaising",id:"genesis-liaising",level:3}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"db-sync")," team confirmed that the adaptor module the Consensus team provided for UTxO-HD integration, shows no performance degradation. Other clients who wish to integrate with UTxO-HD without using a on-disk storage could use that same approach for now.\nWe also focused on completing tracing support for UTxO-HD in ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),".\nCurrently we are working on UTxO-HD documentation, both for downstream consumers and for the general public; and generalizing the implementation further. "),(0,a.kt)("p",null,"The team working on Genesis decided on a Genesis-motivated change of the epoch structure with the researchers, wrote a self-contained description of the statistical model for historical Genesis windows and eclipse durations, and merged two small improvements to the ",(0,a.kt)("inlineCode",{parentName:"p"},"ChainSync")," client as part of the onboarding efforts for the team that will implement Genesis."),(0,a.kt)("p",null,"The Consensus team also investigated an issue on sanchonet (the Conway testnet) manifesting in long syncing pauses; identified a ledger bug which was promptly fixed by the Ledger team."),(0,a.kt)("h3",{id:"genesis-liaising"},"Genesis liaising"),(0,a.kt)("p",null,"Improvements to the ",(0,a.kt)("inlineCode",{parentName:"p"},"ChainSync")," client:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/222"},"#222"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/233"},"#233"),".")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/76c61a3b.2d8cc364.js b/assets/js/76c61a3b.2d8cc364.js new file mode 100644 index 0000000000..2f0e19a35d --- /dev/null +++ b/assets/js/76c61a3b.2d8cc364.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91192],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(r),m=a,f=d["".concat(l,".").concat(m)]||d[m]||u[m]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Performance & tracing update",slug:"2022-11-16-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,c={permalink:"/2022-11-16-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-16-performance-and-tracing.md",source:"@site/blog/2022-11-16-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2022-11-16T00:00:00.000Z",formattedDate:"November 16, 2022",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.635,hasTruncateMarker:!1,authors:[{name:"Serge Kosyrev",title:"Performance and Tracing Team Lead",url:"https://github.com/deepfire",imageURL:"https://github.com/deepfire.png",key:"deepfire"}],frontMatter:{title:"Performance & tracing update",slug:"2022-11-16-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-11-16-node-cli-api"},nextItem:{title:"Crypto Team Update",permalink:"/2022-11-11-crypto"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Performance",id:"performance",level:2},{value:"Tracing",id:"tracing",level:2},{value:"Infrastructure",id:"infrastructure",level:2}],p={toc:s},d="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"P2P performance investigation is ongoing, in support of the networking team."),(0,a.kt)("li",{parentName:"ol"},"SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support."),(0,a.kt)("li",{parentName:"ol"},"Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing."),(0,a.kt)("li",{parentName:"ol"},"On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started."),(0,a.kt)("li",{parentName:"ol"},"We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.")),(0,a.kt)("h2",{id:"performance"},"Performance"),(0,a.kt)("p",null,"We are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes."),(0,a.kt)("h2",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"We ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis."),(0,a.kt)("h2",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"The first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends."),(0,a.kt)("p",null,"We designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing."),(0,a.kt)("p",null,"A number of smaller workbench, data analysis & reporting improvements have been made."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/76f55d29.335e0574.js b/assets/js/76f55d29.335e0574.js new file mode 100644 index 0000000000..991890ede6 --- /dev/null +++ b/assets/js/76f55d29.335e0574.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[44093],{65441:a=>{a.exports=JSON.parse('{"label":"network","permalink":"/tags/network","allTagsPath":"/tags","count":35}')}}]); \ No newline at end of file diff --git a/assets/js/771eb9f2.d3336e14.js b/assets/js/771eb9f2.d3336e14.js new file mode 100644 index 0000000000..a4f66460e0 --- /dev/null +++ b/assets/js/771eb9f2.d3336e14.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2251],{65884:a=>{a.exports=JSON.parse('{"label":"cip1694","permalink":"/tags/cip-1694","allTagsPath":"/tags","count":1}')}}]); \ No newline at end of file diff --git a/assets/js/771f29e6.3213c17c.js b/assets/js/771f29e6.3213c17c.js new file mode 100644 index 0000000000..afb4411c76 --- /dev/null +++ b/assets/js/771f29e6.3213c17c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[56674],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=p(a),c=n,m=d["".concat(u,".").concat(c)]||d[c]||h[c]||l;return a?r.createElement(m,o(o({ref:t},s),{},{components:a})):r.createElement(m,o({ref:t},s))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=c;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:n,o[1]=i;for(var p=2;p{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2023-03-31-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-03-31-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-31-ledger.md",source:"@site/blog/2023-03-31-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-03-31T00:00:00.000Z",formattedDate:"March 31, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.97,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-03-31-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-03-31-hydra"},nextItem:{title:"System Test Team Update",permalink:"/2023-03-27-system-test"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Support for the next release",id:"support-for-the-next-release",level:3},{value:"Experiments for DRep stake distribution",id:"experiments-for-drep-stake-distribution",level:3},{value:"Technical debt and bug fixes",id:"technical-debt-and-bug-fixes",level:3},{value:"Documentation changes",id:"documentation-changes",level:3}],s={toc:p},d="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"We are still heavily involved in work related to preparing the next release.\nThe other main thing we have worked on is experimentation about how we will\nhandle the DRep stake distribution for CIP-1694 in the conway ledger era.\nLastly, we merged a fix for\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/issues/4826"},"node-4826"),"\ninto our main branch (there will be a post-mortem shortly)."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"support-for-the-next-release"},"Support for the next release"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3363"},"pull-3363")," - Fix problems relating to Arbitrary instances used by consensus."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3361"},"pull-3361")," - Remove the alonze genesis from the conway genesis."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3360"},"pull-3360")," - Translate bad pointer addresses to valid ones in conway."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3357"},"pull-3357")," - Fix a bug relating to zero valued ADA in the script context."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3356"},"pull-3356")," - Added needed instances (Arbitrary and Serialization) for conway integration."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3345"},"pull-3345")," - Added helper functions for the CLI."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3342"},"pull-3342")," - Fix a bug with a CLI helper function (having to do with deposit tracking).")),(0,n.kt)("h3",{id:"experiments-for-drep-stake-distribution"},"Experiments for DRep stake distribution"),(0,n.kt)("p",null,"Adding another stake distribution to the ledger state presents some new challenges.\nWe would like to be able to use the current stake distribution at the epoch boundary\nfor DRep voting so that people can always vote themselves in time for any proposal.\nTo this end, we have a prototype of an incremental computation based on the incremental\nlambda calculus, together with tests and benchmarks (which are very promising).\nSee ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3344"},"pull-3344"),"."),(0,n.kt)("p",null,"Additionally, more of the ledger state is going to need to be rearranged to accomodate\nthe new incremental computations.\nWe have two draft PRs up for possibles solution.\nSee ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3353"},"pull-3353")," and ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3364"},"pull-3364"),"."),(0,n.kt)("h3",{id:"technical-debt-and-bug-fixes"},"Technical debt and bug fixes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3343"},"pull-3343")," - A fix ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/issues/4826"},"node-4826"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3333"},"pull-3333")," - Moving more code out of the shelley packages. "),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3347"},"pull-3347")," - Bug fix for the multi-asset generators."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3341"},"pull-3341")," - Removal of code duplication.")),(0,n.kt)("h3",{id:"documentation-changes"},"Documentation changes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3354"},"pull-3354"),' - Rename "optional datums" with "supplemental datums" in the alonzo spec.'),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3352"},"pull-3352")," - Add a section to the Shelly errata about the individual deposit tracking."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3351"},"pull-3351")," - Further clarify the details regarding the script integrity hash."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3350"},"pull-3350")," - Some cleanup of the Babbage spec.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/77215fb3.4edccf97.js b/assets/js/77215fb3.4edccf97.js new file mode 100644 index 0000000000..80c59819a2 --- /dev/null +++ b/assets/js/77215fb3.4edccf97.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[13680],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),h=s(a),d=n,m=h["".concat(p,".").concat(d)]||h[d]||u[d]||i;return a?r.createElement(m,o(o({ref:t},c),{},{components:a})):r.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2022-10-21-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-10-21-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-21-hydra.md",source:"@site/blog/2022-10-21-hydra.md",title:"Hydra Team Update",description:"High level summary",date:"2022-10-21T00:00:00.000Z",formattedDate:"October 21, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.97,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-10-21-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2022-10-27-crypto"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-10-19-node-cli-api"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],c={toc:s},h="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This week, the hydra team reviewed and addressed several open comments on the\nnew HeadV1 specification, completing a list the of identified gaps between\nspecification and implementation while doing so. In the wake of the recent\ndemonstration of SundaeSwap running their DEX in a Hydra Head, they met with\nthem to capture feature ideas & incorporate their feedback on the roadmap, as\nwell as potential research avenues."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Had the monthly review meeting, a bit earlier than expected: ",(0,n.kt)("a",{parentName:"li",href:"https://input-output.atlassian.net/wiki/spaces/HYDRA/pages/3650813953/Monthly+report+-+October+2022"},"https://input-output.atlassian.net/wiki/spaces/HYDRA/pages/3650813953/Monthly+report+-+October+2022")),(0,n.kt)("li",{parentName:"ul"},"Reviewed and addressed several open comments on HeadV1 specification."),(0,n.kt)("li",{parentName:"ul"},"Completed the list of identified gaps between specification and implementation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/452"},"#452")),(0,n.kt)("li",{parentName:"ul"},"Had two meetings with SundaeSwap to incorporate their feedback (on research and on the roadmap)."),(0,n.kt)("li",{parentName:"ul"},"Some small fixes on TUI and our docker images. ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/538"},"#538")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/pull/562"},"#562")),(0,n.kt)("li",{parentName:"ul"},"Met with the internal audit team and clarified scope.")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete the last two items required for a version ",(0,n.kt)("inlineCode",{parentName:"li"},"0.8.0"),"."),(0,n.kt)("li",{parentName:"ul"},"Cut the next release, version ",(0,n.kt)("inlineCode",{parentName:"li"},"0.8.0")),(0,n.kt)("li",{parentName:"ul"},"Get backup/recovery ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/187"},"#187")," done with proper event sourcing (ADR18)"),(0,n.kt)("li",{parentName:"ul"},"Have the CI build macos artifacts")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/77550e96.276e46c6.js b/assets/js/77550e96.276e46c6.js new file mode 100644 index 0000000000..b8a4f4aa00 --- /dev/null +++ b/assets/js/77550e96.276e46c6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[62227],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=u(a),s=r,h=m["".concat(p,".").concat(s)]||m[s]||d[s]||i;return a?n.createElement(h,o(o({ref:t},c),{},{components:a})):n.createElement(h,o({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:r,o[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-08-29-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",l={permalink:"/2023-08-29-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-29-node-cli-api.md",source:"@site/blog/2023-08-29-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-08-29T00:00:00.000Z",formattedDate:"August 29, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.55,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-08-29-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-09-01-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2023-08-28-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-08-16---2023-08-29"},"2023-08-16 - 2023-08-29"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"CLI is making progress towards phases 3 and 4 of SanchoNet."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Ability to create info, no-confidence and new committee governance actions.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Voting as DREP is possible now on the CLI")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"API is now using Ledger's PParams and VotingProcedures")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Expose following queries from consensus:"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre"},"- GetGovState\n- GetDRepState\n- GetDRepStakeDistr\n- GetCommitteeState\n- GetConstitution\n")))),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/179"},"Add goverance info action creation to era based cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/176"},"Add create-no-confidence command to era based cardano-cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/175"},"Add create-new-committee command to era based cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/204"},"Enable ",(0,r.kt)("inlineCode",{parentName:"a"},"--drep-script-hash")," option")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/211"},"Remove ",(0,r.kt)("inlineCode",{parentName:"a"},"experimental")," subcommand")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/210"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.17.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/194"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"governance drep id")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/189"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"governance query")," commands")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/187"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"--verification-key")," option to ",(0,r.kt)("inlineCode",{parentName:"a"},"committee key-hash")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/203"},"Read and write ",(0,r.kt)("inlineCode",{parentName:"a"},"VotingProcedures")," files instead of ",(0,r.kt)("inlineCode",{parentName:"a"},"VotingEntry")," files")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/201"},"Release 8.6.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/195"},"Merge ",(0,r.kt)("inlineCode",{parentName:"a"},"LegacyClientCmdError")," into ",(0,r.kt)("inlineCode",{parentName:"a"},"CmdError")," ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/193"},"Add test for conway governance action create-constitution")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/192"},"Move legacy errors out of legacy command structure modules")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/191"},"Governance ",(0,r.kt)("inlineCode",{parentName:"a"},"drep")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"vote")," command groups")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/188"},"Move command errors from era-based to ",(0,r.kt)("inlineCode",{parentName:"a"},"CmdError")," module")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/186"},"Move some error types")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/185"},"Delete unused module")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/183"},"Refactor: Use ",(0,r.kt)("inlineCode",{parentName:"a"},"maybeFeatureInEra")," instead of ",(0,r.kt)("inlineCode",{parentName:"a"},"featureInEra")," where possible")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/182"},"Remove all uses of ",(0,r.kt)("inlineCode",{parentName:"a"},"toS"),", ",(0,r.kt)("inlineCode",{parentName:"a"},"purer"),", ",(0,r.kt)("inlineCode",{parentName:"a"},"cborError")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"intercalate")," from ",(0,r.kt)("inlineCode",{parentName:"a"},"Cardano.Prelude"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/180"},"Remove example era-based parsers we don't need anymore")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/174"},"Bump CHaP index in preparation for 8.3.0 pre"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/216"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.17.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/214"},"Replace ProtocolParameters usage with ledger's PParams")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/210"},"Use injective type families to improve type inference")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/209"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"TxVotes")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"VotingEntry")," and use ",(0,r.kt)("inlineCode",{parentName:"a"},"VotingProcedures")," instead")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/208"},"New functions ",(0,r.kt)("inlineCode",{parentName:"a"},"emptyVotingProcedures"),", ",(0,r.kt)("inlineCode",{parentName:"a"},"singletonVotingProcedures")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"mergeVotingProcedures"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/207"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"makeStakeAddressAndDRepDelegationCertificate")," function")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/206"},"Expose ledger lenses for governance types")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/205"},"New version cardano-api-8.16.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/204"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"VotingProcedures")," type")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/202"},"Release 8.16.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/200"},"Update createAnchor to use hashAnchorData")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/197"},"Release 8.15.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/196"},"Add consensus governance queries"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/776206d2.077a59d0.js b/assets/js/776206d2.077a59d0.js new file mode 100644 index 0000000000..ad4bb87c44 --- /dev/null +++ b/assets/js/776206d2.077a59d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24323],{30864:a=>{a.exports=JSON.parse('{"label":"mithril","permalink":"/tags/mithril","allTagsPath":"/tags","count":63}')}}]); \ No newline at end of file diff --git a/assets/js/778ef860.251e67f7.js b/assets/js/778ef860.251e67f7.js new file mode 100644 index 0000000000..233366ba55 --- /dev/null +++ b/assets/js/778ef860.251e67f7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96838],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,g=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(g,l(l({ref:t},m),{},{components:r})):n.createElement(g,l({ref:t},m))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-09-15-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-09-15-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-goedel.md",source:"@site/blog/2023-09-15-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-09-15T00:00:00.000Z",formattedDate:"September 15, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.44,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-09-15-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-09-20-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-09-15-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and also further\ndeveloping the performance modelling prototype."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"working on collating and open sourcing performance analysis prototype")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"improvements to Ouroboros Praos specification in Isabelle")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"working on formalising chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"reviewing an alternatice semantics for DeltaQ")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Seminar talk at U. Bergen on algebraic properties of timeliness"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/77d69aed.179c97cb.js b/assets/js/77d69aed.179c97cb.js new file mode 100644 index 0000000000..94cdb015e1 --- /dev/null +++ b/assets/js/77d69aed.179c97cb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29399],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=p(n),d=a,h=c["".concat(s,".").concat(d)]||c[d]||m[d]||i;return n?r.createElement(h,o(o({ref:t},u),{},{components:n})):r.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:a,o[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const i={title:"Consensus Team Update",slug:"2023-05-31-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-31-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-31-consensus.md",source:"@site/blog/2023-05-31-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-05-31T00:00:00.000Z",formattedDate:"May 31, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.825,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-05-31-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-06-01-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-05-31-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"UTxO-HD",id:"utxo-hd",level:2},{value:"Support",id:"support",level:2}],u={toc:p},c="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the Past two weeks we drafted an implementation path for concluding that a node is caught up, which will also be used to back Network's ledger-peer selection (see ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/101"},"this issue"),"). We also carried a thorough investigation into the exact feasibility of applying the Genesis rule to certain historical parts of the chain."),(0,a.kt)("p",null,"On the UTxO-HD front, we are working on improving the ledger tables design and wrapping up the improved DB locking mechanism. We also released packages that are required not only by UTxO-HD but are already used in cardano."),(0,a.kt)("h2",{id:"utxo-hd"},"UTxO-HD"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We have a plan for making the ledger tables in UTxO-HD more ergonomic by mimicking ",(0,a.kt)("inlineCode",{parentName:"li"},"SOP")," classes like ",(0,a.kt)("inlineCode",{parentName:"li"},"HPure")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"HAp")," . In short, we implement generalised versions of important classes like ",(0,a.kt)("inlineCode",{parentName:"li"},"Applicative")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"Traversable"),".")),(0,a.kt)("h2",{id:"support"},"Support"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"fs-sim-0.1.0.2")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"fs-api-0.1.0.2")," were released, which makes them now compatible with GHC up to ",(0,a.kt)("inlineCode",{parentName:"li"},"9.6"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus-0.7.0.0")," was released for ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node")," ",(0,a.kt)("inlineCode",{parentName:"li"},"8.1"),", including query serialization fixes for backwards compatibility.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/77d820b6.3a90568c.js b/assets/js/77d820b6.3a90568c.js new file mode 100644 index 0000000000..46cf98a208 --- /dev/null +++ b/assets/js/77d820b6.3a90568c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[76413],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var a=t(67294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var c=a.createContext({}),s=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=s(e.components);return a.createElement(c.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},u=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(t),u=r,f=p["".concat(c,".").concat(u)]||p[u]||m[u]||i;return t?a.createElement(f,o(o({ref:n},d),{},{components:t})):a.createElement(f,o({ref:n},d))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,o=new Array(i);o[0]=u;var l={};for(var c in n)hasOwnProperty.call(n,c)&&(l[c]=n[c]);l.originalType=e,l[p]="string"==typeof e?e:r,o[1]=l;for(var s=2;s{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var a=t(87462),r=(t(67294),t(3905));const i={title:"Performance & tracing update",slug:"2023-05-03-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o="High level summary",l={permalink:"/2023-05-03-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-03-performance-and-tracing.md",source:"@site/blog/2023-05-03-performance-and-tracing.md",title:"Performance & tracing update",description:"* Benchmarking: The benchmarks and performance investigations for the new 8.0 release branch are ongoing.",date:"2023-05-03T00:00:00.000Z",formattedDate:"May 3, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.76,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-05-03-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-05-03-consensus"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-05-01-db-sync"}},c={authorsImageUrls:[void 0]},s=[{value:"Dataflow documentation",id:"dataflow-documentation",level:3},{value:"Remove redundant Plutus flake input",id:"remove-redundant-plutus-flake-input",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],d={toc:s},p="wrapper";function m(e){let{components:n,...t}=e;return(0,r.kt)(p,(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Benchmarking: The benchmarks and performance investigations for the new ",(0,r.kt)("inlineCode",{parentName:"li"},"8.0")," release branch are ongoing."),(0,r.kt)("li",{parentName:"ul"},"New tracing: Performance optimization of the new tracing system is paying off and we could notably shrink its resource footprint."),(0,r.kt)("li",{parentName:"ul"},"Analysis pipeline: An exhaustive documentation and dataflow diagram for our analyses is being worked on."),(0,r.kt)("li",{parentName:"ul"},"Infrastructure: The ",(0,r.kt)("inlineCode",{parentName:"li"},"plutus-apps")," flake input for ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-node")," has finally been removed."),(0,r.kt)("li",{parentName:"ul"},"Nomad backend: A PR implementing placement of benchmarking clusters has been merged.")),(0,r.kt)("h1",{id:"benchmarking"},"Benchmarking"),(0,r.kt)("p",null,"The performance investigations on the ",(0,r.kt)("inlineCode",{parentName:"p"},"8.0")," release branch have lead to pinpointing and addressing incosistent behaviour. For that,\nwe created yet another local reproduction with the workbench's ",(0,r.kt)("inlineCode",{parentName:"p"},"forge-stress")," benchmark. "),(0,r.kt)("p",null,"Currently we're working on scaling up the dataset size (UTxO and delegations) on the AWS cluster to gain further insight into ",(0,r.kt)("inlineCode",{parentName:"p"},"8.0")," and\nsubsequent releases. "),(0,r.kt)("p",null,"Additionally, we've refined the ",(0,r.kt)("inlineCode",{parentName:"p"},"trace-bench")," family of profiles that target benchmarking our own new tracing system. "),(0,r.kt)("h1",{id:"tracing"},"Tracing"),(0,r.kt)("p",null,"Optimization of the tracing system has identified several locations where inefficient serializations were used; those were not originally\nintended to run on a performance-critical codepath. We've worked on improving those, as well as eliminating cases of redundant\nconversion between different serialization formats. This has brought down both memory and CPU impact of the tracing system."),(0,r.kt)("h1",{id:"infrastructure--analysis"},"Infrastructure & Analysis"),(0,r.kt)("h3",{id:"dataflow-documentation"},"Dataflow documentation"),(0,r.kt)("p",null,"The LogObject CLI ",(0,r.kt)("inlineCode",{parentName:"p"},"locli")," is at the heart of our analysis and reporting pipeline. To increase its accessibility and facilitate\nfurther development, we're creating a detailed and illustrated documentation of all dataflows that happen during analysis and reporting. "),(0,r.kt)("h3",{id:"remove-redundant-plutus-flake-input"},"Remove redundant Plutus flake input"),(0,r.kt)("p",null,"This step is the conclusion of porting Plutus benchmarking scripts to our own library. By finally removing the now unnecessary flake input,\nwe simplify the dependency graph for ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node"),", as well as enable immediate feedback when developing Plutus benchmarks."),(0,r.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,r.kt)("p",null,"Sophisticated placement of nodes across various regions of the globe is a cornerstone of the model cluster we use for benchmarking.\nThis capability has now been added to the Nomad backend and can be controlled with Nomad job descriptions. A PR with this, along\nwith various quality-of-life improvements, has been merged to ",(0,r.kt)("inlineCode",{parentName:"p"},"master"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/77e9cceb.8196316e.js b/assets/js/77e9cceb.8196316e.js new file mode 100644 index 0000000000..f5d080f968 --- /dev/null +++ b/assets/js/77e9cceb.8196316e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54868],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>y});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),p=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=p(n),d=a,y=s["".concat(u,".").concat(d)]||s[d]||m[d]||o;return n?r.createElement(y,l(l({ref:t},c),{},{components:n})):r.createElement(y,l({ref:t},c))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-08-17-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-08-17-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-17-db-sync.md",source:"@site/blog/2023-08-17-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-08-17T00:00:00.000Z",formattedDate:"August 17, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.41,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-08-17-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-08-17-crypto"},nextItem:{title:"SECP bindings Security Issue Report",permalink:"/2023-08-17-secp-issue"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],c={toc:p},s="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We have integrated many new Conway feutures and allow db-sync to sync sanchonet.\nWe also continued testing and improving the new db-sync options."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Conway integration\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1484"},"#1484")),(0,a.kt)("li",{parentName:"ul"},"Support for Sanchonet\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1476"},"#1476")),(0,a.kt)("li",{parentName:"ul"},"Stake distribution is computed earlier\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1484"},"#1484")),(0,a.kt)("li",{parentName:"ul"},"Deposit ledger events are now used. This reduces the db queries and makes syncing faster\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1484"},"#1484")),(0,a.kt)("li",{parentName:"ul"},"Testing new db-sync options\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1466"},"#1466")),(0,a.kt)("li",{parentName:"ul"},"Added support for ghc-9.6\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1479"},"#1479")),(0,a.kt)("li",{parentName:"ul"},"Tech debt: improve exceptions\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1471"},"#1471"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/785e66fe.4d74ddaf.js b/assets/js/785e66fe.4d74ddaf.js new file mode 100644 index 0000000000..a04c72a74a --- /dev/null +++ b/assets/js/785e66fe.4d74ddaf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92407],{23464:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/9","page":9,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/8","nextPage":"/tags/hydra/page/10","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/789f2cca.30caf1f2.js b/assets/js/789f2cca.30caf1f2.js new file mode 100644 index 0000000000..5c771972aa --- /dev/null +++ b/assets/js/789f2cca.30caf1f2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43261],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=u(a),h=n,c=m["".concat(p,".").concat(h)]||m[h]||d[h]||l;return a?r.createElement(c,i(i({ref:t},s),{},{components:a})):r.createElement(c,i({ref:t},s))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=h;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:n,i[1]=o;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2023-08-18-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2023-08-18-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-ledger.md",source:"@site/blog/2023-08-18-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-08-18T00:00:00.000Z",formattedDate:"August 18, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.7,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-08-18-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-08-18-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-08-18-network"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway progress",id:"conway-progress",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3}],s={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The ledger team made great progress in advancing Conway era forward. In particular, voting\nfor DRep and Stake Pool Operators is now at the state that can be used by downstream\ncomponents. Addition of new ledger state queries makes it possible to verify changes to\nthe governance state, such as placement of votes, submission of governance proposals,\ninspecting DRep stake distribution and more. Addition of treasury withdrawals concludes the\nability to enact all of the governance actions, except for the hard fork initiation."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway-progress"},"Conway progress"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3577"},"pull-3577")," - Move ",(0,n.kt)("inlineCode",{parentName:"li"},"PParams")," to ",(0,n.kt)("inlineCode",{parentName:"li"},"GovState")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3609"},"pull-3609")," - Adjust thresholds for sanchonet"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3604"},"pull-3604")," - README: update CIP-1694 link"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3616"},"pull-3616")," - Switch ",(0,n.kt)("inlineCode",{parentName:"li"},"TreasuryWithdrawals")," to use ",(0,n.kt)("inlineCode",{parentName:"li"},"RewardAcnt")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3599"},"pull-3599")," - Add governance action well-formedness check"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3607"},"pull-3607")," - Rename governance to gov"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3601"},"pull-3601")," - Added ",(0,n.kt)("inlineCode",{parentName:"li"},"DRep")," anchors"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3615"},"pull-3615")," - Add optional previous ",(0,n.kt)("inlineCode",{parentName:"li"},"GovActionId")," in some ",(0,n.kt)("inlineCode",{parentName:"li"},"ProposalProcedures")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3596"},"pull-3596")," - Upgradeable families"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3625"},"pull-3625")," - Change constitution to use ",(0,n.kt)("inlineCode",{parentName:"li"},"Anchor")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3592"},"pull-3592")," - Added pulsing incremental computation of the DRep distribution"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3523"},"pull-3523")," - Treasury donations"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3633"},"pull-3633")," - Prevent state changes on phase2 failure"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3634"},"pull-3634")," - Disable serialization of protocolVersion param update"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3630"},"pull-3630")," - Implemented DRep refreshing"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3640"},"pull-3640")," - Remove crypto parameterization from ",(0,n.kt)("inlineCode",{parentName:"li"},"AnchorData")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3636"},"pull-3636"),' - Implement DRep ratification with an "always passing"; threshold'),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3648"},"pull-3648")," - Governance queries"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3650"},"pull-3650")," - Change environment for ",(0,n.kt)("inlineCode",{parentName:"li"},"ShelleyPOOLREAP")," rule"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3658"},"pull-3658")," - Set ",(0,n.kt)("inlineCode",{parentName:"li"},"DRep")," ratify threshold to 51%"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3628"},"pull-3628")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"DELEG"),", ",(0,n.kt)("inlineCode",{parentName:"li"},"POOL"),", ",(0,n.kt)("inlineCode",{parentName:"li"},"GOVCERT")," conformance with Spec v0.8")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3619"},"pull-3619")," - Disabled a broken test")),(0,n.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3660"},"pull-3660")," - Fix bounds and versions"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3661"},"pull-3661")," - Adjust versions, bounds and CHANGELOGs to account for the latest release")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/78c763b8.e7d9ddb9.js b/assets/js/78c763b8.e7d9ddb9.js new file mode 100644 index 0000000000..726bfeaa12 --- /dev/null +++ b/assets/js/78c763b8.e7d9ddb9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96944],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),u=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(p.Provider,{value:e},t.children)},d="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,p=t.parentName,c=o(t,["components","mdxType","originalType","parentName"]),d=u(a),h=r,s=d["".concat(p,".").concat(h)]||d[h]||m[h]||i;return a?n.createElement(s,l(l({ref:e},c),{},{components:a})):n.createElement(s,l({ref:e},c))}));function s(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=h;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[d]="string"==typeof t?t:r,l[1]=o;for(var u=2;u{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-10-24-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",o={permalink:"/2023-10-24-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-24-node-cli-api.md",source:"@site/blog/2023-10-24-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-10-24T00:00:00.000Z",formattedDate:"October 24, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.68,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-10-24-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-10-25-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-10-20-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},d="wrapper";function m(t){let{components:e,...a}=t;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-10-11---2023-10-24"},"2023-10-11 - 2023-10-24"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"CARDANO-CLI"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Disambiguate cardano-cli stake credential related flags on treasury withdrawal governance actions making it easy to identify which is used for the deposit refund and which for the destination of the funds from the treasury if the action is ratified."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"stake-address-info")," now shows deposits balance."),(0,r.kt)("li",{parentName:"ul"},"Added ",(0,r.kt)("inlineCode",{parentName:"li"},"conway governance action view")," to allow to inspect governance action files before submitting them on a transaction."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"build-raw")," support for ",(0,r.kt)("inlineCode",{parentName:"li"},"--vote-file")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"--proposal-file"))),(0,r.kt)("p",null,"CARDANO-API"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Support DRep extended keys"),(0,r.kt)("li",{parentName:"ul"},"Support Plutus V1 in Conway")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/394"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.28.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/393"},"Simplify ",(0,r.kt)("inlineCode",{parentName:"a"},"toTxOutInAnyEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/390"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.27.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/389"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.26.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/380"},"Check that poll answer index is not negative, to avoid a Prelude.!! error")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/379"},"drep registration-certificate: add a golden test")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/378"},"Disambiguate treasury withdrawal flags")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/375"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"stake-address-info")," query also return deposit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/374"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"conway governance action view"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/372"},"Ch/clearer anchor flags")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/371"},"Command argument types for ",(0,r.kt)("inlineCode",{parentName:"a"},"transaction")," commands")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/370"},"Remove eras' constitution-hash")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/368"},"Shelley to Alonzo: add create-genesis-key-delegation-certificate to governance")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/367"},"Enable reading of Conway ",(0,r.kt)("inlineCode",{parentName:"a"},"TxWitness"),"es")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/366"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"governance action create-protocol-parameters-update")," Conway onwards only")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/365"},(0,r.kt)("inlineCode",{parentName:"a"},"transaction build-raw")," support for ",(0,r.kt)("inlineCode",{parentName:"a"},"--vote-file")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"--proposal-file"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/364"},"Command argument types for governance key commands")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/363"},"Add test of voting using a cc hot key"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/338"},"Add Show instance for FoldBlocksError")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/336"},"Upgrade typed-protocols to 1.1.1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/332"},"Improved validity range handling")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/331"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.28.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/330"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"AlonzoEraOnly"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/329"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"shelleyToAlonzoEraToShelleyToBabbageEra")," function")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/327"},"DRep extended key: add CastVerificationKeyRole")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/326"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardadno-api-8.27.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/325"},"Delete unnecessary calls to ",(0,r.kt)("inlineCode",{parentName:"a"},"shelleyBasedEraConstraints"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/324"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardadno-api-8.27.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/323"},"Support Plutus V1 in Conway")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/322"},"Parameterize GovernanceAction on era ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/320"},"Support DRep extended keys")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/317"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.26.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/314"},"Haddock document the case functions, so that their behavior is easier to understand when calling them")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/313"},"Avoid ",(0,r.kt)("inlineCode",{parentName:"a"},"IsShelleyBasedEra")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"IsCardanoEra")," where possible")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/312"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"MaryEraOnly")," eon. Disjoint functions"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5515"},"Factor out file creation for SPO"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5504"},"Tracer documentation generation enhacements "))),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/78d07d74.647300b8.js b/assets/js/78d07d74.647300b8.js new file mode 100644 index 0000000000..e93042d493 --- /dev/null +++ b/assets/js/78d07d74.647300b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29837],{70699:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/78d554ba.8f646dce.js b/assets/js/78d554ba.8f646dce.js new file mode 100644 index 0000000000..27f1767be0 --- /dev/null +++ b/assets/js/78d554ba.8f646dce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[61980],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=c(r),d=a,g=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(g,l(l({ref:t},s),{},{components:r})):n.createElement(g,l({ref:t},s))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[m]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-05-26-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-05-26-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-26-goedel.md",source:"@site/blog/2023-05-26-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-05-26T00:00:00.000Z",formattedDate:"May 26, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.39,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-05-26-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-05-31-performance-and-tracing"},nextItem:{title:"Hydra Team Update",permalink:"/2023-05-26-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],s={toc:c},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the team has been working on final revisions for the\npre-proceedings versions of two ICE 2023 papers."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Porting Ouroboros Praos formalisation to new application layer.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing pre-proceedings version of two ICE 2023 papers.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The team is hiring a performance engineering intern - ",(0,a.kt)("a",{parentName:"p",href:"https://apply.workable.com/io-global/j/BFEC5B0AFF/"},"https://apply.workable.com/io-global/j/BFEC5B0AFF/")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/78d8ce1d.6f7c5045.js b/assets/js/78d8ce1d.6f7c5045.js new file mode 100644 index 0000000000..2bc3538a76 --- /dev/null +++ b/assets/js/78d8ce1d.6f7c5045.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73320],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>y});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(n),d=a,y=u["".concat(l,".").concat(d)]||u[d]||m[d]||i;return n?r.createElement(y,o(o({ref:t},p),{},{components:n})):r.createElement(y,o({ref:t},p))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const i={title:"DB Sync Team Update",slug:"2022-11-01-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},o=void 0,s={permalink:"/2022-11-01-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-01-db-sync.md",source:"@site/blog/2022-11-01-db-sync.md",title:"DB Sync Team Update",description:"High level summary",date:"2022-11-01T00:00:00.000Z",formattedDate:"November 1, 2022",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.86,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB Sync Team Update",slug:"2022-11-01-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"System Test Team Update",permalink:"/2022-11-02-system-test"},nextItem:{title:"Hydra Team Update",permalink:"/2022-10-28-hydra"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Schema simplifications",id:"schema-simplifications",level:3},{value:"Performance",id:"performance",level:3},{value:"Migrations and resyncing",id:"migrations-and-resyncing",level:3},{value:"Release",id:"release",level:3}],p={toc:c},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team is preparing a release which introduces schema simplifications, removes indexes,\nunique and foreign keys. It also provides a way to fix older values and migrates without the need to\nresync from genesis."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"schema-simplifications"},"Schema simplifications"),(0,a.kt)("p",null,"Indexes, Unique and Foreign keys are removed in order to speedup syncing\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1295"},"#1295"),"\nThe same pr also introduces a different way to rollback, which doesn't rely on foreign keys and\nindexes."),(0,a.kt)("h3",{id:"performance"},"Performance"),(0,a.kt)("p",null,"The DBSync team ran a big number of benchmarks and investigated ways to speedup syncing. A\nconservative number of these will be included in the next release and the rest can be found in\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/52/views/7"},"performance view"),"."),(0,a.kt)("h3",{id:"migrations-and-resyncing"},"Migrations and resyncing"),(0,a.kt)("p",null,"The next release will be 13.1.0, it will enable a migration without the need to resync. It will also\nintroduce a procedure that fixes bytes values of Datum and RedeemerData in existing databases\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1294"},"#1294")),(0,a.kt)("h3",{id:"release"},"Release"),(0,a.kt)("p",null,"The release has been mostly cherry-picked from master\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1294"},"#1294")," and its scope can be seen\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/52/views/6"},"release view")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/78df8d65.958185e8.js b/assets/js/78df8d65.958185e8.js new file mode 100644 index 0000000000..26ffb8cefd --- /dev/null +++ b/assets/js/78df8d65.958185e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29537],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>d});var a=o(67294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function i(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var p=a.createContext({}),s=function(e){var t=a.useContext(p),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(o),c=n,d=m["".concat(p,".").concat(c)]||m[c]||k[c]||r;return o?a.createElement(d,i(i({ref:t},u),{},{components:o})):a.createElement(d,i({ref:t},u))}));function d(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,i=new Array(r);i[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>k,frontMatter:()=>r,metadata:()=>l,toc:()=>s});var a=o(87462),n=(o(67294),o(3905));const r={title:"Network Team Update",slug:"2023-04-28-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-04-28-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-28-network.md",source:"@site/blog/2023-04-28-network.md",title:"Network Team Update",description:"High level summary",date:"2023-04-28T00:00:00.000Z",formattedDate:"April 28, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.21,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-04-28-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-04-28-goedel"},nextItem:{title:"Hydra Team Update",permalink:"/2023-04-27-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Detailed log",id:"detailed-log",level:2},{value:"Ouroboros-Network",id:"ouroboros-network",level:3},{value:"IO-Sim",id:"io-sim",level:3},{value:"Typed Protocols",id:"typed-protocols",level:3}],u={toc:s},m="wrapper";function k(e){let{components:t,...o}=e;return(0,n.kt)(m,(0,a.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The networking team has released the following packages to ",(0,n.kt)("inlineCode",{parentName:"p"},"Hackage"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/io-classes"},(0,n.kt)("inlineCode",{parentName:"a"},"io-classes")),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/io-classes-mtl"},(0,n.kt)("inlineCode",{parentName:"a"},"io-classes-mtl"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/io-sim"},(0,n.kt)("inlineCode",{parentName:"a"},"io-sim")),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/strict-stm"},(0,n.kt)("inlineCode",{parentName:"a"},"strict-stm")),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/strict-mvar"},(0,n.kt)("inlineCode",{parentName:"a"},"strict-mvar")))),(0,n.kt)("p",null,"We published an announcement ",(0,n.kt)("a",{parentName:"p",href:"https://engineering.iog.io/2023-04-14-io-sim-annoucement"},"blog post"),". We made progress\nalso on another blog post which will describes the design of the P2P networking\nlayer."),(0,n.kt)("p",null,"After moving ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," to its own repository, we made\n",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," compatible with ",(0,n.kt)("inlineCode",{parentName:"p"},"GHC")," ",(0,n.kt)("inlineCode",{parentName:"p"},"9.4")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"9.6"),"."),(0,n.kt)("p",null,"We made ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-client")," library independent of\n",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-diffusion"),"."),(0,n.kt)("p",null,"We prepared release of network packages for ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node-8.0"),"."),(0,n.kt)("h2",{id:"detailed-log"},"Detailed log"),(0,n.kt)("h3",{id:"ouroboros-network"},"Ouroboros-Network"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Compatibility with ",(0,n.kt)("inlineCode",{parentName:"li"},"io-classes-1.1.0.0"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4281"},"ouroboros-network#4281"),"."),(0,n.kt)("li",{parentName:"ul"},"Compatibility with ",(0,n.kt)("inlineCode",{parentName:"li"},"GHC")," ",(0,n.kt)("inlineCode",{parentName:"li"},"9.4")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"9.6"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4527"},"ouroboros-network#4527"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"cardano-client")," independent of ",(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-cosnensus-diffusion"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4526"},"ouroboros-network#4526"),"."),(0,n.kt)("li",{parentName:"ul"},"Release new versions of packages for ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-node-8.0"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4532"},"ouroboros-network#4532"),"."),(0,n.kt)("li",{parentName:"ul"},"Galois Inc, has been making progress towards merging ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),".")),(0,n.kt)("h3",{id:"io-sim"},"IO-Sim"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"io-classes-1.0.0.0"),", and following up releases: ",(0,n.kt)("inlineCode",{parentName:"li"},"1.0.0.1")," (",(0,n.kt)("inlineCode",{parentName:"li"},"ghc-9.6"),"\nsupport), ",(0,n.kt)("inlineCode",{parentName:"li"},"1.1.0.0")," (documentation fix)."),(0,n.kt)("li",{parentName:"ul"},"Fixed timeouts and delays in ",(0,n.kt)("inlineCode",{parentName:"li"},"io-sim")," in a series of PRs: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/81"},"io-sim#81"),",\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/82"},"io-sim#82"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/86"},"io-sim#86"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/87"},"io-sim#87"),"."),(0,n.kt)("li",{parentName:"ul"},"Renamed a module: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/88"},"io-sim#88"),"."),(0,n.kt)("li",{parentName:"ul"},"Fixed a failing ",(0,n.kt)("inlineCode",{parentName:"li"},"registerDelayCancellable")," test: ","[io-sim#80]","."),(0,n.kt)("li",{parentName:"ul"},"Use GitHub merge queue in ",(0,n.kt)("inlineCode",{parentName:"li"},"io-sim")," repository."),(0,n.kt)("li",{parentName:"ul"},"CI: download ",(0,n.kt)("inlineCode",{parentName:"li"},"stylish-haskell"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/83"},"io-sim#83"),".")),(0,n.kt)("h3",{id:"typed-protocols"},"Typed Protocols"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released ",(0,n.kt)("inlineCode",{parentName:"li"},"typed-protocols-0.1.0.4")," which support ",(0,n.kt)("inlineCode",{parentName:"li"},"io-classes-1.1.0.0"),":\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-haskell-packages/pull/227"},"typed-protocols#227"),"."),(0,n.kt)("li",{parentName:"ul"},"Use GitHub merge queue in ",(0,n.kt)("inlineCode",{parentName:"li"},"typed-protocols"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/typed-protocols/pull/30"},"typed-protocols#30"),"."),(0,n.kt)("li",{parentName:"ul"},"CI: download ",(0,n.kt)("inlineCode",{parentName:"li"},"stylish-haskell"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/typed-protocols/pull/29"},"typed-protocols#29"),".")))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/795480a5.32f86dea.js b/assets/js/795480a5.32f86dea.js new file mode 100644 index 0000000000..875c732190 --- /dev/null +++ b/assets/js/795480a5.32f86dea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[78446],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),d=u(a),c=r,m=d["".concat(p,".").concat(c)]||d[c]||h[c]||l;return a?n.createElement(m,i(i({ref:t},s),{},{components:a})):n.createElement(m,i({ref:t},s))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[d]="string"==typeof e?e:r,i[1]=o;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2023-01-05-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2023-01-05-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-05-ledger.md",source:"@site/blog/2023-01-05-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-01-05T00:00:00.000Z",formattedDate:"January 5, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:4.44,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-01-05-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-01-06-crypto"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-12-28-node-cli-api"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Finishing the deposit tracking",id:"finishing-the-deposit-tracking",level:3},{value:"New Conway era transaction",id:"new-conway-era-transaction",level:3},{value:"Optimizing the TICKF transition",id:"optimizing-the-tickf-transition",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Improved ledger event",id:"improved-ledger-event",level:4},{value:"Improved type saftey",id:"improved-type-saftey",level:4},{value:"Code/Module organization",id:"codemodule-organization",level:4},{value:"Revert pointer address deprecation",id:"revert-pointer-address-deprecation",level:4},{value:"Miscellaneous",id:"miscellaneous",level:4}],s={toc:u},d="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The ledger team finished up the remaining work for tracking individual depots,\nbuilt out the new Conway era transaction body (in line with CIP-1694),\ngreatly reduce some problematically large calculations on the epoch boundary,\nand addressed technical debt."),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"finishing-the-deposit-tracking"},"Finishing the deposit tracking"),(0,r.kt)("p",null,"The initial work on the individual deposit tracking project focused only on correctness.\nAs this is a large data structure\n(since its size is linear with respect to the number of registered stake credentials),\nit is very important that we also reduce the memory overhead as much as possible.\nFortunately, we were able to add very little overhead for the deposits by using existing\nefficient data structures. The extra tracking now only incurs one word (8 bytes)\nper registered stake credential."),(0,r.kt)("p",null,"See:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3195"},"pull-3195")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3202"},"pull-3202")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3217"},"pull-3217"))),(0,r.kt)("h3",{id:"new-conway-era-transaction"},"New Conway era transaction"),(0,r.kt)("p",null,'We implemented the Conway era transaction body, which is in line with CIP-1694.\nNote that the Conway era implements, losing speaking, the parts of CIP-1694 that are not\nrelated to the liquid democracy (the "DReps").\nThe new transaction body adds the new governance actions and votes,\nwhile also deprecating the old governance structures\n(i.e. the old protocol parameter updates and MIR certificates).'),(0,r.kt)("p",null,"We also now have the wire specification (CDDL file) and serialization code in place.\nThe wire specification is still subject to change while we work on the Conway era,\nbut it is now usable and has proper testing support\n(so that, for example, the serialization round-trips, etc)."),(0,r.kt)("p",null,"See:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3176"},"pull-3176")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3226"},"pull-3226"))),(0,r.kt)("h3",{id:"optimizing-the-tickf-transition"},"Optimizing the ",(0,r.kt)("inlineCode",{parentName:"h3"},"TICKF")," transition"),(0,r.kt)("p",null,"Every since the release of the Shelley era, we have been working to reduce the computational load\nplaced on the node by the ledger at the epoch boundary.\nWhile still not perfect, we believe that we have removed one of the final problematically long\nepoch boundary computations that exacerbate situations like\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/issues/4421"},"this"),".\nIn particular, the problem involved the way in which the consensus layer obtains a view of the\nledger for the purposes of checking the leadership schedule in a new epoch.\nWe implemented a stopgap measure which now only incurs a single multi-second cost once per epoch\ninstead of potentially several multi-second costs while the networks waits for the first block\nof a new epoch to be minted."),(0,r.kt)("p",null,"See:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"An ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/blob/ea48d4815946c4f35239eb41815fe06cd6ffec2e/docs/adr/2022-12-12_007-optimize-ledger-view.md"},"ADR")," about the decision."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3209"},"pull-3209"))),(0,r.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,r.kt)("p",null,"We closed the year out with a lot of reduction to the technical debt!"),(0,r.kt)("h4",{id:"improved-ledger-event"},"Improved ledger event"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3212"},"pull-3212")," - The ledger events are not guaranteed to appear in any given order within a block.\nFor this reason, motivated by the use case in db-sync, the ",(0,r.kt)("inlineCode",{parentName:"li"},"TotalDeposits")," event now\nincludes a transaction ID and emits the ",(0,r.kt)("em",{parentName:"li"},"change")," in deposits instead of the value.")),(0,r.kt)("h4",{id:"improved-type-saftey"},"Improved type saftey"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3208"},"pull-3208")," - We replaced ",(0,r.kt)("inlineCode",{parentName:"li"},"NominalDiffTime")," with a newtype wrapper. The problem was that our CBOR\nencoders and decoders were using the wrong level of precision, having to due with with\nthe Shelley genesis file. We removed the potential problem with a newtype wrapper."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3167"},"pull-3167")," - We now use a GADT to ensure consistency of the Plutus language in the types\nfor ",(0,r.kt)("inlineCode",{parentName:"li"},"TransactionScriptFailure")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"PlutusDebug"),".")),(0,r.kt)("h4",{id:"codemodule-organization"},"Code/Module organization"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3175"},"pull-3175")," - The Allegra and Mary eras had an unusual relationship in our codebase,\ndue to the uncertainly of release dates while we were implementing them.\nIn particular, they were coupled in way that is different from the rest of the code base.\nWith hindsight on our side, we split the combined ",(0,r.kt)("inlineCode",{parentName:"li"},"shelley-ma")," Haskell package into two\nseparate ledger era packages, which is now consistent with the rest of the repository\nand module structure."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3184"},"pull-3184")," - We created a core test sub-library, cleaning up a lot of our property test\ngenerator code."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3210"},"pull-3210")," - We moved the ",(0,r.kt)("inlineCode",{parentName:"li"},"KeyPair")," type to the test library. Outside of testing,\nthe ledger does not need to deal with signing keys, and since this is a topic that\ndeserves the utmost care, it is best to make it clear that our use of signing keys\nis only for testing."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3229"},"pull-3229")," - We split the ",(0,r.kt)("inlineCode",{parentName:"li"},"Cardano.Ledger.Alonzo.Data")," module, which is more consistent with the rest\nof the codebase.")),(0,r.kt)("h4",{id:"revert-pointer-address-deprecation"},"Revert pointer address deprecation"),(0,r.kt)("p",null,"Thanks to one of our excellent internal auditors,\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/jmhrpr"},"@jmhrpr"),",\nwe now have a better plan for deprecating pointer addresses.\nThis meant that we had to revert the previous work to deprecate them."),(0,r.kt)("p",null,"See:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3161"},"issue-3161")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3215"},"pull-3215"))),(0,r.kt)("h4",{id:"miscellaneous"},"Miscellaneous"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3205"},"pull-3205")," - We removed deprecated type synonyms."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3218"},"pull-3218")," - We cleaned up the address deserialization."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3223"},"pull-3223")," - We fixed faulty address deserialization tests."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3222"},"pull-3222")," - We switched to a general type family ",(0,r.kt)("inlineCode",{parentName:"li"},"TxOut")," from concrete ones,\nreducing many constraints."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3224"},"pull-3224")," - ",(0,r.kt)("inlineCode",{parentName:"li"},"ShelleyGenesis")," is now parameterized by crypto instead of by era."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3170"},"pull-3170")," - We set the cabal-version to 3.0 in our projects."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3172"},"pull-3172")," - We removed the now useless ",(0,r.kt)("inlineCode",{parentName:"li"},"EncodeMint"),"/",(0,r.kt)("inlineCode",{parentName:"li"},"DecodeMint")," classes."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3225"},"pull-3225")," - We switch from ",(0,r.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/ormolu"},"ormolu")," to\n",(0,r.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/fourmolu"},"fourmolu"),".\nThe reason was to be able to finally have more diff friendly code!")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/79730245.e527e94d.js b/assets/js/79730245.e527e94d.js new file mode 100644 index 0000000000..77a2dd9036 --- /dev/null +++ b/assets/js/79730245.e527e94d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[61596],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-02-17-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-02-17-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-network.md",source:"@site/blog/2023-02-17-network.md",title:"Network Team Update",description:"High level summary",date:"2023-02-17T00:00:00.000Z",formattedDate:"February 17, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:.865,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-02-17-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-02-17-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2023-02-10-hydra"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"Recently QA found a bug in P2P code, which results in busy loops. We added one\nfix to ",(0,o.kt)("inlineCode",{parentName:"p"},"1.35.6")," release, another one will likely be part of next release. The\nfirst one is already included in ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.3.0.1")," release. These\nbugs could only affect nodes which are out of sync and thus should not impose\nrisk on well maintained nodes on mainnet. We also advertise to deploy at most\none of the relays as a P2P node, which shields from possible consequences."),(0,o.kt)("p",null,"We recently finished design phase of eclipse evasion and we started\nimplementing it (see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?pane=issue&itemId=19819205"},"issue #3886")," for progress)."),(0,o.kt)("p",null,"Galois finished implementing Handshake extension which will allow to query\nnetwork protocol versions (see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"pr #4256"),")."),(0,o.kt)("p",null,"We also recently released a newer set of network packages to be integrated with\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," ",(0,o.kt)("inlineCode",{parentName:"p"},"master")," branch, this includes:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"* monoidal-synchronisation-0.1.0.2\n* cardano-client-0.1.0.2\n* network-mux-0.3.0.0\n* ouroboros-network-api-0.1.0.0\n* ouroboros-network-protocols-0.2.0.0\n* ouroboros-network-testing-0.2.0.1\n* ouroboros-network-mock-0.1.0.0\n* ouroboros-network-framework-0.3.0.0\n* ouroboros-network-0.4.0.0 (it doesn't not yet include the fix we included\n in `0.3.0.1`)\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/798d160f.80a9d032.js b/assets/js/798d160f.80a9d032.js new file mode 100644 index 0000000000..f0101bff04 --- /dev/null +++ b/assets/js/798d160f.80a9d032.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[82358],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,d=c["".concat(l,".").concat(m)]||c[m]||h[m]||o;return n?r.createElement(d,s(s({ref:t},p),{},{components:n})):r.createElement(d,s({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-10-18-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-10-18-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-18-consensus.md",source:"@site/blog/2023-10-18-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-10-18T00:00:00.000Z",formattedDate:"October 18, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.65,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-10-18-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-10-20-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-10-18-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"UTxO-HD",id:"utxo-hd",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Support",id:"support",level:3}],p={toc:u},c="wrapper";function h(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the past two weeks the Consensus team received additional benchmark results for the UTxO-HD feature that show the resource usage for the in-memory backend is not satisfactory for a mainnet release, and we need to wait on the implementation of a new infrastructure to benchmark the LMDB backend (not likely to happen before next year). While we wait on this, we are evaluating the feasibility of making the UTxO-HD feature switchable, which will enable us to release it as an experimental feature. On the Genesis front we produced the first draft for a Survivable Eclipse Duration Model. We released version 8.5.0 of Cardano node, resumed work on subpar handling of blocks from the future, and improved our tracing system to assist problem troubleshooting in the node."),(0,a.kt)("h3",{id:"utxo-hd"},"UTxO-HD"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The Plutus workload benchmark for the in-memory backend ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/203#issuecomment-1768560330"},"showed no regressions")," for the metrics of interest, but it does show an increase in resource usage."),(0,a.kt)("li",{parentName:"ul"},"We got additional ad-hoc ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/issues/5495#issuecomment-1768593069"},"measurements")," on memory UTxO-HD consumption. The memory usage of the in-memory backend is not satisfactory for a release. The memory usage of the LMDB backend is considerably lower, but we need to see how much lower we can bring it by running a node whose memory is constrained to 8GB."),(0,a.kt)("li",{parentName:"ul"},"We resumed work on an alternative solution that will make the UTxO-HD switchable. This will enable us to keep the baseline performance by totally disabling UTxO-HD, while allowing users to experiment with the feature if they wish to do so.")),(0,a.kt)("h3",{id:"genesis"},"Genesis"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We produced the first draft for a Survivable Eclipse Duration Model (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/422"},"422"),").")),(0,a.kt)("h3",{id:"support"},"Support"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/amesgen"},"Esgen")," finished his cycle as release engineer. Node ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.5.0-pre"},"8.5.0")," has been released."),(0,a.kt)("li",{parentName:"ul"},"We resumed work on the subpar handling of block from the future (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4251"},"4251"),")."),(0,a.kt)("li",{parentName:"ul"},"We prepared the integration of ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5502"},"new tracing events")," for the next node release. These tracing events will help debugging potential issues in the node (such as the previously mentioned ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4251"},"issue"),").")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/79d76848.b64e9809.js b/assets/js/79d76848.b64e9809.js new file mode 100644 index 0000000000..d66f89a049 --- /dev/null +++ b/assets/js/79d76848.b64e9809.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75379],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),c=s(r),h=a,m=c["".concat(l,".").concat(h)]||c[h]||d[h]||o;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=h;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[c]="string"==typeof e?e:a,i[1]=p;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Open-Source Update",slug:"2023-01-13-open-source",authors:"coot",tags:["open-source"],hide_table_of_contents:!1},i=void 0,p={permalink:"/quarterly/2023-01-13-open-source",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-01-13-open-source.md",source:"@site/quarterly/2023-01-13-open-source.md",title:"Open-Source Update",description:"Open Source Quarterly Update",date:"2023-01-13T00:00:00.000Z",formattedDate:"January 13, 2023",tags:[{label:"open-source",permalink:"/quarterly/tags/open-source"}],readingTime:2.215,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Open-Source Update",slug:"2023-01-13-open-source",authors:"coot",tags:["open-source"],hide_table_of_contents:!1},prevItem:{title:"Network Quarterly Update",permalink:"/quarterly/2023-01-13-network"},nextItem:{title:"Consensus Quarterly Update",permalink:"/quarterly/2022-11-15-consensus"}},l={authorsImageUrls:[void 0]},s=[{value:"Open Source Quarterly Update",id:"open-source-quarterly-update",level:2},{value:"2022-11 - 2023-01",id:"2022-11---2023-01",level:2},{value:"Summary",id:"summary",level:3},{value:"Detailed log",id:"detailed-log",level:3}],u={toc:s},c="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"open-source-quarterly-update"},"Open Source Quarterly Update"),(0,a.kt)("h2",{id:"2022-11---2023-01"},"2022-11 - 2023-01"),(0,a.kt)("h3",{id:"summary"},"Summary"),(0,a.kt)("p",null,"In the last quarter the open-source initiative delivered a comprehensive report\non the state of our repositories. As part of this work stream we\nidentified the key open-source repositories for the cardano project across all\nthe projects From a list of more than 500 repositories (some of which are\nforks) we identified key repositories which constitute the core of Cardano.\n20 of them were identified as to be transferred to the future MBO which will\ngovern Cardano development. Some where excluded (like ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim"},(0,a.kt)("inlineCode",{parentName:"a"},"io-sim"))," and\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols"},(0,a.kt)("inlineCode",{parentName:"a"},"typed-protocols")),"), to be govern by IOG, since they have a much broader\napplication than Cardano itself, and thus we think their open-source future\nwill be better outside of the Cardano umbrella."),(0,a.kt)("p",null,"Christian Taylor identified a number of ways we can improve our repositories to\nmake them more attractive for open-source contributions by analysing each of\nthem. This includes adding or improving various documentation files, like\n",(0,a.kt)("inlineCode",{parentName:"p"},"CONTRIBUTING")," files, adding code of conduct, improving readme files, issue\n& pull request templates etc. Christian also computed various interesting\nmetrics which gives a very good insight into the development practices: e.g.\naverage merge ratio, average number of reviews, comments and many more! The\npresentation is available ",(0,a.kt)("a",{parentName:"p",href:"https://docs.google.com/presentation/d/127IFEavlrZeeoFrVXFYWzSt0ugOkSL7isxjyM1vmMzQ"},"here"),"."),(0,a.kt)("p",null,"We followed with work on the ",(0,a.kt)("a",{parentName:"p",href:"https://input-output-hk.github.io/cardano-engineering-handbook/"},"Cardano Engineering Handbook"),". We included\na standard code of conduct which is now used by most important projects in the\nCardano space. We included ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),"'s security policy and added\na responsible disclosure policy. We also described how roles and\nresponsibilities should be clarified. This progress was made by\na collaborative effort of the Cardano Core, Plutus and Architecture teams, and\nit wouldn't be possible without Michael Peyton Jones, Arnaud Bailly, Kevin\nHammond, Jared Corduan and Marcin Szamotulski."),(0,a.kt)("p",null,"We also improved the documentation of key repositories, by adding description,\nimproving their ",(0,a.kt)("inlineCode",{parentName:"p"},"README")," file & ",(0,a.kt)("inlineCode",{parentName:"p"},"CONTRIBUTING")," files, adding code of conducts\nfollowing the ",(0,a.kt)("a",{parentName:"p",href:"https://input-output-hk.github.io/cardano-engineering-handbook/"},"Cardano Engineering Handbook"),". This includes improvements to:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network"},(0,a.kt)("inlineCode",{parentName:"a"},"ouroboros-network"))," (both ",(0,a.kt)("inlineCode",{parentName:"li"},"network")," & ",(0,a.kt)("inlineCode",{parentName:"li"},"consensus"),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger"},(0,a.kt)("inlineCode",{parentName:"a"},"cardano-ledger"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node"},(0,a.kt)("inlineCode",{parentName:"a"},"cardano-node")))),(0,a.kt)("p",null,"And also"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim"},(0,a.kt)("inlineCode",{parentName:"a"},"io-sim"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/typed-protocols"},(0,a.kt)("inlineCode",{parentName:"a"},"typed-protocols"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-prelude"},(0,a.kt)("inlineCode",{parentName:"a"},"cardano-prelude"))," (work in progress)")),(0,a.kt)("p",null,"The work was carried by Marcin Szamotulski, Addie Girouard and Jared Corduan. "),(0,a.kt)("p",null,"In this quarter we also identified a number of projects which can be published to\n",(0,a.kt)("inlineCode",{parentName:"p"},"Hackage")," (Haskell's package repository) or ",(0,a.kt)("inlineCode",{parentName:"p"},"crate")," (Rust package repository).\nThe list contains 21 packages, 2 of which (",(0,a.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/hedgehog-extras"},(0,a.kt)("inlineCode",{parentName:"a"},"hedgehog-extras"))," and\n",(0,a.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/quickcheck-dynamic"},(0,a.kt)("inlineCode",{parentName:"a"},"quickcheck-dynamic")),") are already published on Hackage and another 5 (from\nthe ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim"},(0,a.kt)("inlineCode",{parentName:"a"},"io-sim"))," repository) are close to be published."),(0,a.kt)("h3",{id:"detailed-log"},"Detailed log"),(0,a.kt)("p",null,"The progress of the open-source project is tracked in ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/60/views/1"},"this project"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/79ddb53e.bf5c0ed4.js b/assets/js/79ddb53e.bf5c0ed4.js new file mode 100644 index 0000000000..be07d4e092 --- /dev/null +++ b/assets/js/79ddb53e.bf5c0ed4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93360],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),u=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},k=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(r),k=n,h=c["".concat(l,".").concat(k)]||c[k]||m[k]||a;return r?o.createElement(h,i(i({ref:t},p),{},{components:r})):o.createElement(h,i({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=k;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var o=r(87462),n=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2024-01-22-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2024-01-22-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-22-network.md",source:"@site/blog/2024-01-22-network.md",title:"Network Team Update",description:"High level overview of sprint 53",date:"2024-01-22T00:00:00.000Z",formattedDate:"January 22, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.075,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-01-22-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-01-24-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-01-19-hydra"}},l={authorsImageUrls:[void 0]},u=[{value:"High level overview of sprint 53",id:"high-level-overview-of-sprint-53",level:2},{value:"Low level summary",id:"low-level-summary",level:2}],p={toc:u},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-53"},"High level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+53%22"},"sprint 53")),(0,n.kt)("p",null,"We integrated bootstrap peers with ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node")," in an experimental branch\n(","[cardano-node-5485]",", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4615"},"ouroboros-network-4615"),"). We continued working on\n",(0,n.kt)("inlineCode",{parentName:"p"},"tx-submission"),": ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network-3311"),"."),(0,n.kt)("p",null,"Karl Knutsson (CF) worked on peer sharing improvements: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4778"},"ouroboros-network-4778"),"."),(0,n.kt)("p",null,"Erik de Castro Lopo made ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," packages compile with ",(0,n.kt)("inlineCode",{parentName:"p"},"GHC-9.8"),":\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4727"},"ouroboros-network-4727"),"."),(0,n.kt)("p",null,"Nick Frisby (Tweag, Consensus Team), modified ",(0,n.kt)("inlineCode",{parentName:"p"},"local-state-query")," mini-protocol\nso that one can acquire the immutable tip and thus get information which is not\nsubject to rollbacks: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4765"},"ouroboros-network-4765"),"."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("p",null,"Other, less significant changes / improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"we helped diagnose ",(0,n.kt)("inlineCode",{parentName:"li"},"TVar")," memory leak when using ",(0,n.kt)("inlineCode",{parentName:"li"},"ghc-9.8"),". This will\nrequire more work from us in the near future, see ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4776"},"ouroboros-network-4776"),";"),(0,n.kt)("li",{parentName:"ul"},"we fixed a minor issues with ",(0,n.kt)("inlineCode",{parentName:"li"},"block-size")," in ",(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-network"),":\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4775"},"ouroboros-network-4775"),";"),(0,n.kt)("li",{parentName:"ul"},"we changed pipelining depth configuration to use ",(0,n.kt)("inlineCode",{parentName:"li"},"Word16")," (thanks to Eric de\nCastro Lopo): ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4774"},"ouroboros-network-4774"),";"),(0,n.kt)("li",{parentName:"ul"},"we changed pipelining depth QuickCheck generator: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4771"},"ouroboros-network-4771"),";"),(0,n.kt)("li",{parentName:"ul"},"we moved ",(0,n.kt)("inlineCode",{parentName:"li"},"configureOutboundConnection")," to ",(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-network")," as a private\nfunction: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4773"},"ouroboros-network-4773"),";"),(0,n.kt)("li",{parentName:"ul"},"we updated copyright information of network packages: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/Win32-network/pull/27"},"Win32-network-27"),",\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4761"},"ouroboros-network-4761"),";"),(0,n.kt)("li",{parentName:"ul"},"we merged a PR which added a test which could discover the bug fixed in\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4748"},"ouroboros-network-4748"),", see ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4757"},"ouroboros-network-4757"),".")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7a167eb1.f1d598c8.js b/assets/js/7a167eb1.f1d598c8.js new file mode 100644 index 0000000000..e9611861de --- /dev/null +++ b/assets/js/7a167eb1.f1d598c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73074],{47999:e=>{e.exports=JSON.parse('{"permalink":"/page/50","page":50,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/49","nextPage":"/page/51","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/7a263bfa.66fd51f3.js b/assets/js/7a263bfa.66fd51f3.js new file mode 100644 index 0000000000..0390aa38c2 --- /dev/null +++ b/assets/js/7a263bfa.66fd51f3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[98450],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>k});var r=o(67294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function i(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=r.createContext({}),p=function(e){var t=r.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(o),h=n,k=c["".concat(l,".").concat(h)]||c[h]||m[h]||a;return o?r.createElement(k,i(i({ref:t},u),{},{components:o})):r.createElement(k,i({ref:t},u))}));function k(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,i=new Array(a);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var p=2;p{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=o(87462),n=(o(67294),o(3905));const a={title:"Network Team Update",slug:"2023-10-27-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-10-27-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-27-network.md",source:"@site/blog/2023-10-27-network.md",title:"Network Team Update",description:"High-level overview of sprint 47",date:"2023-10-27T00:00:00.000Z",formattedDate:"October 27, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.765,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-10-27-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-10-27-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-10-27-sre"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 47",id:"high-level-overview-of-sprint-47",level:2},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"CI / Tests",id:"ci--tests",level:3},{value:"KeepAlive client",id:"keepalive-client",level:3},{value:"Galois",id:"galois",level:3},{value:"Cardano Network Service Assurance (CNSA)",id:"cardano-network-service-assurance-cnsa",level:3},{value:"New CHaP Release",id:"new-chap-release",level:3},{value:"More details",id:"more-details",level:2},{value:"CI / Tests",id:"ci--tests-1",level:3},{value:"Release Process",id:"release-process",level:3}],u={toc:p},c="wrapper";function m(e){let{components:t,...o}=e;return(0,n.kt)(c,(0,r.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-47"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+47%22"},"sprint 47")),(0,n.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,n.kt)("p",null,"We continued to review the process of bootstrap peers, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4555"},"ouroboros-network#4555")),(0,n.kt)("h3",{id:"ci--tests"},"CI / Tests"),(0,n.kt)("p",null,"We investigated our CI issues. We found a memory leak in ",(0,n.kt)("inlineCode",{parentName:"p"},"typed-protocols"),"\nfunction used for testing codecs which triggered out of memory manager (OOM) on\nsome platforms (",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/43"},"typed-protocols#43"),"); we also found a bug in the connection manager which resulted in CI\n",(0,n.kt)("inlineCode",{parentName:"p"},"timeouts")," (see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4696/commits/010d9b2bd76356373d8c139eaedd8aea7ad90680"},"connection-manager-fix"),"). "),(0,n.kt)("h3",{id:"keepalive-client"},"KeepAlive client"),(0,n.kt)("p",null,"We found two small issues with the keep-alive client, which were addressed\nby Karl Knutsson (",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"Cardano Foundation"),"), ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4689"},"ouroboros-network#4689"),"."),(0,n.kt)("h3",{id:"galois"},"Galois"),(0,n.kt)("p",null,"We merged two large PRs prepared by ",(0,n.kt)("a",{parentName:"p",href:"https://galois.com/"},"Galois"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4660"},"inspect ",(0,n.kt)("inlineCode",{parentName:"a"},"error")," call sites")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4663"},"implement micro benchmarks for ",(0,n.kt)("inlineCode",{parentName:"a"},"PeerMetrics")))),(0,n.kt)("h3",{id:"cardano-network-service-assurance-cnsa"},"Cardano Network Service Assurance (CNSA)"),(0,n.kt)("p",null,"Galois made the following progress on CNSA:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"a simple ","[InfuxDB]"," database backend has been added;"),(0,n.kt)("li",{parentName:"ul"},"the documentation has been updated;"),(0,n.kt)("li",{parentName:"ul"},"internal improvements to the code;"),(0,n.kt)("li",{parentName:"ul"},'progress on a new "CSNA analysis" that provides, for each sampler node, the\nblock download throughput in bytes over time.')),(0,n.kt)("h3",{id:"new-chap-release"},"New CHaP Release"),(0,n.kt)("p",null,"We cut a new release of ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-netowrk")," packages to ",(0,n.kt)("inlineCode",{parentName:"p"},"CHaP"),": ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages/pull/547"},"chap#547")),(0,n.kt)("h2",{id:"more-details"},"More details"),(0,n.kt)("h3",{id:"ci--tests-1"},"CI / Tests"),(0,n.kt)("p",null,"We improved the memory footprint of some of our tests by analysing a stream of\n",(0,n.kt)("inlineCode",{parentName:"p"},"IOSim")," traces without retaining them, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4696"},"ouroboros-network#4696")),(0,n.kt)("p",null,"As a safety measure, we introduced an upper bound for heap memory used by test\nartefacts in our ",(0,n.kt)("inlineCode",{parentName:"p"},"nix")," tests. We use ",(0,n.kt)("inlineCode",{parentName:"p"},"200MB")," limit for all tests except for\n",(0,n.kt)("inlineCode",{parentName:"p"},"network-mux")," tests which use ",(0,n.kt)("inlineCode",{parentName:"p"},"350MB")," limit, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4702"},"ouroboros-network#4702"),"."),(0,n.kt)("p",null,"We refactored one of our tests to use ephemeral ports thus allowing it to\nrun concurrently, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4702"},"ouroboros-network#4702"),"."),(0,n.kt)("p",null,"We merged ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4623"},"ouroboros-network#4623")," which fixes a bunch of test failures."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4694"},"inbound-governor: connection leak")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4607"},"connection-manager: assertion failure")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4605"},"not released connection"))),(0,n.kt)("p",null,"All of them were due to a bug in test logic rather than a bug in production\ncode."),(0,n.kt)("h3",{id:"release-process"},"Release Process"),(0,n.kt)("p",null,"We updated our release process & associated scripts, see\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4705"},"ouroboros-network#4705"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7a3449d6.c653ce97.js b/assets/js/7a3449d6.c653ce97.js new file mode 100644 index 0000000000..905e5fd232 --- /dev/null +++ b/assets/js/7a3449d6.c653ce97.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97673],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=s(a),m=n,d=c["".concat(p,".").concat(m)]||c[m]||h[m]||o;return a?r.createElement(d,i(i({ref:t},u),{},{components:a})):r.createElement(d,i({ref:t},u))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-01-05-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-01-05-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-05-hydra.md",source:"@site/blog/2024-01-05-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-01-05T00:00:00.000Z",formattedDate:"January 5, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.93,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-01-05-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-01-09-network"},nextItem:{title:"SRE Team Update",permalink:"/2024-01-05-sre"}},p={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],u={toc:s},c="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"In between the end-of-year holidays, the Hydra team completed the implementation\nof the Conway support feature, fixed a minor bug that was hindering tests from\nrunning on MacOS, and addressed a regression in the protocol-parameter formats\nused by the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node"),". They also worked on off-chain code for incremental\ndecommits, specifically focusing on transaction creation. Furthermore, they\nconducted a spike on implementing a Chess game using Hydra, with an experience\nreport provided."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fixed a regression on protocol-parameter formats used by the ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1218"},"#1226")),(0,n.kt)("li",{parentName:"ul"},"Fixed a minor bug prohibiting tests running on MacOS ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1218"},"#1218")),(0,n.kt)("li",{parentName:"ul"},"Complete conway support feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1227"},"#1227")),(0,n.kt)("li",{parentName:"ul"},"Transaction creation off-chain code for incremental decommits ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1218"},"#1218")),(0,n.kt)("li",{parentName:"ul"},"First spike on implementing a Chess game on Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/abailly/black-jack/blob/main/2023-experience-report.md"},"report"),", related to: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1098"},"#1098"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fully resolve protocol parameter misalignment ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1234"},"#1234")),(0,n.kt)("li",{parentName:"ul"},"Cut a release 0.15.0 to ship offline-mode and conway support"),(0,n.kt)("li",{parentName:"ul"},"Prepare demo for conway support"),(0,n.kt)("li",{parentName:"ul"},"Complete transaction creation and observation for incremental decommits"),(0,n.kt)("li",{parentName:"ul"},"Backend for a ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-explorer")," that can track all heads on-chain")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7a4b421f.9944f750.js b/assets/js/7a4b421f.9944f750.js new file mode 100644 index 0000000000..92c47fcb61 --- /dev/null +++ b/assets/js/7a4b421f.9944f750.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67452],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>u});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},h=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(t),h=a,u=p["".concat(s,".").concat(h)]||p[h]||m[h]||i;return t?r.createElement(u,o(o({ref:n},d),{},{components:t})):r.createElement(u,o({ref:n},d))}));function u(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=h;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=t(87462),a=(t(67294),t(3905));const i={title:"Performance & tracing update",slug:"2023-04-19-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o="High level summary",l={permalink:"/2023-04-19-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-19-performance-and-tracing.md",source:"@site/blog/2023-04-19-performance-and-tracing.md",title:"Performance & tracing update",description:"* Benchmarking: We performed a series of benchmarks aimed at the new 8.0 release branch and built a timeline from the 1.35 releases to that branch.",date:"2023-04-19T00:00:00.000Z",formattedDate:"April 19, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.575,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-04-19-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-04-19-consensus"},nextItem:{title:"Cardano Block Production Temporary Outage",permalink:"/2023-04-17-ledger"}},s={authorsImageUrls:[void 0]},c=[{value:"Detailed manifest",id:"detailed-manifest",level:3},{value:"GHC profiling inside workbench",id:"ghc-profiling-inside-workbench",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],d={toc:c},p="wrapper";function m(e){let{components:n,...t}=e;return(0,a.kt)(p,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We performed a series of benchmarks aimed at the new ",(0,a.kt)("inlineCode",{parentName:"li"},"8.0")," release branch and built a timeline from the ",(0,a.kt)("inlineCode",{parentName:"li"},"1.35")," releases to that branch."),(0,a.kt)("li",{parentName:"ul"},"New tracing: Work on safeguarding the new tracing system performance-wise is ongoing. A practical use case for data points is being tackled with Galois."),(0,a.kt)("li",{parentName:"ul"},"Analysis pipeline: We're working on automatically obtaining a detailed manifest for each run."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: The library for benchmarking Plutus scripts has been merged. Also, we've laid the ground for including GHC profiling data into our workbench."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: The first iteration of a distributed / multi-client Nomad cluster has been merged.")),(0,a.kt)("h1",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We have performed various cluster runs targeting the ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0")," release branch. That way we were able to catch an inconsistency in behaviour early on. This led to the creation of a specialized workbench profile ",(0,a.kt)("inlineCode",{parentName:"p"},"epoch-transition")," for local reproduction of what we observed on the benchmarking cluster. "),(0,a.kt)("p",null,"Furthermore, we bridged the gap between the run data from the ",(0,a.kt)("inlineCode",{parentName:"p"},"1.35.x")," releases to the the new ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0.x")," release branch. This included walking the\n",(0,a.kt)("inlineCode",{parentName:"p"},"master")," branch backwards and pinpointing the order, as well as the dates and commits of all relevant component bumps. This timeline is absolutely crucial\nin locating possible regressions for the new release branch, as it provides the exact points in history we would need to target with a comprehensive set of\nbenchmarks."),(0,a.kt)("h1",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"In-depth performance analysis of the new tracing system has already yielded results and helped us smoothing some rough edges. However, this work is still\nongoing. "),(0,a.kt)("p",null,"In coordination with Galois, who are developing a system assurance service by observing a number of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),"s, we're working with the implementation\nof data points which the node provides during runtime. While making the view on data points expressive enough for the external service, the computational\nburden inside the node needs to be kept to an absolute minimum. We're currently in ideation about whether ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," could be extended with a richer\nfeature set to that end."),(0,a.kt)("h1",{id:"infrastructure--analysis"},"Infrastructure & Analysis"),(0,a.kt)("h3",{id:"detailed-manifest"},"Detailed manifest"),(0,a.kt)("p",null,"A run manifest documents, among other things, the component dependencies that were used for a specific build the run has been performed with.\nThese dependencies come from different package sources, have different versioning policies, and an identical package version might provide different\nperformance characteristics depending on the exact commit used for the build. This manifest will greatly increase insight into where changes in measured behaviour might have originated\nby making all component bumps visible and accessible."),(0,a.kt)("h3",{id:"ghc-profiling-inside-workbench"},"GHC profiling inside workbench"),(0,a.kt)("p",null,"The workbench has been equipped with a new ",(0,a.kt)("inlineCode",{parentName:"p"},"-profnix")," profile flavour. This enforces a ",(0,a.kt)("inlineCode",{parentName:"p"},"-fprof-auto")," build for all node-related packages. The type of\nprofiling data generated by the GHC runtime can be customized and will enter statistical analysis. The relevant PR for this new feature has already\nbeen merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),"."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"The added feature for a multi-client Nomad cluster greatly enhances how jobs are organized by the backend and mapped within specific instances.\nThis results in great maintainability while not giving up on flexibility. However, work on that feature is still ongoing."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7a6174e7.eb3f5dca.js b/assets/js/7a6174e7.eb3f5dca.js new file mode 100644 index 0000000000..6e82849438 --- /dev/null +++ b/assets/js/7a6174e7.eb3f5dca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[44377],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>c});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),d=n,c=h["".concat(s,".").concat(d)]||h[d]||m[d]||a;return r?i.createElement(c,o(o({ref:t},u),{},{components:r})):i.createElement(c,o({ref:t},u))}));function c(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-08-28-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-08-28-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-28-mithril.md",source:"@site/blog/2023-08-28-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-08-28T00:00:00.000Z",formattedDate:"August 28, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-08-28-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-08-29-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2023-08-25-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team created an explorer page with the registered signers to give recognition to the SPOs already running on mainnet. They also worked on refactoring and standardizing errors in the Mithril nodes, and they enhanced the clarity and reduced verbosity of the logs for the signer and aggregator nodes. Additionally, they started working on the implementation of ",(0,n.kt)("inlineCode",{parentName:"p"},"zstandard")," compression of the snapshot archive, and streaming its download and decompression in the client."),(0,n.kt)("p",null,"Finally, they implemented machine readable progress information in the client, and streamlined the process of verifying the registration status of a signer. "),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Create explorer page with registered signers")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1097"},"#1097")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Simplify logs on the Signer/Aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1106"},"#1106")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Refactor (de)serialization of crypto entities")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/668"},"#668")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Mithril client last snapshot download")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1078"},"#1078")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Use the '/signers/registered' route to verify if a signer is registered")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1152"},"#1152")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Provide progress information with '--json' option in Client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1095"},"#1095")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Use 'zstandard' compression for snapshot archives")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/876"},"#876")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Make client download and extract the archive simultaneously")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1115"},"#1115"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7a7e39bb.df609b06.js b/assets/js/7a7e39bb.df609b06.js new file mode 100644 index 0000000000..7d2d3a4eb2 --- /dev/null +++ b/assets/js/7a7e39bb.df609b06.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[61660],{3905:(e,t,i)=>{i.d(t,{Zo:()=>h,kt:()=>c});var r=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},h=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var i=e.components,a=e.mdxType,n=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=s(i),d=a,c=u["".concat(p,".").concat(d)]||u[d]||m[d]||n;return i?r.createElement(c,o(o({ref:t},h),{},{components:i})):r.createElement(c,o({ref:t},h))}));function c(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=i.length,o=new Array(n);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>l,toc:()=>s});var r=i(87462),a=(i(67294),i(3905));const n={title:"Mithril Team Update",slug:"2023-05-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-17-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-17-mithril.md",source:"@site/blog/2023-05-17-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-05-17T00:00:00.000Z",formattedDate:"May 17, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.555,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-05-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-05-17-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2023-05-17-performance-and-tracing"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],h={toc:s},u="wrapper";function m(e){let{components:t,...i}=e;return(0,a.kt)(u,(0,r.Z)({},h,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The Mithril team released a new ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2318.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2318.0"))," distribution that implements the last migration phase of the aggregator stores and embeds a bug fix for the signer registration. They also completed the implementation of the interfaces defined to provide certification for the immutable full snapshot of Cardano files and Mithril stake distribution. They finalized the implementation of the framework to sign generic types of data in the aggregator and the signer nodes. They also updated the runtime of the aggregator to handle open messages associated with the available types, and evolved the REST API of the aggregator to deliver the artifacts for these types. Additionally, they have upgraded the network explorer in order to display the artifacts and certificates for these different types."),(0,a.kt)("p",null,"Finally, the team started designing an on-chain decentralized signer registration process, and started implementing the new stake distribution computation available from Cardano node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0.0")," (along with the backward compatibility for previous ",(0,a.kt)("inlineCode",{parentName:"p"},"1.35.x")," versions)."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Worked on the epic that designs and implements generic signing/verification of entity services ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/780"},"#780"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the handling of multiple types of signed entity in the aggregator runtime ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/907"},"#907")),(0,a.kt)("li",{parentName:"ul"},"Completed the adaptation of the signer runtime to use the signable builder service ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/854"},"#854")),(0,a.kt)("li",{parentName:"ul"},"Completed the adaptation of the aggregator runtime to use the artifact builder service ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/869"},"#869")),(0,a.kt)("li",{parentName:"ul"},"Completed the appending of the next AVK to all protocol messages ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/888"},"#888")),(0,a.kt)("li",{parentName:"ul"},"Completed the adaptation of the aggregator REST API to retrieve the list/details of the artifacts produced ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/893"},"#893")),(0,a.kt)("li",{parentName:"ul"},"Completed the adaptation of the explorer to handle new artifact routes of the aggregator ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/927"},"#927")))),(0,a.kt)("li",{parentName:"ul"},"Worked on the epic that implements the computation of the stake distribution for ",(0,a.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/880"},"#880"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the implementation of the new stake distribution computation in the chain observer ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/919"},"#919")),(0,a.kt)("li",{parentName:"ul"},"Worked on upgrading the Cardano node to ",(0,a.kt)("inlineCode",{parentName:"li"},"8.0.0")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/920"},"#920"))))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7b261353.9f2c4dc2.js b/assets/js/7b261353.9f2c4dc2.js new file mode 100644 index 0000000000..a8905e78a7 --- /dev/null +++ b/assets/js/7b261353.9f2c4dc2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50857],{36396:e=>{e.exports=JSON.parse('{"permalink":"/tags/mithril/page/8","page":8,"postsPerPage":5,"totalPages":13,"totalCount":63,"previousPage":"/tags/mithril/page/7","nextPage":"/tags/mithril/page/9","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/7ba00404.4ff26f8d.js b/assets/js/7ba00404.4ff26f8d.js new file mode 100644 index 0000000000..9dd2374b5e --- /dev/null +++ b/assets/js/7ba00404.4ff26f8d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96907],{20117:e=>{e.exports=JSON.parse('{"permalink":"/page/79","page":79,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/78","nextPage":"/page/80","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/7c359f4d.02316724.js b/assets/js/7c359f4d.02316724.js new file mode 100644 index 0000000000..6f600ab061 --- /dev/null +++ b/assets/js/7c359f4d.02316724.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[77696],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>y});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),m=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=m(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=m(r),d=a,y=u["".concat(i,".").concat(d)]||u[d]||c[d]||s;return r?n.createElement(y,o(o({ref:t},p),{},{components:r})):n.createElement(y,o({ref:t},p))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,o=new Array(s);o[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var m=2;m{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var n=r(87462),a=(r(67294),r(3905));const s={title:"System Test Team Update",slug:"2023-01-13-system-test",authors:"dorin100",tags:["system-test"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-13-system-test",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-13-system-test.md",source:"@site/blog/2023-01-13-system-test.md",title:"System Test Team Update",description:"High level summary",date:"2023-01-13T00:00:00.000Z",formattedDate:"January 13, 2023",tags:[{label:"system-test",permalink:"/tags/system-test"}],readingTime:.91,hasTruncateMarker:!1,authors:[{name:"Dorin Solomon",title:"System Test Team Lead",url:"https://github.com/dorin100",imageURL:"https://github.com/dorin100.png",key:"dorin100"}],frontMatter:{title:"System Test Team Update",slug:"2023-01-13-system-test",authors:"dorin100",tags:["system-test"],hide_table_of_contents:!1},prevItem:{title:"Node Release Team Update",permalink:"/2023-01-13-release"},nextItem:{title:"Mithril Team Update",permalink:"/2023-01-12-mithril"}},i={authorsImageUrls:[void 0]},m=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Framework improvements:",id:"framework-improvements",level:3},{value:"Node:",id:"node",level:3},{value:"DB-Sync:",id:"db-sync",level:3}],p={toc:m},u="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the ",(0,a.kt)("em",{parentName:"p"},"P2P Single\nRelay")," functionality."),(0,a.kt)("p",null,"We also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level."),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"framework-improvements"},"Framework improvements:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"extended the ",(0,a.kt)("em",{parentName:"li"},"cardano-node-tests")," with the ability for anybody to fork the repo and ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/readme.html"},"run all our System Tests on GitHub Actions")),(0,a.kt)("li",{parentName:"ul"},"added 2 new nightly pipelines - nightly-mixed and nightly-p2p - ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/test_results/nightly_system_tests.html"},"details here")),(0,a.kt)("li",{parentName:"ul"},"some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;")),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"}," === 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) ===\n to\n === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===")),(0,a.kt)("h3",{id:"node"},"Node:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled"),(0,a.kt)("li",{parentName:"ul"},"started the preparations for testing the next tag - ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.5_rc1/src_docs/source/test_results/node/tag_1_35_5_rc1.rst"},"details here"))),(0,a.kt)("h3",{id:"db-sync"},"DB-Sync:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"some improvements on db-sync sync tests")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7c54274f.bf507112.js b/assets/js/7c54274f.bf507112.js new file mode 100644 index 0000000000..1c6be9200d --- /dev/null +++ b/assets/js/7c54274f.bf507112.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[49599],{69691:e=>{e.exports=JSON.parse('{"permalink":"/tags/db-sync/page/2","page":2,"postsPerPage":5,"totalPages":4,"totalCount":16,"previousPage":"/tags/db-sync","nextPage":"/tags/db-sync/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/7c78252e.50f7363b.js b/assets/js/7c78252e.50f7363b.js new file mode 100644 index 0000000000..e6b78756d6 --- /dev/null +++ b/assets/js/7c78252e.50f7363b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[69354],{93417:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/7c785843.4012a532.js b/assets/js/7c785843.4012a532.js new file mode 100644 index 0000000000..8745fbc3ff --- /dev/null +++ b/assets/js/7c785843.4012a532.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54629],{20632:e=>{e.exports=JSON.parse('{"permalink":"/tags/consensus/page/6","page":6,"postsPerPage":5,"totalPages":9,"totalCount":45,"previousPage":"/tags/consensus/page/5","nextPage":"/tags/consensus/page/7","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/7c815b5e.3f0a8932.js b/assets/js/7c815b5e.3f0a8932.js new file mode 100644 index 0000000000..2e5fbe3fc4 --- /dev/null +++ b/assets/js/7c815b5e.3f0a8932.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[59318],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(n),h=a,d=c["".concat(l,".").concat(h)]||c[h]||m[h]||o;return n?r.createElement(d,i(i({ref:t},p),{},{components:n})):r.createElement(d,i({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:a,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2022-10-05-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2022-10-05-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-05-consensus.md",source:"@site/blog/2022-10-05-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2022-10-05T00:00:00.000Z",formattedDate:"October 5, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.825,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-10-05-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-10-14-ledger"},nextItem:{title:"DB Sync Team Update",permalink:"/2022-10-04-db-sync"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Executive summary",id:"executive-summary",level:2},{value:"Additional information",id:"additional-information",level:2},{value:"Genesis",id:"genesis",level:3}],p={toc:u},c="wrapper";function m(e){let{components:t,...o}=e;return(0,a.kt)(c,(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the past two weeks, the consensus team worked on improving the\nperformance of the ChainSync jumping logic, which is needed for Genesis. We also\nrewrote the implementation of the mempool in the UTxO HD prototype which solved\nthe issues that prevented us from running system level benchmarks. Also on the\nUTxO HD front, we have an improved implementation of the sequence-of-differences\n(a crucial piece of UTxO HD), and we also elaborated a test sign-off list for\nthe UTxO HD feature."),(0,a.kt)("h2",{id:"executive-summary"},"Executive summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"With the latest implementation of ChainSync jumping we are closer to the\nbaseline performance. In particular, the prototype seems to benefit from the\nextra concurrency provided by additional capabilities."),(0,a.kt)("li",{parentName:"ul"},"We rewrote the implementation of the mempool in the UTxO HD prototype. This\nrewrite was required due to performance problems we observed when running the\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/blob/master/Makefile#L51"},"workbench"),".\nThese performance problems prevented us from running system level benchmarks.\nThe rewrite solved these issues. After the ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4049"},"UTxO-HD: mempool\nrewrite")," PR is\nmerged, we will contact the Benchmarking team so that they run the system\nlevel benchmarks."),(0,a.kt)("li",{parentName:"ul"},"The implementation of sequences of differences based on anti-diffs was\nintegrated into the UTxO HD prototype. It is pending\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4036"},"review")," and\nwe also need to run replay and syncing benchmarks to confirm that this will\ndeliver a performance improvement, as observed in our micro-benchmarks."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3944"},"The UTxO HD prototype\ninspection"),"\nresulted in a ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4045"},"list of\ntests"),"\nneeded for consensus to consider the UTxO HD prototype as fully tested.")),(0,a.kt)("h2",{id:"additional-information"},"Additional information"),(0,a.kt)("h3",{id:"genesis"},"Genesis"),(0,a.kt)("p",null,"Benchmarking setup: 50MBit/s, 50ms latency"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Red: baseline"),(0,a.kt)("li",{parentName:"ul"},"Green: Current CSJ prototype, 10 peers, jumps every 3000/f slots.")),(0,a.kt)("p",null,"As ChainSync Jumping involves many concurrent network operations at every jump,\nwe tried to run the node with 6 instead of the default 2 capabilties."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Orange: baseline with 6 capabilities"),(0,a.kt)("li",{parentName:"ul"},"Blue: CSJ prototype with 6 capabilities")),(0,a.kt)("p",null,"This diagram shows the respective syncing progress, starting at Genesis and\ncontinuing a good part into Shelley (with the dashed line indicating the\nByron-to-Shelley transition)."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(36276).Z,width:"654",height:"459"})),(0,a.kt)("p",null,"Further work includes whether we can tune the prototype to better handle few\ncapabilities, or to adapt the default number of capabilities (potentially just\nwhile syncing)."))}m.isMDXComponent=!0},36276:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/happy-path-csj-prototype-bench-1-2c33ba45f44a086415e703fe8f0f7ad1.svg"}}]); \ No newline at end of file diff --git a/assets/js/7c895c96.fc86622b.js b/assets/js/7c895c96.fc86622b.js new file mode 100644 index 0000000000..c1a91d5591 --- /dev/null +++ b/assets/js/7c895c96.fc86622b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[83036],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,d=c["".concat(l,".").concat(m)]||c[m]||h[m]||s;return n?r.createElement(d,o(o({ref:t},p),{},{components:n})):r.createElement(d,o({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:a,o[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const s={title:"Consensus Team Update",slug:"2023-09-06-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-09-06-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-06-consensus.md",source:"@site/blog/2023-09-06-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-09-06T00:00:00.000Z",formattedDate:"September 6, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.22,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-09-06-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-09-07-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-09-01-goedel"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"UTxO-HD",id:"utxo-hd",level:2},{value:"Tech debt",id:"tech-debt",level:2},{value:"Support",id:"support",level:2}],p={toc:u},c="wrapper";function h(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We were able to successfully run the system-level benchmarks for the UTxO-HD implementation, for the first time. There was an important regression in block forging performance that will have to be addressed before UTxO-HD is released. We also revisited the implementation of our query processing logic, which was needed to address the performance regression found in the query-by-address command. The preliminary performance results show that now the performance of this query is on-par with the Cardano baseline version, but we need further confirmation.\nOn the Genesis front, we presented the grinding-aware safety argument for the proposed historical Cardano Genesis windows to the IOG Researchers.\nThe Consensus release engineer finished his rotation: version ",(0,a.kt)("inlineCode",{parentName:"p"},"8.3.0-pre")," of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," is releasing 2023 September 5."),(0,a.kt)("h2",{id:"utxo-hd"},"UTxO-HD"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We ran the first successful system-level benchmarks for UTxO-HD (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/203"},"#203"),") using the ",(0,a.kt)("em",{parentName:"li"},"in-memory")," backend.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We observed a factor 12 regression in the forging performance, which we will have to address. There are strong indications that the regression is due to the backing store accesses that take place when taking a mempool snapshot."),(0,a.kt)("li",{parentName:"ul"},"After the mempool regression is fixed the benchmarks need to be ran again."),(0,a.kt)("li",{parentName:"ul"},"System-level UTxO-HD benchmarks with the LMDB are still pending."))),(0,a.kt)("li",{parentName:"ul"},"UTxO-HD will eventually be necessary due to the growth of the UTxO set and other ledger state structures that live in memory at the moment. However, we are trying a strategy by which we could preserve the baseline performance of the node, in case SPOs and other node users are not ready to migrate yet (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/344"},"#344"),")."),(0,a.kt)("li",{parentName:"ul"},"We implemented a new way of processing queries at the hard-fork block level, which resolves the performance regression observed in ",(0,a.kt)("inlineCode",{parentName:"li"},"GetUTxOByAddress")," (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/205#issuecomment-1706878418"},"this comment"),"). Preliminary results are promising."),(0,a.kt)("li",{parentName:"ul"},"Regarding the roll out plan, UTxO-HD requires a significant change in the Consensus codebase. Even though we might be able to hide any potential performance impact in the node by keeping all data in memory (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/344"},"#344"),"), the Consensus component was significantly changed, so we might have to postpone releasing this feature to mitigate any risks of conflicting with the implementation of CIP-1694 and release of Conway.")),(0,a.kt)("h2",{id:"tech-debt"},"Tech debt"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We added tests that Consensus emits valid CBOR (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3099"},"#3099"),"). This helped us detect a couple of serialization bugs. The tests still need to be merged into the ",(0,a.kt)("inlineCode",{parentName:"li"},"main")," branch (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/323"},"#323"),").")),(0,a.kt)("h2",{id:"support"},"Support"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/nfrisby"},"Nick Frisby")," finished his release engineer rotation; ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node 8.3.0-pre")," is releasing 2023 September 5."),(0,a.kt)("li",{parentName:"ul"},"We helped to investigate a protocol version bug in Sanchonet (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3491"},"#3491"),")."),(0,a.kt)("li",{parentName:"ul"},"We started to implement the Network interface for bootstrap peer functionality, from which Genesis will benefit as well (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/91"},"#91"),".")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7ca6b5b4.6cf9a2f5.js b/assets/js/7ca6b5b4.6cf9a2f5.js new file mode 100644 index 0000000000..f227e2107b --- /dev/null +++ b/assets/js/7ca6b5b4.6cf9a2f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[59881],{13158:a=>{a.exports=JSON.parse('{"label":"performance-tracing","permalink":"/tags/performance-tracing","allTagsPath":"/tags","count":34}')}}]); \ No newline at end of file diff --git a/assets/js/7d9cdd40.00b650ff.js b/assets/js/7d9cdd40.00b650ff.js new file mode 100644 index 0000000000..1d25420c69 --- /dev/null +++ b/assets/js/7d9cdd40.00b650ff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11987],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-01-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-01-10-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-10-mithril.md",source:"@site/blog/2024-01-10-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-01-10T00:00:00.000Z",formattedDate:"January 10, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.34,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-01-10-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-01-10-ledger"},nextItem:{title:"Network Team Update",permalink:"/2024-01-09-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team worked on implementing the client in the explorer to enable direct verification of certificates from the browser. They also addressed the configuration issue in the signer node service, which occasionally resulted in signers not registering their keys after a restart. Additionally, the team kept implementing a mock aggregator to strengthen Mithril client tests in WASM, continued working on threat modeling and risk analysis for P2P networking, and progressed with the devnet upgrade to support the Conway era."),(0,i.kt)("p",null,"Finally, they worked on enhancing node communications between Mithril and Cardano and completed the upgrade of the Cardano node topology used in the Mithril networks' infrastructure."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Published a development blog post ",(0,i.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/01/03/signer-service-new-configuration/"},(0,i.kt)("strong",{parentName:"a"},"Mithril signer service new configuration"))),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Simplify Mithril client CLI download command")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1406"},"#1406")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Make all infra Cardano nodes use P2P topology")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1405"},"#1405")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement ",(0,i.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," adapter configuration in aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1396"},"#1396")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Fix signer node service setup")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1404"},"#1404")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement a fake standalone aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1397"},"#1397")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement the mithril client WASM package in the explorer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1409"},"#1409")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Light Wallet: Implement browser tests with fake aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1407"},"#1407")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Activate ",(0,i.kt)("inlineCode",{parentName:"strong"},"babbage"),"/",(0,i.kt)("inlineCode",{parentName:"strong"},"conway")," eras on ",(0,i.kt)("inlineCode",{parentName:"strong"},"devnet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1425"},"#1425")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Upgrade Cardano node to ",(0,i.kt)("inlineCode",{parentName:"strong"},"8.7.2"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1410"},"#1410")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Create a test network on ",(0,i.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7de7ce98.981a7a29.js b/assets/js/7de7ce98.981a7a29.js new file mode 100644 index 0000000000..3b2459e333 --- /dev/null +++ b/assets/js/7de7ce98.981a7a29.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9828],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>h});var a=t(67294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),c=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},m=function(e){var n=c(e.components);return a.createElement(s.Provider,{value:n},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),u=c(t),d=r,h=u["".concat(s,".").concat(d)]||u[d]||p[d]||i;return t?a.createElement(h,o(o({ref:n},m),{},{components:t})):a.createElement(h,o({ref:n},m))}));function h(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,o=new Array(i);o[0]=d;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var c=2;c{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var a=t(87462),r=(t(67294),t(3905));const i={title:"Performance & Tracing Q3 2023 Update",slug:"2023-Q3-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/quarterly/2023-Q3-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q3-performance-and-tracing.md",source:"@site/quarterly/2023-Q3-performance-and-tracing.md",title:"Performance & Tracing Q3 2023 Update",description:"2023-07 - 2023-09",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"performance-tracing",permalink:"/quarterly/tags/performance-tracing"}],readingTime:3.27,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Q3 2023 Update",slug:"2023-Q3-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"SRE Q2 2023 Update",permalink:"/quarterly/2023-Q2-sre"},nextItem:{title:"SRE Q3 2023 Update",permalink:"/quarterly/2023-Q3-sre"}},s={authorsImageUrls:[void 0]},c=[{value:"2023-07 - 2023-09",id:"2023-07---2023-09",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Release benchmarking",id:"release-benchmarking",level:4},{value:"UTxO-HD benchmarks",id:"utxo-hd-benchmarks",level:4},{value:"P2P benchmarks",id:"p2p-benchmarks",level:4},{value:"New nomad cluster",id:"new-nomad-cluster",level:4},{value:"New tracing system",id:"new-tracing-system",level:4},{value:"GHC9 performance",id:"ghc9-performance",level:4},{value:"Consensus QTAs",id:"consensus-qtas",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"Benchmarking:",id:"benchmarking",level:4},{value:"Performance",id:"performance",level:4},{value:"New tracing system",id:"new-tracing-system-1",level:4},{value:"UTxO-HD monitoring",id:"utxo-hd-monitoring",level:4},{value:"Nomad backend",id:"nomad-backend",level:4},{value:"Workbench",id:"workbench",level:4},{value:"Consensus component QTAs (co-development)",id:"consensus-component-qtas-co-development",level:4}],m={toc:c},u="wrapper";function p(e){let{components:n,...t}=e;return(0,r.kt)(u,(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-07---2023-09"},"2023-07 - 2023-09"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Release benchmarking"),(0,r.kt)("li",{parentName:"ul"},"Developing and running UTxO-HD benchmarks - in-memory flavour"),(0,r.kt)("li",{parentName:"ul"},"P2P benchmarks, facilitating rollout"),(0,r.kt)("li",{parentName:"ul"},"Production-readiness of the new Nomad cluster has been reached"),(0,r.kt)("li",{parentName:"ul"},"Optimization of and introspection capability for the new tracing system"),(0,r.kt)("li",{parentName:"ul"},"GHC9 performance investigation (and possible remedy)"),(0,r.kt)("li",{parentName:"ul"},"Conensus QTAs: first real-world application of prototype")),(0,r.kt)("h4",{id:"release-benchmarking"},"Release benchmarking"),(0,r.kt)("p",null,"Ongoing release benchmarking is a crucial safeguard to ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node"),"'s release cycle from a performance perspective. We've performed and analyzed benchmarks for node versions ",(0,r.kt)("inlineCode",{parentName:"p"},"8.2.x")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"8.5")," throughout Q3."),(0,r.kt)("h4",{id:"utxo-hd-benchmarks"},"UTxO-HD benchmarks"),(0,r.kt)("p",null,"Targeting a specific new feature in benchmarks requires development effort and fine-tuning the machinery. In Q3, we achieved that for the in-memory flavour of UTxO-HD, enabling benchmark delivery."),(0,r.kt)("h4",{id:"p2p-benchmarks"},"P2P benchmarks"),(0,r.kt)("p",null,"In Q3, we performed additional P2P benchmarks to facilitate the comprehensive rollout of that feature."),(0,r.kt)("h4",{id:"new-nomad-cluster"},"New nomad cluster"),(0,r.kt)("p",null,"The new hardware cluster for benchmarks, which is controlled through the new nomad backend, has received\nvarious rounds of validation and adjustments in Q3 - in addition to finalizing integration with the rest\nof our pipeline. The confidence in metrics gathered on the cluster is now sufficient for us to consider it\nready for production use."),(0,r.kt)("h4",{id:"new-tracing-system"},"New tracing system"),(0,r.kt)("p",null,"Our new tracing system has received various rounds of optimization in Q3. We could verify in our benchmarks that\nit is roughly on par with the legacy system while offering a richer feature set and greater flexibility. "),(0,r.kt)("p",null,"Additionally, in Q3 we equipped the system with an introspection capability. This is now used for generating\nend user documentation that stays in-sync with definitions in code, and for automated consistency checking of the entire system."),(0,r.kt)("h4",{id:"ghc9-performance"},"GHC9 performance"),(0,r.kt)("p",null,"In Q3, a joint investigation with DevX into GHC9's behaviour revealed where and how GHC9 misses opportunities for\noptimization of generated code. This led to an approach to annotate our codebase accordingly to re-enable\nthose optimizations - which is still being validated."),(0,r.kt)("h4",{id:"consensus-qtas"},"Consensus QTAs"),(0,r.kt)("p",null,"In collaboration with Consensus and DevX, we advanced the Consensus QTAs prototype capturing ledger operations'\nperformance characteristics. It's now applicable, and being applied, to a real-world task - namely\ngathering evidence of the effect of aforementioned changes allowing for performant GHC9 builds."),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"benchmarking"},"Benchmarking:"),(0,r.kt)("p",null,"In Q4, the focus will be on:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"facilitating the next mainnet release"),(0,r.kt)("li",{parentName:"ul"},"benchmarking runs in the Conway era"),(0,r.kt)("li",{parentName:"ul"},"developing benchmarks / workloads for Conway-exclusive actions"),(0,r.kt)("li",{parentName:"ul"},"implementing a specialized benchmark setup for the UTxO-HD on-disk variant"),(0,r.kt)("li",{parentName:"ul"},"developing new Plutus benchmarks to safeguard Plutus V3"),(0,r.kt)("li",{parentName:"ul"},"benchmarks regarding the rollout of P2P")),(0,r.kt)("h4",{id:"performance"},"Performance"),(0,r.kt)("p",null,"For certain blocking performance issues we've located the cause, or even found a solution in a cross-team effort. In Q4 we'll advance that work to ensure the ongoing\nrelease cycle for mainnet, as well as make GHC9 become a viable release platform."),(0,r.kt)("h4",{id:"new-tracing-system-1"},"New tracing system"),(0,r.kt)("p",null,"For the new tracing system, we'll finalize optimization - current results are already on par with the legacy system. Furthermore, we will finish up comprehensive documentation, as well as description of a recommended setup, for which we can provide initial support."),(0,r.kt)("h4",{id:"utxo-hd-monitoring"},"UTxO-HD monitoring"),(0,r.kt)("p",null,"We'll augment our analysis pipeline so it can process monitoring data from UTxO-HD nodes connected to mainnet in a meaningful way."),(0,r.kt)("h4",{id:"nomad-backend"},"Nomad backend"),(0,r.kt)("p",null,"From Q4 on, this backend will be in production use. We plan on adding various UX and flexibility improvements, and further fine-tuning some profiles for nomad."),(0,r.kt)("h4",{id:"workbench"},"Workbench"),(0,r.kt)("p",null,"We will prepare for a future move of our performance workbench into a separate project. This entails restructuring, refactoring and reimplementation of certain few components that currently assume to always be in sync with ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node"),"."),(0,r.kt)("h4",{id:"consensus-component-qtas-co-development"},"Consensus component QTAs (co-development)"),(0,r.kt)("p",null,"In Q4 there will be ongoing work with and support for the existing prototype. We plan to identify a fixed set of input data that yields results of high informative value, and to formalize the process to a point that enables future automation."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7de83161.4e86e9d8.js b/assets/js/7de83161.4e86e9d8.js new file mode 100644 index 0000000000..ee3ee9cca4 --- /dev/null +++ b/assets/js/7de83161.4e86e9d8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7968],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),m=o,h=p["".concat(l,".").concat(m)]||p[m]||d[m]||a;return n?r.createElement(h,s(s({ref:t},u),{},{components:n})):r.createElement(h,s({ref:t},u))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,s=new Array(a);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var r=n(87462),o=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-11-15-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-11-15-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-15-consensus.md",source:"@site/blog/2023-11-15-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-11-15T00:00:00.000Z",formattedDate:"November 15, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.34,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-11-15-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-11-16-network"},nextItem:{title:"Mithril Team Update",permalink:"/2023-11-15-mithril"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"Over the last two weeks, we managed to run a UTxO-HD capable node in ",(0,o.kt)("em",{parentName:"p"},"legacy mode"),", which maintains the baseline memory usage while keeping all the ledger state in memory (as the current node does).\nThis ",(0,o.kt)("em",{parentName:"p"},"legacy mode")," could provide an alternative for releasing a UTxO-HD capable node where people can choose whether to store the large part of the UTxO set on disk or not.\nHowever, legacy mode involves code duplication, requires several weeks of work before it is production ready (more integration and testing). Moreover, we will not release UTxO-HD before Conway to avoid the risk of delaying the latter.\nOn the other hand, to integrate the LSM-tree backend for UTxO-HD we need to redesign the Consensus storage layer, and this new design might enable us to implement an alternative in-memory backing store that will have a very similar performance and resource requirements as the current Cardano node.\nTherefore, during the coming months we will focus our efforts on the redesign of the storage layer and the LSM-tree backend."),(0,o.kt)("p",null,"On the Genesis front, we reviewed the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/434"},"peer simulator")," for Genesis tests, which was implemented by Tweag and was signed-off by the Consensus team."),(0,o.kt)("p",null,"We also continued our work on improving the handling of blocks from the future. We presented possible approaches to handling blocks from the future in the Chief Scientist Meeting at IOG, which was very well-received. The discussion with the IOG scientists touched upon the relationship of this approach to Ouroboros Chronos."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/jasagredo"},"Javier Sagredo")," continues his cycle as release engineer, and he is working on version 8.7 of Cardano node."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7e644b1f.d69ffe3a.js b/assets/js/7e644b1f.d69ffe3a.js new file mode 100644 index 0000000000..3c206a21e0 --- /dev/null +++ b/assets/js/7e644b1f.d69ffe3a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[60375],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),h=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=h(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=h(a),d=n,m=u["".concat(s,".").concat(d)]||u[d]||c[d]||o;return a?r.createElement(m,l(l({ref:t},p),{},{components:a})):r.createElement(m,l({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:n,l[1]=i;for(var h=2;h{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-08-04-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-08-04-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-hydra.md",source:"@site/blog/2023-08-04-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.06,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-08-04-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-08-04-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-08-04-ledger"}},s={authorsImageUrls:[void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:h},u="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team achieved notable progress in various aspects of the\nproject. The team updated the use case section for auctions on the ",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/unstable/use-cases/"},"/unstable"),"\nbranch of the website, improving the understanding of Hydra","\u2019","s applicability."),(0,n.kt)("p",null,"From the development side, the team successfully completed event-sourced\npersistence, a key enhancement in the project","\u2019","s architecture which improves\noff-chain transaction processing performance. They also added a\n","\u201c","submit-transaction","\u201d"," endpoint to the API."),(0,n.kt)("p",null,"In addition to project-related progress, the team actively engaged in community\nreviews for several catalyst proposals related to Hydra and Mithril,\ncontributing to the wider Cardano ecosystem."),(0,n.kt)("p",null,"Finally, the full report for the month of July was also published ",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/monthly/2023-07"},"here"),"."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Published the ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-07"},"monthly report for July")),(0,n.kt)("li",{parentName:"ul"},"Updated the use case section for auctions (published on ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/unstable/use-cases/"},"/unstable")," branch)"),(0,n.kt)("li",{parentName:"ul"},"Completed event sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/913"},"#913")),(0,n.kt)("li",{parentName:"ul"},"Added a ","\u201c","submit-transaction","\u201d"," endpoint to the API ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/966"},"#966")),(0,n.kt)("li",{parentName:"ul"},"Community reviews for several catalyst proposals related to Hydra and Mithril"),(0,n.kt)("li",{parentName:"ul"},"Created a network testing tool (hydra-net) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1006"},"#1006"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update hydra-node to work with cardano-node version 8.x"),(0,n.kt)("li",{parentName:"ul"},"Remove the internal commit functionality"),(0,n.kt)("li",{parentName:"ul"},"Release version 0.12.0"),(0,n.kt)("li",{parentName:"ul"},"Update & streamline tutorial to work with latest version of hydra-node")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7e87972d.5a7be5be.js b/assets/js/7e87972d.5a7be5be.js new file mode 100644 index 0000000000..51b0f42b71 --- /dev/null +++ b/assets/js/7e87972d.5a7be5be.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,f=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Performance & tracing update",slug:"2022-11-30-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-30-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-30-performance-and-tracing.md",source:"@site/blog/2022-11-30-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2022-11-30T00:00:00.000Z",formattedDate:"November 30, 2022",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.95,hasTruncateMarker:!1,authors:[{name:"Serge Kosyrev",title:"Performance and Tracing Team Lead",url:"https://github.com/deepfire",imageURL:"https://github.com/deepfire.png",key:"deepfire"}],frontMatter:{title:"Performance & tracing update",slug:"2022-11-30-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-11-30-node-cli-api"},nextItem:{title:"Network Team Update",permalink:"/2022-11-28-network"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Performance",id:"performance",level:2},{value:"Tracing",id:"tracing",level:2},{value:"Infrastructure",id:"infrastructure",level:2}],p={toc:s},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release."),(0,a.kt)("li",{parentName:"ol"},"SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench."),(0,a.kt)("li",{parentName:"ol"},"The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks."),(0,a.kt)("li",{parentName:"ol"},"Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started."),(0,a.kt)("li",{parentName:"ol"},"Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.")),(0,a.kt)("h2",{id:"performance"},"Performance"),(0,a.kt)("p",null,"We have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don't see any significant performance changes. The component bumps are therefore clear for release."),(0,a.kt)("h2",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"For the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them.\nThe idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time."),(0,a.kt)("p",null,"To support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics."),(0,a.kt)("h2",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"Generation support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation."),(0,a.kt)("p",null,"In addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model."),(0,a.kt)("p",null,"The intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged.\nWe are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration."),(0,a.kt)("p",null,"We continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability."),(0,a.kt)("p",null,"We are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP."),(0,a.kt)("p",null,"As usual, a number of smaller workbench, data analysis & reporting improvements have been made."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7e9cd387.1a182b0c.js b/assets/js/7e9cd387.1a182b0c.js new file mode 100644 index 0000000000..b9cf80b6a3 --- /dev/null +++ b/assets/js/7e9cd387.1a182b0c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[89250],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=a,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||i;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:a,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const i={title:"Mithril Team Update",slug:"2024-02-14-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-02-14-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-14-mithril.md",source:"@site/blog/2024-02-14-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-02-14T00:00:00.000Z",formattedDate:"February 14, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.235,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-02-14-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-02-14-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2024-02-09-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the upgrade of the client library and the CLI to support the verification of Cardano transactions. They also released the new Mithril network running on SanchoNet. Additionally, the team rolled out a new feature of the Pallas chain observer (that now supports the retrieval of Mithril era markers), and kept investigating some flakiness occurring in the CI end-to-end tests."),(0,a.kt)("p",null,"Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and updated the Mithril network architecture documentation."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Published a development blog post ",(0,a.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/02/08/testing-sanchonet-network-available"},(0,a.kt)("strong",{parentName:"a"},"Mithril SanchoNet network released"))),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Implement transactions verification in client library")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1468"},"#1468")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Implement ",(0,a.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," commands in the client binary")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1469"},"#1469")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Create a test network on ",(0,a.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Update Mithril network architecture documentation")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1488"},"#1488")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Upgrade ",(0,a.kt)("inlineCode",{parentName:"strong"},"http")," dependency")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1474"},"#1474")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Extract database feature from common crate")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1492"},"#1492")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Some end to end tests are flaky in the CI")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1147"},"#1147")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Add an example crate for the ",(0,a.kt)("inlineCode",{parentName:"strong"},"CardanoTransactions")," type")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1495"},"#1495")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Generate automatic documentation for CLIs")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1471"},"#1471"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7ebab15c.7cf0fca6.js b/assets/js/7ebab15c.7cf0fca6.js new file mode 100644 index 0000000000..6bf7669549 --- /dev/null +++ b/assets/js/7ebab15c.7cf0fca6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[41088],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=u(r),s=n,d=m["".concat(p,".").concat(s)]||m[s]||h[s]||i;return r?a.createElement(d,o(o({ref:t},c),{},{components:r})):a.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2024-06-10-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-06-10-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-10-hydra.md",source:"@site/blog/2024-06-10-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-06-10T00:00:00.000Z",formattedDate:"June 10, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.735,hasTruncateMarker:!1,authors:[{name:"Daniel Firth",title:"Hydra Software Engineer",url:"https://github.com/locallycompact",imageURL:"https://github.com/locallycompact.png",key:"locallycompact"}],frontMatter:{title:"Hydra Team Update",slug:"2024-06-10-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-06-12-mithril"},nextItem:{title:"Ledger Team Update",permalink:"/2024-06-05-ledger"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this sprint?",id:"what-did-the-team-achieve-this-sprint",level:3},{value:"What are the goals of the next sprint?",id:"what-are-the-goals-of-the-next-sprint",level:3}],c={toc:u},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This sprint, the Hydra team updated the node to be compatible with cardano-node 8.11-pre. We continued work on increment decommits, investigating adversarial attacks on the smart contract and preparing it to be merged. We also discussed options for the incremental commit work, including designs for a ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-ledger"),"."),(0,n.kt)("p",null,"Next sprint we aim to merge incremental decommits and make further progress on the incremental commit design."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-sprint"},"What did the team achieve this sprint?"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update to cardano-node 8.11-pre ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1439"},"#1439")),(0,n.kt)("li",{parentName:"ul"},"Allow committing internal wallet utxos ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1442"},"#1442")),(0,n.kt)("li",{parentName:"ul"},"Rewrite introduction section and fknown issues section. ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1451"},"#1451")),(0,n.kt)("li",{parentName:"ul"},"Make specification editing in markdown possible ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1187"},"#1187")),(0,n.kt)("li",{parentName:"ul"},"Fix ignored hydra-plutus tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1458"},"#1458")),(0,n.kt)("li",{parentName:"ul"},"Re-open internal head with blueprint commits.")),(0,n.kt)("h3",{id:"what-are-the-goals-of-the-next-sprint"},"What are the goals of the next sprint?"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Incremental decommit ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1057"},"#1057")),(0,n.kt)("li",{parentName:"ul"},"Make progress on the design for incremental commit ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/199"},"#199")),(0,n.kt)("li",{parentName:"ul"},"Test combinations of decrement/close/fanout ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1390"},"#1390"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7f6d758e.8d735d17.js b/assets/js/7f6d758e.8d735d17.js new file mode 100644 index 0000000000..484b44424e --- /dev/null +++ b/assets/js/7f6d758e.8d735d17.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[88822],{72406:e=>{e.exports=JSON.parse('{"permalink":"/tags/security","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/7fa9de70.3da021b7.js b/assets/js/7fa9de70.3da021b7.js new file mode 100644 index 0000000000..062443d451 --- /dev/null +++ b/assets/js/7fa9de70.3da021b7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[38938],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(a),c=n,m=h["".concat(s,".").concat(c)]||h[c]||d[c]||i;return a?r.createElement(m,o(o({ref:t},u),{},{components:a})):r.createElement(m,o({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-11-17-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-11-17-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-17-hydra.md",source:"@site/blog/2023-11-17-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-11-17T00:00:00.000Z",formattedDate:"November 17, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.135,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-11-17-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Initial CIP 1694 Security Analysis and Responses",permalink:"/2023-11-20-cip1694"},nextItem:{title:"Performance & Tracing Update",permalink:"/2023-11-17-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:p},h="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team made several impactful updates. They addressed\nmisleading errors regarding collect com transactions, resolved a security\nadvisory (CVE-2023-42806), and simplified the Hydra Head protocol by using\ninline datums. The team also tackled minor inconsistencies in specifications and\nimplementation, documented reasons for potentially dropped close transactions by\nthe cardano-node, and collaborated with SundaeLabs on an offline mode for\n",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node"),". Additionally, they engaged in discussions with researchers about\nincremental de-/commits."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Removed misleading errors about collect com transactions ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/839"},"#839")),(0,n.kt)("li",{parentName:"ul"},"Addressed security advisory ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/security/advisories/GHSA-gr36-mc6v-72qq"},"CVE-2023-42806")," in PR ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1161"},"#1161")),(0,n.kt)("li",{parentName:"ul"},"Changed the head protocol to use inline datums, simplifying things in the hydra-node ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1162"},"#1162")),(0,n.kt)("li",{parentName:"ul"},"Addressed minor inconsistencies in spec and implementation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1104"},"#1104")),(0,n.kt)("li",{parentName:"ul"},"Documented why close transacations might be dropped by the cardano-node (can","\u2019","t fix) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1039"},"#1039")),(0,n.kt)("li",{parentName:"ul"},"Tidy up a few things here and there"),(0,n.kt)("li",{parentName:"ul"},"Worked with SundaeLabs on the offline mode for ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")),(0,n.kt)("li",{parentName:"ul"},"Discussed incremental de-/commits with researchers")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Start work on incremental decommits protocol specification ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1057"},"#1057")),(0,n.kt)("li",{parentName:"ul"},"Provide support to Hypix"),(0,n.kt)("li",{parentName:"ul"},"Address all ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/labels/bug%20%3Abug%3A"},"open bugs")),(0,n.kt)("li",{parentName:"ul"},"Release version 0.14.0 with ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/milestone/14?closed=1"},"this scope")),(0,n.kt)("li",{parentName:"ul"},"Update dependencies to prepare for Conway ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1114"},"#1114")),(0,n.kt)("li",{parentName:"ul"},"Shepherd off-line mode PR over the finish line"),(0,n.kt)("li",{parentName:"ul"},"Complete tidying up chain layer via stateless observation changes in hydra-node ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1096"},"#1096"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7faccef9.546a0a9b.js b/assets/js/7faccef9.546a0a9b.js new file mode 100644 index 0000000000..6878d04b47 --- /dev/null +++ b/assets/js/7faccef9.546a0a9b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75064],{3905:(e,r,t)=>{t.d(r,{Zo:()=>m,kt:()=>f});var n=t(67294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=n.createContext({}),s=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},m=function(e){var r=s(e.components);return n.createElement(l.Provider,{value:r},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,m=c(e,["components","mdxType","originalType","parentName"]),p=s(t),d=a,f=p["".concat(l,".").concat(d)]||p[d]||u[d]||o;return t?n.createElement(f,i(i({ref:r},m),{},{components:t})):n.createElement(f,i({ref:r},m))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=d;var c={};for(var l in r)hasOwnProperty.call(r,l)&&(c[l]=r[l]);c.originalType=e,c[p]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=t(87462),a=(t(67294),t(3905));const o={title:"Performance & Tracing Team Update",slug:"2022-10-28-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,c={permalink:"/2022-10-28-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-28-performance-and-tracing.md",source:"@site/blog/2022-10-28-performance-and-tracing.md",title:"Performance & Tracing Team Update",description:"High level summary",date:"2022-10-28T00:00:00.000Z",formattedDate:"October 28, 2022",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.155,hasTruncateMarker:!1,authors:[{name:"Serge Kosyrev",title:"Performance and Tracing Team Lead",url:"https://github.com/deepfire",imageURL:"https://github.com/deepfire.png",key:"deepfire"}],frontMatter:{title:"Performance & Tracing Team Update",slug:"2022-10-28-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2022-10-28-network"},nextItem:{title:"SRE Team Update",permalink:"/2022-08-12-sre"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Executive summary",id:"executive-summary",level:2}],m={toc:s},p="wrapper";function u(e){let{components:r,...t}=e;return(0,a.kt)(p,(0,n.Z)({},m,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"On the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline."),(0,a.kt)("p",null,"On the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario."),(0,a.kt)("h2",{id:"executive-summary"},"Executive summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The new tracing system public release is getting closer, as we're resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale."),(0,a.kt)("li",{parentName:"ul"},"The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment."),(0,a.kt)("li",{parentName:"ul"},"The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7fc8ff62.23c8dc51.js b/assets/js/7fc8ff62.23c8dc51.js new file mode 100644 index 0000000000..cc1229e2ad --- /dev/null +++ b/assets/js/7fc8ff62.23c8dc51.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32191],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>k});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),i=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},u=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=i(a),d=r,k=c["".concat(p,".").concat(d)]||c[d]||m[d]||o;return a?n.createElement(k,l(l({ref:t},u),{},{components:a})):n.createElement(k,l({ref:t},u))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=d;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[c]="string"==typeof e?e:r,l[1]=s;for(var i=2;i{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>i});var n=a(87462),r=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2024-01-19-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,s={permalink:"/2024-01-19-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-19-sre.md",source:"@site/blog/2024-01-19-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-01-19T00:00:00.000Z",formattedDate:"January 19, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.39,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-01-19-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-01-19-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2024-01-17-ledger"}},p={authorsImageUrls:[void 0]},i=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-monitoring",id:"cardano-monitoring",level:3},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Upstream Contributions",id:"upstream-contributions",level:2},{value:"Process-compose-flake",id:"process-compose-flake",level:3},{value:"Services-flake",id:"services-flake",level:3}],u={toc:i},c="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node 8.7.3 is now generally deployed to all testnet and mainnet environments\nmanaged by coretech SRE")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Dbsync and node stack process-compose jobs are now available from\ncardano-parts for users running ",(0,r.kt)("inlineCode",{parentName:"p"},"nix >= 2.17.0")," and nix ",(0,r.kt)("inlineCode",{parentName:"p"},"experimental-features\n= nix-command flakes fetch-closure"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"These can be run with:"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre"}," nix run github:input-output-hk/cardano-parts#run-process-compose-node-stack\n nix run github:input-output-hk/cardano-parts#run-process-compose-dbsync-$NETWORK\n"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"For more details, see the merged cardano-parts process-compose\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-parts/pull/28"},"PR")))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"cardano-monitoring"},"Cardano-monitoring"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds code documentation and some nix refactoring:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-monitoring/pull/1"},"cardano-monitoring-pull-1"))),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds a readme, switches to nonmoving gc for producers, plus misc improvements\nfrom cardano-parts:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/6"},"cardano-mainnet-pull-6"))),(0,r.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Merged a long standing branch converting legacy mainnet relays to p2p, node ->\n8.7.2, db-sync snapshots -> 13.1.1.3, and other improvements:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/pull/417"},"cardano-ops-pull-417"))),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds a readme, provides misc improvements, service optimizations, alert tuning,\nsql pool performance analysis fix, package updates:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/27"},"cardano-parts-pull-27")),(0,r.kt)("li",{parentName:"ul"},"Adds process-compose dbsync and node stacks:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/28"},"cardano-parts-pull-28"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Updates the readme, adds mainnet missedSlot testing, rotates KES on 4 networks,\nplus misc improvements from cardano-parts:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/13"},"cardano-playground-pull-13")),(0,r.kt)("li",{parentName:"ul"},"Adds process-compose dbsync and node stacks from cardano-parts flakeModule:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/14"},"cardano-playground-pull-14"))),(0,r.kt)("h2",{id:"upstream-contributions"},"Upstream Contributions"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Contributions to upstream process-compose related repos were made in order to\ncomplete the process-compose dbsync and node stacks in cardano-parts,\nincluding the following:")),(0,r.kt)("h3",{id:"process-compose-flake"},"Process-compose-flake"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds apiServer process-compose cli option:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/Platonic-Systems/process-compose-flake/pull/54"},"process-compose-flake-pull-54")),(0,r.kt)("li",{parentName:"ul"},"Add a pre- and post- hook for the process-compose wrapper:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/Platonic-Systems/process-compose-flake/pull/56"},"process-compose-flake-pull-56"))),(0,r.kt)("h3",{id:"services-flake"},"Services-flake"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds socketDir option for postgres service:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/juspay/services-flake/pull/77"},"services-flake-pull-77")),(0,r.kt)("li",{parentName:"ul"},"Ensure socketDir mktemp init succeeds for postgres service:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/juspay/services-flake/pull/81"},"services-flake-pull-81"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7fda8ae5.d6c5ec41.js b/assets/js/7fda8ae5.d6c5ec41.js new file mode 100644 index 0000000000..76f76d59c8 --- /dev/null +++ b/assets/js/7fda8ae5.d6c5ec41.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[81015],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),s=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=p(e,["components","mdxType","originalType","parentName"]),u=s(n),m=r,h=u["".concat(l,".").concat(m)]||u[m]||c[m]||o;return n?a.createElement(h,i(i({ref:t},d),{},{components:n})):a.createElement(h,i({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[u]="string"==typeof e?e:r,i[1]=p;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>p,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));const o={title:"SRE Team Update",slug:"2024-07-05-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2024-07-05-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-05-sre.md",source:"@site/blog/2024-07-05-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-07-05T00:00:00.000Z",formattedDate:"July 5, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:2.265,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-07-05-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-07-08-network"},nextItem:{title:"Ledger Team Update",permalink:"/2024-07-03-ledger"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3},{value:"Ops-lib",id:"ops-lib",level:3}],d={toc:s},u="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node ",(0,r.kt)("inlineCode",{parentName:"p"},"9.0.0")," is now deployed to mainnet, preprod, preview, private and\nshelley-qa environments. The last several weeks have been very busy with\npre-release and release activity and environment upgrades involving\ncardano-node versions ",(0,r.kt)("inlineCode",{parentName:"p"},"8.9.3"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"8.9.4"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"8.12.0-pre"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"8.12.1"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"8.12.2")," and\nnow ",(0,r.kt)("inlineCode",{parentName:"p"},"9.0.0")," as of this update.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sanchonet environment remains pinned at cardano-node version ",(0,r.kt)("inlineCode",{parentName:"p"},"8.11.0-pre")," until\nthe next respin which will support ",(0,r.kt)("inlineCode",{parentName:"p"},"9.0.0")," or greater.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Ogmios service and package options were added to cardano-parts.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Four documents were added to cardano-playground to better explain some\noperational procedures: debugging of peer-to-peer connections; governance\nvoting with the playground stakepools; faucet setup; faucet pool\nde-delegation. Found at:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-playground/tree/main/docs/explain"},"docs/explain"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"One document was added to cardano-mainnet to explain cardano-snapshot\noperations. Found at:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-mainnet/tree/main/docs/explain"},"docs/explain"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Private chain was stopped and re-spun with 2 hr epochs for testing.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Hydra and performance cluster machines had their configuration updated to be\nmore robust to transient nix store caches outages which may re-occur in the\nfuture.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"All machines in cardano-playground and cardano-mainnet clusters were updated\nto nixpkgs ",(0,r.kt)("inlineCode",{parentName:"p"},"24.05"),"."))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-node to ",(0,r.kt)("inlineCode",{parentName:"li"},"8.12.2")," as well as usage of a custom gc delay parameter\nbranch for bootstrap nodes. Updates all machines to nixpkgs to ",(0,r.kt)("inlineCode",{parentName:"li"},"24.05")," with\nopenssh ",(0,r.kt)("inlineCode",{parentName:"li"},"9.8p1"),". Adds one new explainer readme document, new alerts and various\nscript, recipe, and other improvements. See the PR description for more\ndetails:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/16"},"cardano-mainnet-pull-16"))),(0,r.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps to cardano-node ",(0,r.kt)("inlineCode",{parentName:"li"},"9.0.0"),", adds coredump metrics, adds OOM/coredump\nalerting, adjusts systemd stop timeout to avoid some unneccesary chain\nreplays:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/1fca100...7dd0502"},"cardano-ops-compare"))),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-node (release) and cardano-node-ng (pre-release) versions to\n",(0,r.kt)("inlineCode",{parentName:"li"},"8.12.2")," and cardano-db-sync-ng to ",(0,r.kt)("inlineCode",{parentName:"li"},"sancho-5-0-0"),". Updates nixpkgs to\n",(0,r.kt)("inlineCode",{parentName:"li"},"24.05"),". Includes nixosModule, dashboard, metric, alert and recipe\nimprovements and new features. More detail is available in the PR\ndescription:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/43"},"cardano-parts-pull-43"))),(0,r.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adjusts nix config to avoid R2 500 errors on transient cache problems and\nadds explorer to perf class:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/5631a13...911ec61"},"cardano-perf-compare"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-node (release) and cardano-node-ng (pre-release) versions to\n",(0,r.kt)("inlineCode",{parentName:"li"},"8.12.2")," and cardano-db-sync-ng to ",(0,r.kt)("inlineCode",{parentName:"li"},"sancho-5-0-0"),". Updates all machines to\nnixpkgs to ",(0,r.kt)("inlineCode",{parentName:"li"},"24.05")," with openssh ",(0,r.kt)("inlineCode",{parentName:"li"},"9.8p1"),". Respins private chain and KES\nrotates multiple chains. Adds four new explainer readme documents, new alerts\nand various script, recipe, and other improvements. See the PR description\nfor more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/27"},"cardano-playground-pull-27"))),(0,r.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Node 8.12 configuration changes:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/581"},"iohk-nix-pull-581"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Private chain conway configuration update post 2hr epoch repsin:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/582"},"iohk-nix-pull-582"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Adjusts p2p target number of known peers for non-block-producers:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/583"},"iohk-nix-pull-583")))),(0,r.kt)("h3",{id:"ops-lib"},"Ops-lib"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Updates deployers with recent nixpkgs, nix, refactors to preserve legacy\nnixops usage, adds starship and fzf:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ops-lib/pull/134"},"ops-lib-pull-134"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Bumps openssh to ",(0,r.kt)("inlineCode",{parentName:"p"},"9.8p1"),"\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ops-lib/pull/135"},"ops-lib-pull-135")))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/80210.245c42c2.js b/assets/js/80210.245c42c2.js new file mode 100644 index 0000000000..c80f812826 --- /dev/null +++ b/assets/js/80210.245c42c2.js @@ -0,0 +1 @@ +(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80210],{3905:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>u,kt:()=>f});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function c(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),i=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},u=function(e){var t=i(e.components);return o.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=i(n),p=r,f=m["".concat(s,".").concat(p)]||m[p]||d[p]||a;return n?o.createElement(f,c(c({ref:t},u),{},{components:n})):o.createElement(f,c({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,c=new Array(a);c[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:r,c[1]=l;for(var i=2;i{"use strict";n.d(t,{Z:()=>i});var o=n(87462),r=n(67294),a=n(86010),c=n(95999),l=n(86668);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function i(e){let{as:t,id:n,...i}=e;const{navbar:{hideOnScroll:u}}=(0,l.L)();return"h1"!==t&&n?r.createElement(t,(0,o.Z)({},i,{className:(0,a.Z)("anchor",u?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar),id:n}),i.children,r.createElement("a",{className:"hash-link",href:`#${n}`,title:(0,c.I)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"\u200b")):r.createElement(t,(0,o.Z)({},i,{id:void 0}))}},80210:(e,t,n)=>{"use strict";n.d(t,{Z:()=>pe});var o=n(67294),r=n(3905),a=n(87462),c=n(35742);var l=n(72389),s=n(86010),i=n(92949),u=n(86668);function m(){const{prism:e}=(0,u.L)(),{colorMode:t}=(0,i.I)(),n=e.theme,o=e.darkTheme||n;return"dark"===t?o:n}var d=n(35281),p=n(87594),f=n.n(p);const h=/title=(?["'])(?.*?)\1/,g=/\{(?<range>[\d,-]+)\}/,y={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function b(e,t){const n=e.map((e=>{const{start:n,end:o}=y[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${o})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function v(e,t){let n=e.replace(/\n$/,"");const{language:o,magicComments:r,metastring:a}=t;if(a&&g.test(a)){const e=a.match(g).groups.range;if(0===r.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${a}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=r[0].className,o=f()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(o),code:n}}if(void 0===o)return{lineClassNames:{},code:n};const c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return b(["js","jsBlock"],t);case"jsx":case"tsx":return b(["js","jsBlock","jsx"],t);case"html":return b(["js","jsBlock","html"],t);case"python":case"py":case"bash":return b(["bash"],t);case"markdown":case"md":return b(["html","jsx","bash"],t);default:return b(Object.keys(y),t)}}(o,r),l=n.split("\n"),s=Object.fromEntries(r.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(r.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),u=Object.fromEntries(r.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(r.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<l.length;){const e=l[p].match(c);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:u[t]?s[u[t]].start=p:m[t]&&(s[m[t]].range+=`${s[m[t]].start}-${p-1},`),l.splice(p,1)}n=l.join("\n");const d={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;f()(n).forEach((e=>{d[e]??=[],d[e].push(t)}))})),{lineClassNames:d,code:n}}const E={codeBlockContainer:"codeBlockContainer_Ckt0"};function k(e){let{as:t,...n}=e;const r=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[o,r]=e;const a=t[o];a&&"string"==typeof r&&(n[a]=r)})),n}(m());return o.createElement(t,(0,a.Z)({},n,{style:r,className:(0,s.Z)(n.className,E.codeBlockContainer,d.k.common.codeBlock)}))}const N={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function C(e){let{children:t,className:n}=e;return o.createElement(k,{as:"pre",tabIndex:0,className:(0,s.Z)(N.codeBlockStandalone,"thin-scrollbar",n)},o.createElement("code",{className:N.codeBlockLines},t))}var w=n(902);const B={attributes:!0,characterData:!0,childList:!0,subtree:!0};function T(e,t){const[n,r]=(0,o.useState)(),a=(0,o.useCallback)((()=>{r(e.current?.closest("[role=tabpanel][hidden]"))}),[e,r]);(0,o.useEffect)((()=>{a()}),[a]),function(e,t,n){void 0===n&&(n=B);const r=(0,w.zX)(t),a=(0,w.Ql)(n);(0,o.useEffect)((()=>{const t=new MutationObserver(r);return e&&t.observe(e,a),()=>t.disconnect()}),[e,r,a])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),a())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const L={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var j={Prism:n(87410).Z,theme:L};function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Z(){return Z=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},Z.apply(this,arguments)}var x=/\r\n|\r|\n/,S=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},_=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function P(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===t.indexOf(o)&&(n[o]=e[o]);return n}var z=function(e){function t(){for(var t=this,n=[],o=arguments.length;o--;)n[o]=arguments[o];e.apply(this,n),O(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,o=Object.create(null),r=e.styles.reduce((function(e,n){var o=n.languages,r=n.style;return o&&!o.includes(t)||n.types.forEach((function(t){var n=Z({},e[t],r);e[t]=n})),e}),o);return r.root=n,r.plain=Z({},n,{backgroundColor:null}),r}(e.theme,e.language):void 0;return t.themeDict=n})),O(this,"getLineProps",(function(e){var n=e.key,o=e.className,r=e.style,a=Z({},P(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),c=t.getThemeDict(t.props);return void 0!==c&&(a.style=c.plain),void 0!==r&&(a.style=void 0!==a.style?Z({},a.style,r):r),void 0!==n&&(a.key=n),o&&(a.className+=" "+o),a})),O(this,"getStyleForToken",(function(e){var n=e.types,o=e.empty,r=n.length,a=t.getThemeDict(t.props);if(void 0!==a){if(1===r&&"plain"===n[0])return o?{display:"inline-block"}:void 0;if(1===r&&!o)return a[n[0]];var c=o?{display:"inline-block"}:{},l=n.map((function(e){return a[e]}));return Object.assign.apply(Object,[c].concat(l))}})),O(this,"getTokenProps",(function(e){var n=e.key,o=e.className,r=e.style,a=e.token,c=Z({},P(e,["key","className","style","token"]),{className:"token "+a.types.join(" "),children:a.content,style:t.getStyleForToken(a),key:void 0});return void 0!==r&&(c.style=void 0!==c.style?Z({},c.style,r):r),void 0!==n&&(c.key=n),o&&(c.className+=" "+o),c})),O(this,"tokenize",(function(e,t,n,o){var r={code:t,grammar:n,language:o,tokens:[]};e.hooks.run("before-tokenize",r);var a=r.tokens=e.tokenize(r.code,r.grammar,r.language);return e.hooks.run("after-tokenize",r),a}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,o=e.code,r=e.children,a=this.getThemeDict(this.props),c=t.languages[n];return r({tokens:function(e){for(var t=[[]],n=[e],o=[0],r=[e.length],a=0,c=0,l=[],s=[l];c>-1;){for(;(a=o[c]++)<r[c];){var i=void 0,u=t[c],m=n[c][a];if("string"==typeof m?(u=c>0?u:["plain"],i=m):(u=_(u,m.type),m.alias&&(u=_(u,m.alias)),i=m.content),"string"==typeof i){var d=i.split(x),p=d.length;l.push({types:u,content:d[0]});for(var f=1;f<p;f++)S(l),s.push(l=[]),l.push({types:u,content:d[f]})}else c++,t.push(u),n.push(i),o.push(0),r.push(i.length)}c--,t.pop(),n.pop(),o.pop(),r.pop()}return S(l),s}(void 0!==c?this.tokenize(t,o,c,n):[o]),className:"prism-code language-"+n,style:void 0!==a?a.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(o.Component);const A=z,I={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function M(e){let{line:t,classNames:n,showLineNumbers:r,getLineProps:c,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const i=c({line:t,className:(0,s.Z)(n,r&&I.codeLine)}),u=t.map(((e,t)=>o.createElement("span",(0,a.Z)({key:t},l({token:e,key:t})))));return o.createElement("span",i,r?o.createElement(o.Fragment,null,o.createElement("span",{className:I.codeLineNumber}),o.createElement("span",{className:I.codeLineContent},u)):u,o.createElement("br",null))}var D=n(95999);const H={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function W(e){let{code:t,className:n}=e;const[r,a]=(0,o.useState)(!1),c=(0,o.useRef)(void 0),l=(0,o.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const o=document.createElement("textarea"),r=document.activeElement;o.value=e,o.setAttribute("readonly",""),o.style.contain="strict",o.style.position="absolute",o.style.left="-9999px",o.style.fontSize="12pt";const a=document.getSelection(),c=a.rangeCount>0&&a.getRangeAt(0);n.append(o),o.select(),o.selectionStart=0,o.selectionEnd=e.length;let l=!1;try{l=document.execCommand("copy")}catch{}o.remove(),c&&(a.removeAllRanges(),a.addRange(c)),r&&r.focus()}(t),a(!0),c.current=window.setTimeout((()=>{a(!1)}),1e3)}),[t]);return(0,o.useEffect)((()=>()=>window.clearTimeout(c.current)),[]),o.createElement("button",{type:"button","aria-label":r?(0,D.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,D.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,D.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.Z)("clean-btn",n,H.copyButton,r&&H.copyButtonCopied),onClick:l},o.createElement("span",{className:H.copyButtonIcons,"aria-hidden":"true"},o.createElement("svg",{className:H.copyButtonIcon,viewBox:"0 0 24 24"},o.createElement("path",{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})),o.createElement("svg",{className:H.copyButtonSuccessIcon,viewBox:"0 0 24 24"},o.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))))}const V={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function R(e){let{className:t,onClick:n,isEnabled:r}=e;const a=(0,D.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return o.createElement("button",{type:"button",onClick:n,className:(0,s.Z)("clean-btn",t,r&&V.wordWrapButtonEnabled),"aria-label":a,title:a},o.createElement("svg",{className:V.wordWrapButtonIcon,viewBox:"0 0 24 24","aria-hidden":"true"},o.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})))}function $(e){let{children:t,className:n="",metastring:r,title:c,showLineNumbers:l,language:i}=e;const{prism:{defaultLanguage:d,magicComments:p}}=(0,u.L)(),f=i??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??d,g=m(),y=function(){const[e,t]=(0,o.useState)(!1),[n,r]=(0,o.useState)(!1),a=(0,o.useRef)(null),c=(0,o.useCallback)((()=>{const n=a.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[a,e]),l=(0,o.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=a.current,n=e>t||a.current.querySelector("code").hasAttribute("style");r(n)}),[a]);return T(a,l),(0,o.useEffect)((()=>{l()}),[e,l]),(0,o.useEffect)((()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)})),[l]),{codeBlockRef:a,isEnabled:e,isCodeScrollable:n,toggle:c}}(),b=function(e){return e?.match(h)?.groups.title??""}(r)||c,{lineClassNames:E,code:C}=v(t,{metastring:r,language:f,magicComments:p}),w=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(r);return o.createElement(k,{as:"div",className:(0,s.Z)(n,f&&!n.includes(`language-${f}`)&&`language-${f}`)},b&&o.createElement("div",{className:N.codeBlockTitle},b),o.createElement("div",{className:N.codeBlockContent},o.createElement(A,(0,a.Z)({},j,{theme:g,code:C,language:f??"text"}),(e=>{let{className:t,tokens:n,getLineProps:r,getTokenProps:a}=e;return o.createElement("pre",{tabIndex:0,ref:y.codeBlockRef,className:(0,s.Z)(t,N.codeBlock,"thin-scrollbar")},o.createElement("code",{className:(0,s.Z)(N.codeBlockLines,w&&N.codeBlockLinesWithNumbering)},n.map(((e,t)=>o.createElement(M,{key:t,line:e,getLineProps:r,getTokenProps:a,classNames:E[t],showLineNumbers:w})))))})),o.createElement("div",{className:N.buttonGroup},(y.isEnabled||y.isCodeScrollable)&&o.createElement(R,{className:N.codeButton,onClick:()=>y.toggle(),isEnabled:y.isEnabled}),o.createElement(W,{className:N.codeButton,code:C}))))}function F(e){let{children:t,...n}=e;const r=(0,l.Z)(),c=function(e){return o.Children.toArray(e).some((e=>(0,o.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),s="string"==typeof c?$:C;return o.createElement(s,(0,a.Z)({key:String(r)},n),c)}var q=n(39960);var G=n(86043);const U={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function Y(e){return!!e&&("SUMMARY"===e.tagName||Y(e.parentElement))}function Q(e,t){return!!e&&(e===t||Q(e.parentElement,t))}function X(e){let{summary:t,children:n,...r}=e;const c=(0,l.Z)(),i=(0,o.useRef)(null),{collapsed:u,setCollapsed:m}=(0,G.u)({initialState:!r.open}),[d,p]=(0,o.useState)(r.open);return o.createElement("details",(0,a.Z)({},r,{ref:i,open:d,"data-collapsed":u,className:(0,s.Z)(U.details,c&&U.isBrowser,r.className),onMouseDown:e=>{Y(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;Y(t)&&Q(t,i.current)&&(e.preventDefault(),u?(m(!1),p(!0)):m(!0))}}),t??o.createElement("summary",null,"Details"),o.createElement(G.z,{lazy:!1,collapsed:u,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{m(e),p(!e)}},o.createElement("div",{className:U.collapsibleContent},n)))}const J={details:"details_b_Ee"},K="alert alert--info";function ee(e){let{...t}=e;return o.createElement(X,(0,a.Z)({},t,{className:(0,s.Z)(K,J.details,t.className)}))}var te=n(92503);function ne(e){return o.createElement(te.Z,e)}const oe={containsTaskList:"containsTaskList_mC6p"};const re={img:"img_ev3q"};const ae="admonition_LlT9",ce="admonitionHeading_tbUL",le="admonitionIcon_kALy",se="admonitionContent_S0QG";const ie={note:{infimaClassName:"secondary",iconComponent:function(){return o.createElement("svg",{viewBox:"0 0 14 16"},o.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:o.createElement(D.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return o.createElement("svg",{viewBox:"0 0 12 16"},o.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:o.createElement(D.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return o.createElement("svg",{viewBox:"0 0 12 16"},o.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:o.createElement(D.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return o.createElement("svg",{viewBox:"0 0 14 16"},o.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:o.createElement(D.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return o.createElement("svg",{viewBox:"0 0 16 16"},o.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:o.createElement(D.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},ue={secondary:"note",important:"info",success:"tip",warning:"danger"};function me(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=o.Children.toArray(e),n=t.find((e=>o.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),r=o.createElement(o.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:r}}(e.children);return{...e,title:e.title??t,children:n}}const de={head:function(e){const t=o.Children.map(e.children,(e=>o.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...r}=e.props;return o.createElement(e.props.originalType,r)}return e}(e):e));return o.createElement(c.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return o.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,o.isValidElement)(e)&&t.includes(e.props?.mdxType)))?o.createElement("code",e):o.createElement(F,e)},a:function(e){return o.createElement(q.Z,e)},pre:function(e){return o.createElement(F,(0,o.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=o.Children.toArray(e.children),n=t.find((e=>o.isValidElement(e)&&"summary"===e.props?.mdxType)),r=o.createElement(o.Fragment,null,t.filter((e=>e!==n)));return o.createElement(ee,(0,a.Z)({},e,{summary:n}),r)},ul:function(e){return o.createElement("ul",(0,a.Z)({},e,{className:(t=e.className,(0,s.Z)(t,t?.includes("contains-task-list")&&oe.containsTaskList))}));var t},img:function(e){return o.createElement("img",(0,a.Z)({loading:"lazy"},e,{className:(t=e.className,(0,s.Z)(t,re.img))}));var t},h1:e=>o.createElement(ne,(0,a.Z)({as:"h1"},e)),h2:e=>o.createElement(ne,(0,a.Z)({as:"h2"},e)),h3:e=>o.createElement(ne,(0,a.Z)({as:"h3"},e)),h4:e=>o.createElement(ne,(0,a.Z)({as:"h4"},e)),h5:e=>o.createElement(ne,(0,a.Z)({as:"h5"},e)),h6:e=>o.createElement(ne,(0,a.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:r,icon:a}=me(e),c=function(e){const t=ue[e]??e,n=ie[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),ie.info)}(n),l=r??c.label,{iconComponent:i}=c,u=a??o.createElement(i,null);return o.createElement("div",{className:(0,s.Z)(d.k.common.admonition,d.k.common.admonitionType(e.type),"alert",`alert--${c.infimaClassName}`,ae)},o.createElement("div",{className:ce},o.createElement("span",{className:le},u),l),o.createElement("div",{className:se},t))},mermaid:n(11875).Z};function pe(e){let{children:t}=e;return o.createElement(r.Zo,{components:de},t)}},87594:(e,t)=>{function n(e){let t,n=[];for(let o of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(o))n.push(parseInt(o,10));else if(t=o.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,o,r,a]=t;if(o&&a){o=parseInt(o),a=parseInt(a);const e=o<a?1:-1;"-"!==r&&".."!==r&&"\u2025"!==r||(a+=e);for(let t=o;t!==a;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/assets/js/80514ec9.5f57e65d.js b/assets/js/80514ec9.5f57e65d.js new file mode 100644 index 0000000000..efe8bebd98 --- /dev/null +++ b/assets/js/80514ec9.5f57e65d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93122],{84284:a=>{a.exports=JSON.parse('{"label":"ledger","permalink":"/quarterly/tags/ledger","allTagsPath":"/quarterly/tags","count":2}')}}]); \ No newline at end of file diff --git a/assets/js/80537537.aa488c4d.js b/assets/js/80537537.aa488c4d.js new file mode 100644 index 0000000000..5b7d5a9448 --- /dev/null +++ b/assets/js/80537537.aa488c4d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43140],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function o(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?i(Object(a),!0).forEach((function(e){r(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function p(t,e){if(null==t)return{};var a,n,r=function(t,e){if(null==t)return{};var a,n,r={},i=Object.keys(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var l=n.createContext({}),u=function(t){var e=n.useContext(l),a=e;return t&&(a="function"==typeof t?t(e):o(o({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(l.Provider,{value:e},t.children)},m="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},s=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,l=t.parentName,c=p(t,["components","mdxType","originalType","parentName"]),m=u(a),s=r,h=m["".concat(l,".").concat(s)]||m[s]||d[s]||i;return a?n.createElement(h,o(o({ref:e},c),{},{components:a})):n.createElement(h,o({ref:e},c))}));function h(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,o=new Array(i);o[0]=s;var p={};for(var l in e)hasOwnProperty.call(e,l)&&(p[l]=e[l]);p.originalType=t,p[m]="string"==typeof t?t:r,o[1]=p;for(var u=2;u<i;u++)o[u]=a[u];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},88265:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>p,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-08-01-node-cli-api",tags:["cli-api"],authors:"carlos",hide_table_of_contents:!1},o="Node-Api-Cli Update",p={permalink:"/2023-08-01-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-01-node-cli-api.md",source:"@site/blog/2023-08-01-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-08-01T00:00:00.000Z",formattedDate:"August 1, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.76,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-08-01-node-cli-api",tags:["cli-api"],authors:"carlos",hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-08-04-sre"},nextItem:{title:"Network Team Update",permalink:"/2023-07-31-network"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},m="wrapper";function d(t){let{components:e,...a}=t;return(0,r.kt)(m,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-07-19---2023-08-01"},"2023-07-19 - 2023-08-01"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Release of Node 8.2.0",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Updates to the ledger packages extend progress on the Conway ledger era to support new governance features via CIP-1694."),(0,r.kt)("li",{parentName:"ul"},"This release is phase 1 of the SanchoNet roll out"),(0,r.kt)("li",{parentName:"ul"},"Allows SPOs to vote on changes to the on-chain constitution."),(0,r.kt)("li",{parentName:"ul"},"Ability to start the node in block production mode with no secrets loaded using the --non-producing-node flag."),(0,r.kt)("li",{parentName:"ul"},"Updates to the networking packages prepare the road for peer sharing."))),(0,r.kt)("li",{parentName:"ul"},"cardano-cli and cardano-api continue to integrate Conway era features"),(0,r.kt)("li",{parentName:"ul"},"Continue refactoring of cardano-testnet")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/116"},"Use AnyShelleyToBabbageEra from cardano-api instead")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/115"},"Update to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.10.2.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/113"},"Add rendering for ",(0,r.kt)("inlineCode",{parentName:"a"},"ConwayCertificate")," in ",(0,r.kt)("inlineCode",{parentName:"a"},"Cardano.Cli.Json.Friendly"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/111"},"Update to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.10.1.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/110"},"Add DRep registration certificate command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/109"},"Add options to delegate voting stake ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/107"},"Share MIR certificates code between era-based and legacy CLI parsers")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/106"},"Release cardano-cli 8.4.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/103"},"Update to",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.10.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/100"},"Change directory structure from Options/.. to EraBased/..")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/98"},"Era-sensitive command structure")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/90"},"#86 Set default era to Babbage in stake-address, stake-pool and governance commmands"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/155"},"Deprecate ",(0,r.kt)("inlineCode",{parentName:"a"},"shelleyCertificateConstraints")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"conwayCertificateConstraints"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/154"},"Deprecate ",(0,r.kt)("inlineCode",{parentName:"a"},"TxVotesSupportedInEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/152"},"Add SerialiseAsBech32 instances for committee cold and hot keys")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/151"},"Deprecate some constraint functions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/150"},"Deprecate ",(0,r.kt)("inlineCode",{parentName:"a"},"TxGovernanceActionSupportedInEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/149"},"More ",(0,r.kt)("inlineCode",{parentName:"a"},"shelleyBasedEraConstraint")," constraints")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/148"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.10.2.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/147"},"Expose shelleyCertificateConstraints and conwayCertificateConstraints")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/146"},"Remove unnecessary function ",(0,r.kt)("inlineCode",{parentName:"a"},"getShelleyEraTxBodyConstraint"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/143"},"Provide additional constraints in ",(0,r.kt)("inlineCode",{parentName:"a"},"shelleyBasedEraConstraints"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/142"},"Update changelogs for ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.10.1.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/141"},"handleFileForWritingWithOwnerPermissionImpl: Fix permisions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/138"},"Update DRepKey with correct ",(0,r.kt)("inlineCode",{parentName:"a"},"Voting")," keyrole")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/137"},"Support more constraints for Conway witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/135"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.10.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/134"},"Expose toShelleyPoolParams for conway integration")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/131"},(0,r.kt)("inlineCode",{parentName:"a"},"FeatureInEra")," instance for ",(0,r.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/130"},"Expose more functionality from cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/128"},"Improved feature ergonomics")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/127"},"Rename ",(0,r.kt)("inlineCode",{parentName:"a"},"AtMostBabbageEra")," to ",(0,r.kt)("inlineCode",{parentName:"a"},"ShelleyToBabbageEra")))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5412"},"Fix stubbed LogFormatting instances")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5411"},"8.2.0 version bumps")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5409"},"Bump network packages version")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5404"},"Fix missing ",(0,r.kt)("inlineCode",{parentName:"a"},"ToObject")," tracing instances.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5401"},"input-output-hk/cardano-cli#85 Fix node crashing in babbage"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5411"},"8.2.0 version bumps")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5409"},"Bump network packages version")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5404"},"Fix missing ",(0,r.kt)("inlineCode",{parentName:"a"},"ToObject")," tracing instances.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5400"},"Fix plutus script costing in cardano-testnet"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5409"},"Bump network packages version"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/blob/05c0392b4722d7fe2f82db1854b28de4f28a917b/doc/getting-started/understanding-config-files.md?plain=1#L84C1-L97C42"},"WarmValency"))))),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/805fc822.3307b04c.js b/assets/js/805fc822.3307b04c.js new file mode 100644 index 0000000000..ff25e5696b --- /dev/null +++ b/assets/js/805fc822.3307b04c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53165],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||m[d]||o;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=r[c];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},7581:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Network Team Update",slug:"2022-12-12-network",authors:"coot",tags:["network","release"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-12-12-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-12-network.md",source:"@site/blog/2022-12-12-network.md",title:"Network Team Update",description:"High level summary",date:"2022-12-12T00:00:00.000Z",formattedDate:"December 12, 2022",tags:[{label:"network",permalink:"/tags/network"},{label:"release",permalink:"/tags/release"}],readingTime:.43,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-12-12-network",authors:"coot",tags:["network","release"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2022-12-14-performance-and-tracing"},nextItem:{title:"Crypto Team Update",permalink:"/2022-12-09-crypto"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},s="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"In last sprint the team focused on preparations for the conference talk at\n",(0,a.kt)("a",{parentName:"p",href:"https://sites.uclouvain.be/OPODIS2022/"},"OPODIS 2022"),". We also worked on preparations to publish ",(0,a.kt)("inlineCode",{parentName:"p"},"io-sim")," and related\npackages on Hackage (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/57"},"PR #57"),", ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/60"},"PR #60"),")."),(0,a.kt)("p",null,"We also started reviewing:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-network")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"cardano-ledger"),"\nrepositories for open-source readiness (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4218"},"PR #4128"),").")),(0,a.kt)("p",null,"We prepared a PR which changes how ",(0,a.kt)("inlineCode",{parentName:"p"},"node-to-node")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"node-to-client")," protocol\nversiones are serialised in ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," log (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4691"},"PR #4691"),")."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/80617771.cf903a90.js b/assets/js/80617771.cf903a90.js new file mode 100644 index 0000000000..30bd6d9572 --- /dev/null +++ b/assets/js/80617771.cf903a90.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23427],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),h=p(r),s=n,m=h["".concat(u,".").concat(s)]||h[s]||d[s]||i;return r?a.createElement(m,l(l({ref:t},c),{},{components:r})):a.createElement(m,l({ref:t},c))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,l=new Array(i);l[0]=s;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[h]="string"==typeof e?e:n,l[1]=o;for(var p=2;p<i;p++)l[p]=r[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}s.displayName="MDXCreateElement"},22977:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2023-09-29-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-09-29-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-29-hydra.md",source:"@site/blog/2023-09-29-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-09-29T00:00:00.000Z",formattedDate:"September 29, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.49,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-09-29-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-09-29-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-09-29-ledger"}},u={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team mainly focused on having a working new reliability\nnetwork layer; and specified its expected behavior in a new ADR."),(0,n.kt)("p",null,'They also revisited the security policy and vulnerability disclosure policy on\nhow to handle security vulnerability within Hydra, and in particular how to\nhandle so-called "Silent fixes".'),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated security policy and vulnerability disclosure policy ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1088"},"#1088")),(0,n.kt)("li",{parentName:"ul"},"Adr/network reliability ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1082"},"#1082"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Introduce reliability network layer ","[#1074]"," (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1074"},"https://github.com/input-output-hk/hydra/pull/1074"),")"),(0,n.kt)("li",{parentName:"ul"},"Refactor the vCommit validator in Aiken ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1072"},"#1072"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/80c54634.e85b5fe2.js b/assets/js/80c54634.e85b5fe2.js new file mode 100644 index 0000000000..bb75f6a9d3 --- /dev/null +++ b/assets/js/80c54634.e85b5fe2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[99808],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),s=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(a),h=n,m=p["".concat(c,".").concat(h)]||p[h]||u[h]||o;return a?r.createElement(m,i(i({ref:t},d),{},{components:a})):r.createElement(m,i({ref:t},d))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=h;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var s=2;s<o;s++)i[s]=a[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}h.displayName="MDXCreateElement"},57809:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-08-11-hydra",authors:["ffakenz","ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-08-11-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-11-hydra.md",source:"@site/blog/2023-08-11-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-08-11T00:00:00.000Z",formattedDate:"August 11, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.8,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"},{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-08-11-hydra",authors:["ffakenz","ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-08-15-node-cli-api"},nextItem:{title:"Performance & tracing update",permalink:"/2023-08-11-performance-and-tracing"}},c={authorsImageUrls:[void 0,void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:s},p="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team updated ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," to support ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node"),' version\n8.1.2, ensuring compatibility with the latest mainnet release. The team also\nparticipated in discussions about a "cardanonical" JSON schema and added it as a\nsubmodule to the project, contributing to improved data modeling and\ninteroperability.'),(0,n.kt)("p",null,"In terms of community engagement, the team successfully onboarded a new\ncontributor, also participated in a RareEvo Twitter space, and continued\npreparations for the Hydra master-class."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated dependencies to support cardano-node 8.1.2 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1007"},"#1007")),(0,n.kt)("li",{parentName:"ul"},"Engaged in discussions about a ","\u201c","cardanonical","\u201d"," json schema and\nadd it as submodule to the project\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1013"},"#1013")),(0,n.kt)("li",{parentName:"ul"},"Onboarded a new contributor to the hydra project (@locallycompact)"),(0,n.kt)("li",{parentName:"ul"},"Joined RareEvo twitter space and continued preparation of hydra master-class")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update & streamline tutorial to work with latest version of hydra-node"),(0,n.kt)("li",{parentName:"ul"},"Remove the internal commit functionality ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/954"},"#954")),(0,n.kt)("li",{parentName:"ul"},"Release 0.12.0")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/812c0fab.744d1002.js b/assets/js/812c0fab.744d1002.js new file mode 100644 index 0000000000..36317337da --- /dev/null +++ b/assets/js/812c0fab.744d1002.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65682],{99296:e=>{e.exports=JSON.parse('{"permalink":"/tags/sre/page/3","page":3,"postsPerPage":5,"totalPages":6,"totalCount":29,"previousPage":"/tags/sre/page/2","nextPage":"/tags/sre/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/81528b00.6e4c6ff3.js b/assets/js/81528b00.6e4c6ff3.js new file mode 100644 index 0000000000..62dab5e4be --- /dev/null +++ b/assets/js/81528b00.6e4c6ff3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50471],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},67938:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2022-12-01-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-12-01-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-01-mithril.md",source:"@site/blog/2022-12-01-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2022-12-01T00:00:00.000Z",formattedDate:"December 1, 2022",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.04,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2022-12-01-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"DB sync Team Update",permalink:"/2022-12-01-db-sync"},nextItem:{title:"System Test Team Update",permalink:"/2022-12-01-system-test"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes. "),(0,n.kt)("p",null,"Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implemented custom Mithril SPOs on testing/pre-release networks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/563"},"#563")),(0,n.kt)("li",{parentName:"ul"},"Deprecated Signer Declarative Pool Id registration mode ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/585"},"#585")),(0,n.kt)("li",{parentName:"ul"},"Completed the second stage of the store automatic migration process ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/600"},"#600")),(0,n.kt)("li",{parentName:"ul"},"Completed the deployment pipelines to crates.io registry ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/588"},"#588")),(0,n.kt)("li",{parentName:"ul"},"Completed automatic generation of nodes/libraries versions manifest in releases notes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/599"},"#599")),(0,n.kt)("li",{parentName:"ul"},"Completed CI/CD handling of PR from forks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/597"},"#597")),(0,n.kt)("li",{parentName:"ul"},"Worked on the CIP design for Mithril piggybacked on the Cardano network layer ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/586"},"#586")),(0,n.kt)("li",{parentName:"ul"},"Worked on signing the artifacts released in the distributions by the CI/CD ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/587"},"#587")),(0,n.kt)("li",{parentName:"ul"},"Worked on multi-platforms end to end test ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/601"},"#601")),(0,n.kt)("li",{parentName:"ul"},"Worked on the refactorizaton of the aggregator multi-signer engine ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/398"},"#398"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/817a876c.36efa6ab.js b/assets/js/817a876c.36efa6ab.js new file mode 100644 index 0000000000..f24771788a --- /dev/null +++ b/assets/js/817a876c.36efa6ab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[71483],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),d=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=d(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=d(a),u=r,h=p["".concat(c,".").concat(u)]||p[u]||m[u]||i;return a?n.createElement(h,o(o({ref:t},s),{},{components:a})):n.createElement(h,o({ref:t},s))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:r,o[1]=l;for(var d=2;d<i;d++)o[d]=a[d];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},29415:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var n=a(87462),r=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-07-17-hydra",authors:["noonio"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-07-17-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-17-hydra.md",source:"@site/blog/2024-07-17-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-07-17T00:00:00.000Z",formattedDate:"July 17, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.93,hasTruncateMarker:!1,authors:[{name:"Noon van der Silk",title:"Software Engineering Lead",url:"https://github.com/noonio",imageURL:"https://github.com/noonio.png",key:"noonio"}],frontMatter:{title:"Hydra Team Update",slug:"2024-07-17-hydra",authors:["noonio"],tags:["hydra"],hide_table_of_contents:!1},nextItem:{title:"Mithril Team Update",permalink:"/2024-07-17-mithril"}},c={authorsImageUrls:[void 0]},d=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve?",id:"what-did-the-team-achieve",level:3},{value:"What's next?",id:"whats-next",level:3}],s={toc:d},p="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"This week, the Hydra team made significant progress on incremental decommits\nby closing the last gaps and cleaning up the specification. They collected\nscenarios and prepared for incremental commits, updated dependencies for\ncompatibility with cardano-node 9.0.0, and continued tidying up documentation.\nWork continued on an easy spin-up of the getting-started demo via\nprocess-compose. Additionally, the team onboarded a new contributor and held\nan early design meeting about payment channels and Blockfrost. They also\nrefined the SDK wallet idea."),(0,r.kt)("h3",{id:"what-did-the-team-achieve"},"What did the team achieve?"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Incremental decommit progress: closed last gaps, cleanup specification ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra/issues/1483"},"#1483")),(0,r.kt)("li",{parentName:"ul"},"Collected scenarios and preparing for incremental commit ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra/issues/1484"},"#1484")),(0,r.kt)("li",{parentName:"ul"},"Updated dependencies, compatibility cardano-node 9.0.0 ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra/pull/1481"},"#1481")),(0,r.kt)("li",{parentName:"ul"},"Continued documentation tidyups"),(0,r.kt)("li",{parentName:"ul"},"WIP easy spin-up of the getting-started demo via process-compose ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra/pull/1503"},"#1503")),(0,r.kt)("li",{parentName:"ul"},"Onboarded new contributor"),(0,r.kt)("li",{parentName:"ul"},"Early design meeting about payment channels and Blockfrost ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra/issues/1305"},"#1305")),(0,r.kt)("li",{parentName:"ul"},"SDK wallet idea refinement ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra/issues/1509"},"#1509"))),(0,r.kt)("h3",{id:"whats-next"},"What's next?"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Merge and release incremental decommit"),(0,r.kt)("li",{parentName:"ul"},"Continued work on incremental commit"),(0,r.kt)("li",{parentName:"ul"},"Support Hydra demo at Rare Evo"),(0,r.kt)("li",{parentName:"ul"},"Have a Head open on ",(0,r.kt)("inlineCode",{parentName:"li"},"preview")," to see it working through the upcoming hard fork")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/818cb4a0.3434d17f.js b/assets/js/818cb4a0.3434d17f.js new file mode 100644 index 0000000000..787268ebcb --- /dev/null +++ b/assets/js/818cb4a0.3434d17f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18815],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),h=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=h(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=h(a),c=n,m=s["".concat(u,".").concat(c)]||s[c]||d[c]||o;return a?r.createElement(m,i(i({ref:t},p),{},{components:a})):r.createElement(m,i({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=c;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var h=2;h<o;h++)i[h]=a[h];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},38318:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-02-02-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-02-02-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/hydra-2024-02-02.md",source:"@site/blog/hydra-2024-02-02.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-02-02T00:00:00.000Z",formattedDate:"February 2, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.925,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-02-02-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-02-02-sre"},nextItem:{title:"Ledger Team Update",permalink:"/2024-01-31-ledger"}},u={authorsImageUrls:[void 0]},h=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],p={toc:h},s="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This week, the Hydra team authored and published the monthly report for January 2024, enhanced user feedback for failed commands, updated cardano-api dependency and GHC to newer versions, re-opened their persistent head in preparation for the hard-fork, extended the model-based testing suite to cover the closing of heads, fixed a bug in io-sim, and contributed to cardano-node."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Wrote and published the ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2024-01"},"monthly report for January 2024")),(0,n.kt)("li",{parentName:"ul"},"Improved user feedback when a command failed ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1251"},"#1251")),(0,n.kt)("li",{parentName:"ul"},"Update cardano-api dependency and ghc to newer versions ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1269"},"#1269")," and ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1232"},"#1232")),(0,n.kt)("li",{parentName:"ul"},"Re-opened our persistent head using latest versions and ready for the hard-fork ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1256"},"#1256")),(0,n.kt)("li",{parentName:"ul"},"Extended model-based testing suite to cover closing of heads ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1276"},"#1276")),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug in ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/issues/133"},"io-sim#133")),(0,n.kt)("li",{parentName:"ul"},"Contributed a PR to ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5657"},"cardano-node#5657"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fix the fanout after contest bug ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1260"},"#1260")),(0,n.kt)("li",{parentName:"ul"},"Run Hydra smoke tests on sanchonet ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1257"},"#1257")),(0,n.kt)("li",{parentName:"ul"},"Specify the on-chain validators for incremental decommits ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1057"},"#1057")),(0,n.kt)("li",{parentName:"ul"},"Have the explorer hosted ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/696"},"#696")),(0,n.kt)("li",{parentName:"ul"},"Prepare PRs for dropped JSON instances from API ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1213"},"#1213"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/818d6f05.7caa0a12.js b/assets/js/818d6f05.7caa0a12.js new file mode 100644 index 0000000000..f49e3056b6 --- /dev/null +++ b/assets/js/818d6f05.7caa0a12.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65808],{1149:e=>{e.exports=JSON.parse('{"permalink":"/page/30","page":30,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/29","nextPage":"/page/31","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/81bb24c9.b35a566f.js b/assets/js/81bb24c9.b35a566f.js new file mode 100644 index 0000000000..5c8e1f779e --- /dev/null +++ b/assets/js/81bb24c9.b35a566f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46003],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),h=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=h(e.components);return i.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=h(r),c=n,d=p["".concat(s,".").concat(c)]||p[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var h=2;h<a;h++)o[h]=r[h];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},94887:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>h});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2022-11-18-mithril",authors:"iquerejeta",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-11-18-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-18-mithril.md",source:"@site/blog/2022-11-18-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2022-11-18T00:00:00.000Z",formattedDate:"November 18, 2022",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.35,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Mithril Team Update",slug:"2022-11-18-mithril",authors:"iquerejeta",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-11-18-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2022-11-16-consensus"}},s={authorsImageUrls:[void 0]},h=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:h},p="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks. "),(0,n.kt)("p",null,"Finally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released a new Mithril distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2246.1"},"2246.1")),(0,n.kt)("li",{parentName:"ul"},"Completed the first stage of the store migrations process ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/562"},"#562")),(0,n.kt)("li",{parentName:"ul"},"Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/565"},"#565")),(0,n.kt)("li",{parentName:"ul"},"Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/576"},"#576")),(0,n.kt)("li",{parentName:"ul"},"Prepared a Daedalus synchronization benchmark video with/without Mithril ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/606"},"#606")),(0,n.kt)("li",{parentName:"ul"},"Upgraded the Cardano nodes of the testing Mithril networks to ",(0,n.kt)("inlineCode",{parentName:"li"},"1.35.4")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/594"},"#594")),(0,n.kt)("li",{parentName:"ul"},"Worked on implementing SPO tests nodes on testing Mithril networks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/563"},"#563")),(0,n.kt)("li",{parentName:"ul"},"Worked on the CIP design for Mithril piggybacked on the Cardano network layer ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/588"},"#588")),(0,n.kt)("li",{parentName:"ul"},"Worked on the refactorizaton of the aggregator multi signer engine ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/398"},"#398"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/81db2276.2d9f4296.js b/assets/js/81db2276.2d9f4296.js new file mode 100644 index 0000000000..38896782ae --- /dev/null +++ b/assets/js/81db2276.2d9f4296.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[81360],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>h});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(t),u=a,h=d["".concat(s,".").concat(u)]||d[u]||m[u]||o;return t?r.createElement(h,i(i({ref:n},p),{},{components:t})):r.createElement(h,i({ref:n},p))}));function h(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=u;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=t[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}u.displayName="MDXCreateElement"},57779:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=t(87462),a=(t(67294),t(3905));const o={title:"Performance & Tracing Update",slug:"2024-02-16-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-02-16-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-16-performance-and-tracing.md",source:"@site/blog/2024-02-16-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-02-16T00:00:00.000Z",formattedDate:"February 16, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.97,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-02-16-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-02-16-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2024-02-16-sre"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Performance",id:"performance",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],p={toc:c},d="wrapper";function m(e){let{components:n,...t}=e;return(0,a.kt)(d,(0,r.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Release benchmarks for ",(0,a.kt)("inlineCode",{parentName:"li"},"8.8.0")," have been performed; we created a local repro for a residual issue."),(0,a.kt)("li",{parentName:"ul"},"Performance: We've implemented and benchmarked two candidates investigating residual issues with GHC9.6."),(0,a.kt)("li",{parentName:"ul"},"Development: Work on the reporting pipeline is ongoing; integration of ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep"),"s into benchmarking workloads has begun."),(0,a.kt)("li",{parentName:"ul"},"Workbench: Implementation of high-level profile definition is ongoing. "),(0,a.kt)("li",{parentName:"ul"},"Tracing: The handle registry feature for ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," is completed; currently in testing."),(0,a.kt)("li",{parentName:"ul"},"Nomad cluster: Increased robustness of deployment and run monitoring has been merged; work on garbage collection has started.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed a full set of release benchmarks for Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.8.0-pre"),". Comparing with release ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2"),", we could\nnot detect any performance risks for that version. We even saw a slight improvement in block fetch related metrics, which led to slightly improved block diffusion times. "),(0,a.kt)("p",null,"Furthermore, we've managed to boil down a complex residual performance issue measured on the cluster to a local reproduction. This enables our DevX team, with highly specialized knowledge of GHC's compiler internals, to\ninvestigate each step in code generation and optimzation, and independently observe the effects of code changes to the affected component."),(0,a.kt)("h3",{id:"performance"},"Performance"),(0,a.kt)("p",null,"Work on the remaining performance issue with GHC9.6 led us to produce two candidates based on Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2"),", benchmarking\nthe implacations local small changes have for GHC9.6's optimizer. Though those candidates did not uncover the\nissue's root cause, they were able to disprove a hypothesis as to its nature, and quantify the performance impact of said small changes."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.8.0")," comes with capabilities to inject ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s and ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep")," delegations into Conway genesis. We've started work\non integrating those into our automations, and setting sensible values for benchmarking. The aforementioned\ndelegations representing a new data structure in the Conway ledger, we aim to run\nexisting workflows extended with varying sizes of that new structure, measuring their pressure on ledger queries and operations."),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"The performance workbench relies heavily on shell scripting and manipulating JSON data for a great part of its features. This approach\nis very effective for quick experimentation, but lacks in verifiable properties as well as accessibility for new users of workbench."),(0,a.kt)("p",null,"After the successful Haskell port of cluster topology creation, and verification, we're currently applying\nthe same model in porting the entirety of benchmarking profiles to Haskell. The obvious gains are widening workbench's\naudience both for users and developers, as well as implementing a principled approach to all workbench data structures and transformations. "),(0,a.kt)("p",null,"At the same time, we're porting workbench's many options to create fine-tuned geneses, following the same approach."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"We've outfitted ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," with a handle registry feature that lets the service work on file handles internally, rather than opening and closing files for each operation. The feature is completed; at the moment we're adding\nappropriate test cases to the service's test suite for validation of its behaviour, and for safeguarding future development."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"Several improvements for our cluster backend have been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),", increasing its overall robustness. We can now safely handle some corner cases where Nomad processes unexpectedly exited, or deployments errored out. Furthermore, an ongoing\nrun can now reliably survive a temporary loss of heartbeat connection between Nomad client and server, without\nthe benchmarking metrics being affected. "),(0,a.kt)("p",null,"Currently, we're working on a reliable automation of garbage collecting old ",(0,a.kt)("inlineCode",{parentName:"p"},"nix")," store entries on the cluster machines, as they fill up disk space. The design has to consider both not interfering with ongoing benchmarks, and\navoiding deployment overhead caused by cleaning the store too frequently."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/82209890.4162f75c.js b/assets/js/82209890.4162f75c.js new file mode 100644 index 0000000000..6e044cd87c --- /dev/null +++ b/assets/js/82209890.4162f75c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[30141],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>f});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),s=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},m=function(e){var n=s(e.components);return r.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},p=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=s(t),p=a,f=d["".concat(c,".").concat(p)]||d[p]||u[p]||i;return t?r.createElement(f,o(o({ref:n},m),{},{components:t})):r.createElement(f,o({ref:n},m))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=p;var l={};for(var c in n)hasOwnProperty.call(n,c)&&(l[c]=n[c]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var s=2;s<i;s++)o[s]=t[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,t)}p.displayName="MDXCreateElement"},25680:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=t(87462),a=(t(67294),t(3905));const i={title:"Performance & tracing update",slug:"2023-06-14-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-06-14-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-14-performance-and-tracing.md",source:"@site/blog/2023-06-14-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-06-14T00:00:00.000Z",formattedDate:"June 14, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.515,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-06-14-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-06-14-consensus"},nextItem:{title:"Network Team Update",permalink:"/2023-06-12-network"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:s},d="wrapper";function u(e){let{components:n,...t}=e;return(0,a.kt)(d,(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've continued release benchmarking and established a new baseline for ",(0,a.kt)("inlineCode",{parentName:"li"},"8.0.0"),"."),(0,a.kt)("li",{parentName:"ul"},"New tracing: Our benchmarking profile for measuring new vs. legacy tracing performance has been refined."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: The healthcheck system for the the nomad cloud has been completed. We've performed the first full runs on the new backend.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"In our release benchmarking cycle, we established a new performance baseline for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0.0"),". Additionally, we've measured\nperformance under various workloads for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.1.1-pre"),"; the results look promising and validate the optimization efforts\ndone on several system components. "),(0,a.kt)("p",null,"In the meantime, we've finalized a build plan with GHC9.2 that matches the current one with GHC8.10; a requirement for\nbenchmarking as a large amount of differences in the dependency graph can confound the results for the application code proper."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The legacy and the new tracing system differ fundamentally in design, implementation and handling. So for metrics to be\nmeaningful in a comparison, benchmarking profiles have to be tuned such that not only log line frequency but frequency of specific\ntrace messages are closely aligned. We've found that higher granularity in this regard was necessary, and done additional work on our dedicated profiles. "),(0,a.kt)("p",null,"Additionally, we've had a first glance of what additional traces could be valuable in the context of benchmarking UTxO-HD."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"As the new backend's healthcheck system in its first iteration can now serve as a guardrail to ensure sanity of a full-length run, we've performed our first 52-node cluster runs on nomad cloud. We're currently smoothing the edges around cluster deployment, and analysing the metrics gathered from those runs. "),(0,a.kt)("p",null,"This means the backend is entering validation phase, where we systematically compare all metrics taken from the new\ninfrastructure to the existing ones, including determining reproducibility and variance."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/822bd8ab.4d69b16c.js b/assets/js/822bd8ab.4d69b16c.js new file mode 100644 index 0000000000..fa4f6e9e3a --- /dev/null +++ b/assets/js/822bd8ab.4d69b16c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[36504],{3905:(t,e,r)=>{r.d(e,{Zo:()=>l,kt:()=>f});var a=r(67294);function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,a)}return r}function s(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?o(Object(r),!0).forEach((function(e){n(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function i(t,e){if(null==t)return{};var r,a,n=function(t,e){if(null==t)return{};var r,a,n={},o=Object.keys(t);for(a=0;a<o.length;a++)r=o[a],e.indexOf(r)>=0||(n[r]=t[r]);return n}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(a=0;a<o.length;a++)r=o[a],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}var u=a.createContext({}),c=function(t){var e=a.useContext(u),r=e;return t&&(r="function"==typeof t?t(e):s(s({},e),t)),r},l=function(t){var e=c(t.components);return a.createElement(u.Provider,{value:e},t.children)},p="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},m=a.forwardRef((function(t,e){var r=t.components,n=t.mdxType,o=t.originalType,u=t.parentName,l=i(t,["components","mdxType","originalType","parentName"]),p=c(r),m=n,f=p["".concat(u,".").concat(m)]||p[m]||d[m]||o;return r?a.createElement(f,s(s({ref:e},l),{},{components:r})):a.createElement(f,s({ref:e},l))}));function f(t,e){var r=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var o=r.length,s=new Array(o);s[0]=m;var i={};for(var u in e)hasOwnProperty.call(e,u)&&(i[u]=e[u]);i.originalType=t,i[p]="string"==typeof t?t:n,s[1]=i;for(var c=2;c<o;c++)s[c]=r[c];return a.createElement.apply(null,s)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},27428:(t,e,r)=>{r.r(e),r.d(e,{assets:()=>u,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const o={sidebar_position:6},s="Congratulations!",i={unversionedId:"tutorial-basics/congratulations",id:"tutorial-basics/congratulations",title:"Congratulations!",description:"You have just learned the basics of Docusaurus and made some changes to the initial template.",source:"@site/docs/tutorial-basics/congratulations.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/congratulations",permalink:"/docs/tutorial-basics/congratulations",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"defaultSidebar",previous:{title:"Deploy your site",permalink:"/docs/tutorial-basics/deploy-your-site"},next:{title:"Tutorial - Extras",permalink:"/docs/category/tutorial---extras"}},u={},c=[{value:"What's next?",id:"whats-next",level:2}],l={toc:c},p="wrapper";function d(t){let{components:e,...r}=t;return(0,n.kt)(p,(0,a.Z)({},l,r,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"congratulations"},"Congratulations!"),(0,n.kt)("p",null,"You have just learned the ",(0,n.kt)("strong",{parentName:"p"},"basics of Docusaurus")," and made some changes to the ",(0,n.kt)("strong",{parentName:"p"},"initial template"),"."),(0,n.kt)("p",null,"Docusaurus has ",(0,n.kt)("strong",{parentName:"p"},"much more to offer"),"!"),(0,n.kt)("p",null,"Have ",(0,n.kt)("strong",{parentName:"p"},"5 more minutes"),"? Take a look at ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("a",{parentName:"strong",href:"/docs/tutorial-extras/manage-docs-versions"},"versioning"))," and ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("a",{parentName:"strong",href:"/docs/tutorial-extras/translate-your-site"},"i18n")),"."),(0,n.kt)("p",null,"Anything ",(0,n.kt)("strong",{parentName:"p"},"unclear")," or ",(0,n.kt)("strong",{parentName:"p"},"buggy")," in this tutorial? ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/facebook/docusaurus/discussions/4610"},"Please report it!")),(0,n.kt)("h2",{id:"whats-next"},"What's next?"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Read the ",(0,n.kt)("a",{parentName:"li",href:"https://docusaurus.io/"},"official documentation")),(0,n.kt)("li",{parentName:"ul"},"Modify your site configuration with ",(0,n.kt)("a",{parentName:"li",href:"https://docusaurus.io/docs/api/docusaurus-config"},(0,n.kt)("inlineCode",{parentName:"a"},"docusaurus.config.js"))),(0,n.kt)("li",{parentName:"ul"},"Add navbar and footer items with ",(0,n.kt)("a",{parentName:"li",href:"https://docusaurus.io/docs/api/themes/configuration"},(0,n.kt)("inlineCode",{parentName:"a"},"themeConfig"))),(0,n.kt)("li",{parentName:"ul"},"Add a custom ",(0,n.kt)("a",{parentName:"li",href:"https://docusaurus.io/docs/styling-layout"},"Design and Layout")),(0,n.kt)("li",{parentName:"ul"},"Add a ",(0,n.kt)("a",{parentName:"li",href:"https://docusaurus.io/docs/search"},"search bar")),(0,n.kt)("li",{parentName:"ul"},"Find inspirations in the ",(0,n.kt)("a",{parentName:"li",href:"https://docusaurus.io/showcase"},"Docusaurus showcase")),(0,n.kt)("li",{parentName:"ul"},"Get involved in the ",(0,n.kt)("a",{parentName:"li",href:"https://docusaurus.io/community/support"},"Docusaurus Community"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8236b20c.8fc11def.js b/assets/js/8236b20c.8fc11def.js new file mode 100644 index 0000000000..fa31cf3007 --- /dev/null +++ b/assets/js/8236b20c.8fc11def.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7979],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),c=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,h=p["".concat(i,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},u),{},{components:n})):r.createElement(h,s({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[p]="string"==typeof e?e:a,s[1]=l;for(var c=2;c<o;c++)s[c]=n[c];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},16477:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-05-29-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,l={permalink:"/2024-05-29-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-29-consensus.md",source:"@site/blog/2024-05-29-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-05-29T00:00:00.000Z",formattedDate:"May 29, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.285,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-05-29-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-06-05-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2024-05-29-mithril"}},i={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Updated UTXO-HD to use simple diffs which drastically improved the mempool benchmarks (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/1114"},"#1114"),")."),(0,a.kt)("li",{parentName:"ul"},"Helped ",(0,a.kt)("inlineCode",{parentName:"li"},"quickcheck-state-machine")," to release version 0.10.0 (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/stevana/quickcheck-state-machine/pull/48"},"#48"),"). We rely on this library for our high-assurance property-tests."),(0,a.kt)("li",{parentName:"ul"},"Rebased UTXO-HD on top of node 8.11 (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1121"},"#1121"),"). A replay with the in-memory backend took 5:05 hours up to slot 124M.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/82db709e.f99eec3e.js b/assets/js/82db709e.f99eec3e.js new file mode 100644 index 0000000000..08fef5199f --- /dev/null +++ b/assets/js/82db709e.f99eec3e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27647],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=s(a),m=n,h=c["".concat(p,".").concat(m)]||c[m]||d[m]||o;return a?r.createElement(h,l(l({ref:t},u),{},{components:a})):r.createElement(h,l({ref:t},u))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:n,l[1]=i;for(var s=2;s<o;s++)l[s]=a[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},10627:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-11-10-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-11-10-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-10-sre.md",source:"@site/blog/2023-11-10-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-11-10T00:00:00.000Z",formattedDate:"November 10, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:2.225,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-11-10-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-11-10-hydra"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-11-09-db-sync"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3},{value:"Sanchonet-demo",id:"sanchonet-demo",level:3}],u={toc:s},c="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano-world testnets of preprod, preview, sanchonet and some private test chains have largely completed their migration to the ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground"},"cardano-playground")," stack")),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Minor bug fix and db-sync sanchonet package update: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/b1f1cbd...994696f"},"capkgs-compare"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"General migration support PR for cardano-world to cardano-playground ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/18"},"cardano-parts-pull-18"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Iohk-nix and iohk-nix-ng were updated support the migration of cardano-world networks to cardano-playground"),(0,n.kt)("li",{parentName:"ul"},"Sops-secrets dependent systemd services were fixed to ensure restart upon sops secrets changes"),(0,n.kt)("li",{parentName:"ul"},"Db chain utilities (db-{analyser,synthesizer,truncater}) had -ng variants created to operate on both release and pre-release network chains"),(0,n.kt)("li",{parentName:"ul"},"The profile-cardano-postgres nixos module received preset variables and prepared statements via pgsqlrc for faster and easier analysis of network state"),(0,n.kt)("li",{parentName:"ul"},"The flakeModule jobs now has support for the cardano-cli era command in each of the job scripts by passing the $ERA_CMD variable"),(0,n.kt)("li",{parentName:"ul"},"Default cardano-node-ng package is now 8.6.0-pre, dbsync on sanchonet is now sancho-2-2-0"),(0,n.kt)("li",{parentName:"ul"},"For scripts using a nix-shell shebang, the cardano-parts devShell menu can be disabled from injecting itself into stdout by passing NOMENU=true"),(0,n.kt)("li",{parentName:"ul"},"Template updates include:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Adds optional TF AZ declaration on ec2 resources"),(0,n.kt)("li",{parentName:"ul"},"Adds a cardano node p2p dashboard to the grafana cloud stack"),(0,n.kt)("li",{parentName:"ul"},"Adds a dbsync pool performance analysis query"),(0,n.kt)("li",{parentName:"ul"},"Updates python distribute and delegation scripts from world for playground compatibility"),(0,n.kt)("li",{parentName:"ul"},"Starts a python script lib to reduce shared code among the python scripts"),(0,n.kt)("li",{parentName:"ul"},"Several justfile improvements and new recipes"))),(0,n.kt)("li",{parentName:"ul"},"More detail is available in the PR description"))),(0,n.kt)("li",{parentName:"ul"},"Update submit action script for 8.6 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/19"},"cardano-parts-pull-19")),(0,n.kt)("li",{parentName:"ul"},"Update scripts for 8.6.0-pre ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/21"},"cardano-parts-pull-21"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Fixes subcommand names based on ERA_CMD"),(0,n.kt)("li",{parentName:"ul"},"Adds deposits to some commands"),(0,n.kt)("li",{parentName:"ul"},"Separates CC cold/hot key generation as host authorization has to occur after action is approved"),(0,n.kt)("li",{parentName:"ul"},"CC voting enabled in vote job")))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Migration PR to largely complete the network migration from cardano-world to cardano-playground: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/5"},"cardano-playground-pull-5"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Adds re-spun private chain network"),(0,n.kt)("li",{parentName:"ul"},"Migrates shelley-qa chain network from world"),(0,n.kt)("li",{parentName:"ul"},"Justfile improvements and new recipes"),(0,n.kt)("li",{parentName:"ul"},"Improve concurrent environment chain support"),(0,n.kt)("li",{parentName:"ul"},"More detail is available in the PR description")))),(0,n.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Migration to play: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/561"},"iohk-nix-pull-561"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Migrate cardano-lib networks from world.dev.cardano.org to play.dev.cardano.org"),(0,n.kt)("li",{parentName:"ul"},"Remove deprecated cardano-lib p2p network environment"),(0,n.kt)("li",{parentName:"ul"},"Update sanchonet chain with respin changes"),(0,n.kt)("li",{parentName:"ul"},"Update private chain with respin changes"),(0,n.kt)("li",{parentName:"ul"},"Bump private and shelley-qa chains to sanchonet equivalent conway genesis"),(0,n.kt)("li",{parentName:"ul"},"Bump preview, preprod chains to sanchonet equivalent conway genesis for node 8.6.0-pre pre-release testing")))),(0,n.kt)("h3",{id:"sanchonet-demo"},"Sanchonet-demo"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update for cardano-node 8.6.0-pre demo: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet-demo/commit/b54da94057ac0949421918208fd04795d029447d"},"sanchonet-demo-commit"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/82f24945.af89165c.js b/assets/js/82f24945.af89165c.js new file mode 100644 index 0000000000..cafd6d3c5f --- /dev/null +++ b/assets/js/82f24945.af89165c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[33724],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),s=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=s(a),d=n,h=c["".concat(u,".").concat(d)]||c[d]||m[d]||i;return a?r.createElement(h,o(o({ref:t},p),{},{components:a})):r.createElement(h,o({ref:t},p))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:n,o[1]=l;for(var s=2;s<i;s++)o[s]=a[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},11607:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Crypto Team Update",slug:"2023-01-20-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-20-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-20-crypto.md",source:"@site/blog/2023-01-20-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-01-20T00:00:00.000Z",formattedDate:"January 20, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.65,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-01-20-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-01-25-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2023-01-20-hydra"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3}],p={toc:s},c="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Mithril: We explored whether some uses of ",(0,n.kt)("inlineCode",{parentName:"li"},"transmute")," could be removed, but it resulted in considerable regression. "),(0,n.kt)("li",{parentName:"ul"},"cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision. "),(0,n.kt)("li",{parentName:"ul"},"KES agent: An inconsistency between ",(0,n.kt)("inlineCode",{parentName:"li"},"contra-tracer")," available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the ",(0,n.kt)("inlineCode",{parentName:"li"},"contra-tracer")," used by consensus. ")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/675"},"PR#675"),". We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing. "),(0,n.kt)("li",{parentName:"ul"},"We are writing a RFP for the audit of the core library. ")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A problem with Nix is blocking merge of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/341"},"PR#341")),(0,n.kt)("li",{parentName:"ul"},"Plutus team ran ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/plutus/blob/kwxm/BLS12_381/prototype/plutus-benchmark/bls-benchmarks/Main.hs"},"benchmarks")," of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution."),(0,n.kt)("li",{parentName:"ul"},"Team is fully digesting the Plonk paper. "),(0,n.kt)("li",{parentName:"ul"},"There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used. ")),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A little unforseen delay has been caused by a mismatch in the use of ",(0,n.kt)("inlineCode",{parentName:"li"},"contra-tracer"),". The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/255/commits/39b2d9473aa296976825248360a73cf066065431"},"doing the change"),", but still the CI is not happy."),(0,n.kt)("li",{parentName:"ul"},"The ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/317/commits/39b2d9473aa296976825248360a73cf066065431"},"same")," was needed for the KES agents prerequisites ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/317"},"PR#317"),"."),(0,n.kt)("li",{parentName:"ul"},"We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/831d95cb.95d265a5.js b/assets/js/831d95cb.95d265a5.js new file mode 100644 index 0000000000..00c144f749 --- /dev/null +++ b/assets/js/831d95cb.95d265a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75319],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),d=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=d(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),h=d(a),u=n,m=h["".concat(s,".").concat(u)]||h[u]||c[u]||o;return a?r.createElement(m,i(i({ref:t},p),{},{components:a})):r.createElement(m,i({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,i[1]=l;for(var d=2;d<o;d++)i[d]=a[d];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},69346:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-01-13-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-01-13-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-13-hydra.md",source:"@site/blog/2023-01-13-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-01-13T00:00:00.000Z",formattedDate:"January 13, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.56,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-01-13-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-01-14-db-sync"},nextItem:{title:"Node Release Team Update",permalink:"/2023-01-13-release"}},s={authorsImageUrls:[void 0]},d=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:d},h="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"Since last weekly update before christmas, the Hydra team worked on the\ntechnical specification, closed gaps in ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-plutus")," scripts, made the unique\n",(0,n.kt)("inlineCode",{parentName:"p"},"headId")," available to Hydra clients through the API, allow the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," to\nexplicitly synchronize from genesis (if configured), and fixed smaller log and\nbuild issues reported by new users."),(0,n.kt)("p",null,"Besides this, a retrospective ",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/en/news/hydra-head-protocol-an-open-source-solution-for-scalability/"},"blog\npost"),"\nwas published by Matthias Benkort (CF) on Hydra, summarizing our progress made\nin 2022 also an outlook where Hydra is headed for in 2023. Also, the team had\nsome first sessions on the voting project with Catalyst and the CF."),(0,n.kt)("p",null,"A full digest monthly digest for December 2022 can be found on the ",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/monthly/2022-12"},"hydra\nwebsite"),"."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Had some first sessions on the voting project with Catalyst and CF"),(0,n.kt)("li",{parentName:"ul"},"Published retrospective ",(0,n.kt)("a",{parentName:"li",href:"https://cardanofoundation.org/en/news/hydra-head-protocol-an-open-source-solution-for-scalability/"},"blog\npost"),"\nby Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also\nan outlook where Hydra is headed for in 2023."),(0,n.kt)("li",{parentName:"ul"},"Worked on the LaTeX spec for HydraHeadV1, not final or published yet - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/ch1bo/hydra-spec"},"latest\nversion in this repository"),"."),(0,n.kt)("li",{parentName:"ul"},"Add unique ",(0,n.kt)("inlineCode",{parentName:"li"},"headId")," to API and hence make it available to clients."),(0,n.kt)("li",{parentName:"ul"},"Allow ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")," to explicitly synchronize from genesis using ",(0,n.kt)("inlineCode",{parentName:"li"},"--start-chain-from 0"),"."),(0,n.kt)("li",{parentName:"ul"},"Closed gaps in ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-plutus")," scripts",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"bounded transaction validity (",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/adr/21/"},"ADR21"),")"),(0,n.kt)("li",{parentName:"ul"},"enforcing contract continuity via state token in output"))),(0,n.kt)("li",{parentName:"ul"},"Fixed JSON for some logs and smaller build issues reported by new users.")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Reach out to have ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-tutorial")," integrated."),(0,n.kt)("li",{parentName:"ul"},"Plan the next couple of months."),(0,n.kt)("li",{parentName:"ul"},"Complete checking reimbursing of commits in head validator."),(0,n.kt)("li",{parentName:"ul"},"Align plutus scripts to spec and simplify them (identified some simplifications)"),(0,n.kt)("li",{parentName:"ul"},"Improve mutation framework to be sure we fail tests for the right reasons"),(0,n.kt)("li",{parentName:"ul"},"Complete the spec except the open points (<5) and also discuss them with researchers.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8368e4b7.b20cb50a.js b/assets/js/8368e4b7.b20cb50a.js new file mode 100644 index 0000000000..1e96887104 --- /dev/null +++ b/assets/js/8368e4b7.b20cb50a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[79008],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>h});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},d=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),m=c(t),u=a,h=m["".concat(s,".").concat(u)]||m[u]||p[u]||o;return t?r.createElement(h,i(i({ref:n},d),{},{components:t})):r.createElement(h,i({ref:n},d))}));function h(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=u;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=t[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}u.displayName="MDXCreateElement"},86097:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=t(87462),a=(t(67294),t(3905));const o={title:"Performance & Tracing Update",slug:"2024-05-24-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-05-24-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-24-performance-and-tracing.md",source:"@site/blog/2024-05-24-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-05-24T00:00:00.000Z",formattedDate:"May 24, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:3.87,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-05-24-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-05-27-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2024-05-24-sre"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3}],d={toc:c},m="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(m,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Node versions ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"8.11.0"),"; new ",(0,a.kt)("inlineCode",{parentName:"li"},"PlutusV3")," plus addtional ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep")," benchmarks; re-evaluation of network latency."),(0,a.kt)("li",{parentName:"ul"},"Development: BLST workload for PlutusV3 was implemented; improved error/shutdown behaviour for ",(0,a.kt)("inlineCode",{parentName:"li"},"tx-generator")," is in testing phase."),(0,a.kt)("li",{parentName:"ul"},"Workbench: UTxO-HD tracer configs harmonized. New ",(0,a.kt)("inlineCode",{parentName:"li"},"plutusv3")," profiles supporting experimental budgets. Work on Haskell profile definition is in validation phase."),(0,a.kt)("li",{parentName:"ul"},"Tracing: New metrics and handle registry feature merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master"),". Work on metrics naming ongoing. Factoring out RTView component has begun.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"Runs and analyses of full sets of release benchmarks have been performed for Node versions ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.3")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"8.11.0"),". "),(0,a.kt)("p",null,"For comparison of how the Conway ledger performs when injecting large amounts of ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s and delegations versus one with zero ",(0,a.kt)("inlineCode",{parentName:"p"},"DReps")," we've run additional configurations with existing workloads from release benchmarking. So far we've found\nthat the number of ",(0,a.kt)("inlineCode",{parentName:"p"},"DReps")," in ledger scales well and does not lead to notable performance penalties. "),(0,a.kt)("p",null,"Additionally, we've successfully run the baseline for the upcoming ",(0,a.kt)("inlineCode",{parentName:"p"},"PlutusV3")," benchmarks on our Nomad cluster. Those will, given the new V3 cost model, serve to determine headroom, or constraint, regarding resource usage and network metrics when\noperating under various execution budgets. "),(0,a.kt)("p",null,"Last not least, with much appreciated support and feedback from the network team, we performed a re-evaluation of the network the latency matrix for our benchmarking cluster. The cluster stretches over three regions globally. Due to unknown changes in the underlying\nhardware infrastructure, a slight delay between Europe and Asia/Pacific regions could be measured. We needed to adjust some existing baselines accordingly - otherwise, this delay could be falsely attributed to a software regression."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"We have implemented a benchmarking workload using ",(0,a.kt)("inlineCode",{parentName:"p"},"PlutusV3"),"'s new BLST internals. As those do little memory allocation, but require more CPU steps, this workload will allow us to focus on that particular aspect of block and transaction budgets."),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"tx-generator")," service will now label each submission thread with its submission target. Additionally, it has been equipped with custom signal handlers. This will improve both how gracefully shutdowns can be performed, and how\nprecise error reporting is done when losing connection to a submission target. Last not least, the service now supports a configurable ",(0,a.kt)("inlineCode",{parentName:"p"},"KeepAlive")," timeout for the ",(0,a.kt)("inlineCode",{parentName:"p"},"NodeToNode")," mini-protocol - accounting for very long major GC pauses on\nsubmission targets under very specific benchmarking workloads. Those features have entered testing phase. "),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"Thanks to feedback from the consensus team, we've harmonized tracing configurations for our benchmarks between regular and UTxO-HD node. As the latter is more verbose by default, this is a confounding factor for our metrics: We're analysing north\nof 90 traces per second per cluster node, so all node flavours are required to be equally verbose. "),(0,a.kt)("p",null,"The benchmarks based on the BLST workload now additionally support scaling budget components up or down at will. This means we can run a given cost model against custom execution budgets, controlling the point where the workload will exhaust it. This enables comparison\nof performance impact of potential changes to those budgets. "),(0,a.kt)("p",null,"Porting our performance workbench's profile definitions to Haskell has been nearly completed, and an adequate test suite been implemented. This new component has now entered validation phase to make sure it correctly replicates all existing profile content."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"Two new metrics for ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," have landed in ",(0,a.kt)("inlineCode",{parentName:"p"},"master")," - both for new and legacy tracing systems. They provide detailed build info, and indicate wether the node is a block producer or not. "),(0,a.kt)("p",null,"We're now working on closing the gap in the metric naming schema between new and legacy tracing. The aim is to allow for a seamless interchange, without additional configuration required, so that all existing monitoring services can rely on identical metric\nnames with identical semantics. "),(0,a.kt)("p",null,'Furthermore, work has begun to factor out the RTView ("real-time view") component of ',(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," in the new tracing system. Unfortunately, the component has remained in prototype stage for over a year, and has revealed some design shortcomings. It's aim\nis to provide an interactive, real-time dashboard based on metrics from all nodes connected to ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),". The current design has all front-end side code baked into the backend service, requiring to rebuild the entire service in Haskell even for simple changes in the\ndashboard. We decided to isolate the component in the current code base, which still allows for optionally enabling it for a build. The long term goal however is to convert it into a downstream service: It will ingest metrics by reforwarding, or querying a REST API, and will provide\na clear separation of frontend facing code. Thus we, and anybody, can use their favourite web technology for visualization of metrics."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/83757913.b8bba9e9.js b/assets/js/83757913.b8bba9e9.js new file mode 100644 index 0000000000..69371705a5 --- /dev/null +++ b/assets/js/83757913.b8bba9e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[42571],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>k});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=o,k=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(k,i(i({ref:t},u),{},{components:r})):n.createElement(k,i({ref:t},u))}));function k(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:o,i[1]=l;for(var p=2;p<a;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},70692:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2024-02-05-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-02-05-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-05-network.md",source:"@site/blog/2024-02-05-network.md",title:"Network Team Update",description:"High-level overview of sprint 54",date:"2024-02-05T00:00:00.000Z",formattedDate:"February 5, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.375,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-02-05-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-02-07-mithril"},nextItem:{title:"SRE Team Update",permalink:"/2024-02-02-sre"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 54",id:"high-level-overview-of-sprint-54",level:2},{value:"Open Source Contributions",id:"open-source-contributions",level:2},{value:"IOSim",id:"iosim",level:3},{value:"NoThunks",id:"nothunks",level:3},{value:"Low-level summary",id:"low-level-summary",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-54"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+54%22"},"sprint 54")),(0,o.kt)("p",null,"In this sprint, we merged the bootstrap peers (aka weak genesis) changes to\nthe ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," repository (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4615"},"ouroboros-network#4615"),"). We continued\nworking on integration & testing it using an early development version of\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/pull/5485"},"cardano-node#5485"),")."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/AndrewWestberg"},"Andrew Westberg")," (",(0,o.kt)("a",{parentName:"p",href:"https://dripdropz.io/"},"DripDropz"),") noticed and fixed a mistake in the cddl spec which resulted in\nmisleading documentation; ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4790"},"ouroboros-network#4790"),". The Handshake protocol flag\nshould be called ",(0,o.kt)("inlineCode",{parentName:"p"},"initiatorOnlyDiffusionMode"),". Library authors providing\nconnectivity with other nodes via the ",(0,o.kt)("inlineCode",{parentName:"p"},"node-to-node")," protocol are advised to review\ntheir implementation."),(0,o.kt)("p",null,"We continued working on the ",(0,o.kt)("inlineCode",{parentName:"p"},"tx-submission")," decision logic;\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network#3311"),"."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/karknu"},"Karl Knutsson")," (",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") implemented:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"a debugging feature which dumps outbound governor state on the ",(0,o.kt)("inlineCode",{parentName:"li"},"SIGUSR1")," event\n(supported on ",(0,o.kt)("em",{parentName:"li"},"POSIX")," compatible OSes); ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4730"},"ouroboros-network#4730"),", ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4789"},"ouroboros-network#4789"),"."),(0,o.kt)("li",{parentName:"ul"},"limited the rate at which one can discover nodes through peer sharing;\n",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4778"},"ouroboros-network#4778"),".")),(0,o.kt)("h2",{id:"open-source-contributions"},"Open Source Contributions"),(0,o.kt)("h3",{id:"iosim"},"IOSim"),(0,o.kt)("p",null,"We released a new version of ",(0,o.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/io-sim"},"io-sim to Hackage"),":"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/ch1bo"},"Sebastian Nagel")," (IOG) fixed a bug in the ",(0,o.kt)("inlineCode",{parentName:"li"},"flushTQueue")," implementation; ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/135"},"io-sim#135")),(0,o.kt)("li",{parentName:"ul"},"We fixed the underflow error in ",(0,o.kt)("inlineCode",{parentName:"li"},"threadDelay")," in the ",(0,o.kt)("inlineCode",{parentName:"li"},"si-timers")," library\n(",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/129"},"io-sim#129"),") reported by ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/nfrisby"},"Nick Frisby")," (Tweag)")),(0,o.kt)("h3",{id:"nothunks"},"NoThunks"),(0,o.kt)("p",null,"We released a new version of ",(0,o.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/nothunks"},"nothunks to Hackage"),":"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"wherefrom")," support; ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/nothunks/pull/46"},"nothunks#46")),(0,o.kt)("li",{parentName:"ul"},"added ",(0,o.kt)("inlineCode",{parentName:"li"},"Solo")," instance; ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/nothunks/pull/45"},"nothunks#45")),(0,o.kt)("li",{parentName:"ul"},"added instances for ",(0,o.kt)("inlineCode",{parentName:"li"},"Monoid")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"Semigroup")," newtype wrappers; ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/nothunks/pull/43"},"nothunks#43"))),(0,o.kt)("h2",{id:"low-level-summary"},"Low-level summary"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We started using the ",(0,o.kt)("inlineCode",{parentName:"li"},"ImportQualifiedPost")," extension, hence a large\n(autogenerated) syntax change; ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4715"},"ouroboros-network#4715"),"."),(0,o.kt)("li",{parentName:"ul"},"Code cleanup; ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4792"},"ouroboros-network#4792"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/83831b70.58e74740.js b/assets/js/83831b70.58e74740.js new file mode 100644 index 0000000000..774fc8bb54 --- /dev/null +++ b/assets/js/83831b70.58e74740.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[63288],{12811:e=>{e.exports=JSON.parse('{"permalink":"/tags/goedel/page/5","page":5,"postsPerPage":5,"totalPages":5,"totalCount":23,"previousPage":"/tags/goedel/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/838dc3f3.43fca0bc.js b/assets/js/838dc3f3.43fca0bc.js new file mode 100644 index 0000000000..81c2f25c5b --- /dev/null +++ b/assets/js/838dc3f3.43fca0bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73745],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>c});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),l=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),m=l(n),d=r,c=m["".concat(s,".").concat(d)]||m[d]||h[d]||i;return n?o.createElement(c,a(a({ref:t},u),{},{components:n})):o.createElement(c,a({ref:t},u))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=d;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[m]="string"==typeof e?e:r,a[1]=p;for(var l=2;l<i;l++)a[l]=n[l];return o.createElement.apply(null,a)}return o.createElement.apply(null,n)}d.displayName="MDXCreateElement"},37228:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>p,toc:()=>l});var o=n(87462),r=(n(67294),n(3905));const i={title:"Network Team Update",slug:"2023-12-08-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},a=void 0,p={permalink:"/2023-12-08-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08-network.md",source:"@site/blog/2023-12-08-network.md",title:"Network Team Update",description:"High-level overview of sprint 49 & sprint 50",date:"2023-12-08T00:00:00.000Z",formattedDate:"December 8, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.445,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-12-08-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-12-08-goedel"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-12-08-node-cli-api"}},s={authorsImageUrls:[void 0]},l=[{value:"High-level overview of sprint 49 & sprint 50",id:"high-level-overview-of-sprint-49--sprint-50",level:2},{value:"Fixed PeerSelection bug",id:"fixed-peerselection-bug",level:3},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"Tx-Submission",id:"tx-submission",level:3},{value:"Peer Sharing",id:"peer-sharing",level:2},{value:"IOSim",id:"iosim",level:3},{value:"Cardano-Ping",id:"cardano-ping",level:3},{value:"Technical Debt",id:"technical-debt",level:3}],u={toc:l},m="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(m,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-overview-of-sprint-49--sprint-50"},"High-level overview of ",(0,r.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+49%22"},"sprint 49")," & ",(0,r.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+50%22"},"sprint 50")),(0,r.kt)("h3",{id:"fixed-peerselection-bug"},"Fixed PeerSelection bug"),(0,r.kt)("p",null,"Karl Knutsson (",(0,r.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"Cardano Foundation (CF)"),") found a bug in\nthe ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.7.0")," version used on the Sancho Net which was fixed in ",(0,r.kt)("inlineCode",{parentName:"p"},"8.7.1"),".\nIt resulted in a node not being able to reconnect to an upstream peer once it\nwas demoted by an asynchronous exception. This bug would be caught by Q&A in\na mainet release, but for testnet releases, Q&A test suite is not used. We also\ndeveloped a test which covers the bug in the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", we also identified\na missing ",(0,r.kt)("inlineCode",{parentName:"p"},"PeerSelection")," test which we need to port to our simulation network.\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4734"},"ouroboros-network#4734"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4665"},"ouroboros-network#4665"),"."),(0,r.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,r.kt)("p",null,"Still under review, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4555"},"ouroboros-network#4555"),". The consensus team is now\nimplementing the API we need for bootstrap peers. Once consensus API is implemented we will integrate changes in an experimental branch of\n",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node"),"."),(0,r.kt)("h3",{id:"tx-submission"},"Tx-Submission"),(0,r.kt)("p",null,"We started working on a new implementation of the tx-submission application. No\n",(0,r.kt)("inlineCode",{parentName:"p"},"tx-submission")," protocol changes are foreseen, but we want to be able to\ndownload each ",(0,r.kt)("inlineCode",{parentName:"p"},"tx")," from just one upstream peer and share the results between\ndifferent connections. We want to distribute the bandwidth between multiple\nclients. We also think that this work will prepare us for the future\nOuroboros-Leios changes, which will contain various versions of ",(0,r.kt)("inlineCode",{parentName:"p"},"tx-submission"),"\nlike mini-protocols. See ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4701"},"ouroboros-network#4701"),"."),(0,r.kt)("h2",{id:"peer-sharing"},"Peer Sharing"),(0,r.kt)("p",null,"Various fixes and improvements were implemented:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4725"},"ouroboros-network#4725")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"disabled peer sharing with initiator-only nodes: currently it's not\npossible to get peers from initiator-only nodes (edge nodes, e.g.\nwallets). In the future, we might change this, which will require running\na server-side of the ",(0,r.kt)("inlineCode",{parentName:"li"},"peer-sharing")," protocol by such nodes. See\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4726"},"ouroboros-network#4726"),"."),(0,r.kt)("li",{parentName:"ul"},"fixed ",(0,r.kt)("inlineCode",{parentName:"li"},"peer-sharing")," codec"),(0,r.kt)("li",{parentName:"ul"},"fixed a handshake bug which returned a wrong peer-sharing option"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4728"},"ouroboros-network#4728")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"disabled ",(0,r.kt)("inlineCode",{parentName:"li"},"peer-sharing")," for ",(0,r.kt)("inlineCode",{parentName:"li"},"NodeToNodeV_11")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"NodeToNodeV_12")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Karl Knutsson (",(0,r.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") has been working on additional improvements, e.g. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4735"},"ouroboros-network#4735")))),(0,r.kt)("p",null,"With these fixes, Karl Knutsson (",(0,r.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") was able to see that two peers on the mainnet\ncan discover themselves through ",(0,r.kt)("inlineCode",{parentName:"p"},"peer-sharing")," and keep being mutually useful\nand thus the connection surviving ",(0,r.kt)("inlineCode",{parentName:"p"},"outbound-governor")," churn events."),(0,r.kt)("h3",{id:"iosim"},"IOSim"),(0,r.kt)("p",null,"We improved the memory footprint of ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSim")," in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/126"},"io-sim#126"),", see\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4722"},"ouroboros-network#4721")," for heap profile improvements on large test cases."),(0,r.kt)("p",null,"We are working on optimising the memory footprint of ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSimPOR"),". We are\nreimplementing ",(0,r.kt)("inlineCode",{parentName:"p"},"VectorClocks")," using a trie, instead of a map which leads to\nsignificant improvements."),(0,r.kt)("h3",{id:"cardano-ping"},"Cardano-Ping"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-0.2.0.10")," was released to ",(0,r.kt)("inlineCode",{parentName:"p"},"CHaP"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4746"},"ouroboros-network#4746"),". This\nversion exports more APIs which turned out to be useful in ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," test\nsuite, see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5536"},"cardano-node#5536"),"."),(0,r.kt)("h3",{id:"technical-debt"},"Technical Debt"),(0,r.kt)("p",null,"We addressed some small tech-debt issues in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4722"},"ouroboros-network#4722"),":"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"fixed some typos"),(0,r.kt)("li",{parentName:"ul"},"using ",(0,r.kt)("inlineCode",{parentName:"li"},"bracket")," instead of ",(0,r.kt)("inlineCode",{parentName:"li"},"onException")," in ",(0,r.kt)("inlineCode",{parentName:"li"},"withSnocket")),(0,r.kt)("li",{parentName:"ul"},"improved haddocks"),(0,r.kt)("li",{parentName:"ul"},"organised ",(0,r.kt)("inlineCode",{parentName:"li"},"TracePeerSelection")," constructors")),(0,r.kt)("p",null,"We improved the memory footprint of some of our tests in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4722"},"ouroboros-network#4721"),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/839c5f78.f5d68b8b.js b/assets/js/839c5f78.f5d68b8b.js new file mode 100644 index 0000000000..af494d3ab0 --- /dev/null +++ b/assets/js/839c5f78.f5d68b8b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90645],{46923:a=>{a.exports=JSON.parse('{"label":"mithril","permalink":"/tags/mithril","allTagsPath":"/tags","count":63}')}}]); \ No newline at end of file diff --git a/assets/js/83e7e4db.f4ae79a2.js b/assets/js/83e7e4db.f4ae79a2.js new file mode 100644 index 0000000000..6ed0df60cd --- /dev/null +++ b/assets/js/83e7e4db.f4ae79a2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[68102],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(n),m=r,h=c["".concat(l,".").concat(m)]||c[m]||d[m]||i;return n?a.createElement(h,o(o({ref:t},p),{},{components:n})):a.createElement(h,o({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,o[1]=s;for(var u=2;u<i;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},85321:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const i={title:"Consensus Quarterly Update",slug:"2022-11-15-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,s={permalink:"/quarterly/2022-11-15-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2022-11-15-consensus.md",source:"@site/quarterly/2022-11-15-consensus.md",title:"Consensus Quarterly Update",description:"Consensus Quarterly Update",date:"2022-11-15T00:00:00.000Z",formattedDate:"November 15, 2022",tags:[{label:"consensus",permalink:"/quarterly/tags/consensus"}],readingTime:3.655,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Quarterly Update",slug:"2022-11-15-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Open-Source Update",permalink:"/quarterly/2023-01-13-open-source"},nextItem:{title:"Network Team Update",permalink:"/quarterly/2022-11-09-network"}},l={authorsImageUrls:[void 0]},u=[{value:"Consensus Quarterly Update",id:"consensus-quarterly-update",level:2},{value:"2022-09 - 2022-11",id:"2022-09---2022-11",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"UTxO HD",id:"utxo-hd",level:4},{value:"Genesis",id:"genesis",level:4},{value:"Conway era",id:"conway-era",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"UTxO HD",id:"utxo-hd-1",level:4},{value:"Genesis",id:"genesis-1",level:4},{value:"Tech debt",id:"tech-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration-1",level:4}],p={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"consensus-quarterly-update"},"Consensus Quarterly Update"),(0,r.kt)("h2",{id:"2022-09---2022-11"},"2022-09 - 2022-11"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"As a consequence of the errors observed when running distributed mempool\nbenchmarks, we re-designed the UTxO HD mempool integration, which fixed these\nerrors and lead to a simpler and more maintainable design.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We focused on increasing test coverage for the UTxO-HD prototype. In\nparticular, we added property tests for:"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Backing store (work ongoing)"),(0,r.kt)("li",{parentName:"ul"},"Era transitions"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The property tests we added uncovered several bugs, which is a great result\ngiven the exponential increase in the cost of finding bugs as they are closer\nto deployment.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"One of the errors found by our tests required us to work on improvements in\nthe Haskell bindings for LMDB. This work is ongoing.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We started working on the mempool property tests that will exercise the new\ncode paths that UTxO HD introduced.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'We developed, benchmarked and tested an implementation of sequences of\ndifferences based on "anti-diffs". Performance results of diff sequence\noperations show that we achieved a speedup of about ',(0,r.kt)("inlineCode",{parentName:"p"},"4x")," across several\nscenarios. Note: this speedup is taking into account diff sequence operations\nonly, so the consensus-wide speedup is less than ",(0,r.kt)("inlineCode",{parentName:"p"},"4x"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'We integrated the "anti-diff" prototype into the UTxO HD feature branch.'))),(0,r.kt)("h4",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We wrote a simulator that demonstrates soundness of an abstract implementation\nof the new chain selection rule."),(0,r.kt)("li",{parentName:"ul"},"We elaborated a draft specification for the Genesis implementation (currently\nawaiting feedback from other architects)."),(0,r.kt)("li",{parentName:"ul"},"We elaborated a draft specification for the ChainSync Jumping optimization. In\nparticular, this includes a proof sketch that the latter preserves liveness\nand safety in all cases."),(0,r.kt)("li",{parentName:"ul"},"With the Networking team, we co-designed the eclipse avoidance mechanism,\nspecifically its coherence with the Genesis implementation plan's security\nand its dependence on the new ChainSync Jumping optimization."),(0,r.kt)("li",{parentName:"ul"},"We implemented a prototype for ChainSync Jumping. Initial benchmarks showed a\nperformance degradation wrt the baseline. Our optimization attempts so far\nhave brought the performance closer to the baseline, but not yet to parity.")),(0,r.kt)("h4",{id:"conway-era"},"Conway era"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We did most of the heavy lifting required to integrate the Conway era into the\nConsensus layer.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We started working on enabling CI nightly tests, which revealed several test\nfailures due to thunks being found it data structures used by the ledger and\nconsensus. We made a lot of progress fixing those thunk errors, but some\nerrors still remain.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We elaborated a ",(0,r.kt)("inlineCode",{parentName:"p"},"db-analyser")," benchmark for the ledger operations. This led us\nto the identification of high processing time at epoch boundaries, and we\ncould not observe any performance degradation that can be attributed to era\nchanges.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed a source of flakiness in the ChainDB QSM test.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We clarified a common source of confusion around VRF tie-breaking and\ncross-era chain selection.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed a bug in the maximum-allowed ledger major protocol version."))),(0,r.kt)("h4",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We spent time making ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-updates")," the central source of information for\nthe core teams stakeholders."),(0,r.kt)("li",{parentName:"ul"},"We went through the Galois gap analysis and extracted actionable points to\ntake on next."),(0,r.kt)("li",{parentName:"ul"},"Bart and Yogesh continued with their onboarding and stated making substantial\ncontributions to consensus.")),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"utxo-hd-1"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Finish the mempool property tests."),(0,r.kt)("li",{parentName:"ul"},"Benchmark the latest version of the prototype."),(0,r.kt)("li",{parentName:"ul"},"Elaborate a document that describes new integration test scenarios and pass it\nto the SDET team."),(0,r.kt)("li",{parentName:"ul"},"Bring query UTxO by address command performance on par with the baseline\nversion.")),(0,r.kt)("h4",{id:"genesis-1"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Receive and incorporate Duncan's feedback on the first draft specification for\nthe Genesis implementation."),(0,r.kt)("li",{parentName:"ul"},"Begin prototyping the first genesis implementation, unless the first draft\nneeds major changes."),(0,r.kt)("li",{parentName:"ul"},"Draft a second revision of the Genesis report."),(0,r.kt)("li",{parentName:"ul"},"Review the second revision with a wider audience, which includes at least\nAlexander Russell. That feedback will drive a third and hopefully final\nrevision."),(0,r.kt)("li",{parentName:"ul"},"Investigate how to mitigate the ~30% slowdown we have observed so far in the\nChainSync jumping prototype, and try to mitigate it. In particular, we might\nneed to optimize the existing BlockFetch logic.")),(0,r.kt)("h4",{id:"tech-debt"},"Tech debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Enabling nightly CI tests.")),(0,r.kt)("h4",{id:"fostering-collaboration-1"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Merge the tutorial document Galois wrote; requires CI integration."),(0,r.kt)("li",{parentName:"ul"},"Come up with our own documentation improvements, many of which were suggested\nin the Galois gap analysis."),(0,r.kt)("li",{parentName:"ul"},"Try to hire a new team member.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/84189288.64173711.js b/assets/js/84189288.64173711.js new file mode 100644 index 0000000000..6cb69300c8 --- /dev/null +++ b/assets/js/84189288.64173711.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48863],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},u),{},{components:n})):r.createElement(h,s({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var c=2;c<o;c++)s[c]=n[c];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},59071:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-07-12-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-07-12-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-12-consensus.md",source:"@site/blog/2023-07-12-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-07-12T00:00:00.000Z",formattedDate:"July 12, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.59,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-07-12-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-07-13-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-07-12-performance-and-tracing"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This week the team working on UTxO-HD discovered a space leak in the peer metrics code. This was communicated to the Networking team who has a ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4620"},"proposed fix"),". The ad-hoc benchmarks that the team ran using a local immutable DB server showed good memory and time performance. We still have to check the performance on a memory constrained machine."),(0,a.kt)("p",null,"The team working on the Genesis design started onboarding the team of engineers that will implement the new Genesis protocol. This team is also finalizing the statistical model for historical Genesis feasibility."),(0,a.kt)("p",null,"On the support front, the team ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/200"},"drafted")," an information exchange requirement (IER) for the Networking team to safely and efficiently control peer load."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/84677cf0.0b28bfba.js b/assets/js/84677cf0.0b28bfba.js new file mode 100644 index 0000000000..91a6ac4bc6 --- /dev/null +++ b/assets/js/84677cf0.0b28bfba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54415],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(67294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,i=function(e,t){if(null==e)return{};var a,r,i={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var s=r.createContext({}),u=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,i=e.mdxType,n=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),h=u(a),c=i,m=h["".concat(s,".").concat(c)]||h[c]||p[c]||n;return a?r.createElement(m,o(o({ref:t},d),{},{components:a})):r.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=a.length,o=new Array(n);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var u=2;u<n;u++)o[u]=a[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},70789:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>n,metadata:()=>l,toc:()=>u});var r=a(87462),i=(a(67294),a(3905));const n={title:"Hydra Team Update",slug:"2022-12-09-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-12-09-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-09-hydra.md",source:"@site/blog/2022-12-09-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2022-12-09T00:00:00.000Z",formattedDate:"December 9, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.62,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-12-09-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2022-12-09-crypto"},nextItem:{title:"Ledger Team Update",permalink:"/2022-12-09-ledger"}},s={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:u},h="wrapper";function p(e){let{components:t,...a}=e;return(0,i.kt)(h,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,i.kt)("p",null,'This week, the Hydra team has worked on completing to "Validate coordinated head protocol against formal model", this is a huge step to verify the implementation is secure. They also worked on implementing ',(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md"},"ADR21")," related to bounded tx validity which is now under review. ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/obsidiansystems/hydra-pay"},"HydraPay")," project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/obsidiansystems/hydra-pay/issues?q=is%3Aissue"},"issues")," they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced."),(0,i.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Document model based testing ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/194"},"#194")," & ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/641"},"#641")),(0,i.kt)("li",{parentName:"ul"},"Got ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md"},"ADR21"),", reducing gaps between implementation and specification, under review."),(0,i.kt)("li",{parentName:"ul"},"Complete review on ",(0,i.kt)("inlineCode",{parentName:"li"},"hydra-tutorial"),"."),(0,i.kt)("li",{parentName:"ul"},"Complete first round of review on ",(0,i.kt)("inlineCode",{parentName:"li"},"HydraPay")," work ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/634"},"#634")),(0,i.kt)("li",{parentName:"ul"},"Meeting with ",(0,i.kt)("inlineCode",{parentName:"li"},"Director of CyberSecurity")," frio ",(0,i.kt)("inlineCode",{parentName:"li"},"IOG"),' to unblock "the RFP prepared for the external audit" ',(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/606"},"#606")),(0,i.kt)("li",{parentName:"ul"},"Remove ",(0,i.kt)("inlineCode",{parentName:"li"},"vasil-dev")," and ",(0,i.kt)("inlineCode",{parentName:"li"},"testnet")," from ",(0,i.kt)("inlineCode",{parentName:"li"},"smoke-test")," because they were not working ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/630"},"#630")),(0,i.kt)("li",{parentName:"ul"},"Fix flaky ",(0,i.kt)("inlineCode",{parentName:"li"},"plutus-merkle-tree")," test ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/642"},"#642")),(0,i.kt)("li",{parentName:"ul"},"Refactor ",(0,i.kt)("inlineCode",{parentName:"li"},"NetworkSpec")," to improve legilibility."),(0,i.kt)("li",{parentName:"ul"},"Fix benchmark cost for ",(0,i.kt)("inlineCode",{parentName:"li"},"abortTx")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/631"},"#631")),(0,i.kt)("li",{parentName:"ul"},"Adapt ",(0,i.kt)("inlineCode",{parentName:"li"},"nix.conf")," to the recent hydra-ci nix cache migration.")),(0,i.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Get ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md"},"ADR21")," accepted & close tx validity gap in our implementation."),(0,i.kt)("li",{parentName:"ul"},"Integrate the ",(0,i.kt)("inlineCode",{parentName:"li"},"hydra-tutorial"),"."),(0,i.kt)("li",{parentName:"ul"},"Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec."),(0,i.kt)("li",{parentName:"ul"},"Get Cicero (new CI) working."),(0,i.kt)("li",{parentName:"ul"},"Use reference inputs to reduce the cost of the ",(0,i.kt)("inlineCode",{parentName:"li"},"commitTx"),".")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8470e3c7.b50d610c.js b/assets/js/8470e3c7.b50d610c.js new file mode 100644 index 0000000000..050dbc7f43 --- /dev/null +++ b/assets/js/8470e3c7.b50d610c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[38141],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=u(r),h=n,d=m["".concat(p,".").concat(h)]||m[h]||c[h]||i;return r?a.createElement(d,o(o({ref:t},s),{},{components:r})):a.createElement(d,o({ref:t},s))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<i;u++)o[u]=r[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},75734:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-01-06-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-06-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-06-crypto.md",source:"@site/blog/2023-01-06-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-01-06T00:00:00.000Z",formattedDate:"January 6, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.46,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-01-06-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-01-11-performance-and-tracing"},nextItem:{title:"Ledger Team Update",permalink:"/2023-01-05-ledger"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"MuSig2",id:"musig2",level:3},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"Cryptography handbook",id:"cryptography-handbook",level:3}],s={toc:u},m="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The four open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"MuSig2: The API features (error handling) has been merged. "),(0,n.kt)("li",{parentName:"ul"},"Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures."),(0,n.kt)("li",{parentName:"ul"},"cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. "),(0,n.kt)("li",{parentName:"ul"},"KES agent: We keep progressing with KES secure forgetting implementation.")),(0,n.kt)("p",null,"We also started working in the cryptography engineering handbook, which will be a cross team effort."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"musig2"},"MuSig2"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Merged the more granular error handling mechanism ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/33"},"PR#33"))),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes/commit/9de00835ed354cbb8d37838f6cee57930ea9fd3d"},"Version 0.1.1"),", which was published in ",(0,n.kt)("a",{parentName:"li",href:"https://crates.io/crates/kes-summed-ed25519"},"crates.io"),". "),(0,n.kt)("li",{parentName:"ul"},"Updated new KES format to mithril library ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/674"},"PR 674")),(0,n.kt)("li",{parentName:"ul"},"We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/531"},"PR 531")),(0,n.kt)("li",{parentName:"ul"},"We keep progressing on reducing the use of ",(0,n.kt)("inlineCode",{parentName:"li"},"transmute")," in ",(0,n.kt)("inlineCode",{parentName:"li"},"mithril-stm"),".")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Nothing new to report. Still working in merging these PRs. We are only missing nix merge of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/520"},"PR#520")," and the updates on VRF will be merged.")),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/255#issuecomment-1362601518"},"PR#255"),".")),(0,n.kt)("h3",{id:"cryptography-handbook"},"Cryptography handbook"),(0,n.kt)("p",null,"We have made available the (temporary) cryptography handbook ",(0,n.kt)("a",{parentName:"p",href:"https://input-output-hk.github.io/cryptography_spec/"},"https://input-output-hk.github.io/cryptography_spec/"),", and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/84909ac3.d6bcc33e.js b/assets/js/84909ac3.d6bcc33e.js new file mode 100644 index 0000000000..e02bc71a17 --- /dev/null +++ b/assets/js/84909ac3.d6bcc33e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53208],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},73313:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-04-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-04-17-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-17-mithril.md",source:"@site/blog/2024-04-17-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-04-17T00:00:00.000Z",formattedDate:"April 17, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.625,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-04-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"DB Sync Team Update",permalink:"/2024-04-17-db-sync"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-04-15-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling the signature and proof generation for ",(0,n.kt)("inlineCode",{parentName:"p"},"mainnet")," with the compression of the transaction Merkle tree by using sub-Merkle trees of transactions by block ranges. They also made progress in designing low latency certification, investigated a memory leak in the signature/proof process, and worked on retrieving the tip of the chain with the Pallas chain observer. The team almost completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they completed the refactoring of the database providers of the aggregator and re-span the ",(0,n.kt)("inlineCode",{parentName:"p"},"testing-sanchonet")," network following the release of Cardano node ",(0,n.kt)("inlineCode",{parentName:"p"},"8.10.0-pre"),"."),(0,n.kt)("p",null,"Finally, the team made some optimizations on the compilation of their pre-built binaries to fix panics occurring on CPUs without ADX instructions, and created a network configuration file on the repository to facilitate automatic compatibility checks."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Create file with Cardano minimum versions in repository")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1615"},"#1615")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Deploy ",(0,n.kt)("inlineCode",{parentName:"strong"},"testing-mainnet")," network")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1617"},"#1617")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Refactor ",(0,n.kt)("inlineCode",{parentName:"strong"},"database")," module in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1583"},"#1583")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Client deprecation notice should be written in JSON when ",(0,n.kt)("inlineCode",{parentName:"strong"},"--json")," option is used")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1616"},"#1616")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Activate ",(0,n.kt)("inlineCode",{parentName:"strong"},"portable")," feature in ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-stm")," by default")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1613"},"#1613")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Prepare ",(0,n.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet")," for respin with Cardano ",(0,n.kt)("inlineCode",{parentName:"strong"},"8.10"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1618"},"#1618")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Store Block Range Merkle roots in signer and aggregator databases")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1633"},"#1633")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Memory leak in Cardano transactions signature/proof")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1629"},"#1629")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Mithril relay broadcasts signer registrations with P2P PubSub")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1587"},"#1587")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," supports retrieving the Chain Point of the tip of the chain")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1589"},"#1589")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Add section for manual setup of squid in SPO guide")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1610"},"#1610")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/84bc1a8f.05256cc7.js b/assets/js/84bc1a8f.05256cc7.js new file mode 100644 index 0000000000..70e6d68576 --- /dev/null +++ b/assets/js/84bc1a8f.05256cc7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7717],{30592:a=>{a.exports=JSON.parse('{"label":"mithril","permalink":"/tags/mithril","allTagsPath":"/tags","count":63}')}}]); \ No newline at end of file diff --git a/assets/js/8515128d.9466caac.js b/assets/js/8515128d.9466caac.js new file mode 100644 index 0000000000..dbccbdff45 --- /dev/null +++ b/assets/js/8515128d.9466caac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2548],{7148:e=>{e.exports=JSON.parse('{"permalink":"/tags/ledger/page/9","page":9,"postsPerPage":5,"totalPages":9,"totalCount":44,"previousPage":"/tags/ledger/page/8","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/8534c2dd.3f7d0f49.js b/assets/js/8534c2dd.3f7d0f49.js new file mode 100644 index 0000000000..ae542b7922 --- /dev/null +++ b/assets/js/8534c2dd.3f7d0f49.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[39987],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=p(a),c=r,m=u["".concat(s,".").concat(c)]||u[c]||d[c]||i;return a?n.createElement(m,o(o({ref:t},h),{},{components:a})):n.createElement(m,o({ref:t},h))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var p=2;p<i;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},88128:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-11-24-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-11-24-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-24-hydra.md",source:"@site/blog/2023-11-24-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-11-24T00:00:00.000Z",formattedDate:"November 24, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.12,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-11-24-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-11-24-goedel"},nextItem:{title:"SRE Team Update",permalink:"/2023-11-24-sre"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"This week, the Hydra team spent significant time opening a head among\nthemselves on ",(0,r.kt)("inlineCode",{parentName:"p"},"mainnet")," using the release candidate, revealing and\naddressing lurking bugs such as\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/1174"},"#","1174"),". Also\nrequired was this change to dynamically calculate the min utxo value\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/pull/1176"},"#","1176"),", a\nnecessary adjustment following the switch to inline datums. The team\nengaged with ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli")," / ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-api")," maintainers to discuss recent\nchanges and collaborated on drafting feature ideas, including providing\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/1177"},"Conway support"),"\nfor the Hydra roadmap. As part of ongoing improvements, they\nexperimented with writing the specification in markdown instead of\nLaTex."),(0,r.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Opened head among us on mainnet and uncovered a few lurking bugs like\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1174"},"#","1174")," in the\nrelease candidate"),(0,r.kt)("li",{parentName:"ul"},"Calculate the min utxo value instead of hard-coding it\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1176"},"#","1176"),", which is\nneeded since we switched to inline datums."),(0,r.kt)("li",{parentName:"ul"},"Met with the ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-cli")," / ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-api")," maintainers to discuss\nrecent changes and way forward"),(0,r.kt)("li",{parentName:"ul"},"Drafted features ideas to provide ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1177"},"Conway\nsupport")," on the\nHydra roadmap"),(0,r.kt)("li",{parentName:"ul"},"Experimented in writing the specification in markdown instead of LaTex")),(0,r.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Have the Monthly review meeting with several demos"),(0,r.kt)("li",{parentName:"ul"},"Release version 0.14.0 with ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/milestone/14?closed=1"},"this\nscope")),(0,r.kt)("li",{parentName:"ul"},"Complete tidying up chain layer via stateless observation changes in\nhydra-node\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1096"},"#","1096")),(0,r.kt)("li",{parentName:"ul"},"Update dependencies to prepare for Conway\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1114"},"#","1114"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/857645d9.ddd55bb1.js b/assets/js/857645d9.ddd55bb1.js new file mode 100644 index 0000000000..04e8b17059 --- /dev/null +++ b/assets/js/857645d9.ddd55bb1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[117],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=p(n),u=r,h=c["".concat(s,".").concat(u)]||c[u]||m[u]||o;return n?a.createElement(h,i(i({ref:t},d),{},{components:n})):a.createElement(h,i({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},25535:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=n(87462),r=(n(67294),n(3905));const o={title:"SRE Q1 2024 Update",slug:"2024-Q1-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2024-Q1-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2024-Q1-sre.md",source:"@site/quarterly/2024-Q1-sre.md",title:"SRE Q1 2024 Update",description:"2024-01 - 2024-03",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"sre",permalink:"/quarterly/tags/sre"}],readingTime:1.97,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q1 2024 Update",slug:"2024-Q1-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"SRE Q4 2023 Update",permalink:"/quarterly/2023-Q4-sre"},nextItem:{title:"SRE Q2 2024 Update",permalink:"/quarterly/2024-Q2-sre"}},s={authorsImageUrls:[void 0]},p=[{value:"2024-01 - 2024-03",id:"2024-01---2024-03",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],d={toc:p},c="wrapper";function m(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2024-01---2024-03"},"2024-01 - 2024-03"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments,\nmain SRE achievements for this quarter include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"All cardano release environments, including preview, preprod, mainnet legacy\nand mainnet new clusters were upgraded through cardano-node releases of\n8.7.3, 8.9.0 and finally into 8.9.1 by the end of March")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"All cardano pre-release environments, including sanchonet, private chain, and\nshelley-qa clusters were upgraded through cardano-node releases of 8.7.3,\n8.8.0-pre, 8.8.1-pre, 8.9.0 and finally into 8.9.1 by the end of March")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sanchonet and private chain environments were both re-spun once each during\nthis quarter to support new pre-release versions of cardano-node in the Conway era")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts added a cardano-db-sync process-compose stack for each\nenvironment")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts added a cardano-node process-compose stack for each environment")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts added enhancements for topology related nixos modules and\nfunctions to accomodate new bootstrapPeer functionality, new topology\nattributes and increased complexity network deployments.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts added support for mithril signers integrated with block\nproducers and a mithril-signer-verifier service for monitoring")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sanchonet, preview, preprod and mainnet IOG block producers are now signing\nmithril certificates")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts added support for mithril clients in nixos cardano-node systemd\nservice, process-compose job stacks and nix cardano-node entrypoint, all of\nwhich also require any mithril snapshot to be signed by a trusted IOG pool\nprior to use")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts added ip integration tooling, so that similar to other deployer\ntools like nixops, nixosConfigurations possess ip information which can be\nused in module configuration")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-db-sync snapshots server migration from legacy mainnet cluster to new\nmainnet cluster with a rewrite of the snapshot service was completed")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano metadata server migration to Cardano Foundation was completed")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"BlockPerf, a cardano-node performance monitoring tool, was integrated into the\nnew mainnet cluster relays")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node bootstrapPeer functionality was added with node 8.9.x, requiring\neffort to align nixos service module code between cardano-node nixos\nservices, iohk-nix topology generation, cardano-ops legacy code, and\ncardano-parts module compatibility as well as feature test under various edge\ncases")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-playground added govtool backend support for private chain voltaire\ntesting team"))),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Add support for the new cardano-node metrics system")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Add IPv6 cardano-parts support")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Extend govtool frontend and backend to a process-compose stack")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Adapt network spin-up tooling for the new create-testnet-data cardano-cli command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Continue cardano-parts and operations improvements"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/85c4e11b.7bd16a5e.js b/assets/js/85c4e11b.7bd16a5e.js new file mode 100644 index 0000000000..35b02a15fe --- /dev/null +++ b/assets/js/85c4e11b.7bd16a5e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[74024],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),h=a,d=u["".concat(s,".").concat(h)]||u[h]||m[h]||i;return n?r.createElement(d,o(o({ref:t},p),{},{components:n})):r.createElement(d,o({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var c=2;c<i;c++)o[c]=n[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}h.displayName="MDXCreateElement"},70165:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & Tracing Update",slug:"2024-04-19-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-04-19-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-19-performance-and-tracing.md",source:"@site/blog/2024-04-19-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-04-19T00:00:00.000Z",formattedDate:"April 19, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.735,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-04-19-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-04-19-hydra"},nextItem:{title:"Network Team Update",permalink:"/2024-04-15-network"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3},{value:"UTxO Growth",id:"utxo-growth",level:3}],p={toc:c},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've performed benchmarks and analyses for Node versions ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.2")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"8.10.0"),"."),(0,a.kt)("li",{parentName:"ul"},"Development: Design phase for implementing quick queries in the analysis pipeline has begun."),(0,a.kt)("li",{parentName:"ul"},"Workbench: We're finishing up the new features for the reporting pipeline; Haskell profile definition work is ongoing."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Improving the Prometheus output is ongoing; the node's build info will be accessible as a Prometheus label."),(0,a.kt)("li",{parentName:"ul"},"UTxO Growth: Our tooling has been augmented to support benchmarks starting with a non-empty chain.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed a full set of release benchmarks for Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.2"),". Comparing with release ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.1"),", we could not detect any performance risks for that version. "),(0,a.kt)("p",null,"The benchmarks for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.10.0")," have shown a slight improvement in the time the block forging loop needs to evaluate, whilst additionally, resource usage of the ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," process was also slightly reduced - a nice performance improvement."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Our analysis pipeline is based on batch analysis of data from over 50 cluster nodes; it consumes very large amounts of trace output ex post facto, when the actual benchmark has terminated.\nThis is very time-intensive, and not viable for obeserving an additional metric that you later on determine might need consideration. "),(0,a.kt)("p",null,"We're planning to add quick queries into a benchmarking run's trace data to our analysis pipeline. These will be structured such that parameterizable, ad-hoc querying is supported. Initial tests showed that evaluation speed\nof such queries is fast enough to merit designing a principled, and generalized, syntax for them - and a subsequent implementation."),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"The reporting pipeline has been augmented with direct support for customizable, and stylable, TeX rendering - currently receiving final touches. "),(0,a.kt)("p",null,"Porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is ongoing work. It is our goal to both increase reliable profile definition and validation, and\nfacilitate usage by engineers less familiar with the workbench."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The work to improve system metrics as presented to Prometheus is still ongoing. Type annotations, as well as introducing Prometheus labels for certain metrics to convey (like e.g. build information), will make that interface\nmore versatile. It also facilitates configuration of monitoring or dashboards like Grafana on top of those Prometheus metrics."),(0,a.kt)("h3",{id:"utxo-growth"},"UTxO Growth"),(0,a.kt)("p",null,"For the UTxO scaling benchmarks, we've augmented the workbench with the capability to support injection of a custom synthesized chain into the deployment, and start a benchmark only after replaying that chain - whereas\nour benchmarks usually start just with a genesis block. "),(0,a.kt)("p",null,"To achieve that, different components of our tooling needed addition of features: distributing that chain to the node cluster, having analysis work without necessarily providing trace evidence of each block in the chain being forged by a benchmarking node. Cluster timing had to be adjusted to account for the gap between genesis start time and the chain tip. However, this entire mechanism opens up the possibility of having a very distinct ledger state at hand for a benchmark - one, that's been particularly crafted via a series of\npre-defined transactions constituting the blocks during creation of the synthesized chain. "),(0,a.kt)("p",null,"In the future, we plan to flesh out a more general design of that mechanism, which currently is tied to a very specific use case only."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/86870c59.f08bccfd.js b/assets/js/86870c59.f08bccfd.js new file mode 100644 index 0000000000..308a2a969e --- /dev/null +++ b/assets/js/86870c59.f08bccfd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52334],{28736:a=>{a.exports=JSON.parse('{"label":"mithril","permalink":"/tags/mithril","allTagsPath":"/tags","count":63}')}}]); \ No newline at end of file diff --git a/assets/js/86b90503.ed5708e0.js b/assets/js/86b90503.ed5708e0.js new file mode 100644 index 0000000000..0524a7e2a9 --- /dev/null +++ b/assets/js/86b90503.ed5708e0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[12023],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var p=a.createContext({}),s=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=s(n),m=r,h=d["".concat(p,".").concat(m)]||d[m]||c[m]||o;return n?a.createElement(h,l(l({ref:t},u),{},{components:n})):a.createElement(h,l({ref:t},u))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var s=2;s<o;s++)l[s]=n[s];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},16926:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));const o={title:"SRE Team Update",slug:"2024-04-12-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-04-12-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-12-sre.md",source:"@site/blog/2024-04-12-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-04-12T00:00:00.000Z",formattedDate:"April 12, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.435,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-04-12-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-04-12-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2024-04-10-ledger"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3}],u={toc:s},d="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Private chain for Voltaire team was respun for cardano-node 8.10.0-pre\npre-release and re-hard forked into Conway era.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sanchonet was respun for cardano-node 8.10.0-pre pre-release and re-hard\nforked into Conway era.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node 8.10.0-pre was also deployed to one-third of IOGs preprod\nenvironment nodes and two-thirds of IOGs preview environment nodes."))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-node|cli-ng to 8.10.0-pre, dbsync-ng to sancho-4.1.0; bumps\nnixpkgs (23.11) and nixpkgs-unstable; improves, adds new and fixes a number\nof just recipes; allows repo custom recipes to be kept as a separate import\nfor easy justfile maintenance; refactors ip module checking into its own\nnixosModule and adds an extra abort option for safety. Much more detail is\navailable in the PR description:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/36"},"cardano-parts-pull-36"))),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps cardano-parts for a number of recipe additions, improvements, fixes.\nFixes blockperf dnsmasq looksups and adjusts colmena topology code to account\nfor intra-cluster localRoots now defaulting to trustable true and implements\nall updates in cardano-parts PR#36. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/11"},"cardano-mainnet-pull-11"))),(0,r.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Add a new perf-ssd machine class and deployment for ssd related performance\ntesting and benchmarking. Add new just recipes and cluster resource tagging.\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/19a7ddd...a6a9b39"},"cardano-perf-compare"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps cardano-parts for a number of recipe additions, improvements, fixes,\nand node 8.10.0-pre. Respins private chain and sanchonet for node 8.10.0-pre\nwith corresponding book updates and implements all updates in cardano-parts\nPR#36. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/20"},"cardano-playground-pull-20"))),(0,r.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"WIP: Prepares block producer configurations to accomodate upcoming peerSharing default change:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/575"},"iohk-nix-pull-575"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Provides iohk-nix updates for node 8.10:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/576"},"iohk-nix-pull-576")))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/86c4d158.205d143c.js b/assets/js/86c4d158.205d143c.js new file mode 100644 index 0000000000..aef0affc52 --- /dev/null +++ b/assets/js/86c4d158.205d143c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46831],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>k});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),m=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=m(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,i=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),p=m(r),d=a,k=p["".concat(i,".").concat(d)]||p[d]||c[d]||s;return r?n.createElement(k,l(l({ref:t},u),{},{components:r})):n.createElement(k,l({ref:t},u))}));function k(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,l=new Array(s);l[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[p]="string"==typeof e?e:a,l[1]=o;for(var m=2;m<s;m++)l[m]=r[m];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},3439:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>c,frontMatter:()=>s,metadata:()=>o,toc:()=>m});var n=r(87462),a=(r(67294),r(3905));const s={title:"System Test Team Update",slug:"2023-06-08-system-test",authors:"mkoura",tags:["system-test"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-06-08-system-test",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-08-system-test.md",source:"@site/blog/2023-06-08-system-test.md",title:"System Test Team Update",description:"High level summary",date:"2023-06-08T00:00:00.000Z",formattedDate:"June 8, 2023",tags:[{label:"system-test",permalink:"/tags/system-test"}],readingTime:1.005,hasTruncateMarker:!1,authors:[{name:"Martin Kourim",title:"System Test Engineer",url:"https://github.com/mkoura",imageURL:"https://github.com/mkoura.png",key:"mkoura"}],frontMatter:{title:"System Test Team Update",slug:"2023-06-08-system-test",authors:"mkoura",tags:["system-test"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-06-08-sre"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-06-07-node-cli-api"}},i={authorsImageUrls:[void 0]},m=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Framework improvements:",id:"framework-improvements",level:3},{value:"Testing improvements",id:"testing-improvements",level:3},{value:"Node:",id:"node",level:3},{value:"DB-Sync:",id:"db-sync",level:3}],u={toc:m},p="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"Since the last update (2023-03-26) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the ",(0,a.kt)("em",{parentName:"p"},"1.35.7")," and ",(0,a.kt)("em",{parentName:"p"},"8.0.0")," releases."),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node-tests/pulls?page=1&q=is%3Apr+is%3Aclosed+updated%3A2023-03-26..2023-06-08"},"Full list of closed PRs")),(0,a.kt)("h3",{id:"framework-improvements"},"Framework improvements:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Make cardano-submit-api REST API service available and run corresponding regression tests by default"),(0,a.kt)("li",{parentName:"ul"},"Update cabal build testing for 8.0.0"),(0,a.kt)("li",{parentName:"ul"},"Add support for testing governance SPO poll"),(0,a.kt)("li",{parentName:"ul"},"Use Poetry for Python dependency management"),(0,a.kt)("li",{parentName:"ul"},"Check status of known GH issues during tests runtime and finish the test accordingly"),(0,a.kt)("li",{parentName:"ul"},"Generate topology files with both IP addresses and DNS names"),(0,a.kt)("li",{parentName:"ul"},"Log issues like failure to start a cluster instance and report errors during tests runtime")),(0,a.kt)("h3",{id:"testing-improvements"},"Testing improvements"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add rollback testing:",(0,a.kt)("ol",{parentName:"li"},(0,a.kt)("li",{parentName:"ol"},"global consensus is reached after rollback, in situation where less than ",(0,a.kt)("inlineCode",{parentName:"li"},"securityParam")," blocks were produced since cluster split"),(0,a.kt)("li",{parentName:"ol"},"global consensus is not reached when more than ",(0,a.kt)("inlineCode",{parentName:"li"},"securityParam")," blocks were produced, and the result is permanent fork"))),(0,a.kt)("li",{parentName:"ul"},"Add tests to governance SPO poll commands")),(0,a.kt)("h3",{id:"node"},"Node:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"tested the ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/test_results/node/tag_1_35_7.html"},"1.35.7")," release"),(0,a.kt)("li",{parentName:"ul"},"tested the ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/test_results/node/tag_8_0_0.html"},"8.0.0")," release")),(0,a.kt)("h3",{id:"db-sync"},"DB-Sync:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"improvements in db-sync sync tests"),(0,a.kt)("li",{parentName:"ul"},"improvements in db-sync functional tests")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/87088759.a5c0ddde.js b/assets/js/87088759.a5c0ddde.js new file mode 100644 index 0000000000..9db91c0783 --- /dev/null +++ b/assets/js/87088759.a5c0ddde.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90047],{32425:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Consensus Q2 2023 Update","permalink":"/quarterly/2023-Q2-consensus"},{"title":"Network Q2 2023 Update","permalink":"/quarterly/2023-Q2-network"},{"title":"SRE Q2 2023 Update","permalink":"/quarterly/2023-Q2-sre"},{"title":"Performance & Tracing Q3 2023 Update","permalink":"/quarterly/2023-Q3-performance-and-tracing"},{"title":"SRE Q3 2023 Update","permalink":"/quarterly/2023-Q3-sre"}]}')}}]); \ No newline at end of file diff --git a/assets/js/871691d4.84539636.js b/assets/js/871691d4.84539636.js new file mode 100644 index 0000000000..f57780ac9d --- /dev/null +++ b/assets/js/871691d4.84539636.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2136],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),s=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=s(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),c=s(n),h=r,d=c["".concat(l,".").concat(h)]||c[h]||m[h]||a;return n?o.createElement(d,i(i({ref:t},u),{},{components:n})):o.createElement(d,i({ref:t},u))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=h;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[c]="string"==typeof e?e:r,i[1]=p;for(var s=2;s<a;s++)i[s]=n[s];return o.createElement.apply(null,i)}return o.createElement.apply(null,n)}h.displayName="MDXCreateElement"},78081:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>p,toc:()=>s});var o=n(87462),r=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-06-23-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2023-06-23-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-23-network.md",source:"@site/blog/2023-06-23-network.md",title:"Network Team Update",description:"Network Update",date:"2023-06-23T00:00:00.000Z",formattedDate:"June 23, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.7,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-06-23-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-06-23-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-06-23-sre"}},l={authorsImageUrls:[void 0]},s=[{value:"Network Update",id:"network-update",level:2},{value:"Key contributions",id:"key-contributions",level:3},{value:"Other smaller changes",id:"other-smaller-changes",level:3}],u={toc:s},c="wrapper";function m(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"network-update"},"Network Update"),(0,r.kt)("h3",{id:"key-contributions"},"Key contributions"),(0,r.kt)("p",null,"We held a series of session to review the implementation of big ledger peers\n(eclipse evasion). See ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4462"},"#4462"),"."),(0,r.kt)("p",null,"We get a request from a 3rd party to clarify an inconsistency between CDDL spec\nand protocol implementation. We worked out a nice solution which takes\nadvantage of the ",(0,r.kt)("inlineCode",{parentName:"p"},"any")," notion available in ",(0,r.kt)("inlineCode",{parentName:"p"},"CDDL"),". On the Haskell side we\nprovide ",(0,r.kt)("inlineCode",{parentName:"p"},"Any")," type which gen generate almost any CBOR term (some are excluded\nonly because they are not decoded back to the same form, and we relay on that\nproperty). See ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4580"},"#4580"),"."),(0,r.kt)("p",null,"We fixed a bunch of problems of the ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," command. It also now has\na limited support of ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," mini-protocol (the ",(0,r.kt)("inlineCode",{parentName:"p"},"-c")," option is\nignored, as it cannot be supported by ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," protocol). Note that\nthe format of messages has changed, timestamps are printed in ISO8601 format.\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4601"},"#4601"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5326"},"#5326"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5313"},"#5313"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30"},"#30")),(0,r.kt)("p",null,"In order to provide a new flag in the topology file which enables ledger peers\nwhen the chain is close to the tip, we continued to work on ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4530"},"#4530"),". This is\ncurrently in review, the consensus team will need to provide us with the new\napi. This feature is useful for two reasons: makes it easier to maintain\na topology file, it will also limit the traffic on public roots generated by\nfor example full node wallets and distribute it to ledger peers."),(0,r.kt)("p",null,"We also continued to work on a blog post which describes the journey of design\n& implementation of the dynamic P2P network layer. Too be announced soon :). "),(0,r.kt)("h3",{id:"other-smaller-changes"},"Other smaller changes"),(0,r.kt)("p",null,"We limit the concurrency of resolving dns names. Up to 8 root peers or ledger\npeers DNS names are resolved concurrently, and at most 2 local root peer DNS\nnames. See ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4596"},"#4596"),"."),(0,r.kt)("p",null,"We fixed handshake query timeout in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4603"},"#4603"),"."),(0,r.kt)("p",null,"We renamed one of the block-fetch decision constructors as requested by the\nconsensus team, see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4608"},"#4608"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/876c34e9.704d7e35.js b/assets/js/876c34e9.704d7e35.js new file mode 100644 index 0000000000..971df5423c --- /dev/null +++ b/assets/js/876c34e9.704d7e35.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[85369],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),d=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=d(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=d(a),c=n,m=h["".concat(s,".").concat(c)]||h[c]||p[c]||i;return a?r.createElement(m,o(o({ref:t},u),{},{components:a})):r.createElement(m,o({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var d=2;d<i;d++)o[d]=a[d];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},94306:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-04-27-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-04-27-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-27-hydra.md",source:"@site/blog/2023-04-27-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-04-27T00:00:00.000Z",formattedDate:"April 27, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.11,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-04-27-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-04-28-network"},nextItem:{title:"Hydra Team Update",permalink:"/2023-04-21-hydra"}},s={authorsImageUrls:[void 0]},d=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:d},h="wrapper";function p(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team held their Monthly review meeting and drafted the\nreport which likely is published next week. They put the spec into the\nrepository and website, addressed a user issue and fixed the TUI peer list.\nFurthermore, they updated dependencies, conducted a Twitter space on Auctions\nuse cases, covered the rollback bug with tests and implemented a solution.\nLooking ahead, their goals for next week include releasing 0.10.0, implementing\ntimed transactions support, writing a Query API ADR, and grooming work items\nlike off-chain benchmarks."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Held the Monthly review meeting and drafted the report (to be published next week)"),(0,n.kt)("li",{parentName:"ul"},"Added the spec into the repository\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/693"},"#693")," and published on\n",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/unstable/core-concepts/specification"},"the\nwebsite")),(0,n.kt)("li",{parentName:"ul"},"Groom and addressed user issue ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/823"},"#823")),(0,n.kt)("li",{parentName:"ul"},"Covered the rollback bug with tests and implemented a solution (to be reviewed) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Fixed the TUI peer list"),(0,n.kt)("li",{parentName:"ul"},"Updated dependencies to match ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-node")," master"),(0,n.kt)("li",{parentName:"ul"},"Conducted a twitter space on Auctions use cases")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Release 0.10.0"),(0,n.kt)("li",{parentName:"ul"},"Support timed transactions solution drafted and validated API with users"),(0,n.kt)("li",{parentName:"ul"},"Write Query API ADR and groom a concrete step"),(0,n.kt)("li",{parentName:"ul"},"Groom and solve ",(0,n.kt)("inlineCode",{parentName:"li"},"PostTxOnChainFailed")," UX problem ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/832"},"#832")),(0,n.kt)("li",{parentName:"ul"},"Groom off-chain benchmarks idea ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/186"},"#186")," and turn it into a ","\u201c","feature","\u201d")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/878c8163.cda799f6.js b/assets/js/878c8163.cda799f6.js new file mode 100644 index 0000000000..0872052a34 --- /dev/null +++ b/assets/js/878c8163.cda799f6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[45932],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(n),d=a,h=u["".concat(s,".").concat(d)]||u[d]||m[d]||o;return n?r.createElement(h,l(l({ref:t},p),{},{components:n})):r.createElement(h,l({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=n[c];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},91329:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-09-14-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-09-14-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-14-db-sync.md",source:"@site/blog/2023-09-14-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-09-14T00:00:00.000Z",formattedDate:"September 14, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.47,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-09-14-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-09-15-sre"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-09-12-node-cli-api"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],p={toc:c},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We have created a DBSync tag ",(0,a.kt)("inlineCode",{parentName:"p"},"sancho-1-1-0")," which can follow sanchonet. Also\nthe team has ran a number of benchmarks and tests for the new options/flavours of DBSync\nand prepared a blogpost which summorises them, for downstream components."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Integration of node-8.3.x and support for Sanchonet on Conway\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1498"},"#1498")),(0,a.kt)("li",{parentName:"ul"},"Simplifications of new feautures\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1496"},"#1496")),(0,a.kt)("li",{parentName:"ul"},"Makes it impossible to restart DBSync with different schema options and adds\ntests for them\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1466"},"#1466")),(0,a.kt)("li",{parentName:"ul"},"CI fixes\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1494"},"#1494"),(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1491"},"#1491")),(0,a.kt)("li",{parentName:"ul"},"Prepared a blogpost about different DBSync options\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/blob/blog/blog/blog.pdf"},"blog"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/884eee03.99a81844.js b/assets/js/884eee03.99a81844.js new file mode 100644 index 0000000000..511230f534 --- /dev/null +++ b/assets/js/884eee03.99a81844.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54975],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},l=Object.keys(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},m=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),d=u(a),c=n,h=d["".concat(p,".").concat(c)]||d[c]||s[c]||l;return a?r.createElement(h,o(o({ref:t},m),{},{components:a})):r.createElement(h,o({ref:t},m))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=c;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:n,o[1]=i;for(var u=2;u<l;u++)o[u]=a[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},99054:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2023-12-06-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-12-06-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-06-ledger.md",source:"@site/blog/2023-12-06-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-12-06T00:00:00.000Z",formattedDate:"December 6, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.53,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-12-06-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-12-08-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-12-06-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3}],m={toc:u},d="wrapper";function s(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This period we reached a major milestone, namely we now have an initial version of Conway\nconformance testing working. We are now able to generate random valid data with the help\nof constraint based testing framework, apply that data to Conway Ledger rules and verify\nthat the output matches to the one produced by the executable version of the Formal Ledger\nSpecification, when it is applied to the same random data."),(0,n.kt)("p",null,"We also had a couple of Conway bugs fixed and a few new predicate check implemented. Get\nConstitutional Committee query is complete and tested. Various improvements to the\ntesting tools. Addition of more test cases."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3888"},"pull-3888")," - Add checks for valid ProtVer when a proposal is a HardFork"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3902"},"pull-3902")," - Fix pvCanFollow usage in Conway and improve clarity in Shelley"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3855"},"pull-3855")," - Remove unreachable proposals"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3903"},"pull-3903")," - Add lenient decoder for ",(0,n.kt)("inlineCode",{parentName:"li"},"Addr")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3878"},"pull-3878")," - Committee query - implement next epoch change")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3893"},"pull-3893")," - Move ",(0,n.kt)("inlineCode",{parentName:"li"},"tree-diff")," dependency to tests together with all instances"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3896"},"pull-3896")," - Fix Brute force failure"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3904"},"pull-3904")," - New ListWhere Pred added to the Constrained Solver."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3907"},"pull-3907")," - cardano-ledger-conformance: Remove CHANGELOG.md from cabal file"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3883"},"pull-3883")," - Committee QuerySpec Imp Test"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3909"},"pull-3909")," - Make ",(0,n.kt)("inlineCode",{parentName:"li"},"impAnn")," a bit more useful, by making the logs scoped by ",(0,n.kt)("inlineCode",{parentName:"li"},"impAnn")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3908"},"pull-3908")," - Use upstream testing instances for very basic types"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3912"},"pull-3912")," - Removed call to tail, and the ","'","watchPulser","'"," test"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3852"},"pull-3852")," - Added constrained generators to conformance tests - Part 1")),(0,n.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3891"},"pull-3891")," - Bump plutus to 1.17")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8864b77b.63a904b9.js b/assets/js/8864b77b.63a904b9.js new file mode 100644 index 0000000000..62e75cc3ea --- /dev/null +++ b/assets/js/8864b77b.63a904b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[61908],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>g});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},m=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=s(n),u=r,g=d["".concat(c,".").concat(u)]||d[u]||p[u]||i;return n?a.createElement(g,o(o({ref:t},m),{},{components:n})):a.createElement(g,o({ref:t},m))}));function g(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:r,o[1]=l;for(var s=2;s<i;s++)o[s]=n[s];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},21318:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-03-08-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o="High level summary",l={permalink:"/2023-03-08-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-08-performance-and-tracing.md",source:"@site/blog/2023-03-08-performance-and-tracing.md",title:"Performance & tracing update",description:"* Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.",date:"2023-03-08T00:00:00.000Z",formattedDate:"March 8, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.805,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-03-08-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-03-08-node-cli-api"},nextItem:{title:"Crypto Team Update",permalink:"/2023-03-03-crypto"}},c={authorsImageUrls:[void 0]},s=[{value:"1.35.6 release",id:"1356-release",level:3},{value:"Analysis pipeline",id:"analysis-pipeline",level:3},{value:"Open Sourcing",id:"open-sourcing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:s},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate."),(0,r.kt)("li",{parentName:"ul"},"New tracing: Backwards compatibility with legacy tracer nomenclature is being implemented to smoothe the transition for end users."),(0,r.kt)("li",{parentName:"ul"},"Analysis pipeline: A major refinement of benchmarking metrics has been realized, along with a structural improvementents regarding metrics denomination."),(0,r.kt)("li",{parentName:"ul"},"Open Sourcing: Work on going live with our benchmarking data has begun, as well as creating an API demo and documentation."),(0,r.kt)("li",{parentName:"ul"},"Nomad backend: The backend was adapted to a major refactoring in workbench and is being equipped with a nomad-exec based task driver.")),(0,r.kt)("h1",{id:"performance"},"Performance"),(0,r.kt)("h3",{id:"1356-release"},"1.35.6 release"),(0,r.kt)("p",null,"Benchmarking the second release candidate for 1.35.6 could again attest to a perfectly clean bill of health."),(0,r.kt)("h3",{id:"analysis-pipeline"},"Analysis pipeline"),(0,r.kt)("p",null,"Our analysis pipeline has seen an introduction of additional metrics, especially when focusing on the block producing node. They allow us to better\ndifferentiate the timing of ledger ticking and mempool snapshotting in the forging loop - a feature that promises much deeper insight into UTxO-HD performance.\nAdditionally, a restructuring of metrics names has been undertaken along with improvements in their data dictionary; a measure that will make benchmarking\ndata more easily accessible."),(0,r.kt)("h3",{id:"open-sourcing"},"Open Sourcing"),(0,r.kt)("p",null,"As a prerequisite for going live with our benchmarking data, we're currently working on consolidation of existing analyses, such as to provide a common foundation when accessing them externally. Additionally, we've begun working on a small visualization demo and interactive API documentation. Those will enable\nthird parties to make use of that data much more easily, by having reliable guidelines and a working example."),(0,r.kt)("h1",{id:"tracing"},"Tracing"),(0,r.kt)("p",null,"The new tracing system is being outfitted with a comprehensive mapping of its structure to the legacy tracer nomenclature. This feature will make\nthe switch to the new system as smooth as possible for end users, allowing them to gradually adapt their tooling without breaking any functionality in the process."),(0,r.kt)("h1",{id:"infrastructure"},"Infrastructure"),(0,r.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,r.kt)("p",null,"The Nomad backend was adapted to the latest major refactoring in workbench. Work was done on making stateful Nomad clients more autonomous, which will greatly facilitate any automation building on that backend. A task driver based on nomad-exec is currently being implemented."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/88e4c211.de1f3eef.js b/assets/js/88e4c211.de1f3eef.js new file mode 100644 index 0000000000..9215d835a6 --- /dev/null +++ b/assets/js/88e4c211.de1f3eef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92388],{96195:e=>{e.exports=JSON.parse('{"permalink":"/page/3","page":3,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/2","nextPage":"/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/8914fa7e.9751ef9b.js b/assets/js/8914fa7e.9751ef9b.js new file mode 100644 index 0000000000..fa4123780f --- /dev/null +++ b/assets/js/8914fa7e.9751ef9b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15347],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,o,a=function(e,t){if(null==e)return{};var n,o,a={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=o.createContext({}),l=function(e){var t=o.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=l(e.components);return o.createElement(p.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},c=o.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,p=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=l(n),c=a,m=h["".concat(p,".").concat(c)]||h[c]||d[c]||i;return n?o.createElement(m,r(r({ref:t},u),{},{components:n})):o.createElement(m,r({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,r=new Array(i);r[0]=c;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[h]="string"==typeof e?e:a,r[1]=s;for(var l=2;l<i;l++)r[l]=n[l];return o.createElement.apply(null,r)}return o.createElement.apply(null,n)}c.displayName="MDXCreateElement"},17177:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var o=n(87462),a=(n(67294),n(3905));const i={title:"Consensus Team Update",slug:"2022-11-16-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},r=void 0,s={permalink:"/2022-11-16-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-16-consensus.md",source:"@site/blog/2022-11-16-consensus.md",title:"Consensus Team Update",description:"High-level summary",date:"2022-11-16T00:00:00.000Z",formattedDate:"November 16, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:5.06,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-11-16-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2022-11-18-mithril"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-11-16-node-cli-api"}},p={authorsImageUrls:[void 0]},l=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"High-level status report",id:"high-level-status-report",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Finish the UTxO HD prototype",id:"finish-the-utxo-hd-prototype",level:3},{value:"Backing store property tests",id:"backing-store-property-tests",level:4},{value:"LSM tree implementation",id:"lsm-tree-implementation",level:3},{value:"Benchmarking the CSJ prototype",id:"benchmarking-the-csj-prototype",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3},{value:"Support",id:"support",level:3}],u={toc:l},h="wrapper";function d(e){let{components:t,...i}=e;return(0,a.kt)(h,(0,o.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,a.kt)("p",null,'During the past two weeks, the consensus team started documenting the\nimplementation of the UTxO HD feature and continued developing tests for it. As\npart of our work on UTxO HD, we improved the Haskell support for LMDB. We also\nspent time working on the LSM tree prototype, and designed a parameter tuning\nalgorithm for it. Regarding our work on Genesis, our investigation of the\n"plateaus" pointed at the ',(0,a.kt)("inlineCode",{parentName:"p"},"TICKF"),' slowdown on era boundaries as culprit. This\nled us to developing a caching strategy that will not only remove the\naforementioned "plateaus", but can help alleviating the growing block production\ndelay on epoch switch. We also helped reviewing the block forge credential\nhotswap feature, which is intended for use in the adoption of P2P.'),(0,a.kt)("p",null,"We also worked on paying technical debt and fostering collaboration. In\nparticular, we improved the ",(0,a.kt)("inlineCode",{parentName:"p"},"io-sim")," framework, which is crucial for testing and\nsimulating Cardano components. We also removed thunks that appeared on era\ntranslations, and improved our diffusion pipelining feature. We are working on a\npresentation for explaining Praos and Genesis."),(0,a.kt)("h2",{id:"high-level-status-report"},"High-level status report"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Finish the UTxO HD prototype: in progress.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We added documentation for this feature."),(0,a.kt)("li",{parentName:"ul"},"We developed the second version of the mempool tests."),(0,a.kt)("li",{parentName:"ul"},"We fixed benchmarks that were inflating the speedup we observed in the\nanti-diff implementation of sequences of differences. Speedups are now in the\nrange of ","[3.33, 4.75]",", which remain significant."),(0,a.kt)("li",{parentName:"ul"},"We continued improving Haskell LMDB support."),(0,a.kt)("li",{parentName:"ul"},'We finished implementing a "parameter tuning algorithm" for the LSM tree\nprototype. This enables us to run experiments to check the correctness of\nthe algorithm.'))),(0,a.kt)("li",{parentName:"ul"},"Genesis: in progress.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},'Work investigating the "plateaus" in the ',(0,a.kt)("inlineCode",{parentName:"li"},"ChainSync")," jumping prototype\npointed to the ",(0,a.kt)("inlineCode",{parentName:"li"},"TICKF")," slowdown on era boundaries as culprit."))),(0,a.kt)("li",{parentName:"ul"},"Tech debt:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We improved the capabilities of our ",(0,a.kt)("inlineCode",{parentName:"li"},"io-sim")," library, which is crucial for\ntesting and simulating Cardano components."),(0,a.kt)("li",{parentName:"ul"},"We removed thunks from epoch translations in the ledger."),(0,a.kt)("li",{parentName:"ul"},"We added Linux CI support for ",(0,a.kt)("inlineCode",{parentName:"li"},"lmdb-simple"),"."),(0,a.kt)("li",{parentName:"ul"},"We got pending diffusion pipelining improvements merged."))),(0,a.kt)("li",{parentName:"ul"},"Fostering collaboration:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We are working on a explanation of Praos and Genesis protocols."))),(0,a.kt)("li",{parentName:"ul"},"Support:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},'Investigation of CSJ "plateaus" led us to developing a caching strategy for\n',(0,a.kt)("inlineCode",{parentName:"li"},"TICKF"),' that will not only remove these "plateaus", but can help alleviating\nthe growing block production delay on epoch switch.'),(0,a.kt)("li",{parentName:"ul"},"We reviewed the block forge credential hotswapping feature which is intended\nfor use in the adoption of P2P.")))),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"finish-the-utxo-hd-prototype"},"Finish the UTxO HD prototype"),(0,a.kt)("p",null,"We merged PR ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4060"},"#4060"),", which adds a report documenting the UTxO HD\nfeature, and puts emphasis in explaining how the mempool works in combination\nwith UTxO HD."),(0,a.kt)("p",null,"We opened a draft PR with the second iteration of the property tests for the\nmempool (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4076"},"#4076"),")."),(0,a.kt)("p",null,"We fixed the ",(0,a.kt)("inlineCode",{parentName:"p"},"Arbitrary")," instances for keys and values in ",(0,a.kt)("inlineCode",{parentName:"p"},"DiffSeq")," benchmarks\n(",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4143"},"#4143"),"). The problem was that we were testing with mostly small\nvalues, which artificially boosted the performance gains we saw on benhcmarks.\nSpeedups are now in the range of ","[3.33, 4.75]"," across the different\nconfigurations."),(0,a.kt)("h4",{id:"backing-store-property-tests"},"Backing store property tests"),(0,a.kt)("p",null,"We focused on incorporating feedback on the monadic cursor API PR (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/lmdb-simple/pull/1"},"#1"),").\nThis required us to make small tweaks to ",(0,a.kt)("inlineCode",{parentName:"p"},"quickcheck-lockstep")," to test the new\nAPI. We also updated the backing store property tests to use the new version of\nthe monadic cursor API."),(0,a.kt)("h3",{id:"lsm-tree-implementation"},"LSM tree implementation"),(0,a.kt)("p",null,'We worked on the LSM tree prototype. In particular: finished implementing a\n"parameter tuning algorithm" that adapts the LSM tree design based on factors\nlike:'),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"workload"),(0,a.kt)("li",{parentName:"ul"},"machine specs, "),(0,a.kt)("li",{parentName:"ul"},"and characteristics of the data being stored. ")),(0,a.kt)("p",null,"We are now running experiments to gather results and cross-reference them with\nexisting experimental results from the LSM tree paper to see if the algorithm is\nworking correctly."),(0,a.kt)("h3",{id:"benchmarking-the-csj-prototype"},"Benchmarking the CSJ prototype"),(0,a.kt)("p",null,'We focused on investigating the "plateaus" in the ',(0,a.kt)("inlineCode",{parentName:"p"},"ChainSync")," tip, which turned\nout to be due to the ",(0,a.kt)("inlineCode",{parentName:"p"},"TICKF")," bug which we previously were only aware of in the\ncontext of the long forging times near epoch boundaries. For the most drastic\npatch by @nfrisby to speed up ",(0,a.kt)("inlineCode",{parentName:"p"},"TICKF"),", full sync is speeding up by 7%."),(0,a.kt)("p",null,"The following plot shows that by caching the ",(0,a.kt)("inlineCode",{parentName:"p"},"TICKF")," the ",(0,a.kt)("inlineCode",{parentName:"p"},"ChainSync")," tip and the\n",(0,a.kt)("inlineCode",{parentName:"p"},"VolatileDB")," tip progress at the same rate."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(29287).Z,width:"765",height:"445"})),(0,a.kt)("p",null,"The plot below shows the speedup observed by caching the ",(0,a.kt)("inlineCode",{parentName:"p"},"TICKF")," rule wrt the\nbaseline."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(17885).Z,width:"773",height:"445"})),(0,a.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,a.kt)("p",null,"After addressing the PR comments, we merged PR ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/16"},"#16"),", which implements\nthe ",(0,a.kt)("inlineCode",{parentName:"p"},"MonadCatch")," instance for ",(0,a.kt)("inlineCode",{parentName:"p"},"STM"),". This extends the capability of our ",(0,a.kt)("inlineCode",{parentName:"p"},"io-sim"),"\nlibrary, which is crucial for testing and simulating Cardano components PR #16\nclosed ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/1461"},"#1461"),". This new feature was published as version ",(0,a.kt)("inlineCode",{parentName:"p"},"0.4.0.0"),"\nof ",(0,a.kt)("inlineCode",{parentName:"p"},"io-sim"),"."),(0,a.kt)("p",null,"We continued with our work fixing the ",(0,a.kt)("inlineCode",{parentName:"p"},"NoThunk")," errors required for enabling\nnightly tests, with the help of ",(0,a.kt)("inlineCode",{parentName:"p"},"TVarInvariant")," checks in ",(0,a.kt)("inlineCode",{parentName:"p"},"strict-stm")," and\n",(0,a.kt)("inlineCode",{parentName:"p"},"nothunks")," libraries. We proposed fixes in ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-ledger")," that took care of\nthunks that appeared in era translations (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3143"},"#3143"),"). The fixes will be\nintegrated back into consensus when ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-ledger")," approves and publish the\nchanges introduced in ",(0,a.kt)("inlineCode",{parentName:"p"},"#3143"),"."),(0,a.kt)("p",null,"We added CI support for ",(0,a.kt)("inlineCode",{parentName:"p"},"lmdb-simple")," (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/lmdb-simple/pull/2"},"#2"),"). We currently test the build on\na Linux environment only."),(0,a.kt)("p",null,"We got pending diffusion pipelining PRs (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3857"},"#3857"),", ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3860"},"#3860"),",\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3856"},"#3856"),") merged, after rebasing and addressing feedback."),(0,a.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,a.kt)("p",null,"@nfrisby finished a visualisation tool and outlined scripts for the Praos and\nGenesis explanation presentations. The idea is to produce a video that gives an\noverview of these protocols."),(0,a.kt)("h3",{id:"support"},"Support"),(0,a.kt)("p",null,"We started working on caching the computation of the ",(0,a.kt)("inlineCode",{parentName:"p"},"TICKF")," rule\n(",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4054"},"#4054"),"), since this was blocking our benchmarking work for\nGenesis. In addition, this issue has the Cardano community ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/issues/4421"},"quite\nconcerned"),", so we are hoping the work done in caching the\ncomputation of the ",(0,a.kt)("inlineCode",{parentName:"p"},"TICKF")," rule can help alleviating the growing block\nproduction delay on epoch switch."),(0,a.kt)("p",null,"We reviewed the block forge credential hotswapping PR ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3800"},"#3800")," from the\nnetworking team, which is intended for use in the adoption of P2P."))}d.isMDXComponent=!0},17885:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/2022-11-16-comparing-TICKF-batch-c6570a71c4a5d53b10cb7309d2cc742c.png"},29287:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/2022-11-16-removed-stuttering-e49aa27a0e549f0195373203da971ba7.png"}}]); \ No newline at end of file diff --git a/assets/js/89931013.e0bc6f6f.js b/assets/js/89931013.e0bc6f6f.js new file mode 100644 index 0000000000..a8b3f370a7 --- /dev/null +++ b/assets/js/89931013.e0bc6f6f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[10173],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>c});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?a(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):a(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){if(null==e)return{};var i,r,n=function(e,t){if(null==e)return{};var i,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),h=u(i),d=n,c=h["".concat(p,".").concat(d)]||h[d]||m[d]||a;return i?r.createElement(c,o(o({ref:t},s),{},{components:i})):r.createElement(c,o({ref:t},s))}));function c(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,o=new Array(a);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<a;u++)o[u]=i[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,i)}d.displayName="MDXCreateElement"},34101:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-04-06-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-04-06-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-06-mithril.md",source:"@site/blog/2023-04-06-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-04-06T00:00:00.000Z",formattedDate:"April 6, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.075,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-04-06-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-04-07-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-04-05-consensus"}},p={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:u},h="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(h,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team released a new ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2313.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2313.0"))," distribution that implements minor improvements and bug fixes. They continued implementing the migration of the aggregator stores to a relational design. They finished adaptating and migrating the certificate, epoch settings, signed entity type, signer registration and open message stores. Additionally, they completed the refactoring of the dependency injector of the aggregator and simplified its multi-signer in order for it to sign multiple concurrent messages."),(0,n.kt)("p",null,"Finally, the team has worked on designing the new architecture of the network to support signing multiple types of data and upgraded the version of the Cardano node used in the Mithril testnets and devnet to ",(0,n.kt)("inlineCode",{parentName:"p"},"1.35.6"),"."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2313.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2313.0"))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that implements a relational store in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/779"},"#779"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"epoch_settings")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/813"},"#813")),(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"signed-entity-type")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/815"},"#815")),(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"certificate")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/817"},"#817")),(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"open_message")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/827"},"#827")),(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"signer_registration")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/828"},"#828")))),(0,n.kt)("li",{parentName:"ul"},"Completed the refactoring of the dependency injection of the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/823"},"#823")),(0,n.kt)("li",{parentName:"ul"},"Completed the cleanup of the multi-signer of the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/824"},"#824")),(0,n.kt)("li",{parentName:"ul"},"Completed the upgrade of the Cardano node to ",(0,n.kt)("inlineCode",{parentName:"li"},"1.35.6")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/843"},"#843"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/89b1cff2.4d3c8213.js b/assets/js/89b1cff2.4d3c8213.js new file mode 100644 index 0000000000..dcaa38e5e4 --- /dev/null +++ b/assets/js/89b1cff2.4d3c8213.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65548],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=i,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},2822:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-02-07-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-02-07-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-07-mithril.md",source:"@site/blog/2024-02-07-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-02-07T00:00:00.000Z",formattedDate:"February 7, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.305,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-02-07-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-02-07-consensus"},nextItem:{title:"Network Team Update",permalink:"/2024-02-05-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the aggregator routes responsible for generating proofs of membership for a list of Cardano transactions and for listing produced artifacts. Additionally, they worked on extending the Mithril client library to support the verification of Cardano transactions, and on the creation of the new Mithril network running on SanchoNet."),(0,i.kt)("p",null,"Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and investigated some flakiness occurring in the end-to-end tests in the CI."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement proof generation route in the aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1467"},"#1467")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement artifact routes in the aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1478"},"#1478")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance ImmutableFile list computation resilience")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1450"},"#1450")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add WASM client step in Mithril Client multi-platform test")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1408"},"#1408")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance end to end test for Cardano hard forks")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1464"},"#1464")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement transactions verification in client library")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1468"},"#1468")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Create a test network on ",(0,i.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Some end to end tests are flaky in the CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1147"},"#1147")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Handle cancellation of certificate verification in WASM client")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1480"},"#1480")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Upgrade ",(0,i.kt)("inlineCode",{parentName:"strong"},"http")," dependency")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1474"},"#1474")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Generate automatic documentation for CLIs")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1471"},"#1471"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8a4bf3d8.4c7a3a3c.js b/assets/js/8a4bf3d8.4c7a3a3c.js new file mode 100644 index 0000000000..b2dc163017 --- /dev/null +++ b/assets/js/8a4bf3d8.4c7a3a3c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[87881],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},l=Object.keys(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=p(a),u=n,h=m["".concat(c,".").concat(u)]||m[u]||d[u]||l;return a?r.createElement(h,i(i({ref:t},s),{},{components:a})):r.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=u;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[m]="string"==typeof e?e:n,i[1]=o;for(var p=2;p<l;p++)i[p]=a[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},75789:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-04-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",o={permalink:"/2024-04-15-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-15-node-cli-api.md",source:"@site/blog/2024-04-15-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-04-15T00:00:00.000Z",formattedDate:"April 15, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.16,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-04-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-04-17-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-04-12-hydra"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],s={toc:p},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-04-01---2024-04-15"},"2024-04-01 - 2024-04-15"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Adding support for script based committee members certificates: authorization and resignation. It is now possible to convert extended signing Drep and Committee keys to a Shelley-format key. Improvements to Conway era tests. Use threshold instead of quorum for committee members. "),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/716"},"Provide a default value for ",(0,n.kt)("inlineCode",{parentName:"a"},"calculate-min-fee --reference-script-size"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/714"},"Improvements to governance tests")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/713"},"Add transaction metadata golden test")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/710"},"key non-extended-key: make pattern matches exhaustive, so that we are notified of possible extensions")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/708"},"foldSomeAddressVerificationKey->mapSomeAddressVerificationKey")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/699"},"Enable both --cold-script-file and --cold-script-hash for committee auth and resig commands")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/698"},'Fix inversion in --include-stake parser + print "stake" field even when there is no stake (do not hide stake absence)')),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/697"},"Release cardano-cli-8.22.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/694"},"Fix broken golden tests")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/693"},"Fix protocol params order for minFeeA and minFeeB")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/691"},"convert-cardano-address-key: support DRep and CC keys")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/689"},"updating cli to use threshold instead of quorum for constitutional co\u2026"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/517"},"Sort metadata keys for no-schema json for canonical CBOR")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/514"},"Add support for CC keys in the SomeAddressVerificationKey type")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/511"},"Implement estimateBalancedTxBody and estimateOrCalculateBalancedTxBody")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/506"},"Release cardano-api-8.44.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/503"},"LedgerState.hs improvements"))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5766"},"Updated copyright")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5758"},"Set NumThreads to 1 in cardano-testnet-test")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5749"},"Remove manual DRep registration from InfoAction test")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5748"},"DRep deposits test")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5747"},"Add tx fee check to hprop_transaction")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5746"},"cardano-testnet: Avoid rewrite of sgMaxLovelaceSupply"))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8a6fc2ec.fbacec1a.js b/assets/js/8a6fc2ec.fbacec1a.js new file mode 100644 index 0000000000..a2dbbf3863 --- /dev/null +++ b/assets/js/8a6fc2ec.fbacec1a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[22154],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=p(r),h=a,m=d["".concat(u,".").concat(h)]||d[h]||c[h]||l;return r?n.createElement(m,o(o({ref:t},s),{},{components:r})):n.createElement(m,o({ref:t},s))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=h;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:a,o[1]=i;for(var p=2;p<l;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}h.displayName="MDXCreateElement"},82391:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-01-19-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-01-19-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-19-ledger.md",source:"@site/blog/2023-01-19-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-01-19T00:00:00.000Z",formattedDate:"January 19, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.665,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-01-19-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-01-20-sre"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-01-14-db-sync"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Restructuring the ledger state",id:"restructuring-the-ledger-state",level:3},{value:"PDF hosting",id:"pdf-hosting",level:3},{value:"Powering the new ledger API",id:"powering-the-new-ledger-api",level:3},{value:"Constraint-based generators",id:"constraint-based-generators",level:3},{value:"Technical debt",id:"technical-debt",level:3}],s={toc:p},d="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The ledger team completed some preliminary ground work in preparation for CIP-1694\n(restructuring the ledger state),\nfixed the PDF hosting problem (mostly the formal specs),\nbuilt out more of the new user-friendly ledger API,\nfinished a proof of concept for constraint-based generators for property tests\n(with the hopes of being able to replace our trace generators one day),\nand addressed technical debt."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"restructuring-the-ledger-state"},"Restructuring the ledger state"),(0,a.kt)("p",null,"The existing governance structures will be replace in the conway ledger era,\nas described in CIP-1694.\nIn particular, the ledger rules will be restructured as follows:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"}," BBODY\n |\n |-------------------------------|\n v v\n TICK LEDGERS\n | |\n |---------| |\n v v v\n RUPD ~NEWEPOCH~ ~LEDGER~\n | |\n |----------| |--------|-------------------|-----------|\n v v v v v\n ~EPOCH~ +ENACTMENT+ DELEGS UTXOW +TALLY+\n | | |\n |---------|------------| v |\n v v v DELPL v\n SNAP POOLREAP -UPEC- | UTXO\n |--------| |\n v v v\n POOL DELEG ~UTXOS~\n\n-..- Removed\n+..+ Added\n~..~ Modified\n")),(0,a.kt)("p",null,"Moreover, the ledger state will also be restructured in accordance with the new rules.\nIn the conway code, we have now removed UPEC, added TALLY, and stubbed ENACTMENT.\nWe have also adapted all the data structures in the ledger state."),(0,a.kt)("p",null,"See:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3216"},"pull-3216"))),(0,a.kt)("h3",{id:"pdf-hosting"},"PDF hosting"),(0,a.kt)("p",null,"We now build all of our PDFs using a GitHub action which is triggered by pushing a tag\nwith a specific form, ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-ledger-spec-YYYY-MM-DD"),".\nThe action creates a GitHub release containing the PDFs.\nThe links in the main ledger README now point to the PDFs in the latest release."),(0,a.kt)("p",null,"See:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3245"},"pull-3245")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3260"},"pull-3260"))),(0,a.kt)("h3",{id:"powering-the-new-ledger-api"},"Powering the new ledger API"),(0,a.kt)("p",null,"We have now removed all the ",(0,a.kt)("inlineCode",{parentName:"p"},"HasField")," instances from the protocol parameter data types,\nand replaced them with lenses.\nThis is probably the last major restructuring that the ledger team will do on the code base\nfor the API for a while\n(the Plutus tools team will be working on it next, see ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/projects/5"},"here"),").\nWe also added a new helpful function ",(0,a.kt)("inlineCode",{parentName:"p"},"ensureMinCoinTxOut"),"."),(0,a.kt)("p",null,"See:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3242"},"pull-3242")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3248"},"pull-3248"))),(0,a.kt)("h3",{id:"constraint-based-generators"},"Constraint-based generators"),(0,a.kt)("p",null,"Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks\nwhich span several epochs, mimicking a real network.\nThese tests are, in theory, excellent for checking properties.\nThey are, however, very difficult to maintain and are not as random as we would like\n(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks)."),(0,a.kt)("p",null,"We would like to switch to tests which instead generate a random ledger state representative\nof not just an initial state, generate a single random valid block, and then test our properties.\nThe hope is that these will be much more random and easier to maintain."),(0,a.kt)("p",null,"We have finished a proof of concept are encouraged that this approach could work!"),(0,a.kt)("p",null,"See:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3219"},"pull-3219"))),(0,a.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3244"},"pull-3244")," massive CI speedup"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3249"},"pull-3249")," better types for fees in the protocol parameters"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3264"},"pull-3264")," move our annotator code to the ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-ledger-binary")," package where it belongs"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3239"},"pull-3239")," move the ",(0,a.kt)("inlineCode",{parentName:"li"},"Wdrls")," type to the ",(0,a.kt)("inlineCode",{parentName:"li"},"Core")," module.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8aeb9708.345f0d0b.js b/assets/js/8aeb9708.345f0d0b.js new file mode 100644 index 0000000000..3a629d07c4 --- /dev/null +++ b/assets/js/8aeb9708.345f0d0b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28650],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function p(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),u=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,d=p(e,["components","mdxType","originalType","parentName"]),s=u(a),m=n,h=s["".concat(i,".").concat(m)]||s[m]||c[m]||o;return a?r.createElement(h,l(l({ref:t},d),{},{components:a})):r.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[s]="string"==typeof e?e:n,l[1]=p;for(var u=2;u<o;u++)l[u]=a[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},74830:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>p,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-12-08-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,p={permalink:"/2023-12-08-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08-sre.md",source:"@site/blog/2023-12-08-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-12-08T00:00:00.000Z",formattedDate:"December 8, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.27,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-12-08-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-12-08-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2023-12-08-hydra"}},i={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3}],d={toc:u},s="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet was respun to cardano-node ",(0,n.kt)("inlineCode",{parentName:"li"},"8.7.0-pre"),", and upgraded to cardano-node ",(0,n.kt)("inlineCode",{parentName:"li"},"8.7.1-pre")," shortly afterwards"),(0,n.kt)("li",{parentName:"ul"},"Cardano-node ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.7.2"},"8.7.2")," was released and all environments were then upgraded to 8.7.2"),(0,n.kt)("li",{parentName:"ul"},"Cardano-parts deployed machines were upgraded to nixpkgs 23.11 and nix 2.19.3"),(0,n.kt)("li",{parentName:"ul"},"Cardano-parts resource deployed environments were switched from the use of Terraform to ",(0,n.kt)("a",{parentName:"li",href:"https://opentofu.org/"},"OpenTofu"))),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated for cardano-node 8.7.2 and process-compose packages: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/3ce364f...7649113"},"capkgs-compare"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update scripts for 8.6.0-pre: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/21"},"cardano-parts-pull-21")),(0,n.kt)("li",{parentName:"ul"},"Sanchonet respin with additional lib refactor and postgres prepared statement update: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/22"},"cardano-parts-pull-22")),(0,n.kt)("li",{parentName:"ul"},"Nixpkgs 23.11 update with migration from Terraform to OpenTofu: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/23"},"cardano-parts-pull-23")),(0,n.kt)("li",{parentName:"ul"},"Node 8.7.2 release update and process-compose flakeModule addition: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/24"},"cardano-parts-pull-24"))),(0,n.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Mainnet high load relays were updated to cardano-node 8.7.2 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/739287a...a5432fc"},"cardano-ops-compare"))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sancho respin plus related book updates and network debug reference code: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/7"},"cardano-playground-pull-7")),(0,n.kt)("li",{parentName:"ul"},"Nixpkgs 23.11 update with required module changes, lint updates and tofu utilization.: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/8"},"cardano-playground-pull-8")),(0,n.kt)("li",{parentName:"ul"},"Node 8.7.2 release and process-compose addition, misc fixes: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/9"},"cardano-playground-pull-9"))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet update PR: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/111"},"cardano-world-pull-111"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Merge the long running sanchonet-updated branch"),(0,n.kt)("li",{parentName:"ul"},"Migrate explorers from ziti to wireguard tunnel usage"),(0,n.kt)("li",{parentName:"ul"},"Remove remaining ziti code and provisioned resources"),(0,n.kt)("li",{parentName:"ul"},"Retire remaining nomad jobs in preference of the cardano-playground environments"),(0,n.kt)("li",{parentName:"ul"},"Downsize the cluster in preference of the cardano-playground environments")))),(0,n.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update mainnet p2p config: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/566"},"iohk-nix-pull-566")),(0,n.kt)("li",{parentName:"ul"},"Update mainnet default mempool tracing: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/567"},"iohk-nix-pull-567"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8b4d9039.35601eb6.js b/assets/js/8b4d9039.35601eb6.js new file mode 100644 index 0000000000..a116d07853 --- /dev/null +++ b/assets/js/8b4d9039.35601eb6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[55202],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,s(s({ref:t},u),{},{components:n})):r.createElement(f,s({ref:t},u))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var c=2;c<o;c++)s[c]=n[c];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},81007:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-04-19-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-04-19-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-19-consensus.md",source:"@site/blog/2023-04-19-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-04-19T00:00:00.000Z",formattedDate:"April 19, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.77,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-04-19-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-04-20-node-cli-api"},nextItem:{title:"Performance & tracing update",permalink:"/2023-04-19-performance-and-tracing"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This week the consensus team continued working on the improved DB lock mechanism\nfor UTxO-HD, and modifications to the mempool benchmarks that this prototype\nrequires."),(0,a.kt)("p",null,"On the Genesis front we validated that the fragment size calculation in\n",(0,a.kt)("inlineCode",{parentName:"p"},"BlockFetch")," is a major performance sink for ChainSync Jumping. By removing it\nwe will get performance that is acceptably close to that of the baseline. We\nalso started investigating a performance fix that does not alter the existing\nbaseline behavior too much. In addition we reviewed our Genesis attack vector\ncalculations."),(0,a.kt)("p",null,"On the support front we released Consensus 0.4, and we are working on improving\nour release process, to support the Cardano-wide efforts in this area. We also\nperformed an analysis on the number of file descriptors that consensus use. This\ninformation can be used by the node operators to check if the number of file\ndescriptors they want to support are enough."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8b59c913.3d40b9f3.js b/assets/js/8b59c913.3d40b9f3.js new file mode 100644 index 0000000000..b9acc6a708 --- /dev/null +++ b/assets/js/8b59c913.3d40b9f3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48993],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(r),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return r?n.createElement(h,l(l({ref:t},p),{},{components:r})):n.createElement(h,l({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},34378:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Benchmarking -- Node 8.7.2",slug:"2023-12-performance-8.7.2",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},l=void 0,i={permalink:"/reports/2023-12-performance-8.7.2",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2023-12-performance-8.7.2.md",source:"@site/reports/2023-12-performance-8.7.2.md",title:"Benchmarking -- Node 8.7.2",description:"Setup",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"benchmarking-reports",permalink:"/reports/tags/benchmarking-reports"}],readingTime:2.76,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Benchmarking -- Node 8.7.2",slug:"2023-12-performance-8.7.2",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},nextItem:{title:"Benchmarking -- Node 8.9.0",permalink:"/reports/2024-03-performance-8.9.0"}},s={authorsImageUrls:[void 0]},c=[{value:"Setup",id:"setup",level:2},{value:"Observations",id:"observations",level:2},{value:"Resource Usage",id:"resource-usage",level:3},{value:"Forging Loop",id:"forging-loop",level:3},{value:"Peer propagation",id:"peer-propagation",level:3},{value:"End-to-end propagation",id:"end-to-end-propagation",level:3},{value:"Contact",id:"contact",level:2},{value:"Attachments",id:"attachments",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"setup"},"Setup"),(0,a.kt)("p",null,"As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.1.2")," - the last mainnet release"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.7.0-pre")," - as an intermediate reference point"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2")," - the next mainnet release")),(0,a.kt)("p",null,"For each version, we're gathering various metrics under 2 different workloads:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"value-only"),": Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"Plutus"),": Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.")),(0,a.kt)("p",null,"Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\nwere performed in the Babbage era."),(0,a.kt)("h2",{id:"observations"},"Observations"),(0,a.kt)("p",null,"These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet. "),(0,a.kt)("p",null,"The observations stated refer to the direct comparison between the ",(0,a.kt)("inlineCode",{parentName:"p"},"8.1.2")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2")," versions."),(0,a.kt)("h3",{id:"resource-usage"},"Resource Usage"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Plutus workload, having a lower overall absolute CPU load, exhibits an average increase of 27% in Process CPU usage. Value workload, having a higher overall absolute CPU load, exhibits a near-jitter increase of 1%."),(0,a.kt)("li",{parentName:"ol"},"Allocation rates increase by ~8.9MB/s (value workload) and ~12.6MB/s (Plutus workload)."),(0,a.kt)("li",{parentName:"ol"},"Heap sizes increase by 47% - 54%."),(0,a.kt)("li",{parentName:"ol"},"CPU 85% span duration shrinks by ~9.7 slots under value workload, and ~5.8 slots under Pluts workload.")),(0,a.kt)("p",null,"Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness."),(0,a.kt)("h3",{id:"forging-loop"},"Forging Loop"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Block Context Acquisition in the forging loop increases by ~10ms."),(0,a.kt)("li",{parentName:"ol"},"Mempool snapshotting shows an increase by 16ms under value workload; under Plutus workload, it increases by 3ms."),(0,a.kt)("li",{parentName:"ol"},"Ledger ticking improves slightly by 1-2ms.")),(0,a.kt)("p",null,"The metric ",(0,a.kt)("em",{parentName:"p"},"'Slot start to announced'")," (see in attachements) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header."),(0,a.kt)("h3",{id:"peer-propagation"},"Peer propagation"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Block fetch time increases for full blocks by 9%. For small blocks, it improves by 7%."),(0,a.kt)("li",{parentName:"ol"},"Time to resend a block after fetching increases by 8% for full blocks, whereas it improves by 2% for small blocks."),(0,a.kt)("li",{parentName:"ol"},"Block adoption by a peer takes 12% more time for a full block, but happens faster by 4% for a small block.")),(0,a.kt)("h3",{id:"end-to-end-propagation"},"End-to-end propagation"),(0,a.kt)("p",null,"This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes."),(0,a.kt)("p",null,"The metric exhibits an increase by ~10% across all centiles for full blocks, whereas it improves by 5-6% for small blocks in the higher (80th and above) centiles."),(0,a.kt)("h2",{id:"contact"},"Contact"),(0,a.kt)("p",null,"This is the first time we're publishing, to a wider audience, such benchmarking results. We are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. "),(0,a.kt)("p",null,"We are looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future."),(0,a.kt)("h2",{id:"attachments"},"Attachments"),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"value-only workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:r(84685).Z},"here"),"."),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"Plutus workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:r(89273).Z},"here"),"."),(0,a.kt)("p",null,"The relese benchmarks for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2")," were performed on tag ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.1-pre"),", which features identical ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," components."))}d.isMDXComponent=!0},89273:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/files/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.plutus-f38724e73290c55323955558c17f2590.pdf"},84685:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/files/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.value-only-fdb343a09234cd47578ec1ec47c4610e.pdf"}}]); \ No newline at end of file diff --git a/assets/js/8bfc66fb.dcaf9435.js b/assets/js/8bfc66fb.dcaf9435.js new file mode 100644 index 0000000000..15090688ca --- /dev/null +++ b/assets/js/8bfc66fb.dcaf9435.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15623],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=p(r),h=a,d=c["".concat(u,".").concat(h)]||c[h]||m[h]||i;return r?n.createElement(d,o(o({ref:t},s),{},{components:r})):n.createElement(d,o({ref:t},s))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:a,o[1]=l;for(var p=2;p<i;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}h.displayName="MDXCreateElement"},69907:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-07-07-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-07-07-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-07-crypto.md",source:"@site/blog/2023-07-07-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-07-07T00:00:00.000Z",formattedDate:"July 7, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:.795,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-07-07-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-07-12-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-07-07-goedel"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"kes_agent",id:"kes_agent",level:3},{value:"Mithril",id:"mithril",level:3},{value:"Sidechains",id:"sidechains",level:3},{value:"CIPs and community",id:"cips-and-community",level:3}],s={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sidechains: First version of snark-based ATMS"),(0,a.kt)("li",{parentName:"ul"},"mithril: Full node verifier"),(0,a.kt)("li",{parentName:"ul"},"kes_agent: Keep progress, and prepare CIP and CPS"),(0,a.kt)("li",{parentName:"ul"},"CIPs and community: Finishing BLS12-381 CIP and working on a KECCAK CIP")),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("h3",{id:"kes_agent"},"kes_agent"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"KES Agent CIP/CSP. Preparing documents. Will become public in the future."),(0,a.kt)("li",{parentName:"ul"},"KES Agent testsuite (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes-agent/issues/14"},"https://github.com/input-output-hk/kes-agent/issues/14"),")"),(0,a.kt)("li",{parentName:"ul"},"RawBearer abstraction in ouroboros-network-framework (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4395"},"https://github.com/input-output-hk/ouroboros-network/pull/4395"),")"),(0,a.kt)("li",{parentName:"ul"},"Maintaining required changes to cardano-base for KES Agent (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/317"},"https://github.com/input-output-hk/cardano-base/pull/317"),")")),(0,a.kt)("h3",{id:"mithril"},"Mithril"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Final review of the implementation of Full Node Verifier ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/939"},"#939"),".\nIncluded benchmarks and further tests.")),(0,a.kt)("h3",{id:"sidechains"},"Sidechains"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Schnorr signature implemented"),(0,a.kt)("li",{parentName:"ul"},"ATMS signature implemented"),(0,a.kt)("li",{parentName:"ul"},"First benchmarks show that for the committe size we expect, we need 2^21 constraints. ")),(0,a.kt)("h3",{id:"cips-and-community"},"CIPs and community"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Addressed some review comments in ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/506"},"#PR506")),(0,a.kt)("li",{parentName:"ul"},"Worked with the communityt on ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/524"},"#PR524")," to include Keccak as part of the next Plutus release.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8c3c73e0.56b5a025.js b/assets/js/8c3c73e0.56b5a025.js new file mode 100644 index 0000000000..0acd4e618b --- /dev/null +++ b/assets/js/8c3c73e0.56b5a025.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23685],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=p(n),d=a,h=m["".concat(s,".").concat(d)]||m[d]||u[d]||o;return n?r.createElement(h,i(i({ref:t},c),{},{components:n})):r.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},95509:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const o={title:"Benchmarking -- Node 8.9.0",slug:"2024-03-performance-8.9.0",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},i=void 0,l={permalink:"/reports/2024-03-performance-8.9.0",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-03-performance-8.9.0.md",source:"@site/reports/2024-03-performance-8.9.0.md",title:"Benchmarking -- Node 8.9.0",description:"Setup",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"benchmarking-reports",permalink:"/reports/tags/benchmarking-reports"}],readingTime:2.43,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Benchmarking -- Node 8.9.0",slug:"2024-03-performance-8.9.0",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},prevItem:{title:"Benchmarking -- Node 8.7.2",permalink:"/reports/2023-12-performance-8.7.2"},nextItem:{title:"Benchmarking -- Node 8.9.1",permalink:"/reports/2024-03-performance-8.9.1"}},s={authorsImageUrls:[void 0]},p=[{value:"Setup",id:"setup",level:2},{value:"Observations",id:"observations",level:2},{value:"Resource Usage",id:"resource-usage",level:3},{value:"Forging Loop",id:"forging-loop",level:3},{value:"Peer propagation",id:"peer-propagation",level:3},{value:"End-to-end propagation",id:"end-to-end-propagation",level:3},{value:"Conclusion",id:"conclusion",level:3},{value:"Contact",id:"contact",level:2},{value:"Attachments",id:"attachments",level:2}],c={toc:p},m="wrapper";function u(e){let{components:t,...o}=e;return(0,a.kt)(m,(0,r.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"setup"},"Setup"),(0,a.kt)("p",null,"As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2")," - baseline for previous mainnet release"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.8.0")," - an intermediate reference point"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0")," - the next mainnet release")),(0,a.kt)("p",null,"For each version, we're gathering various metrics under 2 different workloads:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"value-only"),": Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"Plutus"),": Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.")),(0,a.kt)("p",null,"Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\nwere performed in the Babbage era."),(0,a.kt)("h2",{id:"observations"},"Observations"),(0,a.kt)("p",null,"These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet. "),(0,a.kt)("p",null,"The observations stated refer to the direct comparison between the ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.0")," versions."),(0,a.kt)("h3",{id:"resource-usage"},"Resource Usage"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Overall CPU usage exhibits a small to moderate (5% - 8%) increase."),(0,a.kt)("li",{parentName:"ol"},"Memory usage is very slightly decreased by 1%.")),(0,a.kt)("p",null,"Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness."),(0,a.kt)("h3",{id:"forging-loop"},"Forging Loop"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"For full blocks, Mempool Snapshotting improves by 4% (or 3ms)."),(0,a.kt)("li",{parentName:"ol"},"For small blocks, Self Adoption times improve by 8% (or 4ms)."),(0,a.kt)("li",{parentName:"ol"},"All other forger metrics do not exhibit significant change.")),(0,a.kt)("p",null,"The metric ",(0,a.kt)("em",{parentName:"p"},"'Slot start to announced'")," (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header."),(0,a.kt)("h3",{id:"peer-propagation"},"Peer propagation"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"For full blocks, Block Fetch duration shows a notable improvement by 10ms (or 3%).")),(0,a.kt)("h3",{id:"end-to-end-propagation"},"End-to-end propagation"),(0,a.kt)("p",null,"This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. "),(0,a.kt)("p",null,"End-to-end propagation times on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.0")," exhibit a small improvement by 2% across all centiles for full blocks, whereas they remain largely unchanged for small blocks."),(0,a.kt)("h3",{id:"conclusion"},"Conclusion"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The performance changes observed between ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2")," are only minor - with ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0")," slightly improving on ",(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2"),". Therefore, we'd expect ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0")," Mainnet performance to be akin to ",(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2"),"."),(0,a.kt)("li",{parentName:"ul"},"We have demonstrated no performance regression has been introduced in ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0"),".")),(0,a.kt)("h2",{id:"contact"},"Contact"),(0,a.kt)("p",null,"As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. "),(0,a.kt)("p",null,"We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future."),(0,a.kt)("h2",{id:"attachments"},"Attachments"),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"value-only workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(31942).Z},"here"),"."),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"Plutus workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(24998).Z},"here"),"."),(0,a.kt)("p",null,"NB. Mainnet release ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.3")," did not include any performance-related changes; measurements taken on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2")," remain valid."))}u.isMDXComponent=!0},24998:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.9.0.plutus-2153f07c96f823ebea49f0bd3ed93e44.pdf"},31942:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.9.0.value-only-acff1460799d3a362997dc37816d39dd.pdf"}}]); \ No newline at end of file diff --git a/assets/js/8c6dbeca.bd3f5897.js b/assets/js/8c6dbeca.bd3f5897.js new file mode 100644 index 0000000000..92b8710650 --- /dev/null +++ b/assets/js/8c6dbeca.bd3f5897.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96162],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var a=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,i=function(e,t){if(null==e)return{};var r,a,i={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,i=e.mdxType,n=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=s(r),d=i,g=c["".concat(u,".").concat(d)]||c[d]||m[d]||n;return r?a.createElement(g,o(o({ref:t},p),{},{components:r})):a.createElement(g,o({ref:t},p))}));function g(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=r.length,o=new Array(n);o[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:i,o[1]=l;for(var s=2;s<n;s++)o[s]=r[s];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},32688:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>l,toc:()=>s});var a=r(87462),i=(r(67294),r(3905));const n={title:"Crypto Team Update",slug:"2023-02-17-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-02-17-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-crypto.md",source:"@site/blog/2023-02-17-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-02-17T00:00:00.000Z",formattedDate:"February 17, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.43,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-02-17-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-02-21-db-sync"},nextItem:{title:"Goedel Team Update",permalink:"/2023-02-17-goedel"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"MuSig2",id:"musig2",level:3}],p={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(c,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,i.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril's core library (decided to add audit of KES). Design proposal for viable registration."),(0,i.kt)("li",{parentName:"ul"},"cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus."),(0,i.kt)("li",{parentName:"ul"},"KES agent: using snockets and making things testable in IOSim"),(0,i.kt)("li",{parentName:"ul"},"MuSig2: started implementation in rust.")),(0,i.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,i.kt)("h3",{id:"mithril"},"Mithril"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Transmute helpers merged ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/722"},"PR#722")),(0,i.kt)("li",{parentName:"ul"},"We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope. "),(0,i.kt)("li",{parentName:"ul"},"We are working in a modification of KES to require caller to allocate the secret key buffer."),(0,i.kt)("li",{parentName:"ul"},"Proposed a solution for signer registration of ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/wiki/Mithril-registration-procedure#cost"},"Mithril"),".")),(0,i.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/plutus/tree/kwxm/BLS12_381/prototype/plutus-benchmark/bls-benchmarks"},"proof"),".",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Results are promising, with using only 23% of the execution budget to verify a realistic proof. "),(0,i.kt)("li",{parentName:"ul"},"Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril."))),(0,i.kt)("li",{parentName:"ul"},"KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this."),(0,i.kt)("li",{parentName:"ul"},"Conversion finally merged ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/344"},"PR#344"),".")),(0,i.kt)("h3",{id:"kes-agent"},"KES agent"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation"),(0,i.kt)("li",{parentName:"ul"},"Figuring out how to go from fake file descriptor to write the raw bytes")),(0,i.kt)("h3",{id:"musig2"},"MuSig2"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8c75942c.6fdd13b5.js b/assets/js/8c75942c.6fdd13b5.js new file mode 100644 index 0000000000..d1a1e4881b --- /dev/null +++ b/assets/js/8c75942c.6fdd13b5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3530],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>c});var a=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,i=function(e,t){if(null==e)return{};var r,a,i={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var p=a.createContext({}),h=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=h(e.components);return a.createElement(p.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,i=e.mdxType,n=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=h(r),d=i,c=s["".concat(p,".").concat(d)]||s[d]||m[d]||n;return r?a.createElement(c,o(o({ref:t},u),{},{components:r})):a.createElement(c,o({ref:t},u))}));function c(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=r.length,o=new Array(n);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:i,o[1]=l;for(var h=2;h<n;h++)o[h]=r[h];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},6905:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>l,toc:()=>h});var a=r(87462),i=(r(67294),r(3905));const n={title:"Mithril Team Update",slug:"2023-02-09-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-02-09-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-09-mithril.md",source:"@site/blog/2023-02-09-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-02-09T00:00:00.000Z",formattedDate:"February 9, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.01,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-02-09-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-02-10-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-02-08-consensus"}},p={authorsImageUrls:[void 0]},h=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:h},s="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(s,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"The Mithril team released a new ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2304.1"},(0,i.kt)("inlineCode",{parentName:"a"},"2304.1"))," distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store."),(0,i.kt)("p",null,"Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version ",(0,i.kt)("inlineCode",{parentName:"p"},"1.35.5")," on their ",(0,i.kt)("inlineCode",{parentName:"p"},"devnet")," and infrastructure."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2304.1"},(0,i.kt)("inlineCode",{parentName:"a"},"2304.1"))),(0,i.kt)("li",{parentName:"ul"},"Fixed a bug that prevented some signers to sign with ",(0,i.kt)("inlineCode",{parentName:"li"},"2304.0-prerelease")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/716"},"#716")),(0,i.kt)("li",{parentName:"ul"},"Completed the implementation of an ",(0,i.kt)("inlineCode",{parentName:"li"},"EraChecker")," that checks if an era is active ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/708"},"#708")),(0,i.kt)("li",{parentName:"ul"},"Completed the implementation of an ",(0,i.kt)("inlineCode",{parentName:"li"},"EraReader")," that gathers era activation data ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/709"},"#709")),(0,i.kt)("li",{parentName:"ul"},"Completed the implementation of an ",(0,i.kt)("inlineCode",{parentName:"li"},"EraReader")," adapter with on chain transaction as source ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/710"},"#710")),(0,i.kt)("li",{parentName:"ul"},"Completed the relational design of the aggregator store ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/476"},"#476")),(0,i.kt)("li",{parentName:"ul"},"Completed adding a new SPO on the ",(0,i.kt)("inlineCode",{parentName:"li"},"testing-preview")," network ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/729"},"#729")),(0,i.kt)("li",{parentName:"ul"},"Completed the upgrade of the Cardano node to ",(0,i.kt)("inlineCode",{parentName:"li"},"1.35.5")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/725"},"#725")),(0,i.kt)("li",{parentName:"ul"},"Fixed flakiness in the CI ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/734"},"#734"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8ccf5d9f.ae990cb9.js b/assets/js/8ccf5d9f.ae990cb9.js new file mode 100644 index 0000000000..3efc3790bb --- /dev/null +++ b/assets/js/8ccf5d9f.ae990cb9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[66649],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=p(r),h=n,m=c["".concat(u,".").concat(h)]||c[h]||d[h]||o;return r?a.createElement(m,i(i({ref:t},s),{},{components:r})):a.createElement(m,i({ref:t},s))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var p=2;p<o;p++)i[p]=r[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},78367:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Ledger Team Update",slug:"2022-10-14-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-10-14-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-14-ledger.md",source:"@site/blog/2022-10-14-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2022-10-14T00:00:00.000Z",formattedDate:"October 14, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.03,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-10-14-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-10-14-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2022-10-05-consensus"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Completed Technical Debt",id:"completed-technical-debt",level:3},{value:"In-progress Technical Debt",id:"in-progress-technical-debt",level:3}],s={toc:p},c="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The ledger team is still primarily focused on addressing\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/issues?q=is%3Aissue+is%3Aopen+label%3A%22%3Acredit_card%3A+technical-debt%22"},"technical"),"\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/projects/3"},"debt"),".\nWe now have the infrastructure for versioning our serialization schemes,\nwhich we continue to put into action.\nWe have made first steps towards getting proper support for the\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/formal-ledger-specifications"},"formal ledger repository"),"\n(in particular, we've added nix builds and\ncontinuous integration support).\nWe are wrapping up an investigation of the performance of a critical\nfunction used by the consensus layer for leader checks.\nFinally, we are improving the packaging and versioning of our code."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"completed-technical-debt"},"Completed Technical Debt"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Because the Shelley ledger era was a complete re-write of the Byron ledger era, a lot of\nour code lives in the ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-ledger-shelley")," package, though with hindsight we can say that\nmuch of it should live in ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-ledger-core"),".\nWe continue to move things to ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-ledger-core"),", and have much more to come. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3059"},"pull-3059"),"]"),(0,n.kt)("li",{parentName:"ul"},"We now have the infrastructure to support ",(0,n.kt)("strong",{parentName:"li"},"versioned")," serialization schemes.\nThe inability to do this has caused us a lot difficulties,\nsuch as [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3003"},"issue-3003"),"], [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/2965"},"issue-2965"),"] and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/2444"},"issue-2444"),"].\nWe are still in the process of switching to the versioned serialization scheme\n(such as [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3078"},"pull-3078"),"]),\nbut the infrastructure was completed in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3063"},"pull-3063"),"]."),(0,n.kt)("li",{parentName:"ul"},"We now have proper nix and CI support for the formal ledger project. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/formal-ledger-specifications/pull/19"},"pull-19"),"]"),(0,n.kt)("li",{parentName:"ul"},"A separate team is helping bring support for\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-haskell-packages"},"CHaP"),"\nto all the cardano-node repositories.\nWe have been helping out with this effort.")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A separate team continues working on upgrading all the\ncardano-node repositories to work with ghc 9.2.4.\nWe have been helping out with this effort.")),(0,n.kt)("h3",{id:"in-progress-technical-debt"},"In-progress Technical Debt"),(0,n.kt)("p",null,"We also have several fairly large pull-requests in review\nthat we are working on."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"In an on-going attempt to build out a more user-friendly API,\nwe continue to remove ",(0,n.kt)("inlineCode",{parentName:"li"},"HasField")," instances in place of using micro-lenses.\nThe protocol parameters, in particular, are being worked on. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3045"},"pull-3045"),"]"),(0,n.kt)("li",{parentName:"ul"},"We are also renaming record fields to be consistent across the repository. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3062"},"pull-3062"),"]"),(0,n.kt)("li",{parentName:"ul"},"We are now cleaning up all the work we did to understand the performance\nof the TICKF transition. We have some improvements to the computatation\nas well. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3068"},"pull-3068"),"]"),(0,n.kt)("li",{parentName:"ul"},"We are adding more documentation, in particular to our ",(0,n.kt)("inlineCode",{parentName:"li"},"Twiddler")," functionality. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3073"},"pull-3073"),"]"),(0,n.kt)("li",{parentName:"ul"},"The formal ledger is adding support for finite set theory. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/formal-ledger-specifications/pull/20"},"pull-20"),"]")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8cd47ea9.f8bd8be2.js b/assets/js/8cd47ea9.f8bd8be2.js new file mode 100644 index 0000000000..4fbaaa2efb --- /dev/null +++ b/assets/js/8cd47ea9.f8bd8be2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58628],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),h=s(a),d=n,m=h["".concat(p,".").concat(d)]||h[d]||u[d]||i;return a?r.createElement(m,o(o({ref:t},c),{},{components:a})):r.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var s=2;s<i;s++)o[s]=a[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},31550:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2022-10-21-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-10-21-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-21-hydra.md",source:"@site/blog/2022-10-21-hydra.md",title:"Hydra Team Update",description:"High level summary",date:"2022-10-21T00:00:00.000Z",formattedDate:"October 21, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.97,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-10-21-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2022-10-27-crypto"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-10-19-node-cli-api"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],c={toc:s},h="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This week, the hydra team reviewed and addressed several open comments on the\nnew HeadV1 specification, completing a list the of identified gaps between\nspecification and implementation while doing so. In the wake of the recent\ndemonstration of SundaeSwap running their DEX in a Hydra Head, they met with\nthem to capture feature ideas & incorporate their feedback on the roadmap, as\nwell as potential research avenues."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Had the monthly review meeting, a bit earlier than expected: ",(0,n.kt)("a",{parentName:"li",href:"https://input-output.atlassian.net/wiki/spaces/HYDRA/pages/3650813953/Monthly+report+-+October+2022"},"https://input-output.atlassian.net/wiki/spaces/HYDRA/pages/3650813953/Monthly+report+-+October+2022")),(0,n.kt)("li",{parentName:"ul"},"Reviewed and addressed several open comments on HeadV1 specification."),(0,n.kt)("li",{parentName:"ul"},"Completed the list of identified gaps between specification and implementation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/452"},"#452")),(0,n.kt)("li",{parentName:"ul"},"Had two meetings with SundaeSwap to incorporate their feedback (on research and on the roadmap)."),(0,n.kt)("li",{parentName:"ul"},"Some small fixes on TUI and our docker images. ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/538"},"#538")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/pull/562"},"#562")),(0,n.kt)("li",{parentName:"ul"},"Met with the internal audit team and clarified scope.")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete the last two items required for a version ",(0,n.kt)("inlineCode",{parentName:"li"},"0.8.0"),"."),(0,n.kt)("li",{parentName:"ul"},"Cut the next release, version ",(0,n.kt)("inlineCode",{parentName:"li"},"0.8.0")),(0,n.kt)("li",{parentName:"ul"},"Get backup/recovery ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/187"},"#187")," done with proper event sourcing (ADR18)"),(0,n.kt)("li",{parentName:"ul"},"Have the CI build macos artifacts")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8d0075ff.ecbd405f.js b/assets/js/8d0075ff.ecbd405f.js new file mode 100644 index 0000000000..3fdf867889 --- /dev/null +++ b/assets/js/8d0075ff.ecbd405f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[99750],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),h=l(n),m=o,d=h["".concat(u,".").concat(m)]||h[m]||c[m]||a;return n?r.createElement(d,s(s({ref:t},p),{},{components:n})):r.createElement(d,s({ref:t},p))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,s=new Array(a);s[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[h]="string"==typeof e?e:o,s[1]=i;for(var l=2;l<a;l++)s[l]=n[l];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},65389:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var r=n(87462),o=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-09-20-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-09-20-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-20-consensus.md",source:"@site/blog/2023-09-20-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-09-20T00:00:00.000Z",formattedDate:"September 20, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.82,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-09-20-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-09-22-performance-and-tracing"},nextItem:{title:"Mithril Team Update",permalink:"/2023-09-20-mithril"}},u={authorsImageUrls:[void 0]},l=[{value:"High level summary",id:"high-level-summary",level:2},{value:"UTxO-HD",id:"utxo-hd",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Support",id:"support",level:3}],p={toc:l},h="wrapper";function c(e){let{components:t,...n}=e;return(0,o.kt)(h,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"We have a proposed fix for the mempool forging regression observed in the UTxO-HD branch. We need to confirm this by running system level benchmarks.\nWe are still working on a fall back mechanism for keeping the baseline performance of Cardano node, if the performance of the UTxO-HD is not enough.\nOn the Genesis front, we confirmed with the researchers that the proposed Genesis design is satisfactory for the historical Cardano chain.\nWe also have a proposed fix for the wrong protocol version bug, found in the Sanchonet, after transitioning to Conway."),(0,o.kt)("h3",{id:"utxo-hd"},"UTxO-HD"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We optimized the mempool revalidation process, which in turn ought to solve the regression observed during system-level benchmarks in the in-memory version (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/349"},"349"),"). System level benchmark results are pending."),(0,o.kt)("li",{parentName:"ul"},"Regarding the workaround to keep the node's baseline performance if that of the in-memory backend turns out not to be enough for our stakeholders (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/344"},"344"),"), we are still expanding the legacy block package such that we could at some point run the node with a legacy Cardano block. There are some loose ends to wrap up before we can begin the first test run."),(0,o.kt)("li",{parentName:"ul"},"We also brought the ",(0,o.kt)("inlineCode",{parentName:"li"},"UTxO-HD")," branch up to date with node version ",(0,o.kt)("inlineCode",{parentName:"li"},"8.4.0"),".")),(0,o.kt)("h3",{id:"genesis"},"Genesis"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We finished the discussion with the Researchers on how to argue that the proposed Genesis design is satisfactory for the existing historical Cardano chain.\nWe are now drafting the final self-contained argument. (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4157"},"4157"),")")),(0,o.kt)("h3",{id:"support"},"Support"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We debugged a bad parameter update on the ",(0,o.kt)("inlineCode",{parentName:"li"},"Babbage")," to ",(0,o.kt)("inlineCode",{parentName:"li"},"Conway")," transition in the SanchoNet testnet (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/339"},"339"),").\nA superficial patch is within reach and we are in the process of reviewing the PRs related to this fix (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/340"},"340"),", ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/354"},"354"),", and ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/355"},"355"),")\nHowever we are investigating a more principled redesign of the epoch transition logic, which required us to revisit the existing interfaces of the ",(0,o.kt)("inlineCode",{parentName:"li"},"ConsensusProtocol")," type class and the ",(0,o.kt)("inlineCode",{parentName:"li"},"HardForkBlock")," combinator (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/345"},"345")," and ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/346"},"346"),"). This is important to prevent these kind of errors in the future. This is an overdue step in the process of taking full ownership of the HFC: reconsidering original HFC design decisions for which we now have much more context, a few years later.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8d209506.742da2ef.js b/assets/js/8d209506.742da2ef.js new file mode 100644 index 0000000000..1bf92a59a1 --- /dev/null +++ b/assets/js/8d209506.742da2ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32936],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),s=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=s(a),d=n,h=c["".concat(u,".").concat(d)]||c[d]||m[d]||i;return a?r.createElement(h,o(o({ref:t},p),{},{components:a})):r.createElement(h,o({ref:t},p))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:n,o[1]=l;for(var s=2;s<i;s++)o[s]=a[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},58373:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Crypto Team Update",slug:"2023-01-20-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-20-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-20-crypto.md",source:"@site/blog/2023-01-20-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-01-20T00:00:00.000Z",formattedDate:"January 20, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.65,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-01-20-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-01-25-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2023-01-20-hydra"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3}],p={toc:s},c="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Mithril: We explored whether some uses of ",(0,n.kt)("inlineCode",{parentName:"li"},"transmute")," could be removed, but it resulted in considerable regression. "),(0,n.kt)("li",{parentName:"ul"},"cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision. "),(0,n.kt)("li",{parentName:"ul"},"KES agent: An inconsistency between ",(0,n.kt)("inlineCode",{parentName:"li"},"contra-tracer")," available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the ",(0,n.kt)("inlineCode",{parentName:"li"},"contra-tracer")," used by consensus. ")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/675"},"PR#675"),". We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing. "),(0,n.kt)("li",{parentName:"ul"},"We are writing a RFP for the audit of the core library. ")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A problem with Nix is blocking merge of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/341"},"PR#341")),(0,n.kt)("li",{parentName:"ul"},"Plutus team ran ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/plutus/blob/kwxm/BLS12_381/prototype/plutus-benchmark/bls-benchmarks/Main.hs"},"benchmarks")," of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution."),(0,n.kt)("li",{parentName:"ul"},"Team is fully digesting the Plonk paper. "),(0,n.kt)("li",{parentName:"ul"},"There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used. ")),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A little unforseen delay has been caused by a mismatch in the use of ",(0,n.kt)("inlineCode",{parentName:"li"},"contra-tracer"),". The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/255/commits/39b2d9473aa296976825248360a73cf066065431"},"doing the change"),", but still the CI is not happy."),(0,n.kt)("li",{parentName:"ul"},"The ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/317/commits/39b2d9473aa296976825248360a73cf066065431"},"same")," was needed for the KES agents prerequisites ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/317"},"PR#317"),"."),(0,n.kt)("li",{parentName:"ul"},"We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8d306cf9.b4238489.js b/assets/js/8d306cf9.b4238489.js new file mode 100644 index 0000000000..c2fe1b1a03 --- /dev/null +++ b/assets/js/8d306cf9.b4238489.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18144],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=n,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},9865:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-11-01-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-11-01-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-01-mithril.md",source:"@site/blog/2023-11-01-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-11-01T00:00:00.000Z",formattedDate:"November 1, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.895,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-11-01-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-11-01-consensus"},nextItem:{title:"Goedel Team Update",permalink:"/2023-10-27-goedel"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept. They progressed with the adaptation of the Mithril client as a library, and worked on its full WASM compatibility in a proof of concept. The team kept working on the deterministic computation of the transactions from the immutable files, and fixed some unreachability issue on the ",(0,n.kt)("inlineCode",{parentName:"p"},"release-mainnet")," aggregator."),(0,n.kt)("p",null,"Finally, they implemented new Docker images that build the Mithril nodes on the 'devnet' faster and fixed some regressions in the Mithril client CLI."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P Networking - Proof of Concept")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1300"},"#1300")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Build ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-common")," and ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," in WASM PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1284"},"#1284")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Fix ",(0,n.kt)("inlineCode",{parentName:"strong"},"devnet")," Mithril Docker images")," ","[#1272]","(",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1272"},"https://github.com/input-output-hk/mithril/issues/1272")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Release ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1311"},"#1311")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Compute deterministic Cardano UTxO set PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1283"},"#1283")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"release-mainnet")," aggregator is unreachable")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1310"},"#1310")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Client regressions in snapshot list and download")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1321"},"#1321"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8d3da32e.a6317eb7.js b/assets/js/8d3da32e.a6317eb7.js new file mode 100644 index 0000000000..feafa92293 --- /dev/null +++ b/assets/js/8d3da32e.a6317eb7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[84877],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=p(r),d=n,h=c["".concat(s,".").concat(d)]||c[d]||m[d]||o;return r?a.createElement(h,l(l({ref:t},u),{},{components:r})):a.createElement(h,l({ref:t},u))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[c]="string"==typeof e?e:n,l[1]=i;for(var p=2;p<o;p++)l[p]=r[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},92122:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Node Release Team Update",slug:"2022-11-02-release",authors:"disassembler",tags:["release"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2022-11-02-release",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-release.md",source:"@site/blog/2022-11-02-release.md",title:"Node Release Team Update",description:"Node Reelease Update",date:"2022-11-02T00:00:00.000Z",formattedDate:"November 2, 2022",tags:[{label:"release",permalink:"/tags/release"}],readingTime:.445,hasTruncateMarker:!1,authors:[{name:"Samuel Leathers",title:"Service Reliability Manager",url:"https://github.com/disassembler",imageURL:"https://github.com/disassembler.png",key:"disassembler"}],frontMatter:{title:"Node Release Team Update",slug:"2022-11-02-release",authors:"disassembler",tags:["release"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-11-02-node-cli-api"},nextItem:{title:"System Test Team Update",permalink:"/2022-11-02-system-test"}},s={authorsImageUrls:[void 0]},p=[{value:"Node Reelease Update",id:"node-reelease-update",level:2},{value:"2022-10-19 - 2022-11-02",id:"2022-10-19---2022-11-02",level:2},{value:"Executive Summary",id:"executive-summary",level:3},{value:"Completed",id:"completed",level:3},{value:"In Progress",id:"in-progress",level:3}],u={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"node-reelease-update"},"Node Reelease Update"),(0,n.kt)("h2",{id:"2022-10-19---2022-11-02"},"2022-10-19 - 2022-11-02"),(0,n.kt)("h3",{id:"executive-summary"},"Executive Summary"),(0,n.kt)("p",null,"The team is formalizing the new release process and team structure. Both preview/preprod environments have been reset,\na temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8."),(0,n.kt)("p",null,"1.35.4 release candidates have been created and are being tested internally and externally."),(0,n.kt)("h3",{id:"completed"},"Completed"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/commits/1.35.4-rc1"},"1.35.4-rc1 tag")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/commits/1.35.4-rc1"},"1.35.4-rc2 tag (config changes only for preview)")),(0,n.kt)("li",{parentName:"ul"},"[CHaP Migration]"," (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4540"},"https://github.com/input-output-hk/cardano-node/pull/4540"),")")),(0,n.kt)("h3",{id:"in-progress"},"In Progress"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/commits/release/1.35"},"Release 1.35.4")),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.4_rc1/src_docs/source/test_results/node/tag_1_35_4_rc1.rst"},"Test Status")))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://updates.cardano.intersectmbo.org/2022-08-12-sre"},"Cicero CI Migration")))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8d60cfea.779b53ef.js b/assets/js/8d60cfea.779b53ef.js new file mode 100644 index 0000000000..d420a76154 --- /dev/null +++ b/assets/js/8d60cfea.779b53ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27043],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>y});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=i(r),d=a,y=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(y,c(c({ref:t},s),{},{components:r})):n.createElement(y,c({ref:t},s))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,c[1]=l;for(var i=2;i<o;i++)c[i]=r[i];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},83357:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>i});var n=r(87462),a=(r(67294),r(3905));const o={title:"DB Sync Team Update",slug:"2024-01-30-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},c=void 0,l={permalink:"/2024-01-30-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-30-db-sync.md",source:"@site/blog/2024-01-30-db-sync.md",title:"DB Sync Team Update",description:"High level summary",date:"2024-01-30T00:00:00.000Z",formattedDate:"January 30, 2024",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.395,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB Sync Team Update",slug:"2024-01-30-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-01-31-performance-and-tracing"},nextItem:{title:"Hydra Team Update",permalink:"/2024-01-26-hydra"}},p={authorsImageUrls:[void 0]},i=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],s={toc:i},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team has prepared and tested a new db-sync version for mainnet, we have continued our\nintegration and update for Conway and have extended its modularity."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We attempt to turn db-sync into a modular project that can run with wither low or high recourses\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1610"},"#1610"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1613"},"#1613"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1590"},"#1590"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Moving the flags above to a config file\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1609"},"#1609"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Optimizations\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1595"},"#1595"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1607"},"#1607"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Conway Support and updates\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1581"},"#1581"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1573"},"#1573"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1570"},"#1570")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8dbcbb69.8ec7fb76.js b/assets/js/8dbcbb69.8ec7fb76.js new file mode 100644 index 0000000000..a079bc9851 --- /dev/null +++ b/assets/js/8dbcbb69.8ec7fb76.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[56994],{46938:e=>{e.exports=JSON.parse('{"permalink":"/tags/embedding-quality","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/8e0eb050.2cab6372.js b/assets/js/8e0eb050.2cab6372.js new file mode 100644 index 0000000000..fb0cf724ec --- /dev/null +++ b/assets/js/8e0eb050.2cab6372.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[66956],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=p(a),m=r,h=d["".concat(c,".").concat(m)]||d[m]||u[m]||o;return a?n.createElement(h,i(i({ref:t},s),{},{components:a})):n.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=a[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},84668:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2024-05-13-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2024-05-13-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-13-node-cli-api.md",source:"@site/blog/2024-05-13-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-05-13T00:00:00.000Z",formattedDate:"May 13, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.275,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-05-13-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-05-15-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-05-10-hydra"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],s={toc:p},d="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2024-04-27---2024-05-13"},"2024-04-27 - 2024-05-13"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"Enhancements to the CLI encompass several noteworthy additions. These include the introduction of a new hardfork initiation command, rendering --prev-governance-action-tx-id optional for create-no-confidence actions, addressing scenarios where the committee is defined in the Conway Genesis file, and refining help texts. Additionally, there have been updates to the description fields in governance action files."),(0,r.kt)("p",null,"Adjust maximum understood protocol version from 9 to 10 when the experimental hardforks flag is enabled. This allows us to bypass Conway's bootstrap phase in testing"),(0,r.kt)("p",null,"Continued work in testing implementation of CIP1694 with cardano-testnet. "),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/753"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"--prev-governance-action-tx-id")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"--prev-governance-action-tx-id")," optional for ",(0,r.kt)("inlineCode",{parentName:"a"},"create-no-confidence")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/751"},"Clarify help texts related to JSON and CBOR")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/749"},"Release 8.23.0.0 + upgrade cardano-api to 8.45.2.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/748"},"Export friendly function that returns ByteString + export buildShelleyAddress")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/746"},"action create-hardfork cmd + update description fields in all governance action files.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/745"},"Export toTxOutInAnyEra")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/744"},"Enable manual specification of execution units for plutus voting and proposing scripts"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/528"},"Release cardano-api-8.45.2.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/527"},"Update estimateBalancedTxBody to account for required deposits "))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5827"},"Count votes in Propose Constitution test before ratification")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5820"},"Adjust maximum understood protocol version from 9 to 10"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5829"},"Refactor: Use KeyPair type for key pairs in cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5827"},"Count votes in Propose Constitution test before ratification")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5825"},"Disable DRep Activity test ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5824"},"Reorganize cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5821"},"cardano-testnet: Add new constitutional committee")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5818"},"Enable epoch state logging by default")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5816"},"Refactor ",(0,r.kt)("inlineCode",{parentName:"a"},"ProposeNewConstitutionSPO")," test to reuse code"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8e410d22.a84f438c.js b/assets/js/8e410d22.a84f438c.js new file mode 100644 index 0000000000..d4628cb9dc --- /dev/null +++ b/assets/js/8e410d22.a84f438c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25272],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>d});var a=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,a)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?r(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){if(null==e)return{};var i,a,n=function(e,t){if(null==e)return{};var i,a,n={},r=Object.keys(e);for(a=0;a<r.length;a++)i=r[a],t.indexOf(i)>=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)i=r[a],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=a.createContext({}),h=function(e){var t=a.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},s=function(e){var t=h(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var i=e.components,n=e.mdxType,r=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=h(i),c=n,d=u["".concat(p,".").concat(c)]||u[c]||m[c]||r;return i?a.createElement(d,o(o({ref:t},s),{},{components:i})):a.createElement(d,o({ref:t},s))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=i.length,o=new Array(r);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var h=2;h<r;h++)o[h]=i[h];return a.createElement.apply(null,o)}return a.createElement.apply(null,i)}c.displayName="MDXCreateElement"},54212:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>l,toc:()=>h});var a=i(87462),n=(i(67294),i(3905));const r={title:"Mithril Team Update",slug:"2023-03-23-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-23-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-23-mithril.md",source:"@site/blog/2023-03-23-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-03-23T00:00:00.000Z",formattedDate:"March 23, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.615,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-03-23-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-03-23-db-sync"},nextItem:{title:"Consensus Team Update",permalink:"/2023-03-22-consensus"}},p={authorsImageUrls:[void 0]},h=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:h},u="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(u,(0,a.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team released a new ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2310.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2310.0"))," distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images."),(0,n.kt)("p",null,"Finally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano ",(0,n.kt)("inlineCode",{parentName:"p"},"mainnet")," and they have fixed some bugs. "),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the epic that implements eras behavior switch ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/707"},"#707"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed handling the API version switch at era transition ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/727"},"#727")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that implements a relational store in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/779"},"#779"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed on the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"stake_pool")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/787"},"#787")),(0,n.kt)("li",{parentName:"ul"},"Worked on the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"epoch_settings")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/813"},"#813")),(0,n.kt)("li",{parentName:"ul"},"Worked on the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"signed-entity-type")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/815"},"#815")),(0,n.kt)("li",{parentName:"ul"},"Completed the creation of a stake distribution service ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/799"},"#799")))),(0,n.kt)("li",{parentName:"ul"},"Completed the testing of Mithril with Cardano ",(0,n.kt)("inlineCode",{parentName:"li"},"mainnet")," network ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/777"},"#777")),(0,n.kt)("li",{parentName:"ul"},"Completed qualifying the computation of the stake distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/810"},"#810")),(0,n.kt)("li",{parentName:"ul"},"Completed the testing of the Docker client in the ",(0,n.kt)("inlineCode",{parentName:"li"},"Mithril Client multi-platform test")," workflow ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/794"},"#794")),(0,n.kt)("li",{parentName:"ul"},"Worked on bugs and optimizations:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Fixed a bug that made computation of the stake distribution occur multiple times during an epoch ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/804"},"#804")),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug that created deadlocks on the SQLite connection ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/807"},"#807")),(0,n.kt)("li",{parentName:"ul"},"Optimized the error message and the behavior of the signer node when KES keys have expired ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/820"},"#820")),(0,n.kt)("li",{parentName:"ul"},"Upgraded the infrastructure of the ",(0,n.kt)("inlineCode",{parentName:"li"},"testing-preview")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"pre-release-preview")," networks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/801"},"#801")),(0,n.kt)("li",{parentName:"ul"},"Re-genesis of the ",(0,n.kt)("inlineCode",{parentName:"li"},"testing-preview")," network ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/803"},"#803")),(0,n.kt)("li",{parentName:"ul"},"Re-genesis of the ",(0,n.kt)("inlineCode",{parentName:"li"},"pre-release-preview")," network ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/818"},"#818"))))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8ed15298.948a56b8.js b/assets/js/8ed15298.948a56b8.js new file mode 100644 index 0000000000..28d6cb4830 --- /dev/null +++ b/assets/js/8ed15298.948a56b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9928],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?i(Object(a),!0).forEach((function(e){r(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function o(t,e){if(null==t)return{};var a,n,r=function(t,e){if(null==t)return{};var a,n,r={},i=Object.keys(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),u=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(p.Provider,{value:e},t.children)},d="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,p=t.parentName,c=o(t,["components","mdxType","originalType","parentName"]),d=u(a),h=r,s=d["".concat(p,".").concat(h)]||d[h]||m[h]||i;return a?n.createElement(s,l(l({ref:e},c),{},{components:a})):n.createElement(s,l({ref:e},c))}));function s(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=h;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[d]="string"==typeof t?t:r,l[1]=o;for(var u=2;u<i;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},5378:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-07-04-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",o={permalink:"/2023-07-04-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-04-node-cli-api.md",source:"@site/blog/2023-07-04-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-07-04T00:00:00.000Z",formattedDate:"July 4, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.495,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-07-04-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-07-04-db-sync"},nextItem:{title:"Hydra Team Update",permalink:"/2023-06-30-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},d="wrapper";function m(t){let{components:e,...a}=t;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-06-21---2023-07-04"},"2023-06-21 - 2023-07-04"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Started integration of conway era into the cardano-api,"),(0,r.kt)("li",{parentName:"ul"},'Pre-release of cardano-cli 8.2.1 which enables creating goveranance "Update constitution" governance actionsas well as voting. Both only as SPO. DREP and CC will come in future releases.'),(0,r.kt)("li",{parentName:"ul"},"Cardano-cli is moving to a top-level era command structure (i.e. cardano-cli conway, cardano-cli babbage, etc to accomodate for different fucntionalities available in diferent eras. In particular between Babbage and Conway governance-related functionalities."),(0,r.kt)("li",{parentName:"ul"},"Continue refactoring cardano-testnet"),(0,r.kt)("li",{parentName:"ul"},"CI and docs house keeping on the new cardnao-cli and cardano-api repositories")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/60"},"Update to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.7.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/44"},"Release 8.2.1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/39"},"Use new function-based API instead of using query data types directly"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/94"},"Release cardano-api 8.7")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/92"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.6.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/90"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.2.0.0.1.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/88"},"Backport: Add era phantom type parameter to Certificate")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/86"},"Parameterise ",(0,r.kt)("inlineCode",{parentName:"a"},"Certificate")," type with phantom ",(0,r.kt)("inlineCode",{parentName:"a"},"era")," type argument")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/85"},"Voting procedure and proposal procedure updates")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/84"},"Parameterise ",(0,r.kt)("inlineCode",{parentName:"a"},"Certificate")," with ",(0,r.kt)("inlineCode",{parentName:"a"},"era"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/83"},"Parameterise ",(0,r.kt)("inlineCode",{parentName:"a"},"Certificate")," type with phantom ",(0,r.kt)("inlineCode",{parentName:"a"},"era")," type argument")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/79"},"Add contributing guide")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/77"},"Unified ",(0,r.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra")," constraint summoning")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/70"},"Update CHaP index")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/41"},"CIP-1694 API - Part 1"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5356"},"cardano-node top level error handler")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5353"},"Turn on some traces by default"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5364"},"Report payment address and UTxOs in testnets")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5362"},"New Conway ",(0,r.kt)("inlineCode",{parentName:"a"},"stake-snapshot")," tests"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/79"},"Add contributing guide")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/33"},"Release workflow description")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5353"},"Turn on some traces by default"))),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/75"},"Add PR changelog check")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/71"},"Fix stylish haskell in github action workflow")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/62"},"Enable CI on PRs from forks")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/53"},"Remove merge_group trigger from changelog check CI")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/46"},"Add PR changelog check. Add core-tech group to GHA description codeowners.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/41"},"Fix stylish haskell in github action workflow")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/40"},"Enable CI in PRs from forks")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/48"},"Add contributing guide"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8ed69c89.88722042.js b/assets/js/8ed69c89.88722042.js new file mode 100644 index 0000000000..8e46bf2616 --- /dev/null +++ b/assets/js/8ed69c89.88722042.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11537],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},28190:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-04-30-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-04-30-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-30-mithril.md",source:"@site/blog/2024-04-30-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-04-30T00:00:00.000Z",formattedDate:"April 30, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.495,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-04-30-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-05-01-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-04-27-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team prepared a new pre-release distribution ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2418.1-pre"},(0,i.kt)("inlineCode",{parentName:"a"},"2418.1-pre")),", which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes to prevent memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet")," by leveraging the compression of the transaction Merkle tree using sub-Merkle trees based on transaction block ranges during signature and proving. Additionally, they implemented a stream mechanism for importing transactions into the signer and aggregator stores."),(0,i.kt)("p",null,"Finally, the team started implementing a global Mithril networks configuration file and continued investigating some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Created a pre-release for the new distribution ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2418.1-pre"},(0,i.kt)("inlineCode",{parentName:"a"},"2418.1-pre"))),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Store Block Range Merkle roots in signer and aggregator databases")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1633"},"#1633")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Stream import of Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1646"},"#1646")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Memory leak in Cardano transactions signature/proof")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1629"},"#1629")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Handle unparsed blocks in Cardano transactions parser")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1567"},"#1567")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Use Block Range Merkle roots to sign Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1634"},"#1634")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Use Block Range Merkle roots to prove Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1635"},"#1635")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Use SQLite transactions when inserting ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," and ",(0,i.kt)("inlineCode",{parentName:"strong"},"Block Range Roots"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1656"},"#1656")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Add Mithril networks configurations in ",(0,i.kt)("inlineCode",{parentName:"strong"},"networks.json"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1638"},"#1638")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," supports retrieving the Chain Point of the tip of the chain")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1589"},"#1589")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Add section for manual setup of squid in SPO guide")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1610"},"#1610")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8fd26069.233f77d1.js b/assets/js/8fd26069.233f77d1.js new file mode 100644 index 0000000000..25152b0a9e --- /dev/null +++ b/assets/js/8fd26069.233f77d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75834],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>s});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),m=p(a),u=n,s=m["".concat(c,".").concat(u)]||m[u]||h[u]||i;return a?r.createElement(s,o(o({ref:t},d),{},{components:a})):r.createElement(s,o({ref:t},d))}));function s(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<i;p++)o[p]=a[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},21601:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-12-22-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-12-22-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-22-hydra.md",source:"@site/blog/2023-12-22-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-12-22T00:00:00.000Z",formattedDate:"December 22, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.78,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-12-22-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-12-30-node-cli-api"},nextItem:{title:"Network Team Update",permalink:"/2023-12-22-network"}},c={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],d={toc:p},m="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team made significant progress, implementing an offline mode with associated refactoring. They enhanced user experience by detecting incompatible eras in ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node"),". Protocol changes were implemented for incremental decommits, addressing off-chain logic. Additionally, the team contributed fixes to ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-ledger")," and coordinated with the Eternl team on enabling committing into a head from their wallet."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Offline mode implementation\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1118"},"#","1118")," and\nrefactoring\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1222"},"#","1222")),(0,n.kt)("li",{parentName:"ul"},"Detect incompatible era in ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")," and provide better UX\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1216"},"#","1216")),(0,n.kt)("li",{parentName:"ul"},"Implemented protocol changes for incremental decommits (off-chain\nlogic) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1057"},"#","1057")),(0,n.kt)("li",{parentName:"ul"},"Contributed fixes to ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-ledger"),(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3949"},"#","3949")," and\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3953"},"#","3953")),(0,n.kt)("li",{parentName:"ul"},"Synced up with the Eternl team on enabling committing into a head from\ntheir wallet")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Maybe cut a release 0.15.0 to ship offline-mode and unsupported era UX"),(0,n.kt)("li",{parentName:"ul"},"Full conway support in hydra-node"),(0,n.kt)("li",{parentName:"ul"},"Transaction creation and observation for incremental decommits")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8fe062a7.13b4895e.js b/assets/js/8fe062a7.13b4895e.js new file mode 100644 index 0000000000..72386d93e1 --- /dev/null +++ b/assets/js/8fe062a7.13b4895e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21597],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>g});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=s(a),d=n,g=m["".concat(p,".").concat(d)]||m[d]||c[d]||o;return a?r.createElement(g,l(l({ref:t},u),{},{components:a})):r.createElement(g,l({ref:t},u))}));function g(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[m]="string"==typeof e?e:n,l[1]=i;for(var s=2;s<o;s++)l[s]=a[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},17331:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-10-27-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-10-27-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-27-sre.md",source:"@site/blog/2023-10-27-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-10-27T00:00:00.000Z",formattedDate:"October 27, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.405,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-10-27-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-10-27-network"},nextItem:{title:"Mithril Team Update",permalink:"/2023-10-25-mithril"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3}],u={toc:s},m="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano-world testnets of preprod, preview, sanchonet and some private test chains are in the process of being migrated to the ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground"},"cardano-playground")," stack")),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Adds offchain-metadata-tools, dbsync sanchonet updates: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/b197e22...b1f1cbd"},"capkgs-compare"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"General package updates, modules improvements and template recipes to support network migration from world to playground ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/17"},"cardano-parts-pull-17"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Bumps cardano-db-sync-ng to sancho-2-0-0 tag"),(0,n.kt)("li",{parentName:"ul"},"Bumps iohk-nix-ng to mig-sancho branch for sanchonet pool migration from world to play"),(0,n.kt)("li",{parentName:"ul"},"Adds more machine system bins and devShell bins for scripting and debug purposes"),(0,n.kt)("li",{parentName:"ul"},"Adds cardano-show-kes-period alias on any node machine importing profile-cardano-node-group module"),(0,n.kt)("li",{parentName:"ul"},"Adds profile-cardano-node-topology module for a simplified interface to most common topology needs"),(0,n.kt)("li",{parentName:"ul"},"Adds a job-delegate-rewards-stake-key job as an optional follow on to pool creation and registration jobs"),(0,n.kt)("li",{parentName:"ul"},"Adds a topology function to filter self from group machines with an allowList for matching infixes"),(0,n.kt)("li",{parentName:"ul"},"Adds metadata-server and related offchain-metadata-tools bins from capkgs"),(0,n.kt)("li",{parentName:"ul"},"Updates justfile template with:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"a new query-all recipe for getting status of multiple concurrent running environments"),(0,n.kt)("li",{parentName:"ul"},"a new set-default-cardano-env recipe for fast switching between environments"),(0,n.kt)("li",{parentName:"ul"},"a new start-demo recipe for forking a custom env into conway"),(0,n.kt)("li",{parentName:"ul"},"a new start-node recipe for generic environment start"),(0,n.kt)("li",{parentName:"ul"},"a new stop-node recipe for generic environment stop"),(0,n.kt)("li",{parentName:"ul"},"updated list-machines recipe for handling of empty nixos machine config and empty ssh_config conditions"),(0,n.kt)("li",{parentName:"ul"},"updated query-tip recipe to a generic query tip compatible with each environment")))))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Migrates sanchonet from world, prepares further migration and support automation: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/4"},"cardano-playground-pull-4"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8fea44ca.b5842b36.js b/assets/js/8fea44ca.b5842b36.js new file mode 100644 index 0000000000..90d2bb870c --- /dev/null +++ b/assets/js/8fea44ca.b5842b36.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97517],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,o,a=function(e,t){if(null==e)return{};var n,o,a={},r=Object.keys(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},c=o.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),h=p(n),c=a,m=h["".concat(l,".").concat(c)]||h[c]||d[c]||r;return n?o.createElement(m,s(s({ref:t},u),{},{components:n})):o.createElement(m,s({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,s=new Array(r);s[0]=c;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[h]="string"==typeof e?e:a,s[1]=i;for(var p=2;p<r;p++)s[p]=n[p];return o.createElement.apply(null,s)}return o.createElement.apply(null,n)}c.displayName="MDXCreateElement"},11611:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>p});var o=n(87462),a=(n(67294),n(3905));const r={title:"Consensus Team Update",slug:"2023-01-25-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-01-25-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-25-consensus.md",source:"@site/blog/2023-01-25-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-01-25T00:00:00.000Z",formattedDate:"January 25, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.27,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-01-25-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-01-26-mithril"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-01-25-node-cli-api"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD Prototype",id:"utxo-hd-prototype",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Support",id:"support",level:3}],u={toc:p},h="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(h,(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the past two weeks, the consensus team finished the testing activities\naround the UTxO-HD prototype. This is a very important milestone which will\nenable us to run system-level tests and benchmarks, as well as start refactoring\nand cleaning the prototype. Regarding our Genesis workstream, we elaborated a\nroadmap that gives an indication of the remaining work. We also continued our\nwork on benchmarking chain-sync-jumping. We also continued working on improving\nthe way we handle blocks from the future, and advancing the integration of the\nnew VRF and KES crypto."),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD Prototype"),(0,a.kt)("p",null,"As the prototype is nearing its completion, it was important to have enough\nconfidence that we will be able to move additional parts of the ledger state\nonto disk. We worked together with the Ledger team to ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4296"},"elaborate a\nsketch")," on how the UTxO-HD design would accommodate the migration of\nadditional data from memory to disk. This gave us enough confidence that the\ncurrent architecture will be extensible in the future."),(0,a.kt)("p",null,"On the testing front, we ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4274"},"added")," property-based tests for the UTxO-HD\ntype classes. "),(0,a.kt)("p",null,"We also ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4289"},"enabled disabled components"),", and addressed several\ntechnical debt issues:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Implement ",(0,a.kt)("inlineCode",{parentName:"li"},"splitSized")," anti-diff split (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4269"},"#4269"),"), and integrate it\ninto consensus (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4273"},"#4273"),")."),(0,a.kt)("li",{parentName:"ul"},"Renaming of ",(0,a.kt)("inlineCode",{parentName:"li"},"peekVal")," to ",(0,a.kt)("inlineCode",{parentName:"li"},"peekMDBVal")," (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/lmdb-simple/pull/7"},"#7"),").")),(0,a.kt)("p",null,"We ran ad-hoc benchmarks for syncing a chain from scratch and replaying. We\nfound a race condition in the LMDB backing store, which ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4283"},"we fixed"),".\nAfter the fix we were able to successfully run these benchmarks. The results\nwere published by ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4295"},"this pull request"),"."),(0,a.kt)("p",null,"We used our ",(0,a.kt)("inlineCode",{parentName:"p"},"db-analyser")," tool to benchmark the cost of reading keys and\nflushing values to disk. The following plot shows the duration of these disk\noperation in relation to the main ledger operations, where we can see that the\ncost of the former are comparatively low. The spike at the beginning of the\ngraph is when, at the start of the Shelley era, the ",(0,a.kt)("em",{parentName:"p"},"entire")," UTxO set is flushed\nto disk."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"UTxO-HD read and flush benchmarks",src:n(90595).Z,width:"1600",height:"800"})),(0,a.kt)("p",null,"After months of hard work adding tests for the prototype, we are ready to run\nend-to-end tests on the node, and system level benchmarks. This signals a very\nimportant milestone for the UTxO-HD workstream \ud83c\udf89."),(0,a.kt)("h3",{id:"genesis"},"Genesis"),(0,a.kt)("p",null,"We elaborated a ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/blob/a626c84f6df585dd27d735eb7eec73904a1f570e/ouroboros-consensus/docs/2023-Jan-Genesis-roadmap.md"},"high-level decomposition")," of the remaining\nwork for Genesis. We also continued benchmarking the chain-sync-jumping\nhappy-path."),(0,a.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,a.kt)("p",null,"We continued working on improving the way we handle blocks from the future."),(0,a.kt)("h3",{id:"support"},"Support"),(0,a.kt)("p",null,"We completed the mapping of ",(0,a.kt)("inlineCode",{parentName:"p"},"Crypto")," to ",(0,a.kt)("inlineCode",{parentName:"p"},"HeaderCrypto")," and body ",(0,a.kt)("inlineCode",{parentName:"p"},"Crypto"),".\n",(0,a.kt)("inlineCode",{parentName:"p"},"HeaderCrypto")," is moved to ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-protocol-tpraos"),". We created a draft ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3262"},"pull\nrequest")," to facilitate compiling consensus."))}d.isMDXComponent=!0},90595:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/2023-01-25-consensus-utxo-hd-read-and-flush-benchmarks-6b129a1acaa4bb48443ee81add51fd39.png"}}]); \ No newline at end of file diff --git a/assets/js/90323238.745592ee.js b/assets/js/90323238.745592ee.js new file mode 100644 index 0000000000..8db0a0e542 --- /dev/null +++ b/assets/js/90323238.745592ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[82641],{29481:e=>{e.exports=JSON.parse('{"permalink":"/tags/ledger/page/2","page":2,"postsPerPage":5,"totalPages":9,"totalCount":44,"previousPage":"/tags/ledger","nextPage":"/tags/ledger/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/90ae2cef.42b45f67.js b/assets/js/90ae2cef.42b45f67.js new file mode 100644 index 0000000000..2f74bf8c6a --- /dev/null +++ b/assets/js/90ae2cef.42b45f67.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[98153],{75441:e=>{e.exports=JSON.parse('{"permalink":"/page/81","page":81,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/80","nextPage":"/page/82","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/90aeef13.3804e399.js b/assets/js/90aeef13.3804e399.js new file mode 100644 index 0000000000..558346e989 --- /dev/null +++ b/assets/js/90aeef13.3804e399.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[12853],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},17798:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-06-26-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-06-26-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-26-mithril.md",source:"@site/blog/2024-06-26-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-06-26T00:00:00.000Z",formattedDate:"June 26, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.155,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-06-26-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-06-26-consensus"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-06-25-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team released the ",(0,n.kt)("a",{parentName:"p",href:"https://mithril.network/doc/next/mithril/threat-model"},"threat modeling explainer")," for the documentation website. They also continued implementing the certification of Cardano transactions in Mithril networks and the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas. Additionally, the team started redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network."),(0,n.kt)("p",null,"Finally, they fixed a bug that prevented the verification of the transactions included in the last certified block and improved the WASM client's documentation."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Threat modeling and risk analysis")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement database connection pooling for Cardano transaction repository")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1760"},"#1760")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Import Cardano transactions by sequences of block ranges")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1766"},"#1766")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Limit Cardano transactions prover input")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1757"},"#1757")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Transactions of the block number in the artifact are never certified by the prover")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1762"},"#1762")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Add missing pre-requisite to build WASM client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1753"},"#1753")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Import Cardano transactions with ",(0,n.kt)("inlineCode",{parentName:"strong"},"ChainReader"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1705"},"#1705")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"CIP for Mithril signature diffusion through Cardano network")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1775"},"#1775")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Optimize Cardano transaction prover performances with parallelization")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1756"},"#1756")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Cardano signatures are not produced on ",(0,n.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1750"},"#1750")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Lint Markdown/JavaScript files in repository")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1754"},"#1754"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/90bf9c2d.a70871ef.js b/assets/js/90bf9c2d.a70871ef.js new file mode 100644 index 0000000000..a8501e1083 --- /dev/null +++ b/assets/js/90bf9c2d.a70871ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32035],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>d});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?a(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):a(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){if(null==e)return{};var i,r,n=function(e,t){if(null==e)return{};var i,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),h=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},s=function(e){var t=h(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=h(i),c=n,d=u["".concat(p,".").concat(c)]||u[c]||m[c]||a;return i?r.createElement(d,o(o({ref:t},s),{},{components:i})):r.createElement(d,o({ref:t},s))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var h=2;h<a;h++)o[h]=i[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,i)}c.displayName="MDXCreateElement"},91041:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>h});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-05-04-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-04-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-04-mithril.md",source:"@site/blog/2023-05-04-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-05-04T00:00:00.000Z",formattedDate:"May 4, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.56,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-05-04-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-05-05-node-cli-api"},nextItem:{title:"Consensus Team Update",permalink:"/2023-05-03-consensus"}},p={authorsImageUrls:[void 0]},h=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:h},u="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(u,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team completed the implementation of the new certifier service of the aggregator, which is in charge of producing certificates for multi-signatures. They also finished implementing the interfaces defined to provide certification for the full immutable Cardano files snapshot and the Mithril stake distribution. Additionally, they have completed the refactoring of the multi-signer in the aggregator. The team also fixed the bug in the signer registration that was responsible for gaps during the signature phase for some signers, and they upgraded the Cardano node used in the Mithril testnets and devnet to version ",(0,n.kt)("inlineCode",{parentName:"p"},"1.35.7"),"."),(0,n.kt)("p",null,"Finally, they have worked on designing a decentralized registration for the signers that takes place on the Cardano chain."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that designs and implements generic signing/verification of entity services ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/780"},"#780"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the implementation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"Certifier")," service in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/850"},"#850")),(0,n.kt)("li",{parentName:"ul"},"Completed the implementation of the signable builder for the ",(0,n.kt)("inlineCode",{parentName:"li"},"Mithril Stake Distribution")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/851"},"#851")),(0,n.kt)("li",{parentName:"ul"},"Completed the implementation of the artifact builder for the ",(0,n.kt)("inlineCode",{parentName:"li"},"Mithril Stake Distribution")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/870"},"#870")),(0,n.kt)("li",{parentName:"ul"},"Completed the implementation of the signable builder for the ",(0,n.kt)("inlineCode",{parentName:"li"},"Full Immutables Snapshot")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/852"},"#852")),(0,n.kt)("li",{parentName:"ul"},"Completed the implementation of the artifact builder for the ",(0,n.kt)("inlineCode",{parentName:"li"},"Full Immutables Snapshot")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/871"},"#871")),(0,n.kt)("li",{parentName:"ul"},"Completed the adaptation of the aggregator runtime to use the signable builder service ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/853"},"#853")),(0,n.kt)("li",{parentName:"ul"},"Worked on the adaptation of the signer runtime to use the signable builder service ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/854"},"#854")),(0,n.kt)("li",{parentName:"ul"},"Completed the definition of the entity service interface for verification/restoration ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/868"},"#868")),(0,n.kt)("li",{parentName:"ul"},"Completed the refactoring of the ",(0,n.kt)("inlineCode",{parentName:"li"},"OpenMessage")," type ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/878"},"#878")))),(0,n.kt)("li",{parentName:"ul"},"Completed the epic that simplifies the multi-signer in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/398"},"#398"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the extraction of the single signature registration from the multi-signer ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/643"},"#643")))),(0,n.kt)("li",{parentName:"ul"},"Completed the upgrade of the Cardano node to version ",(0,n.kt)("inlineCode",{parentName:"li"},"1.35.7")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/881"},"#881")),(0,n.kt)("li",{parentName:"ul"},"Fixed the bug that created a discrepancy of the signer verification keys between signers and aggregators ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/873"},"#873"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/90cc522f.6ac9708e.js b/assets/js/90cc522f.6ac9708e.js new file mode 100644 index 0000000000..0d6d389b47 --- /dev/null +++ b/assets/js/90cc522f.6ac9708e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75696],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=p(r),c=n,m=d["".concat(s,".").concat(c)]||d[c]||h[c]||i;return r?a.createElement(m,o(o({ref:t},u),{},{components:r})):a.createElement(m,o({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<i;p++)o[p]=r[p];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},73887:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2023-04-21-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-04-21-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-21-hydra.md",source:"@site/blog/2023-04-21-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-04-21T00:00:00.000Z",formattedDate:"April 21, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.26,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-04-21-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-04-27-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2023-04-21-ledger"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:p},d="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team worked on several fronts, including fixing state\nmachine continuity on-chain, discussing voting project solutions, exploring\nadding Hydra support to kupo, and improving API navigation with a sidebar. The\nteam also updated dependencies and fixed issues in their test suites. Moving\nforward, the team plans to hold the next monthly review meeting, address a user\nissue, prepare for the 0.10.0 release, and work on a dirt road fix for the\nrollbacks issue with proper test coverage."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fixed scripts to enforce state machine continuity on-chain ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/777"},"#777"),"."),(0,n.kt)("li",{parentName:"ul"},"Took part in a twitter space on ",(0,n.kt)("a",{parentName:"li",href:"https://twitter.com/thepizzaknight_/status/1647833904282320896"},"\u201c","Scaling Cardano","\u201d"),"."),(0,n.kt)("li",{parentName:"ul"},"Joined a CBIA meeting to discuss Cardano network protocols & how to specify them."),(0,n.kt)("li",{parentName:"ul"},"Discussed potential solutions of ensuring vote uniqueness in the voting project."),(0,n.kt)("li",{parentName:"ul"},"Updated dependencies to match ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-node")," master to prepare for upcoming releases and hard-forks"),(0,n.kt)("li",{parentName:"ul"},"Explored adding Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/CardanoSolutions/kupo/pull/117"},"support to kupo"),", a lightweight Cardano chain indexer - some more work required."),(0,n.kt)("li",{parentName:"ul"},"Improved navigation of the API Reference with a sidebar, see ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/unstable/api-reference/"},"unstable API version"),"."),(0,n.kt)("li",{parentName:"ul"},"Fixed two things in our test suites (random port conflicts and an arithmetic underflow in smoke test)")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting (join via ",(0,n.kt)("a",{parentName:"li",href:"https://discord.gg/inputoutput?event=1097863746216538194"},"Discord")," or ",(0,n.kt)("a",{parentName:"li",href:"https://www.addevent.com/event/ck16794110"},"AddEvent"),") & report"),(0,n.kt)("li",{parentName:"ul"},"Dirt road fix for rollbacks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")," properly covered by a test."),(0,n.kt)("li",{parentName:"ul"},"Groom and ideally address user issue ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/823"},"#823"),"."),(0,n.kt)("li",{parentName:"ul"},"Put the spec into the repo ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/693"},"#693")," and prepare release 0.10.0.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/90f359c5.9b4fd7b8.js b/assets/js/90f359c5.9b4fd7b8.js new file mode 100644 index 0000000000..9f321878db --- /dev/null +++ b/assets/js/90f359c5.9b4fd7b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[66891],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var i=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,i,n=function(e,t){if(null==e)return{};var a,i,n={},r=Object.keys(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=i.createContext({}),p=function(e){var t=i.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},s=function(e){var t=p(e.components);return i.createElement(u.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=p(a),m=n,h=c["".concat(u,".").concat(m)]||c[m]||d[m]||r;return a?i.createElement(h,l(l({ref:t},s),{},{components:a})):i.createElement(h,l({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:n,l[1]=o;for(var p=2;p<r;p++)l[p]=a[p];return i.createElement.apply(null,l)}return i.createElement.apply(null,a)}m.displayName="MDXCreateElement"},83762:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>p});var i=a(87462),n=(a(67294),a(3905));const r={title:"SRE Team Update",slug:"2022-08-12-sre",authors:"manveru",tags:["sre"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2022-08-12-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-28-sre.md",source:"@site/blog/2022-10-28-sre.md",title:"SRE Team Update",description:"High level summary",date:"2022-10-28T00:00:00.000Z",formattedDate:"October 28, 2022",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:3.04,hasTruncateMarker:!1,authors:[{name:"Michael Fellinger",title:"SRE Team Lead",url:"https://github.com/manveru",imageURL:"https://github.com/manveru.png",key:"manveru"}],frontMatter:{title:"SRE Team Update",slug:"2022-08-12-sre",authors:"manveru",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Team Update",permalink:"/2022-10-28-performance-and-tracing"},nextItem:{title:"Crypto Team Update",permalink:"/2022-10-27-crypto"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"OpenZiti",id:"openziti",level:3},{value:"Cicero & Tullia Integrations",id:"cicero--tullia-integrations",level:3},{value:"Cicero & Tullia Features",id:"cicero--tullia-features",level:3},{value:"Spongix",id:"spongix",level:3},{value:"Bugs",id:"bugs",level:3}],s={toc:p},c="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,i.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team is heavily working on the Equinix Metal migration, replacing Hydra\nwith Cicero, and a new version of Spongix."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"openziti"},"OpenZiti"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Work is ongoing on our OpenZiti integration into Bitte in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/bitte/compare/zt"},"bitte-zt"),"]."),(0,n.kt)("li",{parentName:"ul"},"CI-World deployment of Darwin CI Ziti service in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-world/commit/d40f4d19187a2128b6f0d63bde7e3f9a33071994"},"ci-world-commit-d40f4d"),"]."),(0,n.kt)("li",{parentName:"ul"},"Multiple issues filed, and a lot of discussion with the OpenZiti developers,\nwe're making pretty rapid progress thanks to them."),(0,n.kt)("li",{parentName:"ul"},"Work on getting Equinix baremetal machines integrated into AWS World Bitte\nclusters utilizing a Ziti ZTNA network overlay to bridge the networking of\nthe two environments and get IAM extension to Equinix machine for Nomad\nclient onboarding."),(0,n.kt)("li",{parentName:"ul"},"A Nix Flake for most of our OpenZiti dependencies including the Console,\nController, Edge Tunnel, and Router is now at [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/johnalotoski/openziti-bins"},"openziti-bins"),"]."),(0,n.kt)("li",{parentName:"ul"},"The Flake also includes a WiP NixOS modules for these components."),(0,n.kt)("li",{parentName:"ul"},"Tested Ziti Desktop Edge official app for Darwin x86_64 w/ GUI -- works with\nno issues seen so far"),(0,n.kt)("li",{parentName:"ul"},"Moved the console to traefik routing service (",(0,n.kt)("inlineCode",{parentName:"li"},"zac.$DOMAIN"),") and\ncontroller/edge router stay at ",(0,n.kt)("inlineCode",{parentName:"li"},"zt.$DOMAIN"),", but have registered consul\nservices")),(0,n.kt)("h3",{id:"cicero--tullia-integrations"},"Cicero & Tullia Integrations"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Added webhook for [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/haskell.nix"},"haskell.nix"),"]."),(0,n.kt)("li",{parentName:"ul"},"Finished Cicero CI action for [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-addresses/pull/205"},"cardano-addresses-pull-205"),"]."),(0,n.kt)("li",{parentName:"ul"},"Fixed cardano-prelude cicero action in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-prelude/pull/176#issuecomment-1280947946"},"cardano-prelude-pull-176"),"]."),(0,n.kt)("li",{parentName:"ul"},"Fixed the ",(0,n.kt)("inlineCode",{parentName:"li"},"abcird-stdlib/publish")," action [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/abcirdc/pull/104"},"abcirdc-pull-104"),"]"),(0,n.kt)("li",{parentName:"ul"},"fix error on vm-bigdisk flake configs [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cicero/pull/66"},"cicero-pull-66"),"]."),(0,n.kt)("li",{parentName:"ul"},"Helped with Cicero actions and answered questions for [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/plutus"},"plutus"),"]\n[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-prelude"},"cardano-prelude"),"], and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/abcirdc"},"abcirdc"),"]."),(0,n.kt)("li",{parentName:"ul"},"Merged [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/323"},"cardano-base-pull-323"),"] for Tullia on cardano-base."),(0,n.kt)("li",{parentName:"ul"},"Merged Cicero action in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ogmios/pull/5"},"cardano-ogmios-pull-5"),"]."),(0,n.kt)("li",{parentName:"ul"},"Opened [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-explorer-app/pull/427"},"cardano-explorer-app-pull-427"),"] to add Tullia and Cicero."),(0,n.kt)("li",{parentName:"ul"},"Opened [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3097"},"cardano-ledger-pull-3097"),"] to add Cicero CI action."),(0,n.kt)("li",{parentName:"ul"},"Opened [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4489"},"cardano-node-pull-4489"),"] to add Tullia and Cicero, including\nOS-agnostic jobs."),(0,n.kt)("li",{parentName:"ul"},"Opened [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4108"},"ouroboros-network-pull-4108"),"] to add Cicero action."),(0,n.kt)("li",{parentName:"ul"},"Reviewed [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/plutus/pull/4918"},"plutus-pull-4918"),"] and helped test it."),(0,n.kt)("li",{parentName:"ul"},"Update Tullia in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/abcirdc/pull/97"},"abcirdc-pull-97"),"] to build if a tag is given.")),(0,n.kt)("h3",{id:"cicero--tullia-features"},"Cicero & Tullia Features"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Improvements to Tullia task aggregation to make [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-addresses"},"cardano-addresses"),"] build\ncorrectly."),(0,n.kt)("li",{parentName:"ul"},"Better tullia CUE lib default for tags [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/tullia/commit/4df3c5d956f1b062b950643da12768ae71acf245"},"tullia-commit-4df3c5d"),"]."),(0,n.kt)("li",{parentName:"ul"},"Put ",(0,n.kt)("inlineCode",{parentName:"li"},"cache.nixos.org")," back in ",(0,n.kt)("inlineCode",{parentName:"li"},"cache.iog.io"),"'s upstreams. This is now\nconsidered a public cache again, and without it some Cicero evaluations had\nto build huge packages."),(0,n.kt)("li",{parentName:"ul"},"Started working on a flake-parts module for Tullia."),(0,n.kt)("li",{parentName:"ul"},"Started working on cutting down Tullia task build time by putting facts in\nJSON files."),(0,n.kt)("li",{parentName:"ul"},"Fixed running into kernel arg limit by reading tullia's DAG from a file"),(0,n.kt)("li",{parentName:"ul"},"Merged [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/tullia/pull/9"},"tullia-pull-9"),"] that fixes several issues related to error reporting.\nand escaping."),(0,n.kt)("li",{parentName:"ul"},"Added Mac builders in Cicero on CI-World."),(0,n.kt)("li",{parentName:"ul"},"Started work on Tullia invocation caching.")),(0,n.kt)("h3",{id:"spongix"},"Spongix"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A lot of progress on an SQlite backed version of Spongix, it already supports\nthe full HTTP binary cache protocol but still lacks comprehensive testing and\nsome tuning, as well as recursive lookups."),(0,n.kt)("li",{parentName:"ul"},"First steps in the implementation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"nix-daemon")," ",(0,n.kt)("inlineCode",{parentName:"li"},"ssh-ng")," protocol so\nSpongix can be used via SSH and we can get rid of basic auth.")),(0,n.kt)("h3",{id:"bugs"},"Bugs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Discovered Cicero bug where Nomad reschedules cause the Github commit status\nto get stuck in ",(0,n.kt)("inlineCode",{parentName:"li"},"pending")),(0,n.kt)("li",{parentName:"ul"},"Discovered Cicero race condition bug around concurrent transactions for\ncodependent actions."),(0,n.kt)("li",{parentName:"ul"},"Fixed tullia task order bug in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-addresses"},"cardano-addresses"),"]"),(0,n.kt)("li",{parentName:"ul"},"Diagnose Cicero action not triggered in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/abcirdc"},"abcirdc"),"]"),(0,n.kt)("li",{parentName:"ul"},"Fixed meta/description of the Tullia package in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/tullia/pull/7"},"tullia-pull-7"),"]"),(0,n.kt)("li",{parentName:"ul"},"Add Vault token loop alerts in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/bitte-cells/pull/40"},"bitte-cells-pull-40"),"]"),(0,n.kt)("li",{parentName:"ul"},"Ongoing investigation on recurring Patroni and nomad-follower issues related\nto token rotation.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9136968b.a5e820a1.js b/assets/js/9136968b.a5e820a1.js new file mode 100644 index 0000000000..d83d88c42e --- /dev/null +++ b/assets/js/9136968b.a5e820a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4986],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),c=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=c(r),d=n,h=s["".concat(u,".").concat(d)]||s[d]||m[d]||i;return r?a.createElement(h,l(l({ref:t},p),{},{components:r})):a.createElement(h,l({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,l=new Array(i);l[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[s]="string"==typeof e?e:n,l[1]=o;for(var c=2;c<i;c++)l[c]=r[c];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},99124:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-03-31-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-03-31-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-31-crypto.md",source:"@site/blog/2023-03-31-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-03-31T00:00:00.000Z",formattedDate:"March 31, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.105,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-03-31-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-04-05-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-03-31-goedel"}},u={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"Sidechains",id:"sidechains",level:3},{value:"MuSig2",id:"musig2",level:3}],p={toc:c},s="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Mithril: Started looking into full-node verifier"),(0,n.kt)("li",{parentName:"ul"},"cardano-base: BLS12-381's PR merged. Creating test-vectors for verifying basic pairing properties."),(0,n.kt)("li",{parentName:"ul"},"KES agent: Blockers overcome. Reaching a first MVP level of the KES-agent. "),(0,n.kt)("li",{parentName:"ul"},"Sidechains: Included BLS12-381 & JubJub to halo2curves"),(0,n.kt)("li",{parentName:"ul"},"MuSig2: Final modifs to C version.")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Started designing how a full-node verifier would work. Issue comming in the next couple of weeks. ")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"BLS12-381 branch merged ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/266"},"PR#266"),". "),(0,n.kt)("li",{parentName:"ul"},"Testing strategy for BLS bindings:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Test-vectors for Groth16, and simple BLS signatures ready."),(0,n.kt)("li",{parentName:"ul"},"Test-vectors with different library, and created by different engineer. ")))),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Resolved issues of circular dependency"),(0,n.kt)("li",{parentName:"ul"},"Got rid of separate DSIGN and DSIGNM, we now have DSIGN over mlocked keys, but the phantom type is the same. "),(0,n.kt)("li",{parentName:"ul"},"Opened a PR for raw bearer branch in ouroboros network ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4395"},"PR4395")),(0,n.kt)("li",{parentName:"ul"},"Resolved a bug where the agent node did not properly closed connections"),(0,n.kt)("li",{parentName:"ul"},"Updated version of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/70"},"IOSim")," allowed us to finish a first version of KES agent.")),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Included ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/iquerejeta/halo2curves/commit/1ccf987b772dcfaa3c1e3439a4a28f23fcf07c7a"},"BLS12-381")," curve to our branch of halo2curves"),(0,n.kt)("li",{parentName:"ul"},"Included ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/iquerejeta/halo2curves/commit/3f20edb2ed112733a0a0986b0a0386c1b9bc439f"},"JubJub")," to our branch of halo2curves ")),(0,n.kt)("h3",{id:"musig2"},"MuSig2"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Minor reorg ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/42"},"PR#42")),(0,n.kt)("li",{parentName:"ul"},"Started including fuzz testing for deserialisation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/43"},"PR#"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/913aac40.ab6cc179.js b/assets/js/913aac40.ab6cc179.js new file mode 100644 index 0000000000..d8b4a9c26d --- /dev/null +++ b/assets/js/913aac40.ab6cc179.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92846],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>d});var a=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,a)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?r(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){if(null==e)return{};var i,a,n=function(e,t){if(null==e)return{};var i,a,n={},r=Object.keys(e);for(a=0;a<r.length;a++)i=r[a],t.indexOf(i)>=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)i=r[a],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=a.createContext({}),h=function(e){var t=a.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},s=function(e){var t=h(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var i=e.components,n=e.mdxType,r=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=h(i),c=n,d=u["".concat(p,".").concat(c)]||u[c]||m[c]||r;return i?a.createElement(d,o(o({ref:t},s),{},{components:i})):a.createElement(d,o({ref:t},s))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=i.length,o=new Array(r);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var h=2;h<r;h++)o[h]=i[h];return a.createElement.apply(null,o)}return a.createElement.apply(null,i)}c.displayName="MDXCreateElement"},97344:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>l,toc:()=>h});var a=i(87462),n=(i(67294),i(3905));const r={title:"Mithril Team Update",slug:"2023-03-23-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-23-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-23-mithril.md",source:"@site/blog/2023-03-23-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-03-23T00:00:00.000Z",formattedDate:"March 23, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.615,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-03-23-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-03-23-db-sync"},nextItem:{title:"Consensus Team Update",permalink:"/2023-03-22-consensus"}},p={authorsImageUrls:[void 0]},h=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:h},u="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(u,(0,a.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team released a new ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2310.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2310.0"))," distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images."),(0,n.kt)("p",null,"Finally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano ",(0,n.kt)("inlineCode",{parentName:"p"},"mainnet")," and they have fixed some bugs. "),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the epic that implements eras behavior switch ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/707"},"#707"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed handling the API version switch at era transition ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/727"},"#727")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that implements a relational store in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/779"},"#779"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed on the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"stake_pool")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/787"},"#787")),(0,n.kt)("li",{parentName:"ul"},"Worked on the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"epoch_settings")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/813"},"#813")),(0,n.kt)("li",{parentName:"ul"},"Worked on the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"signed-entity-type")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/815"},"#815")),(0,n.kt)("li",{parentName:"ul"},"Completed the creation of a stake distribution service ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/799"},"#799")))),(0,n.kt)("li",{parentName:"ul"},"Completed the testing of Mithril with Cardano ",(0,n.kt)("inlineCode",{parentName:"li"},"mainnet")," network ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/777"},"#777")),(0,n.kt)("li",{parentName:"ul"},"Completed qualifying the computation of the stake distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/810"},"#810")),(0,n.kt)("li",{parentName:"ul"},"Completed the testing of the Docker client in the ",(0,n.kt)("inlineCode",{parentName:"li"},"Mithril Client multi-platform test")," workflow ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/794"},"#794")),(0,n.kt)("li",{parentName:"ul"},"Worked on bugs and optimizations:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Fixed a bug that made computation of the stake distribution occur multiple times during an epoch ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/804"},"#804")),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug that created deadlocks on the SQLite connection ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/807"},"#807")),(0,n.kt)("li",{parentName:"ul"},"Optimized the error message and the behavior of the signer node when KES keys have expired ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/820"},"#820")),(0,n.kt)("li",{parentName:"ul"},"Upgraded the infrastructure of the ",(0,n.kt)("inlineCode",{parentName:"li"},"testing-preview")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"pre-release-preview")," networks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/801"},"#801")),(0,n.kt)("li",{parentName:"ul"},"Re-genesis of the ",(0,n.kt)("inlineCode",{parentName:"li"},"testing-preview")," network ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/803"},"#803")),(0,n.kt)("li",{parentName:"ul"},"Re-genesis of the ",(0,n.kt)("inlineCode",{parentName:"li"},"pre-release-preview")," network ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/818"},"#818"))))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/91595845.355894eb.js b/assets/js/91595845.355894eb.js new file mode 100644 index 0000000000..d9663c5eba --- /dev/null +++ b/assets/js/91595845.355894eb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[51268],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function u(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),p=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),c=p(a),m=n,d=c["".concat(l,".").concat(m)]||c[m]||h[m]||o;return a?r.createElement(d,i(i({ref:t},s),{},{components:a})):r.createElement(d,i({ref:t},s))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=m;var u={};for(var l in t)hasOwnProperty.call(t,l)&&(u[l]=t[l]);u.originalType=e,u[c]="string"==typeof e?e:n,i[1]=u;for(var p=2;p<o;p++)i[p]=a[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},3573:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>u,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Crypto Team Update",slug:"2023-05-12-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},i=void 0,u={permalink:"/2023-05-12-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-12-crypto.md",source:"@site/blog/2023-05-12-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-05-12T00:00:00.000Z",formattedDate:"May 12, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.095,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-05-12-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-05-17-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-05-12-goedel"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"cardano-base",id:"cardano-base",level:3},{value:"Sidechains",id:"sidechains",level:3}],s={toc:p},c="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-base: Include final tests for BLS signature. Further adaptations for KES agent. "),(0,n.kt)("li",{parentName:"ul"},"Sidechains: Implement BLS and JubJub using upstream's macros to merge these curves in halo2curves.")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"RawBearer API in ouroboros-network-framework (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4395)"},"https://github.com/input-output-hk/ouroboros-network/pull/4395)"),"; this is needed for KES Agent. Review ongoing."),(0,n.kt)("li",{parentName:"ul"},"Facilitate BLS test vectors in Haskell test suite (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/408"},"https://github.com/input-output-hk/cardano-base/pull/408"),")"),(0,n.kt)("li",{parentName:"ul"},"Add the SignKeyWithKES type to cardano-base (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/389"},"https://github.com/input-output-hk/cardano-base/pull/389"),")"),(0,n.kt)("li",{parentName:"ul"},"Restructuring and simplifying the MLocking code in cardano-base (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/404"},"https://github.com/input-output-hk/cardano-base/pull/404"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/405"},"https://github.com/input-output-hk/cardano-base/pull/405"),"), getting rid of the purpose-built MonadMLock etc. typeclasses in the process"),(0,n.kt)("li",{parentName:"ul"},"Merging the DSIGN and DSIGNM APIs such that the same phantom type can be used to select both the pure and mlocked versions of the same DSIGN algorithm (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/411"},"https://github.com/input-output-hk/cardano-base/pull/411"),")"),(0,n.kt)("li",{parentName:"ul"},"Simplifying the KES API into a single KESAlgorithm typeclass, merging the KESSignAlgorithm class into it (this is possible due to the simplifications from #404). (Same PR as above: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/411"},"https://github.com/input-output-hk/cardano-base/pull/411"),")."),(0,n.kt)("li",{parentName:"ul"},"Update CIP-0381 with new plutus built-in functions, ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/506"},"#506"),". In particular hash_to_curve now takes as input a secon input for the Domain Separation Tag (DST), and we limit to have a maximu size of 255 bytes. ")),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Opened PR in halo2curves to include BLS12-381 and JubJub, ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/privacy-scaling-explorations/halo2curves/pull/38"},"#38")),(0,n.kt)("li",{parentName:"ul"},"Addition constraint over JubJub merged ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sidechains-zk/pull/10"},"#10"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/919e3b80.1112a7f6.js b/assets/js/919e3b80.1112a7f6.js new file mode 100644 index 0000000000..85b06bf04a --- /dev/null +++ b/assets/js/919e3b80.1112a7f6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20605],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(r),d=n,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||l;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:n,i[1]=o;for(var u=2;u<l;u++)i[u]=r[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},86247:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-06-19-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-06-19-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-19-ledger.md",source:"@site/blog/2024-06-19-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-06-19T00:00:00.000Z",formattedDate:"June 19, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.37,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-06-19-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-06-25-performance-and-tracing"},nextItem:{title:"Mithril Team Update",permalink:"/2024-06-19-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3}],s={toc:u},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Major milestone was reached this period. We've implemented\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/tree/master/CIP-0069"},"CIP-0069")," that improves\n",(0,n.kt)("inlineCode",{parentName:"p"},"PlutusV3")," functionality by making spending datums optional and enforcing all scripts to\nhave exactly one argument. This feature allows for spending scripts to be usable for other\npurposes, like minting for example."),(0,n.kt)("p",null,"Couple of important bugs have been fixed:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Script execution for certificates with the same plutus script did not execute correctly."),(0,n.kt)("li",{parentName:"ul"},"Prevent delegation to a non-existent pool.")),(0,n.kt)("p",null,"With this feature complete and a few bug fixes we were also able to mark Conway era and\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/tree/master/CIP-1694"},"CIP-1694")," as feature\ncomplete and ready for release. Naturally, testing of Conway era will continue all the way\ninto the hard fork."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4374"},"pull-4374")," - CIP-0069"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4394"},"pull-4394")," - Fix Certifying Redeemer issue"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4400"},"pull-4400")," - Check that the pool being delegated to exists for ",(0,n.kt)("inlineCode",{parentName:"li"},"ConwayDelegCert")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4409"},"pull-4409")," - Update to plutus-ledger-api-1.30")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4384"},"pull-4384")," - Re-enabled Full NewEpochstate test"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4397"},"pull-4397")," - Add a lens to HasSubState"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4399"},"pull-4399")," - New simple examples for maps"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4403"},"pull-4403")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Add ",(0,n.kt)("inlineCode",{parentName:"li"},"lookup_")," for maps"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4414"},"pull-4414")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": Hotfix failing test"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4411"},"pull-4411")," - ",(0,n.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": introduce a hook for naming variables")),(0,n.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4424"},"pull-4424")," - GHA: Downgrade the version of actions/upload-artifact"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4426"},"pull-4426")," - Take care of all compiler warnings for GHC-9.8"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4407"},"pull-4407")," - Change the default ghc version to 9.6.5"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4416"},"pull-4416")," - Bump urllib3 from 1.26.18 to 1.26.19 in /doc")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/91b05c51.f09a9607.js b/assets/js/91b05c51.f09a9607.js new file mode 100644 index 0000000000..6dceb74f77 --- /dev/null +++ b/assets/js/91b05c51.f09a9607.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17490],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||m[d]||o;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=r[c];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},34691:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Network Team Update",slug:"2022-12-12-network",authors:"coot",tags:["network","release"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-12-12-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-12-network.md",source:"@site/blog/2022-12-12-network.md",title:"Network Team Update",description:"High level summary",date:"2022-12-12T00:00:00.000Z",formattedDate:"December 12, 2022",tags:[{label:"network",permalink:"/tags/network"},{label:"release",permalink:"/tags/release"}],readingTime:.43,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-12-12-network",authors:"coot",tags:["network","release"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2022-12-14-performance-and-tracing"},nextItem:{title:"Crypto Team Update",permalink:"/2022-12-09-crypto"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},s="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"In last sprint the team focused on preparations for the conference talk at\n",(0,a.kt)("a",{parentName:"p",href:"https://sites.uclouvain.be/OPODIS2022/"},"OPODIS 2022"),". We also worked on preparations to publish ",(0,a.kt)("inlineCode",{parentName:"p"},"io-sim")," and related\npackages on Hackage (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/57"},"PR #57"),", ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/60"},"PR #60"),")."),(0,a.kt)("p",null,"We also started reviewing:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-network")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"cardano-ledger"),"\nrepositories for open-source readiness (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4218"},"PR #4128"),").")),(0,a.kt)("p",null,"We prepared a PR which changes how ",(0,a.kt)("inlineCode",{parentName:"p"},"node-to-node")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"node-to-client")," protocol\nversiones are serialised in ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," log (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4691"},"PR #4691"),")."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/91c8d0f7.cb4a0f12.js b/assets/js/91c8d0f7.cb4a0f12.js new file mode 100644 index 0000000000..e421f63795 --- /dev/null +++ b/assets/js/91c8d0f7.cb4a0f12.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15696],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),h=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=h(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=h(a),m=n,d=u["".concat(p,".").concat(m)]||u[m]||c[m]||o;return a?r.createElement(d,i(i({ref:t},s),{},{components:a})):r.createElement(d,i({ref:t},s))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,i[1]=l;for(var h=2;h<o;h++)i[h]=a[h];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},97250:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-03-01-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-03-01-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-01-hydra.md",source:"@site/blog/2024-03-01-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-03-01T00:00:00.000Z",formattedDate:"March 1, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.11,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-03-01-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-03-04-network"},nextItem:{title:"SRE Team Update",permalink:"/2024-03-01-sre"}},p={authorsImageUrls:[void 0]},h=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],s={toc:h},u="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This week the Hydra team, in addition to the usual maintenance and bug fixing, has been working on the preparation for the switch to Conway making the codebase less babbage specific. The team also conducted the monthly review meeting and published the monthly report on a new website (to keep those reports separate of main repository). They also added a basic UI to the Hydra explorer, switched to aggregating ",(0,n.kt)("inlineCode",{parentName:"p"},"sanchonet")," data and also fixed the smoke tests to work on ",(0,n.kt)("inlineCode",{parentName:"p"},"sanchonet"),". Finally, they continued progress the off-chain incremental commit protocol changes."),(0,n.kt)("h1",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Conducted the monthly review meeting, written and published the ",(0,n.kt)("a",{parentName:"li",href:"https://cardano-scaling.github.io/website/monthly/2024-02"},"monthly report")," on new website (just pushed to ",(0,n.kt)("a",{parentName:"li",href:"https://cardano-scaling.org"},"https://cardano-scaling.org"),")."),(0,n.kt)("li",{parentName:"ul"},"Added a basic UI to the ",(0,n.kt)("a",{parentName:"li",href:"http://explorer.hydra.family"},"Hydra explorer")," in ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1330"},"#","1331")," and switched to displaying ",(0,n.kt)("inlineCode",{parentName:"li"},"sanchonet")," data."),(0,n.kt)("li",{parentName:"ul"},"Fixed sanchonet smoke tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1323"},"#","1323"),", see Github ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/actions/workflows/smoke-test.yaml"},"Actions"),"."),(0,n.kt)("li",{parentName:"ul"},"Refactored and simplified the nix flake ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1317"},"#","1317"),"."),(0,n.kt)("li",{parentName:"ul"},"Updated to cardano-api-8.39 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1316"},"#","1316"),"."),(0,n.kt)("li",{parentName:"ul"},"Prepare future switch to Conway by making hydra-cardano-api less babbage specific in ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1326"},"#","1326"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1327"},"#","1327")," and ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1328"},"#","1328"),".")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete preparation for ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1178"},"#","1178"),' to switch to Conway (by "flipping" a switch)'),(0,n.kt)("li",{parentName:"ul"},"Complete off-chain incremental commit protocol changes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/199"},"#","199")," (and focus on the on-chain part after)."),(0,n.kt)("li",{parentName:"ul"},"Re-align with SundaeLabs on ",(0,n.kt)("inlineCode",{parentName:"li"},"EventSource")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"EventSink")," refactoring.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/91dad5e0.838c03b9.js b/assets/js/91dad5e0.838c03b9.js new file mode 100644 index 0000000000..714d6ef319 --- /dev/null +++ b/assets/js/91dad5e0.838c03b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54937],{51161:a=>{a.exports=JSON.parse('{"label":"mithril","permalink":"/tags/mithril","allTagsPath":"/tags","count":63}')}}]); \ No newline at end of file diff --git a/assets/js/91ed84ec.65b7c3af.js b/assets/js/91ed84ec.65b7c3af.js new file mode 100644 index 0000000000..e07d11aed1 --- /dev/null +++ b/assets/js/91ed84ec.65b7c3af.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[89193],{33495:e=>{e.exports=JSON.parse('{"permalink":"/page/18","page":18,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/17","nextPage":"/page/19","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/91f74828.b7874250.js b/assets/js/91f74828.b7874250.js new file mode 100644 index 0000000000..2d53500ae5 --- /dev/null +++ b/assets/js/91f74828.b7874250.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7152],{51679:e=>{e.exports=JSON.parse('{"permalink":"/tags/mithril/page/10","page":10,"postsPerPage":5,"totalPages":13,"totalCount":63,"previousPage":"/tags/mithril/page/9","nextPage":"/tags/mithril/page/11","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/922e2d6b.4bf457b1.js b/assets/js/922e2d6b.4bf457b1.js new file mode 100644 index 0000000000..621325d8f3 --- /dev/null +++ b/assets/js/922e2d6b.4bf457b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70756],{95983:e=>{e.exports=JSON.parse('{"permalink":"/page/68","page":68,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/67","nextPage":"/page/69","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/924be064.31aabe30.js b/assets/js/924be064.31aabe30.js new file mode 100644 index 0000000000..d8470f0151 --- /dev/null +++ b/assets/js/924be064.31aabe30.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21798],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=u(r),h=n,d=m["".concat(p,".").concat(h)]||m[h]||c[h]||i;return r?a.createElement(d,o(o({ref:t},s),{},{components:r})):a.createElement(d,o({ref:t},s))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<i;u++)o[u]=r[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},93825:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-01-06-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-06-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-06-crypto.md",source:"@site/blog/2023-01-06-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-01-06T00:00:00.000Z",formattedDate:"January 6, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.46,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-01-06-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-01-11-performance-and-tracing"},nextItem:{title:"Ledger Team Update",permalink:"/2023-01-05-ledger"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"MuSig2",id:"musig2",level:3},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"Cryptography handbook",id:"cryptography-handbook",level:3}],s={toc:u},m="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The four open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"MuSig2: The API features (error handling) has been merged. "),(0,n.kt)("li",{parentName:"ul"},"Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures."),(0,n.kt)("li",{parentName:"ul"},"cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. "),(0,n.kt)("li",{parentName:"ul"},"KES agent: We keep progressing with KES secure forgetting implementation.")),(0,n.kt)("p",null,"We also started working in the cryptography engineering handbook, which will be a cross team effort."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"musig2"},"MuSig2"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Merged the more granular error handling mechanism ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/33"},"PR#33"))),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes/commit/9de00835ed354cbb8d37838f6cee57930ea9fd3d"},"Version 0.1.1"),", which was published in ",(0,n.kt)("a",{parentName:"li",href:"https://crates.io/crates/kes-summed-ed25519"},"crates.io"),". "),(0,n.kt)("li",{parentName:"ul"},"Updated new KES format to mithril library ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/674"},"PR 674")),(0,n.kt)("li",{parentName:"ul"},"We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/531"},"PR 531")),(0,n.kt)("li",{parentName:"ul"},"We keep progressing on reducing the use of ",(0,n.kt)("inlineCode",{parentName:"li"},"transmute")," in ",(0,n.kt)("inlineCode",{parentName:"li"},"mithril-stm"),".")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Nothing new to report. Still working in merging these PRs. We are only missing nix merge of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/520"},"PR#520")," and the updates on VRF will be merged.")),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/255#issuecomment-1362601518"},"PR#255"),".")),(0,n.kt)("h3",{id:"cryptography-handbook"},"Cryptography handbook"),(0,n.kt)("p",null,"We have made available the (temporary) cryptography handbook ",(0,n.kt)("a",{parentName:"p",href:"https://input-output-hk.github.io/cryptography_spec/"},"https://input-output-hk.github.io/cryptography_spec/"),", and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/925feafa.a164bf89.js b/assets/js/925feafa.a164bf89.js new file mode 100644 index 0000000000..6f7efd6ae2 --- /dev/null +++ b/assets/js/925feafa.a164bf89.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[19773],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,a=function(e,t){if(null==e)return{};var r,i,a={},n=Object.keys(e);for(i=0;i<n.length;i++)r=n[i],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i<n.length;i++)r=n[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=i.createContext({}),s=function(e){var t=i.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=s(e.components);return i.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(r),c=a,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||n;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,o=new Array(n);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var s=2;s<n;s++)o[s]=r[s];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},67358:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>n,metadata:()=>l,toc:()=>s});var i=r(87462),a=(r(67294),r(3905));const n={title:"Mithril Team Update",slug:"2023-02-23-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-02-23-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-23-mithril.md",source:"@site/blog/2023-02-23-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-02-23T00:00:00.000Z",formattedDate:"February 23, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.47,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-02-23-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-02-24-hydra"},nextItem:{title:"Performance & tracing update",permalink:"/2023-02-23-performance-and-tracing"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The Mithril team released a new ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2306.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2306.0"))," distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes\u2019 CLI that allows generating and signing an era marker\u2019s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2306.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2306.0"))),(0,a.kt)("li",{parentName:"ul"},"Completed the epic that implements signer versions deployment monitoring ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/718"},"#718"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the implementation an event producer/consumer via channel ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/738"},"#738")),(0,a.kt)("li",{parentName:"ul"},"Completed the creation of a database and its configuration to save the events on the consumer side ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/740"},"#740")),(0,a.kt)("li",{parentName:"ul"},"Completed the creation of events and sending them on the channel on the producer side ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/741"},"#741")),(0,a.kt)("li",{parentName:"ul"},"Completed the creation of the signer registration event ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/742"},"#742")),(0,a.kt)("li",{parentName:"ul"},"Completed the creation a query to extract the node versions stakes distribution ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/743"},"#743")))),(0,a.kt)("li",{parentName:"ul"},"Worked on the epic that implements eras behavior switch ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/707"},"#707"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the loading of era reader adapters from config in the signer and the aggregator ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/732"},"#732")),(0,a.kt)("li",{parentName:"ul"},"Completed the implementation of an era cli command in the aggregator ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/755"},"#755")),(0,a.kt)("li",{parentName:"ul"},"Completed the implementation of a dynamic matrix of cases in CI end to end tests ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/760"},"#760")))),(0,a.kt)("li",{parentName:"ul"},"Fixed some bugs:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Fixed the unsupported ",(0,a.kt)("inlineCode",{parentName:"li"},"unixepoch()")," function ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/757"},"#757")),(0,a.kt)("li",{parentName:"ul"},"Fixed the problem that prevented some signers from signing on the ",(0,a.kt)("inlineCode",{parentName:"li"},"testing-preview")," network ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/730"},"#730")),(0,a.kt)("li",{parentName:"ul"},"Update SQLite version to ",(0,a.kt)("inlineCode",{parentName:"li"},"3.40")," in aggregator infrastructure ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/765"},"#765"))))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9291df2e.b529be05.js b/assets/js/9291df2e.b529be05.js new file mode 100644 index 0000000000..274724823e --- /dev/null +++ b/assets/js/9291df2e.b529be05.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[62302],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},32194:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-10-04-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-10-04-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-04-mithril.md",source:"@site/blog/2023-10-04-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-10-04T00:00:00.000Z",formattedDate:"October 4, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.15,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-10-04-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-10-04-consensus"},nextItem:{title:"Network Team Update",permalink:"/2023-10-02-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team updated a proposal for implementing Mithril in a light wallet and created a discussion ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/discussions/1273"},"on implementing Mithril in a light wallet")," to receive feedback and contributions from the community."),(0,n.kt)("p",null,"They also completed a proof of concept to run a Mithril client in a browser with WASM and worked on enhancing the explorer UI with SPO tickers displayed next to the pool IDs. Additionally, the team finalized a tool for benchmarking aggregator performance over a range of signer and client loads and for visualizing the results of these benchmarks."),(0,n.kt)("p",null,"Finally, the team added a root page to the aggregator endpoint, created a status page for the Mithril networks, and added a section about KES key rotation in the signer documentation for SPOs."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Created the discussion ",(0,n.kt)("strong",{parentName:"li"},"Implement Mithril in a light wallet")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/discussions/1273"},"#1273")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Run client in browser WASM PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1254"},"#1254")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Benchmark aggregator performances")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1220"},"#1220")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Add SPO tickers in explorer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1185"},"#1185")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Add a non ",(0,n.kt)("inlineCode",{parentName:"strong"},"404")," status code on the aggregator endpoint")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1103"},"#1103")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Use source attribute in errors")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1265"},"#1265")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a SPO checklist for KES keys update")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1267"},"#1267")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Configure status page and alerting")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1277"},"#1277")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Upgrade dependencies")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1274"},"#1274"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/92b15de5.d6551fc0.js b/assets/js/92b15de5.d6551fc0.js new file mode 100644 index 0000000000..540b46f3da --- /dev/null +++ b/assets/js/92b15de5.d6551fc0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8905],{39451:a=>{a.exports=JSON.parse('{"permalink":"/quarterly/tags/performance-tracing","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/92b56def.9435a7e4.js b/assets/js/92b56def.9435a7e4.js new file mode 100644 index 0000000000..bf8401c027 --- /dev/null +++ b/assets/js/92b56def.9435a7e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[45014],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(r),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return r?n.createElement(h,l(l({ref:t},p),{},{components:r})):n.createElement(h,l({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},54869:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Benchmarking -- Node 8.7.2",slug:"2023-12-performance-8.7.2",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},l=void 0,i={permalink:"/reports/2023-12-performance-8.7.2",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2023-12-performance-8.7.2.md",source:"@site/reports/2023-12-performance-8.7.2.md",title:"Benchmarking -- Node 8.7.2",description:"Setup",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"benchmarking-reports",permalink:"/reports/tags/benchmarking-reports"}],readingTime:2.76,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Benchmarking -- Node 8.7.2",slug:"2023-12-performance-8.7.2",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},nextItem:{title:"Benchmarking -- Node 8.9.0",permalink:"/reports/2024-03-performance-8.9.0"}},s={authorsImageUrls:[void 0]},c=[{value:"Setup",id:"setup",level:2},{value:"Observations",id:"observations",level:2},{value:"Resource Usage",id:"resource-usage",level:3},{value:"Forging Loop",id:"forging-loop",level:3},{value:"Peer propagation",id:"peer-propagation",level:3},{value:"End-to-end propagation",id:"end-to-end-propagation",level:3},{value:"Contact",id:"contact",level:2},{value:"Attachments",id:"attachments",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"setup"},"Setup"),(0,a.kt)("p",null,"As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.1.2")," - the last mainnet release"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.7.0-pre")," - as an intermediate reference point"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2")," - the next mainnet release")),(0,a.kt)("p",null,"For each version, we're gathering various metrics under 2 different workloads:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"value-only"),": Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"Plutus"),": Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.")),(0,a.kt)("p",null,"Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\nwere performed in the Babbage era."),(0,a.kt)("h2",{id:"observations"},"Observations"),(0,a.kt)("p",null,"These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet. "),(0,a.kt)("p",null,"The observations stated refer to the direct comparison between the ",(0,a.kt)("inlineCode",{parentName:"p"},"8.1.2")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2")," versions."),(0,a.kt)("h3",{id:"resource-usage"},"Resource Usage"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Plutus workload, having a lower overall absolute CPU load, exhibits an average increase of 27% in Process CPU usage. Value workload, having a higher overall absolute CPU load, exhibits a near-jitter increase of 1%."),(0,a.kt)("li",{parentName:"ol"},"Allocation rates increase by ~8.9MB/s (value workload) and ~12.6MB/s (Plutus workload)."),(0,a.kt)("li",{parentName:"ol"},"Heap sizes increase by 47% - 54%."),(0,a.kt)("li",{parentName:"ol"},"CPU 85% span duration shrinks by ~9.7 slots under value workload, and ~5.8 slots under Pluts workload.")),(0,a.kt)("p",null,"Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness."),(0,a.kt)("h3",{id:"forging-loop"},"Forging Loop"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Block Context Acquisition in the forging loop increases by ~10ms."),(0,a.kt)("li",{parentName:"ol"},"Mempool snapshotting shows an increase by 16ms under value workload; under Plutus workload, it increases by 3ms."),(0,a.kt)("li",{parentName:"ol"},"Ledger ticking improves slightly by 1-2ms.")),(0,a.kt)("p",null,"The metric ",(0,a.kt)("em",{parentName:"p"},"'Slot start to announced'")," (see in attachements) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header."),(0,a.kt)("h3",{id:"peer-propagation"},"Peer propagation"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Block fetch time increases for full blocks by 9%. For small blocks, it improves by 7%."),(0,a.kt)("li",{parentName:"ol"},"Time to resend a block after fetching increases by 8% for full blocks, whereas it improves by 2% for small blocks."),(0,a.kt)("li",{parentName:"ol"},"Block adoption by a peer takes 12% more time for a full block, but happens faster by 4% for a small block.")),(0,a.kt)("h3",{id:"end-to-end-propagation"},"End-to-end propagation"),(0,a.kt)("p",null,"This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes."),(0,a.kt)("p",null,"The metric exhibits an increase by ~10% across all centiles for full blocks, whereas it improves by 5-6% for small blocks in the higher (80th and above) centiles."),(0,a.kt)("h2",{id:"contact"},"Contact"),(0,a.kt)("p",null,"This is the first time we're publishing, to a wider audience, such benchmarking results. We are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. "),(0,a.kt)("p",null,"We are looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future."),(0,a.kt)("h2",{id:"attachments"},"Attachments"),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"value-only workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:r(84685).Z},"here"),"."),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"Plutus workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:r(89273).Z},"here"),"."),(0,a.kt)("p",null,"The relese benchmarks for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2")," were performed on tag ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.1-pre"),", which features identical ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," components."))}d.isMDXComponent=!0},89273:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/files/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.plutus-f38724e73290c55323955558c17f2590.pdf"},84685:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/files/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.value-only-fdb343a09234cd47578ec1ec47c4610e.pdf"}}]); \ No newline at end of file diff --git a/assets/js/92e62ade.03a5844c.js b/assets/js/92e62ade.03a5844c.js new file mode 100644 index 0000000000..f0a04c960f --- /dev/null +++ b/assets/js/92e62ade.03a5844c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[34425],{26319:e=>{e.exports=JSON.parse('{"permalink":"/tags/network/page/6","page":6,"postsPerPage":5,"totalPages":7,"totalCount":35,"previousPage":"/tags/network/page/5","nextPage":"/tags/network/page/7","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/9308fe55.d10b29d4.js b/assets/js/9308fe55.d10b29d4.js new file mode 100644 index 0000000000..c0d6628494 --- /dev/null +++ b/assets/js/9308fe55.d10b29d4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18355],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,g=m["".concat(p,".").concat(d)]||m[d]||c[d]||l;return r?n.createElement(g,i(i({ref:t},u),{},{components:r})):n.createElement(g,i({ref:t},u))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:a,i[1]=o;for(var s=2;s<l;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},42859:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-03-27-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-03-27-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-27-ledger.md",source:"@site/blog/2024-03-27-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-03-27T00:00:00.000Z",formattedDate:"March 27, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:.81,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-03-27-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-03-28-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-03-27-mithril"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements",id:"improvements",level:3},{value:"Releasing",id:"releasing",level:3}],u={toc:s},m="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We continued focusing on adding tests and improving the test frameworks, including the quality of the generated data used in tests."),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("h3",{id:"conway"},"Conway"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4205"},"pull-4205")," - Disable CC ratification when number of members is below ",(0,a.kt)("inlineCode",{parentName:"li"},"ppCommitteeMinSize")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4169"},"pull-4169")," - Add ",(0,a.kt)("inlineCode",{parentName:"li"},"GovInfoEvent")," and add event testing capabilities to ",(0,a.kt)("inlineCode",{parentName:"li"},"ImpTest")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4208"},"pull-4208")," - Remove missingScriptsSymmetricDifference")),(0,a.kt)("h3",{id:"testing"},"Testing"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4121"},"pull-4121")," - Newconstraints phase3, Add newtypes: Size, SizeSpec and class Sized."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4197"},"pull-4197")," - add unsafeMkProposals to be used for testing"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4200"},"pull-4200")," - Fix ",(0,a.kt)("inlineCode",{parentName:"li"},"prop_GOV")," so that it runs again"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4216"},"pull-4216")," - improve the ",(0,a.kt)("inlineCode",{parentName:"li"},"GOV")," generator to generate more interesting signals")),(0,a.kt)("h3",{id:"improvements"},"Improvements"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4195"},"pull-4195")," - Fix Haddocks CI"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4175"},"pull-4175")," - Set the ",(0,a.kt)("inlineCode",{parentName:"li"},"column-limit")," in ",(0,a.kt)("inlineCode",{parentName:"li"},"fourmolu")," config"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4210"},"pull-4210")," - Remove small steps test folder")),(0,a.kt)("h3",{id:"releasing"},"Releasing"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4206"},"pull-4206")," - Update hackage flake")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/932bb1e6.9458e665.js b/assets/js/932bb1e6.9458e665.js new file mode 100644 index 0000000000..71c4b287c1 --- /dev/null +++ b/assets/js/932bb1e6.9458e665.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65153],{85144:a=>{a.exports=JSON.parse('{"label":"db-sync","permalink":"/tags/db-sync","allTagsPath":"/tags","count":16}')}}]); \ No newline at end of file diff --git a/assets/js/933ecdda.f69df260.js b/assets/js/933ecdda.f69df260.js new file mode 100644 index 0000000000..d8b505d955 --- /dev/null +++ b/assets/js/933ecdda.f69df260.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[38248],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(a),d=n,h=s["".concat(c,".").concat(d)]||s[d]||m[d]||o;return a?r.createElement(h,i(i({ref:t},u),{},{components:a})):r.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var p=2;p<o;p++)i[p]=a[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},20214:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-12-30-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2023-12-30-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-30-node-cli-api.md",source:"@site/blog/2023-12-30-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-12-30T00:00:00.000Z",formattedDate:"December 30, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.97,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-12-30-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-01-05-sre"},nextItem:{title:"Hydra Team Update",permalink:"/2023-12-22-hydra"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],u={toc:p},s="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2023-12-09---2023-12-30"},"2023-12-09 - 2023-12-30"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Migrated reposotiries to IntersectMBO."),(0,n.kt)("li",{parentName:"ul"},"Improved era handling on cardano-api. Instead of enumerating every possible era, we use two constructors:\n'CurrentEra' and 'UpcomingEra'. This design simplifies the handling of eras, especially for ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-api")," consumers who are primarily concerned with the current mainnet era and the next era for an upcoming hardfork."),(0,n.kt)("li",{parentName:"ul"},"Cleaning-up the ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-cli"),", in particular to the babbage era commands where some Conway options had spilled. ")),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/535"},"Use AnyShelleyBasedEra in ScriptWitnessErrorReferenceScriptsNotSupportedInEra")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/523"},"[--output-format json|--output-format json] format becomes [--output-yaml|--output-json]")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/521"},"governance vote view: use ",(0,n.kt)("inlineCode",{parentName:"a"},"--output-format"),", like other commands, instead of ",(0,n.kt)("inlineCode",{parentName:"a"},"--yaml"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/520"},"fix: invalid options on cardano-cli babbage transaction build and build-raw")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/515"},"legacy query: remove constitution-hash option")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/514"},"Make ",(0,n.kt)("inlineCode",{parentName:"a"},"query pool-state")," default to returning information on all pools"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/414"},"Expose CurrentEra and UpcomingEra pattern synonyms")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/412"},"update cname for github pages")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/411"},"Fix links killed by GitHub migration")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/410"},"Move renderSafeHashAsHex from cardano-node")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/409"},"Upgrade hedgehog extras")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/405"},"chap: migrate to chap.intersectmbo.org")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/402"},"Era handling"))),(0,n.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5581"},"chap: migrate to intersectmbo.org"))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5583"},"cardano-testnet 8.7.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5581"},"chap: migrate to intersectmbo.org"))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9348fe5e.fd3e1049.js b/assets/js/9348fe5e.fd3e1049.js new file mode 100644 index 0000000000..7f7c596054 --- /dev/null +++ b/assets/js/9348fe5e.fd3e1049.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1938],{26108:a=>{a.exports=JSON.parse('{"label":"cli-api","permalink":"/tags/cli-api","allTagsPath":"/tags","count":39}')}}]); \ No newline at end of file diff --git a/assets/js/934a8f8d.eaca409f.js b/assets/js/934a8f8d.eaca409f.js new file mode 100644 index 0000000000..4baa2431cf --- /dev/null +++ b/assets/js/934a8f8d.eaca409f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[36370],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=p(n),d=a,h=c["".concat(s,".").concat(d)]||c[d]||m[d]||o;return n?r.createElement(h,l(l({ref:t},u),{},{components:n})):r.createElement(h,l({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[c]="string"==typeof e?e:a,l[1]=i;for(var p=2;p<o;p++)l[p]=n[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},81779:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-11-09-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-11-09-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-09-db-sync.md",source:"@site/blog/2023-11-09-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-11-09T00:00:00.000Z",formattedDate:"November 9, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.485,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-11-09-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-11-10-sre"},nextItem:{title:"Ledger Team Update",permalink:"/2023-11-08-ledger"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],u={toc:p},c="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We have created new tag ",(0,a.kt)("inlineCode",{parentName:"p"},"sancho-2-2-0"),", which integrates missing Conway feautures and some minor fix\ntags ",(0,a.kt)("inlineCode",{parentName:"p"},"sancho-2-1-0"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"sancho-2-0-1"),".\nWe have completed the initial implementation for the bootstrap instance objective."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add a new ",(0,a.kt)("inlineCode",{parentName:"li"},"--disable-gov")," flag which disabled Conway ferautures\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1558"},"#1558")),(0,a.kt)("li",{parentName:"ul"},"Fix of the committee key size\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1544"},"#1544")),(0,a.kt)("li",{parentName:"ul"},"Workaround a ledger issue with unregistered pools\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1542"},"#1542")),(0,a.kt)("li",{parentName:"ul"},"Implemented a mechanism that loads the UTxO from the ledger resulting is way faster syncs\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1539"},"#1539")),(0,a.kt)("li",{parentName:"ul"},"Rename offline to offchain\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1533"},"#1533")),(0,a.kt)("li",{parentName:"ul"},"Transfer existing tests to Conway era\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1529"},"#1529"),(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1547"},"#1547"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.ce3dd627.js b/assets/js/935f2afb.ce3dd627.js new file mode 100644 index 0000000000..4574f9bebb --- /dev/null +++ b/assets/js/935f2afb.ce3dd627.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80053],{1109:a=>{a.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"defaultSidebar":[{"type":"link","label":"Tutorial Intro","href":"/docs/intro","docId":"intro"},{"type":"category","label":"Tutorial - Basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a Page","href":"/docs/tutorial-basics/create-a-page","docId":"tutorial-basics/create-a-page"},{"type":"link","label":"Create a Document","href":"/docs/tutorial-basics/create-a-document","docId":"tutorial-basics/create-a-document"},{"type":"link","label":"Create a Blog Post","href":"/docs/tutorial-basics/create-a-blog-post","docId":"tutorial-basics/create-a-blog-post"},{"type":"link","label":"Markdown Features","href":"/docs/tutorial-basics/markdown-features","docId":"tutorial-basics/markdown-features"},{"type":"link","label":"Deploy your site","href":"/docs/tutorial-basics/deploy-your-site","docId":"tutorial-basics/deploy-your-site"},{"type":"link","label":"Congratulations!","href":"/docs/tutorial-basics/congratulations","docId":"tutorial-basics/congratulations"}],"href":"/docs/category/tutorial---basics"},{"type":"category","label":"Tutorial - Extras","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manage Docs Versions","href":"/docs/tutorial-extras/manage-docs-versions","docId":"tutorial-extras/manage-docs-versions"},{"type":"link","label":"Translate your site","href":"/docs/tutorial-extras/translate-your-site","docId":"tutorial-extras/translate-your-site"}],"href":"/docs/category/tutorial---extras"}]},"docs":{"intro":{"id":"intro","title":"Tutorial Intro","description":"Let\'s discover Docusaurus in less than 5 minutes.","sidebar":"defaultSidebar"},"tutorial-basics/congratulations":{"id":"tutorial-basics/congratulations","title":"Congratulations!","description":"You have just learned the basics of Docusaurus and made some changes to the initial template.","sidebar":"defaultSidebar"},"tutorial-basics/create-a-blog-post":{"id":"tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...","sidebar":"defaultSidebar"},"tutorial-basics/create-a-document":{"id":"tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:","sidebar":"defaultSidebar"},"tutorial-basics/create-a-page":{"id":"tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:","sidebar":"defaultSidebar"},"tutorial-basics/deploy-your-site":{"id":"tutorial-basics/deploy-your-site","title":"Deploy your site","description":"Docusaurus is a static-site-generator (also called Jamstack).","sidebar":"defaultSidebar"},"tutorial-basics/markdown-features":{"id":"tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features.","sidebar":"defaultSidebar"},"tutorial-extras/manage-docs-versions":{"id":"tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs.","sidebar":"defaultSidebar"},"tutorial-extras/translate-your-site":{"id":"tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French.","sidebar":"defaultSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/93729337.ee9b9678.js b/assets/js/93729337.ee9b9678.js new file mode 100644 index 0000000000..47ec503f6d --- /dev/null +++ b/assets/js/93729337.ee9b9678.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[85845],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>y});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=u(r),d=a,y=p["".concat(c,".").concat(d)]||p[d]||m[d]||o;return r?n.createElement(y,l(l({ref:t},s),{},{components:r})):n.createElement(y,l({ref:t},s))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var u=2;u<o;u++)l[u]=r[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},82597:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={title:"DB-sync Team Update",slug:"2023-01-14-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-01-14-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-14-db-sync.md",source:"@site/blog/2023-01-14-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-01-14T00:00:00.000Z",formattedDate:"January 14, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.36,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-01-14-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-01-19-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2023-01-13-hydra"}},c={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],s={toc:u},p="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"After spending the last months on improving DBSync and releasing ",(0,a.kt)("inlineCode",{parentName:"p"},"13.1.0.0")," the DBSync team focused\nthe last weeks on integrating upstream changes and tech debt. This includes integrating CHaP, the\nnew leger core and ghc-9.2.4"),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Integrate CHaP\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1331"},"#1331")),(0,a.kt)("li",{parentName:"ul"},"Integrate new ledger core ",(0,a.kt)("inlineCode",{parentName:"li"},"0.1.1.1")," and ghc-9.2\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1332"},"#1332")),(0,a.kt)("li",{parentName:"ul"},"Technical debt: Add code formatter fourmolu\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1334"},"#1334")),(0,a.kt)("li",{parentName:"ul"},"Preparing and tracking Conway and UTxO integration")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/93b15a8c.ca7e6de2.js b/assets/js/93b15a8c.ca7e6de2.js new file mode 100644 index 0000000000..9a2f7313fe --- /dev/null +++ b/assets/js/93b15a8c.ca7e6de2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[14582],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(r),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return r?n.createElement(h,i(i({ref:t},p),{},{components:r})):n.createElement(h,i({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=r[c];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},34989:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Crypto Team Update",slug:"2022-10-27-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-10-27-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-27-crypto.md",source:"@site/blog/2022-10-27-crypto.md",title:"Crypto Team Update",description:"High level overview",date:"2022-10-27T00:00:00.000Z",formattedDate:"October 27, 2022",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.095,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2022-10-27-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2022-08-12-sre"},nextItem:{title:"Hydra Team Update",permalink:"/2022-10-21-hydra"}},s={authorsImageUrls:[void 0]},c=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"SECP built-ins",id:"secp-built-ins",level:3},{value:"KES agent",id:"kes-agent",level:3}],p={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to\nmeeting the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/issues/315"},"acceptance criteria")," in cardano-base,\nwhich lacks some editorial comments on the style of dQuandrant's PR, the inclusion of one additional test, and\nwe are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution,\nbut also progressing on the implementation."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"secp-built-ins"},"SECP built-ins"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"(missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/313"},"PR 313")),(0,a.kt)("li",{parentName:"ul"},"CIP-0049 was addressed in the editors meeting, and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/250"},"PR 250")," was merged"),(0,a.kt)("li",{parentName:"ul"},"The unit-tests ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/320"},"PR 320")," is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.")),(0,a.kt)("h3",{id:"kes-agent"},"KES agent"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them."),(0,a.kt)("li",{parentName:"ul"},"We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s).")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/94133299.628e2443.js b/assets/js/94133299.628e2443.js new file mode 100644 index 0000000000..0440f04d55 --- /dev/null +++ b/assets/js/94133299.628e2443.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48275],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var u=n.createContext({}),d=function(e){var t=n.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=d(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,u=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=d(a),h=r,m=p["".concat(u,".").concat(h)]||p[h]||c[h]||o;return a?n.createElement(m,i(i({ref:t},s),{},{components:a})):n.createElement(m,i({ref:t},s))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[p]="string"==typeof e?e:r,i[1]=l;for(var d=2;d<o;d++)i[d]=a[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},87687:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var n=a(87462),r=(a(67294),a(3905));const o={title:"Ledger Team Update",slug:"2022-09-30-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-09-30-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-30-ledger.md",source:"@site/blog/2022-09-30-ledger.md",title:"Ledger Team Update",description:"Ledger Update",date:"2022-09-30T00:00:00.000Z",formattedDate:"September 30, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.285,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-09-30-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-10-04-node-cli-api"},nextItem:{title:"Network Team Update",permalink:"/2022-09-27-network"}},u={authorsImageUrls:[void 0]},d=[{value:"Ledger Update",id:"ledger-update",level:2},{value:"Technical debt issues completed",id:"technical-debt-issues-completed",level:3},{value:"Technical debt in progress",id:"technical-debt-in-progress",level:3}],s={toc:d},p="wrapper";function c(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"ledger-update"},"Ledger Update"),(0,r.kt)("p",null,"We have continued focusing nearly entirely on addressing technical debt.\nA lot of design work has begun for the next ledger era,\nbut we do not yet have anything concrete to share."),(0,r.kt)("h3",{id:"technical-debt-issues-completed"},"Technical debt issues completed"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/1676"},"issue-1676"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/2992"},"pull-2992"),"] We have finally removed the ledger dependency on the\n",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-prelude")," package. It was barely used in the ledger repository, and it added a dependency\nthat we did not want to maintain. It was a bit difficult to remove, and we had\nto coordinate removing it from cardano-base.\nA lot ended up going into ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/2992"},"pull-2992"),", due to the coordination effort, and we ended\nup updating Plutus as well.\nThis means that we've now also made a lot of progress on the problematic cost model serialization\nissues described in ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/2902"},"issue-2902"),".\nIn particular, after we resolve ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3014"},"issue-3014"),", we will not have to wait an epoch before\nreleasing a cost model for a new version of Plutus, as we had to do for the Vasil HF."),(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3046"},"issue-3046"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3055"},"pull-3055"),"] We moved a module that is now only used in Byron to a Byron package."),(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3047"},"issue-3047"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3054"},"pull-3054"),"] We improved the interface to the ",(0,r.kt)("inlineCode",{parentName:"li"},"Value")," (multi-asset) type."),(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3044"},"pull-3044"),"] We debugged and fixed a tricky compilation issue. Certain kinds of field updates\nwere adding approximately 20 minutes to our compile time!"),(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/2932"},"issue-2932"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3036"},"pull-3036"),"] As a part of our ongoing re-organization of the codebase, we\nhave added a ",(0,r.kt)("inlineCode",{parentName:"li"},"Cardano.Ledger.[Era].Core")," module to each ledger era that has a TxBody class.\nMost classes defined in the era should go in this new module.\nWe also re-export the ",(0,r.kt)("inlineCode",{parentName:"li"},"Cardno.Ledger.Core")," module and the previous ",(0,r.kt)("inlineCode",{parentName:"li"},"Cardano.Ledger.[Era].Core"),"\nmodules from each era.")),(0,r.kt)("h3",{id:"technical-debt-in-progress"},"Technical debt in progress"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3034"},"issue-3034"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3035"},"issue-3035"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/issues/4421"},"node-issue-4421"),"] We are continuing to write benchmarks to understand exactly where\nall the time is being spent on executing the ",(0,r.kt)("inlineCode",{parentName:"li"},"TICKF")," transition.\nThe consolidation of the per-stake-credential stake distribution to the per-stake-pool\ndistribution does seem to account for a large amount of time (near a second as written, which we\nhave down to about half a second with some optimizations),\nbut this does not account for everything.\nApplying the reward update may also be a big contributing factor."),(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3033"},"pull-3033"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3038"},"pull-3038"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3041"},"pull-3041"),"] A separate team is working on upgrading all the\ncardano-node repositories to work with ghc 9.2.4. We have been helping out with this effort."),(0,r.kt)("li",{parentName:"ul"},"The nix scripts used to build our new\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/formal-ledger-specifications"},"formal ledger model"),"\ndo not work consistently for everyone, and we have been working on fixing these issues."),(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3014"},"issue-3014"),"] We are still working on adding a versioning scheme to all of the ledger\nserializers.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/941d55d9.6a383eb2.js b/assets/js/941d55d9.6a383eb2.js new file mode 100644 index 0000000000..24ec49034d --- /dev/null +++ b/assets/js/941d55d9.6a383eb2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20170],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},u),{},{components:n})):r.createElement(h,s({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var c=2;c<o;c++)s[c]=n[c];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},15524:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-02-07-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-02-07-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-07-consensus.md",source:"@site/blog/2024-02-07-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-02-07T00:00:00.000Z",formattedDate:"February 7, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.315,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-02-07-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-02-09-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-02-07-mithril"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This week we managed to integrate in the node the Consensus version of the UTxO-HD prototype that features the second version of the Ledger DB API.\nWe also ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/927"},"changed the epoch structure for Conway"),", made progress towards the Bootstrap State Machine and Peras planning.\nOn the support front, we are investigating the impact of snapshots on missed leadership checks."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9423f7cf.61d96388.js b/assets/js/9423f7cf.61d96388.js new file mode 100644 index 0000000000..ce0c54c183 --- /dev/null +++ b/assets/js/9423f7cf.61d96388.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[60539],{58858:a=>{a.exports=JSON.parse('{"permalink":"/tags/cli-api/page/8","page":8,"postsPerPage":5,"totalPages":8,"totalCount":39,"previousPage":"/tags/cli-api/page/7","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/9440f007.dd37fb5b.js b/assets/js/9440f007.dd37fb5b.js new file mode 100644 index 0000000000..47c4da67ce --- /dev/null +++ b/assets/js/9440f007.dd37fb5b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[98254],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,o,a=function(e,t){if(null==e)return{};var n,o,a={},r=Object.keys(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),c=p(n),h=a,m=c["".concat(l,".").concat(h)]||c[h]||u[h]||r;return n?o.createElement(m,i(i({ref:t},d),{},{components:n})):o.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:a,i[1]=s;for(var p=2;p<r;p++)i[p]=n[p];return o.createElement.apply(null,i)}return o.createElement.apply(null,n)}h.displayName="MDXCreateElement"},59255:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var o=n(87462),a=(n(67294),n(3905));const r={title:"Consensus Team Update",slug:"2022-12-14-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2022-12-14-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-14-consensus.md",source:"@site/blog/2022-12-14-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2022-12-14T00:00:00.000Z",formattedDate:"December 14, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.995,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-12-14-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2022-12-15-mithril"},nextItem:{title:"DB-sync Team Update",permalink:"/2022-12-14-db-sync"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD prototype",id:"utxo-hd-prototype",level:3},{value:"Backing store property tests",id:"backing-store-property-tests",level:4},{value:"LSM tree implementation",id:"lsm-tree-implementation",level:3},{value:"Genesis",id:"genesis",level:3},{value:"New VRF and KES crypto integration",id:"new-vrf-and-kes-crypto-integration",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3}],d={toc:p},c="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,o.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the past two weeks, the Consensus team finalized the QSM tests for the\nbacking store and Mempool on the UTxO-HD branch with important discoveries\nregarding parallel QSM testing. We also worked with the Ledger team to envisage\nthe modifications that are required in Ledger and Consensus to accommodate the\nchanges in the crypto VRF and KES. The ",(0,a.kt)("inlineCode",{parentName:"p"},"db-analyser")," now supports bechmarking\nthe ledger operations, which will allow us to identify, debug, and profile\npotential performance problems. We drafted a document that defines how to manage\nthe versions of Consensus-related packages. The top level documentation of\n",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," now features a description of the consensus components and\nprovides a hyperlinked map to the modules documentation."),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD prototype"),(0,a.kt)("p",null,"Whereas we had passing sequential state-machine tests for the mempool, the\nparallel case proved to be more challenging than we thought. The operation of\nadding a list of transactions to the mempool is not atomic and, as a result,\nwhen adding a list of transactions, transactions from other processes can be\nadded in between. The mempool implementation handles this correctly, however\nthis required us to ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4076"},"redesign")," the parallel model we had to take\nthe lack of atomicity into account."),(0,a.kt)("h4",{id:"backing-store-property-tests"},"Backing store property tests"),(0,a.kt)("p",null,"We finished refactoring the backing store property tests. The second review\nround is ongoing."),(0,a.kt)("h3",{id:"lsm-tree-implementation"},"LSM tree implementation"),(0,a.kt)("p",null,"We are working on benchmarking (in terms of time and number of IO operations)\nfetching/looking up data from disk."),(0,a.kt)("h3",{id:"genesis"},"Genesis"),(0,a.kt)("p",null,"We worked on the design of a mechanism to prevent a DoS attack on our Genesis\ndesign related to rollbacks. This was arguably the biggest outstanding question."),(0,a.kt)("p",null,"During the discussions around Genesis, we noticed a design boundary that nicely\ndelineates a fundamental component. We almost have a full Haskell prototype of\nit. It will be very nicely self-contained, perhaps even usable in the ultimate\nimplementation!"),(0,a.kt)("h3",{id:"new-vrf-and-kes-crypto-integration"},"New VRF and KES crypto integration"),(0,a.kt)("p",null,"We collaborated with the Ledger team on preparing the ledger state and crypto\ntypes to avoid huge allocation on the epoch boundary when changing aspects of\nthe crypto that will only manifest in headers, not in the ledger states."),(0,a.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,a.kt)("p",null,"We merged the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4014"},"pull-request")," that adds a support to ",(0,a.kt)("inlineCode",{parentName:"p"},"db-analyser")," for\nbenchmarking ledger operations. This will allow us to identify, debug, and\nprofile potential performance problems. The benchmark focus on the main 5 ledger\noperations that are involved in chain syncing, block forging, and block\nvalidation, namely:"),(0,a.kt)("ol",{start:0},(0,a.kt)("li",{parentName:"ol"},"Forecast."),(0,a.kt)("li",{parentName:"ol"},"Header tick."),(0,a.kt)("li",{parentName:"ol"},"Header application."),(0,a.kt)("li",{parentName:"ol"},"Block tick."),(0,a.kt)("li",{parentName:"ol"},"Block application.")),(0,a.kt)("p",null,"The following figure shows a plot of the benchmarking results for the first 65\nmillion blocks (approximately) of the Cardano chain. The thin yellow lines under\nthe x-axis show the epoch boundaries, whereas the thick yellow lines correspond\nto the era transitions."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(2666).Z,width:"1600",height:"800"})),(0,a.kt)("p",null,"As we can see in this figure, era and epoch boundaries require more computation\ntime. The ledger team are aware of this problem, and we are working to improve\nthis situation."),(0,a.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,a.kt)("p",null,"We ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4207"},"drafted a document")," motivating and defining how Consensus (and\npossibly other core teams) will/should manage our package versions. This\npull-request garnered many great discussions from our team members and other\nteams too: Sebastian Nagel, Arnaud Bailly, Michael Peyton-Jones, Ziyang Liu, et\nal. We want to thank you all for your input, and we found this discussion very\nenlightening!"),(0,a.kt)("p",null,"We merged the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4197"},"pull request")," that adds an overview of consensus to\nthe ",(0,a.kt)("a",{parentName:"p",href:"https://ouroboros-network.cardano.intersectmbo.org/"},"top level\ndocumentation")," of\nouroboros-network. This overview describes the consensus components and adds a\nhyperlinked map to the modules documentation."))}u.isMDXComponent=!0},2666:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/2022-12-14-ledger-ops-benchmark-c46be3db45ff5480ed104e0d520711a6.png"}}]); \ No newline at end of file diff --git a/assets/js/94780c38.3fc4a3f6.js b/assets/js/94780c38.3fc4a3f6.js new file mode 100644 index 0000000000..b9ffc6763b --- /dev/null +++ b/assets/js/94780c38.3fc4a3f6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58925],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>y});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=u(r),d=a,y=p["".concat(c,".").concat(d)]||p[d]||m[d]||o;return r?n.createElement(y,l(l({ref:t},s),{},{components:r})):n.createElement(y,l({ref:t},s))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var u=2;u<o;u++)l[u]=r[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},99178:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={title:"DB-sync Team Update",slug:"2023-01-14-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-01-14-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-14-db-sync.md",source:"@site/blog/2023-01-14-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-01-14T00:00:00.000Z",formattedDate:"January 14, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.36,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-01-14-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-01-19-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2023-01-13-hydra"}},c={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],s={toc:u},p="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"After spending the last months on improving DBSync and releasing ",(0,a.kt)("inlineCode",{parentName:"p"},"13.1.0.0")," the DBSync team focused\nthe last weeks on integrating upstream changes and tech debt. This includes integrating CHaP, the\nnew leger core and ghc-9.2.4"),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Integrate CHaP\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1331"},"#1331")),(0,a.kt)("li",{parentName:"ul"},"Integrate new ledger core ",(0,a.kt)("inlineCode",{parentName:"li"},"0.1.1.1")," and ghc-9.2\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1332"},"#1332")),(0,a.kt)("li",{parentName:"ul"},"Technical debt: Add code formatter fourmolu\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1334"},"#1334")),(0,a.kt)("li",{parentName:"ul"},"Preparing and tracking Conway and UTxO integration")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/94a907c9.26ec1a11.js b/assets/js/94a907c9.26ec1a11.js new file mode 100644 index 0000000000..5bf12fb4ae --- /dev/null +++ b/assets/js/94a907c9.26ec1a11.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23941],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>g});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var p=a.createContext({}),c=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=c(e.components);return a.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(n),u=r,g=s["".concat(p,".").concat(u)]||s[u]||d[u]||o;return n?a.createElement(g,l(l({ref:t},m),{},{components:n})):a.createElement(g,l({ref:t},m))}));function g(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:r,l[1]=i;for(var c=2;c<o;c++)l[c]=n[c];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},44751:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));const o={title:"Goedel Team Update",slug:"2023-03-03-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-03-03-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-03-goedel.md",source:"@site/blog/2023-03-03-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-03-03T00:00:00.000Z",formattedDate:"March 3, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.815,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-03-03-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-03-03-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-03-03-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(s,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"This sprint the team has been working on drafts of two papers and one\ntechnical report, improving the deltaQ tutorial, consulting on\nperformance design, and the Djed paper has been accepted for\npublication."),(0,r.kt)("h2",{id:"details"},"Details"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Preparing draft of DeltaQSD algebra paper for FORTE 2023")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Extending the technical report on which the above paper is based")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Consulting with an external company on performance engineering of Plutus contracts")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Planning improvements and collecting material for the deltaQ\ntutorial based on experience with systems that manage risk at\nmultiple timescales")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Preparing sections on the communication language and idempontency\nlaws for draft paper about verifying design refinements for\ndistributed system design")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Studying Cardano chain sync protocol")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'"Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin\nProtocol" has been accepted for publication at IEEE ICBC 2023'))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/94ad958d.bf15de97.js b/assets/js/94ad958d.bf15de97.js new file mode 100644 index 0000000000..f9cb9ab455 --- /dev/null +++ b/assets/js/94ad958d.bf15de97.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[59088],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=n,d=p["".concat(s,".").concat(m)]||p[m]||h[m]||i;return a?r.createElement(d,o(o({ref:t},u),{},{components:a})):r.createElement(d,o({ref:t},u))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var c=2;c<i;c++)o[c]=a[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},69996:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-05-03-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-05-03-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-03.md",source:"@site/blog/2024-05-03.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-05-03T00:00:00.000Z",formattedDate:"May 3, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.67,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-05-03-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-05-06-network"},nextItem:{title:"Consensus Team Update",permalink:"/2024-05-01-consensus"}},s={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],u={toc:c},p="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team has been working on refactoring and detecting network protocol version mismatches. They have also merged the /commit endpoint changes including a follow-up fix about fee calculation. Besides this, they applied minor workflow fixes by adding docker images to nix checks and disabling mithril integration testing on ",(0,n.kt)("inlineCode",{parentName:"p"},"preview")," (until mithril ",(0,n.kt)("inlineCode",{parentName:"p"},"2418")," is released)."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Refactor connectivity and detect network protocol version mismatches ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1381"},"#","1381")),(0,n.kt)("li",{parentName:"ul"},"Merged and completed ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1350"},"#","1350"),", including a follow-up fix about fee calculation"),(0,n.kt)("li",{parentName:"ul"},"Add docker images to nix checks"),(0,n.kt)("li",{parentName:"ul"},"Disable mithril-client testing on Preview")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Restructure documentation including a how to about streaming plugins ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1325"},"#","1325")),(0,n.kt)("li",{parentName:"ul"},"Add arm64 docker images as requested in ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1404"},"#","1404")),(0,n.kt)("li",{parentName:"ul"},"Release 0.17.0")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/94c6d911.c5326d17.js b/assets/js/94c6d911.c5326d17.js new file mode 100644 index 0000000000..a12a7d3593 --- /dev/null +++ b/assets/js/94c6d911.c5326d17.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[44501],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(r),m=a,f=d["".concat(l,".").concat(m)]||d[m]||u[m]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},14130:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Performance & tracing update",slug:"2022-11-16-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,c={permalink:"/2022-11-16-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-16-performance-and-tracing.md",source:"@site/blog/2022-11-16-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2022-11-16T00:00:00.000Z",formattedDate:"November 16, 2022",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.635,hasTruncateMarker:!1,authors:[{name:"Serge Kosyrev",title:"Performance and Tracing Team Lead",url:"https://github.com/deepfire",imageURL:"https://github.com/deepfire.png",key:"deepfire"}],frontMatter:{title:"Performance & tracing update",slug:"2022-11-16-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-11-16-node-cli-api"},nextItem:{title:"Crypto Team Update",permalink:"/2022-11-11-crypto"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Performance",id:"performance",level:2},{value:"Tracing",id:"tracing",level:2},{value:"Infrastructure",id:"infrastructure",level:2}],p={toc:s},d="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"P2P performance investigation is ongoing, in support of the networking team."),(0,a.kt)("li",{parentName:"ol"},"SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support."),(0,a.kt)("li",{parentName:"ol"},"Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing."),(0,a.kt)("li",{parentName:"ol"},"On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started."),(0,a.kt)("li",{parentName:"ol"},"We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.")),(0,a.kt)("h2",{id:"performance"},"Performance"),(0,a.kt)("p",null,"We are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes."),(0,a.kt)("h2",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"We ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis."),(0,a.kt)("h2",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"The first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends."),(0,a.kt)("p",null,"We designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing."),(0,a.kt)("p",null,"A number of smaller workbench, data analysis & reporting improvements have been made."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/94d5ff15.aa3a830c.js b/assets/js/94d5ff15.aa3a830c.js new file mode 100644 index 0000000000..4f88fdf80f --- /dev/null +++ b/assets/js/94d5ff15.aa3a830c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[99137],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=i,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},57051:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-04-24-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-04-24-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-24-mithril.md",source:"@site/blog/2024-04-24-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-04-24T00:00:00.000Z",formattedDate:"April 24, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.22,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-04-24-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-04-24-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2024-04-19-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, most of the Mithril team attended the ",(0,i.kt)("a",{parentName:"p",href:"https://buidl.2024.cardano.org/"},"Cardano Buidler Fest #1")," in Toulouse, France. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet")," by compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges. The team identified the source of an issue preventing proper memory release during the signing/proving of a large set of transactions and developed a fix for it. Additionally, they completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network."),(0,i.kt)("p",null,"Finally, the team implemented a configurable feature for test networks to log unparsable blocks instead of panicking and investigated some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril relay broadcasts signer registrations with P2P PubSub")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1587"},"#1587")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Store Block Range Merkle roots in signer and aggregator databases")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1633"},"#1633")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Stream import of Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1646"},"#1646")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Memory leak in Cardano transactions signature/proof")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1629"},"#1629")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," supports retrieving the Chain Point of the tip of the chain")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1589"},"#1589")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Add section for manual setup of squid in SPO guide")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1610"},"#1610")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/95f12e12.d6fac154.js b/assets/js/95f12e12.d6fac154.js new file mode 100644 index 0000000000..1a9a029c35 --- /dev/null +++ b/assets/js/95f12e12.d6fac154.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[84727],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=u(n),h=r,m=d["".concat(l,".").concat(h)]||d[h]||c[h]||o;return n?a.createElement(m,i(i({ref:t},p),{},{components:n})):a.createElement(m,i({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:r,i[1]=s;for(var u=2;u<o;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}h.displayName="MDXCreateElement"},67975:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Quarterly Update",slug:"2023-01-18-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/quarterly/2023-01-18-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-01-18-consensus.md",source:"@site/quarterly/2023-01-18-consensus.md",title:"Consensus Quarterly Update",description:"Consensus Quarterly Update",date:"2023-01-18T00:00:00.000Z",formattedDate:"January 18, 2023",tags:[{label:"consensus",permalink:"/quarterly/tags/consensus"}],readingTime:3.205,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Quarterly Update",slug:"2023-01-18-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/quarterly/2023-04-03-ledger"},nextItem:{title:"Network Quarterly Update",permalink:"/quarterly/2023-01-13-network"}},l={authorsImageUrls:[void 0]},u=[{value:"Consensus Quarterly Update",id:"consensus-quarterly-update",level:2},{value:"2022-12 - 2023-01",id:"2022-12---2023-01",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"UTxO HD",id:"utxo-hd",level:4},{value:"Genesis",id:"genesis",level:4},{value:"Support",id:"support",level:4},{value:"Conway era",id:"conway-era",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"UTxO HD",id:"utxo-hd-1",level:4},{value:"Genesis",id:"genesis-1",level:4},{value:"Support",id:"support-1",level:4},{value:"Tech debt",id:"tech-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration-1",level:4},{value:"Risks",id:"risks",level:3},{value:"UTxO HD",id:"utxo-hd-2",level:4}],p={toc:u},d="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"consensus-quarterly-update"},"Consensus Quarterly Update"),(0,r.kt)("h2",{id:"2022-12---2023-01"},"2022-12 - 2023-01"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("p",null,"The prototype is feature complete and thoroughly tested at the consensus level.\nIn particular, we invested a lot of time in writing property-test for the\nmempool, and other crucial new parts of the prototype. Now we are ready to run\nintegration tests and system-level benchmarks."),(0,r.kt)("h4",{id:"genesis"},"Genesis"),(0,r.kt)("p",null,"We identified and fixed a slowdown in cross-era forecasting that was inhibiting\nour efforts to benchmark the ChainSync Jumping prototype. This resulted in a 7%\nspeedup in full sync times in the baseline."),(0,r.kt)("p",null,"We also started prototyping a self-contained implementation of the Genesis\ndynamics (in particular of the parts intentionally not part of the ChainSync\nJumping prototype) that furthered our understanding of subtleties and edge\ncases."),(0,r.kt)("h4",{id:"support"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We worked on designing integration of new VRF and KES crypto into consensus.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Crypto")," class was split into two parts: ",(0,r.kt)("inlineCode",{parentName:"li"},"Crypto")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"HeaderCrypto"),"."),(0,r.kt)("li",{parentName:"ul"},"With the Ledger team's help, we refactored ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-ledger")," to use a proxy\ntype for VRF.")))),(0,r.kt)("h4",{id:"conway-era"},"Conway era"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"PR went through its second review round. It is about to be merged, but it got\ndelayed due to people's availability during Christmas break.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We improved the capabilities of our ",(0,r.kt)("inlineCode",{parentName:"li"},"io-sim")," library, which is key for testing\nand simulating Cardano components."),(0,r.kt)("li",{parentName:"ul"},"We removed thunks from epoch translations in the ledger, which is important\nfor reducing memory consumption of the Cardano node.")),(0,r.kt)("h4",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We added a tutorial on how to instantiate the Consensus layer to run custom\nledgers. This should be a valuable resource to people looking to roll their\nown custom blockchain (either for commercial or research purposes)."),(0,r.kt)("li",{parentName:"ul"},"We added an overview of consensus to the ",(0,r.kt)("a",{parentName:"li",href:"https://ouroboros-network.cardano.intersectmbo.org/"},"top level\ndocumentation")," of\nouroboros-network. This overview describes the consensus components and adds a\nhyperlinked map to the modules documentation.")),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"utxo-hd-1"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Evaluate the extensibility of the prototype. Moving the UTxO to disk is only\nthe first step towards reducing the memory requirements of Cardano node, and\nensuring its long term sustainability. In the future, we plan on moving other\nlarge maps, such as delegation maps. The prototype should be able to\naccommodate these changes without any major modifications."),(0,r.kt)("li",{parentName:"ul"},"Start the integration with other downstream components, such as the wallet and\ndb-sync. The idea is to identify and address any potential pain points that\nmight arise during this integration."),(0,r.kt)("li",{parentName:"ul"},"Run integration tests and system-level benchmarks.")),(0,r.kt)("h4",{id:"genesis-1"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Finish benchmarking and tuning the fast-path ChainSync Jumping prototype"),(0,r.kt)("li",{parentName:"ul"},"Expand and optimize the self-contained implementation of the Disconnect Rule\n(including density comparisons and the LoE)"),(0,r.kt)("li",{parentName:"ul"},"Develop documentation and smoke tests for these components."),(0,r.kt)("li",{parentName:"ul"},"Start modifying the ChainSync Client for the LoP and LoR.")),(0,r.kt)("h4",{id:"support-1"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Help the Network team with diagnosing performance regression in block\nproduction.")),(0,r.kt)("h4",{id:"tech-debt"},"Tech debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Fix property-test failures concerning iterators (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3999"},"#3999")," and\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4183"},"#4183"),").")),(0,r.kt)("h4",{id:"fostering-collaboration-1"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Finish ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4145"},"mapping consensus"),".")),(0,r.kt)("h3",{id:"risks"},"Risks"),(0,r.kt)("h4",{id:"utxo-hd-2"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Moving other parts of the ledger state to disk might require a major redesign\nof the prototype. For instance, if it turns out that the epoch change rules\nrequire access to the ",(0,r.kt)("em",{parentName:"li"},"full")," ledger state. If this is the case, we might\naccept this risk and do the redesign after the initial release of UTxO-HD."),(0,r.kt)("li",{parentName:"ul"},"Integration with downstream clients might require more work than we\nanticipate."),(0,r.kt)("li",{parentName:"ul"},"Access to the benchmarking's team time and resources."),(0,r.kt)("li",{parentName:"ul"},"Benchmarking results might show significant performance degradation, which\nwill require additional work if such performance degradation is not accepted\nby other stakeholders."),(0,r.kt)("li",{parentName:"ul"},"The prototype's performance might not be accepted by other stakeholders. Here\nwe need to clearly communicate that this is necessary to ensure that as the\nblockchain size grows, the node can operate within reasonable memory\nconstraints.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/961dc6d0.5dc4794a.js b/assets/js/961dc6d0.5dc4794a.js new file mode 100644 index 0000000000..a8ffb1c6e6 --- /dev/null +++ b/assets/js/961dc6d0.5dc4794a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67122],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>g});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(n),u=a,g=p["".concat(c,".").concat(u)]||p[u]||m[u]||o;return n?r.createElement(g,i(i({ref:t},d),{},{components:n})):r.createElement(g,i({ref:t},d))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var s=2;s<o;s++)i[s]=n[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},29772:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & Tracing Update",slug:"2024-01-31-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-01-31-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-31-performance-and-tracing.md",source:"@site/blog/2024-01-31-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-01-31T00:00:00.000Z",formattedDate:"January 31, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.88,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-01-31-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-01-31-node-cli-api"},nextItem:{title:"DB Sync Team Update",permalink:"/2024-01-30-db-sync"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],d={toc:s},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: GHC 9.6.3 benchmarks for node ",(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2")," have been performed."),(0,a.kt)("li",{parentName:"ul"},"Development: Additional features for our reporting pipeline, while simultaneously reducing dependency footprint."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Implementation for ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," to work on handles instead of files; work on New Tracing Quickstart document has begun."),(0,a.kt)("li",{parentName:"ul"},"Nomad cluster: We're preparing an upgrade to the latest Nomad version.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed a full set of GHC 9.6.3 benchmarks for node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2"),". For recommending GHC9.6 as a default build platform for ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," - from a performance perspective - we observe only one residual issue. As a way to\naddress this, we've decided to create a reproduction benchmark targeting the affected component."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Our reporting pipeline will be expanded to support a wider range of rendering formats, as well as report templates. As the pipeline is part of our workbench - and thus gets downloaded and built when entering the workbench shell - it's\ngood practice to keep a small dependency footprint. When reworking the pipeline, we aim to simultaneously reduce dependencies."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"So far, ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," has internally been using files, or file names, for the purpose of logging trace messages it receives via forwarding. This is simple, but induces quite some overhead at runtime: files have to be opened and closed for each message.\nUsing and managing open file handles inside ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," does remove that overhead, but unsurprisingly introduces some complexity into the application code. Currently, we're working on implementing that change. "),(0,a.kt)("p",null,"Furthermore, we're working on a Quickstart document for the new tracing system, with end users as its intended audience. It will contain recommended production use setup(s), and how to efficiently configure and run them step by step. Additionally, it\nwill provide a brief, but comprehensive overview over the features at the user's disposal."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"On the Nomad cluster, we've experienced undesired system behaviour when the heartbeat between the Nomad server and a client is interrupted temporarily - although the Nomad job itself is still 100% functional. A Nomad\nupgrade to the latest version promises to fix that, but it turn comes with other issues. We're currently working on adapting our automation and deployment around those known issues, before we can eventually\napply the upgrade."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9625caab.44ad02aa.js b/assets/js/9625caab.44ad02aa.js new file mode 100644 index 0000000000..7d1ed24aef --- /dev/null +++ b/assets/js/9625caab.44ad02aa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[69574],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,f=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(f,i(i({ref:t},c),{},{components:r})):n.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},54063:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"SRE Q4 2023 Update",slug:"2023-Q4-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2023-Q4-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q4-sre.md",source:"@site/quarterly/2023-Q4-sre.md",title:"SRE Q4 2023 Update",description:"2023-10 - 2023-12",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"sre",permalink:"/quarterly/tags/sre"}],readingTime:.915,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q4 2023 Update",slug:"2023-Q4-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Q4 2023 Update",permalink:"/quarterly/2023-Q4-performance-and-tracing"},nextItem:{title:"SRE Q1 2024 Update",permalink:"/quarterly/2024-Q1-sre"}},p={authorsImageUrls:[void 0]},s=[{value:"2023-10 - 2023-12",id:"2023-10---2023-12",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],c={toc:s},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"2023-10---2023-12"},"2023-10 - 2023-12"),(0,a.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,a.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments,\nmain SRE achievements for this quarter include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Cardano-parts support was added for cardano-db-sync, cardano-smash,\ncardano-faucet, cardano-metadata, grafana monitoring along with a number of\nother features")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Completed migration of testnets from cardano-world to the cardano-playground cluster")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Completed migration of the cardano book from cardano-world to the cardano-playground\ncluster")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Completed migration of pools from cardano-ops to the cardano-mainnet cluster")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Creation of a mainnet p2p bootstrap cluster")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Cardano sanchonet environment respins during the quarter for testing new\ncardano-node pre-release Conway era functionality")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"All environments were upgraded to cardano-node 8.7.2 or 8.7.3 by the end of\nthe quarter")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Completion of a govtool backend deployment for Voltaire chain testing")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Creation of a cardano-monitoring repository,\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-monitoring"},"cardano-monitoring"),":"),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"A new repository enabling agile deployment of EC2 monitoring servers,\ncompatible with OpenTofu grafana and mimir providers")))),(0,a.kt)("h3",{id:"next-steps"},"Next steps"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Scale down the mainnet non-p2p legacy cluster")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Add deployment support for new network services, such as Mithril")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Continue cardano-parts and operations improvements"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9668e24b.08421470.js b/assets/js/9668e24b.08421470.js new file mode 100644 index 0000000000..bca17a3c27 --- /dev/null +++ b/assets/js/9668e24b.08421470.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[68044],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=i,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},14624:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-09-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-20-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-20-mithril.md",source:"@site/blog/2023-09-20-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-09-20T00:00:00.000Z",formattedDate:"September 20, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.935,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-09-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-09-20-consensus"},nextItem:{title:"Goedel Team Update",permalink:"/2023-09-15-goedel"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team has completed the refactoring of the terraform deployment workflows in GitHub actions, and the implementation of snapshot compression parameters in the deployments. They kept working on the refactoring and standardization of the errors in the Mithril nodes. The team also completed the implementation of Cloudflare protection for the aggregator infrastructure and started working on its deployment and activation in the Mithril networks. Additionally, they worked on recording download statistics on the aggregator which will be used to produce usage reports. "),(0,i.kt)("p",null,"Finally, they kept working on the aggregator performance bottleneck that occurs with high client traffic and started creating a new distribution."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add snapshot compression parameters in infrastructure deployments")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1200"},"#1200")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add Cloudflare protection of infrastructure")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/986"},"#986")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Record statistics about the downloaded snapshot in the aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1127"},"#1127")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Error refactoring")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/798"},"#798")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Activate Cloudflare protection of infrastructure")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1230"},"#1230")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Release new ",(0,i.kt)("inlineCode",{parentName:"strong"},"2337")," distribution")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1219"},"#1219")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Upgrade dependencies")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1238"},"#1238"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/96ff3c40.cefe4c96.js b/assets/js/96ff3c40.cefe4c96.js new file mode 100644 index 0000000000..fd701829b6 --- /dev/null +++ b/assets/js/96ff3c40.cefe4c96.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65856],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>c});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),l=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),m=l(n),d=r,c=m["".concat(s,".").concat(d)]||m[d]||h[d]||i;return n?o.createElement(c,a(a({ref:t},u),{},{components:n})):o.createElement(c,a({ref:t},u))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=d;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[m]="string"==typeof e?e:r,a[1]=p;for(var l=2;l<i;l++)a[l]=n[l];return o.createElement.apply(null,a)}return o.createElement.apply(null,n)}d.displayName="MDXCreateElement"},84611:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>p,toc:()=>l});var o=n(87462),r=(n(67294),n(3905));const i={title:"Network Team Update",slug:"2023-12-08-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},a=void 0,p={permalink:"/2023-12-08-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08-network.md",source:"@site/blog/2023-12-08-network.md",title:"Network Team Update",description:"High-level overview of sprint 49 & sprint 50",date:"2023-12-08T00:00:00.000Z",formattedDate:"December 8, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.445,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-12-08-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-12-08-goedel"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-12-08-node-cli-api"}},s={authorsImageUrls:[void 0]},l=[{value:"High-level overview of sprint 49 & sprint 50",id:"high-level-overview-of-sprint-49--sprint-50",level:2},{value:"Fixed PeerSelection bug",id:"fixed-peerselection-bug",level:3},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"Tx-Submission",id:"tx-submission",level:3},{value:"Peer Sharing",id:"peer-sharing",level:2},{value:"IOSim",id:"iosim",level:3},{value:"Cardano-Ping",id:"cardano-ping",level:3},{value:"Technical Debt",id:"technical-debt",level:3}],u={toc:l},m="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(m,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-overview-of-sprint-49--sprint-50"},"High-level overview of ",(0,r.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+49%22"},"sprint 49")," & ",(0,r.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+50%22"},"sprint 50")),(0,r.kt)("h3",{id:"fixed-peerselection-bug"},"Fixed PeerSelection bug"),(0,r.kt)("p",null,"Karl Knutsson (",(0,r.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"Cardano Foundation (CF)"),") found a bug in\nthe ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.7.0")," version used on the Sancho Net which was fixed in ",(0,r.kt)("inlineCode",{parentName:"p"},"8.7.1"),".\nIt resulted in a node not being able to reconnect to an upstream peer once it\nwas demoted by an asynchronous exception. This bug would be caught by Q&A in\na mainet release, but for testnet releases, Q&A test suite is not used. We also\ndeveloped a test which covers the bug in the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", we also identified\na missing ",(0,r.kt)("inlineCode",{parentName:"p"},"PeerSelection")," test which we need to port to our simulation network.\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4734"},"ouroboros-network#4734"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4665"},"ouroboros-network#4665"),"."),(0,r.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,r.kt)("p",null,"Still under review, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4555"},"ouroboros-network#4555"),". The consensus team is now\nimplementing the API we need for bootstrap peers. Once consensus API is implemented we will integrate changes in an experimental branch of\n",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node"),"."),(0,r.kt)("h3",{id:"tx-submission"},"Tx-Submission"),(0,r.kt)("p",null,"We started working on a new implementation of the tx-submission application. No\n",(0,r.kt)("inlineCode",{parentName:"p"},"tx-submission")," protocol changes are foreseen, but we want to be able to\ndownload each ",(0,r.kt)("inlineCode",{parentName:"p"},"tx")," from just one upstream peer and share the results between\ndifferent connections. We want to distribute the bandwidth between multiple\nclients. We also think that this work will prepare us for the future\nOuroboros-Leios changes, which will contain various versions of ",(0,r.kt)("inlineCode",{parentName:"p"},"tx-submission"),"\nlike mini-protocols. See ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4701"},"ouroboros-network#4701"),"."),(0,r.kt)("h2",{id:"peer-sharing"},"Peer Sharing"),(0,r.kt)("p",null,"Various fixes and improvements were implemented:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4725"},"ouroboros-network#4725")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"disabled peer sharing with initiator-only nodes: currently it's not\npossible to get peers from initiator-only nodes (edge nodes, e.g.\nwallets). In the future, we might change this, which will require running\na server-side of the ",(0,r.kt)("inlineCode",{parentName:"li"},"peer-sharing")," protocol by such nodes. See\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4726"},"ouroboros-network#4726"),"."),(0,r.kt)("li",{parentName:"ul"},"fixed ",(0,r.kt)("inlineCode",{parentName:"li"},"peer-sharing")," codec"),(0,r.kt)("li",{parentName:"ul"},"fixed a handshake bug which returned a wrong peer-sharing option"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4728"},"ouroboros-network#4728")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"disabled ",(0,r.kt)("inlineCode",{parentName:"li"},"peer-sharing")," for ",(0,r.kt)("inlineCode",{parentName:"li"},"NodeToNodeV_11")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"NodeToNodeV_12")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Karl Knutsson (",(0,r.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") has been working on additional improvements, e.g. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4735"},"ouroboros-network#4735")))),(0,r.kt)("p",null,"With these fixes, Karl Knutsson (",(0,r.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") was able to see that two peers on the mainnet\ncan discover themselves through ",(0,r.kt)("inlineCode",{parentName:"p"},"peer-sharing")," and keep being mutually useful\nand thus the connection surviving ",(0,r.kt)("inlineCode",{parentName:"p"},"outbound-governor")," churn events."),(0,r.kt)("h3",{id:"iosim"},"IOSim"),(0,r.kt)("p",null,"We improved the memory footprint of ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSim")," in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/126"},"io-sim#126"),", see\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4722"},"ouroboros-network#4721")," for heap profile improvements on large test cases."),(0,r.kt)("p",null,"We are working on optimising the memory footprint of ",(0,r.kt)("inlineCode",{parentName:"p"},"IOSimPOR"),". We are\nreimplementing ",(0,r.kt)("inlineCode",{parentName:"p"},"VectorClocks")," using a trie, instead of a map which leads to\nsignificant improvements."),(0,r.kt)("h3",{id:"cardano-ping"},"Cardano-Ping"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-0.2.0.10")," was released to ",(0,r.kt)("inlineCode",{parentName:"p"},"CHaP"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4746"},"ouroboros-network#4746"),". This\nversion exports more APIs which turned out to be useful in ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," test\nsuite, see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5536"},"cardano-node#5536"),"."),(0,r.kt)("h3",{id:"technical-debt"},"Technical Debt"),(0,r.kt)("p",null,"We addressed some small tech-debt issues in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4722"},"ouroboros-network#4722"),":"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"fixed some typos"),(0,r.kt)("li",{parentName:"ul"},"using ",(0,r.kt)("inlineCode",{parentName:"li"},"bracket")," instead of ",(0,r.kt)("inlineCode",{parentName:"li"},"onException")," in ",(0,r.kt)("inlineCode",{parentName:"li"},"withSnocket")),(0,r.kt)("li",{parentName:"ul"},"improved haddocks"),(0,r.kt)("li",{parentName:"ul"},"organised ",(0,r.kt)("inlineCode",{parentName:"li"},"TracePeerSelection")," constructors")),(0,r.kt)("p",null,"We improved the memory footprint of some of our tests in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4722"},"ouroboros-network#4721"),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/97407dee.ec4bc500.js b/assets/js/97407dee.ec4bc500.js new file mode 100644 index 0000000000..7d906fabc4 --- /dev/null +++ b/assets/js/97407dee.ec4bc500.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[47263],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=u(n),h=r,m=c["".concat(l,".").concat(h)]||c[h]||d[h]||o;return n?a.createElement(m,s(s({ref:t},p),{},{components:n})):a.createElement(m,s({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=h;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:r,s[1]=i;for(var u=2;u<o;u++)s[u]=n[u];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}h.displayName="MDXCreateElement"},53615:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Quarterly Update",slug:"2023-04-25-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/quarterly/2023-04-25-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-04-25-consensus.md",source:"@site/quarterly/2023-04-25-consensus.md",title:"Consensus Quarterly Update",description:"Consensus Quarterly Update",date:"2023-04-25T00:00:00.000Z",formattedDate:"April 25, 2023",tags:[{label:"consensus",permalink:"/quarterly/tags/consensus"}],readingTime:2.3,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Quarterly Update",slug:"2023-04-25-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"SRE Q2 2024 Update",permalink:"/quarterly/2024-Q2-sre"},nextItem:{title:"Network Q1 2023 Update",permalink:"/quarterly/2023-04-04-network"}},l={authorsImageUrls:[void 0]},u=[{value:"Consensus Quarterly Update",id:"consensus-quarterly-update",level:2},{value:"2023-01 - 2023-03",id:"2023-01---2023-03",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"UTxO HD",id:"utxo-hd",level:4},{value:"Genesis",id:"genesis",level:4},{value:"Support",id:"support",level:4},{value:"Conway era",id:"conway-era",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"UTxO HD",id:"utxo-hd-1",level:4},{value:"Genesis",id:"genesis-1",level:4},{value:"Support",id:"support-1",level:4},{value:"Tech debt",id:"tech-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration-1",level:4}],p={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"consensus-quarterly-update"},"Consensus Quarterly Update"),(0,r.kt)("h2",{id:"2023-01---2023-03"},"2023-01 - 2023-03"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We finished the testing activities for the prototype, which involved adding\nnew tests, and fixing and enabling temporarily disabled tests."),(0,r.kt)("li",{parentName:"ul"},"We spent a substantial amount of effort refactoring and cleaning the\nprototype."),(0,r.kt)("li",{parentName:"ul"},"We audited the UTxO HD prototype to make sure it can accommodate the migration\nof other tables (eg stake-keys registration) from memory to disk. The result\nof the audit was positive."),(0,r.kt)("li",{parentName:"ul"},"We ran ad-hoc benchmarks for reading keys and flushing values to disk. No\nunexpected costs found."),(0,r.kt)("li",{parentName:"ul"},"We ran the first system level benchmarks. The performance regressions reported\nwere due to an unrealistic snapshotting rate. We need to re-run them again\nafter we design a more fine grained locking mechanism.")),(0,r.kt)("h4",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We elaborated a roadmap of the remaining work for Genesis."),(0,r.kt)("li",{parentName:"ul"},"We presented the design to the IOG Researchers and PNSol on February 20. The\ndesign was well received. We updated the Genesis design with the researcher's\nfeedback.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We plugged the new DoS vector identified during the aforementioned\npresentation."))),(0,r.kt)("li",{parentName:"ul"},"We developed a generator for adversarial leader schedules that satisfy key\nOuroboros properties, which will be used to test the Genesis design.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The generator enables use of smaller Ouroboros parameters, which makes\nextrema more likely and counterxamples easier interpret."))),(0,r.kt)("li",{parentName:"ul"},"We wrote up the latest design iteration."),(0,r.kt)("li",{parentName:"ul"},"We continued benchmarking the Chain Sync Jumping prototype. In particular:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We debugged the prototype's performance regression, and unmasked the\nactual cause by patching our initial theory (bad queuing behavior)"),(0,r.kt)("li",{parentName:"ul"},"We identified and validated the actual cause (a pathological case in\nBlockFetch tiebreaker).")))),(0,r.kt)("h4",{id:"support"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We created two new tools. One for dumping CBOR encoded blocks to JSON. Ahother\nto serve a local immutable DB.")),(0,r.kt)("h4",{id:"conway-era"},"Conway era"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We integrated the Conway era into consensus.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug with followers, which was discovered by property tests."),(0,r.kt)("li",{parentName:"ul"},"We developed a DSL for specifying and running ChainDB test cases."),(0,r.kt)("li",{parentName:"ul"},"We fixed failing tests with iterators."),(0,r.kt)("li",{parentName:"ul"},"We created micro-benchmarks for adding transactions to the mempool.")),(0,r.kt)("h4",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We released a new technical documentation site for consensus."),(0,r.kt)("li",{parentName:"ul"},"We factored out several packages to external repositories. Some of this work\noriginated in the UTxO HD workstream.")),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"utxo-hd-1"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/28"},"https://github.com/input-output-hk/ouroboros-consensus/issues/28"))),(0,r.kt)("h4",{id:"genesis-1"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/33"},"https://github.com/input-output-hk/ouroboros-consensus/issues/33")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/32"},"https://github.com/input-output-hk/ouroboros-consensus/issues/32")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/31"},"https://github.com/input-output-hk/ouroboros-consensus/issues/31"))),(0,r.kt)("h4",{id:"support-1"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Design Consensus side of hardfork-enactment in the Voltaire phase\n(",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4180"},"#4180"),")."),(0,r.kt)("li",{parentName:"ul"},"Estimate the number of file descriptors Consensus needs\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/20"},"#20"),".")),(0,r.kt)("h4",{id:"tech-debt"},"Tech debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Identify Quantitative Timeliness Agreements (QTAs) metrics that we can define\nfor consensus. Pick one and implement benchmarks for it.")),(0,r.kt)("h4",{id:"fostering-collaboration-1"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Onboard a new team member.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/97cbe67b.039ea848.js b/assets/js/97cbe67b.039ea848.js new file mode 100644 index 0000000000..a11e186ec3 --- /dev/null +++ b/assets/js/97cbe67b.039ea848.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48221],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>c});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?a(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):a(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){if(null==e)return{};var i,r,n=function(e,t){if(null==e)return{};var i,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),h=u(i),d=n,c=h["".concat(p,".").concat(d)]||h[d]||m[d]||a;return i?r.createElement(c,o(o({ref:t},s),{},{components:i})):r.createElement(c,o({ref:t},s))}));function c(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,o=new Array(a);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<a;u++)o[u]=i[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,i)}d.displayName="MDXCreateElement"},70314:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-04-06-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-04-06-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-06-mithril.md",source:"@site/blog/2023-04-06-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-04-06T00:00:00.000Z",formattedDate:"April 6, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.075,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-04-06-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-04-07-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-04-05-consensus"}},p={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:u},h="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(h,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team released a new ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2313.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2313.0"))," distribution that implements minor improvements and bug fixes. They continued implementing the migration of the aggregator stores to a relational design. They finished adaptating and migrating the certificate, epoch settings, signed entity type, signer registration and open message stores. Additionally, they completed the refactoring of the dependency injector of the aggregator and simplified its multi-signer in order for it to sign multiple concurrent messages."),(0,n.kt)("p",null,"Finally, the team has worked on designing the new architecture of the network to support signing multiple types of data and upgraded the version of the Cardano node used in the Mithril testnets and devnet to ",(0,n.kt)("inlineCode",{parentName:"p"},"1.35.6"),"."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2313.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2313.0"))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that implements a relational store in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/779"},"#779"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"epoch_settings")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/813"},"#813")),(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"signed-entity-type")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/815"},"#815")),(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"certificate")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/817"},"#817")),(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"open_message")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/827"},"#827")),(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"signer_registration")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/828"},"#828")))),(0,n.kt)("li",{parentName:"ul"},"Completed the refactoring of the dependency injection of the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/823"},"#823")),(0,n.kt)("li",{parentName:"ul"},"Completed the cleanup of the multi-signer of the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/824"},"#824")),(0,n.kt)("li",{parentName:"ul"},"Completed the upgrade of the Cardano node to ",(0,n.kt)("inlineCode",{parentName:"li"},"1.35.6")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/843"},"#843"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/97cbe753.ac9091dd.js b/assets/js/97cbe753.ac9091dd.js new file mode 100644 index 0000000000..175a0f0a5b --- /dev/null +++ b/assets/js/97cbe753.ac9091dd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24272],{27012:e=>{e.exports=JSON.parse('{"permalink":"/page/65","page":65,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/64","nextPage":"/page/66","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/97daee08.643cba8f.js b/assets/js/97daee08.643cba8f.js new file mode 100644 index 0000000000..a0cf110de6 --- /dev/null +++ b/assets/js/97daee08.643cba8f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32070],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var a=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,i=function(e,t){if(null==e)return{};var r,a,i={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var h=a.createContext({}),p=function(e){var t=a.useContext(h),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(h.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,i=e.mdxType,n=e.originalType,h=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=p(r),c=i,d=u["".concat(h,".").concat(c)]||u[c]||m[c]||n;return r?a.createElement(d,o(o({ref:t},s),{},{components:r})):a.createElement(d,o({ref:t},s))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=r.length,o=new Array(n);o[0]=c;var l={};for(var h in t)hasOwnProperty.call(t,h)&&(l[h]=t[h]);l.originalType=e,l[u]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<n;p++)o[p]=r[p];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},43729:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>h,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>l,toc:()=>p});var a=r(87462),i=(r(67294),r(3905));const n={title:"Mithril Team Update",slug:"2023-03-09-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-09-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-09-mithril.md",source:"@site/blog/2023-03-09-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-03-09T00:00:00.000Z",formattedDate:"March 9, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.42,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-03-09-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-03-10-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-03-08-consensus"}},h={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:p},u="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(u,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet")," and computes the stake distribution with the optimized unreleased Cardano CLI command."),(0,i.kt)("p",null,"Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Worked on the epic that implements eras behavior switch ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/707"},"#707"),":",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Completed the deployment of the era behavior switch to the test networks ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/752"},"#752")),(0,i.kt)("li",{parentName:"ul"},"Completed the enhancement of datum generation for era markers ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/786"},"#786")),(0,i.kt)("li",{parentName:"ul"},"Worked on handling the API version with an era switch ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/727"},"#727")))),(0,i.kt)("li",{parentName:"ul"},"Worked on the epic that implements a relational store in the aggregator ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/779"},"#779"),":",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Worked on the migration/adaptation of the ",(0,i.kt)("inlineCode",{parentName:"li"},"stake_pool")," table ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/787"},"#787")))),(0,i.kt)("li",{parentName:"ul"},"Completed the refactoring of errors in the signer and aggregator state machines ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/665"},"#665")),(0,i.kt)("li",{parentName:"ul"},"Worked on testing Mithril with a ",(0,i.kt)("inlineCode",{parentName:"li"},"mainnet")," Cardano network ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/777"},"#777")),(0,i.kt)("li",{parentName:"ul"},"Worked on fixing bugs with the Docker client image:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fixed a bug that made the Docker client container crash at startup ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/769"},"#769")),(0,i.kt)("li",{parentName:"ul"},"Fixed a bug that prevented the restoration of a snapshot with a Docker client ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/791"},"#791")),(0,i.kt)("li",{parentName:"ul"},"Worked on testing the Docker client in the ",(0,i.kt)("inlineCode",{parentName:"li"},"Mithril Client multi-platform test")," workflow ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/794"},"#794"))))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/981d7293.b7f52d57.js b/assets/js/981d7293.b7f52d57.js new file mode 100644 index 0000000000..31c7620eb5 --- /dev/null +++ b/assets/js/981d7293.b7f52d57.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[36945],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(r),d=a,h=u["".concat(s,".").concat(d)]||u[d]||m[d]||o;return r?n.createElement(h,i(i({ref:t},c),{},{components:r})):n.createElement(h,i({ref:t},c))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var p=2;p<o;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},90929:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2024-03-01-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-03-01-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-01-sre.md",source:"@site/blog/2024-03-01-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-03-01T00:00:00.000Z",formattedDate:"March 1, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.26,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-03-01-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-03-01-hydra"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-02-29-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Work in progress",id:"work-in-progress",level:3}],c={toc:p},u="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,a.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Cardano-node 8.8.1-pre is now deployed to sanchonet, two-thirds of preprod,\none-third of preview and also voltaire private chain networks.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Catalyst Voltaire private chain was respun and an updated db-sync and govtool\nbackend deployed after hard fork to Conway era.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"IOG sanchonet pool block producers are now also signing mithril\ncertificates.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"A mithril-signer-verifier service now runs on all IOG SRE mithril signers and\ngenerates alerts if no recent mithril certificates have been signed.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"All cardano-parts mithril clients, whether via nixosConfiguration,\nprocess-compose jobs or the nix cardano-node entrypoint, will now\nautomatically verify that a trusted IOG pool has signed a mithril certificate\nprior to using the associated mithril state. If no trusted IOG pool has\nsigned a recent mithril certificate, mithril state usage with be skipped and\na classic sync from genesis to tip will be performed.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"A significant amount of effort was applied towards the upcoming cardano-node\n8.9.x-pre release in order to align nixos service module code between\ncardano-node nixos services, iohk-nix topology generation, cardano-ops legacy\ncode, and cardano-parts module compatibility."))),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"work-in-progress"},"Work in progress"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The following PRs contain the mentioned work above and will be finalized and\nmerged once cardano-node 8.9.x-pre or equivalent is tagged. Summary details\nfor each PR will be added in the next biweekly update once merged.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/34"},"cardano-parts-pull-34")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/18"},"cardano-playground-pull-18")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/9"},"cardano-mainnet-pull-9"))))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/983b561c.b7dff44f.js b/assets/js/983b561c.b7dff44f.js new file mode 100644 index 0000000000..74d8d205e8 --- /dev/null +++ b/assets/js/983b561c.b7dff44f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54685],{8904:e=>{e.exports=JSON.parse('{"permalink":"/page/13","page":13,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/12","nextPage":"/page/14","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/985c36e4.e343408f.js b/assets/js/985c36e4.e343408f.js new file mode 100644 index 0000000000..d216e215ee --- /dev/null +++ b/assets/js/985c36e4.e343408f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29545],{1517:e=>{e.exports=JSON.parse('{"permalink":"/page/70","page":70,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/69","nextPage":"/page/71","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/986e43da.163ee9d1.js b/assets/js/986e43da.163ee9d1.js new file mode 100644 index 0000000000..608d27456d --- /dev/null +++ b/assets/js/986e43da.163ee9d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6807],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),u=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=u(r),g=n,h=d["".concat(s,".").concat(g)]||d[g]||c[g]||o;return r?a.createElement(h,l(l({ref:t},p),{},{components:r})):a.createElement(h,l({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=g;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var u=2;u<o;u++)l[u]=r[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}g.displayName="MDXCreateElement"},61934:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const o={title:"Ledger Team Update",slug:"2023-02-02-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-02-02-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-02-ledger.md",source:"@site/blog/2023-02-02-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-02-02T00:00:00.000Z",formattedDate:"February 2, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.23,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-02-02-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-02-03-hydra"},nextItem:{title:"Hydra Team Update",permalink:"/2023-01-27-hydra"}},s={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Ledger evolution CIP",id:"ledger-evolution-cip",level:3},{value:"Serialization issues",id:"serialization-issues",level:3},{value:"New tests",id:"new-tests",level:3},{value:"Progress on a better cost model serialization situation.",id:"progress-on-a-better-cost-model-serialization-situation",level:3},{value:"Nightly tests",id:"nightly-tests",level:3},{value:"Constraint based generators",id:"constraint-based-generators",level:3}],p={toc:u},d="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Much of the work the past two weeks involved integration efforts,\ncleaning up and debugging some serialization issues,\nadding tests, and work on large projects that are still ongoing.\nWe also released a CIP this week that aims to make the ledger\na registered CIP category."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"ledger-evolution-cip"},"Ledger evolution CIP"),(0,n.kt)("p",null,"We published a\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/456"},"CIP"),"\nthat will make the Cardano ledger a registered category of the CIP process."),(0,n.kt)("h3",{id:"serialization-issues"},"Serialization issues"),(0,n.kt)("p",null,"We had previously thought that we had found a serialization problem with the redeemers,\nbut it turned out to just be particularly confusing code.\nWe have now clarified the issue for the future."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3263"},"pull-3263"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3269"},"pull-3269"),", and ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3268"},"pull-3268"),"."),(0,n.kt)("p",null,"Starting in protocol version 9, we will no longer accept duplicate keys in CBOR maps."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3277"},"pull-3277"),"."),(0,n.kt)("h3",{id:"new-tests"},"New tests"),(0,n.kt)("p",null,"We added a new property test suite for some of our custom containers."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3270"},"pull-3270"),"."),(0,n.kt)("h3",{id:"progress-on-a-better-cost-model-serialization-situation"},"Progress on a better cost model serialization situation."),(0,n.kt)("p",null,"We are still working our way through ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/issues/2902"},"issue-2902"),".\nTowards this end, we are now properly gating the new flexible encoders\nuntil version 9."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3274"},"pull-3274"),"."),(0,n.kt)("h3",{id:"nightly-tests"},"Nightly tests"),(0,n.kt)("p",null,"We are still experimenting with moving more CI actions to GitHub actions."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3276"},"pull-3276"),"."),(0,n.kt)("h3",{id:"constraint-based-generators"},"Constraint based generators"),(0,n.kt)("p",null,"We continue to add to our proof of concept for constraint based generators.\nSee the previous ledger update for more information about this project."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/988c71cb.ec06b285.js b/assets/js/988c71cb.ec06b285.js new file mode 100644 index 0000000000..b5b111efae --- /dev/null +++ b/assets/js/988c71cb.ec06b285.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[84433],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),p=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(r),d=n,m=c["".concat(l,".").concat(d)]||c[d]||h[d]||a;return r?o.createElement(m,i(i({ref:t},u),{},{components:r})):o.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var p=2;p<a;p++)i[p]=r[p];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}d.displayName="MDXCreateElement"},68697:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var o=r(87462),n=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2024-05-06-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2024-05-06-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-06-network.md",source:"@site/blog/2024-05-06-network.md",title:"Network Team Update",description:"High-level overview of sprint 60",date:"2024-05-06T00:00:00.000Z",formattedDate:"May 6, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.45,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-05-06-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-05-07-performance-and-tracing"},nextItem:{title:"Hydra Team Update",permalink:"/2024-05-03-hydra"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 60",id:"high-level-overview-of-sprint-60",level:2},{value:"Peer-Sharing Improvements",id:"peer-sharing-improvements",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"Churn",id:"churn",level:3},{value:"Minor Improvements",id:"minor-improvements",level:2},{value:"Testing",id:"testing",level:3}],u={toc:p},c="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-60"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+60%22"},"sprint 60")),(0,n.kt)("small",null,(0,n.kt)("i",null,"Edited on 8th of May: new EGK counters will be included in `cardano-node-8.9.3`, added links to `cardano-node-8.9.3` PR and `ouroboros-network-0.15` release.")),(0,n.kt)("h3",{id:"peer-sharing-improvements"},"Peer-Sharing Improvements"),(0,n.kt)("p",null,"We continued working on improving peer sharing. As part of this work light\npeer sharing (e.g. including inbound peers to the known set of outbound\ngovernor), was restructured. Now, sending more peers than what was requested by\nthe peer-sharing client is a protocol error, and the connection will be terminated;\nThis hasn't been a resource attack vector since we always limited the number of\npeers taken by the ",(0,n.kt)("inlineCode",{parentName:"p"},"outbound-governor")," and the number of peers has always been\nlimited by the size of the mux ingress queue reserved for peer-sharing\nmini-protocol. These changes will be released in ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node-8.9.3"),". See\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4869"},"ouroboros-network#4868")),(0,n.kt)("p",null,"We also merged the work on outbound governor counters, which initially started\nas just an extension for peer-sharing counters but turned into a larger\nrefactorisation. We announced it in the previous report. These changes will\nbe included in ",(0,n.kt)("inlineCode",{parentName:"p"},"8.9.3"),". See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4845"},"ouroboros-network#4845"),",\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4861"},"ouroboros-network#4861"),"."),(0,n.kt)("p",null,"Light peer sharing (inbound peers) refactorisation allowed us to refactor the\ninbound governor loop: we restructured it so that the internal state is kept\npure (and thus not shared with other threads), while the public part is\ncomputed incrementally (with good amortised costs and thus leading to good performance) and exposed to other\ncomponents (e.g. the ",(0,n.kt)("inlineCode",{parentName:"p"},"outbound-governor"),"), see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4871"},"ouroboros-network#4871")," ","(","which\nis built on top of ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4869"},"ouroboros-network#4868"),")."),(0,n.kt)("p",null,"The PR ","[cardano-nod#5831]"," integrates ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.15")," with\n",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node-8.9.x")," branch. All included PRs / issues in\n",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.15")," are listed ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/orgs/IntersectMBO/projects/5/views/18"},"here"),"."),(0,n.kt)("h3",{id:"genesis"},"Genesis"),(0,n.kt)("p",null,"We implemented the API needed by the consensus layer for ",(0,n.kt)("inlineCode",{parentName:"p"},"Genesis"),"; see\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4815"},"ouroboros-network#4815"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4846"},"ouroboros-network#4846"),". "),(0,n.kt)("p",null,"We continued working on outbound governor changes to support ",(0,n.kt)("inlineCode",{parentName:"p"},"Genesis"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/3396"},"ouroboros-network#3396")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4813"},"ouroboros-network#4813")," "),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4849"},"ouroboros-network#4849")," ")),(0,n.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,n.kt)("p",null,"Karl Knutsson (","[CF]",") found and fixed some problems related to big-ledger and\npublic root peers. Here's an excerpt from the changelog file:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"updated the big-ledger retry state in case of an exception;"),(0,n.kt)("li",{parentName:"ul"},"reset public root retry state when transitioning between ",(0,n.kt)("inlineCode",{parentName:"li"},"LedgerStateJudgements"),";"),(0,n.kt)("li",{parentName:"ul"},"reduced public root retry timer;"),(0,n.kt)("li",{parentName:"ul"},"don't classify a config file with public-root/bootstrap-peers IP addresses only\nas a DNS error.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4867"},"ouroboros-network#4867"),".")),(0,n.kt)("h3",{id:"churn"},"Churn"),(0,n.kt)("p",null,"We merged a refactorisation which synchronises churn with the outbound\ngovernor, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4617"},"ouroboros-network#4617"),"."),(0,n.kt)("h2",{id:"minor-improvements"},"Minor Improvements"),(0,n.kt)("p",null,"A few other minor improvements were merged:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"updated tools used by ",(0,n.kt)("inlineCode",{parentName:"li"},"nix"),", see ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4860"},"ouroboros-network#4860"),";"),(0,n.kt)("li",{parentName:"ul"},"updated pull request template, see ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4862"},"ouroboros-network#4862"))),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("p",null,"We added ",(0,n.kt)("inlineCode",{parentName:"p"},"quickcheck-monoids")," package and also submitted an upstream patch to\n",(0,n.kt)("inlineCode",{parentName:"p"},"QuickCheck")," to include a version of the standard ",(0,n.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/base-4.19.1.0/docs/Data-Monoid.html#t:All"},(0,n.kt)("inlineCode",{parentName:"a"},"All"))," / ",(0,n.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/base-4.19.1.0/docs/Data-Monoid.html#t:Any"},(0,n.kt)("inlineCode",{parentName:"a"},"Any"))," monoids, which\nare helpful when writing more complex properties. We will use\n",(0,n.kt)("inlineCode",{parentName:"p"},"quickcheck-monoids")," until the upstream PR will be released. It will be\navailable from ",(0,n.kt)("a",{parentName:"p",href:"https://chap.intersectmbo.org/"},"CHaP"),". See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/nick8325/quickcheck/pull/397"},"quickcheck#397"),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/98e6984f.8ae096f4.js b/assets/js/98e6984f.8ae096f4.js new file mode 100644 index 0000000000..51f642e92c --- /dev/null +++ b/assets/js/98e6984f.8ae096f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[19861],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},80648:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2022-12-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-12-15-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-15-mithril.md",source:"@site/blog/2022-12-15-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2022-12-15T00:00:00.000Z",formattedDate:"December 15, 2022",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.11,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2022-12-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-12-16-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2022-12-14-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team has released the new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2248.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2248.1"))," of their nodes. They have published the first version of the Mithril cryptographic library on ",(0,n.kt)("a",{parentName:"p",href:"https://crates.io/crates/mithril-stm"},(0,n.kt)("inlineCode",{parentName:"a"},"crates.io")),", the Rust community\u2019s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots."),(0,n.kt)("p",null,"Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implemented removing verification key and stake from single signatures ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/619"},"#619")),(0,n.kt)("li",{parentName:"ul"},"Completed the extraction of the signer registration from the multi-signer ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/642"},"#642")),(0,n.kt)("li",{parentName:"ul"},"Completed the extraction of the certificate creation from the multi-signer ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/638"},"#638")),(0,n.kt)("li",{parentName:"ul"},"Implemented a workflow to test client binaries (Linux / MacOS / Windows) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/601"},"#601")),(0,n.kt)("li",{parentName:"ul"},"Completed the signature of the artifacts produced by the CI ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/587"},"#587")),(0,n.kt)("li",{parentName:"ul"},"Fixed the protocol parameters transition ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/627"},"#627")),(0,n.kt)("li",{parentName:"ul"},"Worked on optimizing the snapshot digest computation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/510"},"#510")),(0,n.kt)("li",{parentName:"ul"},"Worked on enforcing the API protocol versions in the client and signer ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/633"},"#633")),(0,n.kt)("li",{parentName:"ul"},"Worked on deactivating the non certified signer registration mode ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/621"},"#621")),(0,n.kt)("li",{parentName:"ul"},"Worked on the re-genesis of the test networks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/651"},"#651"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9936161a.32ed940d.js b/assets/js/9936161a.32ed940d.js new file mode 100644 index 0000000000..5c18c4e7ce --- /dev/null +++ b/assets/js/9936161a.32ed940d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[86576],{46229:a=>{a.exports=JSON.parse('{"label":"security","permalink":"/tags/security","allTagsPath":"/tags","count":1}')}}]); \ No newline at end of file diff --git a/assets/js/996aa714.0ed38e71.js b/assets/js/996aa714.0ed38e71.js new file mode 100644 index 0000000000..df32281e03 --- /dev/null +++ b/assets/js/996aa714.0ed38e71.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70594],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=c(r),p=a,h=m["".concat(s,".").concat(p)]||m[p]||d[p]||o;return r?n.createElement(h,i(i({ref:t},u),{},{components:r})):n.createElement(h,i({ref:t},u))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=r[c];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}p.displayName="MDXCreateElement"},73172:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Performance & tracing update",slug:"2022-12-14-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-12-14-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-14-performance-and-tracing.md",source:"@site/blog/2022-12-14-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2022-12-14T00:00:00.000Z",formattedDate:"December 14, 2022",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:3.095,hasTruncateMarker:!1,authors:[{name:"Serge Kosyrev",title:"Performance and Tracing Team Lead",url:"https://github.com/deepfire",imageURL:"https://github.com/deepfire.png",key:"deepfire"}],frontMatter:{title:"Performance & tracing update",slug:"2022-12-14-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-12-14-node-cli-api"},nextItem:{title:"Network Team Update",permalink:"/2022-12-12-network"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Performance",id:"performance",level:2},{value:"Tracing",id:"tracing",level:2},{value:"Infrastructure",id:"infrastructure",level:2}],u={toc:c},m="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment."),(0,a.kt)("li",{parentName:"ol"},"A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery."),(0,a.kt)("li",{parentName:"ol"},"The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals."),(0,a.kt)("li",{parentName:"ol"},"Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started."),(0,a.kt)("li",{parentName:"ol"},"Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.")),(0,a.kt)("h2",{id:"performance"},"Performance"),(0,a.kt)("p",null,"The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload."),(0,a.kt)("p",null,"We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling."),(0,a.kt)("h2",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical."),(0,a.kt)("p",null,"To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration."),(0,a.kt)("li",{parentName:"ol"},"The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.")),(0,a.kt)("p",null,"All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further."),(0,a.kt)("p",null,"In addition, we're still pursuing our performance-enhancing rework of the new tracing internals."),(0,a.kt)("h2",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends."),(0,a.kt)("p",null,"Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it.\nThis means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis.\nThis will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports."),(0,a.kt)("p",null,"A new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches.\nPreviously we only had automation for two aspects separately, so we only could either:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"compare individual runs (used for different node configurations / versions)"),(0,a.kt)("li",{parentName:"ul"},"collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version)\nNaturally, combining these two capabilities was a long-desired feature of our analysis pipeline.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/99881079.418efbc2.js b/assets/js/99881079.418efbc2.js new file mode 100644 index 0000000000..8067b615f4 --- /dev/null +++ b/assets/js/99881079.418efbc2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53004],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(n),p=a,h=d["".concat(s,".").concat(p)]||d[p]||m[p]||o;return n?r.createElement(h,i(i({ref:t},u),{},{components:n})):r.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}p.displayName="MDXCreateElement"},38772:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & tracing update",slug:"2023-05-17-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-05-17-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-17-performance-and-tracing.md",source:"@site/blog/2023-05-17-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-05-17T00:00:00.000Z",formattedDate:"May 17, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:3.21,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-05-17-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-05-17-mithril"},nextItem:{title:"Crypto Team Update",permalink:"/2023-05-12-crypto"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Analysis",id:"analysis",level:3},{value:"Open Sourcing",id:"open-sourcing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3},{value:"Performance & Tracing Meetup",id:"performance--tracing-meetup",level:3},{value:"Offboarding",id:"offboarding",level:3}],u={toc:c},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We're preparing our model cluster to perform GHC9.2 benchmarks, as well as experimenting with increased dataset sizes."),(0,a.kt)("li",{parentName:"ul"},"New tracing: After optimization work on the new tracing system, another cycle of validation and documentation is due."),(0,a.kt)("li",{parentName:"ul"},"Analysis pipeline: First steps on implementing incremental analysis have been untertaken."),(0,a.kt)("li",{parentName:"ul"},"Open Sourcing: Exhaustive dataflow charts for both our analysis tool ",(0,a.kt)("inlineCode",{parentName:"li"},"locli")," and our ",(0,a.kt)("inlineCode",{parentName:"li"},"workbanch")," have been merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master")),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: The first set of CI-centric workbench profiles have been adjusted and run on the nomad backend; currently we're porting the definition of our model cluster."),(0,a.kt)("li",{parentName:"ul"},"P&T Meetup: We had a very productive personal meetup in Lugano, Switzerland."),(0,a.kt)("li",{parentName:"ul"},"Offboarding: Sadly, we have to say goodbye to our team lead. Currently, we're busy with the handover.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"As a compiler switch to GHC 9.2.7 for ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),"'s default build environment is around the corner, we're setting up our benchmarking cluster to\nhandle the new version. Special attention is given to the fact that we might need more flexibility in switching compiler versions in the future. This\nalso involves choosing a reliable baseline as reference point for inter-version comparisons. "),(0,a.kt)("p",null,"Additionally we've been working on refining our model cluster: by increasing UTxO and delegation map sizes to closer match those of current mainnet,\nwe strive to have a more accurate model - and thus be able to make more detailed predictions regarding performance. However, this still needs to\nbe balanced against resource demand for all our cluster's nodes."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"For our new tracing system, we're currently validating the behaviour of the system after optimizations have been applied. Furthermore, some\nquality-of-life details that have changed required us to revision the system documentation."),(0,a.kt)("h3",{id:"analysis"},"Analysis"),(0,a.kt)("p",null,"As a mid-term goal, we aim to provide incremental analysis of our benchmarking metrics. While currently, we can only reliably process runs that have been\nnormally (or abnormally) terminated, we see the possibility of incrementally analysing ongoing runs, or any data source yielding our key metrics, as a\nhuge opportunity to increase our operational flexibility. All in all, this approach entails building completely new features for our pipeline. A first effort to accomodate incrementally incoming data points has been undertaken. "),(0,a.kt)("h3",{id:"open-sourcing"},"Open Sourcing"),(0,a.kt)("p",null,"A very involved and exhaustive documentation and visualization effort has been undertaken to make the data flow through our key benchmarking\ncopmonents more accessible. As a result, detailed charts for both our LogObject CLI ",(0,a.kt)("inlineCode",{parentName:"p"},"locli")," and our ",(0,a.kt)("inlineCode",{parentName:"p"},"workbench")," have been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". "),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"While our Nomad backend is reaching completion, and hardware setup is being implemented in collaboration with SRE, we've been adjusting\nthose profiles of our ",(0,a.kt)("inlineCode",{parentName:"p"},"workbench")," that target CI-oriented workloads to the new backend. Those profiles should demonstrate the full functionality\nof the nomad cloud backend. "),(0,a.kt)("p",null,"Additionally, we're porting a first deployable version of our model cluster to nomad cloud, which will form the basis for validation of our actual key metrics with regard to those from the existing cluster."),(0,a.kt)("h3",{id:"performance--tracing-meetup"},"Performance & Tracing Meetup"),(0,a.kt)("p",null,"We held a personal team meetup in Lugano, Switzerland. In an amazing location, and with a great seminar room to focus, we had 2 very productive\ndays together. Being able to discuss live and in colour, we could effectively synchronize on where the team is at, and how we want to develop in the future.\nAlso, it was a great opportunity to finally meet in person."),(0,a.kt)("h3",{id:"offboarding"},"Offboarding"),(0,a.kt)("p",null,"Last not least we regret that our team lead is leaving at the end of May. Currently, he's handing over all his obligations, which requires reorganisation\nof team structure, and responsabilities of team members for specific tasks. Serge, we all want to thank you for your excellent and reliable lead; we very much enjoyed the time with you, and wish you all the best for your future endeavours!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/999e2b46.6b266244.js b/assets/js/999e2b46.6b266244.js new file mode 100644 index 0000000000..e100906e5c --- /dev/null +++ b/assets/js/999e2b46.6b266244.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[76433],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),m=a,h=d["".concat(l,".").concat(m)]||d[m]||u[m]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},25360:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-06-14-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-06-14-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-14-consensus.md",source:"@site/blog/2023-06-14-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-06-14T00:00:00.000Z",formattedDate:"June 14, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.115,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-06-14-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-06-15-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-06-14-performance-and-tracing"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],p={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The Consensus team had a very productive meeting with IOG Researchers. We now seem to be in alignment in regards to a strong argument that the ",(0,a.kt)("inlineCode",{parentName:"p"},"Byron")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"TPraos")," eras do not need to be checkpointed for an MVP.\nThere is one remaining question (which applies also to the ",(0,a.kt)("inlineCode",{parentName:"p"},"Praos"),' era): how to assess the threat that short forks pose against historical windows that underperformed? We are currently collaborating on that. We also drafted an argument that the updated "Limit on Patience" timeout sufficiently bounds how long the adversary can inflate a victim\'s overall sync time.'),(0,a.kt)("p",null,"On the UTxO-HD front, the prototype branch was rebased on top of the latest ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," ",(0,a.kt)("inlineCode",{parentName:"p"},"main")," branch and integrated on top of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node 8.1.1-pre"),". As a result, the mempool fairness fix that was released recently is now integrated into UTxO-HD.\nWe managed to run a node again with UTxO-HD enabled.\nWe also identified a race condition in the UTxO-HD prototype and fixed it. In addition, we started performing UTxO-HD ad-hoc benchmarks for ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),", which uncovered a performance regression on the Network component when using ",(0,a.kt)("inlineCode",{parentName:"p"},"GHC-9.2/9.4"),". This is being addressed."),(0,a.kt)("p",null,"Regarding our support activities, we Released ",(0,a.kt)("inlineCode",{parentName:"p"},"fs-sim-0.2.0.0")," and are in the process of preparing the 8.2 release of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". We also identified and started fixing incorrectly-unevaluated thunks in preparation for enabling CI NoThunks tests."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/99b0bd12.6eb5a911.js b/assets/js/99b0bd12.6eb5a911.js new file mode 100644 index 0000000000..c2629ee705 --- /dev/null +++ b/assets/js/99b0bd12.6eb5a911.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[59798],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),d=l(n),h=o,m=d["".concat(s,".").concat(h)]||d[h]||c[h]||a;return n?r.createElement(m,i(i({ref:t},u),{},{components:n})):r.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=h;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[d]="string"==typeof e?e:o,i[1]=p;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}h.displayName="MDXCreateElement"},17110:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-06-12-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2023-06-12-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-12-network.md",source:"@site/blog/2023-06-12-network.md",title:"Network Team Update",description:"Network Update",date:"2023-06-12T00:00:00.000Z",formattedDate:"June 12, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.205,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-06-12-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-06-14-performance-and-tracing"},nextItem:{title:"Crypto Team Update",permalink:"/2023-06-09-crypto"}},s={authorsImageUrls:[void 0]},l=[{value:"Network Update",id:"network-update",level:2},{value:"Key contributions and advances",id:"key-contributions-and-advances",level:3},{value:"New <code>cardano-ping</code> / <code>cardano-cli ping</code> release",id:"new-cardano-ping--cardano-cli-ping-release",level:4},{value:"Other smaller contributions",id:"other-smaller-contributions",level:3}],u={toc:l},d="wrapper";function c(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"network-update"},"Network Update"),(0,o.kt)("h3",{id:"key-contributions-and-advances"},"Key contributions and advances"),(0,o.kt)("p",null,"We merged ",(0,o.kt)("inlineCode",{parentName:"p"},"light peer sharing")," feature, which allows to include inbound peers\ninto outbound governor known peers. This is the primary way for new\nunregistered nodes to enter the network, which then can be shared using peer\nsharing. Note that peer sharing is an experimental feature which is disabled\nuntil genesis & eclipse evasion as fully implemented. See ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3596"},"#3596"),"."),(0,o.kt)("p",null,"We are making progress reviewing eclipse evasion, ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3886"},"#3886"),"."),(0,o.kt)("p",null,"We fixed another bug in local root peers. We found out that if the local roots\nwhere ignored until the first domain name was resolved, see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4583"},"#4583"),". The bug\nfix was backported and released in ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.8.1.1"),"."),(0,o.kt)("p",null,"We re-started working on dynamically enabling block forging to address issue\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3159"},"#3159"),", which will enable us to release ",(0,o.kt)("inlineCode",{parentName:"p"},"P2P")," on block producing nodes. See ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"#140"),"."),(0,o.kt)("h4",{id:"new-cardano-ping--cardano-cli-ping-release"},"New ",(0,o.kt)("inlineCode",{parentName:"h4"},"cardano-ping")," / ",(0,o.kt)("inlineCode",{parentName:"h4"},"cardano-cli ping")," release"),(0,o.kt)("p",null,"We prepared a new release of ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-ping")," library which supports the new\nquery feature (query supported versions). See ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4589"},"#4589"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4593"},"#4593")," and ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5313"},"#5313"),".\nThe new version of ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," will use ",(0,o.kt)("inlineCode",{parentName:"p"},"ISO8601")," formatted\ntimestamps; also the formatting of ping results is slightly improved, and it\nwill introduce the new ",(0,o.kt)("inlineCode",{parentName:"p"},"--query-versions")," (",(0,o.kt)("inlineCode",{parentName:"p"},"-Q"),") switch. If the remote site\nsupports the query parameter, the command will print:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"redacted-ip:port network rtt: 0.064\nredacted-ip:port handshake rtt: 0.064010896s\nredacted-ip:port Queried versions [NodeToNodeVersionV11 764824073 InitiatorAndResponder,NodeToNodeVersionV10 764824073 InitiatorAndResponder,NodeToNodeVersionV9 764824073 Initiat\norAndResponder,NodeToNodeVersionV8 764824073 InitiatorAndResponder,NodeToNodeVersionV7 764824073 InitiatorAndResponder]\n")),(0,o.kt)("p",null,"otherwise it will print the negotiation results"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"redacted-ip:port network rtt: 0.045\nredacted-ip:port handshake rtt: 0.101867615s\nredacted-ip:port Negotiated version NodeToNodeVersionV10 764824073 InitiatorAndResponder\n")),(0,o.kt)("p",null,"Note that in that case ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," offers ",(0,o.kt)("inlineCode",{parentName:"p"},"InitiatorAndResponder"),", which\nallows us to detect whether the remote side is an ",(0,o.kt)("inlineCode",{parentName:"p"},"InitiatorOnly")," or\n",(0,o.kt)("inlineCode",{parentName:"p"},"InitiatorAndResponder"),". Also ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," will no longer announce\nitself as ",(0,o.kt)("inlineCode",{parentName:"p"},"InitiatorAndResponder"),", except for the case mentioned above."),(0,o.kt)("h3",{id:"other-smaller-contributions"},"Other smaller contributions"),(0,o.kt)("p",null,"On a request from the Marlow Team, we published haddocks of ",(0,o.kt)("inlineCode",{parentName:"p"},"typed-protocols"),",\nwhich are now available ",(0,o.kt)("a",{parentName:"p",href:"https://input-output-hk.github.io/typed-protocols/"},"here")," (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/40"},"#40"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/41"},"#41"),")."),(0,o.kt)("p",null,"We made a new release of ",(0,o.kt)("inlineCode",{parentName:"p"},"strict-stm-1.1.0.1")," on Hackage, which fixed a bug in\npackage description file, ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/101"},"#101")," ."),(0,o.kt)("p",null,"We also helped to debug a deadlock when using named pipes on Windows in the new\n",(0,o.kt)("inlineCode",{parentName:"p"},"RawBearer")," API. The API is being used to store secret keys only in memory.\nThe PR ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4395"},"#4395")," is under review."),(0,o.kt)("p",null,"We also have two more PRs which are under review:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4530"},"#4530"),": enabling ledger peers on a fixed number of slots before the tip of the chain;"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4580"},"#4580"),": a PR which fixes inconsistencies in one of our cddl specs.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/99d1374b.6fbefd6a.js b/assets/js/99d1374b.6fbefd6a.js new file mode 100644 index 0000000000..b6ab3c0382 --- /dev/null +++ b/assets/js/99d1374b.6fbefd6a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93347],{98165:e=>{e.exports=JSON.parse('{"permalink":"/quarterly/tags/consensus","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/99d83f94.977d57b0.js b/assets/js/99d83f94.977d57b0.js new file mode 100644 index 0000000000..cc6fca89fd --- /dev/null +++ b/assets/js/99d83f94.977d57b0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[44635],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var i=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,a=function(e,t){if(null==e)return{};var r,i,a={},n=Object.keys(e);for(i=0;i<n.length;i++)r=n[i],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i<n.length;i++)r=n[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=i.createContext({}),u=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=u(r),c=a,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||n;return r?i.createElement(d,o(o({ref:t},p),{},{components:r})):i.createElement(d,o({ref:t},p))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,o=new Array(n);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var u=2;u<n;u++)o[u]=r[u];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},21475:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>n,metadata:()=>l,toc:()=>u});var i=r(87462),a=(r(67294),r(3905));const n={title:"Mithril Team Update",slug:"2024-07-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-07-17-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-17-mithril.md",source:"@site/blog/2024-07-17-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-07-17T00:00:00.000Z",formattedDate:"July 17, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.365,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-07-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-07-17-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2024-07-10-consensus"}},s={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],p={toc:u},m="wrapper";function h(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,i.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"This week, the Mithril team released the new distribution ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2428.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2428.0")),", which includes support for Cardano node version ",(0,a.kt)("inlineCode",{parentName:"p"},"9.0.0"),", as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks by calibrating the signature parameters for mainnet, fixing a bug preventing the signature of the last block advertised as certified, optimizing a part of the artifact production that was blocking the certification, and starting removing the code reading transactions from the immutable files."),(0,a.kt)("p",null,"Finally, the team started working on the certification of the Cardano stake distribution and continued redacting a CIP for the diffusion of Mithril signatures through the Cardano network."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2428.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2428.0"))),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Release ",(0,a.kt)("inlineCode",{parentName:"strong"},"2428")," distribution")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1810"},"#1810")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Calibrate Cardano transaction signature parameters")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1814"},"#1814")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Non blocking artifact production in aggregator")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1792"},"#1792")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Cardano transaction importer does not import the last block advertised as certified")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1785"},"#1785")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"A recorded but non certified Cardano transaction creates an error in prover")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1819"},"#1819")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Signer ",(0,a.kt)("inlineCode",{parentName:"strong"},"make test")," command fails")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1816"},"#1816")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Document Prometheus metrics and Grafana Dahsboard for signer")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1834"},"#1834")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Explorer keeps previous Cardano transaction error")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1818"},"#1818")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Implement signable and artifacts builders for Cardano Stake Distribution")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1832"},"#1832")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"CIP for Mithril signature diffusion through Cardano network")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1775"},"#1775")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Cleanup Immutable File in Cardano transaction")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1825"},"#1825")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Upgrade ",(0,a.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet")," for respin with Cardano ",(0,a.kt)("inlineCode",{parentName:"strong"},"9.0.0"))," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1822"},"#1822"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9a03c440.5978b364.js b/assets/js/9a03c440.5978b364.js new file mode 100644 index 0000000000..061b70f7f2 --- /dev/null +++ b/assets/js/9a03c440.5978b364.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16959],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,f=m["".concat(c,".").concat(d)]||m[d]||p[d]||o;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},66401:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Performance & tracing update",slug:"2023-02-23-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i="High level summary",l={permalink:"/2023-02-23-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-23-performance-and-tracing.md",source:"@site/blog/2023-02-23-performance-and-tracing.md",title:"Performance & tracing update",description:"* SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.",date:"2023-02-23T00:00:00.000Z",formattedDate:"February 23, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.245,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-02-23-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-02-23-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2023-02-22-consensus"}},c={authorsImageUrls:[void 0]},s=[{value:"SECP",id:"secp",level:3},{value:"UTxO-HD",id:"utxo-hd",level:3},{value:"1.35.6 release",id:"1356-release",level:3},{value:"Nomad backend",id:"nomad-backend",level:3},{value:"NixOps backend",id:"nixops-backend",level:3}],u={toc:s},m="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork."),(0,a.kt)("li",{parentName:"ul"},"Release benchmarking: we performed a round of benchmarks for the 1.35.6 release."),(0,a.kt)("li",{parentName:"ul"},"UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup."),(0,a.kt)("li",{parentName:"ul"},"New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.")),(0,a.kt)("h1",{id:"performance"},"Performance"),(0,a.kt)("h3",{id:"secp"},"SECP"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead."),(0,a.kt)("li",{parentName:"ol"},"The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run."),(0,a.kt)("li",{parentName:"ol"},"The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking. ")),(0,a.kt)("h3",{id:"utxo-hd"},"UTxO-HD"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop."),(0,a.kt)("li",{parentName:"ol"},"We're currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.")),(0,a.kt)("h3",{id:"1356-release"},"1.35.6 release"),(0,a.kt)("p",null,"Benchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health."),(0,a.kt)("h1",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"Work on the new tracing system's introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible."),(0,a.kt)("h1",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients."),(0,a.kt)("li",{parentName:"ol"},"Locality assumptions were removed and job monitoring was refactored."),(0,a.kt)("li",{parentName:"ol"},"To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster."),(0,a.kt)("li",{parentName:"ol"},"We're currently evaluating different options for genesis distribution in said cluster.")),(0,a.kt)("h3",{id:"nixops-backend"},"NixOps backend"),(0,a.kt)("p",null,"The NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9a0e13cc.dc66313e.js b/assets/js/9a0e13cc.dc66313e.js new file mode 100644 index 0000000000..e06f2c5fde --- /dev/null +++ b/assets/js/9a0e13cc.dc66313e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[34746],{26933:e=>{e.exports=JSON.parse('{"permalink":"/tags/sre","page":1,"postsPerPage":5,"totalPages":6,"totalCount":29,"nextPage":"/tags/sre/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/9a49abff.ffa7c3ad.js b/assets/js/9a49abff.ffa7c3ad.js new file mode 100644 index 0000000000..40ade48055 --- /dev/null +++ b/assets/js/9a49abff.ffa7c3ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[82695],{94835:a=>{a.exports=JSON.parse('{"label":"ledger","permalink":"/tags/ledger","allTagsPath":"/tags","count":44}')}}]); \ No newline at end of file diff --git a/assets/js/9a947260.4b5cd995.js b/assets/js/9a947260.4b5cd995.js new file mode 100644 index 0000000000..aef4e96311 --- /dev/null +++ b/assets/js/9a947260.4b5cd995.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65063],{90948:a=>{a.exports=JSON.parse('{"label":"sre","permalink":"/quarterly/tags/sre","allTagsPath":"/quarterly/tags","count":5}')}}]); \ No newline at end of file diff --git a/assets/js/9b436c26.d7dc3795.js b/assets/js/9b436c26.d7dc3795.js new file mode 100644 index 0000000000..a23972b8f2 --- /dev/null +++ b/assets/js/9b436c26.d7dc3795.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64342],{38689:e=>{e.exports=JSON.parse('{"permalink":"/tags/network/page/3","page":3,"postsPerPage":5,"totalPages":7,"totalCount":35,"previousPage":"/tags/network/page/2","nextPage":"/tags/network/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/9b5ce5fa.d8346d88.js b/assets/js/9b5ce5fa.d8346d88.js new file mode 100644 index 0000000000..928acf75ef --- /dev/null +++ b/assets/js/9b5ce5fa.d8346d88.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75501],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=p(r),h=n,d=c["".concat(s,".").concat(h)]||c[h]||m[h]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}h.displayName="MDXCreateElement"},64213:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-11-08-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-11-08-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-08-mithril.md",source:"@site/blog/2023-11-08-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-11-08T00:00:00.000Z",formattedDate:"November 8, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.805,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-11-08-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-11-08-ledger"},nextItem:{title:"Consensus Team Update",permalink:"/2023-11-01-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team continued working on completing the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, achieving the implementation of a very basic working demo with a peer-to-peer publish-subscribe (pub-sub) mechanism. Additionally, the team continued working on the deterministic computation of the UTXO/transactions set from the immutable files."),(0,n.kt)("p",null,"Finally, they resolved the naming issue of the Docker package responsible for storing images of the new Mithril client CLI, and continued addressing a performance issue associated with the 'release-mainnet' aggregator."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Prototype a P2P relay with ",(0,n.kt)("inlineCode",{parentName:"strong"},"libp2p"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1300"},"#1300")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Release ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1311"},"#1311")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1283"},"#1283")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"release-mainnet")," aggregator is unreachable")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1310"},"#1310")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Client Docker package is incorrect")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1322"},"#1322"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9b6092d7.84fd0087.js b/assets/js/9b6092d7.84fd0087.js new file mode 100644 index 0000000000..eb4ef0660f --- /dev/null +++ b/assets/js/9b6092d7.84fd0087.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48990],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},u),{},{components:n})):r.createElement(h,s({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var c=2;c<o;c++)s[c]=n[c];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},90436:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2022-12-14-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2022-12-14-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-14-db-sync.md",source:"@site/blog/2022-12-14-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2022-12-14T00:00:00.000Z",formattedDate:"December 14, 2022",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.73,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2022-12-14-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-12-14-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-12-14-node-cli-api"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team continued testing release ",(0,a.kt)("inlineCode",{parentName:"p"},"13.1.0.0"),". The QA team has reported that no issues have\nbeen found. The DBSync team also worked on cherry-picks back to master and on fixing bugs."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Release is cherry-picked back to master, which uses the new rollback mechanism which uses\nreverse indexes, same as the release\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1320"},"#1320"),"\nThis also fixes a bug number of issues on master."),(0,a.kt)("li",{parentName:"ul"},"Depenencies upgrade and CHaP integration\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1324"},"#1324")),(0,a.kt)("li",{parentName:"ul"},"AdaPots fix ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1323"},"#1323"),". This\nfixes an issue where the per epoch AdaPots didn't match the epoch boundary, but\nthey also included changes from the first block of the epoch."),(0,a.kt)("li",{parentName:"ul"},"Deposits Event fix ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3212"},"#3212"),". This pr\nadjusts the Deposits ledger events, so that it can be better used by db-sync. This can reduce the\nnumber of queries that db-sync does during syncing an make syncing faster.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9b7a95a2.c1c88053.js b/assets/js/9b7a95a2.c1c88053.js new file mode 100644 index 0000000000..95151b564b --- /dev/null +++ b/assets/js/9b7a95a2.c1c88053.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7266],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),h=p(n),c=a,d=h["".concat(l,".").concat(c)]||h[c]||m[c]||o;return n?r.createElement(d,s(s({ref:t},u),{},{components:n})):r.createElement(d,s({ref:t},u))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=c;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[h]="string"==typeof e?e:a,s[1]=i;for(var p=2;p<o;p++)s[p]=n[p];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}c.displayName="MDXCreateElement"},54972:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2022-10-18-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2022-10-18-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-18-consensus.md",source:"@site/blog/2022-10-18-consensus.md",title:"Consensus Team Update",description:"High-level summary",date:"2022-10-18T00:00:00.000Z",formattedDate:"October 18, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:3.225,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-10-18-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-10-19-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2022-10-14-hydra"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"High-level status report",id:"high-level-status-report",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Finish the UTxO HD prototype",id:"finish-the-utxo-hd-prototype",level:3},{value:"Era transition property tests",id:"era-transition-property-tests",level:4},{value:"Mempool state-machine tests",id:"mempool-state-machine-tests",level:4},{value:"Backing store property tests",id:"backing-store-property-tests",level:4},{value:"Benchmarking the CSJ prototype",id:"benchmarking-the-csj-prototype",level:3}],u={toc:p},h="wrapper";function m(e){let{components:t,...o}=e;return(0,a.kt)(h,(0,r.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,a.kt)("p",null,"During the past two weeks, the consensus team worked on adding property test for\ndifferent aspects of the UTxO HD prototype: era transitions, mempool, and\nbacking store. Thanks to these tests we were able to uncover a bug in the\nprototype. On the Genesis front, we benchmarked a different version of the\nChainSync jumping prototype to try to improve its performance, but this did not\nresult in any noticeable speedup."),(0,a.kt)("h2",{id:"high-level-status-report"},"High-level status report"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Finish the UTxO HD prototype: on track.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We focused on increasing test coverage for the UTxO-HD prototype:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We started implementing Cadano-eras transition property-tests."),(0,a.kt)("li",{parentName:"ul"},"We started implementing state-machine property-tests for the mempool."),(0,a.kt)("li",{parentName:"ul"},"We merged the mempool rewrite."),(0,a.kt)("li",{parentName:"ul"},"We started working on state-machine tests for the backing store. This\nuncovered a bug in the range-read implementation of the LMDB backing\nstore."))))),(0,a.kt)("li",{parentName:"ul"},"Genesis: on track.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We benchmarked a version of the Genesis ChainSync Jumping prototype that\nspreads out the ChainSync updates over a longer period of time. This did not\nresult in any noticeable speedup."),(0,a.kt)("li",{parentName:"ul"},"We investigated the overhead introduced by non-ChainSync components, but no\nconclusions could be drawn from the benchmarks we ran.")))),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"finish-the-utxo-hd-prototype"},"Finish the UTxO HD prototype"),(0,a.kt)("p",null,"We focused on increasing test coverage for the UTxO HD prototype. We also merged\nthe ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4049"},"mempool\nrewrite"),"."),(0,a.kt)("h4",{id:"era-transition-property-tests"},"Era transition property tests"),(0,a.kt)("p",null,"We started implementing ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4043"},"Cardano era transition property\ntests"),",\nwhich are needed for making sure that the ledger tables get updated in the\nright way when we move from one era to the next. There are at the moment two\nimportant transitions."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Byron to Shelley: where all the UTxO is transferred from in-memory Byron\nstate (which has no tables) to the ledger tables of the Shelley state."),(0,a.kt)("li",{parentName:"ul"},"Shelley to Allegra: where the AVVM addresses must be deleted.")),(0,a.kt)("p",null,"We have tests for the Byron to Shelley transitions. We are working on adding\nthe remaining ones."),(0,a.kt)("h4",{id:"mempool-state-machine-tests"},"Mempool state-machine tests"),(0,a.kt)("p",null,"We started implementing ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4044"},"state-machine property tests for the\nmempool"),".\nThe mempool is currently tested via pure property tests, and use a ledger\nstate without tables. With the introduction of UTxO HD, testing the concurrent\nbehavior of the mempool became of crucial importance (eg now we have to\nacquire locks to flush the backing store). In addition, we need to test a\nledger state with tables. These needs led to the creation of a new set of\nproperty tests. In particular we aim to run parallel state-machine tests that\nexercise the mempool in a way similar to how the node would make use of it."),(0,a.kt)("h4",{id:"backing-store-property-tests"},"Backing store property tests"),(0,a.kt)("p",null,"We started working on ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4081"},"state-machine tests for the backing\nstore")," that UTxO\nHD uses. The property tests uncovered errors in the range-reads implementation\nof the LMDB backing store. To facilitate fixing this bug, we made\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/lmdb-simple/pull/1"},"changes")," to the Haskell\nLMDB bindings."),(0,a.kt)("h3",{id:"benchmarking-the-csj-prototype"},"Benchmarking the CSJ prototype"),(0,a.kt)("p",null,"Prompted by previous benchmarks showing significant improvements in sync time by\nusing more capabilities, we implemented a way to spread out the ChainSync\nupdates over a larger period instead of firing them all at the same time. This\ndidn't result in a noticeable speedup."),(0,a.kt)("p",null,"We also benchmarked the prototype with CSJ disabled (such that just the dynamo\npeer is running ChainSync, but e.g. BlockFetch still sees all peers) to rule\nout/confirm overhead by non-ChainSync (mainly BlockFetch) related components.\nThis results in era-specific behavior (speed is like the prototype in Byron, but\nlike the baseline in Shelley). This deserves a closer look in the future."),(0,a.kt)("p",null,"This diagram shows the respective syncing progress, starting at Genesis and\ncontinuing a good part into Shelley (with the dashed line indicating the\nByron-to-Shelley transition)."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Red: baseline"),(0,a.kt)("li",{parentName:"ul"},"Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps."),(0,a.kt)("li",{parentName:"ul"},"Blue: like Green, jumps are spread out."),(0,a.kt)("li",{parentName:"ul"},"Orange: variant with no jumping, to measure unrelated overhead.")),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(35555).Z,width:"654",height:"459"})))}m.isMDXComponent=!0},35555:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/happy-path-csj-prototype-bench-2-e23d2986ddef0a187df9ce336b2db116.svg"}}]); \ No newline at end of file diff --git a/assets/js/9ba26136.55b0cd6e.js b/assets/js/9ba26136.55b0cd6e.js new file mode 100644 index 0000000000..c512ab19d9 --- /dev/null +++ b/assets/js/9ba26136.55b0cd6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[62231],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),s=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=s(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=s(r),d=n,m=c["".concat(l,".").concat(d)]||c[d]||h[d]||a;return r?o.createElement(m,p(p({ref:t},u),{},{components:r})):o.createElement(m,p({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,p=new Array(a);p[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:n,p[1]=i;for(var s=2;s<a;s++)p[s]=r[s];return o.createElement.apply(null,p)}return o.createElement.apply(null,r)}d.displayName="MDXCreateElement"},19146:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var o=r(87462),n=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-10-15-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},p=void 0,i={permalink:"/2023-10-15-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-15-network.md",source:"@site/blog/2023-10-15-network.md",title:"Network Team Update",description:"High-level overview of sprint 46",date:"2023-10-15T00:00:00.000Z",formattedDate:"October 15, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:.59,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-10-15-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-10-18-mithril"},nextItem:{title:"Goedel Team Update",permalink:"/2023-10-13-goedel"}},l={authorsImageUrls:[void 0]},s=[{value:"High-level overview of sprint 46",id:"high-level-overview-of-sprint-46",level:2},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"Towards Typed Protocols 0.2.0.0",id:"towards-typed-protocols-0200",level:3},{value:"Peer Sharing",id:"peer-sharing",level:3},{value:"Tech Debt",id:"tech-debt",level:3}],u={toc:s},c="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-46"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+46%22"},"sprint 46")),(0,n.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,n.kt)("p",null,"We continued reviewing of bootstrap peers, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4555"},"ouroboros-network#4555"),"."),(0,n.kt)("h3",{id:"towards-typed-protocols-0200"},"Towards Typed Protocols 0.2.0.0"),(0,n.kt)("p",null,"We diagnosed the performance regression of the new design. The work on\n",(0,n.kt)("inlineCode",{parentName:"p"},"typed-protocols")," will be postponed. For more details see the\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/3"},"typed-protocols#3"),". As an outcome of the performance debugging we prepared\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4691"},"PR")," which updates the ",(0,n.kt)("inlineCode",{parentName:"p"},"demo-ping-pong")," and\n",(0,n.kt)("inlineCode",{parentName:"p"},"demo-chain-sync")," applications."),(0,n.kt)("h3",{id:"peer-sharing"},"Peer Sharing"),(0,n.kt)("p",null,"We made progress in review of ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4644"},"ouroboros-network#4644"),", which simplifies the\npeer sharing and fixes the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4642"},"ouroboros-network#4642")," issue."),(0,n.kt)("h3",{id:"tech-debt"},"Tech Debt"),(0,n.kt)("p",null,"We reviewed the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3836"},"ouroboros-network#3836")," PR which inspects all the uses of\n",(0,n.kt)("inlineCode",{parentName:"p"},"error")," in ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),". The PR was prepared by Galois."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9bb237b8.d1f95429.js b/assets/js/9bb237b8.d1f95429.js new file mode 100644 index 0000000000..f2e9eab876 --- /dev/null +++ b/assets/js/9bb237b8.d1f95429.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17251],{59516:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/9bd1b7cb.eee0cabf.js b/assets/js/9bd1b7cb.eee0cabf.js new file mode 100644 index 0000000000..6511c0d2da --- /dev/null +++ b/assets/js/9bd1b7cb.eee0cabf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[83025],{54230:a=>{a.exports=JSON.parse('{"label":"sre","permalink":"/tags/sre","allTagsPath":"/tags","count":29}')}}]); \ No newline at end of file diff --git a/assets/js/9c00a84f.f1331e7b.js b/assets/js/9c00a84f.f1331e7b.js new file mode 100644 index 0000000000..5a817ad782 --- /dev/null +++ b/assets/js/9c00a84f.f1331e7b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[31529],{46529:a=>{a.exports=JSON.parse('{"label":"network","permalink":"/tags/network","allTagsPath":"/tags","count":35}')}}]); \ No newline at end of file diff --git a/assets/js/9c781688.ce339223.js b/assets/js/9c781688.ce339223.js new file mode 100644 index 0000000000..ef698e827b --- /dev/null +++ b/assets/js/9c781688.ce339223.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92043],{7721:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/9c7979b1.d64d4d6e.js b/assets/js/9c7979b1.d64d4d6e.js new file mode 100644 index 0000000000..df784c9453 --- /dev/null +++ b/assets/js/9c7979b1.d64d4d6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[31757],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=a.createContext({}),u=function(e){var t=a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=u(e.components);return a.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),s=u(r),m=n,h=s["".concat(i,".").concat(m)]||s[m]||d[m]||o;return r?a.createElement(h,l(l({ref:t},c),{},{components:r})):a.createElement(h,l({ref:t},c))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[s]="string"==typeof e?e:n,l[1]=p;for(var u=2;u<o;u++)l[u]=r[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},71635:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2023-08-18-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,p={permalink:"/2023-08-18-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-sre.md",source:"@site/blog/2023-08-18-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-08-18T00:00:00.000Z",formattedDate:"August 18, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.66,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-08-18-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-08-18-network"},nextItem:{title:"Crypto Team Update",permalink:"/2023-08-17-crypto"}},i={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Inputs-check",id:"inputs-check",level:3}],c={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet and shelley-qa environments were updated to 8.2.1-pre."),(0,n.kt)("li",{parentName:"ul"},"Work on two new repos utilizing ",(0,n.kt)("a",{parentName:"li",href:"https://flake.parts"},"flake parts")," for cardano cluster generation, automation and operation.",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts"},"cardano-parts")," -- Nix flake parts for cardano clusters"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground"},"cardano-playground")," -- Cardano testnet clusters")))),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano p2p relay and alert threshold adjustments: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/c4a04cc...5a0eabe"},"cardano-ops-compare"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"New repo: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts"},"cardano-parts"))),(0,n.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Misc improvements to perf cluster functionality: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/0944c40...d3a8644"},"cardano-perf-compare"))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"New repo: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground"},"cardano-playground"))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Improve explorer topology generation alerting: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/109"},"cardano-world-pull-109")),(0,n.kt)("li",{parentName:"ul"},"Update p2p configs: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/110"},"cardano-world-pull-110"))),(0,n.kt)("h3",{id:"inputs-check"},"Inputs-check"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A flake parts module to check input closure sizes recursively for optimization considerations: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/inputs-check"},"inputs-check"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9c96fa11.940ac50d.js b/assets/js/9c96fa11.940ac50d.js new file mode 100644 index 0000000000..2f013bb07a --- /dev/null +++ b/assets/js/9c96fa11.940ac50d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90178],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),u=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=u(a),c=n,h=m["".concat(s,".").concat(c)]||m[c]||d[c]||i;return a?r.createElement(h,o(o({ref:t},p),{},{components:a})):r.createElement(h,o({ref:t},p))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<i;u++)o[u]=a[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},42764:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-03-31-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-31-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-31-hydra.md",source:"@site/blog/2023-03-31-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-03-31T00:00:00.000Z",formattedDate:"March 31, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.82,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-03-31-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-03-31-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-03-31-ledger"}},s={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra continued work on finishing mainnet compatibility. The\nsemi-automated smoke tests and some missing documentation is still preventing\nfrom calling that fully done. They fixed smaller issues and made a step in the\nHead protocol more robust. Besides development, they met with interested people\nfrom the community who want to get started collaborating on communication and\nmarketing materials."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Groomed and followed-up on ",(0,n.kt)("inlineCode",{parentName:"li"},"GetUTxO")," user request discussion ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/discussions/797"},"#797")),(0,n.kt)("li",{parentName:"ul"},"Fixed ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")," crashes after forks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/560"},"#560")),(0,n.kt)("li",{parentName:"ul"},"Made ",(0,n.kt)("inlineCode",{parentName:"li"},"collectCom")," more robust and aligned with spec ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/786"},"#786")),(0,n.kt)("li",{parentName:"ul"},"Completed configurable API feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/380"},"#380")),(0,n.kt)("li",{parentName:"ul"},"Met potential contributors about Hydra communication and marketing materials"),(0,n.kt)("li",{parentName:"ul"},"Versioned documentation: we have a ",(0,n.kt)("inlineCode",{parentName:"li"},"unstable")," bleeding edge version available as well now, seperate from the last released version")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Follow-up backlog and roadmap clean-up"),(0,n.kt)("li",{parentName:"ul"},"Complete mainnet compatibility feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/713"},"#713")," (documentation updates)"),(0,n.kt)("li",{parentName:"ul"},"Integrate Hydra specification into repository ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/693"},"#693"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9cab6d73.1ed8bc89.js b/assets/js/9cab6d73.1ed8bc89.js new file mode 100644 index 0000000000..f7c2f1950d --- /dev/null +++ b/assets/js/9cab6d73.1ed8bc89.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93203],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),h=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=h(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=h(a),c=n,d=p["".concat(s,".").concat(c)]||p[c]||m[c]||i;return a?r.createElement(d,o(o({ref:t},u),{},{components:a})):r.createElement(d,o({ref:t},u))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var h=2;h<i;h++)o[h]=a[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},72305:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-07-07-hydra",authors:["ffakenz","v0d1ch"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-07-07-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-07-hydra.md",source:"@site/blog/2023-07-07-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-07-07T00:00:00.000Z",formattedDate:"July 7, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.865,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"},{name:"Sasha Bogicevic",title:"Hydra Software Engineer",url:"https://github.com/v0d1ch",imageURL:"https://github.com/v0d1ch.png",key:"v0d1ch"}],frontMatter:{title:"Hydra Team Update",slug:"2023-07-07-hydra",authors:["ffakenz","v0d1ch"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-07-07-goedel"},nextItem:{title:"SRE Team Update",permalink:"/2023-07-07-sre"}},s={authorsImageUrls:[void 0,void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:h},p="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week the Hydra team accomplished some nice progress. They secured the\nnetwork layer further by implementing authentication of the messages between the\npeers in the Head protocol. In the process they also managed to separate\nHeartBeat messages from the protocol ones which somewhat improved the quality of\ncode in Hydra. The team also finished work related to sending only transaction\nids in ReqSn messages, fixed an issue in the smoke tests, and improved benchmark\npublishing on the website."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/727"},"Implemented")," authenticated messages"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/728"},"Implemented")," send only transaction ids in ReqSn messages"),(0,n.kt)("li",{parentName:"ul"},"Separate ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/969"},"HeartBeat")," messages from the core network protocol messages"),(0,n.kt)("li",{parentName:"ul"},"Publish multiple pre-defined ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/947"},"benchmarks")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/967"},"Fixed")," a smoke-test issue where funds would not be returned to the faucet"),(0,n.kt)("li",{parentName:"ul"},"Found a bug in the ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-ghsa-c8qp-cv4h-vcc4/pull/1"},"off-chain signature\nverification"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Spike on performance improvements of event sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/913"},"#913")),(0,n.kt)("li",{parentName:"ul"},"Add new endpoint for submitting client transactions"),(0,n.kt)("li",{parentName:"ul"},"Remove commit from internal wallet")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9ce37f6e.bf4f1a6a.js b/assets/js/9ce37f6e.bf4f1a6a.js new file mode 100644 index 0000000000..f6cb3c32b3 --- /dev/null +++ b/assets/js/9ce37f6e.bf4f1a6a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[66764],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=p(a),m=n,d=u["".concat(s,".").concat(m)]||u[m]||c[m]||i;return a?r.createElement(d,o(o({ref:t},h),{},{components:a})):r.createElement(d,o({ref:t},h))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<i;p++)o[p]=a[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},79098:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-12-01-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-12-01-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-01-hydra.md",source:"@site/blog/2023-12-01-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-12-01T00:00:00.000Z",formattedDate:"December 1, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.865,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-12-01-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2023-12-04-performance-and-tracing"},nextItem:{title:"Consensus Team Update",permalink:"/2023-11-29-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:p},u="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team conducted a packed Monthly Review meeting,\nfeaturing demonstrations and the preparation of the monthly report. They\naddressed flakiness in tests and enhanced the logs json schema,\nimproving overall test reliability. Additionally, the team successfully\nbuilt MacOS ARM64 (",(0,n.kt)("inlineCode",{parentName:"p"},"aarch64-darwin"),") binaries in CI, expanding platform\nsupport. They further improved the network configuration by detecting\nincompatible persisted states, contributing to overall system\nrobustness. Finally, the team released version 0.14.0, highlighting\ntheir commitment to delivering regular updates and improvements."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly Review\n",(0,n.kt)("a",{parentName:"li",href:"https://drive.google.com/file/d/1-iv8IveUzA2KrJV_Kqrgx4ts05Ow0zjM"},"meeting"),"\npacked with demonstrations and prepared monthly report\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1189"},"#","1189")),(0,n.kt)("li",{parentName:"ul"},"Fixed several flaky tests and improved the logs json schema\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1188"},"#","1188"),(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1190"},"#","1190"),(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1192"},"#","1192")),(0,n.kt)("li",{parentName:"ul"},"Built MacOS ARM64 (",(0,n.kt)("inlineCode",{parentName:"li"},"aarch64-darwin"),") binaries in CI\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1182"},"#","1182")),(0,n.kt)("li",{parentName:"ul"},"Improved network configuration by detecting incompatible persisted\nstates ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1174"},"#","1174")),(0,n.kt)("li",{parentName:"ul"},"Released version 0.14.0")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Start work on incremental decommit"),(0,n.kt)("li",{parentName:"ul"},"Continue shepherding contributed PRs to completion"),(0,n.kt)("li",{parentName:"ul"},"Finish stateless-observation work"),(0,n.kt)("li",{parentName:"ul"},"Open a head on a Conway network")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9d4323f3.11459e20.js b/assets/js/9d4323f3.11459e20.js new file mode 100644 index 0000000000..820e3c6941 --- /dev/null +++ b/assets/js/9d4323f3.11459e20.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[79166],{21164:e=>{e.exports=JSON.parse('{"permalink":"/page/41","page":41,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/40","nextPage":"/page/42","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/9d7869bb.142282dd.js b/assets/js/9d7869bb.142282dd.js new file mode 100644 index 0000000000..9773dc6c99 --- /dev/null +++ b/assets/js/9d7869bb.142282dd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[37734],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>h});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){l(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,l=function(e,t){if(null==e)return{};var a,r,l={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},m=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),d=u(a),s=l,h=d["".concat(p,".").concat(s)]||d[s]||c[s]||n;return a?r.createElement(h,o(o({ref:t},m),{},{components:a})):r.createElement(h,o({ref:t},m))}));function h(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,o=new Array(n);o[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:l,o[1]=i;for(var u=2;u<n;u++)o[u]=a[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}s.displayName="MDXCreateElement"},91509:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>c,frontMatter:()=>n,metadata:()=>i,toc:()=>u});var r=a(87462),l=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2023-09-01-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-09-01-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-ledger.md",source:"@site/blog/2023-09-01-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-09-01T00:00:00.000Z",formattedDate:"September 1, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.355,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-09-01-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-09-01-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-09-01-network"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway era",id:"conway-era",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3},{value:"Testing",id:"testing",level:3}],m={toc:u},d="wrapper";function c(e){let{components:t,...a}=e;return(0,l.kt)(d,(0,r.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"Broadly speaking the Ledger team focused on a few main areas of Conway era:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Creation of voting state snapshots in order to correctly delay ratification for one epoch"),(0,l.kt)("li",{parentName:"ul"},"Validation of the Governance Actions sequencing and ordering"),(0,l.kt)("li",{parentName:"ul"},"Proper expiry of DReps and Proposal Procedures"),(0,l.kt)("li",{parentName:"ul"},"Expanding Conway Genesis functionality"),(0,l.kt)("li",{parentName:"ul"},"Utilization of some of the new Protocol Parameters in ledger validation rules")),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway-era"},"Conway era"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3659"},"pull-3659")," - Validate Network for ProposalProcedure and TreasuryWithdrawal"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3637"},"pull-3637")," - Avoid using sequence of tuples, by adding GovActionId to GovActionState"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3651"},"pull-3651")," - Inactive DReps"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3664"},"pull-3664")," - Track proposal expiry"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3668"},"pull-3668")," - Add min committee size predicate to NewCommittee"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3669"},"pull-3669")," - Add Proposal deposit check against PParam"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3676"},"pull-3676")," - Fix inactive PoolStake not counting as Drep Stake"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3635"},"pull-3635")," - Make snapshots of GovActionsState"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3670"},"pull-3670")," - Validate previously enacted govAction"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3694"},"pull-3694")," - Improve error reporting on the positive coin decoder"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3674"},"pull-3674")," - Added RATIFY thresholds"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3684"},"pull-3684")," - Add proposal delaying, remove predicate failure from ENACT"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3688"},"pull-3688")," - DRep Refunds and update evalTransactionBalance")),(0,l.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3677"},"pull-3677")," - Minor patch that fixes the DRep distribution computation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3686"},"pull-3686")," - Post patch release fixup"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3695"},"pull-3695")," - Changelog for cardano-node-8.3 release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3683"},"pull-3683")," - Add two new bench mark programs")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3662"},"pull-3662")," - Equality on raw types")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9de5c9e8.4da694a2.js b/assets/js/9de5c9e8.4da694a2.js new file mode 100644 index 0000000000..a4528d2bbc --- /dev/null +++ b/assets/js/9de5c9e8.4da694a2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90399],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,s(s({ref:t},u),{},{components:n})):r.createElement(f,s({ref:t},u))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var c=2;c<o;c++)s[c]=n[c];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},39756:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-01-24-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-01-24-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-24-consensus.md",source:"@site/blog/2024-01-24-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-01-24T00:00:00.000Z",formattedDate:"January 24, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.345,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-01-24-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-01-26-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-01-24-mithril"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This week the team continued working on the second iteration of the Ledger DB API for UTxO-HD, as well as on Genesis.\nWe incorporated further improvements to the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/879"},"onboarding documentation"),", and ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/891"},"wrote a document")," explaining a specific subtlety of our chain orders.\nFor Conway, we integrated ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/894"},"DReps and initial delegates injection"),", which will allow the Performance and Tracing team to run benchmarks for this era."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9dee36e7.6658a7f5.js b/assets/js/9dee36e7.6658a7f5.js new file mode 100644 index 0000000000..60360f554b --- /dev/null +++ b/assets/js/9dee36e7.6658a7f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58744],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=a.createContext({}),u=function(e){var t=a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=u(e.components);return a.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),s=u(r),m=n,h=s["".concat(i,".").concat(m)]||s[m]||d[m]||o;return r?a.createElement(h,l(l({ref:t},c),{},{components:r})):a.createElement(h,l({ref:t},c))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[s]="string"==typeof e?e:n,l[1]=p;for(var u=2;u<o;u++)l[u]=r[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},57912:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2023-08-18-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,p={permalink:"/2023-08-18-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-sre.md",source:"@site/blog/2023-08-18-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-08-18T00:00:00.000Z",formattedDate:"August 18, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.66,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-08-18-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-08-18-network"},nextItem:{title:"Crypto Team Update",permalink:"/2023-08-17-crypto"}},i={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Inputs-check",id:"inputs-check",level:3}],c={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet and shelley-qa environments were updated to 8.2.1-pre."),(0,n.kt)("li",{parentName:"ul"},"Work on two new repos utilizing ",(0,n.kt)("a",{parentName:"li",href:"https://flake.parts"},"flake parts")," for cardano cluster generation, automation and operation.",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts"},"cardano-parts")," -- Nix flake parts for cardano clusters"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground"},"cardano-playground")," -- Cardano testnet clusters")))),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano p2p relay and alert threshold adjustments: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/c4a04cc...5a0eabe"},"cardano-ops-compare"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"New repo: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts"},"cardano-parts"))),(0,n.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Misc improvements to perf cluster functionality: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/0944c40...d3a8644"},"cardano-perf-compare"))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"New repo: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground"},"cardano-playground"))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Improve explorer topology generation alerting: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/109"},"cardano-world-pull-109")),(0,n.kt)("li",{parentName:"ul"},"Update p2p configs: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/110"},"cardano-world-pull-110"))),(0,n.kt)("h3",{id:"inputs-check"},"Inputs-check"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A flake parts module to check input closure sizes recursively for optimization considerations: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/inputs-check"},"inputs-check"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9e3f42ed.728b7faf.js b/assets/js/9e3f42ed.728b7faf.js new file mode 100644 index 0000000000..738352e3c0 --- /dev/null +++ b/assets/js/9e3f42ed.728b7faf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[30717],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},60252:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-03-27-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-27-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-27-mithril.md",source:"@site/blog/2024-03-27-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-03-27T00:00:00.000Z",formattedDate:"March 27, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.475,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-03-27-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-03-27-ledger"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-03-27-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team released a new ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2412.0"},(0,i.kt)("inlineCode",{parentName:"a"},"Mithril distribution 2412.0")),". This release includes several critical updates and enhancements, such as support for the Prometheus metrics endpoint in signer, deprecation of the ",(0,i.kt)("inlineCode",{parentName:"p"},"snapshot")," command in the client CLI, full Pallas-based implementation of the chain observer, and support for Cardano node v.8.9.0. "),(0,i.kt)("p",null,"The team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet"),", kept implementing a more versatile beaconing mechanism, reducing the latency of transactions signature, and continued investigating a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they started working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network."),(0,i.kt)("p",null,"Finally, the team completed the implementation of some community-requested features to verify the output folder structure made by the client, and kept investigating a source of flakiness in the CI end-to-end test."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2412.0"},(0,i.kt)("inlineCode",{parentName:"a"},"2412.0"))),(0,i.kt)("li",{parentName:"ul"},"Publication of a ",(0,i.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/03/26/mithril-signer-prometheus-endpoint"},"dev blog post")," about the ",(0,i.kt)("strong",{parentName:"li"},"Mithril signer Prometheus endpoint release")),(0,i.kt)("li",{parentName:"ul"},"Publication of a ",(0,i.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/03/26/client-cli-deprecated-command"},"dev blog post")," about the ",(0,i.kt)("strong",{parentName:"li"},"Mithril client CLI ",(0,i.kt)("inlineCode",{parentName:"strong"},"snapshot")," command deprecation")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement a Block Range Merkle Tree for ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1533"},"#1533")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Do not require the mithril client to create the DB directory")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1572"},"#1572")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Support multiple beacon types in signer/aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1562"},"#1562")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril relay broadcasts signer registrations with P2P PubSub")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1587"},"#1587")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Provide fake aggregator data in an aggregated form")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1594"},"#1594")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Some transactions are not signed in ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1577"},"#1577")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"End to end tests are flaky in CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1558"},"#1558"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9e4087bc.47006cd4.js b/assets/js/9e4087bc.47006cd4.js new file mode 100644 index 0000000000..c1b0c61b66 --- /dev/null +++ b/assets/js/9e4087bc.47006cd4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53608],{63169:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});var r=a(67294),l=a(39960),n=a(95999),c=a(1944),m=a(93285);function s(e){let{year:t,posts:a}=e;return r.createElement(r.Fragment,null,r.createElement("h3",null,t),r.createElement("ul",null,a.map((e=>r.createElement("li",{key:e.metadata.date},r.createElement(l.Z,{to:e.metadata.permalink},e.metadata.formattedDate," - ",e.metadata.title))))))}function i(e){let{years:t}=e;return r.createElement("section",{className:"margin-vert--lg"},r.createElement("div",{className:"container"},r.createElement("div",{className:"row"},t.map(((e,t)=>r.createElement("div",{key:t,className:"col col--4 margin-vert--lg"},r.createElement(s,e)))))))}function o(e){let{archive:t}=e;const a=(0,n.I)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),l=(0,n.I)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),s=function(e){const t=e.reduceRight(((e,t)=>{const a=t.metadata.date.split("-")[0],r=e.get(a)??[];return e.set(a,[t,...r])}),new Map);return Array.from(t,(e=>{let[t,a]=e;return{year:t,posts:a}}))}(t.blogPosts);return r.createElement(r.Fragment,null,r.createElement(c.d,{title:a,description:l}),r.createElement(m.Z,null,r.createElement("header",{className:"hero hero--primary"},r.createElement("div",{className:"container"},r.createElement("h1",{className:"hero__title"},a),r.createElement("p",{className:"hero__subtitle"},l))),r.createElement("main",null,s.length>0&&r.createElement(i,{years:s}))))}}}]); \ No newline at end of file diff --git a/assets/js/9e570fef.56dbda22.js b/assets/js/9e570fef.56dbda22.js new file mode 100644 index 0000000000..5a53ee5bc3 --- /dev/null +++ b/assets/js/9e570fef.56dbda22.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32925],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,g=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(g,l(l({ref:t},m),{},{components:r})):n.createElement(g,l({ref:t},m))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},62129:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-09-15-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-09-15-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-goedel.md",source:"@site/blog/2023-09-15-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-09-15T00:00:00.000Z",formattedDate:"September 15, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.44,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-09-15-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-09-20-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-09-15-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and also further\ndeveloping the performance modelling prototype."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"working on collating and open sourcing performance analysis prototype")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"improvements to Ouroboros Praos specification in Isabelle")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"working on formalising chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"reviewing an alternatice semantics for DeltaQ")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Seminar talk at U. Bergen on algebraic properties of timeliness"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9ef45f96.8154d34f.js b/assets/js/9ef45f96.8154d34f.js new file mode 100644 index 0000000000..71f623526f --- /dev/null +++ b/assets/js/9ef45f96.8154d34f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92898],{20379:e=>{e.exports=JSON.parse('{"permalink":"/page/53","page":53,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/52","nextPage":"/page/54","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/9f11a452.79f74d58.js b/assets/js/9f11a452.79f74d58.js new file mode 100644 index 0000000000..9b85edac43 --- /dev/null +++ b/assets/js/9f11a452.79f74d58.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[86358],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=i,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},11688:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-07-03-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-07-03-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-03-mithril.md",source:"@site/blog/2024-07-03-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-07-03T00:00:00.000Z",formattedDate:"July 3, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.22,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-07-03-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-07-03-ledger"},nextItem:{title:"Consensus Team Update",permalink:"/2024-06-26-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They completed the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas and worked on fixing some bugs occurring during the warmup phase of the signer and aggregator. They also worked on supporting the new Cardano node version 8.12 and kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network."),(0,i.kt)("p",null,"Finally, the team fixed a bug that prevented the parsing of some blocks in the SanchoNet network and made some optimizations on the databases of the signer and aggregator."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Import Cardano transactions with ",(0,i.kt)("inlineCode",{parentName:"strong"},"ChainReader"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1705"},"#1705")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Cardano signatures are not produced on ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1750"},"#1750")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"SQLite WAL files are not truncated in signer and aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1707"},"#1707")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Conditional embedding of Cardano CLI in Docker images")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1725"},"#1725")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"CIP for Mithril signature diffusion through Cardano network")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1775"},"#1775")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Optimize Cardano transaction prover performances with parallelization")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1756"},"#1756")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Upgrade Cardano node ",(0,i.kt)("inlineCode",{parentName:"strong"},"8.12.2"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1787"},"#1787")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Aggregator/Signer preload transactions when Cardano transactions certification is not activated")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1782"},"#1782")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Cardano transaction importer does not import the last block advertised as certified")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1785"},"#1785")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Lint Markdown/JavaScript files in repository")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1754"},"#1754"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9f4f09d0.41c1bbf4.js b/assets/js/9f4f09d0.41c1bbf4.js new file mode 100644 index 0000000000..f117595f6f --- /dev/null +++ b/assets/js/9f4f09d0.41c1bbf4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[62009],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>h});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},d=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),m=c(t),u=a,h=m["".concat(s,".").concat(u)]||m[u]||p[u]||o;return t?r.createElement(h,i(i({ref:n},d),{},{components:t})):r.createElement(h,i({ref:n},d))}));function h(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=u;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=t[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}u.displayName="MDXCreateElement"},56419:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=t(87462),a=(t(67294),t(3905));const o={title:"Performance & Tracing Update",slug:"2024-05-24-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-05-24-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-24-performance-and-tracing.md",source:"@site/blog/2024-05-24-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-05-24T00:00:00.000Z",formattedDate:"May 24, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:3.87,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-05-24-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-05-27-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2024-05-24-sre"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3}],d={toc:c},m="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(m,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Node versions ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"8.11.0"),"; new ",(0,a.kt)("inlineCode",{parentName:"li"},"PlutusV3")," plus addtional ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep")," benchmarks; re-evaluation of network latency."),(0,a.kt)("li",{parentName:"ul"},"Development: BLST workload for PlutusV3 was implemented; improved error/shutdown behaviour for ",(0,a.kt)("inlineCode",{parentName:"li"},"tx-generator")," is in testing phase."),(0,a.kt)("li",{parentName:"ul"},"Workbench: UTxO-HD tracer configs harmonized. New ",(0,a.kt)("inlineCode",{parentName:"li"},"plutusv3")," profiles supporting experimental budgets. Work on Haskell profile definition is in validation phase."),(0,a.kt)("li",{parentName:"ul"},"Tracing: New metrics and handle registry feature merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master"),". Work on metrics naming ongoing. Factoring out RTView component has begun.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"Runs and analyses of full sets of release benchmarks have been performed for Node versions ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.3")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"8.11.0"),". "),(0,a.kt)("p",null,"For comparison of how the Conway ledger performs when injecting large amounts of ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s and delegations versus one with zero ",(0,a.kt)("inlineCode",{parentName:"p"},"DReps")," we've run additional configurations with existing workloads from release benchmarking. So far we've found\nthat the number of ",(0,a.kt)("inlineCode",{parentName:"p"},"DReps")," in ledger scales well and does not lead to notable performance penalties. "),(0,a.kt)("p",null,"Additionally, we've successfully run the baseline for the upcoming ",(0,a.kt)("inlineCode",{parentName:"p"},"PlutusV3")," benchmarks on our Nomad cluster. Those will, given the new V3 cost model, serve to determine headroom, or constraint, regarding resource usage and network metrics when\noperating under various execution budgets. "),(0,a.kt)("p",null,"Last not least, with much appreciated support and feedback from the network team, we performed a re-evaluation of the network the latency matrix for our benchmarking cluster. The cluster stretches over three regions globally. Due to unknown changes in the underlying\nhardware infrastructure, a slight delay between Europe and Asia/Pacific regions could be measured. We needed to adjust some existing baselines accordingly - otherwise, this delay could be falsely attributed to a software regression."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"We have implemented a benchmarking workload using ",(0,a.kt)("inlineCode",{parentName:"p"},"PlutusV3"),"'s new BLST internals. As those do little memory allocation, but require more CPU steps, this workload will allow us to focus on that particular aspect of block and transaction budgets."),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"tx-generator")," service will now label each submission thread with its submission target. Additionally, it has been equipped with custom signal handlers. This will improve both how gracefully shutdowns can be performed, and how\nprecise error reporting is done when losing connection to a submission target. Last not least, the service now supports a configurable ",(0,a.kt)("inlineCode",{parentName:"p"},"KeepAlive")," timeout for the ",(0,a.kt)("inlineCode",{parentName:"p"},"NodeToNode")," mini-protocol - accounting for very long major GC pauses on\nsubmission targets under very specific benchmarking workloads. Those features have entered testing phase. "),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"Thanks to feedback from the consensus team, we've harmonized tracing configurations for our benchmarks between regular and UTxO-HD node. As the latter is more verbose by default, this is a confounding factor for our metrics: We're analysing north\nof 90 traces per second per cluster node, so all node flavours are required to be equally verbose. "),(0,a.kt)("p",null,"The benchmarks based on the BLST workload now additionally support scaling budget components up or down at will. This means we can run a given cost model against custom execution budgets, controlling the point where the workload will exhaust it. This enables comparison\nof performance impact of potential changes to those budgets. "),(0,a.kt)("p",null,"Porting our performance workbench's profile definitions to Haskell has been nearly completed, and an adequate test suite been implemented. This new component has now entered validation phase to make sure it correctly replicates all existing profile content."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"Two new metrics for ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," have landed in ",(0,a.kt)("inlineCode",{parentName:"p"},"master")," - both for new and legacy tracing systems. They provide detailed build info, and indicate wether the node is a block producer or not. "),(0,a.kt)("p",null,"We're now working on closing the gap in the metric naming schema between new and legacy tracing. The aim is to allow for a seamless interchange, without additional configuration required, so that all existing monitoring services can rely on identical metric\nnames with identical semantics. "),(0,a.kt)("p",null,'Furthermore, work has begun to factor out the RTView ("real-time view") component of ',(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," in the new tracing system. Unfortunately, the component has remained in prototype stage for over a year, and has revealed some design shortcomings. It's aim\nis to provide an interactive, real-time dashboard based on metrics from all nodes connected to ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),". The current design has all front-end side code baked into the backend service, requiring to rebuild the entire service in Haskell even for simple changes in the\ndashboard. We decided to isolate the component in the current code base, which still allows for optionally enabling it for a build. The long term goal however is to convert it into a downstream service: It will ingest metrics by reforwarding, or querying a REST API, and will provide\na clear separation of frontend facing code. Thus we, and anybody, can use their favourite web technology for visualization of metrics."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9f70a142.e4213a9e.js b/assets/js/9f70a142.e4213a9e.js new file mode 100644 index 0000000000..28345adbd2 --- /dev/null +++ b/assets/js/9f70a142.e4213a9e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6169],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=s(r),h=n,g=m["".concat(u,".").concat(h)]||m[h]||c[h]||i;return r?a.createElement(g,l(l({ref:t},p),{},{components:r})):a.createElement(g,l({ref:t},p))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,l=new Array(i);l[0]=h;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var s=2;s<i;s++)l[s]=r[s];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},4756:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2022-12-09-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2022-12-09-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-09-crypto.md",source:"@site/blog/2022-12-09-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2022-12-09T00:00:00.000Z",formattedDate:"December 9, 2022",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.39,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2022-12-09-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2022-12-12-network"},nextItem:{title:"Hydra Team Update",permalink:"/2022-12-09-hydra"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"MuSig2",id:"musig2",level:3},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:2}],p={toc:s},m="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The four open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency. "),(0,n.kt)("li",{parentName:"ul"},"Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe. "),(0,n.kt)("li",{parentName:"ul"},"cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack. "),(0,n.kt)("li",{parentName:"ul"},"KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"musig2"},"MuSig2"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"[Still in progress]"," We are introducing a more granular error handling mechanism ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/33"},"PR#33")),(0,n.kt)("li",{parentName:"ul"},"We merged the API redesig ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/35"},"PR#35")),(0,n.kt)("li",{parentName:"ul"},"We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/36"},"PR#36"))),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We merged the individual signature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/620"},"PR#620")),(0,n.kt)("li",{parentName:"ul"},"We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes/commits/master"},"kes repo"),") ")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Nothing new to report. Still working in merging these PRs. "),(0,n.kt)("li",{parentName:"ul"},"We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a ",(0,n.kt)("a",{parentName:"li",href:"https://gitlab.haskell.org/ghc/ghc/-/issues/22564"},"bug in GHC"))),(0,n.kt)("h2",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We keep progressing in the secure forgetting PR and resolving some bugs on memory handling ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/255"},"PR#255")),(0,n.kt)("li",{parentName:"ul"},"Fixed a 'use-after-free' bug in the KES agent.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9f761678.ea91f1b6.js b/assets/js/9f761678.ea91f1b6.js new file mode 100644 index 0000000000..bf6c6bbffe --- /dev/null +++ b/assets/js/9f761678.ea91f1b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[278],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),c=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=c(r),m=n,h=s["".concat(u,".").concat(m)]||s[m]||d[m]||o;return r?a.createElement(h,i(i({ref:t},p),{},{components:r})):a.createElement(h,i({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var c=2;c<o;c++)i[c]=r[c];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},32230:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const o={title:"Crypto Team Update",slug:"2023-04-28-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-04-28-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-28-crypto.md",source:"@site/blog/2023-04-28-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-04-28T00:00:00.000Z",formattedDate:"April 28, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.26,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-04-28-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-05-01-db-sync"},nextItem:{title:"Goedel Team Update",permalink:"/2023-04-28-goedel"}},u={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"Sidechains",id:"sidechains",level:3}],p={toc:c},s="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-base: New KES structure finally merged. Included additional tests to BLS, and including test vectors created with zkcrypto's library."),(0,n.kt)("li",{parentName:"ul"},"KES agent: Reaching state of MVP. Rewriting KES agent networking code to use the Snockets abstraction."),(0,n.kt)("li",{parentName:"ul"},"Sidechains: Started implementing ECC chip of JubJub over BLS12-381.")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/255"},"#255")," finally merged \ud83c\udf89"),(0,n.kt)("li",{parentName:"ul"},"Additional tests for BLS bindings ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/384"},"#384")),(0,n.kt)("li",{parentName:"ul"},"Open PR for including test vectors created with ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/zkcrypto/bls12_381"},"zkscrypto"),"'s library, ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/397"},"PR#397"))),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Introducing the SignKeyWithPeriodKES wrapper type, which bundles a KES key with its corresponding KES period ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/389"},"PR#389"),"."),(0,n.kt)("li",{parentName:"ul"},"Introducing the DirectSerialise API into cardano-base, which allows us to write mlocked memory directly to a file descriptor, without going through intermediate encodings stored on the GHC heap (which is a no-no due to secure forgetting requirements) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/317"},"#317"),"."),(0,n.kt)("li",{parentName:"ul"},"Figuring out how to generalize the KES, DSIGN, and mlocking code in cardano-base such that it can run in IOSim"),(0,n.kt)("li",{parentName:"ul"},"Rewriting KES agent networking code to use the Snockets abstraction, which gives us a platform-independent sockets layer (i.e., it will also work on Windows), and also allows us to run networked code in IOSim for testing purposes"),(0,n.kt)("li",{parentName:"ul"},"Refactor MonadSodium into MonadMLock ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/388"},"PR#388"),".")),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Started working on ECC chip for JubJub over BLS (problems still with the multiplication constraint)"),(0,n.kt)("li",{parentName:"ul"},"Use macros used by PSE library to try and merge our fork of halo2curves into PSE's repo")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9f7c2154.a728f343.js b/assets/js/9f7c2154.a728f343.js new file mode 100644 index 0000000000..0a694289b6 --- /dev/null +++ b/assets/js/9f7c2154.a728f343.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32472],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function o(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?o(Object(a),!0).forEach((function(e){r(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function i(t,e){if(null==t)return{};var a,n,r=function(t,e){if(null==t)return{};var a,n,r={},o=Object.keys(t);for(n=0;n<o.length;n++)a=o[n],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n<o.length;n++)a=o[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),u=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(p.Provider,{value:e},t.children)},d="mdxType",h={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},m=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,o=t.originalType,p=t.parentName,c=i(t,["components","mdxType","originalType","parentName"]),d=u(a),m=r,s=d["".concat(p,".").concat(m)]||d[m]||h[m]||o;return a?n.createElement(s,l(l({ref:e},c),{},{components:a})):n.createElement(s,l({ref:e},c))}));function s(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var p in e)hasOwnProperty.call(e,p)&&(i[p]=e[p]);i.originalType=t,i[d]="string"==typeof t?t:r,l[1]=i;for(var u=2;u<o;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},35890:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-12-28-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2022-12-28-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-28-node-cli-api.md",source:"@site/blog/2022-12-28-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2022-12-28T00:00:00.000Z",formattedDate:"December 28, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.325,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-12-28-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-01-05-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2022-12-16-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"CI & project mainteance",id:"ci--project-mainteance",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3},{value:"cardano-testnet",id:"cardano-testnet-1",level:3}],c={toc:u},d="wrapper";function h(t){let{components:e,...a}=t;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2022-12-28---2023-01-10"},"2022-12-28 - 2023-01-10"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4762"},"Fix hedgehog-extras sha hash")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4759"},"Update hegehog-extras bounds")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4751"},"GitHub token fix")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4743"},"Use setup-haskell action")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4738"},"Use Github Action to install libsecp256k1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4714"},"Update index state and hedgehog-extras.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4710"},"Cleaned cabal files")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4737"},"Add cache versioning")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4742"},"Delete obsolete scripts")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4746"},"Use SECURITY.md published in Cardano Engineering Handbook"))),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4749"},"Filter out duplicate collateral inputs in tx build cmds")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4754"},"Optimise query stake-snapshot command"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h2",{id:"ci--project-mainteance"},"CI & project mainteance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4755"},"Copyright updates"))),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4761"},"Fix bug in hash computation in cardano-cli genesis create-cardano")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4636"},"Cleanup exports of cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4659"},"Render consistent plutus script failure output")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4666"},"Read network ID from environment")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4647"},"CLI option to append additional signatures to a transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"Cardano ping")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4777"},"Better error message for query utxo on oops"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4763"},"Remove simple script distinction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4753"},"Export SubmitResult from Cardano.Api"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))),(0,r.kt)("h3",{id:"cardano-testnet-1"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4845"},"Use Haskell variables for passing values"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9fba226c.0a093447.js b/assets/js/9fba226c.0a093447.js new file mode 100644 index 0000000000..67ab0e50de --- /dev/null +++ b/assets/js/9fba226c.0a093447.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53222],{77041:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Benchmarking -- Node 8.7.2","permalink":"/reports/2023-12-performance-8.7.2"},{"title":"Benchmarking -- Node 8.9.0","permalink":"/reports/2024-03-performance-8.9.0"},{"title":"Benchmarking -- Node 8.9.1","permalink":"/reports/2024-03-performance-8.9.1"},{"title":"Benchmarking -- Node 8.9.3","permalink":"/reports/2024-05-performance-8.9.3"},{"title":"Benchmarking -- Node 8.12.1","permalink":"/reports/2024-06-performance-8.12.1"}]}')}}]); \ No newline at end of file diff --git a/assets/js/9fba849d.0a7c6153.js b/assets/js/9fba849d.0a7c6153.js new file mode 100644 index 0000000000..9230f757c2 --- /dev/null +++ b/assets/js/9fba849d.0a7c6153.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[82941],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=s(a),m=n,d=h["".concat(p,".").concat(m)]||h[m]||c[m]||o;return a?r.createElement(d,i(i({ref:t},u),{},{components:a})):r.createElement(d,i({ref:t},u))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[h]="string"==typeof e?e:n,i[1]=l;for(var s=2;s<o;s++)i[s]=a[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},14990:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2022-11-04-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-04-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-04-hydra.md",source:"@site/blog/2022-11-04-hydra.md",title:"Hydra Team Update",description:"High level summary",date:"2022-11-04T00:00:00.000Z",formattedDate:"November 4, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.935,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-11-04-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2022-11-11-network"},nextItem:{title:"Mithril Team Update",permalink:"/2022-11-04-mithril"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:s},h="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This week, the hydra team first re-deployed the latest Hydra scripts to the re-spun ",(0,n.kt)("inlineCode",{parentName:"p"},"preview")," network, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0"},"0.8.0 release notes"),". They also completed implementation of ",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/adr/18/"},"ADR18")," and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra-poc/issues/195#issuecomment-1300503557"},"#195")," and alignment of the specification document with auditors."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete and merge ADR18 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/pull/579"},"#579")),(0,n.kt)("li",{parentName:"ul"},"Re-deploy hydra scripts to respun ",(0,n.kt)("inlineCode",{parentName:"li"},"preview")," network, see ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0"},"0.8.0 release notes")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/pull/595"},"#595")),(0,n.kt)("li",{parentName:"ul"},"Have first gap of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/pull/452"},"#452")," in review."),(0,n.kt)("li",{parentName:"ul"},"Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot."),(0,n.kt)("li",{parentName:"ul"},"Engineering meeting to discuss hard forks and protocol parameter updates ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/195#issuecomment-1300503557"},"#195")),(0,n.kt)("li",{parentName:"ul"},"Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions."),(0,n.kt)("li",{parentName:"ul"},"Drafted project scope for an external audit RFP.")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implement event-sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/580"},"#580")),(0,n.kt)("li",{parentName:"ul"},"Answer the internal auditor","\u2019","s questions"),(0,n.kt)("li",{parentName:"ul"},"Have a draft RFP ready for a first review internally"),(0,n.kt)("li",{parentName:"ul"},"Close some gaps ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/pull/452"},"#452"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9ff56e7d.3d31e48b.js b/assets/js/9ff56e7d.3d31e48b.js new file mode 100644 index 0000000000..c3184ab1de --- /dev/null +++ b/assets/js/9ff56e7d.3d31e48b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[78642],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>k});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},i=Object.keys(e);for(o=0;o<i.length;o++)r=i[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)r=i[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=o.createContext({}),l=function(e){var t=o.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=l(e.components);return o.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=l(r),h=n,k=c["".concat(p,".").concat(h)]||c[h]||m[h]||i;return r?o.createElement(k,a(a({ref:t},u),{},{components:r})):o.createElement(k,a({ref:t},u))}));function k(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,a=new Array(i);a[0]=h;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[c]="string"==typeof e?e:n,a[1]=s;for(var l=2;l<i;l++)a[l]=r[l];return o.createElement.apply(null,a)}return o.createElement.apply(null,r)}h.displayName="MDXCreateElement"},8108:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var o=r(87462),n=(r(67294),r(3905));const i={title:"Network Team Update",slug:"2024-07-08-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},a=void 0,s={permalink:"/2024-07-08-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-08-network.md",source:"@site/blog/2024-07-08-network.md",title:"Network Team Update",description:"High-level overview of sprint 65",date:"2024-07-08T00:00:00.000Z",formattedDate:"July 8, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.165,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-07-08-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-07-10-mithril"},nextItem:{title:"SRE Team Update",permalink:"/2024-07-05-sre"}},p={authorsImageUrls:[void 0]},l=[{value:"High-level overview of sprint 65",id:"high-level-overview-of-sprint-65",level:2},{value:"High-level overview of sprint 64",id:"high-level-overview-of-sprint-64",level:2}],u={toc:l},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-65"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?filterQuery=sprint%3A%22Sprint+65%22"},"sprint 65")),(0,n.kt)("p",null,"Karl Knutsson (",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") fixed a bug which prevented a node using bootstrap peers\nto sync using them, for a more detailed description see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4899"},"ouroboros-network#4899"),"."),(0,n.kt)("p",null,"Earlier this year we fixed bugs in ",(0,n.kt)("inlineCode",{parentName:"p"},"IOSimPOR")," which prevent us from using it in\n",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," (",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/153"},"io-sim#153"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/159"},"io-sim#159"),"); since\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4872"},"ouroboros-network#4872")," was merged we have a large number of tests that are\nusing ",(0,n.kt)("inlineCode",{parentName:"p"},"IOSimPOR"),"'s schedule exploration. In the last sprint we fixed\nsome bugs discovered by ",(0,n.kt)("inlineCode",{parentName:"p"},"IOSimPOR")," in ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Block Fetch Client assertion failure")," - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4890"},"ouroboros-network#4890"),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Connection manager's invalid transition")," - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4891"},"ouroboros-network#4891"),".")),(0,n.kt)("p",null,"We continued working on new ",(0,n.kt)("inlineCode",{parentName:"p"},"tx-submission")," logic: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network#3311")," as\nwell as on Genesis. The work on Genesis is split in a few PRs which are\ncurrently in review process:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Big Ledger Peer Targets for Genesis")," - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4832"},"ouroboros-network#4832")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Feed peer selection governor with big ledger peers obtained from a snapshot")," - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4890"},"ouroboros-network#4850")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Introduction of serialization instances in support of ledger peer snapshot")," - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4890"},"ouroboros-network#4851")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Verification of big ledger peer snapshot file")," - ","[ouroboros-network#4888]")),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-64"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?filterQuery=sprint%3A%22Sprint+64%22"},"sprint 64")),(0,n.kt)("p",null,"Karl Knutsson (",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") modified peer sharing behaviour to not share peers whith\nwhich connections failed, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4883"},"ouroboros-network#4883")," for more details."),(0,n.kt)("p",null,"We fixed inbound governor counters tracer, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4885"},"ouroboros-network#4885"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a0225fec.32b5cfb9.js b/assets/js/a0225fec.32b5cfb9.js new file mode 100644 index 0000000000..a3dd59e000 --- /dev/null +++ b/assets/js/a0225fec.32b5cfb9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67794],{23320:e=>{e.exports=JSON.parse('{"permalink":"/page/73","page":73,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/72","nextPage":"/page/74","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/a040c838.388b3fec.js b/assets/js/a040c838.388b3fec.js new file mode 100644 index 0000000000..4fdc2fe627 --- /dev/null +++ b/assets/js/a040c838.388b3fec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9499],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=p(r),h=n,d=c["".concat(u,".").concat(h)]||c[h]||m[h]||o;return r?a.createElement(d,i(i({ref:t},s),{},{components:r})):a.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var p=2;p<o;p++)i[p]=r[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},85704:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Crypto Team Update",slug:"2023-06-09-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-06-09-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-09-crypto.md",source:"@site/blog/2023-06-09-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-06-09T00:00:00.000Z",formattedDate:"June 9, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:.705,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-06-09-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-06-12-network"},nextItem:{title:"Developer Experience Update",permalink:"/2023-06-09-developer-experience"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"cardano-base",id:"cardano-base",level:3},{value:"Mithril",id:"mithril",level:3},{value:"Sidechains",id:"sidechains",level:3}],s={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-base: E2E tests for BLS bindings and KES agent "),(0,n.kt)("li",{parentName:"ul"},"Sidechains: Implement ECC chip and Rescue hash primitives for ATMS"),(0,n.kt)("li",{parentName:"ul"},"mithril: Full node verifier")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"RawBearer API in ouroboros-network-framework (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4395)"},"https://github.com/input-output-hk/ouroboros-network/pull/4395)"),"; blocked due to issue with windows' localSnocket. Trying to resolve."),(0,n.kt)("li",{parentName:"ul"},"Adapting cardano-base for direct memory transfers between mlocked RAM and file descriptors ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/317"},"#317"),"."),(0,n.kt)("li",{parentName:"ul"},"Above, blocked by the simplification of typeclasses ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/404"},"#404"),"."),(0,n.kt)("li",{parentName:"ul"},"Provided e2e test cases to the testing team with aggregated signatures and schnorr signatures for the BLS bindings")),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implementation of Full Node Verifier ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/939"},"#939"))),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sidechains-zk/tree/master/prover/src/ecc"},"ECC chip")," implemented for JubJub over BLS12-381"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sidechains-zk/tree/master/prover/src/rescue"},"Rescue chip")," implemented for hashing."),(0,n.kt)("li",{parentName:"ul"},"Currently working on Schnorr signature (which uses the above constraints)")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a041ec46.bbaaf7a9.js b/assets/js/a041ec46.bbaaf7a9.js new file mode 100644 index 0000000000..03c6428a64 --- /dev/null +++ b/assets/js/a041ec46.bbaaf7a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[74646],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=u(a),h=r,m=c["".concat(s,".").concat(h)]||c[h]||p[h]||i;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var u=2;u<i;u++)o[u]=a[u];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},404:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-02-23-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-02-23-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-23-hydra.md",source:"@site/blog/2024-02-23-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-02-23T00:00:00.000Z",formattedDate:"February 23, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.87,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-02-23-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-02-28-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2024-02-21-consensus"}},s={authorsImageUrls:[void 0]},u=[{value:"High-level Summary",id:"high-level-summary",level:3}],d={toc:u},c="wrapper";function p(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,r.kt)("p",null,"This week, the Hydra team successfully fixed the fanout after contest bug using their significantly improved model-based test suite. Additionally, they transitioned to cardano-api version 8.38 and started testing against cardano-node version 8.8. Furthermore, they enhanced fee estimation within the hydra-node internal wallet resulting in cheaper head opening / closing transactions and added transaction metadata to help identifying Hydra protocol transactions."),(0,r.kt)("h1",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Fixed the fanout after contest bug using our signifcantly improved model-based test suite ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1260"},"#1260")),(0,r.kt)("li",{parentName:"ul"},"Switched to cardano-api 8.38 and run tests against cardano-node 8.8 ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1297"},"#1297")),(0,r.kt)("li",{parentName:"ul"},"Improved fee estimation in ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra-node")," internal wallet ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1315"},"#1315")),(0,r.kt)("li",{parentName:"ul"},"Added transaction metadata to identify Hydra protocol transactions (on L1) ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1311"},"#1311"))),(0,r.kt)("h1",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Have the monthly review meeting + write a report"),(0,r.kt)("li",{parentName:"ul"},"Explorer targeting and showing data of the latest released ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra")," version"),(0,r.kt)("li",{parentName:"ul"},"Implement off-chain incremental commit protocol changes"),(0,r.kt)("li",{parentName:"ul"},"Review ",(0,r.kt)("inlineCode",{parentName:"li"},"EventSource")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"EventSink")," refactor done by SundaeLabs"),(0,r.kt)("li",{parentName:"ul"},"See smoke tests passing consistently on Sanchonet")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a0d18a99.95ce753d.js b/assets/js/a0d18a99.95ce753d.js new file mode 100644 index 0000000000..24159a9533 --- /dev/null +++ b/assets/js/a0d18a99.95ce753d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[62767],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),d=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=d(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=d(r),m=n,g=s["".concat(u,".").concat(m)]||s[m]||c[m]||o;return r?a.createElement(g,l(l({ref:t},p),{},{components:r})):a.createElement(g,l({ref:t},p))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:n,l[1]=i;for(var d=2;d<o;d++)l[d]=r[d];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},11960:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var a=r(87462),n=(r(67294),r(3905));const o={title:"Ledger Team Update",slug:"2022-11-07-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},l=void 0,i={permalink:"/quarterly/2022-11-07-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2022-11-07-ledger.md",source:"@site/quarterly/2022-11-07-ledger.md",title:"Ledger Team Update",description:"Ledger Quarterly Update",date:"2022-11-07T00:00:00.000Z",formattedDate:"November 7, 2022",tags:[{label:"ledger",permalink:"/quarterly/tags/ledger"}],readingTime:1.255,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-11-07-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/quarterly/2022-11-09-network"},nextItem:{title:"Node API & CLI Team Update",permalink:"/quarterly/2022-10-07-node-cli-api"}},u={authorsImageUrls:[void 0]},d=[{value:"Ledger Quarterly Update",id:"ledger-quarterly-update",level:2},{value:"2022-09 - 2022-11-04",id:"2022-09---2022-11-04",level:2},{value:"Next steps",id:"next-steps",level:2}],p={toc:d},s="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"ledger-quarterly-update"},"Ledger Quarterly Update"),(0,n.kt)("h2",{id:"2022-09---2022-11-04"},"2022-09 - 2022-11-04"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We finished a minimal ledger era capable of master key rotation.\nThis will be re-purposed our upcoming work."),(0,n.kt)("li",{parentName:"ul"},"We have the humble beginnings of a proper ledger API."),(0,n.kt)("li",{parentName:"ul"},"We improved the problematic cost model serialization\n(recall the song and dance about updating the cost model one epoch after the hard fork)."),(0,n.kt)("li",{parentName:"ul"},"We have added benchmarks for problematic areas."),(0,n.kt)("li",{parentName:"ul"},"Massive repository restructure and cleanup.",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Unified and consistent variable name schemes (not completely finished, but nearly there)."),(0,n.kt)("li",{parentName:"ul"},"Massive reduction in type constraints, which causes a lot of developer friction,\nin our code and also downstream."),(0,n.kt)("li",{parentName:"ul"},"More organized module structures."),(0,n.kt)("li",{parentName:"ul"},"Improved generators for our property tests."),(0,n.kt)("li",{parentName:"ul"},"We removed our dependency on cardano-prelude."))),(0,n.kt)("li",{parentName:"ul"},"The formal ledger model has come a long way.",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"We created a fork of Agda that provides some meta-programming support for the ledger rules."),(0,n.kt)("li",{parentName:"ul"},"We have a large amount of the basic UTxO support in the model."),(0,n.kt)("li",{parentName:"ul"},"We can generate a good looking PDF from the model."),(0,n.kt)("li",{parentName:"ul"},"We can produce Haskell from the model."),(0,n.kt)("li",{parentName:"ul"},"We have a nice finite set theory library that we can use for many of the ledger rules."),(0,n.kt)("li",{parentName:"ul"},"We have nix support for the model.")))),(0,n.kt)("h2",{id:"next-steps"},"Next steps"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Individual tracking of deposits. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3113"},"issue-3113"),"]"),(0,n.kt)("li",{parentName:"ul"},"Versioned CBOR encoders/decoders. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3014"},"issue-3014"),"]"),(0,n.kt)("li",{parentName:"ul"},"New ledger era transaction body (and the surround work associated with it)."),(0,n.kt)("li",{parentName:"ul"},"Designs for the next ledger era.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a12974ca.0054abbb.js b/assets/js/a12974ca.0054abbb.js new file mode 100644 index 0000000000..c47207225f --- /dev/null +++ b/assets/js/a12974ca.0054abbb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[76884],{53371:e=>{e.exports=JSON.parse('{"permalink":"/tags/sre/page/4","page":4,"postsPerPage":5,"totalPages":6,"totalCount":29,"previousPage":"/tags/sre/page/3","nextPage":"/tags/sre/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/a14fd889.29c4c0f3.js b/assets/js/a14fd889.29c4c0f3.js new file mode 100644 index 0000000000..97af72c9dd --- /dev/null +++ b/assets/js/a14fd889.29c4c0f3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[87326],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},16410:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-10-18-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-10-18-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-18-mithril.md",source:"@site/blog/2023-10-18-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-10-18T00:00:00.000Z",formattedDate:"October 18, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.07,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-10-18-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-10-18-consensus"},nextItem:{title:"Network Team Update",permalink:"/2023-10-15-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team started working on the decentralization of the Mithril networks with a proof of concept of peer-to-peer (P2P) networking between nodes. The team kept working on the adaptation of the Mithril client as a library, on the deterministic computation of the transaction history of an address from the immutable files, and on the refactoring that will fix the bottleneck of the key registration in the aggregator. Additionally, they published a security advisory for the Mithril relay."),(0,n.kt)("p",null,"Finally, they enhanced the CI/CD to publish multiple packages to ",(0,n.kt)("a",{parentName:"p",href:"https://crates.io/"},"crates.io")," and started improving the developer experience with the Mithril devnet."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Published the security advisory ",(0,n.kt)("strong",{parentName:"li"},"Mithril relay could expose Cardano block producer internal IP when updated")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/security/advisories/GHSA-9m3h-72xj-x2gq"},"#GHSA-9m3h-72xj-x2gq")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P Networking - Proof of Concept")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1300"},"#1300")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Make ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," crate a library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1141"},"#1141")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Compute deterministic Cardano transactions history PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1283"},"#1283")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"ProtocolKeyRegistration")," creates performance bottleneck in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1187"},"#1187")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Publish multiple packages to ",(0,n.kt)("inlineCode",{parentName:"strong"},"crates.io"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1298"},"#1298")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Rename public key published in releases")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1292"},"#1292")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Mithril networks infrastructure maintenance")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1218"},"#1218")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Fix ",(0,n.kt)("inlineCode",{parentName:"strong"},"devnet")," Mithril Docker images")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1272"},"#1272"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a1597564.5bc4f69b.js b/assets/js/a1597564.5bc4f69b.js new file mode 100644 index 0000000000..fe3f6e4e52 --- /dev/null +++ b/assets/js/a1597564.5bc4f69b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[60715],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),u=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=u(r),g=n,h=d["".concat(s,".").concat(g)]||d[g]||c[g]||o;return r?a.createElement(h,l(l({ref:t},p),{},{components:r})):a.createElement(h,l({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=g;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var u=2;u<o;u++)l[u]=r[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}g.displayName="MDXCreateElement"},33286:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const o={title:"Ledger Team Update",slug:"2023-02-02-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-02-02-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-02-ledger.md",source:"@site/blog/2023-02-02-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-02-02T00:00:00.000Z",formattedDate:"February 2, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.23,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-02-02-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-02-03-hydra"},nextItem:{title:"Hydra Team Update",permalink:"/2023-01-27-hydra"}},s={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Ledger evolution CIP",id:"ledger-evolution-cip",level:3},{value:"Serialization issues",id:"serialization-issues",level:3},{value:"New tests",id:"new-tests",level:3},{value:"Progress on a better cost model serialization situation.",id:"progress-on-a-better-cost-model-serialization-situation",level:3},{value:"Nightly tests",id:"nightly-tests",level:3},{value:"Constraint based generators",id:"constraint-based-generators",level:3}],p={toc:u},d="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Much of the work the past two weeks involved integration efforts,\ncleaning up and debugging some serialization issues,\nadding tests, and work on large projects that are still ongoing.\nWe also released a CIP this week that aims to make the ledger\na registered CIP category."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"ledger-evolution-cip"},"Ledger evolution CIP"),(0,n.kt)("p",null,"We published a\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/456"},"CIP"),"\nthat will make the Cardano ledger a registered category of the CIP process."),(0,n.kt)("h3",{id:"serialization-issues"},"Serialization issues"),(0,n.kt)("p",null,"We had previously thought that we had found a serialization problem with the redeemers,\nbut it turned out to just be particularly confusing code.\nWe have now clarified the issue for the future."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3263"},"pull-3263"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3269"},"pull-3269"),", and ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3268"},"pull-3268"),"."),(0,n.kt)("p",null,"Starting in protocol version 9, we will no longer accept duplicate keys in CBOR maps."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3277"},"pull-3277"),"."),(0,n.kt)("h3",{id:"new-tests"},"New tests"),(0,n.kt)("p",null,"We added a new property test suite for some of our custom containers."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3270"},"pull-3270"),"."),(0,n.kt)("h3",{id:"progress-on-a-better-cost-model-serialization-situation"},"Progress on a better cost model serialization situation."),(0,n.kt)("p",null,"We are still working our way through ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/issues/2902"},"issue-2902"),".\nTowards this end, we are now properly gating the new flexible encoders\nuntil version 9."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3274"},"pull-3274"),"."),(0,n.kt)("h3",{id:"nightly-tests"},"Nightly tests"),(0,n.kt)("p",null,"We are still experimenting with moving more CI actions to GitHub actions."),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3276"},"pull-3276"),"."),(0,n.kt)("h3",{id:"constraint-based-generators"},"Constraint based generators"),(0,n.kt)("p",null,"We continue to add to our proof of concept for constraint based generators.\nSee the previous ledger update for more information about this project."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a1a26142.d92be10a.js b/assets/js/a1a26142.d92be10a.js new file mode 100644 index 0000000000..566e09df3d --- /dev/null +++ b/assets/js/a1a26142.d92be10a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[79113],{92810:e=>{e.exports=JSON.parse('{"permalink":"/page/69","page":69,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/68","nextPage":"/page/70","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/a1ac97eb.a2e1c2fa.js b/assets/js/a1ac97eb.a2e1c2fa.js new file mode 100644 index 0000000000..841ff4b200 --- /dev/null +++ b/assets/js/a1ac97eb.a2e1c2fa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[36463],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(a),m=r,h=d["".concat(p,".").concat(m)]||d[m]||s[m]||o;return a?n.createElement(h,i(i({ref:t},c),{},{components:a})):n.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var u=2;u<o;u++)i[u]=a[u];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},25274:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-11-30-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2022-11-30-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-30-node-cli-api.md",source:"@site/blog/2022-11-30-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2022-11-30T00:00:00.000Z",formattedDate:"November 30, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.01,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-11-30-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-11-30-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2022-11-30-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3}],c={toc:u},d="wrapper";function s(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2022-11-30---2022-12-13"},"2022-11-30 - 2022-12-13"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped. "),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4675"},"Append tx output in cli transaction build command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4592"},"Update Error messages in cardano-cli"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4675"},"Replace Data.Map with Data.Map.Strict")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4708"},"Update Github actions"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4250"},"Optimise query leadership schedule command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4179"},"Optimise query stake snapshot command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4659"},"Render consistent plutus script failure output"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a1cde312.5ea6b878.js b/assets/js/a1cde312.5ea6b878.js new file mode 100644 index 0000000000..ea90e105b0 --- /dev/null +++ b/assets/js/a1cde312.5ea6b878.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90748],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),s=p(r),m=n,d=s["".concat(u,".").concat(m)]||s[m]||c[m]||o;return r?a.createElement(d,i(i({ref:t},h),{},{components:r})):a.createElement(d,i({ref:t},h))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var p=2;p<o;p++)i[p]=r[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},47553:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-07-28-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-07-28-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-28-hydra.md",source:"@site/blog/2023-07-28-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-07-28T00:00:00.000Z",formattedDate:"July 28, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.005,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-07-28-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-07-31-network"},nextItem:{title:"Mithril Team Update",permalink:"/2023-07-27-mithril"}},u={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:p},s="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"During this week, the Hydra team achieved significant progress in various areas.\nThey conducted the monthly review meeting for July, which continously ensures\ntransparent communication and project evaluation. The team migrated the core\nlogic of the node to an event-sourced architecture and incremental writes of\nevents to persistence, enhancing the project","\u2019","s performance and maintainability.\nFurthermore, the team added the ability to read protocol parameters via the API\nand fixed the CI workflows to support pull requests from forks of external\ncontributors, streamlining the development process for community involvement."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Held the monthly review meeting for July (",(0,n.kt)("a",{parentName:"li",href:"https://drive.google.com/file/d/14ANZ3efuxgXpYK94EBWxZLR9TtN7voru/"},"recording"),")"),(0,n.kt)("li",{parentName:"ul"},"Migrate the core logic of the node to an event-sourced architecture ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/999"},"#999")),(0,n.kt)("li",{parentName:"ul"},"Updated persistence to faster incremental writes of events ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1000"},"#1000")),(0,n.kt)("li",{parentName:"ul"},"Added ability to read protocol parameters via API ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/735"},"#735")),(0,n.kt)("li",{parentName:"ul"},"Fix CI workflows to support pull requests from forks of external contributors ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/993"},"#993")),(0,n.kt)("li",{parentName:"ul"},"Updated to GHC 9.2.8 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1005"},"#1005")),(0,n.kt)("li",{parentName:"ul"},"Prepared an updated use cases section on ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family"},"https://hydra.family")," (published with next release)")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Publish monthly report"),(0,n.kt)("li",{parentName:"ul"},"Complete user transaction submission work ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/966"},"#966")),(0,n.kt)("li",{parentName:"ul"},"Remove commit from internal wallet (deprecated) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/954"},"#954"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a1d1f035.db320d05.js b/assets/js/a1d1f035.db320d05.js new file mode 100644 index 0000000000..7f921b660d --- /dev/null +++ b/assets/js/a1d1f035.db320d05.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91282],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),h=l(n),m=o,d=h["".concat(u,".").concat(m)]||h[m]||c[m]||a;return n?r.createElement(d,s(s({ref:t},p),{},{components:n})):r.createElement(d,s({ref:t},p))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,s=new Array(a);s[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[h]="string"==typeof e?e:o,s[1]=i;for(var l=2;l<a;l++)s[l]=n[l];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},39065:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var r=n(87462),o=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-09-20-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-09-20-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-20-consensus.md",source:"@site/blog/2023-09-20-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-09-20T00:00:00.000Z",formattedDate:"September 20, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.82,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-09-20-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-09-22-performance-and-tracing"},nextItem:{title:"Mithril Team Update",permalink:"/2023-09-20-mithril"}},u={authorsImageUrls:[void 0]},l=[{value:"High level summary",id:"high-level-summary",level:2},{value:"UTxO-HD",id:"utxo-hd",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Support",id:"support",level:3}],p={toc:l},h="wrapper";function c(e){let{components:t,...n}=e;return(0,o.kt)(h,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"We have a proposed fix for the mempool forging regression observed in the UTxO-HD branch. We need to confirm this by running system level benchmarks.\nWe are still working on a fall back mechanism for keeping the baseline performance of Cardano node, if the performance of the UTxO-HD is not enough.\nOn the Genesis front, we confirmed with the researchers that the proposed Genesis design is satisfactory for the historical Cardano chain.\nWe also have a proposed fix for the wrong protocol version bug, found in the Sanchonet, after transitioning to Conway."),(0,o.kt)("h3",{id:"utxo-hd"},"UTxO-HD"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We optimized the mempool revalidation process, which in turn ought to solve the regression observed during system-level benchmarks in the in-memory version (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/349"},"349"),"). System level benchmark results are pending."),(0,o.kt)("li",{parentName:"ul"},"Regarding the workaround to keep the node's baseline performance if that of the in-memory backend turns out not to be enough for our stakeholders (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/344"},"344"),"), we are still expanding the legacy block package such that we could at some point run the node with a legacy Cardano block. There are some loose ends to wrap up before we can begin the first test run."),(0,o.kt)("li",{parentName:"ul"},"We also brought the ",(0,o.kt)("inlineCode",{parentName:"li"},"UTxO-HD")," branch up to date with node version ",(0,o.kt)("inlineCode",{parentName:"li"},"8.4.0"),".")),(0,o.kt)("h3",{id:"genesis"},"Genesis"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We finished the discussion with the Researchers on how to argue that the proposed Genesis design is satisfactory for the existing historical Cardano chain.\nWe are now drafting the final self-contained argument. (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4157"},"4157"),")")),(0,o.kt)("h3",{id:"support"},"Support"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We debugged a bad parameter update on the ",(0,o.kt)("inlineCode",{parentName:"li"},"Babbage")," to ",(0,o.kt)("inlineCode",{parentName:"li"},"Conway")," transition in the SanchoNet testnet (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/339"},"339"),").\nA superficial patch is within reach and we are in the process of reviewing the PRs related to this fix (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/340"},"340"),", ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/354"},"354"),", and ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/355"},"355"),")\nHowever we are investigating a more principled redesign of the epoch transition logic, which required us to revisit the existing interfaces of the ",(0,o.kt)("inlineCode",{parentName:"li"},"ConsensusProtocol")," type class and the ",(0,o.kt)("inlineCode",{parentName:"li"},"HardForkBlock")," combinator (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/345"},"345")," and ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/346"},"346"),"). This is important to prevent these kind of errors in the future. This is an overdue step in the process of taking full ownership of the HFC: reconsidering original HFC design decisions for which we now have much more context, a few years later.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a1d4a798.a85750a5.js b/assets/js/a1d4a798.a85750a5.js new file mode 100644 index 0000000000..06ac65474d --- /dev/null +++ b/assets/js/a1d4a798.a85750a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25353],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>h});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),s=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},m=function(e){var n=s(e.components);return r.createElement(c.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=s(t),u=a,h=d["".concat(c,".").concat(u)]||d[u]||p[u]||i;return t?r.createElement(h,o(o({ref:n},m),{},{components:t})):r.createElement(h,o({ref:n},m))}));function h(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=u;var l={};for(var c in n)hasOwnProperty.call(n,c)&&(l[c]=n[c]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var s=2;s<i;s++)o[s]=t[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,t)}u.displayName="MDXCreateElement"},53712:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=t(87462),a=(t(67294),t(3905));const i={title:"Performance & Tracing Update",slug:"2023-11-17-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-11-17-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-17-performance-and-tracing.md",source:"@site/blog/2023-11-17-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2023-11-17T00:00:00.000Z",formattedDate:"November 17, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.585,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2023-11-17-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-11-17-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-11-16-network"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3},{value:"Workbench",id:"workbench",level:3}],m={toc:s},d="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(d,(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Release benchmarking for node ",(0,a.kt)("inlineCode",{parentName:"li"},"8.6.0")," as well as benchmarks scrutinizing GHC versions and the new tracing system."),(0,a.kt)("li",{parentName:"ul"},"Development: PlutusV3 capability of our workload generator has been implemented."),(0,a.kt)("li",{parentName:"ul"},"Tracing: First round of optimization of the ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," service has completed, awaiting validation."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: A significant PR has landed addressing automation features and debugging capabilites."),(0,a.kt)("li",{parentName:"ul"},"Workbench: Configurable remote environments and improvements to run documentation have been merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master"),".")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed and analyzed a full set of benchmarks for node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.6.0"),", both in comparison to recent release tags\nand mainnet version ",(0,a.kt)("inlineCode",{parentName:"p"},"8.1.2"),". A lot of development work has entered the system since then, so it is crucial\nwe can rule out any potential performance risks for the next mainnet release. "),(0,a.kt)("p",null,"Additionally, we've been benchmarking GHC9.6.3 builds of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". Overall, we've observed reliable optimization behaviour by that compiler version - which is much more in line with expectations than what we've seen on GHC9.2.7. Getting evidence on how predictable (and malleable, by code annotations) performance is when building with a certain compiler version is essential for settling on a version as supported release platform. "),(0,a.kt)("p",null,"A last set of benchmarks was dedicated to the new tracing system with node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.6.0"),". We were able to show that\nthere is no performance risk to enabling the new system, even when forwarding all trace messages to a ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),"\nservice on the receiving end. Key metrics for block forging, as well as block diffusion, did not exhibit any regression."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"For future benchmarks to be built around PlutusV3, we've equipped our transaction generator with basic integration and tests for the upcoming Plutus version. This enables us to target the new cost model and potential changes\nto the execution budgets by developing specialized workloads."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," service has received its first batch of optimizations. Profiling output is promising; to measure\nperformance for a long service run time, we're currently equipping the service binary with the same capability to\nemit regular resource traces as ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". Analysis of those will be the basis for validating this and possible future optimization efforts."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"Many improvements for the nomad backend have been implemented and merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". This encompasses a unified naming schema for all nomad profiles, improved internal management of cluster topology, a more fine-grained healthcheck service,\nmore detailed automated documentation of underlying hardware, as well as lazy resource release. The latter enables\nour team to investigate and debug interrupted runs for the exact moment and in the exact cluster state a potential failure occurred."),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"Our performance workbench has seen upgrades in documenting and reporting ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," builds. This ranges from capturing package versions and commit ids of key dependencies, to querying a deployed node for its build compiler.\nWhen alternating between compiler versions and benchmarking custom built branches, automating such documentation is essential. "),(0,a.kt)("p",null,"Furthermore, the workbench is now able to access several remote deployments on all active clusters. This allows for fetching data, analyzing, comparing and reporting on all benchmarks from just one centralized workbench instance."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a1d6199d.e2acb002.js b/assets/js/a1d6199d.e2acb002.js new file mode 100644 index 0000000000..2897c59c4e --- /dev/null +++ b/assets/js/a1d6199d.e2acb002.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97193],{3905:(e,t,o)=>{o.d(t,{Zo:()=>p,kt:()=>h});var r=o(67294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function s(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?a(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):a(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function i(e,t){if(null==e)return{};var o,r,n=function(e,t){if(null==e)return{};var o,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)o=a[r],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)o=a[r],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=r.createContext({}),u=function(e){var t=r.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=u(o),d=n,h=c["".concat(l,".").concat(d)]||c[d]||m[d]||a;return o?r.createElement(h,s(s({ref:t},p),{},{components:o})):r.createElement(h,s({ref:t},p))}));function h(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,s=new Array(a);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:n,s[1]=i;for(var u=2;u<a;u++)s[u]=o[u];return r.createElement.apply(null,s)}return r.createElement.apply(null,o)}d.displayName="MDXCreateElement"},68527:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var r=o(87462),n=(o(67294),o(3905));const a={title:"Network Team Update",slug:"2024-03-04-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-03-04-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-04-network.md",source:"@site/blog/2024-03-04-network.md",title:"Network Team Update",description:"High-level overview of sprint 56",date:"2024-03-04T00:00:00.000Z",formattedDate:"March 4, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.25,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-03-04-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-03-06-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-03-01-hydra"}},l={authorsImageUrls:[void 0]},u=[{value:"High-level overview of sprint 56",id:"high-level-overview-of-sprint-56",level:2},{value:"Cardano-Node, Cardano-API, Cardano-CLI",id:"cardano-node-cardano-api-cardano-cli",level:3},{value:"Ouroboros-Network",id:"ouroboros-network",level:3},{value:"Ouroboros-Consensus",id:"ouroboros-consensus",level:3},{value:"Low-level summary",id:"low-level-summary",level:2}],p={toc:u},c="wrapper";function m(e){let{components:t,...o}=e;return(0,n.kt)(c,(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-56"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+56%22"},"sprint 56")),(0,n.kt)("h3",{id:"cardano-node-cardano-api-cardano-cli"},"Cardano-Node, Cardano-API, Cardano-CLI"),(0,n.kt)("p",null,"In the last sprint, the network team was designated to take the Release\nEngineering Role, as the coming release contains mostly network advances.\nArmando Santos has been making progress on it. The following packages were\npublished to ",(0,n.kt)("inlineCode",{parentName:"p"},"CHaP"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-network-0.12.0.0"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network/CHANGELOG.md#01200----2023-02-21"},"changelog"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-network-protocols-0.8.0.0"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network-protocols/CHANGELOG.md#0800----2024-02-21"},"changelog"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-network-api-0.7.0.0"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network-api/CHANGELOG.md#0700----2024-02-21"},"changelog"),";")),(0,n.kt)("p",null,"and other ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," packages with minor changes. The following\npackages were also published:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus-0.16.0.0"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/blob/main/ouroboros-consensus/CHANGELOG.md#01600--2024-02-23"},"changelog"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus-cardano-0.14.0.0"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/blob/main/ouroboros-consensus-cardano/CHANGELOG.md#01400--2024-02-23"},"changelog"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/615"},(0,n.kt)("inlineCode",{parentName:"a"},"cardano-cli-8.20.3.0")),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/blob/main/cardano-cli/CHANGELOG.md#82030"},"changelog"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/459"},(0,n.kt)("inlineCode",{parentName:"a"},"cardano-api-8.39.2.0")),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/blob/main/cardano-api/CHANGELOG.md#83920"},"changelog"),".")),(0,n.kt)("p",null,"The work on ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node")," is in progress, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/pull/5485"},"cardano-node#5485")),(0,n.kt)("p",null,"We would like to thank Karl Knutsson (",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") for helping us to test the upcoming\n",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node")," release."),(0,n.kt)("h3",{id:"ouroboros-network"},"Ouroboros-Network"),(0,n.kt)("p",null,"We continued working on ",(0,n.kt)("inlineCode",{parentName:"p"},"tx-submission"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network#3311")),(0,n.kt)("p",null,"We started to execute an idea to put all configuration values used by the\ndiffusion layer ",(0,n.kt)("inlineCode",{parentName:"p"},"Ouroboros.Network.Diffusion.Configuration")," module. Currently,\ndefault values are spread in different repositories (e.g. ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node"),",\n",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),"). See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4805"},"ouroboros-network#4805"),"."),(0,n.kt)("p",null,"We restored how syncing works in bootstrap mode to get the same performance\ncharacteristics, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4809"},"ouroboros-network#4809"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4810"},"ouroboros-network#4810"),"."),(0,n.kt)("p",null,"We started working on Outbound-Governor Genesis mode, see\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4813"},"ouroboros-network#4813"),"."),(0,n.kt)("h3",{id:"ouroboros-consensus"},"Ouroboros-Consensus"),(0,n.kt)("p",null,"We requested to modify how bulk-sync mode works to make it use the same\nmechanism that the newly added ",(0,n.kt)("inlineCode",{parentName:"p"},"LedgerStateJudgement"),". See\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/958"},"ouroboros-consensus#958"),"."),(0,n.kt)("h2",{id:"low-level-summary"},"Low-level summary"),(0,n.kt)("p",null,"We also addressed a minor issue regarding tracing ",(0,n.kt)("inlineCode",{parentName:"p"},"LedgerStateJudgement"),"\nchanges, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4816"},"ouroboros-network#4816"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a1f2945e.e48bafcf.js b/assets/js/a1f2945e.e48bafcf.js new file mode 100644 index 0000000000..8f019f36ae --- /dev/null +++ b/assets/js/a1f2945e.e48bafcf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[87407],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=u(a),h=r,s=m["".concat(p,".").concat(h)]||m[h]||d[h]||i;return a?n.createElement(s,o(o({ref:t},c),{},{components:a})):n.createElement(s,o({ref:t},c))}));function s(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:r,o[1]=l;for(var u=2;u<i;u++)o[u]=a[u];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},18936:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-09-26-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",l={permalink:"/2023-09-26-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-26-node-cli-api.md",source:"@site/blog/2023-09-26-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-09-26T00:00:00.000Z",formattedDate:"September 26, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.68,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-09-26-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-09-27-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-09-22-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-09-13---2023-09-26"},"2023-09-13 - 2023-09-26"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.4.0-pre"},"cardano-node 8.4.0-pre")," release suitable for SanchoNet."),(0,r.kt)("li",{parentName:"ul"},"CLI continues making progress integrating governance features. During this sprint we integrated the ",(0,r.kt)("strong",{parentName:"li"},"info")," and ",(0,r.kt)("strong",{parentName:"li"},"new-committee")," governance actions."),(0,r.kt)("li",{parentName:"ul"},"The team continued moving to the ERA top-level commands structure. Removed ",(0,r.kt)("inlineCode",{parentName:"li"},"--conway-era")," flag from the legacy commands making conway era commands only accessible via ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-cli conway"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"stake-pool")," command is now under the ERA top level structure."),(0,r.kt)("li",{parentName:"ul"},"API continues integration with governance features, it is worth to higlight that now ",(0,r.kt)("em",{parentName:"li"},"ProposeNewCommitee")," uses the right key type (cc-cold)")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/302"},"Disambiguate 2-n flags in governance new-committee action")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/298"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli-8.10.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/295"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.20.2"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/292"},"cardano-cli: add governance create-info command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/287"},"Release 8.9.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/286"},"Export ",(0,r.kt)("inlineCode",{parentName:"a"},"Cardano.CLI.Legacy.Options.pLegacyCardanoEra")," for cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/284"},"Rename ",(0,r.kt)("inlineCode",{parentName:"a"},"SomeWitness")," to ",(0,r.kt)("inlineCode",{parentName:"a"},"SomeSigningWitness"),". Rename constructors to avoid name conflicts.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/283"},"Update cardano-api to 8.20.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/282"},"Remove unused governance-related code")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/281"},"Fix typo in stake-pool help text and clarify drep queries arguments")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/280"},"Remove redundant conversions in JSON friendly instances ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/279"},"Regularise era based command structure")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/277"},"Simplify era handling")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/276"},"Remove ",(0,r.kt)("inlineCode",{parentName:"a"},"--conway-era")," flag")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/275"},"Era-based ",(0,r.kt)("inlineCode",{parentName:"a"},"stake-pool")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/274"},"Fix git revision in ",(0,r.kt)("inlineCode",{parentName:"a"},"version")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/273"},"cardano-cli-8.8.0.0"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/265"},"Organise eon re-exports. Export ",(0,r.kt)("inlineCode",{parentName:"a"},"MaryEraOnwards"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/264"},"cardano-api-internal: ProposeNewCommittee: StakeKey -> CommitteeColdKey")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/262"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.21.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/256"},"Delete unused eon constraints")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/255"},"Export ByronEraOnly")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/254"},"Replace only ",(0,r.kt)("inlineCode",{parentName:"a"},"AdaSupportedInEra")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"MultiAssetSupportedInEra")," with eons")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/250"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.20.2.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/249"},"Add JSON instance for Hash GenesisKey ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/248"},"Support more ledger constraints")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/247"},"Rename ",(0,r.kt)("inlineCode",{parentName:"a"},"FeatureInEra")," to ",(0,r.kt)("inlineCode",{parentName:"a"},"Eon"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/246"},"Release 8.20.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/245"},"Fix DRep Stake and DRep Stake queries for empty lists")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/244"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"TxFeesExplicitInEra")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"TxFeesImplicitInEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/243"},"Fix typos in some deserialization error messages")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/240"},"Fix querying for dreps in ",(0,r.kt)("inlineCode",{parentName:"a"},"transaction build")," in eras before conway"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5480"},"Trace Configuration Trace Message Enhancement")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5474"},"Bump versions for cardano-node-8.4.0-pre")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5467"},"Updated dependencies for cardano-node-8.4.0-pre")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5466"},"cardano-node: reduce orphan instances"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5474"},"Bump versions for cardano-node-8.4.0-pre")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5471"},"Update to cardano-cli 8.9.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5467"},"Updated dependencies for cardano-node-8.4.0-pre"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a1ff8cc5.fec34ee8.js b/assets/js/a1ff8cc5.fec34ee8.js new file mode 100644 index 0000000000..a053b46b80 --- /dev/null +++ b/assets/js/a1ff8cc5.fec34ee8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8362],{80641:s=>{s.exports=JSON.parse('{"label":"consensus","permalink":"/tags/consensus","allTagsPath":"/tags","count":45}')}}]); \ No newline at end of file diff --git a/assets/js/a21706c9.7c0f7025.js b/assets/js/a21706c9.7c0f7025.js new file mode 100644 index 0000000000..d3b21f706e --- /dev/null +++ b/assets/js/a21706c9.7c0f7025.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92146],{37247:e=>{e.exports=JSON.parse('{"permalink":"/page/24","page":24,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/23","nextPage":"/page/25","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/a25baf4b.991a4b98.js b/assets/js/a25baf4b.991a4b98.js new file mode 100644 index 0000000000..b0c2ee7d08 --- /dev/null +++ b/assets/js/a25baf4b.991a4b98.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52622],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>s});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var d=n.createContext({}),m=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=m(e.components);return n.createElement(d.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,d=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),p=m(a),c=r,s=p["".concat(d,".").concat(c)]||p[c]||u[c]||i;return a?n.createElement(s,o(o({ref:t},h),{},{components:a})):n.createElement(s,o({ref:t},h))}));function s(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[p]="string"==typeof e?e:r,o[1]=l;for(var m=2;m<i;m++)o[m]=a[m];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},52906:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>m});var n=a(87462),r=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-03-28-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-28-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-28-hydra.md",source:"@site/blog/2024-03-28-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-03-28T00:00:00.000Z",formattedDate:"March 28, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.05,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-03-28-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-03-29-sre"},nextItem:{title:"Ledger Team Update",permalink:"/2024-03-27-ledger"}},d={authorsImageUrls:[void 0]},m=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:m},p="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"This week, the Hydra team conducted the monthly review meeting and investigated\na broken head situation. The team slightly improved conway forward compatibility\nin ",(0,r.kt)("inlineCode",{parentName:"p"},"explorer")," / ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-node"),", enhanced ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-cluster --devnet")," which allows e2e\ntesting of ",(0,r.kt)("inlineCode",{parentName:"p"},"kupo"),", extended smoke test to also include committing ADA into the\nhead, documented the anticipated behavior of incremental decommits, and added\ndecommits to the tutorial."),(0,r.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Conducted the monthly review meeting (link to recording already?)"),(0,r.kt)("li",{parentName:"ul"},"Investigated a broken head situation ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1374"},"#","1374")),(0,r.kt)("li",{parentName:"ul"},"Slightly improved conway forward compatibility in explorer / hydra-node ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1373"},"#","1373")),(0,r.kt)("li",{parentName:"ul"},"Busy ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra-cluster --devnet")," sandbox which allows e2e testing of ",(0,r.kt)("inlineCode",{parentName:"li"},"kupo")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1378"},"#","1378")),(0,r.kt)("li",{parentName:"ul"},"Extended smoke test to also include committing ADA into the head ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1377"},"#","1377")),(0,r.kt)("li",{parentName:"ul"},"Documented the anticipated behavior of incremental ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/commit/60d55e8bb5a75c77647e17e44f22a754fa33ac0f"},"decommits")," and added decommits to ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/commit/efc2809909636b6925b39dcb0810010fcd4a84c7"},"tutorial")),(0,r.kt)("li",{parentName:"ul"},"Another write-up of how the incremental commit/decommit could work (without needing merkle trees or L2/L1 interleaving) ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/199#issuecomment-2018001381"},"on this issue"))),(0,r.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Complete the written monthly report"),(0,r.kt)("li",{parentName:"ul"},"Update our head and ",(0,r.kt)("inlineCode",{parentName:"li"},"hydraw")," instance to ",(0,r.kt)("inlineCode",{parentName:"li"},"master")," (a release candidate)"),(0,r.kt)("li",{parentName:"ul"},"Complete the improved ",(0,r.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint to unblock users"),(0,r.kt)("li",{parentName:"ul"},"Release ",(0,r.kt)("inlineCode",{parentName:"li"},"0.16.0")," (likely without incremental decommits)"),(0,r.kt)("li",{parentName:"ul"},"Reproduce close ",">"," contest ",">"," contest scenarios using stateful testing")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a29c613f.390d37b5.js b/assets/js/a29c613f.390d37b5.js new file mode 100644 index 0000000000..17ef0bd7a0 --- /dev/null +++ b/assets/js/a29c613f.390d37b5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23928],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=a,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||i;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var p=2;p<i;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},79550:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const i={title:"Mithril Team Update",slug:"2024-01-31-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-01-31-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-31-mithril.md",source:"@site/blog/2024-01-31-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-01-31T00:00:00.000Z",formattedDate:"January 31, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.22,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-01-31-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-01-31-ledger"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-01-31-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"This week, the Mithril team continued implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the signature of the transactions set and implemented the aggregator route, responsible for generating proofs of membership for a list of Cardano transactions. Additionally, they finalized the manual workflow to test the NPM client package in the CI and enhanced the resilience of computing the list of immutable files in a Cardano node database. The team also expanded the coverage of end-to-end tests in the CI to accommodate multiple versions of the Cardano node and various hard fork scenarios."),(0,a.kt)("p",null,"Finally, they completed the enhanced node communications between Mithril and Cardano for retrieving UTXOs and kept working on the threat modeling and risk analysis for P2P networking."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Light Wallet: Compute message to sign for ",(0,a.kt)("inlineCode",{parentName:"strong"},"CardanoTransactions"))," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1436"},"#1436")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Light Wallet: Implement proof generation route in the aggregator")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1467"},"#1467")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Enhance ImmutableFile list computation resilience")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1450"},"#1450")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Enhance end to end test for Cardano hard forks")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1464"},"#1464")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Add WASM client step in Mithril Client multi-platform test")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1408"},"#1408")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Create a test network on ",(0,a.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Generate automatic documentation for CLIs")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1471"},"#1471"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a2a63bac.743a665e.js b/assets/js/a2a63bac.743a665e.js new file mode 100644 index 0000000000..0e639c73a8 --- /dev/null +++ b/assets/js/a2a63bac.743a665e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16002],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),s=u(a),d=n,c=s["".concat(p,".").concat(d)]||s[d]||m[d]||i;return a?r.createElement(c,o(o({ref:t},h),{},{components:a})):r.createElement(c,o({ref:t},h))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<i;u++)o[u]=a[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},54903:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-06-09-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-06-09-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-09-hydra.md",source:"@site/blog/2023-06-09-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-06-09T00:00:00.000Z",formattedDate:"June 9, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.18,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-06-09-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Developer Experience Update",permalink:"/2023-06-09-developer-experience"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-06-08-db-sync"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:u},s="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team worked on multiple fronts. They finished the\ninvestigation about the broken head on mainnet and re-opened their persistent\nhead instance. The team also fixed the monthly report publication on their\nwebsite and started sketching ideas and further improvements. Also, they are on\nthe last mile to deliver a new feature which will allow parties to commit funds\nfrom extern wallets. Finally the team started to work on optimizing the\nperformance on their benchmarks."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Finished investigation on broken head on mainnet ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/897"},"#897")," and re-opened it."),(0,n.kt)("li",{parentName:"ul"},"Added support for externally committing regular utxo ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/887"},"#887")),(0,n.kt)("li",{parentName:"ul"},"Fix monthly report publication on docs website and published the ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-05"},"monthly report"),". Odd problems when publishing monthly report:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Make us think about if we should change something about the website ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/908"},"#908")),(0,n.kt)("li",{parentName:"ul"},"Open issue to docusaurus ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/facebook/docusaurus/issues/9036"},"#9036")))),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug in the benchmark process ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/910"},"#910")),(0,n.kt)("li",{parentName:"ul"},"Explored performance of the ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node"),"{.verbatim} and identified a\nbottleneck."),(0,n.kt)("li",{parentName:"ul"},"Timed transaction feature is being used by the auction project \ud83c\udf89 ")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete performance analysis and start/plan improvements and provide\nregular benchmarks for Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/186"},"#186")),(0,n.kt)("li",{parentName:"ul"},"Add hydra as tool to developer platform ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/872"},"#872"),"."),(0,n.kt)("li",{parentName:"ul"},"Authenticate network messages ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/727"},"#727"),"."),(0,n.kt)("li",{parentName:"ul"},"Complete journey for external commits using multiple script UTxOs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/903"},"#903")),(0,n.kt)("li",{parentName:"ul"},"Start implementing ",(0,n.kt)("em",{parentName:"li"},"Option B")," for external commits ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215"),".")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a2ee852b.52b5af79.js b/assets/js/a2ee852b.52b5af79.js new file mode 100644 index 0000000000..9b3210a22f --- /dev/null +++ b/assets/js/a2ee852b.52b5af79.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95208],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),c=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return o.createElement(l.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=c(n),m=r,h=d["".concat(l,".").concat(m)]||d[m]||p[m]||a;return n?o.createElement(h,i(i({ref:t},u),{},{components:n})):o.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:r,i[1]=s;for(var c=2;c<a;c++)i[c]=n[c];return o.createElement.apply(null,i)}return o.createElement.apply(null,n)}m.displayName="MDXCreateElement"},15302:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var o=n(87462),r=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-05-03-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-05-03-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-03-consensus.md",source:"@site/blog/2023-05-03-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-05-03T00:00:00.000Z",formattedDate:"May 3, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.755,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-05-03-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-05-04-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-05-03-performance-and-tracing"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Genesis",id:"genesis",level:2},{value:"Fostering collaboration",id:"fostering-collaboration",level:2}],u={toc:c},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"During the past two weeks we made some important progress in the Genesis design.\nIt seems the ",(0,r.kt)("inlineCode",{parentName:"p"},"BlockFetch")," logic need not be modified for Genesis, although this\nneeds to be confirmed. We started a DoS mitigation handbook and updated our\nconceptual component diagram to guide the Genesis design. We engaged with the\nIOG researchers to work on the Limit on Patience attack vector, work in this\narea is still ongoing. We sketched a design to decouple the CPU load of the node\nfrom its responsiveness to the socket. Finally, we discussed with Networking our\napproach to lower the performance impact of the BlockFetch decision logic, and\ngot green light from them."),(0,r.kt)("p",null,"We migrated the consensus code to a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus"},"new\nrepository"),", splitting\nit from the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," repository, and released version 0.6 of\nConsensus."),(0,r.kt)("p",null,"We also merged the mempool fairness improvement to main branch."),(0,r.kt)("p",null,"Another significant enhancement to our documentation was the addition of an\nexplanation of the hardfork combinator forecast horizon."),(0,r.kt)("p",null,"See the sections below for more details."),(0,r.kt)("h2",{id:"genesis"},"Genesis"),(0,r.kt)("p",null,"We reviewed the ",(0,r.kt)("inlineCode",{parentName:"p"},"BlockFetch")," design documentation, and added some source-code\ncomments that emphasize certain properties of the decisions the ",(0,r.kt)("inlineCode",{parentName:"p"},"BlockFetch"),"\nlogic makes that are helping us confirm that Genesis does not require any\nchanges to ",(0,r.kt)("inlineCode",{parentName:"p"},"BlockFetch"),". We are waiting on input from our former system\narchitect to verify this."),(0,r.kt)("p",null,"We migrated and updated the conceptual component diagram in the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),"\nrepository which helps us situate the Genesis design and argument."),(0,r.kt)("p",null,"We engaged with the IOG researchers about the Genesis design. We sketched out a\nway to address the concern that the Limit on Patiente (LoP) attack vector duty\ncycle is indeed low, but it's still non-trivial to ultimately conclude it's\nsufficiently low."),(0,r.kt)("p",null,"We also sketched a design to decouple the CPU load of the node from its\nresponsiveness to the socket, since the LoP is a relatively tight timeout, and\nnode performance bugs inducing seconds-worth of latency are unfortunately\nfamiliar phenomena."),(0,r.kt)("h2",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("p",null,"We ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/62"},"added an\nexplanation")," of\na question that we had to explain many times about the exact behavior of the\nhardfork combinator forecast horizon."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a3889346.dff40bbe.js b/assets/js/a3889346.dff40bbe.js new file mode 100644 index 0000000000..179e9061aa --- /dev/null +++ b/assets/js/a3889346.dff40bbe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[49769],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var u=n.createContext({}),d=function(e){var t=n.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=d(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,u=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=d(a),h=r,m=p["".concat(u,".").concat(h)]||p[h]||c[h]||o;return a?n.createElement(m,i(i({ref:t},s),{},{components:a})):n.createElement(m,i({ref:t},s))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[p]="string"==typeof e?e:r,i[1]=l;for(var d=2;d<o;d++)i[d]=a[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},8838:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var n=a(87462),r=(a(67294),a(3905));const o={title:"Ledger Team Update",slug:"2022-09-30-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-09-30-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-30-ledger.md",source:"@site/blog/2022-09-30-ledger.md",title:"Ledger Team Update",description:"Ledger Update",date:"2022-09-30T00:00:00.000Z",formattedDate:"September 30, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.285,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-09-30-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-10-04-node-cli-api"},nextItem:{title:"Network Team Update",permalink:"/2022-09-27-network"}},u={authorsImageUrls:[void 0]},d=[{value:"Ledger Update",id:"ledger-update",level:2},{value:"Technical debt issues completed",id:"technical-debt-issues-completed",level:3},{value:"Technical debt in progress",id:"technical-debt-in-progress",level:3}],s={toc:d},p="wrapper";function c(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"ledger-update"},"Ledger Update"),(0,r.kt)("p",null,"We have continued focusing nearly entirely on addressing technical debt.\nA lot of design work has begun for the next ledger era,\nbut we do not yet have anything concrete to share."),(0,r.kt)("h3",{id:"technical-debt-issues-completed"},"Technical debt issues completed"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/1676"},"issue-1676"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/2992"},"pull-2992"),"] We have finally removed the ledger dependency on the\n",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-prelude")," package. It was barely used in the ledger repository, and it added a dependency\nthat we did not want to maintain. It was a bit difficult to remove, and we had\nto coordinate removing it from cardano-base.\nA lot ended up going into ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/2992"},"pull-2992"),", due to the coordination effort, and we ended\nup updating Plutus as well.\nThis means that we've now also made a lot of progress on the problematic cost model serialization\nissues described in ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/2902"},"issue-2902"),".\nIn particular, after we resolve ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3014"},"issue-3014"),", we will not have to wait an epoch before\nreleasing a cost model for a new version of Plutus, as we had to do for the Vasil HF."),(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3046"},"issue-3046"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3055"},"pull-3055"),"] We moved a module that is now only used in Byron to a Byron package."),(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3047"},"issue-3047"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3054"},"pull-3054"),"] We improved the interface to the ",(0,r.kt)("inlineCode",{parentName:"li"},"Value")," (multi-asset) type."),(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3044"},"pull-3044"),"] We debugged and fixed a tricky compilation issue. Certain kinds of field updates\nwere adding approximately 20 minutes to our compile time!"),(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/2932"},"issue-2932"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3036"},"pull-3036"),"] As a part of our ongoing re-organization of the codebase, we\nhave added a ",(0,r.kt)("inlineCode",{parentName:"li"},"Cardano.Ledger.[Era].Core")," module to each ledger era that has a TxBody class.\nMost classes defined in the era should go in this new module.\nWe also re-export the ",(0,r.kt)("inlineCode",{parentName:"li"},"Cardno.Ledger.Core")," module and the previous ",(0,r.kt)("inlineCode",{parentName:"li"},"Cardano.Ledger.[Era].Core"),"\nmodules from each era.")),(0,r.kt)("h3",{id:"technical-debt-in-progress"},"Technical debt in progress"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3034"},"issue-3034"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3035"},"issue-3035"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/issues/4421"},"node-issue-4421"),"] We are continuing to write benchmarks to understand exactly where\nall the time is being spent on executing the ",(0,r.kt)("inlineCode",{parentName:"li"},"TICKF")," transition.\nThe consolidation of the per-stake-credential stake distribution to the per-stake-pool\ndistribution does seem to account for a large amount of time (near a second as written, which we\nhave down to about half a second with some optimizations),\nbut this does not account for everything.\nApplying the reward update may also be a big contributing factor."),(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3033"},"pull-3033"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3038"},"pull-3038"),"][",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3041"},"pull-3041"),"] A separate team is working on upgrading all the\ncardano-node repositories to work with ghc 9.2.4. We have been helping out with this effort."),(0,r.kt)("li",{parentName:"ul"},"The nix scripts used to build our new\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/formal-ledger-specifications"},"formal ledger model"),"\ndo not work consistently for everyone, and we have been working on fixing these issues."),(0,r.kt)("li",{parentName:"ul"},"[",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3014"},"issue-3014"),"] We are still working on adding a versioning scheme to all of the ledger\nserializers.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a419cc29.56c94ff4.js b/assets/js/a419cc29.56c94ff4.js new file mode 100644 index 0000000000..76de1137e1 --- /dev/null +++ b/assets/js/a419cc29.56c94ff4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73513],{13692:e=>{e.exports=JSON.parse('{"permalink":"/page/19","page":19,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/18","nextPage":"/page/20","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/a4419125.a971230c.js b/assets/js/a4419125.a971230c.js new file mode 100644 index 0000000000..79eb927eb4 --- /dev/null +++ b/assets/js/a4419125.a971230c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40077],{3905:(e,t,o)=>{o.d(t,{Zo:()=>p,kt:()=>h});var r=o(67294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function s(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?a(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):a(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function i(e,t){if(null==e)return{};var o,r,n=function(e,t){if(null==e)return{};var o,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)o=a[r],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)o=a[r],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=r.createContext({}),u=function(e){var t=r.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=u(o),d=n,h=c["".concat(l,".").concat(d)]||c[d]||m[d]||a;return o?r.createElement(h,s(s({ref:t},p),{},{components:o})):r.createElement(h,s({ref:t},p))}));function h(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,s=new Array(a);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:n,s[1]=i;for(var u=2;u<a;u++)s[u]=o[u];return r.createElement.apply(null,s)}return r.createElement.apply(null,o)}d.displayName="MDXCreateElement"},13274:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var r=o(87462),n=(o(67294),o(3905));const a={title:"Network Team Update",slug:"2024-03-04-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-03-04-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-04-network.md",source:"@site/blog/2024-03-04-network.md",title:"Network Team Update",description:"High-level overview of sprint 56",date:"2024-03-04T00:00:00.000Z",formattedDate:"March 4, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.25,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-03-04-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-03-06-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-03-01-hydra"}},l={authorsImageUrls:[void 0]},u=[{value:"High-level overview of sprint 56",id:"high-level-overview-of-sprint-56",level:2},{value:"Cardano-Node, Cardano-API, Cardano-CLI",id:"cardano-node-cardano-api-cardano-cli",level:3},{value:"Ouroboros-Network",id:"ouroboros-network",level:3},{value:"Ouroboros-Consensus",id:"ouroboros-consensus",level:3},{value:"Low-level summary",id:"low-level-summary",level:2}],p={toc:u},c="wrapper";function m(e){let{components:t,...o}=e;return(0,n.kt)(c,(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-56"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+56%22"},"sprint 56")),(0,n.kt)("h3",{id:"cardano-node-cardano-api-cardano-cli"},"Cardano-Node, Cardano-API, Cardano-CLI"),(0,n.kt)("p",null,"In the last sprint, the network team was designated to take the Release\nEngineering Role, as the coming release contains mostly network advances.\nArmando Santos has been making progress on it. The following packages were\npublished to ",(0,n.kt)("inlineCode",{parentName:"p"},"CHaP"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-network-0.12.0.0"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network/CHANGELOG.md#01200----2023-02-21"},"changelog"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-network-protocols-0.8.0.0"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network-protocols/CHANGELOG.md#0800----2024-02-21"},"changelog"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-network-api-0.7.0.0"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/blob/master/ouroboros-network-api/CHANGELOG.md#0700----2024-02-21"},"changelog"),";")),(0,n.kt)("p",null,"and other ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," packages with minor changes. The following\npackages were also published:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus-0.16.0.0"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/blob/main/ouroboros-consensus/CHANGELOG.md#01600--2024-02-23"},"changelog"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus-cardano-0.14.0.0"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/blob/main/ouroboros-consensus-cardano/CHANGELOG.md#01400--2024-02-23"},"changelog"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/615"},(0,n.kt)("inlineCode",{parentName:"a"},"cardano-cli-8.20.3.0")),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/blob/main/cardano-cli/CHANGELOG.md#82030"},"changelog"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/459"},(0,n.kt)("inlineCode",{parentName:"a"},"cardano-api-8.39.2.0")),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/blob/main/cardano-api/CHANGELOG.md#83920"},"changelog"),".")),(0,n.kt)("p",null,"The work on ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node")," is in progress, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/pull/5485"},"cardano-node#5485")),(0,n.kt)("p",null,"We would like to thank Karl Knutsson (",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") for helping us to test the upcoming\n",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node")," release."),(0,n.kt)("h3",{id:"ouroboros-network"},"Ouroboros-Network"),(0,n.kt)("p",null,"We continued working on ",(0,n.kt)("inlineCode",{parentName:"p"},"tx-submission"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network#3311")),(0,n.kt)("p",null,"We started to execute an idea to put all configuration values used by the\ndiffusion layer ",(0,n.kt)("inlineCode",{parentName:"p"},"Ouroboros.Network.Diffusion.Configuration")," module. Currently,\ndefault values are spread in different repositories (e.g. ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node"),",\n",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),"). See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4805"},"ouroboros-network#4805"),"."),(0,n.kt)("p",null,"We restored how syncing works in bootstrap mode to get the same performance\ncharacteristics, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4809"},"ouroboros-network#4809"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4810"},"ouroboros-network#4810"),"."),(0,n.kt)("p",null,"We started working on Outbound-Governor Genesis mode, see\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4813"},"ouroboros-network#4813"),"."),(0,n.kt)("h3",{id:"ouroboros-consensus"},"Ouroboros-Consensus"),(0,n.kt)("p",null,"We requested to modify how bulk-sync mode works to make it use the same\nmechanism that the newly added ",(0,n.kt)("inlineCode",{parentName:"p"},"LedgerStateJudgement"),". See\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/958"},"ouroboros-consensus#958"),"."),(0,n.kt)("h2",{id:"low-level-summary"},"Low-level summary"),(0,n.kt)("p",null,"We also addressed a minor issue regarding tracing ",(0,n.kt)("inlineCode",{parentName:"p"},"LedgerStateJudgement"),"\nchanges, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4816"},"ouroboros-network#4816"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a48d66c0.eacbe8df.js b/assets/js/a48d66c0.eacbe8df.js new file mode 100644 index 0000000000..5f98486fbe --- /dev/null +++ b/assets/js/a48d66c0.eacbe8df.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[77965],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},m=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,m=c(e,["components","mdxType","originalType","parentName"]),u=s(n),d=a,h=u["".concat(l,".").concat(d)]||u[d]||p[d]||i;return n?r.createElement(h,o(o({ref:t},m),{},{components:n})):r.createElement(h,o({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,o[1]=c;for(var s=2;s<i;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},69029:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-09-07-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,c={permalink:"/2023-09-07-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-07-performance-and-tracing.md",source:"@site/blog/2023-09-07-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-09-07T00:00:00.000Z",formattedDate:"September 7, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.3,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-09-07-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-09-07-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2023-09-06-consensus"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:s},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've performed and analysed feature benchmarks for both UTxO-HD and the current P2P stack."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: Various improvements of our analysis pipeline have been merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master"),", supporting safe log truncation."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Namespace consistency checks have been merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master")," along with a curated configuration for benchmarking."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: We're productively using the new backend to measure new vs. legacy tracing system, adding many quality-of-life improvements.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've completed various runs and analyses targeting two distinct features of the node: UTxO-HD and Peer2Peer. "),(0,a.kt)("p",null,"With our UTxO-HD benchmark we could clearly localize one point where this new way of maintaining ledger state is still costly, but at the same time confirm that in basically all other aspects UTxO-HD makes no difference in performance. "),(0,a.kt)("p",null,"The Peer2Peer benchmarks focused on the effects that enabling this feature on a block producing node has on propagation times, as well as scrutinized a proposed change to the Peer2Peer network stack."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"As a result of optimizing in-memory representation of log objects, which are constructed from a node's traces, we can now analyse runs that last longer in total. For runs that exceed their expected duration, analysis now supports a truncation\noperation that keeps the interdependencies of block events intact. "),(0,a.kt)("p",null,"Truncation might happen at a slightly different point\nin time - and therefore in its log object stream - for each node in the cluster. An additional step validating the block hash timeline of the cluster has been implemented for the pipeline. It provides early feedback on whether a specific truncation will lead to a valid full analysis, which requires much more time."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"Consistency checking of namespace implementation and configuration when using the new system has been completed.\nThis feature enables feedback on when tracer implementation details in some component might have changed. It's also able to detect when a configuration used for operating a ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," shows inconsistencies with the namespaces the system provides - and hence needs attention. "),(0,a.kt)("p",null,"Furthermore, we've created a fine-grained configuration of the new system that caters to benchmarking's need of very many\ndetailed trace messages. It's aimed at mirroring the same amount of trace messages, and information, we're seeing from our usage of the legacy system; an important step in making benchmarks between systems comparable."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"The new backend is currently being used for further validation with regard to the existing cluster. Additionally, we're using it in production mode to comparatively benchmark both tracing systems after merging past month's optimizations - which is the\nfirst real-life application of the nomad cluster. Hands-on experience in that phase translates into many small improvements which can be immediately applied to enhance user experience for the new backend."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a526ae0c.122f3363.js b/assets/js/a526ae0c.122f3363.js new file mode 100644 index 0000000000..d659f32091 --- /dev/null +++ b/assets/js/a526ae0c.122f3363.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67103],{76987:e=>{e.exports=JSON.parse('{"permalink":"/page/61","page":61,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/60","nextPage":"/page/62","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/a56f68e5.a07d7726.js b/assets/js/a56f68e5.a07d7726.js new file mode 100644 index 0000000000..e27f944d7b --- /dev/null +++ b/assets/js/a56f68e5.a07d7726.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75940],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,s(s({ref:t},c),{},{components:n})):r.createElement(f,s({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u<o;u++)s[u]=n[u];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},28194:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-06-26-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-06-26-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-26-consensus.md",source:"@site/blog/2024-06-26-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-06-26T00:00:00.000Z",formattedDate:"June 26, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.175,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-06-26-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-07-03-mithril"},nextItem:{title:"Mithril Team Update",permalink:"/2024-06-26-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Supported debugging activities related to bootstrap nodes."),(0,a.kt)("li",{parentName:"ul"},"Merged various improvements to the ",(0,a.kt)("inlineCode",{parentName:"li"},"db-X")," tools; in particular, ",(0,a.kt)("inlineCode",{parentName:"li"},"db-truncater")," (which is used regularly by community members on sanchonet) ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1143"},"got much faster"),".")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a572b6ff.d6d14e85.js b/assets/js/a572b6ff.d6d14e85.js new file mode 100644 index 0000000000..ecd9d5d13d --- /dev/null +++ b/assets/js/a572b6ff.d6d14e85.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[56618],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=s(n),p=a,h=d["".concat(l,".").concat(p)]||d[p]||m[p]||o;return n?r.createElement(h,i(i({ref:t},u),{},{components:n})):r.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var s=2;s<o;s++)i[s]=n[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}p.displayName="MDXCreateElement"},18104:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & tracing update",slug:"2023-08-04-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,c={permalink:"/2023-08-04-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-performance-and-tracing.md",source:"@site/blog/2023-08-04-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.76,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-08-04-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-08-04-network"},nextItem:{title:"SRE Team Update",permalink:"/2023-08-04-sre"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],u={toc:s},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We're adjusting the benchmarking cluster to handle runs for node version ",(0,a.kt)("inlineCode",{parentName:"li"},"8.2.0"),"."),(0,a.kt)("li",{parentName:"ul"},"Tracing: We've finished optimization of the new tracing system and added extra robustness with regard to namespacing."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: We've been working on making all benchmarking code compliant with the latest GHC9.6."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: The new backend has seen adjustments due to a change of underlying hardware. Additionally, we've successfully performed various benchmarking runs on it.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"8.2.0")," version of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," required adjustment of some of the sanity checks that are part of our benchmarking\ncluster automation. We've pinpointed the necessary changes and are currently setting up the cluster for the new node version."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The optimization efforts for the new tracing system have been completed and have significantly reduced the resource footprint\nwhen using it as default for a running node. "),(0,a.kt)("p",null,"A linchpin of the new system is the organization of traces into a namespace hierarchy. This affects configuration, self-documentation as well as rendering of desired trace messages. The new system is now equipped to detect any\ninconsistency in the whole set of tracers, defined across all components, even if they are never turned on in a running node.\nThis feature adds another layer of robustness to the whole system."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"A potential switch to GHC9.6 (or higher) required some work on our code bases to make it compliant with recent compiler\nversions. We've future-proofed our benchmarking code."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"The hardware cluster that our nomad backend was accessing has been changed, and we were able to adjust our backend\naccordingly without touching its higher level abstractions and functionality. Moreover, with the new hardware and cluster setup, certain tasks such as retrieving run artifacts or healthcheck monitoring have become more performant. "),(0,a.kt)("p",null,"The validation phase is ongoing. We were able to perform successful runs and analyses for various ",(0,a.kt)("inlineCode",{parentName:"p"},"8.x")," node versions, including ",(0,a.kt)("inlineCode",{parentName:"p"},"8.2.0-pre"),". With parallel runs on the current cluster, we hope to measure the same effects we've observed with the\nnomad backend - which will be a big step towards production use."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a5aa5392.0e722af7.js b/assets/js/a5aa5392.0e722af7.js new file mode 100644 index 0000000000..7fe2fc7ce6 --- /dev/null +++ b/assets/js/a5aa5392.0e722af7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97779],{86118:e=>{e.exports=JSON.parse('{"permalink":"/tags/devx","page":1,"postsPerPage":5,"totalPages":1,"totalCount":2,"blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/a5c8afdd.672e0f1f.js b/assets/js/a5c8afdd.672e0f1f.js new file mode 100644 index 0000000000..99819159d9 --- /dev/null +++ b/assets/js/a5c8afdd.672e0f1f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6814],{34048:e=>{e.exports=JSON.parse('{"permalink":"/tags/goedel/page/2","page":2,"postsPerPage":5,"totalPages":5,"totalCount":23,"previousPage":"/tags/goedel","nextPage":"/tags/goedel/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/a609cdb3.d8ac34f0.js b/assets/js/a609cdb3.d8ac34f0.js new file mode 100644 index 0000000000..95b2f24f00 --- /dev/null +++ b/assets/js/a609cdb3.d8ac34f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32288],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>u});var a=t(67294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),c=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=c(e.components);return a.createElement(s.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},h=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(t),h=r,u=p["".concat(s,".").concat(h)]||p[h]||m[h]||i;return t?a.createElement(u,o(o({ref:n},d),{},{components:t})):a.createElement(u,o({ref:n},d))}));function u(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,o=new Array(i);o[0]=h;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[p]="string"==typeof e?e:r,o[1]=l;for(var c=2;c<i;c++)o[c]=t[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}h.displayName="MDXCreateElement"},60378:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var a=t(87462),r=(t(67294),t(3905));const i={title:"Performance & Tracing Update",slug:"2024-03-08-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-08-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-08-performance-and-tracing.md",source:"@site/blog/2024-03-08-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-03-08T00:00:00.000Z",formattedDate:"March 8, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:4.04,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-03-08-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-03-08-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2024-03-06-consensus"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3},{value:"UTxO Growth",id:"utxo-growth",level:3},{value:"Nomad cluster",id:"nomad-cluster",level:3}],d={toc:c},p="wrapper";function m(e){let{components:n,...t}=e;return(0,r.kt)(p,(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Benchmarking: We've performed release benchmarks for Node ",(0,r.kt)("inlineCode",{parentName:"li"},"8.9.0"),". Additionally, we benchmarked different GC settings for ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-node"),"."),(0,r.kt)("li",{parentName:"ul"},"Development: Ongoing work on the reporting pipeline and high-level profile definitions."),(0,r.kt)("li",{parentName:"ul"},"Workbench: In conjunction with ",(0,r.kt)("inlineCode",{parentName:"li"},"DRep")," delegations in genesis, we're working on adjustments to a new ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-cli")," command."),(0,r.kt)("li",{parentName:"ul"},"Tracing: Test coverage for the new handle registry feature in ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," is complete."),(0,r.kt)("li",{parentName:"ul"},"UTxO Growth: Currently, we're developing a series of benchmarks targeting performance implications of increased UTxO set size."),(0,r.kt)("li",{parentName:"ul"},"Nomad cluster: Disk storage safety net; better admin access to Nomad nodes; basic backend support for more than 1 cluster; new latency service.")),(0,r.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,r.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,r.kt)("p",null,"We've performed a full set of release benchmarks for Node ",(0,r.kt)("inlineCode",{parentName:"p"},"8.9.0"),". Initially, we identified a performance regression in connection to ledger snapshots. This has been addressed very swiftly.\nHaving re-run the fixed version, we could detect no performance risks in comparison with ",(0,r.kt)("inlineCode",{parentName:"p"},"8.7.2")," / ",(0,r.kt)("inlineCode",{parentName:"p"},"8.7.3"),". "),(0,r.kt)("p",null,"In an additional set of benchmarks, we targeted the garbage collector (GC) settings that ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," is built with by default. Specifically, we compared these (copying, sequential GC) as a baseline\nto using the parallel GC, the compacting GC and the non-moving GC - all of which are supported by GHC's runtime system. As GC always is a trade-off between space and time (and as a consequence, responsiveness);\nwe could measure the parallel GC offering a slight increase in responsiveness at the cost of delaying some evaluations - which is suboptimal for a block forger. The compacting GC could clearly\nachieve a smaller RAM footprint, but only at the cost of increased CPU usage - and clearly worsened responsiveness. The non-moving GC could greatly enhance responsiveness - but increased the RAM footprint tremendously, as\nwell as introduced delays in the forging loop. In conclusion: the existing default is still the best choice by far for ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," - validated both on GHC8.10.7 and GHC9.6.3."),(0,r.kt)("h3",{id:"development"},"Development"),(0,r.kt)("p",null,"The work on moving benchmark profile, and genesis, definitions out of the ",(0,r.kt)("inlineCode",{parentName:"p"},"bash")," scripting / JSON data transformation space is still ongoing. Type safety and a test suite for those tasks\nwill allow for a much more principled approach. "),(0,r.kt)("p",null,"The implementation of additional rendering formats and report templates for our reporting pipeline has been completed; it is currently in testing and validation phase."),(0,r.kt)("h3",{id:"workbench"},"Workbench"),(0,r.kt)("p",null,"We're working on integrating new ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli")," functionality in our automations. Injecting ",(0,r.kt)("inlineCode",{parentName:"p"},"DRep")," delegations into genesis - for Conway ledger benchmarks - will require us\nto use a new CLI command, which differs in in output structure and options provided from the one we're using to inject stake pool delegations. This requires us to\nimplement and additional post-processing step for backends to find everything as expected."),(0,r.kt)("p",null,"Furthermore, a PR has been merged which refactors and cleans up benchmarking profiles, with a focus on fine-tuning solo-node benchmarks which scrutinize a single ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," process."),(0,r.kt)("h3",{id:"tracing"},"Tracing"),(0,r.kt)("p",null,"The test suite for ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),"'s new handle registry feature is complete, and the new feature passes all tests. At the moment, we're\npreparing it for merging into ",(0,r.kt)("inlineCode",{parentName:"p"},"master"),"."),(0,r.kt)("h3",{id:"utxo-growth"},"UTxO Growth"),(0,r.kt)("p",null,"We're developing a series of benchmarks that will provide insight into possible changes to the Node's performance characteristics given different UTxO set sizes and numbers of delegated wallets.\nWhat we aim to capture in these benchmarks is the system's capability to scale with UTxO growth - while simultaneously evaluating hardware requirements. The workloads will be based on existing release benchmarks, but allow for flexibility regarding UTxO set and delegations. They will target the existing in-memory solution, and at the same time permit feasability testing UTxO-HD's on-disk\nflavour - which does not keep the entire UTxO set in RAM permanently."),(0,r.kt)("h3",{id:"nomad-cluster"},"Nomad cluster"),(0,r.kt)("p",null,"Implementation of cluster machine disk space checking and garbage collection is complete. A requirement was that no\nmonitoring process interferes with a running benchmark, so a non-synchronous approach was chosen to guarantee enough disk space. This prevents failing\nruns, and thus the necessity to repeat them. "),(0,r.kt)("p",null,"In the process, the workbench backend was equipped with a wider range of cluster commands and abstractions, which makes administrating cluster\nmachines more flexible. This includes a new service to create a network latency matrix for deployed cluster hardware - generalizing the approach\nchosen during the Nomad cluster's initial validation phase. This can guarantee the validity of existing baselines in case of hardware reboots, or changes\nin topology. "),(0,r.kt)("p",null,"Last not least, the backend is currently receiving an additional feature: supporting more than 1 hardware cluster. This will enable us,\nin the future, to benchmark on ephemeral clusters - without interfering with the hard requirements, or the schedule, of release benchmarking\non our default deployment. The motivation is being able to benchmark different hardware configurations, along with varying ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," options and\ninitial ledger states on a parallel schedule - also, without having to keep those clusters running at all times."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a6238997.6c320784.js b/assets/js/a6238997.6c320784.js new file mode 100644 index 0000000000..0f0e8c80cc --- /dev/null +++ b/assets/js/a6238997.6c320784.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[49904],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=d(e,["components","mdxType","originalType","parentName"]),s=c(n),m=o,g=s["".concat(l,".").concat(m)]||s[m]||p[m]||a;return n?r.createElement(g,i(i({ref:t},u),{},{components:n})):r.createElement(g,i({ref:t},u))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var d={};for(var l in t)hasOwnProperty.call(t,l)&&(d[l]=t[l]);d.originalType=e,d[s]="string"==typeof e?e:o,i[1]=d;for(var c=2;c<a;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},46010:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>d,toc:()=>c});var r=n(87462),o=(n(67294),n(3905));const a={title:"Cardano Block Production Temporary Outage",slug:"2023-04-17-ledger",authors:"kevinhammond",tags:["ledger","incident"],hide_table_of_contents:!1},i=void 0,d={permalink:"/2023-04-17-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-17-incident.md",source:"@site/blog/2023-04-17-incident.md",title:"Cardano Block Production Temporary Outage",description:"Cardano block production temporary outage",date:"2023-04-17T00:00:00.000Z",formattedDate:"April 17, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"},{label:"incident",permalink:"/tags/incident"}],readingTime:1.37,hasTruncateMarker:!1,authors:[{name:"Kevin Hammond",title:"Head of Software Engineering, Cardano Core",url:"https://github.com/kevinhammond",imageURL:"https://github.com/kevinhammond.png",key:"kevinhammond"}],frontMatter:{title:"Cardano Block Production Temporary Outage",slug:"2023-04-17-ledger",authors:"kevinhammond",tags:["ledger","incident"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-04-19-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-04-14-goedel"}},l={authorsImageUrls:[void 0]},c=[{value:"Cardano block production temporary outage",id:"cardano-block-production-temporary-outage",level:2},{value:"Further Details",id:"further-details",level:3}],u={toc:c},s="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(s,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"cardano-block-production-temporary-outage"},"Cardano block production temporary outage"),(0,o.kt)("p",null,"On Sunday, January 22, 2023, an incident occurred resulting in block production pausing for a brief period of time (approximately two minutes, similar to the usual pause at an epoch boundary). Around 50% of block-producing nodes and relays restarted during this period. Having restarted, nodes continued to produce blocks without failure. While the network continued to operate, the issue did have the potential to affect network integrity, so was flagged as a \u2018critical\u2019 incident, thus warranting immediate response and investigation by IOG engineers.\nThe investigation (with SPO & Cardano Foundation collaboration) quickly revealed the cause of the issue \u2013 a complex bug in data structure handling code related to the precise order of insertion/deletion of multi-asset tokens into the internal ledger record. Input Output Global (IOG) engineers, along with SPOs and DApp developers, collectively identified how to reproduce the issue as a unit test that could be included in the standard Cardano node test suite.\nFollowing successful testing, this led to a bug fix being implemented, tested, benchmarked, and deployed as a hotfix in the node v.1.35.5 release on Friday, January 27, 2023. Care was taken not to highlight the exact cause of the bug during this process so that it could not be exploited prior to SPOs deploying this new node version.\nWith the fix deployed, the Cardano SPO and developer community have not seen any further instances of this issue."),(0,o.kt)("h3",{id:"further-details"},"Further Details"),(0,o.kt)("p",null,"You can read more details on the incident and how it was managed from SundaeSwap\u2019s Pi Lanningham ",(0,o.kt)("a",{parentName:"p",href:"https://www.314pool.com/post/cardano-post-mortem-1"},"here"),". Thanks again to all the community for its support in identifying and fixing this bug."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a6472a96.d67c5166.js b/assets/js/a6472a96.d67c5166.js new file mode 100644 index 0000000000..19c16a9875 --- /dev/null +++ b/assets/js/a6472a96.d67c5166.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[14587],{34921:e=>{e.exports=JSON.parse('{"permalink":"/page/26","page":26,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/25","nextPage":"/page/27","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/a687dd04.31e4aa69.js b/assets/js/a687dd04.31e4aa69.js new file mode 100644 index 0000000000..4cf7f1ee86 --- /dev/null +++ b/assets/js/a687dd04.31e4aa69.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[26026],{3905:(e,a,t)=>{t.d(a,{Zo:()=>p,kt:()=>h});var r=t(67294);function n(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function o(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);a&&(r=r.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var a=1;a<arguments.length;a++){var t=null!=arguments[a]?arguments[a]:{};a%2?o(Object(t),!0).forEach((function(a){n(e,a,t[a])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))}))}return e}function s(e,a){if(null==e)return{};var t,r,n=function(e,a){if(null==e)return{};var t,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],a.indexOf(t)>=0||(n[t]=e[t]);return n}(e,a);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],a.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var i=r.createContext({}),c=function(e){var a=r.useContext(i),t=a;return e&&(t="function"==typeof e?e(a):l(l({},a),e)),t},p=function(e){var a=c(e.components);return r.createElement(i.Provider,{value:a},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var a=e.children;return r.createElement(r.Fragment,{},a)}},m=r.forwardRef((function(e,a){var t=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(t),m=n,h=u["".concat(i,".").concat(m)]||u[m]||d[m]||o;return t?r.createElement(h,l(l({ref:a},p),{},{components:t})):r.createElement(h,l({ref:a},p))}));function h(e,a){var t=arguments,n=a&&a.mdxType;if("string"==typeof e||n){var o=t.length,l=new Array(o);l[0]=m;var s={};for(var i in a)hasOwnProperty.call(a,i)&&(s[i]=a[i]);s.originalType=e,s[u]="string"==typeof e?e:n,l[1]=s;for(var c=2;c<o;c++)l[c]=t[c];return r.createElement.apply(null,l)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},59536:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=t(87462),n=(t(67294),t(3905));const o={title:"SRE Team Update",slug:"2023-10-13-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,s={permalink:"/2023-10-13-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-13-sre.md",source:"@site/blog/2023-10-13-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-10-13T00:00:00.000Z",formattedDate:"October 13, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:2.595,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-10-13-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-10-13-ledger"},nextItem:{title:"Mithril Team Update",permalink:"/2023-10-11-mithril"}},i={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Sanchonet-demo",id:"sanchonet-demo",level:3}],p={toc:c},u="wrapper";function d(e){let{components:a,...t}=e;return(0,n.kt)(u,(0,r.Z)({},p,t,{components:a,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet environment was updated to 8.5.0-pre."),(0,n.kt)("li",{parentName:"ul"},"Cardano-parts now supports cardano-db-sync, cardano-smash, cardano-faucet and grafana cloud monitoring")),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Various improvements and fixes including:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add GHA cron schedule"),(0,n.kt)("li",{parentName:"ul"},"Add nix auto-gc to avoid running out of storage during large package set builds"),(0,n.kt)("li",{parentName:"ul"},"Add new packages to capkgs"),(0,n.kt)("li",{parentName:"ul"},"Reduce runner storage requirement leaving more room for builds"),(0,n.kt)("li",{parentName:"ul"},"Restructure capkgs attribute names to avoid package name collisions"),(0,n.kt)("li",{parentName:"ul"},"Return to non-musl builds for cardano packages to retain journald compatability"),(0,n.kt)("li",{parentName:"ul"},"Update cache usage to from file level to folder level to reduce network and latency overhead"),(0,n.kt)("li",{parentName:"ul"},"Commit diff: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/a274b72...b197e22"},"capkgs-compare"))))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updates cardano-node-ng to 8.5.0-pre and adds a Conway era automation job: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/16"},"cardano-parts-pull-16")),(0,n.kt)("li",{parentName:"ul"},"Dbsync, smash, faucet and more: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/15"},"cardano-parts-pull-15"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Adds cardano-db-sync, cardano-faucet, cardano-postgres, cardano-smash, profiles and/or services and related changes"),(0,n.kt)("li",{parentName:"ul"},"Adds nginx vhost metrics exporter profile"),(0,n.kt)("li",{parentName:"ul"},"Adds smash registered-relay-dump service and exporter for use until legacy relay nodes are scaled down"),(0,n.kt)("li",{parentName:"ul"},"Adds bash *-ng autocompletion compatible wrappers"),(0,n.kt)("li",{parentName:"ul"},"Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview"),(0,n.kt)("li",{parentName:"ul"},"Adds downstream grafana cloud dashboard as templates"),(0,n.kt)("li",{parentName:"ul"},"Adds downstream grafana cloud alerts as templates"),(0,n.kt)("li",{parentName:"ul"},"Updates grafana-agent profile with new exporter scrape hooks: cardano-db-sync, cardano-faucet, nginx-vts, varnish"),(0,n.kt)("li",{parentName:"ul"},"Updates the basic profile with IOG cache and commonly used bins"),(0,n.kt)("li",{parentName:"ul"},"Updates the pre-release profile to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning"),(0,n.kt)("li",{parentName:"ul"},"Updates flakeModule jobs with new conway era automation and additional IO encryption shimming and file type checks"),(0,n.kt)("li",{parentName:"ul"},"Updates .sops.yaml template for supporting faucet secrets, workbench secrets, state-demo secrets"),(0,n.kt)("li",{parentName:"ul"},"Updates the Justfile template with terraform fixes for workspace switching and provider auto-reconfiguration"),(0,n.kt)("li",{parentName:"ul"},"Updates the cloudFormation terraformState template with stack modifications to preserve all resources in case of deletion"),(0,n.kt)("li",{parentName:"ul"},"Updates the colmena template with dbsync, smash, faucet machines profiles and roles"),(0,n.kt)("li",{parentName:"ul"},"Improves prior cardano-postgres modules to now automatically tune pg parameters based on machine cpuCount, memMiB and desired conns"),(0,n.kt)("li",{parentName:"ul"},"Bumps capkgs node-ng to 8.5.0-pre")))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Dbsync, smash, faucet and more: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/3"},"cardano-playground-pull-3"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview"),(0,n.kt)("li",{parentName:"ul"},"Adds dbsync, smash, faucet machines and corresponding metrics exporters, dashboards and alerts"),(0,n.kt)("li",{parentName:"ul"},"Moves the flake.cardano-parts.cluster.group attrSet name to groups to accurately reflect the plurality and the upstream corresponding change"),(0,n.kt)("li",{parentName:"ul"},"Optimizes machine sizes"),(0,n.kt)("li",{parentName:"ul"},"Updates .sops.yaml for supporting faucet secrets, workbench secrets, state-demo secrets"),(0,n.kt)("li",{parentName:"ul"},"Updates the cloudFormation terraformState file with stack modifications to preserve all resources in case of deletion"),(0,n.kt)("li",{parentName:"ul"},"Updates the cluster isNg definition to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning"),(0,n.kt)("li",{parentName:"ul"},"Updates the Justfile with terraform fixes for workspace switching and provider auto-reconfiguration")))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update sanchonet network to cardano-node 8.5.0: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/c8a480fa7cdb6eff4f8b4565450c57361ddfdec4"},"cardano-world-commit"))),(0,n.kt)("h3",{id:"sanchonet-demo"},"Sanchonet-demo"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update for cardano-node 8.5.0, conway job recipes and cardano-parts interface changes: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet-demo/commit/4124465c0c663d11c8cf4ef80af18a5246f89b31"},"sanchonet-demo-commit"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a69b7e0b.98ed5b26.js b/assets/js/a69b7e0b.98ed5b26.js new file mode 100644 index 0000000000..8413e24c9f --- /dev/null +++ b/assets/js/a69b7e0b.98ed5b26.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43308],{94022:a=>{a.exports=JSON.parse('{"label":"db-sync","permalink":"/tags/db-sync","allTagsPath":"/tags","count":16}')}}]); \ No newline at end of file diff --git a/assets/js/a69f0deb.4197ad38.js b/assets/js/a69f0deb.4197ad38.js new file mode 100644 index 0000000000..f94dadf2a5 --- /dev/null +++ b/assets/js/a69f0deb.4197ad38.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2773],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=u(a),h=r,s=d["".concat(p,".").concat(h)]||d[h]||m[h]||i;return a?n.createElement(s,l(l({ref:t},c),{},{components:a})):n.createElement(s,l({ref:t},c))}));function s(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=h;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[d]="string"==typeof e?e:r,l[1]=o;for(var u=2;u<i;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},67900:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-07-18-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",o={permalink:"/2023-07-18-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-18-node-cli-api.md",source:"@site/blog/2023-07-18-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-07-18T00:00:00.000Z",formattedDate:"July 18, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.065,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-07-18-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-07-20-goedel"},nextItem:{title:"Hydra Team Update",permalink:"/2023-07-14-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-07-05---2023-07-18"},"2023-07-05 - 2023-07-18"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Integrate Conway certificates in cardano-api"),(0,r.kt)("li",{parentName:"ul"},"Prepare cardano-cli and cardano-api for cardano-node 8.1.2"),(0,r.kt)("li",{parentName:"ul"},"Tagged cardano-cli 8.3.0.0",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Query for the hash of the constitution (Conway)"),(0,r.kt)("li",{parentName:"ul"},"Ability to create votes and governance actions"))),(0,r.kt)("li",{parentName:"ul"},"Tagged cardano-cli 8.3.1.0",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Make it build with ghc-9.6"))),(0,r.kt)("li",{parentName:"ul"},"Upgrade to optparse-applicative-fork-0.18.1.0 for parsing command line options")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/74"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"optparse-applicative-fork-0.18.1.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/72"},"Integrate cardano-api changes for fixed Show and Eq instances for Proposal type")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/68"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli-8.3.1.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/67"},"Add alonzo era to ",(0,r.kt)("inlineCode",{parentName:"a"},"Parser AnyShelleyBasedEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/66"},"Use ",(0,r.kt)("inlineCode",{parentName:"a"},"sbe")," variable name for the type is ",(0,r.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/65"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli-8.3.0.0")))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/123"},"Fix ghc version CPP")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/122"},"Add a HasTypeProxy constraint to getVerificationKey")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/119"},"Incorporate remaining ledger certificates")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/117"},"Release cardano-api 8.8.1.0, cardano-api-gen 8.1.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/115"},"Fix Eq, Show for Proposal type")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/112"},"Wire up remaining governance actions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/108"},"Export ",(0,r.kt)("inlineCode",{parentName:"a"},"withShelleyBasedEraConstraintsForLedger"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/106"},"Remove unnecessary constraint")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/104"},"Make it build with ghc-9.6")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/103"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"shelleyBasedEraConstraints")," function")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/102"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.8.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/101"},"Add CastVerificationKeyRole StakePoolKey StakeKey instance")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/99"},"Update ledger and consensus")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/98"},"Rename ",(0,r.kt)("inlineCode",{parentName:"a"},"era")," to ",(0,r.kt)("inlineCode",{parentName:"a"},"sbe")," when type is ",(0,r.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra")))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5391"},"Fix Shutdown test for new exit codes"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5387"},"Fix markdown links"))),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/69"},"Apply ",(0,r.kt)("inlineCode",{parentName:"a"},"stylish-haskell")," to project"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.3167acc2.js b/assets/js/a6aa9e1f.3167acc2.js new file mode 100644 index 0000000000..7cfaf6538b --- /dev/null +++ b/assets/js/a6aa9e1f.3167acc2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93089],{80046:(e,t,a)=>{a.r(t),a.d(t,{default:()=>u});var n=a(67294),r=a(86010),l=a(52263),i=a(1944),o=a(35281),s=a(39058),c=a(99703),m=a(90197),g=a(79985);function p(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,l.Z)(),{blogDescription:r,blogTitle:o,permalink:s}=t,c="/"===s?a:o;return n.createElement(n.Fragment,null,n.createElement(i.d,{title:c,description:r}),n.createElement(m.Z,{tag:"blog_posts_list"}))}function d(e){const{metadata:t,items:a,sidebar:r}=e;return n.createElement(s.Z,{sidebar:r},n.createElement(g.Z,{items:a}),n.createElement(c.Z,{metadata:t}))}function u(e){return n.createElement(i.FG,{className:(0,r.Z)(o.k.wrapper.blogPages,o.k.page.blogListPage)},n.createElement(p,e),n.createElement(d,e))}},99703:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(67294),r=a(95999),l=a(32244);function i(e){const{metadata:t}=e,{previousPage:a,nextPage:i}=t;return n.createElement("nav",{className:"pagination-nav","aria-label":(0,r.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},a&&n.createElement(l.Z,{permalink:a,title:n.createElement(r.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")}),i&&n.createElement(l.Z,{permalink:i,title:n.createElement(r.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries"),isNext:!0}))}},79985:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(67294),r=a(9460),l=a(30390);function i(e){let{items:t,component:a=l.Z}=e;return n.createElement(n.Fragment,null,t.map((e=>{let{content:t}=e;return n.createElement(r.n,{key:t.metadata.permalink,content:t},n.createElement(a,null,n.createElement(t,null)))})))}}}]); \ No newline at end of file diff --git a/assets/js/a6e1d45a.8682e6c3.js b/assets/js/a6e1d45a.8682e6c3.js new file mode 100644 index 0000000000..29d4afdc05 --- /dev/null +++ b/assets/js/a6e1d45a.8682e6c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8737],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),h=u(a),m=n,c=h["".concat(p,".").concat(m)]||h[m]||d[m]||i;return a?r.createElement(c,o(o({ref:t},s),{},{components:a})):r.createElement(c,o({ref:t},s))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<i;u++)o[u]=a[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},30221:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-10-27-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-10-27-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-27-hydra.md",source:"@site/blog/2023-10-27-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-10-27T00:00:00.000Z",formattedDate:"October 27, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.895,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-10-27-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-10-27-goedel"},nextItem:{title:"Network Team Update",permalink:"/2023-10-27-network"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],s={toc:u},h="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team fixed the ",(0,n.kt)("inlineCode",{parentName:"p"},"gen-hydra-keys")," command to avoid\noverwriting existing keys, and resolved issues related to the rewritten\n",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-tui"),'. They also worked on a \\"dirt road\\" implementation for the\n\\"Ignored init tx\\" notification, improving the robustness of the system.'),(0,n.kt)("p",null,"The team finalized preparations for the Cardano Summit presentation, including\nimplementation of the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-poll")," example DApp."),(0,n.kt)("p",null,'If you happen to read this and attend the Summit in Dubai, make sure to check\nout our Masterclass about \\"Developing Hydra + Mithril for Scaling Cardano\\" on\nFriday, November 3 at 14:00-15:30 local time in the \\"Al Dar\\" room!'),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fix ",(0,n.kt)("inlineCode",{parentName:"li"},"gen-hydra-keys")," command to not overwrite existing keys\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1136"},"#1136")),(0,n.kt)("li",{parentName:"ul"},"Fixed the rewritten ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-tui"),(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1113"},"#1113"),(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1137"},"#1137")),(0,n.kt)("li",{parentName:"ul"},"Finalized cardano summit preparation\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1109"},"#1109")),(0,n.kt)("li",{parentName:"ul"},"Implemented the ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-poll")," example DApp ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra-poll"},"link to\nrepository")),(0,n.kt)("li",{parentName:"ul"},'Dirt road implementation for \\"Ignored init tx\\" notification\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/529"},"#529"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Attend cardano summit and deliver presentation"),(0,n.kt)("li",{parentName:"ul"},"Clarify / close user created issues"),(0,n.kt)("li",{parentName:"ul"},"Build ",(0,n.kt)("inlineCode",{parentName:"li"},"aarch64-darwin")," binaries in CI")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a6e5ff3c.57f7274c.js b/assets/js/a6e5ff3c.57f7274c.js new file mode 100644 index 0000000000..a2dfdf6ed6 --- /dev/null +++ b/assets/js/a6e5ff3c.57f7274c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[78153],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=n,h=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return a?r.createElement(h,i(i({ref:t},d),{},{components:a})):r.createElement(h,i({ref:t},d))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var c=2;c<o;c++)i[c]=a[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},3868:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-08-18-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-08-18-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-hydra.md",source:"@site/blog/2023-08-18-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-08-18T00:00:00.000Z",formattedDate:"August 18, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.13,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-08-18-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-08-18-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-08-18-ledger"}},s={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:c},p="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team released version 0.12.0, a significant update that\nbrings support for cardano-node 8.1.2, along with performance enhancements and\nvarious API improvements. Additionally, the team successfully onboarded a new\ncontributor who is now actively participating in operating a Hydra Head. They\ntook part in a meeting of the Intersect open source committee and prepared the\nHydra master-class for RareEvo, an educational initiative for the community."),(0,n.kt)("p",null,"If you happen to be at RareEvo, register for the Hydra master-class ",(0,n.kt)("a",{parentName:"p",href:"https://docs.google.com/forms/d/1Q9KIxwKeyZeNrKDBiYWceYjnbxIxaEwC8Eo5LWxSa2g/viewform?edit_requested=true"},"using this\nform"),".\nWe hope to make it possible to follow along on-line as well and will announce\ndetails on the Hydra announcements channel on the ",(0,n.kt)("a",{parentName:"p",href:"https://discord.gg/Qq5vNTg9PT"},"IOG discord\nserver"),"."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released version 0.12.0 which adds support for cardano-node 8.1.2, performance\nand several API improvements. ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.12.0"},"Release notes")),(0,n.kt)("li",{parentName:"ul"},"Replaced commit via websocket with external draft + submit. ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/954"},"#954")),(0,n.kt)("li",{parentName:"ul"},"Onboarded new contributor to the point where he actively participates in operating a Head now."),(0,n.kt)("li",{parentName:"ul"},"Joined a first meeting of the Intersect open source committee"),(0,n.kt)("li",{parentName:"ul"},"Prepared the Hydra master-class for RareEvo.")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting"),(0,n.kt)("li",{parentName:"ul"},"Run the Hydra master-class at RareEvo!"),(0,n.kt)("li",{parentName:"ul"},"Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff"),(0,n.kt)("li",{parentName:"ul"},"Clear out red bin items (technical debt)"),(0,n.kt)("li",{parentName:"ul"},"Groom network resilience and explorer features")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a739ba69.1045042a.js b/assets/js/a739ba69.1045042a.js new file mode 100644 index 0000000000..ec36f36417 --- /dev/null +++ b/assets/js/a739ba69.1045042a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24514],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},75061:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Benchmarking -- Node 8.9.3",slug:"2024-05-performance-8.9.3",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},i=void 0,l={permalink:"/reports/2024-05-performance-8.9.3",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-05-performance-8.9.3.md",source:"@site/reports/2024-05-performance-8.9.3.md",title:"Benchmarking -- Node 8.9.3",description:"Setup",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"benchmarking-reports",permalink:"/reports/tags/benchmarking-reports"}],readingTime:2.69,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Benchmarking -- Node 8.9.3",slug:"2024-05-performance-8.9.3",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},prevItem:{title:"Benchmarking -- Node 8.9.1",permalink:"/reports/2024-03-performance-8.9.1"},nextItem:{title:"Benchmarking -- Node 8.12.1",permalink:"/reports/2024-06-performance-8.12.1"}},s={authorsImageUrls:[void 0]},c=[{value:"Setup",id:"setup",level:2},{value:"Observations",id:"observations",level:2},{value:"Resource Usage",id:"resource-usage",level:3},{value:"Forging Loop",id:"forging-loop",level:3},{value:"Peer propagation",id:"peer-propagation",level:3},{value:"End-to-end propagation",id:"end-to-end-propagation",level:3},{value:"Conclusion",id:"conclusion",level:3},{value:"Contact",id:"contact",level:2},{value:"Attachments",id:"attachments",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"setup"},"Setup"),(0,a.kt)("p",null,"As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1")," - baseline from a previous mainnet release"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," - the current mainnet release")),(0,a.kt)("p",null,"For each version, we're gathering various metrics under 2 different workloads:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"value-only"),": Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"Plutus"),": Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.")),(0,a.kt)("p",null,"Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\nwere performed in the Babbage era."),(0,a.kt)("h2",{id:"observations"},"Observations"),(0,a.kt)("p",null,"These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet. "),(0,a.kt)("h3",{id:"resource-usage"},"Resource Usage"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload, CPU usage increases slightly on ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3"),": 4% for Process, 3% for Mutator and 8% for GC."),(0,a.kt)("li",{parentName:"ol"},"Additionally, Allocation rate and minor GCs increase slightly by 3% each."),(0,a.kt)("li",{parentName:"ol"},"Under Plutus workload only, the GC live dataset increases by 10% or 318MB."),(0,a.kt)("li",{parentName:"ol"},"CPU 85% spans increase by 14% of slot duration under value workload, whereas they shorten by 5% of slot duration under Plutus workload.")),(0,a.kt)("p",null,"Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness."),(0,a.kt)("h3",{id:"forging-loop"},"Forging Loop"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"There are no significant changes to metrics related to block forging.")),(0,a.kt)("p",null,"The metric ",(0,a.kt)("em",{parentName:"p"},"'Slot start to announced'")," (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header."),(0,a.kt)("h3",{id:"peer-propagation"},"Peer propagation"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Block Fetch duration improves by 7ms (or 2%) under value workload, and by 4ms (or 3%) under Plutus workload."),(0,a.kt)("li",{parentName:"ol"},"Under Plutus workload, Fetched to sending improves by 2ms (or 5%).")),(0,a.kt)("h3",{id:"end-to-end-propagation"},"End-to-end propagation"),(0,a.kt)("p",null,"This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. "),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload, cluster adoption times exhibit a minor improvement (1%) up to the 80th centile on ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3"),"."),(0,a.kt)("li",{parentName:"ol"},"Under Plutus workload, we can observe a minor improvement overall (1% - 2%), whilst full adoption is unchanged.")),(0,a.kt)("h3",{id:"conclusion"},"Conclusion"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The performance changes measured between ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1")," are very minor, with ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," improving slightly over ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1"),"."),(0,a.kt)("li",{parentName:"ul"},"Mainnnet performance of ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," is expected to be akin to ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1"),"."),(0,a.kt)("li",{parentName:"ul"},"We have not observed any performance regression being introduced in ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3"),".")),(0,a.kt)("h2",{id:"contact"},"Contact"),(0,a.kt)("p",null,"As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. "),(0,a.kt)("p",null,"We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future."),(0,a.kt)("h2",{id:"attachments"},"Attachments"),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"value-only workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(72895).Z},"here"),"."),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"Plutus workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(98616).Z},"here"),"."),(0,a.kt)("p",null,"NB. The baseline for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.1")," had to be re-established due to changes in the underlying network infrastructure. This means, absolute values may differ from the previous measurements taken from that version."))}d.isMDXComponent=!0},98616:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.9.3.plutus-afc8f7bbf2f6f18fb56aede6169fff68.pdf"},72895:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.9.3.value-only-f08f2a51ca31fad16e2cb3e3ad28ee42.pdf"}}]); \ No newline at end of file diff --git a/assets/js/a7418040.d54210bb.js b/assets/js/a7418040.d54210bb.js new file mode 100644 index 0000000000..edf35720b3 --- /dev/null +++ b/assets/js/a7418040.d54210bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16886],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=n,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},43603:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-11-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-11-15-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-15-mithril.md",source:"@site/blog/2023-11-15-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-11-15T00:00:00.000Z",formattedDate:"November 15, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.92,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-11-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-11-15-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-11-14-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team completed the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof-of-concept, achieving the implementation of P2P signatures broadcast with the relay in the end-to-end tests. Additionally, the team completed the proof-of-concept for the deterministic computation of the UTXO/transactions set from the immutable files."),(0,n.kt)("p",null,"Finally, they continued addressing some performance issue associated with the 'release-mainnet' aggregator, and fixed a bug with the tool used to process batch certificate hash re-computation."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Prototype a P2P relay with ",(0,n.kt)("inlineCode",{parentName:"strong"},"libp2p"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1300"},"#1300")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Release ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1311"},"#1311")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1283"},"#1283")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"release-mainnet")," aggregator is unreachable")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1310"},"#1310")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Fix certificate hashes re-computation in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1343"},"#1343")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Remove ",(0,n.kt)("inlineCode",{parentName:"strong"},"unstable")," tag in ",(0,n.kt)("inlineCode",{parentName:"strong"},"unstable")," release")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1235"},"#1235")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance aggregator REST API performances")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1327"},"#1327")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Signer runtime is stuck for some SPO")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1312"},"#1312"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a74edb50.09101528.js b/assets/js/a74edb50.09101528.js new file mode 100644 index 0000000000..c514f801da --- /dev/null +++ b/assets/js/a74edb50.09101528.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21074],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>g});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),s=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(a),m=n,g=d["".concat(u,".").concat(m)]||d[m]||c[m]||o;return a?r.createElement(g,i(i({ref:t},p),{},{components:a})):r.createElement(g,i({ref:t},p))}));function g(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[d]="string"==typeof e?e:n,i[1]=l;for(var s=2;s<o;s++)i[s]=a[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},76519:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-12-22-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-12-22-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-22-sre.md",source:"@site/blog/2023-12-22-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-12-22T00:00:00.000Z",formattedDate:"December 22, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.305,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-12-22-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-12-22-network"},nextItem:{title:"Mithril Team Update",permalink:"/2023-12-20-mithril"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Auth-keys-hub",id:"auth-keys-hub",level:3},{value:"Cardano-monitoring",id:"cardano-monitoring",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3}],p={toc:s},d="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new repository was created which enables agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-monitoring"},"cardano-monitoring")),(0,n.kt)("li",{parentName:"ul"},"The govtool backend swagger interface was nix flake packaged and deployed for Voltaire private chain testing usage"),(0,n.kt)("li",{parentName:"ul"},"Grafana cloud monitoring stacks were migrated to new EC2 cardano-monitoring servers"),(0,n.kt)("li",{parentName:"ul"},"Cardano-db-sync state snapshots now support client range requests, details ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-db-sync/issues/1552"},"here")),(0,n.kt)("li",{parentName:"ul"},"In addition to monitoring server centralized grafana metrics, sysstat collected system metrics are now available locally on all cluster machines at high time resolution"),(0,n.kt)("li",{parentName:"ul"},"Code changes required due to repository migrations to IntersectMBO have largely been completed")),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"auth-keys-hub"},"Auth-keys-hub"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Add extra nixos module assertions and warnings to address edge cases: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/auth-keys-hub/pull/6"},"auth-keys-hub-pull-6"))),(0,n.kt)("h3",{id:"cardano-monitoring"},"Cardano-monitoring"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new repository enabling agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-monitoring"},"cardano-monitoring"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Migrate from grafana cloud monitoring to ec2 monitoring, add resource tagging support, declarative route53 CNAME list, and additional improvements and fixes: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/25"},"cardano-parts-pull-25")),(0,n.kt)("li",{parentName:"ul"},"Improve ssh key handling and edge cases, resolve misc issues, add IOPS and throughput gp3 openTofu support: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/26"},"cardano-parts-pull-26"))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Migrate from grafana cloud monitoring to ec2 monitoring, add resource tagging support, declarative route53 CNAME list, and additional improvements and fixes: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/10"},"cardano-playground-pull-10")),(0,n.kt)("li",{parentName:"ul"},"Update auth-keys-hub config to address edge cases: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/11"},"cardano-playground-pull-11")),(0,n.kt)("li",{parentName:"ul"},"Add a voltaire govtool backend swagger UI for private chain, misc fixes and updates: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/12"},"cardano-playground-pull-12"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a79960af.0262e888.js b/assets/js/a79960af.0262e888.js new file mode 100644 index 0000000000..235a051028 --- /dev/null +++ b/assets/js/a79960af.0262e888.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[83472],{1660:a=>{a.exports=JSON.parse('{"permalink":"/tags/cli-api/page/5","page":5,"postsPerPage":5,"totalPages":8,"totalCount":39,"previousPage":"/tags/cli-api/page/4","nextPage":"/tags/cli-api/page/6","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/a7a31948.879877da.js b/assets/js/a7a31948.879877da.js new file mode 100644 index 0000000000..41954fabf6 --- /dev/null +++ b/assets/js/a7a31948.879877da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[85943],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(a),m=n,h=s["".concat(p,".").concat(m)]||s[m]||d[m]||o;return a?r.createElement(h,l(l({ref:t},c),{},{components:a})):r.createElement(h,l({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:n,l[1]=i;for(var u=2;u<o;u++)l[u]=a[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},91654:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-09-29-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-09-29-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-29-sre.md",source:"@site/blog/2023-09-29-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-09-29T00:00:00.000Z",formattedDate:"September 29, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.68,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-09-29-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-09-29-ledger"},nextItem:{title:"Mithril Team Update",permalink:"/2023-09-27-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Cardano-world",id:"cardano-world",level:3}],c={toc:u},s="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet environment was re-spun starting from slot 7171200 and updated to cardano-node ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.4.0-pre"},"8.4.0-pre"),"."),(0,n.kt)("li",{parentName:"ul"},"The use of cardano-node ",(0,n.kt)("a",{parentName:"li",href:"https://hub.docker.com/r/inputoutput/cardano-node"},"docker hub")," will be deprecated in preference of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pkgs/container/cardano-node"},"GHCR"))),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Refactor parsing scripts, add github action automation, various bugfixes and cleanup: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/c2c7680...a274b72"},"capkgs-compare"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updates secrets layout scheme, adds sops enc/dec for jobs, adds cloud monitoring profile, updates flake templates and other improvements/fixes: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/14"},"cardano-parts-pull-8"))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updates for new cardano-parts secrets handling and layout, TF workspace handling, group multivalue DNS support, grafana cloud monitoring and other improvements: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/2"},"cardano-playground"))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update sanchonet network to cardano-node 8.4.0: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/compare/8cb559a...3edafb9"},"cardano-world-compare")),(0,n.kt)("li",{parentName:"ul"},"Rotate KES on shelley-qa: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/8301b044ad106ff8ca71dcbbdb5b17fe9ec6fc6d"},"cardano-world-commit"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a82a69a3.f45d1bff.js b/assets/js/a82a69a3.f45d1bff.js new file mode 100644 index 0000000000..442babbf55 --- /dev/null +++ b/assets/js/a82a69a3.f45d1bff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7902],{55642:e=>{e.exports=JSON.parse('{"permalink":"/page/16","page":16,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/15","nextPage":"/page/17","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/a8738e5f.1ed0c575.js b/assets/js/a8738e5f.1ed0c575.js new file mode 100644 index 0000000000..9188e25174 --- /dev/null +++ b/assets/js/a8738e5f.1ed0c575.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[99881],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>d});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?a(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):a(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){if(null==e)return{};var i,r,n=function(e,t){if(null==e)return{};var i,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),h=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},s=function(e){var t=h(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=h(i),c=n,d=u["".concat(p,".").concat(c)]||u[c]||m[c]||a;return i?r.createElement(d,o(o({ref:t},s),{},{components:i})):r.createElement(d,o({ref:t},s))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var h=2;h<a;h++)o[h]=i[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,i)}c.displayName="MDXCreateElement"},67461:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>h});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-04-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-04-20-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-20-mithril.md",source:"@site/blog/2023-04-20-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-04-20T00:00:00.000Z",formattedDate:"April 20, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.245,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-04-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-04-21-ledger"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-04-20-node-cli-api"}},p={authorsImageUrls:[void 0]},h=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:h},u="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(u,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team released a new ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2315.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2315.0"))," distribution that implements the first part of the migration of the aggregator stores along with minor improvements and bug fixes. They finished the migration of the aggregator stores to a relational design by completing the adaptation and migration of the signed entity, signer and single signature stores. They also created a new tick service that provides beacons to other services of the aggregator. Additionally, they started implementing the new new certifier service of the aggregator that is in charge of producing certificates for multi-signatures."),(0,n.kt)("p",null,"Finally, they completed the design and definition of the interfaces that must be implemented to provide certification for a new type of data in a Mithril network."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2315.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2315.0"))),(0,n.kt)("li",{parentName:"ul"},"Completed the epic that implements a relational store in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/779"},"#779"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"signed_entity")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/816"},"#816")),(0,n.kt)("li",{parentName:"ul"},"Completed the creation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"signer")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/814"},"#814")),(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"single_signature")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/829"},"#829")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that designs and implement generic signing/verification of entity services ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/780"},"#780"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the definition of the interface of the generic entity service for signing ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/847"},"#847")),(0,n.kt)("li",{parentName:"ul"},"Worked on the implementation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"Certifier")," service in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/850"},"#850")),(0,n.kt)("li",{parentName:"ul"},"Completed the extension of the ",(0,n.kt)("inlineCode",{parentName:"li"},"SignedEntityType")," type ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/848"},"#848")),(0,n.kt)("li",{parentName:"ul"},"Completed the implementation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"Tick")," service in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/849"},"#849")),(0,n.kt)("li",{parentName:"ul"},"Worked on implementing the signable builder for the ",(0,n.kt)("inlineCode",{parentName:"li"},"Mithril Stake Distribution")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/851"},"#851"))))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a9019578.7d43fa28.js b/assets/js/a9019578.7d43fa28.js new file mode 100644 index 0000000000..cfb905ec00 --- /dev/null +++ b/assets/js/a9019578.7d43fa28.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4497],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(a),s=r,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,i(i({ref:t},c),{},{components:a})):n.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var u=2;u<o;u++)i[u]=a[u];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},65934:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-10-04-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-10-04-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-04-node-cli-api.md",source:"@site/blog/2022-10-04-node-cli-api.md",title:"Node API & CLI Team Update",description:"Node-Api-Cli Update",date:"2022-10-04T00:00:00.000Z",formattedDate:"October 4, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.98,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-10-04-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"DB Sync Team Update",permalink:"/2022-10-04-db-sync"},nextItem:{title:"Ledger Team Update",permalink:"/2022-09-30-ledger"}},p={authorsImageUrls:[void 0]},u=[{value:"Node-Api-Cli Update",id:"node-api-cli-update",level:2},{value:"2022-10-04 - 2022-10-18",id:"2022-10-04---2022-10-18",level:2},{value:"Executive Summary",id:"executive-summary",level:3},{value:"Completed",id:"completed",level:3},{value:"cardano-cli",id:"cardano-cli",level:4},{value:"cardano-api",id:"cardano-api",level:4},{value:"cardano-node",id:"cardano-node",level:4},{value:"In Progress",id:"in-progress",level:3},{value:"cardano-cli",id:"cardano-cli-1",level:4},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"node-api-cli-update"},"Node-Api-Cli Update"),(0,r.kt)("h2",{id:"2022-10-04---2022-10-18"},"2022-10-04 - 2022-10-18"),(0,r.kt)("h3",{id:"executive-summary"},"Executive Summary"),(0,r.kt)("p",null,"The majority of the team's time was spent between getting ",(0,r.kt)("inlineCode",{parentName:"p"},"1.34.4")," ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli"),"."),(0,r.kt)("h3",{id:"completed"},"Completed"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4504"},"GHC 9.2.4 preparations"))),(0,r.kt)("h4",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[Serenity]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4491"},"Separate IO from txBuild and txBuildRaw functions"))),(0,r.kt)("h4",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4501"},"TxWitness text envelope format does not roundtrip in Shelley era"))),(0,r.kt)("h4",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4526"},"Fix MacOS GHA CI"))),(0,r.kt)("h3",{id:"in-progress"},"In Progress"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4508"},"Release 1.34.4"))),(0,r.kt)("h4",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4538"},"Fix query era mismatch bug in transaction build command")),(0,r.kt)("li",{parentName:"ul"},"[Serenity]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4516"},"Condense Read and Validation modules in cardano-cli")),(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4276"},"Add tx-mempool command to CLI"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4482"},"Return Lovelace for calculateMinimumUTxO")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a92d4e87.b9972c71.js b/assets/js/a92d4e87.b9972c71.js new file mode 100644 index 0000000000..430636564c --- /dev/null +++ b/assets/js/a92d4e87.b9972c71.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[45757],{12883:a=>{a.exports=JSON.parse('{"label":"mithril","permalink":"/tags/mithril","allTagsPath":"/tags","count":63}')}}]); \ No newline at end of file diff --git a/assets/js/a9347c1b.7cb1accd.js b/assets/js/a9347c1b.7cb1accd.js new file mode 100644 index 0000000000..5f6ea9e68b --- /dev/null +++ b/assets/js/a9347c1b.7cb1accd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[76323],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>c});var a=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,i=function(e,t){if(null==e)return{};var r,a,i={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var p=a.createContext({}),h=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=h(e.components);return a.createElement(p.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,i=e.mdxType,n=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=h(r),d=i,c=s["".concat(p,".").concat(d)]||s[d]||m[d]||n;return r?a.createElement(c,o(o({ref:t},u),{},{components:r})):a.createElement(c,o({ref:t},u))}));function c(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=r.length,o=new Array(n);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:i,o[1]=l;for(var h=2;h<n;h++)o[h]=r[h];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},95829:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>l,toc:()=>h});var a=r(87462),i=(r(67294),r(3905));const n={title:"Mithril Team Update",slug:"2023-02-09-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-02-09-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-09-mithril.md",source:"@site/blog/2023-02-09-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-02-09T00:00:00.000Z",formattedDate:"February 9, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.01,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-02-09-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-02-10-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-02-08-consensus"}},p={authorsImageUrls:[void 0]},h=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:h},s="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(s,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"The Mithril team released a new ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2304.1"},(0,i.kt)("inlineCode",{parentName:"a"},"2304.1"))," distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store."),(0,i.kt)("p",null,"Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version ",(0,i.kt)("inlineCode",{parentName:"p"},"1.35.5")," on their ",(0,i.kt)("inlineCode",{parentName:"p"},"devnet")," and infrastructure."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2304.1"},(0,i.kt)("inlineCode",{parentName:"a"},"2304.1"))),(0,i.kt)("li",{parentName:"ul"},"Fixed a bug that prevented some signers to sign with ",(0,i.kt)("inlineCode",{parentName:"li"},"2304.0-prerelease")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/716"},"#716")),(0,i.kt)("li",{parentName:"ul"},"Completed the implementation of an ",(0,i.kt)("inlineCode",{parentName:"li"},"EraChecker")," that checks if an era is active ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/708"},"#708")),(0,i.kt)("li",{parentName:"ul"},"Completed the implementation of an ",(0,i.kt)("inlineCode",{parentName:"li"},"EraReader")," that gathers era activation data ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/709"},"#709")),(0,i.kt)("li",{parentName:"ul"},"Completed the implementation of an ",(0,i.kt)("inlineCode",{parentName:"li"},"EraReader")," adapter with on chain transaction as source ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/710"},"#710")),(0,i.kt)("li",{parentName:"ul"},"Completed the relational design of the aggregator store ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/476"},"#476")),(0,i.kt)("li",{parentName:"ul"},"Completed adding a new SPO on the ",(0,i.kt)("inlineCode",{parentName:"li"},"testing-preview")," network ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/729"},"#729")),(0,i.kt)("li",{parentName:"ul"},"Completed the upgrade of the Cardano node to ",(0,i.kt)("inlineCode",{parentName:"li"},"1.35.5")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/725"},"#725")),(0,i.kt)("li",{parentName:"ul"},"Fixed flakiness in the CI ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/734"},"#734"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/aa4c9cc8.8092136b.js b/assets/js/aa4c9cc8.8092136b.js new file mode 100644 index 0000000000..a8980f2a4d --- /dev/null +++ b/assets/js/aa4c9cc8.8092136b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[50919],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),u=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),h=u(a),m=n,c=h["".concat(s,".").concat(m)]||h[m]||d[m]||i;return a?r.createElement(c,o(o({ref:t},p),{},{components:a})):r.createElement(c,o({ref:t},p))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<i;u++)o[u]=a[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},13503:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-05-19-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-19-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-19-hydra.md",source:"@site/blog/2023-05-19-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-05-19T00:00:00.000Z",formattedDate:"May 19, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.045,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-05-19-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-05-24-node-cli-api"},nextItem:{title:"Consensus Team Update",permalink:"/2023-05-17-consensus"}},s={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:u},h="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,'This week, the Hydra team has worked on several fronts, including improvements of their CI speed, logs, documentation pages and adding the support for timed transactions. They also updated the "Coding Standards" for the project, improved the troubleshooting page on their website and wrote a section about how to operate a hydra node. Finally the team completed a feature request that allows clients to submit and validate transactions to their hydra nodes using time validity ranges, ensuring isomorphism with L1.'),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete validation of timed transactions feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/196"},"#196"),"."),(0,n.kt)("li",{parentName:"ul"},"Write ","\u201c","ops","\u201d"," instructions and troubleshooting ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/569"},"#569")," and improve logs."),(0,n.kt)("li",{parentName:"ul"},"Remove ",(0,n.kt)("inlineCode",{parentName:"li"},"--ledger-genesis")," argument to hydra-node options ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/863"},"#863"),"."),(0,n.kt)("li",{parentName:"ul"},"Fix issue with garbage collected caches by using a new cardano-scaling.cachix in more workflows ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/877"},"#877"),"."),(0,n.kt)("li",{parentName:"ul"},"Use nix to build test binaries to increase CI speed ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/867"},"#867"),"."),(0,n.kt)("li",{parentName:"ul"},"Updated our ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/wiki/Coding-Standards"},"Coding Standards"),".")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly report & review meeting."),(0,n.kt)("li",{parentName:"ul"},'Have a first end-to-end journey for external commits implementing "Option A" ',(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215"),"."),(0,n.kt)("li",{parentName:"ul"},"Integrate spanish translation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/866"},"#866"),"."),(0,n.kt)("li",{parentName:"ul"},"Improve and provide regular benchmarks for Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/186"},"#186"),"."),(0,n.kt)("li",{parentName:"ul"},"Allow commit transactions with multiple UTxO ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/774"},"#774"),"."),(0,n.kt)("li",{parentName:"ul"},"Explored stateless observation and refined hydra explorer ticket ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/696"},"#696"),".")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/aaf18ab0.d4bde453.js b/assets/js/aaf18ab0.d4bde453.js new file mode 100644 index 0000000000..52e4e65181 --- /dev/null +++ b/assets/js/aaf18ab0.d4bde453.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3158],{48776:e=>{e.exports=JSON.parse('{"permalink":"/page/54","page":54,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/53","nextPage":"/page/55","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ab4c3279.d16585d7.js b/assets/js/ab4c3279.d16585d7.js new file mode 100644 index 0000000000..f1dbc9720f --- /dev/null +++ b/assets/js/ab4c3279.d16585d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[72690],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),h=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=h(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=h(a),c=n,m=s["".concat(u,".").concat(c)]||s[c]||d[c]||i;return a?r.createElement(m,o(o({ref:t},p),{},{components:a})):r.createElement(m,o({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:n,o[1]=l;for(var h=2;h<i;h++)o[h]=a[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},67660:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-09-22-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-22-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-22-hydra.md",source:"@site/blog/2023-09-22-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-09-22T00:00:00.000Z",formattedDate:"September 22, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.035,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-09-22-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-09-26-node-cli-api"},nextItem:{title:"Performance & tracing update",permalink:"/2023-09-22-performance-and-tracing"}},u={authorsImageUrls:[void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:h},s="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team conducted the monthly review meeting in\ncollaboration with Mithril, enhancing project coordination."),(0,n.kt)("p",null,"The team improved the gen-hydra-key node command for smoother usability\nand identified concrete steps to enhance network resiliency in feature\nitems ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/188"},"#188"),",\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/1080"},"#1080"),", and\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/1079"},"#1079"),".\nAdditionally, they contributed the aiken-mode editor integration to the\naiken-lang organization, updated dependencies to utilize cardano-api\n8.20, and published the Hydra security advisory CVE-2023-42806 with a\nworkaround available for users."),(0,n.kt)("p",null,"These efforts demonstrate the team\\'s commitment to project improvement,\nsecurity, and open-source community collaboration."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Conducted the monthly review meeting together with Mithril"),(0,n.kt)("li",{parentName:"ul"},"Improved gen-hydra-key node command\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1077"},"#1077")),(0,n.kt)("li",{parentName:"ul"},"Established a clear plan to improve resiliency of network and manifested\nfeature items ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/188"},"#188"),",\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1080"},"#1080")," and\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1079"},"#1079")),(0,n.kt)("li",{parentName:"ul"},"Moved ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/aiken-lang/aiken-mode"},"aiken-mode")," (created by SN)\nto aiken-lang organization"),(0,n.kt)("li",{parentName:"ul"},"Updated dependencies to using cardano-api 8.20\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1075"},"#1075")),(0,n.kt)("li",{parentName:"ul"},"Published security advisory\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/security/advisories/GHSA-gr36-mc6v-72qq"},"CVE-2023-42806"),"\n(workaround available)")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Write-up the monthly report for September"),(0,n.kt)("li",{parentName:"ul"},'Finish "network resilience to disconnects"\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/188"},"#188")),(0,n.kt)("li",{parentName:"ul"},"Finish kupo integration with hydra\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1078"},"#1078")),(0,n.kt)("li",{parentName:"ul"},"Discuss and decide on using aiken or not"),(0,n.kt)("li",{parentName:"ul"},"Address the published security advisory\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/security/advisories/GHSA-gr36-mc6v-72qq"},"CVE-2023-42806"),"\n(to not require workaround)"),(0,n.kt)("li",{parentName:"ul"},"Ideally, release 0.13.0")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/abfcb655.4190802d.js b/assets/js/abfcb655.4190802d.js new file mode 100644 index 0000000000..f7a51514fa --- /dev/null +++ b/assets/js/abfcb655.4190802d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3188],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>s});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),m=p(a),u=n,s=m["".concat(c,".").concat(u)]||m[u]||h[u]||i;return a?r.createElement(s,o(o({ref:t},d),{},{components:a})):r.createElement(s,o({ref:t},d))}));function s(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<i;p++)o[p]=a[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},28601:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-12-22-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-12-22-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-22-hydra.md",source:"@site/blog/2023-12-22-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-12-22T00:00:00.000Z",formattedDate:"December 22, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.78,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-12-22-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-12-30-node-cli-api"},nextItem:{title:"Network Team Update",permalink:"/2023-12-22-network"}},c={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],d={toc:p},m="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team made significant progress, implementing an offline mode with associated refactoring. They enhanced user experience by detecting incompatible eras in ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node"),". Protocol changes were implemented for incremental decommits, addressing off-chain logic. Additionally, the team contributed fixes to ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-ledger")," and coordinated with the Eternl team on enabling committing into a head from their wallet."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Offline mode implementation\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1118"},"#","1118")," and\nrefactoring\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1222"},"#","1222")),(0,n.kt)("li",{parentName:"ul"},"Detect incompatible era in ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")," and provide better UX\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1216"},"#","1216")),(0,n.kt)("li",{parentName:"ul"},"Implemented protocol changes for incremental decommits (off-chain\nlogic) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1057"},"#","1057")),(0,n.kt)("li",{parentName:"ul"},"Contributed fixes to ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-ledger"),(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3949"},"#","3949")," and\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3953"},"#","3953")),(0,n.kt)("li",{parentName:"ul"},"Synced up with the Eternl team on enabling committing into a head from\ntheir wallet")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Maybe cut a release 0.15.0 to ship offline-mode and unsupported era UX"),(0,n.kt)("li",{parentName:"ul"},"Full conway support in hydra-node"),(0,n.kt)("li",{parentName:"ul"},"Transaction creation and observation for incremental decommits")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ac4f0787.a737b9b1.js b/assets/js/ac4f0787.a737b9b1.js new file mode 100644 index 0000000000..78ab348afb --- /dev/null +++ b/assets/js/ac4f0787.a737b9b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80733],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>c});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(n),d=i,c=h["".concat(s,".").concat(d)]||h[d]||m[d]||a;return n?r.createElement(c,o(o({ref:t},u),{},{components:n})):r.createElement(c,o({ref:t},u))}));function c(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=n[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},87252:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=n(87462),i=(n(67294),n(3905));const a={title:"Mithril Team Update",slug:"2024-03-13-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-13-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-13-mithril.md",source:"@site/blog/2024-03-13-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-03-13T00:00:00.000Z",formattedDate:"March 13, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.365,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-03-13-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-03-13-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2024-03-08-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(h,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the adaptation of the Mithril explorer to support Cardano transaction verification, kept improving its UI, fixed the bug that prevented the signature of some Conway era transactions, implemented a more robust transactions parser, and started providing metadata about the point of the chain used during the verification process. Additionally, they have completed the optimization of the communications of the Mithril nodes and the Cardano node with the finalization of the Pallas chain observer."),(0,i.kt)("p",null,"Finally, the team enhanced the handling of logs in the CLI of the Mithril nodes and investigated some remaining flakiness in the end-to-end test in the CI."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Output CLIs logs to ",(0,i.kt)("inlineCode",{parentName:"strong"},"stderr"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1515"},"#1515")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," in explorer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1497"},"#1497")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"npm")," publish fails on ",(0,i.kt)("inlineCode",{parentName:"strong"},"latest")," when ",(0,i.kt)("inlineCode",{parentName:"strong"},"next")," exists")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1531"},"#1531")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Cardano transactions are not all signed in ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1537"},"#1537")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance ",(0,i.kt)("inlineCode",{parentName:"strong"},"www")," demonstration in ",(0,i.kt)("inlineCode",{parentName:"strong"},"mithril-client-wasm"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1552"},"#1552")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement a Block Range Merkle Tree for ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1533"},"#1533")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Provide latest immutable file number with certified ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano transactions")," in client")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1536"},"#1536")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Explorer improvements Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1554"},"#1554")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Refactor the Cardano transactions parser with ",(0,i.kt)("inlineCode",{parentName:"strong"},"pallas-hardano"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1557"},"#1557")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"End to end tests are flaky in CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1558"},"#1558")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ac56cb0b.0611678c.js b/assets/js/ac56cb0b.0611678c.js new file mode 100644 index 0000000000..a640a1bf77 --- /dev/null +++ b/assets/js/ac56cb0b.0611678c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[39329],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,o,a=function(e,t){if(null==e)return{};var n,o,a={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=o.createContext({}),l=function(e){var t=o.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=l(e.components);return o.createElement(p.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},c=o.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,p=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=l(n),c=a,m=h["".concat(p,".").concat(c)]||h[c]||d[c]||i;return n?o.createElement(m,r(r({ref:t},u),{},{components:n})):o.createElement(m,r({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,r=new Array(i);r[0]=c;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[h]="string"==typeof e?e:a,r[1]=s;for(var l=2;l<i;l++)r[l]=n[l];return o.createElement.apply(null,r)}return o.createElement.apply(null,n)}c.displayName="MDXCreateElement"},7640:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var o=n(87462),a=(n(67294),n(3905));const i={title:"Consensus Team Update",slug:"2022-11-16-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},r=void 0,s={permalink:"/2022-11-16-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-16-consensus.md",source:"@site/blog/2022-11-16-consensus.md",title:"Consensus Team Update",description:"High-level summary",date:"2022-11-16T00:00:00.000Z",formattedDate:"November 16, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:5.06,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-11-16-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2022-11-18-mithril"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-11-16-node-cli-api"}},p={authorsImageUrls:[void 0]},l=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"High-level status report",id:"high-level-status-report",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Finish the UTxO HD prototype",id:"finish-the-utxo-hd-prototype",level:3},{value:"Backing store property tests",id:"backing-store-property-tests",level:4},{value:"LSM tree implementation",id:"lsm-tree-implementation",level:3},{value:"Benchmarking the CSJ prototype",id:"benchmarking-the-csj-prototype",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3},{value:"Support",id:"support",level:3}],u={toc:l},h="wrapper";function d(e){let{components:t,...i}=e;return(0,a.kt)(h,(0,o.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,a.kt)("p",null,'During the past two weeks, the consensus team started documenting the\nimplementation of the UTxO HD feature and continued developing tests for it. As\npart of our work on UTxO HD, we improved the Haskell support for LMDB. We also\nspent time working on the LSM tree prototype, and designed a parameter tuning\nalgorithm for it. Regarding our work on Genesis, our investigation of the\n"plateaus" pointed at the ',(0,a.kt)("inlineCode",{parentName:"p"},"TICKF"),' slowdown on era boundaries as culprit. This\nled us to developing a caching strategy that will not only remove the\naforementioned "plateaus", but can help alleviating the growing block production\ndelay on epoch switch. We also helped reviewing the block forge credential\nhotswap feature, which is intended for use in the adoption of P2P.'),(0,a.kt)("p",null,"We also worked on paying technical debt and fostering collaboration. In\nparticular, we improved the ",(0,a.kt)("inlineCode",{parentName:"p"},"io-sim")," framework, which is crucial for testing and\nsimulating Cardano components. We also removed thunks that appeared on era\ntranslations, and improved our diffusion pipelining feature. We are working on a\npresentation for explaining Praos and Genesis."),(0,a.kt)("h2",{id:"high-level-status-report"},"High-level status report"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Finish the UTxO HD prototype: in progress.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We added documentation for this feature."),(0,a.kt)("li",{parentName:"ul"},"We developed the second version of the mempool tests."),(0,a.kt)("li",{parentName:"ul"},"We fixed benchmarks that were inflating the speedup we observed in the\nanti-diff implementation of sequences of differences. Speedups are now in the\nrange of ","[3.33, 4.75]",", which remain significant."),(0,a.kt)("li",{parentName:"ul"},"We continued improving Haskell LMDB support."),(0,a.kt)("li",{parentName:"ul"},'We finished implementing a "parameter tuning algorithm" for the LSM tree\nprototype. This enables us to run experiments to check the correctness of\nthe algorithm.'))),(0,a.kt)("li",{parentName:"ul"},"Genesis: in progress.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},'Work investigating the "plateaus" in the ',(0,a.kt)("inlineCode",{parentName:"li"},"ChainSync")," jumping prototype\npointed to the ",(0,a.kt)("inlineCode",{parentName:"li"},"TICKF")," slowdown on era boundaries as culprit."))),(0,a.kt)("li",{parentName:"ul"},"Tech debt:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We improved the capabilities of our ",(0,a.kt)("inlineCode",{parentName:"li"},"io-sim")," library, which is crucial for\ntesting and simulating Cardano components."),(0,a.kt)("li",{parentName:"ul"},"We removed thunks from epoch translations in the ledger."),(0,a.kt)("li",{parentName:"ul"},"We added Linux CI support for ",(0,a.kt)("inlineCode",{parentName:"li"},"lmdb-simple"),"."),(0,a.kt)("li",{parentName:"ul"},"We got pending diffusion pipelining improvements merged."))),(0,a.kt)("li",{parentName:"ul"},"Fostering collaboration:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We are working on a explanation of Praos and Genesis protocols."))),(0,a.kt)("li",{parentName:"ul"},"Support:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},'Investigation of CSJ "plateaus" led us to developing a caching strategy for\n',(0,a.kt)("inlineCode",{parentName:"li"},"TICKF"),' that will not only remove these "plateaus", but can help alleviating\nthe growing block production delay on epoch switch.'),(0,a.kt)("li",{parentName:"ul"},"We reviewed the block forge credential hotswapping feature which is intended\nfor use in the adoption of P2P.")))),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"finish-the-utxo-hd-prototype"},"Finish the UTxO HD prototype"),(0,a.kt)("p",null,"We merged PR ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4060"},"#4060"),", which adds a report documenting the UTxO HD\nfeature, and puts emphasis in explaining how the mempool works in combination\nwith UTxO HD."),(0,a.kt)("p",null,"We opened a draft PR with the second iteration of the property tests for the\nmempool (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4076"},"#4076"),")."),(0,a.kt)("p",null,"We fixed the ",(0,a.kt)("inlineCode",{parentName:"p"},"Arbitrary")," instances for keys and values in ",(0,a.kt)("inlineCode",{parentName:"p"},"DiffSeq")," benchmarks\n(",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4143"},"#4143"),"). The problem was that we were testing with mostly small\nvalues, which artificially boosted the performance gains we saw on benhcmarks.\nSpeedups are now in the range of ","[3.33, 4.75]"," across the different\nconfigurations."),(0,a.kt)("h4",{id:"backing-store-property-tests"},"Backing store property tests"),(0,a.kt)("p",null,"We focused on incorporating feedback on the monadic cursor API PR (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/lmdb-simple/pull/1"},"#1"),").\nThis required us to make small tweaks to ",(0,a.kt)("inlineCode",{parentName:"p"},"quickcheck-lockstep")," to test the new\nAPI. We also updated the backing store property tests to use the new version of\nthe monadic cursor API."),(0,a.kt)("h3",{id:"lsm-tree-implementation"},"LSM tree implementation"),(0,a.kt)("p",null,'We worked on the LSM tree prototype. In particular: finished implementing a\n"parameter tuning algorithm" that adapts the LSM tree design based on factors\nlike:'),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"workload"),(0,a.kt)("li",{parentName:"ul"},"machine specs, "),(0,a.kt)("li",{parentName:"ul"},"and characteristics of the data being stored. ")),(0,a.kt)("p",null,"We are now running experiments to gather results and cross-reference them with\nexisting experimental results from the LSM tree paper to see if the algorithm is\nworking correctly."),(0,a.kt)("h3",{id:"benchmarking-the-csj-prototype"},"Benchmarking the CSJ prototype"),(0,a.kt)("p",null,'We focused on investigating the "plateaus" in the ',(0,a.kt)("inlineCode",{parentName:"p"},"ChainSync")," tip, which turned\nout to be due to the ",(0,a.kt)("inlineCode",{parentName:"p"},"TICKF")," bug which we previously were only aware of in the\ncontext of the long forging times near epoch boundaries. For the most drastic\npatch by @nfrisby to speed up ",(0,a.kt)("inlineCode",{parentName:"p"},"TICKF"),", full sync is speeding up by 7%."),(0,a.kt)("p",null,"The following plot shows that by caching the ",(0,a.kt)("inlineCode",{parentName:"p"},"TICKF")," the ",(0,a.kt)("inlineCode",{parentName:"p"},"ChainSync")," tip and the\n",(0,a.kt)("inlineCode",{parentName:"p"},"VolatileDB")," tip progress at the same rate."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(29287).Z,width:"765",height:"445"})),(0,a.kt)("p",null,"The plot below shows the speedup observed by caching the ",(0,a.kt)("inlineCode",{parentName:"p"},"TICKF")," rule wrt the\nbaseline."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(17885).Z,width:"773",height:"445"})),(0,a.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,a.kt)("p",null,"After addressing the PR comments, we merged PR ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/16"},"#16"),", which implements\nthe ",(0,a.kt)("inlineCode",{parentName:"p"},"MonadCatch")," instance for ",(0,a.kt)("inlineCode",{parentName:"p"},"STM"),". This extends the capability of our ",(0,a.kt)("inlineCode",{parentName:"p"},"io-sim"),"\nlibrary, which is crucial for testing and simulating Cardano components PR #16\nclosed ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/1461"},"#1461"),". This new feature was published as version ",(0,a.kt)("inlineCode",{parentName:"p"},"0.4.0.0"),"\nof ",(0,a.kt)("inlineCode",{parentName:"p"},"io-sim"),"."),(0,a.kt)("p",null,"We continued with our work fixing the ",(0,a.kt)("inlineCode",{parentName:"p"},"NoThunk")," errors required for enabling\nnightly tests, with the help of ",(0,a.kt)("inlineCode",{parentName:"p"},"TVarInvariant")," checks in ",(0,a.kt)("inlineCode",{parentName:"p"},"strict-stm")," and\n",(0,a.kt)("inlineCode",{parentName:"p"},"nothunks")," libraries. We proposed fixes in ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-ledger")," that took care of\nthunks that appeared in era translations (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3143"},"#3143"),"). The fixes will be\nintegrated back into consensus when ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-ledger")," approves and publish the\nchanges introduced in ",(0,a.kt)("inlineCode",{parentName:"p"},"#3143"),"."),(0,a.kt)("p",null,"We added CI support for ",(0,a.kt)("inlineCode",{parentName:"p"},"lmdb-simple")," (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/lmdb-simple/pull/2"},"#2"),"). We currently test the build on\na Linux environment only."),(0,a.kt)("p",null,"We got pending diffusion pipelining PRs (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3857"},"#3857"),", ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3860"},"#3860"),",\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3856"},"#3856"),") merged, after rebasing and addressing feedback."),(0,a.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,a.kt)("p",null,"@nfrisby finished a visualisation tool and outlined scripts for the Praos and\nGenesis explanation presentations. The idea is to produce a video that gives an\noverview of these protocols."),(0,a.kt)("h3",{id:"support"},"Support"),(0,a.kt)("p",null,"We started working on caching the computation of the ",(0,a.kt)("inlineCode",{parentName:"p"},"TICKF")," rule\n(",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4054"},"#4054"),"), since this was blocking our benchmarking work for\nGenesis. In addition, this issue has the Cardano community ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/issues/4421"},"quite\nconcerned"),", so we are hoping the work done in caching the\ncomputation of the ",(0,a.kt)("inlineCode",{parentName:"p"},"TICKF")," rule can help alleviating the growing block\nproduction delay on epoch switch."),(0,a.kt)("p",null,"We reviewed the block forge credential hotswapping PR ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3800"},"#3800")," from the\nnetworking team, which is intended for use in the adoption of P2P."))}d.isMDXComponent=!0},17885:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/2022-11-16-comparing-TICKF-batch-c6570a71c4a5d53b10cb7309d2cc742c.png"},29287:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/2022-11-16-removed-stuttering-e49aa27a0e549f0195373203da971ba7.png"}}]); \ No newline at end of file diff --git a/assets/js/ac7236c1.b8200f7a.js b/assets/js/ac7236c1.b8200f7a.js new file mode 100644 index 0000000000..5bbed4a069 --- /dev/null +++ b/assets/js/ac7236c1.b8200f7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7538],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),c=s(r),m=n,d=c["".concat(u,".").concat(m)]||c[m]||p[m]||o;return r?a.createElement(d,i(i({ref:t},h),{},{components:r})):a.createElement(d,i({ref:t},h))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var s=2;s<o;s++)i[s]=r[s];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},8334:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2024-03-22-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-03-22-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-22-hydra.md",source:"@site/blog/2024-03-22-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-03-22T00:00:00.000Z",formattedDate:"March 22, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.895,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-03-22-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-03-27-performance-and-tracing"},nextItem:{title:"Consensus Team Update",permalink:"/2024-03-20-consensus"}},u={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:s},c="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team restored test compatibility with all networks, reviewed and merged streaming plugins contributed by SundaeLabs. The team also fixed tutorial instructions for downloading the latest cardano-node, fixed the observed contesters bug, prepared a PRs for downstream clients to use the new API format for transactions (preparing the release with this breaking change). Finally, they also recorded a walkthrough video on how the hydra project is run: ",(0,n.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=JGUeO7A6mMU"},"https://www.youtube.com/watch?v=JGUeO7A6mMU")),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Restored compatibility with all networks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1355"},"#","1355"),"."),(0,n.kt)("li",{parentName:"ul"},"Reviewed and merged streaming plugins (only missing a how-to) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1325"},"#","1325"),"."),(0,n.kt)("li",{parentName:"ul"},"Fixed tutorial instructions for downloading cardano-node 8.9.0 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1367"},"#","1367"),"."),(0,n.kt)("li",{parentName:"ul"},"Fixed the observed contesters bug ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1266"},"#","1266"),"."),(0,n.kt)("li",{parentName:"ul"},"Prepared a PR for Kupo using new Hydra transaction format ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/CardanoSolutions/kupo/pull/166"},"kupo#166"),"."),(0,n.kt)("li",{parentName:"ul"},"Recorded a walkthrough on how the hydra project is run (uncut) ",(0,n.kt)("a",{parentName:"li",href:"https://www.youtube.com/watch?v=JGUeO7A6mMU"},"https://www.youtube.com/watch?v=JGUeO7A6mMU"),".")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Conduct the monthly review meeting"),(0,n.kt)("li",{parentName:"ul"},"Improve the ",(0,n.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint to unblock users"),(0,n.kt)("li",{parentName:"ul"},"Stateful testing of transaction traces to verify corner cases for\nincremental decommit"),(0,n.kt)("li",{parentName:"ul"},"Release ",(0,n.kt)("inlineCode",{parentName:"li"},"0.16.0"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ac8f4356.1d45f1cd.js b/assets/js/ac8f4356.1d45f1cd.js new file mode 100644 index 0000000000..5080c741f0 --- /dev/null +++ b/assets/js/ac8f4356.1d45f1cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[19064],{10860:e=>{e.exports=JSON.parse('{"permalink":"/page/84","page":84,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/83","nextPage":"/page/85","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ace79a55.1e58fc25.js b/assets/js/ace79a55.1e58fc25.js new file mode 100644 index 0000000000..bbaf579834 --- /dev/null +++ b/assets/js/ace79a55.1e58fc25.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[61185],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>c});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),h=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=h(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=h(r),d=n,c=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return r?a.createElement(c,i(i({ref:t},s),{},{components:r})):a.createElement(c,i({ref:t},s))}));function c(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,i[1]=l;for(var h=2;h<o;h++)i[h]=r[h];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},40709:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>h});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-06-30-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-06-30-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-30-hydra.md",source:"@site/blog/2023-06-30-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-06-30T00:00:00.000Z",formattedDate:"June 30, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.925,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-06-30-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-07-04-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2023-06-29-mithril"}},p={authorsImageUrls:[void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:h},m="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team wrote and published the monthly report for June,\nimplemented the end-to-end functionality for external commits, and tested it on\nthe preview environment. They also listed Hydra as a tool on the Cardano\ndeveloper portal, providing more visibility for the project. The team clarified\nthe path forward for L2 protocol improvements and explored an alternative CI\napproach using cabal instead of nix. Additionally, they released version 0.11.0,\nmarking another milestone in the project","\u2019","s development."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Written and published the monthly report for ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-06"},"June")),(0,n.kt)("li",{parentName:"ul"},"Implemented external commits end-to-end incl. tested it on preview ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215")),(0,n.kt)("li",{parentName:"ul"},"Listed Hydra as a tool on cardano ",(0,n.kt)("a",{parentName:"li",href:"https://developers.cardano.org/tools/"},"developer portal")),(0,n.kt)("li",{parentName:"ul"},"Cleared up path forward on L2 protocol improvements ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/728"},"#728")),(0,n.kt)("li",{parentName:"ul"},"Established an alternative CI using more cabal tools ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/923"},"#923")),(0,n.kt)("li",{parentName:"ul"},"Release version ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.10.0"},"0.11.0"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Spike on performance improvements of event sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/913"},"#913")),(0,n.kt)("li",{parentName:"ul"},"Complete ReqSn only sends transaction ids ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/728"},"#728")),(0,n.kt)("li",{parentName:"ul"},"Groom and plan last items for 0.12.0 (remove internal commit)"),(0,n.kt)("li",{parentName:"ul"},"Improve reliability of benchmarks")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ad067570.5de7a581.js b/assets/js/ad067570.5de7a581.js new file mode 100644 index 0000000000..b837113105 --- /dev/null +++ b/assets/js/ad067570.5de7a581.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70205],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=c(r),u=a,g=d["".concat(s,".").concat(u)]||d[u]||p[u]||o;return r?n.createElement(g,i(i({ref:t},m),{},{components:r})):n.createElement(g,i({ref:t},m))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=r[c];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},1862:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Performance & Tracing Update",slug:"2023-12-11-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-12-11-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-11-performance-and-tracing.md",source:"@site/blog/2023-12-11-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2023-12-11T00:00:00.000Z",formattedDate:"December 11, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:3.39,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2023-12-11-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-12-13-mithril"},nextItem:{title:"Goedel Team Update",permalink:"/2023-12-08-goedel"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:c},d="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Release benchmarking for node ",(0,a.kt)("inlineCode",{parentName:"li"},"8.7.2"),", as well as P2P benchmarks - the latter being a premiere for the Nomad cluster."),(0,a.kt)("li",{parentName:"ul"},"Development: Work on automating the submission of Conway transactions for registration of and stake delegation to ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep"),"s is ongoing."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: We're preparing to safely retire our current benchmarking cluster."),(0,a.kt)("li",{parentName:"ul"},"Tracing: The documentation for the new tracing system is being reworked. Additionally, we've added a feature to ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," to capture performance over a long runtime."),(0,a.kt)("li",{parentName:"ul"},"Nomad cluster: The Nomad backend has been successfully equipped with support for up-to-date P2P topology, as well as deployment for Plutus script data.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed a full set of release benchmarks for node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2"),". From a performance perspective, it has been greenlit for mainnet release. Starting with this version, our team will publish observations alongside the original comparative analysis of benchmarks, providing insight into key metrics and resource usage. Hence, for the post on version ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2"),", see ",(0,a.kt)("a",{parentName:"p",href:"/reports/2023-12-performance-8.7.2"},"here"),"."),(0,a.kt)("p",null,"Additionally, we're running P2P versus no-P2P benchmarks on the same version. We intend to establish future baseline runs using P2P topology as the default setting. All our cluster nodes being block producers, it is crucial to establish the P2P stack does not exhibit any regression regarding block forging. Furthermore, the evidence gathered from those benchmarks forms the base for a recommended setting for P2P on mainnet block producers. "),(0,a.kt)("p",null,"It deserves special mention that those P2P benchmarks are our first production runs with the Nomad cluster - and using the new tracing system exclusively. Having finalized all optimization rounds of the latter, and having meticulously eliminated all confounding factors from the Nomad infrastructure, we're confident in the measurements being subject to extremely low variance - which we made sure of in many past validation runs on Nomad."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Orchestrating ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep")," actions into benchmarking workflows has opened up a fairly large design space. Currently, we're focusing on having stake delegated to ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s, in order to trigger ledger pulses for calculations particular to ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep")," actions. We can benchmark a possible\nperformance impact of those pulses - even if there are no actions ongoing - as a first step. "),(0,a.kt)("p",null,"The contributing factors to the cost of those pulses are both the number of ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s registered, and the number of delegations to them. It is still under debate which values represent a probable model for mainnet, and whether we can achieve stake delegation programmatically (i.e. by submitting transactions), or if, for large numbers, we need means to inject those delegations into genesis."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"With the switch of all production benchmarks to the Nomad cluster, we will retire the legacy ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-ops")," cluster very shortly. Currently, we're making sure that when all its resources are released, we keep an archive for all runs performed, including all raw log data - with the oldest runs dating back as far as December 2019."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"We've outfitted the ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," service with the same kind of resource tracing machinery that's used by ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," - as well as created a dedicated benchmarking profile for it. It puts very little pressure on the node; instead it causes 6 nodes to emit traces at a rate of >35 messages per second, putting pressure on ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," via trace forwarding at >200 messages per second for an extended period of time. Analysis of these traces will form the ground for various optimizations of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," that are currently being worked on. "),(0,a.kt)("p",null,"As we aim for early 2024 to be able to recommend the new tracing system as default in production use, we're currently also reworking the comprehensive documentation to reflect all changes made over the last months."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"In addition to being able to deploy Plutus script data and redeemers seperately (instead of inlining them as the legacy cluster did), the Nomad cluster now supports being set up with recent P2P topology. No-P2P topology format will still be supported\nfor occasional regression benchmarking of the P2P stack, when desired. Furthermore, we've completed porting all benchmarking profiles from the legacy cluster to Nomad."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ad3b787d.d6b4cddb.js b/assets/js/ad3b787d.d6b4cddb.js new file mode 100644 index 0000000000..304f7dd96c --- /dev/null +++ b/assets/js/ad3b787d.d6b4cddb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17323],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),u=p(a),m=n,h=u["".concat(c,".").concat(m)]||u[m]||d[m]||i;return a?r.createElement(h,l(l({ref:t},s),{},{components:a})):r.createElement(h,l({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,l=new Array(i);l[0]=m;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[u]="string"==typeof e?e:n,l[1]=o;for(var p=2;p<i;p++)l[p]=a[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},57074:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2024-03-30-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",o={permalink:"/2024-03-30-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-30-node-cli-api.md",source:"@site/blog/2024-03-30-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-03-30T00:00:00.000Z",formattedDate:"March 30, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.19,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-03-30-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-04-03-mithril"},nextItem:{title:"SRE Team Update",permalink:"/2024-03-29-sre"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-03-16---2024-03-30"},"2024-03-16 - 2024-03-30"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Adding support for script based committee and dreps. This includes queries and using script as arguments instead of keys on various command."),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/684"},"Fix issues in ",(0,n.kt)("inlineCode",{parentName:"a"},"MonadWarning")," Haddock")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/683"},"Follow-ups of merged PRs")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/682"},"Comments and indentation")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/681"},"Throw an error on identical action-ids in votes of one voter")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/678"},"Add ",(0,n.kt)("inlineCode",{parentName:"a"},"--drep-script-hash")," parameter to ",(0,n.kt)("inlineCode",{parentName:"a"},"conway governance drep retirement-certificate"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/677"},"Update index-state and set cardano-git-rev ^>= 0.2.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/675"},"Update index-state and set cardano-git-rev ^>= 0.2.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/671"},"drep: registration-certificate, update-certificate: test anchors URLs of length > 64 and <= 128")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/670"},"Update ouroboros-consensus-cardano-0.14.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/669"},"proposal: disambiguate binary data from text data")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/668"},"Release cardano-cli-8.21.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/666"},"Support querying drep-state by script hash")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/665"},"vote create: support DRep and CC script hash")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/664"},"Display redeemers in ",(0,n.kt)("inlineCode",{parentName:"a"},"transaction view"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/658"}," Add Plutus script hash support in ",(0,n.kt)("inlineCode",{parentName:"a"},"update-committee"),", ",(0,n.kt)("inlineCode",{parentName:"a"},"overnance committee create-cold-key-resignation-certificate")," and ",(0,n.kt)("inlineCode",{parentName:"a"},"query committee-state")," commands.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/655"},"Add semaphore for vote view JSON test cases")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/652"},"verification-key: support DRep keys as well as committee keys, extended or not"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/498"},"Replace unsafeMergeVotingProcedures by mergeVotingProcedures")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/493"},"Undeprecate ",(0,n.kt)("inlineCode",{parentName:"a"},"evaluateTransactionFee"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/492"},"New version ",(0,n.kt)("inlineCode",{parentName:"a"},"cardano-api-8.43.0.0"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/491"},"Release cardano-api-8.42.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/490"},'Tidy up "New calculateMinTxFee function"')),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/489"},"Add support for script-based CC members")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/488"},"Bump ouroboros-consensus-diffusion"))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5724"},"Bump cardano-api to 8.39.3.0 and ouroboros-* and ekg-forward as a consequence")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5722"},"testnet: fix that custom genesis files were not passed to create-testnet-data"))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ad9136bc.37be0f76.js b/assets/js/ad9136bc.37be0f76.js new file mode 100644 index 0000000000..5fc7f0e5ce --- /dev/null +++ b/assets/js/ad9136bc.37be0f76.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[74108],{43912:e=>{e.exports=JSON.parse('{"permalink":"/page/48","page":48,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/47","nextPage":"/page/49","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ad9f1248.9c1ed1fc.js b/assets/js/ad9f1248.9c1ed1fc.js new file mode 100644 index 0000000000..38c3829ca3 --- /dev/null +++ b/assets/js/ad9f1248.9c1ed1fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[30654],{99428:e=>{e.exports=JSON.parse('{"permalink":"/tags/goedel/page/3","page":3,"postsPerPage":5,"totalPages":5,"totalCount":23,"previousPage":"/tags/goedel/page/2","nextPage":"/tags/goedel/page/4","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/add555bf.11a08ff3.js b/assets/js/add555bf.11a08ff3.js new file mode 100644 index 0000000000..18b1e1a57e --- /dev/null +++ b/assets/js/add555bf.11a08ff3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23360],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=p(a),s=n,m=c["".concat(u,".").concat(s)]||c[s]||h[s]||o;return a?r.createElement(m,l(l({ref:t},d),{},{components:a})):r.createElement(m,l({ref:t},d))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=s;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:n,l[1]=i;for(var p=2;p<o;p++)l[p]=a[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}s.displayName="MDXCreateElement"},7584:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Ledger Team Update",slug:"2022-11-02-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2022-11-02-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-ledger.md",source:"@site/blog/2022-11-02-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2022-11-02T00:00:00.000Z",formattedDate:"November 2, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.275,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-11-02-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-10-02-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-11-02-node-cli-api"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Axiomatic Set Theory",id:"axiomatic-set-theory",level:3},{value:"Completed Technical Debt",id:"completed-technical-debt",level:3}],d={toc:p},c="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"We have made the decision to use the\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/formal-ledger-specifications"},"formal ledger repository"),"\nin place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure\nto the model. In particular, we now have a lot of support for axiomatic set theory.\nWhile the next ledger era is still in the design phase, most of the team remains working\non technical debt.\nIn particular, we have moved a lot more code out of the Shelley specific modules and into\na ledger core module, we have finished up our benchmarking around the problematic ",(0,n.kt)("inlineCode",{parentName:"p"},"TICKF"),"\nledger transition (while improving the performance), made conveniences to the development\nenvironment, cleaned up all the recent changes to the cost model, added a lot of documentation,\nfixed some flaky tests, and deleted some dead code."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"axiomatic-set-theory"},"Axiomatic Set Theory"),(0,n.kt)("p",null,"The formal ledger model now has support for much of the set theory that we make use of in\nthe formal ledger specifications. See [",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/formal-ledger-specifications/pull/20"},"pull-20"),"]."),(0,n.kt)("h3",{id:"completed-technical-debt"},"Completed Technical Debt"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We have addressed issues with two of our most problematic and flaky tests.\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3039"},"pull-3039"),"] and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3093"},"pull-3093"),"]."),(0,n.kt)("li",{parentName:"ul"},"We have added more documentation and tests to the Twiddler module. This is a module which\nmakes our CBOR serialization round-trip tests much more robust, and will also hopefully\nhelp enforce the mandate for downstream libraries to never re-serialize data that needs\nto be hashed. See [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3073"},"pull-3073"),"] and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3095"},"pull-3095"),"]\n(we cannot merge 3095 just yet, due to a preference for merging other features)."),(0,n.kt)("li",{parentName:"ul"},"We have finished our long analysis of the problematic ",(0,n.kt)("inlineCode",{parentName:"li"},"TICKF")," transition.\nWe now have a lot of benchmarks surrounding this code, and have added performance improvements.\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3068"},"pull-3068"),"] and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3035"},"issue-3035"),"]."),(0,n.kt)("li",{parentName:"ul"},"We have restored support for\n",(0,n.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/ghcid"},"ghcid"),"\nin our repository. This is a tool for developing with Haskell that many of us find greatly\nimproves our productivity by providing us with constant feedback from the type checker.\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3112"},"pull-3112"),"]."),(0,n.kt)("li",{parentName:"ul"},"After much activity on the cost model, we have done some final clean up of the code.\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3075"},"pull-3075"),"] and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3101"},"pull-3101"),"]."),(0,n.kt)("li",{parentName:"ul"},"We moved a lot of the existing user facing documentation regarding native tokens into the\nledger repository, and cleaned it up\n(most of the heavy lifting was done by our amazing technical writers).\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3091"},"pull-3091"),"]."),(0,n.kt)("li",{parentName:"ul"},"We removed dead code. See [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3089"},"pull-3089"),"]."),(0,n.kt)("li",{parentName:"ul"},"We moved a lot of code from the Shelley specific libraries to the ledger core library.\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3109"},"pull-3109"),"] and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3110"},"pull-3110"),"]."),(0,n.kt)("li",{parentName:"ul"},"We've removed more of the awkward legacy template Haskell names.\nSee [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3108"},"pull-3108"),"].")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ae2d2424.2ed54d65.js b/assets/js/ae2d2424.2ed54d65.js new file mode 100644 index 0000000000..610d2a872f --- /dev/null +++ b/assets/js/ae2d2424.2ed54d65.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17873],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=p(a),c=n,m=d["".concat(s,".").concat(c)]||d[c]||h[c]||o;return a?r.createElement(m,i(i({ref:t},u),{},{components:a})):r.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:n,i[1]=l;for(var p=2;p<o;p++)i[p]=a[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},59274:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2022-10-14-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-10-14-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-14-hydra.md",source:"@site/blog/2022-10-14-hydra.md",title:"Hydra Team Update",description:"High level summary",date:"2022-10-14T00:00:00.000Z",formattedDate:"October 14, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.26,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-10-14-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-10-18-consensus"},nextItem:{title:"Ledger Team Update",permalink:"/2022-10-14-ledger"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:p},d="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node"),' over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks "past the opening of a Head". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.'),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Last week we thought we were done with ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/adr/18/"},"ADR18"),", but were not ..."),(0,n.kt)("li",{parentName:"ul"},"... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence."),(0,n.kt)("li",{parentName:"ul"},"Implemented a first version for persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/187"},"#187")," in response."),(0,n.kt)("li",{parentName:"ul"},"Enhanced CI to publish test results ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/benchmarks/tests/hydra-node/hspec-results"},"on our website")),(0,n.kt)("li",{parentName:"ul"},"Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!"),(0,n.kt)("li",{parentName:"ul"},"Pulled static executable feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/200"},"#200")," into scope, implemented it and merged it!"),(0,n.kt)("li",{parentName:"ul"},"Received and read through a project proposal by a vendor (building a Hydra platform).")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Get backup/recovery ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/187"},"#187")," done with proper event sourcing (ADR18)"),(0,n.kt)("li",{parentName:"ul"},"Cut the next release, version ",(0,n.kt)("inlineCode",{parentName:"li"},"0.8.0")),(0,n.kt)("li",{parentName:"ul"},"Address open comments on specification document & complete the list of identified gaps between specification and implementation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/452"},"#452")),(0,n.kt)("li",{parentName:"ul"},"Have the CI build macos artifacts")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ae39809c.9077b21c.js b/assets/js/ae39809c.9077b21c.js new file mode 100644 index 0000000000..942b336a68 --- /dev/null +++ b/assets/js/ae39809c.9077b21c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29129],{88323:e=>{e.exports=JSON.parse('{"permalink":"/page/15","page":15,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/14","nextPage":"/page/16","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ae714ef1.1458ce14.js b/assets/js/ae714ef1.1458ce14.js new file mode 100644 index 0000000000..6070274372 --- /dev/null +++ b/assets/js/ae714ef1.1458ce14.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43545],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var l=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,l)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,l,r=function(e,t){if(null==e)return{};var a,l,r={},n=Object.keys(e);for(l=0;l<n.length;l++)a=n[l],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l<n.length;l++)a=n[l],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=l.createContext({}),u=function(e){var t=l.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return l.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},d=l.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=u(a),d=r,h=m["".concat(p,".").concat(d)]||m[d]||c[d]||n;return a?l.createElement(h,i(i({ref:t},s),{},{components:a})):l.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,i=new Array(n);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:r,i[1]=o;for(var u=2;u<n;u++)i[u]=a[u];return l.createElement.apply(null,i)}return l.createElement.apply(null,a)}d.displayName="MDXCreateElement"},63807:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>n,metadata:()=>o,toc:()=>u});var l=a(87462),r=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2024-01-10-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-01-10-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-10-ledger.md",source:"@site/blog/2024-01-10-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-01-10T00:00:00.000Z",formattedDate:"January 10, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:3.005,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-01-10-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-01-10-consensus"},nextItem:{title:"Mithril Team Update",permalink:"/2024-01-10-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements",id:"improvements",level:3},{value:"Releasing",id:"releasing",level:3}],s={toc:u},m="wrapper";function c(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,l.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"Major Conway related development was the refactoring of how we distinguish Plutus\nlanguage versions in every era, thus drasticly improving the type safety and getting us\nmuch closer to PlutusV3 integration."),(0,r.kt)("p",null,"There has also been many bug fixes and improvements since the last update. Some important bug\nfixes are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"missing ",(0,r.kt)("inlineCode",{parentName:"li"},'"protocolVersion"')," field in JSON instance for Babbage and Conway protocol parameters"),(0,r.kt)("li",{parentName:"ul"},"requiring witnesses for DRep registration"),(0,r.kt)("li",{parentName:"ul"},"new committee governance action ratification was implemented incorrectly"),(0,r.kt)("li",{parentName:"ul"},"guard against invalid protocol versions in hard fork initiation proposals"),(0,r.kt)("li",{parentName:"ul"},"failures during updates of Plutus CostModels were not retained"),(0,r.kt)("li",{parentName:"ul"},"fixed the types for some protocol parameters in order to prevent values that are too large"),(0,r.kt)("li",{parentName:"ul"},"serialization and CDDL fixes")),(0,r.kt)("p",null,"A few useful features have been also implemented, like new ledger events, doubling the\nlimit for Url length, consensus query, JSON instances and so on. It was also required\nfor testing to implement a reliable transaction fee estimation function, which is now\navailable not only for testing, but also for cardano-cli."),(0,r.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,r.kt)("h3",{id:"conway"},"Conway"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3915"},"pull-3915")," - Utilize ",(0,r.kt)("inlineCode",{parentName:"li"},"Inject")," type class for ",(0,r.kt)("inlineCode",{parentName:"li"},"Val"),"'s ",(0,r.kt)("inlineCode",{parentName:"li"},"inject")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3899"},"pull-3899")," - Bring Plutus language version to the type level"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3917"},"pull-3917")," - Ensure DRepRegistration certificate requires a witness"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3921"},"pull-3921")," - Fix committee validation in Ratify"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3935"},"pull-3935")," - Fixed a bug in ",(0,r.kt)("inlineCode",{parentName:"li"},"Conway.Rules.Gov")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3956"},"pull-3956")," - Allow 128 byte Url and DnsNames for decoder version atleast 9."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3954"},"pull-3954")," - Fix how we update ",(0,r.kt)("inlineCode",{parentName:"li"},"CostModels")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3947"},"pull-3947")," - Change the type of some pparam fields to align with how they are represented in Consensus"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3951"},"pull-3951")," - Conway genesis DRep injection"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3961"},"pull-3961")," - Switch ContextError to an injective type family from a data family"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3963"},"pull-3963")," - Abstract ",(0,r.kt)("inlineCode",{parentName:"li"},"getWitsVKeyNeeded")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3933"},"pull-3933")," - Improve cbor serialization of TxWits in Conway"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3971"},"pull-3971")," - ToJson instances for context error"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3977"},"pull-3977")," - Added ",(0,r.kt)("inlineCode",{parentName:"li"},"GetAccountStateQuery")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3975"},"pull-3975")," - Add policy hash protection to ",(0,r.kt)("inlineCode",{parentName:"li"},"TreasuryWithdrawals")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"ParameterChange"))),(0,r.kt)("h3",{id:"testing"},"Testing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3892"},"pull-3892")," - Translate DRep expiry test from ",(0,r.kt)("inlineCode",{parentName:"li"},"ConwayFeatures")," to Imp ",(0,r.kt)("inlineCode",{parentName:"li"},"GovSpec")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3913"},"pull-3913")," - Add certs to conformance testing"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3911"},"pull-3911")," - Add a Preds to generate valid GovActionStates."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3929"},"pull-3929")," - Improve comment on ",(0,r.kt)("inlineCode",{parentName:"li"},"unit_interval")," in cddl"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3950"},"pull-3950")," - Use discard to avoid bad traces for fixOutput"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3935"},"pull-3935")," - Add some Imp tests for HardForkInitiation."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3964"},"pull-3964")," - Ignore thunks in ",(0,r.kt)("inlineCode",{parentName:"li"},"utxosDeposited")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3962"},"pull-3962")," - Add ",(0,r.kt)("inlineCode",{parentName:"li"},"estimateMinFeeTx")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3976"},"pull-3976")," - Introduce accurate min fee calculation function: ",(0,r.kt)("inlineCode",{parentName:"li"},"calcMinFeeTx"))),(0,r.kt)("h3",{id:"improvements"},"Improvements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3930"},"pull-3930")," - Change type of ",(0,r.kt)("inlineCode",{parentName:"li"},"mintedTxBodyL")," to ",(0,r.kt)("inlineCode",{parentName:"li"},"PolicyID")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3924"},"pull-3924")," - Split type classes out of eras Core module"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3934"},"pull-3934")," - Type safety bugfixes"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3949"},"pull-3949")," - Add FromJSON BabbagePParams instance"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3953"},"pull-3953")," - Babbage / Conway PParams JSON serialization"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3946"},"pull-3946")," - Epoch interval instances"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3932"},"pull-3932")," - Add ledger event TxUTxODiff"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3969"},"pull-3969")," - Add missing stake key deposit in formal spec"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3973"},"pull-3973")," - Move functionality of Cardano.Ledger.Pretty to Test.Cardano.Ledger.Generic.PrettyCore")),(0,r.kt)("h3",{id:"releasing"},"Releasing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3918"},"pull-3918")," - Bump Plutus to 1.18"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3955"},"pull-3955")," - Bump Plutus to 1.19"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3938"},"pull-3938")," - chap: migrate to chap.intersectmbo.org"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3966"},"pull-3966")," - Update cddl gem and dependencies"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3877"},"pull-3877")," - Make it build with ghc-9.8")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/af332a03.aa3fc496.js b/assets/js/af332a03.aa3fc496.js new file mode 100644 index 0000000000..4f87b0934e --- /dev/null +++ b/assets/js/af332a03.aa3fc496.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15228],{51788:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/6","page":6,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/5","nextPage":"/tags/hydra/page/7","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/af4c9a4c.2b2f1842.js b/assets/js/af4c9a4c.2b2f1842.js new file mode 100644 index 0000000000..537fe0b0a0 --- /dev/null +++ b/assets/js/af4c9a4c.2b2f1842.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48966],{3837:a=>{a.exports=JSON.parse('{"label":"performance-tracing","permalink":"/tags/performance-tracing","allTagsPath":"/tags","count":34}')}}]); \ No newline at end of file diff --git a/assets/js/af883e31.9e3ef7d9.js b/assets/js/af883e31.9e3ef7d9.js new file mode 100644 index 0000000000..f99d744943 --- /dev/null +++ b/assets/js/af883e31.9e3ef7d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[57534],{72375:a=>{a.exports=JSON.parse('{"label":"ledger","permalink":"/tags/ledger","allTagsPath":"/tags","count":44}')}}]); \ No newline at end of file diff --git a/assets/js/af8de899.6a51cafe.js b/assets/js/af8de899.6a51cafe.js new file mode 100644 index 0000000000..86a1ce4111 --- /dev/null +++ b/assets/js/af8de899.6a51cafe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[10536],{87392:e=>{e.exports=JSON.parse('{"permalink":"/page/83","page":83,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/82","nextPage":"/page/84","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/afa83c07.68919a26.js b/assets/js/afa83c07.68919a26.js new file mode 100644 index 0000000000..70e00610cc --- /dev/null +++ b/assets/js/afa83c07.68919a26.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[68115],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var p=o.createContext({}),u=function(e){var t=o.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=u(e.components);return o.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(n),m=r,h=s["".concat(p,".").concat(m)]||s[m]||d[m]||a;return n?o.createElement(h,l(l({ref:t},c),{},{components:n})):o.createElement(h,l({ref:t},c))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,l=new Array(a);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<a;u++)l[u]=n[u];return o.createElement.apply(null,l)}return o.createElement.apply(null,n)}m.displayName="MDXCreateElement"},27614:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var o=n(87462),r=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-07-31-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-07-31-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-31-network.md",source:"@site/blog/2023-07-31-network.md",title:"Network Team Update",description:"Network Update (Sprints 39 & 40)",date:"2023-07-31T00:00:00.000Z",formattedDate:"July 31, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.18,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-07-31-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-08-01-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2023-07-28-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"Network Update (Sprints 39 & 40)",id:"network-update-sprints-39--40",level:2},{value:"Sprint 39 (Jun 26 - Jul 09)",id:"sprint-39-jun-26---jul-09",level:3},{value:"Major changes",id:"major-changes",level:4},{value:"<code>node-to-client</code> protocol",id:"node-to-client-protocol",level:5},{value:"<code>node-to-node</code> protocol",id:"node-to-node-protocol",level:5},{value:"Minor changes",id:"minor-changes",level:4},{value:"Sprint 40 (Jul 09 - Jul 23)",id:"sprint-40-jul-09---jul-23",level:3},{value:"Major changes",id:"major-changes-1",level:4}],c={toc:u},s="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(s,(0,o.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"network-update-sprints-39--40"},"Network Update (Sprints 39 & 40)"),(0,r.kt)("p",null,"The network updates got distracted. Mostly because of me leaving for the meeting in Edinburgh, Scotland and the being away.\nIt was great to see and talk to so many of the community members."),(0,r.kt)("h3",{id:"sprint-39-jun-26---jul-09"},"Sprint 39 (Jun 26 - Jul 09)"),(0,r.kt)("h4",{id:"major-changes"},"Major changes"),(0,r.kt)("p",null,"Now the following ",(0,r.kt)("strong",{parentName:"p"},"list of traces will be turned on by default"),":"),(0,r.kt)("h5",{id:"node-to-client-protocol"},(0,r.kt)("inlineCode",{parentName:"h5"},"node-to-client")," protocol"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"LocalConnectionManagerTracer")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"LocalInboundGovernor")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"LocalHandshake")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"LocalServer"))),(0,r.kt)("h5",{id:"node-to-node-protocol"},(0,r.kt)("inlineCode",{parentName:"h5"},"node-to-node")," protocol"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Server"))),(0,r.kt)("p",null,"See ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5353"},"cardano-node#5353"),". This will be released in ",(0,r.kt)("inlineCode",{parentName:"p"},"node-8.2.0"),"."),(0,r.kt)("p",null,"We made sure that ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-client-0.1.0.x")," library (which is ",(0,r.kt)("inlineCode",{parentName:"p"},"db-sync"),") is not using the experimental ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," protocol.\nThe ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-client-0.2.0.0")," was not affected.\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4612"},"ouroboros-network#4612"),"."),(0,r.kt)("p",null,"We merged the ",(0,r.kt)("strong",{parentName:"p"},"dynamic block production feature")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," (also available in the ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.2.0")," release).\nDynamic block production enables hot-swap p2p nodes, which are important for the p2p deployment of block-producing nodes.\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3159"},"ouroboros-network#3159"),", ","[ouroboros-consensu#140]","."),(0,r.kt)("p",null,"We continued to review the implementation of big ledger peers for eclipse evasion, see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4462"},"ouroboros-network#4462"),"."),(0,r.kt)("h4",{id:"minor-changes"},"Minor changes"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We refactored the top level ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-node")," error handler: ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5356"},"cardano-node#5356"))),(0,r.kt)("h3",{id:"sprint-40-jul-09---jul-23"},"Sprint 40 (Jul 09 - Jul 23)"),(0,r.kt)("h4",{id:"major-changes-1"},"Major changes"),(0,r.kt)("p",null,"We integrated ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.8.2.0")," with the ",(0,r.kt)("inlineCode",{parentName:"p"},"master")," branch of ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," for the ",(0,r.kt)("inlineCode",{parentName:"p"},"8.2.0")," release (the version match between ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," is purely accidental).\nThis includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"integration with ",(0,r.kt)("strong",{parentName:"li"},"dynamic block production")," feature.\nThis feature is documented in the ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5399"},"following PR"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Warm valency")," for local root peers (see below).")),(0,r.kt)("p",null,"For the full list of features included in the ",(0,r.kt)("inlineCode",{parentName:"p"},"8.2.0")," release from the network side, please take a look at the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.2.0-pre"},"pre-release nodes"),"."),(0,r.kt)("p",null,"We ",(0,r.kt)("strong",{parentName:"p"},"improved the memory footprint")," of peer metrics measured by the P2P stack.\nPeer metrics are used to decide which peers to demote every churn interval (roughly every hour with some probabilistic fluctuation).\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4620"},"ouroboros-network#4620"),".\nThe improvement will be available in ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.2.0"),"."),(0,r.kt)("p",null,"We added an ",(0,r.kt)("strong",{parentName:"p"},"optional explicit warm valency")," to local root peers of the ",(0,r.kt)("strong",{parentName:"p"},"P2P topology file"),".\nPreviously we used an implicit valency, e.g. the node keeps connections to all of the local roots; with local warm valency the node will pick only that many peers from the local root peers group to connect to.\nThe hot valency (previously known simply as valency) hasn't changed, but it must be smaller than the warm valency as hot peers are selected from warm ones.\nWarm valency is a useful feature to limit resource consumption if one of the domain names in the local root peer group resolves to many IP addresses.\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4575"},"ouroboros-network#4575"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5409"},"cardano-node#5409"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b032e7ab.07227bd8.js b/assets/js/b032e7ab.07227bd8.js new file mode 100644 index 0000000000..3717f98a00 --- /dev/null +++ b/assets/js/b032e7ab.07227bd8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[292],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>d});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function l(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?a(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):a(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function o(e,t){if(null==e)return{};var i,r,n=function(e,t){if(null==e)return{};var i,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):l(l({},t),e)),i},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),h=u(i),c=n,d=h["".concat(p,".").concat(c)]||h[c]||m[c]||a;return i?r.createElement(d,l(l({ref:t},s),{},{components:i})):r.createElement(d,l({ref:t},s))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,l=new Array(a);l[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[h]="string"==typeof e?e:n,l[1]=o;for(var u=2;u<a;u++)l[u]=i[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,i)}c.displayName="MDXCreateElement"},32167:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>a,metadata:()=>o,toc:()=>u});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-07-27-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-07-27-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-27-mithril.md",source:"@site/blog/2023-07-27-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-07-27T00:00:00.000Z",formattedDate:"July 27, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.715,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-07-27-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-07-28-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-07-26-consensus"}},p={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:u},h="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(h,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team launched ",(0,n.kt)("strong",{parentName:"p"},"Mithril protocol\u2019s mainnet beta"),": the ",(0,n.kt)("inlineCode",{parentName:"p"},"release-mainnet")," network is now open for signer registrations, and its genesis certificate has been created. The team is monitoring the network, and expects it to start producing certificates during the next Cardano epoch. "),(0,n.kt)("p",null,"They have released a new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2329.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2329.0")),", which is running on the ",(0,n.kt)("inlineCode",{parentName:"p"},"release-mainnet")," network. They also kept working on the implementation of the stress test tool for benchmarking the aggregator. The team kept working on the refactoring of the serialization/deserialization of the entities of the cryptographic library. Additionally, they completed the cleanup of the legacy store adapters in the aggregator."),(0,n.kt)("p",null,"Finally, they have worked on enhancing the documentation for ",(0,n.kt)("a",{parentName:"p",href:"https://mithril.network/doc/manual/getting-started/SPO-on-boarding-guide"},"onboarding SPOs")," and setting up a ",(0,n.kt)("a",{parentName:"p",href:"https://mithril.network/doc/manual/getting-started/run-signer-node"},"Mithril signer"),", and fixing installation bugs of the binary artifacts produced in the CI."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Created the dev blog post ",(0,n.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2023/07/21/mainnet-beta-launch"},"Mithril Protocol\u2019s Mainnet Beta Launch")),(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2329.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2329.0"))),(0,n.kt)("li",{parentName:"ul"},"Closed the epic that prepares the Mithril infrastructure for ",(0,n.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/767"},"#767"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Deploy 'mainnet' infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/988"},"#988")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Handle Secrets management")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/989"},"#989")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Release 'mainnet' Mithril network")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/918"},"#918"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Prepare SPO on-boarding guide")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1049"},"#1049")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Benchmark performances of Mithril Aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/904"},"#904"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Design & implement basic stress test tool for aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/991"},"#991")))),(0,n.kt)("li",{parentName:"ul"},"Worked on optimizations:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Enhance the configuration of Mithril relay")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1080"},"#1080")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Remove legacy store adapters from aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1053"},"#1053")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add a 'sign' sub-command to 'genesis' command in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1081"},"#1081")))),(0,n.kt)("li",{parentName:"ul"},"Worked on refactoring:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Refactor (de)serialization of crypto entities")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/668"},"#668")))),(0,n.kt)("li",{parentName:"ul"},"Worked on documentation:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Enhance 'Run a Mithril Signer node (SPO)' guide")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1055"},"#1055")))),(0,n.kt)("li",{parentName:"ul"},"Worked on bugs:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Shared library error in CI binaries")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1073"},"#1073")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Debian package does not install cleanly on older ubuntu versions")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/834"},"#834")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Aggregator panics with new (de)serialization of 'ProtocolVerificationKey'")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1083"},"#1083"))))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b03d4a4e.c1b01705.js b/assets/js/b03d4a4e.c1b01705.js new file mode 100644 index 0000000000..372aec78a0 --- /dev/null +++ b/assets/js/b03d4a4e.c1b01705.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52834],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(r),h=a,m=c["".concat(s,".").concat(h)]||c[h]||d[h]||o;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var u=2;u<o;u++)i[u]=r[u];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}h.displayName="MDXCreateElement"},44301:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={title:"Ledger Team Update",slug:"2022-11-11-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-11-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-11-ledger.md",source:"@site/blog/2022-11-11-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2022-11-11T00:00:00.000Z",formattedDate:"November 11, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.41,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-11-11-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-11-11-hydra"},nextItem:{title:"Network Team Update",permalink:"/2022-11-11-network"}},s={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],p={toc:u},c="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"I am extremely excited to say that we now have a pull request up which introduces our new versioned\nCBOR serialization. This was an enormous effort, but it will solve a host of problems that we have\nhad since the Shelley phase. It will take time to properly review it, and we will\nneed to put in a lot of effort to integrate it with the downstream components, but this is a huge\nmilestone. Additionally, we have a new CIP proposing a deprecation cycle for the transaction\nserialization schemes."),(0,a.kt)("p",null,"We also have a draft pull request that reworks how deposits are tracked. Users of the system will\nnot notice any difference, but it is a necessary change needed to prepare the way for\ndecentralizing the governance of Cardano."),(0,a.kt)("p",null,"Finally, we continued to address technical debt. In particular, we continued to make progress on\nbringing coherency and consistency to the code base with a common naming convention, and\nimproving some error messages."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We have a pull request up for our new versioned CBOR serialization.\nWhen we encounter a problem with our deserializers, it can be very difficult to implement a fix.\nIt is difficult because we can only fix such issues during a hard fork, and leading up to the\nhard fork we must maintain two serializations for the same type in order to not cause unintended\nnetwork splitting (the problematic version must be used before the hard fork,\nand the fixed version is used afterwards).\nThis can be especially tricky with the ",(0,a.kt)("inlineCode",{parentName:"li"},"FromCBOR")," typeclass, since it is not always easy to\nsearch for where all the problematic uses are located.\nThe new versioned CBOR serialization allows us to gracefully handle this transition.\nSee [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3138"},"pull-3138"),"]."),(0,a.kt)("li",{parentName:"ul"},"We proposed a CIP for backwards compatibility of the transaction serialization schemes.\nSee [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/372"},"pull-372"),"]."),(0,a.kt)("li",{parentName:"ul"},"We have draft for the new deposit tracking.\nThis draft is not as memory efficient as the final version will be,\nbut it is a sufficient proof of concept that we can write property tests against, ensuring\nthat we have not changed the semantics.\nWe will optimize after we are sure of the correctness.\nSee [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3127"},"pull-3127"),"]."),(0,a.kt)("li",{parentName:"ul"},"We now provide better support for debugging failed Plutus scripts in an important helper\nfunction, named ",(0,a.kt)("inlineCode",{parentName:"li"},"evaluateTransactionExecutionUnits"),".\nIn particular, it now returns all the information needed to rerun the script with exactly the\nsame arguments. This feature will end up appearing in the CLI and other tools from the Plutus\ntools team.\nSee [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3135"},"pull-3135"),"]."),(0,a.kt)("li",{parentName:"ul"},"We did a lot more renaming to bring coherency and consistency to the code base.\nSee [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3126"},"pull-3126"),"], [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3120"},"pull-3120"),"], [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3118"},"pull-3118"),"], and [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3116"},"pull-3116"),"]."),(0,a.kt)("li",{parentName:"ul"},"We have added a few things to the ledger repository to make it conform to the\n",(0,a.kt)("a",{parentName:"li",href:"https://input-output-hk.github.io/cardano-engineering-handbook/"},"Cardano Engineering Handbook"),"\nSee [",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3139"},"pull-3139"),"].")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b073a55d.8b931802.js b/assets/js/b073a55d.8b931802.js new file mode 100644 index 0000000000..cb8e43e538 --- /dev/null +++ b/assets/js/b073a55d.8b931802.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20955],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>h});var a=t(67294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),c=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},m=function(e){var n=c(e.components);return a.createElement(s.Provider,{value:n},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),u=c(t),d=r,h=u["".concat(s,".").concat(d)]||u[d]||p[d]||i;return t?a.createElement(h,o(o({ref:n},m),{},{components:t})):a.createElement(h,o({ref:n},m))}));function h(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,o=new Array(i);o[0]=d;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var c=2;c<i;c++)o[c]=t[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},7729:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var a=t(87462),r=(t(67294),t(3905));const i={title:"Performance & Tracing Q3 2023 Update",slug:"2023-Q3-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/quarterly/2023-Q3-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q3-performance-and-tracing.md",source:"@site/quarterly/2023-Q3-performance-and-tracing.md",title:"Performance & Tracing Q3 2023 Update",description:"2023-07 - 2023-09",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"performance-tracing",permalink:"/quarterly/tags/performance-tracing"}],readingTime:3.27,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Q3 2023 Update",slug:"2023-Q3-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"SRE Q2 2023 Update",permalink:"/quarterly/2023-Q2-sre"},nextItem:{title:"SRE Q3 2023 Update",permalink:"/quarterly/2023-Q3-sre"}},s={authorsImageUrls:[void 0]},c=[{value:"2023-07 - 2023-09",id:"2023-07---2023-09",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Release benchmarking",id:"release-benchmarking",level:4},{value:"UTxO-HD benchmarks",id:"utxo-hd-benchmarks",level:4},{value:"P2P benchmarks",id:"p2p-benchmarks",level:4},{value:"New nomad cluster",id:"new-nomad-cluster",level:4},{value:"New tracing system",id:"new-tracing-system",level:4},{value:"GHC9 performance",id:"ghc9-performance",level:4},{value:"Consensus QTAs",id:"consensus-qtas",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"Benchmarking:",id:"benchmarking",level:4},{value:"Performance",id:"performance",level:4},{value:"New tracing system",id:"new-tracing-system-1",level:4},{value:"UTxO-HD monitoring",id:"utxo-hd-monitoring",level:4},{value:"Nomad backend",id:"nomad-backend",level:4},{value:"Workbench",id:"workbench",level:4},{value:"Consensus component QTAs (co-development)",id:"consensus-component-qtas-co-development",level:4}],m={toc:c},u="wrapper";function p(e){let{components:n,...t}=e;return(0,r.kt)(u,(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-07---2023-09"},"2023-07 - 2023-09"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Release benchmarking"),(0,r.kt)("li",{parentName:"ul"},"Developing and running UTxO-HD benchmarks - in-memory flavour"),(0,r.kt)("li",{parentName:"ul"},"P2P benchmarks, facilitating rollout"),(0,r.kt)("li",{parentName:"ul"},"Production-readiness of the new Nomad cluster has been reached"),(0,r.kt)("li",{parentName:"ul"},"Optimization of and introspection capability for the new tracing system"),(0,r.kt)("li",{parentName:"ul"},"GHC9 performance investigation (and possible remedy)"),(0,r.kt)("li",{parentName:"ul"},"Conensus QTAs: first real-world application of prototype")),(0,r.kt)("h4",{id:"release-benchmarking"},"Release benchmarking"),(0,r.kt)("p",null,"Ongoing release benchmarking is a crucial safeguard to ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node"),"'s release cycle from a performance perspective. We've performed and analyzed benchmarks for node versions ",(0,r.kt)("inlineCode",{parentName:"p"},"8.2.x")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"8.5")," throughout Q3."),(0,r.kt)("h4",{id:"utxo-hd-benchmarks"},"UTxO-HD benchmarks"),(0,r.kt)("p",null,"Targeting a specific new feature in benchmarks requires development effort and fine-tuning the machinery. In Q3, we achieved that for the in-memory flavour of UTxO-HD, enabling benchmark delivery."),(0,r.kt)("h4",{id:"p2p-benchmarks"},"P2P benchmarks"),(0,r.kt)("p",null,"In Q3, we performed additional P2P benchmarks to facilitate the comprehensive rollout of that feature."),(0,r.kt)("h4",{id:"new-nomad-cluster"},"New nomad cluster"),(0,r.kt)("p",null,"The new hardware cluster for benchmarks, which is controlled through the new nomad backend, has received\nvarious rounds of validation and adjustments in Q3 - in addition to finalizing integration with the rest\nof our pipeline. The confidence in metrics gathered on the cluster is now sufficient for us to consider it\nready for production use."),(0,r.kt)("h4",{id:"new-tracing-system"},"New tracing system"),(0,r.kt)("p",null,"Our new tracing system has received various rounds of optimization in Q3. We could verify in our benchmarks that\nit is roughly on par with the legacy system while offering a richer feature set and greater flexibility. "),(0,r.kt)("p",null,"Additionally, in Q3 we equipped the system with an introspection capability. This is now used for generating\nend user documentation that stays in-sync with definitions in code, and for automated consistency checking of the entire system."),(0,r.kt)("h4",{id:"ghc9-performance"},"GHC9 performance"),(0,r.kt)("p",null,"In Q3, a joint investigation with DevX into GHC9's behaviour revealed where and how GHC9 misses opportunities for\noptimization of generated code. This led to an approach to annotate our codebase accordingly to re-enable\nthose optimizations - which is still being validated."),(0,r.kt)("h4",{id:"consensus-qtas"},"Consensus QTAs"),(0,r.kt)("p",null,"In collaboration with Consensus and DevX, we advanced the Consensus QTAs prototype capturing ledger operations'\nperformance characteristics. It's now applicable, and being applied, to a real-world task - namely\ngathering evidence of the effect of aforementioned changes allowing for performant GHC9 builds."),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"benchmarking"},"Benchmarking:"),(0,r.kt)("p",null,"In Q4, the focus will be on:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"facilitating the next mainnet release"),(0,r.kt)("li",{parentName:"ul"},"benchmarking runs in the Conway era"),(0,r.kt)("li",{parentName:"ul"},"developing benchmarks / workloads for Conway-exclusive actions"),(0,r.kt)("li",{parentName:"ul"},"implementing a specialized benchmark setup for the UTxO-HD on-disk variant"),(0,r.kt)("li",{parentName:"ul"},"developing new Plutus benchmarks to safeguard Plutus V3"),(0,r.kt)("li",{parentName:"ul"},"benchmarks regarding the rollout of P2P")),(0,r.kt)("h4",{id:"performance"},"Performance"),(0,r.kt)("p",null,"For certain blocking performance issues we've located the cause, or even found a solution in a cross-team effort. In Q4 we'll advance that work to ensure the ongoing\nrelease cycle for mainnet, as well as make GHC9 become a viable release platform."),(0,r.kt)("h4",{id:"new-tracing-system-1"},"New tracing system"),(0,r.kt)("p",null,"For the new tracing system, we'll finalize optimization - current results are already on par with the legacy system. Furthermore, we will finish up comprehensive documentation, as well as description of a recommended setup, for which we can provide initial support."),(0,r.kt)("h4",{id:"utxo-hd-monitoring"},"UTxO-HD monitoring"),(0,r.kt)("p",null,"We'll augment our analysis pipeline so it can process monitoring data from UTxO-HD nodes connected to mainnet in a meaningful way."),(0,r.kt)("h4",{id:"nomad-backend"},"Nomad backend"),(0,r.kt)("p",null,"From Q4 on, this backend will be in production use. We plan on adding various UX and flexibility improvements, and further fine-tuning some profiles for nomad."),(0,r.kt)("h4",{id:"workbench"},"Workbench"),(0,r.kt)("p",null,"We will prepare for a future move of our performance workbench into a separate project. This entails restructuring, refactoring and reimplementation of certain few components that currently assume to always be in sync with ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node"),"."),(0,r.kt)("h4",{id:"consensus-component-qtas-co-development"},"Consensus component QTAs (co-development)"),(0,r.kt)("p",null,"In Q4 there will be ongoing work with and support for the existing prototype. We plan to identify a fixed set of input data that yields results of high informative value, and to formalize the process to a point that enables future automation."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b0b16a90.5448fed4.js b/assets/js/b0b16a90.5448fed4.js new file mode 100644 index 0000000000..e955a61ca4 --- /dev/null +++ b/assets/js/b0b16a90.5448fed4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58800],{39534:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"2023-Q2-consensus","metadata":{"permalink":"/quarterly/2023-Q2-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q2-consensus.md","source":"@site/quarterly/2023-Q2-consensus.md","title":"Consensus Q2 2023 Update","description":"2023-04 -- 2023-06","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"consensus","permalink":"/quarterly/tags/consensus"}],"readingTime":4.47,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Q2 2023 Update","slug":"2023-Q2-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"nextItem":{"title":"Network Q2 2023 Update","permalink":"/quarterly/2023-Q2-network"}},"content":"## 2023-04 -- 2023-06\\n\\n### Main achievements\\n\\n#### UTxO HD\\n\\n- We finished a major prototype refactoring, which includes:\\n - A better and finer grained DB lock mechanism.\\n - Elimination of race conditions.\\n - Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.\\n - Architectural simplifications and performance improvements.\\n- We implemented a new package to support db-sync integration with UTxO-HD.\\n- We ran another set of ad-hoc benchmarks:\\n - We uncovered a performance regression on the Network component when using `GHC-9.2/9.4`.\\n - The synchronization and replay speed are as expected.\\n - However, we uncovered memory consumption issues (see figure below).\\n - The in-memory backend is consuming more memory than the baseline.\\n - The LMDB backend shows an unexpected memory usage peak.\\n - Investigation on these issues is ongoing.\\n- We integrated the latest changes in `main` branch.\\n - This required a re-design of the mempool to include the mempool fairness\\n improvement.\\n\\n![](/images/consensus/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks.png)\\n\\n#### Genesis\\n\\n- The Genesis work for this PI focused on an high-priority issue from the IOG Researchers\' feedback on the proposal.\\n - This particular question was not anticipated when the Q2 PI was planned.\\n - As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized.\\n - That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package.\\n- The IOG Researchers\' feedback on the design was very valuable. It had two primary effects.\\n- Outcome 1: We re-introduced distinct behaviors when the node is \\"syncing\\" versus when it is \\"caught up\\".\\n - This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated.\\n - The additional design complexity is relatively small.\\n- Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.\\n - The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era.\\n - All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras.\\n - Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later.\\n - The primary invention was a model for bounding how much benefit the adversary\'s long-range attack could possibly gain from Praos\'s natural short forks.\\n- Relevant questions that the IOG Researchers are still assessing.\\n - These do not block the Genesis implementation, but do affect the ultimate values of specific parameters.\\n - Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?\\n - Question 2: what is the upper bound on how much grinding can improve the adversary\'s leader schedule within some Genesis window?\\n\\n#### Support\\n- We performed an analysis on number of file descriptors used by Consensus, this\\n information can be used by the node operators to check if the number of file\\n descriptors they want to support are enough, thus improving the user (eg node\\n operator) experience.\\n- We implemented a mempool fairness improvement, by which transactions are\\n guaranteed to be processed irrespective of their size.\\n\\n#### Technical debt\\n\\n- We fixed a bug in followers logic, which was discovered by our `QuickCheck`\\nproperty tests.\\n- We created an [immutable DB\\n server](https://github.com/input-output-hk/ouroboros-consensus/pull/68). This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results.\\n- We created a [`db-truncater`](https://github.com/input-output-hk/ouroboros-consensus/pull/70) tool, which can be used in disaster recovery and benchmarking scenarios.\\n- We created a [benchmarks comparison tool](https://github.com/input-output-hk/ouroboros-consensus/pull/161) that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance *improvements* introduced by the Ledger team in version `0.6.0.0` of Consensus wrt version `0.5.0.0`.\\n\\n![](/images/consensus/2023-Q2-beacon-graph.png)\\n\\n#### Fostering collaboration\\n\\n- We released `fs-sim` as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project.\\n- We migrated the consensus code to a [new repository](https://github.com/input-output-hk/ouroboros-consensus), splitting\\nit from the `ouroboros-network` repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases).\\n- We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users).\\n- We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.\\n\\n### Next steps\\n\\n#### UTxO HD\\n\\n- We will [get UTxO-HD ready for handover](https://github.com/input-output-hk/ouroboros-consensus/issues/28).\\n\\n#### Genesis\\n\\n- We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work."},{"id":"2023-Q2-network","metadata":{"permalink":"/quarterly/2023-Q2-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q2-network.md","source":"@site/quarterly/2023-Q2-network.md","title":"Network Q2 2023 Update","description":"2023-04 - 2023-06","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"network","permalink":"/quarterly/tags/network"}],"readingTime":5.145,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Q2 2023 Update","slug":"2023-Q2-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Q2 2023 Update","permalink":"/quarterly/2023-Q2-consensus"},"nextItem":{"title":"SRE Q2 2023 Update","permalink":"/quarterly/2023-Q2-sre"}},"content":"## 2023-04 - 2023-06\\n\\n### Main achievements\\n\\n#### Eclipse Evasion\\n\\nWe finalised the design of eclipse evasion and implemented its mechanism which\\nrelays on connectivity to _big ledger peers_. _Big ledger peers_ are the\\nlargest ledger peers which accumulate 90% of stake (currently there are less\\nthan 1000 of them). The outbound governor has new targets for _known_,\\n_established_ and _active_ big ledger peers which work in a similar way that\\nsuch targets work for ledger peers. The [ouroboros-network#4662] PR is\\ncurrently in review.\\n\\nAs part of this work we also identified a bug which would prevent a node to\\nconnect to itself. Such connections are not easily detectable and are expected\\nto be dropped by the churn mechanism, nonetheless they should not be buggy.\\nThe failure was discovered thanks to our e2e simulation of diffusion using\\n`io-sim` & property based testing.\\n\\nThe PR also refactors the heart of the `ouroboros-network` interface reducing\\ntechnical debt that would otherwise accumulate.\\n\\nWe also identified a possible improvement in the churn mechanism, which will be\\nimplemented in Q3. Churn needs to await for peers to terminate, we can\\nimprove the synchronisation. [ouroboros-network#4617]\\n\\n#### Ecosystem P2P Deployment Progress\\n\\nWe reached __50% of stake in hands of SPOs who run at least on P2P relay__. Now\\nalso Emurgo and CF are running some P2P relays. Also 20% of IOG relays are\\nrunning in P2P mode.\\n\\n![P2P Progress](/images/network/2023-07-06-p2p-progress.png)\\n\\n#### Peer Sharing\\n\\nWe implemented _bootstrapping for peer sharing_ (also known as light peer\\nsharing). New downstream (inbound) peers are now added to the _known peers_ of\\nthe _outbound governor_. Together with peer sharing this allows for non\\nregistered relays to propagate through the network. [ouroboros-network#3596]\\n\\n_Please note that peer sharing is disabled by default and is not considered safe\\nuntil Bootstrap Peers (see below) or Genesis is implemented._\\n\\n#### Diffusion (P2P)\\n\\n- We designed a feature which will reduce the load on IOG relays (in future\\n also run by CF & Emurgo). The feature consists of two parts. A new source\\n of peers called _bootstrap peers_ (obtained from via an https request), the\\n ability to switch from bootstrap peers to ledger peers if the node is synced\\n (we are collaborating with the consensus team on the interface [Bootstrap\\n Peers IER][bootstrap-ier]). This feature will be completed in Q3.\\n [ouroboros-network#4530]\\n\\n- We published a blog post about [P2P design & implementation][p2p-blog].\\n\\n- Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections:\\n [ouroboros-network#4559].\\n\\n- We merged changes which allow the consensus layer to start / stop block\\n forging thread. This will allow to deploy P2P block producing nodes which\\n serve as a live backup node. [ouroboros-consensus#140]\\n\\n- We fixed a few bugs in local root peers DNS resolution service:\\n [ouroboros-network#4583], [ouroboros-network#4571].\\n\\n- We limited concurrency of DNS name resolutions: [ouroboros-network#4596].\\n\\n- Galois Inc implemented query option for Handshake: [ouroboros-network#4256].\\n\\n- We fixed handshake query timeout: [ouroboros-network#4608].\\n\\n- We implemented warm valency for local root peers. This can help when using\\n DNS names in local root peers which resolve to many IP addresses. [ouroboros-network#4575]\\n\\n- We merged handshake changes which allow query protocol versions. Thanks to\\n James Parker from Galois Inc.: [ouroboros-network#4256], [cardano-cli#30].\\n\\n### Other Improvements & Developments\\n\\n#### CDDL\\n\\n- We added `node-to-node` and `node-to-client` CDDL specs / tests for encoding\\n of `NodeToNodeVersionData` and `NodeToClientVersionData`. \\n\\n- We clarified an inconsistency between CDDL spec and implementation which is\\n highly polymorphic. We designed and implemented a fix for `tx-submission`\\n and `local-tx-submission` mini-protocols. Specs for other mini-protocols will\\n be improved at a later stage. [ouroboros-network#4580]\\n\\n#### [Cardano Ping][cardano-ping]\\n\\n- `cardano-ping` command was deprecated in favour of `cardano-cli ping` (the\\n transition was done by the `node` team).\\n\\n- Support for `node-to-client` protocol using Unix sockets.\\n [ouroboros-network#4601]\\n\\n- Support for `NodeToNodeV_11` and `NodeToClientV_16`, [ouroboros-network#4587]\\n\\n- `cardano-cli ping` is now using _ISO8601_ format for timestamps. Formatting of\\n messages was improved. [ouroboros-network#4593]\\n\\n- `cardano-cli ping` has a new `--query-versions` flag which allows to query\\n supported versions by the remote node. This is supported by\\n `cardano-node-8.1.0`. [ouroboros-network#4589], [cardano-node#5313], [cardano-cli#30]\\n\\n#### [IOSim][io-sim]\\n\\n- We fixed timeouts & delays in `io-classes` in a series of PRs: [io-sim#81],\\n [io-sim#82], [io-sim#86], [io-sim#87].\\n\\n- We released `strict-stm-1.1.0.1` on Hackage which fixed a bug in package\\n description file: [io-sim#101].\\n\\n#### [Typed Protocols][typed-protocols]\\n\\n- We published haddocks of `typed-protocols` at\\n https://input-output-hk.github.io/typed-protocols\\n\\n#### [Cardano Client][cardano-client]\\n\\n- We fixed a bug in `cardano-client-0.1.0.2` release which results in clients\\n (e.g. `db-sync`) negotiate an experimental protocol version.\\n\\n#### Technical debt\\n\\n- After the split between consensus & network, we made `cardano-client`\\n independent of `ouroboros-consensus-diffusion`: [ouroboros-network#4526].\\n\\n- We wrap all exceptions in `DiffusionError`: [ouroboros-network#4537], [cardano-node#5356].\\n\\n#### CI improvements\\n\\n- We switched to use GitHub merge queues in `ouroboros-network`, `io-sim` and\\n `typed-protocols` repositories; [typed-protocols#30], [ouroboros-network#4546].\\n\\n- We cleaned & updated scripts which run on CI.\\n\\n- We implemented a script to verify & release packages on CHaP; [ouroboros-network#4542], [ouroboros-network#4573].\\n\\n- We implemented a new CI script and cleaned existing ones:\\n [ouroboros-network#4572].\\n\\n- We don\'t install cryptographic libraries on CI anymore as none of our\\n packages requires them; [ouroboros-network#4539].\\n\\n- Improved caching of dependencies: [ouroboros-network#4553].\\n\\n- We made it possible to trigger building haddock manually:\\n [ouroboros-network#4549].\\n\\n#### GHC 9.4 & 9.6\\n\\nWe made all repositories under our control compile with `ghc-9.4` and `ghc-9.6`\\nwhich includes `ouroboros-network`, `io-sim`, `typed-protocols` and\\n`Win32-network`.\\n\\n### Next steps\\n\\nWe will continue towards our [aspirational roadmap][roadmap].\\n\\n* We will continue reviewing eclipse evasion.\\n* As [ouroboros-consensus#140] was merged, we are making progress towards\\n releasing P2P on block production nodes. We hope to analyse performance\\n regression on such nodes observed on the benchmarking cluster. [roadmap-3887]\\n* We are also focused on [roadmap-3969]. Note that it was expanded in Q2.\\n\\n\\n[typed-protocols]: https://github.com/input-output-hk/typed-protocols\\n[typed-protocols#30]: https://github.com/input-output-hk/typed-protocols/pull/30\\n\\n[io-sim]: https://github.com/input-output-hk/io-sim\\n[io-sim#81]: https://github.com/input-output-hk/io-sim/pull/81\\n[io-sim#82]: https://github.com/input-output-hk/io-sim/pull/82\\n[io-sim#86]: https://github.com/input-output-hk/io-sim/pull/86\\n[io-sim#87]: https://github.com/input-output-hk/io-sim/pull/87\\n[io-sim#101]: https://github.com/input-output-hk/io-sim/pull/101\\n\\n\\n[cardano-node#5313]: https://github.com/input-output-hk/cardano-node/pull/5313\\n[cardano-node#5356]: https://github.com/input-output-hk/cardano-node/pull/5356\\n[cardano-cli#30]: https://github.com/input-output-hk/cardano-cli/pull/30/\\n\\n[cardano-client]: https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-client\\n[cardano-ping]: https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-ping\\n[ouroboros-network#3596]: https://github.com/input-output-hk/ouroboros-network/issues/3596\\n[ouroboros-network#4256]: https://github.com/input-output-hk/ouroboros-network/pull/4256\\n[ouroboros-network#4256]: https://github.com/input-output-hk/ouroboros-network/pull/4256\\n[ouroboros-network#4526]: https://github.com/input-output-hk/ouroboros-network/pull/4526\\n[ouroboros-network#4530]: https://github.com/input-output-hk/ouroboros-network/issues/4530\\n[ouroboros-network#4537]: https://github.com/input-output-hk/ouroboros-network/issues/4537\\n[ouroboros-network#4539]: https://github.com/input-output-hk/ouroboros-network/issues/4539\\n[ouroboros-network#4540]: https://github.com/input-output-hk/ouroboros-network/issues/4540\\n[ouroboros-network#4542]: https://github.com/input-output-hk/ouroboros-network/issues/4542\\n[ouroboros-network#4546]: https://github.com/input-output-hk/ouroboros-network/pull/4546\\n[ouroboros-network#4549]: https://github.com/input-output-hk/ouroboros-network/issues/4549\\n[ouroboros-network#4553]: https://github.com/input-output-hk/ouroboros-network/issues/4553\\n[ouroboros-network#4559]: https://github.com/input-output-hk/ouroboros-network/pull/4559\\n[ouroboros-network#4571]: https://github.com/input-output-hk/ouroboros-network/pull/4571\\n[ouroboros-network#4572]: https://github.com/input-output-hk/ouroboros-network/pull/4572\\n[ouroboros-network#4573]: https://github.com/input-output-hk/ouroboros-network/pull/4573\\n[ouroboros-network#4575]: https://github.com/input-output-hk/ouroboros-network/pull/4575\\n[ouroboros-network#4580]: https://github.com/input-output-hk/ouroboros-network/pull/4580\\n[ouroboros-network#4583]: https://github.com/input-output-hk/ouroboros-network/pull/4583\\n[ouroboros-network#4587]: https://github.com/input-output-hk/ouroboros-network/pull/4587\\n[ouroboros-network#4589]: https://github.com/input-output-hk/ouroboros-network/pull/4589\\n[ouroboros-network#4593]: https://github.com/input-output-hk/ouroboros-network/pull/4593\\n[ouroboros-network#4596]: https://github.com/input-output-hk/ouroboros-network/pull/4596\\n[ouroboros-network#4601]: https://github.com/input-output-hk/ouroboros-network/pull/4601\\n[ouroboros-network#4608]: https://github.com/input-output-hk/ouroboros-network/pull/4608\\n[ouroboros-network#4662]: https://github.com/input-output-hk/ouroboros-network/pull/4662\\n\\n[bootstrap-ier]: https://github.com/input-output-hk/ouroboros-consensus/blob/fbb8c8ee97517809dec0d0c8ae3fae9b8d272caf/docs/website/docs/bootstrap-peers-IER.md\\n[ouroboros-consensus#140]: https://github.com/input-output-hk/ouroboros-consensus/pull/140\\n\\n[io-sim-blog]: https://engineering.iog.io/2023-04-14-io-sim-annoucement\\n[p2p-blog]: https://engineering.iog.io/2023-06-28-p2p\\n\\n[roadmap]: https://github.com/orgs/input-output-hk/projects/39/views/30\\n[roadmap-3887]: https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=6875505\\n[roadmap-3969]: https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=8920085"},{"id":"2023-Q2-sre","metadata":{"permalink":"/quarterly/2023-Q2-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q2-sre.md","source":"@site/quarterly/2023-Q2-sre.md","title":"SRE Q2 2023 Update","description":"2023-04 - 2023-06","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"sre","permalink":"/quarterly/tags/sre"}],"readingTime":0.68,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Q2 2023 Update","slug":"2023-Q2-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Network Q2 2023 Update","permalink":"/quarterly/2023-Q2-network"},"nextItem":{"title":"Performance & Tracing Q3 2023 Update","permalink":"/quarterly/2023-Q3-performance-and-tracing"}},"content":"## 2023-04 - 2023-06\\n\\n### Main achievements\\n\\nIn addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:\\n- Expanding the darwin CI cluster and adding aarch64 builder support\\n- Adding bare metal capability to bitte clusters\\n- Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality\\n- Creation of pool performance analysis queries and scripting\\n- Migration of testnet metadata server to cardano-world\\n- Cardano shelley qa migration to cardano-world\\n- Cardano sanchonet environment spin up to test Conway era functionality\\n- Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature\\n\\n### Next steps\\n\\n- Continue with the conversion of mainnet to using p2p topology"},{"id":"2023-Q3-performance-and-tracing","metadata":{"permalink":"/quarterly/2023-Q3-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q3-performance-and-tracing.md","source":"@site/quarterly/2023-Q3-performance-and-tracing.md","title":"Performance & Tracing Q3 2023 Update","description":"2023-07 - 2023-09","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"performance-tracing","permalink":"/quarterly/tags/performance-tracing"}],"readingTime":3.27,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & Tracing Q3 2023 Update","slug":"2023-Q3-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Q2 2023 Update","permalink":"/quarterly/2023-Q2-sre"},"nextItem":{"title":"SRE Q3 2023 Update","permalink":"/quarterly/2023-Q3-sre"}},"content":"## 2023-07 - 2023-09\\n\\n### Main achievements\\n\\n* Release benchmarking\\n* Developing and running UTxO-HD benchmarks - in-memory flavour\\n* P2P benchmarks, facilitating rollout\\n* Production-readiness of the new Nomad cluster has been reached\\n* Optimization of and introspection capability for the new tracing system\\n* GHC9 performance investigation (and possible remedy)\\n* Conensus QTAs: first real-world application of prototype\\n#### Release benchmarking\\n\\nOngoing release benchmarking is a crucial safeguard to `cardano-node`\'s release cycle from a performance perspective. We\'ve performed and analyzed benchmarks for node versions `8.2.x` to `8.5` throughout Q3.\\n\\n#### UTxO-HD benchmarks\\n\\nTargeting a specific new feature in benchmarks requires development effort and fine-tuning the machinery. In Q3, we achieved that for the in-memory flavour of UTxO-HD, enabling benchmark delivery.\\n\\n#### P2P benchmarks\\n\\nIn Q3, we performed additional P2P benchmarks to facilitate the comprehensive rollout of that feature.\\n\\n#### New nomad cluster\\n\\nThe new hardware cluster for benchmarks, which is controlled through the new nomad backend, has received \\nvarious rounds of validation and adjustments in Q3 - in addition to finalizing integration with the rest\\nof our pipeline. The confidence in metrics gathered on the cluster is now sufficient for us to consider it\\nready for production use.\\n\\n#### New tracing system\\n\\nOur new tracing system has received various rounds of optimization in Q3. We could verify in our benchmarks that\\nit is roughly on par with the legacy system while offering a richer feature set and greater flexibility. \\n\\nAdditionally, in Q3 we equipped the system with an introspection capability. This is now used for generating\\nend user documentation that stays in-sync with definitions in code, and for automated consistency checking of the entire system.\\n\\n#### GHC9 performance\\n\\nIn Q3, a joint investigation with DevX into GHC9\'s behaviour revealed where and how GHC9 misses opportunities for\\noptimization of generated code. This led to an approach to annotate our codebase accordingly to re-enable\\nthose optimizations - which is still being validated.\\n\\n#### Consensus QTAs\\n\\nIn collaboration with Consensus and DevX, we advanced the Consensus QTAs prototype capturing ledger operations\'\\nperformance characteristics. It\'s now applicable, and being applied, to a real-world task - namely\\ngathering evidence of the effect of aforementioned changes allowing for performant GHC9 builds.\\n\\n### Next steps\\n\\n#### Benchmarking:\\n\\nIn Q4, the focus will be on:\\n* facilitating the next mainnet release\\n* benchmarking runs in the Conway era\\n* developing benchmarks / workloads for Conway-exclusive actions\\n* implementing a specialized benchmark setup for the UTxO-HD on-disk variant\\n* developing new Plutus benchmarks to safeguard Plutus V3\\n* benchmarks regarding the rollout of P2P\\n\\n#### Performance\\n\\nFor certain blocking performance issues we\'ve located the cause, or even found a solution in a cross-team effort. In Q4 we\'ll advance that work to ensure the ongoing\\nrelease cycle for mainnet, as well as make GHC9 become a viable release platform.\\n\\n#### New tracing system\\n\\nFor the new tracing system, we\'ll finalize optimization - current results are already on par with the legacy system. Furthermore, we will finish up comprehensive documentation, as well as description of a recommended setup, for which we can provide initial support.\\n\\n#### UTxO-HD monitoring\\n\\nWe\'ll augment our analysis pipeline so it can process monitoring data from UTxO-HD nodes connected to mainnet in a meaningful way.\\n\\n#### Nomad backend\\n\\nFrom Q4 on, this backend will be in production use. We plan on adding various UX and flexibility improvements, and further fine-tuning some profiles for nomad.\\n\\n#### Workbench\\n\\nWe will prepare for a future move of our performance workbench into a separate project. This entails restructuring, refactoring and reimplementation of certain few components that currently assume to always be in sync with `cardano-node`.\\n\\n#### Consensus component QTAs (co-development)\\n\\nIn Q4 there will be ongoing work with and support for the existing prototype. We plan to identify a fixed set of input data that yields results of high informative value, and to formalize the process to a point that enables future automation."},{"id":"2023-Q3-sre","metadata":{"permalink":"/quarterly/2023-Q3-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q3-sre.md","source":"@site/quarterly/2023-Q3-sre.md","title":"SRE Q3 2023 Update","description":"2023-07 - 2023-09","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"sre","permalink":"/quarterly/tags/sre"}],"readingTime":0.905,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Q3 2023 Update","slug":"2023-Q3-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Q3 2023 Update","permalink":"/quarterly/2023-Q3-performance-and-tracing"},"nextItem":{"title":"Consensus Q4 2023 Update","permalink":"/quarterly/2023-Q4-consensus"}},"content":"## 2023-07 - 2023-09\\n\\n### Main achievements\\n\\nIn addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:\\n* Completion of mainnet relay networking conversion to p2p topology\\n* Cardano sanchonet environment respins for testing new cardano-node pre-release Conway era functionality\\n* Stabilization of cardano-explorer in cardano-world using high IOPS bare metal machines\\n* Creation of a nix content addressed packages repository, [capkgs](https://github.com/input-output-hk/capkgs):\\n * To provide lightweight release binaries thereby avoiding sluggish nix flakes and devShells\\n* Creation of a cardano performance benchmarking cluster, [cardano-perf](https://github.com/input-output-hk/cardano-perf):\\n * To replace legacy cluster benchmark tooling\\n* Creation of a cardano cluster composition repository, [cardano-parts](https://github.com/input-output-hk/cardano-parts):\\n * For enabling multi-cluster, multi-role cardano network deployments\\n* Creation of a cardano testnets repository, [cardano-playground](https://github.com/input-output-hk/cardano-playground):\\n * Utilizing cardano-parts for testnet deployments\\n* Creation of a sanchonet demo repository, [sanchonet-demo](https://github.com/input-output-hk/sanchonet-demo):\\n * Utilizing cardano-parts for fast sanchonet test environment and demo purposes\\n\\n### Next steps\\n\\n* Continue with migration of cardano-world testnets to cardano-playground\\n* Proceed with spinup of mainnet p2p bootstrap cluster\\n* Scale down mainnet non-p2p legacy cluster at the appropriate time"},{"id":"2023-Q4-consensus","metadata":{"permalink":"/quarterly/2023-Q4-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q4-consensus.md","source":"@site/quarterly/2023-Q4-consensus.md","title":"Consensus Q4 2023 Update","description":"Areas of focus","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"consensus","permalink":"/quarterly/tags/consensus"}],"readingTime":2.66,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Q4 2023 Update","slug":"2023-Q4-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Q3 2023 Update","permalink":"/quarterly/2023-Q3-sre"},"nextItem":{"title":"Performance & Tracing Q4 2023 Update","permalink":"/quarterly/2023-Q4-performance-and-tracing"}},"content":"## Areas of focus\\n\\n| Issue | Status |\\n|-----------------------------------------------------------------------|---------|\\n| [Implement legacy mode for UTxO-HD to keep baseline performance][429] | \u2705 Done |\\n| [Assist mainnet node release with initial Conway capabilities][423] | \u2705 Done |\\n| [Assist with test, benchmark, and improvements to CIP 1694][424] | \u2705 Done |\\n| [Assist with P2P IOG relay network shut down][414] | \u2705 Done |\\n| [Assist with repo transfer to Intersect][425] | \u2705 Done |\\n| [Support vendors to deliver contracts][427] | \u2705 Done |\\n| [Operation serenity Q4 2023][415] | \u2705 Done |\\n\\n\\n## Highlights\\n\\n### Implement legacy mode for UTxO-HD to keep baseline performance\\n\\n- \u2705 We managed to run a UTxO-HD capable node in legacy mode, maintaining the baseline memory usage while keeping all the ledger state in memory.\\n - While the legacy mode is not production-ready (it requires further integration and testing), it remains as a plan B should the need arise to release UTxO-HD if our stakeholders so demand it.\\n- \u2705 We pivoted to redesigning the Ledger DB API because:\\n - This is needed for integrating the LSM-tree backend.\\n\\t- The redesign opened the possibility of implementing an in-memory backend that would keep the same performance and resource requirements as the baseline version (which needs to be confirmed by benchmarks).\\n- \u2705 We created a more general Ledger DB API.\\n- \ud83d\udee0\ufe0f We are integrating (into the feature branch) the existing Ledger DB implementations with the new API.\\n- \ud83d\udee0\ufe0f We are implementing the new in-memory backend.\\n\\n### Assist mainnet node release with initial Conway capabilities, test, benchmark, and improvements to CIP 1694\\n\\n- \u2705 We recognized that Conway introduces a new challenge in the versioning of NTC queries, and we resolved it (see [864][864] and [4770][4770]).\\n\\n### Assist with P2P IOG relay network shut down\\n\\n- \u2705 We created a prototype for the pre-Genesis State Machine for bootstrap peers, which is currently under test (see [this PR][808]).\\n\\n### Assist with repo transfer to Intersect\\n\\n- \u2705 We transferred the `ouroboros-consensus` repository to the Intersect GitHub organization.\\n\\n### Support vendors to deliver contracts\\n\\n- Genesis\\n - \u2705 Interacted with the Consensus team and addressed resulting feedback on past deliverables.\\n - \u2705 Finished implementation of the testing infrastructure of Genesis\\n - \u2705 Started to refine the Proof of Concept demo into an actual implementation of the core components of the Genesis design.\\n- \ud83d\udcbe LSM-tree implementation. Well Typed:\\n - \u2705 Finished the design of the public facing API.\\n - \u2705 Defined the LSM-tree database file-type formats.\\n - \u2705 Implemented property and model-based tests.\\n\\n### Operation serenity Q4 2023\\n\\n- \ud83c\udf89 We welcomed our newest team member @RenateEilers and assisted with her (ongoing) onboarding.\\n- \u2705 We implemented a simplification in the ChainSync mini-protocol that is also a step towards Ouroboros Chronos.\\n- \u2705 We added tests to check Consensus emits valid CBOR, which prevents the generation of invalid binary encoding.\\n- \u2705 We established and implemented an interface between Consensus tooling and P&T tooling, which constitutes a step towards incorporating component level benchmarks in our development process.\\n\\n[429]: https://github.com/IntersectMBO/ouroboros-consensus/issues/429\\n[423]: https://github.com/IntersectMBO/ouroboros-consensus/issues/423\\n[424]: https://github.com/IntersectMBO/ouroboros-consensus/issues/424\\n[414]: https://github.com/IntersectMBO/ouroboros-consensus/issues/414\\n[425]: https://github.com/IntersectMBO/ouroboros-consensus/issues/425\\n[427]: https://github.com/IntersectMBO/ouroboros-consensus/issues/427\\n[415]: https://github.com/IntersectMBO/ouroboros-consensus/issues/415\\n[864]: https://github.com/IntersectMBO/ouroboros-consensus/issues/864\\n[4770]: https://github.com/IntersectMBO/ouroboros-network/issues/4770\\n[808]: https://github.com/IntersectMBO/ouroboros-consensus/pull/808"},{"id":"2023-Q4-performance-and-tracing","metadata":{"permalink":"/quarterly/2023-Q4-performance-and-tracing","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q4-performance-and-tracing.md","source":"@site/quarterly/2023-Q4-performance-and-tracing.md","title":"Performance & Tracing Q4 2023 Update","description":"2023-10 - 2024-01","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"performance-tracing","permalink":"/quarterly/tags/performance-tracing"}],"readingTime":2.28,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Performance & Tracing Q4 2023 Update","slug":"2023-Q4-performance-and-tracing","authors":"mgmeier","tags":["performance-tracing"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Q4 2023 Update","permalink":"/quarterly/2023-Q4-consensus"},"nextItem":{"title":"SRE Q4 2023 Update","permalink":"/quarterly/2023-Q4-sre"}},"content":"## 2023-10 - 2024-01\\n\\n### Main achievements\\n\\n* Release benchmarking, leading up to next mainnet release\\n* Conway benchmarking of existing Babbage workloads\\n* P2P benchmarks, validating viability as default topology\\n* Added basic `PlutusV3` capability of our tooling\\n* Publication of benchmarking reports accompanying a mainnet release\\n* GHC9 performance investigation\\n* Finalized and validated all optimizations for the new tracing system\\n* New Nomad benchmarking cluster: production use\\n* Adjustment of our infrastructure to cover the migration to _IntersectMBO_\\n* Conensus QTAs: prototype developed into alpha-stage benchmark\\n* Successful on-boarding of a new team member\\n\\n#### Release benchmarking\\n\\nWe\'ve performed and analyzed benchmarks for node versions `8.6.x` to `8.7.3`, which is projected to be the next mainnet release, throughout Q4. \\nAlong that way, we have identified, located and handled all performance blockers. \\n\\nAdditionally, we\'ve started publishing benchmarking reports here on Cardano Updates. The format is meant to increase transparency and\\nprovide insight into those measurements that accompany mainnet releases - demonstrating the absence of performance regressions and development\\nof specific metrics over time.\\n\\n#### Conway benchmarks\\n\\nFurthermore, we\'ve done first ever benchmarking of the Conway ledger. To that end, we\'ve ported our Babbage workloads to Conway for\\nimmediate comparability. Fortunately, we\'ve have not found any performance regression in the Conway ledger.\\n\\n#### P2P benchmarks\\n\\nIn Q4, we\'ve validated P2P topology to be viable as default for both relay and block producer nodes. As a consequence, we\'ve switched\\nto P2P topology for benchmarking baselines ourselves.\\n\\n#### GHC9 performance\\n\\nIn Q4, evaluation of GHC9.2\'s and GHC9.6\'s optimizer in the context of the Cardano code base has been completed. \\nEventually, GHC9.6 has shown itself to be much more suitable from a performance perspective. We\'re convinced that\\nwith a few select annotations in the code, GHC9.6\'s optimizer can produce a result on par performance-wise with GHC8.10 - \\nwhich just was a great release in that regard. With GHC9.2 unfortunately, the changes would have to be more invasive - and thus more time-consuming.\\n\\n#### New nomad cluster\\n\\nWe\u2019ve moved the new Nomad cluster into production use and established new baselines for each workload on it. \\nAdditionally, we\u2019ve shut down the legacy `cardano-ops` benchmarking cluster, and archived all raw data from it.\\n\\n#### Consensus component QTAs\\n\\nWe\u2019ve developed the existing prototype into an automatable, self-contained benchmark called `beacon`, as well as systematized workloads and run structure for it.\\nMoreover, we\u2019ve demonstrated usefulness of the metrics, their reproducibility, and identified domains viable for QTAs with system-level benchmarks.\\n\\n#### New team member\\n\\nWe\'re happy to welcome a new joiner to our team! We\'ve successfully onboarded him in Q4; he has taken\\nover the `cardano-tracer` service - the node-external component of the new tracing system - and has already\\nlanded several valuable contributions."},{"id":"2023-Q4-sre","metadata":{"permalink":"/quarterly/2023-Q4-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q4-sre.md","source":"@site/quarterly/2023-Q4-sre.md","title":"SRE Q4 2023 Update","description":"2023-10 - 2023-12","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"sre","permalink":"/quarterly/tags/sre"}],"readingTime":0.915,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Q4 2023 Update","slug":"2023-Q4-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"Performance & Tracing Q4 2023 Update","permalink":"/quarterly/2023-Q4-performance-and-tracing"},"nextItem":{"title":"SRE Q1 2024 Update","permalink":"/quarterly/2024-Q1-sre"}},"content":"## 2023-10 - 2023-12\\n\\n### Main achievements\\n\\nIn addition to ongoing general maintenance and support of cardano environments,\\nmain SRE achievements for this quarter include:\\n\\n* Cardano-parts support was added for cardano-db-sync, cardano-smash,\\n cardano-faucet, cardano-metadata, grafana monitoring along with a number of\\n other features\\n\\n* Completed migration of testnets from cardano-world to the cardano-playground cluster\\n\\n* Completed migration of the cardano book from cardano-world to the cardano-playground\\n cluster\\n\\n* Completed migration of pools from cardano-ops to the cardano-mainnet cluster\\n\\n* Creation of a mainnet p2p bootstrap cluster\\n\\n* Cardano sanchonet environment respins during the quarter for testing new\\n cardano-node pre-release Conway era functionality\\n\\n* All environments were upgraded to cardano-node 8.7.2 or 8.7.3 by the end of\\n the quarter\\n\\n* Completion of a govtool backend deployment for Voltaire chain testing\\n\\n* Creation of a cardano-monitoring repository,\\n [cardano-monitoring](https://github.com/input-output-hk/cardano-monitoring):\\n\\n * A new repository enabling agile deployment of EC2 monitoring servers,\\n compatible with OpenTofu grafana and mimir providers\\n\\n### Next steps\\n\\n* Scale down the mainnet non-p2p legacy cluster\\n\\n* Add deployment support for new network services, such as Mithril\\n\\n* Continue cardano-parts and operations improvements"},{"id":"2024-Q1-sre","metadata":{"permalink":"/quarterly/2024-Q1-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2024-Q1-sre.md","source":"@site/quarterly/2024-Q1-sre.md","title":"SRE Q1 2024 Update","description":"2024-01 - 2024-03","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"sre","permalink":"/quarterly/tags/sre"}],"readingTime":1.97,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Q1 2024 Update","slug":"2024-Q1-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Q4 2023 Update","permalink":"/quarterly/2023-Q4-sre"},"nextItem":{"title":"SRE Q2 2024 Update","permalink":"/quarterly/2024-Q2-sre"}},"content":"## 2024-01 - 2024-03\\n\\n### Main achievements\\n\\nIn addition to ongoing general maintenance and support of cardano environments,\\nmain SRE achievements for this quarter include:\\n\\n* All cardano release environments, including preview, preprod, mainnet legacy\\n and mainnet new clusters were upgraded through cardano-node releases of\\n 8.7.3, 8.9.0 and finally into 8.9.1 by the end of March\\n\\n* All cardano pre-release environments, including sanchonet, private chain, and\\n shelley-qa clusters were upgraded through cardano-node releases of 8.7.3,\\n 8.8.0-pre, 8.8.1-pre, 8.9.0 and finally into 8.9.1 by the end of March\\n\\n* Sanchonet and private chain environments were both re-spun once each during\\n this quarter to support new pre-release versions of cardano-node in the Conway era\\n\\n* Cardano-parts added a cardano-db-sync process-compose stack for each\\n environment\\n\\n* Cardano-parts added a cardano-node process-compose stack for each environment\\n\\n* Cardano-parts added enhancements for topology related nixos modules and\\n functions to accomodate new bootstrapPeer functionality, new topology\\n attributes and increased complexity network deployments.\\n\\n* Cardano-parts added support for mithril signers integrated with block\\n producers and a mithril-signer-verifier service for monitoring\\n\\n* Sanchonet, preview, preprod and mainnet IOG block producers are now signing\\n mithril certificates\\n\\n* Cardano-parts added support for mithril clients in nixos cardano-node systemd\\n service, process-compose job stacks and nix cardano-node entrypoint, all of\\n which also require any mithril snapshot to be signed by a trusted IOG pool\\n prior to use\\n\\n* Cardano-parts added ip integration tooling, so that similar to other deployer\\n tools like nixops, nixosConfigurations possess ip information which can be\\n used in module configuration\\n\\n* Cardano-db-sync snapshots server migration from legacy mainnet cluster to new\\n mainnet cluster with a rewrite of the snapshot service was completed\\n\\n* Cardano metadata server migration to Cardano Foundation was completed\\n\\n* BlockPerf, a cardano-node performance monitoring tool, was integrated into the\\n new mainnet cluster relays\\n\\n* Cardano-node bootstrapPeer functionality was added with node 8.9.x, requiring\\n effort to align nixos service module code between cardano-node nixos\\n services, iohk-nix topology generation, cardano-ops legacy code, and\\n cardano-parts module compatibility as well as feature test under various edge\\n cases\\n\\n* Cardano-playground added govtool backend support for private chain voltaire\\n testing team\\n\\n### Next steps\\n\\n* Add support for the new cardano-node metrics system\\n\\n* Add IPv6 cardano-parts support\\n\\n* Extend govtool frontend and backend to a process-compose stack\\n\\n* Adapt network spin-up tooling for the new create-testnet-data cardano-cli command\\n\\n* Continue cardano-parts and operations improvements"},{"id":"2024-Q2-sre","metadata":{"permalink":"/quarterly/2024-Q2-sre","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2024-Q2-sre.md","source":"@site/quarterly/2024-Q2-sre.md","title":"SRE Q2 2024 Update","description":"2024-04 - 2024-06","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"sre","permalink":"/quarterly/tags/sre"}],"readingTime":1.355,"hasTruncateMarker":false,"authors":[{"name":"John Lotoski","title":"Service Reliability Engineer","url":"https://github.com/johnalotoski","imageURL":"https://github.com/johnalotoski.png","key":"johnalotoski"}],"frontMatter":{"title":"SRE Q2 2024 Update","slug":"2024-Q2-sre","authors":"johnalotoski","tags":["sre"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Q1 2024 Update","permalink":"/quarterly/2024-Q1-sre"},"nextItem":{"title":"Consensus Quarterly Update","permalink":"/quarterly/2023-04-25-consensus"}},"content":"## 2024-04 - 2024-06\\n\\n### Main achievements\\n\\nIn addition to ongoing general maintenance and support of cardano environments,\\nmain SRE achievements for this quarter include:\\n\\n* All cardano release environments, including preview, preprod, mainnet legacy\\n and mainnet new clusters were upgraded through various cardano-node releases of\\n `8.9.2`, `8.9.3`, `8.9.4`, `8.12.1`, and finally into `8.12.2` by the end of\\n June\\n\\n* Cardano pre-release environments additionally iterated through pre-release\\n upgrades of `8.11.0-pre`, `8.12.0-pre`, and finally into `8.12.2` by the end\\n of June with the exception of sanchonet which remains pinned at `8.11.0-pre`\\n until the next respin to support node version `9.0.0` or greater\\n\\n* Sanchonet environment was re-spun two times for pre-release Conway testing of\\n cardano-node versions `8.10.0-pre` and `8.11.0-pre` respectively\\n\\n* Private chain environment was re-spun three times to support fast epoch\\n Conway testing\\n\\n* Cardano-playground and cardano-mainnet repos have added ten operations\\n oriented documents for knowledge transfer\\n\\n* Block producers which participate in mithril signing will now produce metrics\\n and can have them scraped with the default metrics agent\\n\\n* A cluster spin-up job to utilize the new cardano-cli `create-testnet-data`\\n sub-command was created\\n\\n* A nixosModule, dashboards and alerts were added supporting the new cardano\\n tracing system\\n\\n* Many new operations scripts and features were added, including a template\\n diff and patch recipe to pull the latest cardano-parts improvements to\\n consuming repositories more easily\\n\\n### Next steps\\n\\n* Finalize support for the new cardano-node tracing system once the service is\\n rewritten for general consumption\\n\\n* Add IPv6 cardano-parts support\\n\\n* Extend govtool frontend and backend to a process-compose stack once govtool\\n is publicly buildable again\\n\\n* Continue cardano-parts and operations improvements"},{"id":"2023-04-25-consensus","metadata":{"permalink":"/quarterly/2023-04-25-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-04-25-consensus.md","source":"@site/quarterly/2023-04-25-consensus.md","title":"Consensus Quarterly Update","description":"Consensus Quarterly Update","date":"2023-04-25T00:00:00.000Z","formattedDate":"April 25, 2023","tags":[{"label":"consensus","permalink":"/quarterly/tags/consensus"}],"readingTime":2.3,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Quarterly Update","slug":"2023-04-25-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"SRE Q2 2024 Update","permalink":"/quarterly/2024-Q2-sre"},"nextItem":{"title":"Network Q1 2023 Update","permalink":"/quarterly/2023-04-04-network"}},"content":"## Consensus Quarterly Update\\n## 2023-01 - 2023-03\\n\\n### Main achievements\\n\\n#### UTxO HD\\n\\n- We finished the testing activities for the prototype, which involved adding\\n new tests, and fixing and enabling temporarily disabled tests.\\n- We spent a substantial amount of effort refactoring and cleaning the\\n prototype.\\n- We audited the UTxO HD prototype to make sure it can accommodate the migration\\n of other tables (eg stake-keys registration) from memory to disk. The result\\n of the audit was positive.\\n- We ran ad-hoc benchmarks for reading keys and flushing values to disk. No\\n unexpected costs found.\\n- We ran the first system level benchmarks. The performance regressions reported\\n were due to an unrealistic snapshotting rate. We need to re-run them again\\n after we design a more fine grained locking mechanism.\\n\\n#### Genesis\\n\\n- We elaborated a roadmap of the remaining work for Genesis.\\n- We presented the design to the IOG Researchers and PNSol on February 20. The\\n design was well received. We updated the Genesis design with the researcher\'s\\n feedback.\\n - We plugged the new DoS vector identified during the aforementioned\\n presentation.\\n- We developed a generator for adversarial leader schedules that satisfy key\\n Ouroboros properties, which will be used to test the Genesis design.\\n - The generator enables use of smaller Ouroboros parameters, which makes\\n extrema more likely and counterxamples easier interpret.\\n- We wrote up the latest design iteration.\\n- We continued benchmarking the Chain Sync Jumping prototype. In particular:\\n - We debugged the prototype\'s performance regression, and unmasked the\\n actual cause by patching our initial theory (bad queuing behavior)\\n - We identified and validated the actual cause (a pathological case in\\n BlockFetch tiebreaker).\\n\\n#### Support\\n\\n- We created two new tools. One for dumping CBOR encoded blocks to JSON. Ahother\\n to serve a local immutable DB.\\n\\n#### Conway era\\n\\n- We integrated the Conway era into consensus.\\n\\n#### Technical debt\\n\\n- We fixed a bug with followers, which was discovered by property tests.\\n- We developed a DSL for specifying and running ChainDB test cases.\\n- We fixed failing tests with iterators.\\n- We created micro-benchmarks for adding transactions to the mempool.\\n\\n#### Fostering collaboration\\n\\n- We released a new technical documentation site for consensus.\\n- We factored out several packages to external repositories. Some of this work\\n originated in the UTxO HD workstream.\\n\\n### Next steps\\n\\n#### UTxO HD\\n\\n- https://github.com/input-output-hk/ouroboros-consensus/issues/28\\n\\n#### Genesis\\n\\n- https://github.com/input-output-hk/ouroboros-consensus/issues/33\\n- https://github.com/input-output-hk/ouroboros-consensus/issues/32\\n- https://github.com/input-output-hk/ouroboros-consensus/issues/31\\n\\n#### Support\\n\\n- Design Consensus side of hardfork-enactment in the Voltaire phase\\n ([#4180](https://github.com/input-output-hk/ouroboros-network/issues/4180)).\\n- Estimate the number of file descriptors Consensus needs\\n [#20](https://github.com/input-output-hk/ouroboros-consensus/issues/20).\\n\\n#### Tech debt\\n\\n- Identify Quantitative Timeliness Agreements (QTAs) metrics that we can define\\n for consensus. Pick one and implement benchmarks for it.\\n\\n#### Fostering collaboration\\n\\n- Onboard a new team member."},{"id":"2023-04-04-network","metadata":{"permalink":"/quarterly/2023-04-04-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-04-04-network.md","source":"@site/quarterly/2023-04-04-network.md","title":"Network Q1 2023 Update","description":"2023-01 - 2023-03","date":"2023-04-04T00:00:00.000Z","formattedDate":"April 4, 2023","tags":[{"label":"network","permalink":"/quarterly/tags/network"}],"readingTime":2.62,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Q1 2023 Update","slug":"2023-04-04-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Quarterly Update","permalink":"/quarterly/2023-04-25-consensus"},"nextItem":{"title":"Ledger Team Update","permalink":"/quarterly/2023-04-03-ledger"}},"content":"## 2023-01 - 2023-03\\n\\n### Main achievements\\n\\n#### Gradual dynamic P2P release on mainnet\\n\\nWe released two version of `cardano-node` with dynamic P2P capabilities:\\n\\n* [`1.35.6`][cardano-node-1.35.6]\\n - we found and fixed a bug in exception handling in `peer-state-actions`\\n [pull-4357]\\n - we found and fixed a busy loop when demoting a peer from hot to warm [pull-4385] \\n* [`1.35.7`][cardano-node-1.35.7]\\n - includes interoperability in the legacy non-p2p network stack [pull-4467]\\n* we fixed a busy loop of demotion & promotions: `warm -> hot -> warm`\\n [pull-4485] /it will be included in `cardano-node-8.0.0` release/.\\n\\nCurrently there are more than 200 P2P relays on mainnet.\\n\\n#### Peer Sharing\\n\\nWe implemented /peer sharing/ [pull-4019] which will be available as an\\nexperimental feature in one of the future `cardano-node` releases.\\n\\nWe implemented /light peer sharing/, e.g. adding inbound connections to the set\\nof known peers of the outbound governor, which allows to bootstrap relays not\\nregistered on chain. This complements peer sharing. The [pull-4277] is in\\nlate review stages.\\n\\n#### Eclipse Evasion\\n\\nWe finalised design of eclipse evasion and we started implementing it. We\\nhave an initial implementation (not merged). We are in the process of extending\\nour test suite to cover new implementation details: [issue-3886], [pull-4462].\\n\\n#### Cardano Network Service Assurance\\n\\nGalois has been making progress on _Cardano Network Service Assurance_ project.\\n\\n* In cardano-node, they have developed a `datapoint` abstraction that creates\\n a queue of (existing) log events, they now have two such `datapoint`s (of log\\n events) implemented.\\n\\n* They have developed a `datapoint` client executable that can connect to a node\\n which serves the \\"new tracing\\".\\n\\n* They have been exploring approaches for the consolidation and analysis of\\n `datapoint` data to extract actionable network health status.\\n\\n#### Cardano-Node\\n\\n* We made it possible to configure accepted connections limit [pull-4902].\\n\\n#### Testing improvements\\n\\n* We fixed a bug in network simulation implementation of TCP simultaneous open [pull-4265].\\n\\n* We introduced header-body split in the diffusion simulation [pull-4419] (in review).\\n\\n* We introduced initiator only nodes in the diffusion simulation [pull-4280].\\n\\n* We fixed a connection-manager test failure [issue-4370].\\n\\n#### Technical Debt\\n\\n* We refactored `Snocket` interface decoupling it from the multiplexer\\n [pull-4260]. This simplified some aspects of the KES agent implementation.\\n\\n* We introduces a record for CBOR codecs which are used for various data\\n structures by mini-protocol codecs [pull-4430].\\n\\n#### Documentation\\n\\n* We explained some limitations of CDDL in our technical report [pull-4351].\\n\\n#### IO-Sim\\n\\n* We fixed implementation of `MVar`\'s [pull-70].\\n\\n#### NoThunks\\n\\n* We published a new version of [`nothunks`] library to Hackage.\\n\\n### Next steps\\n\\n* Finish implementation & testing of eclipse evasion [issue-3886].\\n* Optimise connectivity to peers behind firewall [issue-4381].\\n* Finish the work on enabling block production dynamically to allow using P2P\\n on block producers [issue-3159].\\n* If time permits we would like also to reserve some time for finishing\\n publication of `io-sim` to Hackage.\\n\\n\\n[cardano-node-1.35.6]: https://github.com/input-output-hk/cardano-node/releases/tag/1.35.6\\n[cardano-node-1.35.7]: https://github.com/input-output-hk/cardano-node/releases/tag/1.35.7\\n\\n[pull-4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[pull-4277]: https://github.com/input-output-hk/ouroboros-network/pull/4277\\n[pull-4260]: https://github.com/input-output-hk/ouroboros-network/pull/4260\\n[pull-4265]: https://github.com/input-output-hk/ouroboros-network/pull/4265\\n[pull-4280]: https://github.com/input-output-hk/ouroboros-network/pull/4280\\n[pull-4351]: https://github.com/input-output-hk/ouroboros-network/pull/4351\\n[pull-4357]: https://github.com/input-output-hk/ouroboros-network/pull/4357\\n[pull-4385]: https://github.com/input-output-hk/ouroboros-network/pull/4385\\n[pull-4430]: https://github.com/input-output-hk/outoboros-network/pull/4430\\n[pull-4460]: https://github.com/input-output-hk/outoboros-network/pull/4460\\n[pull-4462]: https://github.com/input-output-hk/outoboros-network/pull/4462\\n[pull-4465]: https://github.com/input-output-hk/outoboros-network/pull/4465\\n[pull-4467]: https://github.com/input-output-hk/outoboros-network/pull/4467\\n[pull-4419]: https://github.com/input-output-hk/outoboros-network/pull/4419\\n\\n[pull-4902]: https://github.com/input-output-hk/cardano-node/pull/4902\\n\\n[issue-3159]: https://github.com/input-output-hk/ouroboros-network/issues/3159\\n[issue-3886]: https://github.com/input-output-hk/ouroboros-network/issues/3886\\n[issue-4370]: https://github.com/input-output-hk/ouroboros-network/issues/4370\\n[issue-4381]: https://github.com/input-output-hk/ouroboros-network/issues/4381\\n\\n[pull-70]: https://github.com/input-output-hk/io-sim/pull/70\\n\\n[`nothunks`]: https://hackage.haskell.org/package/nothunks"},{"id":"2023-04-03-ledger","metadata":{"permalink":"/quarterly/2023-04-03-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-04-03-ledger.md","source":"@site/quarterly/2023-04-03-ledger.md","title":"Ledger Team Update","description":"Ledger Quarterly Update","date":"2023-04-03T00:00:00.000Z","formattedDate":"April 3, 2023","tags":[{"label":"ledger","permalink":"/quarterly/tags/ledger"}],"readingTime":6.405,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2023-04-03-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Network Q1 2023 Update","permalink":"/quarterly/2023-04-04-network"},"nextItem":{"title":"Consensus Quarterly Update","permalink":"/quarterly/2023-01-18-consensus"}},"content":"## Ledger Quarterly Update\\n## 2023-01 - 2023-03\\n\\n### Main achievements\\n\\n#### CIPs\\n\\n* **Entering the Voltaire phase** -\\n CIP-1694 received a major update after participation in the design has expanded to\\n more and more people, including those who attended the Colorado workshop.\\n See [CIP-1694](https://github.com/cardano-foundation/CIPs/pull/380).\\n* **Ledger CIP category** -\\n The ledger team continues to embrace the CIP process, and has begun the process of\\n registering the ledger as an official CIP category.\\n See [CIP-84](https://github.com/cardano-foundation/CIPs/pull/456).\\n* **Ledger serialization** -\\n A CIP for the ledger serialization deprecation cycle has been accepted.\\n See [CIP-80](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0080).\\n\\n#### Formal ledger model\\n\\nOur new formal specifications backed by Agda have seen a lot of progress.\\nThe majority of the ideas in CIP-1694 are now present, and we have made enough progress\\nthat we can now safely say that the PDF produced by the Agda model will be the\\nofficial ledger specification for the Conway ledger era.\\nSee [the repository](https://github.com/input-output-hk/formal-ledger-specifications).\\n\\n\\n#### Conway ledger era\\n\\nProgress on the Haskell implementation of CIP-1694 has gone hand in hand with the formal model.\\nThe major component still missing is the DRep stake distribution, which still presents some\\ntechnical challenges.\\n\\n[[pull-3176]]\\n[[pull-3216]]\\n[[pull-3226]]\\n[[pull-3291]]\\n[[pull-3326]]\\n[[pull-3330]]\\n[[pull-3339]]\\n\\n#### DRep stake distribution computation\\n\\nAdding another large stake distribution to the ledger state must proceed with caution.\\nWe do not want the memory used by the node to increase too much,\\nand performance problems can lead to reduced block production.\\nWe have prototyped, tested, and benchmarked several approaches that could give us\\nthe current DRep stake distribution at each epoch boundary.\\nThis has very important implications, since we want every ADA holder to be able to at any\\ntime (such as during a contentious vote) register themselves as a DRep and still have time\\nto vote themselves on the issue.\\n\\n[[pull-3344]]\\n[[pull-3353]]\\n[[pull-3364]]\\n\\n#### Integration work\\n\\nThe ledger has made some wonderful improvements over the past six months,\\nbut which entail a significant amount of integration efforts:\\n\\n* Our new versioned CBOR schemes\\n* Individual deposit tracking\\n* An improved cross-era interface utilizing lenses\\n* A new ledger API\\n* Re-arranging the ledger stake in preparation for CIP-1694\\n* Versioning our Haskell packages\\n using [CHaPs](https://github.com/input-output-hk/cardano-haskell-packages).\\n* Consistent conventions for variable names\\n\\n\\n[[pull-3279]]\\n[[pull-3282]]\\n[[pull-3288]]\\n[[pull-3289]]\\n[[pull-3292]]\\n[[pull-3297]]\\n[[pull-3298]]\\n[[pull-3299]]\\n[[pull-3300]]\\n[[pull-3302]]\\n[[pull-3303]]\\n[[pull-3308]]\\n[[pull-3342]]\\n[[pull-3345]]\\n[[pull-3356]]\\n[[pull-3357]]\\n[[pull-3360]]\\n[[pull-3361]]\\n[[pull-3363]]\\n[[pull-4349]]\\n[[pull-378]]\\n[[pull-376]]\\n[[pull-373]]\\n[[pull-370]]\\n[[pull-361]]\\n[[pull-4976]]\\n[[pull-5013]]\\n\\n#### Deposit tracking\\n\\nIndividual deposits (for stake credential and stake pool registrations) were not tracked by the ledger.\\nDeposits were returned according to the current protocol parameters.\\nWhen the values of these two protocol parameters change, the deposit pot\\nis adjusted by adding to, or removing from, the reserves.\\n\\nThis has several problems:\\n* Most people expect a deposit to be paid back exactly.\\n* We cannot increase the deposit amount once the reserves hits zero.\\n* If it becomes known that the deposit amount is going to be increased, free Lovelace can be earned by registering credentials.\\n* Because of the problems above, it is going to be incredibly hard to ever change the values.\\n* There is a serious issue involving hard forks.\\n The consensus layer makes the decision about whether or not to enact a hard fork based on\\n the protocol parameter update state two stability windows before the end of the epoch.\\n However, the ledger will reject a protocol parameter update on the epoch boundary\\n if the deposit pot adjustments cannot be reconciled with the reseve pot.\\n This means that if quorum is met regarding changing the major protocol version,\\n but the update is rejected on the epoch boundary, consensus will change the era but the\\n ledger will not change the major protocol version, leaving the ledger in a split-brain state.\\n\\nBecause we never actually changed the values of the two deposits amounts in the protocol parameters\\non mainnet, we were able to retroactively change the behavior.\\nWe made the following changes:\\n * Individual deposits are tracked in the `DState`.\\n * The amount deposited is always returned.\\n\\n[[pull-3195]]\\n[[pull-3202]]\\n[[pull-3217]]\\n\\n#### New ledger API\\n\\nWe have significantly built up the ledger API.\\nWe will eventually replace much of the `cardano-api` in the node repository with this ledger API.\\n\\n[[pull-3242]]\\n[[pull-3248]]\\n[[pull-3328]]\\n\\n#### Constraint-based generators\\n\\nOur largest scale property tests generate an initial ledger state and a long sequence of valid blocks\\nwhich span several epochs, mimicking a real network.\\nThese tests are, in theory, excellent for checking properties.\\nThey are, however, very difficult to maintain and are not as random as we would like\\n(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).\\n\\nWe have a new declaritive infrastructure for building constraint-based generators,\\nwhich instead generate a random ledger state representative of not just an initial state,\\nbut also those representative of the end result of a long sequence of valid blocks.\\nMoreover, these generators are very fast and are much more random than our old generators.\\nBefore we can start using them for our existing property tests, however, we still need to\\nexpand them to generate a valid block for a given ledger state.\\n\\n[[pull-3219]]\\n\\n#### Technical debt\\n\\nWe continued to address technical debt as much as we can.\\n\\n[[pull-3167]]\\n[[pull-3170]]\\n[[pull-3172]]\\n[[pull-3175]]\\n[[pull-3184]]\\n[[pull-3205]]\\n[[pull-3208]]\\n[[pull-3210]]\\n[[pull-3212]]\\n[[pull-3218]]\\n[[pull-3222]]\\n[[pull-3223]]\\n[[pull-3224]]\\n[[pull-3225]]\\n[[pull-3229]]\\n[[pull-3239]]\\n[[pull-3241]]\\n[[pull-3244]]\\n[[pull-3245]]\\n[[pull-3249]]\\n[[pull-3260]]\\n[[pull-3263]]\\n[[pull-3264]]\\n[[pull-3268]]\\n[[pull-3269]]\\n[[pull-3270]]\\n[[pull-3274]]\\n[[pull-3276]]\\n[[pull-3277]]\\n[[pull-3286]]\\n[[pull-3290]]\\n[[pull-3295]]\\n[[pull-3296]]\\n[[pull-3306]]\\n[[pull-3307]]\\n[[pull-3310]]\\n[[pull-3311]]\\n[[pull-3316]]\\n[[pull-3320]]\\n[[pull-3323]]\\n[[pull-3327]]\\n[[pull-3331]]\\n[[pull-3332]]\\n[[pull-3333]]\\n[[pull-3338]]\\n[[pull-3341]]\\n[[pull-3347]]\\n[[pull-3350]]\\n[[pull-3351]]\\n[[pull-3352]]\\n[[pull-3354]]\\n\\n##### Critical fixes\\n\\nWe fixed two critical issues:\\n* Growing block production delay on the epoch boundary: [[pull-3209]]\\n* Unexpected node shutdown from `balanceR`: [[pull-3343]]\\n\\n### Next steps\\n\\n* **Conway spec** -\\n Complete the first version of the conway formal specification.\\n* **DRep stake distribution** -\\n Have the ledger compute the DRep stake distribution with acceptible performance.\\n* **Devnet ready** -\\n Have the Haskell implementation of the conway era in sync with the formal specification,\\n and integrate the changes with consensus and node.\\n All the details might not be finalized, but the wire specification and the API should\\n be stable so that conway can be placed on a devnet for tool builders to start integrating with.\\n* **Plutus V3** -\\n Integrate Plutus V3 into the ledger, including a new script context which supports DReps.\\n\\n### More details\\n\\nThis quarterly report was based off of the following fortnightly ones:\\n\\n* [2023-01-05](2023-01-05-ledger)\\n* [2023-01-19](2023-01-19-ledger)\\n* [2023-02-02](2023-02-02-ledger)\\n* [2023-02-17](2023-02-17-ledger)\\n* [2023-03-03](2023-03-03-ledger)\\n* [2023-03-17](2023-03-17-ledger)\\n* [2023-03-31](2023-03-31-ledger)\\n\\n[pull-3167]: https://github.com/input-output-hk/cardano-ledger/pull/3167\\n[pull-3170]: https://github.com/input-output-hk/cardano-ledger/pull/3170\\n[pull-3172]: https://github.com/input-output-hk/cardano-ledger/pull/3172\\n[pull-3175]: https://github.com/input-output-hk/cardano-ledger/pull/3175\\n[pull-3176]: https://github.com/input-output-hk/cardano-ledger/pull/3176\\n[pull-3184]: https://github.com/input-output-hk/cardano-ledger/pull/3184\\n[pull-3195]: https://github.com/input-output-hk/cardano-ledger/pull/3195\\n[pull-3202]: https://github.com/input-output-hk/cardano-ledger/pull/3202\\n[pull-3205]: https://github.com/input-output-hk/cardano-ledger/pull/3205\\n[pull-3208]: https://github.com/input-output-hk/cardano-ledger/pull/3208\\n[pull-3209]: https://github.com/input-output-hk/cardano-ledger/pull/3209\\n[pull-3210]: https://github.com/input-output-hk/cardano-ledger/pull/3210\\n[pull-3212]: https://github.com/input-output-hk/cardano-ledger/pull/3212\\n[pull-3214]: https://github.com/input-output-hk/cardano-ledger/pull/3214\\n[pull-3215]: https://github.com/input-output-hk/cardano-ledger/pull/3215\\n[pull-3216]: https://github.com/input-output-hk/cardano-ledger/pull/3216\\n[pull-3217]: https://github.com/input-output-hk/cardano-ledger/pull/3217\\n[pull-3218]: https://github.com/input-output-hk/cardano-ledger/pull/3218\\n[pull-3219]: https://github.com/input-output-hk/cardano-ledger/pull/3219\\n[pull-3222]: https://github.com/input-output-hk/cardano-ledger/pull/3222\\n[pull-3223]: https://github.com/input-output-hk/cardano-ledger/pull/3223\\n[pull-3224]: https://github.com/input-output-hk/cardano-ledger/pull/3224\\n[pull-3225]: https://github.com/input-output-hk/cardano-ledger/pull/3225\\n[pull-3226]: https://github.com/input-output-hk/cardano-ledger/pull/3226\\n[pull-3229]: https://github.com/input-output-hk/cardano-ledger/pull/3229\\n[pull-3239]: https://github.com/input-output-hk/cardano-ledger/pull/3239\\n[pull-3241]: https://github.com/input-output-hk/cardano-ledger/pull/3241\\n[pull-3242]: https://github.com/input-output-hk/cardano-ledger/pull/3242\\n[pull-3244]: https://github.com/input-output-hk/cardano-ledger/pull/3244\\n[pull-3245]: https://github.com/input-output-hk/cardano-ledger/pull/3245\\n[pull-3248]: https://github.com/input-output-hk/cardano-ledger/pull/3248\\n[pull-3249]: https://github.com/input-output-hk/cardano-ledger/pull/3249\\n[pull-3260]: https://github.com/input-output-hk/cardano-ledger/pull/3260\\n[pull-3263]: https://github.com/input-output-hk/cardano-ledger/pull/3263\\n[pull-3264]: https://github.com/input-output-hk/cardano-ledger/pull/3264\\n[pull-3268]: https://github.com/input-output-hk/cardano-ledger/pull/3268\\n[pull-3269]: https://github.com/input-output-hk/cardano-ledger/pull/3269\\n[pull-3270]: https://github.com/input-output-hk/cardano-ledger/pull/3270\\n[pull-3274]: https://github.com/input-output-hk/cardano-ledger/pull/3274\\n[pull-3276]: https://github.com/input-output-hk/cardano-ledger/pull/3276\\n[pull-3277]: https://github.com/input-output-hk/cardano-ledger/pull/3277\\n[pull-3279]: https://github.com/input-output-hk/cardano-ledger/pull/3279\\n[pull-3282]: https://github.com/input-output-hk/cardano-ledger/pull/3282\\n[pull-3286]: https://github.com/input-output-hk/cardano-ledger/pull/3286\\n[pull-3288]: https://github.com/input-output-hk/cardano-ledger/pull/3288\\n[pull-3289]: https://github.com/input-output-hk/cardano-ledger/pull/3289\\n[pull-3290]: https://github.com/input-output-hk/cardano-ledger/pull/3290\\n[pull-3291]: https://github.com/input-output-hk/cardano-ledger/pull/3291\\n[pull-3292]: https://github.com/input-output-hk/cardano-ledger/pull/3292\\n[pull-3295]: https://github.com/input-output-hk/cardano-ledger/pull/3295\\n[pull-3296]: https://github.com/input-output-hk/cardano-ledger/pull/3296\\n[pull-3297]: https://github.com/input-output-hk/cardano-ledger/pull/3297\\n[pull-3298]: https://github.com/input-output-hk/cardano-ledger/pull/3298\\n[pull-3299]: https://github.com/input-output-hk/cardano-ledger/pull/3299\\n[pull-3300]: https://github.com/input-output-hk/cardano-ledger/pull/3300\\n[pull-3302]: https://github.com/input-output-hk/cardano-ledger/pull/3302\\n[pull-3303]: https://github.com/input-output-hk/cardano-ledger/pull/3303\\n[pull-3306]: https://github.com/input-output-hk/cardano-ledger/pull/3306\\n[pull-3307]: https://github.com/input-output-hk/cardano-ledger/pull/3307\\n[pull-3308]: https://github.com/input-output-hk/cardano-ledger/pull/3308\\n[pull-3310]: https://github.com/input-output-hk/cardano-ledger/pull/3310\\n[pull-3311]: https://github.com/input-output-hk/cardano-ledger/pull/3311\\n[pull-3316]: https://github.com/input-output-hk/cardano-ledger/pull/3316\\n[pull-3320]: https://github.com/input-output-hk/cardano-ledger/pull/3320\\n[pull-3323]: https://github.com/input-output-hk/cardano-ledger/pull/3323\\n[pull-3326]: https://github.com/input-output-hk/cardano-ledger/pull/3326\\n[pull-3327]: https://github.com/input-output-hk/cardano-ledger/pull/3327\\n[pull-3328]: https://github.com/input-output-hk/cardano-ledger/pull/3328\\n[pull-3330]: https://github.com/input-output-hk/cardano-ledger/pull/3330\\n[pull-3331]: https://github.com/input-output-hk/cardano-ledger/pull/3331\\n[pull-3332]: https://github.com/input-output-hk/cardano-ledger/pull/3332\\n[pull-3333]: https://github.com/input-output-hk/cardano-ledger/pull/3333\\n[pull-3338]: https://github.com/input-output-hk/cardano-ledger/pull/3338\\n[pull-3339]: https://github.com/input-output-hk/cardano-ledger/pull/3339\\n[pull-3341]: https://github.com/input-output-hk/cardano-ledger/pull/3341\\n[pull-3342]: https://github.com/input-output-hk/cardano-ledger/pull/3342\\n[pull-3343]: https://github.com/input-output-hk/cardano-ledger/pull/3343\\n[pull-3344]: https://github.com/input-output-hk/cardano-ledger/pull/3344\\n[pull-3345]: https://github.com/input-output-hk/cardano-ledger/pull/3345\\n[pull-3347]: https://github.com/input-output-hk/cardano-ledger/pull/3347\\n[pull-3350]: https://github.com/input-output-hk/cardano-ledger/pull/3350\\n[pull-3351]: https://github.com/input-output-hk/cardano-ledger/pull/3351\\n[pull-3352]: https://github.com/input-output-hk/cardano-ledger/pull/3352\\n[pull-3353]: https://github.com/input-output-hk/cardano-ledger/pull/3353\\n[pull-3354]: https://github.com/input-output-hk/cardano-ledger/pull/3354\\n[pull-3356]: https://github.com/input-output-hk/cardano-ledger/pull/3356\\n[pull-3357]: https://github.com/input-output-hk/cardano-ledger/pull/3357\\n[pull-3360]: https://github.com/input-output-hk/cardano-ledger/pull/3360\\n[pull-3361]: https://github.com/input-output-hk/cardano-ledger/pull/3361\\n[pull-3363]: https://github.com/input-output-hk/cardano-ledger/pull/3363\\n[pull-3364]: https://github.com/input-output-hk/cardano-ledger/pull/3364\\n\\n[pull-4349]: https://github.com/input-output-hk/ouroboros-network/pull/4349\\n\\n[pull-378]: https://github.com/input-output-hk/cardano-base/pull/378\\n[pull-376]: https://github.com/input-output-hk/cardano-base/pull/376\\n[pull-373]: https://github.com/input-output-hk/cardano-base/pull/373\\n[pull-370]: https://github.com/input-output-hk/cardano-base/pull/370\\n[pull-361]: https://github.com/input-output-hk/cardano-base/pull/361\\n\\n[pull-4976]: https://github.com/input-output-hk/cardano-node/pull/4976\\n[pull-5013]: https://github.com/input-output-hk/cardano-node/pull/5013"},{"id":"2023-01-18-consensus","metadata":{"permalink":"/quarterly/2023-01-18-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-01-18-consensus.md","source":"@site/quarterly/2023-01-18-consensus.md","title":"Consensus Quarterly Update","description":"Consensus Quarterly Update","date":"2023-01-18T00:00:00.000Z","formattedDate":"January 18, 2023","tags":[{"label":"consensus","permalink":"/quarterly/tags/consensus"}],"readingTime":3.205,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Quarterly Update","slug":"2023-01-18-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/quarterly/2023-04-03-ledger"},"nextItem":{"title":"Network Quarterly Update","permalink":"/quarterly/2023-01-13-network"}},"content":"## Consensus Quarterly Update\\n## 2022-12 - 2023-01\\n\\n### Main achievements\\n\\n#### UTxO HD\\n\\nThe prototype is feature complete and thoroughly tested at the consensus level.\\nIn particular, we invested a lot of time in writing property-test for the\\nmempool, and other crucial new parts of the prototype. Now we are ready to run\\nintegration tests and system-level benchmarks.\\n\\n#### Genesis\\n\\nWe identified and fixed a slowdown in cross-era forecasting that was inhibiting\\nour efforts to benchmark the ChainSync Jumping prototype. This resulted in a 7%\\nspeedup in full sync times in the baseline.\\n\\nWe also started prototyping a self-contained implementation of the Genesis\\ndynamics (in particular of the parts intentionally not part of the ChainSync\\nJumping prototype) that furthered our understanding of subtleties and edge\\ncases.\\n\\n#### Support\\n\\n- We worked on designing integration of new VRF and KES crypto into consensus.\\n - `Crypto` class was split into two parts: `Crypto` and `HeaderCrypto`.\\n - With the Ledger team\'s help, we refactored `cardano-ledger` to use a proxy\\n type for VRF.\\n\\n#### Conway era\\n\\n- PR went through its second review round. It is about to be merged, but it got\\n delayed due to people\'s availability during Christmas break.\\n\\n#### Technical debt\\n\\n- We improved the capabilities of our `io-sim` library, which is key for testing\\n and simulating Cardano components.\\n- We removed thunks from epoch translations in the ledger, which is important\\n for reducing memory consumption of the Cardano node.\\n\\n#### Fostering collaboration\\n\\n- We added a tutorial on how to instantiate the Consensus layer to run custom\\n ledgers. This should be a valuable resource to people looking to roll their\\n own custom blockchain (either for commercial or research purposes).\\n- We added an overview of consensus to the [top level\\n documentation](https://ouroboros-network.cardano.intersectmbo.org/) of\\n ouroboros-network. This overview describes the consensus components and adds a\\n hyperlinked map to the modules documentation.\\n\\n### Next steps\\n\\n#### UTxO HD\\n\\n- Evaluate the extensibility of the prototype. Moving the UTxO to disk is only\\n the first step towards reducing the memory requirements of Cardano node, and\\n ensuring its long term sustainability. In the future, we plan on moving other\\n large maps, such as delegation maps. The prototype should be able to\\n accommodate these changes without any major modifications.\\n- Start the integration with other downstream components, such as the wallet and\\n db-sync. The idea is to identify and address any potential pain points that\\n might arise during this integration.\\n- Run integration tests and system-level benchmarks.\\n\\n#### Genesis\\n\\n- Finish benchmarking and tuning the fast-path ChainSync Jumping prototype\\n- Expand and optimize the self-contained implementation of the Disconnect Rule\\n (including density comparisons and the LoE)\\n- Develop documentation and smoke tests for these components.\\n- Start modifying the ChainSync Client for the LoP and LoR.\\n\\n#### Support\\n\\n- Help the Network team with diagnosing performance regression in block\\n production.\\n\\n#### Tech debt\\n\\n- Fix property-test failures concerning iterators ([#3999][issue-3999] and\\n [#4183][issue-4183]).\\n\\n#### Fostering collaboration\\n\\n- Finish [mapping consensus][issue-4145].\\n\\n### Risks \\n\\n#### UTxO HD\\n\\n- Moving other parts of the ledger state to disk might require a major redesign\\n of the prototype. For instance, if it turns out that the epoch change rules\\n require access to the *full* ledger state. If this is the case, we might\\n accept this risk and do the redesign after the initial release of UTxO-HD.\\n- Integration with downstream clients might require more work than we\\n anticipate.\\n- Access to the benchmarking\'s team time and resources.\\n- Benchmarking results might show significant performance degradation, which\\n will require additional work if such performance degradation is not accepted\\n by other stakeholders.\\n- The prototype\'s performance might not be accepted by other stakeholders. Here\\n we need to clearly communicate that this is necessary to ensure that as the\\n blockchain size grows, the node can operate within reasonable memory\\n constraints.\\n\\n[issue-4183]: https://github.com/input-output-hk/ouroboros-network/issues/4183\\n[issue-3999]: https://github.com/input-output-hk/ouroboros-network/issues/3999\\n[issue-4145]: https://github.com/input-output-hk/ouroboros-network/issues/4145"},{"id":"2023-01-13-network","metadata":{"permalink":"/quarterly/2023-01-13-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-01-13-network.md","source":"@site/quarterly/2023-01-13-network.md","title":"Network Quarterly Update","description":"Network Quarterly Update","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"network","permalink":"/quarterly/tags/network"}],"readingTime":4.125,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Quarterly Update","slug":"2023-01-13-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Quarterly Update","permalink":"/quarterly/2023-01-18-consensus"},"nextItem":{"title":"Open-Source Update","permalink":"/quarterly/2023-01-13-open-source"}},"content":"## Network Quarterly Update\\n## 2022-11 - 2023-01\\n\\n### Summary\\n\\nThe primary goal of the networking team was to focus on the single relay\\nrelease of P2P. We fixed a number of small late bugs, and concluded QA\\n& performance testing. Although it was discovered a regression in performance\\nof block production when P2P is enabled, relaying with P2P performs better\\ncomparing to a non p2p. We concluded that this is not a blocker for the Single\\nRelay Release which is planned shortly.\\n\\n[Peer sharing][pr #4019] has gone through review and final review is\\njust being done right now. After merging it will still be disabled (hidden\\nbehind a flag) as it\'s not safe without eclipse evasion. We started\\nimplementing light peer sharing (i.e. include inbound peers into known peer set\\nof the outbound governor).\\n\\nWe started a detailed eclipse evasion design, it will continue in the next\\nquarter.\\n\\nWe also made a major revision of package structure of the network packages. We\\nended up with a very clean dependency graph ([pr #4155]).\\n\\nArmando Santos delivered a talk at the [ODOPIS 2022] conference on principles\\nof distributed systems in Brussels. The slides are available [here][ODOPIS-slides].\\n\\nNeil Davies gave an invited seminar on `DeltaQ` at Universit\xe9 Catholique de\\nLouvain.\\n\\nWe also found and fixed a few of bugs:\\n\\n* a bug in keep alive mini-protocol which resulted in warm to cold transitions\\n to be always executed through a timeout path rather than do a clean demotion\\n ([pr #4168]).\\n\\n* fixed an assetion failure in the outbound governor ([issue #4177]) \\n\\n- we fixed DNS test failure [issue #4191]\\n\\n### Next steps\\n\\nWe will work towards the next release of P2P for block producer nodes. This includes:\\n\\n* analysing performance regression for BP nodes when using P2P\\n* finish the work on controlling the block forger through node kernel ([pr #3800])\\n* address [issue #3907] and write a script to analyse deployment of P2P relays\\n\\nWe would like also to push forward eclipse evasion. Although most of the work\\nhas be done already the release of `io-sim` on `Hackage` will happen in the\\nnext quarter.\\n\\nWe would also like to address [chain-sync timeout issue][issue #4244] recently\\ndiagnosed by Karl Knutsson.\\n\\nIf time permits we would also like to address some technical debt, especially:\\n\\n- [enable nothunk in diffusion tests][issue #3387]\\n- [refactor diffusion testnet simulation][issue #4085]\\n\\n### Risks\\n\\nThe performance regression for block producer with P2P needs to be investigated\\nin the near future. This is blocker for the release of P2P on BP nodes.\\n\\n### Detailed log\\n\\n#### Contributions to Ouroboros-Network\\n\\n- We added `TraceDemoteLocalAsynchronous`, which enables notification of critical issues for SPOs\\n- We fixed `cardano-ping` compatibility with `NodeToNodeV_10` (P2P, [pr #4165])\\n- We fixed a bug in demotion peers to cold which affected P2P nodes ([commit-61058aa5c2])\\n- Karl Knutsson enhanced `SendFetchRequest` ([commit-bb1c3dddee]), open-source contribution)\\n- We turned `SizeInBytes` into a newtype.\\n- We extended `CONTRIBUTING.md`, `README.md`, added `CODE_OF_CONDUCT`.\\n- We fixed DNS test failure [issue #4191]\\n- We fixed a simulation bug found in [issue #4258]\\n- [pr #4168]\\n- [issue #4177]\\n\\n#### Contributions to Cardano-Node\\n\\n- We maintained the Single Relay Release [pr #4612], (e.g. fixing CI issues,\\n Rebasing it when necessary, publishing packages to Cardano Haskell Packages);\\n- We enhanced `JSON` serialisation / deserialisation of `NodeToNodeVersion` and `NodeToClientVersion`;\\n\\n#### Contributions to IOSim\\n\\n- We started to use Cardano Haskell Packages for `IOSim` ([pr #48])\\n- We updated change log files\\n- We added support of `ghc-9.4` ([pr #50])\\n\\nWe also addressed the following issues in [pr #57] in order to prepare the package for publication on Hackage:\\n\\n- refactored `io-classes` timers API ([issue #46]);\\n- created a new package `si-timers` which exposes an interface using SI units\\n and is safe on 32-bit systems ([issue #59]);\\n- added monad transformers instances for classes defined in `io-classes` ([issue #58]);\\n- created `io-classes-mtl` package which includes (experimental) instances for monad transformers;\\n- provide `MonadMonotonicTimeNSec` in `io-classes` and `MonadMonotonicTime` in `si-timers` (so that `io-classes` follow the `base` package);\\n- added `registerCancellableDelay` in `si-timers` (which allowed us to hide fancy timer api and clean `io-classes`)\\n- added support for `js_HOST_ARCH` (the new GHC JS backend)\\n\\nNote the [pr #57] contains almost 40 commits, and was a major step forward for\\n`io-sim` ecosystem. We also prepared a draft [pr #4281] which updates\\n`ouroboros-network`.\\n\\nOther changes for `1.0.0.0` release on Hackage:\\n\\n- Refactored test suite ([pr #47])\\n- Updated documentation, cabal files, `CONTRIBUTING`, `SECURITY` documents, etc in [pr #60], currently under review.\\n\\n[commit-61058aa5c2]: https://github.com/input-output-hk/ouroboros-network/pull/4170/commits/61058aa5c28a144d723aae183d1745552d757334\\n[commit-bb1c3dddee]: https://github.com/input-output-hk/ouroboros-network/pull/4170/commits/bb1c3dddeea78949f531c144bb4f2669eddf7f47\\n[issue #3387]: https://github.com/input-output-hk/ouroboros-network/issues/3387\\n[issue #3907]: https://github.com/input-output-hk/ouroboros-network/issues/3907\\n[issue #4085]: https://github.com/input-output-hk/ouroboros-network/issues/4085\\n[issue #4168]: https://github.com/input-output-hk/ouroboros-network/issues/4168\\n[issue #4177]: https://github.com/input-output-hk/ouroboros-network/issues/4177\\n[issue #4191]: https://github.com/input-output-hk/ouroboros-network/issues/4191\\n[issue #4244]: https://github.com/input-output-hk/ouroboros-network/issues/4244\\n[issue #4258]: https://github.com/input-output-hk/ouroboros-network/issues/4258\\n[issue #46]: https://github.com/input-output-hk/io-sim/issues/46\\n[issue #58]: https://github.com/input-output-hk/io-sim/issues/58\\n[issue #59]: https://github.com/input-output-hk/io-sim/issues/59\\n[pr #3800]: https://github.com/input-output-hk/ouroboros-network/pull/3800\\n[pr #4019]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[pr #4155]: https://github.com/input-output-hk/ouroboros-network/pull/4155\\n[pr #4165]: https://github.com/input-output-hk/ouroboros-network/pull/4165\\n[pr #4281]: https://github.com/input-output-hk/cardano-node/pull/4281\\n[pr #4612]: https://github.com/input-output-hk/cardano-node/pull/4612\\n[pr #47]: https://github.com/input-output-hk/io-sim/pull/47\\n[pr #48]: https://github.com/input-output-hk/io-sim/pull/48\\n[pr #49]: https://github.com/input-output-hk/io-sim/pull/49\\n[pr #50]: https://github.com/input-output-hk/io-sim/pull/50\\n[pr #57]: https://github.com/input-output-hk/io-sim/pull/57\\n[pr #60]: https://github.com/input-output-hk/io-sim/pull/60\\n[ODOPIS 2022]: https://sites.uclouvain.be/OPODIS2022/armando-details.html\\n[ODOPIS-slides]: https://sites.uclouvain.be/OPODIS2022/slides/OPODIS2022-slides-Santos.pdf"},{"id":"2023-01-13-open-source","metadata":{"permalink":"/quarterly/2023-01-13-open-source","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-01-13-open-source.md","source":"@site/quarterly/2023-01-13-open-source.md","title":"Open-Source Update","description":"Open Source Quarterly Update","date":"2023-01-13T00:00:00.000Z","formattedDate":"January 13, 2023","tags":[{"label":"open-source","permalink":"/quarterly/tags/open-source"}],"readingTime":2.215,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Open-Source Update","slug":"2023-01-13-open-source","authors":"coot","tags":["open-source"],"hide_table_of_contents":false},"prevItem":{"title":"Network Quarterly Update","permalink":"/quarterly/2023-01-13-network"},"nextItem":{"title":"Consensus Quarterly Update","permalink":"/quarterly/2022-11-15-consensus"}},"content":"## Open Source Quarterly Update\\n## 2022-11 - 2023-01\\n\\n### Summary\\n\\nIn the last quarter the open-source initiative delivered a comprehensive report\\non the state of our repositories. As part of this work stream we\\nidentified the key open-source repositories for the cardano project across all\\nthe projects From a list of more than 500 repositories (some of which are\\nforks) we identified key repositories which constitute the core of Cardano.\\n20 of them were identified as to be transferred to the future MBO which will\\ngovern Cardano development. Some where excluded (like [`io-sim`] and\\n[`typed-protocols`]), to be govern by IOG, since they have a much broader\\napplication than Cardano itself, and thus we think their open-source future\\nwill be better outside of the Cardano umbrella.\\n\\nChristian Taylor identified a number of ways we can improve our repositories to\\nmake them more attractive for open-source contributions by analysing each of\\nthem. This includes adding or improving various documentation files, like\\n`CONTRIBUTING` files, adding code of conduct, improving readme files, issue\\n& pull request templates etc. Christian also computed various interesting\\nmetrics which gives a very good insight into the development practices: e.g.\\naverage merge ratio, average number of reviews, comments and many more! The\\npresentation is available [here][open-source-presentation].\\n\\nWe followed with work on the [Cardano Engineering Handbook][CEH]. We included\\na standard code of conduct which is now used by most important projects in the\\nCardano space. We included `cardano-node`\'s security policy and added\\na responsible disclosure policy. We also described how roles and\\nresponsibilities should be clarified. This progress was made by\\na collaborative effort of the Cardano Core, Plutus and Architecture teams, and\\nit wouldn\'t be possible without Michael Peyton Jones, Arnaud Bailly, Kevin\\nHammond, Jared Corduan and Marcin Szamotulski.\\n\\nWe also improved the documentation of key repositories, by adding description,\\nimproving their `README` file & `CONTRIBUTING` files, adding code of conducts\\nfollowing the [Cardano Engineering Handbook][CEH]. This includes improvements to:\\n\\n* [`ouroboros-network`] (both `network` & `consensus`)\\n* [`cardano-ledger`]\\n* [`cardano-node`]\\n\\nAnd also\\n\\n* [`io-sim`]\\n* [`typed-protocols`]\\n* [`cardano-prelude`] (work in progress)\\n\\nThe work was carried by Marcin Szamotulski, Addie Girouard and Jared Corduan. \\n\\n\\nIn this quarter we also identified a number of projects which can be published to\\n`Hackage` (Haskell\'s package repository) or `crate` (Rust package repository).\\nThe list contains 21 packages, 2 of which ([`hedgehog-extras`] and\\n[`quickcheck-dynamic`]) are already published on Hackage and another 5 (from\\nthe [`io-sim`] repository) are close to be published.\\n\\n\\n### Detailed log\\n\\nThe progress of the open-source project is tracked in [this project][open-source-project].\\n\\n[CEH]: https://input-output-hk.github.io/cardano-engineering-handbook/\\n[open-source-project]: https://github.com/orgs/input-output-hk/projects/60/views/1\\n[`cardano-ledger`]: https://github.com/input-output-hk/cardano-ledger\\n[`cardano-node`]: https://github.com/input-output-hk/cardano-node\\n[`cardano-prelude`]: https://github.com/input-output-hk/cardano-prelude\\n[`hedgehog-extras`]: https://hackage.haskell.org/package/hedgehog-extras\\n[`io-sim`]: https://github.com/input-output-hk/io-sim\\n[`ouroboros-network`]: https://github.com/input-output-hk/ouroboros-network\\n[`quickcheck-dynamic`]: https://hackage.haskell.org/package/quickcheck-dynamic\\n[`typed-protocols`]: https://github.com/input-output-hk/typed-protocols\\n[open-source-presentation]: https://docs.google.com/presentation/d/127IFEavlrZeeoFrVXFYWzSt0ugOkSL7isxjyM1vmMzQ"},{"id":"2022-11-15-consensus","metadata":{"permalink":"/quarterly/2022-11-15-consensus","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2022-11-15-consensus.md","source":"@site/quarterly/2022-11-15-consensus.md","title":"Consensus Quarterly Update","description":"Consensus Quarterly Update","date":"2022-11-15T00:00:00.000Z","formattedDate":"November 15, 2022","tags":[{"label":"consensus","permalink":"/quarterly/tags/consensus"}],"readingTime":3.655,"hasTruncateMarker":false,"authors":[{"name":"Damian Nadales","title":"Consensus Team Lead","url":"https://github.com/dnadales","imageURL":"https://github.com/dnadales.png","key":"dnadales"}],"frontMatter":{"title":"Consensus Quarterly Update","slug":"2022-11-15-consensus","authors":"dnadales","tags":["consensus"],"hide_table_of_contents":false},"prevItem":{"title":"Open-Source Update","permalink":"/quarterly/2023-01-13-open-source"},"nextItem":{"title":"Network Team Update","permalink":"/quarterly/2022-11-09-network"}},"content":"## Consensus Quarterly Update\\n## 2022-09 - 2022-11\\n\\n### Main achievements\\n\\n#### UTxO HD\\n\\n- As a consequence of the errors observed when running distributed mempool\\n benchmarks, we re-designed the UTxO HD mempool integration, which fixed these\\n errors and lead to a simpler and more maintainable design.\\n\\n- We focused on increasing test coverage for the UTxO-HD prototype. In\\n particular, we added property tests for:\\n - Backing store (work ongoing)\\n - Era transitions\\n\\n- The property tests we added uncovered several bugs, which is a great result\\n given the exponential increase in the cost of finding bugs as they are closer\\n to deployment.\\n\\n- One of the errors found by our tests required us to work on improvements in\\n the Haskell bindings for LMDB. This work is ongoing.\\n\\n- We started working on the mempool property tests that will exercise the new\\n code paths that UTxO HD introduced.\\n\\n- We developed, benchmarked and tested an implementation of sequences of\\n differences based on \\"anti-diffs\\". Performance results of diff sequence\\n operations show that we achieved a speedup of about `4x` across several\\n scenarios. Note: this speedup is taking into account diff sequence operations\\n only, so the consensus-wide speedup is less than `4x`.\\n\\n- We integrated the \\"anti-diff\\" prototype into the UTxO HD feature branch.\\n\\n#### Genesis\\n\\n- We wrote a simulator that demonstrates soundness of an abstract implementation\\n of the new chain selection rule.\\n- We elaborated a draft specification for the Genesis implementation (currently\\n awaiting feedback from other architects).\\n- We elaborated a draft specification for the ChainSync Jumping optimization. In\\n particular, this includes a proof sketch that the latter preserves liveness\\n and safety in all cases.\\n- With the Networking team, we co-designed the eclipse avoidance mechanism,\\n specifically its coherence with the Genesis implementation plan\'s security\\n and its dependence on the new ChainSync Jumping optimization.\\n- We implemented a prototype for ChainSync Jumping. Initial benchmarks showed a\\n performance degradation wrt the baseline. Our optimization attempts so far\\n have brought the performance closer to the baseline, but not yet to parity.\\n\\n#### Conway era\\n\\n- We did most of the heavy lifting required to integrate the Conway era into the\\n Consensus layer.\\n\\n#### Technical debt\\n\\n- We started working on enabling CI nightly tests, which revealed several test\\n failures due to thunks being found it data structures used by the ledger and\\n consensus. We made a lot of progress fixing those thunk errors, but some\\n errors still remain.\\n\\n- We elaborated a `db-analyser` benchmark for the ledger operations. This led us\\n to the identification of high processing time at epoch boundaries, and we\\n could not observe any performance degradation that can be attributed to era\\n changes.\\n\\n- We fixed a source of flakiness in the ChainDB QSM test.\\n\\n- We clarified a common source of confusion around VRF tie-breaking and\\n cross-era chain selection.\\n\\n- We fixed a bug in the maximum-allowed ledger major protocol version.\\n\\n#### Fostering collaboration\\n\\n- We spent time making `cardano-updates` the central source of information for\\n the core teams stakeholders.\\n- We went through the Galois gap analysis and extracted actionable points to\\n take on next.\\n- Bart and Yogesh continued with their onboarding and stated making substantial\\n contributions to consensus.\\n\\n### Next steps\\n\\n#### UTxO HD\\n\\n- Finish the mempool property tests.\\n- Benchmark the latest version of the prototype.\\n- Elaborate a document that describes new integration test scenarios and pass it\\n to the SDET team.\\n- Bring query UTxO by address command performance on par with the baseline\\n version.\\n\\n#### Genesis\\n\\n- Receive and incorporate Duncan\'s feedback on the first draft specification for\\n the Genesis implementation.\\n- Begin prototyping the first genesis implementation, unless the first draft\\n needs major changes.\\n- Draft a second revision of the Genesis report.\\n- Review the second revision with a wider audience, which includes at least\\n Alexander Russell. That feedback will drive a third and hopefully final\\n revision.\\n- Investigate how to mitigate the ~30% slowdown we have observed so far in the\\n ChainSync jumping prototype, and try to mitigate it. In particular, we might\\n need to optimize the existing BlockFetch logic.\\n\\n#### Tech debt\\n\\n- Enabling nightly CI tests.\\n\\n#### Fostering collaboration\\n\\n- Merge the tutorial document Galois wrote; requires CI integration.\\n- Come up with our own documentation improvements, many of which were suggested\\n in the Galois gap analysis.\\n- Try to hire a new team member."},{"id":"2022-11-09-network","metadata":{"permalink":"/quarterly/2022-11-09-network","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2022-11-09-network.md","source":"@site/quarterly/2022-11-09-network.md","title":"Network Team Update","description":"Network Quarterly Update","date":"2022-11-09T00:00:00.000Z","formattedDate":"November 9, 2022","tags":[{"label":"network","permalink":"/quarterly/tags/network"}],"readingTime":3.87,"hasTruncateMarker":false,"authors":[{"name":"Marcin Szamotulski","title":"Network Team Lead","url":"https://github.com/coot","imageURL":"https://github.com/coot.png","key":"coot"}],"frontMatter":{"title":"Network Team Update","slug":"2022-11-09-network","authors":"coot","tags":["network"],"hide_table_of_contents":false},"prevItem":{"title":"Consensus Quarterly Update","permalink":"/quarterly/2022-11-15-consensus"},"nextItem":{"title":"Ledger Team Update","permalink":"/quarterly/2022-11-07-ledger"}},"content":"## Network Quarterly Update\\n## 2022-09 - 2022-11\\n\\n### Summary of most important improvements\\n\\nDuring this quarter the networking team delivered low level specification of\\npeer sharing & eclipse evasion. We held a session with the consensus & the\\nscientists; we got a positive feedback on the design.\\n\\nFurther we focused on implementation of peer sharing. We produced a [detail\\ndesign][peer-sharing-design] and an [early implementation][peer-sharing-pr].\\n\\nWe prepared the _P2P Single Relay Release_ (`cardano-node-1.35.5`). It\\nincludes over [130 patches][p2p-release] of network stack improvements over the\\nprevious version `1.35.4`, which were accomplished over a longer period of\\ntime. Among them are both bug fixes and UX improvements for stake pool\\noperators like simplified format of the [topology file][topology-file], or\\nimprovements in the logged messages:\\n\\n* [tracing of early consensus exceptions][consensus-startup-trace]\\n* [tracing of demotion of local root peers][demotion-trace] (traced with\\n `Warning` severity), the trace is called `TraceDemoteLocalAsynchronous`, in\\n `json` format it is encoded as `DemoteLocalAsynchronous`. For an SPO\\n tracking these demotion is vital (such demotion could indicate that a block\\n producer is no longer connected to its relays or vice versa)\\n\\nWe also provide better integration with [systemd][socket-activation] (socket\\nactivation improvements) or improvements in the networking stack:\\n\\n* [exit policies][exit-policy],\\n* [peer metrics improvements][peer-metrics],\\n* [DNS TTL][dns-ttl] improvements (which make it harder to misconfigure the\\n system, an issue discovered by the performance & monitoring team),\\n* do not trigger inbound idle timeout for `node-to-client` connections ([pr\\n #3844][idle-timeout]), an issue reported to us by Matthias Benkort from\\n Cardano Foundation.\\n\\nDuncan has been making progress with the input endorsers demo. His simulation\\nprovides a useful animated visualisation and live quantification of behaviour\\nof the modeled design.\\n\\nWe also improved our e2e diffusion simulation by implementing header-body\\nsplit, similar to what the real implementation does.\\n\\nWe also made some advances towards our future goals of P2P release for block\\nproducer nodes ([pr #3800][pr-3800] - in review) & for Daedalus users\\n([pr #3690][pr-3690] - merged).\\n\\n### Detailed log\\n\\n* We expanded diffusion simulation with block-fetch protocol bringing it closer\\n to the production system.\\n\\n* We addressed some additional technical depth in diffusion simulation\\n\\n* We slightly improved documentation & CI of io-sim and typed-protocols\\n repositories for open-source contributors.\\n\\n* We closed a number of issues towards publishing io-sim on Hackage (only two\\n essential issues are left open).\\n\\n* We pushed a branch of typed-protocols which captures one of the developer UX\\n problems in the API which we need to solve.\\n\\n* We identified and fixed an issue related to systemd sockets.\\n\\n* We identified and fixed an issue in consensus initialisation not giving\\n feedback on early errors.\\n\\n* We deployed RT View, identified a number of issues which were communicated to\\n the performance & monitoring team.\\n\\n* We finished high level & detailed design of peer sharing, very early\\n implementation of peer sharing is done (note that peer sharing cannot be\\n safely deployed without eclipse evasion & genesis).\\n\\n* We finished high level design of eclipse evasion, and started working on\\n a detailed design.\\n\\n* We were assigned the role of release engineer for 1.35.5 release (the P2P\\n single relay release); we prepared a cardano-node for 1.35.5 release which\\n contains more than 130 patches of just network stack improvements done over\\n last few months.\\n\\n* We diagnosed and fixed an tricky bug in the peer state actions (a component\\n which sits between outbound governor and connection manager). That bug was\\n introduced earlier this year and never released. It was caught by the QA\\n testing framework. We expanded our diffusion simulation to cover such case and\\n also mitigated a chance for reintroducing such a bug in future.\\n\\n* We identified and quite likely mitigated a misconfiguration in the\\n benchmarking cluster (next benchmarking run will confirm our hypothesis).\\n\\n* We simplified the format of p2p topology file, we got positive feedback from\\n SPOs.\\n\\n* We raised severities of some of the logging messages, which is an important\\n improvement for SPOs, exchanges and other users of the system.\\n\\n* We worked on input endorsers simulation which gives both animated and\\n quantified live feedback on network operation, using a simplified model of\\n a TCP/IP network. \\n\\n## Next quarter\\n\\n* Release the Single Relay P2P Release `1.35.5`.\\n\\n* Carry on with Peer Sharing (review, testing).\\n\\n* Deliver a talk at [Conference on Principles of Distributed Systems 2022][OPODIS2022] in Brussels, Belgium.\\n\\n* Present Detailed Design of Eclipse Evasion and start implementation phase.\\n\\n* Work on P2P Block Producer release.\\n\\n* Carry on with publishing of `io-sim` on `Hackage`.\\n\\n[OPODIS2022]: https://sites.uclouvain.be/OPODIS2022/ \\n[peer-sharing-design]: https://github.com/input-output-hk/ouroboros-network/wiki/Peer-Sharing-Implementation-Plan\\n[peer-sharing-pr]: https://github.com/input-output-hk/ouroboros-network/pull/4019\\n[p2p-release]: https://github.com/input-output-hk/ouroboros-network/pull/4120\\n[exit-policy]: https://github.com/input-output-hk/ouroboros-network/pull/3785\\n[peer-metrics]: https://github.com/input-output-hk/ouroboros-network/pull/3915\\n[socket-activation]: https://github.com/input-output-hk/ouroboros-network/pull/3979\\n[topology-file]: https://github.com/input-output-hk/cardano-node/pull/4563\\n[dns-ttl]: https://github.com/input-output-hk/ouroboros-network/pull/4106\\n[consensus-startup-trace]: https://github.com/input-output-hk/ouroboros-network/pull/4015\\n[demotion-trace]: https://github.com/input-output-hk/ouroboros-network/pull/4127\\n[idle-timeout]: https://github.com/input-output-hk/ouroboros-network/pull/3844\\n[pr-3800]: https://github.com/input-output-hk/ouroboros-network/pull/3800\\n[pr-3690]: https://github.com/input-output-hk/ouroboros-network/issues/3968"},{"id":"2022-11-07-ledger","metadata":{"permalink":"/quarterly/2022-11-07-ledger","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2022-11-07-ledger.md","source":"@site/quarterly/2022-11-07-ledger.md","title":"Ledger Team Update","description":"Ledger Quarterly Update","date":"2022-11-07T00:00:00.000Z","formattedDate":"November 7, 2022","tags":[{"label":"ledger","permalink":"/quarterly/tags/ledger"}],"readingTime":1.255,"hasTruncateMarker":false,"authors":[{"name":"Jared Corduan","title":"Ledger Team Lead","url":"https://github.com/JaredCorduan","imageURL":"https://github.com/JaredCorduan.png","key":"JaredCorduan"}],"frontMatter":{"title":"Ledger Team Update","slug":"2022-11-07-ledger","authors":"JaredCorduan","tags":["ledger"],"hide_table_of_contents":false},"prevItem":{"title":"Network Team Update","permalink":"/quarterly/2022-11-09-network"},"nextItem":{"title":"Node API & CLI Team Update","permalink":"/quarterly/2022-10-07-node-cli-api"}},"content":"## Ledger Quarterly Update\\n## 2022-09 - 2022-11-04\\n\\n* We finished a minimal ledger era capable of master key rotation.\\n This will be re-purposed our upcoming work.\\n* We have the humble beginnings of a proper ledger API.\\n* We improved the problematic cost model serialization\\n (recall the song and dance about updating the cost model one epoch after the hard fork).\\n* We have added benchmarks for problematic areas.\\n* Massive repository restructure and cleanup.\\n * Unified and consistent variable name schemes (not completely finished, but nearly there).\\n * Massive reduction in type constraints, which causes a lot of developer friction,\\n in our code and also downstream.\\n * More organized module structures.\\n * Improved generators for our property tests.\\n * We removed our dependency on cardano-prelude.\\n* The formal ledger model has come a long way.\\n * We created a fork of Agda that provides some meta-programming support for the ledger rules.\\n * We have a large amount of the basic UTxO support in the model.\\n * We can generate a good looking PDF from the model.\\n * We can produce Haskell from the model.\\n * We have a nice finite set theory library that we can use for many of the ledger rules.\\n * We have nix support for the model.\\n\\n## Next steps\\n\\n * Individual tracking of deposits. [[issue-3113]]\\n * Versioned CBOR encoders/decoders. [[issue-3014]]\\n * New ledger era transaction body (and the surround work associated with it).\\n * Designs for the next ledger era.\\n\\n[issue-3113]: https://github.com/input-output-hk/cardano-ledger/issues/3113\\n[issue-3014]: https://github.com/input-output-hk/cardano-ledger/issues/3014"},{"id":"2022-10-07-node-cli-api","metadata":{"permalink":"/quarterly/2022-10-07-node-cli-api","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2022-11-07-nod-api-cli.md","source":"@site/quarterly/2022-11-07-nod-api-cli.md","title":"Node API & CLI Team Update","description":"Node-Api-Cli Quarterly Update","date":"2022-11-07T00:00:00.000Z","formattedDate":"November 7, 2022","tags":[{"label":"cli-api-quarterly","permalink":"/quarterly/tags/cli-api-quarterly"}],"readingTime":1.355,"hasTruncateMarker":false,"authors":[{"name":"Jordan Millar","title":"Node Team Lead","url":"https://github.com/Jimbo4350","imageURL":"https://github.com/Jimbo4350.png","key":"Jimbo4350"}],"frontMatter":{"title":"Node API & CLI Team Update","slug":"2022-10-07-node-cli-api","authors":"Jimbo4350","tags":["cli-api-quarterly"],"hide_table_of_contents":false},"prevItem":{"title":"Ledger Team Update","permalink":"/quarterly/2022-11-07-ledger"}},"content":"## Node-Api-Cli Quarterly Update\\n## 2022-09 - 2022-11-04\\n\\n- Various improvements to tests/CI/GHC 9.2.4 preparations/upgrade to cabal-3.8.1.0\\n- Major clean up of stale iusses + PRs.\\n- Implementation of stale-bot to mitigate against a proliferation of outdated issues and PRs\\n- cardano-api refactoring with the aim of exposing more user friendly functions, particularly concerning transaction construction and querying the node.\\n- cardano-cli refactoring with the aim of moving reusable functions to cardano-api. We have made strides here and have managed to improve the interface of transaction construction and validation.\\n- General documentation updates and improvements\\n- Addition of tx-mempool command which allows users to:\\n - Query the node about the current mempool\'s capacity and sizes\\n - Request the next transaction from the mempool\'s current list\\n - Query if a particular transaction exists in the mempool\\n- Initial refactoring of cardano-testnet\\n\\nNext quarter\\n\\n- cardano-api\\n - Working with Konstantinos and his team to make cardano-api better for dapp developers - we have a google doc for this, I can send it to you privately.\\n- cardano-testnet\\n - Working with Marc Fontaine to create an easy to use executable to deploy testnets locally - https://github.com/input-output-hk/cardano-node/issues/4598\\n- Serenity\\n - Continued refactoring of cardano-api and cardano-cli, with the particular focus on extracting re-usable components of cardano-cli and moving them to cardano-api. This is harder to define but will manifest in stuff moving from cardano-cli to cardano-api and is tied in to the cardano-api work specified above.\\n- General bug fixing and smaller feature requests for the api/cli that are always coming in. Robert is primarily handling this at the moment as he is relatively new."}]}')}}]); \ No newline at end of file diff --git a/assets/js/b0f8ff9f.d583044f.js b/assets/js/b0f8ff9f.d583044f.js new file mode 100644 index 0000000000..e39352602f --- /dev/null +++ b/assets/js/b0f8ff9f.d583044f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[99786],{90395:e=>{e.exports=JSON.parse('{"permalink":"/page/38","page":38,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/37","nextPage":"/page/39","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/b134e481.c4f6b8ea.js b/assets/js/b134e481.c4f6b8ea.js new file mode 100644 index 0000000000..eccf2554c0 --- /dev/null +++ b/assets/js/b134e481.c4f6b8ea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90980],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){l(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,l=function(e,t){if(null==e)return{};var r,a,l={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(r),d=l,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||n;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=r.length,i=new Array(n);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var u=2;u<n;u++)i[u]=r[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},13899:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>n,metadata:()=>o,toc:()=>u});var a=r(87462),l=(r(67294),r(3905));const n={title:"Ledger Team Update",slug:"2024-02-14-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-02-14-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-14-ledger.md",source:"@site/blog/2024-02-14-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-02-14T00:00:00.000Z",formattedDate:"February 14, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.88,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-02-14-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-02-15-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2024-02-14-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Improvements",id:"improvements",level:3},{value:"Testing",id:"testing",level:3},{value:"Specification",id:"specification",level:3},{value:"Releasing",id:"releasing",level:3}],s={toc:u},c="wrapper";function m(e){let{components:t,...r}=e;return(0,l.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"Last few weeks were spent mostly on implementing various fixes, writing tests and\nimproving capabilities of our testing frameworks. Important bug fixes are:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Retention of Anchor for proposal procedures in the ledger state in order for users to be\nable to query the node for those anchors"),(0,l.kt)("li",{parentName:"ul"},"JSON serialization of rational numbers in protocol parameters and governance procedures\nare encoded without loss of precision")),(0,l.kt)("p",null,"Feature wise, we've added a new protocol parameter that controls the contribution of\nreference scripts sizes in the transaction fee calculation formula."),(0,l.kt)("p",null,"Major achievement that is worth announcing is a Haskell package named\n",(0,l.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cuddle"},(0,l.kt)("inlineCode",{parentName:"a"},"cuddle"))," that we developed over the last few\nmonths. Soon we will be transitioning to specifying CDDL in Haskell for all eras using\nthat package. It will be used to compile the CDDL specification that developers in the\ncommunity rely on so much. There are enormous benefits in using this tool, when compared\nto writing CDDL specification manually. Namely it allows us to reduce duplication and\nreuse common and unchanged specification from previous eras. It also improves safety and\ncorrectness of our specification and decoders, because it ensures that the specification\nis well typed and it uses QuickCheck to generate random data for validating that our\ndecoders are implemented according to the spec."),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4031"},"pull-4031")," - Further proposals improvements. Take 2"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3996"},"pull-3996")," - Index aware PlutusPurpose"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3983"},"pull-3983")," - Include reference scripts size in min fee calculation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4040"},"pull-4040")," - Redeemers serialization fixes"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4033"},"pull-4033")," - Make Conway-specific queries only available in Conway"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4028"},"pull-4028")," - Embed ProposalProcedure in GovActionState"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4056"},"pull-4056")," - Reduce duplication in Conway UTXOW rule"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4055"},"pull-4055")," - Update MinFeeRefScriptCoinsPerByte."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4053"},"pull-4053")," - Rename committeeQuorum to committeeThreshold"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4058"},"pull-4058")," - Fix ",(0,l.kt)("inlineCode",{parentName:"li"},"ToJSON")," instance of ",(0,l.kt)("inlineCode",{parentName:"li"},"BoundedRatio")," to avoid precision loss"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4070"},"pull-4070")," - Rename AsIndex to AsIx"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4065"},"pull-4065")," - Remove ",(0,l.kt)("inlineCode",{parentName:"li"},"ConwayPool")," rule definition")),(0,l.kt)("h3",{id:"improvements"},"Improvements"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4037"},"pull-4037")," - Add capability to hash ",(0,l.kt)("inlineCode",{parentName:"li"},"Plutus")," scripts directly"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4030"},"pull-4030")," - Report Plutus ",(0,l.kt)("inlineCode",{parentName:"li"},"ScriptHash")," upon execution failure")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3895"},"pull-3895")," - Constrained v2"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3981"},"pull-3981")," - Test proposals rewrite"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4051"},"pull-4051")," - Full support of ",(0,l.kt)("inlineCode",{parentName:"li"},"random")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"quickcheck-transformers")," in impTest"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4050"},"pull-4050"),' - Fixed the "All Tx are valid on traces of length 150" intermittent bug'),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4049"},"pull-4049")," - Support for Plutus scripts in ImpTest"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4075"},"pull-4075")," - Discontinue the mingw target in the nix build"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4072"},"pull-4072")," - Fix ouroborus-consensus serialization roundtrip test"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4080"},"pull-4080")," - Test that a resigned CC cannot be reelected without removal"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4083"},"pull-4083")," - Fix flakyness at the cost of turning test on during development"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4084"},"pull-4084")," - Fix intermittent test failures in leader-proportion test")),(0,l.kt)("h3",{id:"specification"},"Specification"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4015"},"pull-4015")," - Shelley ledger spec: amend erratum on nonce stabilization window"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4064"},"pull-4064")," - Fix wrong prose for new epoch environment"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4081"},"pull-4081")," - Fix MIR rule using wrong values for treasury and reserves")),(0,l.kt)("h3",{id:"releasing"},"Releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4041"},"pull-4041")," - Update ",(0,l.kt)("inlineCode",{parentName:"li"},"haskellNix"),"flake"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4035"},"pull-4035")," - Add a file needed for GithubPages to use a custom domain"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4060"},"pull-4060")," - Release notes 8.8"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4073"},"pull-4073")," - Add aarch64-darwin in flake.nix")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b13b9480.242e919d.js b/assets/js/b13b9480.242e919d.js new file mode 100644 index 0000000000..ee7b63fe7c --- /dev/null +++ b/assets/js/b13b9480.242e919d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18471],{87511:a=>{a.exports=JSON.parse('{"label":"crypto","permalink":"/tags/crypto","allTagsPath":"/tags","count":18}')}}]); \ No newline at end of file diff --git a/assets/js/b1992084.48b826b6.js b/assets/js/b1992084.48b826b6.js new file mode 100644 index 0000000000..ca6e2cb609 --- /dev/null +++ b/assets/js/b1992084.48b826b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[39223],{4903:e=>{e.exports=JSON.parse('{"permalink":"/tags/db-sync/page/4","page":4,"postsPerPage":5,"totalPages":4,"totalCount":16,"previousPage":"/tags/db-sync/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/b242687d.3a8f087d.js b/assets/js/b242687d.3a8f087d.js new file mode 100644 index 0000000000..b78e0ba4ca --- /dev/null +++ b/assets/js/b242687d.3a8f087d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[22191],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(a),m=n,h=s["".concat(p,".").concat(m)]||s[m]||d[m]||o;return a?r.createElement(h,l(l({ref:t},c),{},{components:a})):r.createElement(h,l({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:n,l[1]=i;for(var u=2;u<o;u++)l[u]=a[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},95807:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-09-29-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-09-29-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-29-sre.md",source:"@site/blog/2023-09-29-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-09-29T00:00:00.000Z",formattedDate:"September 29, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.68,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-09-29-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-09-29-ledger"},nextItem:{title:"Mithril Team Update",permalink:"/2023-09-27-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Cardano-world",id:"cardano-world",level:3}],c={toc:u},s="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sanchonet environment was re-spun starting from slot 7171200 and updated to cardano-node ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.4.0-pre"},"8.4.0-pre"),"."),(0,n.kt)("li",{parentName:"ul"},"The use of cardano-node ",(0,n.kt)("a",{parentName:"li",href:"https://hub.docker.com/r/inputoutput/cardano-node"},"docker hub")," will be deprecated in preference of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pkgs/container/cardano-node"},"GHCR"))),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Refactor parsing scripts, add github action automation, various bugfixes and cleanup: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/c2c7680...a274b72"},"capkgs-compare"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updates secrets layout scheme, adds sops enc/dec for jobs, adds cloud monitoring profile, updates flake templates and other improvements/fixes: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/14"},"cardano-parts-pull-8"))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updates for new cardano-parts secrets handling and layout, TF workspace handling, group multivalue DNS support, grafana cloud monitoring and other improvements: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/2"},"cardano-playground"))),(0,n.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update sanchonet network to cardano-node 8.4.0: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/compare/8cb559a...3edafb9"},"cardano-world-compare")),(0,n.kt)("li",{parentName:"ul"},"Rotate KES on shelley-qa: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/commit/8301b044ad106ff8ca71dcbbdb5b17fe9ec6fc6d"},"cardano-world-commit"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b28a1077.1d70106f.js b/assets/js/b28a1077.1d70106f.js new file mode 100644 index 0000000000..c504716a6e --- /dev/null +++ b/assets/js/b28a1077.1d70106f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7413],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(n),p=a,h=d["".concat(s,".").concat(p)]||d[p]||m[p]||o;return n?r.createElement(h,i(i({ref:t},u),{},{components:n})):r.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}p.displayName="MDXCreateElement"},49384:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & tracing update",slug:"2023-05-17-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-05-17-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-17-performance-and-tracing.md",source:"@site/blog/2023-05-17-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-05-17T00:00:00.000Z",formattedDate:"May 17, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:3.21,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-05-17-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-05-17-mithril"},nextItem:{title:"Crypto Team Update",permalink:"/2023-05-12-crypto"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Analysis",id:"analysis",level:3},{value:"Open Sourcing",id:"open-sourcing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3},{value:"Performance & Tracing Meetup",id:"performance--tracing-meetup",level:3},{value:"Offboarding",id:"offboarding",level:3}],u={toc:c},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We're preparing our model cluster to perform GHC9.2 benchmarks, as well as experimenting with increased dataset sizes."),(0,a.kt)("li",{parentName:"ul"},"New tracing: After optimization work on the new tracing system, another cycle of validation and documentation is due."),(0,a.kt)("li",{parentName:"ul"},"Analysis pipeline: First steps on implementing incremental analysis have been untertaken."),(0,a.kt)("li",{parentName:"ul"},"Open Sourcing: Exhaustive dataflow charts for both our analysis tool ",(0,a.kt)("inlineCode",{parentName:"li"},"locli")," and our ",(0,a.kt)("inlineCode",{parentName:"li"},"workbanch")," have been merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master")),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: The first set of CI-centric workbench profiles have been adjusted and run on the nomad backend; currently we're porting the definition of our model cluster."),(0,a.kt)("li",{parentName:"ul"},"P&T Meetup: We had a very productive personal meetup in Lugano, Switzerland."),(0,a.kt)("li",{parentName:"ul"},"Offboarding: Sadly, we have to say goodbye to our team lead. Currently, we're busy with the handover.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"As a compiler switch to GHC 9.2.7 for ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),"'s default build environment is around the corner, we're setting up our benchmarking cluster to\nhandle the new version. Special attention is given to the fact that we might need more flexibility in switching compiler versions in the future. This\nalso involves choosing a reliable baseline as reference point for inter-version comparisons. "),(0,a.kt)("p",null,"Additionally we've been working on refining our model cluster: by increasing UTxO and delegation map sizes to closer match those of current mainnet,\nwe strive to have a more accurate model - and thus be able to make more detailed predictions regarding performance. However, this still needs to\nbe balanced against resource demand for all our cluster's nodes."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"For our new tracing system, we're currently validating the behaviour of the system after optimizations have been applied. Furthermore, some\nquality-of-life details that have changed required us to revision the system documentation."),(0,a.kt)("h3",{id:"analysis"},"Analysis"),(0,a.kt)("p",null,"As a mid-term goal, we aim to provide incremental analysis of our benchmarking metrics. While currently, we can only reliably process runs that have been\nnormally (or abnormally) terminated, we see the possibility of incrementally analysing ongoing runs, or any data source yielding our key metrics, as a\nhuge opportunity to increase our operational flexibility. All in all, this approach entails building completely new features for our pipeline. A first effort to accomodate incrementally incoming data points has been undertaken. "),(0,a.kt)("h3",{id:"open-sourcing"},"Open Sourcing"),(0,a.kt)("p",null,"A very involved and exhaustive documentation and visualization effort has been undertaken to make the data flow through our key benchmarking\ncopmonents more accessible. As a result, detailed charts for both our LogObject CLI ",(0,a.kt)("inlineCode",{parentName:"p"},"locli")," and our ",(0,a.kt)("inlineCode",{parentName:"p"},"workbench")," have been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". "),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"While our Nomad backend is reaching completion, and hardware setup is being implemented in collaboration with SRE, we've been adjusting\nthose profiles of our ",(0,a.kt)("inlineCode",{parentName:"p"},"workbench")," that target CI-oriented workloads to the new backend. Those profiles should demonstrate the full functionality\nof the nomad cloud backend. "),(0,a.kt)("p",null,"Additionally, we're porting a first deployable version of our model cluster to nomad cloud, which will form the basis for validation of our actual key metrics with regard to those from the existing cluster."),(0,a.kt)("h3",{id:"performance--tracing-meetup"},"Performance & Tracing Meetup"),(0,a.kt)("p",null,"We held a personal team meetup in Lugano, Switzerland. In an amazing location, and with a great seminar room to focus, we had 2 very productive\ndays together. Being able to discuss live and in colour, we could effectively synchronize on where the team is at, and how we want to develop in the future.\nAlso, it was a great opportunity to finally meet in person."),(0,a.kt)("h3",{id:"offboarding"},"Offboarding"),(0,a.kt)("p",null,"Last not least we regret that our team lead is leaving at the end of May. Currently, he's handing over all his obligations, which requires reorganisation\nof team structure, and responsabilities of team members for specific tasks. Serge, we all want to thank you for your excellent and reliable lead; we very much enjoyed the time with you, and wish you all the best for your future endeavours!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b2ab4460.5476f776.js b/assets/js/b2ab4460.5476f776.js new file mode 100644 index 0000000000..79bb06dc8e --- /dev/null +++ b/assets/js/b2ab4460.5476f776.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67987],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(n),d=a,h=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return n?r.createElement(h,l(l({ref:t},m),{},{components:n})):r.createElement(h,l({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=n[c];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},62355:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Goedel Team Update",slug:"2023-10-13-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-10-13-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-13-goedel.md",source:"@site/blog/2023-10-13-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-10-13T00:00:00.000Z",formattedDate:"October 13, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.38,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-10-13-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-10-15-network"},nextItem:{title:"Hydra Team Update",permalink:"/2023-10-13-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and testing the\nperformance analysis tool"),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"extending thorn-calculus to support synchronous channels")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"extending mini-protocol framework to support communication with the\nenvironment")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"working on chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"planning for JLAMP journal paper submission")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"analysying any-to-finish"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b2f6ced4.5a014dbb.js b/assets/js/b2f6ced4.5a014dbb.js new file mode 100644 index 0000000000..87c73ef1cf --- /dev/null +++ b/assets/js/b2f6ced4.5a014dbb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[13752],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),p=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=p(r),m=n,h=d["".concat(c,".").concat(m)]||d[m]||u[m]||o;return r?a.createElement(h,l(l({ref:t},s),{},{components:r})):a.createElement(h,l({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var p=2;p<o;p++)l[p]=r[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},68015:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2024-02-09-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-02-09-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/hydra-2024-02-09.md",source:"@site/blog/hydra-2024-02-09.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-02-09T00:00:00.000Z",formattedDate:"February 9, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.64,hasTruncateMarker:!1,authors:[{name:"Daniel Firth",title:"Hydra Software Engineer",url:"https://github.com/locallycompact",imageURL:"https://github.com/locallycompact.png",key:"locallycompact"}],frontMatter:{title:"Hydra Team Update",slug:"2024-02-09-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-02-14-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2024-02-07-consensus"}},c={authorsImageUrls:[void 0]},p=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],s={toc:p},d="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This week, the Hydra team worked on forward compatibility for Conway support, deployed the hydra explorer tool, and improved the model based testing to support more actions (Fanout and Rollbacks)."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Addressed flakyness in two types of integration tests"),(0,n.kt)("li",{parentName:"ul"},"Fixed our tooling (HLS 2.6 on GHC 9.6.4)"),(0,n.kt)("li",{parentName:"ul"},"Fixed configuration of running head in preview"),(0,n.kt)("li",{parentName:"ul"},"Added Fanout and Rollbacks to our Model basd test suite #1296"),(0,n.kt)("li",{parentName:"ul"},"Deployed the hydra explorer to ",(0,n.kt)("a",{parentName:"li",href:"http://explorer.hydra.family:9090/heads"},"http://explorer.hydra.family:9090/heads")," (url will change a bit more)"),(0,n.kt)("li",{parentName:"ul"},"Updated smoke test to run sanchonet")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fix the fanout after contest bug "),(0,n.kt)("li",{parentName:"ul"},"Specify the on-chain validators for incremental decommits"),(0,n.kt)("li",{parentName:"ul"},"Complete smoke tests on sanchonet")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b3041b60.a5d15c8c.js b/assets/js/b3041b60.a5d15c8c.js new file mode 100644 index 0000000000..d036283b36 --- /dev/null +++ b/assets/js/b3041b60.a5d15c8c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[35889],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),c=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=c(r),m=n,g=s["".concat(u,".").concat(m)]||s[m]||d[m]||l;return r?a.createElement(g,o(o({ref:t},p),{},{components:r})):a.createElement(g,o({ref:t},p))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:n,o[1]=i;for(var c=2;c<l;c++)o[c]=r[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},2592:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-05-05-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-05-05-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-05-ledger.md",source:"@site/blog/2023-05-05-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-05-05T00:00:00.000Z",formattedDate:"May 5, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.235,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-05-05-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-05-12-network"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-05-05-node-cli-api"}},u={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway certificates",id:"conway-certificates",level:2},{value:"Constraint based testing",id:"constraint-based-testing",level:2},{value:"Integration work",id:"integration-work",level:2},{value:"Technical debt",id:"technical-debt",level:2}],p={toc:c},s="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The ledger team focused mainly on the conway ledger era and node integration.\nFor conway, we completed a large structural change that now allows\nfor delegation certificates to be parameterized by era, and introducing\nnew certificates for the first time since Shelley.\nWe also continue to build out our contraint based generators that we will\nuse to property test the conway era.\nIn particular, we can now generate an entire ledger state and a\ntransaction which is balanced with respect to the ledger state."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h2",{id:"conway-certificates"},"Conway certificates"),(0,n.kt)("p",null,"Certificiates are now abstracted as a type family in the ledger codebase.\nMoreover, there are new certificates in the Conway era to support CIP-1694,\nand MIR certificates have been removed."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3387"},"pull-3387"))),(0,n.kt)("h2",{id:"constraint-based-testing"},"Constraint based testing"),(0,n.kt)("p",null,"Our plan for property testing in the conway era is to no longer use the trace generators,\nbut instead generate ledger states and transactions based on constraints.\nWe hit a milestone this week, namely the ability to generate a balanced transaction in the context\nof a ledger state, all based on our ever growing constaint language."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3374"},"pull-3374")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3386"},"pull-3386"))),(0,n.kt)("h2",{id:"integration-work"},"Integration work"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3393"},"pull-3393")," - Performance improvements"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3395"},"pull-3395")," - Conway instances"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3398"},"pull-3398")," - Fix mint translation in the script context")),(0,n.kt)("h2",{id:"technical-debt"},"Technical debt"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3389"},"pull-3389")," - Reduce github pages size"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3390"},"pull-3390")," - Reinstate the tickf optimizations")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b3043f02.2ed6805b.js b/assets/js/b3043f02.2ed6805b.js new file mode 100644 index 0000000000..88e0c0733a --- /dev/null +++ b/assets/js/b3043f02.2ed6805b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27478],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),m=a,d=p["".concat(l,".").concat(m)]||p[m]||h[m]||o;return n?r.createElement(d,s(s({ref:t},c),{},{components:n})):r.createElement(d,s({ref:t},c))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u<o;u++)s[u]=n[u];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},59290:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-10-04-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-10-04-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-04-consensus.md",source:"@site/blog/2023-10-04-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-10-04T00:00:00.000Z",formattedDate:"October 4, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.135,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-10-04-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-10-06-performance-and-tracing"},nextItem:{title:"Mithril Team Update",permalink:"/2023-10-04-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Genesis",id:"genesis",level:3},{value:"Support",id:"support",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3}],c={toc:u},p="wrapper";function h(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The value-only workload benchmarks showed that the mempool forging regression observed in the UTxO-HD branch was fixed by the latest patch. In spite of the higher resource demands, for the metrics of interest (forging, peer-propagation, end-to-end propagation) we see no regression when using the UTxO-HD version of Cardano node, with the ",(0,a.kt)("em",{parentName:"p"},"in-memory")," backend."),(0,a.kt)("p",null,"On the Genesis front the Researchers continue reviewing different aspects of the design, in particular the argument that the Genesis rule will select the Cardano historical chain.\nWe also merged a fix for the Babbage to Conway transition, and released a new version of Consensus."),(0,a.kt)("h3",{id:"genesis"},"Genesis"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We elicited review from the Researchers on a final draft of the argument that the Genesis rule will select the Cardano historical chain (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/392"},"392"),").")),(0,a.kt)("h3",{id:"support"},"Support"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We merged a minimal patch that fixes parameter update bug during the Babbage to Conway transition (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/366"},"366"),")."),(0,a.kt)("li",{parentName:"ul"},"We enabled richer tracers in ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node")," that can be useful in future debugging (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/384"},"384"),")."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/amesgen"},"Esgen")," continues with his release engineer activities, and created a new Consensus release.")),(0,a.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We merged a new section into our documentation that explains the existing hard-fork combinator (HFC) interface and its complexities, which are relate do why the Babagge to Conway transition surprised us in this way. This explanation is step one towards improving the HFC interface (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/369"},"369"),").")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b34c935f.ea5a883f.js b/assets/js/b34c935f.ea5a883f.js new file mode 100644 index 0000000000..9179dd02ec --- /dev/null +++ b/assets/js/b34c935f.ea5a883f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[41732],{84447:e=>{e.exports=JSON.parse('{"permalink":"/tags/performance-tracing/page/5","page":5,"postsPerPage":5,"totalPages":7,"totalCount":34,"previousPage":"/tags/performance-tracing/page/4","nextPage":"/tags/performance-tracing/page/6","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/b3c27c9b.cea9e6c0.js b/assets/js/b3c27c9b.cea9e6c0.js new file mode 100644 index 0000000000..a529b1336c --- /dev/null +++ b/assets/js/b3c27c9b.cea9e6c0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95318],{46961:e=>{e.exports=JSON.parse('{"permalink":"/page/49","page":49,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/48","nextPage":"/page/50","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/b3f59e42.21d90fd2.js b/assets/js/b3f59e42.21d90fd2.js new file mode 100644 index 0000000000..69cbbc2dc7 --- /dev/null +++ b/assets/js/b3f59e42.21d90fd2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[22057],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=p(n),d=a,h=m["".concat(l,".").concat(d)]||m[d]||c[d]||s;return n?r.createElement(h,o(o({ref:t},u),{},{components:n})):r.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var p=2;p<s;p++)o[p]=n[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},2110:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const s={title:"Consensus Q4 2023 Update",slug:"2023-Q4-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,i={permalink:"/quarterly/2023-Q4-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q4-consensus.md",source:"@site/quarterly/2023-Q4-consensus.md",title:"Consensus Q4 2023 Update",description:"Areas of focus",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"consensus",permalink:"/quarterly/tags/consensus"}],readingTime:2.66,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Q4 2023 Update",slug:"2023-Q4-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"SRE Q3 2023 Update",permalink:"/quarterly/2023-Q3-sre"},nextItem:{title:"Performance & Tracing Q4 2023 Update",permalink:"/quarterly/2023-Q4-performance-and-tracing"}},l={authorsImageUrls:[void 0]},p=[{value:"Areas of focus",id:"areas-of-focus",level:2},{value:"Highlights",id:"highlights",level:2},{value:"Implement legacy mode for UTxO-HD to keep baseline performance",id:"implement-legacy-mode-for-utxo-hd-to-keep-baseline-performance",level:3},{value:"Assist mainnet node release with initial Conway capabilities, test, benchmark, and improvements to CIP 1694",id:"assist-mainnet-node-release-with-initial-conway-capabilities-test-benchmark-and-improvements-to-cip-1694",level:3},{value:"Assist with P2P IOG relay network shut down",id:"assist-with-p2p-iog-relay-network-shut-down",level:3},{value:"Assist with repo transfer to Intersect",id:"assist-with-repo-transfer-to-intersect",level:3},{value:"Support vendors to deliver contracts",id:"support-vendors-to-deliver-contracts",level:3},{value:"Operation serenity Q4 2023",id:"operation-serenity-q4-2023",level:3}],u={toc:p},m="wrapper";function c(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"areas-of-focus"},"Areas of focus"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"Issue"),(0,a.kt)("th",{parentName:"tr",align:null},"Status"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/429"},"Implement legacy mode for UTxO-HD to keep baseline performance")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/423"},"Assist mainnet node release with initial Conway capabilities")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/424"},"Assist with test, benchmark, and improvements to CIP 1694")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/414"},"Assist with P2P IOG relay network shut down")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/425"},"Assist with repo transfer to Intersect")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/427"},"Support vendors to deliver contracts")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/415"},"Operation serenity Q4 2023")),(0,a.kt)("td",{parentName:"tr",align:null},"\u2705 Done")))),(0,a.kt)("h2",{id:"highlights"},"Highlights"),(0,a.kt)("h3",{id:"implement-legacy-mode-for-utxo-hd-to-keep-baseline-performance"},"Implement legacy mode for UTxO-HD to keep baseline performance"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u2705 We managed to run a UTxO-HD capable node in legacy mode, maintaining the baseline memory usage while keeping all the ledger state in memory.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"While the legacy mode is not production-ready (it requires further integration and testing), it remains as a plan B should the need arise to release UTxO-HD if our stakeholders so demand it."))),(0,a.kt)("li",{parentName:"ul"},"\u2705 We pivoted to redesigning the Ledger DB API because:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"This is needed for integrating the LSM-tree backend."),(0,a.kt)("li",{parentName:"ul"},"The redesign opened the possibility of implementing an in-memory backend that would keep the same performance and resource requirements as the baseline version (which needs to be confirmed by benchmarks)."))),(0,a.kt)("li",{parentName:"ul"},"\u2705 We created a more general Ledger DB API."),(0,a.kt)("li",{parentName:"ul"},"\ud83d\udee0\ufe0f We are integrating (into the feature branch) the existing Ledger DB implementations with the new API."),(0,a.kt)("li",{parentName:"ul"},"\ud83d\udee0\ufe0f We are implementing the new in-memory backend.")),(0,a.kt)("h3",{id:"assist-mainnet-node-release-with-initial-conway-capabilities-test-benchmark-and-improvements-to-cip-1694"},"Assist mainnet node release with initial Conway capabilities, test, benchmark, and improvements to CIP 1694"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u2705 We recognized that Conway introduces a new challenge in the versioning of NTC queries, and we resolved it (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/864"},"864")," and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4770"},"4770"),").")),(0,a.kt)("h3",{id:"assist-with-p2p-iog-relay-network-shut-down"},"Assist with P2P IOG relay network shut down"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u2705 We created a prototype for the pre-Genesis State Machine for bootstrap peers, which is currently under test (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/808"},"this PR"),").")),(0,a.kt)("h3",{id:"assist-with-repo-transfer-to-intersect"},"Assist with repo transfer to Intersect"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u2705 We transferred the ",(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus")," repository to the Intersect GitHub organization.")),(0,a.kt)("h3",{id:"support-vendors-to-deliver-contracts"},"Support vendors to deliver contracts"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Genesis",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u2705 Interacted with the Consensus team and addressed resulting feedback on past deliverables."),(0,a.kt)("li",{parentName:"ul"},"\u2705 Finished implementation of the testing infrastructure of Genesis"),(0,a.kt)("li",{parentName:"ul"},"\u2705 Started to refine the Proof of Concept demo into an actual implementation of the core components of the Genesis design."))),(0,a.kt)("li",{parentName:"ul"},"\ud83d\udcbe LSM-tree implementation. Well Typed:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u2705 Finished the design of the public facing API."),(0,a.kt)("li",{parentName:"ul"},"\u2705 Defined the LSM-tree database file-type formats."),(0,a.kt)("li",{parentName:"ul"},"\u2705 Implemented property and model-based tests.")))),(0,a.kt)("h3",{id:"operation-serenity-q4-2023"},"Operation serenity Q4 2023"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\ud83c\udf89 We welcomed our newest team member @RenateEilers and assisted with her (ongoing) onboarding."),(0,a.kt)("li",{parentName:"ul"},"\u2705 We implemented a simplification in the ChainSync mini-protocol that is also a step towards Ouroboros Chronos."),(0,a.kt)("li",{parentName:"ul"},"\u2705 We added tests to check Consensus emits valid CBOR, which prevents the generation of invalid binary encoding."),(0,a.kt)("li",{parentName:"ul"},"\u2705 We established and implemented an interface between Consensus tooling and P&T tooling, which constitutes a step towards incorporating component level benchmarks in our development process.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b4af885a.81b26f5e.js b/assets/js/b4af885a.81b26f5e.js new file mode 100644 index 0000000000..5c45ff9ab1 --- /dev/null +++ b/assets/js/b4af885a.81b26f5e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16839],{41743:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/7","page":7,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/6","nextPage":"/tags/hydra/page/8","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/b4cc2dd2.ca89cee7.js b/assets/js/b4cc2dd2.ca89cee7.js new file mode 100644 index 0000000000..45af1692d6 --- /dev/null +++ b/assets/js/b4cc2dd2.ca89cee7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70635],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var h=r.createContext({}),s=function(e){var t=r.useContext(h),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(h.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,h=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(a),u=n,m=d["".concat(h,".").concat(u)]||d[u]||c[u]||i;return a?r.createElement(m,o(o({ref:t},p),{},{components:a})):r.createElement(m,o({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=u;var l={};for(var h in t)hasOwnProperty.call(t,h)&&(l[h]=t[h]);l.originalType=e,l[d]="string"==typeof e?e:n,o[1]=l;for(var s=2;s<i;s++)o[s]=a[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},52945:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>h,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-03-03-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-03-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-03-hydra.md",source:"@site/blog/2023-03-03-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-03-03T00:00:00.000Z",formattedDate:"March 3, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.19,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-03-03-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-03-03-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-03-03-ledger"}},h={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:s},d="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team released version\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/releases/tag/0.9.0"},"0.9.0")," - a version\nof the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," with fully specified behavior of on-chain scripts and\noff-chain head-logic, decreased costs for opening/closing a Head and scalable\ncontestation deadline semantics. Check out the full release notes for details."),(0,n.kt)("p",null,"Furthermore, they published the ",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/monthly/2023-03"},"monthly\nreport")," of the Hydra project\nand conducted a review meeting with an increasingly wider audience. The team\nplans to extend invitations through the new Hydra\n",(0,n.kt)("a",{parentName:"p",href:"https://discord.gg/Bwdy2jNdm2"},"#announcements")," discord channel for the next\nmonths, stay tuned!"),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting with report published ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-03"},"on website")),(0,n.kt)("li",{parentName:"ul"},"Fixed smoke tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/726"},"#726")),(0,n.kt)("li",{parentName:"ul"},"Reduced the cost of opening/closing a Head (error codes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/748"},"#748")," + head reference script ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/701"},"#701"),")"),(0,n.kt)("li",{parentName:"ul"},"Released version ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.9.0"},"0.9.0")),(0,n.kt)("li",{parentName:"ul"},"Conducted a first experiment on mainnet compatibility ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/713"},"#713")),(0,n.kt)("li",{parentName:"ul"},"New discord category with ",(0,n.kt)("a",{parentName:"li",href:"https://discord.gg/Bwdy2jNdm2"},"#announcements")," channel"),(0,n.kt)("li",{parentName:"ul"},"Received a demo about the Hydra for Voting project"),(0,n.kt)("li",{parentName:"ul"},"Lightning talk on mutation-based testing (to be shared)"),(0,n.kt)("li",{parentName:"ul"},"New ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/21/views/26"},"themes view")," in on our roadmap and some rearranging as we align it with high-level objectives"),(0,n.kt)("li",{parentName:"ul"},"Clarified things with researchers, but mostly identified action items for them")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Redraw transaction graphs and address TODOs specification"),(0,n.kt)("li",{parentName:"ul"},"Run hydraw with 0.9.0 on preprod"),(0,n.kt)("li",{parentName:"ul"},"Make smoke tests on mainnet possible"),(0,n.kt)("li",{parentName:"ul"},"Groom the explorer item"),(0,n.kt)("li",{parentName:"ul"},"Unblock the auctions projecth with ","\u201c","commit from script","\u201d"," a solution")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b4f5b98b.95b83af6.js b/assets/js/b4f5b98b.95b83af6.js new file mode 100644 index 0000000000..53cbdd29c2 --- /dev/null +++ b/assets/js/b4f5b98b.95b83af6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[78461],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function o(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?i(Object(a),!0).forEach((function(e){r(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function p(t,e){if(null==t)return{};var a,n,r=function(t,e){if(null==t)return{};var a,n,r={},i=Object.keys(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var l=n.createContext({}),u=function(t){var e=n.useContext(l),a=e;return t&&(a="function"==typeof t?t(e):o(o({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(l.Provider,{value:e},t.children)},m="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},s=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,l=t.parentName,c=p(t,["components","mdxType","originalType","parentName"]),m=u(a),s=r,h=m["".concat(l,".").concat(s)]||m[s]||d[s]||i;return a?n.createElement(h,o(o({ref:e},c),{},{components:a})):n.createElement(h,o({ref:e},c))}));function h(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,o=new Array(i);o[0]=s;var p={};for(var l in e)hasOwnProperty.call(e,l)&&(p[l]=e[l]);p.originalType=t,p[m]="string"==typeof t?t:r,o[1]=p;for(var u=2;u<i;u++)o[u]=a[u];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},18983:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>p,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-08-01-node-cli-api",tags:["cli-api"],authors:"carlos",hide_table_of_contents:!1},o="Node-Api-Cli Update",p={permalink:"/2023-08-01-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-01-node-cli-api.md",source:"@site/blog/2023-08-01-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-08-01T00:00:00.000Z",formattedDate:"August 1, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.76,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-08-01-node-cli-api",tags:["cli-api"],authors:"carlos",hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-08-04-sre"},nextItem:{title:"Network Team Update",permalink:"/2023-07-31-network"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},m="wrapper";function d(t){let{components:e,...a}=t;return(0,r.kt)(m,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-07-19---2023-08-01"},"2023-07-19 - 2023-08-01"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Release of Node 8.2.0",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Updates to the ledger packages extend progress on the Conway ledger era to support new governance features via CIP-1694."),(0,r.kt)("li",{parentName:"ul"},"This release is phase 1 of the SanchoNet roll out"),(0,r.kt)("li",{parentName:"ul"},"Allows SPOs to vote on changes to the on-chain constitution."),(0,r.kt)("li",{parentName:"ul"},"Ability to start the node in block production mode with no secrets loaded using the --non-producing-node flag."),(0,r.kt)("li",{parentName:"ul"},"Updates to the networking packages prepare the road for peer sharing."))),(0,r.kt)("li",{parentName:"ul"},"cardano-cli and cardano-api continue to integrate Conway era features"),(0,r.kt)("li",{parentName:"ul"},"Continue refactoring of cardano-testnet")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/116"},"Use AnyShelleyToBabbageEra from cardano-api instead")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/115"},"Update to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.10.2.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/113"},"Add rendering for ",(0,r.kt)("inlineCode",{parentName:"a"},"ConwayCertificate")," in ",(0,r.kt)("inlineCode",{parentName:"a"},"Cardano.Cli.Json.Friendly"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/111"},"Update to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.10.1.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/110"},"Add DRep registration certificate command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/109"},"Add options to delegate voting stake ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/107"},"Share MIR certificates code between era-based and legacy CLI parsers")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/106"},"Release cardano-cli 8.4.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/103"},"Update to",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.10.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/100"},"Change directory structure from Options/.. to EraBased/..")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/98"},"Era-sensitive command structure")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/90"},"#86 Set default era to Babbage in stake-address, stake-pool and governance commmands"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/155"},"Deprecate ",(0,r.kt)("inlineCode",{parentName:"a"},"shelleyCertificateConstraints")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"conwayCertificateConstraints"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/154"},"Deprecate ",(0,r.kt)("inlineCode",{parentName:"a"},"TxVotesSupportedInEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/152"},"Add SerialiseAsBech32 instances for committee cold and hot keys")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/151"},"Deprecate some constraint functions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/150"},"Deprecate ",(0,r.kt)("inlineCode",{parentName:"a"},"TxGovernanceActionSupportedInEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/149"},"More ",(0,r.kt)("inlineCode",{parentName:"a"},"shelleyBasedEraConstraint")," constraints")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/148"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.10.2.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/147"},"Expose shelleyCertificateConstraints and conwayCertificateConstraints")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/146"},"Remove unnecessary function ",(0,r.kt)("inlineCode",{parentName:"a"},"getShelleyEraTxBodyConstraint"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/143"},"Provide additional constraints in ",(0,r.kt)("inlineCode",{parentName:"a"},"shelleyBasedEraConstraints"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/142"},"Update changelogs for ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.10.1.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/141"},"handleFileForWritingWithOwnerPermissionImpl: Fix permisions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/138"},"Update DRepKey with correct ",(0,r.kt)("inlineCode",{parentName:"a"},"Voting")," keyrole")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/137"},"Support more constraints for Conway witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/135"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.10.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/134"},"Expose toShelleyPoolParams for conway integration")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/131"},(0,r.kt)("inlineCode",{parentName:"a"},"FeatureInEra")," instance for ",(0,r.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/130"},"Expose more functionality from cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/128"},"Improved feature ergonomics")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/127"},"Rename ",(0,r.kt)("inlineCode",{parentName:"a"},"AtMostBabbageEra")," to ",(0,r.kt)("inlineCode",{parentName:"a"},"ShelleyToBabbageEra")))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5412"},"Fix stubbed LogFormatting instances")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5411"},"8.2.0 version bumps")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5409"},"Bump network packages version")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5404"},"Fix missing ",(0,r.kt)("inlineCode",{parentName:"a"},"ToObject")," tracing instances.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5401"},"input-output-hk/cardano-cli#85 Fix node crashing in babbage"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5411"},"8.2.0 version bumps")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5409"},"Bump network packages version")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5404"},"Fix missing ",(0,r.kt)("inlineCode",{parentName:"a"},"ToObject")," tracing instances.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5400"},"Fix plutus script costing in cardano-testnet"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5409"},"Bump network packages version"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/blob/05c0392b4722d7fe2f82db1854b28de4f28a917b/doc/getting-started/understanding-config-files.md?plain=1#L84C1-L97C42"},"WarmValency"))))),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b512dd46.893b95b4.js b/assets/js/b512dd46.893b95b4.js new file mode 100644 index 0000000000..5cfd412139 --- /dev/null +++ b/assets/js/b512dd46.893b95b4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[47093],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=o.createContext({}),l=function(e){var t=o.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),c=l(r),h=n,d=c["".concat(s,".").concat(h)]||c[h]||m[h]||a;return r?o.createElement(d,i(i({ref:t},u),{},{components:r})):o.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=h;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[c]="string"==typeof e?e:n,i[1]=p;for(var l=2;l<a;l++)i[l]=r[l];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}h.displayName="MDXCreateElement"},5136:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var o=r(87462),n=(r(67294),r(3905)),a=r(80175);const i={title:"Network Team Update",slug:"2022-11-11-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},p=void 0,s={permalink:"/2022-11-11-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-11-network.md",source:"@site/blog/2022-11-11-network.md",title:"Network Team Update",description:"High-level summary",date:"2022-11-11T00:00:00.000Z",formattedDate:"November 11, 2022",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.595,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-11-11-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-11-11-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2022-11-04-hydra"}},l={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"Detail description",id:"detail-description",level:2},{value:"Performance regression",id:"performance-regression",level:3},{value:"New P2P topology form",id:"new-p2p-topology-form",level:3},{value:"Tracing improvements",id:"tracing-improvements",level:3},{value:"Open Source Improvements",id:"open-source-improvements",level:3}],c={toc:u},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"In last sprint we got a performance report of P2P performance testing cluster\n(which consists of 50 nodes). There is a performance regression in the header\nnotification metric. The P2P cluster is constructed with the same\ntopology as the non-p2p reference one this indicates some regression which\nneeds to be further investigated. This poses a risk for releasing P2P."),(0,n.kt)("p",null,"We also continued to work on peer sharing: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"pull #4019"),"."),(0,n.kt)("p",null,"We continued working on dynamic block production which is required for P2P\nrelease for BP nodes: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3159"},"pull #3159"),"."),(0,n.kt)("p",null,"We simplified the P2P topology format: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/issues/4559"},"issue #4559"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3888"},"pull #3888"),"."),(0,n.kt)("p",null,"We added a new trace point for asynchronous demotions of local peers with\n",(0,n.kt)("inlineCode",{parentName:"p"},"Warning")," severity. This trace is ",(0,n.kt)("strong",{parentName:"p"},"important")," for SPOs."),(0,n.kt)("h2",{id:"detail-description"},"Detail description"),(0,n.kt)("h3",{id:"performance-regression"},"Performance regression"),(0,n.kt)("p",null,"Below we include a graph which shows the performance regression of the P2P code base vs non P2P."),(0,n.kt)("img",{src:a.Z}),(0,n.kt)("p",null,"On the ",(0,n.kt)("inlineCode",{parentName:"p"},"x")," axis is time in seconds which measures the delay from the start of\nthe slot to when a header was received. The ",(0,n.kt)("inlineCode",{parentName:"p"},"y")," axis is the percentile of nodes\nthat received a header. We are currently investigating possible causes of the\nregression. "),(0,n.kt)("h3",{id:"new-p2p-topology-form"},"New P2P topology form"),(0,n.kt)("p",null,"The new topology file format is described in this ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/issues/4559"},"issue #4559"),"."),(0,n.kt)("h3",{id:"tracing-improvements"},"Tracing improvements"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We improved a handshake error reporting, ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4136"},"pull #4136")),(0,n.kt)("li",{parentName:"ul"},"We added ",(0,n.kt)("inlineCode",{parentName:"li"},"TraceDemoteLocalAsynchronous")," rendered as ",(0,n.kt)("inlineCode",{parentName:"li"},"DemoteLocalAsynchronous"),"\nin ",(0,n.kt)("inlineCode",{parentName:"li"},"json")," format, ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4127"},"pull #4127"),". Such demotions should be investigated by the\npool operator. They can indicate a problem in the deployed system, but also\nthey could indicate a remote problem in arranged connections with other SPOs.")),(0,n.kt)("h3",{id:"open-source-improvements"},"Open Source Improvements"),(0,n.kt)("p",null,"We improved documentation of ",(0,n.kt)("inlineCode",{parentName:"p"},"io-sim")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"typed-protocols")," for open-source\ncontributors and/or maintenance tasks: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/22"},"pull #22"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/45"},"pull #45"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/48"},"pull #48"),". "))}h.isMDXComponent=!0},80175:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/2022-11-11-noticed-headers-55bb0b4d41e8f0cff0066e1bec91bdd2.png"}}]); \ No newline at end of file diff --git a/assets/js/b5164349.cfd9647a.js b/assets/js/b5164349.cfd9647a.js new file mode 100644 index 0000000000..460fb5206f --- /dev/null +++ b/assets/js/b5164349.cfd9647a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40176],{3905:(e,n,r)=>{r.d(n,{Zo:()=>u,kt:()=>g});var t=r(67294);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function i(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function o(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?i(Object(r),!0).forEach((function(n){a(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function c(e,n){if(null==e)return{};var r,t,a=function(e,n){if(null==e)return{};var r,t,a={},i=Object.keys(e);for(t=0;t<i.length;t++)r=i[t],n.indexOf(r)>=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t<i.length;t++)r=i[t],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=t.createContext({}),l=function(e){var n=t.useContext(s),r=n;return e&&(r="function"==typeof e?e(n):o(o({},n),e)),r},u=function(e){var n=l(e.components);return t.createElement(s.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},m=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=l(r),m=a,g=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return r?t.createElement(g,o(o({ref:n},u),{},{components:r})):t.createElement(g,o({ref:n},u))}));function g(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=m;var c={};for(var s in n)hasOwnProperty.call(n,s)&&(c[s]=n[s]);c.originalType=e,c[d]="string"==typeof e?e:a,o[1]=c;for(var l=2;l<i;l++)o[l]=r[l];return t.createElement.apply(null,o)}return t.createElement.apply(null,r)}m.displayName="MDXCreateElement"},3644:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var t=r(87462),a=(r(67294),r(3905));const i={title:"Performance & tracing update",slug:"2023-03-22-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o="High level summary",c={permalink:"/2023-03-22-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-22-performance-and-tracing.md",source:"@site/blog/2023-03-22-performance-and-tracing.md",title:"Performance & tracing update",description:"* Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.",date:"2023-03-22T00:00:00.000Z",formattedDate:"March 22, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.5,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-03-22-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-03-22-node-cli-api"},nextItem:{title:"Network Team Update",permalink:"/2023-03-21-network"}},s={authorsImageUrls:[void 0]},l=[{value:"New tracing",id:"new-tracing",level:3},{value:"GHC RTS parametrization",id:"ghc-rts-parametrization",level:3},{value:"Open Sourcing",id:"open-sourcing",level:3},{value:"General",id:"general",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],u={toc:l},d="wrapper";function p(e){let{components:n,...r}=e;return(0,a.kt)(d,(0,t.Z)({},u,r,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations."),(0,a.kt)("li",{parentName:"ul"},"New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we're currently improving documentation and creating setup guidelines for end users."),(0,a.kt)("li",{parentName:"ul"},"Analysis pipeline: Our refined metrics PR has been merged. We're working on including variance analysis to our reporting machinery."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we're laying the groundwork for enabling GHC 9.2 in our benchmarks."),(0,a.kt)("li",{parentName:"ul"},"Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.")),(0,a.kt)("h1",{id:"performance"},"Performance"),(0,a.kt)("h3",{id:"new-tracing"},"New tracing"),(0,a.kt)("p",null,"The new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe\na slight shift in the resource usage profile from memory to CPU, but no regressions in block propagation metrics. Variance was observed to be notably smaller, which gives the new system a much better predictability. From this angle, we consider the new system fit for production use."),(0,a.kt)("h3",{id:"ghc-rts-parametrization"},"GHC RTS parametrization"),(0,a.kt)("p",null,"We're currently prerforming various runs on the cluster to explore the space of different GHC RTS settings for running nodes. The main focus lies\non different configurations for the garbage collector, as well as increasing the number of CPU cores the node may use."),(0,a.kt)("h3",{id:"open-sourcing"},"Open Sourcing"),(0,a.kt)("p",null,"Our API demo has reached prototype stage, and operates on live data from the production database. Making use of the experience gained, we're refining version 1 of the API to provide optimized usability, and creating documentation that both is descriptive of the API endpoints, and focuses on practical, exemplary use cases."),(0,a.kt)("h1",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"For the new tracing system we're currently undertaking an effort to multi-layered documentation: a condensed version, as well\nas a setup guide with pragmatical focus, will be provided alongside the in-depth documentation. This effort should cater to different audiences, and provide distinct entry points\nfor users of the new system, depending on their wants and needs. "),(0,a.kt)("h1",{id:"infrastructure--analysis"},"Infrastructure & Analysis"),(0,a.kt)("h3",{id:"general"},"General"),(0,a.kt)("p",null,"Having included Conway genesis in the workbench, as a next step in future-proofing out benchmarking infrastructure, we're laying the foundation for a switch in compiler version to GHC 9.2. Additionally, we considered variance analysis of our runs to merit inclusion into our reporting pipeling - which will\nincrease confidence in specific metrics."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"We have implemented an appropriate mechanism for genesis distribution: Only after a benchmarking cluster has been deployed successfully, genesis\nis patched and uploaded to an AWS S3 bucket for the nodes to retrieve - as a final step before initiating the actual run. We're confident that this deferred approach will provide clearer evidence for genesis patches, as well as minimize startup time for all runs by factoring in deployment re-tries."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b51d04b3.05e73c61.js b/assets/js/b51d04b3.05e73c61.js new file mode 100644 index 0000000000..7c6983a3a4 --- /dev/null +++ b/assets/js/b51d04b3.05e73c61.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4855],{59030:s=>{s.exports=JSON.parse('{"label":"consensus","permalink":"/tags/consensus","allTagsPath":"/tags","count":45}')}}]); \ No newline at end of file diff --git a/assets/js/b5340a11.3e10bcc9.js b/assets/js/b5340a11.3e10bcc9.js new file mode 100644 index 0000000000..c5359aa479 --- /dev/null +++ b/assets/js/b5340a11.3e10bcc9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48542],{72988:e=>{e.exports=JSON.parse('{"permalink":"/page/10","page":10,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/9","nextPage":"/page/11","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/b57687d8.380e3cf1.js b/assets/js/b57687d8.380e3cf1.js new file mode 100644 index 0000000000..47beddbd26 --- /dev/null +++ b/assets/js/b57687d8.380e3cf1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24651],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=p(n),d=a,h=c["".concat(s,".").concat(d)]||c[d]||m[d]||i;return n?r.createElement(h,o(o({ref:t},u),{},{components:n})):r.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:a,o[1]=l;for(var p=2;p<i;p++)o[p]=n[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},17503:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const i={title:"Consensus Team Update",slug:"2023-05-31-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-31-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-31-consensus.md",source:"@site/blog/2023-05-31-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-05-31T00:00:00.000Z",formattedDate:"May 31, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.825,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-05-31-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-06-01-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-05-31-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"UTxO-HD",id:"utxo-hd",level:2},{value:"Support",id:"support",level:2}],u={toc:p},c="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the Past two weeks we drafted an implementation path for concluding that a node is caught up, which will also be used to back Network's ledger-peer selection (see ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/101"},"this issue"),"). We also carried a thorough investigation into the exact feasibility of applying the Genesis rule to certain historical parts of the chain."),(0,a.kt)("p",null,"On the UTxO-HD front, we are working on improving the ledger tables design and wrapping up the improved DB locking mechanism. We also released packages that are required not only by UTxO-HD but are already used in cardano."),(0,a.kt)("h2",{id:"utxo-hd"},"UTxO-HD"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We have a plan for making the ledger tables in UTxO-HD more ergonomic by mimicking ",(0,a.kt)("inlineCode",{parentName:"li"},"SOP")," classes like ",(0,a.kt)("inlineCode",{parentName:"li"},"HPure")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"HAp")," . In short, we implement generalised versions of important classes like ",(0,a.kt)("inlineCode",{parentName:"li"},"Applicative")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"Traversable"),".")),(0,a.kt)("h2",{id:"support"},"Support"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"fs-sim-0.1.0.2")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"fs-api-0.1.0.2")," were released, which makes them now compatible with GHC up to ",(0,a.kt)("inlineCode",{parentName:"li"},"9.6"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus-0.7.0.0")," was released for ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node")," ",(0,a.kt)("inlineCode",{parentName:"li"},"8.1"),", including query serialization fixes for backwards compatibility.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b5d3534a.b07617c8.js b/assets/js/b5d3534a.b07617c8.js new file mode 100644 index 0000000000..625dc428b1 --- /dev/null +++ b/assets/js/b5d3534a.b07617c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4295],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(f,l(l({ref:t},m),{},{components:r})):n.createElement(f,l({ref:t},m))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},57563:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-12-08-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-12-08-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08-goedel.md",source:"@site/blog/2023-12-08-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-12-08T00:00:00.000Z",formattedDate:"December 8, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.385,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-12-08-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2023-12-11-performance-and-tracing"},nextItem:{title:"Network Team Update",permalink:"/2023-12-08-network"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols, working on a\nperformance modelling paper and working on a performance modelling\nprototype tool"),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"completing work on chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"proof sketch of conformance property of chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"new content for JLAMP paper")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"NWPT talk"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b6036a11.4668ab6e.js b/assets/js/b6036a11.4668ab6e.js new file mode 100644 index 0000000000..1b2cbc26c6 --- /dev/null +++ b/assets/js/b6036a11.4668ab6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[13753],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=p(n),h=o,m=c["".concat(s,".").concat(h)]||c[h]||d[h]||a;return n?r.createElement(m,i(i({ref:t},u),{},{components:n})):r.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:o,i[1]=l;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}h.displayName="MDXCreateElement"},90109:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2024-01-09-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-01-09-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-09-network.md",source:"@site/blog/2024-01-09-network.md",title:"Network Team Update",description:"High-level overview of sprint 52",date:"2024-01-09T00:00:00.000Z",formattedDate:"January 9, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.52,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-01-09-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-01-10-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-01-05-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 52",id:"high-level-overview-of-sprint-52",level:2},{value:"Detailed description",id:"detailed-description",level:2}],u={toc:p},c="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-52"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+52%22"},"sprint 52")),(0,o.kt)("p",null,"Happy New Year!"),(0,o.kt)("p",null,"In this short sprint we analysed a failure which happened on a new large\ncluster that's run by IOG. The process exhausted all file handles and was left\nwithout any functional connections. The issues apparently is rare, and thus\ndoesn't impose a high risk."),(0,o.kt)("p",null,"We also continued working on ",(0,o.kt)("inlineCode",{parentName:"p"},"tx-submission"),": ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network-3311"),"."),(0,o.kt)("h2",{id:"detailed-description"},"Detailed description"),(0,o.kt)("p",null,"It turned out that the process exhausted the number of file handles leaking\nmultiple ",(0,o.kt)("inlineCode",{parentName:"p"},"/proc/{PID}/stat")," files open. We suspect that the bug is caused by"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"using lazy IO in ",(0,o.kt)("inlineCode",{parentName:"li"},"iohk-monitoring-framework"),", and"),(0,o.kt)("li",{parentName:"ul"},"using a recent kernel version")),(0,o.kt)("p",null,"With lazy IO file handles are read as long as the data is required and they are\nclosed only when ",(0,o.kt)("inlineCode",{parentName:"p"},"EOF")," is reached. We currently suspect that a new linux kernel\nadded something at the end of the ",(0,o.kt)("inlineCode",{parentName:"p"},"/proc/{PID}/stat")," which is not parsed by\n",(0,o.kt)("inlineCode",{parentName:"p"},"iohk-monitoring-framework"),", so whenever the file is read we leak it (it's\nnever closed) and eventually, there are no file handles to be used by the\nnetwork layer: the ",(0,o.kt)("inlineCode",{parentName:"p"},"accept")," loop doesn't return any inbound connection, neither\nan outbound connection can be created. This issue will be addressed by the\nprofiling team (which owns the logging subsystem)."),(0,o.kt)("p",null,"The fix will be proposed in the future release, in the meantime we suggest to\nkeep observing file handles used by the node."),(0,o.kt)("p",null,"I would like to thank John Lotoski (IOG), Karl Knutsson (CF), Neil Davies\n(PNSol) and Michael Karg (IOG) who all contributed to this analysis."),(0,o.kt)("p",null,"While analysing the log we also found a few smaller issues in the outbound\ngovernor which were fixed in ","[ouroboros-network-#4764]","."),(0,o.kt)("p",null,"The IO error indicating exhausting file handles is not currently visible. It\nis not re-thrown nor logged. This needs to be fixed in a future version. See\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4769"},"ouroboros-network-4769"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b646abd3.7c750d3b.js b/assets/js/b646abd3.7c750d3b.js new file mode 100644 index 0000000000..808c043341 --- /dev/null +++ b/assets/js/b646abd3.7c750d3b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52399],{28146:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/b6472136.dbd35dbc.js b/assets/js/b6472136.dbd35dbc.js new file mode 100644 index 0000000000..d711f0f1fa --- /dev/null +++ b/assets/js/b6472136.dbd35dbc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40586],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),s=p(a),m=r,h=s["".concat(c,".").concat(m)]||s[m]||u[m]||o;return a?n.createElement(h,i(i({ref:t},d),{},{components:a})):n.createElement(h,i({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=a[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},91332:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2024-04-27-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2024-04-27-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-26-node-cli-api.md",source:"@site/blog/2024-04-26-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-04-26T00:00:00.000Z",formattedDate:"April 26, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.69,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-04-27-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-04-30-mithril"},nextItem:{title:"SRE Team Update",permalink:"/2024-04-26-sre"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],d={toc:p},s="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(s,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2024-04-16---2024-04-26"},"2024-04-16 - 2024-04-26"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/releases/tag/8.10.1-pre"},"8.10.1-pre")," was released to SanchoNet. "),(0,r.kt)("p",null,"The team continues focused on implementing tests for the Conway era on the cardano-node repository. This sprint the team made various improvements to\nCI pipelines on cardano-cli. "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Cardano-cli: implemented ",(0,r.kt)("inlineCode",{parentName:"li"},"build-estimate")," to facilitate automatic transaction balancing without access to a live node; and added ",(0,r.kt)("inlineCode",{parentName:"li"},"minFeeRefScriptCostPerByte")," as an option to ",(0,r.kt)("inlineCode",{parentName:"li"},"create-protocol-parameters-update")," command. ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5794"},"version bumps for 8.10.1-pre")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5802"},"Rename new 'can_forge_blocks' metric to 'forging_enabled'"))),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/736"},"add minFeeRefScriptCostPerByte to create-protocol-param-update + bump cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/728"},"Introduce new ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli latest transaction build-estimate")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/726"},"Fix misunderstanding in generated README")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/724"},"Better use of golden files in CI"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/526"},"cardano-api 8.45.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/524"},"adding MinFeeRefScriptCostPerByte to Conway PParams"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5791"},"Use random port number when starting cardano-testnet"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b65e5ec2.08045cd3.js b/assets/js/b65e5ec2.08045cd3.js new file mode 100644 index 0000000000..0f3223832d --- /dev/null +++ b/assets/js/b65e5ec2.08045cd3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15715],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},m=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,m=c(e,["components","mdxType","originalType","parentName"]),u=s(n),d=a,h=u["".concat(l,".").concat(d)]||u[d]||p[d]||i;return n?r.createElement(h,o(o({ref:t},m),{},{components:n})):r.createElement(h,o({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,o[1]=c;for(var s=2;s<i;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},79198:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-09-07-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,c={permalink:"/2023-09-07-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-07-performance-and-tracing.md",source:"@site/blog/2023-09-07-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-09-07T00:00:00.000Z",formattedDate:"September 7, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.3,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-09-07-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-09-07-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2023-09-06-consensus"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:s},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've performed and analysed feature benchmarks for both UTxO-HD and the current P2P stack."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: Various improvements of our analysis pipeline have been merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master"),", supporting safe log truncation."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Namespace consistency checks have been merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master")," along with a curated configuration for benchmarking."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: We're productively using the new backend to measure new vs. legacy tracing system, adding many quality-of-life improvements.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've completed various runs and analyses targeting two distinct features of the node: UTxO-HD and Peer2Peer. "),(0,a.kt)("p",null,"With our UTxO-HD benchmark we could clearly localize one point where this new way of maintaining ledger state is still costly, but at the same time confirm that in basically all other aspects UTxO-HD makes no difference in performance. "),(0,a.kt)("p",null,"The Peer2Peer benchmarks focused on the effects that enabling this feature on a block producing node has on propagation times, as well as scrutinized a proposed change to the Peer2Peer network stack."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"As a result of optimizing in-memory representation of log objects, which are constructed from a node's traces, we can now analyse runs that last longer in total. For runs that exceed their expected duration, analysis now supports a truncation\noperation that keeps the interdependencies of block events intact. "),(0,a.kt)("p",null,"Truncation might happen at a slightly different point\nin time - and therefore in its log object stream - for each node in the cluster. An additional step validating the block hash timeline of the cluster has been implemented for the pipeline. It provides early feedback on whether a specific truncation will lead to a valid full analysis, which requires much more time."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"Consistency checking of namespace implementation and configuration when using the new system has been completed.\nThis feature enables feedback on when tracer implementation details in some component might have changed. It's also able to detect when a configuration used for operating a ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," shows inconsistencies with the namespaces the system provides - and hence needs attention. "),(0,a.kt)("p",null,"Furthermore, we've created a fine-grained configuration of the new system that caters to benchmarking's need of very many\ndetailed trace messages. It's aimed at mirroring the same amount of trace messages, and information, we're seeing from our usage of the legacy system; an important step in making benchmarks between systems comparable."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"The new backend is currently being used for further validation with regard to the existing cluster. Additionally, we're using it in production mode to comparatively benchmark both tracing systems after merging past month's optimizations - which is the\nfirst real-life application of the nomad cluster. Hands-on experience in that phase translates into many small improvements which can be immediately applied to enhance user experience for the new backend."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b66964f6.1fa83ff2.js b/assets/js/b66964f6.1fa83ff2.js new file mode 100644 index 0000000000..78e30d952c --- /dev/null +++ b/assets/js/b66964f6.1fa83ff2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54933],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),c=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,h=p["".concat(i,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},u),{},{components:n})):r.createElement(h,s({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[p]="string"==typeof e?e:a,s[1]=l;for(var c=2;c<o;c++)s[c]=n[c];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},89417:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-05-29-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,l={permalink:"/2024-05-29-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-29-consensus.md",source:"@site/blog/2024-05-29-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-05-29T00:00:00.000Z",formattedDate:"May 29, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.285,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-05-29-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-06-05-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2024-05-29-mithril"}},i={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Updated UTXO-HD to use simple diffs which drastically improved the mempool benchmarks (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/1114"},"#1114"),")."),(0,a.kt)("li",{parentName:"ul"},"Helped ",(0,a.kt)("inlineCode",{parentName:"li"},"quickcheck-state-machine")," to release version 0.10.0 (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/stevana/quickcheck-state-machine/pull/48"},"#48"),"). We rely on this library for our high-assurance property-tests."),(0,a.kt)("li",{parentName:"ul"},"Rebased UTXO-HD on top of node 8.11 (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1121"},"#1121"),"). A replay with the in-memory backend took 5:05 hours up to slot 124M.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b69dce12.7dc90f2b.js b/assets/js/b69dce12.7dc90f2b.js new file mode 100644 index 0000000000..4f92cbb278 --- /dev/null +++ b/assets/js/b69dce12.7dc90f2b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3986],{25003:a=>{a.exports=JSON.parse('{"label":"crypto","permalink":"/tags/crypto","allTagsPath":"/tags","count":18}')}}]); \ No newline at end of file diff --git a/assets/js/b6ef4fcb.f86d4c42.js b/assets/js/b6ef4fcb.f86d4c42.js new file mode 100644 index 0000000000..f5eddd8bb9 --- /dev/null +++ b/assets/js/b6ef4fcb.f86d4c42.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53516],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var d=r.createContext({}),s=function(e){var t=r.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},h=function(e){var t=s(e.components);return r.createElement(d.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,d=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),p=s(a),u=n,m=p["".concat(d,".").concat(u)]||p[u]||c[u]||o;return a?r.createElement(m,i(i({ref:t},h),{},{components:a})):r.createElement(m,i({ref:t},h))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=u;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var s=2;s<o;s++)i[s]=a[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},33340:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2022-12-16-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-12-16-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-16-hydra.md",source:"@site/blog/2022-12-16-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2022-12-16T00:00:00.000Z",formattedDate:"December 16, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.27,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-12-16-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-12-28-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2022-12-15-mithril"}},d={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:s},p="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on ",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/benchmarks/transaction-cost/"},"the website")," and reduced the cost for commit transactions by ~30% with the help of reference scripts."),(0,n.kt)("p",null,"The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Kicked-off Hydra Voting project with Catalyst, CF, and IO Research."),(0,n.kt)("li",{parentName:"ul"},"Reduce commit transaction costs by ~30% with reference scripts."),(0,n.kt)("li",{parentName:"ul"},"Prepared an RFP for external audit of the Hydra Head solution."),(0,n.kt)("li",{parentName:"ul"},"Fixed transaction cost benchmarks for abort tx ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/631"},"#631"),"."),(0,n.kt)("li",{parentName:"ul"},"Recorded decision to use model-based testing (",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/adr/22/"},"ADR22"),") and improved Model ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/haddock/hydra-node/tests/Hydra-Model.html"},"documentation"),".",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Concluding the first increment on ","\u201c","Validate coordinated Head protocol","\u201d"," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/194"},"#194"),"."),(0,n.kt)("li",{parentName:"ul"},"Formulated next step / follow-up on testing the Soundness property of our protocol ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/656"},"#656"),"."))),(0,n.kt)("li",{parentName:"ul"},"Switched to using nix flakes for development setup and CI build ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/646"},"#646"),".")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Push ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/blob/7e532bd1c8a840a8155cf4b0858b982308dfc3f0/docs/adr/CloseTx-validity-bounds-and-deadline-calculation-DoS.md"},"ADR21")," & tx validity gap over the finish line (smoke tests missing)."),(0,n.kt)("li",{parentName:"ul"},"Integrate the ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-tutorial"),"."),(0,n.kt)("li",{parentName:"ul"},"Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec."),(0,n.kt)("li",{parentName:"ul"},"Close & recap on the year with another monthly report (+ blog post).")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b76ef772.50801d41.js b/assets/js/b76ef772.50801d41.js new file mode 100644 index 0000000000..99688ec2bb --- /dev/null +++ b/assets/js/b76ef772.50801d41.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4498],{6196:a=>{a.exports=JSON.parse('{"label":"mithril","permalink":"/tags/mithril","allTagsPath":"/tags","count":63}')}}]); \ No newline at end of file diff --git a/assets/js/b78698d9.def10593.js b/assets/js/b78698d9.def10593.js new file mode 100644 index 0000000000..368f7a211a --- /dev/null +++ b/assets/js/b78698d9.def10593.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[33288],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(a),m=r,s=d["".concat(p,".").concat(m)]||d[m]||h[m]||o;return a?n.createElement(s,l(l({ref:t},c),{},{components:a})):n.createElement(s,l({ref:t},c))}));function s(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},52949:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-01-25-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2023-01-25-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-25-node-cli-api.md",source:"@site/blog/2023-01-25-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-01-25T00:00:00.000Z",formattedDate:"January 25, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.585,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-01-25-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-01-25-consensus"},nextItem:{title:"Crypto Team Update",permalink:"/2023-01-20-crypto"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"CI & project mainteance",id:"ci--project-mainteance",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3},{value:"cardano-testnet",id:"cardano-testnet-1",level:3}],c={toc:u},d="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-01-25---2023-02-07"},"2023-01-25 - 2023-02-07"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli query stake-snapshot")," command. "),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4853"},"Fix how changed files are selected in stylish-haskell CI check")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4755"},"Copyright updates")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4848"},"Remove hlint from nix required CI")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4838"},"Remove reconfigure-hlint.sh script")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4837"},"Fix hlint warnings")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4833"},"Implement ADR-2: Restructure modules for generators")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4803"},"Stylish Haskell in CI")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4802"},"Revert skip doc in ci")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4800"},"Skip CI on doc only changes")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4792"},"Skip CI if only changes are documentation")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4776"},"Build all of cardano-node in CI")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4766"},"Check cabal files in CI"))),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4785"},"Straight line error handling")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4787"},"New NodeToClientVersionOf typeclass")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4832"},"Remove NoImplicitPrelude from cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4809"},"Add ReaderT of NodeToClientVersion to LocalStateQueryExpr")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4808"},"Use hoistMaybe")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4788"},"Better error message for query utxo without oops"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4805"},"New query stake-snapshot integration test")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4671"},"Make leadership-schedule test less flaky"))),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h2",{id:"ci--project-mainteance"},"CI & project mainteance"),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4761"},"Fix bug in hash computation in cardano-cli genesis create-cardano")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4636"},"Cleanup exports of cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4659"},"Render consistent plutus script failure output")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4666"},"Read network ID from environment")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4647"},"CLI option to append additional signatures to a transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"Cardano ping")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4777"},"Better error message for query utxo on oops"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4763"},"Remove simple script distinction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4753"},"Export SubmitResult from Cardano.Api"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))),(0,r.kt)("h3",{id:"cardano-testnet-1"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4845"},"Use Haskell variables for passing values"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b7dd63dc.7b0b3e49.js b/assets/js/b7dd63dc.7b0b3e49.js new file mode 100644 index 0000000000..86669bcf75 --- /dev/null +++ b/assets/js/b7dd63dc.7b0b3e49.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11400],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var h=n.createContext({}),p=function(e){var t=n.useContext(h),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(h.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,h=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=p(a),m=r,c=d["".concat(h,".").concat(m)]||d[m]||s[m]||o;return a?n.createElement(c,i(i({ref:t},u),{},{components:a})):n.createElement(c,i({ref:t},u))}));function c(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var h in t)hasOwnProperty.call(t,h)&&(l[h]=t[h]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=a[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},51146:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>h,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-11-10-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-11-10-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-10-hydra.md",source:"@site/blog/2023-11-10-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-11-10T00:00:00.000Z",formattedDate:"November 10, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.65,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-11-10-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-11-10-goedel"},nextItem:{title:"SRE Team Update",permalink:"/2023-11-10-sre"}},h={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],u={toc:p},d="wrapper";function s(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,'The last two weeks, the Hydra team achieved several milestones. They published\nthe monthly report for October, providing updates on project developments. The\nteam delivered a presentation and workshop at the Cardano Summit, contributing\nto community engagement. They implemented a \\"dirt road\\" solution for the\n\\"Ignored init tx\\" notification and moved the ',(0,r.kt)("inlineCode",{parentName:"p"},"hydra-poll")," example project to a\ndedicated repository. Additionally, the team built a ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-chain-observer")," tool\nfor Hydra Heads, updated the toolchain to GHC 9.6.3, and made various\nimprovements to tooling and code formatting. They addressed specific issues,\nsuch as fixing the ",(0,r.kt)("inlineCode",{parentName:"p"},"gen-hydra-keys")," command and resolving concerns with the\nrewritten ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-tui"),". The team also enhanced the ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-cluster")," smoke test\nsuite by fetching network configurations dynamically. Lastly, they actively\nreviewed pull requests and architectural decision records from the community,\nincluding contributions from SundaeSwap. An experiment, the Hydra tally, was\ncompleted and successfully deployed to the mainnet by the Cardano Foundation."),(0,r.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Published the monthly ",(0,r.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-10"},"report for\noctober")),(0,r.kt)("li",{parentName:"ul"},"Given a presentation / workshop at the Cardano summit\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1109"},"#1109")),(0,r.kt)("li",{parentName:"ul"},'Dirt road implementation for \\"Ignored init tx\\" notification\n',(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/529"},"#529")," (without\nstateless observation)"),(0,r.kt)("li",{parentName:"ul"},"Completed and moved ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra-poll")," example project into a\ndedicated\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra-poll"},"repository")),(0,r.kt)("li",{parentName:"ul"},"Built a first version of a chain observation tool for Hydra Heads\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1096"},"#1096")),(0,r.kt)("li",{parentName:"ul"},"Switched toolchain to GHC 9.6.3 and various improvements on tooling\nand code formatting\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1135"},"#1135"),(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1152"},"#1152"),(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1151"},"#1151"),(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1154"},"#1154")),(0,r.kt)("li",{parentName:"ul"},"Fix ",(0,r.kt)("inlineCode",{parentName:"li"},"gen-hydra-keys")," command to not overwrite existing\nkeys ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1136"},"#1136")),(0,r.kt)("li",{parentName:"ul"},"Fixed the rewritten ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra-tui"),(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1113"},"#1113"),(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1137"},"#1137")),(0,r.kt)("li",{parentName:"ul"},"Fetch network configurations instead of packaging them into\nhydra-cluster (smoke) test suite\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1156"},"#1156")),(0,r.kt)("li",{parentName:"ul"},"Reviewing PRs and ADRs from the community (SundaeSwap)\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1118"},"#1118"),(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1157"},"#1157")),(0,r.kt)("li",{parentName:"ul"},"Hydra tally experiment (Cardano Foundation) deployed to mainnet")),(0,r.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Tackle reported bugs"),(0,r.kt)("li",{parentName:"ul"},"Shepherd contributed off-line mode PR to the main codeline"),(0,r.kt)("li",{parentName:"ul"},"Improve chain observation tool to include more data and refactor\nexisting code towards more stateless observation"),(0,r.kt)("li",{parentName:"ul"},"Start work on incremental decommits")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b836e3b2.56baecdb.js b/assets/js/b836e3b2.56baecdb.js new file mode 100644 index 0000000000..c218b3d30b --- /dev/null +++ b/assets/js/b836e3b2.56baecdb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[85606],{50468:e=>{e.exports=JSON.parse('{"permalink":"/page/63","page":63,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/62","nextPage":"/page/64","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/b88c8fa9.ff81611b.js b/assets/js/b88c8fa9.ff81611b.js new file mode 100644 index 0000000000..e0ba0510df --- /dev/null +++ b/assets/js/b88c8fa9.ff81611b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[42190],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(a),s=r,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,l(l({ref:t},c),{},{components:a})):n.createElement(h,l({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},22750:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-12-14-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2022-12-14-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-14-node-cli-api.md",source:"@site/blog/2022-12-14-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2022-12-14T00:00:00.000Z",formattedDate:"December 14, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.46,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-12-14-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2022-12-14-db-sync"},nextItem:{title:"Performance & tracing update",permalink:"/2022-12-14-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"CI & project mainteance",id:"ci--project-mainteance",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3},{value:"cardano-testnet",id:"cardano-testnet-1",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2022-12-14---2022-12-27"},"2022-12-14 - 2022-12-27"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped. "),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4703"},"Move style guide to wiki"))),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4734"},"Cache secp256k1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4717"},"Use cabal-cache")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4699"},"build(deps): bump certifi from 2020.4.5.2 to 2022.12.7 in /doc/.sphinx")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4724"},"Update cabal.project"))),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4125"},"Add aarch64-darwin to nix-shell"))),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4626"},"Improved error message for failed asset name decode")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4250"},"Optimise query leadership schedule command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4700"},"Remove cardano-cli address build-script"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4698"},"Move signing key reading to cardano-api"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4712"},"Only run chairman test on latest era")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4679"},"Add fix and test for ",(0,r.kt)("inlineCode",{parentName:"a"},"foldBlocks")))),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h2",{id:"ci--project-mainteance"},"CI & project mainteance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4755"},"Copyright updates"))),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4250"},"Optimise query leadership schedule command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4179"},"Optimise query stake snapshot command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4659"},"Render consistent plutus script failure output")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4666"},"Read network ID from environment")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4647"},"CLI option to append additional signatures to a transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"Cardano ping"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))),(0,r.kt)("h3",{id:"cardano-testnet-1"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4636"},"Cleanup exports of cardano-testnet"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b8a3fbda.8c4d8c2a.js b/assets/js/b8a3fbda.8c4d8c2a.js new file mode 100644 index 0000000000..9b915b91fb --- /dev/null +++ b/assets/js/b8a3fbda.8c4d8c2a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7741],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(f,l(l({ref:t},m),{},{components:r})):n.createElement(f,l({ref:t},m))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},68986:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-09-29-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-09-29-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-29-goedel.md",source:"@site/blog/2023-09-29-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-09-29T00:00:00.000Z",formattedDate:"September 29, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.42,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-09-29-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-10-02-network"},nextItem:{title:"Hydra Team Update",permalink:"/2023-09-29-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and testing the\nperformance analysis tool"),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"drafting processs calculus semantics of mini protocol programs")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"testing the new performance modelling tool")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"further work on specification of mini protocols")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"extension of mini protocol framework to support communication of\nprograms with local environments via synchronous channels"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b8bcf1d1.efb881c7.js b/assets/js/b8bcf1d1.efb881c7.js new file mode 100644 index 0000000000..b3b75a97c7 --- /dev/null +++ b/assets/js/b8bcf1d1.efb881c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73277],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),u=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(r),m=n,d=p["".concat(s,".").concat(m)]||p[m]||h[m]||i;return r?a.createElement(d,o(o({ref:t},c),{},{components:r})):a.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<i;u++)o[u]=r[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},98981:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-02-03-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-02-03-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-03-crypto.md",source:"@site/blog/2023-02-03-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-02-03T00:00:00.000Z",formattedDate:"February 3, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:2.47,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-02-03-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-02-08-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-02-03-goedel"}},s={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"MuSig2",id:"musig2",level:3}],c={toc:u},p="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril. "),(0,n.kt)("li",{parentName:"ul"},"cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting. "),(0,n.kt)("li",{parentName:"ul"},"KES agent: using snockets and making things testable in IOSim "),(0,n.kt)("li",{parentName:"ul"},"MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/722"},"PR#722")),(0,n.kt)("li",{parentName:"ul"},"We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper."),(0,n.kt)("li",{parentName:"ul"},"We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381. "),(0,n.kt)("li",{parentName:"ul"},"The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner."),(0,n.kt)("li",{parentName:"ul"},"The update VRF ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/341"},"PR#341")," is finally merged, and we are ready to merge ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/344"},"PR#344"),", which implements conversion functions from the compatible types between Praos and PraosBatchCompat.")),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Use of snockets to send the data directly from the socket to secure memory. "),(0,n.kt)("li",{parentName:"ul"},"We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives"),(0,n.kt)("li",{parentName:"ul"},"Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.")),(0,n.kt)("h3",{id:"musig2"},"MuSig2"),(0,n.kt)("p",null,"The GitHub Action ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/fernandrone/linelint"},"linelint")," is used to check the files."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new job for linting is added to the file ",(0,n.kt)("inlineCode",{parentName:"li"},"/.github/workflows/ci.yml"),". The rules are configured in the file ",(0,n.kt)("inlineCode",{parentName:"li"},"/.github/workflows/.linelint.yml"),". Some files from the configuration of ",(0,n.kt)("inlineCode",{parentName:"li"},"libsecp")," were failing, so in the rules in ",(0,n.kt)("inlineCode",{parentName:"li"},".linelint.yml")," the failing files are denoted to be ignored by the linter."),(0,n.kt)("li",{parentName:"ul"},"Folders are reorganized. We created a folder to handle the example. This folder includes the ",(0,n.kt)("inlineCode",{parentName:"li"},"examplemusig2.c"),", a distinct ",(0,n.kt)("inlineCode",{parentName:"li"},"config.h"),", and ",(0,n.kt)("inlineCode",{parentName:"li"},"helper.c"),". The example is enhanced by implementing the functions in the helper for the configuration given in ",(0,n.kt)("inlineCode",{parentName:"li"},"config.h"),". The number of messages is different than the tests. The example is made more generic to run with a loop.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b8c8891e.8ce2452a.js b/assets/js/b8c8891e.8ce2452a.js new file mode 100644 index 0000000000..7d5ef85169 --- /dev/null +++ b/assets/js/b8c8891e.8ce2452a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[66282],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},13203:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-04-03-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-04-03-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-03-mithril.md",source:"@site/blog/2024-04-03-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-04-03T00:00:00.000Z",formattedDate:"April 3, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.055,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-04-03-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-04-03-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-03-30-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet"),", completed the implementation of a more versatile beaconing mechanism, worked on implementing incremental storage of transactions, and fixed the bug in the block parser that prevented some Conway transactions from being signed. Additionally, they continued working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network."),(0,i.kt)("p",null,"Finally, they enhanced the internal storage of data on the test aggregator server and addressed a source of flakiness in the CI end-to-end test."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement incremental storage of Cardano transactions in signer/aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1591"},"#1591")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Support multiple beacon types in signer/aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1562"},"#1562")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril relay broadcasts signer registrations with P2P PubSub")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1587"},"#1587")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Provide fake aggregator data in an aggregated form")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1594"},"#1594")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Some transactions are not signed in ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1577"},"#1577")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"End to end tests are flaky in CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1558"},"#1558")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"npm")," publication fails in the release workflow")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1595"},"#1595")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add indexes on foreign keys of SQLite stores")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1603"},"#1603"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b8f51c1a.e6027d86.js b/assets/js/b8f51c1a.e6027d86.js new file mode 100644 index 0000000000..9e31dc6da1 --- /dev/null +++ b/assets/js/b8f51c1a.e6027d86.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[51630],{68021:e=>{e.exports=JSON.parse('{"permalink":"/page/25","page":25,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/24","nextPage":"/page/26","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/b92c36fd.0fc75bd8.js b/assets/js/b92c36fd.0fc75bd8.js new file mode 100644 index 0000000000..e25098f3f8 --- /dev/null +++ b/assets/js/b92c36fd.0fc75bd8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52322],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),h=p(a),u=n,m=h["".concat(s,".").concat(u)]||h[u]||d[u]||i;return a?r.createElement(m,o(o({ref:t},c),{},{components:a})):r.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<i;p++)o[p]=a[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},84846:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2022-10-28-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-10-28-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-28-hydra.md",source:"@site/blog/2022-10-28-hydra.md",title:"Hydra Team Update",description:"High level summary",date:"2022-10-28T00:00:00.000Z",formattedDate:"October 28, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.795,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-10-28-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"DB Sync Team Update",permalink:"/2022-11-01-db-sync"},nextItem:{title:"Network Team Update",permalink:"/2022-10-28-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This week, the hydra team completed several user experience improvements to the\n",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-tui")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node"),", and delivered a first version of persisted head\nstates by publishing release version\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0"},(0,n.kt)("inlineCode",{parentName:"a"},"0.8.0")),".\nBesides this, they met with researchers on topic of the HeadV1 specification and\nkicked-off work on the RFP for an external audit of the Hydra Head protocol and implementation."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the UX improvements on the ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-tui")),(0,n.kt)("li",{parentName:"ul"},"Released version ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0"},(0,n.kt)("inlineCode",{parentName:"a"},"0.8.0")),", which delivers a first version of persisted head states"),(0,n.kt)("li",{parentName:"ul"},"Met with researchers on the HeadV1 specification"),(0,n.kt)("li",{parentName:"ul"},"Started work on the RFP for our external audit")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete ADR18 implementation and get it merged"),(0,n.kt)("li",{parentName:"ul"},"Start work on event-sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/580"},"#580")),(0,n.kt)("li",{parentName:"ul"},"Have a first plutus script gap closed ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/452"},"#452")),(0,n.kt)("li",{parentName:"ul"},"Revamp CI to use flakes and build macos artifacts (stretch goal: migrate to cicero for nix builds)")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b96303b2.0ca518a9.js b/assets/js/b96303b2.0ca518a9.js new file mode 100644 index 0000000000..362aac75f2 --- /dev/null +++ b/assets/js/b96303b2.0ca518a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[41092],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=p(a),m=r,h=d["".concat(c,".").concat(m)]||d[m]||u[m]||o;return a?n.createElement(h,i(i({ref:t},s),{},{components:a})):n.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=a[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},88918:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2024-05-13-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2024-05-13-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-13-node-cli-api.md",source:"@site/blog/2024-05-13-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-05-13T00:00:00.000Z",formattedDate:"May 13, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.275,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-05-13-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-05-15-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-05-10-hydra"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],s={toc:p},d="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2024-04-27---2024-05-13"},"2024-04-27 - 2024-05-13"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"Enhancements to the CLI encompass several noteworthy additions. These include the introduction of a new hardfork initiation command, rendering --prev-governance-action-tx-id optional for create-no-confidence actions, addressing scenarios where the committee is defined in the Conway Genesis file, and refining help texts. Additionally, there have been updates to the description fields in governance action files."),(0,r.kt)("p",null,"Adjust maximum understood protocol version from 9 to 10 when the experimental hardforks flag is enabled. This allows us to bypass Conway's bootstrap phase in testing"),(0,r.kt)("p",null,"Continued work in testing implementation of CIP1694 with cardano-testnet. "),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/753"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"--prev-governance-action-tx-id")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"--prev-governance-action-tx-id")," optional for ",(0,r.kt)("inlineCode",{parentName:"a"},"create-no-confidence")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/751"},"Clarify help texts related to JSON and CBOR")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/749"},"Release 8.23.0.0 + upgrade cardano-api to 8.45.2.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/748"},"Export friendly function that returns ByteString + export buildShelleyAddress")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/746"},"action create-hardfork cmd + update description fields in all governance action files.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/745"},"Export toTxOutInAnyEra")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/744"},"Enable manual specification of execution units for plutus voting and proposing scripts"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/528"},"Release cardano-api-8.45.2.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/527"},"Update estimateBalancedTxBody to account for required deposits "))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5827"},"Count votes in Propose Constitution test before ratification")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5820"},"Adjust maximum understood protocol version from 9 to 10"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5829"},"Refactor: Use KeyPair type for key pairs in cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5827"},"Count votes in Propose Constitution test before ratification")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5825"},"Disable DRep Activity test ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5824"},"Reorganize cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5821"},"cardano-testnet: Add new constitutional committee")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5818"},"Enable epoch state logging by default")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5816"},"Refactor ",(0,r.kt)("inlineCode",{parentName:"a"},"ProposeNewConstitutionSPO")," test to reuse code"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b9ad018f.d948b9d3.js b/assets/js/b9ad018f.d948b9d3.js new file mode 100644 index 0000000000..326ae3a05d --- /dev/null +++ b/assets/js/b9ad018f.d948b9d3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[44534],{91484:a=>{a.exports=JSON.parse('{"label":"db-sync","permalink":"/tags/db-sync","allTagsPath":"/tags","count":16}')}}]); \ No newline at end of file diff --git a/assets/js/b9b1b0de.c61c688f.js b/assets/js/b9b1b0de.c61c688f.js new file mode 100644 index 0000000000..5fde716bb0 --- /dev/null +++ b/assets/js/b9b1b0de.c61c688f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15286],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=u(n),d=a,f=m["".concat(l,".").concat(d)]||m[d]||p[d]||s;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var u=2;u<s;u++)o[u]=n[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},49167:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const s={title:"Consensus Team Update",slug:"2024-07-10-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2024-07-10-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-10-consensus.md",source:"@site/blog/2024-07-10-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-07-10T00:00:00.000Z",formattedDate:"July 10, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.305,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-07-10-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-07-17-mithril"},nextItem:{title:"Mithril Team Update",permalink:"/2024-07-10-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},m="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Assisted with Node release 9.0:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Performed security audits, engaged with other teams, implemented improvements, and released Consensus packages."))),(0,a.kt)("li",{parentName:"ul"},"We are now running additional ",(0,a.kt)("inlineCode",{parentName:"li"},"NoThunks")," tests, which help us safeguard against memory leaks in the node."),(0,a.kt)("li",{parentName:"ul"},"Reviewed ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1113"},"Milestone 13")," of Genesis, which improves the code documentation of Genesis, and implements some fixes and optimizations.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ba0b6dbd.24053519.js b/assets/js/ba0b6dbd.24053519.js new file mode 100644 index 0000000000..9cd8e57c3c --- /dev/null +++ b/assets/js/ba0b6dbd.24053519.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[30126],{50065:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>u,contentTitle:()=>p,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var n=o(87462),a=(o(67294),o(3905)),r=o(22004);const i={title:"Network Team Update",slug:"2022-08-12-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},p=void 0,s={permalink:"/2022-08-12-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-08-12-network.md",source:"@site/blog/2022-08-12-network.md",title:"Network Team Update",description:"The networking team took an active part in the project iteration (PI) planning",date:"2022-08-12T00:00:00.000Z",formattedDate:"August 12, 2022",tags:[{label:"network",permalink:"/tags/network"}],readingTime:.88,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-08-12-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-08-31-consensus"}},u={authorsImageUrls:[void 0]},l=[],k={toc:l},h="wrapper";function m(t){let{components:e,...o}=t;return(0,a.kt)(h,(0,n.Z)({},k,o,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The networking team took an active part in the project iteration (PI) planning\nsession, see cardano-node ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/39"},"backlog")," for detailed\noutcomes."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We started working on a detailed design / implementation plan for gossip.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We merged ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3859"},"input-output-hk/ouroboros-network#3859")," which\nsets the ouroboros-network repository for the single relay release.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We identified a bug in the network simulator, which is fixed in the\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3852"},"input-output-hk/ouroboros-network#3852"),".\nThe above PR was reviewed.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We set the tracing configuration for nodes which we deploy and fixed and\nidentified some deployment hiccups. We identified some bugs in the RT view\nwhich were registered by the maintainers.\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network-ops/pull/4"},"input-output-hk/ouroboros-network-ops#4"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We fixed typos in network-mux library:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3921"},"input-output-hk/ouroboros-network#3921"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"For easy of debugging we renamed a trace point:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3922"},"input-output-hk/ouroboros-network#3922"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Duncan iterated on his simulation / visualisation. He also was able to\nidentify and fix a bug in the simulator. The simulation contains 50 nodes.\nDashed lines indicate and established connection, while solid lines indicate\na TCP connection with fully open TCP window."))),(0,a.kt)(r.Z,{playing:!0,controls:!0,url:"/p2p-relay3.mp4",mdxType:"ReactPlayer"}))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ba0b87b5.ceaea511.js b/assets/js/ba0b87b5.ceaea511.js new file mode 100644 index 0000000000..4cb292871c --- /dev/null +++ b/assets/js/ba0b87b5.ceaea511.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[579],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),h=a,d=u["".concat(s,".").concat(h)]||u[h]||m[h]||i;return n?r.createElement(d,o(o({ref:t},p),{},{components:n})):r.createElement(d,o({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var c=2;c<i;c++)o[c]=n[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}h.displayName="MDXCreateElement"},80291:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & Tracing Update",slug:"2024-04-19-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-04-19-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-19-performance-and-tracing.md",source:"@site/blog/2024-04-19-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-04-19T00:00:00.000Z",formattedDate:"April 19, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.735,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-04-19-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-04-19-hydra"},nextItem:{title:"Network Team Update",permalink:"/2024-04-15-network"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3},{value:"UTxO Growth",id:"utxo-growth",level:3}],p={toc:c},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've performed benchmarks and analyses for Node versions ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.2")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"8.10.0"),"."),(0,a.kt)("li",{parentName:"ul"},"Development: Design phase for implementing quick queries in the analysis pipeline has begun."),(0,a.kt)("li",{parentName:"ul"},"Workbench: We're finishing up the new features for the reporting pipeline; Haskell profile definition work is ongoing."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Improving the Prometheus output is ongoing; the node's build info will be accessible as a Prometheus label."),(0,a.kt)("li",{parentName:"ul"},"UTxO Growth: Our tooling has been augmented to support benchmarks starting with a non-empty chain.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed a full set of release benchmarks for Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.2"),". Comparing with release ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.1"),", we could not detect any performance risks for that version. "),(0,a.kt)("p",null,"The benchmarks for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.10.0")," have shown a slight improvement in the time the block forging loop needs to evaluate, whilst additionally, resource usage of the ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," process was also slightly reduced - a nice performance improvement."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Our analysis pipeline is based on batch analysis of data from over 50 cluster nodes; it consumes very large amounts of trace output ex post facto, when the actual benchmark has terminated.\nThis is very time-intensive, and not viable for obeserving an additional metric that you later on determine might need consideration. "),(0,a.kt)("p",null,"We're planning to add quick queries into a benchmarking run's trace data to our analysis pipeline. These will be structured such that parameterizable, ad-hoc querying is supported. Initial tests showed that evaluation speed\nof such queries is fast enough to merit designing a principled, and generalized, syntax for them - and a subsequent implementation."),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"The reporting pipeline has been augmented with direct support for customizable, and stylable, TeX rendering - currently receiving final touches. "),(0,a.kt)("p",null,"Porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is ongoing work. It is our goal to both increase reliable profile definition and validation, and\nfacilitate usage by engineers less familiar with the workbench."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The work to improve system metrics as presented to Prometheus is still ongoing. Type annotations, as well as introducing Prometheus labels for certain metrics to convey (like e.g. build information), will make that interface\nmore versatile. It also facilitates configuration of monitoring or dashboards like Grafana on top of those Prometheus metrics."),(0,a.kt)("h3",{id:"utxo-growth"},"UTxO Growth"),(0,a.kt)("p",null,"For the UTxO scaling benchmarks, we've augmented the workbench with the capability to support injection of a custom synthesized chain into the deployment, and start a benchmark only after replaying that chain - whereas\nour benchmarks usually start just with a genesis block. "),(0,a.kt)("p",null,"To achieve that, different components of our tooling needed addition of features: distributing that chain to the node cluster, having analysis work without necessarily providing trace evidence of each block in the chain being forged by a benchmarking node. Cluster timing had to be adjusted to account for the gap between genesis start time and the chain tip. However, this entire mechanism opens up the possibility of having a very distinct ledger state at hand for a benchmark - one, that's been particularly crafted via a series of\npre-defined transactions constituting the blocks during creation of the synthesized chain. "),(0,a.kt)("p",null,"In the future, we plan to flesh out a more general design of that mechanism, which currently is tied to a very specific use case only."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ba2ecd41.484dbb30.js b/assets/js/ba2ecd41.484dbb30.js new file mode 100644 index 0000000000..8c7da9fbaa --- /dev/null +++ b/assets/js/ba2ecd41.484dbb30.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[88204],{57280:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/5","page":5,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/4","nextPage":"/tags/hydra/page/6","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ba740fe3.d3768b21.js b/assets/js/ba740fe3.d3768b21.js new file mode 100644 index 0000000000..4c5a49272a --- /dev/null +++ b/assets/js/ba740fe3.d3768b21.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[10025],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var i=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,i,r=function(e,t){if(null==e)return{};var n,i,r={},a=Object.keys(e);for(i=0;i<a.length;i++)n=a[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=i.createContext({}),p=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(n),c=r,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return n?i.createElement(d,o(o({ref:t},u),{},{components:n})):i.createElement(d,o({ref:t},u))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:r,o[1]=l;for(var p=2;p<a;p++)o[p]=n[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,n)}c.displayName="MDXCreateElement"},34207:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=n(87462),r=(n(67294),n(3905));const a={title:"Mithril Team Update",slug:"2024-02-28-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-02-28-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-28-mithril.md",source:"@site/blog/2024-02-28-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-02-28T00:00:00.000Z",formattedDate:"February 28, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:2,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-02-28-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-02-28-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2024-02-23-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...n}=e;return(0,r.kt)(h,(0,i.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,r.kt)("p",null,"This week the Mithril team announced the release of a new ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2408.0"},(0,r.kt)("inlineCode",{parentName:"a"},"Mithril distribution 2408.0")),". This release includes several critical updates and enhancements, such as improved support for stake distribution, Mithril era markers retrieval in the Pallas chain observer, enhanced support for the Conway era and Sanchonet network, as well as various bug fixes and performance improvements.\nIn addition, the team has made changes to the Mithril client CLI, changing the log output from ",(0,r.kt)("inlineCode",{parentName:"p"},"stdout")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"stderr")," from ",(0,r.kt)("inlineCode",{parentName:"p"},"v0.7.0"),". This announcement was made in the ",(0,r.kt)("a",{parentName:"p",href:"https://mithril.network/doc/dev-blog/2024/02/26/mithril-client-cli-output-breaking-change"},"developer blog post"),"."),(0,r.kt)("p",null,"The team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the support for the verification in the browser with the WASM client, they worked on enhancing the associated client CLI API, and implemented smoke tests. Additionally, the team has activated the signature of Cardano transactions on the ",(0,r.kt)("inlineCode",{parentName:"p"},"testing-sanchonet")," network, and they have investigated a bug that prevents the signature of some transactions on this network."),(0,r.kt)("p",null,"Finally, the team worked on reorganizing the repository structure, fixed an issue with test folder generation on MacOS, and worked on some documentation improvements."),(0,r.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2408.0"},(0,r.kt)("inlineCode",{parentName:"a"},"2408.0"))),(0,r.kt)("li",{parentName:"ul"},"Publication of a ",(0,r.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/02/08/testing-sanchonet-network-available"},"dev blog post")," about the ",(0,r.kt)("strong",{parentName:"li"},"Mithril SanchoNet network release"),"."),(0,r.kt)("li",{parentName:"ul"},"Publication of a ",(0,r.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/02/26/mithril-client-cli-output-breaking-change"},"dev blog post")," about a ",(0,r.kt)("strong",{parentName:"li"},"breaking change in the Mithril client CLI"),"."),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Implement ",(0,r.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," commands in the client binary")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1469"},"#1469")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Implement ",(0,r.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," verification in the WASM client")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1470"},"#1470")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Some end to end tests are flaky in the CI")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1147"},"#1147")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Release ",(0,r.kt)("inlineCode",{parentName:"strong"},"2408")," distribution")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1500"},"#1500")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Unify test folder generation")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1508"},"#1508")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Adapt Mithril Client multi-platform test for Cardano Transactions")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1510"},"#1510")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Document Mithril signer footprint")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1519"},"#1519")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Add a runbook for running Client multi-platform tests")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1530"},"#1530")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Update workflow github actions to node-20")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1520"},"#1520")),(0,r.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,r.kt)("strong",{parentName:"li"},"Cardano transactions are not all signed in ",(0,r.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1537"},"#1537")),(0,r.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,r.kt)("strong",{parentName:"li"},"Make HTTP server tests more robust")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1524"},"#1524")),(0,r.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,r.kt)("strong",{parentName:"li"},"Stabilize namings in ",(0,r.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," API")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1535"},"#1535")),(0,r.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,r.kt)("strong",{parentName:"li"},"Reorganize crates in the repository")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1528"},"#1528")),(0,r.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,r.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,r.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,r.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ba7f9bb8.fb65d4a8.js b/assets/js/ba7f9bb8.fb65d4a8.js new file mode 100644 index 0000000000..bbff8c5824 --- /dev/null +++ b/assets/js/ba7f9bb8.fb65d4a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[83879],{39700:e=>{e.exports=JSON.parse('{"permalink":"/page/82","page":82,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/81","nextPage":"/page/83","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/bafef0bd.edb8bcfc.js b/assets/js/bafef0bd.edb8bcfc.js new file mode 100644 index 0000000000..fc2d01edd8 --- /dev/null +++ b/assets/js/bafef0bd.edb8bcfc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24801],{51628:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/4","page":4,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/3","nextPage":"/tags/hydra/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/bb016389.21034aff.js b/assets/js/bb016389.21034aff.js new file mode 100644 index 0000000000..1aad709b65 --- /dev/null +++ b/assets/js/bb016389.21034aff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[69088],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),p=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=p(r),m=n,h=d["".concat(c,".").concat(m)]||d[m]||u[m]||o;return r?a.createElement(h,l(l({ref:t},s),{},{components:r})):a.createElement(h,l({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var p=2;p<o;p++)l[p]=r[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},36690:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2024-02-09-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-02-09-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/hydra-2024-02-09.md",source:"@site/blog/hydra-2024-02-09.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-02-09T00:00:00.000Z",formattedDate:"February 9, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.64,hasTruncateMarker:!1,authors:[{name:"Daniel Firth",title:"Hydra Software Engineer",url:"https://github.com/locallycompact",imageURL:"https://github.com/locallycompact.png",key:"locallycompact"}],frontMatter:{title:"Hydra Team Update",slug:"2024-02-09-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-02-14-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2024-02-07-consensus"}},c={authorsImageUrls:[void 0]},p=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],s={toc:p},d="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This week, the Hydra team worked on forward compatibility for Conway support, deployed the hydra explorer tool, and improved the model based testing to support more actions (Fanout and Rollbacks)."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Addressed flakyness in two types of integration tests"),(0,n.kt)("li",{parentName:"ul"},"Fixed our tooling (HLS 2.6 on GHC 9.6.4)"),(0,n.kt)("li",{parentName:"ul"},"Fixed configuration of running head in preview"),(0,n.kt)("li",{parentName:"ul"},"Added Fanout and Rollbacks to our Model basd test suite #1296"),(0,n.kt)("li",{parentName:"ul"},"Deployed the hydra explorer to ",(0,n.kt)("a",{parentName:"li",href:"http://explorer.hydra.family:9090/heads"},"http://explorer.hydra.family:9090/heads")," (url will change a bit more)"),(0,n.kt)("li",{parentName:"ul"},"Updated smoke test to run sanchonet")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fix the fanout after contest bug "),(0,n.kt)("li",{parentName:"ul"},"Specify the on-chain validators for incremental decommits"),(0,n.kt)("li",{parentName:"ul"},"Complete smoke tests on sanchonet")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bb33890e.8411879d.js b/assets/js/bb33890e.8411879d.js new file mode 100644 index 0000000000..addafb0cff --- /dev/null +++ b/assets/js/bb33890e.8411879d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1866],{75086:e=>{e.exports=JSON.parse('{"permalink":"/tags/consensus/page/4","page":4,"postsPerPage":5,"totalPages":9,"totalCount":45,"previousPage":"/tags/consensus/page/3","nextPage":"/tags/consensus/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/bb44f9e3.bb0787da.js b/assets/js/bb44f9e3.bb0787da.js new file mode 100644 index 0000000000..6e06bfc31c --- /dev/null +++ b/assets/js/bb44f9e3.bb0787da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[45943],{3905:(e,t,i)=>{i.d(t,{Zo:()=>u,kt:()=>c});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?a(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):a(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){if(null==e)return{};var i,r,n=function(e,t){if(null==e)return{};var i,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(i),d=n,c=h["".concat(s,".").concat(d)]||h[d]||m[d]||a;return i?r.createElement(c,o(o({ref:t},u),{},{components:i})):r.createElement(c,o({ref:t},u))}));function c(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,o=new Array(a);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=i[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,i)}d.displayName="MDXCreateElement"},90805:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-09-07-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-07-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-07-mithril.md",source:"@site/blog/2023-09-07-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-09-07T00:00:00.000Z",formattedDate:"September 7, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.53,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-09-07-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-09-08-hydra"},nextItem:{title:"Performance & tracing update",permalink:"/2023-09-07-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(h,(0,r.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team has released a new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2335.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2335.0"))," which brings enhancements to the client: support for simultaneous downloading and unpacking of the snapshot archives, support for one line command restoration of the latest snapshot, and availability of machine readable progress information."),(0,n.kt)("p",null,"They have also worked on snapshots enhancements: implementation of the ",(0,n.kt)("inlineCode",{parentName:"p"},"zstandard")," compression to produce smaller archives, and providing the version of the Cardano node used to create the archive in the snapshot artifacts. They have completed the second phase of the implementation of the stress test tool to benchamrk the aggregator. Additionally, they have kept working on refactoring and standardizing errors in the Mithril nodes."),(0,n.kt)("p",null,"Finally, they have worked on adding Cloudflare protection to the infrastructure, and they have fixed some bugs that occurred during restoration of a snapshot by a client."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Use 'zstandard' compression for snapshot archives")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/876"},"#876")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Design & implement stress test tool for aggregator - phase 2")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1155"},"#1155")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Provide progress information with '--json' option in Client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1095"},"#1095")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Make client download and extract the archive simultaneously")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1115"},"#1115")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add aggregator Cardano node version in snapshot artifact")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/948"},"#948")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Make Cardano node version part of the Mithril network configuration")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/947"},"#947")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Post deployment 'mainnet' infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1091"},"#1091")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Errors refactoring")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/798"},"#798")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add Cloudflare protection of infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/986"},"#986")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Failed to restore recent snapshot with strange error")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1160"},"#1160")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Update 'ed25519-dalek' to '2.0.0'")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1188"},"#1188")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add target networks blocks in release notes")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1151"},"#1151")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Fix end to end 'wait_for_the_expected_time' test")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1191"},"#1191")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Fix docs 'git checkout' command")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1174"},"#1174"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bb465a37.6e438bcf.js b/assets/js/bb465a37.6e438bcf.js new file mode 100644 index 0000000000..225deb59f9 --- /dev/null +++ b/assets/js/bb465a37.6e438bcf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6246],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>b});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=a.createContext({}),p=function(e){var t=a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(i.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,i=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(r),m=n,b=c["".concat(i,".").concat(m)]||c[m]||d[m]||l;return r?a.createElement(b,o(o({ref:t},u),{},{components:r})):a.createElement(b,o({ref:t},u))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=m;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[c]="string"==typeof e?e:n,o[1]=s;for(var p=2;p<l;p++)o[p]=r[p];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},12332:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>s,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const l={title:"Node Release Team Update",slug:"2023-01-13-release",authors:"disassembler",tags:["release"],hide_table_of_contents:!1},o=void 0,s={permalink:"/2023-01-13-release",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-13-release.md",source:"@site/blog/2023-01-13-release.md",title:"Node Release Team Update",description:"Node Reelease Update",date:"2023-01-13T00:00:00.000Z",formattedDate:"January 13, 2023",tags:[{label:"release",permalink:"/tags/release"}],readingTime:.64,hasTruncateMarker:!1,authors:[{name:"Samuel Leathers",title:"Service Reliability Manager",url:"https://github.com/disassembler",imageURL:"https://github.com/disassembler.png",key:"disassembler"}],frontMatter:{title:"Node Release Team Update",slug:"2023-01-13-release",authors:"disassembler",tags:["release"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-01-13-hydra"},nextItem:{title:"System Test Team Update",permalink:"/2023-01-13-system-test"}},i={authorsImageUrls:[void 0]},p=[{value:"Node Reelease Update",id:"node-reelease-update",level:2},{value:"2022-11-02 - 2023-01-13",id:"2022-11-02---2023-01-13",level:2},{value:"Executive Summary",id:"executive-summary",level:3},{value:"Completed",id:"completed",level:3},{value:"In Progress",id:"in-progress",level:3}],u={toc:p},c="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"node-reelease-update"},"Node Reelease Update"),(0,n.kt)("h2",{id:"2022-11-02---2023-01-13"},"2022-11-02 - 2023-01-13"),(0,n.kt)("h3",{id:"executive-summary"},"Executive Summary"),(0,n.kt)("p",null,"A 1.35.5 release for single relay P2P is nearly completed and should be released this month. This release is based on\n",(0,n.kt)("inlineCode",{parentName:"p"},"release/1.35")," branch and does not bump cardano-ledger."),(0,n.kt)("p",null,"The team successfully integrated an interim release bump of ledger and consensus into cardano-node master.\nThis work will not be released in a node version, but will be continued by the current dependency bump in progress."),(0,n.kt)("p",null,"We anticipate once this dependency bump is completed, regular 2 week releases will be feasible again."),(0,n.kt)("p",null,"The 1.35.4 release is being ran by more than 70% of stake pools. Planning for the mainnet hard fork date is in progress."),(0,n.kt)("h3",{id:"completed"},"Completed"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/1.35.4"},"Release 1.35.4"))),(0,n.kt)("h3",{id:"in-progress"},"In Progress"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/commits/release/1.35"},"Release 1.35.5")),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.5_rc1/src_docs/source/test_results/node/tag_1_35_5_rc1.rst"},"Test Status"))))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bbdd9b59.6a0cf5ee.js b/assets/js/bbdd9b59.6a0cf5ee.js new file mode 100644 index 0000000000..bb728f836a --- /dev/null +++ b/assets/js/bbdd9b59.6a0cf5ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67557],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=i,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},21728:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-06-05-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-06-05-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-05-mithril.md",source:"@site/blog/2024-06-05-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-06-05T00:00:00.000Z",formattedDate:"June 5, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.22,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-06-05-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-06-05-ledger"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-06-05-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They improved the throughput of the prover route of the aggregator by using resource pooling and made progress on low-latency certification by transitioning to a chain point-based beacon, which allows for faster transaction signing. They also kept investigating prover performance bottlenecks, worked on fixing a bug that caused unsigned transactions to appear as signed, and continued implementing the import of transactions with the ChainSync mini-protocol and Pallas."),(0,i.kt)("p",null,"Additionally, the team started preparing the threat modeling explainer for the documentation website and kept investigating some Cardano node error messages that could be caused by how the Pallas client handles connections to mini-protocols."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement Resource Pooling for Block Range Merkle maps")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1698"},"#1698")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Sign Cardano transactions with ChainPoint based beacon")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1697"},"#1697")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Cardano transactions prover performances drop with more than 5 transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1722"},"#1722")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Import Cardano transactions with ",(0,i.kt)("inlineCode",{parentName:"strong"},"ChainReader"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1705"},"#1705")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Client verification fails with an already stored but non certified yet transaction")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1719"},"#1719")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Computation of Merkle proof has bottleneck with multiple transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1730"},"#1730")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Release ",(0,i.kt)("inlineCode",{parentName:"strong"},"2423")," distribution")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1695"},"#1695")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bc17f22c.046a5840.js b/assets/js/bc17f22c.046a5840.js new file mode 100644 index 0000000000..9e6cad1c69 --- /dev/null +++ b/assets/js/bc17f22c.046a5840.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90605],{88366:e=>{e.exports=JSON.parse('{"permalink":"/page/5","page":5,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/4","nextPage":"/page/6","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/bc4c7bdd.92ecf0d8.js b/assets/js/bc4c7bdd.92ecf0d8.js new file mode 100644 index 0000000000..45902f3ae3 --- /dev/null +++ b/assets/js/bc4c7bdd.92ecf0d8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52680],{52120:e=>{e.exports=JSON.parse('{"permalink":"/tags/open-source","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/bc6b65d9.e576e413.js b/assets/js/bc6b65d9.e576e413.js new file mode 100644 index 0000000000..8183ba9107 --- /dev/null +++ b/assets/js/bc6b65d9.e576e413.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40160],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>d});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?a(Object(o),!0).forEach((function(t){r(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):a(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function l(e,t){if(null==e)return{};var o,n,r=function(e,t){if(null==e)return{};var o,n,r={},a=Object.keys(e);for(n=0;n<a.length;n++)o=a[n],t.indexOf(o)>=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)o=a[n],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(o),m=r,d=h["".concat(s,".").concat(m)]||h[m]||c[m]||a;return o?n.createElement(d,i(i({ref:t},u),{},{components:o})):n.createElement(d,i({ref:t},u))}));function d(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=o.length,i=new Array(a);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<a;p++)i[p]=o[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,o)}m.displayName="MDXCreateElement"},45335:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=o(87462),r=(o(67294),o(3905));const a={title:"Network Team Update",slug:"2023-03-02-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-03-02-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-02-network.md",source:"@site/blog/2023-03-02-network.md",title:"Network Team Update",description:"High level summary",date:"2023-03-02T00:00:00.000Z",formattedDate:"March 2, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.85,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-03-02-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-03-03-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2023-02-24-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Detailed work log",id:"detailed-work-log",level:2}],u={toc:p},h="wrapper";function c(e){let{components:t,...o}=e;return(0,r.kt)(h,(0,n.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"In the current sprint the networking team focused on fixing bugs and pushing\nforward implementation of eclipse evasion. We also found a bug in our\nsimulation testing setup (in integration of test node). We also overviewed the\nwork on extending handshake protocol which is delivered by Galois Inc."),(0,r.kt)("p",null,"We published ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.4.0.1")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network-protocols-0.3.0.0")," to ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages/pull/147"},"CHaP"),"."),(0,r.kt)("p",null,"We also fixed a bug in ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," which results in not being able to\nconfigure inbound connection limits, see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4902"},"PR #4902"),"."),(0,r.kt)("p",null,"Together with Karl Knutsson (CF) we realised an issue in ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli"),": it's\nvalidation of DNS names, IP address & ports when registering a stake pool\nshould be more strict to protect against common mistakes which we identified on\nthe chain. See ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/issues/4929"},"issue #4929"),"."),(0,r.kt)("h2",{id:"detailed-work-log"},"Detailed work log"),(0,r.kt)("p",null,"In ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4385"},"PR #4385")," we fixed two bugs in peer state actions. First one results in\na busy loop if demotion from hot to warm times outs. This busy loop is\neventually exited when mux exits (we reported this in our previous report).\nThis fix made it to ",(0,r.kt)("inlineCode",{parentName:"p"},"1.35.6")," release as well."),(0,r.kt)("p",null,"In addition the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4385"},"PR #4385")," also fixes another bug which results in ",(0,r.kt)("inlineCode",{parentName:"p"},"hot -> warm\n-> hot")," demotion / promotion busy loop."),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4385"},"PR #4385")," also fixed a bug in a node only used in simulation which\nresulted in not using ",(0,r.kt)("inlineCode",{parentName:"p"},"chain-sync")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"block-fetch")," mini-protocols. In the\nreview process, we realised that the header-body split in the simulated node\nrequires further work (see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4419"},"PR #4419"),", which is under review)."),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4385"},"PR #4385")," also extend our generators, which together with the above fix,\ncover the ",(0,r.kt)("inlineCode",{parentName:"p"},"hot -> warm -> hot")," demotion / promotion busy loop."),(0,r.kt)("p",null,"In ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4419"},"PR #4419")," we introduce a ",(0,r.kt)("inlineCode",{parentName:"p"},"ChainDB")," for our simulation node, which plays\nsimilar role to ",(0,r.kt)("inlineCode",{parentName:"p"},"ChainDB")," in the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),": a persistent (across\nsimulated restarts) store of blocks which does chain selection. This ensures\nthat the simulated node is using ",(0,r.kt)("inlineCode",{parentName:"p"},"block-fetch")," to download blocks announced by\n",(0,r.kt)("inlineCode",{parentName:"p"},"chain-sync")," mini-protocol."),(0,r.kt)("p",null,"We also made progress with reviewing ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"PR #4019")," - peer sharing."),(0,r.kt)("p",null,"We also fixed ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4370"},"issue #4370")," - a connection manager test failure, see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4384"},"PR #4384"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bc79ed22.48c57de0.js b/assets/js/bc79ed22.48c57de0.js new file mode 100644 index 0000000000..2c7d5b0127 --- /dev/null +++ b/assets/js/bc79ed22.48c57de0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11212],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),s=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=p(e,["components","mdxType","originalType","parentName"]),u=s(n),m=r,h=u["".concat(l,".").concat(m)]||u[m]||c[m]||o;return n?a.createElement(h,i(i({ref:t},d),{},{components:n})):a.createElement(h,i({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[u]="string"==typeof e?e:r,i[1]=p;for(var s=2;s<o;s++)i[s]=n[s];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},40450:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>p,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));const o={title:"SRE Team Update",slug:"2024-07-05-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2024-07-05-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-05-sre.md",source:"@site/blog/2024-07-05-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-07-05T00:00:00.000Z",formattedDate:"July 5, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:2.265,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-07-05-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-07-08-network"},nextItem:{title:"Ledger Team Update",permalink:"/2024-07-03-ledger"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3},{value:"Ops-lib",id:"ops-lib",level:3}],d={toc:s},u="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node ",(0,r.kt)("inlineCode",{parentName:"p"},"9.0.0")," is now deployed to mainnet, preprod, preview, private and\nshelley-qa environments. The last several weeks have been very busy with\npre-release and release activity and environment upgrades involving\ncardano-node versions ",(0,r.kt)("inlineCode",{parentName:"p"},"8.9.3"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"8.9.4"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"8.12.0-pre"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"8.12.1"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"8.12.2")," and\nnow ",(0,r.kt)("inlineCode",{parentName:"p"},"9.0.0")," as of this update.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sanchonet environment remains pinned at cardano-node version ",(0,r.kt)("inlineCode",{parentName:"p"},"8.11.0-pre")," until\nthe next respin which will support ",(0,r.kt)("inlineCode",{parentName:"p"},"9.0.0")," or greater.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Ogmios service and package options were added to cardano-parts.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Four documents were added to cardano-playground to better explain some\noperational procedures: debugging of peer-to-peer connections; governance\nvoting with the playground stakepools; faucet setup; faucet pool\nde-delegation. Found at:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-playground/tree/main/docs/explain"},"docs/explain"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"One document was added to cardano-mainnet to explain cardano-snapshot\noperations. Found at:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-mainnet/tree/main/docs/explain"},"docs/explain"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Private chain was stopped and re-spun with 2 hr epochs for testing.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Hydra and performance cluster machines had their configuration updated to be\nmore robust to transient nix store caches outages which may re-occur in the\nfuture.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"All machines in cardano-playground and cardano-mainnet clusters were updated\nto nixpkgs ",(0,r.kt)("inlineCode",{parentName:"p"},"24.05"),"."))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-node to ",(0,r.kt)("inlineCode",{parentName:"li"},"8.12.2")," as well as usage of a custom gc delay parameter\nbranch for bootstrap nodes. Updates all machines to nixpkgs to ",(0,r.kt)("inlineCode",{parentName:"li"},"24.05")," with\nopenssh ",(0,r.kt)("inlineCode",{parentName:"li"},"9.8p1"),". Adds one new explainer readme document, new alerts and various\nscript, recipe, and other improvements. See the PR description for more\ndetails:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/16"},"cardano-mainnet-pull-16"))),(0,r.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps to cardano-node ",(0,r.kt)("inlineCode",{parentName:"li"},"9.0.0"),", adds coredump metrics, adds OOM/coredump\nalerting, adjusts systemd stop timeout to avoid some unneccesary chain\nreplays:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/1fca100...7dd0502"},"cardano-ops-compare"))),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-node (release) and cardano-node-ng (pre-release) versions to\n",(0,r.kt)("inlineCode",{parentName:"li"},"8.12.2")," and cardano-db-sync-ng to ",(0,r.kt)("inlineCode",{parentName:"li"},"sancho-5-0-0"),". Updates nixpkgs to\n",(0,r.kt)("inlineCode",{parentName:"li"},"24.05"),". Includes nixosModule, dashboard, metric, alert and recipe\nimprovements and new features. More detail is available in the PR\ndescription:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/43"},"cardano-parts-pull-43"))),(0,r.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adjusts nix config to avoid R2 500 errors on transient cache problems and\nadds explorer to perf class:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/5631a13...911ec61"},"cardano-perf-compare"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-node (release) and cardano-node-ng (pre-release) versions to\n",(0,r.kt)("inlineCode",{parentName:"li"},"8.12.2")," and cardano-db-sync-ng to ",(0,r.kt)("inlineCode",{parentName:"li"},"sancho-5-0-0"),". Updates all machines to\nnixpkgs to ",(0,r.kt)("inlineCode",{parentName:"li"},"24.05")," with openssh ",(0,r.kt)("inlineCode",{parentName:"li"},"9.8p1"),". Respins private chain and KES\nrotates multiple chains. Adds four new explainer readme documents, new alerts\nand various script, recipe, and other improvements. See the PR description\nfor more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/27"},"cardano-playground-pull-27"))),(0,r.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Node 8.12 configuration changes:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/581"},"iohk-nix-pull-581"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Private chain conway configuration update post 2hr epoch repsin:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/582"},"iohk-nix-pull-582"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Adjusts p2p target number of known peers for non-block-producers:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/583"},"iohk-nix-pull-583")))),(0,r.kt)("h3",{id:"ops-lib"},"Ops-lib"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Updates deployers with recent nixpkgs, nix, refactors to preserve legacy\nnixops usage, adds starship and fzf:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ops-lib/pull/134"},"ops-lib-pull-134"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Bumps openssh to ",(0,r.kt)("inlineCode",{parentName:"p"},"9.8p1"),"\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ops-lib/pull/135"},"ops-lib-pull-135")))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bc942cd0.7d2bc2af.js b/assets/js/bc942cd0.7d2bc2af.js new file mode 100644 index 0000000000..6d8a49b1f9 --- /dev/null +++ b/assets/js/bc942cd0.7d2bc2af.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43735],{41075:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/bcc2133c.50a458c8.js b/assets/js/bcc2133c.50a458c8.js new file mode 100644 index 0000000000..887c01acc5 --- /dev/null +++ b/assets/js/bcc2133c.50a458c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[55006],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>g});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),s=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(a),m=n,g=d["".concat(u,".").concat(m)]||d[m]||c[m]||o;return a?r.createElement(g,i(i({ref:t},p),{},{components:a})):r.createElement(g,i({ref:t},p))}));function g(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[d]="string"==typeof e?e:n,i[1]=l;for(var s=2;s<o;s++)i[s]=a[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},93868:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-12-22-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-12-22-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-22-sre.md",source:"@site/blog/2023-12-22-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-12-22T00:00:00.000Z",formattedDate:"December 22, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.305,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-12-22-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-12-22-network"},nextItem:{title:"Mithril Team Update",permalink:"/2023-12-20-mithril"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Auth-keys-hub",id:"auth-keys-hub",level:3},{value:"Cardano-monitoring",id:"cardano-monitoring",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3}],p={toc:s},d="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new repository was created which enables agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-monitoring"},"cardano-monitoring")),(0,n.kt)("li",{parentName:"ul"},"The govtool backend swagger interface was nix flake packaged and deployed for Voltaire private chain testing usage"),(0,n.kt)("li",{parentName:"ul"},"Grafana cloud monitoring stacks were migrated to new EC2 cardano-monitoring servers"),(0,n.kt)("li",{parentName:"ul"},"Cardano-db-sync state snapshots now support client range requests, details ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-db-sync/issues/1552"},"here")),(0,n.kt)("li",{parentName:"ul"},"In addition to monitoring server centralized grafana metrics, sysstat collected system metrics are now available locally on all cluster machines at high time resolution"),(0,n.kt)("li",{parentName:"ul"},"Code changes required due to repository migrations to IntersectMBO have largely been completed")),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"auth-keys-hub"},"Auth-keys-hub"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Add extra nixos module assertions and warnings to address edge cases: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/auth-keys-hub/pull/6"},"auth-keys-hub-pull-6"))),(0,n.kt)("h3",{id:"cardano-monitoring"},"Cardano-monitoring"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new repository enabling agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-monitoring"},"cardano-monitoring"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Migrate from grafana cloud monitoring to ec2 monitoring, add resource tagging support, declarative route53 CNAME list, and additional improvements and fixes: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/25"},"cardano-parts-pull-25")),(0,n.kt)("li",{parentName:"ul"},"Improve ssh key handling and edge cases, resolve misc issues, add IOPS and throughput gp3 openTofu support: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/26"},"cardano-parts-pull-26"))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Migrate from grafana cloud monitoring to ec2 monitoring, add resource tagging support, declarative route53 CNAME list, and additional improvements and fixes: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/10"},"cardano-playground-pull-10")),(0,n.kt)("li",{parentName:"ul"},"Update auth-keys-hub config to address edge cases: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/11"},"cardano-playground-pull-11")),(0,n.kt)("li",{parentName:"ul"},"Add a voltaire govtool backend swagger UI for private chain, misc fixes and updates: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/12"},"cardano-playground-pull-12"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bccb35b7.d38a4b10.js b/assets/js/bccb35b7.d38a4b10.js new file mode 100644 index 0000000000..a6d0bf3328 --- /dev/null +++ b/assets/js/bccb35b7.d38a4b10.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94759],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>k});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=u(r),d=o,k=c["".concat(p,".").concat(d)]||c[d]||m[d]||a;return r?n.createElement(k,l(l({ref:t},s),{},{components:r})):n.createElement(k,l({ref:t},s))}));function k(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:o,l[1]=i;for(var u=2;u<a;u++)l[u]=r[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},19604:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(87462),o=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-05-26-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-05-26-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-26-network.md",source:"@site/blog/2023-05-26-network.md",title:"Network Team Update",description:"High level summary",date:"2023-05-26T00:00:00.000Z",formattedDate:"May 26, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:.515,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-05-26-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-05-26-ledger"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-05-24-node-cli-api"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Detailed summary",id:"detailed-summary",level:2}],s={toc:u},c="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(c,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"We continued working on ",(0,o.kt)("inlineCode",{parentName:"p"},"eclipse-evasion"),". We also analysed and fixed a bug\nwhen using DNS names in local root peers. We continued working on engineering\nblog post about P2P. We released a new version of packages for\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node-8.1.0")," release."),(0,o.kt)("p",null,"We improved our CI, removed obsolete scripts add extra validation which checks\nif ",(0,o.kt)("inlineCode",{parentName:"p"},"CHANGELOG.md")," files were updated."),(0,o.kt)("p",null,"We also improved release scripts."),(0,o.kt)("h2",{id:"detailed-summary"},"Detailed summary"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Eclipse evasion: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4462"},"#4462")),(0,o.kt)("li",{parentName:"ul"},"Local root peers bug fix: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4559"},"#4559")),(0,o.kt)("li",{parentName:"ul"},"Release to CHaP: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4573"},"#4573")),(0,o.kt)("li",{parentName:"ul"},"CI improvements: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4572"},"#4572")),(0,o.kt)("li",{parentName:"ul"},"Release script improvements: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4573"},"#4573"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bce2d096.b1a42648.js b/assets/js/bce2d096.b1a42648.js new file mode 100644 index 0000000000..565beec59b --- /dev/null +++ b/assets/js/bce2d096.b1a42648.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93213],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var a=r(67294);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){l(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,l=function(e,t){if(null==e)return{};var r,a,l={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=a.createContext({}),s=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=l,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||n;return r?a.createElement(h,i(i({ref:t},u),{},{components:r})):a.createElement(h,i({ref:t},u))}));function h(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=r.length,i=new Array(n);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var s=2;s<n;s++)i[s]=r[s];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},94899:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>n,metadata:()=>o,toc:()=>s});var a=r(87462),l=(r(67294),r(3905));const n={title:"Ledger Team Update",slug:"2024-07-03-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-07-03-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-03-ledger.md",source:"@site/blog/2024-07-03-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-07-03T00:00:00.000Z",formattedDate:"July 3, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.875,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-07-03-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-07-05-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2024-07-03-mithril"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3}],u={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,l.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"This period we added some last minute changes that were necessary for improving resilience\nand safety of Conway implementation:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Authorization of hot credentials for constitutional committee members is now only possible\nfor cold credentials that are present in the ledger state, either in the current committee\nor in one of the proposals."),(0,l.kt)("li",{parentName:"ul"},"Voting is restricted to entities that are present in the ledger state"),(0,l.kt)("li",{parentName:"ul"},"DRep votes will be removed whenever DRep unregisters"),(0,l.kt)("li",{parentName:"ul"},"Pricing model for the size of reference scripts was changed from linear to\nexponential. Moreover, extra limits on the total size of reference scripts being used\nhave been put in place.")),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4430"},"pull-4430")," - CostModel json parsing"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4438"},"pull-4438")," - Fix UTXOW era in diagrams for Conway"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4443"},"pull-4443")," - Make reference scripts fee grow exponentially with size"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4436"},"pull-4436")," - Authorize known cc members only"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4433"},"pull-4433")," - Improve resilience of future PParams"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4453"},"pull-4453")," - Tx refscript size check"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4452"},"pull-4452")," - Prevent votes for non existent entities"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4450"},"pull-4450")," - BBODY refscript size check")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4417"},"pull-4417")," - ",(0,l.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": use consistent warning pragma"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4431"},"pull-4431")," - ",(0,l.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": fix flakyness in set generator"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4312"},"pull-4312")," - Convert AlonzoValidTxUTXOW to ImpTest (Part 1)"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4386"},"pull-4386")," - Increase the size of the committee for testing"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4425"},"pull-4425")," - Conformance test plumbing: EPOCH"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4442"},"pull-4442")," - Update executable-spec SRP"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4405"},"pull-4405")," - Add more scripts to alonzo utxosspec"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4445"},"pull-4445")," - Conformance tests plumbing: ",(0,l.kt)("inlineCode",{parentName:"li"},"NEWEPOCH")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4460"},"pull-4460")," - Remove unnecessary allocation in non-integral reference code"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4457"},"pull-4457")," - Conformance: POOL: Translate and adjust")),(0,l.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4429"},"pull-4429")," - Bump ",(0,l.kt)("inlineCode",{parentName:"li"},"CHANGELOG")," versions post-release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4432"},"pull-4432")," - ",(0,l.kt)("inlineCode",{parentName:"li"},"cardano-node-8.12")," ledger changelog"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4447"},"pull-4447")," - Backport of size calculation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4446"},"pull-4446")," - Update changelog to reflect recent release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4456"},"pull-4456")," - Bump up version for ",(0,l.kt)("inlineCode",{parentName:"li"},"cardano-data")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4459"},"pull-4459")," - Update CHANGELOG files following release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4454"},"pull-4454")," - Follow up to #4445")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bcf46d9c.af113492.js b/assets/js/bcf46d9c.af113492.js new file mode 100644 index 0000000000..0e9888c65a --- /dev/null +++ b/assets/js/bcf46d9c.af113492.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[31617],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var h=r.createContext({}),p=function(e){var t=r.useContext(h),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(h.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,h=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=p(a),c=n,m=u["".concat(h,".").concat(c)]||u[c]||d[c]||i;return a?r.createElement(m,o(o({ref:t},s),{},{components:a})):r.createElement(m,o({ref:t},s))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var h in t)hasOwnProperty.call(t,h)&&(l[h]=t[h]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<i;p++)o[p]=a[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},48880:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>h,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-01-20-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-20-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-20-hydra.md",source:"@site/blog/2023-01-20-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-01-20T00:00:00.000Z",formattedDate:"January 20, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.13,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-01-20-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-01-20-crypto"},nextItem:{title:"Network Team Update",permalink:"/2023-01-20-network"}},h={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team has been focusing on the write-up of the Hydra HeadV1\nspecification. Of which a first version has been aggregated and is currently\nunder review. They aligned the on-chain scripts of reimbursing funds on abort\nlike defined in the specification, improved the mutation test framework to have\nmore control when testing plutus scripts. The added HeadId in the API and the\nTUI example client make ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," easier to use and a first experiment of a\nHydra Head explorer was showing the utility of this - see what Heads exist on\nthe ",(0,n.kt)("inlineCode",{parentName:"p"},"preview")," network ",(0,n.kt)("a",{parentName:"p",href:"http://explorer.hydra.family"},"here"),"."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"HeadId to API and display in the TUI ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/678"},"#678")),(0,n.kt)("li",{parentName:"ul"},"Experiment of creating a hydra explorer, first result hosted ",(0,n.kt)("a",{parentName:"li",href:"http://explorer.hydra.family"},"here")),(0,n.kt)("li",{parentName:"ul"},"Improved mutation framework allowing to fail for the right reason ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/679"},"#679")),(0,n.kt)("li",{parentName:"ul"},"Correctly reimburse funds in abort (matching the spec) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/670"},"#670")),(0,n.kt)("li",{parentName:"ul"},"Finished a first write-up of the Hydra HeadV1 spec: ",(0,n.kt)("a",{parentName:"li",href:"https://www.overleaf.com/read/bbqzmptcxryj"},"Read it on overleaf")," (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/blob/master/SUPPORT.md"},"Communication channels")," for feedback)")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting with a broader audience"),(0,n.kt)("li",{parentName:"ul"},"Groom & plan actions required for a maintainable Head explorer"),(0,n.kt)("li",{parentName:"ul"},"Break \u201calign gaps\u201d feature into smaller chunks (at least on- /off-chain) and groom it"),(0,n.kt)("li",{parentName:"ul"},"Review the spec & discuss individual aborts with researchers (a bigger open question)")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bd08fea4.7513ae1d.js b/assets/js/bd08fea4.7513ae1d.js new file mode 100644 index 0000000000..913f40ce7c --- /dev/null +++ b/assets/js/bd08fea4.7513ae1d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70029],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>u});var a=t(67294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),c=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=c(e.components);return a.createElement(s.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},h=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(t),h=r,u=p["".concat(s,".").concat(h)]||p[h]||m[h]||i;return t?a.createElement(u,o(o({ref:n},d),{},{components:t})):a.createElement(u,o({ref:n},d))}));function u(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,o=new Array(i);o[0]=h;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[p]="string"==typeof e?e:r,o[1]=l;for(var c=2;c<i;c++)o[c]=t[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}h.displayName="MDXCreateElement"},4269:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var a=t(87462),r=(t(67294),t(3905));const i={title:"Performance & Tracing Update",slug:"2024-03-08-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-08-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-08-performance-and-tracing.md",source:"@site/blog/2024-03-08-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-03-08T00:00:00.000Z",formattedDate:"March 8, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:4.04,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-03-08-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-03-08-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2024-03-06-consensus"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3},{value:"UTxO Growth",id:"utxo-growth",level:3},{value:"Nomad cluster",id:"nomad-cluster",level:3}],d={toc:c},p="wrapper";function m(e){let{components:n,...t}=e;return(0,r.kt)(p,(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Benchmarking: We've performed release benchmarks for Node ",(0,r.kt)("inlineCode",{parentName:"li"},"8.9.0"),". Additionally, we benchmarked different GC settings for ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-node"),"."),(0,r.kt)("li",{parentName:"ul"},"Development: Ongoing work on the reporting pipeline and high-level profile definitions."),(0,r.kt)("li",{parentName:"ul"},"Workbench: In conjunction with ",(0,r.kt)("inlineCode",{parentName:"li"},"DRep")," delegations in genesis, we're working on adjustments to a new ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-cli")," command."),(0,r.kt)("li",{parentName:"ul"},"Tracing: Test coverage for the new handle registry feature in ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," is complete."),(0,r.kt)("li",{parentName:"ul"},"UTxO Growth: Currently, we're developing a series of benchmarks targeting performance implications of increased UTxO set size."),(0,r.kt)("li",{parentName:"ul"},"Nomad cluster: Disk storage safety net; better admin access to Nomad nodes; basic backend support for more than 1 cluster; new latency service.")),(0,r.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,r.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,r.kt)("p",null,"We've performed a full set of release benchmarks for Node ",(0,r.kt)("inlineCode",{parentName:"p"},"8.9.0"),". Initially, we identified a performance regression in connection to ledger snapshots. This has been addressed very swiftly.\nHaving re-run the fixed version, we could detect no performance risks in comparison with ",(0,r.kt)("inlineCode",{parentName:"p"},"8.7.2")," / ",(0,r.kt)("inlineCode",{parentName:"p"},"8.7.3"),". "),(0,r.kt)("p",null,"In an additional set of benchmarks, we targeted the garbage collector (GC) settings that ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," is built with by default. Specifically, we compared these (copying, sequential GC) as a baseline\nto using the parallel GC, the compacting GC and the non-moving GC - all of which are supported by GHC's runtime system. As GC always is a trade-off between space and time (and as a consequence, responsiveness);\nwe could measure the parallel GC offering a slight increase in responsiveness at the cost of delaying some evaluations - which is suboptimal for a block forger. The compacting GC could clearly\nachieve a smaller RAM footprint, but only at the cost of increased CPU usage - and clearly worsened responsiveness. The non-moving GC could greatly enhance responsiveness - but increased the RAM footprint tremendously, as\nwell as introduced delays in the forging loop. In conclusion: the existing default is still the best choice by far for ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," - validated both on GHC8.10.7 and GHC9.6.3."),(0,r.kt)("h3",{id:"development"},"Development"),(0,r.kt)("p",null,"The work on moving benchmark profile, and genesis, definitions out of the ",(0,r.kt)("inlineCode",{parentName:"p"},"bash")," scripting / JSON data transformation space is still ongoing. Type safety and a test suite for those tasks\nwill allow for a much more principled approach. "),(0,r.kt)("p",null,"The implementation of additional rendering formats and report templates for our reporting pipeline has been completed; it is currently in testing and validation phase."),(0,r.kt)("h3",{id:"workbench"},"Workbench"),(0,r.kt)("p",null,"We're working on integrating new ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli")," functionality in our automations. Injecting ",(0,r.kt)("inlineCode",{parentName:"p"},"DRep")," delegations into genesis - for Conway ledger benchmarks - will require us\nto use a new CLI command, which differs in in output structure and options provided from the one we're using to inject stake pool delegations. This requires us to\nimplement and additional post-processing step for backends to find everything as expected."),(0,r.kt)("p",null,"Furthermore, a PR has been merged which refactors and cleans up benchmarking profiles, with a focus on fine-tuning solo-node benchmarks which scrutinize a single ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," process."),(0,r.kt)("h3",{id:"tracing"},"Tracing"),(0,r.kt)("p",null,"The test suite for ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),"'s new handle registry feature is complete, and the new feature passes all tests. At the moment, we're\npreparing it for merging into ",(0,r.kt)("inlineCode",{parentName:"p"},"master"),"."),(0,r.kt)("h3",{id:"utxo-growth"},"UTxO Growth"),(0,r.kt)("p",null,"We're developing a series of benchmarks that will provide insight into possible changes to the Node's performance characteristics given different UTxO set sizes and numbers of delegated wallets.\nWhat we aim to capture in these benchmarks is the system's capability to scale with UTxO growth - while simultaneously evaluating hardware requirements. The workloads will be based on existing release benchmarks, but allow for flexibility regarding UTxO set and delegations. They will target the existing in-memory solution, and at the same time permit feasability testing UTxO-HD's on-disk\nflavour - which does not keep the entire UTxO set in RAM permanently."),(0,r.kt)("h3",{id:"nomad-cluster"},"Nomad cluster"),(0,r.kt)("p",null,"Implementation of cluster machine disk space checking and garbage collection is complete. A requirement was that no\nmonitoring process interferes with a running benchmark, so a non-synchronous approach was chosen to guarantee enough disk space. This prevents failing\nruns, and thus the necessity to repeat them. "),(0,r.kt)("p",null,"In the process, the workbench backend was equipped with a wider range of cluster commands and abstractions, which makes administrating cluster\nmachines more flexible. This includes a new service to create a network latency matrix for deployed cluster hardware - generalizing the approach\nchosen during the Nomad cluster's initial validation phase. This can guarantee the validity of existing baselines in case of hardware reboots, or changes\nin topology. "),(0,r.kt)("p",null,"Last not least, the backend is currently receiving an additional feature: supporting more than 1 hardware cluster. This will enable us,\nin the future, to benchmark on ephemeral clusters - without interfering with the hard requirements, or the schedule, of release benchmarking\non our default deployment. The motivation is being able to benchmark different hardware configurations, along with varying ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," options and\ninitial ledger states on a parallel schedule - also, without having to keep those clusters running at all times."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bd1eb202.415014fa.js b/assets/js/bd1eb202.415014fa.js new file mode 100644 index 0000000000..66a2e345ad --- /dev/null +++ b/assets/js/bd1eb202.415014fa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[38454],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=n,d=p["".concat(s,".").concat(m)]||p[m]||h[m]||i;return a?r.createElement(d,o(o({ref:t},u),{},{components:a})):r.createElement(d,o({ref:t},u))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var c=2;c<i;c++)o[c]=a[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},82529:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-05-03-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-05-03-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-03.md",source:"@site/blog/2024-05-03.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-05-03T00:00:00.000Z",formattedDate:"May 3, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.67,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-05-03-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-05-06-network"},nextItem:{title:"Consensus Team Update",permalink:"/2024-05-01-consensus"}},s={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],u={toc:c},p="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team has been working on refactoring and detecting network protocol version mismatches. They have also merged the /commit endpoint changes including a follow-up fix about fee calculation. Besides this, they applied minor workflow fixes by adding docker images to nix checks and disabling mithril integration testing on ",(0,n.kt)("inlineCode",{parentName:"p"},"preview")," (until mithril ",(0,n.kt)("inlineCode",{parentName:"p"},"2418")," is released)."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Refactor connectivity and detect network protocol version mismatches ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1381"},"#","1381")),(0,n.kt)("li",{parentName:"ul"},"Merged and completed ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1350"},"#","1350"),", including a follow-up fix about fee calculation"),(0,n.kt)("li",{parentName:"ul"},"Add docker images to nix checks"),(0,n.kt)("li",{parentName:"ul"},"Disable mithril-client testing on Preview")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Restructure documentation including a how to about streaming plugins ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1325"},"#","1325")),(0,n.kt)("li",{parentName:"ul"},"Add arm64 docker images as requested in ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1404"},"#","1404")),(0,n.kt)("li",{parentName:"ul"},"Release 0.17.0")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bd307c3a.947a722f.js b/assets/js/bd307c3a.947a722f.js new file mode 100644 index 0000000000..b75b693360 --- /dev/null +++ b/assets/js/bd307c3a.947a722f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[85642],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=a.createContext({}),c=function(e){var t=a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=c(n),d=r,h=p["".concat(i,".").concat(d)]||p[d]||m[d]||o;return n?a.createElement(h,l(l({ref:t},u),{},{components:n})):a.createElement(h,l({ref:t},u))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=d;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[p]="string"==typeof e?e:r,l[1]=s;for(var c=2;c<o;c++)l[c]=n[c];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},90819:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-04-03-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},l=void 0,s={permalink:"/2024-04-03-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-03-consensus.md",source:"@site/blog/2024-04-03-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-04-03T00:00:00.000Z",formattedDate:"April 3, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.685,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-04-03-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-04-05-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-04-03-mithril"}},i={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/1009"},"Made")," the ",(0,r.kt)("inlineCode",{parentName:"li"},"LocalTxMonitor")," ",(0,r.kt)("inlineCode",{parentName:"li"},"HasTx")," cross-era behavior less surprising."),(0,r.kt)("li",{parentName:"ul"},"Finalized the tests in ",(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus")," for the UTXO-HD branch, except the mempool-parallel test which is still failing sometimes."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/stevana/quickcheck-state-machine/pull/43"},"Fixed")," an upstream complication in ",(0,r.kt)("inlineCode",{parentName:"li"},"quickcheck-state-machine")," related to Parallel state machines which should allow us for an easier and more understandable setup of the parallel mempool tests."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/quickcheck-dynamic/pull/72"},"Drafted")," parallel state machine testing infrastructure for ",(0,r.kt)("inlineCode",{parentName:"li"},"quickcheck-dynamic"),". Eventually could be used to replace the QSM infra for mempool parallel tests."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/503"},"Cleaned")," up the ",(0,r.kt)("inlineCode",{parentName:"li"},"Cardano.API.LedgerState")," module, required for UTXO-HD integration."),(0,r.kt)("li",{parentName:"ul"},"We have been working on Node release 8.10. The changes upstream are integrated all the way to Node. Tests and benchmarks are pending. The versions of Consensus, Ledger, and Networking are released, and we will focus next on releasing CLI, API, and finally Node.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bd3fea4c.1321bd0c.js b/assets/js/bd3fea4c.1321bd0c.js new file mode 100644 index 0000000000..8531173049 --- /dev/null +++ b/assets/js/bd3fea4c.1321bd0c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90439],{16874:e=>{e.exports=JSON.parse('{"permalink":"/tags/mithril/page/9","page":9,"postsPerPage":5,"totalPages":13,"totalCount":63,"previousPage":"/tags/mithril/page/8","nextPage":"/tags/mithril/page/10","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/bd65afd9.474429fe.js b/assets/js/bd65afd9.474429fe.js new file mode 100644 index 0000000000..d48a869f82 --- /dev/null +++ b/assets/js/bd65afd9.474429fe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[36160],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,m=c(e,["components","mdxType","originalType","parentName"]),u=s(n),p=a,h=u["".concat(l,".").concat(p)]||u[p]||d[p]||o;return n?r.createElement(h,i(i({ref:t},m),{},{components:n})):r.createElement(h,i({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var s=2;s<o;s++)i[s]=n[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}p.displayName="MDXCreateElement"},25362:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & tracing update",slug:"2023-07-12-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,c={permalink:"/2023-07-12-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-12-performance-and-tracing.md",source:"@site/blog/2023-07-12-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-07-12T00:00:00.000Z",formattedDate:"July 12, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.29,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-07-12-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-07-12-consensus"},nextItem:{title:"Crypto Team Update",permalink:"/2023-07-07-crypto"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: The peformance investigation into the compiler switch to GHC9 is ongoing. Additionally, a roadmap for implementing Consensus QTAs has been developed."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: Our workbench has undergone some refactoring to seamlessly integrate its profiles into all available backends."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Optimization of the new tracing system is ongoing and yielding good performance results."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: We developed a new feature for the nomad backend which allows pinning deployments to specific machines.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"Our analysis of the GHC9 build of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," has produced several locations in the code base where the new compiler seems to miss opportunities for optimization. Our hypothesis is, that those can account for the difference in resource usage we observe when benchmarking with a full cluster run. Instructing the compiler on how to perform the optimizations which GHC8 apparently applied out of the box requires further investigation. "),(0,a.kt)("p",null,"In an effort to define Quantitative Timeliness Agreements (QTAs) on a per-component basis, we have coordinated with the Consensus team and developed a roadmap for providing those on consensus level. Making use of the insight that system-level benchmarks allow, we intend to set up and calibrate a benchmark that can reliably predict a regression or optimization for select metrics before needing full integration into ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". This will help tremendously in various ways: catching regressions much earlier, localizing them much easier, avoiding repeated component integration and much shorter feedback cycle."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"We have worked on seamless integration of our benchmarking profiles into the many available backends that the workbench provides. The goal was to be backend-agnostic, to guarantee that all benchmarking run artifacts be structurally identical as far as their file name, format and location are concerned. This lead to refactoring work and has already landed in ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),"."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"Much effort went into further optimization of the new tracing system. After working on configuration to align both new and legacy tracing system with regard to their trace frequencies, we could uncover some increase in resource usage. This occurred for corner cases under very heavy load. These cases have been addressed already, and do now surpass the legacy tracing system in terms of performance."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"For reliable benchmarking results it is vital to introduce as few confounding factors as possible when performing runs. This includes hardware and network topology. The nomad backend has been outfitted with a mechanism to pin the nomad job for some node in our benhcmarking cluster to a specific machine instance. This greatly increases confidence in the metrics observed from a run. "),(0,a.kt)("p",null,"Furthermore this feature will detect any change in the underlying hardware or topology so it can be taken into account. The new feature has been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bda3e1c7.68ca5f08.js b/assets/js/bda3e1c7.68ca5f08.js new file mode 100644 index 0000000000..9e8ea7e97d --- /dev/null +++ b/assets/js/bda3e1c7.68ca5f08.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27335],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(a),s=r,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,l(l({ref:t},c),{},{components:a})):n.createElement(h,l({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},19203:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-02-08-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2023-02-08-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-08-node-cli-api.md",source:"@site/blog/2023-02-08-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-02-08T00:00:00.000Z",formattedDate:"February 8, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.095,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-02-08-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-02-08-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2023-02-08-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"CI & project mainteance",id:"ci--project-mainteance",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3},{value:"cardano-testnet",id:"cardano-testnet-1",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-02-08---2023-02-21"},"2023-02-08 - 2023-02-21"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"More maintenance and resolving raised issues."),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4889"},"Remove use of multiline literals")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4775"},"Markdown links CI check")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4755"},"Date ranges for copyright"))),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4894"},"Re-add support for decoding GenesisExtendedKey text envelope")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4885"},"Disallow empty cost model for create update proposal")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4815"},"Refactor code using onLeft and onNothing"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4876"},"Simplify SerialiseAsRawBytes type class"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h2",{id:"ci--project-mainteance"},"CI & project mainteance"),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4761"},"Fix bug in hash computation in cardano-cli genesis create-cardano")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4636"},"Cleanup exports of cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4659"},"Render consistent plutus script failure output")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4666"},"Read network ID from environment")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4647"},"CLI option to append additional signatures to a transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"Cardano ping")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4777"},"Better error message for query utxo on oops"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4763"},"Remove simple script distinction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4753"},"Export SubmitResult from Cardano.Api"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))),(0,r.kt)("h3",{id:"cardano-testnet-1"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4845"},"Use Haskell variables for passing values"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bdc4c1ed.d4febbdd.js b/assets/js/bdc4c1ed.d4febbdd.js new file mode 100644 index 0000000000..a1b06a4eb9 --- /dev/null +++ b/assets/js/bdc4c1ed.d4febbdd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[76581],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),s=u(a),d=n,c=s["".concat(p,".").concat(d)]||s[d]||m[d]||i;return a?r.createElement(c,o(o({ref:t},h),{},{components:a})):r.createElement(c,o({ref:t},h))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<i;u++)o[u]=a[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},29598:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-06-09-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-06-09-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-09-hydra.md",source:"@site/blog/2023-06-09-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-06-09T00:00:00.000Z",formattedDate:"June 9, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.18,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-06-09-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Developer Experience Update",permalink:"/2023-06-09-developer-experience"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-06-08-db-sync"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:u},s="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team worked on multiple fronts. They finished the\ninvestigation about the broken head on mainnet and re-opened their persistent\nhead instance. The team also fixed the monthly report publication on their\nwebsite and started sketching ideas and further improvements. Also, they are on\nthe last mile to deliver a new feature which will allow parties to commit funds\nfrom extern wallets. Finally the team started to work on optimizing the\nperformance on their benchmarks."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Finished investigation on broken head on mainnet ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/897"},"#897")," and re-opened it."),(0,n.kt)("li",{parentName:"ul"},"Added support for externally committing regular utxo ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/887"},"#887")),(0,n.kt)("li",{parentName:"ul"},"Fix monthly report publication on docs website and published the ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-05"},"monthly report"),". Odd problems when publishing monthly report:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Make us think about if we should change something about the website ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/908"},"#908")),(0,n.kt)("li",{parentName:"ul"},"Open issue to docusaurus ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/facebook/docusaurus/issues/9036"},"#9036")))),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug in the benchmark process ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/910"},"#910")),(0,n.kt)("li",{parentName:"ul"},"Explored performance of the ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node"),"{.verbatim} and identified a\nbottleneck."),(0,n.kt)("li",{parentName:"ul"},"Timed transaction feature is being used by the auction project \ud83c\udf89 ")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete performance analysis and start/plan improvements and provide\nregular benchmarks for Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/186"},"#186")),(0,n.kt)("li",{parentName:"ul"},"Add hydra as tool to developer platform ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/872"},"#872"),"."),(0,n.kt)("li",{parentName:"ul"},"Authenticate network messages ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/727"},"#727"),"."),(0,n.kt)("li",{parentName:"ul"},"Complete journey for external commits using multiple script UTxOs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/903"},"#903")),(0,n.kt)("li",{parentName:"ul"},"Start implementing ",(0,n.kt)("em",{parentName:"li"},"Option B")," for external commits ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215"),".")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/be16a434.076c35cc.js b/assets/js/be16a434.076c35cc.js new file mode 100644 index 0000000000..98bb703195 --- /dev/null +++ b/assets/js/be16a434.076c35cc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[83247],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>g});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),s=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},m=function(e){var n=s(e.components);return r.createElement(c.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),p=s(t),d=a,g=p["".concat(c,".").concat(d)]||p[d]||u[d]||o;return t?r.createElement(g,i(i({ref:n},m),{},{components:t})):r.createElement(g,i({ref:n},m))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=d;var l={};for(var c in n)hasOwnProperty.call(n,c)&&(l[c]=n[c]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var s=2;s<o;s++)i[s]=t[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}d.displayName="MDXCreateElement"},85869:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=t(87462),a=(t(67294),t(3905));const o={title:"Performance & tracing update",slug:"2023-08-24-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-08-24-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-24-performance-and-tracing.md",source:"@site/blog/2023-08-24-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-08-24T00:00:00.000Z",formattedDate:"August 24, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.7,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-08-24-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-08-25-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-08-23-consensus"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:s},p="wrapper";function u(e){let{components:n,...t}=e;return(0,a.kt)(p,(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Benchmarking node version ",(0,a.kt)("inlineCode",{parentName:"li"},"8.2.1")," has concluded. Additionally we're developing benchmarking setups for GHC9.6 and UTxO-HD."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: Our analysis pipeline has received improvements reducing memory footprint."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Another batch of optimizations for the new tracing system has been merged; work on namespace consistency guarantees is ongoing."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: We're performing and analysing various runs for validation purposes on the new hardware cluster.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed and analysed the benchmarks for the ",(0,a.kt)("inlineCode",{parentName:"p"},"8.2.1")," version of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," as part of our release benchmarking cycle. "),(0,a.kt)("p",null,"Setting up cluster benchmarks requires completing full system integration. This applies to both supporting a new build platform, as is GHC9.6, as well as targeting a specific feature, like a UTxO-HD enabled node. Currently, we're working on respective integrations on both those paths."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"As cluster runs increase in duration, more and more data is accumulated for analysis. Batch analysis mode needs all data to be held\nin memory, which wouldn't fit anymore even on a 64GB RAM machine. Changes to the in-memory data representation improving on compactness were able to reduce the RAM requirements of our analysis pipeline."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The next portion of optimizations has been completed and merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),", getting rid of Haskell's native ",(0,a.kt)("inlineCode",{parentName:"p"},"String")," representation on critical code paths. This concludes the optimization phase of the new tracing system for all its components used by ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". "),(0,a.kt)("p",null,"The implementation for validation of consistent naming and configuration is ongoing. We're splitting out everything that's verifiable at compile time into a seperate test case which we hope to integrate into CI - leaving only configuration constraints to be verified at or before node startup."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"The verification phase of the nomad cloud backend is ongoing. We're able to perform full runs on the new hardware cluster\nand porting profiles and configurations from the legacy one. The goal is to reproduce with confidence known regressions, or improvements, between runs performed on the legacy cluster and runs performed with the new backend."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/be1e6782.c15a7bdc.js b/assets/js/be1e6782.c15a7bdc.js new file mode 100644 index 0000000000..b7ef8247af --- /dev/null +++ b/assets/js/be1e6782.c15a7bdc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25469],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>k});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?a(Object(o),!0).forEach((function(t){r(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):a(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function p(e,t){if(null==e)return{};var o,n,r=function(e,t){if(null==e)return{};var o,n,r={},a=Object.keys(e);for(n=0;n<a.length;n++)o=a[n],t.indexOf(o)>=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)o=a[n],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var s=n.createContext({}),l=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),m=l(o),c=r,k=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return o?n.createElement(k,i(i({ref:t},u),{},{components:o})):n.createElement(k,i({ref:t},u))}));function k(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=o.length,i=new Array(a);i[0]=c;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[m]="string"==typeof e?e:r,i[1]=p;for(var l=2;l<a;l++)i[l]=o[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,o)}c.displayName="MDXCreateElement"},12306:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var n=o(87462),r=(o(67294),o(3905));const a={title:"Network Q2 2023 Update",slug:"2023-Q2-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/quarterly/2023-Q2-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q2-network.md",source:"@site/quarterly/2023-Q2-network.md",title:"Network Q2 2023 Update",description:"2023-04 - 2023-06",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"network",permalink:"/quarterly/tags/network"}],readingTime:5.145,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Q2 2023 Update",slug:"2023-Q2-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Q2 2023 Update",permalink:"/quarterly/2023-Q2-consensus"},nextItem:{title:"SRE Q2 2023 Update",permalink:"/quarterly/2023-Q2-sre"}},s={authorsImageUrls:[void 0]},l=[{value:"2023-04 - 2023-06",id:"2023-04---2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Eclipse Evasion",id:"eclipse-evasion",level:4},{value:"Ecosystem P2P Deployment Progress",id:"ecosystem-p2p-deployment-progress",level:4},{value:"Peer Sharing",id:"peer-sharing",level:4},{value:"Diffusion (P2P)",id:"diffusion-p2p",level:4},{value:"Other Improvements & Developments",id:"other-improvements--developments",level:3},{value:"CDDL",id:"cddl",level:4},{value:"Cardano Ping",id:"cardano-ping",level:4},{value:"IOSim",id:"iosim",level:4},{value:"Typed Protocols",id:"typed-protocols",level:4},{value:"Cardano Client",id:"cardano-client",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"CI improvements",id:"ci-improvements",level:4},{value:"GHC 9.4 & 9.6",id:"ghc-94--96",level:4},{value:"Next steps",id:"next-steps",level:3}],u={toc:l},m="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-04---2023-06"},"2023-04 - 2023-06"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"eclipse-evasion"},"Eclipse Evasion"),(0,r.kt)("p",null,"We finalised the design of eclipse evasion and implemented its mechanism which\nrelays on connectivity to ",(0,r.kt)("em",{parentName:"p"},"big ledger peers"),". ",(0,r.kt)("em",{parentName:"p"},"Big ledger peers")," are the\nlargest ledger peers which accumulate 90% of stake (currently there are less\nthan 1000 of them). The outbound governor has new targets for ",(0,r.kt)("em",{parentName:"p"},"known"),",\n",(0,r.kt)("em",{parentName:"p"},"established")," and ",(0,r.kt)("em",{parentName:"p"},"active")," big ledger peers which work in a similar way that\nsuch targets work for ledger peers. The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4662"},"ouroboros-network#4662")," PR is\ncurrently in review."),(0,r.kt)("p",null,"As part of this work we also identified a bug which would prevent a node to\nconnect to itself. Such connections are not easily detectable and are expected\nto be dropped by the churn mechanism, nonetheless they should not be buggy.\nThe failure was discovered thanks to our e2e simulation of diffusion using\n",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim")," & property based testing."),(0,r.kt)("p",null,"The PR also refactors the heart of the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," interface reducing\ntechnical debt that would otherwise accumulate."),(0,r.kt)("p",null,"We also identified a possible improvement in the churn mechanism, which will be\nimplemented in Q3. Churn needs to await for peers to terminate, we can\nimprove the synchronisation. ","[ouroboros-network#4617]"),(0,r.kt)("h4",{id:"ecosystem-p2p-deployment-progress"},"Ecosystem P2P Deployment Progress"),(0,r.kt)("p",null,"We reached ",(0,r.kt)("strong",{parentName:"p"},"50% of stake in hands of SPOs who run at least on P2P relay"),". Now\nalso Emurgo and CF are running some P2P relays. Also 20% of IOG relays are\nrunning in P2P mode."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"P2P Progress",src:o(62597).Z,width:"1024",height:"768"})),(0,r.kt)("h4",{id:"peer-sharing"},"Peer Sharing"),(0,r.kt)("p",null,"We implemented ",(0,r.kt)("em",{parentName:"p"},"bootstrapping for peer sharing")," (also known as light peer\nsharing). New downstream (inbound) peers are now added to the ",(0,r.kt)("em",{parentName:"p"},"known peers")," of\nthe ",(0,r.kt)("em",{parentName:"p"},"outbound governor"),". Together with peer sharing this allows for non\nregistered relays to propagate through the network. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3596"},"ouroboros-network#3596")),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Please note that peer sharing is disabled by default and is not considered safe\nuntil Bootstrap Peers (see below) or Genesis is implemented.")),(0,r.kt)("h4",{id:"diffusion-p2p"},"Diffusion (P2P)"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We designed a feature which will reduce the load on IOG relays (in future\nalso run by CF & Emurgo). The feature consists of two parts. A new source\nof peers called ",(0,r.kt)("em",{parentName:"p"},"bootstrap peers")," (obtained from via an https request), the\nability to switch from bootstrap peers to ledger peers if the node is synced\n(we are collaborating with the consensus team on the interface ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/blob/fbb8c8ee97517809dec0d0c8ae3fae9b8d272caf/docs/website/docs/bootstrap-peers-IER.md"},"Bootstrap\nPeers IER"),"). This feature will be completed in Q3.\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4530"},"ouroboros-network#4530"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We published a blog post about ",(0,r.kt)("a",{parentName:"p",href:"https://engineering.iog.io/2023-06-28-p2p"},"P2P design & implementation"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4559"},"ouroboros-network#4559"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We merged changes which allow the consensus layer to start / stop block\nforging thread. This will allow to deploy P2P block producing nodes which\nserve as a live backup node. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"ouroboros-consensus#140"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed a few bugs in local root peers DNS resolution service:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4583"},"ouroboros-network#4583"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4571"},"ouroboros-network#4571"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We limited concurrency of DNS name resolutions: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4596"},"ouroboros-network#4596"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Galois Inc implemented query option for Handshake: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed handshake query timeout: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4608"},"ouroboros-network#4608"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented warm valency for local root peers. This can help when using\nDNS names in local root peers which resolve to many IP addresses. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4575"},"ouroboros-network#4575"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We merged handshake changes which allow query protocol versions. Thanks to\nJames Parker from Galois Inc.: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30/"},"cardano-cli#30"),"."))),(0,r.kt)("h3",{id:"other-improvements--developments"},"Other Improvements & Developments"),(0,r.kt)("h4",{id:"cddl"},"CDDL"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We added ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-node")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," CDDL specs / tests for encoding\nof ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionData")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToClientVersionData"),". ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We clarified an inconsistency between CDDL spec and implementation which is\nhighly polymorphic. We designed and implemented a fix for ",(0,r.kt)("inlineCode",{parentName:"p"},"tx-submission"),"\nand ",(0,r.kt)("inlineCode",{parentName:"p"},"local-tx-submission")," mini-protocols. Specs for other mini-protocols will\nbe improved at a later stage. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4580"},"ouroboros-network#4580")))),(0,r.kt)("h4",{id:"cardano-ping"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-ping"},"Cardano Ping")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-ping")," command was deprecated in favour of ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," (the\ntransition was done by the ",(0,r.kt)("inlineCode",{parentName:"p"},"node")," team).")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Support for ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," protocol using Unix sockets.\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4601"},"ouroboros-network#4601"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Support for ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToNodeV_11")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"NodeToClientV_16"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4587"},"ouroboros-network#4587"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," is now using ",(0,r.kt)("em",{parentName:"p"},"ISO8601")," format for timestamps. Formatting of\nmessages was improved. ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4593"},"ouroboros-network#4593"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli ping")," has a new ",(0,r.kt)("inlineCode",{parentName:"p"},"--query-versions")," flag which allows to query\nsupported versions by the remote node. This is supported by\n",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.1.0"),". ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4589"},"ouroboros-network#4589"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5313"},"cardano-node#5313"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30/"},"cardano-cli#30")))),(0,r.kt)("h4",{id:"iosim"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/io-sim"},"IOSim")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed timeouts & delays in ",(0,r.kt)("inlineCode",{parentName:"p"},"io-classes")," in a series of PRs: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/81"},"io-sim#81"),",\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/82"},"io-sim#82"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/86"},"io-sim#86"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/87"},"io-sim#87"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We released ",(0,r.kt)("inlineCode",{parentName:"p"},"strict-stm-1.1.0.1")," on Hackage which fixed a bug in package\ndescription file: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/101"},"io-sim#101"),"."))),(0,r.kt)("h4",{id:"typed-protocols"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/typed-protocols"},"Typed Protocols")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We published haddocks of ",(0,r.kt)("inlineCode",{parentName:"li"},"typed-protocols")," at\n",(0,r.kt)("a",{parentName:"li",href:"https://input-output-hk.github.io/typed-protocols"},"https://input-output-hk.github.io/typed-protocols"))),(0,r.kt)("h4",{id:"cardano-client"},(0,r.kt)("a",{parentName:"h4",href:"https://github.com/input-output-hk/ouroboros-network/blob/master/cardano-client"},"Cardano Client")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug in ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-client-0.1.0.2")," release which results in clients\n(e.g. ",(0,r.kt)("inlineCode",{parentName:"li"},"db-sync"),") negotiate an experimental protocol version.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"After the split between consensus & network, we made ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-client"),"\nindependent of ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-diffusion"),": ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4526"},"ouroboros-network#4526"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We wrap all exceptions in ",(0,r.kt)("inlineCode",{parentName:"p"},"DiffusionError"),": ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4537"},"ouroboros-network#4537"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5356"},"cardano-node#5356"),"."))),(0,r.kt)("h4",{id:"ci-improvements"},"CI improvements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We switched to use GitHub merge queues in ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols")," repositories; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/30"},"typed-protocols#30"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4546"},"ouroboros-network#4546"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We cleaned & updated scripts which run on CI.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a script to verify & release packages on CHaP; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4542"},"ouroboros-network#4542"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4573"},"ouroboros-network#4573"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We implemented a new CI script and cleaned existing ones:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4572"},"ouroboros-network#4572"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We don't install cryptographic libraries on CI anymore as none of our\npackages requires them; ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4539"},"ouroboros-network#4539"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Improved caching of dependencies: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4553"},"ouroboros-network#4553"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We made it possible to trigger building haddock manually:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4549"},"ouroboros-network#4549"),"."))),(0,r.kt)("h4",{id:"ghc-94--96"},"GHC 9.4 & 9.6"),(0,r.kt)("p",null,"We made all repositories under our control compile with ",(0,r.kt)("inlineCode",{parentName:"p"},"ghc-9.4")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"ghc-9.6"),"\nwhich includes ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"io-sim"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"typed-protocols")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"Win32-network"),"."),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("p",null,"We will continue towards our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/39/views/30"},"aspirational roadmap"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will continue reviewing eclipse evasion."),(0,r.kt)("li",{parentName:"ul"},"As ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/140"},"ouroboros-consensus#140")," was merged, we are making progress towards\nreleasing P2P on block production nodes. We hope to analyse performance\nregression on such nodes observed on the benchmarking cluster. ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=6875505"},"roadmap-3887")),(0,r.kt)("li",{parentName:"ul"},"We are also focused on ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/39/views/30?pane=issue&itemId=8920085"},"roadmap-3969"),". Note that it was expanded in Q2.")))}h.isMDXComponent=!0},62597:(e,t,o)=>{o.d(t,{Z:()=>n});const n=o.p+"assets/images/2023-07-06-p2p-progress-194a909569eebb016b1f24fb8941e2cc.png"}}]); \ No newline at end of file diff --git a/assets/js/be2e95c8.3940c164.js b/assets/js/be2e95c8.3940c164.js new file mode 100644 index 0000000000..ee7d3cb5dd --- /dev/null +++ b/assets/js/be2e95c8.3940c164.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[89351],{82621:a=>{a.exports=JSON.parse('{"label":"embedding-quality","permalink":"/tags/embedding-quality","allTagsPath":"/tags","count":1}')}}]); \ No newline at end of file diff --git a/assets/js/beba3ea5.11d190f7.js b/assets/js/beba3ea5.11d190f7.js new file mode 100644 index 0000000000..40ea266a1c --- /dev/null +++ b/assets/js/beba3ea5.11d190f7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[26337],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var a=r(67294);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){l(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,l=function(e,t){if(null==e)return{};var r,a,l={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=a.createContext({}),s=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=l,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||n;return r?a.createElement(h,i(i({ref:t},u),{},{components:r})):a.createElement(h,i({ref:t},u))}));function h(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=r.length,i=new Array(n);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var s=2;s<n;s++)i[s]=r[s];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},28890:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>n,metadata:()=>o,toc:()=>s});var a=r(87462),l=(r(67294),r(3905));const n={title:"Ledger Team Update",slug:"2024-07-03-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-07-03-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-03-ledger.md",source:"@site/blog/2024-07-03-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-07-03T00:00:00.000Z",formattedDate:"July 3, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.875,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-07-03-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-07-05-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2024-07-03-mithril"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Infrastructure and releasing",id:"infrastructure-and-releasing",level:3}],u={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,l.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"This period we added some last minute changes that were necessary for improving resilience\nand safety of Conway implementation:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Authorization of hot credentials for constitutional committee members is now only possible\nfor cold credentials that are present in the ledger state, either in the current committee\nor in one of the proposals."),(0,l.kt)("li",{parentName:"ul"},"Voting is restricted to entities that are present in the ledger state"),(0,l.kt)("li",{parentName:"ul"},"DRep votes will be removed whenever DRep unregisters"),(0,l.kt)("li",{parentName:"ul"},"Pricing model for the size of reference scripts was changed from linear to\nexponential. Moreover, extra limits on the total size of reference scripts being used\nhave been put in place.")),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4430"},"pull-4430")," - CostModel json parsing"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4438"},"pull-4438")," - Fix UTXOW era in diagrams for Conway"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4443"},"pull-4443")," - Make reference scripts fee grow exponentially with size"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4436"},"pull-4436")," - Authorize known cc members only"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4433"},"pull-4433")," - Improve resilience of future PParams"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4453"},"pull-4453")," - Tx refscript size check"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4452"},"pull-4452")," - Prevent votes for non existent entities"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4450"},"pull-4450")," - BBODY refscript size check")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4417"},"pull-4417")," - ",(0,l.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": use consistent warning pragma"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4431"},"pull-4431")," - ",(0,l.kt)("inlineCode",{parentName:"li"},"constrained-generators"),": fix flakyness in set generator"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4312"},"pull-4312")," - Convert AlonzoValidTxUTXOW to ImpTest (Part 1)"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4386"},"pull-4386")," - Increase the size of the committee for testing"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4425"},"pull-4425")," - Conformance test plumbing: EPOCH"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4442"},"pull-4442")," - Update executable-spec SRP"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4405"},"pull-4405")," - Add more scripts to alonzo utxosspec"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4445"},"pull-4445")," - Conformance tests plumbing: ",(0,l.kt)("inlineCode",{parentName:"li"},"NEWEPOCH")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4460"},"pull-4460")," - Remove unnecessary allocation in non-integral reference code"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4457"},"pull-4457")," - Conformance: POOL: Translate and adjust")),(0,l.kt)("h3",{id:"infrastructure-and-releasing"},"Infrastructure and releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4429"},"pull-4429")," - Bump ",(0,l.kt)("inlineCode",{parentName:"li"},"CHANGELOG")," versions post-release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4432"},"pull-4432")," - ",(0,l.kt)("inlineCode",{parentName:"li"},"cardano-node-8.12")," ledger changelog"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4447"},"pull-4447")," - Backport of size calculation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4446"},"pull-4446")," - Update changelog to reflect recent release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4456"},"pull-4456")," - Bump up version for ",(0,l.kt)("inlineCode",{parentName:"li"},"cardano-data")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4459"},"pull-4459")," - Update CHANGELOG files following release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4454"},"pull-4454")," - Follow up to #4445")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bfcdc265.43ecc94c.js b/assets/js/bfcdc265.43ecc94c.js new file mode 100644 index 0000000000..5a0378f185 --- /dev/null +++ b/assets/js/bfcdc265.43ecc94c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[567],{15021:e=>{e.exports=JSON.parse('{"permalink":"/page/36","page":36,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/35","nextPage":"/page/37","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/c0354ce6.dd443c64.js b/assets/js/c0354ce6.dd443c64.js new file mode 100644 index 0000000000..75ac8f4ef1 --- /dev/null +++ b/assets/js/c0354ce6.dd443c64.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[36881],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=p(a),c=r,m=u["".concat(s,".").concat(c)]||u[c]||d[c]||i;return a?n.createElement(m,o(o({ref:t},h),{},{components:a})):n.createElement(m,o({ref:t},h))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var p=2;p<i;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},50633:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-11-24-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-11-24-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-24-hydra.md",source:"@site/blog/2023-11-24-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-11-24T00:00:00.000Z",formattedDate:"November 24, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.12,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-11-24-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-11-24-goedel"},nextItem:{title:"SRE Team Update",permalink:"/2023-11-24-sre"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"This week, the Hydra team spent significant time opening a head among\nthemselves on ",(0,r.kt)("inlineCode",{parentName:"p"},"mainnet")," using the release candidate, revealing and\naddressing lurking bugs such as\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/1174"},"#","1174"),". Also\nrequired was this change to dynamically calculate the min utxo value\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/pull/1176"},"#","1176"),", a\nnecessary adjustment following the switch to inline datums. The team\nengaged with ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-cli")," / ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-api")," maintainers to discuss recent\nchanges and collaborated on drafting feature ideas, including providing\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/1177"},"Conway support"),"\nfor the Hydra roadmap. As part of ongoing improvements, they\nexperimented with writing the specification in markdown instead of\nLaTex."),(0,r.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Opened head among us on mainnet and uncovered a few lurking bugs like\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1174"},"#","1174")," in the\nrelease candidate"),(0,r.kt)("li",{parentName:"ul"},"Calculate the min utxo value instead of hard-coding it\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1176"},"#","1176"),", which is\nneeded since we switched to inline datums."),(0,r.kt)("li",{parentName:"ul"},"Met with the ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-cli")," / ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-api")," maintainers to discuss\nrecent changes and way forward"),(0,r.kt)("li",{parentName:"ul"},"Drafted features ideas to provide ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1177"},"Conway\nsupport")," on the\nHydra roadmap"),(0,r.kt)("li",{parentName:"ul"},"Experimented in writing the specification in markdown instead of LaTex")),(0,r.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Have the Monthly review meeting with several demos"),(0,r.kt)("li",{parentName:"ul"},"Release version 0.14.0 with ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/milestone/14?closed=1"},"this\nscope")),(0,r.kt)("li",{parentName:"ul"},"Complete tidying up chain layer via stateless observation changes in\nhydra-node\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1096"},"#","1096")),(0,r.kt)("li",{parentName:"ul"},"Update dependencies to prepare for Conway\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1114"},"#","1114"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c036f08e.7b77a934.js b/assets/js/c036f08e.7b77a934.js new file mode 100644 index 0000000000..eada9a58db --- /dev/null +++ b/assets/js/c036f08e.7b77a934.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40309],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=u(r),m=a,h=c["".concat(p,".").concat(m)]||c[m]||s[m]||o;return r?n.createElement(h,i(i({ref:t},d),{},{components:r})):n.createElement(h,i({ref:t},d))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var u=2;u<o;u++)i[u]=r[u];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},52303:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2023-06-23-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-06-23-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-23-sre.md",source:"@site/blog/2023-06-23-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-06-23T00:00:00.000Z",formattedDate:"June 23, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.98,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-06-23-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-06-23-network"},nextItem:{title:"Hydra Team Update",permalink:"/2023-06-16-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Ci-ops",id:"ci-ops",level:3},{value:"Ci-world",id:"ci-world",level:3},{value:"Devx-ci",id:"devx-ci",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3}],d={toc:u},c="wrapper";function s(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"A devx-ci cluster containing a Hydra build server and Linux build farm was stood up and is intended to replace Cicero functionality"),(0,a.kt)("li",{parentName:"ul"},"Cardano Sanchonet environment was stood up to test Conway era functionality"),(0,a.kt)("li",{parentName:"ul"},"Cardano-node nixos service was updated to support the latest p2p topology format and non-systemd socket activation use case"),(0,a.kt)("li",{parentName:"ul"},"Cardano-node 8.1.1 was deployed to preview, preprod and mainnet environments")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Update cardano-node nixos service for updated p2p topology and non-systemd socket activation: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5318"},"cardano-node-pull-5318"))),(0,a.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Updates required for node 8.1.1 nixos service: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/pull/414"},"cardano-ops-pull-414")),(0,a.kt)("li",{parentName:"ul"},"Work in progress continues on mixed legacy and p2p topology clusters in cardano-ops: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/tree/ops-local"},"cardano-ops-ops-local"),", ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/tree/mn-mixed-p2p"},"cardano-ops-mn-mixed-p2p"))),(0,a.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add Sanchonet environment: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/96"},"cardano-world-pull-96"))),(0,a.kt)("h3",{id:"ci-ops"},"Ci-ops"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add devx-ci cluster integration for legacy darwin ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-ops/compare/b158b17...ed875b9"},"ci-ops-compare"))),(0,a.kt)("h3",{id:"ci-world"},"Ci-world"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add devx-ci cluster integration for caching, monitoring during cicero to devx-ci transition: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ci-world/compare/840cdb6...b08c250"},"ci-world-compare"))),(0,a.kt)("h3",{id:"devx-ci"},"Devx-ci"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"A CI cluster with a hydra build server was stood up and is intended to replace usage of Cicero: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/devx-ci"},"devx-ci-repo"))),(0,a.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Add Sanchonet environment: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/545"},"iohk-nix-pull-545"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c061e3b1.fb013bb5.js b/assets/js/c061e3b1.fb013bb5.js new file mode 100644 index 0000000000..96d6ea0522 --- /dev/null +++ b/assets/js/c061e3b1.fb013bb5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64614],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var a=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,i=function(e,t){if(null==e)return{};var r,a,i={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var h=a.createContext({}),p=function(e){var t=a.useContext(h),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(h.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,i=e.mdxType,n=e.originalType,h=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=p(r),c=i,d=u["".concat(h,".").concat(c)]||u[c]||m[c]||n;return r?a.createElement(d,o(o({ref:t},s),{},{components:r})):a.createElement(d,o({ref:t},s))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=r.length,o=new Array(n);o[0]=c;var l={};for(var h in t)hasOwnProperty.call(t,h)&&(l[h]=t[h]);l.originalType=e,l[u]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<n;p++)o[p]=r[p];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},99797:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>h,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>l,toc:()=>p});var a=r(87462),i=(r(67294),r(3905));const n={title:"Mithril Team Update",slug:"2023-03-09-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-09-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-09-mithril.md",source:"@site/blog/2023-03-09-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-03-09T00:00:00.000Z",formattedDate:"March 9, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.42,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-03-09-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-03-10-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-03-08-consensus"}},h={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:p},u="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(u,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet")," and computes the stake distribution with the optimized unreleased Cardano CLI command."),(0,i.kt)("p",null,"Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Worked on the epic that implements eras behavior switch ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/707"},"#707"),":",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Completed the deployment of the era behavior switch to the test networks ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/752"},"#752")),(0,i.kt)("li",{parentName:"ul"},"Completed the enhancement of datum generation for era markers ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/786"},"#786")),(0,i.kt)("li",{parentName:"ul"},"Worked on handling the API version with an era switch ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/727"},"#727")))),(0,i.kt)("li",{parentName:"ul"},"Worked on the epic that implements a relational store in the aggregator ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/779"},"#779"),":",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Worked on the migration/adaptation of the ",(0,i.kt)("inlineCode",{parentName:"li"},"stake_pool")," table ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/787"},"#787")))),(0,i.kt)("li",{parentName:"ul"},"Completed the refactoring of errors in the signer and aggregator state machines ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/665"},"#665")),(0,i.kt)("li",{parentName:"ul"},"Worked on testing Mithril with a ",(0,i.kt)("inlineCode",{parentName:"li"},"mainnet")," Cardano network ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/777"},"#777")),(0,i.kt)("li",{parentName:"ul"},"Worked on fixing bugs with the Docker client image:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fixed a bug that made the Docker client container crash at startup ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/769"},"#769")),(0,i.kt)("li",{parentName:"ul"},"Fixed a bug that prevented the restoration of a snapshot with a Docker client ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/791"},"#791")),(0,i.kt)("li",{parentName:"ul"},"Worked on testing the Docker client in the ",(0,i.kt)("inlineCode",{parentName:"li"},"Mithril Client multi-platform test")," workflow ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/794"},"#794"))))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c063df1b.c5172914.js b/assets/js/c063df1b.c5172914.js new file mode 100644 index 0000000000..95730efca2 --- /dev/null +++ b/assets/js/c063df1b.c5172914.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21562],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=p(r),d=n,h=c["".concat(u,".").concat(d)]||c[d]||m[d]||o;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var p=2;p<o;p++)i[p]=r[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},7314:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Crypto Team Update",slug:"2023-03-03-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-03-03-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-03-crypto.md",source:"@site/blog/2023-03-03-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-03-03T00:00:00.000Z",formattedDate:"March 3, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.155,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-03-03-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-03-08-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-03-03-goedel"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"Sidechains",id:"sidechains",level:3}],s={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit."),(0,n.kt)("li",{parentName:"ul"},"cardano-base: BLS branch is now ready for review. We are workign forward its merge. "),(0,n.kt)("li",{parentName:"ul"},"KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase."),(0,n.kt)("li",{parentName:"ul"},"Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Bumped to version ",(0,n.kt)("a",{parentName:"li",href:"https://crates.io/crates/kes-summed-ed25519/0.2.0"},"0.2.0")," the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using ",(0,n.kt)("inlineCode",{parentName:"li"},"mlock"),"."),(0,n.kt)("li",{parentName:"ul"},"Opened ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/783"},"PR#783")," to update dependency"),(0,n.kt)("li",{parentName:"ul"},"Improved testing for batch opening of mtree, ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/773"},"PR#773")),(0,n.kt)("li",{parentName:"ul"},"Improved testing for batch verification of STM sigs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/774"},"PR#774")),(0,n.kt)("li",{parentName:"ul"},"RFP for crypto audit almost ready.")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"BLS12-381 branch finally ready for review ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/266"},"PR#266"))),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("p",null,"Team off for one week. Other progress:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Learning about raw direct-bearer abstraction. An interface for sockets in consensus."),(0,n.kt)("li",{parentName:"ul"},"use that for direct ser/deser"),(0,n.kt)("li",{parentName:"ul"},"written those syntaxes for ouroboros (coming PR)"),(0,n.kt)("li",{parentName:"ul"},"the kes agent will depend on that. \t")),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("p",null,"Progress with familiarisation of Halo2 library to write circuits."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c08c0f47.4b5e5e64.js b/assets/js/c08c0f47.4b5e5e64.js new file mode 100644 index 0000000000..00b06e3bf0 --- /dev/null +++ b/assets/js/c08c0f47.4b5e5e64.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64562],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),m=a,h=d["".concat(l,".").concat(m)]||d[m]||u[m]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},63876:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-06-14-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-06-14-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-14-consensus.md",source:"@site/blog/2023-06-14-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-06-14T00:00:00.000Z",formattedDate:"June 14, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.115,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-06-14-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-06-15-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-06-14-performance-and-tracing"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],p={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The Consensus team had a very productive meeting with IOG Researchers. We now seem to be in alignment in regards to a strong argument that the ",(0,a.kt)("inlineCode",{parentName:"p"},"Byron")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"TPraos")," eras do not need to be checkpointed for an MVP.\nThere is one remaining question (which applies also to the ",(0,a.kt)("inlineCode",{parentName:"p"},"Praos"),' era): how to assess the threat that short forks pose against historical windows that underperformed? We are currently collaborating on that. We also drafted an argument that the updated "Limit on Patience" timeout sufficiently bounds how long the adversary can inflate a victim\'s overall sync time.'),(0,a.kt)("p",null,"On the UTxO-HD front, the prototype branch was rebased on top of the latest ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," ",(0,a.kt)("inlineCode",{parentName:"p"},"main")," branch and integrated on top of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node 8.1.1-pre"),". As a result, the mempool fairness fix that was released recently is now integrated into UTxO-HD.\nWe managed to run a node again with UTxO-HD enabled.\nWe also identified a race condition in the UTxO-HD prototype and fixed it. In addition, we started performing UTxO-HD ad-hoc benchmarks for ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),", which uncovered a performance regression on the Network component when using ",(0,a.kt)("inlineCode",{parentName:"p"},"GHC-9.2/9.4"),". This is being addressed."),(0,a.kt)("p",null,"Regarding our support activities, we Released ",(0,a.kt)("inlineCode",{parentName:"p"},"fs-sim-0.2.0.0")," and are in the process of preparing the 8.2 release of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". We also identified and started fixing incorrectly-unevaluated thunks in preparation for enabling CI NoThunks tests."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c0ac1524.7937938f.js b/assets/js/c0ac1524.7937938f.js new file mode 100644 index 0000000000..708152648f --- /dev/null +++ b/assets/js/c0ac1524.7937938f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[89752],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),u=a,f=s["".concat(p,".").concat(u)]||s[u]||d[u]||o;return r?n.createElement(f,l(l({ref:t},m),{},{components:r})):n.createElement(f,l({ref:t},m))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},58905:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-08-04-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-08-04-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-goedel.md",source:"@site/blog/2023-08-04-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.43,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-08-04-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-08-04-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-08-04-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is formalising mini protocols and also further developing the\nperformance modelling prototype."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Developing new framework for specification and verification of\nmini-protocols which is closer to the Haskell implementation.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Developed a new internal representation for the DeltaQ algebra that\nallows for more modularity in backend implementations")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Discussions regarding the Cardano networking specification"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c0cf6239.a679c299.js b/assets/js/c0cf6239.a679c299.js new file mode 100644 index 0000000000..f10a4bf12c --- /dev/null +++ b/assets/js/c0cf6239.a679c299.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53482],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=u(n),c=o,k=d["".concat(s,".").concat(c)]||d[c]||m[c]||i;return n?a.createElement(k,r(r({ref:t},p),{},{components:n})):a.createElement(k,r({ref:t},p))}));function k(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:o,r[1]=l;for(var u=2;u<i;u++)r[u]=n[u];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},29025:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=n(87462),o=(n(67294),n(3905));const i={title:"Network Quarterly Update",slug:"2023-01-13-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},r=void 0,l={permalink:"/quarterly/2023-01-13-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-01-13-network.md",source:"@site/quarterly/2023-01-13-network.md",title:"Network Quarterly Update",description:"Network Quarterly Update",date:"2023-01-13T00:00:00.000Z",formattedDate:"January 13, 2023",tags:[{label:"network",permalink:"/quarterly/tags/network"}],readingTime:4.125,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Quarterly Update",slug:"2023-01-13-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Quarterly Update",permalink:"/quarterly/2023-01-18-consensus"},nextItem:{title:"Open-Source Update",permalink:"/quarterly/2023-01-13-open-source"}},s={authorsImageUrls:[void 0]},u=[{value:"Network Quarterly Update",id:"network-quarterly-update",level:2},{value:"2022-11 - 2023-01",id:"2022-11---2023-01",level:2},{value:"Summary",id:"summary",level:3},{value:"Next steps",id:"next-steps",level:3},{value:"Risks",id:"risks",level:3},{value:"Detailed log",id:"detailed-log",level:3},{value:"Contributions to Ouroboros-Network",id:"contributions-to-ouroboros-network",level:4},{value:"Contributions to Cardano-Node",id:"contributions-to-cardano-node",level:4},{value:"Contributions to IOSim",id:"contributions-to-iosim",level:4}],p={toc:u},d="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"network-quarterly-update"},"Network Quarterly Update"),(0,o.kt)("h2",{id:"2022-11---2023-01"},"2022-11 - 2023-01"),(0,o.kt)("h3",{id:"summary"},"Summary"),(0,o.kt)("p",null,"The primary goal of the networking team was to focus on the single relay\nrelease of P2P. We fixed a number of small late bugs, and concluded QA\n& performance testing. Although it was discovered a regression in performance\nof block production when P2P is enabled, relaying with P2P performs better\ncomparing to a non p2p. We concluded that this is not a blocker for the Single\nRelay Release which is planned shortly."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"Peer sharing")," has gone through review and final review is\njust being done right now. After merging it will still be disabled (hidden\nbehind a flag) as it's not safe without eclipse evasion. We started\nimplementing light peer sharing (i.e. include inbound peers into known peer set\nof the outbound governor)."),(0,o.kt)("p",null,"We started a detailed eclipse evasion design, it will continue in the next\nquarter."),(0,o.kt)("p",null,"We also made a major revision of package structure of the network packages. We\nended up with a very clean dependency graph (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4155"},"pr #4155"),")."),(0,o.kt)("p",null,"Armando Santos delivered a talk at the ",(0,o.kt)("a",{parentName:"p",href:"https://sites.uclouvain.be/OPODIS2022/armando-details.html"},"ODOPIS 2022")," conference on principles\nof distributed systems in Brussels. The slides are available ",(0,o.kt)("a",{parentName:"p",href:"https://sites.uclouvain.be/OPODIS2022/slides/OPODIS2022-slides-Santos.pdf"},"here"),"."),(0,o.kt)("p",null,"Neil Davies gave an invited seminar on ",(0,o.kt)("inlineCode",{parentName:"p"},"DeltaQ")," at Universit\xe9 Catholique de\nLouvain."),(0,o.kt)("p",null,"We also found and fixed a few of bugs:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"a bug in keep alive mini-protocol which resulted in warm to cold transitions\nto be always executed through a timeout path rather than do a clean demotion\n(","[pr #4168]",").")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"fixed an assetion failure in the outbound governor (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4177"},"issue #4177"),") "))),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"we fixed DNS test failure ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4191"},"issue #4191"))),(0,o.kt)("h3",{id:"next-steps"},"Next steps"),(0,o.kt)("p",null,"We will work towards the next release of P2P for block producer nodes. This includes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"analysing performance regression for BP nodes when using P2P"),(0,o.kt)("li",{parentName:"ul"},"finish the work on controlling the block forger through node kernel (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3800"},"pr #3800"),")"),(0,o.kt)("li",{parentName:"ul"},"address ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3907"},"issue #3907")," and write a script to analyse deployment of P2P relays")),(0,o.kt)("p",null,"We would like also to push forward eclipse evasion. Although most of the work\nhas be done already the release of ",(0,o.kt)("inlineCode",{parentName:"p"},"io-sim")," on ",(0,o.kt)("inlineCode",{parentName:"p"},"Hackage")," will happen in the\nnext quarter."),(0,o.kt)("p",null,"We would also like to address ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4244"},"chain-sync timeout issue")," recently\ndiagnosed by Karl Knutsson."),(0,o.kt)("p",null,"If time permits we would also like to address some technical debt, especially:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3387"},"enable nothunk in diffusion tests")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4085"},"refactor diffusion testnet simulation"))),(0,o.kt)("h3",{id:"risks"},"Risks"),(0,o.kt)("p",null,"The performance regression for block producer with P2P needs to be investigated\nin the near future. This is blocker for the release of P2P on BP nodes."),(0,o.kt)("h3",{id:"detailed-log"},"Detailed log"),(0,o.kt)("h4",{id:"contributions-to-ouroboros-network"},"Contributions to Ouroboros-Network"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We added ",(0,o.kt)("inlineCode",{parentName:"li"},"TraceDemoteLocalAsynchronous"),", which enables notification of critical issues for SPOs"),(0,o.kt)("li",{parentName:"ul"},"We fixed ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-ping")," compatibility with ",(0,o.kt)("inlineCode",{parentName:"li"},"NodeToNodeV_10")," (P2P, ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4165"},"pr #4165"),")"),(0,o.kt)("li",{parentName:"ul"},"We fixed a bug in demotion peers to cold which affected P2P nodes (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4170/commits/61058aa5c28a144d723aae183d1745552d757334"},"commit-61058aa5c2"),")"),(0,o.kt)("li",{parentName:"ul"},"Karl Knutsson enhanced ",(0,o.kt)("inlineCode",{parentName:"li"},"SendFetchRequest")," (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4170/commits/bb1c3dddeea78949f531c144bb4f2669eddf7f47"},"commit-bb1c3dddee"),"), open-source contribution)"),(0,o.kt)("li",{parentName:"ul"},"We turned ",(0,o.kt)("inlineCode",{parentName:"li"},"SizeInBytes")," into a newtype."),(0,o.kt)("li",{parentName:"ul"},"We extended ",(0,o.kt)("inlineCode",{parentName:"li"},"CONTRIBUTING.md"),", ",(0,o.kt)("inlineCode",{parentName:"li"},"README.md"),", added ",(0,o.kt)("inlineCode",{parentName:"li"},"CODE_OF_CONDUCT"),"."),(0,o.kt)("li",{parentName:"ul"},"We fixed DNS test failure ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4191"},"issue #4191")),(0,o.kt)("li",{parentName:"ul"},"We fixed a simulation bug found in ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4258"},"issue #4258")),(0,o.kt)("li",{parentName:"ul"},"[pr #4168]"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4177"},"issue #4177"))),(0,o.kt)("h4",{id:"contributions-to-cardano-node"},"Contributions to Cardano-Node"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We maintained the Single Relay Release ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4612"},"pr #4612"),", (e.g. fixing CI issues,\nRebasing it when necessary, publishing packages to Cardano Haskell Packages);"),(0,o.kt)("li",{parentName:"ul"},"We enhanced ",(0,o.kt)("inlineCode",{parentName:"li"},"JSON")," serialisation / deserialisation of ",(0,o.kt)("inlineCode",{parentName:"li"},"NodeToNodeVersion")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"NodeToClientVersion"),";")),(0,o.kt)("h4",{id:"contributions-to-iosim"},"Contributions to IOSim"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We started to use Cardano Haskell Packages for ",(0,o.kt)("inlineCode",{parentName:"li"},"IOSim")," (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/48"},"pr #48"),")"),(0,o.kt)("li",{parentName:"ul"},"We updated change log files"),(0,o.kt)("li",{parentName:"ul"},"We added support of ",(0,o.kt)("inlineCode",{parentName:"li"},"ghc-9.4")," (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/50"},"pr #50"),")")),(0,o.kt)("p",null,"We also addressed the following issues in ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/57"},"pr #57")," in order to prepare the package for publication on Hackage:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"refactored ",(0,o.kt)("inlineCode",{parentName:"li"},"io-classes")," timers API (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/issues/46"},"issue #46"),");"),(0,o.kt)("li",{parentName:"ul"},"created a new package ",(0,o.kt)("inlineCode",{parentName:"li"},"si-timers")," which exposes an interface using SI units\nand is safe on 32-bit systems (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/issues/59"},"issue #59"),");"),(0,o.kt)("li",{parentName:"ul"},"added monad transformers instances for classes defined in ",(0,o.kt)("inlineCode",{parentName:"li"},"io-classes")," (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/issues/58"},"issue #58"),");"),(0,o.kt)("li",{parentName:"ul"},"created ",(0,o.kt)("inlineCode",{parentName:"li"},"io-classes-mtl")," package which includes (experimental) instances for monad transformers;"),(0,o.kt)("li",{parentName:"ul"},"provide ",(0,o.kt)("inlineCode",{parentName:"li"},"MonadMonotonicTimeNSec")," in ",(0,o.kt)("inlineCode",{parentName:"li"},"io-classes")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"MonadMonotonicTime")," in ",(0,o.kt)("inlineCode",{parentName:"li"},"si-timers")," (so that ",(0,o.kt)("inlineCode",{parentName:"li"},"io-classes")," follow the ",(0,o.kt)("inlineCode",{parentName:"li"},"base")," package);"),(0,o.kt)("li",{parentName:"ul"},"added ",(0,o.kt)("inlineCode",{parentName:"li"},"registerCancellableDelay")," in ",(0,o.kt)("inlineCode",{parentName:"li"},"si-timers")," (which allowed us to hide fancy timer api and clean ",(0,o.kt)("inlineCode",{parentName:"li"},"io-classes"),")"),(0,o.kt)("li",{parentName:"ul"},"added support for ",(0,o.kt)("inlineCode",{parentName:"li"},"js_HOST_ARCH")," (the new GHC JS backend)")),(0,o.kt)("p",null,"Note the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/57"},"pr #57")," contains almost 40 commits, and was a major step forward for\n",(0,o.kt)("inlineCode",{parentName:"p"},"io-sim")," ecosystem. We also prepared a draft ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4281"},"pr #4281")," which updates\n",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),"."),(0,o.kt)("p",null,"Other changes for ",(0,o.kt)("inlineCode",{parentName:"p"},"1.0.0.0")," release on Hackage:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Refactored test suite (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/47"},"pr #47"),")"),(0,o.kt)("li",{parentName:"ul"},"Updated documentation, cabal files, ",(0,o.kt)("inlineCode",{parentName:"li"},"CONTRIBUTING"),", ",(0,o.kt)("inlineCode",{parentName:"li"},"SECURITY")," documents, etc in ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/60"},"pr #60"),", currently under review.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c0d329f5.8e7b0d87.js b/assets/js/c0d329f5.8e7b0d87.js new file mode 100644 index 0000000000..605d4fc01e --- /dev/null +++ b/assets/js/c0d329f5.8e7b0d87.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[764],{97886:a=>{a.exports=JSON.parse('{"label":"ledger","permalink":"/tags/ledger","allTagsPath":"/tags","count":44}')}}]); \ No newline at end of file diff --git a/assets/js/c10365f3.08c90d03.js b/assets/js/c10365f3.08c90d03.js new file mode 100644 index 0000000000..c6980e8c0e --- /dev/null +++ b/assets/js/c10365f3.08c90d03.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[7783],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>d});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?a(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):a(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){if(null==e)return{};var i,r,n=function(e,t){if(null==e)return{};var i,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),h=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},s=function(e){var t=h(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=h(i),c=n,d=u["".concat(p,".").concat(c)]||u[c]||m[c]||a;return i?r.createElement(d,o(o({ref:t},s),{},{components:i})):r.createElement(d,o({ref:t},s))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var h=2;h<a;h++)o[h]=i[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,i)}c.displayName="MDXCreateElement"},3827:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>h});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-04-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-04-20-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-20-mithril.md",source:"@site/blog/2023-04-20-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-04-20T00:00:00.000Z",formattedDate:"April 20, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.245,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-04-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-04-21-ledger"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-04-20-node-cli-api"}},p={authorsImageUrls:[void 0]},h=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:h},u="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(u,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team released a new ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2315.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2315.0"))," distribution that implements the first part of the migration of the aggregator stores along with minor improvements and bug fixes. They finished the migration of the aggregator stores to a relational design by completing the adaptation and migration of the signed entity, signer and single signature stores. They also created a new tick service that provides beacons to other services of the aggregator. Additionally, they started implementing the new new certifier service of the aggregator that is in charge of producing certificates for multi-signatures."),(0,n.kt)("p",null,"Finally, they completed the design and definition of the interfaces that must be implemented to provide certification for a new type of data in a Mithril network."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2315.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2315.0"))),(0,n.kt)("li",{parentName:"ul"},"Completed the epic that implements a relational store in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/779"},"#779"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"signed_entity")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/816"},"#816")),(0,n.kt)("li",{parentName:"ul"},"Completed the creation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"signer")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/814"},"#814")),(0,n.kt)("li",{parentName:"ul"},"Completed the migration/adaptation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"single_signature")," table ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/829"},"#829")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that designs and implement generic signing/verification of entity services ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/780"},"#780"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the definition of the interface of the generic entity service for signing ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/847"},"#847")),(0,n.kt)("li",{parentName:"ul"},"Worked on the implementation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"Certifier")," service in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/850"},"#850")),(0,n.kt)("li",{parentName:"ul"},"Completed the extension of the ",(0,n.kt)("inlineCode",{parentName:"li"},"SignedEntityType")," type ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/848"},"#848")),(0,n.kt)("li",{parentName:"ul"},"Completed the implementation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"Tick")," service in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/849"},"#849")),(0,n.kt)("li",{parentName:"ul"},"Worked on implementing the signable builder for the ",(0,n.kt)("inlineCode",{parentName:"li"},"Mithril Stake Distribution")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/851"},"#851"))))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c149628c.33c97bf6.js b/assets/js/c149628c.33c97bf6.js new file mode 100644 index 0000000000..b8bc195ead --- /dev/null +++ b/assets/js/c149628c.33c97bf6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[41735],{45456:a=>{a.exports=JSON.parse('{"label":"benchmarking-reports","permalink":"/reports/tags/benchmarking-reports","allTagsPath":"/reports/tags","count":6}')}}]); \ No newline at end of file diff --git a/assets/js/c158f9a9.f074d224.js b/assets/js/c158f9a9.f074d224.js new file mode 100644 index 0000000000..6b03238ee5 --- /dev/null +++ b/assets/js/c158f9a9.f074d224.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11829],{91225:e=>{e.exports=JSON.parse('{"permalink":"/page/37","page":37,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/36","nextPage":"/page/38","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/c178b56c.ad959469.js b/assets/js/c178b56c.ad959469.js new file mode 100644 index 0000000000..938f8bfb73 --- /dev/null +++ b/assets/js/c178b56c.ad959469.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92255],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=p(n),c=o,m=d["".concat(l,".").concat(c)]||d[c]||h[c]||a;return n?r.createElement(m,i(i({ref:t},u),{},{components:n})):r.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:o,i[1]=s;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}c.displayName="MDXCreateElement"},80883:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-09-01-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-09-01-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-network.md",source:"@site/blog/2023-09-01-network.md",title:"Network Team Update",description:"High-level overview of sprint 43",date:"2023-09-01T00:00:00.000Z",formattedDate:"September 1, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.765,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-09-01-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-09-01-ledger"},nextItem:{title:"SRE Team Update",permalink:"/2023-09-01-sre"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 43",id:"high-level-overview-of-sprint-43",level:2},{value:"Progress on P2P addoption",id:"progress-on-p2p-addoption",level:3},{value:"SPO relays",id:"spo-relays",level:4},{value:"IOG relays",id:"iog-relays",level:4},{value:"Detailed description",id:"detailed-description",level:2},{value:"Peer Sharing",id:"peer-sharing",level:2},{value:"Async Demotion Test Fix",id:"async-demotion-test-fix",level:2}],u={toc:p},d="wrapper";function h(e){let{components:t,...a}=e;return(0,o.kt)(d,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-43"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+43%22"},"sprint 43")),(0,o.kt)("p",null,"In this sprint, we received contributions from ",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"CF")," & ",(0,o.kt)("a",{parentName:"p",href:"https://galois.com/"},"Galois"),". Karl Knutsson\n(",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"CF"),") has addressed various issues regarding peer churning in P2P, timeouts\nand our ",(0,o.kt)("inlineCode",{parentName:"p"},"WireShark")," dissector. While the ",(0,o.kt)("a",{parentName:"p",href:"https://galois.com/"},"Galois")," developers focused on\naddressing issues from their review last year. See below for more details."),(0,o.kt)("p",null,"We continued working on bootstrap peers ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4661"},"ouroboros-network-#4661"),"."),(0,o.kt)("p",null,"We refactored our test suites: they are split into ",(0,o.kt)("inlineCode",{parentName:"p"},"io-tests")," which require to\nbe run natively on all platforms (these tests mostly contain tests that\nrequire ",(0,o.kt)("inlineCode",{parentName:"p"},"IO")," system calls) and ",(0,o.kt)("inlineCode",{parentName:"p"},"sim-tests")," which are platform independent. We\nrun ",(0,o.kt)("inlineCode",{parentName:"p"},"io-tests")," on all supported platforms (e.g. ",(0,o.kt)("inlineCode",{parentName:"p"},"x86_64-linux"),",\n",(0,o.kt)("inlineCode",{parentName:"p"},"x86-64-darwin"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"aarch64-darwin")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"x86_64-w64-mingw32")," (Windows)) natively.\nThe ",(0,o.kt)("inlineCode",{parentName:"p"},"sim-tests")," are not executed on ",(0,o.kt)("inlineCode",{parentName:"p"},"Windows")," due to memory limitations on\nGitHub Actions runners. ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4653"},"ouroboros-network-#4653")),(0,o.kt)("p",null,"We also started rebasing ",(0,o.kt)("inlineCode",{parentName:"p"},"typed-protocols")," refactoring branches."),(0,o.kt)("p",null,"Marcin was appointed as the ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," release engineer for the ",(0,o.kt)("inlineCode",{parentName:"p"},"8.4.0-pre"),"\nversion. So far he integrated ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-ledger-conway-1.8")," and\n",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.9.1.0")," to ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-cli")," and\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-api"),". Once we will have an integration branch for ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node"),",\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-ledger-conway-1.8")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," packages can be released\nto ",(0,o.kt)("inlineCode",{parentName:"p"},"CHaP")," and PRs can be merged once they go through review & CI."),(0,o.kt)("p",null,"We also fixed some smaller issues regarding peer sharing (both were discovered\nby Karl from ",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"CF"),"). More details are included below."),(0,o.kt)("h3",{id:"progress-on-p2p-addoption"},"Progress on P2P addoption"),(0,o.kt)("h4",{id:"spo-relays"},"SPO relays"),(0,o.kt)("p",null,"There are currently ~2000 relays running P2P\nenabled nodes that belong to 557 pools with a combined stake of 7900Mil Ada. On\n16th of August it was ~1700 relays, 531 pools with a combined stake of 7700Mil\nAda."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"P2P relays",src:n(86597).Z,width:"2034",height:"1588"})),(0,o.kt)("p",null,"The following graphs show several different versions of relays running on the mainnet. The\ngreen line ",(0,o.kt)("inlineCode",{parentName:"p"},"NodeToNodeVersionV10.True")," denotes P2P relays, which slowly\nincrease over time. The ",(0,o.kt)("inlineCode",{parentName:"p"},"V9")," and earlier versions of the ",(0,o.kt)("inlineCode",{parentName:"p"},"node-to-node"),"\nthe protocol indicates nodes version ",(0,o.kt)("inlineCode",{parentName:"p"},"1.35.x")," or earlier.\n",(0,o.kt)("img",{alt:"node versions",src:n(31567).Z,width:"2038",height:"1594"})),(0,o.kt)("p",null,"Data has been kindly provided by ",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"CF")," and their mainnet monitoring\ninfrastructure."),(0,o.kt)("h4",{id:"iog-relays"},"IOG relays"),(0,o.kt)("p",null,"As of this week, 90% of IOG relays are running a P2P setup. In the next sprint all\nIOG relays will be running P2P."),(0,o.kt)("h2",{id:"detailed-description"},"Detailed description"),(0,o.kt)("p",null,"In this sprint, we got a few contributions from ",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"CF"),":"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Karl made peer churning mechanism less aggressive ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4656"},"ouroboros-network-#4656"),"; and"),(0,o.kt)("li",{parentName:"ul"},"he added timeouts for idle states in ",(0,o.kt)("inlineCode",{parentName:"li"},"ChainSync")," & ",(0,o.kt)("inlineCode",{parentName:"li"},"KeepAlive"),"\nminiprotocols. These timeouts help a node remove idle connections from the\nresponder (server) side ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4648"},"ouroboros-network-#4648"),"."),(0,o.kt)("li",{parentName:"ul"},"he improved the ",(0,o.kt)("inlineCode",{parentName:"li"},"WireShark")," dissector by adding support for the ",(0,o.kt)("inlineCode",{parentName:"li"},"peer-sharing")," mini-protocol ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4656"},"ouroboros-network-#4656"),".")),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://galois.com/"},"Galois")," has been making progress in addressing some of the issues they raised in their review (last year):"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Mark Tullsen (",(0,o.kt)("a",{parentName:"li",href:"https://galois.com/"},"Galois"),") has been working on refactoring the main entry function of P2P ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4661"},"ouroboros-network-#4661")," (in review);"),(0,o.kt)("li",{parentName:"ul"},"Sam Cowger (",(0,o.kt)("a",{parentName:"li",href:"https://galois.com/"},"Galois"),") has been reviewing all use cases of ",(0,o.kt)("inlineCode",{parentName:"li"},"error")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"unsafe")," calls\n",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4661"},"ouroboros-network-#4661")," (in review).")),(0,o.kt)("h2",{id:"peer-sharing"},"Peer Sharing"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Light peer sharing is only enabled when peer sharing is turned on ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4652"},"ouroboros-network-#4652"),";"),(0,o.kt)("li",{parentName:"ul"},"Handshake incorrectly reports peer sharing value. It's supposed to relay the\nremote value, but instead, it returns the local value. ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4642"},"ouroboros-network-#4642")," (in review).")),(0,o.kt)("h2",{id:"async-demotion-test-fix"},"Async Demotion Test Fix"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We fixed an async demotion test failure which turned out to be a weakness of\nthe test itself rather than a bug in the connection manager. ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4655"},"ouroboros-network-#4655"))))}h.isMDXComponent=!0},86597:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2023-08-31-p2p-relays-8e5be189ad8437375c5067026c003556.png"},31567:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/2023-08-31-relay-versions-0a8d445e1b0f3a793ccdd94f4aacd421.png"}}]); \ No newline at end of file diff --git a/assets/js/c1c5c6f5.bba09171.js b/assets/js/c1c5c6f5.bba09171.js new file mode 100644 index 0000000000..84036e13b3 --- /dev/null +++ b/assets/js/c1c5c6f5.bba09171.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95569],{9564:a=>{a.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"quarterly"}')}}]); \ No newline at end of file diff --git a/assets/js/c1cf9f04.3768e9a5.js b/assets/js/c1cf9f04.3768e9a5.js new file mode 100644 index 0000000000..8fa59a7055 --- /dev/null +++ b/assets/js/c1cf9f04.3768e9a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[276],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},694:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-06-12-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-06-12-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-12-mithril.md",source:"@site/blog/2024-06-12-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-06-12T00:00:00.000Z",formattedDate:"June 12, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.4,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-06-12-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-06-19-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-06-10-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team released the new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2423.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2423.0")),", which includes the removal of the ",(0,n.kt)("inlineCode",{parentName:"p"},"snaphot")," command of the client CLI, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks and improved the throughput of the prover route of the aggregator by fixing some bottlenecks in the Merkle proof computation. Additionally, the team made progress on low-latency certification by working on the retrieval of the transactions with the chain sync mini-protocol and Pallas, as well as the handling of rollbacks of the chain."),(0,n.kt)("p",null,"Finally, they kept working on the threat modeling explainer for the documentation website and provided support for multiple TLS implementations in the client library thanks to a community contribution."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2423.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2423.0"))),(0,n.kt)("li",{parentName:"ul"},"Publication of a ",(0,n.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/06/12/client-cli-removed-command"},"dev blog post")," about the ",(0,n.kt)("strong",{parentName:"li"},"removed Mithril client CLI 'snapshot' command")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Client verification fails with an already stored but non certified yet transaction")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1719"},"#1719")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Computation of Merkle proof has bottleneck with multiple transactions")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1730"},"#1730")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Automatic rollback on SQL transactions")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1741"},"#1741")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Allow the underlying TLS implementation to be selectable when using a library.")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1737"},"#1737")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Release ",(0,n.kt)("inlineCode",{parentName:"strong"},"2423")," distribution")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1695"},"#1695")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Handle rollbacks in Cardano transactions")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1724"},"#1724")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Pooled resources should be reset when given back")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1743"},"#1743")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Threat modeling and risk analysis")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Import Cardano transactions with ",(0,n.kt)("inlineCode",{parentName:"strong"},"ChainReader"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1705"},"#1705"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c25c032e.ccb65124.js b/assets/js/c25c032e.ccb65124.js new file mode 100644 index 0000000000..da1a0ed273 --- /dev/null +++ b/assets/js/c25c032e.ccb65124.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[76375],{57458:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/c2b4dd94.8f10f7b0.js b/assets/js/c2b4dd94.8f10f7b0.js new file mode 100644 index 0000000000..d58eb42563 --- /dev/null +++ b/assets/js/c2b4dd94.8f10f7b0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43020],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,m=c(e,["components","mdxType","originalType","parentName"]),u=s(n),p=a,h=u["".concat(l,".").concat(p)]||u[p]||d[p]||o;return n?r.createElement(h,i(i({ref:t},m),{},{components:n})):r.createElement(h,i({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var s=2;s<o;s++)i[s]=n[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}p.displayName="MDXCreateElement"},79021:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & tracing update",slug:"2023-07-12-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,c={permalink:"/2023-07-12-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-12-performance-and-tracing.md",source:"@site/blog/2023-07-12-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-07-12T00:00:00.000Z",formattedDate:"July 12, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.29,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-07-12-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-07-12-consensus"},nextItem:{title:"Crypto Team Update",permalink:"/2023-07-07-crypto"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: The peformance investigation into the compiler switch to GHC9 is ongoing. Additionally, a roadmap for implementing Consensus QTAs has been developed."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: Our workbench has undergone some refactoring to seamlessly integrate its profiles into all available backends."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Optimization of the new tracing system is ongoing and yielding good performance results."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: We developed a new feature for the nomad backend which allows pinning deployments to specific machines.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"Our analysis of the GHC9 build of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," has produced several locations in the code base where the new compiler seems to miss opportunities for optimization. Our hypothesis is, that those can account for the difference in resource usage we observe when benchmarking with a full cluster run. Instructing the compiler on how to perform the optimizations which GHC8 apparently applied out of the box requires further investigation. "),(0,a.kt)("p",null,"In an effort to define Quantitative Timeliness Agreements (QTAs) on a per-component basis, we have coordinated with the Consensus team and developed a roadmap for providing those on consensus level. Making use of the insight that system-level benchmarks allow, we intend to set up and calibrate a benchmark that can reliably predict a regression or optimization for select metrics before needing full integration into ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". This will help tremendously in various ways: catching regressions much earlier, localizing them much easier, avoiding repeated component integration and much shorter feedback cycle."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"We have worked on seamless integration of our benchmarking profiles into the many available backends that the workbench provides. The goal was to be backend-agnostic, to guarantee that all benchmarking run artifacts be structurally identical as far as their file name, format and location are concerned. This lead to refactoring work and has already landed in ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),"."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"Much effort went into further optimization of the new tracing system. After working on configuration to align both new and legacy tracing system with regard to their trace frequencies, we could uncover some increase in resource usage. This occurred for corner cases under very heavy load. These cases have been addressed already, and do now surpass the legacy tracing system in terms of performance."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"For reliable benchmarking results it is vital to introduce as few confounding factors as possible when performing runs. This includes hardware and network topology. The nomad backend has been outfitted with a mechanism to pin the nomad job for some node in our benhcmarking cluster to a specific machine instance. This greatly increases confidence in the metrics observed from a run. "),(0,a.kt)("p",null,"Furthermore this feature will detect any change in the underlying hardware or topology so it can be taken into account. The new feature has been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c2d03b29.8c621623.js b/assets/js/c2d03b29.8c621623.js new file mode 100644 index 0000000000..323adcb893 --- /dev/null +++ b/assets/js/c2d03b29.8c621623.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[82224],{82276:e=>{e.exports=JSON.parse('{"permalink":"/tags/mithril/page/4","page":4,"postsPerPage":5,"totalPages":13,"totalCount":63,"previousPage":"/tags/mithril/page/3","nextPage":"/tags/mithril/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/c2e0061a.4fea544c.js b/assets/js/c2e0061a.4fea544c.js new file mode 100644 index 0000000000..bb862866f5 --- /dev/null +++ b/assets/js/c2e0061a.4fea544c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[84755],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=a,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||i;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var p=2;p<i;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},41372:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const i={title:"Mithril Team Update",slug:"2024-06-19-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-06-19-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-19-mithril.md",source:"@site/blog/2024-06-19-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-06-19T00:00:00.000Z",formattedDate:"June 19, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.275,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-06-19-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-06-19-ledger"},nextItem:{title:"Mithril Team Update",permalink:"/2024-06-12-mithril"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They implemented a warmup strategy for the signer and aggregator to begin importing transactions as early as possible, thus minimizing the impact of network activation on certification. They also significantly improved the throughput of the prover route of the aggregator by addressing database access bottlenecks. Additionally, the team made progress on low-latency certification by completing the handling of chain rollbacks and nearly completing the retrieval of transactions using the chain sync mini-protocol and Pallas."),(0,a.kt)("p",null,"Finally, they made final modifications to the threat modeling explainer for the documentation website, which will be released shortly, and worked on a bug that occurs when parsing some blocks of the SanchoNet network."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Handle rollbacks in Cardano transactions")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1724"},"#1724")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Pooled resources should be reset when given back")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1743"},"#1743")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Lock signature of signed entity types during warm-up")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1693"},"#1693")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Warmup import Cardano transactions at node startup")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1692"},"#1692")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Build, test and package ",(0,a.kt)("inlineCode",{parentName:"strong"},"arm64")," binaries in CI")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1751"},"#1751")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Threat modeling and risk analysis")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Import Cardano transactions with ",(0,a.kt)("inlineCode",{parentName:"strong"},"ChainReader"))," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1705"},"#1705")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Import Cardano transactions by sequences of block ranges")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1766"},"#1766")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Implement database connection pooling for Cardano transaction repository")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1760"},"#1760")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Cardano signatures are not produced on ",(0,a.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1750"},"#1750"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c2eec07f.ec50ea53.js b/assets/js/c2eec07f.ec50ea53.js new file mode 100644 index 0000000000..d8197e0960 --- /dev/null +++ b/assets/js/c2eec07f.ec50ea53.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[35388],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?i(Object(a),!0).forEach((function(e){r(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function o(t,e){if(null==t)return{};var a,n,r=function(t,e){if(null==t)return{};var a,n,r={},i=Object.keys(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),u=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(p.Provider,{value:e},t.children)},d="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,p=t.parentName,c=o(t,["components","mdxType","originalType","parentName"]),d=u(a),h=r,s=d["".concat(p,".").concat(h)]||d[h]||m[h]||i;return a?n.createElement(s,l(l({ref:e},c),{},{components:a})):n.createElement(s,l({ref:e},c))}));function s(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=h;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[d]="string"==typeof t?t:r,l[1]=o;for(var u=2;u<i;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},6988:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-07-04-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",o={permalink:"/2023-07-04-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-04-node-cli-api.md",source:"@site/blog/2023-07-04-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-07-04T00:00:00.000Z",formattedDate:"July 4, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.495,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-07-04-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-07-04-db-sync"},nextItem:{title:"Hydra Team Update",permalink:"/2023-06-30-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},d="wrapper";function m(t){let{components:e,...a}=t;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-06-21---2023-07-04"},"2023-06-21 - 2023-07-04"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Started integration of conway era into the cardano-api,"),(0,r.kt)("li",{parentName:"ul"},'Pre-release of cardano-cli 8.2.1 which enables creating goveranance "Update constitution" governance actionsas well as voting. Both only as SPO. DREP and CC will come in future releases.'),(0,r.kt)("li",{parentName:"ul"},"Cardano-cli is moving to a top-level era command structure (i.e. cardano-cli conway, cardano-cli babbage, etc to accomodate for different fucntionalities available in diferent eras. In particular between Babbage and Conway governance-related functionalities."),(0,r.kt)("li",{parentName:"ul"},"Continue refactoring cardano-testnet"),(0,r.kt)("li",{parentName:"ul"},"CI and docs house keeping on the new cardnao-cli and cardano-api repositories")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/60"},"Update to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.7.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/44"},"Release 8.2.1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/39"},"Use new function-based API instead of using query data types directly"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/94"},"Release cardano-api 8.7")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/92"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.6.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/90"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.2.0.0.1.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/88"},"Backport: Add era phantom type parameter to Certificate")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/86"},"Parameterise ",(0,r.kt)("inlineCode",{parentName:"a"},"Certificate")," type with phantom ",(0,r.kt)("inlineCode",{parentName:"a"},"era")," type argument")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/85"},"Voting procedure and proposal procedure updates")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/84"},"Parameterise ",(0,r.kt)("inlineCode",{parentName:"a"},"Certificate")," with ",(0,r.kt)("inlineCode",{parentName:"a"},"era"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/83"},"Parameterise ",(0,r.kt)("inlineCode",{parentName:"a"},"Certificate")," type with phantom ",(0,r.kt)("inlineCode",{parentName:"a"},"era")," type argument")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/79"},"Add contributing guide")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/77"},"Unified ",(0,r.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra")," constraint summoning")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/70"},"Update CHaP index")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/41"},"CIP-1694 API - Part 1"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5356"},"cardano-node top level error handler")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5353"},"Turn on some traces by default"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5364"},"Report payment address and UTxOs in testnets")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5362"},"New Conway ",(0,r.kt)("inlineCode",{parentName:"a"},"stake-snapshot")," tests"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/79"},"Add contributing guide")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/33"},"Release workflow description")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5353"},"Turn on some traces by default"))),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/75"},"Add PR changelog check")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/71"},"Fix stylish haskell in github action workflow")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/62"},"Enable CI on PRs from forks")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/53"},"Remove merge_group trigger from changelog check CI")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/46"},"Add PR changelog check. Add core-tech group to GHA description codeowners.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/41"},"Fix stylish haskell in github action workflow")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/40"},"Enable CI in PRs from forks")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/48"},"Add contributing guide"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c315164d.b4f0ce38.js b/assets/js/c315164d.b4f0ce38.js new file mode 100644 index 0000000000..f7b288b8cb --- /dev/null +++ b/assets/js/c315164d.b4f0ce38.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43194],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},h=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=p(r),m=a,d=u["".concat(s,".").concat(m)]||u[m]||c[m]||i;return r?n.createElement(d,o(o({ref:t},h),{},{components:r})):n.createElement(d,o({ref:t},h))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var p=2;p<i;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},64268:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const i={title:"Mithril Team Update",slug:"2023-01-12-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-12-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-12-mithril.md",source:"@site/blog/2023-01-12-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-01-12T00:00:00.000Z",formattedDate:"January 12, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.165,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-01-12-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"System Test Team Update",permalink:"/2023-01-13-system-test"},nextItem:{title:"Consensus Team Update",permalink:"/2023-01-11-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],h={toc:p},u="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ",(0,a.kt)("a",{parentName:"p",href:"https://mithril.network/doc/adr/4"},"ADR"),". They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible."),(0,a.kt)("p",null,"Finally, they have worked on upgrading the ",(0,a.kt)("inlineCode",{parentName:"p"},"devnet")," and fixing some flakiness in the end to end tests of the CI."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Implemented the redaction of an ADR for handling graceful updates of the Mithril Network ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/671"},"#671")),(0,a.kt)("li",{parentName:"ul"},"Worked on a proof of concept to handle backward compatibilty of exchanged messages with ",(0,a.kt)("inlineCode",{parentName:"li"},"protobuf")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/677"},"#677")),(0,a.kt)("li",{parentName:"ul"},"Worked on a proof of concept to handle backward compatibilty of exchanged messages with ",(0,a.kt)("inlineCode",{parentName:"li"},"avro")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/678"},"#678")),(0,a.kt)("li",{parentName:"ul"},"Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/672"},"#672")),(0,a.kt)("li",{parentName:"ul"},"Worked on upgrading the Cardano node of the Mithril ",(0,a.kt)("inlineCode",{parentName:"li"},"devnet"),", as well as fixing flakiness of the CI ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/523"},"#523")),(0,a.kt)("li",{parentName:"ul"},"Prepared and tested the new ",(0,a.kt)("inlineCode",{parentName:"li"},"2302")," distribution pre-release ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2302.0-prerelease"},"2302.0-prerelease")),(0,a.kt)("li",{parentName:"ul"},"Updated the documentation for SPO to build a signer node in order to better reflect the new release process ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/681"},"#681"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c4479859.0a084de0.js b/assets/js/c4479859.0a084de0.js new file mode 100644 index 0000000000..b48a86286b --- /dev/null +++ b/assets/js/c4479859.0a084de0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73321],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function p(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},l=Object.keys(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),u=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=u(e.components);return n.createElement(o.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,m=p(e,["components","mdxType","originalType","parentName"]),d=u(a),k=r,h=d["".concat(o,".").concat(k)]||d[k]||c[k]||l;return a?n.createElement(h,i(i({ref:t},m),{},{components:a})):n.createElement(h,i({ref:t},m))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=k;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[d]="string"==typeof e?e:r,i[1]=p;for(var u=2;u<l;u++)i[u]=a[u];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}k.displayName="MDXCreateElement"},92606:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2023-06-07-node-cli-api",tags:["cli-api"],authors:"carlos",hide_table_of_contents:!1},i="Node-Api-Cli Update",p={permalink:"/2023-06-07-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-07-node-cli-api.md",source:"@site/blog/2023-06-07-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-06-07T00:00:00.000Z",formattedDate:"June 7, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.37,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-06-07-node-cli-api",tags:["cli-api"],authors:"carlos",hide_table_of_contents:!1},prevItem:{title:"System Test Team Update",permalink:"/2023-06-08-system-test"},nextItem:{title:"Hydra Team Update",permalink:"/2023-06-02-hydra"}},o={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],m={toc:u},d="wrapper";function c(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-06-07---2023-06-20"},"2023-06-07 - 2023-06-20"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Completed cardano-cli migration to input-output-hk/cardano-cli"),(0,r.kt)("li",{parentName:"ul"},"cardano-cli ping now uses cardano-ping-0.2.0.5"),(0,r.kt)("li",{parentName:"ul"},"New queries on API:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryCurrentEpochState")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryDebugLedgerState")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryGenesisParameters")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryPoolDistribution")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryPoolState")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryProtocolParameters")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryProtocolParametersUpdate")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryProtocolState")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryStakeAddresses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryStakeDistribution")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryStakePoolParameters")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryStakeSnapshot")))),(0,r.kt)("li",{parentName:"ul"},"Deprecate:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryPparams")))),(0,r.kt)("li",{parentName:"ul"},"Export query API as functions",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"genFeatureValueInEra")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"featureInShelleyBasedEra")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"isFeatureValue")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"valueOrDefault")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"asFeatureValue")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"asFeatureValueInShelleyBasedEra")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryEpoch")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"requireShelleyBasedEra")))),(0,r.kt)("li",{parentName:"ul"},"Restructure cardano-testnet (WIP)")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5328"},"update network dependency and versions"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5326"},"Updated cardano-cli to use ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-ping-0.2.0.5"),"."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5316"},"Use ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli")," from CHaP"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5315"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"--conway-era")," flag"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5313"},"Updated cardano-cli ping command"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5311"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"--conway-era")," flag"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30"},"Use cardano-ping-0.2.0.5"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/28"},"Deprecate ",(0,r.kt)("inlineCode",{parentName:"a"},"--protocol-params-file")," option of the ",(0,r.kt)("inlineCode",{parentName:"a"},"transaction build")," command more thoroughly"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/25"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"Cardano.Api.Query.Expr")," module"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/24"},"Use simplified ",(0,r.kt)("inlineCode",{parentName:"a"},"queryStateForBalancedTx")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/20"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"--conway-era")," flag")))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/59"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.5.2.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/58"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"requireShelleyBasedEra")," function")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/57"},"New version cardano-api-8.5.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/56"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"queryEpoch")," function")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/55"},"New version 8.5.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/54"},"Error on ",(0,r.kt)("inlineCode",{parentName:"a"},"hlint")," warnings in CI")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/53"},"Additional query expression functions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/52"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.4.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/49"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.3.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/48"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"Cardano.Api.Query.Expr")," module")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/47"},"Simplify ",(0,r.kt)("inlineCode",{parentName:"a"},"queryStateForBalancedTx"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/46"},"Revert to use ",(0,r.kt)("inlineCode",{parentName:"a"},"testProperty")," now that it isn't deprecated anymore"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.1.1"},"cardano-node 8.1.1 release")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5328"},"update network dependency and versions"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5340"},"Add ability to retry tests with DISABLE_RETRIES=1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5339"},"Move golden files to proper location")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5336"},"Conway testnet")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5335"},"Don't retry testnet when failed")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5321"},"Remove YAML filepath record from data Conf")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5315"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"--conway-era")," flag")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5311"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"--conway-era")," flag")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5309"},"Remove duplicate --testnet-magic flag")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5307"},"Restructure cardano testnet "))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/18"},"Fix Windows CI issues"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c4565987.fb7cda29.js b/assets/js/c4565987.fb7cda29.js new file mode 100644 index 0000000000..f5c1d46b1e --- /dev/null +++ b/assets/js/c4565987.fb7cda29.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[14645],{94644:e=>{e.exports=JSON.parse('{"permalink":"/tags/performance-tracing/page/7","page":7,"postsPerPage":5,"totalPages":7,"totalCount":34,"previousPage":"/tags/performance-tracing/page/6","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/c48f7122.5c2ded40.js b/assets/js/c48f7122.5c2ded40.js new file mode 100644 index 0000000000..4be9c01974 --- /dev/null +++ b/assets/js/c48f7122.5c2ded40.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[69473],{99816:e=>{e.exports=JSON.parse('{"permalink":"/page/12","page":12,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/11","nextPage":"/page/13","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/c4d8aa78.bed22e96.js b/assets/js/c4d8aa78.bed22e96.js new file mode 100644 index 0000000000..84ecfb8bb3 --- /dev/null +++ b/assets/js/c4d8aa78.bed22e96.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[81415],{78360:a=>{a.exports=JSON.parse('{"label":"crypto","permalink":"/tags/crypto","allTagsPath":"/tags","count":18}')}}]); \ No newline at end of file diff --git a/assets/js/c511c40f.e9ee81bc.js b/assets/js/c511c40f.e9ee81bc.js new file mode 100644 index 0000000000..6e2b86913f --- /dev/null +++ b/assets/js/c511c40f.e9ee81bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94922],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},c),{},{components:n})):r.createElement(h,s({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u<o;u++)s[u]=n[u];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},63417:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-05-17-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-05-17-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-17-consensus.md",source:"@site/blog/2023-05-17-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-05-17T00:00:00.000Z",formattedDate:"May 17, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.285,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-05-17-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-05-19-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-05-17-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Genesis",id:"genesis",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the past two weeks we brought further improvements into the Genesis design in collaboration with the IO Research and Networking teams. These improvements concern the Genesis selection rule, candidate rule, and root peers usage. See the ","[Genesis][#genesis]"," section for more details."),(0,a.kt)("p",null,"Regarding our UTxO-HD prototype, during the past two weeks we put together a pull-request that improves the DB locking mechanism, started porting the mempool fairness improvements from our ",(0,a.kt)("inlineCode",{parentName:"p"},"main")," branch, and integrated a new open source library (that implements cancellative monoids) that allowed us to simplify our code and get a small performance gain."),(0,a.kt)("p",null,"We improved our tooling by releasing an ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/68"},"immutable DB server"),", which can be used for testing and benchmarking purposes, and a ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/70"},(0,a.kt)("inlineCode",{parentName:"a"},"db-truncater"))," program, which can be used in disaster recovery and benchmarking scenarios."),(0,a.kt)("h2",{id:"genesis"},"Genesis"),(0,a.kt)("p",null,"The consensus team working on Genesis:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Improved the genesis selection rule as a result of our interaction with IO Research."),(0,a.kt)("li",{parentName:"ul"},"Studied how the hard-fork combinator handles forecasting at era transitions, and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/89"},"improved our documentation"),"."),(0,a.kt)("li",{parentName:"ul"},"Determined that the simplest candidate rule we had considered will work for the Genesis window at era transitions, at least for the MVP."),(0,a.kt)("li",{parentName:"ul"},"Elaborated concrete proposal for the Genesis State Machine."),(0,a.kt)("li",{parentName:"ul"},"Met with the Networking Team and advised/co-designed how to implement the stop gap usage of public trusted root peers before Genesis is released (it's similar to the Genesis State Machine).")),(0,a.kt)("p",null,"The team is currently re-analyzing the Limit on Patience, which can be less aggressive now that we've re-introduced the Genesis State Machine."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c51276e7.40177999.js b/assets/js/c51276e7.40177999.js new file mode 100644 index 0000000000..0f638724be --- /dev/null +++ b/assets/js/c51276e7.40177999.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2071],{10359:e=>{e.exports=JSON.parse('{"permalink":"/tags/incident","page":1,"postsPerPage":5,"totalPages":1,"totalCount":2,"blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/c52fdde1.6e955840.js b/assets/js/c52fdde1.6e955840.js new file mode 100644 index 0000000000..0c0699ebda --- /dev/null +++ b/assets/js/c52fdde1.6e955840.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54421],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var l=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,l)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,l,r=function(e,t){if(null==e)return{};var a,l,r={},n=Object.keys(e);for(l=0;l<n.length;l++)a=n[l],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l<n.length;l++)a=n[l],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=l.createContext({}),u=function(e){var t=l.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return l.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},d=l.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=u(a),d=r,h=m["".concat(p,".").concat(d)]||m[d]||c[d]||n;return a?l.createElement(h,i(i({ref:t},s),{},{components:a})):l.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,i=new Array(n);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:r,i[1]=o;for(var u=2;u<n;u++)i[u]=a[u];return l.createElement.apply(null,i)}return l.createElement.apply(null,a)}d.displayName="MDXCreateElement"},61874:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>n,metadata:()=>o,toc:()=>u});var l=a(87462),r=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2024-01-10-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-01-10-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-10-ledger.md",source:"@site/blog/2024-01-10-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-01-10T00:00:00.000Z",formattedDate:"January 10, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:3.005,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-01-10-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-01-10-consensus"},nextItem:{title:"Mithril Team Update",permalink:"/2024-01-10-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements",id:"improvements",level:3},{value:"Releasing",id:"releasing",level:3}],s={toc:u},m="wrapper";function c(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,l.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"Major Conway related development was the refactoring of how we distinguish Plutus\nlanguage versions in every era, thus drasticly improving the type safety and getting us\nmuch closer to PlutusV3 integration."),(0,r.kt)("p",null,"There has also been many bug fixes and improvements since the last update. Some important bug\nfixes are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"missing ",(0,r.kt)("inlineCode",{parentName:"li"},'"protocolVersion"')," field in JSON instance for Babbage and Conway protocol parameters"),(0,r.kt)("li",{parentName:"ul"},"requiring witnesses for DRep registration"),(0,r.kt)("li",{parentName:"ul"},"new committee governance action ratification was implemented incorrectly"),(0,r.kt)("li",{parentName:"ul"},"guard against invalid protocol versions in hard fork initiation proposals"),(0,r.kt)("li",{parentName:"ul"},"failures during updates of Plutus CostModels were not retained"),(0,r.kt)("li",{parentName:"ul"},"fixed the types for some protocol parameters in order to prevent values that are too large"),(0,r.kt)("li",{parentName:"ul"},"serialization and CDDL fixes")),(0,r.kt)("p",null,"A few useful features have been also implemented, like new ledger events, doubling the\nlimit for Url length, consensus query, JSON instances and so on. It was also required\nfor testing to implement a reliable transaction fee estimation function, which is now\navailable not only for testing, but also for cardano-cli."),(0,r.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,r.kt)("h3",{id:"conway"},"Conway"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3915"},"pull-3915")," - Utilize ",(0,r.kt)("inlineCode",{parentName:"li"},"Inject")," type class for ",(0,r.kt)("inlineCode",{parentName:"li"},"Val"),"'s ",(0,r.kt)("inlineCode",{parentName:"li"},"inject")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3899"},"pull-3899")," - Bring Plutus language version to the type level"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3917"},"pull-3917")," - Ensure DRepRegistration certificate requires a witness"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3921"},"pull-3921")," - Fix committee validation in Ratify"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3935"},"pull-3935")," - Fixed a bug in ",(0,r.kt)("inlineCode",{parentName:"li"},"Conway.Rules.Gov")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3956"},"pull-3956")," - Allow 128 byte Url and DnsNames for decoder version atleast 9."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3954"},"pull-3954")," - Fix how we update ",(0,r.kt)("inlineCode",{parentName:"li"},"CostModels")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3947"},"pull-3947")," - Change the type of some pparam fields to align with how they are represented in Consensus"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3951"},"pull-3951")," - Conway genesis DRep injection"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3961"},"pull-3961")," - Switch ContextError to an injective type family from a data family"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3963"},"pull-3963")," - Abstract ",(0,r.kt)("inlineCode",{parentName:"li"},"getWitsVKeyNeeded")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3933"},"pull-3933")," - Improve cbor serialization of TxWits in Conway"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3971"},"pull-3971")," - ToJson instances for context error"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3977"},"pull-3977")," - Added ",(0,r.kt)("inlineCode",{parentName:"li"},"GetAccountStateQuery")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3975"},"pull-3975")," - Add policy hash protection to ",(0,r.kt)("inlineCode",{parentName:"li"},"TreasuryWithdrawals")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"ParameterChange"))),(0,r.kt)("h3",{id:"testing"},"Testing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3892"},"pull-3892")," - Translate DRep expiry test from ",(0,r.kt)("inlineCode",{parentName:"li"},"ConwayFeatures")," to Imp ",(0,r.kt)("inlineCode",{parentName:"li"},"GovSpec")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3913"},"pull-3913")," - Add certs to conformance testing"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3911"},"pull-3911")," - Add a Preds to generate valid GovActionStates."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3929"},"pull-3929")," - Improve comment on ",(0,r.kt)("inlineCode",{parentName:"li"},"unit_interval")," in cddl"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3950"},"pull-3950")," - Use discard to avoid bad traces for fixOutput"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3935"},"pull-3935")," - Add some Imp tests for HardForkInitiation."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3964"},"pull-3964")," - Ignore thunks in ",(0,r.kt)("inlineCode",{parentName:"li"},"utxosDeposited")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3962"},"pull-3962")," - Add ",(0,r.kt)("inlineCode",{parentName:"li"},"estimateMinFeeTx")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3976"},"pull-3976")," - Introduce accurate min fee calculation function: ",(0,r.kt)("inlineCode",{parentName:"li"},"calcMinFeeTx"))),(0,r.kt)("h3",{id:"improvements"},"Improvements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3930"},"pull-3930")," - Change type of ",(0,r.kt)("inlineCode",{parentName:"li"},"mintedTxBodyL")," to ",(0,r.kt)("inlineCode",{parentName:"li"},"PolicyID")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3924"},"pull-3924")," - Split type classes out of eras Core module"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3934"},"pull-3934")," - Type safety bugfixes"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3949"},"pull-3949")," - Add FromJSON BabbagePParams instance"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3953"},"pull-3953")," - Babbage / Conway PParams JSON serialization"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3946"},"pull-3946")," - Epoch interval instances"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3932"},"pull-3932")," - Add ledger event TxUTxODiff"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3969"},"pull-3969")," - Add missing stake key deposit in formal spec"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3973"},"pull-3973")," - Move functionality of Cardano.Ledger.Pretty to Test.Cardano.Ledger.Generic.PrettyCore")),(0,r.kt)("h3",{id:"releasing"},"Releasing"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3918"},"pull-3918")," - Bump Plutus to 1.18"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3955"},"pull-3955")," - Bump Plutus to 1.19"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3938"},"pull-3938")," - chap: migrate to chap.intersectmbo.org"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3966"},"pull-3966")," - Update cddl gem and dependencies"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3877"},"pull-3877")," - Make it build with ghc-9.8")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c5858ebd.98b811ee.js b/assets/js/c5858ebd.98b811ee.js new file mode 100644 index 0000000000..5a7fa0a97a --- /dev/null +++ b/assets/js/c5858ebd.98b811ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95199],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function p(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function u(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},l=Object.keys(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=r.createContext({}),i=function(e){var t=r.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):p(p({},t),e)),a},h=function(e){var t=i(e.components);return r.createElement(o.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,h=u(e,["components","mdxType","originalType","parentName"]),d=i(a),c=n,m=d["".concat(o,".").concat(c)]||d[c]||s[c]||l;return a?r.createElement(m,p(p({ref:t},h),{},{components:a})):r.createElement(m,p({ref:t},h))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,p=new Array(l);p[0]=c;var u={};for(var o in t)hasOwnProperty.call(t,o)&&(u[o]=t[o]);u.originalType=e,u[d]="string"==typeof e?e:n,p[1]=u;for(var i=2;i<l;i++)p[i]=a[i];return r.createElement.apply(null,p)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},16011:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>p,default:()=>s,frontMatter:()=>l,metadata:()=>u,toc:()=>i});var r=a(87462),n=(a(67294),a(3905));const l={title:"Ledger Team Update",slug:"2023-04-03-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},p=void 0,u={permalink:"/quarterly/2023-04-03-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-04-03-ledger.md",source:"@site/quarterly/2023-04-03-ledger.md",title:"Ledger Team Update",description:"Ledger Quarterly Update",date:"2023-04-03T00:00:00.000Z",formattedDate:"April 3, 2023",tags:[{label:"ledger",permalink:"/quarterly/tags/ledger"}],readingTime:6.405,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-04-03-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Network Q1 2023 Update",permalink:"/quarterly/2023-04-04-network"},nextItem:{title:"Consensus Quarterly Update",permalink:"/quarterly/2023-01-18-consensus"}},o={authorsImageUrls:[void 0]},i=[{value:"Ledger Quarterly Update",id:"ledger-quarterly-update",level:2},{value:"2023-01 - 2023-03",id:"2023-01---2023-03",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"CIPs",id:"cips",level:4},{value:"Formal ledger model",id:"formal-ledger-model",level:4},{value:"Conway ledger era",id:"conway-ledger-era",level:4},{value:"DRep stake distribution computation",id:"drep-stake-distribution-computation",level:4},{value:"Integration work",id:"integration-work",level:4},{value:"Deposit tracking",id:"deposit-tracking",level:4},{value:"New ledger API",id:"new-ledger-api",level:4},{value:"Constraint-based generators",id:"constraint-based-generators",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Critical fixes",id:"critical-fixes",level:5},{value:"Next steps",id:"next-steps",level:3},{value:"More details",id:"more-details",level:3}],h={toc:i},d="wrapper";function s(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"ledger-quarterly-update"},"Ledger Quarterly Update"),(0,n.kt)("h2",{id:"2023-01---2023-03"},"2023-01 - 2023-03"),(0,n.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,n.kt)("h4",{id:"cips"},"CIPs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Entering the Voltaire phase")," -\nCIP-1694 received a major update after participation in the design has expanded to\nmore and more people, including those who attended the Colorado workshop.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/380"},"CIP-1694"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Ledger CIP category")," -\nThe ledger team continues to embrace the CIP process, and has begun the process of\nregistering the ledger as an official CIP category.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/456"},"CIP-84"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Ledger serialization")," -\nA CIP for the ledger serialization deprecation cycle has been accepted.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/tree/master/CIP-0080"},"CIP-80"),".")),(0,n.kt)("h4",{id:"formal-ledger-model"},"Formal ledger model"),(0,n.kt)("p",null,"Our new formal specifications backed by Agda have seen a lot of progress.\nThe majority of the ideas in CIP-1694 are now present, and we have made enough progress\nthat we can now safely say that the PDF produced by the Agda model will be the\nofficial ledger specification for the Conway ledger era.\nSee ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/formal-ledger-specifications"},"the repository"),"."),(0,n.kt)("h4",{id:"conway-ledger-era"},"Conway ledger era"),(0,n.kt)("p",null,"Progress on the Haskell implementation of CIP-1694 has gone hand in hand with the formal model.\nThe major component still missing is the DRep stake distribution, which still presents some\ntechnical challenges."),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3176"},"pull-3176"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3216"},"pull-3216"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3226"},"pull-3226"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3291"},"pull-3291"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3326"},"pull-3326"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3330"},"pull-3330"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3339"},"pull-3339"),"]"),(0,n.kt)("h4",{id:"drep-stake-distribution-computation"},"DRep stake distribution computation"),(0,n.kt)("p",null,"Adding another large stake distribution to the ledger state must proceed with caution.\nWe do not want the memory used by the node to increase too much,\nand performance problems can lead to reduced block production.\nWe have prototyped, tested, and benchmarked several approaches that could give us\nthe current DRep stake distribution at each epoch boundary.\nThis has very important implications, since we want every ADA holder to be able to at any\ntime (such as during a contentious vote) register themselves as a DRep and still have time\nto vote themselves on the issue."),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3344"},"pull-3344"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3353"},"pull-3353"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3364"},"pull-3364"),"]"),(0,n.kt)("h4",{id:"integration-work"},"Integration work"),(0,n.kt)("p",null,"The ledger has made some wonderful improvements over the past six months,\nbut which entail a significant amount of integration efforts:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Our new versioned CBOR schemes"),(0,n.kt)("li",{parentName:"ul"},"Individual deposit tracking"),(0,n.kt)("li",{parentName:"ul"},"An improved cross-era interface utilizing lenses"),(0,n.kt)("li",{parentName:"ul"},"A new ledger API"),(0,n.kt)("li",{parentName:"ul"},"Re-arranging the ledger stake in preparation for CIP-1694"),(0,n.kt)("li",{parentName:"ul"},"Versioning our Haskell packages\nusing ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-haskell-packages"},"CHaPs"),"."),(0,n.kt)("li",{parentName:"ul"},"Consistent conventions for variable names")),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3279"},"pull-3279"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3282"},"pull-3282"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3288"},"pull-3288"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3289"},"pull-3289"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3292"},"pull-3292"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3297"},"pull-3297"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3298"},"pull-3298"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3299"},"pull-3299"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3300"},"pull-3300"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3302"},"pull-3302"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3303"},"pull-3303"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3308"},"pull-3308"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3342"},"pull-3342"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3345"},"pull-3345"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3356"},"pull-3356"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3357"},"pull-3357"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3360"},"pull-3360"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3361"},"pull-3361"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3363"},"pull-3363"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4349"},"pull-4349"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/378"},"pull-378"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/376"},"pull-376"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/373"},"pull-373"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/370"},"pull-370"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/361"},"pull-361"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4976"},"pull-4976"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5013"},"pull-5013"),"]"),(0,n.kt)("h4",{id:"deposit-tracking"},"Deposit tracking"),(0,n.kt)("p",null,"Individual deposits (for stake credential and stake pool registrations) were not tracked by the ledger.\nDeposits were returned according to the current protocol parameters.\nWhen the values of these two protocol parameters change, the deposit pot\nis adjusted by adding to, or removing from, the reserves."),(0,n.kt)("p",null,"This has several problems:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Most people expect a deposit to be paid back exactly."),(0,n.kt)("li",{parentName:"ul"},"We cannot increase the deposit amount once the reserves hits zero."),(0,n.kt)("li",{parentName:"ul"},"If it becomes known that the deposit amount is going to be increased, free Lovelace can be earned by registering credentials."),(0,n.kt)("li",{parentName:"ul"},"Because of the problems above, it is going to be incredibly hard to ever change the values."),(0,n.kt)("li",{parentName:"ul"},"There is a serious issue involving hard forks.\nThe consensus layer makes the decision about whether or not to enact a hard fork based on\nthe protocol parameter update state two stability windows before the end of the epoch.\nHowever, the ledger will reject a protocol parameter update on the epoch boundary\nif the deposit pot adjustments cannot be reconciled with the reseve pot.\nThis means that if quorum is met regarding changing the major protocol version,\nbut the update is rejected on the epoch boundary, consensus will change the era but the\nledger will not change the major protocol version, leaving the ledger in a split-brain state.")),(0,n.kt)("p",null,"Because we never actually changed the values of the two deposits amounts in the protocol parameters\non mainnet, we were able to retroactively change the behavior.\nWe made the following changes:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Individual deposits are tracked in the ",(0,n.kt)("inlineCode",{parentName:"li"},"DState"),"."),(0,n.kt)("li",{parentName:"ul"},"The amount deposited is always returned.")),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3195"},"pull-3195"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3202"},"pull-3202"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3217"},"pull-3217"),"]"),(0,n.kt)("h4",{id:"new-ledger-api"},"New ledger API"),(0,n.kt)("p",null,"We have significantly built up the ledger API.\nWe will eventually replace much of the ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-api")," in the node repository with this ledger API."),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3242"},"pull-3242"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3248"},"pull-3248"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3328"},"pull-3328"),"]"),(0,n.kt)("h4",{id:"constraint-based-generators"},"Constraint-based generators"),(0,n.kt)("p",null,"Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks\nwhich span several epochs, mimicking a real network.\nThese tests are, in theory, excellent for checking properties.\nThey are, however, very difficult to maintain and are not as random as we would like\n(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks)."),(0,n.kt)("p",null,"We have a new declaritive infrastructure for building constraint-based generators,\nwhich instead generate a random ledger state representative of not just an initial state,\nbut also those representative of the end result of a long sequence of valid blocks.\nMoreover, these generators are very fast and are much more random than our old generators.\nBefore we can start using them for our existing property tests, however, we still need to\nexpand them to generate a valid block for a given ledger state."),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3219"},"pull-3219"),"]"),(0,n.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,n.kt)("p",null,"We continued to address technical debt as much as we can."),(0,n.kt)("p",null,"[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3167"},"pull-3167"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3170"},"pull-3170"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3172"},"pull-3172"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3175"},"pull-3175"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3184"},"pull-3184"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3205"},"pull-3205"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3208"},"pull-3208"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3210"},"pull-3210"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3212"},"pull-3212"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3218"},"pull-3218"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3222"},"pull-3222"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3223"},"pull-3223"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3224"},"pull-3224"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3225"},"pull-3225"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3229"},"pull-3229"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3239"},"pull-3239"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3241"},"pull-3241"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3244"},"pull-3244"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3245"},"pull-3245"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3249"},"pull-3249"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3260"},"pull-3260"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3263"},"pull-3263"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3264"},"pull-3264"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3268"},"pull-3268"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3269"},"pull-3269"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3270"},"pull-3270"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3274"},"pull-3274"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3276"},"pull-3276"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3277"},"pull-3277"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3286"},"pull-3286"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3290"},"pull-3290"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3295"},"pull-3295"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3296"},"pull-3296"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3306"},"pull-3306"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3307"},"pull-3307"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3310"},"pull-3310"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3311"},"pull-3311"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3316"},"pull-3316"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3320"},"pull-3320"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3323"},"pull-3323"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3327"},"pull-3327"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3331"},"pull-3331"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3332"},"pull-3332"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3333"},"pull-3333"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3338"},"pull-3338"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3341"},"pull-3341"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3347"},"pull-3347"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3350"},"pull-3350"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3351"},"pull-3351"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3352"},"pull-3352"),"]\n[",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3354"},"pull-3354"),"]"),(0,n.kt)("h5",{id:"critical-fixes"},"Critical fixes"),(0,n.kt)("p",null,"We fixed two critical issues:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Growing block production delay on the epoch boundary: [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3209"},"pull-3209"),"]"),(0,n.kt)("li",{parentName:"ul"},"Unexpected node shutdown from ",(0,n.kt)("inlineCode",{parentName:"li"},"balanceR"),": [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3343"},"pull-3343"),"]")),(0,n.kt)("h3",{id:"next-steps"},"Next steps"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Conway spec")," -\nComplete the first version of the conway formal specification."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"DRep stake distribution")," -\nHave the ledger compute the DRep stake distribution with acceptible performance."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Devnet ready")," -\nHave the Haskell implementation of the conway era in sync with the formal specification,\nand integrate the changes with consensus and node.\nAll the details might not be finalized, but the wire specification and the API should\nbe stable so that conway can be placed on a devnet for tool builders to start integrating with."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Plutus V3")," -\nIntegrate Plutus V3 into the ledger, including a new script context which supports DReps.")),(0,n.kt)("h3",{id:"more-details"},"More details"),(0,n.kt)("p",null,"This quarterly report was based off of the following fortnightly ones:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-01-05-ledger"},"2023-01-05")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-01-19-ledger"},"2023-01-19")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-02-02-ledger"},"2023-02-02")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-02-17-ledger"},"2023-02-17")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-03-03-ledger"},"2023-03-03")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-03-17-ledger"},"2023-03-17")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"2023-03-31-ledger"},"2023-03-31"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c5b24241.3193975b.js b/assets/js/c5b24241.3193975b.js new file mode 100644 index 0000000000..9fd5e7ad00 --- /dev/null +++ b/assets/js/c5b24241.3193975b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[19683],{96779:e=>{e.exports=JSON.parse('{"permalink":"/tags/ledger/page/5","page":5,"postsPerPage":5,"totalPages":9,"totalCount":44,"previousPage":"/tags/ledger/page/4","nextPage":"/tags/ledger/page/6","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/c5fa22e0.34f39fbf.js b/assets/js/c5fa22e0.34f39fbf.js new file mode 100644 index 0000000000..97858e2b20 --- /dev/null +++ b/assets/js/c5fa22e0.34f39fbf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58033],{75454:a=>{a.exports=JSON.parse('{"label":"mithril","permalink":"/tags/mithril","allTagsPath":"/tags","count":63}')}}]); \ No newline at end of file diff --git a/assets/js/c60581f2.49ece7db.js b/assets/js/c60581f2.49ece7db.js new file mode 100644 index 0000000000..fa49fb8b72 --- /dev/null +++ b/assets/js/c60581f2.49ece7db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97094],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=p(n),d=r,m=c["".concat(l,".").concat(d)]||c[d]||h[d]||a;return n?o.createElement(m,s(s({ref:t},u),{},{components:n})):o.createElement(m,s({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,s=new Array(a);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:r,s[1]=i;for(var p=2;p<a;p++)s[p]=n[p];return o.createElement.apply(null,s)}return o.createElement.apply(null,n)}d.displayName="MDXCreateElement"},84718:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var o=n(87462),r=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-02-08-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-02-08-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-08-consensus.md",source:"@site/blog/2023-02-08-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-02-08T00:00:00.000Z",formattedDate:"February 8, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.5,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-02-08-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-02-09-mithril"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-02-08-node-cli-api"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD Prototype",id:"utxo-hd-prototype",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3},{value:"Support",id:"support",level:3}],u={toc:p},c="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"We continue refactoring the UTxO HD prototype while we wait for the system level\nbenchmarks. We have created a new repository that contains the ",(0,r.kt)("inlineCode",{parentName:"p"},"anti-diff"),"\npackages used in this prototype."),(0,r.kt)("p",null,"On the Genesis front, we are preparing another meeting with the researchers to\naudit the implementation design, and we continued working on basic tests and\nsimplifications."),(0,r.kt)("p",null,"During the past two weeks we also introduced two new tools. One for dumping CBOR\nencoded blocks to JSON, and another to serve a local immutable DB."),(0,r.kt)("h2",{id:"workstreams"},"Workstreams"),(0,r.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD Prototype"),(0,r.kt)("p",null,"We are in the process of refactoring the UTxO HD prototype, while we wait for\nthe system level benchmarks to confirm if the performance of the prototype is\nsatisfactory."),(0,r.kt)("p",null,"We also set up a repository for the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/anti-diffs"},(0,r.kt)("inlineCode",{parentName:"a"},"anti-diff"))," package, which\nrequired us to refactor the code, write documentation, and prepare a release to\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages"},"CHaP"),"."),(0,r.kt)("h3",{id:"genesis"},"Genesis"),(0,r.kt)("p",null,"We worked on ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4347"},"basic tests")," for the ",(0,r.kt)("em",{parentName:"p"},"Limit on Eagerness")," property of\nGenesis. We also introduced further robustness and simplifications in the\nGenesis Density governor. Finally, we developed a presentation to engage again\nwith the researchers on our Genesis implementation design."),(0,r.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,r.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("p",null,"We are in the process of ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/6"},"polishing")," the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),"\ndocumentation site, which we will use a the entry point for Consensus related\ndocumentation. The first version will not be complete, but we plan on\nsystematically improving it."),(0,r.kt)("h3",{id:"support"},"Support"),(0,r.kt)("p",null,"We ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4335"},"added a tool")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-cardano-tools")," which allows\nto dump the Chain DB blocks or any given CBOR encoded blocks as JSON."),(0,r.kt)("p",null,"We also added ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4339"},"another tool")," that serves an existing immutable DB via\nBlockFetch and ChainSync. This tool can help in assisting our local benchmarking\nefforts (for instance Genesis' ChainSync jumping prototype)."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c63933b3.43daea5e.js b/assets/js/c63933b3.43daea5e.js new file mode 100644 index 0000000000..ef7e0b3ca0 --- /dev/null +++ b/assets/js/c63933b3.43daea5e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11727],{3905:(t,e,n)=>{n.d(e,{Zo:()=>p,kt:()=>d});var a=n(67294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function o(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?l(Object(n),!0).forEach((function(e){r(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function i(t,e){if(null==t)return{};var n,a,r=function(t,e){if(null==t)return{};var n,a,r={},l=Object.keys(t);for(a=0;a<l.length;a++)n=l[a],e.indexOf(n)>=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(a=0;a<l.length;a++)n=l[a],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var u=a.createContext({}),s=function(t){var e=a.useContext(u),n=e;return t&&(n="function"==typeof t?t(e):o(o({},e),t)),n},p=function(t){var e=s(t.components);return a.createElement(u.Provider,{value:e},t.children)},m="mdxType",c={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},h=a.forwardRef((function(t,e){var n=t.components,r=t.mdxType,l=t.originalType,u=t.parentName,p=i(t,["components","mdxType","originalType","parentName"]),m=s(n),h=r,d=m["".concat(u,".").concat(h)]||m[h]||c[h]||l;return n?a.createElement(d,o(o({ref:e},p),{},{components:n})):a.createElement(d,o({ref:e},p))}));function d(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=n.length,o=new Array(l);o[0]=h;var i={};for(var u in e)hasOwnProperty.call(e,u)&&(i[u]=e[u]);i.originalType=t,i[m]="string"==typeof t?t:r,o[1]=i;for(var s=2;s<l;s++)o[s]=n[s];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}h.displayName="MDXCreateElement"},27502:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>u,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));const l={title:"Consensus Team Update",slug:"2023-03-22-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-03-22-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-22-consensus.md",source:"@site/blog/2023-03-22-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-03-22T00:00:00.000Z",formattedDate:"March 22, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.63,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-03-22-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-03-23-mithril"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-03-22-node-cli-api"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low-level details",id:"low-level-details",level:2}],p={toc:s},m="wrapper";function c(t){let{components:e,...n}=t;return(0,r.kt)(m,(0,a.Z)({},p,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"This week the consensus team continued working on the refactoring of the UTxO HD\nprototype, and design and testing of Genesis. We also extracted the ",(0,r.kt)("inlineCode",{parentName:"p"},"fs-sim"),"\npackage, which provides a file-system abstraction layer that can be used for\ntesting and simulation. This makes the Consensus code base smaller, while\nproviding a package that the community can reuse and contribute to. We also\nfixed a failing property test related to iterators. We are also working on\nmempool and VRF improvements."),(0,r.kt)("h2",{id:"low-level-details"},"Low-level details"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Extraction of ",(0,r.kt)("inlineCode",{parentName:"li"},"fs-sim")," code from ",(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-network"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4425"},"https://github.com/input-output-hk/ouroboros-network/pull/4425")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/1"},"https://github.com/input-output-hk/fs-sim/pull/1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/2"},"https://github.com/input-output-hk/fs-sim/pull/2")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4460"},"https://github.com/input-output-hk/ouroboros-network/pull/4460")))),(0,r.kt)("li",{parentName:"ul"},"Smaller changes in ",(0,r.kt)("inlineCode",{parentName:"li"},"fs-sim")," code (some required by ",(0,r.kt)("inlineCode",{parentName:"li"},"UTxO-HD"),"):",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/5"},"https://github.com/input-output-hk/fs-sim/pull/5")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/6"},"https://github.com/input-output-hk/fs-sim/pull/6")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/7"},"https://github.com/input-output-hk/fs-sim/pull/7")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fs-sim/pull/8"},"https://github.com/input-output-hk/fs-sim/pull/8")))),(0,r.kt)("li",{parentName:"ul"},"Released cardano-lmdb-simple-0.6.0.0",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/lmdb-simple/pull/20"},"https://github.com/input-output-hk/lmdb-simple/pull/20")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-haskell-packages/pull/150"},"https://github.com/input-output-hk/cardano-haskell-packages/pull/150"))))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c65b5e22.7926c0e7.js b/assets/js/c65b5e22.7926c0e7.js new file mode 100644 index 0000000000..6e540c2cf5 --- /dev/null +++ b/assets/js/c65b5e22.7926c0e7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93471],{2920:e=>{e.exports=JSON.parse('{"permalink":"/page/28","page":28,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/27","nextPage":"/page/29","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/c6ae40c2.af4f6237.js b/assets/js/c6ae40c2.af4f6237.js new file mode 100644 index 0000000000..83778b3568 --- /dev/null +++ b/assets/js/c6ae40c2.af4f6237.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17693],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),d=p(r),c=n,h=d["".concat(u,".").concat(c)]||d[c]||m[c]||l;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=c;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[d]="string"==typeof e?e:n,i[1]=o;for(var p=2;p<l;p++)i[p]=r[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},68680:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const l={title:"SRE Team Update",slug:"2023-01-20-sre",authors:"manveru",tags:["sre"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2023-01-20-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-20-sre.md",source:"@site/blog/2023-01-20-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-01-20T00:00:00.000Z",formattedDate:"January 20, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.13,hasTruncateMarker:!1,authors:[{name:"Michael Fellinger",title:"SRE Team Lead",url:"https://github.com/manveru",imageURL:"https://github.com/manveru.png",key:"manveru"}],frontMatter:{title:"SRE Team Update",slug:"2023-01-20-sre",authors:"manveru",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-01-20-network"},nextItem:{title:"Ledger Team Update",permalink:"/2023-01-19-ledger"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cicero",id:"cicero",level:3},{value:"Tullia",id:"tullia",level:3},{value:"Bitte",id:"bitte",level:3},{value:"cardano-world",id:"cardano-world",level:3},{value:"bitte-world",id:"bitte-world",level:3},{value:"ci-world",id:"ci-world",level:3}],s={toc:p},d="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on Cicero, Tullia, and Bitte, as well as providing\nsupport for cardano-world."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"cicero"},"Cicero"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fixed various race conditions around transformers."),(0,n.kt)("li",{parentName:"ul"},"Brought our CI up to date."),(0,n.kt)("li",{parentName:"ul"},"Migrated to the Nomad exec driver with Nix support for many actions."),(0,n.kt)("li",{parentName:"ul"},"Moved Nix builds to the Nomad clients for much better cache locality."),(0,n.kt)("li",{parentName:"ul"},"Ongoing work on vastly improving the action matching and evaluation speed."),(0,n.kt)("li",{parentName:"ul"})),(0,n.kt)("h3",{id:"tullia"},"Tullia"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Made it easier to support cloning from a PR's fork"),(0,n.kt)("li",{parentName:"ul"},"Update to latest std"),(0,n.kt)("li",{parentName:"ul"},"Add workaround for cgroup issue: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/hashicorp/nomad/issues/12877"},"nomad#12877")),(0,n.kt)("li",{parentName:"ul"},"github preset: add ",(0,n.kt)("inlineCode",{parentName:"li"},"github.ci.remote")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"(read|get)Repository")," functions"),(0,n.kt)("li",{parentName:"ul"},"Fix various issues around CUE handling")),(0,n.kt)("h3",{id:"bitte"},"Bitte"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Upgrade to NixOS 22.11"),(0,n.kt)("li",{parentName:"ul"},"Prototype usage of ",(0,n.kt)("a",{parentName:"li",href:"https://colmena.cli.rs"},"Colmena")," for deploys instead of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/serokell/deploy-rs"},"deploy-rs")),(0,n.kt)("li",{parentName:"ul"},"Finalized work on Equinix Metal support"),(0,n.kt)("li",{parentName:"ul"},"Prototype better secrets management with ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/yaxitech/ragenix"},"ragenix")," instead of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/Mic92/sops-nix"},"sops-nix")),(0,n.kt)("li",{parentName:"ul"},"Improve CI and bring it up to date")),(0,n.kt)("h3",{id:"cardano-world"},"cardano-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fixd various OOM issues on preview and preprod"),(0,n.kt)("li",{parentName:"ul"},"Rotated KES keys on preview and preprod"),(0,n.kt)("li",{parentName:"ul"},"Optimize mainnet db-sync to cope with higher load"),(0,n.kt)("li",{parentName:"ul"},"Fix an issue where PostgreSQL would fail after a reboot")),(0,n.kt)("h3",{id:"bitte-world"},"bitte-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated to NixOS 22.11")),(0,n.kt)("h3",{id:"ci-world"},"ci-world"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated to NixOS 22.11"),(0,n.kt)("li",{parentName:"ul"},"Added Equnix cluster"),(0,n.kt)("li",{parentName:"ul"},"Improve caching of Nix builds")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c6f90b29.80b6ad1b.js b/assets/js/c6f90b29.80b6ad1b.js new file mode 100644 index 0000000000..9ec9cf6735 --- /dev/null +++ b/assets/js/c6f90b29.80b6ad1b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[39080],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function p(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},l=Object.keys(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),u=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=u(e.components);return n.createElement(o.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,m=p(e,["components","mdxType","originalType","parentName"]),d=u(a),k=r,h=d["".concat(o,".").concat(k)]||d[k]||c[k]||l;return a?n.createElement(h,i(i({ref:t},m),{},{components:a})):n.createElement(h,i({ref:t},m))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=k;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[d]="string"==typeof e?e:r,i[1]=p;for(var u=2;u<l;u++)i[u]=a[u];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}k.displayName="MDXCreateElement"},9762:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2023-06-07-node-cli-api",tags:["cli-api"],authors:"carlos",hide_table_of_contents:!1},i="Node-Api-Cli Update",p={permalink:"/2023-06-07-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-07-node-cli-api.md",source:"@site/blog/2023-06-07-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-06-07T00:00:00.000Z",formattedDate:"June 7, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.37,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-06-07-node-cli-api",tags:["cli-api"],authors:"carlos",hide_table_of_contents:!1},prevItem:{title:"System Test Team Update",permalink:"/2023-06-08-system-test"},nextItem:{title:"Hydra Team Update",permalink:"/2023-06-02-hydra"}},o={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],m={toc:u},d="wrapper";function c(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-06-07---2023-06-20"},"2023-06-07 - 2023-06-20"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Completed cardano-cli migration to input-output-hk/cardano-cli"),(0,r.kt)("li",{parentName:"ul"},"cardano-cli ping now uses cardano-ping-0.2.0.5"),(0,r.kt)("li",{parentName:"ul"},"New queries on API:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryCurrentEpochState")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryDebugLedgerState")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryGenesisParameters")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryPoolDistribution")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryPoolState")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryProtocolParameters")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryProtocolParametersUpdate")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryProtocolState")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryStakeAddresses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryStakeDistribution")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryStakePoolParameters")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryStakeSnapshot")))),(0,r.kt)("li",{parentName:"ul"},"Deprecate:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryPparams")))),(0,r.kt)("li",{parentName:"ul"},"Export query API as functions",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"genFeatureValueInEra")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"featureInShelleyBasedEra")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"isFeatureValue")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"valueOrDefault")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"asFeatureValue")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"asFeatureValueInShelleyBasedEra")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"queryEpoch")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"requireShelleyBasedEra")))),(0,r.kt)("li",{parentName:"ul"},"Restructure cardano-testnet (WIP)")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5328"},"update network dependency and versions"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5326"},"Updated cardano-cli to use ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-ping-0.2.0.5"),"."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5316"},"Use ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli")," from CHaP"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5315"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"--conway-era")," flag"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5313"},"Updated cardano-cli ping command"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5311"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"--conway-era")," flag"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/30"},"Use cardano-ping-0.2.0.5"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/28"},"Deprecate ",(0,r.kt)("inlineCode",{parentName:"a"},"--protocol-params-file")," option of the ",(0,r.kt)("inlineCode",{parentName:"a"},"transaction build")," command more thoroughly"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/25"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"Cardano.Api.Query.Expr")," module"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/24"},"Use simplified ",(0,r.kt)("inlineCode",{parentName:"a"},"queryStateForBalancedTx")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-cli/pull/20"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"--conway-era")," flag")))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/59"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.5.2.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/58"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"requireShelleyBasedEra")," function")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/57"},"New version cardano-api-8.5.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/56"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"queryEpoch")," function")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/55"},"New version 8.5.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/54"},"Error on ",(0,r.kt)("inlineCode",{parentName:"a"},"hlint")," warnings in CI")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/53"},"Additional query expression functions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/52"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.4.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/49"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.3.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/48"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"Cardano.Api.Query.Expr")," module")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/47"},"Simplify ",(0,r.kt)("inlineCode",{parentName:"a"},"queryStateForBalancedTx"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/46"},"Revert to use ",(0,r.kt)("inlineCode",{parentName:"a"},"testProperty")," now that it isn't deprecated anymore"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.1.1"},"cardano-node 8.1.1 release")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5328"},"update network dependency and versions"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5340"},"Add ability to retry tests with DISABLE_RETRIES=1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5339"},"Move golden files to proper location")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5336"},"Conway testnet")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5335"},"Don't retry testnet when failed")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5321"},"Remove YAML filepath record from data Conf")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5315"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"--conway-era")," flag")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5311"},"Add ",(0,r.kt)("inlineCode",{parentName:"a"},"--conway-era")," flag")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5309"},"Remove duplicate --testnet-magic flag")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5307"},"Restructure cardano testnet "))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/18"},"Fix Windows CI issues"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c7096169.435725f4.js b/assets/js/c7096169.435725f4.js new file mode 100644 index 0000000000..98303f2065 --- /dev/null +++ b/assets/js/c7096169.435725f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25074],{24901:e=>{e.exports=JSON.parse('{"permalink":"/page/85","page":85,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/84","nextPage":"/page/86","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/c7337d4e.4d9bf54d.js b/assets/js/c7337d4e.4d9bf54d.js new file mode 100644 index 0000000000..3dc2c80c0d --- /dev/null +++ b/assets/js/c7337d4e.4d9bf54d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91151],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=u(n),h=r,m=c["".concat(l,".").concat(h)]||c[h]||d[h]||o;return n?a.createElement(m,s(s({ref:t},p),{},{components:n})):a.createElement(m,s({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=h;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:r,s[1]=i;for(var u=2;u<o;u++)s[u]=n[u];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}h.displayName="MDXCreateElement"},82469:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Quarterly Update",slug:"2023-04-25-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/quarterly/2023-04-25-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-04-25-consensus.md",source:"@site/quarterly/2023-04-25-consensus.md",title:"Consensus Quarterly Update",description:"Consensus Quarterly Update",date:"2023-04-25T00:00:00.000Z",formattedDate:"April 25, 2023",tags:[{label:"consensus",permalink:"/quarterly/tags/consensus"}],readingTime:2.3,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Quarterly Update",slug:"2023-04-25-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"SRE Q2 2024 Update",permalink:"/quarterly/2024-Q2-sre"},nextItem:{title:"Network Q1 2023 Update",permalink:"/quarterly/2023-04-04-network"}},l={authorsImageUrls:[void 0]},u=[{value:"Consensus Quarterly Update",id:"consensus-quarterly-update",level:2},{value:"2023-01 - 2023-03",id:"2023-01---2023-03",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"UTxO HD",id:"utxo-hd",level:4},{value:"Genesis",id:"genesis",level:4},{value:"Support",id:"support",level:4},{value:"Conway era",id:"conway-era",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"UTxO HD",id:"utxo-hd-1",level:4},{value:"Genesis",id:"genesis-1",level:4},{value:"Support",id:"support-1",level:4},{value:"Tech debt",id:"tech-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration-1",level:4}],p={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"consensus-quarterly-update"},"Consensus Quarterly Update"),(0,r.kt)("h2",{id:"2023-01---2023-03"},"2023-01 - 2023-03"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We finished the testing activities for the prototype, which involved adding\nnew tests, and fixing and enabling temporarily disabled tests."),(0,r.kt)("li",{parentName:"ul"},"We spent a substantial amount of effort refactoring and cleaning the\nprototype."),(0,r.kt)("li",{parentName:"ul"},"We audited the UTxO HD prototype to make sure it can accommodate the migration\nof other tables (eg stake-keys registration) from memory to disk. The result\nof the audit was positive."),(0,r.kt)("li",{parentName:"ul"},"We ran ad-hoc benchmarks for reading keys and flushing values to disk. No\nunexpected costs found."),(0,r.kt)("li",{parentName:"ul"},"We ran the first system level benchmarks. The performance regressions reported\nwere due to an unrealistic snapshotting rate. We need to re-run them again\nafter we design a more fine grained locking mechanism.")),(0,r.kt)("h4",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We elaborated a roadmap of the remaining work for Genesis."),(0,r.kt)("li",{parentName:"ul"},"We presented the design to the IOG Researchers and PNSol on February 20. The\ndesign was well received. We updated the Genesis design with the researcher's\nfeedback.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We plugged the new DoS vector identified during the aforementioned\npresentation."))),(0,r.kt)("li",{parentName:"ul"},"We developed a generator for adversarial leader schedules that satisfy key\nOuroboros properties, which will be used to test the Genesis design.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The generator enables use of smaller Ouroboros parameters, which makes\nextrema more likely and counterxamples easier interpret."))),(0,r.kt)("li",{parentName:"ul"},"We wrote up the latest design iteration."),(0,r.kt)("li",{parentName:"ul"},"We continued benchmarking the Chain Sync Jumping prototype. In particular:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We debugged the prototype's performance regression, and unmasked the\nactual cause by patching our initial theory (bad queuing behavior)"),(0,r.kt)("li",{parentName:"ul"},"We identified and validated the actual cause (a pathological case in\nBlockFetch tiebreaker).")))),(0,r.kt)("h4",{id:"support"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We created two new tools. One for dumping CBOR encoded blocks to JSON. Ahother\nto serve a local immutable DB.")),(0,r.kt)("h4",{id:"conway-era"},"Conway era"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We integrated the Conway era into consensus.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug with followers, which was discovered by property tests."),(0,r.kt)("li",{parentName:"ul"},"We developed a DSL for specifying and running ChainDB test cases."),(0,r.kt)("li",{parentName:"ul"},"We fixed failing tests with iterators."),(0,r.kt)("li",{parentName:"ul"},"We created micro-benchmarks for adding transactions to the mempool.")),(0,r.kt)("h4",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We released a new technical documentation site for consensus."),(0,r.kt)("li",{parentName:"ul"},"We factored out several packages to external repositories. Some of this work\noriginated in the UTxO HD workstream.")),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"utxo-hd-1"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/28"},"https://github.com/input-output-hk/ouroboros-consensus/issues/28"))),(0,r.kt)("h4",{id:"genesis-1"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/33"},"https://github.com/input-output-hk/ouroboros-consensus/issues/33")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/32"},"https://github.com/input-output-hk/ouroboros-consensus/issues/32")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/31"},"https://github.com/input-output-hk/ouroboros-consensus/issues/31"))),(0,r.kt)("h4",{id:"support-1"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Design Consensus side of hardfork-enactment in the Voltaire phase\n(",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4180"},"#4180"),")."),(0,r.kt)("li",{parentName:"ul"},"Estimate the number of file descriptors Consensus needs\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/20"},"#20"),".")),(0,r.kt)("h4",{id:"tech-debt"},"Tech debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Identify Quantitative Timeliness Agreements (QTAs) metrics that we can define\nfor consensus. Pick one and implement benchmarks for it.")),(0,r.kt)("h4",{id:"fostering-collaboration-1"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Onboard a new team member.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c7db80fc.4b5eafb1.js b/assets/js/c7db80fc.4b5eafb1.js new file mode 100644 index 0000000000..45608ddc34 --- /dev/null +++ b/assets/js/c7db80fc.4b5eafb1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[33742],{69681:s=>{s.exports=JSON.parse('{"label":"consensus","permalink":"/tags/consensus","allTagsPath":"/tags","count":45}')}}]); \ No newline at end of file diff --git a/assets/js/c7e43a05.b2c9209d.js b/assets/js/c7e43a05.b2c9209d.js new file mode 100644 index 0000000000..7efe0ed87c --- /dev/null +++ b/assets/js/c7e43a05.b2c9209d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65956],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=i.createContext({}),s=function(e){var t=i.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=s(e.components);return i.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(r),c=n,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var s=2;s<a;s++)o[s]=r[s];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},75265:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-10-25-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-10-25-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-25-mithril.md",source:"@site/blog/2023-10-25-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-10-25T00:00:00.000Z",formattedDate:"October 25, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.125,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-10-25-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-10-27-sre"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-10-24-node-cli-api"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team released a new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2342.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2342.0")),". This release includes support for SPO tickers displayed in the Mithril explorer and the ability to produce slim Docker images for Mithril nodes."),(0,n.kt)("p",null,"They also kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, progressed with the adaptation of the Mithril client as a library, and worked on the deterministic computation of the UTXO set from the immutable files. "),(0,n.kt)("p",null,"Finally, they fixed the bottleneck of the key registration in the aggregator, investigated some unreachability on the ",(0,n.kt)("inlineCode",{parentName:"p"},"release-mainnet")," aggregator, and enhanced the Mithril explorer UI."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P Networking - Proof of Concept")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1300"},"#1300")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Make ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," crate a library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1141"},"#1141")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Compute deterministic Cardano UTxO set PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1283"},"#1283")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"ProtocolKeyRegistration")," creates performance bottleneck in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1187"},"#1187")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Fix ",(0,n.kt)("inlineCode",{parentName:"strong"},"devnet")," Mithril Docker images")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1272"},"#1272")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"release-mainnet")," aggregator is unreachable")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1310"},"#1310")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Build ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-common")," and ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," in WASM PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1284"},"#1284")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Display a summary of signers before the full list in explorer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1133"},"#1133")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Add certificates list in explorer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1184"},"#1184")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"CoreVerifier")," setup does not compute ",(0,n.kt)("inlineCode",{parentName:"strong"},"total_stake")," correctly")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1306"},"#1306"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c8056232.9746cde5.js b/assets/js/c8056232.9746cde5.js new file mode 100644 index 0000000000..3d6170de1b --- /dev/null +++ b/assets/js/c8056232.9746cde5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20326],{33580:e=>{e.exports=JSON.parse('{"permalink":"/page/74","page":74,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/73","nextPage":"/page/75","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/c8302006.763af04c.js b/assets/js/c8302006.763af04c.js new file mode 100644 index 0000000000..7497bd778c --- /dev/null +++ b/assets/js/c8302006.763af04c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91221],{4029:e=>{e.exports=JSON.parse('{"permalink":"/quarterly/page/2","page":2,"postsPerPage":10,"totalPages":2,"totalCount":20,"previousPage":"/quarterly","blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/c831575d.d5cc68b7.js b/assets/js/c831575d.d5cc68b7.js new file mode 100644 index 0000000000..df4f27b80b --- /dev/null +++ b/assets/js/c831575d.d5cc68b7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[42677],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,h=p["".concat(s,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,i(i({ref:t},u),{},{components:n})):r.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},20519:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-02-21-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-02-21-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-21-db-sync.md",source:"@site/blog/2023-02-21-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-02-21T00:00:00.000Z",formattedDate:"February 21, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.75,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-02-21-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-02-22-node-cli-api"},nextItem:{title:"Crypto Team Update",permalink:"/2023-02-17-crypto"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The db-sync team created a new tag ",(0,a.kt)("inlineCode",{parentName:"p"},"13.1.0.2")," which is ready to release.\nWe also investigated and had the first working UTxO-HD integration which is one\nof the potential future risks for db-sync."),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Integrated the UTxO-HD feauture branch in ",(0,a.kt)("inlineCode",{parentName:"li"},"kderme/utxo-hd-1"),". This doesn't\nuse the full on disk storage but keeps things in memory and the plan is to keep\nit this way for the first iteration. The integration still has some performance\nissues which we investigate"),(0,a.kt)("li",{parentName:"ul"},"Created tag ",(0,a.kt)("inlineCode",{parentName:"li"},"13.1.0.2")," which upgrades the dependencies of db-sync"),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue related to errors appearing in SMASH\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1353"},"#1353")),(0,a.kt)("li",{parentName:"ul"},"Continued with ghc-9.2 integration\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1339"},"#1339")),(0,a.kt)("li",{parentName:"ul"},"Worked on an new fixing procedure for\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/issues/1348"},"#1348"),".\nWe try to make these procedures work also on older schema version, without the\nneed to migrate to newer schema, which can be very useful for fixing existing\nsnapshots.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c880761d.66ef08c5.js b/assets/js/c880761d.66ef08c5.js new file mode 100644 index 0000000000..718a18fe95 --- /dev/null +++ b/assets/js/c880761d.66ef08c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[89579],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var p=a.createContext({}),u=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),s=u(n),m=r,h=s["".concat(p,".").concat(m)]||s[m]||c[m]||o;return n?a.createElement(h,i(i({ref:t},d),{},{components:n})):a.createElement(h,i({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:r,i[1]=l;for(var u=2;u<o;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},86710:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const o={title:"SRE Team Update",slug:"2024-04-26-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-04-26-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-26-sre.md",source:"@site/blog/2024-04-26-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-04-26T00:00:00.000Z",formattedDate:"April 26, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:2.39,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-04-26-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-04-27-node-cli-api"},nextItem:{title:"Ledger Team Update",permalink:"/2024-04-24-ledger"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-perf",id:"cardano-perf",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3},{value:"Ouroboros-network-ops",id:"ouroboros-network-ops",level:3},{value:"Sanchonet",id:"sanchonet",level:3},{value:"Sanchonet-demo",id:"sanchonet-demo",level:3}],d={toc:u},s="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(s,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node 8.9.2 is now deployed to mainnet, preprod, preview and\nshelley-qa environments.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node 8.10.1-pre is now deployed to sanchonet and also to one-third of\nIOGs preprod environment nodes and two-thirds of IOGs preview environment\nnodes.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Private chain for Voltaire team was paused with plans for a future respin.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The network team's ouroboros-network-ops machine cluster was re-written using\nthe cardano-parts stack to upgrade from the nixops/terraform/niv stack it was\npreviously using."))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sets cardano-node to 8.9.2, dbsync-ng to sancho-4.2.0; mithril to 2412.0,\niohk-nix to include new peerSharing defaults and introduce a new block\nproducer config. Adds a new truncate-chain recipe and improves mithril\nrelated services. More detail is available in the PR description:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-parts/pull/38"},"cardano-parts-pull-38"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2; mithril pre (-ng)\nto unstable, iohk-nix and iohk-nix-ng pin includes new Cardano Foundation\nbootstrap relays. Adds new aws machine management and other recipes, metadata\njob support for pool creation, misc fixes and improvements. More detail is\navailable in the PR description:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-parts/pull/39"},"cardano-parts-pull-39")))),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new\npeerSharing defaults and colmena.nix cluster refactor for peerSharing\nadjustments and implements all updates in cardano-parts PR#38. See the PR\ndescription for more details:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-mainnet/pull/12"},"cardano-mainnet-pull-12"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sets dbsync to 13.2.0.2, iohk-nix and iohk-nix-ng to include new CF relays,\nadds new aws machine management recipes and implements all updates in\ncardano-parts PR#39. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-mainnet/pull/13"},"cardano-mainnet-pull-13")))),(0,r.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Default peerSharing true and add block producer config to release binaries.\nSee the PR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5789"},"cardano-node-pull-5789"))),(0,r.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps to cardano-node 8.9.2:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/5d4925b...1fca100"},"cardano-ops-compare"))),(0,r.kt)("h3",{id:"cardano-perf"},"Cardano-perf"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds a caddy webserver for run reviews and tunes the NVME FS mounts for performance:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf/compare/a6a9b39...3cce0de"},"cardano-perf-compare"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new\npeerSharing defaults, refactors mdbook out of docs dir, adds example chain\nmanipulation doc and implements all updates in cardano-parts PR#38. See the\nPR description for more details:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-playground/pull/21"},"cardano-playground-pull-21"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2, mithril pre (-ng)\nto unstable, iohk-nix and iohk-nix-ng to include new CF relays, adds a public\nTLS dbsync user connection option, stops private chain cluster and implements\nall updates in cardano-parts PR#39. See the PR description for more details:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-playground/pull/22"},"cardano-playground-pull-22")))),(0,r.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Creates block producer configurations to accomodate PeerSharing set true by default:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/575"},"iohk-nix-pull-575"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Adds Cardano Foundation mainnet bootstrap peers:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/iohk-nix/pull/578"},"iohk-nix-pull-578")))),(0,r.kt)("h3",{id:"ouroboros-network-ops"},"Ouroboros-network-ops"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Rewrites the networking-team machine cluster using the cardano-parts stack;\nwaiting for adoption prior to merge:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network-ops/pull/13"},"ouroboros-network-ops-pull-13"))),(0,r.kt)("h3",{id:"sanchonet"},"Sanchonet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds a sanchonet faucet return address:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet/pull/141"},"sanchonet-pull-141"))),(0,r.kt)("h3",{id:"sanchonet-demo"},"Sanchonet-demo"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Updates node to 8.10.0-pre and modifies scripts for compatibility:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet-demo/compare/8797c24...c2d9bfb"},"sanchonet-demo-compare"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c90fb258.c323c697.js b/assets/js/c90fb258.c323c697.js new file mode 100644 index 0000000000..cb9e4f685a --- /dev/null +++ b/assets/js/c90fb258.c323c697.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[26584],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(n),m=a,h=p["".concat(s,".").concat(m)]||p[m]||d[m]||i;return n?r.createElement(h,o(o({ref:t},c),{},{components:n})):r.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var u=2;u<i;u++)o[u]=n[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},44389:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const i={title:"DB-sync Team Update",slug:"2023-06-08-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-06-08-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-08-db-sync.md",source:"@site/blog/2023-06-08-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-06-08T00:00:00.000Z",formattedDate:"June 8, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.745,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-06-08-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-06-09-hydra"},nextItem:{title:"Goedel Team Update",permalink:"/2023-06-08-goedel"}},s={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],c={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We've made progress in all high level objectives"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"CIP-1694 integration design"),(0,a.kt)("li",{parentName:"ul"},"UTxO-HD integration proof of concept"),(0,a.kt)("li",{parentName:"ul"},"schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2"),(0,a.kt)("li",{parentName:"ul"},"A new hire will help us with devx issues.")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We have an initial design for the Conway integration in db-sync"),(0,a.kt)("li",{parentName:"ul"},"The initial UTxO-HD integration resulted in a requested feuture that\nthe consensus team is working on\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/88"},"#88"),"."),(0,a.kt)("li",{parentName:"ul"},"Added two optional migrations that speed up querying UTxO\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1416"},"#1416")),(0,a.kt)("li",{parentName:"ul"},"Work on improving the above feauture by adding tests and fixing tech debt\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1429"},"#1429"),(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1419"},"#1419")),(0,a.kt)("li",{parentName:"ul"},"Fixed issue with ada_pots being wrong\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/1ad4521a5601e8e98dc06bba2826d6b2f9b4fcf4"},"https://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/1ad4521a5601e8e98dc06bba2826d6b2f9b4fcf4")),(0,a.kt)("li",{parentName:"ul"},"Added a process which fixes in place scripts with wrong CBOR serialisation.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/8792f72e2485b320de26c02dacc4d504d377ba17"},"https://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/8792f72e2485b320de26c02dacc4d504d377ba17")),(0,a.kt)("li",{parentName:"ul"},"Prepared a tag ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/releases"},(0,a.kt)("inlineCode",{parentName:"a"},"13.1.1.2")),"\nwhich is tested and ready to release. It contains many of the above.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c9210b26.66a4c703.js b/assets/js/c9210b26.66a4c703.js new file mode 100644 index 0000000000..7c16b14be0 --- /dev/null +++ b/assets/js/c9210b26.66a4c703.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97959],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>d});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?a(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):a(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){if(null==e)return{};var i,r,n=function(e,t){if(null==e)return{};var i,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),h=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},s=function(e){var t=h(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=h(i),c=n,d=u["".concat(p,".").concat(c)]||u[c]||m[c]||a;return i?r.createElement(d,o(o({ref:t},s),{},{components:i})):r.createElement(d,o({ref:t},s))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var h=2;h<a;h++)o[h]=i[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,i)}c.displayName="MDXCreateElement"},31535:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>h});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-05-04-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-04-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-04-mithril.md",source:"@site/blog/2023-05-04-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-05-04T00:00:00.000Z",formattedDate:"May 4, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.56,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-05-04-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-05-05-node-cli-api"},nextItem:{title:"Consensus Team Update",permalink:"/2023-05-03-consensus"}},p={authorsImageUrls:[void 0]},h=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:h},u="wrapper";function m(e){let{components:t,...i}=e;return(0,n.kt)(u,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team completed the implementation of the new certifier service of the aggregator, which is in charge of producing certificates for multi-signatures. They also finished implementing the interfaces defined to provide certification for the full immutable Cardano files snapshot and the Mithril stake distribution. Additionally, they have completed the refactoring of the multi-signer in the aggregator. The team also fixed the bug in the signer registration that was responsible for gaps during the signature phase for some signers, and they upgraded the Cardano node used in the Mithril testnets and devnet to version ",(0,n.kt)("inlineCode",{parentName:"p"},"1.35.7"),"."),(0,n.kt)("p",null,"Finally, they have worked on designing a decentralized registration for the signers that takes place on the Cardano chain."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that designs and implements generic signing/verification of entity services ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/780"},"#780"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the implementation of the ",(0,n.kt)("inlineCode",{parentName:"li"},"Certifier")," service in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/850"},"#850")),(0,n.kt)("li",{parentName:"ul"},"Completed the implementation of the signable builder for the ",(0,n.kt)("inlineCode",{parentName:"li"},"Mithril Stake Distribution")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/851"},"#851")),(0,n.kt)("li",{parentName:"ul"},"Completed the implementation of the artifact builder for the ",(0,n.kt)("inlineCode",{parentName:"li"},"Mithril Stake Distribution")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/870"},"#870")),(0,n.kt)("li",{parentName:"ul"},"Completed the implementation of the signable builder for the ",(0,n.kt)("inlineCode",{parentName:"li"},"Full Immutables Snapshot")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/852"},"#852")),(0,n.kt)("li",{parentName:"ul"},"Completed the implementation of the artifact builder for the ",(0,n.kt)("inlineCode",{parentName:"li"},"Full Immutables Snapshot")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/871"},"#871")),(0,n.kt)("li",{parentName:"ul"},"Completed the adaptation of the aggregator runtime to use the signable builder service ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/853"},"#853")),(0,n.kt)("li",{parentName:"ul"},"Worked on the adaptation of the signer runtime to use the signable builder service ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/854"},"#854")),(0,n.kt)("li",{parentName:"ul"},"Completed the definition of the entity service interface for verification/restoration ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/868"},"#868")),(0,n.kt)("li",{parentName:"ul"},"Completed the refactoring of the ",(0,n.kt)("inlineCode",{parentName:"li"},"OpenMessage")," type ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/878"},"#878")))),(0,n.kt)("li",{parentName:"ul"},"Completed the epic that simplifies the multi-signer in the aggregator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/398"},"#398"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the extraction of the single signature registration from the multi-signer ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/643"},"#643")))),(0,n.kt)("li",{parentName:"ul"},"Completed the upgrade of the Cardano node to version ",(0,n.kt)("inlineCode",{parentName:"li"},"1.35.7")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/881"},"#881")),(0,n.kt)("li",{parentName:"ul"},"Fixed the bug that created a discrepancy of the signer verification keys between signers and aggregators ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/873"},"#873"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c92fbd03.8816b8b5.js b/assets/js/c92fbd03.8816b8b5.js new file mode 100644 index 0000000000..1c7e2993ca --- /dev/null +++ b/assets/js/c92fbd03.8816b8b5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[99720],{95281:a=>{a.exports=JSON.parse('{"label":"sre","permalink":"/tags/sre","allTagsPath":"/tags","count":29}')}}]); \ No newline at end of file diff --git a/assets/js/c9987321.fbb36977.js b/assets/js/c9987321.fbb36977.js new file mode 100644 index 0000000000..92918a7f97 --- /dev/null +++ b/assets/js/c9987321.fbb36977.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5637],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},l=Object.keys(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=p(a),m=n,h=u["".concat(c,".").concat(m)]||u[m]||s[m]||l;return a?r.createElement(h,o(o({ref:t},d),{},{components:a})):r.createElement(h,o({ref:t},d))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:n,o[1]=i;for(var p=2;p<l;p++)o[p]=a[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},22486:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-01-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",i={permalink:"/2024-01-15-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-15-node-cli-api.md",source:"@site/blog/2024-01-15-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-01-15T00:00:00.000Z",formattedDate:"January 15, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.63,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-01-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-01-17-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-01-12-hydra"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],d={toc:p},u="wrapper";function s(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-01-01---2024-01-15"},"2024-01-01 - 2024-01-15"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-cli: Improve queries drep and stake pool queries. Code clean-up"),(0,n.kt)("li",{parentName:"ul"},"cardano-api: Added support for drep extended keys"),(0,n.kt)("li",{parentName:"ul"},"cardano-testnet: Update to cardano-cli 8.18.0.0")),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/560"},"Detail: remove some dead code")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/555"},"Clarify DRep queries with an all-or-some logic")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/545"},"Fix changelog syntax, so that cardano-dev's tag.sh script works")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/544"},"Update to hedgehog-extras-0.5.1.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/542"},"Release 8.18.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/541"},'Clarify stake-pool queries with an "all or some"-logic')),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/538"},"Update cardano-api to 8.37.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/536"},"Update hedgehog-extras to 0.5.0.0"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/419"},"Support signing with drep extended key")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/418"},"Update to hedgehog-extras-0.5.1.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/417"},"Release 8.37.0.0"))),(0,n.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5633"},"Update CLI to 8.18.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5626"},"Use lenses for JSON editing. Upgrade to ",(0,n.kt)("inlineCode",{parentName:"a"},"hedgehog-extras0.5.1.0")))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c9d7f018.ed141bd6.js b/assets/js/c9d7f018.ed141bd6.js new file mode 100644 index 0000000000..7aac69e671 --- /dev/null +++ b/assets/js/c9d7f018.ed141bd6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[71955],{60398:s=>{s.exports=JSON.parse('{"label":"consensus","permalink":"/tags/consensus","allTagsPath":"/tags","count":45}')}}]); \ No newline at end of file diff --git a/assets/js/ca3b5bc8.640cf1bb.js b/assets/js/ca3b5bc8.640cf1bb.js new file mode 100644 index 0000000000..52802cea6e --- /dev/null +++ b/assets/js/ca3b5bc8.640cf1bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96140],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(n),m=a,h=p["".concat(l,".").concat(m)]||p[m]||d[m]||o;return n?r.createElement(h,i(i({ref:t},c),{},{components:n})):r.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:a,i[1]=s;for(var u=2;u<o;u++)i[u]=n[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},92861:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-08-09-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-08-09-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-09-consensus.md",source:"@site/blog/2023-08-09-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-08-09T00:00:00.000Z",formattedDate:"August 9, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.46,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-08-09-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-08-10-mithril"},nextItem:{title:"Crypto Team Update",permalink:"/2023-08-04-crypto"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"UTxO-HD",id:"utxo-hd",level:2},{value:"Genesis",id:"genesis",level:2},{value:"Fostering collaboration",id:"fostering-collaboration",level:2},{value:"Support",id:"support",level:2}],c={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This week the Consensus team worked on integrating the latest node release into the UTxO HD branch. Our ad-hoc benchmarks in which we sync a node from scratch showed that the LMDB backend uses around 8GB of memory. We also released new versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"fs-sim")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"fs-api"),", and released ",(0,a.kt)("inlineCode",{parentName:"p"},"strict-checked-vars"),"."),(0,a.kt)("h2",{id:"utxo-hd"},"UTxO-HD"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Rebased UTxO-HD on top of node 8.2 (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/256"},"issue"),")"),(0,a.kt)("li",{parentName:"ul"},"Address new ",(0,a.kt)("inlineCode",{parentName:"li"},"Maybe")," translations for UTxOs in Conway 1.6. (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/261"},"PR"),")."),(0,a.kt)("li",{parentName:"ul"},"Performed ad-hoc benchmarking syncs with both implementations. The LMDB backend uses around 8GB of memory."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/compare/96e92351ad35cfce1b0c2c47c4ed05792bf81fad..90d4c93af0846c9b027d530c042180c51aeee4fd"},"Fixed")," an infinite loop on the mempool tracing code that was preventing the node from shutting down gracefully."),(0,a.kt)("li",{parentName:"ul"},"Fixed an infinite loop on the ledger state query for traversing queries that prevented the node from running ",(0,a.kt)("inlineCode",{parentName:"li"},"QueryUTxOByAddress")," (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/273"},"PR"),")."),(0,a.kt)("li",{parentName:"ul"},"Measured the speed of ",(0,a.kt)("inlineCode",{parentName:"li"},"QueryUTxOByAddress")," under different ",(0,a.kt)("inlineCode",{parentName:"li"},"queryBatchSize")," values. There is a significant performance degradation for these queries when using the UTxO-HD version. Using the mainnet UTxO set at slot 90 million, querying an address took 40 seconds using the in-memory backend and 90 seconds using the LMDB backend, whereas the baseline took 7 seconds. We need to investigate if we can improve this situation or whether an external service that runs alongside the node is a better solution."),(0,a.kt)("li",{parentName:"ul"},"Refactored and implemented ledgertable-related classes for the general ",(0,a.kt)("inlineCode",{parentName:"li"},"HardforkBlock"),".")),(0,a.kt)("h2",{id:"genesis"},"Genesis"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/nfrisby"},"Frisby")," and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/amesgen"},"Esgen")," continue to engage with the Researchers on grinding against the Genesis design.")),(0,a.kt)("h2",{id:"fostering-collaboration"},"Fostering collaboration"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Drafted a document explaining versioning of local state queries ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/273"},"#273"),".")),(0,a.kt)("h2",{id:"support"},"Support"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/nfrisby"},"Frisby")," is the release engineer this cycle."),(0,a.kt)("li",{parentName:"ul"},"Successfully created work-in-progress ",(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-api")," commits that integrate the 2023 Aug 7 tip of ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-ledger"),". This will require a release of ",(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus"),", which hasn't happened yet.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ca6829cb.5e6056eb.js b/assets/js/ca6829cb.5e6056eb.js new file mode 100644 index 0000000000..f923f65329 --- /dev/null +++ b/assets/js/ca6829cb.5e6056eb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[41153],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>c});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),m=n,c=h["".concat(s,".").concat(m)]||h[m]||d[m]||o;return r?a.createElement(c,i(i({ref:t},u),{},{components:r})):a.createElement(c,i({ref:t},u))}));function c(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,i[1]=l;for(var p=2;p<o;p++)i[p]=r[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},14193:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-10-20-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-10-20-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-20-hydra.md",source:"@site/blog/2023-10-20-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-10-20T00:00:00.000Z",formattedDate:"October 20, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.84,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-10-20-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-10-24-node-cli-api"},nextItem:{title:"Consensus Team Update",permalink:"/2023-10-18-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:p},h="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team mainly focused on preparing a masterclass and workshop for #CardanoSummit2023."),(0,n.kt)("p",null,"In addition, they improved the Hydra node API's submit-transaction endpoint to accept three different encoding types: Base16 encoded CBOR string, TextEnvelope type, and JSON.\nThis improvement offers users greater flexibility and ease of interaction with the API."),(0,n.kt)("p",null,"Finally, the team has followed up on the TUI brick upgrade to version 1.10.\nThis effort has resulted in addressing minor details and enhancing the overall user experience with the TUI."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Prepare presentation and workshop for Cardano Summit."),(0,n.kt)("li",{parentName:"ul"},"More TUI fixes and improvements.",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1127"},"#1127")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1120"},"#1120")))),(0,n.kt)("li",{parentName:"ul"},"Upgrade GHC from 9.2.8 -> 9.6.2 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1105"},"#1105")),(0,n.kt)("li",{parentName:"ul"},"Solved user issue related to submitting transactions in cbor format ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1111"},"#1111"),"."),(0,n.kt)("li",{parentName:"ul"},"Fix hydraw connection issue making it more stable ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1121"},"#1121"),".")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Work on hydra-poll dApp for Cardano summit."),(0,n.kt)("li",{parentName:"ul"},"Start the work on packaging hydra-node and related services.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ca6e2d66.bbe312db.js b/assets/js/ca6e2d66.bbe312db.js new file mode 100644 index 0000000000..2d3275a1af --- /dev/null +++ b/assets/js/ca6e2d66.bbe312db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[47827],{16180:e=>{e.exports=JSON.parse('{"permalink":"/tags/performance-tracing/page/6","page":6,"postsPerPage":5,"totalPages":7,"totalCount":34,"previousPage":"/tags/performance-tracing/page/5","nextPage":"/tags/performance-tracing/page/7","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/caab1e2e.33282a18.js b/assets/js/caab1e2e.33282a18.js new file mode 100644 index 0000000000..ce4c85d1af --- /dev/null +++ b/assets/js/caab1e2e.33282a18.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93570],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(n),d=a,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return n?r.createElement(f,l(l({ref:t},m),{},{components:n})):r.createElement(f,l({ref:t},m))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=n[c];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},74145:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Goedel Team Update",slug:"2023-07-20-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-07-20-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-20-goedel.md",source:"@site/blog/2023-07-20-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-07-20T00:00:00.000Z",formattedDate:"July 20, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.47,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-07-20-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-07-21-sre"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-07-18-node-cli-api"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is working on formalising mini protocols, the performance\nmodelling prototype and also finishing off their ICE papers."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Formalization of the chain synchronization mini-protocol in the\nthorn calculus")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Final pre-publication steps for ICE 2023 papers")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Developing approach for specification and verification of\nmini-protocols")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Started work on porting the DeltaQ framework to a new, more concrete\nbackend based on piecewise-polynomials"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cab3a9ea.ef43f631.js b/assets/js/cab3a9ea.ef43f631.js new file mode 100644 index 0000000000..78ef2c4361 --- /dev/null +++ b/assets/js/cab3a9ea.ef43f631.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97343],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},84597:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Benchmarking -- Node 8.9.1",slug:"2024-03-performance-8.9.1",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},i=void 0,l={permalink:"/reports/2024-03-performance-8.9.1",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-03-performance-8.9.1.md",source:"@site/reports/2024-03-performance-8.9.1.md",title:"Benchmarking -- Node 8.9.1",description:"Setup",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"benchmarking-reports",permalink:"/reports/tags/benchmarking-reports"}],readingTime:2.285,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Benchmarking -- Node 8.9.1",slug:"2024-03-performance-8.9.1",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},prevItem:{title:"Benchmarking -- Node 8.9.0",permalink:"/reports/2024-03-performance-8.9.0"},nextItem:{title:"Benchmarking -- Node 8.9.3",permalink:"/reports/2024-05-performance-8.9.3"}},s={authorsImageUrls:[void 0]},c=[{value:"Setup",id:"setup",level:2},{value:"Observations",id:"observations",level:2},{value:"Resource Usage",id:"resource-usage",level:3},{value:"Forging Loop",id:"forging-loop",level:3},{value:"Peer propagation",id:"peer-propagation",level:3},{value:"End-to-end propagation",id:"end-to-end-propagation",level:3},{value:"Conclusion",id:"conclusion",level:3},{value:"Contact",id:"contact",level:2},{value:"Attachments",id:"attachments",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"setup"},"Setup"),(0,a.kt)("p",null,"As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0")," - baseline for previous mainnet release"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1")," - the next mainnet release")),(0,a.kt)("p",null,"For each version, we're gathering various metrics under 2 different workloads:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"value-only"),": Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"Plutus"),": Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.")),(0,a.kt)("p",null,"Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\nwere performed in the Babbage era."),(0,a.kt)("h2",{id:"observations"},"Observations"),(0,a.kt)("p",null,"These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet. "),(0,a.kt)("h3",{id:"resource-usage"},"Resource Usage"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"We can observe an overall decrease in CPU usage (2% - 4%); only GC CPU usage under value workload increases by 3%."),(0,a.kt)("li",{parentName:"ol"},"Under value workload only, Allocation rate is very slightly decreased (1%) with no change to Heap Size.")),(0,a.kt)("p",null,"Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness."),(0,a.kt)("h3",{id:"forging-loop"},"Forging Loop"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Mempool Snapshot duration increases slightly by 2ms under value workload."),(0,a.kt)("li",{parentName:"ol"},"Self-Adoption time increases by 3ms."),(0,a.kt)("li",{parentName:"ol"},"All other forger metrics do not exhibit significant change.")),(0,a.kt)("p",null,"The metric ",(0,a.kt)("em",{parentName:"p"},"'Slot start to announced'")," (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header."),(0,a.kt)("h3",{id:"peer-propagation"},"Peer propagation"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload only, Block Fetch duration and Fetched to Sending show a slight increase of 2ms each.")),(0,a.kt)("h3",{id:"end-to-end-propagation"},"End-to-end propagation"),(0,a.kt)("p",null,"This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. "),(0,a.kt)("p",null,"End-to-end propagation times on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.1")," exhibit a small increase by 1% - 2% for full blocks, while remaining virtually unchanged for small blocks."),(0,a.kt)("h3",{id:"conclusion"},"Conclusion"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The performance changes measured between ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0")," are very minor. Mainnnet performance of ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1")," is expected to be akin to ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.0"),"."),(0,a.kt)("li",{parentName:"ul"},"We have not observed any performance regression being introduced in ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1"),".")),(0,a.kt)("h2",{id:"contact"},"Contact"),(0,a.kt)("p",null,"As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. "),(0,a.kt)("p",null,"We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future."),(0,a.kt)("h2",{id:"attachments"},"Attachments"),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"value-only workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(975).Z},"here"),"."),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"Plutus workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(80897).Z},"here"),"."))}d.isMDXComponent=!0},80897:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.9.1.plutus-d9187a701bca584d89b3560f59a5e472.pdf"},975:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.9.1.value-only-16f821f38b547d88c701881f741afffb.pdf"}}]); \ No newline at end of file diff --git a/assets/js/caeff77a.49dc4a15.js b/assets/js/caeff77a.49dc4a15.js new file mode 100644 index 0000000000..9636478f20 --- /dev/null +++ b/assets/js/caeff77a.49dc4a15.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[4553],{32905:a=>{a.exports=JSON.parse('{"label":"cli-api","permalink":"/tags/cli-api","allTagsPath":"/tags","count":39}')}}]); \ No newline at end of file diff --git a/assets/js/cb1998b9.873bdb9f.js b/assets/js/cb1998b9.873bdb9f.js new file mode 100644 index 0000000000..3a37f36b67 --- /dev/null +++ b/assets/js/cb1998b9.873bdb9f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6795],{4758:a=>{a.exports=JSON.parse('{"label":"open-source","permalink":"/quarterly/tags/open-source","allTagsPath":"/quarterly/tags","count":1}')}}]); \ No newline at end of file diff --git a/assets/js/cb54f244.3eeb510a.js b/assets/js/cb54f244.3eeb510a.js new file mode 100644 index 0000000000..7980ae397f --- /dev/null +++ b/assets/js/cb54f244.3eeb510a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48955],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),p=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=p(a),h=n,m=d["".concat(l,".").concat(h)]||d[h]||c[h]||o;return a?r.createElement(m,i(i({ref:t},u),{},{components:a})):r.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:n,i[1]=s;for(var p=2;p<o;p++)i[p]=a[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}h.displayName="MDXCreateElement"},46981:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-12-08-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-12-08-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08.md",source:"@site/blog/2023-12-08.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-12-08T00:00:00.000Z",formattedDate:"December 8, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.75,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-12-08-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-12-08-sre"},nextItem:{title:"Ledger Team Update",permalink:"/2023-12-06-ledger"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],u={toc:p},d="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team made progress by releasing version\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/releases/tag/0.14.0"},"0.14.0"),",\nincorporating updates and improvements. They also updated dependencies\nin preparation for Conway support, addressing\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/1114"},"#","1114"),".\nAdditionally, the team completed substantial refactoring in hydra-node\nusing stateless observation, aiming to enhance system efficiency and\nperformance\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/1096"},"#","1096"),". Lastly,\nthey investigated regressions related to JSON serialized transactions\nand consider dropping this in favor of CBOR only submission."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released version\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.14.0"},"0.14.0")),(0,n.kt)("li",{parentName:"ul"},"Updated dependencies to prepare for Conway support\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1114"},"#","1114")),(0,n.kt)("li",{parentName:"ul"},"Completed substantial refactoring in hydra-node using stateless\nobservation\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1096"},"#","1096")),(0,n.kt)("li",{parentName:"ul"},"Investigated regressions about JSON serialized transactions")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Analysed our mainnet head and why some transactions were invalid"),(0,n.kt)("li",{parentName:"ul"},"Detect incompatible blocks and provide better UX"),(0,n.kt)("li",{parentName:"ul"},"Update to newer cardano-node and Conway support in hydra-node"),(0,n.kt)("li",{parentName:"ul"},"Draft the end-to-end workflow for incremental decommits")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cb70d85b.e1d89988.js b/assets/js/cb70d85b.e1d89988.js new file mode 100644 index 0000000000..bd261a62eb --- /dev/null +++ b/assets/js/cb70d85b.e1d89988.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6177],{77217:e=>{e.exports=JSON.parse('{"permalink":"/tags/consensus/page/2","page":2,"postsPerPage":5,"totalPages":9,"totalCount":45,"previousPage":"/tags/consensus","nextPage":"/tags/consensus/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/cb7a1a0b.bb382be5.js b/assets/js/cb7a1a0b.bb382be5.js new file mode 100644 index 0000000000..2f1316b70d --- /dev/null +++ b/assets/js/cb7a1a0b.bb382be5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90934],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),s=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),c=s(r),d=n,h=c["".concat(l,".").concat(d)]||c[d]||m[d]||a;return r?o.createElement(h,i(i({ref:t},u),{},{components:r})):o.createElement(h,i({ref:t},u))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=d;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[c]="string"==typeof e?e:n,i[1]=p;for(var s=2;s<a;s++)i[s]=r[s];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}d.displayName="MDXCreateElement"},62094:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>p,toc:()=>s});var o=r(87462),n=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-11-16-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2023-11-16-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-16-network.md",source:"@site/blog/2023-11-16-network.md",title:"Network Team Update",description:"High-level overview of sprint 48",date:"2023-11-16T00:00:00.000Z",formattedDate:"November 16, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:.545,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-11-16-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2023-11-17-performance-and-tracing"},nextItem:{title:"Consensus Team Update",permalink:"/2023-11-15-consensus"}},l={authorsImageUrls:[void 0]},s=[{value:"High-level overview of sprint 48",id:"high-level-overview-of-sprint-48",level:2},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"IOClasses / IOSim",id:"ioclasses--iosim",level:3},{value:"Tech debt",id:"tech-debt",level:3}],u={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-48"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+48%22"},"sprint 48")),(0,n.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,n.kt)("p",null,"We continued reviewing bootstrap peers, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4555"},"ouroboros-network#4555"),"."),(0,n.kt)("h3",{id:"ioclasses--iosim"},"IOClasses / IOSim"),(0,n.kt)("p",null,"We prepared slides for a Haskell meetup were we presented a talk on ",(0,n.kt)("inlineCode",{parentName:"p"},"IOSimPOR"),".\nThe recording will be availble on ",(0,n.kt)("inlineCode",{parentName:"p"},"YouTube"),"."),(0,n.kt)("p",null,"We also used the opportunity to do some refactoring of the ",(0,n.kt)("inlineCode",{parentName:"p"},"IOSim")," code base: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/117"},"io-sim#117"),".\nWe released ",(0,n.kt)("inlineCode",{parentName:"p"},"io-sim-1.3.0.0")," on ",(0,n.kt)("inlineCode",{parentName:"p"},"Hackage"),": ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/119"},"io-sim#119"),"."),(0,n.kt)("p",null,"We also added ",(0,n.kt)("inlineCode",{parentName:"p"},"forkFinally")," to ",(0,n.kt)("inlineCode",{parentName:"p"},"MonadFork")," (not included in ",(0,n.kt)("inlineCode",{parentName:"p"},"1.3.0.0")," release): ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/123"},"io-sim#123"),"."),(0,n.kt)("h3",{id:"tech-debt"},"Tech debt"),(0,n.kt)("p",null,"We refactored ",(0,n.kt)("inlineCode",{parentName:"p"},"Resource")," used by the DNS subsystem: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4707"},"ouroboros-network#4707"),".\nWe continued reviewing the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4625"},"ouroboros-network#4625")," PR, which refactors\n",(0,n.kt)("inlineCode",{parentName:"p"},"RootPeersDNS")," module."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cbd762f3.2149c8cf.js b/assets/js/cbd762f3.2149c8cf.js new file mode 100644 index 0000000000..361ca992cf --- /dev/null +++ b/assets/js/cbd762f3.2149c8cf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48810],{70453:s=>{s.exports=JSON.parse('{"label":"consensus","permalink":"/tags/consensus","allTagsPath":"/tags","count":45}')}}]); \ No newline at end of file diff --git a/assets/js/cc267639.4ddee7a8.js b/assets/js/cc267639.4ddee7a8.js new file mode 100644 index 0000000000..51fbfd9959 --- /dev/null +++ b/assets/js/cc267639.4ddee7a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[81214],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>y});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),m=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=m(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=m(r),d=a,y=u["".concat(i,".").concat(d)]||u[d]||c[d]||s;return r?n.createElement(y,o(o({ref:t},p),{},{components:r})):n.createElement(y,o({ref:t},p))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,o=new Array(s);o[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var m=2;m<s;m++)o[m]=r[m];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},27582:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var n=r(87462),a=(r(67294),r(3905));const s={title:"System Test Team Update",slug:"2023-01-13-system-test",authors:"dorin100",tags:["system-test"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-13-system-test",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-13-system-test.md",source:"@site/blog/2023-01-13-system-test.md",title:"System Test Team Update",description:"High level summary",date:"2023-01-13T00:00:00.000Z",formattedDate:"January 13, 2023",tags:[{label:"system-test",permalink:"/tags/system-test"}],readingTime:.91,hasTruncateMarker:!1,authors:[{name:"Dorin Solomon",title:"System Test Team Lead",url:"https://github.com/dorin100",imageURL:"https://github.com/dorin100.png",key:"dorin100"}],frontMatter:{title:"System Test Team Update",slug:"2023-01-13-system-test",authors:"dorin100",tags:["system-test"],hide_table_of_contents:!1},prevItem:{title:"Node Release Team Update",permalink:"/2023-01-13-release"},nextItem:{title:"Mithril Team Update",permalink:"/2023-01-12-mithril"}},i={authorsImageUrls:[void 0]},m=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Framework improvements:",id:"framework-improvements",level:3},{value:"Node:",id:"node",level:3},{value:"DB-Sync:",id:"db-sync",level:3}],p={toc:m},u="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the ",(0,a.kt)("em",{parentName:"p"},"P2P Single\nRelay")," functionality."),(0,a.kt)("p",null,"We also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level."),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"framework-improvements"},"Framework improvements:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"extended the ",(0,a.kt)("em",{parentName:"li"},"cardano-node-tests")," with the ability for anybody to fork the repo and ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/readme.html"},"run all our System Tests on GitHub Actions")),(0,a.kt)("li",{parentName:"ul"},"added 2 new nightly pipelines - nightly-mixed and nightly-p2p - ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/test_results/nightly_system_tests.html"},"details here")),(0,a.kt)("li",{parentName:"ul"},"some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;")),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"}," === 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) ===\n to\n === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===")),(0,a.kt)("h3",{id:"node"},"Node:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled"),(0,a.kt)("li",{parentName:"ul"},"started the preparations for testing the next tag - ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node-tests/blob/tag_test_1.35.5_rc1/src_docs/source/test_results/node/tag_1_35_5_rc1.rst"},"details here"))),(0,a.kt)("h3",{id:"db-sync"},"DB-Sync:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"some improvements on db-sync sync tests")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cc5c2602.30714e2b.js b/assets/js/cc5c2602.30714e2b.js new file mode 100644 index 0000000000..35c25e004a --- /dev/null +++ b/assets/js/cc5c2602.30714e2b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[78761],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=u(n),c=o,k=d["".concat(s,".").concat(c)]||d[c]||m[c]||i;return n?a.createElement(k,r(r({ref:t},p),{},{components:n})):a.createElement(k,r({ref:t},p))}));function k(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:o,r[1]=l;for(var u=2;u<i;u++)r[u]=n[u];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},43451:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=n(87462),o=(n(67294),n(3905));const i={title:"Network Quarterly Update",slug:"2023-01-13-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},r=void 0,l={permalink:"/quarterly/2023-01-13-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-01-13-network.md",source:"@site/quarterly/2023-01-13-network.md",title:"Network Quarterly Update",description:"Network Quarterly Update",date:"2023-01-13T00:00:00.000Z",formattedDate:"January 13, 2023",tags:[{label:"network",permalink:"/quarterly/tags/network"}],readingTime:4.125,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Quarterly Update",slug:"2023-01-13-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Quarterly Update",permalink:"/quarterly/2023-01-18-consensus"},nextItem:{title:"Open-Source Update",permalink:"/quarterly/2023-01-13-open-source"}},s={authorsImageUrls:[void 0]},u=[{value:"Network Quarterly Update",id:"network-quarterly-update",level:2},{value:"2022-11 - 2023-01",id:"2022-11---2023-01",level:2},{value:"Summary",id:"summary",level:3},{value:"Next steps",id:"next-steps",level:3},{value:"Risks",id:"risks",level:3},{value:"Detailed log",id:"detailed-log",level:3},{value:"Contributions to Ouroboros-Network",id:"contributions-to-ouroboros-network",level:4},{value:"Contributions to Cardano-Node",id:"contributions-to-cardano-node",level:4},{value:"Contributions to IOSim",id:"contributions-to-iosim",level:4}],p={toc:u},d="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"network-quarterly-update"},"Network Quarterly Update"),(0,o.kt)("h2",{id:"2022-11---2023-01"},"2022-11 - 2023-01"),(0,o.kt)("h3",{id:"summary"},"Summary"),(0,o.kt)("p",null,"The primary goal of the networking team was to focus on the single relay\nrelease of P2P. We fixed a number of small late bugs, and concluded QA\n& performance testing. Although it was discovered a regression in performance\nof block production when P2P is enabled, relaying with P2P performs better\ncomparing to a non p2p. We concluded that this is not a blocker for the Single\nRelay Release which is planned shortly."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"Peer sharing")," has gone through review and final review is\njust being done right now. After merging it will still be disabled (hidden\nbehind a flag) as it's not safe without eclipse evasion. We started\nimplementing light peer sharing (i.e. include inbound peers into known peer set\nof the outbound governor)."),(0,o.kt)("p",null,"We started a detailed eclipse evasion design, it will continue in the next\nquarter."),(0,o.kt)("p",null,"We also made a major revision of package structure of the network packages. We\nended up with a very clean dependency graph (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4155"},"pr #4155"),")."),(0,o.kt)("p",null,"Armando Santos delivered a talk at the ",(0,o.kt)("a",{parentName:"p",href:"https://sites.uclouvain.be/OPODIS2022/armando-details.html"},"ODOPIS 2022")," conference on principles\nof distributed systems in Brussels. The slides are available ",(0,o.kt)("a",{parentName:"p",href:"https://sites.uclouvain.be/OPODIS2022/slides/OPODIS2022-slides-Santos.pdf"},"here"),"."),(0,o.kt)("p",null,"Neil Davies gave an invited seminar on ",(0,o.kt)("inlineCode",{parentName:"p"},"DeltaQ")," at Universit\xe9 Catholique de\nLouvain."),(0,o.kt)("p",null,"We also found and fixed a few of bugs:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"a bug in keep alive mini-protocol which resulted in warm to cold transitions\nto be always executed through a timeout path rather than do a clean demotion\n(","[pr #4168]",").")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"fixed an assetion failure in the outbound governor (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4177"},"issue #4177"),") "))),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"we fixed DNS test failure ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4191"},"issue #4191"))),(0,o.kt)("h3",{id:"next-steps"},"Next steps"),(0,o.kt)("p",null,"We will work towards the next release of P2P for block producer nodes. This includes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"analysing performance regression for BP nodes when using P2P"),(0,o.kt)("li",{parentName:"ul"},"finish the work on controlling the block forger through node kernel (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3800"},"pr #3800"),")"),(0,o.kt)("li",{parentName:"ul"},"address ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3907"},"issue #3907")," and write a script to analyse deployment of P2P relays")),(0,o.kt)("p",null,"We would like also to push forward eclipse evasion. Although most of the work\nhas be done already the release of ",(0,o.kt)("inlineCode",{parentName:"p"},"io-sim")," on ",(0,o.kt)("inlineCode",{parentName:"p"},"Hackage")," will happen in the\nnext quarter."),(0,o.kt)("p",null,"We would also like to address ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4244"},"chain-sync timeout issue")," recently\ndiagnosed by Karl Knutsson."),(0,o.kt)("p",null,"If time permits we would also like to address some technical debt, especially:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3387"},"enable nothunk in diffusion tests")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4085"},"refactor diffusion testnet simulation"))),(0,o.kt)("h3",{id:"risks"},"Risks"),(0,o.kt)("p",null,"The performance regression for block producer with P2P needs to be investigated\nin the near future. This is blocker for the release of P2P on BP nodes."),(0,o.kt)("h3",{id:"detailed-log"},"Detailed log"),(0,o.kt)("h4",{id:"contributions-to-ouroboros-network"},"Contributions to Ouroboros-Network"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We added ",(0,o.kt)("inlineCode",{parentName:"li"},"TraceDemoteLocalAsynchronous"),", which enables notification of critical issues for SPOs"),(0,o.kt)("li",{parentName:"ul"},"We fixed ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-ping")," compatibility with ",(0,o.kt)("inlineCode",{parentName:"li"},"NodeToNodeV_10")," (P2P, ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4165"},"pr #4165"),")"),(0,o.kt)("li",{parentName:"ul"},"We fixed a bug in demotion peers to cold which affected P2P nodes (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4170/commits/61058aa5c28a144d723aae183d1745552d757334"},"commit-61058aa5c2"),")"),(0,o.kt)("li",{parentName:"ul"},"Karl Knutsson enhanced ",(0,o.kt)("inlineCode",{parentName:"li"},"SendFetchRequest")," (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4170/commits/bb1c3dddeea78949f531c144bb4f2669eddf7f47"},"commit-bb1c3dddee"),"), open-source contribution)"),(0,o.kt)("li",{parentName:"ul"},"We turned ",(0,o.kt)("inlineCode",{parentName:"li"},"SizeInBytes")," into a newtype."),(0,o.kt)("li",{parentName:"ul"},"We extended ",(0,o.kt)("inlineCode",{parentName:"li"},"CONTRIBUTING.md"),", ",(0,o.kt)("inlineCode",{parentName:"li"},"README.md"),", added ",(0,o.kt)("inlineCode",{parentName:"li"},"CODE_OF_CONDUCT"),"."),(0,o.kt)("li",{parentName:"ul"},"We fixed DNS test failure ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4191"},"issue #4191")),(0,o.kt)("li",{parentName:"ul"},"We fixed a simulation bug found in ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4258"},"issue #4258")),(0,o.kt)("li",{parentName:"ul"},"[pr #4168]"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4177"},"issue #4177"))),(0,o.kt)("h4",{id:"contributions-to-cardano-node"},"Contributions to Cardano-Node"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We maintained the Single Relay Release ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4612"},"pr #4612"),", (e.g. fixing CI issues,\nRebasing it when necessary, publishing packages to Cardano Haskell Packages);"),(0,o.kt)("li",{parentName:"ul"},"We enhanced ",(0,o.kt)("inlineCode",{parentName:"li"},"JSON")," serialisation / deserialisation of ",(0,o.kt)("inlineCode",{parentName:"li"},"NodeToNodeVersion")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"NodeToClientVersion"),";")),(0,o.kt)("h4",{id:"contributions-to-iosim"},"Contributions to IOSim"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We started to use Cardano Haskell Packages for ",(0,o.kt)("inlineCode",{parentName:"li"},"IOSim")," (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/48"},"pr #48"),")"),(0,o.kt)("li",{parentName:"ul"},"We updated change log files"),(0,o.kt)("li",{parentName:"ul"},"We added support of ",(0,o.kt)("inlineCode",{parentName:"li"},"ghc-9.4")," (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/50"},"pr #50"),")")),(0,o.kt)("p",null,"We also addressed the following issues in ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/57"},"pr #57")," in order to prepare the package for publication on Hackage:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"refactored ",(0,o.kt)("inlineCode",{parentName:"li"},"io-classes")," timers API (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/issues/46"},"issue #46"),");"),(0,o.kt)("li",{parentName:"ul"},"created a new package ",(0,o.kt)("inlineCode",{parentName:"li"},"si-timers")," which exposes an interface using SI units\nand is safe on 32-bit systems (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/issues/59"},"issue #59"),");"),(0,o.kt)("li",{parentName:"ul"},"added monad transformers instances for classes defined in ",(0,o.kt)("inlineCode",{parentName:"li"},"io-classes")," (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/issues/58"},"issue #58"),");"),(0,o.kt)("li",{parentName:"ul"},"created ",(0,o.kt)("inlineCode",{parentName:"li"},"io-classes-mtl")," package which includes (experimental) instances for monad transformers;"),(0,o.kt)("li",{parentName:"ul"},"provide ",(0,o.kt)("inlineCode",{parentName:"li"},"MonadMonotonicTimeNSec")," in ",(0,o.kt)("inlineCode",{parentName:"li"},"io-classes")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"MonadMonotonicTime")," in ",(0,o.kt)("inlineCode",{parentName:"li"},"si-timers")," (so that ",(0,o.kt)("inlineCode",{parentName:"li"},"io-classes")," follow the ",(0,o.kt)("inlineCode",{parentName:"li"},"base")," package);"),(0,o.kt)("li",{parentName:"ul"},"added ",(0,o.kt)("inlineCode",{parentName:"li"},"registerCancellableDelay")," in ",(0,o.kt)("inlineCode",{parentName:"li"},"si-timers")," (which allowed us to hide fancy timer api and clean ",(0,o.kt)("inlineCode",{parentName:"li"},"io-classes"),")"),(0,o.kt)("li",{parentName:"ul"},"added support for ",(0,o.kt)("inlineCode",{parentName:"li"},"js_HOST_ARCH")," (the new GHC JS backend)")),(0,o.kt)("p",null,"Note the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/57"},"pr #57")," contains almost 40 commits, and was a major step forward for\n",(0,o.kt)("inlineCode",{parentName:"p"},"io-sim")," ecosystem. We also prepared a draft ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4281"},"pr #4281")," which updates\n",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),"."),(0,o.kt)("p",null,"Other changes for ",(0,o.kt)("inlineCode",{parentName:"p"},"1.0.0.0")," release on Hackage:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Refactored test suite (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/47"},"pr #47"),")"),(0,o.kt)("li",{parentName:"ul"},"Updated documentation, cabal files, ",(0,o.kt)("inlineCode",{parentName:"li"},"CONTRIBUTING"),", ",(0,o.kt)("inlineCode",{parentName:"li"},"SECURITY")," documents, etc in ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/60"},"pr #60"),", currently under review.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cc653543.88710045.js b/assets/js/cc653543.88710045.js new file mode 100644 index 0000000000..d26c99e211 --- /dev/null +++ b/assets/js/cc653543.88710045.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91878],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=i,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},18426:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-02-21-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-02-21-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-21-mithril.md",source:"@site/blog/2024-02-21-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-02-21T00:00:00.000Z",formattedDate:"February 21, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.29,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-02-21-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-02-21-consensus"},nextItem:{title:"Network Team Update",permalink:"/2024-02-19-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They worked on enhancing the client CLI output and almost completed the support for the verification of Cardano transactions in the browser with the WASM client. The team also worked on a new feature of the Pallas chain observer to support stake distribution retrieval, and fixed the majority of the flakiness occurring in the CI end-to-end tests. Additionally, they have deployed the new Mithril network running on SanchoNet."),(0,i.kt)("p",null,"Finally, the team created a new example crate for using the client library to verify Cardano transactions, kept working on the threat modeling and risk analysis for the Mithril network, and completed their new tool for automatic documentation generation for the CLIs."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," commands in the client binary")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1469"},"#1469")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," verification in the WASM client")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1470"},"#1470")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Some end to end tests are flaky in the CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1147"},"#1147")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Re-spin ",(0,i.kt)("inlineCode",{parentName:"strong"},"Sanchonet")," network")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1503"},"#1503")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add signing capabilities to the root route of the aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1496"},"#1496")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add an example crate for the ",(0,i.kt)("inlineCode",{parentName:"strong"},"CardanoTransactions")," type")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1495"},"#1495")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Unify test folder generation")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1508"},"#1508")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Generate automatic documentation for CLIs")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1471"},"#1471"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cc74f849.5c6182f8.js b/assets/js/cc74f849.5c6182f8.js new file mode 100644 index 0000000000..e8baf6e87f --- /dev/null +++ b/assets/js/cc74f849.5c6182f8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[99896],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var i=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,i,r=function(e,t){if(null==e)return{};var n,i,r={},a=Object.keys(e);for(i=0;i<a.length;i++)n=a[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=i.createContext({}),p=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(n),c=r,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return n?i.createElement(d,o(o({ref:t},u),{},{components:n})):i.createElement(d,o({ref:t},u))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:r,o[1]=l;for(var p=2;p<a;p++)o[p]=n[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,n)}c.displayName="MDXCreateElement"},84845:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=n(87462),r=(n(67294),n(3905));const a={title:"Mithril Team Update",slug:"2024-02-28-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-02-28-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-28-mithril.md",source:"@site/blog/2024-02-28-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-02-28T00:00:00.000Z",formattedDate:"February 28, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:2,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-02-28-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-02-28-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2024-02-23-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...n}=e;return(0,r.kt)(h,(0,i.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,r.kt)("p",null,"This week the Mithril team announced the release of a new ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2408.0"},(0,r.kt)("inlineCode",{parentName:"a"},"Mithril distribution 2408.0")),". This release includes several critical updates and enhancements, such as improved support for stake distribution, Mithril era markers retrieval in the Pallas chain observer, enhanced support for the Conway era and Sanchonet network, as well as various bug fixes and performance improvements.\nIn addition, the team has made changes to the Mithril client CLI, changing the log output from ",(0,r.kt)("inlineCode",{parentName:"p"},"stdout")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"stderr")," from ",(0,r.kt)("inlineCode",{parentName:"p"},"v0.7.0"),". This announcement was made in the ",(0,r.kt)("a",{parentName:"p",href:"https://mithril.network/doc/dev-blog/2024/02/26/mithril-client-cli-output-breaking-change"},"developer blog post"),"."),(0,r.kt)("p",null,"The team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the support for the verification in the browser with the WASM client, they worked on enhancing the associated client CLI API, and implemented smoke tests. Additionally, the team has activated the signature of Cardano transactions on the ",(0,r.kt)("inlineCode",{parentName:"p"},"testing-sanchonet")," network, and they have investigated a bug that prevents the signature of some transactions on this network."),(0,r.kt)("p",null,"Finally, the team worked on reorganizing the repository structure, fixed an issue with test folder generation on MacOS, and worked on some documentation improvements."),(0,r.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2408.0"},(0,r.kt)("inlineCode",{parentName:"a"},"2408.0"))),(0,r.kt)("li",{parentName:"ul"},"Publication of a ",(0,r.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/02/08/testing-sanchonet-network-available"},"dev blog post")," about the ",(0,r.kt)("strong",{parentName:"li"},"Mithril SanchoNet network release"),"."),(0,r.kt)("li",{parentName:"ul"},"Publication of a ",(0,r.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/02/26/mithril-client-cli-output-breaking-change"},"dev blog post")," about a ",(0,r.kt)("strong",{parentName:"li"},"breaking change in the Mithril client CLI"),"."),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Implement ",(0,r.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," commands in the client binary")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1469"},"#1469")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Implement ",(0,r.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," verification in the WASM client")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1470"},"#1470")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Some end to end tests are flaky in the CI")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1147"},"#1147")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Release ",(0,r.kt)("inlineCode",{parentName:"strong"},"2408")," distribution")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1500"},"#1500")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Unify test folder generation")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1508"},"#1508")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Adapt Mithril Client multi-platform test for Cardano Transactions")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1510"},"#1510")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Document Mithril signer footprint")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1519"},"#1519")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Add a runbook for running Client multi-platform tests")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1530"},"#1530")),(0,r.kt)("li",{parentName:"ul"},"Completed the issue ",(0,r.kt)("strong",{parentName:"li"},"Update workflow github actions to node-20")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1520"},"#1520")),(0,r.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,r.kt)("strong",{parentName:"li"},"Cardano transactions are not all signed in ",(0,r.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1537"},"#1537")),(0,r.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,r.kt)("strong",{parentName:"li"},"Make HTTP server tests more robust")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1524"},"#1524")),(0,r.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,r.kt)("strong",{parentName:"li"},"Stabilize namings in ",(0,r.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," API")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1535"},"#1535")),(0,r.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,r.kt)("strong",{parentName:"li"},"Reorganize crates in the repository")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1528"},"#1528")),(0,r.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,r.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,r.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,r.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cc9fa3d1.52455b53.js b/assets/js/cc9fa3d1.52455b53.js new file mode 100644 index 0000000000..51d4dd0fad --- /dev/null +++ b/assets/js/cc9fa3d1.52455b53.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[26500],{60923:e=>{e.exports=JSON.parse('{"permalink":"/page/55","page":55,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/54","nextPage":"/page/56","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ccb3697b.01fbd726.js b/assets/js/ccb3697b.01fbd726.js new file mode 100644 index 0000000000..8917cd432a --- /dev/null +++ b/assets/js/ccb3697b.01fbd726.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[59835],{29687:e=>{e.exports=JSON.parse('{"permalink":"/page/76","page":76,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/75","nextPage":"/page/77","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ccb7a847.f3803c62.js b/assets/js/ccb7a847.f3803c62.js new file mode 100644 index 0000000000..4b27b6b94e --- /dev/null +++ b/assets/js/ccb7a847.f3803c62.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[22469],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=l(n),h=o,d=c["".concat(u,".").concat(h)]||c[h]||m[h]||a;return n?r.createElement(d,s(s({ref:t},p),{},{components:n})):r.createElement(d,s({ref:t},p))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,s=new Array(a);s[0]=h;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:o,s[1]=i;for(var l=2;l<a;l++)s[l]=n[l];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}h.displayName="MDXCreateElement"},17352:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var r=n(87462),o=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-11-01-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-11-01-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-01-consensus.md",source:"@site/blog/2023-11-01-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-11-01T00:00:00.000Z",formattedDate:"November 1, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.44,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-11-01-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-11-08-mithril"},nextItem:{title:"Mithril Team Update",permalink:"/2023-11-01-mithril"}},u={authorsImageUrls:[void 0]},l=[{value:"High level summary",id:"high-level-summary",level:2}],p={toc:l},c="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"This week the Consensus team made progress on two fronts: the question of ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/422"},"survivable eclipse duration"),", which is part of our work ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/427"},"supporting Genesis delivery"),", and how to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4251"},"improve the handling of blocks from the future"),".\nRegarding the UTxO-HD branch, we managed to run a node with ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/344"},"legacy blocks"),", which is syncing with mainnet, up to including Alonzo.\nWe also ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/465#issuecomment-1788685122"},"investigated")," a regression in mempool snapshotting, which was ultimately solved by a Ledger update, and will be fixed in the upcoming Node 8.6 release."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ccc49370.66cad8e9.js b/assets/js/ccc49370.66cad8e9.js new file mode 100644 index 0000000000..45fd6b4717 --- /dev/null +++ b/assets/js/ccc49370.66cad8e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46103],{65203:(e,t,n)=>{n.r(t),n.d(t,{default:()=>h});var a=n(67294),l=n(86010),r=n(1944),o=n(35281),i=n(9460),c=n(39058),s=n(30390),m=n(87462),d=n(95999),u=n(32244);function g(e){const{nextItem:t,prevItem:n}=e;return a.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,d.I)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"})},n&&a.createElement(u.Z,(0,m.Z)({},n,{subLabel:a.createElement(d.Z,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post"},"Newer Post")})),t&&a.createElement(u.Z,(0,m.Z)({},t,{subLabel:a.createElement(d.Z,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post"},"Older Post"),isNext:!0})))}function f(){const{assets:e,metadata:t}=(0,i.C)(),{title:n,description:l,date:o,tags:c,authors:s,frontMatter:m}=t,{keywords:d}=m,u=e.image??m.image;return a.createElement(r.d,{title:n,description:l,keywords:d,image:u},a.createElement("meta",{property:"og:type",content:"article"}),a.createElement("meta",{property:"article:published_time",content:o}),s.some((e=>e.url))&&a.createElement("meta",{property:"article:author",content:s.map((e=>e.url)).filter(Boolean).join(",")}),c.length>0&&a.createElement("meta",{property:"article:tag",content:c.map((e=>e.label)).join(",")}))}var v=n(39407);function p(e){let{sidebar:t,children:n}=e;const{metadata:l,toc:r}=(0,i.C)(),{nextItem:o,prevItem:m,frontMatter:d}=l,{hide_table_of_contents:u,toc_min_heading_level:f,toc_max_heading_level:p}=d;return a.createElement(c.Z,{sidebar:t,toc:!u&&r.length>0?a.createElement(v.Z,{toc:r,minHeadingLevel:f,maxHeadingLevel:p}):void 0},a.createElement(s.Z,null,n),(o||m)&&a.createElement(g,{nextItem:o,prevItem:m}))}function h(e){const t=e.content;return a.createElement(i.n,{content:e.content,isBlogPostPage:!0},a.createElement(r.FG,{className:(0,l.Z)(o.k.wrapper.blogPages,o.k.page.blogPostPage)},a.createElement(f,null),a.createElement(p,{sidebar:e.sidebar},a.createElement(t,null))))}},39407:(e,t,n)=>{n.d(t,{Z:()=>m});var a=n(87462),l=n(67294),r=n(86010),o=n(93743);const i={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},c="table-of-contents__link toc-highlight",s="table-of-contents__link--active";function m(e){let{className:t,...n}=e;return l.createElement("div",{className:(0,r.Z)(i.tableOfContents,"thin-scrollbar",t)},l.createElement(o.Z,(0,a.Z)({},n,{linkClassName:c,linkActiveClassName:s})))}},93743:(e,t,n)=>{n.d(t,{Z:()=>f});var a=n(87462),l=n(67294),r=n(86668);function o(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...l}=e;n>=0?t[n].children.push(l):a.push(l)})),a}function i(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=i({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function c(e){const t=e.getBoundingClientRect();return t.top===t.bottom?c(e.parentNode):t}function s(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>c(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(c(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function m(){const e=(0,l.useRef)(0),{navbar:{hideOnScroll:t}}=(0,r.L)();return(0,l.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,l.useRef)(void 0),n=m();(0,l.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:r,maxHeadingLevel:o}=e;function i(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),i=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let l=t;l<=n;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:o}),c=s(i,{anchorTopOffset:n.current}),m=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(l),e.classList.add(l),t.current=e):e.classList.remove(l)}(e,e===m)}))}return document.addEventListener("scroll",i),document.addEventListener("resize",i),i(),()=>{document.removeEventListener("scroll",i),document.removeEventListener("resize",i)}}),[e,n])}function u(e){let{toc:t,className:n,linkClassName:a,isChild:r}=e;return t.length?l.createElement("ul",{className:r?void 0:n},t.map((e=>l.createElement("li",{key:e.id},l.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),l.createElement(u,{isChild:!0,toc:e.children,className:n,linkClassName:a}))))):null}const g=l.memo(u);function f(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:c="table-of-contents__link",linkActiveClassName:s,minHeadingLevel:m,maxHeadingLevel:u,...f}=e;const v=(0,r.L)(),p=m??v.tableOfContents.minHeadingLevel,h=u??v.tableOfContents.maxHeadingLevel,b=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,l.useMemo)((()=>i({toc:o(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:p,maxHeadingLevel:h});return d((0,l.useMemo)((()=>{if(c&&s)return{linkClassName:c,linkActiveClassName:s,minHeadingLevel:p,maxHeadingLevel:h}}),[c,s,p,h])),l.createElement(g,(0,a.Z)({toc:b,className:n,linkClassName:c},f))}}}]); \ No newline at end of file diff --git a/assets/js/cce29330.537b60dc.js b/assets/js/cce29330.537b60dc.js new file mode 100644 index 0000000000..29e5ebee9a --- /dev/null +++ b/assets/js/cce29330.537b60dc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65225],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=i.createContext({}),s=function(e){var t=i.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=s(e.components);return i.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(r),c=n,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var s=2;s<a;s++)o[s]=r[s];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},90560:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-12-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-12-20-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-20-mithril.md",source:"@site/blog/2023-12-20-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-12-20T00:00:00.000Z",formattedDate:"December 20, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.17,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-12-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-12-22-sre"},nextItem:{title:"Hydra Team Update",permalink:"/2023-12-15-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team completed aggregator optimizations, enabling the certification of new data types without introducing a new era. They also facilitated the selection of these data types through a simple configuration parameter. Additionally, the team started implementing a mock aggregator to strengthen Mithril client tests in WASM, kept working on threat modeling and risk analysis for P2P networking, and progressed with the implementation of a testing Mithril network for SanchoNet."),(0,n.kt)("p",null,"Finally, they worked on some optimizations and refactoring of the Mithril client CLI and started upgrading the Cardano node topology used in the Mithril networks' infrastructure."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement ",(0,n.kt)("inlineCode",{parentName:"strong"},"open_message")," timeout in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1387"},"#1387")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement configurable signed entity types in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1388"},"#1388")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance machine readable logs in client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1234"},"#1234")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Manual publication to ",(0,n.kt)("inlineCode",{parentName:"strong"},"npm")," registry with GitHub action")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1411"},"#1411")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a test network on ",(0,n.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Implement a fake standalone aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1397"},"#1397")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Simplify Mithril client CLI download command")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1406"},"#1406")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Make all infra Cardano nodes use P2P topology")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1405"},"#1405")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Upgrade Cardano node to ",(0,n.kt)("inlineCode",{parentName:"strong"},"8.7.2"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1410"},"#1410")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cced6026.af2a889f.js b/assets/js/cced6026.af2a889f.js new file mode 100644 index 0000000000..1ac3ed5b69 --- /dev/null +++ b/assets/js/cced6026.af2a889f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48818],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=u(a),m=n,f=s["".concat(p,".").concat(m)]||s[m]||d[m]||i;return a?r.createElement(f,o(o({ref:t},c),{},{components:a})):r.createElement(f,o({ref:t},c))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<i;u++)o[u]=a[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},52869:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2022-10-07-node-cli-api",authors:"Jimbo4350",tags:["cli-api-quarterly"],hide_table_of_contents:!1},o=void 0,l={permalink:"/quarterly/2022-10-07-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2022-11-07-nod-api-cli.md",source:"@site/quarterly/2022-11-07-nod-api-cli.md",title:"Node API & CLI Team Update",description:"Node-Api-Cli Quarterly Update",date:"2022-11-07T00:00:00.000Z",formattedDate:"November 7, 2022",tags:[{label:"cli-api-quarterly",permalink:"/quarterly/tags/cli-api-quarterly"}],readingTime:1.355,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-10-07-node-cli-api",authors:"Jimbo4350",tags:["cli-api-quarterly"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/quarterly/2022-11-07-ledger"}},p={authorsImageUrls:[void 0]},u=[{value:"Node-Api-Cli Quarterly Update",id:"node-api-cli-quarterly-update",level:2},{value:"2022-09 - 2022-11-04",id:"2022-09---2022-11-04",level:2}],c={toc:u},s="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"node-api-cli-quarterly-update"},"Node-Api-Cli Quarterly Update"),(0,n.kt)("h2",{id:"2022-09---2022-11-04"},"2022-09 - 2022-11-04"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Various improvements to tests/CI/GHC 9.2.4 preparations/upgrade to cabal-3.8.1.0"),(0,n.kt)("li",{parentName:"ul"},"Major clean up of stale iusses + PRs."),(0,n.kt)("li",{parentName:"ul"},"Implementation of stale-bot to mitigate against a proliferation of outdated issues and PRs"),(0,n.kt)("li",{parentName:"ul"},"cardano-api refactoring with the aim of exposing more user friendly functions, particularly concerning transaction construction and querying the node."),(0,n.kt)("li",{parentName:"ul"},"cardano-cli refactoring with the aim of moving reusable functions to cardano-api. We have made strides here and have managed to improve the interface of transaction construction and validation."),(0,n.kt)("li",{parentName:"ul"},"General documentation updates and improvements"),(0,n.kt)("li",{parentName:"ul"},"Addition of tx-mempool command which allows users to:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Query the node about the current mempool's capacity and sizes"),(0,n.kt)("li",{parentName:"ul"},"Request the next transaction from the mempool's current list"),(0,n.kt)("li",{parentName:"ul"},"Query if a particular transaction exists in the mempool"))),(0,n.kt)("li",{parentName:"ul"},"Initial refactoring of cardano-testnet")),(0,n.kt)("p",null,"Next quarter"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-api",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Working with Konstantinos and his team to make cardano-api better for dapp developers - we have a google doc for this, I can send it to you privately."))),(0,n.kt)("li",{parentName:"ul"},"cardano-testnet",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Working with Marc Fontaine to create an easy to use executable to deploy testnets locally - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/issues/4598"},"https://github.com/input-output-hk/cardano-node/issues/4598")))),(0,n.kt)("li",{parentName:"ul"},"Serenity",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Continued refactoring of cardano-api and cardano-cli, with the particular focus on extracting re-usable components of cardano-cli and moving them to cardano-api. This is harder to define but will manifest in stuff moving from cardano-cli to cardano-api and is tied in to the cardano-api work specified above."))),(0,n.kt)("li",{parentName:"ul"},"General bug fixing and smaller feature requests for the api/cli that are always coming in. Robert is primarily handling this at the moment as he is relatively new.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ccf451f9.f6e89df9.js b/assets/js/ccf451f9.f6e89df9.js new file mode 100644 index 0000000000..6062b178dd --- /dev/null +++ b/assets/js/ccf451f9.f6e89df9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5237],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>c});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),m=n,c=h["".concat(s,".").concat(m)]||h[m]||d[m]||o;return r?a.createElement(c,i(i({ref:t},u),{},{components:r})):a.createElement(c,i({ref:t},u))}));function c(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,i[1]=l;for(var p=2;p<o;p++)i[p]=r[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},81451:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-10-20-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-10-20-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-20-hydra.md",source:"@site/blog/2023-10-20-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-10-20T00:00:00.000Z",formattedDate:"October 20, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.84,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-10-20-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-10-24-node-cli-api"},nextItem:{title:"Consensus Team Update",permalink:"/2023-10-18-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:p},h="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team mainly focused on preparing a masterclass and workshop for #CardanoSummit2023."),(0,n.kt)("p",null,"In addition, they improved the Hydra node API's submit-transaction endpoint to accept three different encoding types: Base16 encoded CBOR string, TextEnvelope type, and JSON.\nThis improvement offers users greater flexibility and ease of interaction with the API."),(0,n.kt)("p",null,"Finally, the team has followed up on the TUI brick upgrade to version 1.10.\nThis effort has resulted in addressing minor details and enhancing the overall user experience with the TUI."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Prepare presentation and workshop for Cardano Summit."),(0,n.kt)("li",{parentName:"ul"},"More TUI fixes and improvements.",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1127"},"#1127")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1120"},"#1120")))),(0,n.kt)("li",{parentName:"ul"},"Upgrade GHC from 9.2.8 -> 9.6.2 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1105"},"#1105")),(0,n.kt)("li",{parentName:"ul"},"Solved user issue related to submitting transactions in cbor format ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1111"},"#1111"),"."),(0,n.kt)("li",{parentName:"ul"},"Fix hydraw connection issue making it more stable ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1121"},"#1121"),".")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Work on hydra-poll dApp for Cardano summit."),(0,n.kt)("li",{parentName:"ul"},"Start the work on packaging hydra-node and related services.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ccfc9222.389c10e5.js b/assets/js/ccfc9222.389c10e5.js new file mode 100644 index 0000000000..72b2e3300a --- /dev/null +++ b/assets/js/ccfc9222.389c10e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[87233],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),c=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(a),m=r,h=d["".concat(p,".").concat(m)]||d[m]||s[m]||o;return a?n.createElement(h,i(i({ref:t},u),{},{components:a})):n.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var c=2;c<o;c++)i[c]=a[c];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},86986:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-03-22-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2023-03-22-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-22-node-cli-api.md",source:"@site/blog/2023-03-22-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-03-22T00:00:00.000Z",formattedDate:"March 22, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.645,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-03-22-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-03-22-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2023-03-22-performance-and-tracing"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],u={toc:c},d="wrapper";function s(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-03-22---2023-04-05"},"2023-03-22 - 2023-04-05"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Added new cardano-cli ping command which allows users to ping remote cardano-nodes."),(0,r.kt)("li",{parentName:"ul"},"The ",(0,r.kt)("inlineCode",{parentName:"li"},"transaction build")," command now can automatically balance multiassets"),(0,r.kt)("li",{parentName:"ul"},"New combinators for constructing transaction bodies. This allows us to construct transaction bodies in a composable manner.")),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5041"},"Remove unused error constructors")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4909"},"Fix qKesKesKeyExpiry to not always be null")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"New cardano-cli ping command.")," ")),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5040"},"Remove use of AcquireFailure type")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5038"},"Simplify implementation of executeQueryAnyMode")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5002"},"Script data serialisation")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4956"},"Guard against overflows in Shelley TxIns")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4941"},"Combinators for TxBodyContent and related types")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")," ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5011"},"Use Haskell variables for passing values.")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4879"},"Re-enable kes-period-info test."))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cd0ded60.ff3724c2.js b/assets/js/cd0ded60.ff3724c2.js new file mode 100644 index 0000000000..e359d9b7d8 --- /dev/null +++ b/assets/js/cd0ded60.ff3724c2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27668],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>c});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),h=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=h(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=h(r),d=n,c=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return r?a.createElement(c,i(i({ref:t},s),{},{components:r})):a.createElement(c,i({ref:t},s))}));function c(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,i[1]=l;for(var h=2;h<o;h++)i[h]=r[h];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},72238:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>h});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-06-30-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-06-30-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-30-hydra.md",source:"@site/blog/2023-06-30-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-06-30T00:00:00.000Z",formattedDate:"June 30, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.925,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-06-30-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-07-04-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2023-06-29-mithril"}},p={authorsImageUrls:[void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:h},m="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team wrote and published the monthly report for June,\nimplemented the end-to-end functionality for external commits, and tested it on\nthe preview environment. They also listed Hydra as a tool on the Cardano\ndeveloper portal, providing more visibility for the project. The team clarified\nthe path forward for L2 protocol improvements and explored an alternative CI\napproach using cabal instead of nix. Additionally, they released version 0.11.0,\nmarking another milestone in the project","\u2019","s development."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Written and published the monthly report for ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-06"},"June")),(0,n.kt)("li",{parentName:"ul"},"Implemented external commits end-to-end incl. tested it on preview ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215")),(0,n.kt)("li",{parentName:"ul"},"Listed Hydra as a tool on cardano ",(0,n.kt)("a",{parentName:"li",href:"https://developers.cardano.org/tools/"},"developer portal")),(0,n.kt)("li",{parentName:"ul"},"Cleared up path forward on L2 protocol improvements ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/728"},"#728")),(0,n.kt)("li",{parentName:"ul"},"Established an alternative CI using more cabal tools ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/923"},"#923")),(0,n.kt)("li",{parentName:"ul"},"Release version ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.10.0"},"0.11.0"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Spike on performance improvements of event sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/913"},"#913")),(0,n.kt)("li",{parentName:"ul"},"Complete ReqSn only sends transaction ids ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/728"},"#728")),(0,n.kt)("li",{parentName:"ul"},"Groom and plan last items for 0.12.0 (remove internal commit)"),(0,n.kt)("li",{parentName:"ul"},"Improve reliability of benchmarks")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cd5f993f.89556ee7.js b/assets/js/cd5f993f.89556ee7.js new file mode 100644 index 0000000000..67d1b01a02 --- /dev/null +++ b/assets/js/cd5f993f.89556ee7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16571],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){l(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,r,l=function(e,t){if(null==e)return{};var a,r,l={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(a),d=l,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||n;return a?r.createElement(h,i(i({ref:t},s),{},{components:a})):r.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,i=new Array(n);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var u=2;u<n;u++)i[u]=a[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},98678:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>n,metadata:()=>o,toc:()=>u});var r=a(87462),l=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2024-03-13-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-03-13-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-13-ledger.md",source:"@site/blog/2024-03-13-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-03-13T00:00:00.000Z",formattedDate:"March 13, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.165,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-03-13-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-03-15-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2024-03-13-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements",id:"improvements",level:3},{value:"Specification",id:"specification",level:3},{value:"Releasing",id:"releasing",level:3}],s={toc:u},c="wrapper";function m(e){let{components:t,...a}=e;return(0,l.kt)(c,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"Focus has been on testing: adding tests and improving our testing framework to make it easier to write tests for various Conway features.\nWe also did some cleanup and reorganisation of code, to make it more manageable and easier to release.\nWe have started work on Hardfork Initiation: support for intra-era hardfork initiation and necessary updates the SPO stake distribution calculation. "),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4140"},"pull-4140")," - Intra era hardfork initiation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4154"},"pull-4154")," - SPO stake distr calc for HardForkInitiation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4150"},"pull-4150")," - Add ",(0,l.kt)("inlineCode",{parentName:"li"},"ConwayUtxosPredFailure")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4162"},"pull-4162")," - Add ",(0,l.kt)("inlineCode",{parentName:"li"},"ConwayDRepIncorrectRefund")," and tests for ",(0,l.kt)("inlineCode",{parentName:"li"},"GovCert")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4112"},"pull-4112")," - Fail when conway features are present in transactions that use Plutus v1/v2"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4164"},"pull-4164")," - Change hot credential representation in ",(0,l.kt)("inlineCode",{parentName:"li"},"CommitteeState")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4178"},"pull-4178")," - Remove code repetition in Conway era CDDL")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4096"},"pull-4096")," - Add a collection of test Plutus scripts for use in ImpTests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4144"},"pull-4144")," - Add imptests for delaying actions enactment"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4104"},"pull-4104")," - Governance policy tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4123"},"pull-4123")," - Add the ability to do constraints over trees in ",(0,l.kt)("inlineCode",{parentName:"li"},"constrained-generators")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4163"},"pull-4163")," - Reorganise GovSpec, add GovCertSpec"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4152"},"pull-4152")," - Add extra type-safety to ensure that all predicate failures have roundtrip tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4172"},"pull-4172")," - Add imptests for some more GOV predicate failures"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4139"},"pull-4139")," - Add extra time from 1 sec to 2 sec for prop_soundness test."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4173"},"pull-4173")," - Update profiling instructions"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4177"},"pull-4177")," - Plutusv3 initialization tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4155"},"pull-4155")," - Fix nightly build failures")),(0,l.kt)("h3",{id:"improvements"},"Improvements"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4141"},"pull-4141")," - Add ",(0,l.kt)("inlineCode",{parentName:"li"},"boom")," placeholder"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4157"},"pull-4157")," - Split Conway governance"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4188"},"pull-4188")," - Simplify implementation of ToJSON1 of ListMap"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4129"},"pull-4129")," - Modify PParams to use similar naming to ProtocolParams in ",(0,l.kt)("inlineCode",{parentName:"li"},"cardano-api")," "),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4160"},"pull-4160")," - Make shelley ",(0,l.kt)("inlineCode",{parentName:"li"},"TxWits")," consistent with other eras"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4168"},"pull-4168")," - Add missing ",(0,l.kt)("inlineCode",{parentName:"li"},"InjectFailure")," instances for ",(0,l.kt)("inlineCode",{parentName:"li"},"ConwayUtxosPredFailure")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4086"},"pull-4086")," - Change applySTS to return NonEmpty (PredicateFailure s)"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4176"},"pull-4176")," - Add CARDANO_MAINNET_MIRROR to Nix shell"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4174"},"pull-4174")," - Convert ",(0,l.kt)("inlineCode",{parentName:"li"},"small-steps-test")," into a sublibrary"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4159"},"pull-4159")," - Shelley rules cleanup")),(0,l.kt)("h3",{id:"specification"},"Specification"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4042"},"pull-4042")," - Fix the prose being inconsistent with the figure"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4151"},"pull-4151")," - Fix an issue with txinfo and unusual notation in Babbage UTXO rule")),(0,l.kt)("h3",{id:"releasing"},"Releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4190"},"pull-4190")," - Bump plutus version to 1.23.00")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cd612773.525d109a.js b/assets/js/cd612773.525d109a.js new file mode 100644 index 0000000000..852e502af0 --- /dev/null +++ b/assets/js/cd612773.525d109a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67205],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function u(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),p=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),c=p(a),m=n,d=c["".concat(l,".").concat(m)]||c[m]||h[m]||o;return a?r.createElement(d,i(i({ref:t},s),{},{components:a})):r.createElement(d,i({ref:t},s))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=m;var u={};for(var l in t)hasOwnProperty.call(t,l)&&(u[l]=t[l]);u.originalType=e,u[c]="string"==typeof e?e:n,i[1]=u;for(var p=2;p<o;p++)i[p]=a[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},26169:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>u,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Crypto Team Update",slug:"2023-05-12-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},i=void 0,u={permalink:"/2023-05-12-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-12-crypto.md",source:"@site/blog/2023-05-12-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-05-12T00:00:00.000Z",formattedDate:"May 12, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.095,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-05-12-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-05-17-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-05-12-goedel"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"cardano-base",id:"cardano-base",level:3},{value:"Sidechains",id:"sidechains",level:3}],s={toc:p},c="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-base: Include final tests for BLS signature. Further adaptations for KES agent. "),(0,n.kt)("li",{parentName:"ul"},"Sidechains: Implement BLS and JubJub using upstream's macros to merge these curves in halo2curves.")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"RawBearer API in ouroboros-network-framework (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4395)"},"https://github.com/input-output-hk/ouroboros-network/pull/4395)"),"; this is needed for KES Agent. Review ongoing."),(0,n.kt)("li",{parentName:"ul"},"Facilitate BLS test vectors in Haskell test suite (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/408"},"https://github.com/input-output-hk/cardano-base/pull/408"),")"),(0,n.kt)("li",{parentName:"ul"},"Add the SignKeyWithKES type to cardano-base (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/389"},"https://github.com/input-output-hk/cardano-base/pull/389"),")"),(0,n.kt)("li",{parentName:"ul"},"Restructuring and simplifying the MLocking code in cardano-base (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/404"},"https://github.com/input-output-hk/cardano-base/pull/404"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/405"},"https://github.com/input-output-hk/cardano-base/pull/405"),"), getting rid of the purpose-built MonadMLock etc. typeclasses in the process"),(0,n.kt)("li",{parentName:"ul"},"Merging the DSIGN and DSIGNM APIs such that the same phantom type can be used to select both the pure and mlocked versions of the same DSIGN algorithm (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/411"},"https://github.com/input-output-hk/cardano-base/pull/411"),")"),(0,n.kt)("li",{parentName:"ul"},"Simplifying the KES API into a single KESAlgorithm typeclass, merging the KESSignAlgorithm class into it (this is possible due to the simplifications from #404). (Same PR as above: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/411"},"https://github.com/input-output-hk/cardano-base/pull/411"),")."),(0,n.kt)("li",{parentName:"ul"},"Update CIP-0381 with new plutus built-in functions, ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/506"},"#506"),". In particular hash_to_curve now takes as input a secon input for the Domain Separation Tag (DST), and we limit to have a maximu size of 255 bytes. ")),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Opened PR in halo2curves to include BLS12-381 and JubJub, ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/privacy-scaling-explorations/halo2curves/pull/38"},"#38")),(0,n.kt)("li",{parentName:"ul"},"Addition constraint over JubJub merged ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sidechains-zk/pull/10"},"#10"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cdcf18ac.992afb49.js b/assets/js/cdcf18ac.992afb49.js new file mode 100644 index 0000000000..0ea14e3b50 --- /dev/null +++ b/assets/js/cdcf18ac.992afb49.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[79424],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,s(s({ref:t},c),{},{components:n})):r.createElement(f,s({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u<o;u++)s[u]=n[u];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},266:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-05-01-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-05-01-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-01-consensus.md",source:"@site/blog/2024-05-01-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-05-01T00:00:00.000Z",formattedDate:"May 1, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.43,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-05-01-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-05-03-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-04-30-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Reworked the argument for the different databases used in Consensus, in preparation for UTxO-HD (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1059"},"#1059"),")."),(0,a.kt)("li",{parentName:"ul"},"Helped review the first Peras Innovation draft report."),(0,a.kt)("li",{parentName:"ul"},"Continued working on VRF restriction based on slot distance. The corresponding PR (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1047"},"#1047"),") went through its first round of reviews."),(0,a.kt)("li",{parentName:"ul"},"Provided support to the Networking team to review their work on querying big ledger peers (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1067"},"#1067"),")."),(0,a.kt)("li",{parentName:"ul"},"Continued working on open-sourcing ",(0,a.kt)("inlineCode",{parentName:"li"},"fs-api")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"fs-sim"),"."),(0,a.kt)("li",{parentName:"ul"},"Performed other minor refactorings in the codebase (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1073"},"#1073")," and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1070"},"#1070"),").")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cdecbf23.841b3ebd.js b/assets/js/cdecbf23.841b3ebd.js new file mode 100644 index 0000000000..2784ad0556 --- /dev/null +++ b/assets/js/cdecbf23.841b3ebd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[45749],{92738:a=>{a.exports=JSON.parse('{"label":"goedel","permalink":"/tags/goedel","allTagsPath":"/tags","count":23}')}}]); \ No newline at end of file diff --git a/assets/js/ce17d78b.76bdebc2.js b/assets/js/ce17d78b.76bdebc2.js new file mode 100644 index 0000000000..20c38af333 --- /dev/null +++ b/assets/js/ce17d78b.76bdebc2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[77533],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},9586:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"SRE Q2 2023 Update",slug:"2023-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2023-Q2-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q2-sre.md",source:"@site/quarterly/2023-Q2-sre.md",title:"SRE Q2 2023 Update",description:"2023-04 - 2023-06",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"sre",permalink:"/quarterly/tags/sre"}],readingTime:.68,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q2 2023 Update",slug:"2023-Q2-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Network Q2 2023 Update",permalink:"/quarterly/2023-Q2-network"},nextItem:{title:"Performance & Tracing Q3 2023 Update",permalink:"/quarterly/2023-Q3-performance-and-tracing"}},s={authorsImageUrls:[void 0]},c=[{value:"2023-04 - 2023-06",id:"2023-04---2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],p={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"2023-04---2023-06"},"2023-04 - 2023-06"),(0,a.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,a.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Expanding the darwin CI cluster and adding aarch64 builder support"),(0,a.kt)("li",{parentName:"ul"},"Adding bare metal capability to bitte clusters"),(0,a.kt)("li",{parentName:"ul"},"Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality"),(0,a.kt)("li",{parentName:"ul"},"Creation of pool performance analysis queries and scripting"),(0,a.kt)("li",{parentName:"ul"},"Migration of testnet metadata server to cardano-world"),(0,a.kt)("li",{parentName:"ul"},"Cardano shelley qa migration to cardano-world"),(0,a.kt)("li",{parentName:"ul"},"Cardano sanchonet environment spin up to test Conway era functionality"),(0,a.kt)("li",{parentName:"ul"},"Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature")),(0,a.kt)("h3",{id:"next-steps"},"Next steps"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Continue with the conversion of mainnet to using p2p topology")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ce230425.eff9c4d8.js b/assets/js/ce230425.eff9c4d8.js new file mode 100644 index 0000000000..9edc41d098 --- /dev/null +++ b/assets/js/ce230425.eff9c4d8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[59914],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),d=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=d(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=d(a),u=r,h=c["".concat(p,".").concat(u)]||c[u]||m[u]||o;return a?n.createElement(h,i(i({ref:t},s),{},{components:a})):n.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=u;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:r,i[1]=l;for(var d=2;d<o;d++)i[d]=a[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},49328:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var n=a(87462),r=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2024-05-24-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-05-24-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-24-sre.md",source:"@site/blog/2024-05-24-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-05-24T00:00:00.000Z",formattedDate:"May 24, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.53,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-05-24-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-05-24-performance-and-tracing"},nextItem:{title:"Ledger Team Update",permalink:"/2024-05-22-ledger"}},p={authorsImageUrls:[void 0]},d=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs:",id:"capkgs",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-ogmios",id:"cardano-ogmios",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3}],s={toc:d},c="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sanchonet was respun for cardano-node ",(0,r.kt)("inlineCode",{parentName:"p"},"8.11.0-pre"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Private chain was respun twice for pre-sancho respin testing and short epoch\ntesting with cardano-node ",(0,r.kt)("inlineCode",{parentName:"p"},"8.11.0-pre"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Shelley-qa, two-thirds of preview and one-third of preprod networks were\ndeployed to cardano-node ",(0,r.kt)("inlineCode",{parentName:"p"},"8.11.0-pre"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sanchonet, private chain and shelley-qa networks had dbsync ",(0,r.kt)("inlineCode",{parentName:"p"},"sancho-4-3-0"),"\ndeployed")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A dbsync ",(0,r.kt)("inlineCode",{parentName:"p"},"show_current_forging")," prepared statement was added to the\ncardano-parts ",(0,r.kt)("inlineCode",{parentName:"p"},"profile-cardano-postgres")," nixosModule to aid with debugging\nchain quality issues")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Three documents were added to cardano-playground to better explain some\noperations procedures: KES rotation, chain quality debugging and new network\ncreation. Found at:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-playground/tree/main/docs/explain"},"docs/explain"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A new mithril dashboard template is available in cardano-parts"))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"capkgs"},"Capkgs:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Avoid git API rate limit errors on update github action via netrc usage and\ncorresponding secret:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/commit/1f3bf0a49e79d71d593f7de80ed783e5e2cb7053"},"capkgs-commit"))),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Sets cardano-node-ng to ",(0,r.kt)("inlineCode",{parentName:"li"},"8.11.0-pre")," and cardano-db-sync-ng to ",(0,r.kt)("inlineCode",{parentName:"li"},"sancho-4-3-0"),".\nAdds a dbsync prepared statement, mithril dashboard template, updates the\nnode application dashboard template, improves justfile recipe templates and\ntunes some systemd dependencies. Iohk-nix-ng was updated for sanchonet and\nprivate chain respins. More detail is available in the PR description:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/41"},"cardano-parts-pull-41"))),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Rotates KES, pins iogp4 as ",(0,r.kt)("inlineCode",{parentName:"li"},"-ng"),", adds a mithril dashboard, updates the node\napplication dashboard, improves justfile recipes and tunes systemd node and\nmithril services to avoid some edge case errors. See the PR description for\nmore details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/15"},"cardano-mainnet-pull-15"))),(0,r.kt)("h3",{id:"cardano-ogmios"},"Cardano-ogmios"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Build ogmios ",(0,r.kt)("inlineCode",{parentName:"li"},"v6.3.0")," with nix:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ogmios/compare/main...ogmios-6-3-0"},"cardano-ogmios-branch-compare"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Respins sancho and private chains and deploys cardano-node ",(0,r.kt)("inlineCode",{parentName:"li"},"8.11.0-pre")," and\ncardano-db-sync ",(0,r.kt)("inlineCode",{parentName:"li"},"sancho-4-3-0")," to appropriate envs and machines. Adds a mithril\ndashboard template, updates the node application dashboard template, improves\njustfile recipe templates. Adds three new explainer readme documents. See the\nPR description for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/24"},"cardano-playground-pull-24"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ce266bdc.8177db59.js b/assets/js/ce266bdc.8177db59.js new file mode 100644 index 0000000000..e9572965d6 --- /dev/null +++ b/assets/js/ce266bdc.8177db59.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[47258],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>k});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},i=Object.keys(e);for(o=0;o<i.length;o++)r=i[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)r=i[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=o.createContext({}),l=function(e){var t=o.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=l(e.components);return o.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=l(r),h=n,k=c["".concat(p,".").concat(h)]||c[h]||m[h]||i;return r?o.createElement(k,a(a({ref:t},u),{},{components:r})):o.createElement(k,a({ref:t},u))}));function k(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,a=new Array(i);a[0]=h;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[c]="string"==typeof e?e:n,a[1]=s;for(var l=2;l<i;l++)a[l]=r[l];return o.createElement.apply(null,a)}return o.createElement.apply(null,r)}h.displayName="MDXCreateElement"},31770:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var o=r(87462),n=(r(67294),r(3905));const i={title:"Network Team Update",slug:"2024-07-08-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},a=void 0,s={permalink:"/2024-07-08-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-08-network.md",source:"@site/blog/2024-07-08-network.md",title:"Network Team Update",description:"High-level overview of sprint 65",date:"2024-07-08T00:00:00.000Z",formattedDate:"July 8, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.165,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-07-08-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-07-10-mithril"},nextItem:{title:"SRE Team Update",permalink:"/2024-07-05-sre"}},p={authorsImageUrls:[void 0]},l=[{value:"High-level overview of sprint 65",id:"high-level-overview-of-sprint-65",level:2},{value:"High-level overview of sprint 64",id:"high-level-overview-of-sprint-64",level:2}],u={toc:l},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-65"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?filterQuery=sprint%3A%22Sprint+65%22"},"sprint 65")),(0,n.kt)("p",null,"Karl Knutsson (",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") fixed a bug which prevented a node using bootstrap peers\nto sync using them, for a more detailed description see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4899"},"ouroboros-network#4899"),"."),(0,n.kt)("p",null,"Earlier this year we fixed bugs in ",(0,n.kt)("inlineCode",{parentName:"p"},"IOSimPOR")," which prevent us from using it in\n",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," (",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/153"},"io-sim#153"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/159"},"io-sim#159"),"); since\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4872"},"ouroboros-network#4872")," was merged we have a large number of tests that are\nusing ",(0,n.kt)("inlineCode",{parentName:"p"},"IOSimPOR"),"'s schedule exploration. In the last sprint we fixed\nsome bugs discovered by ",(0,n.kt)("inlineCode",{parentName:"p"},"IOSimPOR")," in ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Block Fetch Client assertion failure")," - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4890"},"ouroboros-network#4890"),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Connection manager's invalid transition")," - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4891"},"ouroboros-network#4891"),".")),(0,n.kt)("p",null,"We continued working on new ",(0,n.kt)("inlineCode",{parentName:"p"},"tx-submission")," logic: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network#3311")," as\nwell as on Genesis. The work on Genesis is split in a few PRs which are\ncurrently in review process:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Big Ledger Peer Targets for Genesis")," - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4832"},"ouroboros-network#4832")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Feed peer selection governor with big ledger peers obtained from a snapshot")," - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4890"},"ouroboros-network#4850")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Introduction of serialization instances in support of ledger peer snapshot")," - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4890"},"ouroboros-network#4851")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Verification of big ledger peer snapshot file")," - ","[ouroboros-network#4888]")),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-64"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?filterQuery=sprint%3A%22Sprint+64%22"},"sprint 64")),(0,n.kt)("p",null,"Karl Knutsson (",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") modified peer sharing behaviour to not share peers whith\nwhich connections failed, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4883"},"ouroboros-network#4883")," for more details."),(0,n.kt)("p",null,"We fixed inbound governor counters tracer, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4885"},"ouroboros-network#4885"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ce6dcc9e.6eb82dbe.js b/assets/js/ce6dcc9e.6eb82dbe.js new file mode 100644 index 0000000000..ec3bb371a1 --- /dev/null +++ b/assets/js/ce6dcc9e.6eb82dbe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[77644],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=c(n),h=a,m=d["".concat(p,".").concat(h)]||d[h]||u[h]||o;return n?r.createElement(m,i(i({ref:t},l),{},{components:n})):r.createElement(m,i({ref:t},l))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}h.displayName="MDXCreateElement"},56737:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB Sync Team Update",slug:"2022-09-19-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2022-09-19-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-19-db-sync.md",source:"@site/blog/2022-09-19-db-sync.md",title:"DB Sync Team Update",description:"DBSync Update",date:"2022-09-19T00:00:00.000Z",formattedDate:"September 19, 2022",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:1.525,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB Sync Team Update",slug:"2022-09-19-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-09-20-consensus"},nextItem:{title:"Ledger Team Update",permalink:"/2022-09-16-ledger"}},p={authorsImageUrls:[void 0]},c=[{value:"DBSync Update",id:"dbsync-update",level:2},{value:"New Tag",id:"new-tag",level:3},{value:"Open source",id:"open-source",level:3},{value:"Progress on tech debt and new features",id:"progress-on-tech-debt-and-new-features",level:3}],l={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"dbsync-update"},"DBSync Update"),(0,a.kt)("h3",{id:"new-tag"},"New Tag"),(0,a.kt)("p",null,"We created a new db-sync tag 13.0.5 which addresses shortcomings of the last\nrelease 13.0.4. It is currently under testing.\nThe Changelog is\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/blob/8ad98d48e0068f3768d48e18fdcbe254037cba3b/cardano-db-sync/CHANGELOG.md#1305"},"here")," and in more details:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We fixed fees for tx with phase 2 failure that didn't include a total collateral field.\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1248"},"1248"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We fixed an issue that could cause db-sync to crash if a specific rollback occured.\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1247"},"1247"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"DBSync will now avoid reserialising data, especially Datums, which not only slows down db-sync but\ncould result in the wrong CBOR encoding being inserted.\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1217"},"1217"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"All the fixes above come with unit tests which validates the fix.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Added support for preprod and preview from docker. DBSync no longer needs to include the configs\nfor different networks, these are directly fetched from the cardano world.\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1254"},"1254"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We added better support from docker for the new disable options and the overall documentation.\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1260"},"1260")))),(0,a.kt)("p",null,"All the above were also backported to the master branch"),(0,a.kt)("h3",{id:"open-source"},"Open source"),(0,a.kt)("p",null,"We made the db-sync ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/52/views/1"},"board public"),", so\neveryone can have access on the issues we prioritise.\nWe also added new tasks to the board, some of them could be approachable to newcomers or people who\nwant to contribute."),(0,a.kt)("h3",{id:"progress-on-tech-debt-and-new-features"},"Progress on tech debt and new features"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1223"},"1223")," was merged, which removes the\nforeign keys from the db schema. This opens the road to a number of optimizations.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"An additional fix on top of the previous work was added\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1250"},"1250"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"An initial version where DBSync does not rollback on restart is done here\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1266"},"1266"),".\nThis allows db-sync to restart much faster, without the need to delete data and reinsert them. In\nthe future it can also facilitate migrations in cases where the ledger snapshots have a breaking\nchange, without the need to resync everything from genesis."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ce7ed51f.ee7f4e8c.js b/assets/js/ce7ed51f.ee7f4e8c.js new file mode 100644 index 0000000000..9cab50d0b4 --- /dev/null +++ b/assets/js/ce7ed51f.ee7f4e8c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[30830],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=u(a),c=n,h=d["".concat(p,".").concat(c)]||d[c]||m[c]||o;return a?r.createElement(h,i(i({ref:t},s),{},{components:a})):r.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:n,i[1]=l;for(var u=2;u<o;u++)i[u]=a[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},71367:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-04-14-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-04-14-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-14-hydra.md",source:"@site/blog/2023-04-14-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-04-14T00:00:00.000Z",formattedDate:"April 14, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.98,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-04-14-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-04-14-goedel"},nextItem:{title:"Hydra Team Update",permalink:"/2023-04-07-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team focused on improving the smoke test, fixing developer\ntooling, and improving the API for voting use cases. They reviewed progress on\nauction, payments, and voting projects and made worked on reproducing a bug with\nhandling rollbacks. Moving forward, the team plans to update dependencies,\nimplement a dirt road fix for the rollbacks bug, and explore adding Hydra\nsupport to kupo."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Reviewed progress on auction, payments and voting projects"),(0,n.kt)("li",{parentName:"ul"},"Improved smoke tests so they can run on mainnet"),(0,n.kt)("li",{parentName:"ul"},"Fixed a regression in the development environment and updated cardano-node\nused in tests"),(0,n.kt)("li",{parentName:"ul"},"Improved API with more configurability to unblock voting use case",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Exclude utxo in ",(0,n.kt)("inlineCode",{parentName:"li"},"SnapshotConfirmed")," outputs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/808"},"#808")),(0,n.kt)("li",{parentName:"ul"},"Addressed a user request by only sending ",(0,n.kt)("inlineCode",{parentName:"li"},"Greetings")," once ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/813"},"#813")))),(0,n.kt)("li",{parentName:"ul"},"Reproduced the rollback bug by improving our model-based test suite ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update dependencies to match ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-node")," master"),(0,n.kt)("li",{parentName:"ul"},"Dirt road fix for rollbacks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Update Hydraw to maintain state locally"),(0,n.kt)("li",{parentName:"ul"},"Explore adding Hydra support to kupo"),(0,n.kt)("li",{parentName:"ul"},"Put disclaimer texts and closing mainnet compatibility feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/713"},"#713"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cebf097b.96313cb4.js b/assets/js/cebf097b.96313cb4.js new file mode 100644 index 0000000000..422807fd1a --- /dev/null +++ b/assets/js/cebf097b.96313cb4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[22772],{21785:e=>{e.exports=JSON.parse('{"permalink":"/tags/consensus","page":1,"postsPerPage":5,"totalPages":9,"totalCount":45,"nextPage":"/tags/consensus/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/cf1bc381.b5f44e75.js b/assets/js/cf1bc381.b5f44e75.js new file mode 100644 index 0000000000..fe8ff334c2 --- /dev/null +++ b/assets/js/cf1bc381.b5f44e75.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[84773],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>f});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),s=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},m=function(e){var n=s(e.components);return r.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},p=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=s(t),p=a,f=d["".concat(c,".").concat(p)]||d[p]||u[p]||i;return t?r.createElement(f,o(o({ref:n},m),{},{components:t})):r.createElement(f,o({ref:n},m))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=p;var l={};for(var c in n)hasOwnProperty.call(n,c)&&(l[c]=n[c]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var s=2;s<i;s++)o[s]=t[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,t)}p.displayName="MDXCreateElement"},77907:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=t(87462),a=(t(67294),t(3905));const i={title:"Performance & tracing update",slug:"2023-06-14-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-06-14-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-14-performance-and-tracing.md",source:"@site/blog/2023-06-14-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-06-14T00:00:00.000Z",formattedDate:"June 14, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.515,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-06-14-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-06-14-consensus"},nextItem:{title:"Network Team Update",permalink:"/2023-06-12-network"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:s},d="wrapper";function u(e){let{components:n,...t}=e;return(0,a.kt)(d,(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've continued release benchmarking and established a new baseline for ",(0,a.kt)("inlineCode",{parentName:"li"},"8.0.0"),"."),(0,a.kt)("li",{parentName:"ul"},"New tracing: Our benchmarking profile for measuring new vs. legacy tracing performance has been refined."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: The healthcheck system for the the nomad cloud has been completed. We've performed the first full runs on the new backend.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"In our release benchmarking cycle, we established a new performance baseline for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0.0"),". Additionally, we've measured\nperformance under various workloads for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.1.1-pre"),"; the results look promising and validate the optimization efforts\ndone on several system components. "),(0,a.kt)("p",null,"In the meantime, we've finalized a build plan with GHC9.2 that matches the current one with GHC8.10; a requirement for\nbenchmarking as a large amount of differences in the dependency graph can confound the results for the application code proper."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The legacy and the new tracing system differ fundamentally in design, implementation and handling. So for metrics to be\nmeaningful in a comparison, benchmarking profiles have to be tuned such that not only log line frequency but frequency of specific\ntrace messages are closely aligned. We've found that higher granularity in this regard was necessary, and done additional work on our dedicated profiles. "),(0,a.kt)("p",null,"Additionally, we've had a first glance of what additional traces could be valuable in the context of benchmarking UTxO-HD."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"As the new backend's healthcheck system in its first iteration can now serve as a guardrail to ensure sanity of a full-length run, we've performed our first 52-node cluster runs on nomad cloud. We're currently smoothing the edges around cluster deployment, and analysing the metrics gathered from those runs. "),(0,a.kt)("p",null,"This means the backend is entering validation phase, where we systematically compare all metrics taken from the new\ninfrastructure to the existing ones, including determining reproducibility and variance."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cf472160.a360a1f1.js b/assets/js/cf472160.a360a1f1.js new file mode 100644 index 0000000000..3fdde2d347 --- /dev/null +++ b/assets/js/cf472160.a360a1f1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[26287],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>g});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=p(r),d=n,g=c["".concat(u,".").concat(d)]||c[d]||m[d]||l;return r?a.createElement(g,i(i({ref:t},s),{},{components:r})):a.createElement(g,i({ref:t},s))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:n,i[1]=o;for(var p=2;p<l;p++)i[p]=r[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},21393:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-01-17-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-01-17-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-17-ledger.md",source:"@site/blog/2024-01-17-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-01-17T00:00:00.000Z",formattedDate:"January 17, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:.485,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-01-17-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-01-19-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2024-01-17-mithril"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Releasing",id:"releasing",level:3}],s={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Last week's achievement was that we finished PlutusV3 integration, which a massive piece of work."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3960"},"pull-3960")," - Plutus script purpose"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3987"},"pull-3987")," - PlutusV3 context")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3989"},"pull-3989")," - Fix too many discards."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3986"},"pull-3986")," - Remove libs/cardano-ledger-pretty"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3991"},"pull-3991")," - Imp native script support"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3993"},"pull-3993")," - Change Test.Cardano.Ledger.Generic.Proof so that there is no more Crypto Evidence.")),(0,n.kt)("h3",{id:"releasing"},"Releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3988"},"pull-3988")," - Bump jinja2 from 3.1.2 to 3.1.3 in /doc")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d0639dee.f778db61.js b/assets/js/d0639dee.f778db61.js new file mode 100644 index 0000000000..0c9ab64fb8 --- /dev/null +++ b/assets/js/d0639dee.f778db61.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52506],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),u=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,h=c["".concat(p,".").concat(m)]||c[m]||d[m]||o;return n?r.createElement(h,s(s({ref:t},l),{},{components:n})):r.createElement(h,s({ref:t},l))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:a,s[1]=i;for(var u=2;u<o;u++)s[u]=n[u];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},84505:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-11-29-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-11-29-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-29-consensus.md",source:"@site/blog/2023-11-29-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-11-29T00:00:00.000Z",formattedDate:"November 29, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.51,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-11-29-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-12-01-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-11-29-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],l={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The Consensus team implemented and tested a ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/525"},"patch")," that does not propagate future headers.\nIt is under review, and we expect it can be released in the next Cardano node version.\nOn the UTxO-HD front, we ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/510"},"finished")," prototyping the ",(0,a.kt)("inlineCode",{parentName:"p"},"LedgerDB")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"BackingStore")," redesign, which is required for the LSM-tree integration and might help us implement a more resource efficient in-memory backend.\nWith this prototype finished we can start integrating the rest of the code.\nWe ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/513"},"investigated")," the unexpected performance degradation observed when acquiring the block context.\nWe also ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.7.0-pre"},"released Cardano node 8.7.0")," and ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3893"},"moved")," ",(0,a.kt)("inlineCode",{parentName:"p"},"tree-diff")," outside ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-ledger")," libraries."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d077dadd.2acd0182.js b/assets/js/d077dadd.2acd0182.js new file mode 100644 index 0000000000..a845a20cb9 --- /dev/null +++ b/assets/js/d077dadd.2acd0182.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[88862],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),h=r,d=p["".concat(l,".").concat(h)]||p[h]||m[h]||o;return n?a.createElement(d,s(s({ref:t},u),{},{components:n})):a.createElement(d,s({ref:t},u))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=h;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var c=2;c<o;c++)s[c]=n[c];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}h.displayName="MDXCreateElement"},4491:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-06-28-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-06-28-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-28-consensus.md",source:"@site/blog/2023-06-28-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-06-28T00:00:00.000Z",formattedDate:"June 28, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.85,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-06-28-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-06-29-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-06-28-performance-and-tracing"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Genesis",id:"genesis",level:3},{value:"UTxO-HD",id:"utxo-hd",level:3}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"During the past two weeks the team working on the Genesis implementation continued to engage with the researchers, which resulted in various simplifications of the correctness argument for the historical Genesis window. They also decided on an approach for a syncing node to decide that it is (no longer) caught up. This functionality was requested by the networking team. "),(0,r.kt)("p",null,"The team working on the UTxO-HD implementation ran ad-hoc benchmarks that showed performance issues, which are being investigated. They also merged several improvements required for the first UTxO-HD release, and added a package for easing integration with other downstream components."),(0,r.kt)("p",null,"Regarding our support activities, we integrated the latest Ledger changes into Consensus in preparation for release 8.2 of node. "),(0,r.kt)("h3",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We continued to engage with the researchers on our probabilistic model for historical Genesis window, resulting in various simplifications that make the correctness argument more clear while not being excessively conservative.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/101#issuecomment-1607767722"},"decided on an approach")," of how to implement functionality requested by the Networking team; namely, how a syncing node can safely conclude that it is (no longer) caught up. Certain parameters are still subject to discussion with the researchers, and we have still have to agree on a concrete API for this functionality with the Networking team."))),(0,r.kt)("h3",{id:"utxo-hd"},"UTxO-HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We merged the last of the PRs that were part of UTxO-HD improvements for version ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/149"},"0.1"),": expose UTxO-HD configuration options in the node, refactor ledger tables, and expose a method of computing the UTxO set size."),(0,r.kt)("li",{parentName:"ul"},"We ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/87"},"added"),' a new "legacy" cardano block in a new ',(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus-cardano-legacy-block")," package that should ease the transition for some downstream packages to UTxO-HD, like ",(0,r.kt)("inlineCode",{parentName:"li"},"db-sync"),". This is really only useful for downstream packages that use the parts of consensus that don't involve the storage components, in which case we can largely ignore ledger tables. Ignoring ledger tables could also make functionality like block (re-)application more performant for the legacy Cardano block as compared to the actual (UTxO-HD compatible) Cardano block."),(0,r.kt)("li",{parentName:"ul"},"We performed ad-hoc benchmarks of the UTxO-HD implementation, observing a regression in sync speed in the LMDB implementation as well as a regression in memory usage on the in-memory implementation. We are investigating this.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d0e182b9.a92456af.js b/assets/js/d0e182b9.a92456af.js new file mode 100644 index 0000000000..95a51bef6d --- /dev/null +++ b/assets/js/d0e182b9.a92456af.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32627],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>c});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?a(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):a(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){if(null==e)return{};var i,r,n=function(e,t){if(null==e)return{};var i,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)i=a[r],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=u(i),d=n,c=m["".concat(p,".").concat(d)]||m[d]||h[d]||a;return i?r.createElement(c,o(o({ref:t},s),{},{components:i})):r.createElement(c,o({ref:t},s))}));function c(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,o=new Array(a);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<a;u++)o[u]=i[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,i)}d.displayName="MDXCreateElement"},81065:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var r=i(87462),n=(i(67294),i(3905));const a={title:"Mithril Team Update",slug:"2023-06-29-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-06-29-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-29-mithril.md",source:"@site/blog/2023-06-29-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-06-29T00:00:00.000Z",formattedDate:"June 29, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:2.205,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-06-29-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-06-30-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-06-28-consensus"}},p={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:u},m="wrapper";function h(e){let{components:t,...i}=e;return(0,n.kt)(m,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team completed the design of the signer deployment model for the SPOs to run Mithril on their Cardano ",(0,n.kt)("inlineCode",{parentName:"p"},"mainnet")," infrastructure, and implemented the associated Mithril Relay in the Mithril networks. They started working on the design and implementation of a stress test tool for benchmarking the aggregator performances. They worked on the refactoring of the Mithril Stake Distribution entity and the uniformization of the date types in the nodes. They also worked on implementing a new tool command in the aggregator and its first sub-command that helps avoiding re-genesis of the certificate chain when the structure of the certificate is updated. Additionally, they worked on implementing some monitoring for the Mithril infrastructure, and worked on a retry mechanism for the artifact creation of the aggregator."),(0,n.kt)("p",null,"Finally, they fixed some bugs, and they completed the upgrade of the Mithril networks to Cardano node v.8.1.1."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the epic that prepares the Mithril infrastructure for ",(0,n.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/767"},"#767"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add infrastructure monitoring")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/987"},"#987")))),(0,n.kt)("li",{parentName:"ul"},"Completed the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Prepare Mithril Signer deployment model for SPO")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/862"},"#862"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod'")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/961"},"#961")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Adapt infrastructure to use Mithril Relay")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1018"},"#1018")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Announce the new signer deployment model in a dev blog post")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1017"},"#1017")))),(0,n.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,n.kt)("inlineCode",{parentName:"li"},"Benchmark performances of Mithril Aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/904"},"#904"),":",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Design & implement basic stress test tool for aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/991"},"#991")))),(0,n.kt)("li",{parentName:"ul"},"Worked on bugs:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Aggregator does not exit on critical error")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/993"},"#993")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Computation of master certificate of an epoch is incorrect")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1006"},"#1006")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"End to end tests are flaky")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/954"},"#954")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"'testing-preview' network does not create certificates")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1015"},"#1015")))),(0,n.kt)("li",{parentName:"ul"},"Worked on optimizations:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Dates format is not standardized")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/946"},"#946")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add 'recompute-certificates-hash' command to aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1001"},"#1001")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Add a retry mechanism for artifact creation in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/984"},"#984")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Log node version at startup in Aggregator/Signer")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/944"},"#944")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Reactivate Publish Results job in CI")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/978"},"#978")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Clean 'pending_snapshot' directory of aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/983"},"#983")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Update OpenAPI spec examples")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1000"},"#1000")))),(0,n.kt)("li",{parentName:"ul"},"Worked on refactoring:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Refactor 'MithrilStakeDistribution' entity")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/967"},"#967")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Refactoring client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/982"},"#982")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Refactor download code in client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1010"},"#1010")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Factorize protocol crypto operations")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/669"},"#669")))),(0,n.kt)("li",{parentName:"ul"},"Worked on dependencies:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Upgrade Cardano node to '8.1.1'")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/973"},"#973"))))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d124c703.58e5c11d.js b/assets/js/d124c703.58e5c11d.js new file mode 100644 index 0000000000..d9e7e9dd96 --- /dev/null +++ b/assets/js/d124c703.58e5c11d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15152],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(r),h=a,d=u["".concat(l,".").concat(h)]||u[h]||m[h]||o;return r?n.createElement(d,i(i({ref:t},p),{},{components:r})):n.createElement(d,i({ref:t},p))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var c=2;c<o;c++)i[c]=r[c];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}h.displayName="MDXCreateElement"},54219:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Open-Source Team",slug:"2022-10-31-open-source",authors:"coot",tags:["open-source"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2022-10-31-open-source",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-04-open-source.md",source:"@site/blog/2022-11-04-open-source.md",title:"Open-Source Team",description:"High Level Summary",date:"2022-11-04T00:00:00.000Z",formattedDate:"November 4, 2022",tags:[{label:"open-source",permalink:"/tags/open-source"}],readingTime:1.465,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Open-Source Team",slug:"2022-10-31-open-source",authors:"coot",tags:["open-source"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2022-11-04-mithril"},nextItem:{title:"Embedding Quality Workstream",permalink:"/2022-11-03-embedding-quality"}},l={authorsImageUrls:[void 0]},c=[{value:"High Level Summary",id:"high-level-summary",level:2},{value:"Detailed description",id:"detailed-description",level:2}],p={toc:c},u="wrapper";function m(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High Level Summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We've been working toward publishing ",(0,a.kt)("em",{parentName:"li"},"Cardano Backlog"),", currently its in\nreview by the IOG communication team."),(0,a.kt)("li",{parentName:"ul"},"We identified a number of libraries which can be published."),(0,a.kt)("li",{parentName:"ul"},"We setup and enhanced ",(0,a.kt)("a",{parentName:"li",href:"https://updates.cardano.intersectmbo.org"},"cardano-updates"),".")),(0,a.kt)("h2",{id:"detailed-description"},"Detailed description"),(0,a.kt)("p",null,"I am glad to announce that I was given the role of open-source advocate for\ncardano project. In last few weeks we were making steps towards publishing our\nbacklog. It's currently under review by the communication team, although most\nof the issues are already visible across various repositories."),(0,a.kt)("p",null,"The open-source initiatives have their own\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/60"},"project"),". It is set up\nto help us track our major open-source activities. Right now there are two\nwork streams:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"the work on ",(0,a.kt)("a",{parentName:"li",href:"https://input-output-hk.github.io/cardano-engineering-handbook/"},(0,a.kt)("em",{parentName:"a"},"Cardano Engineering Handbook")),";"),(0,a.kt)("li",{parentName:"ul"},"libraries to be release on ",(0,a.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/"},"Hackage")," or ",(0,a.kt)("a",{parentName:"li",href:"https://crates.io"},"crates.io"),".")),(0,a.kt)("p",null,"We identifies a number of libraries across all the teams which contribute to\n",(0,a.kt)("em",{parentName:"p"},"Cardano")," which we would like publish to publish, see the following\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/60/views/3"},"link"),". Arnauld Bailly recently published\n",(0,a.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/quickcheck-dynamic"},(0,a.kt)("inlineCode",{parentName:"a"},"quickcheck-dynamic")),"\nlibrary on Hackage. The networking team is slowly progressing towards\npublishing ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim"},"io-sim")," and related packages, checkout the progress\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/19/views/24"},"here"),"."),(0,a.kt)("p",null,"Thanks to Arnaud Bailly our ",(0,a.kt)("a",{parentName:"p",href:"https://updates.cardano.intersectmbo.org"},"Cardano Updates")," website has\na new look & feel! It's using ",(0,a.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"docusaurus.io"),"."),(0,a.kt)("p",null,"Christian Taylor carried recently a detailed analysis of our open-source\nrepositories. He collected many interesting metrics, which allows us to see\nwhere we need to improve as an open-source project to make the Cardano project\nand many smaller related libraries which we maintain be more open and available\nfor open-source contributors."),(0,a.kt)("p",null,"The graph below shows which documents the 55 most important Cardano\nrepositories are missing the most:\n",(0,a.kt)("img",{alt:"Documentation Adoption",src:r(59380).Z,width:"1493",height:"716"}),"\nYou can expect we will improve in these metrics in the coming weeks."))}m.isMDXComponent=!0},59380:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/doc-adoption-cd944582f02809777c58be53e13453c5.png"}}]); \ No newline at end of file diff --git a/assets/js/d13afeb8.0e6d3504.js b/assets/js/d13afeb8.0e6d3504.js new file mode 100644 index 0000000000..49372887dc --- /dev/null +++ b/assets/js/d13afeb8.0e6d3504.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28672],{11584:e=>{e.exports=JSON.parse('{"permalink":"/tags/consensus/page/9","page":9,"postsPerPage":5,"totalPages":9,"totalCount":45,"previousPage":"/tags/consensus/page/8","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/d15a0787.8c89292e.js b/assets/js/d15a0787.8c89292e.js new file mode 100644 index 0000000000..82381f5283 --- /dev/null +++ b/assets/js/d15a0787.8c89292e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[89548],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),h=p(r),s=n,m=h["".concat(u,".").concat(s)]||h[s]||d[s]||i;return r?a.createElement(m,l(l({ref:t},c),{},{components:r})):a.createElement(m,l({ref:t},c))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,l=new Array(i);l[0]=s;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[h]="string"==typeof e?e:n,l[1]=o;for(var p=2;p<i;p++)l[p]=r[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}s.displayName="MDXCreateElement"},20257:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2023-09-29-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-09-29-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-29-hydra.md",source:"@site/blog/2023-09-29-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-09-29T00:00:00.000Z",formattedDate:"September 29, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.49,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-09-29-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-09-29-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-09-29-ledger"}},u={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team mainly focused on having a working new reliability\nnetwork layer; and specified its expected behavior in a new ADR."),(0,n.kt)("p",null,'They also revisited the security policy and vulnerability disclosure policy on\nhow to handle security vulnerability within Hydra, and in particular how to\nhandle so-called "Silent fixes".'),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated security policy and vulnerability disclosure policy ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1088"},"#1088")),(0,n.kt)("li",{parentName:"ul"},"Adr/network reliability ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1082"},"#1082"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Introduce reliability network layer ","[#1074]"," (",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1074"},"https://github.com/input-output-hk/hydra/pull/1074"),")"),(0,n.kt)("li",{parentName:"ul"},"Refactor the vCommit validator in Aiken ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1072"},"#1072"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d192a362.ee2a29cd.js b/assets/js/d192a362.ee2a29cd.js new file mode 100644 index 0000000000..5c1e35607a --- /dev/null +++ b/assets/js/d192a362.ee2a29cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28810],{42013:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"2023-12-performance-8.7.2","metadata":{"permalink":"/reports/2023-12-performance-8.7.2","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2023-12-performance-8.7.2.md","source":"@site/reports/2023-12-performance-8.7.2.md","title":"Benchmarking -- Node 8.7.2","description":"Setup","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"benchmarking-reports","permalink":"/reports/tags/benchmarking-reports"}],"readingTime":2.76,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Benchmarking -- Node 8.7.2","slug":"2023-12-performance-8.7.2","authors":"mgmeier","tags":["benchmarking-reports"],"hide_table_of_contents":false},"nextItem":{"title":"Benchmarking -- Node 8.9.0","permalink":"/reports/2024-03-performance-8.9.0"}},"content":"## Setup\\n\\nAs part of the release benchmarking cycle, we\'re comparing benchmarking runs for 3 different versions of `cardano-node`:\\n* `8.1.2` - the last mainnet release\\n* `8.7.0-pre` - as an intermediate reference point\\n* `8.7.2` - the next mainnet release\\n\\nFor each version, we\'re gathering various metrics under 2 different workloads:\\n1. _value-only_: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.\\n2. _Plutus_: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.\\n\\nBenchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\\nwere performed in the Babbage era.\\n\\n\\n## Observations\\n\\nThese benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they\'re not trying to directly recreate the operational conditions on Mainnet. \\n\\nThe observations stated refer to the direct comparison between the `8.1.2` and `8.7.2` versions.\\n\\n### Resource Usage\\n\\n1. Plutus workload, having a lower overall absolute CPU load, exhibits an average increase of 27% in Process CPU usage. Value workload, having a higher overall absolute CPU load, exhibits a near-jitter increase of 1%.\\n2. Allocation rates increase by ~8.9MB/s (value workload) and ~12.6MB/s (Plutus workload).\\n3. Heap sizes increase by 47% - 54%.\\n4. CPU 85% span duration shrinks by ~9.7 slots under value workload, and ~5.8 slots under Pluts workload.\\n\\nCaveat: Individual metrics can\'t be evaluated in isolate; the resource usage profile as a whole provides insight into the system\'s performance and responsiveness.\\n\\n\\n### Forging Loop\\n\\n1. Block Context Acquisition in the forging loop increases by ~10ms.\\n2. Mempool snapshotting shows an increase by 16ms under value workload; under Plutus workload, it increases by 3ms.\\n3. Ledger ticking improves slightly by 1-2ms.\\n\\nThe metric _\'Slot start to announced\'_ (see in attachements) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.\\n\\n### Peer propagation\\n\\n1. Block fetch time increases for full blocks by 9%. For small blocks, it improves by 7%.\\n2. Time to resend a block after fetching increases by 8% for full blocks, whereas it improves by 2% for small blocks.\\n3. Block adoption by a peer takes 12% more time for a full block, but happens faster by 4% for a small block.\\n\\n### End-to-end propagation\\n\\nThis metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.\\n\\nThe metric exhibits an increase by ~10% across all centiles for full blocks, whereas it improves by 5-6% for small blocks in the higher (80th and above) centiles.\\n\\n## Contact\\n\\nThis is the first time we\'re publishing, to a wider audience, such benchmarking results. We are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. \\n\\nWe are looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.\\n\\n## Attachments\\n\\nFull report for _value-only workload_, PDF downloadable [here](../static/pdf/benchmarking/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.value-only.pdf).\\n\\nFull report for _Plutus workload_, PDF downloadable [here](../static/pdf/benchmarking/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.plutus.pdf).\\n\\nThe relese benchmarks for `8.7.2` were performed on tag `8.7.1-pre`, which features identical `cardano-node` components."},{"id":"2024-03-performance-8.9.0","metadata":{"permalink":"/reports/2024-03-performance-8.9.0","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-03-performance-8.9.0.md","source":"@site/reports/2024-03-performance-8.9.0.md","title":"Benchmarking -- Node 8.9.0","description":"Setup","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"benchmarking-reports","permalink":"/reports/tags/benchmarking-reports"}],"readingTime":2.43,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Benchmarking -- Node 8.9.0","slug":"2024-03-performance-8.9.0","authors":"mgmeier","tags":["benchmarking-reports"],"hide_table_of_contents":false},"prevItem":{"title":"Benchmarking -- Node 8.7.2","permalink":"/reports/2023-12-performance-8.7.2"},"nextItem":{"title":"Benchmarking -- Node 8.9.1","permalink":"/reports/2024-03-performance-8.9.1"}},"content":"## Setup\\n\\nAs part of the release benchmarking cycle, we\'re comparing benchmarking runs for 3 different versions of `cardano-node`:\\n* `8.7.2` - baseline for previous mainnet release\\n* `8.8.0` - an intermediate reference point\\n* `8.9.0` - the next mainnet release\\n\\nFor each version, we\'re gathering various metrics under 2 different workloads:\\n1. _value-only_: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.\\n2. _Plutus_: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.\\n\\nBenchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\\nwere performed in the Babbage era.\\n\\n\\n## Observations\\n\\nThese benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they\'re not trying to directly recreate the operational conditions on Mainnet. \\n\\nThe observations stated refer to the direct comparison between the `8.7.2` and `8.9.0` versions.\\n\\n### Resource Usage\\n\\n1. Overall CPU usage exhibits a small to moderate (5% - 8%) increase.\\n2. Memory usage is very slightly decreased by 1%.\\n\\nCaveat: Individual metrics can\'t be evaluated in isolate; the resource usage profile as a whole provides insight into the system\'s performance and responsiveness.\\n\\n\\n### Forging Loop\\n\\n1. For full blocks, Mempool Snapshotting improves by 4% (or 3ms).\\n2. For small blocks, Self Adoption times improve by 8% (or 4ms).\\n3. All other forger metrics do not exhibit significant change.\\n\\nThe metric _\'Slot start to announced\'_ (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.\\n\\n### Peer propagation\\n\\n1. For full blocks, Block Fetch duration shows a notable improvement by 10ms (or 3%).\\n\\n### End-to-end propagation\\n\\nThis metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. \\n\\nEnd-to-end propagation times on `8.9.0` exhibit a small improvement by 2% across all centiles for full blocks, whereas they remain largely unchanged for small blocks.\\n\\n\\n### Conclusion\\n\\n* The performance changes observed between `8.9.0` and `8.7.2` are only minor - with `8.9.0` slightly improving on `8.7.2`. Therefore, we\'d expect `8.9.0` Mainnet performance to be akin to `8.7.2`.\\n* We have demonstrated no performance regression has been introduced in `8.9.0`.\\n\\n## Contact\\n\\nAs for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. \\n\\nWe are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.\\n\\n## Attachments\\n\\nFull report for _value-only workload_, PDF downloadable [here](../static/pdf/benchmarking/release-8.9.0.value-only.pdf).\\n\\nFull report for _Plutus workload_, PDF downloadable [here](../static/pdf/benchmarking/release-8.9.0.plutus.pdf).\\n\\nNB. Mainnet release `8.7.3` did not include any performance-related changes; measurements taken on `8.7.2` remain valid."},{"id":"2024-03-performance-8.9.1","metadata":{"permalink":"/reports/2024-03-performance-8.9.1","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-03-performance-8.9.1.md","source":"@site/reports/2024-03-performance-8.9.1.md","title":"Benchmarking -- Node 8.9.1","description":"Setup","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"benchmarking-reports","permalink":"/reports/tags/benchmarking-reports"}],"readingTime":2.285,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Benchmarking -- Node 8.9.1","slug":"2024-03-performance-8.9.1","authors":"mgmeier","tags":["benchmarking-reports"],"hide_table_of_contents":false},"prevItem":{"title":"Benchmarking -- Node 8.9.0","permalink":"/reports/2024-03-performance-8.9.0"},"nextItem":{"title":"Benchmarking -- Node 8.9.3","permalink":"/reports/2024-05-performance-8.9.3"}},"content":"## Setup\\n\\nAs part of the release benchmarking cycle, we\'re comparing benchmarking runs for 2 different versions of `cardano-node`:\\n* `8.9.0` - baseline for previous mainnet release\\n* `8.9.1` - the next mainnet release\\n\\nFor each version, we\'re gathering various metrics under 2 different workloads:\\n1. _value-only_: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.\\n2. _Plutus_: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.\\n\\nBenchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\\nwere performed in the Babbage era.\\n\\n\\n## Observations\\n\\nThese benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they\'re not trying to directly recreate the operational conditions on Mainnet. \\n\\n### Resource Usage\\n\\n1. We can observe an overall decrease in CPU usage (2% - 4%); only GC CPU usage under value workload increases by 3%.\\n2. Under value workload only, Allocation rate is very slightly decreased (1%) with no change to Heap Size.\\n\\nCaveat: Individual metrics can\'t be evaluated in isolate; the resource usage profile as a whole provides insight into the system\'s performance and responsiveness.\\n\\n\\n### Forging Loop\\n\\n1. Mempool Snapshot duration increases slightly by 2ms under value workload.\\n2. Self-Adoption time increases by 3ms.\\n3. All other forger metrics do not exhibit significant change.\\n\\nThe metric _\'Slot start to announced\'_ (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.\\n\\n### Peer propagation\\n\\n1. Under value workload only, Block Fetch duration and Fetched to Sending show a slight increase of 2ms each.\\n\\n### End-to-end propagation\\n\\nThis metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. \\n\\nEnd-to-end propagation times on `8.9.1` exhibit a small increase by 1% - 2% for full blocks, while remaining virtually unchanged for small blocks.\\n\\n\\n### Conclusion\\n\\n* The performance changes measured between `8.9.1` and `8.9.0` are very minor. Mainnnet performance of `8.9.1` is expected to be akin to `8.9.0`.\\n* We have not observed any performance regression being introduced in `8.9.1`.\\n\\n## Contact\\n\\nAs for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. \\n\\nWe are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.\\n\\n## Attachments\\n\\nFull report for _value-only workload_, PDF downloadable [here](../static/pdf/benchmarking/release-8.9.1.value-only.pdf).\\n\\nFull report for _Plutus workload_, PDF downloadable [here](../static/pdf/benchmarking/release-8.9.1.plutus.pdf)."},{"id":"2024-05-performance-8.9.3","metadata":{"permalink":"/reports/2024-05-performance-8.9.3","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-05-performance-8.9.3.md","source":"@site/reports/2024-05-performance-8.9.3.md","title":"Benchmarking -- Node 8.9.3","description":"Setup","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"benchmarking-reports","permalink":"/reports/tags/benchmarking-reports"}],"readingTime":2.69,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Benchmarking -- Node 8.9.3","slug":"2024-05-performance-8.9.3","authors":"mgmeier","tags":["benchmarking-reports"],"hide_table_of_contents":false},"prevItem":{"title":"Benchmarking -- Node 8.9.1","permalink":"/reports/2024-03-performance-8.9.1"},"nextItem":{"title":"Benchmarking -- Node 8.12.1","permalink":"/reports/2024-06-performance-8.12.1"}},"content":"## Setup\\n\\nAs part of the release benchmarking cycle, we\'re comparing benchmarking runs for 2 different versions of `cardano-node`:\\n* `8.9.1` - baseline from a previous mainnet release\\n* `8.9.3` - the current mainnet release\\n\\nFor each version, we\'re gathering various metrics under 2 different workloads:\\n1. _value-only_: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.\\n2. _Plutus_: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.\\n\\nBenchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\\nwere performed in the Babbage era.\\n\\n\\n## Observations\\n\\nThese benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they\'re not trying to directly recreate the operational conditions on Mainnet. \\n\\n### Resource Usage\\n\\n1. Under value workload, CPU usage increases slightly on `8.9.3`: 4% for Process, 3% for Mutator and 8% for GC.\\n2. Additionally, Allocation rate and minor GCs increase slightly by 3% each.\\n3. Under Plutus workload only, the GC live dataset increases by 10% or 318MB.\\n4. CPU 85% spans increase by 14% of slot duration under value workload, whereas they shorten by 5% of slot duration under Plutus workload.\\n\\nCaveat: Individual metrics can\'t be evaluated in isolate; the resource usage profile as a whole provides insight into the system\'s performance and responsiveness.\\n\\n### Forging Loop\\n\\n1. There are no significant changes to metrics related to block forging.\\n\\nThe metric _\'Slot start to announced\'_ (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.\\n\\n### Peer propagation\\n\\n1. Block Fetch duration improves by 7ms (or 2%) under value workload, and by 4ms (or 3%) under Plutus workload.\\n2. Under Plutus workload, Fetched to sending improves by 2ms (or 5%).\\n\\n### End-to-end propagation\\n\\nThis metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. \\n\\n1. Under value workload, cluster adoption times exhibit a minor improvement (1%) up to the 80th centile on `8.9.3`.\\n2. Under Plutus workload, we can observe a minor improvement overall (1% - 2%), whilst full adoption is unchanged.\\n\\n\\n### Conclusion\\n\\n* The performance changes measured between `8.9.3` and `8.9.1` are very minor, with `8.9.3` improving slightly over `8.9.1`.\\n* Mainnnet performance of `8.9.3` is expected to be akin to `8.9.1`.\\n* We have not observed any performance regression being introduced in `8.9.3`.\\n\\n## Contact\\n\\nAs for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. \\n\\nWe are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.\\n\\n## Attachments\\n\\nFull report for _value-only workload_, PDF downloadable [here](../static/pdf/benchmarking/release-8.9.3.value-only.pdf).\\n\\nFull report for _Plutus workload_, PDF downloadable [here](../static/pdf/benchmarking/release-8.9.3.plutus.pdf).\\n\\nNB. The baseline for `8.9.1` had to be re-established due to changes in the underlying network infrastructure. This means, absolute values may differ from the previous measurements taken from that version."},{"id":"2024-06-performance-8.12.1","metadata":{"permalink":"/reports/2024-06-performance-8.12.1","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-06-performance-8.12.1.md","source":"@site/reports/2024-06-performance-8.12.1.md","title":"Benchmarking -- Node 8.12.1","description":"Setup","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"benchmarking-reports","permalink":"/reports/tags/benchmarking-reports"}],"readingTime":2.84,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Benchmarking -- Node 8.12.1","slug":"2024-06-performance-8.12.1","authors":"mgmeier","tags":["benchmarking-reports"],"hide_table_of_contents":false},"prevItem":{"title":"Benchmarking -- Node 8.9.3","permalink":"/reports/2024-05-performance-8.9.3"},"nextItem":{"title":"Benchmarking -- Node 9.0.0","permalink":"/reports/2024-07-performance-9.0.0"}},"content":"## Setup\\n\\nAs part of the release benchmarking cycle, we\'re comparing benchmarking runs for 2 different versions of `cardano-node`:\\n* `8.9.3` - baseline from a previous mainnet release\\n* `8.12.1` - the current mainnet release\\n\\nFor each version, we\'re gathering various metrics under 2 different workloads:\\n1. _value-only_: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.\\n2. _Plutus_: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.\\n\\nBenchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\\nwere performed in the Babbage era.\\n\\n\\n## Observations\\n\\nThese benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they\'re not trying to directly recreate the operational conditions on Mainnet. \\n\\n### Resource Usage\\n\\n1. Under value workload, CPU usage is improved by 2% - 4%, and by 14% for GCs. Under Plutus workload, CPU usage improves only slightly by 1%.\\n2. Allocation Rate and Minor GCs improve by 5% and 6% - under Plutus workload, there\'s a slight improvement of 1%.\\n3. RAM usage is reduced by 3%; reduction under Plutus workload is even larger - namely 10%.\\n\\nCaveat: Individual metrics can\'t be evaluated in isolate; the resource usage profile as a whole provides insight into the system\'s performance and responsiveness.\\n\\n### Forging Loop\\n\\n1. Mempool snapshotting improves by 5ms or 7% (3ms or 4% under Plutus workload).\\n2. Adoption time on the block producer improves by 4ms or 6% - under value workload only.\\n\\nThe metric _\'Slot start to announced\'_ (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.\\n\\n### Peer propagation\\n\\n1. Block Fetch duration increases slightly by 6ms or 2% (2ms under Plutus workload).\\n2. Adoption times on the peers improve slightly by 2ms or 3% (1ms under Plutus workload)\\n\\n### End-to-end propagation\\n\\nThis metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. \\n\\n1. Under value workload / full blocks there are no significant changes to cluster adoption times.\\n2. Under Plutus workload / small blocks we can observe a (near-jitter) improvement of 0% - 2% in cluster adoption times.\\n\\n\\n### Conclusion\\n\\n* The performance changes measured between `8.12.1` and `8.9.3` are most distinct in the resource usage footprint - with `8.12.1` improving over `8.9.3`.\\n* On Mainnnet, `8.12.1` is expected to deliver equal or slightly better performance than `8.9.3` - as well as lowering the Node\'s resource usage somewhat in doing so.\\n* We have not observed any performance regression being introduced in `8.12.1`.\\n\\n## Contact\\n\\nAs for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. \\n\\nWe are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.\\n\\n## Attachments\\n\\nFull report for _value-only workload_, PDF downloadable [here](../static/pdf/benchmarking/release-8.12.1.value-only.pdf).\\n\\nFull report for _Plutus workload_, PDF downloadable [here](../static/pdf/benchmarking/release-8.12.1.plutus.pdf).\\n\\nNB. The release benchmarks for `8.12.1` were performed on tag `8.12.0-pre`. The patch version bump did not include changes relevant to performance; thus, measurements taken on `8.12.0-pre` remain valid."},{"id":"2024-07-performance-9.0.0","metadata":{"permalink":"/reports/2024-07-performance-9.0.0","editUrl":"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-07-performance-9.0.0.md","source":"@site/reports/2024-07-performance-9.0.0.md","title":"Benchmarking -- Node 9.0.0","description":"Setup","date":"2024-07-17T12:35:56.000Z","formattedDate":"July 17, 2024","tags":[{"label":"benchmarking-reports","permalink":"/reports/tags/benchmarking-reports"}],"readingTime":3.255,"hasTruncateMarker":false,"authors":[{"name":"Michael Karg","title":"Performance and Tracing Team Lead","url":"https://github.com/mgmeier","imageURL":"https://github.com/mgmeier.png","key":"mgmeier"}],"frontMatter":{"title":"Benchmarking -- Node 9.0.0","slug":"2024-07-performance-9.0.0","authors":"mgmeier","tags":["benchmarking-reports"],"hide_table_of_contents":false},"prevItem":{"title":"Benchmarking -- Node 8.12.1","permalink":"/reports/2024-06-performance-8.12.1"}},"content":"## Setup\\n\\nAs part of the release benchmarking cycle, we\'re comparing benchmarking runs for 2 different versions of `cardano-node`:\\n* `8.12.1` - baseline from a previous mainnet release\\n* `9.0.0` - the current mainnet release\\n\\nFor each version, we\'re gathering various metrics under 2 different workloads:\\n1. _value-only_: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.\\n2. _Plutus_: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.\\n\\nBenchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\\nwere performed in the Conway era.\\n\\n## Observations\\n\\nThese benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they\'re not trying to directly recreate the operational conditions on Mainnet. \\n\\n### Resource Usage\\n\\n1. Under value workload Process and Mutator CPU usage are slightly higher on `9.0` - 7% - 8% (4% each under Plutus workload). GC CPU is increased by 11%, but decreases under Putus workload by 3%.\\n2. Only under value workload, Allocation Rate and Minor GCs increase by 5% and the live GC dataset grows by 3%. Heap size is constant.\\n3. CPU 85% spans are 8% shorter (3% under Plutus workload).\\n\\nCaveat: Individual metrics can\'t be evaluated in isolate; the resource usage profile as a whole provides insight into the system\'s performance and responsiveness.\\n\\n### Forging Loop\\n\\n1. Mempool Snapshotting and Self Adoption time on the block producer increase very slightly under value workload - 2ms (or 3%) each.\\n2. Under Plutus workload, however, a decrease in Self Adoption time by 2ms (or 4%) is the only significant change in the forging loop.\\n\\nThe metric _\'Slot start to announced\'_ (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.\\n\\n### Peer propagation\\n\\n1. Block Fetch duration is 21ms faster (6%) - 7ms or 5% under Plutus workload.\\n2. Fetched to Sending increases slightly by 3ms (7%) - only under value workload.\\n3. Adoption times on the peers increase slightly by 4ms (5%) - under Plutus workload, however, they are 3ms (6%) faster.\\n\\n### End-to-end propagation\\n\\nThis metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. \\n\\n1. Under value workload / full blocks on `9.0`, we can observe a 4% - 5% improvement of cluster adoption times in the 80th centile and above.\\n2. Under Plutus workload / small blocks, the corresponding improvement is 5% - 6%.\\n3. The main contributing factor is the improvement in Block Fetch duration.\\n\\n\\n### Conclusion\\n\\n* Network performance clearly improves by ~%5 for 80% to full cluster adoption - independent of workload.\\n* RAM usage is unchanged on `9.0`. The slight rise in CPU usage is expected, given improved network performance, and does not pose cause for concern.\\n* We have not observed any performance regression being introduced in `9.0.0.`.\\n\\nNB. These benchmarks were performed in the Conway ledger era. As such, they do not cover the one-time performance cost of transitioning from Babbage and enabling the new features of the Conway ledger.\\n\\n## Contact\\n\\nAs for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. \\n\\nWe are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.\\n\\n## Attachments\\n\\nFull report for _value-only workload_, PDF downloadable [here](../static/pdf/benchmarking/release-9.0.0.value-only.pdf).\\n\\nFull report for _Plutus workload_, PDF downloadable [here](../static/pdf/benchmarking/release-9.0.0.plutus.pdf).\\n\\nNB. The release benchmarks for `8.12.1` were performed on tag `8.12.0-pre`. The patch version bump did not include changes relevant to performance; thus, measurements taken on `8.12.0-pre` remain valid."}]}')}}]); \ No newline at end of file diff --git a/assets/js/d19a344f.f8fddd09.js b/assets/js/d19a344f.f8fddd09.js new file mode 100644 index 0000000000..027058ed52 --- /dev/null +++ b/assets/js/d19a344f.f8fddd09.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20387],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,g=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(g,l(l({ref:t},m),{},{components:r})):n.createElement(g,l({ref:t},m))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},3568:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-04-14-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-04-14-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-14-goedel.md",source:"@site/blog/2023-04-14-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-04-14T00:00:00.000Z",formattedDate:"April 14, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.415,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-04-14-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Cardano Block Production Temporary Outage",permalink:"/2023-04-17-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2023-04-14-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the team has submitted two papers for publication, carried\nout consultancy with other teams and has an opening for an intern."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Finalised and submitted two papers to ICE 2023")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Studying Praos paper.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The team is hiring a performance engineering intern - ",(0,a.kt)("a",{parentName:"p",href:"https://apply.workable.com/io-global/j/BFEC5B0AFF/"},"https://apply.workable.com/io-global/j/BFEC5B0AFF/"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Design exploration for congestion management."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d1d77594.be720d25.js b/assets/js/d1d77594.be720d25.js new file mode 100644 index 0000000000..59b1ce1ffe --- /dev/null +++ b/assets/js/d1d77594.be720d25.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1105],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=u(a),h=r,m=c["".concat(s,".").concat(h)]||c[h]||p[h]||i;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var u=2;u<i;u++)o[u]=a[u];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},28018:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-02-23-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-02-23-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-23-hydra.md",source:"@site/blog/2024-02-23-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-02-23T00:00:00.000Z",formattedDate:"February 23, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.87,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-02-23-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-02-28-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2024-02-21-consensus"}},s={authorsImageUrls:[void 0]},u=[{value:"High-level Summary",id:"high-level-summary",level:3}],d={toc:u},c="wrapper";function p(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,r.kt)("p",null,"This week, the Hydra team successfully fixed the fanout after contest bug using their significantly improved model-based test suite. Additionally, they transitioned to cardano-api version 8.38 and started testing against cardano-node version 8.8. Furthermore, they enhanced fee estimation within the hydra-node internal wallet resulting in cheaper head opening / closing transactions and added transaction metadata to help identifying Hydra protocol transactions."),(0,r.kt)("h1",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Fixed the fanout after contest bug using our signifcantly improved model-based test suite ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1260"},"#1260")),(0,r.kt)("li",{parentName:"ul"},"Switched to cardano-api 8.38 and run tests against cardano-node 8.8 ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1297"},"#1297")),(0,r.kt)("li",{parentName:"ul"},"Improved fee estimation in ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra-node")," internal wallet ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1315"},"#1315")),(0,r.kt)("li",{parentName:"ul"},"Added transaction metadata to identify Hydra protocol transactions (on L1) ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1311"},"#1311"))),(0,r.kt)("h1",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Have the monthly review meeting + write a report"),(0,r.kt)("li",{parentName:"ul"},"Explorer targeting and showing data of the latest released ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra")," version"),(0,r.kt)("li",{parentName:"ul"},"Implement off-chain incremental commit protocol changes"),(0,r.kt)("li",{parentName:"ul"},"Review ",(0,r.kt)("inlineCode",{parentName:"li"},"EventSource")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"EventSink")," refactor done by SundaeLabs"),(0,r.kt)("li",{parentName:"ul"},"See smoke tests passing consistently on Sanchonet")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d21b93c1.afed2c4d.js b/assets/js/d21b93c1.afed2c4d.js new file mode 100644 index 0000000000..ddbc442f6f --- /dev/null +++ b/assets/js/d21b93c1.afed2c4d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94012],{90161:a=>{a.exports=JSON.parse('{"label":"goedel","permalink":"/tags/goedel","allTagsPath":"/tags","count":23}')}}]); \ No newline at end of file diff --git a/assets/js/d2463491.59193529.js b/assets/js/d2463491.59193529.js new file mode 100644 index 0000000000..38af7ecfd0 --- /dev/null +++ b/assets/js/d2463491.59193529.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75061],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),h=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=h(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=h(a),c=n,m=s["".concat(u,".").concat(c)]||s[c]||d[c]||o;return a?r.createElement(m,i(i({ref:t},p),{},{components:a})):r.createElement(m,i({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=c;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var h=2;h<o;h++)i[h]=a[h];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},315:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-02-02-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-02-02-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/hydra-2024-02-02.md",source:"@site/blog/hydra-2024-02-02.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-02-02T00:00:00.000Z",formattedDate:"February 2, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.925,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-02-02-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-02-02-sre"},nextItem:{title:"Ledger Team Update",permalink:"/2024-01-31-ledger"}},u={authorsImageUrls:[void 0]},h=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],p={toc:h},s="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This week, the Hydra team authored and published the monthly report for January 2024, enhanced user feedback for failed commands, updated cardano-api dependency and GHC to newer versions, re-opened their persistent head in preparation for the hard-fork, extended the model-based testing suite to cover the closing of heads, fixed a bug in io-sim, and contributed to cardano-node."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Wrote and published the ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2024-01"},"monthly report for January 2024")),(0,n.kt)("li",{parentName:"ul"},"Improved user feedback when a command failed ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1251"},"#1251")),(0,n.kt)("li",{parentName:"ul"},"Update cardano-api dependency and ghc to newer versions ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1269"},"#1269")," and ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1232"},"#1232")),(0,n.kt)("li",{parentName:"ul"},"Re-opened our persistent head using latest versions and ready for the hard-fork ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1256"},"#1256")),(0,n.kt)("li",{parentName:"ul"},"Extended model-based testing suite to cover closing of heads ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1276"},"#1276")),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug in ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/issues/133"},"io-sim#133")),(0,n.kt)("li",{parentName:"ul"},"Contributed a PR to ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5657"},"cardano-node#5657"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fix the fanout after contest bug ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1260"},"#1260")),(0,n.kt)("li",{parentName:"ul"},"Run Hydra smoke tests on sanchonet ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1257"},"#1257")),(0,n.kt)("li",{parentName:"ul"},"Specify the on-chain validators for incremental decommits ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1057"},"#1057")),(0,n.kt)("li",{parentName:"ul"},"Have the explorer hosted ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/696"},"#696")),(0,n.kt)("li",{parentName:"ul"},"Prepare PRs for dropped JSON instances from API ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1213"},"#1213"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d2ab2776.da37b7e4.js b/assets/js/d2ab2776.da37b7e4.js new file mode 100644 index 0000000000..3ef71e6444 --- /dev/null +++ b/assets/js/d2ab2776.da37b7e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16360],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),s=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=s(a),d=r,h=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return a?n.createElement(h,i(i({ref:t},c),{},{components:a})):n.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:r,i[1]=l;for(var s=2;s<o;s++)i[s]=a[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},40090:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=a(87462),r=(a(67294),a(3905));const o={title:"Goedel Team Update",slug:"2023-06-08-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-06-08-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-08-goedel.md",source:"@site/blog/2023-06-08-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-06-08T00:00:00.000Z",formattedDate:"June 8, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.605,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-06-08-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-06-08-db-sync"},nextItem:{title:"SRE Team Update",permalink:"/2023-06-08-sre"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],c={toc:s},m="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"This sprint the team has been working on giving and preparing public\ntalks, also on preparing final versions of their ICE 2023 papers, and\non analysing chain selection."),(0,r.kt)("p",null,"This sprint the team has been working on final revisions for the\npre-proceedings versions of two ICE 2023 papers."),(0,r.kt)("h2",{id:"details"},"Details"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Lambda Days keynote by Kevin Hammond:\n",(0,r.kt)("a",{parentName:"p",href:"https://www.lambdadays.org/lambdadays2023"},"https://www.lambdadays.org/lambdadays2023"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Codebeam keynote by Peter Van Roy: ",(0,r.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=h8sE3Ai8Dsk"},"https://www.youtube.com/watch?v=h8sE3Ai8Dsk"),"; ",(0,r.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=h8sE3Ai8Dsk"},"https://www.youtube.com/watch?v=h8sE3Ai8Dsk"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Preparing talks and final versions for two ICE 2023 contributions:\n",(0,r.kt)("a",{parentName:"p",href:"https://www.discotec.org/2023/ice"},"https://www.discotec.org/2023/ice"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Analysing chain selection.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The team is hiring a performance engineering intern - ",(0,r.kt)("a",{parentName:"p",href:"https://apply.workable.com/io-global/j/BFEC5B0AFF/"},"https://apply.workable.com/io-global/j/BFEC5B0AFF/")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d2aca35e.87165dd4.js b/assets/js/d2aca35e.87165dd4.js new file mode 100644 index 0000000000..81761e3ae9 --- /dev/null +++ b/assets/js/d2aca35e.87165dd4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[13412],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),h=p(a),d=n,m=h["".concat(u,".").concat(d)]||h[d]||c[d]||i;return a?r.createElement(m,l(l({ref:t},s),{},{components:a})):r.createElement(m,l({ref:t},s))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,l=new Array(i);l[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[h]="string"==typeof e?e:n,l[1]=o;for(var p=2;p<i;p++)l[p]=a[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},62337:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-10-06-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-10-06-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-06-hydra.md",source:"@site/blog/2023-10-06-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-10-06T00:00:00.000Z",formattedDate:"October 6, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.88,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-10-06-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-10-10-node-cli-api"},nextItem:{title:"Performance & tracing update",permalink:"/2023-10-06-performance-and-tracing"}},u={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:p},h="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team released version 0.13.0, which includes fixes and extensions for state persistency and the ability to draft a commit transaction using inline datums."),(0,n.kt)("p",null,"The team also delivered the first version of the network resilience layer, significantly increasing head availability."),(0,n.kt)("p",null,"Additionally, they have been providing support to several funded Catalyst projects that want to build on Hydra."),(0,n.kt)("p",null,"Last but not least, they updated and published security policy and vulnerability disclosure policy reports on how to handle security vulnerabilities within Hydra."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Release ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.13.0"},"0.13.0")),(0,n.kt)("li",{parentName:"ul"},"Published vulnerability reports ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1088"},"#1088")),(0,n.kt)("li",{parentName:"ul"},"Merged network resilience work part I ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1074"},"#1074")),(0,n.kt)("li",{parentName:"ul"},"Planning for Cardano Summit participation "),(0,n.kt)("li",{parentName:"ul"},"Discussions with funded Catalyst projects wanting to build on Hydra for support"),(0,n.kt)("li",{parentName:"ul"},"Merged typos fix PR from @omahs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1095"},"#1095"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete Aiken commit validator script ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1072"},"#1072")),(0,n.kt)("li",{parentName:"ul"},"Complete Kupo integration ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1078"},"#1078")),(0,n.kt)("li",{parentName:"ul"},"Brick upgrade on TUI ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1103"},"#1103")),(0,n.kt)("li",{parentName:"ul"},"Clean backlog"),(0,n.kt)("li",{parentName:"ul"},"Prepare and rehearse demo and talk for Cardano Summit")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d2ea5af2.85ee3304.js b/assets/js/d2ea5af2.85ee3304.js new file mode 100644 index 0000000000..00b4208a1e --- /dev/null +++ b/assets/js/d2ea5af2.85ee3304.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91984],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){l(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function u(e,t){if(null==e)return{};var a,r,l=function(e,t){if(null==e)return{};var a,r,l={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var i=r.createContext({}),p=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,i=e.parentName,d=u(e,["components","mdxType","originalType","parentName"]),m=p(a),s=l,h=m["".concat(i,".").concat(s)]||m[s]||c[s]||n;return a?r.createElement(h,o(o({ref:t},d),{},{components:a})):r.createElement(h,o({ref:t},d))}));function h(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,o=new Array(n);o[0]=s;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[m]="string"==typeof e?e:l,o[1]=u;for(var p=2;p<n;p++)o[p]=a[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}s.displayName="MDXCreateElement"},15042:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>c,frontMatter:()=>n,metadata:()=>u,toc:()=>p});var r=a(87462),l=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2023-04-21-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,u={permalink:"/2023-04-21-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-21-ledger.md",source:"@site/blog/2023-04-21-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-04-21T00:00:00.000Z",formattedDate:"April 21, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:.905,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-04-21-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-04-21-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-04-20-mithril"}},i={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway ledger era",id:"conway-ledger-era",level:3},{value:"Haddocks hosted on github pages",id:"haddocks-hosted-on-github-pages",level:3},{value:"Small improvements to the API",id:"small-improvements-to-the-api",level:3},{value:"Technical Debt",id:"technical-debt",level:3}],d={toc:p},m="wrapper";function c(e){let{components:t,...a}=e;return(0,l.kt)(m,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"We continued to make progress on CIP-1694 and the conway ledger era.\nIn particular, the conway era now supports Plutus V3.\nFinally, we made small improvements to the ledger API and now host\nour Haskell code documentation (haddocks) on github pages."),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway-ledger-era"},"Conway ledger era"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3365"},"pull-3365"),"] - Support for Plutus V3."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3368"},"pull-3368"),"] - Conway genesis fix."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3369"},"pull-3369"),"] - Added some governance ledger state."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3372"},"pull-3372"),"] - Work on the conway delegation certificates."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3384"},"pull-3384"),"] - Rename.")),(0,l.kt)("h3",{id:"haddocks-hosted-on-github-pages"},"Haddocks hosted on github pages"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3385"},"pull-3385"),"] ")),(0,l.kt)("h3",{id:"small-improvements-to-the-api"},"Small improvements to the API"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3366"},"pull-3366"),"]")),(0,l.kt)("h3",{id:"technical-debt"},"Technical Debt"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3367"},"pull-3367"),"] Fix cost model json instances."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3371"},"pull-3371"),"] UMap cleanup."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3373"},"pull-3373"),"] Upgrade to ghc 9.2.7 and cabal 3.10.1."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3375"},"pull-3375"),"] Sadly, we had to revert the ",(0,l.kt)("inlineCode",{parentName:"li"},"TICKF")," optimizations. There was a regression we do not yet understand."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3377"},"pull-3377"),"] Fix cabal warnings."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3383"},"pull-3383"),"] Fix multi-asset test.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d343e3e1.335e911c.js b/assets/js/d343e3e1.335e911c.js new file mode 100644 index 0000000000..fb879a687b --- /dev/null +++ b/assets/js/d343e3e1.335e911c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8033],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),h=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=h(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=h(a),d=n,m=s["".concat(p,".").concat(d)]||s[d]||c[d]||o;return a?r.createElement(m,i(i({ref:t},u),{},{components:a})):r.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var h=2;h<o;h++)i[h]=a[h];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},26796:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-09-15-hydra",authors:["v0d1ch","ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-09-15-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-15-hydra.md",source:"@site/blog/2023-09-15-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-09-15T00:00:00.000Z",formattedDate:"September 15, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.94,hasTruncateMarker:!1,authors:[{name:"Sasha Bogicevic",title:"Hydra Software Engineer",url:"https://github.com/v0d1ch",imageURL:"https://github.com/v0d1ch.png",key:"v0d1ch"},{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-09-15-hydra",authors:["v0d1ch","ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-09-15-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-09-15-ledger"}},p={authorsImageUrls:[void 0,void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:h},s="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, most of the Hydra team was attending a cardano scaling workshop in\nNantes, France. They used this oportunity to meet fellow mithril team and spend\nsome time together to hack on some code and, as always, reflect on the past work\nand find optimal path forward for both projects. They also fixed a bug that\ncaused hydra-node to crash when querying L1, worked on a new network resillience\nproof-of-concept and accepted a new ADR related to stateless transaction\nobservation."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano scaling workshop with members of hydra and mithril teams "),(0,n.kt)("li",{parentName:"ul"},"Accepted user contribution for possible new use-case ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1048"},"#1048")),(0,n.kt)("li",{parentName:"ul"},"Fix for the hydra-node crash related to internal wallet query ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1053"},"#1053")),(0,n.kt)("li",{parentName:"ul"},"Collected experimental CI findings ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1070"},"#1070")),(0,n.kt)("li",{parentName:"ul"},"Propose first POC for the network resilience ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1074"},"#1074"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting & report including updates from Mithril"),(0,n.kt)("li",{parentName:"ul"},"Review POC and discuss our options for the network resilience"),(0,n.kt)("li",{parentName:"ul"},"Update cardano-api to version 8.20"),(0,n.kt)("li",{parentName:"ul"},"Address TODOs on aiken commit validator ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1072"},"#1072")),(0,n.kt)("li",{parentName:"ul"},"Complete hydra-support in kupo ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/CardanoSolutions/kupo/pull/117"},"kupo#117"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d369886f.62d81c17.js b/assets/js/d369886f.62d81c17.js new file mode 100644 index 0000000000..e5b85622f7 --- /dev/null +++ b/assets/js/d369886f.62d81c17.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25854],{32296:e=>{e.exports=JSON.parse('{"permalink":"/page/62","page":62,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/61","nextPage":"/page/63","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/d369bf59.ead21723.js b/assets/js/d369bf59.ead21723.js new file mode 100644 index 0000000000..3f7beb7f87 --- /dev/null +++ b/assets/js/d369bf59.ead21723.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[55802],{14055:e=>{e.exports=JSON.parse('{"permalink":"/page/4","page":4,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/3","nextPage":"/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/d37f32a8.a09ab85d.js b/assets/js/d37f32a8.a09ab85d.js new file mode 100644 index 0000000000..21cf6f28c6 --- /dev/null +++ b/assets/js/d37f32a8.a09ab85d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[51389],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},9326:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-03-06-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-06-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-06-mithril.md",source:"@site/blog/2024-03-06-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-03-06T00:00:00.000Z",formattedDate:"March 6, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.24,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-03-06-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-03-06-consensus"},nextItem:{title:"Network Team Update",permalink:"/2024-03-04-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they worked on adapting the Mithril explorer to support Cardano transaction verification, started implementing a more efficient transaction signing scheme, stabilized the type names in the API, and kept investigating a bug that prevents the signature of some Conway era transactions. Additionally, they have completed the first version of the Prometheus monitoring endpoint for the signer."),(0,i.kt)("p",null,"Finally, the team fixed a bug occuring in the publication of the ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," packages of the client, enhanced the HTTP tests of the aggregator, and kept working on the KES period computation in the Pallas chain observer."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Expose Prometheus metrics for Mithril signer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1096"},"#1096")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Make HTTP server tests more robust")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1524"},"#1524")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Stabilize namings in ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," API")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1535"},"#1535")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Reorganize crates in the repository")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1528"},"#1528")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," in explorer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1497"},"#1497")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement a Block Range Merkle Tree for ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1533"},"#1533")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Output CLIs logs to ",(0,i.kt)("inlineCode",{parentName:"strong"},"stderr"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1515"},"#1515")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"npm")," publish fails on ",(0,i.kt)("inlineCode",{parentName:"strong"},"latest")," when ",(0,i.kt)("inlineCode",{parentName:"strong"},"next")," exists")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1531"},"#1531")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Cardano transactions are not all signed in ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1537"},"#1537")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d3a595c1.8b2407f7.js b/assets/js/d3a595c1.8b2407f7.js new file mode 100644 index 0000000000..2cc76e7105 --- /dev/null +++ b/assets/js/d3a595c1.8b2407f7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1537],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var u=n.createContext({}),p=function(e){var t=n.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,u=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=p(a),s=r,h=c["".concat(u,".").concat(s)]||c[s]||m[s]||o;return a?n.createElement(h,l(l({ref:t},d),{},{components:a})):n.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=s;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:r,l[1]=i;for(var p=2;p<o;p++)l[p]=a[p];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},698:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-10-19-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2022-10-19-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-19-node-cli-api.md",source:"@site/blog/2022-10-19-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2022-10-19T00:00:00.000Z",formattedDate:"October 19, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.57,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-10-19-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-10-21-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2022-10-18-consensus"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-submit-api",id:"cardano-submit-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3}],d={toc:p},c="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2022-10-19---2022-11-01"},"2022-10-19 - 2022-11-01"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"This sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node's mempool for the following information:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Ask the node about the current mempool's capacity and sizes"),(0,r.kt)("li",{parentName:"ul"},"Request the next transaction from the mempool's current list"),(0,r.kt)("li",{parentName:"ul"},"Query if a particular transaction exists in the mempool")),(0,r.kt)("p",null,"Outside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric ",(0,r.kt)("inlineCode",{parentName:"p"},"tx_submit_fail_count")," has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Documentation improvments"),(0,r.kt)("li",{parentName:"ul"},"Release 1.35.4 was merged & released"),(0,r.kt)("li",{parentName:"ul"},"Exported various types from cardano-api that were requested by community members")),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4508"},"Release 1.35.4"))),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4276"},"Add tx-mempool command to CLI")),(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4538"},"Fix query era mismatch bug in transaction build command")),(0,r.kt)("li",{parentName:"ul"},"[Serenity]"," - ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4516"},"Condense Read and Validation modules in cardano-cli"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4482"},"Return Lovelace for calculateMinimumUTxO")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4554"},"Export IsPlutusScriptLanguage from cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4546"},"Reduce exposed modules in cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4568"},"Add ToJSON and FromJSON instances for Address")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4565"},"Export TxIns type alias from Cardano.Api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4534"},"Export more generators from cardano-api"))),(0,r.kt)("h3",{id:"cardano-submit-api"},"cardano-submit-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4566"},"Add tx_submit_fail_count metric"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4549"},"Upgrade to cabal-3.8.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4613"},"Update building-the-node-using-nix.md"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"None")),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4250"},"Optimise query leadership schedule command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4179"},"Optimise query stake snapshot command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d3a63b1a.c7da7d17.js b/assets/js/d3a63b1a.c7da7d17.js new file mode 100644 index 0000000000..26751f4379 --- /dev/null +++ b/assets/js/d3a63b1a.c7da7d17.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[85085],{56577:e=>{e.exports=JSON.parse('{"permalink":"/tags/crypto","page":1,"postsPerPage":5,"totalPages":4,"totalCount":18,"nextPage":"/tags/crypto/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/d3ba1bbd.10dcdcc6.js b/assets/js/d3ba1bbd.10dcdcc6.js new file mode 100644 index 0000000000..718d091a34 --- /dev/null +++ b/assets/js/d3ba1bbd.10dcdcc6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[76476],{95256:s=>{s.exports=JSON.parse('{"label":"consensus","permalink":"/tags/consensus","allTagsPath":"/tags","count":45}')}}]); \ No newline at end of file diff --git a/assets/js/d3c2803b.69a481e2.js b/assets/js/d3c2803b.69a481e2.js new file mode 100644 index 0000000000..f018caf710 --- /dev/null +++ b/assets/js/d3c2803b.69a481e2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[14844],{83434:a=>{a.exports=JSON.parse('{"label":"sre","permalink":"/tags/sre","allTagsPath":"/tags","count":29}')}}]); \ No newline at end of file diff --git a/assets/js/d3f3f546.8109bcf7.js b/assets/js/d3f3f546.8109bcf7.js new file mode 100644 index 0000000000..ada6b17094 --- /dev/null +++ b/assets/js/d3f3f546.8109bcf7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[13764],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=s(r),h=n,d=c["".concat(u,".").concat(h)]||c[h]||m[h]||i;return r?a.createElement(d,l(l({ref:t},p),{},{components:r})):a.createElement(d,l({ref:t},p))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,l=new Array(i);l[0]=h;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:n,l[1]=o;for(var s=2;s<i;s++)l[s]=r[s];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},54994:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2022-11-25-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2022-11-25-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-25-crypto.md",source:"@site/blog/2022-11-25-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2022-11-25T00:00:00.000Z",formattedDate:"November 25, 2022",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.705,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2022-11-25-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2022-11-28-network"},nextItem:{title:"Hydra Team Update",permalink:"/2022-11-25-hydra"}},u={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"MuSig2",id:"musig2",level:3},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:2}],p={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The four open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team. "),(0,n.kt)("li",{parentName:"ul"},"Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes"),(0,n.kt)("li",{parentName:"ul"},"cardano-base: The VRF and BLS branchs are still open and in progress"),(0,n.kt)("li",{parentName:"ul"},"KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent. ")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"musig2"},"MuSig2"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We redesigned the library so that MuSig2 lib users don't need to be aware of the underlying secp256k1 library ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/31"},"PR#31")),(0,n.kt)("li",{parentName:"ul"},"We are introducing a more granular error handling mechanism ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/33"},"PR#33")),(0,n.kt)("li",{parentName:"ul"},"We rethought the API and made it more consistent with the underlying secp256k1 library ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/35"},"PR#35"))),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The mithril crates in general will be published in crates.io, and we adapted the core library's README ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/616"},"PR#616")," "),(0,n.kt)("li",{parentName:"ul"},"We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/620"},"PR#620"))),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We've been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/341"},"PR#341")),(0,n.kt)("li",{parentName:"ul"},"SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/344"},"PR#344")),(0,n.kt)("li",{parentName:"ul"},"Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/266"},"PR#266"))),(0,n.kt)("h2",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We keep progressing in the secure forgetting PR and resolving some bugs on memory handling ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/255"},"PR#255")),(0,n.kt)("li",{parentName:"ul"},"Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d5676bf9.8f8fde13.js b/assets/js/d5676bf9.8f8fde13.js new file mode 100644 index 0000000000..a8f75ea366 --- /dev/null +++ b/assets/js/d5676bf9.8f8fde13.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3270],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),h=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=h(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=h(a),c=n,d=p["".concat(s,".").concat(c)]||p[c]||m[c]||i;return a?r.createElement(d,o(o({ref:t},u),{},{components:a})):r.createElement(d,o({ref:t},u))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var h=2;h<i;h++)o[h]=a[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},82850:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-07-07-hydra",authors:["ffakenz","v0d1ch"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-07-07-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-07-hydra.md",source:"@site/blog/2023-07-07-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-07-07T00:00:00.000Z",formattedDate:"July 7, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.865,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"},{name:"Sasha Bogicevic",title:"Hydra Software Engineer",url:"https://github.com/v0d1ch",imageURL:"https://github.com/v0d1ch.png",key:"v0d1ch"}],frontMatter:{title:"Hydra Team Update",slug:"2023-07-07-hydra",authors:["ffakenz","v0d1ch"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-07-07-goedel"},nextItem:{title:"SRE Team Update",permalink:"/2023-07-07-sre"}},s={authorsImageUrls:[void 0,void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:h},p="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week the Hydra team accomplished some nice progress. They secured the\nnetwork layer further by implementing authentication of the messages between the\npeers in the Head protocol. In the process they also managed to separate\nHeartBeat messages from the protocol ones which somewhat improved the quality of\ncode in Hydra. The team also finished work related to sending only transaction\nids in ReqSn messages, fixed an issue in the smoke tests, and improved benchmark\npublishing on the website."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/727"},"Implemented")," authenticated messages"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/728"},"Implemented")," send only transaction ids in ReqSn messages"),(0,n.kt)("li",{parentName:"ul"},"Separate ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/969"},"HeartBeat")," messages from the core network protocol messages"),(0,n.kt)("li",{parentName:"ul"},"Publish multiple pre-defined ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/947"},"benchmarks")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/967"},"Fixed")," a smoke-test issue where funds would not be returned to the faucet"),(0,n.kt)("li",{parentName:"ul"},"Found a bug in the ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-ghsa-c8qp-cv4h-vcc4/pull/1"},"off-chain signature\nverification"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Spike on performance improvements of event sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/913"},"#913")),(0,n.kt)("li",{parentName:"ul"},"Add new endpoint for submitting client transactions"),(0,n.kt)("li",{parentName:"ul"},"Remove commit from internal wallet")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d5a278e5.5c8a5480.js b/assets/js/d5a278e5.5c8a5480.js new file mode 100644 index 0000000000..89faeff98e --- /dev/null +++ b/assets/js/d5a278e5.5c8a5480.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67666],{92833:e=>{e.exports=JSON.parse('{"permalink":"/page/67","page":67,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/66","nextPage":"/page/68","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/d5c6258a.2cf47d40.js b/assets/js/d5c6258a.2cf47d40.js new file mode 100644 index 0000000000..33090be398 --- /dev/null +++ b/assets/js/d5c6258a.2cf47d40.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[83261],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},l=Object.keys(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(a),m=r,h=u["".concat(c,".").concat(m)]||u[m]||d[m]||l;return a?n.createElement(h,o(o({ref:t},s),{},{components:a})):n.createElement(h,o({ref:t},s))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,o=new Array(l);o[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:r,o[1]=i;for(var p=2;p<l;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},52785:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-06-05-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",i={permalink:"/2024-06-05-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-05-node-cli-api.md",source:"@site/blog/2024-06-05-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-06-05T00:00:00.000Z",formattedDate:"June 5, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.245,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-06-05-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-06-05-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2024-05-29-consensus"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2024-05-13---2024-06-05"},"2024-05-13 - 2024-06-05"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"CARDANO NODE"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},'In order to avoid an accidental hardfork, when "ConwayGenesisFile" is not set in the node configuration file, by default the node can only understand protocol version 8 (Babbage era).')),(0,r.kt)("p",null,"CARDANO CLI "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"query protocol-parameters")," now shows Conway era protocol parameters when in Conway. "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"transaction view")," now shows proposales and votes inside a transaction body. "),(0,r.kt)("li",{parentName:"ul"},"Release of cardano-cli 8.23.1.0 "),(0,r.kt)("li",{parentName:"ul"},"We now publish pre-compiled binaries of each release together with the corresponding SHA256Sum. ")),(0,r.kt)("p",null,"CARDANO-API "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Release of 8.46.0.0")),(0,r.kt)("h2",{id:"details"},"Details"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/775"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"debug log-epoch-state")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/774"},"transaction view: show proposals and votes")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/768"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"--fee")," mandatory in ",(0,r.kt)("inlineCode",{parentName:"a"},"transaction build-raw"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/761"},"Release 8.23.1.0 (for node-8.11.0)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/758"},"query protocol-parameters: use ledger JSON encoding, not API one"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/535"},"Release ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.46.0.0")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Updated cardano-ledger, ouroboros-consensus and plutus packages."),(0,r.kt)("li",{parentName:"ul"},"Added FailT dependency."),(0,r.kt)("li",{parentName:"ul"},"Updated conwayGenesisDefaults and alonzoGenesisDefaults."),(0,r.kt)("li",{parentName:"ul"},"Changed CostModel to use Int64 instead of Integer."),(0,r.kt)("li",{parentName:"ul"},"Fixed ProtocolParameters golden test to account for the Integer -> Int64 change in the CostModel. (breaking, test) PR 523")))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5858"},'Enforce protocol version 8 if "ConwayGenesisFile" is not set in node configuration'))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5870"},'Add tallying of votes to the "Motion of no confidence" test')),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5863"},"Simplify epoch state diff logging")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5862"},"Fix GHC 9.8 build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5857"},"Use TestWatchdog from hedgehog-extras.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5854"},"Improve ",(0,r.kt)("inlineCode",{parentName:"a"},"NewEpochState")," logging")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5845"},"hlint: fix cardano-testnet-test")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5843"},"Use waiting for blocks instead epochs, when waiting for new UTXOs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5840"},"Refactor: Reorganize testnet CLI functions"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d5cc3122.1f17a19e.js b/assets/js/d5cc3122.1f17a19e.js new file mode 100644 index 0000000000..9f9e63ca3f --- /dev/null +++ b/assets/js/d5cc3122.1f17a19e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28669],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(n),m=a,h=p["".concat(s,".").concat(m)]||p[m]||d[m]||i;return n?r.createElement(h,o(o({ref:t},c),{},{components:n})):r.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var u=2;u<i;u++)o[u]=n[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3047:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const i={title:"DB-sync Team Update",slug:"2023-06-08-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-06-08-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-08-db-sync.md",source:"@site/blog/2023-06-08-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-06-08T00:00:00.000Z",formattedDate:"June 8, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.745,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-06-08-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-06-09-hydra"},nextItem:{title:"Goedel Team Update",permalink:"/2023-06-08-goedel"}},s={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],c={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We've made progress in all high level objectives"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"CIP-1694 integration design"),(0,a.kt)("li",{parentName:"ul"},"UTxO-HD integration proof of concept"),(0,a.kt)("li",{parentName:"ul"},"schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2"),(0,a.kt)("li",{parentName:"ul"},"A new hire will help us with devx issues.")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We have an initial design for the Conway integration in db-sync"),(0,a.kt)("li",{parentName:"ul"},"The initial UTxO-HD integration resulted in a requested feuture that\nthe consensus team is working on\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/88"},"#88"),"."),(0,a.kt)("li",{parentName:"ul"},"Added two optional migrations that speed up querying UTxO\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1416"},"#1416")),(0,a.kt)("li",{parentName:"ul"},"Work on improving the above feauture by adding tests and fixing tech debt\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1429"},"#1429"),(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1419"},"#1419")),(0,a.kt)("li",{parentName:"ul"},"Fixed issue with ada_pots being wrong\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/1ad4521a5601e8e98dc06bba2826d6b2f9b4fcf4"},"https://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/1ad4521a5601e8e98dc06bba2826d6b2f9b4fcf4")),(0,a.kt)("li",{parentName:"ul"},"Added a process which fixes in place scripts with wrong CBOR serialisation.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/8792f72e2485b320de26c02dacc4d504d377ba17"},"https://github.com/input-output-hk/cardano-db-sync/pull/1407/commits/8792f72e2485b320de26c02dacc4d504d377ba17")),(0,a.kt)("li",{parentName:"ul"},"Prepared a tag ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/releases"},(0,a.kt)("inlineCode",{parentName:"a"},"13.1.1.2")),"\nwhich is tested and ready to release. It contains many of the above.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d5f27176.a951e3f2.js b/assets/js/d5f27176.a951e3f2.js new file mode 100644 index 0000000000..689998ca3d --- /dev/null +++ b/assets/js/d5f27176.a951e3f2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95558],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>k});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function p(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?i(Object(a),!0).forEach((function(e){r(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function l(t,e){if(null==t)return{};var a,n,r=function(t,e){if(null==t)return{};var a,n,r={},i=Object.keys(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var o=n.createContext({}),u=function(t){var e=n.useContext(o),a=e;return t&&(a="function"==typeof t?t(e):p(p({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(o.Provider,{value:e},t.children)},m="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,o=t.parentName,c=l(t,["components","mdxType","originalType","parentName"]),m=u(a),h=r,k=m["".concat(o,".").concat(h)]||m[h]||d[h]||i;return a?n.createElement(k,p(p({ref:e},c),{},{components:a})):n.createElement(k,p({ref:e},c))}));function k(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,p=new Array(i);p[0]=h;var l={};for(var o in e)hasOwnProperty.call(e,o)&&(l[o]=e[o]);l.originalType=t,l[m]="string"==typeof t?t:r,p[1]=l;for(var u=2;u<i;u++)p[u]=a[u];return n.createElement.apply(null,p)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},45623:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>o,contentTitle:()=>p,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-10-10-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},p="Node-Api-Cli Update",l={permalink:"/2023-10-10-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-10-node-cli-api.md",source:"@site/blog/2023-10-10-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-10-10T00:00:00.000Z",formattedDate:"October 10, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.985,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-10-10-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-10-11-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-10-06-hydra"}},o={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},m="wrapper";function d(t){let{components:e,...a}=t;return(0,r.kt)(m,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-09-27---2023-10-10"},"2023-09-27 - 2023-10-10"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"CARDANO-NODE"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.5.0-pre"},"Pre-release of cardano-node 8.5.0-pre"))),(0,r.kt)("p",null,"CARDANO-CLI"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Depracated governance query commands and moved all governance related queries to ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-cli <era> query")),(0,r.kt)("li",{parentName:"ul"},"Drep registration certificates now allow to include an anchor"),(0,r.kt)("li",{parentName:"ul"},"Integrated Drep retirement ceriticates"),(0,r.kt)("li",{parentName:"ul"},"clean up of Drep registration certificates.")),(0,r.kt)("p",null,"CARDANO-API"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Add support for committee hot key witnesses"),(0,r.kt)("li",{parentName:"ul"},"Require conway onwards for voting"),(0,r.kt)("li",{parentName:"ul"},"Conway drep registration: expose ledger anchor parameter"),(0,r.kt)("li",{parentName:"ul"},"Add certs to txbody of Conway transactions")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/347"},"Move ",(0,r.kt)("inlineCode",{parentName:"a"},"governance query")," commands to ",(0,r.kt)("inlineCode",{parentName:"a"},"query")," command group")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/344"},"Rename create-new-committee into update-committee")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/341"},"New version cardano-cli-8.12.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/338"},"Add support for committee hot key witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/337"},"conway governance vote create: make it possible to use cc hot keys")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/331"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli-8.11.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/330"},"Drep certification registration: add parameters for anchor")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/329"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.25.0.1"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/327"},"Move files that are not golden files into ",(0,r.kt)("inlineCode",{parentName:"a"},"input")," directory")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/324"},"Update to cardano-api-8.24")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/323"},"Fix #311 - Add Cold Committee Key text envelope")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/322"},"create-poll, answer-poll, verify-poll: move to 'babbage governance' block")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/320"},"Update to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.23.1.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/319"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"transaction view")," emit JSON")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/318"},"Tidy up query command structure")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/317"},"Use ",(0,r.kt)("inlineCode",{parentName:"a"},"caseShelleyToBabbageOrConwayEraOnwards")," from ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/316"},"Add DRep Retirement Certificate command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/310"},"Update to cardano api 8.22.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/309"},"drep registration-certificate: remove mix with SPO registration"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/307"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"EraCast")," instance for ",(0,r.kt)("inlineCode",{parentName:"a"},"Certificate"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/306"},"Add certs to txbody of Conway transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/305"},"Move DRep reg certificate anchor types from cardano-cli to cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/304"},"Add BabbageEraOnly")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/303"},"New version cardano-api-8.25.2.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/300"},"Add support for committee hot key witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/299"},"Reduce constraint usage with eons")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/297"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"withShelleyBasedEraConstraintsForLedger"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/296"},"Simplify ",(0,r.kt)("inlineCode",{parentName:"a"},"DebugLedgerState")," with eons")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/294"},"New version cardano-api-8.25.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/293"},"Require conway onwards for voting")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/292"},"Add witness committee cold key")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/291"},"Fix CHaP failure due to haddock issue")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/290"},"Amend cardano-api/pull/284 to use ReexposeLedger")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/289"},"Rename ",(0,r.kt)("inlineCode",{parentName:"a"},"AnyEraInEon")," to ",(0,r.kt)("inlineCode",{parentName:"a"},"EraInEon"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/288"},"Release 8.24.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/287"},"Parameterize ",(0,r.kt)("inlineCode",{parentName:"a"},"AnyEraInEon"),". Add ",(0,r.kt)("inlineCode",{parentName:"a"},"AnyEon"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/286"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.23.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/284"},"conway drep registration: expose ledger anchor parameter")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/282"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"caseAlonzoOnlyOrBabbageEraOnwards")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"alonzoEraOnlyToAlonzoEraOnwards")," functions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/281"},"Rename eon functions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/280"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"AnyEraInEon"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/279"},"Replace ",(0,r.kt)("inlineCode",{parentName:"a"},"ValidityLowerBoundSupportedInEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/278"},"Replace ",(0,r.kt)("inlineCode",{parentName:"a"},"TxExtraKeyWitnessesSupportedInEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/277"},"Explicit pattern match on all ledger certificates constructors. Remove redundant module")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/276"},"Release 8.22.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/275"},"Replace ",(0,r.kt)("inlineCode",{parentName:"a"},"TxTotalAndReturnCollateralSupportedInEra")))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5490"},"Integrate upstream libraries for 8.5"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5497"},"bump cardano-api to 8.25.2")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5491"},"Remove unused code in cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5490"},"Integrate upstream libraries for 8.5"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d632b502.ceca0621.js b/assets/js/d632b502.ceca0621.js new file mode 100644 index 0000000000..bdbe0d60f1 --- /dev/null +++ b/assets/js/d632b502.ceca0621.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17847],{33756:e=>{e.exports=JSON.parse('{"permalink":"/quarterly/tags/network","page":1,"postsPerPage":10,"totalPages":1,"totalCount":4,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/d65b9dd2.f4df3b6d.js b/assets/js/d65b9dd2.f4df3b6d.js new file mode 100644 index 0000000000..826001db96 --- /dev/null +++ b/assets/js/d65b9dd2.f4df3b6d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93108],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>k});var r=o(67294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?a(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):a(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function s(e,t){if(null==e)return{};var o,r,n=function(e,t){if(null==e)return{};var o,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)o=a[r],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)o=a[r],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=r.createContext({}),p=function(e){var t=r.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(o),h=n,k=c["".concat(l,".").concat(h)]||c[h]||m[h]||a;return o?r.createElement(k,i(i({ref:t},u),{},{components:o})):r.createElement(k,i({ref:t},u))}));function k(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,i=new Array(a);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var p=2;p<a;p++)i[p]=o[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,o)}h.displayName="MDXCreateElement"},59513:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=o(87462),n=(o(67294),o(3905));const a={title:"Network Team Update",slug:"2023-10-27-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-10-27-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-27-network.md",source:"@site/blog/2023-10-27-network.md",title:"Network Team Update",description:"High-level overview of sprint 47",date:"2023-10-27T00:00:00.000Z",formattedDate:"October 27, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.765,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-10-27-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-10-27-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-10-27-sre"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 47",id:"high-level-overview-of-sprint-47",level:2},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"CI / Tests",id:"ci--tests",level:3},{value:"KeepAlive client",id:"keepalive-client",level:3},{value:"Galois",id:"galois",level:3},{value:"Cardano Network Service Assurance (CNSA)",id:"cardano-network-service-assurance-cnsa",level:3},{value:"New CHaP Release",id:"new-chap-release",level:3},{value:"More details",id:"more-details",level:2},{value:"CI / Tests",id:"ci--tests-1",level:3},{value:"Release Process",id:"release-process",level:3}],u={toc:p},c="wrapper";function m(e){let{components:t,...o}=e;return(0,n.kt)(c,(0,r.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-47"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+47%22"},"sprint 47")),(0,n.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,n.kt)("p",null,"We continued to review the process of bootstrap peers, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4555"},"ouroboros-network#4555")),(0,n.kt)("h3",{id:"ci--tests"},"CI / Tests"),(0,n.kt)("p",null,"We investigated our CI issues. We found a memory leak in ",(0,n.kt)("inlineCode",{parentName:"p"},"typed-protocols"),"\nfunction used for testing codecs which triggered out of memory manager (OOM) on\nsome platforms (",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/typed-protocols/pull/43"},"typed-protocols#43"),"); we also found a bug in the connection manager which resulted in CI\n",(0,n.kt)("inlineCode",{parentName:"p"},"timeouts")," (see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4696/commits/010d9b2bd76356373d8c139eaedd8aea7ad90680"},"connection-manager-fix"),"). "),(0,n.kt)("h3",{id:"keepalive-client"},"KeepAlive client"),(0,n.kt)("p",null,"We found two small issues with the keep-alive client, which were addressed\nby Karl Knutsson (",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/"},"Cardano Foundation"),"), ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4689"},"ouroboros-network#4689"),"."),(0,n.kt)("h3",{id:"galois"},"Galois"),(0,n.kt)("p",null,"We merged two large PRs prepared by ",(0,n.kt)("a",{parentName:"p",href:"https://galois.com/"},"Galois"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4660"},"inspect ",(0,n.kt)("inlineCode",{parentName:"a"},"error")," call sites")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4663"},"implement micro benchmarks for ",(0,n.kt)("inlineCode",{parentName:"a"},"PeerMetrics")))),(0,n.kt)("h3",{id:"cardano-network-service-assurance-cnsa"},"Cardano Network Service Assurance (CNSA)"),(0,n.kt)("p",null,"Galois made the following progress on CNSA:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"a simple ","[InfuxDB]"," database backend has been added;"),(0,n.kt)("li",{parentName:"ul"},"the documentation has been updated;"),(0,n.kt)("li",{parentName:"ul"},"internal improvements to the code;"),(0,n.kt)("li",{parentName:"ul"},'progress on a new "CSNA analysis" that provides, for each sampler node, the\nblock download throughput in bytes over time.')),(0,n.kt)("h3",{id:"new-chap-release"},"New CHaP Release"),(0,n.kt)("p",null,"We cut a new release of ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-netowrk")," packages to ",(0,n.kt)("inlineCode",{parentName:"p"},"CHaP"),": ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages/pull/547"},"chap#547")),(0,n.kt)("h2",{id:"more-details"},"More details"),(0,n.kt)("h3",{id:"ci--tests-1"},"CI / Tests"),(0,n.kt)("p",null,"We improved the memory footprint of some of our tests by analysing a stream of\n",(0,n.kt)("inlineCode",{parentName:"p"},"IOSim")," traces without retaining them, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4696"},"ouroboros-network#4696")),(0,n.kt)("p",null,"As a safety measure, we introduced an upper bound for heap memory used by test\nartefacts in our ",(0,n.kt)("inlineCode",{parentName:"p"},"nix")," tests. We use ",(0,n.kt)("inlineCode",{parentName:"p"},"200MB")," limit for all tests except for\n",(0,n.kt)("inlineCode",{parentName:"p"},"network-mux")," tests which use ",(0,n.kt)("inlineCode",{parentName:"p"},"350MB")," limit, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4702"},"ouroboros-network#4702"),"."),(0,n.kt)("p",null,"We refactored one of our tests to use ephemeral ports thus allowing it to\nrun concurrently, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4702"},"ouroboros-network#4702"),"."),(0,n.kt)("p",null,"We merged ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4623"},"ouroboros-network#4623")," which fixes a bunch of test failures."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4694"},"inbound-governor: connection leak")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4607"},"connection-manager: assertion failure")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4605"},"not released connection"))),(0,n.kt)("p",null,"All of them were due to a bug in test logic rather than a bug in production\ncode."),(0,n.kt)("h3",{id:"release-process"},"Release Process"),(0,n.kt)("p",null,"We updated our release process & associated scripts, see\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4705"},"ouroboros-network#4705"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d6a3b4a5.af6ce8b7.js b/assets/js/d6a3b4a5.af6ce8b7.js new file mode 100644 index 0000000000..d85b1dd962 --- /dev/null +++ b/assets/js/d6a3b4a5.af6ce8b7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[30482],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var p=o.createContext({}),u=function(e){var t=o.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=u(e.components);return o.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(n),m=r,h=s["".concat(p,".").concat(m)]||s[m]||d[m]||a;return n?o.createElement(h,l(l({ref:t},c),{},{components:n})):o.createElement(h,l({ref:t},c))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,l=new Array(a);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<a;u++)l[u]=n[u];return o.createElement.apply(null,l)}return o.createElement.apply(null,n)}m.displayName="MDXCreateElement"},19301:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var o=n(87462),r=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-07-31-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-07-31-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-31-network.md",source:"@site/blog/2023-07-31-network.md",title:"Network Team Update",description:"Network Update (Sprints 39 & 40)",date:"2023-07-31T00:00:00.000Z",formattedDate:"July 31, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.18,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-07-31-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-08-01-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2023-07-28-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"Network Update (Sprints 39 & 40)",id:"network-update-sprints-39--40",level:2},{value:"Sprint 39 (Jun 26 - Jul 09)",id:"sprint-39-jun-26---jul-09",level:3},{value:"Major changes",id:"major-changes",level:4},{value:"<code>node-to-client</code> protocol",id:"node-to-client-protocol",level:5},{value:"<code>node-to-node</code> protocol",id:"node-to-node-protocol",level:5},{value:"Minor changes",id:"minor-changes",level:4},{value:"Sprint 40 (Jul 09 - Jul 23)",id:"sprint-40-jul-09---jul-23",level:3},{value:"Major changes",id:"major-changes-1",level:4}],c={toc:u},s="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(s,(0,o.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"network-update-sprints-39--40"},"Network Update (Sprints 39 & 40)"),(0,r.kt)("p",null,"The network updates got distracted. Mostly because of me leaving for the meeting in Edinburgh, Scotland and the being away.\nIt was great to see and talk to so many of the community members."),(0,r.kt)("h3",{id:"sprint-39-jun-26---jul-09"},"Sprint 39 (Jun 26 - Jul 09)"),(0,r.kt)("h4",{id:"major-changes"},"Major changes"),(0,r.kt)("p",null,"Now the following ",(0,r.kt)("strong",{parentName:"p"},"list of traces will be turned on by default"),":"),(0,r.kt)("h5",{id:"node-to-client-protocol"},(0,r.kt)("inlineCode",{parentName:"h5"},"node-to-client")," protocol"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"LocalConnectionManagerTracer")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"LocalInboundGovernor")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"LocalHandshake")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"LocalServer"))),(0,r.kt)("h5",{id:"node-to-node-protocol"},(0,r.kt)("inlineCode",{parentName:"h5"},"node-to-node")," protocol"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Server"))),(0,r.kt)("p",null,"See ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5353"},"cardano-node#5353"),". This will be released in ",(0,r.kt)("inlineCode",{parentName:"p"},"node-8.2.0"),"."),(0,r.kt)("p",null,"We made sure that ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-client-0.1.0.x")," library (which is ",(0,r.kt)("inlineCode",{parentName:"p"},"db-sync"),") is not using the experimental ",(0,r.kt)("inlineCode",{parentName:"p"},"node-to-client")," protocol.\nThe ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-client-0.2.0.0")," was not affected.\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4612"},"ouroboros-network#4612"),"."),(0,r.kt)("p",null,"We merged the ",(0,r.kt)("strong",{parentName:"p"},"dynamic block production feature")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," (also available in the ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.2.0")," release).\nDynamic block production enables hot-swap p2p nodes, which are important for the p2p deployment of block-producing nodes.\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3159"},"ouroboros-network#3159"),", ","[ouroboros-consensu#140]","."),(0,r.kt)("p",null,"We continued to review the implementation of big ledger peers for eclipse evasion, see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4462"},"ouroboros-network#4462"),"."),(0,r.kt)("h4",{id:"minor-changes"},"Minor changes"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We refactored the top level ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-node")," error handler: ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5356"},"cardano-node#5356"))),(0,r.kt)("h3",{id:"sprint-40-jul-09---jul-23"},"Sprint 40 (Jul 09 - Jul 23)"),(0,r.kt)("h4",{id:"major-changes-1"},"Major changes"),(0,r.kt)("p",null,"We integrated ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.8.2.0")," with the ",(0,r.kt)("inlineCode",{parentName:"p"},"master")," branch of ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," for the ",(0,r.kt)("inlineCode",{parentName:"p"},"8.2.0")," release (the version match between ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," is purely accidental).\nThis includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"integration with ",(0,r.kt)("strong",{parentName:"li"},"dynamic block production")," feature.\nThis feature is documented in the ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5399"},"following PR"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Warm valency")," for local root peers (see below).")),(0,r.kt)("p",null,"For the full list of features included in the ",(0,r.kt)("inlineCode",{parentName:"p"},"8.2.0")," release from the network side, please take a look at the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.2.0-pre"},"pre-release nodes"),"."),(0,r.kt)("p",null,"We ",(0,r.kt)("strong",{parentName:"p"},"improved the memory footprint")," of peer metrics measured by the P2P stack.\nPeer metrics are used to decide which peers to demote every churn interval (roughly every hour with some probabilistic fluctuation).\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4620"},"ouroboros-network#4620"),".\nThe improvement will be available in ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node-8.2.0"),"."),(0,r.kt)("p",null,"We added an ",(0,r.kt)("strong",{parentName:"p"},"optional explicit warm valency")," to local root peers of the ",(0,r.kt)("strong",{parentName:"p"},"P2P topology file"),".\nPreviously we used an implicit valency, e.g. the node keeps connections to all of the local roots; with local warm valency the node will pick only that many peers from the local root peers group to connect to.\nThe hot valency (previously known simply as valency) hasn't changed, but it must be smaller than the warm valency as hot peers are selected from warm ones.\nWarm valency is a useful feature to limit resource consumption if one of the domain names in the local root peer group resolves to many IP addresses.\nSee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4575"},"ouroboros-network#4575"),", ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5409"},"cardano-node#5409"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d6a93ba7.669f1626.js b/assets/js/d6a93ba7.669f1626.js new file mode 100644 index 0000000000..b0da717248 --- /dev/null +++ b/assets/js/d6a93ba7.669f1626.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[31349],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>y});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),m=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},p=function(e){var t=m(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=m(r),d=o,y=u["".concat(l,".").concat(d)]||u[d]||c[d]||a;return r?n.createElement(y,s(s({ref:t},p),{},{components:r})):n.createElement(y,s({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:o,s[1]=i;for(var m=2;m<a;m++)s[m]=r[m];return n.createElement.apply(null,s)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},61256:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>m});var n=r(87462),o=(r(67294),r(3905));const a={title:"System Test Team Update",slug:"2022-12-01-system-test",authors:"dorin100",tags:["system-test"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2022-12-01-system-test",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-01-system-test.md",source:"@site/blog/2022-12-01-system-test.md",title:"System Test Team Update",description:"High level summary",date:"2022-12-01T00:00:00.000Z",formattedDate:"December 1, 2022",tags:[{label:"system-test",permalink:"/tags/system-test"}],readingTime:.765,hasTruncateMarker:!1,authors:[{name:"Dorin Solomon",title:"System Test Team Lead",url:"https://github.com/dorin100",imageURL:"https://github.com/dorin100.png",key:"dorin100"}],frontMatter:{title:"System Test Team Update",slug:"2022-12-01-system-test",authors:"dorin100",tags:["system-test"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2022-12-01-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2022-11-30-consensus"}},l={authorsImageUrls:[void 0]},m=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Framework improvements:",id:"framework-improvements",level:3},{value:"DB-Sync:",id:"db-sync",level:3}],p={toc:m},u="wrapper";function c(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"During the last 2 weeks we did more improvements on our Test Framework, planned the testing of the ",(0,o.kt)("em",{parentName:"p"},"P2P Single\nRelay")," functionality, and also tested some DB-Sync tags."),(0,o.kt)("h2",{id:"workstreams"},"Workstreams"),(0,o.kt)("h3",{id:"framework-improvements"},"Framework improvements:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"moved the System Test CLI Pipelines from BuildKite to Github Actions"),(0,o.kt)("li",{parentName:"ul"},"improved the reporting tools to support the rerun of the failled tests and update of the reports "),(0,o.kt)("li",{parentName:"ul"},"added support for Github API in ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/mkoura/report-aggregator"},"report-aggregator"),", so reports will be generated from the GitHub nightly jobs from now on"),(0,o.kt)("li",{parentName:"ul"},"added support for mixed topology - P2P, legacy, mixed topologies"),(0,o.kt)("li",{parentName:"ul"},"planned the P2P Single Relay system test activities "),(0,o.kt)("li",{parentName:"ul"},"added support to start regression tests with PV8 + better selection of tests")),(0,o.kt)("h3",{id:"db-sync"},"DB-Sync:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)"),(0,o.kt)("li",{parentName:"ul"},"tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d6b66cf4.3bcc069a.js b/assets/js/d6b66cf4.3bcc069a.js new file mode 100644 index 0000000000..9e28cbc079 --- /dev/null +++ b/assets/js/d6b66cf4.3bcc069a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95516],{1673:e=>{e.exports=JSON.parse('{"title":"Recent Posts","items":[{"title":"Hydra Team Update","permalink":"/2024-07-17-hydra"},{"title":"Mithril Team Update","permalink":"/2024-07-17-mithril"},{"title":"Consensus Team Update","permalink":"/2024-07-10-consensus"},{"title":"Mithril Team Update","permalink":"/2024-07-10-mithril"},{"title":"Network Team Update","permalink":"/2024-07-08-network"},{"title":"SRE Team Update","permalink":"/2024-07-05-sre"},{"title":"Ledger Team Update","permalink":"/2024-07-03-ledger"},{"title":"Mithril Team Update","permalink":"/2024-07-03-mithril"},{"title":"Consensus Team Update","permalink":"/2024-06-26-consensus"},{"title":"Mithril Team Update","permalink":"/2024-06-26-mithril"}]}')}}]); \ No newline at end of file diff --git a/assets/js/d6c09ac2.3ac82fb4.js b/assets/js/d6c09ac2.3ac82fb4.js new file mode 100644 index 0000000000..3ee6f3a27e --- /dev/null +++ b/assets/js/d6c09ac2.3ac82fb4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[22393],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),c=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=c(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=c(r),m=n,d=u["".concat(p,".").concat(m)]||u[m]||h[m]||o;return r?a.createElement(d,i(i({ref:t},s),{},{components:r})):a.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,i[1]=l;for(var c=2;c<o;c++)i[c]=r[c];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},98294:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-07-21-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-07-21-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-21-hydra.md",source:"@site/blog/2023-07-21-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-07-21T00:00:00.000Z",formattedDate:"July 21, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.7,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-07-21-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-07-26-consensus"},nextItem:{title:"Ledger Team Update",permalink:"/2023-07-21-ledger"}},p={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:c},u="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team updated the specification to align with recent\noff-chain protocol changes, completed refactoring the snapshot emission\nin preparation for event-sourced protocol logic, and updated to GHC\n9.2.7, resulting in improved compile times and slightly smaller Plutus\nscripts."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated the specification to match the recent off-chain protocol\nchanges to complete\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/728"},"#728")),(0,n.kt)("li",{parentName:"ul"},"Refactored the snapshot emission logic in preparation for event\nsourced protocol logic."),(0,n.kt)("li",{parentName:"ul"},"Updated to GHC 9.2.7, which led to improved compile times and\nslightly smaller plutus scripts.")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting next wednesday and July report"),(0,n.kt)("li",{parentName:"ul"},"Reflect latest information onto our roadmap."),(0,n.kt)("li",{parentName:"ul"},"Actual implemention of event-sourced persistence\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/913"},"#913"),"."),(0,n.kt)("li",{parentName:"ul"},"Update the use cases section on ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family"},"https://hydra.family")),(0,n.kt)("li",{parentName:"ul"},"Remove deprecated internal commit\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/954"},"#954"),".")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d6e5a7f4.32b94ff2.js b/assets/js/d6e5a7f4.32b94ff2.js new file mode 100644 index 0000000000..83adf1a74e --- /dev/null +++ b/assets/js/d6e5a7f4.32b94ff2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[86517],{81361:a=>{a.exports=JSON.parse('{"label":"cli-api","permalink":"/tags/cli-api","allTagsPath":"/tags","count":39}')}}]); \ No newline at end of file diff --git a/assets/js/d6f20405.2e85e2ac.js b/assets/js/d6f20405.2e85e2ac.js new file mode 100644 index 0000000000..368c9ff35e --- /dev/null +++ b/assets/js/d6f20405.2e85e2ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23599],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>p});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),c=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=c(r),h=n,p=u["".concat(s,".").concat(h)]||u[h]||m[h]||i;return r?a.createElement(p,o(o({ref:t},d),{},{components:r})):a.createElement(p,o({ref:t},d))}));function p(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var c=2;c<i;c++)o[c]=r[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},73363:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2023-09-01-hydra",authors:["v0d1ch"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-01-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-hydra.md",source:"@site/blog/2023-09-01-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-09-01T00:00:00.000Z",formattedDate:"September 1, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.93,hasTruncateMarker:!1,authors:[{name:"Sasha Bogicevic",title:"Hydra Software Engineer",url:"https://github.com/v0d1ch",imageURL:"https://github.com/v0d1ch.png",key:"v0d1ch"}],frontMatter:{title:"Hydra Team Update",slug:"2023-09-01-hydra",authors:["v0d1ch"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-09-01-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-09-01-ledger"}},s={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:c},u="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team focused primarily on changes needed in the network\nlayer and have the first draft document related to needed design. They also\nimproved the user experience by allowing a commit using inline datums.\nDiscussed the off-chain governance with researchers and improved internal model\ntests. "),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly report published"),(0,n.kt)("li",{parentName:"ul"},"Small changes to hydraw and tutorial in light of the Masterclass"),(0,n.kt)("li",{parentName:"ul"},"Investigated a bug and saw it was solved by recent developments"),(0,n.kt)("li",{parentName:"ul"},"Improved the model tests by fully validating L1 transactions"),(0,n.kt)("li",{parentName:"ul"},"Enhanced the /commit API to also allow commit from scripts with inline datums (user request)"),(0,n.kt)("li",{parentName:"ul"},"Discussed off-chain governance with IOG and CF researchers"),(0,n.kt)("li",{parentName:"ul"},"Drafted a first network specification document in the context of Network resilience")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},'Have a clear understanding of the changes we need for the "Improve network resiliency" feature'),(0,n.kt)("li",{parentName:"ul"},"Groomed and agreed plan on incremental commits/decommits"),(0,n.kt)("li",{parentName:"ul"},"Updated tutorials including CI workflows to check consistency"),(0,n.kt)("li",{parentName:"ul"},"Update to GHC 9.6 and latest cardano dependencies (ledger/plutus)")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d700c1da.96eb750b.js b/assets/js/d700c1da.96eb750b.js new file mode 100644 index 0000000000..5d261ca768 --- /dev/null +++ b/assets/js/d700c1da.96eb750b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28819],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>u});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),c=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=c(e.components);return a.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),d=c(r),s=n,u=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return r?a.createElement(u,i(i({ref:t},h),{},{components:r})):a.createElement(u,i({ref:t},h))}));function u(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:n,i[1]=l;for(var c=2;c<o;c++)i[c]=r[c];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}s.displayName="MDXCreateElement"},90050:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2024-04-19-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-04-19-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-19-hydra.md",source:"@site/blog/2024-04-19-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-04-19T00:00:00.000Z",formattedDate:"April 19, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.5,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-04-19-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-04-24-mithril"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-04-19-performance-and-tracing"}},p={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:c},d="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team refactored the heartbeat logic to prepare for the versioned network protocol. They have also switched ",(0,n.kt)("a",{parentName:"p",href:"http://explorer.hydra.family"},"http://explorer.hydra.family")," to run on the ",(0,n.kt)("inlineCode",{parentName:"p"},"preview")," network. Additionally, the team has added property tests to the ",(0,n.kt)("inlineCode",{parentName:"p"},"/commit")," endpoint changes."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Refactor heartbeat logic to prepare for versioned network protocol."),(0,n.kt)("li",{parentName:"ul"},"Switch ",(0,n.kt)("a",{parentName:"li",href:"http://explorer.hydra.family"},"http://explorer.hydra.family")," to run on ",(0,n.kt)("inlineCode",{parentName:"li"},"preview")," network."),(0,n.kt)("li",{parentName:"ul"},"Add property tests to ",(0,n.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint changes")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Attend and connect with community on Cardano Builder Fest"),(0,n.kt)("li",{parentName:"ul"},"Merge new ",(0,n.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint changes")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d70b4c5f.5eb2f60f.js b/assets/js/d70b4c5f.5eb2f60f.js new file mode 100644 index 0000000000..08e668459c --- /dev/null +++ b/assets/js/d70b4c5f.5eb2f60f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[71870],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},m=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),d=c(n),p=a,h=d["".concat(l,".").concat(p)]||d[p]||u[p]||i;return n?r.createElement(h,o(o({ref:t},m),{},{components:n})):r.createElement(h,o({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,o[1]=s;for(var c=2;c<i;c++)o[c]=n[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}p.displayName="MDXCreateElement"},39446:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-10-06-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,s={permalink:"/2023-10-06-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-06-performance-and-tracing.md",source:"@site/blog/2023-10-06-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-10-06T00:00:00.000Z",formattedDate:"October 6, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.625,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-10-06-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-10-06-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-10-04-consensus"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Consensus QTAs",id:"consensus-qtas",level:3},{value:"Development",id:"development",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Continued benchmarking of UTxO-HD and performed benchmarks for the new tracing system."),(0,a.kt)("li",{parentName:"ul"},"Consensus QTAs: Our protoype approach is applied to potential regression fixes with GHC 9.2.7."),(0,a.kt)("li",{parentName:"ul"},"Development: We've developed strategies for future benchmarks of PlutusV3 and UTxO-HD's on-disk backing store."),(0,a.kt)("li",{parentName:"ul"},"Tracing: The machine-readable tracer configuration has been merged. Optimization of ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," started."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: Ongoing variance analysis and refined cluster topology.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"Performing and analyzing benchmarks for the UTxO-HD feature is an ongoing effort; we can reliably assess the\nperformance of the in-memory backing store and evaluate possible optimizations (or regressions) for it. "),(0,a.kt)("p",null,"Furthermore, benchmarks of our new tracing system after several rounds of optimization have been performed. The results\nshow all key metrics now being unaffected by the choice of tracing system (legacy or new) - with the new system being able to provide more features and flexibility in comparison. The benchmarks also highlighted further points for optimization, with the focus now on the ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," service."),(0,a.kt)("h3",{id:"consensus-qtas"},"Consensus QTAs"),(0,a.kt)("p",null,"The Quantitative Timeliness Agreements (QTA) prototype is being used in coordination with Consensus and DevX to validate a series of patches that address optmization opportunities which GHC8.10 seizes, but GHC9.2 misses. The\nfeedback from this approach is much more immediate than running benchmarks at system integration level. But once we eventually do, we expect to reproduce the relevant observations - which would mean a big step towards maturing the prototype."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Benchmarking UTxO-HD's on-disk backing store needs special attention: in virtualized environments, disk I/O is not a reliable metric as it passes several layers of indirection. As this is the very metric which will influence overall performance of this UTxO-HD flavour, we developed a plan to monitor such nodes, connected to a running network, on dedicated hardware - having direct SSD access. Replicating this setup for an entire benchmarking cluster of such nodes will be a future effort. "),(0,a.kt)("p",null,"PlutusV3 will come with new builtins and a new cost model. It will take a specialized benchmark to ascertain the soundness of that model running a full cluster of nodes, possibly stressing expensive builtins. At the same time,\nwe'd like to validate the many improvements that have gone into the Plutus evaluator."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The focus for further optimization of the new tracing system has shifted to ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," - the service\nreceiving and processing traces from one (or more) nodes. Whilst undisputed that the code living in ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," is\nmore performance critical, the receiving service must still minimize its resource footprint. Moreover, it can\ngenerate load for a running node when querying data points from it - which calls for tight control of that mechanism and its possible configurations."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"Variance analysis of new nomad backend has revealed a necessary adjustment of the cluster's topology. We repeated\nthe same analysis and now see even better confidence in the measurements taken with nomad. This concludes the work on the backend proper for the time being. The last steps before production use will focus on the interface between backend and our workbench, which provides all high-level benchmark definitions and analysis machinery."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d76bd867.e09b82ae.js b/assets/js/d76bd867.e09b82ae.js new file mode 100644 index 0000000000..a5e9f25c87 --- /dev/null +++ b/assets/js/d76bd867.e09b82ae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75563],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(h,i(i({ref:t},c),{},{components:n})):r.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},85131:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));const o={title:"Benchmarking -- Node 8.12.1",slug:"2024-06-performance-8.12.1",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},i=void 0,l={permalink:"/reports/2024-06-performance-8.12.1",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-06-performance-8.12.1.md",source:"@site/reports/2024-06-performance-8.12.1.md",title:"Benchmarking -- Node 8.12.1",description:"Setup",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"benchmarking-reports",permalink:"/reports/tags/benchmarking-reports"}],readingTime:2.84,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Benchmarking -- Node 8.12.1",slug:"2024-06-performance-8.12.1",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},prevItem:{title:"Benchmarking -- Node 8.9.3",permalink:"/reports/2024-05-performance-8.9.3"},nextItem:{title:"Benchmarking -- Node 9.0.0",permalink:"/reports/2024-07-performance-9.0.0"}},s={authorsImageUrls:[void 0]},p=[{value:"Setup",id:"setup",level:2},{value:"Observations",id:"observations",level:2},{value:"Resource Usage",id:"resource-usage",level:3},{value:"Forging Loop",id:"forging-loop",level:3},{value:"Peer propagation",id:"peer-propagation",level:3},{value:"End-to-end propagation",id:"end-to-end-propagation",level:3},{value:"Conclusion",id:"conclusion",level:3},{value:"Contact",id:"contact",level:2},{value:"Attachments",id:"attachments",level:2}],c={toc:p},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,r.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"setup"},"Setup"),(0,a.kt)("p",null,"As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," - baseline from a previous mainnet release"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.12.1")," - the current mainnet release")),(0,a.kt)("p",null,"For each version, we're gathering various metrics under 2 different workloads:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"value-only"),": Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"Plutus"),": Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.")),(0,a.kt)("p",null,"Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\nwere performed in the Babbage era."),(0,a.kt)("h2",{id:"observations"},"Observations"),(0,a.kt)("p",null,"These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet. "),(0,a.kt)("h3",{id:"resource-usage"},"Resource Usage"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload, CPU usage is improved by 2% - 4%, and by 14% for GCs. Under Plutus workload, CPU usage improves only slightly by 1%."),(0,a.kt)("li",{parentName:"ol"},"Allocation Rate and Minor GCs improve by 5% and 6% - under Plutus workload, there's a slight improvement of 1%."),(0,a.kt)("li",{parentName:"ol"},"RAM usage is reduced by 3%; reduction under Plutus workload is even larger - namely 10%.")),(0,a.kt)("p",null,"Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness."),(0,a.kt)("h3",{id:"forging-loop"},"Forging Loop"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Mempool snapshotting improves by 5ms or 7% (3ms or 4% under Plutus workload)."),(0,a.kt)("li",{parentName:"ol"},"Adoption time on the block producer improves by 4ms or 6% - under value workload only.")),(0,a.kt)("p",null,"The metric ",(0,a.kt)("em",{parentName:"p"},"'Slot start to announced'")," (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header."),(0,a.kt)("h3",{id:"peer-propagation"},"Peer propagation"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Block Fetch duration increases slightly by 6ms or 2% (2ms under Plutus workload)."),(0,a.kt)("li",{parentName:"ol"},"Adoption times on the peers improve slightly by 2ms or 3% (1ms under Plutus workload)")),(0,a.kt)("h3",{id:"end-to-end-propagation"},"End-to-end propagation"),(0,a.kt)("p",null,"This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. "),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload / full blocks there are no significant changes to cluster adoption times."),(0,a.kt)("li",{parentName:"ol"},"Under Plutus workload / small blocks we can observe a (near-jitter) improvement of 0% - 2% in cluster adoption times.")),(0,a.kt)("h3",{id:"conclusion"},"Conclusion"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The performance changes measured between ",(0,a.kt)("inlineCode",{parentName:"li"},"8.12.1")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," are most distinct in the resource usage footprint - with ",(0,a.kt)("inlineCode",{parentName:"li"},"8.12.1")," improving over ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3"),"."),(0,a.kt)("li",{parentName:"ul"},"On Mainnnet, ",(0,a.kt)("inlineCode",{parentName:"li"},"8.12.1")," is expected to deliver equal or slightly better performance than ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," - as well as lowering the Node's resource usage somewhat in doing so."),(0,a.kt)("li",{parentName:"ul"},"We have not observed any performance regression being introduced in ",(0,a.kt)("inlineCode",{parentName:"li"},"8.12.1"),".")),(0,a.kt)("h2",{id:"contact"},"Contact"),(0,a.kt)("p",null,"As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. "),(0,a.kt)("p",null,"We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future."),(0,a.kt)("h2",{id:"attachments"},"Attachments"),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"value-only workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(84788).Z},"here"),"."),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"Plutus workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(89738).Z},"here"),"."),(0,a.kt)("p",null,"NB. The release benchmarks for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.1")," were performed on tag ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0-pre"),". The patch version bump did not include changes relevant to performance; thus, measurements taken on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0-pre")," remain valid."))}d.isMDXComponent=!0},89738:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.12.1.plutus-bcf8b8e638f9a7d18710f76fc89e33da.pdf"},84788:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.12.1.value-only-d18eaee4dbf2ffb1c471c1b82e7ba499.pdf"}}]); \ No newline at end of file diff --git a/assets/js/d7836792.243d9223.js b/assets/js/d7836792.243d9223.js new file mode 100644 index 0000000000..d60b637068 --- /dev/null +++ b/assets/js/d7836792.243d9223.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[42126],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),s=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(a),h=n,m=d["".concat(u,".").concat(h)]||d[h]||c[h]||i;return a?r.createElement(m,o(o({ref:t},p),{},{components:a})):r.createElement(m,o({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[d]="string"==typeof e?e:n,o[1]=l;for(var s=2;s<i;s++)o[s]=a[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}h.displayName="MDXCreateElement"},82217:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-08-25-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-08-25-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-25-hydra.md",source:"@site/blog/2023-08-25-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-08-25T00:00:00.000Z",formattedDate:"August 25, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.875,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-08-25-hydra",authors:["ffakenz"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-08-28-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-08-24-performance-and-tracing"}},u={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:s},d="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team conducted the monthly review meeting for Agust,which\ncontinously ensures transparent communication and project evaluation."),(0,n.kt)("p",null,"In terms of community engagement, the Hydra team gave a Hydra master-class at\nRareEvo workshop as an educational initiative for the community.\nAdditionally, the team updated the Hydra demo and tutorial to include Mithril\nand latest release changes."),(0,n.kt)("p",null,"They also focused on exploring the Hydra network resiliance in order to improve\n",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," availability, as it becomes stuck very easily and that leads to a\nbad user experience."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Hydra master-class at RareEvo workshop!"),(0,n.kt)("li",{parentName:"ul"},"Monthly report & review meeting"),(0,n.kt)("li",{parentName:"ul"},"Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff"),(0,n.kt)("li",{parentName:"ul"},"Groomed network resilience and explorer features ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/188"},"#188")),(0,n.kt)("li",{parentName:"ul"},"New ADR for \u201cResourced based API\u201d ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1028"},"#1028"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Have a poc on network resilience working ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/188"},"#188")),(0,n.kt)("li",{parentName:"ul"},"Fix issue ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/931"},"#931"),": \u201cChain state in head state not updated on replayed observation\u201d"),(0,n.kt)("li",{parentName:"ul"},"Fix issue ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1039"},"#1039"),': "Close transaction dropped from cardano-node"')))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d7899fea.a68995a1.js b/assets/js/d7899fea.a68995a1.js new file mode 100644 index 0000000000..9a2e3b731f --- /dev/null +++ b/assets/js/d7899fea.a68995a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17285],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),s=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=s(r),h=n,d=c["".concat(p,".").concat(h)]||c[h]||m[h]||o;return r?a.createElement(d,i(i({ref:t},u),{},{components:r})):a.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var s=2;s<o;s++)i[s]=r[s];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},59997:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const o={title:"Crypto Team Update",slug:"2022-11-11-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-11-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-11-crypto.md",source:"@site/blog/2022-11-11-crypto.md",title:"Crypto Team Update",description:"High level overview",date:"2022-11-11T00:00:00.000Z",formattedDate:"November 11, 2022",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.305,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2022-11-11-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2022-11-16-performance-and-tracing"},nextItem:{title:"Hydra Team Update",permalink:"/2022-11-11-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The SECP primitives AC has been met, and the test-vectors ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/320"},"PR")," has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/336"},"PR")," has been merged, and we've adapted the KES secure ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/255"},"PR")," to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/pull/341"},"PR#"),"). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork. "),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation. "),(0,n.kt)("li",{parentName:"ul"},"We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool. "),(0,n.kt)("li",{parentName:"ul"},"In parallel, we keep progressing on the ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes-agent"},"KES agent")),(0,n.kt)("li",{parentName:"ul"},"VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification. "),(0,n.kt)("li",{parentName:"ul"},"Our libsodium fork now links directly to upstream libsodium.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d79a4bb7.b835acf9.js b/assets/js/d79a4bb7.b835acf9.js new file mode 100644 index 0000000000..d54a9019fb --- /dev/null +++ b/assets/js/d79a4bb7.b835acf9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90206],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(a),u=n,h=d["".concat(s,".").concat(u)]||d[u]||m[u]||o;return a?r.createElement(h,i(i({ref:t},p),{},{components:a})):r.createElement(h,i({ref:t},p))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:n,i[1]=l;for(var c=2;c<o;c++)i[c]=a[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},25790:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2022-11-25-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-25-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-25-hydra.md",source:"@site/blog/2022-11-25-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2022-11-25T00:00:00.000Z",formattedDate:"November 25, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.73,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-11-25-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2022-11-25-crypto"},nextItem:{title:"Ledger Team Update",permalink:"/2022-11-23-ledger"}},s={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:c},d="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a ",(0,n.kt)("a",{parentName:"p",href:"https://summit.cardano.org/agenda-day-2/cardano-ballot-speaker-winner-presentation-6/"},"presentation")," about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Attended the Cardano Summit in Lausanne. Hydra was topic of one talk: ",(0,n.kt)("a",{parentName:"li",href:"https://summit.cardano.org/agenda-day-2/cardano-ballot-speaker-winner-presentation-6/"},"https://summit.cardano.org/agenda-day-2/cardano-ballot-speaker-winner-presentation-6/")),(0,n.kt)("li",{parentName:"ul"},"Had a team workshop / hackathon after the summit:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Retrospective"),(0,n.kt)("li",{parentName:"ul"},"Impact mapping session"),(0,n.kt)("li",{parentName:"ul"},"Hacked on smaller things"))),(0,n.kt)("li",{parentName:"ul"},"Got a PR for tullia/cicero things by @kdermetfan")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly report & review meeting"),(0,n.kt)("li",{parentName:"ul"},"Tie up several loose ends / branches."),(0,n.kt)("li",{parentName:"ul"},"Resolve Tx validity discussions & PRs."),(0,n.kt)("li",{parentName:"ul"},"Review cicero PR & try it out.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d7c69167.74e606dc.js b/assets/js/d7c69167.74e606dc.js new file mode 100644 index 0000000000..f9b2b498b3 --- /dev/null +++ b/assets/js/d7c69167.74e606dc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24288],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(f,l(l({ref:t},m),{},{components:r})):n.createElement(f,l({ref:t},m))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},15983:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-09-29-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-09-29-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-29-goedel.md",source:"@site/blog/2023-09-29-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-09-29T00:00:00.000Z",formattedDate:"September 29, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.42,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-09-29-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-10-02-network"},nextItem:{title:"Hydra Team Update",permalink:"/2023-09-29-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and testing the\nperformance analysis tool"),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"drafting processs calculus semantics of mini protocol programs")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"testing the new performance modelling tool")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"further work on specification of mini protocols")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"extension of mini protocol framework to support communication of\nprograms with local environments via synchronous channels"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d7d5383e.6a06ad17.js b/assets/js/d7d5383e.6a06ad17.js new file mode 100644 index 0000000000..5db4d7e3b1 --- /dev/null +++ b/assets/js/d7d5383e.6a06ad17.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17300],{44808:e=>{e.exports=JSON.parse('{"permalink":"/page/58","page":58,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/57","nextPage":"/page/59","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/d7dccf50.970722ba.js b/assets/js/d7dccf50.970722ba.js new file mode 100644 index 0000000000..92857c2bab --- /dev/null +++ b/assets/js/d7dccf50.970722ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96229],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=p(n),u=r,h=c["".concat(s,".").concat(u)]||c[u]||m[u]||o;return n?a.createElement(h,i(i({ref:t},d),{},{components:n})):a.createElement(h,i({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},15203:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=n(87462),r=(n(67294),n(3905));const o={title:"SRE Q1 2024 Update",slug:"2024-Q1-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2024-Q1-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2024-Q1-sre.md",source:"@site/quarterly/2024-Q1-sre.md",title:"SRE Q1 2024 Update",description:"2024-01 - 2024-03",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"sre",permalink:"/quarterly/tags/sre"}],readingTime:1.97,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q1 2024 Update",slug:"2024-Q1-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"SRE Q4 2023 Update",permalink:"/quarterly/2023-Q4-sre"},nextItem:{title:"SRE Q2 2024 Update",permalink:"/quarterly/2024-Q2-sre"}},s={authorsImageUrls:[void 0]},p=[{value:"2024-01 - 2024-03",id:"2024-01---2024-03",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],d={toc:p},c="wrapper";function m(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2024-01---2024-03"},"2024-01 - 2024-03"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments,\nmain SRE achievements for this quarter include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"All cardano release environments, including preview, preprod, mainnet legacy\nand mainnet new clusters were upgraded through cardano-node releases of\n8.7.3, 8.9.0 and finally into 8.9.1 by the end of March")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"All cardano pre-release environments, including sanchonet, private chain, and\nshelley-qa clusters were upgraded through cardano-node releases of 8.7.3,\n8.8.0-pre, 8.8.1-pre, 8.9.0 and finally into 8.9.1 by the end of March")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sanchonet and private chain environments were both re-spun once each during\nthis quarter to support new pre-release versions of cardano-node in the Conway era")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts added a cardano-db-sync process-compose stack for each\nenvironment")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts added a cardano-node process-compose stack for each environment")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts added enhancements for topology related nixos modules and\nfunctions to accomodate new bootstrapPeer functionality, new topology\nattributes and increased complexity network deployments.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts added support for mithril signers integrated with block\nproducers and a mithril-signer-verifier service for monitoring")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Sanchonet, preview, preprod and mainnet IOG block producers are now signing\nmithril certificates")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts added support for mithril clients in nixos cardano-node systemd\nservice, process-compose job stacks and nix cardano-node entrypoint, all of\nwhich also require any mithril snapshot to be signed by a trusted IOG pool\nprior to use")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-parts added ip integration tooling, so that similar to other deployer\ntools like nixops, nixosConfigurations possess ip information which can be\nused in module configuration")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-db-sync snapshots server migration from legacy mainnet cluster to new\nmainnet cluster with a rewrite of the snapshot service was completed")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano metadata server migration to Cardano Foundation was completed")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"BlockPerf, a cardano-node performance monitoring tool, was integrated into the\nnew mainnet cluster relays")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node bootstrapPeer functionality was added with node 8.9.x, requiring\neffort to align nixos service module code between cardano-node nixos\nservices, iohk-nix topology generation, cardano-ops legacy code, and\ncardano-parts module compatibility as well as feature test under various edge\ncases")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-playground added govtool backend support for private chain voltaire\ntesting team"))),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Add support for the new cardano-node metrics system")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Add IPv6 cardano-parts support")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Extend govtool frontend and backend to a process-compose stack")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Adapt network spin-up tooling for the new create-testnet-data cardano-cli command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Continue cardano-parts and operations improvements"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d7e5c882.7863dd8e.js b/assets/js/d7e5c882.7863dd8e.js new file mode 100644 index 0000000000..08124f94e9 --- /dev/null +++ b/assets/js/d7e5c882.7863dd8e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[12652],{73165:e=>{e.exports=JSON.parse('{"permalink":"/tags/sre/page/6","page":6,"postsPerPage":5,"totalPages":6,"totalCount":29,"previousPage":"/tags/sre/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/d7ea4c81.26ade935.js b/assets/js/d7ea4c81.26ade935.js new file mode 100644 index 0000000000..b0327ac29b --- /dev/null +++ b/assets/js/d7ea4c81.26ade935.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64586],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},l=Object.keys(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=p(a),m=n,h=u["".concat(c,".").concat(m)]||u[m]||s[m]||l;return a?r.createElement(h,o(o({ref:t},d),{},{components:a})):r.createElement(h,o({ref:t},d))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:n,o[1]=i;for(var p=2;p<l;p++)o[p]=a[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},31839:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-01-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",i={permalink:"/2024-01-15-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-15-node-cli-api.md",source:"@site/blog/2024-01-15-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-01-15T00:00:00.000Z",formattedDate:"January 15, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.63,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-01-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-01-17-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-01-12-hydra"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],d={toc:p},u="wrapper";function s(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-01-01---2024-01-15"},"2024-01-01 - 2024-01-15"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-cli: Improve queries drep and stake pool queries. Code clean-up"),(0,n.kt)("li",{parentName:"ul"},"cardano-api: Added support for drep extended keys"),(0,n.kt)("li",{parentName:"ul"},"cardano-testnet: Update to cardano-cli 8.18.0.0")),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/560"},"Detail: remove some dead code")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/555"},"Clarify DRep queries with an all-or-some logic")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/545"},"Fix changelog syntax, so that cardano-dev's tag.sh script works")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/544"},"Update to hedgehog-extras-0.5.1.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/542"},"Release 8.18.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/541"},'Clarify stake-pool queries with an "all or some"-logic')),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/538"},"Update cardano-api to 8.37.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/536"},"Update hedgehog-extras to 0.5.0.0"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/419"},"Support signing with drep extended key")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/418"},"Update to hedgehog-extras-0.5.1.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/417"},"Release 8.37.0.0"))),(0,n.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5633"},"Update CLI to 8.18.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5626"},"Use lenses for JSON editing. Upgrade to ",(0,n.kt)("inlineCode",{parentName:"a"},"hedgehog-extras0.5.1.0")))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d83d9042.3cea37ad.js b/assets/js/d83d9042.3cea37ad.js new file mode 100644 index 0000000000..4380d16085 --- /dev/null +++ b/assets/js/d83d9042.3cea37ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8580],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),h=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=h(a),c=n,m=p["".concat(s,".").concat(c)]||p[c]||u[c]||i;return a?r.createElement(m,o(o({ref:t},d),{},{components:a})):r.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var h=2;h<i;h++)o[h]=a[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},42611:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-05-12-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-12-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-12-hydra.md",source:"@site/blog/2023-05-12-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-05-12T00:00:00.000Z",formattedDate:"May 12, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.145,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-05-12-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-05-12-goedel"},nextItem:{title:"Network Team Update",permalink:"/2023-05-12-network"}},s={authorsImageUrls:[void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:h},p="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team achieved a number of milestones, including the release\nof the first mainnet compatible version. Besides this they also addressed\ninconsistencies in rollback handling, added an architecture page to the website,\nreducing the size of logs using event IDs. They also had productive discussions\nwith researchers on plans for incremental commits/decommits and had a whiteboard\nsession on DeFi and lending protocols. The goals for next week include\ncompleting the validation of the timed transactions feature, exploring stateless\nobservation, refining the Hydra explorer ticket, writing ops instructions and\ntroubleshooting, and implementing the first end-to-end journey for external\ncommits."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released first mainnnet compatible version ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.10.0"},"0.10.0")),(0,n.kt)("li",{parentName:"ul"},"Addressed inconsist handling of rollbacks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Added ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/core-concepts/architecture/"},"architecture page")," and fixed haddock links on our website ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/838"},"#838")),(0,n.kt)("li",{parentName:"ul"},"Opened a new hydra head on mainnet"),(0,n.kt)("li",{parentName:"ul"},"Talked with researchers on initial plan for incremental commits/decommits"),(0,n.kt)("li",{parentName:"ul"},"Had a Whiteboard session on DeFi and lending protocols"),(0,n.kt)("li",{parentName:"ul"},"Reduced size of logs using event ids ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/859"},"#859")),(0,n.kt)("li",{parentName:"ul"},"Published the ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-04"},"monthly report for April"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete validation of timed transactions feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/196"},"#196")),(0,n.kt)("li",{parentName:"ul"},"Explored stateless observation and refined hydra explorer ticket ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/696"},"#696")),(0,n.kt)("li",{parentName:"ul"},"Write ","\u201c","ops","\u201d"," instructions and troubleshooting ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/569"},"#569")," and improve logs"),(0,n.kt)("li",{parentName:"ul"},"Have a first end-to-end journey for external commits implemented ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d857251e.62ff4187.js b/assets/js/d857251e.62ff4187.js new file mode 100644 index 0000000000..669695f1da --- /dev/null +++ b/assets/js/d857251e.62ff4187.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75698],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(a),s=r,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,i(i({ref:t},c),{},{components:a})):n.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var u=2;u<o;u++)i[u]=a[u];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},14394:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-05-24-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2023-05-24-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-24-node-cli-api.md",source:"@site/blog/2023-05-24-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-05-24T00:00:00.000Z",formattedDate:"May 24, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-05-24-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-05-26-network"},nextItem:{title:"Hydra Team Update",permalink:"/2023-05-19-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-05-24---2023-06-06"},"2023-05-24 - 2023-06-06"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The last sprint focused on removing cardano-cli and cardano-api from the cardano-node repository. We have successfully moved cardano-api to its own repository and will do the same for cardano-cli after the 8.1 node is released. "),(0,r.kt)("li",{parentName:"ul"},"We provided assitance where needed in the release"),(0,r.kt)("li",{parentName:"ul"},"An integration repository ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/fusion-flamingo"},"https://github.com/input-output-hk/fusion-flamingo")," was created to enable my team to more easily work on cardano-cli and cardano-api")),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5290"},"Update ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli")," changelog")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5197"},"Propagate protocol parameters conversion errors")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5149"},"Command line option for parsing UTC time to slot number")," ")),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/31"},"Switch to ",(0,r.kt)("inlineCode",{parentName:"a"},"tasty-discover"))," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/30"},"Move tests to standard locations")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/26"},"Make cardano-api:internal component public")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/24"},"update chaps index")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/18"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"ErrorSpec")," check for all constructors, move golden tests together")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/17"},"Expose toAlonzoCostModels")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/9"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"ErrorsSpec")," use generated types and constructors names")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/32"},"Check changelog in tag script")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/34"},"Use tag script from ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-dev")," repository instead")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/38"},"Use .x suffix for release branches")," ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5291"},"Use ",(0,r.kt)("inlineCode",{parentName:"a"},"cryptoInit")," instead of ",(0,r.kt)("inlineCode",{parentName:"a"},"sodiumInit"))," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5284"},"Move configuration tests to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-node")," tests")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5243"},"update chaps & integration")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5240"},"#5222 Remove ",(0,r.kt)("inlineCode",{parentName:"a"},"ApplicationName")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"ApplicationVersion")," config parameters")," ")),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d863ede2.76119859.js b/assets/js/d863ede2.76119859.js new file mode 100644 index 0000000000..a801db08a0 --- /dev/null +++ b/assets/js/d863ede2.76119859.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[45766],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=p(n),h=r,m=d["".concat(l,".").concat(h)]||d[h]||c[h]||a;return n?o.createElement(m,s(s({ref:t},u),{},{components:n})):o.createElement(m,s({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,s=new Array(a);s[0]=h;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[d]="string"==typeof e?e:r,s[1]=i;for(var p=2;p<a;p++)s[p]=n[p];return o.createElement.apply(null,s)}return o.createElement.apply(null,n)}h.displayName="MDXCreateElement"},48709:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var o=n(87462),r=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-02-22-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-02-22-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-22-consensus.md",source:"@site/blog/2023-02-22-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-02-22T00:00:00.000Z",formattedDate:"February 22, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.45,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-02-22-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-02-23-performance-and-tracing"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-02-22-node-cli-api"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD Prototype",id:"utxo-hd-prototype",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Support",id:"support",level:3}],u={toc:p},d="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"During the past two weeks we got the results from the system level benchmarks\nfor UTxO HD. They showed a substantial performance regression, so we spent some\ntime analyzing the results. We found out the frequency at which ledger snapshots\nwere taken was too high, so we requested the benchmarking team a new run with a\nmore realistic snapshotting policy. We continued refactoring and improving the\nprototype, and we released UTxO-HD related packages to CHaP."),(0,r.kt)("p",null,"We met with IOG researchers and networking specialists to discuss the Genesis\ndesign, which was well received. We continued working on testing and\nbenchmarking different Genesis prototypes."),(0,r.kt)("p",null,"We are also working on solving a test failure related to iterators. This work\nderived in several improvements such as better documentation, a framework for\nwriting unit (and regression) tests, and the possibility of debugging\n",(0,r.kt)("inlineCode",{parentName:"p"},"QuickCheck")," counter examples in the REPL."),(0,r.kt)("p",null,"Finally, we released ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," 0.2.0.0 and\n",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-cardano")," 0.3.0.0 to CHaP"),(0,r.kt)("h2",{id:"workstreams"},"Workstreams"),(0,r.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD Prototype"),(0,r.kt)("p",null,"We got the results of the first system level benchmarks for UTxO HD. They seemed\nto indicate a significant regression in performance. After looking into the\nbenchmark logs we found that the benchmark runs took ledger state snapshots too\noften, due to the default snapshotting policy depending on ",(0,r.kt)("inlineCode",{parentName:"p"},"k"),", and ",(0,r.kt)("inlineCode",{parentName:"p"},"k")," being so\nsmall in the benchmark runs. Therefore, the next step is to re-run the\nbenchmarks with a snapshotting policy that more closely resembles the one from\nmainnet."),(0,r.kt)("p",null,"At the same time, we continued refactoring and cleaning up the prototype. "),(0,r.kt)("p",null,"Also, we prepared the ",(0,r.kt)("inlineCode",{parentName:"p"},"anti-diff")," packages (",(0,r.kt)("inlineCode",{parentName:"p"},"fingertree-rm"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"diff-containers"),",\n",(0,r.kt)("inlineCode",{parentName:"p"},"simple-semigroupoids"),") and the ",(0,r.kt)("inlineCode",{parentName:"p"},"lmdb")," related packages (",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-lmdb")," and\n",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-lmdb-simple"),") to ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages"},"CHaP"),"."),(0,r.kt)("h3",{id:"genesis"},"Genesis"),(0,r.kt)("p",null,"The Genesis design was presented to the IOG researchers and Peter Thompson from\nNSol. It was well received. They pointed out one blindspot, but we think it'll\nbe relatively simple to mitigate."),(0,r.kt)("p",null,"In parallel, we continued developing test and benchmarks for the Genesis\nprototypes. I particular we tested and implemented a potential fix for\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4037#issuecomment-1439708022"},"increased ChainDB dequeue timings"),", which partly\nbehaved as we expected, but still needs further investigation. Also we obtained\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4037#issuecomment-1434745031"},"new benchmarking data")," for the prototype."),(0,r.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,r.kt)("p",null,"Related to ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4183"},"#4183"),", we developed a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4379"},"DSL")," for specifying\n",(0,r.kt)("inlineCode",{parentName:"p"},"ChainDB")," unit tests. This will allow us to better understand the\ncounter-examples returned by QuickCheck tests, and to write ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4383"},"regression\ntests")," for them. Also, we ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4358"},"added a module")," to enable\nQuickCheck counter-examples to be run on the REPL, allowing for faster debugging\nfeedback. Also, we improved the documentation related to followers\n(",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4372"},"#4372"),")."),(0,r.kt)("p",null,"We are also working on a design for optimizing the way we handle blocks from the\nfuture."),(0,r.kt)("h3",{id:"support"},"Support"),(0,r.kt)("p",null,"We released ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," 0.2.0.0 and ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-cardano"),"\n0.3.0.0 to CHaP. Remember that we decided to split the packages related to\nConsensus into two bundles, one with the core functionality, Cardano-agnostic\ncode, and another bundle with instantiations specific to Cardano."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d8668f0c.f784672e.js b/assets/js/d8668f0c.f784672e.js new file mode 100644 index 0000000000..3e5e0d1f3e --- /dev/null +++ b/assets/js/d8668f0c.f784672e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1821],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(h,l(l({ref:t},p),{},{components:n})):r.createElement(h,l({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=n[c];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},94658:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2023-03-23-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-03-23-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-23-db-sync.md",source:"@site/blog/2023-03-23-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2023-03-23T00:00:00.000Z",formattedDate:"March 23, 2023",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.755,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2023-03-23-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-03-24-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-03-23-mithril"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team worked in performance enhancements issues, on providing new db-sync options and on\ntechnical debt and bug fixing. The DBSync team also on boarded a new member."),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Worked on an issue which causes ",(0,a.kt)("inlineCode",{parentName:"li"},"ada_pots")," tables to include the values related not only to an\nepoch, but also the first epoch of the last epoch.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1367"},"#1367")),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue where the ",(0,a.kt)("inlineCode",{parentName:"li"},"epoch")," table didn't rollback and caused wrong values\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1370"},"#1370")),(0,a.kt)("li",{parentName:"ul"},"Fixed an issue were users with ",(0,a.kt)("inlineCode",{parentName:"li"},"disable-ledger")," option had to provide the state dir option, even\nthough it was never used. Also refactored the no ledger part of the codebase.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1378"},"#1378")),(0,a.kt)("li",{parentName:"ul"},"Improved the perforance by using the cache more. Also provided many new options which enables or\ndisables parts of db-sync. In addition a new ",(0,a.kt)("inlineCode",{parentName:"li"},"--turbo")," mode is enables which allows db-sync to sync\nmainnet in hours.\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1379"},"#1379"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d8c4fe87.1e0191e5.js b/assets/js/d8c4fe87.1e0191e5.js new file mode 100644 index 0000000000..42fc4b838b --- /dev/null +++ b/assets/js/d8c4fe87.1e0191e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24671],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,d=c["".concat(l,".").concat(m)]||c[m]||h[m]||s;return n?r.createElement(d,o(o({ref:t},p),{},{components:n})):r.createElement(d,o({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:a,o[1]=i;for(var u=2;u<s;u++)o[u]=n[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},48221:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const s={title:"Consensus Team Update",slug:"2023-09-06-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-09-06-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-06-consensus.md",source:"@site/blog/2023-09-06-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-09-06T00:00:00.000Z",formattedDate:"September 6, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.22,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-09-06-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-09-07-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-09-01-goedel"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"UTxO-HD",id:"utxo-hd",level:2},{value:"Tech debt",id:"tech-debt",level:2},{value:"Support",id:"support",level:2}],p={toc:u},c="wrapper";function h(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We were able to successfully run the system-level benchmarks for the UTxO-HD implementation, for the first time. There was an important regression in block forging performance that will have to be addressed before UTxO-HD is released. We also revisited the implementation of our query processing logic, which was needed to address the performance regression found in the query-by-address command. The preliminary performance results show that now the performance of this query is on-par with the Cardano baseline version, but we need further confirmation.\nOn the Genesis front, we presented the grinding-aware safety argument for the proposed historical Cardano Genesis windows to the IOG Researchers.\nThe Consensus release engineer finished his rotation: version ",(0,a.kt)("inlineCode",{parentName:"p"},"8.3.0-pre")," of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," is releasing 2023 September 5."),(0,a.kt)("h2",{id:"utxo-hd"},"UTxO-HD"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We ran the first successful system-level benchmarks for UTxO-HD (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/203"},"#203"),") using the ",(0,a.kt)("em",{parentName:"li"},"in-memory")," backend.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We observed a factor 12 regression in the forging performance, which we will have to address. There are strong indications that the regression is due to the backing store accesses that take place when taking a mempool snapshot."),(0,a.kt)("li",{parentName:"ul"},"After the mempool regression is fixed the benchmarks need to be ran again."),(0,a.kt)("li",{parentName:"ul"},"System-level UTxO-HD benchmarks with the LMDB are still pending."))),(0,a.kt)("li",{parentName:"ul"},"UTxO-HD will eventually be necessary due to the growth of the UTxO set and other ledger state structures that live in memory at the moment. However, we are trying a strategy by which we could preserve the baseline performance of the node, in case SPOs and other node users are not ready to migrate yet (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/344"},"#344"),")."),(0,a.kt)("li",{parentName:"ul"},"We implemented a new way of processing queries at the hard-fork block level, which resolves the performance regression observed in ",(0,a.kt)("inlineCode",{parentName:"li"},"GetUTxOByAddress")," (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/205#issuecomment-1706878418"},"this comment"),"). Preliminary results are promising."),(0,a.kt)("li",{parentName:"ul"},"Regarding the roll out plan, UTxO-HD requires a significant change in the Consensus codebase. Even though we might be able to hide any potential performance impact in the node by keeping all data in memory (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/344"},"#344"),"), the Consensus component was significantly changed, so we might have to postpone releasing this feature to mitigate any risks of conflicting with the implementation of CIP-1694 and release of Conway.")),(0,a.kt)("h2",{id:"tech-debt"},"Tech debt"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We added tests that Consensus emits valid CBOR (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3099"},"#3099"),"). This helped us detect a couple of serialization bugs. The tests still need to be merged into the ",(0,a.kt)("inlineCode",{parentName:"li"},"main")," branch (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/323"},"#323"),").")),(0,a.kt)("h2",{id:"support"},"Support"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/nfrisby"},"Nick Frisby")," finished his release engineer rotation; ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node 8.3.0-pre")," is releasing 2023 September 5."),(0,a.kt)("li",{parentName:"ul"},"We helped to investigate a protocol version bug in Sanchonet (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3491"},"#3491"),")."),(0,a.kt)("li",{parentName:"ul"},"We started to implement the Network interface for bootstrap peer functionality, from which Genesis will benefit as well (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/91"},"#91"),".")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d90a9d25.d1afdf21.js b/assets/js/d90a9d25.d1afdf21.js new file mode 100644 index 0000000000..9f64c8df5d --- /dev/null +++ b/assets/js/d90a9d25.d1afdf21.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[63345],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=i,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},89646:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-06-05-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-06-05-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-05-mithril.md",source:"@site/blog/2024-06-05-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-06-05T00:00:00.000Z",formattedDate:"June 5, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.22,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-06-05-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-06-05-ledger"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-06-05-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They improved the throughput of the prover route of the aggregator by using resource pooling and made progress on low-latency certification by transitioning to a chain point-based beacon, which allows for faster transaction signing. They also kept investigating prover performance bottlenecks, worked on fixing a bug that caused unsigned transactions to appear as signed, and continued implementing the import of transactions with the ChainSync mini-protocol and Pallas."),(0,i.kt)("p",null,"Additionally, the team started preparing the threat modeling explainer for the documentation website and kept investigating some Cardano node error messages that could be caused by how the Pallas client handles connections to mini-protocols."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement Resource Pooling for Block Range Merkle maps")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1698"},"#1698")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Sign Cardano transactions with ChainPoint based beacon")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1697"},"#1697")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Cardano transactions prover performances drop with more than 5 transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1722"},"#1722")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Import Cardano transactions with ",(0,i.kt)("inlineCode",{parentName:"strong"},"ChainReader"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1705"},"#1705")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Client verification fails with an already stored but non certified yet transaction")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1719"},"#1719")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Computation of Merkle proof has bottleneck with multiple transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1730"},"#1730")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Release ",(0,i.kt)("inlineCode",{parentName:"strong"},"2423")," distribution")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1695"},"#1695")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d92df848.60911cc8.js b/assets/js/d92df848.60911cc8.js new file mode 100644 index 0000000000..4d4a7f7ce6 --- /dev/null +++ b/assets/js/d92df848.60911cc8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[2578],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},h=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=p(r),m=a,d=u["".concat(s,".").concat(m)]||u[m]||c[m]||i;return r?n.createElement(d,o(o({ref:t},h),{},{components:r})):n.createElement(d,o({ref:t},h))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var p=2;p<i;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},61895:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const i={title:"Mithril Team Update",slug:"2023-01-12-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-01-12-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-12-mithril.md",source:"@site/blog/2023-01-12-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-01-12T00:00:00.000Z",formattedDate:"January 12, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.165,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-01-12-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"System Test Team Update",permalink:"/2023-01-13-system-test"},nextItem:{title:"Consensus Team Update",permalink:"/2023-01-11-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],h={toc:p},u="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ",(0,a.kt)("a",{parentName:"p",href:"https://mithril.network/doc/adr/4"},"ADR"),". They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible."),(0,a.kt)("p",null,"Finally, they have worked on upgrading the ",(0,a.kt)("inlineCode",{parentName:"p"},"devnet")," and fixing some flakiness in the end to end tests of the CI."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Implemented the redaction of an ADR for handling graceful updates of the Mithril Network ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/671"},"#671")),(0,a.kt)("li",{parentName:"ul"},"Worked on a proof of concept to handle backward compatibilty of exchanged messages with ",(0,a.kt)("inlineCode",{parentName:"li"},"protobuf")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/677"},"#677")),(0,a.kt)("li",{parentName:"ul"},"Worked on a proof of concept to handle backward compatibilty of exchanged messages with ",(0,a.kt)("inlineCode",{parentName:"li"},"avro")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/678"},"#678")),(0,a.kt)("li",{parentName:"ul"},"Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/672"},"#672")),(0,a.kt)("li",{parentName:"ul"},"Worked on upgrading the Cardano node of the Mithril ",(0,a.kt)("inlineCode",{parentName:"li"},"devnet"),", as well as fixing flakiness of the CI ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/523"},"#523")),(0,a.kt)("li",{parentName:"ul"},"Prepared and tested the new ",(0,a.kt)("inlineCode",{parentName:"li"},"2302")," distribution pre-release ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2302.0-prerelease"},"2302.0-prerelease")),(0,a.kt)("li",{parentName:"ul"},"Updated the documentation for SPO to build a signer node in order to better reflect the new release process ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/681"},"#681"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d934bbef.f8c8d424.js b/assets/js/d934bbef.f8c8d424.js new file mode 100644 index 0000000000..0b57ce674d --- /dev/null +++ b/assets/js/d934bbef.f8c8d424.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92182],{803:e=>{e.exports=JSON.parse('{"permalink":"/page/11","page":11,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/10","nextPage":"/page/12","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/d957ac34.e878b7bb.js b/assets/js/d957ac34.e878b7bb.js new file mode 100644 index 0000000000..5c4618333c --- /dev/null +++ b/assets/js/d957ac34.e878b7bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[57772],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(a),m=n,c=u["".concat(s,".").concat(m)]||u[m]||h[m]||i;return a?r.createElement(c,o(o({ref:t},d),{},{components:a})):r.createElement(c,o({ref:t},d))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<i;p++)o[p]=a[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},66001:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-03-24-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-24-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-24-hydra.md",source:"@site/blog/2023-03-24-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-03-24T00:00:00.000Z",formattedDate:"March 24, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.95,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-03-24-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"System Test Team Update",permalink:"/2023-03-27-system-test"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-03-23-db-sync"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:p},u="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra had a team workshop and conducted the monthly review\nmeeting for March. They demonstrated a Hydra Head on mainnet, which was running\nthe hydraw demo application. While this marks an important milestone, they also\nemphasized that more features are still to be added as needed for applications\nto run on Hydra. Besides this, the roadmap is getting cleaned up to encourage\ndiscussions and provide more space for user requests."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting ",(0,n.kt)("a",{parentName:"li",href:"https://docs.google.com/presentation/d/1yZ4AqUQ8OBMG9ARMYvj3IOjaIAqglf7kZei4vsLMrbs/edit#slide=id.g1f87a7454a5_0_1392"},"slides"),"/",(0,n.kt)("a",{parentName:"li",href:"https://drive.google.com/file/d/1krzM8VN-gpKTtpVdC2JQx-lGti-4gKQS/view?ts=641b3c1c"},"recording"),", full report of March next week",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Opened a head on mainnet with hydraw demonstration"),(0,n.kt)("li",{parentName:"ul"},"Hydra pay updates"))),(0,n.kt)("li",{parentName:"ul"},"Team workshop in Austria",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Hydra presentation at the Cardano Foundation in Zurich"),(0,n.kt)("li",{parentName:"ul"},"In-person grooming session, marked many items as candidates to be rather :idea: dicussions"),(0,n.kt)("li",{parentName:"ul"},"Improved head protocol ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/786"},"#786")," and investigated a potential bug in rollback handling ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Team building and retrospective")))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Follow-up on backlog and roadmap clean-up"),(0,n.kt)("li",{parentName:"ul"},"Complete mainnet compatibility feature (documentation updates)"),(0,n.kt)("li",{parentName:"ul"},"Make API more configurable ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/380"},"#380")),(0,n.kt)("li",{parentName:"ul"},"Integrate Hydra specification into repository ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/693"},"#693"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d967308c.787c09b7.js b/assets/js/d967308c.787c09b7.js new file mode 100644 index 0000000000..067046de8c --- /dev/null +++ b/assets/js/d967308c.787c09b7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20957],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},39967:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-10-18-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-10-18-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-18-mithril.md",source:"@site/blog/2023-10-18-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-10-18T00:00:00.000Z",formattedDate:"October 18, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.07,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-10-18-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-10-18-consensus"},nextItem:{title:"Network Team Update",permalink:"/2023-10-15-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team started working on the decentralization of the Mithril networks with a proof of concept of peer-to-peer (P2P) networking between nodes. The team kept working on the adaptation of the Mithril client as a library, on the deterministic computation of the transaction history of an address from the immutable files, and on the refactoring that will fix the bottleneck of the key registration in the aggregator. Additionally, they published a security advisory for the Mithril relay."),(0,n.kt)("p",null,"Finally, they enhanced the CI/CD to publish multiple packages to ",(0,n.kt)("a",{parentName:"p",href:"https://crates.io/"},"crates.io")," and started improving the developer experience with the Mithril devnet."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Published the security advisory ",(0,n.kt)("strong",{parentName:"li"},"Mithril relay could expose Cardano block producer internal IP when updated")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/security/advisories/GHSA-9m3h-72xj-x2gq"},"#GHSA-9m3h-72xj-x2gq")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P Networking - Proof of Concept")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1300"},"#1300")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Make ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," crate a library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1141"},"#1141")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Compute deterministic Cardano transactions history PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1283"},"#1283")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"ProtocolKeyRegistration")," creates performance bottleneck in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1187"},"#1187")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Publish multiple packages to ",(0,n.kt)("inlineCode",{parentName:"strong"},"crates.io"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1298"},"#1298")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Rename public key published in releases")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1292"},"#1292")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Mithril networks infrastructure maintenance")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1218"},"#1218")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Fix ",(0,n.kt)("inlineCode",{parentName:"strong"},"devnet")," Mithril Docker images")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1272"},"#1272"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d96cfa54.b27c8151.js b/assets/js/d96cfa54.b27c8151.js new file mode 100644 index 0000000000..55399147f3 --- /dev/null +++ b/assets/js/d96cfa54.b27c8151.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16171],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var a=t(67294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var c=a.createContext({}),s=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=s(e.components);return a.createElement(c.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},u=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(t),u=r,f=p["".concat(c,".").concat(u)]||p[u]||m[u]||i;return t?a.createElement(f,o(o({ref:n},d),{},{components:t})):a.createElement(f,o({ref:n},d))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,o=new Array(i);o[0]=u;var l={};for(var c in n)hasOwnProperty.call(n,c)&&(l[c]=n[c]);l.originalType=e,l[p]="string"==typeof e?e:r,o[1]=l;for(var s=2;s<i;s++)o[s]=t[s];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}u.displayName="MDXCreateElement"},21351:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var a=t(87462),r=(t(67294),t(3905));const i={title:"Performance & tracing update",slug:"2023-05-03-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o="High level summary",l={permalink:"/2023-05-03-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-03-performance-and-tracing.md",source:"@site/blog/2023-05-03-performance-and-tracing.md",title:"Performance & tracing update",description:"* Benchmarking: The benchmarks and performance investigations for the new 8.0 release branch are ongoing.",date:"2023-05-03T00:00:00.000Z",formattedDate:"May 3, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.76,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-05-03-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-05-03-consensus"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-05-01-db-sync"}},c={authorsImageUrls:[void 0]},s=[{value:"Dataflow documentation",id:"dataflow-documentation",level:3},{value:"Remove redundant Plutus flake input",id:"remove-redundant-plutus-flake-input",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],d={toc:s},p="wrapper";function m(e){let{components:n,...t}=e;return(0,r.kt)(p,(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Benchmarking: The benchmarks and performance investigations for the new ",(0,r.kt)("inlineCode",{parentName:"li"},"8.0")," release branch are ongoing."),(0,r.kt)("li",{parentName:"ul"},"New tracing: Performance optimization of the new tracing system is paying off and we could notably shrink its resource footprint."),(0,r.kt)("li",{parentName:"ul"},"Analysis pipeline: An exhaustive documentation and dataflow diagram for our analyses is being worked on."),(0,r.kt)("li",{parentName:"ul"},"Infrastructure: The ",(0,r.kt)("inlineCode",{parentName:"li"},"plutus-apps")," flake input for ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-node")," has finally been removed."),(0,r.kt)("li",{parentName:"ul"},"Nomad backend: A PR implementing placement of benchmarking clusters has been merged.")),(0,r.kt)("h1",{id:"benchmarking"},"Benchmarking"),(0,r.kt)("p",null,"The performance investigations on the ",(0,r.kt)("inlineCode",{parentName:"p"},"8.0")," release branch have lead to pinpointing and addressing incosistent behaviour. For that,\nwe created yet another local reproduction with the workbench's ",(0,r.kt)("inlineCode",{parentName:"p"},"forge-stress")," benchmark. "),(0,r.kt)("p",null,"Currently we're working on scaling up the dataset size (UTxO and delegations) on the AWS cluster to gain further insight into ",(0,r.kt)("inlineCode",{parentName:"p"},"8.0")," and\nsubsequent releases. "),(0,r.kt)("p",null,"Additionally, we've refined the ",(0,r.kt)("inlineCode",{parentName:"p"},"trace-bench")," family of profiles that target benchmarking our own new tracing system. "),(0,r.kt)("h1",{id:"tracing"},"Tracing"),(0,r.kt)("p",null,"Optimization of the tracing system has identified several locations where inefficient serializations were used; those were not originally\nintended to run on a performance-critical codepath. We've worked on improving those, as well as eliminating cases of redundant\nconversion between different serialization formats. This has brought down both memory and CPU impact of the tracing system."),(0,r.kt)("h1",{id:"infrastructure--analysis"},"Infrastructure & Analysis"),(0,r.kt)("h3",{id:"dataflow-documentation"},"Dataflow documentation"),(0,r.kt)("p",null,"The LogObject CLI ",(0,r.kt)("inlineCode",{parentName:"p"},"locli")," is at the heart of our analysis and reporting pipeline. To increase its accessibility and facilitate\nfurther development, we're creating a detailed and illustrated documentation of all dataflows that happen during analysis and reporting. "),(0,r.kt)("h3",{id:"remove-redundant-plutus-flake-input"},"Remove redundant Plutus flake input"),(0,r.kt)("p",null,"This step is the conclusion of porting Plutus benchmarking scripts to our own library. By finally removing the now unnecessary flake input,\nwe simplify the dependency graph for ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node"),", as well as enable immediate feedback when developing Plutus benchmarks."),(0,r.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,r.kt)("p",null,"Sophisticated placement of nodes across various regions of the globe is a cornerstone of the model cluster we use for benchmarking.\nThis capability has now been added to the Nomad backend and can be controlled with Nomad job descriptions. A PR with this, along\nwith various quality-of-life improvements, has been merged to ",(0,r.kt)("inlineCode",{parentName:"p"},"master"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d97d797d.e84acb26.js b/assets/js/d97d797d.e84acb26.js new file mode 100644 index 0000000000..c2661341f2 --- /dev/null +++ b/assets/js/d97d797d.e84acb26.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46347],{30809:e=>{e.exports=JSON.parse('{"permalink":"/tags/consensus/page/5","page":5,"postsPerPage":5,"totalPages":9,"totalCount":45,"previousPage":"/tags/consensus/page/4","nextPage":"/tags/consensus/page/6","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/d988d084.74d18a6f.js b/assets/js/d988d084.74d18a6f.js new file mode 100644 index 0000000000..0e16cca16a --- /dev/null +++ b/assets/js/d988d084.74d18a6f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[85138],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=s(n),p=a,f=u["".concat(l,".").concat(p)]||u[p]||m[p]||o;return n?r.createElement(f,i(i({ref:t},d),{},{components:n})):r.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var s=2;s<o;s++)i[s]=n[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}p.displayName="MDXCreateElement"},56663:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & tracing update",slug:"2023-06-28-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,c={permalink:"/2023-06-28-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-28-performance-and-tracing.md",source:"@site/blog/2023-06-28-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-06-28T00:00:00.000Z",formattedDate:"June 28, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.885,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-06-28-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-06-28-consensus"},nextItem:{title:"Goedel Team Update",permalink:"/2023-06-23-goedel"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],d={toc:s},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've performed several new benchmarks and a performance investigation in preparation of switching the default compiler to GHC9."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: The first batch of refactoring and documentation for our ",(0,a.kt)("inlineCode",{parentName:"li"},"tx-generator")," has been merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master"),"."),(0,a.kt)("li",{parentName:"ul"},"Tracing: We've looked into an issue where the tracing system's concurrency could prevent a graceful node shutdown."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: Our new cloud backend has seen various improvements regarding deployment and monitoring; validation runs for the backend are ongoing.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"The compiler switch to GHC9 as the default build platform for ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," and its components still has noticeable effects on system-wide performance metrics. An investigation into the different resource usage profiles of compiler versions does seem to indicate GHC9's significantly different inlining behaviour may produce those effects. We're currently locating the specific places in component code that have the most extensive effect in that regard. "),(0,a.kt)("p",null,"Using the ",(0,a.kt)("inlineCode",{parentName:"p"},"forge-stress")," approximation we set up, we could determine that above effect is not due to a range of RTS parameters, as for example the number of capabilites used by the node."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"tx-generator")," is a crucial part of our tooling responsible for producing very specific workloads for our benchmarking cluster. In an effort to flesh out an API to make it reusable for more general use cases, a first set of refactorings has been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". Additionally, this merge contained systematic documentation both for internal and for exposed areas of the code base."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The tracing system's concurrency could under certain conditions prevent a graceful shutdown of the node. This issue did occur only after adding specific new traces on a development branch. We could localize and address that issue."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"With the data gathered from running the new nomad cloud backend, we've been able to address many, many small and medium-sized improvements. The deployment process has been restructured for better efficiency, and the healthcheck system could be fine-tuned to recognize severity of various conditions that might occur. Optimization of fetching all run data from the cloud for evaluation is in progress."),(0,a.kt)("p",null,"Additionally, we're continuing the new backend's validation by setting up test runs and looking into comparative analyses with metrics gathered from the current cluster backend."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d99d594e.9304d83e.js b/assets/js/d99d594e.9304d83e.js new file mode 100644 index 0000000000..85159cf673 --- /dev/null +++ b/assets/js/d99d594e.9304d83e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46521],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,f=m["".concat(c,".").concat(d)]||m[d]||p[d]||o;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},43933:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Performance & tracing update",slug:"2023-02-23-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i="High level summary",l={permalink:"/2023-02-23-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-23-performance-and-tracing.md",source:"@site/blog/2023-02-23-performance-and-tracing.md",title:"Performance & tracing update",description:"* SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.",date:"2023-02-23T00:00:00.000Z",formattedDate:"February 23, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.245,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-02-23-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-02-23-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2023-02-22-consensus"}},c={authorsImageUrls:[void 0]},s=[{value:"SECP",id:"secp",level:3},{value:"UTxO-HD",id:"utxo-hd",level:3},{value:"1.35.6 release",id:"1356-release",level:3},{value:"Nomad backend",id:"nomad-backend",level:3},{value:"NixOps backend",id:"nixops-backend",level:3}],u={toc:s},m="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork."),(0,a.kt)("li",{parentName:"ul"},"Release benchmarking: we performed a round of benchmarks for the 1.35.6 release."),(0,a.kt)("li",{parentName:"ul"},"UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup."),(0,a.kt)("li",{parentName:"ul"},"New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.")),(0,a.kt)("h1",{id:"performance"},"Performance"),(0,a.kt)("h3",{id:"secp"},"SECP"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead."),(0,a.kt)("li",{parentName:"ol"},"The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run."),(0,a.kt)("li",{parentName:"ol"},"The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking. ")),(0,a.kt)("h3",{id:"utxo-hd"},"UTxO-HD"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop."),(0,a.kt)("li",{parentName:"ol"},"We're currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.")),(0,a.kt)("h3",{id:"1356-release"},"1.35.6 release"),(0,a.kt)("p",null,"Benchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health."),(0,a.kt)("h1",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"Work on the new tracing system's introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible."),(0,a.kt)("h1",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients."),(0,a.kt)("li",{parentName:"ol"},"Locality assumptions were removed and job monitoring was refactored."),(0,a.kt)("li",{parentName:"ol"},"To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster."),(0,a.kt)("li",{parentName:"ol"},"We're currently evaluating different options for genesis distribution in said cluster.")),(0,a.kt)("h3",{id:"nixops-backend"},"NixOps backend"),(0,a.kt)("p",null,"The NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d9a6bb79.4a52d3f4.js b/assets/js/d9a6bb79.4a52d3f4.js new file mode 100644 index 0000000000..7a80bb5574 --- /dev/null +++ b/assets/js/d9a6bb79.4a52d3f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27287],{29291:a=>{a.exports=JSON.parse('{"label":"release","permalink":"/tags/release","allTagsPath":"/tags","count":5}')}}]); \ No newline at end of file diff --git a/assets/js/d9b708eb.7330034e.js b/assets/js/d9b708eb.7330034e.js new file mode 100644 index 0000000000..a8acf463e1 --- /dev/null +++ b/assets/js/d9b708eb.7330034e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67463],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=p(a),s=r,h=d["".concat(c,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,i(i({ref:t},u),{},{components:a})):n.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=s;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=a[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},49915:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-04-20-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",l={permalink:"/2023-04-20-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-20-node-cli-api.md",source:"@site/blog/2023-04-20-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-04-20T00:00:00.000Z",formattedDate:"April 20, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.4,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-04-20-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-04-20-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2023-04-19-consensus"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],u={toc:p},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-04-20---2023-05-04"},"2023-04-20 - 2023-05-04"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Various fixes and improvements")),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5136"},"Modify golden test functions to automatically create parent directories")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5132"},"SPO on-chain poll commands adjustments")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5119"},"New environment variable CARDANO_NODE_NETWORK_ID")," ")),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5172"},(0,r.kt)("inlineCode",{parentName:"a"},"--out-file")," option for governance commands")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5130"},"UTC Time to slots conversion function")," ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5157"},"Update CHaP to get latest ledger with performance fix")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4854"},"Integration with Peer Sharing")," ")),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d9ccb35d.a1a85e57.js b/assets/js/d9ccb35d.a1a85e57.js new file mode 100644 index 0000000000..89ed05931b --- /dev/null +++ b/assets/js/d9ccb35d.a1a85e57.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3136],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),u=s(n),m=o,h=u["".concat(l,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(h,i(i({ref:t},c),{},{components:n})):r.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[u]="string"==typeof e?e:o,i[1]=p;for(var s=2;s<a;s++)i[s]=n[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},62438:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>p,toc:()=>s});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-03-21-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2023-03-21-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-21-network.md",source:"@site/blog/2023-03-21-network.md",title:"Network Team Update",description:"High level summary",date:"2023-03-21T00:00:00.000Z",formattedDate:"March 21, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.315,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-03-21-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-03-22-performance-and-tracing"},nextItem:{title:"Crypto Team Update",permalink:"/2023-03-17-crypto"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"In the last spring we released ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node-1.35.6")," with dynamic P2P\nfunctionality."),(0,o.kt)("p",null,"We received reports from some SPOs who encountered problems with their non\nP2P block producing nodes not being able to connect to their P2P relay. Karl\nKnutsson (from Cardano Foundation) reproduced this issue between two nodes (a\nnon P2P and a P2P one) on mainnet. Karl and the IOG Networking Team analysed\nit and found a bug in the legacy non p2p code. The bug is only possible to\ntrigger with a P2P node which is binding its outbound connection port to\na fixed IP address and port (default in p2p). A possible solution was found.\nFor more information see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4465"},"#4465"),"."),(0,o.kt)("p",null,"We released ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-ping-0.1.0.0")," package to ",(0,o.kt)("inlineCode",{parentName:"p"},"CHaP"),". ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-ping")," is no\nlonger available as a standalone binary, but instead it will become part of\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-cli")," (see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"#4664"),")"),(0,o.kt)("p",null,"We are testing ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," with peer sharing functionality (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"#4019"),")."),(0,o.kt)("p",null,"We are working on ",(0,o.kt)("em",{parentName:"p"},"eclipse evasion"),". We added new class of peers: big ledger\npeers to the outbound governor, implemented tests and fixed found issues\n(",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4462"},"#4462"),"). We also made the information if a given peer plays the role of\na big ledger peer to the mini-protocols. This will allow to modify\nmini-protocol applications for such peers. As part of this functionality we\nrefactored some core types in the network code which simplifies exposed API."),(0,o.kt)("p",null,"Together with Moritz Angerman we started to update ",(0,o.kt)("inlineCode",{parentName:"p"},"io-sim")," to ",(0,o.kt)("inlineCode",{parentName:"p"},"ghc-9.6.1")," (see\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/73"},"#73"),")."),(0,o.kt)("p",null,"We merged a fix of configuration of accepted connections limit in\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," (see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4902"},"#4902"),")."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/da04b7b0.0a81e497.js b/assets/js/da04b7b0.0a81e497.js new file mode 100644 index 0000000000..34477e8bf9 --- /dev/null +++ b/assets/js/da04b7b0.0a81e497.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[78101],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?i(Object(a),!0).forEach((function(e){r(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function o(t,e){if(null==t)return{};var a,n,r=function(t,e){if(null==t)return{};var a,n,r={},i=Object.keys(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var p=n.createContext({}),u=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(p.Provider,{value:e},t.children)},m="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,p=t.parentName,c=o(t,["components","mdxType","originalType","parentName"]),m=u(a),h=r,s=m["".concat(p,".").concat(h)]||m[h]||d[h]||i;return a?n.createElement(s,l(l({ref:e},c),{},{components:a})):n.createElement(s,l({ref:e},c))}));function s(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=h;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[m]="string"==typeof t?t:r,l[1]=o;for(var u=2;u<i;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},12804:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-08-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",o={permalink:"/2023-08-15-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-15-node-cli-api.md",source:"@site/blog/2023-08-15-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-08-15T00:00:00.000Z",formattedDate:"August 15, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.29,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-08-15-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"SECP bindings Security Issue Report",permalink:"/2023-08-17-secp-issue"},nextItem:{title:"Hydra Team Update",permalink:"/2023-08-11-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},m="wrapper";function d(t){let{components:e,...a}=t;return(0,r.kt)(m,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-08-02---2023-08-15"},"2023-08-02 - 2023-08-15"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"cardano-node 8.2.1 (pre-release) to SanchoNet"),(0,r.kt)("li",{parentName:"ul"},"Continue moving CLI into era-based top level command structure"),(0,r.kt)("li",{parentName:"ul"},"Wire-up DREP key generation,"),(0,r.kt)("li",{parentName:"ul"},"Fix DREP deregistration certificates"),(0,r.kt)("li",{parentName:"ul"},"Implement Constitutional Committee Key generation on the CLI"),(0,r.kt)("li",{parentName:"ul"},"Introducing era-based protocol parameters on the API"),(0,r.kt)("li",{parentName:"ul"},"Removing depracated functions and types on the API")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/169"},"Update to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.13.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/164"},"Reenable golden tests")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/163"},"#128 DRep key generation")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/160"},"Bump index states")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/159"},"Fix deregistration-certificate: generate deregistration instead of registration certs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/158"},"Structuring legacy code so that era-based code does not depend on it")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/151"},"Plural for command groups")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/144"},"Implement ",(0,r.kt)("inlineCode",{parentName:"a"},"conway governance committee key-hash")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/142"},"Wire up constitution creation in the new era based cli commands")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/140"},"cardano-cli 8.5.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/137"},"Wire up remaining DReps")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/136"},"Implement ",(0,r.kt)("inlineCode",{parentName:"a"},"conway governance committee hot-key-gen")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/127"},"Convert to use ",(0,r.kt)("inlineCode",{parentName:"a"},"tasty-discover")))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/189"},"Release cardano-api 8.13.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/187"},"Fix build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/185"},"cardano-api 8.13.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/181"},"Modify ",(0,r.kt)("inlineCode",{parentName:"a"},"queryGenesisParameters")," so that its type advertises it only returns genesis parameters for the Shelley era")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/180"},"Introduce EraBasedProtocolParametersUpdate")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/173"},"Delete deprecated functions and types")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/171"},"Simplify code with new constraints functions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/170"},"Fix ",(0,r.kt)("inlineCode",{parentName:"a"},"EraCast Certificate"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/168"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.12.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/167"},"Fix committee hot keys")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/164"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.11.1.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/163"},"Fix typo Constitional -> Constitutional"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5430"},"cardano-git-rev: New version for CHaP")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5427"},"Fix broken links in docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5423"},"cardano-node 8.2.1"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5427"},"Fix broken links in docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5423"},"cardano-node 8.2.1"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/5427"},"Fix broken links in docs")),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/127"},"Convert to use ",(0,r.kt)("inlineCode",{parentName:"a"},"tasty-discover")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/da2bedef.86fb9eb3.js b/assets/js/da2bedef.86fb9eb3.js new file mode 100644 index 0000000000..b6eaabb949 --- /dev/null +++ b/assets/js/da2bedef.86fb9eb3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11903],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=i,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},37783:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-02-07-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-02-07-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-07-mithril.md",source:"@site/blog/2024-02-07-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-02-07T00:00:00.000Z",formattedDate:"February 7, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.305,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-02-07-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-02-07-consensus"},nextItem:{title:"Network Team Update",permalink:"/2024-02-05-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the aggregator routes responsible for generating proofs of membership for a list of Cardano transactions and for listing produced artifacts. Additionally, they worked on extending the Mithril client library to support the verification of Cardano transactions, and on the creation of the new Mithril network running on SanchoNet."),(0,i.kt)("p",null,"Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and investigated some flakiness occurring in the end-to-end tests in the CI."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement proof generation route in the aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1467"},"#1467")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement artifact routes in the aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1478"},"#1478")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance ImmutableFile list computation resilience")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1450"},"#1450")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Add WASM client step in Mithril Client multi-platform test")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1408"},"#1408")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance end to end test for Cardano hard forks")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1464"},"#1464")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement transactions verification in client library")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1468"},"#1468")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Create a test network on ",(0,i.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Some end to end tests are flaky in the CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1147"},"#1147")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Handle cancellation of certificate verification in WASM client")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1480"},"#1480")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Upgrade ",(0,i.kt)("inlineCode",{parentName:"strong"},"http")," dependency")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1474"},"#1474")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Generate automatic documentation for CLIs")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1471"},"#1471"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/da7937f0.65c63c0c.js b/assets/js/da7937f0.65c63c0c.js new file mode 100644 index 0000000000..1cb43f4767 --- /dev/null +++ b/assets/js/da7937f0.65c63c0c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[62083],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(n),h=a,d=c["".concat(l,".").concat(h)]||c[h]||m[h]||o;return n?r.createElement(d,i(i({ref:t},p),{},{components:n})):r.createElement(d,i({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:a,i[1]=s;for(var u=2;u<o;u++)i[u]=n[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}h.displayName="MDXCreateElement"},52445:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2022-10-05-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2022-10-05-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-05-consensus.md",source:"@site/blog/2022-10-05-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2022-10-05T00:00:00.000Z",formattedDate:"October 5, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.825,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-10-05-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-10-14-ledger"},nextItem:{title:"DB Sync Team Update",permalink:"/2022-10-04-db-sync"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Executive summary",id:"executive-summary",level:2},{value:"Additional information",id:"additional-information",level:2},{value:"Genesis",id:"genesis",level:3}],p={toc:u},c="wrapper";function m(e){let{components:t,...o}=e;return(0,a.kt)(c,(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"During the past two weeks, the consensus team worked on improving the\nperformance of the ChainSync jumping logic, which is needed for Genesis. We also\nrewrote the implementation of the mempool in the UTxO HD prototype which solved\nthe issues that prevented us from running system level benchmarks. Also on the\nUTxO HD front, we have an improved implementation of the sequence-of-differences\n(a crucial piece of UTxO HD), and we also elaborated a test sign-off list for\nthe UTxO HD feature."),(0,a.kt)("h2",{id:"executive-summary"},"Executive summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"With the latest implementation of ChainSync jumping we are closer to the\nbaseline performance. In particular, the prototype seems to benefit from the\nextra concurrency provided by additional capabilities."),(0,a.kt)("li",{parentName:"ul"},"We rewrote the implementation of the mempool in the UTxO HD prototype. This\nrewrite was required due to performance problems we observed when running the\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/blob/master/Makefile#L51"},"workbench"),".\nThese performance problems prevented us from running system level benchmarks.\nThe rewrite solved these issues. After the ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4049"},"UTxO-HD: mempool\nrewrite")," PR is\nmerged, we will contact the Benchmarking team so that they run the system\nlevel benchmarks."),(0,a.kt)("li",{parentName:"ul"},"The implementation of sequences of differences based on anti-diffs was\nintegrated into the UTxO HD prototype. It is pending\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4036"},"review")," and\nwe also need to run replay and syncing benchmarks to confirm that this will\ndeliver a performance improvement, as observed in our micro-benchmarks."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3944"},"The UTxO HD prototype\ninspection"),"\nresulted in a ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4045"},"list of\ntests"),"\nneeded for consensus to consider the UTxO HD prototype as fully tested.")),(0,a.kt)("h2",{id:"additional-information"},"Additional information"),(0,a.kt)("h3",{id:"genesis"},"Genesis"),(0,a.kt)("p",null,"Benchmarking setup: 50MBit/s, 50ms latency"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Red: baseline"),(0,a.kt)("li",{parentName:"ul"},"Green: Current CSJ prototype, 10 peers, jumps every 3000/f slots.")),(0,a.kt)("p",null,"As ChainSync Jumping involves many concurrent network operations at every jump,\nwe tried to run the node with 6 instead of the default 2 capabilties."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Orange: baseline with 6 capabilities"),(0,a.kt)("li",{parentName:"ul"},"Blue: CSJ prototype with 6 capabilities")),(0,a.kt)("p",null,"This diagram shows the respective syncing progress, starting at Genesis and\ncontinuing a good part into Shelley (with the dashed line indicating the\nByron-to-Shelley transition)."),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(36276).Z,width:"654",height:"459"})),(0,a.kt)("p",null,"Further work includes whether we can tune the prototype to better handle few\ncapabilities, or to adapt the default number of capabilities (potentially just\nwhile syncing)."))}m.isMDXComponent=!0},36276:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/happy-path-csj-prototype-bench-1-2c33ba45f44a086415e703fe8f0f7ad1.svg"}}]); \ No newline at end of file diff --git a/assets/js/daa3e20a.1a59f103.js b/assets/js/daa3e20a.1a59f103.js new file mode 100644 index 0000000000..bd75fbac38 --- /dev/null +++ b/assets/js/daa3e20a.1a59f103.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29177],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),m=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=m(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=m(r),c=a,h=u["".concat(i,".").concat(c)]||u[c]||d[c]||s;return r?n.createElement(h,o(o({ref:t},p),{},{components:r})):n.createElement(h,o({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,o=new Array(s);o[0]=c;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var m=2;m<s;m++)o[m]=r[m];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},34169:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var n=r(87462),a=(r(67294),r(3905));const s={title:"System Test Team Update",slug:"2023-03-27-system-test",authors:"mkoura",tags:["system-test"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-27-system-test",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-27-system-test.md",source:"@site/blog/2023-03-27-system-test.md",title:"System Test Team Update",description:"High level summary",date:"2023-03-27T00:00:00.000Z",formattedDate:"March 27, 2023",tags:[{label:"system-test",permalink:"/tags/system-test"}],readingTime:.785,hasTruncateMarker:!1,authors:[{name:"Martin Kourim",title:"System Test Engineer",url:"https://github.com/mkoura",imageURL:"https://github.com/mkoura.png",key:"mkoura"}],frontMatter:{title:"System Test Team Update",slug:"2023-03-27-system-test",authors:"mkoura",tags:["system-test"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-03-31-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2023-03-24-hydra"}},i={authorsImageUrls:[void 0]},m=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Framework improvements:",id:"framework-improvements",level:3},{value:"Node:",id:"node",level:3},{value:"DB-Sync:",id:"db-sync",level:3}],p={toc:m},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"Since the last update (2023-1-13) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the ",(0,a.kt)("em",{parentName:"p"},"1.35.5")," and ",(0,a.kt)("em",{parentName:"p"},"1.35.6")," releases (and their predecessing release candidates) and ran tests on branch with the ",(0,a.kt)("em",{parentName:"p"},"UTxO-HD")," functionality."),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"framework-improvements"},"Framework improvements:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"improvements in searching for unexpected error messages in log files during test run"),(0,a.kt)("li",{parentName:"ul"},"added support for UTxO-HD testing"),(0,a.kt)("li",{parentName:"ul"},"added support for the new P2P topology format"),(0,a.kt)("li",{parentName:"ul"},"added local cluster variant that has the same properties as mainnet (epoch length, fees, etc.)"),(0,a.kt)("li",{parentName:"ul"},"added preliminary support for the Conway era"),(0,a.kt)("li",{parentName:"ul"},"added support for running tests on the ",(0,a.kt)("em",{parentName:"li"},"Preview")," testnet")),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node-tests/pulls?q=is%3Apr+is%3Aclosed+updated%3A2023-01-13..2023-03-26"},"Full list of closed PRs")),(0,a.kt)("h3",{id:"node"},"Node:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"ran tests on node branch with the UTxO-HD functionality"),(0,a.kt)("li",{parentName:"ul"},"tested the ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/test_results/node/tag_1_35_5.html"},"1.35.5")," release"),(0,a.kt)("li",{parentName:"ul"},"tested the ",(0,a.kt)("a",{parentName:"li",href:"https://tests.cardano.intersectmbo.org/test_results/node/tag_1_35_6.html"},"1.35.6")," release")),(0,a.kt)("h3",{id:"db-sync"},"DB-Sync:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"improvements in db-sync sync tests"),(0,a.kt)("li",{parentName:"ul"},"improvements in db-sync functional tests")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/daace409.faba77e5.js b/assets/js/daace409.faba77e5.js new file mode 100644 index 0000000000..4ea035b0a1 --- /dev/null +++ b/assets/js/daace409.faba77e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[89008],{23947:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>u,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=o(87462),i=(o(67294),o(3905)),a=o(22004);const r={title:"Network Team Update",slug:"2022-09-27-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},u=void 0,s={permalink:"/2022-09-27-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-09-27-network.md",source:"@site/blog/2022-09-27-network.md",title:"Network Team Update",description:"Network Update",date:"2022-09-27T00:00:00.000Z",formattedDate:"September 27, 2022",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.24,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-09-27-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2022-09-30-ledger"},nextItem:{title:"Consensus Team Update",permalink:"/2022-09-20-consensus"}},l={authorsImageUrls:[void 0]},p=[{value:"Network Update",id:"network-update",level:2},{value:"Ouroboros Network",id:"ouroboros-network",level:3},{value:"Ouroboros Consensus",id:"ouroboros-consensus",level:3},{value:"Some older items, which were not announced",id:"some-older-items-which-were-not-announced",level:4},{value:"Cardano Node",id:"cardano-node",level:3},{value:"IO-Sim",id:"io-sim",level:3},{value:"Typed Protocols",id:"typed-protocols",level:3},{value:"Input Endorsers Simulation",id:"input-endorsers-simulation",level:3}],k={toc:p},h="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(h,(0,n.Z)({},k,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"network-update"},"Network Update"),(0,i.kt)("h3",{id:"ouroboros-network"},"Ouroboros Network"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"We finished high and low level ",(0,i.kt)("em",{parentName:"li"},"peer sharing")," design. See\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/wiki/Peer-Sharing-Implementation-Plan"},"Peer Sharing Implementation Plan")),(0,i.kt)("li",{parentName:"ul"},"We started working on low-level design of ",(0,i.kt)("em",{parentName:"li"},"eclipse evasion")," (work in\nprogress)."),(0,i.kt)("li",{parentName:"ul"},"We decided to use ",(0,i.kt)("strong",{parentName:"li"},"peer sharing")," instead of overloaded and ambiguous ",(0,i.kt)("em",{parentName:"li"},"gossip")," term.\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3980"},"PR input-output-hk/ouroboros-network#3980")),(0,i.kt)("li",{parentName:"ul"},"We fixed technical dept\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3905"},"issue input-output-hk/cardano-node#3905")," in\nthe simulation testing of diffusion\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4004"},"PR input-output-hk/cardano-node#4004")),(0,i.kt)("li",{parentName:"ul"},"We deployed all our nodes using our new nix based deployment architecture.\nWhen deploying we found an issue in the\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/issues/3752"},(0,i.kt)("inlineCode",{parentName:"a"},"RTView")),".")),(0,i.kt)("h3",{id:"ouroboros-consensus"},"Ouroboros Consensus"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Recently we found out that the consensus does not log exceptions thrown during\nintiialisation. This was fixed in\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4015"},"PR input-output-hk/ouroboros-network#4015"),"\nAs part of this pull request we also changed that all exceptions rethrown by\nthe connection handler thread are wrapped in ",(0,i.kt)("inlineCode",{parentName:"li"},"ExceptionInHandler"),".")),(0,i.kt)("h4",{id:"some-older-items-which-were-not-announced"},"Some older items, which were not announced"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"We identified and fixed an issue related to socket activation (socket options\nwhere not set for sockets passed through socket activation).\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3979"},"PR input-output-hk/cardano-node#3979"),"\nThis fix will be released in the next ",(0,i.kt)("inlineCode",{parentName:"li"},"cardano-node")," release.")),(0,i.kt)("h3",{id:"cardano-node"},"Cardano Node"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"We extended the NixOs service module so that one can modify ",(0,i.kt)("inlineCode",{parentName:"li"},"socketPath"),",\n",(0,i.kt)("inlineCode",{parentName:"li"},"runtimeDir"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"databasePath"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"traceSocketPathAccept"),",\n",(0,i.kt)("inlineCode",{parentName:"li"},"traceSocketPathConnect")," and ",(0,i.kt)("inlineCode",{parentName:"li"},"stateDir")," options.\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4196"},"PR input-output-hk/cardano-node#4196"))),(0,i.kt)("h3",{id:"io-sim"},"IO-Sim"),(0,i.kt)("p",null,"We resolved a number of issues before release of ",(0,i.kt)("inlineCode",{parentName:"p"},"io-sim")," on hackage:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/2797"},"issue input-output-hk/ouroboros-network#2797")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/2650"},"issue input-output-hk/ouroboros-network#2650")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3436"},"issue input-output-hk/ouroboros-network#3436")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/2588"},"issue input-output-hk/ouroboros-network#2588")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/2587"},"issue input-output-hk/ouroboros-network#2587")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/2586"},"issue input-output-hk/ouroboros-network#2586"))),(0,i.kt)("p",null,"See ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/24"},"PR #24"),"."),(0,i.kt)("p",null,"We also improved experience for contributors of ",(0,i.kt)("inlineCode",{parentName:"p"},"io-sim")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"typed-protocols")," by adding issue templates:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/25"},"PR input-output-hk/io-sim#25"))),(0,i.kt)("h3",{id:"typed-protocols"},"Typed Protocols"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"We pushed a branch which identifies a GHC quirk:\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/typed-protocols/tree/coot/typed-protocols-rewrite-StateToken-problem"},"coot/typed-protocols-rewrite-StateToken-problem"),".\nThat's too be resolved in order to push forward review of the redesign in\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/typed-protocols/pull/3"},"PR input-output-hk/typed-protocols#3"),"."),(0,i.kt)("li",{parentName:"ul"},"As for ",(0,i.kt)("inlineCode",{parentName:"li"},"io-sim"),", we wrote issue templates:\n",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/typed-protocols/pull/11"},"PR input-output-hk/typed-protocols#11"))),(0,i.kt)("h3",{id:"input-endorsers-simulation"},"Input Endorsers Simulation"),(0,i.kt)("p",null,"New features include:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Histograms of block arrival frequency, for both network (inbound) and CPU\n(block validation). This is interesting to check that we're not overloading\nthe CPU block validation capacity, or network link capacity. Or alternatively\nto observe the behaviour in an overload situation if we set the block\ngeneration rate high enough.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'Pie chart of utilisation of TCP links. This shows how small a fraction of\nlinks are being used at any one time, and shows that once the system "warms\nup" and is operating stably, most block delivery is ballistic.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Showing off the new screen layout combinators, that let us put multiple\ncharts, titles etc on screen at once and scale them to whatever screen or\nvideo resolution we like without having to tweak numbers (this example is\nscaled to fit 1080HD video resolution)."))),(0,i.kt)(a.Z,{playing:!0,controls:!0,url:"/p2p-relay-5.mp4",mdxType:"ReactPlayer"}))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/db138d7c.f87f3c90.js b/assets/js/db138d7c.f87f3c90.js new file mode 100644 index 0000000000..7a64a92706 --- /dev/null +++ b/assets/js/db138d7c.f87f3c90.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18634],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=u(n),h=r,m=d["".concat(l,".").concat(h)]||d[h]||c[h]||o;return n?a.createElement(m,i(i({ref:t},p),{},{components:n})):a.createElement(m,i({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:r,i[1]=s;for(var u=2;u<o;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}h.displayName="MDXCreateElement"},78238:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Quarterly Update",slug:"2023-01-18-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/quarterly/2023-01-18-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-01-18-consensus.md",source:"@site/quarterly/2023-01-18-consensus.md",title:"Consensus Quarterly Update",description:"Consensus Quarterly Update",date:"2023-01-18T00:00:00.000Z",formattedDate:"January 18, 2023",tags:[{label:"consensus",permalink:"/quarterly/tags/consensus"}],readingTime:3.205,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Quarterly Update",slug:"2023-01-18-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/quarterly/2023-04-03-ledger"},nextItem:{title:"Network Quarterly Update",permalink:"/quarterly/2023-01-13-network"}},l={authorsImageUrls:[void 0]},u=[{value:"Consensus Quarterly Update",id:"consensus-quarterly-update",level:2},{value:"2022-12 - 2023-01",id:"2022-12---2023-01",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"UTxO HD",id:"utxo-hd",level:4},{value:"Genesis",id:"genesis",level:4},{value:"Support",id:"support",level:4},{value:"Conway era",id:"conway-era",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"UTxO HD",id:"utxo-hd-1",level:4},{value:"Genesis",id:"genesis-1",level:4},{value:"Support",id:"support-1",level:4},{value:"Tech debt",id:"tech-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration-1",level:4},{value:"Risks",id:"risks",level:3},{value:"UTxO HD",id:"utxo-hd-2",level:4}],p={toc:u},d="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"consensus-quarterly-update"},"Consensus Quarterly Update"),(0,r.kt)("h2",{id:"2022-12---2023-01"},"2022-12 - 2023-01"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("p",null,"The prototype is feature complete and thoroughly tested at the consensus level.\nIn particular, we invested a lot of time in writing property-test for the\nmempool, and other crucial new parts of the prototype. Now we are ready to run\nintegration tests and system-level benchmarks."),(0,r.kt)("h4",{id:"genesis"},"Genesis"),(0,r.kt)("p",null,"We identified and fixed a slowdown in cross-era forecasting that was inhibiting\nour efforts to benchmark the ChainSync Jumping prototype. This resulted in a 7%\nspeedup in full sync times in the baseline."),(0,r.kt)("p",null,"We also started prototyping a self-contained implementation of the Genesis\ndynamics (in particular of the parts intentionally not part of the ChainSync\nJumping prototype) that furthered our understanding of subtleties and edge\ncases."),(0,r.kt)("h4",{id:"support"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We worked on designing integration of new VRF and KES crypto into consensus.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Crypto")," class was split into two parts: ",(0,r.kt)("inlineCode",{parentName:"li"},"Crypto")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"HeaderCrypto"),"."),(0,r.kt)("li",{parentName:"ul"},"With the Ledger team's help, we refactored ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-ledger")," to use a proxy\ntype for VRF.")))),(0,r.kt)("h4",{id:"conway-era"},"Conway era"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"PR went through its second review round. It is about to be merged, but it got\ndelayed due to people's availability during Christmas break.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We improved the capabilities of our ",(0,r.kt)("inlineCode",{parentName:"li"},"io-sim")," library, which is key for testing\nand simulating Cardano components."),(0,r.kt)("li",{parentName:"ul"},"We removed thunks from epoch translations in the ledger, which is important\nfor reducing memory consumption of the Cardano node.")),(0,r.kt)("h4",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We added a tutorial on how to instantiate the Consensus layer to run custom\nledgers. This should be a valuable resource to people looking to roll their\nown custom blockchain (either for commercial or research purposes)."),(0,r.kt)("li",{parentName:"ul"},"We added an overview of consensus to the ",(0,r.kt)("a",{parentName:"li",href:"https://ouroboros-network.cardano.intersectmbo.org/"},"top level\ndocumentation")," of\nouroboros-network. This overview describes the consensus components and adds a\nhyperlinked map to the modules documentation.")),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"utxo-hd-1"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Evaluate the extensibility of the prototype. Moving the UTxO to disk is only\nthe first step towards reducing the memory requirements of Cardano node, and\nensuring its long term sustainability. In the future, we plan on moving other\nlarge maps, such as delegation maps. The prototype should be able to\naccommodate these changes without any major modifications."),(0,r.kt)("li",{parentName:"ul"},"Start the integration with other downstream components, such as the wallet and\ndb-sync. The idea is to identify and address any potential pain points that\nmight arise during this integration."),(0,r.kt)("li",{parentName:"ul"},"Run integration tests and system-level benchmarks.")),(0,r.kt)("h4",{id:"genesis-1"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Finish benchmarking and tuning the fast-path ChainSync Jumping prototype"),(0,r.kt)("li",{parentName:"ul"},"Expand and optimize the self-contained implementation of the Disconnect Rule\n(including density comparisons and the LoE)"),(0,r.kt)("li",{parentName:"ul"},"Develop documentation and smoke tests for these components."),(0,r.kt)("li",{parentName:"ul"},"Start modifying the ChainSync Client for the LoP and LoR.")),(0,r.kt)("h4",{id:"support-1"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Help the Network team with diagnosing performance regression in block\nproduction.")),(0,r.kt)("h4",{id:"tech-debt"},"Tech debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Fix property-test failures concerning iterators (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3999"},"#3999")," and\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4183"},"#4183"),").")),(0,r.kt)("h4",{id:"fostering-collaboration-1"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Finish ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4145"},"mapping consensus"),".")),(0,r.kt)("h3",{id:"risks"},"Risks"),(0,r.kt)("h4",{id:"utxo-hd-2"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Moving other parts of the ledger state to disk might require a major redesign\nof the prototype. For instance, if it turns out that the epoch change rules\nrequire access to the ",(0,r.kt)("em",{parentName:"li"},"full")," ledger state. If this is the case, we might\naccept this risk and do the redesign after the initial release of UTxO-HD."),(0,r.kt)("li",{parentName:"ul"},"Integration with downstream clients might require more work than we\nanticipate."),(0,r.kt)("li",{parentName:"ul"},"Access to the benchmarking's team time and resources."),(0,r.kt)("li",{parentName:"ul"},"Benchmarking results might show significant performance degradation, which\nwill require additional work if such performance degradation is not accepted\nby other stakeholders."),(0,r.kt)("li",{parentName:"ul"},"The prototype's performance might not be accepted by other stakeholders. Here\nwe need to clearly communicate that this is necessary to ensure that as the\nblockchain size grows, the node can operate within reasonable memory\nconstraints.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/db3d0db2.5d462f1c.js b/assets/js/db3d0db2.5d462f1c.js new file mode 100644 index 0000000000..1848530775 --- /dev/null +++ b/assets/js/db3d0db2.5d462f1c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[12709],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),p=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(r),d=n,m=c["".concat(l,".").concat(d)]||c[d]||h[d]||a;return r?o.createElement(m,i(i({ref:t},u),{},{components:r})):o.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var p=2;p<a;p++)i[p]=r[p];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}d.displayName="MDXCreateElement"},77801:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var o=r(87462),n=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2024-05-06-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2024-05-06-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-06-network.md",source:"@site/blog/2024-05-06-network.md",title:"Network Team Update",description:"High-level overview of sprint 60",date:"2024-05-06T00:00:00.000Z",formattedDate:"May 6, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.45,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-05-06-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-05-07-performance-and-tracing"},nextItem:{title:"Hydra Team Update",permalink:"/2024-05-03-hydra"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 60",id:"high-level-overview-of-sprint-60",level:2},{value:"Peer-Sharing Improvements",id:"peer-sharing-improvements",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"Churn",id:"churn",level:3},{value:"Minor Improvements",id:"minor-improvements",level:2},{value:"Testing",id:"testing",level:3}],u={toc:p},c="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-60"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+60%22"},"sprint 60")),(0,n.kt)("small",null,(0,n.kt)("i",null,"Edited on 8th of May: new EGK counters will be included in `cardano-node-8.9.3`, added links to `cardano-node-8.9.3` PR and `ouroboros-network-0.15` release.")),(0,n.kt)("h3",{id:"peer-sharing-improvements"},"Peer-Sharing Improvements"),(0,n.kt)("p",null,"We continued working on improving peer sharing. As part of this work light\npeer sharing (e.g. including inbound peers to the known set of outbound\ngovernor), was restructured. Now, sending more peers than what was requested by\nthe peer-sharing client is a protocol error, and the connection will be terminated;\nThis hasn't been a resource attack vector since we always limited the number of\npeers taken by the ",(0,n.kt)("inlineCode",{parentName:"p"},"outbound-governor")," and the number of peers has always been\nlimited by the size of the mux ingress queue reserved for peer-sharing\nmini-protocol. These changes will be released in ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node-8.9.3"),". See\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4869"},"ouroboros-network#4868")),(0,n.kt)("p",null,"We also merged the work on outbound governor counters, which initially started\nas just an extension for peer-sharing counters but turned into a larger\nrefactorisation. We announced it in the previous report. These changes will\nbe included in ",(0,n.kt)("inlineCode",{parentName:"p"},"8.9.3"),". See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4845"},"ouroboros-network#4845"),",\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4861"},"ouroboros-network#4861"),"."),(0,n.kt)("p",null,"Light peer sharing (inbound peers) refactorisation allowed us to refactor the\ninbound governor loop: we restructured it so that the internal state is kept\npure (and thus not shared with other threads), while the public part is\ncomputed incrementally (with good amortised costs and thus leading to good performance) and exposed to other\ncomponents (e.g. the ",(0,n.kt)("inlineCode",{parentName:"p"},"outbound-governor"),"), see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4871"},"ouroboros-network#4871")," ","(","which\nis built on top of ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4869"},"ouroboros-network#4868"),")."),(0,n.kt)("p",null,"The PR ","[cardano-nod#5831]"," integrates ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.15")," with\n",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node-8.9.x")," branch. All included PRs / issues in\n",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.15")," are listed ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/orgs/IntersectMBO/projects/5/views/18"},"here"),"."),(0,n.kt)("h3",{id:"genesis"},"Genesis"),(0,n.kt)("p",null,"We implemented the API needed by the consensus layer for ",(0,n.kt)("inlineCode",{parentName:"p"},"Genesis"),"; see\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4815"},"ouroboros-network#4815"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4846"},"ouroboros-network#4846"),". "),(0,n.kt)("p",null,"We continued working on outbound governor changes to support ",(0,n.kt)("inlineCode",{parentName:"p"},"Genesis"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/3396"},"ouroboros-network#3396")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4813"},"ouroboros-network#4813")," "),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4849"},"ouroboros-network#4849")," ")),(0,n.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,n.kt)("p",null,"Karl Knutsson (","[CF]",") found and fixed some problems related to big-ledger and\npublic root peers. Here's an excerpt from the changelog file:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"updated the big-ledger retry state in case of an exception;"),(0,n.kt)("li",{parentName:"ul"},"reset public root retry state when transitioning between ",(0,n.kt)("inlineCode",{parentName:"li"},"LedgerStateJudgements"),";"),(0,n.kt)("li",{parentName:"ul"},"reduced public root retry timer;"),(0,n.kt)("li",{parentName:"ul"},"don't classify a config file with public-root/bootstrap-peers IP addresses only\nas a DNS error.\nSee ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4867"},"ouroboros-network#4867"),".")),(0,n.kt)("h3",{id:"churn"},"Churn"),(0,n.kt)("p",null,"We merged a refactorisation which synchronises churn with the outbound\ngovernor, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4617"},"ouroboros-network#4617"),"."),(0,n.kt)("h2",{id:"minor-improvements"},"Minor Improvements"),(0,n.kt)("p",null,"A few other minor improvements were merged:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"updated tools used by ",(0,n.kt)("inlineCode",{parentName:"li"},"nix"),", see ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4860"},"ouroboros-network#4860"),";"),(0,n.kt)("li",{parentName:"ul"},"updated pull request template, see ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4862"},"ouroboros-network#4862"))),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("p",null,"We added ",(0,n.kt)("inlineCode",{parentName:"p"},"quickcheck-monoids")," package and also submitted an upstream patch to\n",(0,n.kt)("inlineCode",{parentName:"p"},"QuickCheck")," to include a version of the standard ",(0,n.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/base-4.19.1.0/docs/Data-Monoid.html#t:All"},(0,n.kt)("inlineCode",{parentName:"a"},"All"))," / ",(0,n.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/base-4.19.1.0/docs/Data-Monoid.html#t:Any"},(0,n.kt)("inlineCode",{parentName:"a"},"Any"))," monoids, which\nare helpful when writing more complex properties. We will use\n",(0,n.kt)("inlineCode",{parentName:"p"},"quickcheck-monoids")," until the upstream PR will be released. It will be\navailable from ",(0,n.kt)("a",{parentName:"p",href:"https://chap.intersectmbo.org/"},"CHaP"),". See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/nick8325/quickcheck/pull/397"},"quickcheck#397"),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/db50202c.13cfbc7f.js b/assets/js/db50202c.13cfbc7f.js new file mode 100644 index 0000000000..3b9f39a114 --- /dev/null +++ b/assets/js/db50202c.13cfbc7f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[63566],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=c(r),d=a,g=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(g,l(l({ref:t},s),{},{components:r})):n.createElement(g,l({ref:t},s))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[m]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},99900:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-05-26-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-05-26-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-26-goedel.md",source:"@site/blog/2023-05-26-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-05-26T00:00:00.000Z",formattedDate:"May 26, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.39,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-05-26-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-05-31-performance-and-tracing"},nextItem:{title:"Hydra Team Update",permalink:"/2023-05-26-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],s={toc:c},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the team has been working on final revisions for the\npre-proceedings versions of two ICE 2023 papers."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Porting Ouroboros Praos formalisation to new application layer.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing pre-proceedings version of two ICE 2023 papers.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The team is hiring a performance engineering intern - ",(0,a.kt)("a",{parentName:"p",href:"https://apply.workable.com/io-global/j/BFEC5B0AFF/"},"https://apply.workable.com/io-global/j/BFEC5B0AFF/")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/db8fcc67.32b8a17e.js b/assets/js/db8fcc67.32b8a17e.js new file mode 100644 index 0000000000..a1dad98ac2 --- /dev/null +++ b/assets/js/db8fcc67.32b8a17e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1099],{43384:a=>{a.exports=JSON.parse('{"label":"performance-tracing","permalink":"/tags/performance-tracing","allTagsPath":"/tags","count":34}')}}]); \ No newline at end of file diff --git a/assets/js/dbfcd384.55853d69.js b/assets/js/dbfcd384.55853d69.js new file mode 100644 index 0000000000..2ababb10da --- /dev/null +++ b/assets/js/dbfcd384.55853d69.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8721],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},39763:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-04-30-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-04-30-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-30-mithril.md",source:"@site/blog/2024-04-30-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-04-30T00:00:00.000Z",formattedDate:"April 30, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.495,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-04-30-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-05-01-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-04-27-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team prepared a new pre-release distribution ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2418.1-pre"},(0,i.kt)("inlineCode",{parentName:"a"},"2418.1-pre")),", which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes to prevent memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet")," by leveraging the compression of the transaction Merkle tree using sub-Merkle trees based on transaction block ranges during signature and proving. Additionally, they implemented a stream mechanism for importing transactions into the signer and aggregator stores."),(0,i.kt)("p",null,"Finally, the team started implementing a global Mithril networks configuration file and continued investigating some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Created a pre-release for the new distribution ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2418.1-pre"},(0,i.kt)("inlineCode",{parentName:"a"},"2418.1-pre"))),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Store Block Range Merkle roots in signer and aggregator databases")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1633"},"#1633")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Stream import of Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1646"},"#1646")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Memory leak in Cardano transactions signature/proof")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1629"},"#1629")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Handle unparsed blocks in Cardano transactions parser")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1567"},"#1567")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Use Block Range Merkle roots to sign Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1634"},"#1634")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Use Block Range Merkle roots to prove Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1635"},"#1635")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Use SQLite transactions when inserting ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions")," and ",(0,i.kt)("inlineCode",{parentName:"strong"},"Block Range Roots"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1656"},"#1656")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Add Mithril networks configurations in ",(0,i.kt)("inlineCode",{parentName:"strong"},"networks.json"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1638"},"#1638")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," supports retrieving the Chain Point of the tip of the chain")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1589"},"#1589")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Add section for manual setup of squid in SPO guide")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1610"},"#1610")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dc3c29da.c40953c9.js b/assets/js/dc3c29da.c40953c9.js new file mode 100644 index 0000000000..30e8692b81 --- /dev/null +++ b/assets/js/dc3c29da.c40953c9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58623],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},22298:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Benchmarking -- Node 8.9.3",slug:"2024-05-performance-8.9.3",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},i=void 0,l={permalink:"/reports/2024-05-performance-8.9.3",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-05-performance-8.9.3.md",source:"@site/reports/2024-05-performance-8.9.3.md",title:"Benchmarking -- Node 8.9.3",description:"Setup",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"benchmarking-reports",permalink:"/reports/tags/benchmarking-reports"}],readingTime:2.69,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Benchmarking -- Node 8.9.3",slug:"2024-05-performance-8.9.3",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},prevItem:{title:"Benchmarking -- Node 8.9.1",permalink:"/reports/2024-03-performance-8.9.1"},nextItem:{title:"Benchmarking -- Node 8.12.1",permalink:"/reports/2024-06-performance-8.12.1"}},s={authorsImageUrls:[void 0]},c=[{value:"Setup",id:"setup",level:2},{value:"Observations",id:"observations",level:2},{value:"Resource Usage",id:"resource-usage",level:3},{value:"Forging Loop",id:"forging-loop",level:3},{value:"Peer propagation",id:"peer-propagation",level:3},{value:"End-to-end propagation",id:"end-to-end-propagation",level:3},{value:"Conclusion",id:"conclusion",level:3},{value:"Contact",id:"contact",level:2},{value:"Attachments",id:"attachments",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"setup"},"Setup"),(0,a.kt)("p",null,"As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1")," - baseline from a previous mainnet release"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," - the current mainnet release")),(0,a.kt)("p",null,"For each version, we're gathering various metrics under 2 different workloads:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"value-only"),": Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"Plutus"),": Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.")),(0,a.kt)("p",null,"Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\nwere performed in the Babbage era."),(0,a.kt)("h2",{id:"observations"},"Observations"),(0,a.kt)("p",null,"These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet. "),(0,a.kt)("h3",{id:"resource-usage"},"Resource Usage"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload, CPU usage increases slightly on ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3"),": 4% for Process, 3% for Mutator and 8% for GC."),(0,a.kt)("li",{parentName:"ol"},"Additionally, Allocation rate and minor GCs increase slightly by 3% each."),(0,a.kt)("li",{parentName:"ol"},"Under Plutus workload only, the GC live dataset increases by 10% or 318MB."),(0,a.kt)("li",{parentName:"ol"},"CPU 85% spans increase by 14% of slot duration under value workload, whereas they shorten by 5% of slot duration under Plutus workload.")),(0,a.kt)("p",null,"Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness."),(0,a.kt)("h3",{id:"forging-loop"},"Forging Loop"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"There are no significant changes to metrics related to block forging.")),(0,a.kt)("p",null,"The metric ",(0,a.kt)("em",{parentName:"p"},"'Slot start to announced'")," (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header."),(0,a.kt)("h3",{id:"peer-propagation"},"Peer propagation"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Block Fetch duration improves by 7ms (or 2%) under value workload, and by 4ms (or 3%) under Plutus workload."),(0,a.kt)("li",{parentName:"ol"},"Under Plutus workload, Fetched to sending improves by 2ms (or 5%).")),(0,a.kt)("h3",{id:"end-to-end-propagation"},"End-to-end propagation"),(0,a.kt)("p",null,"This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. "),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload, cluster adoption times exhibit a minor improvement (1%) up to the 80th centile on ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3"),"."),(0,a.kt)("li",{parentName:"ol"},"Under Plutus workload, we can observe a minor improvement overall (1% - 2%), whilst full adoption is unchanged.")),(0,a.kt)("h3",{id:"conclusion"},"Conclusion"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The performance changes measured between ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1")," are very minor, with ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," improving slightly over ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1"),"."),(0,a.kt)("li",{parentName:"ul"},"Mainnnet performance of ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3")," is expected to be akin to ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1"),"."),(0,a.kt)("li",{parentName:"ul"},"We have not observed any performance regression being introduced in ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.3"),".")),(0,a.kt)("h2",{id:"contact"},"Contact"),(0,a.kt)("p",null,"As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. "),(0,a.kt)("p",null,"We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future."),(0,a.kt)("h2",{id:"attachments"},"Attachments"),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"value-only workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(72895).Z},"here"),"."),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"Plutus workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(98616).Z},"here"),"."),(0,a.kt)("p",null,"NB. The baseline for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.1")," had to be re-established due to changes in the underlying network infrastructure. This means, absolute values may differ from the previous measurements taken from that version."))}d.isMDXComponent=!0},98616:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.9.3.plutus-afc8f7bbf2f6f18fb56aede6169fff68.pdf"},72895:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-8.9.3.value-only-f08f2a51ca31fad16e2cb3e3ad28ee42.pdf"}}]); \ No newline at end of file diff --git a/assets/js/dc590d3d.28344601.js b/assets/js/dc590d3d.28344601.js new file mode 100644 index 0000000000..2c2653684f --- /dev/null +++ b/assets/js/dc590d3d.28344601.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21439],{5524:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/2","page":2,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra","nextPage":"/tags/hydra/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/dceb6e64.b6cf9fe4.js b/assets/js/dceb6e64.b6cf9fe4.js new file mode 100644 index 0000000000..1b6891c8a3 --- /dev/null +++ b/assets/js/dceb6e64.b6cf9fe4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18242],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(n),m=r,h=c["".concat(l,".").concat(m)]||c[m]||d[m]||i;return n?a.createElement(h,o(o({ref:t},p),{},{components:n})):a.createElement(h,o({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,o[1]=s;for(var u=2;u<i;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},22300:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const i={title:"Consensus Quarterly Update",slug:"2022-11-15-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,s={permalink:"/quarterly/2022-11-15-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2022-11-15-consensus.md",source:"@site/quarterly/2022-11-15-consensus.md",title:"Consensus Quarterly Update",description:"Consensus Quarterly Update",date:"2022-11-15T00:00:00.000Z",formattedDate:"November 15, 2022",tags:[{label:"consensus",permalink:"/quarterly/tags/consensus"}],readingTime:3.655,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Quarterly Update",slug:"2022-11-15-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Open-Source Update",permalink:"/quarterly/2023-01-13-open-source"},nextItem:{title:"Network Team Update",permalink:"/quarterly/2022-11-09-network"}},l={authorsImageUrls:[void 0]},u=[{value:"Consensus Quarterly Update",id:"consensus-quarterly-update",level:2},{value:"2022-09 - 2022-11",id:"2022-09---2022-11",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"UTxO HD",id:"utxo-hd",level:4},{value:"Genesis",id:"genesis",level:4},{value:"Conway era",id:"conway-era",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"UTxO HD",id:"utxo-hd-1",level:4},{value:"Genesis",id:"genesis-1",level:4},{value:"Tech debt",id:"tech-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration-1",level:4}],p={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"consensus-quarterly-update"},"Consensus Quarterly Update"),(0,r.kt)("h2",{id:"2022-09---2022-11"},"2022-09 - 2022-11"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"As a consequence of the errors observed when running distributed mempool\nbenchmarks, we re-designed the UTxO HD mempool integration, which fixed these\nerrors and lead to a simpler and more maintainable design.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We focused on increasing test coverage for the UTxO-HD prototype. In\nparticular, we added property tests for:"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Backing store (work ongoing)"),(0,r.kt)("li",{parentName:"ul"},"Era transitions"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"The property tests we added uncovered several bugs, which is a great result\ngiven the exponential increase in the cost of finding bugs as they are closer\nto deployment.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"One of the errors found by our tests required us to work on improvements in\nthe Haskell bindings for LMDB. This work is ongoing.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We started working on the mempool property tests that will exercise the new\ncode paths that UTxO HD introduced.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'We developed, benchmarked and tested an implementation of sequences of\ndifferences based on "anti-diffs". Performance results of diff sequence\noperations show that we achieved a speedup of about ',(0,r.kt)("inlineCode",{parentName:"p"},"4x")," across several\nscenarios. Note: this speedup is taking into account diff sequence operations\nonly, so the consensus-wide speedup is less than ",(0,r.kt)("inlineCode",{parentName:"p"},"4x"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'We integrated the "anti-diff" prototype into the UTxO HD feature branch.'))),(0,r.kt)("h4",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We wrote a simulator that demonstrates soundness of an abstract implementation\nof the new chain selection rule."),(0,r.kt)("li",{parentName:"ul"},"We elaborated a draft specification for the Genesis implementation (currently\nawaiting feedback from other architects)."),(0,r.kt)("li",{parentName:"ul"},"We elaborated a draft specification for the ChainSync Jumping optimization. In\nparticular, this includes a proof sketch that the latter preserves liveness\nand safety in all cases."),(0,r.kt)("li",{parentName:"ul"},"With the Networking team, we co-designed the eclipse avoidance mechanism,\nspecifically its coherence with the Genesis implementation plan's security\nand its dependence on the new ChainSync Jumping optimization."),(0,r.kt)("li",{parentName:"ul"},"We implemented a prototype for ChainSync Jumping. Initial benchmarks showed a\nperformance degradation wrt the baseline. Our optimization attempts so far\nhave brought the performance closer to the baseline, but not yet to parity.")),(0,r.kt)("h4",{id:"conway-era"},"Conway era"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We did most of the heavy lifting required to integrate the Conway era into the\nConsensus layer.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We started working on enabling CI nightly tests, which revealed several test\nfailures due to thunks being found it data structures used by the ledger and\nconsensus. We made a lot of progress fixing those thunk errors, but some\nerrors still remain.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We elaborated a ",(0,r.kt)("inlineCode",{parentName:"p"},"db-analyser")," benchmark for the ledger operations. This led us\nto the identification of high processing time at epoch boundaries, and we\ncould not observe any performance degradation that can be attributed to era\nchanges.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed a source of flakiness in the ChainDB QSM test.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We clarified a common source of confusion around VRF tie-breaking and\ncross-era chain selection.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"We fixed a bug in the maximum-allowed ledger major protocol version."))),(0,r.kt)("h4",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We spent time making ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-updates")," the central source of information for\nthe core teams stakeholders."),(0,r.kt)("li",{parentName:"ul"},"We went through the Galois gap analysis and extracted actionable points to\ntake on next."),(0,r.kt)("li",{parentName:"ul"},"Bart and Yogesh continued with their onboarding and stated making substantial\ncontributions to consensus.")),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"utxo-hd-1"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Finish the mempool property tests."),(0,r.kt)("li",{parentName:"ul"},"Benchmark the latest version of the prototype."),(0,r.kt)("li",{parentName:"ul"},"Elaborate a document that describes new integration test scenarios and pass it\nto the SDET team."),(0,r.kt)("li",{parentName:"ul"},"Bring query UTxO by address command performance on par with the baseline\nversion.")),(0,r.kt)("h4",{id:"genesis-1"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Receive and incorporate Duncan's feedback on the first draft specification for\nthe Genesis implementation."),(0,r.kt)("li",{parentName:"ul"},"Begin prototyping the first genesis implementation, unless the first draft\nneeds major changes."),(0,r.kt)("li",{parentName:"ul"},"Draft a second revision of the Genesis report."),(0,r.kt)("li",{parentName:"ul"},"Review the second revision with a wider audience, which includes at least\nAlexander Russell. That feedback will drive a third and hopefully final\nrevision."),(0,r.kt)("li",{parentName:"ul"},"Investigate how to mitigate the ~30% slowdown we have observed so far in the\nChainSync jumping prototype, and try to mitigate it. In particular, we might\nneed to optimize the existing BlockFetch logic.")),(0,r.kt)("h4",{id:"tech-debt"},"Tech debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Enabling nightly CI tests.")),(0,r.kt)("h4",{id:"fostering-collaboration-1"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Merge the tutorial document Galois wrote; requires CI integration."),(0,r.kt)("li",{parentName:"ul"},"Come up with our own documentation improvements, many of which were suggested\nin the Galois gap analysis."),(0,r.kt)("li",{parentName:"ul"},"Try to hire a new team member.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dd1ee47a.2d6b57b1.js b/assets/js/dd1ee47a.2d6b57b1.js new file mode 100644 index 0000000000..a2087cea6d --- /dev/null +++ b/assets/js/dd1ee47a.2d6b57b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24519],{47291:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra/page/13","page":13,"postsPerPage":5,"totalPages":16,"totalCount":79,"previousPage":"/tags/hydra/page/12","nextPage":"/tags/hydra/page/14","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/dd6797bc.568952a0.js b/assets/js/dd6797bc.568952a0.js new file mode 100644 index 0000000000..f075680c32 --- /dev/null +++ b/assets/js/dd6797bc.568952a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52016],{52262:e=>{e.exports=JSON.parse('{"permalink":"/page/39","page":39,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/38","nextPage":"/page/40","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ddcb8bff.2ee70d29.js b/assets/js/ddcb8bff.2ee70d29.js new file mode 100644 index 0000000000..acc9710db0 --- /dev/null +++ b/assets/js/ddcb8bff.2ee70d29.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54642],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=i.createContext({}),s=function(e){var t=i.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=s(e.components);return i.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),m=s(r),c=n,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||a;return r?i.createElement(d,l(l({ref:t},u),{},{components:r})):i.createElement(d,l({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,l=new Array(a);l[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var s=2;s<a;s++)l[s]=r[s];return i.createElement.apply(null,l)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},15811:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>s});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-11-22-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-11-22-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-22-mithril.md",source:"@site/blog/2023-11-22-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-11-22T00:00:00.000Z",formattedDate:"November 22, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.895,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-11-22-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-11-22-ledger"},nextItem:{title:"Initial CIP 1694 Security Analysis and Responses",permalink:"/2023-11-20-cip1694"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team made progress in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, completing the first prototype implementation of the Mithril relay, which enables P2P signature broadcasting. They also made progress in optimizing the performance of the aggregator. Additionally, the team completed some enhancements on the CI/CD that will help manually deploy experimental Mithril networks for SanchoNet, as well as for the new P2P network layer."),(0,n.kt)("p",null,"Finally, they investigated occasional runtime issues causing delays for certain SPOs and started preparing for the next distribution release."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Prototype a P2P relay with ",(0,n.kt)("inlineCode",{parentName:"strong"},"libp2p"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1326"},"#1326")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Enhance aggregator REST API performances")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1327"},"#1327")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Signer runtime is stuck for some SPO")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1312"},"#1312")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Manually deploy a test Mithril network")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1356"},"#1356")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Make Cardano node version custom in CI/CD")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1355"},"#1355")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Support P2P relay in infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1361"},"#1361")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"mithril-client fails to extract archive")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1352"},"#1352"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ddce0bff.29009505.js b/assets/js/ddce0bff.29009505.js new file mode 100644 index 0000000000..c838255fd4 --- /dev/null +++ b/assets/js/ddce0bff.29009505.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[31005],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(r),m=a,h=d["".concat(p,".").concat(m)]||d[m]||s[m]||o;return r?n.createElement(h,l(l({ref:t},c),{},{components:r})):n.createElement(h,l({ref:t},c))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var u=2;u<o;u++)l[u]=r[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},59319:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2023-07-21-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-07-21-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-21-sre.md",source:"@site/blog/2023-07-21-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-07-21T00:00:00.000Z",formattedDate:"July 21, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:.685,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-07-21-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-07-21-ledger"},nextItem:{title:"Goedel Team Update",permalink:"/2023-07-20-goedel"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-world",id:"cardano-world",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3}],c={toc:u},d="wrapper";function s(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,a.kt)("p",null,"Some notable recent improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Re-spin sanchonet for testing a new node version followed by fork to Conway"),(0,a.kt)("li",{parentName:"ul"},"Deploying a sanchonet compatible faucet to sanchonet"),(0,a.kt)("li",{parentName:"ul"},"Migrate shelley qa legacy environment to cardano-world")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Bump iohk-nix for sanchonet and shelley qa environment updates: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5406"},"cardano-node-pull-5406"))),(0,a.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Mainnet relays are 50% migrated to p2p topology and 1 relay per region dedicated for ledger peers: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/31cce1a...496f085"},"cardano-ops-compare"))),(0,a.kt)("h3",{id:"cardano-world"},"Cardano-world"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Cardano-node p2p all local roots entrypoint option was added: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/102"},"cardano-world-pull-102")),(0,a.kt)("li",{parentName:"ul"},"Migrate shelley qa legacy environment to cardano-world: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/103"},"cardano-world-pull-103")),(0,a.kt)("li",{parentName:"ul"},"Create a sanchonet compatible faucet: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-world/pull/91"},"cardano-world-pull-91"))),(0,a.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Migrate shelley qa legacy environment to cardano-world: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/549"},"iohk-nix-pull-549")),(0,a.kt)("li",{parentName:"ul"},"Drop legacy byron environment parameters: ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/550"},"iohk-nix-pull-550"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/de3a87a3.218b5ba8.js b/assets/js/de3a87a3.218b5ba8.js new file mode 100644 index 0000000000..9a69f5b40b --- /dev/null +++ b/assets/js/de3a87a3.218b5ba8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[16224],{86398:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/de42301d.7b153f14.js b/assets/js/de42301d.7b153f14.js new file mode 100644 index 0000000000..1593ba9545 --- /dev/null +++ b/assets/js/de42301d.7b153f14.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29890],{49189:e=>{e.exports=JSON.parse('{"permalink":"/tags/network/page/2","page":2,"postsPerPage":5,"totalPages":7,"totalCount":35,"previousPage":"/tags/network","nextPage":"/tags/network/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/de4537b5.c752e517.js b/assets/js/de4537b5.c752e517.js new file mode 100644 index 0000000000..0aaacb2b39 --- /dev/null +++ b/assets/js/de4537b5.c752e517.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[41923],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,g=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(g,l(l({ref:t},m),{},{components:r})):n.createElement(g,l({ref:t},m))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},52161:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-10-27-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-10-27-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-27-goedel.md",source:"@site/blog/2023-10-27-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-10-27T00:00:00.000Z",formattedDate:"October 27, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.305,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-10-27-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-11-01-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-10-27-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and writing a paper\non performance modelling"),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"completing work on chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"outline for JLAMP journal paper submission")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"analysing timeouts"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/de790939.56539338.js b/assets/js/de790939.56539338.js new file mode 100644 index 0000000000..1c67124867 --- /dev/null +++ b/assets/js/de790939.56539338.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[42185],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){l(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function u(e,t){if(null==e)return{};var a,r,l=function(e,t){if(null==e)return{};var a,r,l={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var i=r.createContext({}),p=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,i=e.parentName,d=u(e,["components","mdxType","originalType","parentName"]),m=p(a),s=l,h=m["".concat(i,".").concat(s)]||m[s]||c[s]||n;return a?r.createElement(h,o(o({ref:t},d),{},{components:a})):r.createElement(h,o({ref:t},d))}));function h(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,o=new Array(n);o[0]=s;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[m]="string"==typeof e?e:l,o[1]=u;for(var p=2;p<n;p++)o[p]=a[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}s.displayName="MDXCreateElement"},99073:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>c,frontMatter:()=>n,metadata:()=>u,toc:()=>p});var r=a(87462),l=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2023-04-21-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,u={permalink:"/2023-04-21-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-21-ledger.md",source:"@site/blog/2023-04-21-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-04-21T00:00:00.000Z",formattedDate:"April 21, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:.905,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-04-21-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-04-21-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2023-04-20-mithril"}},i={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway ledger era",id:"conway-ledger-era",level:3},{value:"Haddocks hosted on github pages",id:"haddocks-hosted-on-github-pages",level:3},{value:"Small improvements to the API",id:"small-improvements-to-the-api",level:3},{value:"Technical Debt",id:"technical-debt",level:3}],d={toc:p},m="wrapper";function c(e){let{components:t,...a}=e;return(0,l.kt)(m,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"We continued to make progress on CIP-1694 and the conway ledger era.\nIn particular, the conway era now supports Plutus V3.\nFinally, we made small improvements to the ledger API and now host\nour Haskell code documentation (haddocks) on github pages."),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway-ledger-era"},"Conway ledger era"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3365"},"pull-3365"),"] - Support for Plutus V3."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3368"},"pull-3368"),"] - Conway genesis fix."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3369"},"pull-3369"),"] - Added some governance ledger state."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3372"},"pull-3372"),"] - Work on the conway delegation certificates."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3384"},"pull-3384"),"] - Rename.")),(0,l.kt)("h3",{id:"haddocks-hosted-on-github-pages"},"Haddocks hosted on github pages"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3385"},"pull-3385"),"] ")),(0,l.kt)("h3",{id:"small-improvements-to-the-api"},"Small improvements to the API"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3366"},"pull-3366"),"]")),(0,l.kt)("h3",{id:"technical-debt"},"Technical Debt"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3367"},"pull-3367"),"] Fix cost model json instances."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3371"},"pull-3371"),"] UMap cleanup."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3373"},"pull-3373"),"] Upgrade to ghc 9.2.7 and cabal 3.10.1."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3375"},"pull-3375"),"] Sadly, we had to revert the ",(0,l.kt)("inlineCode",{parentName:"li"},"TICKF")," optimizations. There was a regression we do not yet understand."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3377"},"pull-3377"),"] Fix cabal warnings."),(0,l.kt)("li",{parentName:"ul"},"[",(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3383"},"pull-3383"),"] Fix multi-asset test.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/decc8fa8.e4e8b977.js b/assets/js/decc8fa8.e4e8b977.js new file mode 100644 index 0000000000..b244c36480 --- /dev/null +++ b/assets/js/decc8fa8.e4e8b977.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[57918],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=p(a),m=n,d=u["".concat(s,".").concat(m)]||u[m]||c[m]||i;return a?r.createElement(d,o(o({ref:t},h),{},{components:a})):r.createElement(d,o({ref:t},h))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<i;p++)o[p]=a[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},43654:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-12-01-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-12-01-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-01-hydra.md",source:"@site/blog/2023-12-01-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-12-01T00:00:00.000Z",formattedDate:"December 1, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.865,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-12-01-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2023-12-04-performance-and-tracing"},nextItem:{title:"Consensus Team Update",permalink:"/2023-11-29-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:p},u="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team conducted a packed Monthly Review meeting,\nfeaturing demonstrations and the preparation of the monthly report. They\naddressed flakiness in tests and enhanced the logs json schema,\nimproving overall test reliability. Additionally, the team successfully\nbuilt MacOS ARM64 (",(0,n.kt)("inlineCode",{parentName:"p"},"aarch64-darwin"),") binaries in CI, expanding platform\nsupport. They further improved the network configuration by detecting\nincompatible persisted states, contributing to overall system\nrobustness. Finally, the team released version 0.14.0, highlighting\ntheir commitment to delivering regular updates and improvements."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly Review\n",(0,n.kt)("a",{parentName:"li",href:"https://drive.google.com/file/d/1-iv8IveUzA2KrJV_Kqrgx4ts05Ow0zjM"},"meeting"),"\npacked with demonstrations and prepared monthly report\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1189"},"#","1189")),(0,n.kt)("li",{parentName:"ul"},"Fixed several flaky tests and improved the logs json schema\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1188"},"#","1188"),(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1190"},"#","1190"),(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1192"},"#","1192")),(0,n.kt)("li",{parentName:"ul"},"Built MacOS ARM64 (",(0,n.kt)("inlineCode",{parentName:"li"},"aarch64-darwin"),") binaries in CI\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1182"},"#","1182")),(0,n.kt)("li",{parentName:"ul"},"Improved network configuration by detecting incompatible persisted\nstates ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1174"},"#","1174")),(0,n.kt)("li",{parentName:"ul"},"Released version 0.14.0")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Start work on incremental decommit"),(0,n.kt)("li",{parentName:"ul"},"Continue shepherding contributed PRs to completion"),(0,n.kt)("li",{parentName:"ul"},"Finish stateless-observation work"),(0,n.kt)("li",{parentName:"ul"},"Open a head on a Conway network")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dee5d2d9.22a85d6d.js b/assets/js/dee5d2d9.22a85d6d.js new file mode 100644 index 0000000000..374905b5ae --- /dev/null +++ b/assets/js/dee5d2d9.22a85d6d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52560],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>k});var r=o(67294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?a(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):a(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function s(e,t){if(null==e)return{};var o,r,n=function(e,t){if(null==e)return{};var o,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)o=a[r],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)o=a[r],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var p=r.createContext({}),l=function(e){var t=r.useContext(p),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=l(o),h=n,k=c["".concat(p,".").concat(h)]||c[h]||d[h]||a;return o?r.createElement(k,i(i({ref:t},u),{},{components:o})):r.createElement(k,i({ref:t},u))}));function k(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,i=new Array(a);i[0]=h;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var l=2;l<a;l++)i[l]=o[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,o)}h.displayName="MDXCreateElement"},46159:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=o(87462),n=(o(67294),o(3905));const a={title:"Network Team Update",slug:"2023-08-18-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-08-18-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-network.md",source:"@site/blog/2023-08-18-network.md",title:"Network Team Update",description:"High-level overview of sprint 42",date:"2023-08-18T00:00:00.000Z",formattedDate:"August 18, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.09,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-08-18-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-08-18-ledger"},nextItem:{title:"SRE Team Update",permalink:"/2023-08-18-sre"}},p={authorsImageUrls:[void 0]},l=[{value:"High-level overview of sprint 42",id:"high-level-overview-of-sprint-42",level:2},{value:"Eclipse Evasion",id:"eclipse-evasion",level:3},{value:"CDDL specs for protocol codecs",id:"cddl-specs-for-protocol-codecs",level:3},{value:"Ouroboros-Network-Framework API changes",id:"ouroboros-network-framework-api-changes",level:3},{value:"Nix setup (CI)",id:"nix-setup-ci",level:3},{value:"Other contributions",id:"other-contributions",level:2},{value:"Cardano Network Service Assurance",id:"cardano-network-service-assurance",level:3},{value:"Galois Review",id:"galois-review",level:3},{value:"CI",id:"ci",level:3},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3}],u={toc:l},c="wrapper";function d(e){let{components:t,...o}=e;return(0,n.kt)(c,(0,r.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-42"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+42%22"},"sprint 42")),(0,n.kt)("h3",{id:"eclipse-evasion"},"Eclipse Evasion"),(0,n.kt)("p",null,"We merged and released a new version of the ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," package (version\n",(0,n.kt)("inlineCode",{parentName:"p"},"0.9.0.0"),") which includes ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3886"},"big ledger peers feature"),".\nThis is the primary peer selection mechanism to defend against eclipses. We\nalso prepared a PR to updated ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/165"},(0,n.kt)("inlineCode",{parentName:"a"},"ouroboros-cosnensus")),"\nand ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ekg-forward/pull/30"},(0,n.kt)("inlineCode",{parentName:"a"},"ekg-forward"))," packages."),(0,n.kt)("h3",{id:"cddl-specs-for-protocol-codecs"},"CDDL specs for protocol codecs"),(0,n.kt)("p",null,"We made the ",(0,n.kt)("inlineCode",{parentName:"p"},"cddl")," spec for network codec more inline with the implementation\nwhich is highly polymorphic. ",(0,n.kt)("inlineCode",{parentName:"p"},"cddl")," doesn't have the notion of polymorphism,\nbut has ",(0,n.kt)("inlineCode",{parentName:"p"},"any")," which can generate any valid cbor term. We matched it with an\n",(0,n.kt)("inlineCode",{parentName:"p"},"Any")," type on the Haskell side and made all remaining tests & specs use it.\nThis simplified the specifications and made it easier to understand which parts\nare defined in the spec, and which parts are left unspecified. See\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4595"},"ouroboros-network#4595"),"."),(0,n.kt)("h3",{id:"ouroboros-network-framework-api-changes"},"Ouroboros-Network-Framework API changes"),(0,n.kt)("p",null,"We also released ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network-framework")," and other network components.\nThe ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network-framework")," package contains a redesign of API exposed to\n",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),". We consolidated, cleaned it and made it easier to\nextend in the future if there will be new arguments that need to be passed to\nmini-protocol initiator and responders which comes from the low-level network\nlayer."),(0,n.kt)("h3",{id:"nix-setup-ci"},"Nix setup (CI)"),(0,n.kt)("p",null,"We also made a major review of our ",(0,n.kt)("inlineCode",{parentName:"p"},"nix")," setup. With help from our DevX team\nwe ended up with a clean ",(0,n.kt)("inlineCode",{parentName:"p"},"flake.nix")," file which can:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"compile & test the code on ",(0,n.kt)("inlineCode",{parentName:"li"},"x86_64-linux"),", ",(0,n.kt)("inlineCode",{parentName:"li"},"x86_64-darwin")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"aarch64-darwin")),(0,n.kt)("li",{parentName:"ul"},"cross-compile to ",(0,n.kt)("inlineCode",{parentName:"li"},"Windows")," on ",(0,n.kt)("inlineCode",{parentName:"li"},"x86_64-linux")," ")),(0,n.kt)("p",null,"And provides a shell which contains all the build tools, including ",(0,n.kt)("inlineCode",{parentName:"p"},"ghc-9.6"),",\n",(0,n.kt)("inlineCode",{parentName:"p"},"hls"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"cddl"),", and more. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4640"},"ouroboros-network#4640"),",\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4643"},"ouroboros-network#4643"),"."),(0,n.kt)("h2",{id:"other-contributions"},"Other contributions"),(0,n.kt)("h3",{id:"cardano-network-service-assurance"},"Cardano Network Service Assurance"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The work and writeup in finishing up the CNSA, first stage (first\ncontract)."),(0,n.kt)("li",{parentName:"ul"},"Getting Sam Cowger (Galois Inc) up to speed."),(0,n.kt)("li",{parentName:"ul"},"The IOG Networking team carried a reivew of CNSA project progress: a limitted\ncode & design review.")),(0,n.kt)("h3",{id:"galois-review"},"Galois Review"),(0,n.kt)("p",null,"Sam Cowger and Mark Tullsen (Galois Inc) have made some progress on each of the tech debt issues"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3832"},"ouroboros-network#3832"),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3834"},"ouroboros-network#3834"),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3835"},"ouroboros-network#3835"),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/3836"},"ouroboros-network#3836"),";")),(0,n.kt)("p",null,"scoping, requirements, and getting started."),(0,n.kt)("h3",{id:"ci"},"CI"),(0,n.kt)("p",null,"We added a nightly run for GitHub actions and made the GitHub actions test be\nexecuted with extra concurrency ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4637"},"ouroboros-network#4637"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4649"},"ouroboros-network#4649"),"."),(0,n.kt)("p",null,"We also added GitHub's dependabot ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4650"},"ouroboros-network#4650"),"."),(0,n.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,n.kt)("p",null,"We settled on implementation design of bootstrap peers which is being\nimplemented, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4615"},"ouroboros-network#4615"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/df778edc.010e47f0.js b/assets/js/df778edc.010e47f0.js new file mode 100644 index 0000000000..d7ea53cd8f --- /dev/null +++ b/assets/js/df778edc.010e47f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[79036],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>d});var a=o(67294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function l(e,t){if(null==e)return{};var o,a,n=function(e,t){if(null==e)return{};var o,a,n={},r=Object.keys(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var p=a.createContext({}),s=function(e){var t=a.useContext(p),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(o),c=n,d=m["".concat(p,".").concat(c)]||m[c]||k[c]||r;return o?a.createElement(d,i(i({ref:t},u),{},{components:o})):a.createElement(d,i({ref:t},u))}));function d(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,i=new Array(r);i[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:n,i[1]=l;for(var s=2;s<r;s++)i[s]=o[s];return a.createElement.apply(null,i)}return a.createElement.apply(null,o)}c.displayName="MDXCreateElement"},65687:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>k,frontMatter:()=>r,metadata:()=>l,toc:()=>s});var a=o(87462),n=(o(67294),o(3905));const r={title:"Network Team Update",slug:"2023-04-28-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-04-28-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-28-network.md",source:"@site/blog/2023-04-28-network.md",title:"Network Team Update",description:"High level summary",date:"2023-04-28T00:00:00.000Z",formattedDate:"April 28, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.21,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-04-28-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-04-28-goedel"},nextItem:{title:"Hydra Team Update",permalink:"/2023-04-27-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Detailed log",id:"detailed-log",level:2},{value:"Ouroboros-Network",id:"ouroboros-network",level:3},{value:"IO-Sim",id:"io-sim",level:3},{value:"Typed Protocols",id:"typed-protocols",level:3}],u={toc:s},m="wrapper";function k(e){let{components:t,...o}=e;return(0,n.kt)(m,(0,a.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The networking team has released the following packages to ",(0,n.kt)("inlineCode",{parentName:"p"},"Hackage"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/io-classes"},(0,n.kt)("inlineCode",{parentName:"a"},"io-classes")),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/io-classes-mtl"},(0,n.kt)("inlineCode",{parentName:"a"},"io-classes-mtl"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/io-sim"},(0,n.kt)("inlineCode",{parentName:"a"},"io-sim")),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/strict-stm"},(0,n.kt)("inlineCode",{parentName:"a"},"strict-stm")),","),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/strict-mvar"},(0,n.kt)("inlineCode",{parentName:"a"},"strict-mvar")))),(0,n.kt)("p",null,"We published an announcement ",(0,n.kt)("a",{parentName:"p",href:"https://engineering.iog.io/2023-04-14-io-sim-annoucement"},"blog post"),". We made progress\nalso on another blog post which will describes the design of the P2P networking\nlayer."),(0,n.kt)("p",null,"After moving ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," to its own repository, we made\n",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," compatible with ",(0,n.kt)("inlineCode",{parentName:"p"},"GHC")," ",(0,n.kt)("inlineCode",{parentName:"p"},"9.4")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"9.6"),"."),(0,n.kt)("p",null,"We made ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-client")," library independent of\n",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-diffusion"),"."),(0,n.kt)("p",null,"We prepared release of network packages for ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-node-8.0"),"."),(0,n.kt)("h2",{id:"detailed-log"},"Detailed log"),(0,n.kt)("h3",{id:"ouroboros-network"},"Ouroboros-Network"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Compatibility with ",(0,n.kt)("inlineCode",{parentName:"li"},"io-classes-1.1.0.0"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4281"},"ouroboros-network#4281"),"."),(0,n.kt)("li",{parentName:"ul"},"Compatibility with ",(0,n.kt)("inlineCode",{parentName:"li"},"GHC")," ",(0,n.kt)("inlineCode",{parentName:"li"},"9.4")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"9.6"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4527"},"ouroboros-network#4527"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"cardano-client")," independent of ",(0,n.kt)("inlineCode",{parentName:"li"},"ouroboros-cosnensus-diffusion"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4526"},"ouroboros-network#4526"),"."),(0,n.kt)("li",{parentName:"ul"},"Release new versions of packages for ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-node-8.0"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4532"},"ouroboros-network#4532"),"."),(0,n.kt)("li",{parentName:"ul"},"Galois Inc, has been making progress towards merging ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"ouroboros-network#4256"),".")),(0,n.kt)("h3",{id:"io-sim"},"IO-Sim"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"io-classes-1.0.0.0"),", and following up releases: ",(0,n.kt)("inlineCode",{parentName:"li"},"1.0.0.1")," (",(0,n.kt)("inlineCode",{parentName:"li"},"ghc-9.6"),"\nsupport), ",(0,n.kt)("inlineCode",{parentName:"li"},"1.1.0.0")," (documentation fix)."),(0,n.kt)("li",{parentName:"ul"},"Fixed timeouts and delays in ",(0,n.kt)("inlineCode",{parentName:"li"},"io-sim")," in a series of PRs: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/81"},"io-sim#81"),",\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/82"},"io-sim#82"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/86"},"io-sim#86"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/87"},"io-sim#87"),"."),(0,n.kt)("li",{parentName:"ul"},"Renamed a module: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/88"},"io-sim#88"),"."),(0,n.kt)("li",{parentName:"ul"},"Fixed a failing ",(0,n.kt)("inlineCode",{parentName:"li"},"registerDelayCancellable")," test: ","[io-sim#80]","."),(0,n.kt)("li",{parentName:"ul"},"Use GitHub merge queue in ",(0,n.kt)("inlineCode",{parentName:"li"},"io-sim")," repository."),(0,n.kt)("li",{parentName:"ul"},"CI: download ",(0,n.kt)("inlineCode",{parentName:"li"},"stylish-haskell"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/83"},"io-sim#83"),".")),(0,n.kt)("h3",{id:"typed-protocols"},"Typed Protocols"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released ",(0,n.kt)("inlineCode",{parentName:"li"},"typed-protocols-0.1.0.4")," which support ",(0,n.kt)("inlineCode",{parentName:"li"},"io-classes-1.1.0.0"),":\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-haskell-packages/pull/227"},"typed-protocols#227"),"."),(0,n.kt)("li",{parentName:"ul"},"Use GitHub merge queue in ",(0,n.kt)("inlineCode",{parentName:"li"},"typed-protocols"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/typed-protocols/pull/30"},"typed-protocols#30"),"."),(0,n.kt)("li",{parentName:"ul"},"CI: download ",(0,n.kt)("inlineCode",{parentName:"li"},"stylish-haskell"),": ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/typed-protocols/pull/29"},"typed-protocols#29"),".")))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dfd49ee8.abdcd705.js b/assets/js/dfd49ee8.abdcd705.js new file mode 100644 index 0000000000..93f0576517 --- /dev/null +++ b/assets/js/dfd49ee8.abdcd705.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[60247],{3905:(e,r,t)=>{t.d(r,{Zo:()=>m,kt:()=>f});var n=t(67294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?o(Object(t),!0).forEach((function(r){a(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function c(e,r){if(null==e)return{};var t,n,a=function(e,r){if(null==e)return{};var t,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=n.createContext({}),s=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},m=function(e){var r=s(e.components);return n.createElement(l.Provider,{value:r},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,m=c(e,["components","mdxType","originalType","parentName"]),p=s(t),d=a,f=p["".concat(l,".").concat(d)]||p[d]||u[d]||o;return t?n.createElement(f,i(i({ref:r},m),{},{components:t})):n.createElement(f,i({ref:r},m))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=d;var c={};for(var l in r)hasOwnProperty.call(r,l)&&(c[l]=r[l]);c.originalType=e,c[p]="string"==typeof e?e:a,i[1]=c;for(var s=2;s<o;s++)i[s]=t[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,t)}d.displayName="MDXCreateElement"},72396:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=t(87462),a=(t(67294),t(3905));const o={title:"Performance & Tracing Team Update",slug:"2022-10-28-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,c={permalink:"/2022-10-28-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-28-performance-and-tracing.md",source:"@site/blog/2022-10-28-performance-and-tracing.md",title:"Performance & Tracing Team Update",description:"High level summary",date:"2022-10-28T00:00:00.000Z",formattedDate:"October 28, 2022",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.155,hasTruncateMarker:!1,authors:[{name:"Serge Kosyrev",title:"Performance and Tracing Team Lead",url:"https://github.com/deepfire",imageURL:"https://github.com/deepfire.png",key:"deepfire"}],frontMatter:{title:"Performance & Tracing Team Update",slug:"2022-10-28-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2022-10-28-network"},nextItem:{title:"SRE Team Update",permalink:"/2022-08-12-sre"}},l={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Executive summary",id:"executive-summary",level:2}],m={toc:s},p="wrapper";function u(e){let{components:r,...t}=e;return(0,a.kt)(p,(0,n.Z)({},m,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"On the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline."),(0,a.kt)("p",null,"On the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario."),(0,a.kt)("h2",{id:"executive-summary"},"Executive summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The new tracing system public release is getting closer, as we're resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale."),(0,a.kt)("li",{parentName:"ul"},"The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment."),(0,a.kt)("li",{parentName:"ul"},"The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dff1c289.d7931837.js b/assets/js/dff1c289.d7931837.js new file mode 100644 index 0000000000..57f025130d --- /dev/null +++ b/assets/js/dff1c289.d7931837.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[3792],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>v});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(n),m=o,v=p["".concat(l,".").concat(m)]||p[m]||u[m]||a;return n?r.createElement(v,s(s({ref:t},d),{},{components:n})):r.createElement(v,s({ref:t},d))}));function v(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,s=new Array(a);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,s[1]=i;for(var c=2;c<a;c++)s[c]=n[c];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},30089:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var r=n(87462),o=(n(67294),n(3905));const a={sidebar_position:1},s="Manage Docs Versions",i={unversionedId:"tutorial-extras/manage-docs-versions",id:"tutorial-extras/manage-docs-versions",title:"Manage Docs Versions",description:"Docusaurus can manage multiple versions of your docs.",source:"@site/docs/tutorial-extras/manage-docs-versions.md",sourceDirName:"tutorial-extras",slug:"/tutorial-extras/manage-docs-versions",permalink:"/docs/tutorial-extras/manage-docs-versions",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"defaultSidebar",previous:{title:"Tutorial - Extras",permalink:"/docs/category/tutorial---extras"},next:{title:"Translate your site",permalink:"/docs/tutorial-extras/translate-your-site"}},l={},c=[{value:"Create a docs version",id:"create-a-docs-version",level:2},{value:"Add a Version Dropdown",id:"add-a-version-dropdown",level:2},{value:"Update an existing version",id:"update-an-existing-version",level:2}],d={toc:c},p="wrapper";function u(e){let{components:t,...a}=e;return(0,o.kt)(p,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"manage-docs-versions"},"Manage Docs Versions"),(0,o.kt)("p",null,"Docusaurus can manage multiple versions of your docs."),(0,o.kt)("h2",{id:"create-a-docs-version"},"Create a docs version"),(0,o.kt)("p",null,"Release a version 1.0 of your project:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"npm run docusaurus docs:version 1.0\n")),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"docs")," folder is copied into ",(0,o.kt)("inlineCode",{parentName:"p"},"versioned_docs/version-1.0")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"versions.json")," is created."),(0,o.kt)("p",null,"Your docs now have 2 versions:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"1.0")," at ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:3000/docs/")," for the version 1.0 docs"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"current")," at ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:3000/docs/next/")," for the ",(0,o.kt)("strong",{parentName:"li"},"upcoming, unreleased docs"))),(0,o.kt)("h2",{id:"add-a-version-dropdown"},"Add a Version Dropdown"),(0,o.kt)("p",null,"To navigate seamlessly across versions, add a version dropdown."),(0,o.kt)("p",null,"Modify the ",(0,o.kt)("inlineCode",{parentName:"p"},"docusaurus.config.js")," file:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-js",metastring:'title="docusaurus.config.js"',title:'"docusaurus.config.js"'},"module.exports = {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'docsVersionDropdown',\n },\n // highlight-end\n ],\n },\n },\n};\n")),(0,o.kt)("p",null,"The docs version dropdown appears in your navbar:"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Docs Version Dropdown",src:n(76868).Z,width:"370",height:"302"})),(0,o.kt)("h2",{id:"update-an-existing-version"},"Update an existing version"),(0,o.kt)("p",null,"It is possible to edit versioned docs in their respective folder:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"versioned_docs/version-1.0/hello.md")," updates ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:3000/docs/hello")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"docs/hello.md")," updates ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:3000/docs/next/hello"))))}u.isMDXComponent=!0},76868:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png"}}]); \ No newline at end of file diff --git a/assets/js/dff84d74.b0f42cf3.js b/assets/js/dff84d74.b0f42cf3.js new file mode 100644 index 0000000000..b568255b62 --- /dev/null +++ b/assets/js/dff84d74.b0f42cf3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65421],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},h=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),m=s(r),c=i,d=m["".concat(p,".").concat(c)]||m[c]||u[c]||a;return r?n.createElement(d,o(o({ref:t},h),{},{components:r})):n.createElement(d,o({ref:t},h))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var s=2;s<a;s++)o[s]=r[s];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},812:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2022-11-04-mithril",authors:"iquerejeta",tags:["mithril"],hide_table_of_contents:!1},o="High level overview",l={permalink:"/2022-11-04-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-04-mithril.md",source:"@site/blog/2022-11-04-mithril.md",title:"Mithril Team Update",description:"This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.",date:"2022-11-04T00:00:00.000Z",formattedDate:"November 4, 2022",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.015,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Mithril Team Update",slug:"2022-11-04-mithril",authors:"iquerejeta",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-11-04-hydra"},nextItem:{title:"Open-Source Team",permalink:"/2022-10-31-open-source"}},p={authorsImageUrls:[void 0]},s=[],h={toc:s},m="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates."),(0,i.kt)("h1",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"We have been moving forward on the implementation of the release process ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/500"},"#500"),":",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Setup of the new hosted environments for ",(0,i.kt)("inlineCode",{parentName:"li"},"testing-preview"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"pre-release-preview")," and ",(0,i.kt)("inlineCode",{parentName:"li"},"release-preprod")," with their terraform and GitHub environments ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/542"},"#542")),(0,i.kt)("li",{parentName:"ul"},"Adapted the CI workflows to work with the new release process ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/543"},"#543")),(0,i.kt)("li",{parentName:"ul"},"Publication of an ",(0,i.kt)("a",{parentName:"li",href:"https://mithril.network/doc/adr/3"},"ADR3")),(0,i.kt)("li",{parentName:"ul"},"Publication of a ",(0,i.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2022/10/28/updated-environments"},"dev blog post")," about Mithril networks evolution "),(0,i.kt)("li",{parentName:"ul"},"Releasing our first Mithril distribution ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2244.0"},"2244.0")))),(0,i.kt)("li",{parentName:"ul"},"Worked on the API versioning mechanism ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/565"},"#565")),(0,i.kt)("li",{parentName:"ul"},"Worked on the implementation of the stores migration process for the signer and aggregator nodes ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/562"},"#562")),(0,i.kt)("li",{parentName:"ul"},"Prepared a Mithril ",(0,i.kt)("inlineCode",{parentName:"li"},"devnet")," video demo ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/526"},"#526")),(0,i.kt)("li",{parentName:"ul"},"Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/484"},"#484"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e05cd66a.9907b855.js b/assets/js/e05cd66a.9907b855.js new file mode 100644 index 0000000000..394066d87d --- /dev/null +++ b/assets/js/e05cd66a.9907b855.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64637],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},l=Object.keys(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(a),m=r,h=u["".concat(c,".").concat(m)]||u[m]||d[m]||l;return a?n.createElement(h,o(o({ref:t},s),{},{components:a})):n.createElement(h,o({ref:t},s))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,o=new Array(l);o[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:r,o[1]=i;for(var p=2;p<l;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},57959:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-06-05-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",i={permalink:"/2024-06-05-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-06-05-node-cli-api.md",source:"@site/blog/2024-06-05-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-06-05T00:00:00.000Z",formattedDate:"June 5, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.245,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-06-05-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-06-05-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2024-05-29-consensus"}},c={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2024-05-13---2024-06-05"},"2024-05-13 - 2024-06-05"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"CARDANO NODE"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},'In order to avoid an accidental hardfork, when "ConwayGenesisFile" is not set in the node configuration file, by default the node can only understand protocol version 8 (Babbage era).')),(0,r.kt)("p",null,"CARDANO CLI "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"query protocol-parameters")," now shows Conway era protocol parameters when in Conway. "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"transaction view")," now shows proposales and votes inside a transaction body. "),(0,r.kt)("li",{parentName:"ul"},"Release of cardano-cli 8.23.1.0 "),(0,r.kt)("li",{parentName:"ul"},"We now publish pre-compiled binaries of each release together with the corresponding SHA256Sum. ")),(0,r.kt)("p",null,"CARDANO-API "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Release of 8.46.0.0")),(0,r.kt)("h2",{id:"details"},"Details"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/775"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"debug log-epoch-state")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/774"},"transaction view: show proposals and votes")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/768"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"--fee")," mandatory in ",(0,r.kt)("inlineCode",{parentName:"a"},"transaction build-raw"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/761"},"Release 8.23.1.0 (for node-8.11.0)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/758"},"query protocol-parameters: use ledger JSON encoding, not API one"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/535"},"Release ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.46.0.0")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Updated cardano-ledger, ouroboros-consensus and plutus packages."),(0,r.kt)("li",{parentName:"ul"},"Added FailT dependency."),(0,r.kt)("li",{parentName:"ul"},"Updated conwayGenesisDefaults and alonzoGenesisDefaults."),(0,r.kt)("li",{parentName:"ul"},"Changed CostModel to use Int64 instead of Integer."),(0,r.kt)("li",{parentName:"ul"},"Fixed ProtocolParameters golden test to account for the Integer -> Int64 change in the CostModel. (breaking, test) PR 523")))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5858"},'Enforce protocol version 8 if "ConwayGenesisFile" is not set in node configuration'))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5870"},'Add tallying of votes to the "Motion of no confidence" test')),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5863"},"Simplify epoch state diff logging")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5862"},"Fix GHC 9.8 build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5857"},"Use TestWatchdog from hedgehog-extras.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5854"},"Improve ",(0,r.kt)("inlineCode",{parentName:"a"},"NewEpochState")," logging")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5845"},"hlint: fix cardano-testnet-test")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5843"},"Use waiting for blocks instead epochs, when waiting for new UTXOs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5840"},"Refactor: Reorganize testnet CLI functions"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e0a887fb.6837c355.js b/assets/js/e0a887fb.6837c355.js new file mode 100644 index 0000000000..cd9dcfba22 --- /dev/null +++ b/assets/js/e0a887fb.6837c355.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70291],{9027:a=>{a.exports=JSON.parse('{"label":"network","permalink":"/tags/network","allTagsPath":"/tags","count":35}')}}]); \ No newline at end of file diff --git a/assets/js/e0b45b46.84e90e68.js b/assets/js/e0b45b46.84e90e68.js new file mode 100644 index 0000000000..29da867818 --- /dev/null +++ b/assets/js/e0b45b46.84e90e68.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[55135],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,p=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=u(a),s=i,h=c["".concat(p,".").concat(s)]||c[s]||m[s]||r;return a?n.createElement(h,o(o({ref:t},d),{},{components:a})):n.createElement(h,o({ref:t},d))}));function h(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:i,o[1]=l;for(var u=2;u<r;u++)o[u]=a[u];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},23826:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>l,toc:()=>u});var n=a(87462),i=(a(67294),a(3905));const r={title:"Node API & CLI Team Update",slug:"2023-09-12-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",l={permalink:"/2023-09-12-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-12-node-cli-api.md",source:"@site/blog/2023-09-12-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-09-12T00:00:00.000Z",formattedDate:"September 12, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:2.605,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-09-12-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-09-14-db-sync"},nextItem:{title:"Hydra Team Update",permalink:"/2023-09-08-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],d={toc:u},c="wrapper";function m(e){let{components:t,...a}=e;return(0,i.kt)(c,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"2023-08-30---2023-09-12"},"2023-08-30 - 2023-09-12"),(0,i.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,i.kt)("p",null,"Release of ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.3.0-pre"},"Cardano-node 8.3.0-pre")," for SanchoNet. Adds DReps to the Conway governance rules. Allows registration of DReps, delegation to DReps and voting on constitution action with DReps and SPOs.\nThis release completes ",(0,i.kt)("a",{parentName:"p",href:"https://sancho.network/get-started#sanchonet-feature-rollout"},"phase 2 of SanchoNet feature roll out plan")),(0,i.kt)("p",null,"CLI continues on its migration to a era-based top-level commands. This sprint we moved ",(0,i.kt)("inlineCode",{parentName:"p"},"text-view"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"key"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"query"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"genesis"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"node"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"stake-address"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"transaction")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"address")," into this new command structure. This is the initial migration, there is still some clean-up to do on future sprints."),(0,i.kt)("p",null,"We are moving the ",(0,i.kt)("inlineCode",{parentName:"p"},"drep delegation-certificate")," to the stake-address command so delegating to a drep is done via ",(0,i.kt)("inlineCode",{parentName:"p"},"stake-addres vote-delegation-certificate"),". Along the same lines, we are renaming\n",(0,i.kt)("inlineCode",{parentName:"p"},"stake-address delegation-certificate")," (delagating to a stake pool) to ",(0,i.kt)("inlineCode",{parentName:"p"},"stake-address stake-delegation-certificate")," to distinguish between stake delegation to a pool and votes delegation to a drep. On top\nof that, there is a new type of delegation certificate to delegate (stake) to a stake pool and (votes) to a drep simultaneosuly ",(0,i.kt)("inlineCode",{parentName:"p"},"stake-address stake-and-vote-delegation-certificate"),". Note that change is not included on 8.3 but will come on 8.4.\nRemoving ",(0,i.kt)("inlineCode",{parentName:"p"},"--conway-era")," flag from all the ",(0,i.kt)("inlineCode",{parentName:"p"},"transaction")," sub-commands."),(0,i.kt)("p",null,"Update description fields in delegation certificates from ",(0,i.kt)("inlineCode",{parentName:"p"},"Stake Address Delegation Certificate")," to respectively (Conway onwards):"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Stake Delegation Certificate")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Vote Delegation Certificate")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Stake and Vote Delegation Certificate"))),(0,i.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/261"},"New ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-address vote-delegation-certificate")," command")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/257"},"New ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-address stake-and-vote-delegation-certificate")," command")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/260"},"Change ",(0,i.kt)("inlineCode",{parentName:"a"},"TreasuryWithdrawalCmd")," to a record")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/256"},"Simplify ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-address stake-delegation-certificate")," command across eras")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/254"},"Remove ",(0,i.kt)("inlineCode",{parentName:"a"},"EraBased")," prefix and add ",(0,i.kt)("inlineCode",{parentName:"a"},"Cmd")," suffix")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/250"},"#221 Update description fields on delegation certificates")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/249"},"Update error message for eras mismatch between node and cli")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/248"},"Era based ",(0,i.kt)("inlineCode",{parentName:"a"},"address")," commands")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/246"},"Consistent naming for ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-pool")," command related types, functions and modules")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/245"},"Disable ",(0,i.kt)("inlineCode",{parentName:"a"},"redundant-constraints")," warning only on ",(0,i.kt)("inlineCode",{parentName:"a"},"ghc-8.10.7"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/244"},"Remove ",(0,i.kt)("inlineCode",{parentName:"a"},"EraBased")," prefix from era-based commands")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/243"},"Rename ",(0,i.kt)("inlineCode",{parentName:"a"},"delegation-certificate")," to ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-delegation-certificate")," only in era-based command structure")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/242"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"node")," run commands implementation into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/241"},"Era-based ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-address")," command group")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/240"},"Remove duplicate instances and add new ",(0,i.kt)("inlineCode",{parentName:"a"},"FeatureInEra ShelleyBasedEra")," instance")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/239"},"Remove ",(0,i.kt)("inlineCode",{parentName:"a"},"EraBased")," prefix from errors")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/238"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"text-view")," run commands implementation into era-based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/237"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"key")," run commands implementation into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/236"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"query")," run commands implementation into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/235"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"genesis")," run commands implementation into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/234"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"pool")," run commands implementation into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/233"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"stake-address")," run commands implementation into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/232"},"Move ",(0,i.kt)("inlineCode",{parentName:"a"},"address")," run command implementation into era-based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/231"},"Delete legacy ",(0,i.kt)("inlineCode",{parentName:"a"},"conway governance")," commands")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/230"},"Era sensitive transaction run commands")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/229"},"Move transaction command code into era based")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/228"},"Fix query ",(0,i.kt)("inlineCode",{parentName:"a"},"key-period-info"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/227"},"New ",(0,i.kt)("inlineCode",{parentName:"a"},"hprop_golden_shelleyStakeAddressRegistrationCertificateWithBuildRaw")," test")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/225"},"Prefix complex delegation certificate option"))),(0,i.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/233"},"Fix test constraints functions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/231"},"New ",(0,i.kt)("inlineCode",{parentName:"a"},"caseShelleyToBabbageAndConwayEraOnwards")," function")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/230"},"Delete deprecated functions and types")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/228"},"Release 8.19.0.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/226"},(0,i.kt)("inlineCode",{parentName:"a"},"FeatureInEra")," instances for ",(0,i.kt)("inlineCode",{parentName:"a"},"CardanoEra")," and ",(0,i.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/225"},"New ",(0,i.kt)("inlineCode",{parentName:"a"},"mapSomeAddressVerification")," key function")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/224"},"Fix type signature of ",(0,i.kt)("inlineCode",{parentName:"a"},"queryGenesisParameters")," so that it can be queried in any era")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/222"},"Release 8.18.0.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/221"},"Fix exception when executing drep queries"))),(0,i.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.3.0-pre"},"Cardano-node 8.3.0-pre")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5460"},"Fix deadlock issue with stdout tracer in tx-generator")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5453"},"nix: workbench tracing configuration"))),(0,i.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,i.kt)("h3",{id:"docs"},"docs"),(0,i.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e135bd86.1815920d.js b/assets/js/e135bd86.1815920d.js new file mode 100644 index 0000000000..a6aa714059 --- /dev/null +++ b/assets/js/e135bd86.1815920d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[69791],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=p(n),m=r,d=c["".concat(l,".").concat(m)]||c[m]||h[m]||a;return n?o.createElement(d,s(s({ref:t},u),{},{components:n})):o.createElement(d,s({ref:t},u))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,s=new Array(a);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:r,s[1]=i;for(var p=2;p<a;p++)s[p]=n[p];return o.createElement.apply(null,s)}return o.createElement.apply(null,n)}m.displayName="MDXCreateElement"},96223:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var o=n(87462),r=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2022-11-30-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2022-11-30-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-30-consensus.md",source:"@site/blog/2022-11-30-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2022-11-30T00:00:00.000Z",formattedDate:"November 30, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.4,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-11-30-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"System Test Team Update",permalink:"/2022-12-01-system-test"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-11-30-node-cli-api"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD prototype",id:"utxo-hd-prototype",level:3},{value:"Backing store property tests",id:"backing-store-property-tests",level:4},{value:"LSM tree implementation",id:"lsm-tree-implementation",level:3},{value:"CSJ prototype",id:"csj-prototype",level:3},{value:"New VRF and KES crypto integration",id:"new-vrf-and-kes-crypto-integration",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3}],u={toc:p},c="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"During the past two weeks, the consensus team merged improvements to the monadic\ncursor API that was needed to implement LMDB range reads, which is in turn\nrequired for the implementation of the UTxO HD feature. We added tables to\nseveral tests in for the UTxO HD feature, which increases our confidence in the\ncorrectness of the prototype. The mempool property tests are close to being\ncompleted. Also, we finished the LSM tree tuning algorithm."),(0,r.kt)("p",null,"On the Genesis front we started simplifying the BlockFetch logic with\nCSJ-specific workloads in mind. "),(0,r.kt)("p",null,"We are also documenting the Block Diffusion Pipelining feature, and added a\nhigh-level overview of consensus to the top level documentation of\n",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),"."),(0,r.kt)("h2",{id:"workstreams"},"Workstreams"),(0,r.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD prototype"),(0,r.kt)("p",null,"We merged the implementation of a monadic cursor API (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/lmdb-simple/pull/1"},"#1"),")) which was\nneeded to solve a bug with LMDB range-reads. After this PR was merged, we focused on\nbridging the gap between the ",(0,r.kt)("inlineCode",{parentName:"p"},"lmdb-simple")," interface and consensus by facilitating\nusing ",(0,r.kt)("inlineCode",{parentName:"p"},"lmdb-simple"),"'s cursor API without ",(0,r.kt)("inlineCode",{parentName:"p"},"Serialise")," constraints (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/lmdb-simple/pull/3"},"#3"),")."),(0,r.kt)("p",null,"We refactored the backing store property tests to use ",(0,r.kt)("inlineCode",{parentName:"p"},"quickcheck-lockstep"),"\n(",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4081"},"#4081"),")."),(0,r.kt)("p",null,"We added tables to the mock ledger in the UTxO-HD feature branch\n(",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4184"},"#4184"),"). Every test that used to run with ",(0,r.kt)("inlineCode",{parentName:"p"},"SimpleBlocks")," now uses\ntables. This will enable us to exercise the UTxO HD mempool integration by\nleveraging the existing mempool property-tests. The new state-machine\nproperty-tests are still needed for testing the parallel behaviour of the\nmempool."),(0,r.kt)("p",null,"Our work on the mempool state-machine tests revealed the need for improvements\nin the ",(0,r.kt)("inlineCode",{parentName:"p"},"quickcheck-state-machine")," library. Parallel testing assumed that the\nstate machine did not have access to mutable references. However, the mempool\ntests require the use of such mutable references for mocking the ledger\ninterface. As a result, our parallel tests were failing with rather obscure\nmessages. @Jasagredo submitted a pull request (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/stevana/quickcheck-state-machine/pull/12"},"#12"),") that allows for\nnew mutable references to be created at each run of the state machine."),(0,r.kt)("h4",{id:"backing-store-property-tests"},"Backing store property tests"),(0,r.kt)("h3",{id:"lsm-tree-implementation"},"LSM tree implementation"),(0,r.kt)("p",null,"We finished the LSM Tree tuning algorithm. We are currently tidying up the code\nand gathering results (i.e., plots and their interpretation)."),(0,r.kt)("h3",{id:"csj-prototype"},"CSJ prototype"),(0,r.kt)("p",null,"We started simplifying the BlockFetch logic with CSJ-specific workloads in mind."),(0,r.kt)("h3",{id:"new-vrf-and-kes-crypto-integration"},"New VRF and KES crypto integration"),(0,r.kt)("p",null,"Started working on supporting new version of ",(0,r.kt)("inlineCode",{parentName:"p"},"StandardCrypto")," which uses compact\nKES and batched VRF (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4151"},"#4151"),")."),(0,r.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,r.kt)("p",null,'We reviewed the existing state of the Block Diffusion Pipelining document. We\nare now working on the "Implementation" section (',(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4020"},"#4020"),")."),(0,r.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("p",null,"We cleared up our understanding of the error dynamics of forecasting\n(",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4146"},"#4146")," and ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4174"},"#4174"),")."),(0,r.kt)("p",null,"We submitted a pull request that adds an overview of consensus to the ",(0,r.kt)("a",{parentName:"p",href:"https://ouroboros-network.cardano.intersectmbo.org/"},"top level\ndocumentation")," of\nouroboros-network (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4197"},"#4197"),"). This overview describes the consensus components and adds a\nhyperlinked map to the modules documentation."),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4197"},"https://github.com/input-output-hk/ouroboros-network/pull/4197")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e158fd47.2dd5093e.js b/assets/js/e158fd47.2dd5093e.js new file mode 100644 index 0000000000..afadf6a142 --- /dev/null +++ b/assets/js/e158fd47.2dd5093e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[88829],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=s(n),u=a,f=m["".concat(p,".").concat(u)]||m[u]||d[u]||o;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[m]="string"==typeof e?e:a,l[1]=i;for(var s=2;s<o;s++)l[s]=n[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},64964:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"Goedel Team Update",slug:"2023-03-31-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-03-31-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-31-goedel.md",source:"@site/blog/2023-03-31-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-03-31T00:00:00.000Z",formattedDate:"March 31, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.455,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-03-31-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-03-31-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-03-31-hydra"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],c={toc:s},m="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the team has been working on final drafts of two papers\nfor internal review and planning next steps of analysis of consensus\ndesign refiniments."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing final draft of DeltaQSD algebra paper for internal review")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing final draft of verifying design refinements for\ndistributed system design for internal review")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Planning next phase of consensus design refinement analysis"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e1e18011.0b360a5d.js b/assets/js/e1e18011.0b360a5d.js new file mode 100644 index 0000000000..735dd766ec --- /dev/null +++ b/assets/js/e1e18011.0b360a5d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27577],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=s(n),u=r,h=d["".concat(c,".").concat(u)]||d[u]||p[u]||o;return n?a.createElement(h,i(i({ref:t},m),{},{components:n})):a.createElement(h,i({ref:t},m))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var s=2;s<o;s++)i[s]=n[s];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},98913:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));const o={title:"Performance & Tracing Q4 2023 Update",slug:"2023-Q4-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2023-Q4-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q4-performance-and-tracing.md",source:"@site/quarterly/2023-Q4-performance-and-tracing.md",title:"Performance & Tracing Q4 2023 Update",description:"2023-10 - 2024-01",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"performance-tracing",permalink:"/quarterly/tags/performance-tracing"}],readingTime:2.28,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Q4 2023 Update",slug:"2023-Q4-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Q4 2023 Update",permalink:"/quarterly/2023-Q4-consensus"},nextItem:{title:"SRE Q4 2023 Update",permalink:"/quarterly/2023-Q4-sre"}},c={authorsImageUrls:[void 0]},s=[{value:"2023-10 - 2024-01",id:"2023-10---2024-01",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Release benchmarking",id:"release-benchmarking",level:4},{value:"Conway benchmarks",id:"conway-benchmarks",level:4},{value:"P2P benchmarks",id:"p2p-benchmarks",level:4},{value:"GHC9 performance",id:"ghc9-performance",level:4},{value:"New nomad cluster",id:"new-nomad-cluster",level:4},{value:"Consensus component QTAs",id:"consensus-component-qtas",level:4},{value:"New team member",id:"new-team-member",level:4}],m={toc:s},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-10---2024-01"},"2023-10 - 2024-01"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Release benchmarking, leading up to next mainnet release"),(0,r.kt)("li",{parentName:"ul"},"Conway benchmarking of existing Babbage workloads"),(0,r.kt)("li",{parentName:"ul"},"P2P benchmarks, validating viability as default topology"),(0,r.kt)("li",{parentName:"ul"},"Added basic ",(0,r.kt)("inlineCode",{parentName:"li"},"PlutusV3")," capability of our tooling"),(0,r.kt)("li",{parentName:"ul"},"Publication of benchmarking reports accompanying a mainnet release"),(0,r.kt)("li",{parentName:"ul"},"GHC9 performance investigation"),(0,r.kt)("li",{parentName:"ul"},"Finalized and validated all optimizations for the new tracing system"),(0,r.kt)("li",{parentName:"ul"},"New Nomad benchmarking cluster: production use"),(0,r.kt)("li",{parentName:"ul"},"Adjustment of our infrastructure to cover the migration to ",(0,r.kt)("em",{parentName:"li"},"IntersectMBO")),(0,r.kt)("li",{parentName:"ul"},"Conensus QTAs: prototype developed into alpha-stage benchmark"),(0,r.kt)("li",{parentName:"ul"},"Successful on-boarding of a new team member")),(0,r.kt)("h4",{id:"release-benchmarking"},"Release benchmarking"),(0,r.kt)("p",null,"We've performed and analyzed benchmarks for node versions ",(0,r.kt)("inlineCode",{parentName:"p"},"8.6.x")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"8.7.3"),", which is projected to be the next mainnet release, throughout Q4.\nAlong that way, we have identified, located and handled all performance blockers. "),(0,r.kt)("p",null,"Additionally, we've started publishing benchmarking reports here on Cardano Updates. The format is meant to increase transparency and\nprovide insight into those measurements that accompany mainnet releases - demonstrating the absence of performance regressions and development\nof specific metrics over time."),(0,r.kt)("h4",{id:"conway-benchmarks"},"Conway benchmarks"),(0,r.kt)("p",null,"Furthermore, we've done first ever benchmarking of the Conway ledger. To that end, we've ported our Babbage workloads to Conway for\nimmediate comparability. Fortunately, we've have not found any performance regression in the Conway ledger."),(0,r.kt)("h4",{id:"p2p-benchmarks"},"P2P benchmarks"),(0,r.kt)("p",null,"In Q4, we've validated P2P topology to be viable as default for both relay and block producer nodes. As a consequence, we've switched\nto P2P topology for benchmarking baselines ourselves."),(0,r.kt)("h4",{id:"ghc9-performance"},"GHC9 performance"),(0,r.kt)("p",null,"In Q4, evaluation of GHC9.2's and GHC9.6's optimizer in the context of the Cardano code base has been completed.\nEventually, GHC9.6 has shown itself to be much more suitable from a performance perspective. We're convinced that\nwith a few select annotations in the code, GHC9.6's optimizer can produce a result on par performance-wise with GHC8.10 -\nwhich just was a great release in that regard. With GHC9.2 unfortunately, the changes would have to be more invasive - and thus more time-consuming."),(0,r.kt)("h4",{id:"new-nomad-cluster"},"New nomad cluster"),(0,r.kt)("p",null,"We\u2019ve moved the new Nomad cluster into production use and established new baselines for each workload on it.\nAdditionally, we\u2019ve shut down the legacy ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-ops")," benchmarking cluster, and archived all raw data from it."),(0,r.kt)("h4",{id:"consensus-component-qtas"},"Consensus component QTAs"),(0,r.kt)("p",null,"We\u2019ve developed the existing prototype into an automatable, self-contained benchmark called ",(0,r.kt)("inlineCode",{parentName:"p"},"beacon"),", as well as systematized workloads and run structure for it.\nMoreover, we\u2019ve demonstrated usefulness of the metrics, their reproducibility, and identified domains viable for QTAs with system-level benchmarks."),(0,r.kt)("h4",{id:"new-team-member"},"New team member"),(0,r.kt)("p",null,"We're happy to welcome a new joiner to our team! We've successfully onboarded him in Q4; he has taken\nover the ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," service - the node-external component of the new tracing system - and has already\nlanded several valuable contributions."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e1f21c3f.cc2a6014.js b/assets/js/e1f21c3f.cc2a6014.js new file mode 100644 index 0000000000..b318662eec --- /dev/null +++ b/assets/js/e1f21c3f.cc2a6014.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58680],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},l=Object.keys(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(a),d=r,h=s["".concat(p,".").concat(d)]||s[d]||m[d]||l;return a?n.createElement(h,o(o({ref:t},c),{},{components:a})):n.createElement(h,o({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,o=new Array(l);o[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:r,o[1]=i;for(var u=2;u<l;u++)o[u]=a[u];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},32235:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2023-11-14-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",i={permalink:"/2023-11-14-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-14-node-cli-api.md",source:"@site/blog/2023-11-14-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-11-14T00:00:00.000Z",formattedDate:"November 14, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.155,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-11-14-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-11-15-mithril"},nextItem:{title:"Goedel Team Update",permalink:"/2023-11-10-goedel"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},s="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(s,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-11-01---2023-11-14"},"2023-11-01 - 2023-11-14"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"CARDANO-NODE"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.6.0-pre"},"Pre-release of Cardano Node 8.6.0-pre"))),(0,r.kt)("p",null,"CARDANO-CLI"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Improve golden tests"),(0,r.kt)("li",{parentName:"ul"},"Clean-up of conway era commands")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/451"},"Replace usages of assertFileOccurences (6/6)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/448"},"Replace usages of assertFileOccurences (5/6)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/444"},"Replace usages of assertFileOccurences by usage of new functions \u2728 (4/n)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/443"},"put n shelley/byron key witnesses arguments in correct order")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/441"},"Replace usages of assertFileOccurences by comparisons with golden files (3/n)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/436"},"Replace usages of assertFileOccurences by comparisons with golden files (2/n)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/435"},"Update to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-8.31.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/434"},"Remove remaining uses of ",(0,r.kt)("inlineCode",{parentName:"a"},"IsCardanoEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/432"},"Release 8.14.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/430"},"Upgrade cardano-api to 8.30")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/428"},"Command types for ",(0,r.kt)("inlineCode",{parentName:"a"},"node")," commands")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/427"},"Split governance ",(0,r.kt)("inlineCode",{parentName:"a"},"MIRTransferConstructor"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/426"},"Replace usages of assertFileOccurences by comparisons with golden files (1/n)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/425"},"Command argument types for ",(0,r.kt)("inlineCode",{parentName:"a"},"drep")," commands")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/421"},"Add golden test for ",(0,r.kt)("inlineCode",{parentName:"a"},"governance action create-no-confidence"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/419"},"Command arguments types for stake-pool commands"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/364"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.31.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/360"},"Use ledger presentation of multi-asset values directly. Lens to make this uniform over ",(0,r.kt)("inlineCode",{parentName:"a"},"ShelleyBasedEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/358"},"Protocol version change is not common to all versions anymore")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/355"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"ByronAndAllegraEraOnwards"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/354"},"Replace ",(0,r.kt)("inlineCode",{parentName:"a"},"IsCardanoEra")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"IsShelleyBasedEra")," contraints in GADT constructors with ",(0,r.kt)("inlineCode",{parentName:"a"},"Typeable"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/353"},"Modify foldBlocks to recurse on ledger events ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/352"},"Add generators for ",(0,r.kt)("inlineCode",{parentName:"a"},"EraBasedProtocolParametersUpdate"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/351"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.30.0.0")))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.6.0-pre"},"Pre-release of Cardano Node 8.6.0-pre")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5525"},"cardano-node: use ouroboros-network-protocols-0.5.2"))))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e2011657.b38fb0d4.js b/assets/js/e2011657.b38fb0d4.js new file mode 100644 index 0000000000..d87440239b --- /dev/null +++ b/assets/js/e2011657.b38fb0d4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[30849],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var h=r.createContext({}),p=function(e){var t=r.useContext(h),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return r.createElement(h.Provider,{value:t},e.children)},m="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,h=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(a),d=n,c=m["".concat(h,".").concat(d)]||m[d]||s[d]||o;return a?r.createElement(c,i(i({ref:t},u),{},{components:a})):r.createElement(c,i({ref:t},u))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=d;var l={};for(var h in t)hasOwnProperty.call(t,h)&&(l[h]=t[h]);l.originalType=e,l[m]="string"==typeof e?e:n,i[1]=l;for(var p=2;p<o;p++)i[p]=a[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},51505:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>h,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-03-17-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-03-17-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-17-hydra.md",source:"@site/blog/2023-03-17-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-03-17T00:00:00.000Z",formattedDate:"March 17, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.015,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-03-17-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-03-17-crypto"},nextItem:{title:"Ledger Team Update",permalink:"/2023-03-17-ledger"}},h={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:p},m="wrapper";function s(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team has continued work on the mainnet compatibility of the\nhydra-node. They added a golden test suite for ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-plutus")," scripts, added\nsome detection of ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," misconfiguration, established a limit of 100 ADA\nper commit and other smaller tasks to prepare for a mainnet beta release."),(0,n.kt)("p",null,"Next week there will be a small team workshop to push for demonstrating a Hydra\nHead on the Cardano mainnet, ideally just in time for the monthly review\nmeeting. See the hydra channels on the IOG Technical Community discord server\nfor details."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implement a 100 ADA hard-coded commit limit in the hydra-node\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/763"},"#763")),(0,n.kt)("li",{parentName:"ul"},"Pay back funds to faucet after smoke-test run\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/773"},"#773")),(0,n.kt)("li",{parentName:"ul"},"Setup custom github runner for smoke-tests on mainnet\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/775"},"#775")),(0,n.kt)("li",{parentName:"ul"},"Created golden tests to assure the script hash stays the same between\nchanges ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/772"},"#772")),(0,n.kt)("li",{parentName:"ul"},"Removed hardcoded error codes in plutus scripts\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/768"},"#768")),(0,n.kt)("li",{parentName:"ul"},"Detect misconfiguration of a hydra-node given persistent state\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/767"},"#767")),(0,n.kt)("li",{parentName:"ul"},"Met with potential users for hydra-pay"),(0,n.kt)("li",{parentName:"ul"},"Prepared hydra workshop")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Hydra monthly meeting"),(0,n.kt)("li",{parentName:"ul"},"Open a multi-party head on mainnet"),(0,n.kt)("li",{parentName:"ul"},"Complete mainnet compatibility feature")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e25ae581.67cf717b.js b/assets/js/e25ae581.67cf717b.js new file mode 100644 index 0000000000..bc458d4bff --- /dev/null +++ b/assets/js/e25ae581.67cf717b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1929],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),s=u(r),c=n,d=s["".concat(p,".").concat(c)]||s[c]||m[c]||o;return r?a.createElement(d,i(i({ref:t},h),{},{components:r})):a.createElement(d,i({ref:t},h))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var u=2;u<o;u++)i[u]=r[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},4890:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-06-23-hydra",authors:["ffakenz","pgrange"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-06-23-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-23-hydra.md",source:"@site/blog/2023-06-23-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-06-23T00:00:00.000Z",formattedDate:"June 23, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.79,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"},{name:"Pascal Grange",title:"Hydra Software Engineer",url:"https://github.com/pgrange",imageURL:"https://github.com/pgrange.png",key:"pgrange"}],frontMatter:{title:"Hydra Team Update",slug:"2023-06-23-hydra",authors:["ffakenz","pgrange"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-06-23-goedel"},nextItem:{title:"Network Team Update",permalink:"/2023-06-23-network"}},p={authorsImageUrls:[void 0,void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:u},s="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team shared progress updates during the monthly review\nmeeting (monthly report and video recording available soon) and started\nexperimenting on preview network with the new commit from external wallet\nfeature."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly report & review meeting, demonstrating ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/887"},"commit from external\nwallet")),(0,n.kt)("li",{parentName:"ul"},"Published regular ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/unstable/benchmarks/end-to-end-benchmarks"},"benchmarks for\nHydra")),(0,n.kt)("li",{parentName:"ul"},"Moved forward the journey for external commits using multiple script UTxOs\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/903"},"#903")),(0,n.kt)("li",{parentName:"ul"},"Changed the API to only put transaction id in snapshots, instead of the full\ntransactions ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/922"},"#922")," -> this\nis now evolved into fully addressing ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/728"},"#728")),(0,n.kt)("li",{parentName:"ul"},"Fuel marking is now optional as one can now commit from an external wallet\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/924"},"#924")),(0,n.kt)("li",{parentName:"ul"},"Add flag option to display node version on tui\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/934"},"#934"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete external commits using multiple script UTxOs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/903"},"#903")),(0,n.kt)("li",{parentName:"ul"},"New release 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"Dirtroad solution of improved persistence performance ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/913"},"#913"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e2621d74.5ba151b3.js b/assets/js/e2621d74.5ba151b3.js new file mode 100644 index 0000000000..54b51d174c --- /dev/null +++ b/assets/js/e2621d74.5ba151b3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[36291],{3905:(e,t,n)=>{n.d(t,{Zo:()=>i,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):p(p({},t),e)),n},i=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),m=s(n),d=a,h=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?r.createElement(h,p(p({ref:t},i),{},{components:n})):r.createElement(h,p({ref:t},i))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,p=new Array(o);p[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:a,p[1]=l;for(var s=2;s<o;s++)p[s]=n[s];return r.createElement.apply(null,p)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},8523:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB Sync Team Update",slug:"2024-04-17-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},p=void 0,l={permalink:"/2024-04-17-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-17-db-sync.md",source:"@site/blog/2024-04-17-db-sync.md",title:"DB Sync Team Update",description:"High level summary",date:"2024-04-17T00:00:00.000Z",formattedDate:"April 17, 2024",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.465,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB Sync Team Update",slug:"2024-04-17-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-04-17-consensus"},nextItem:{title:"Mithril Team Update",permalink:"/2024-04-17-mithril"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],i={toc:s},m="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},i,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team has released 1 version for mainnet ",(0,a.kt)("inlineCode",{parentName:"p"},"13.2.0.1")," and 3 pre-releases for sanchonet\n",(0,a.kt)("inlineCode",{parentName:"p"},"4.0.0"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"4.1.0"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"4.2.0"),". We have continued the integration of Conway (CIP-1694) and the support\nof off-chain data (CIP-100)"),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"CI build and docker fixes\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1670"},"#1670"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1668"},"#1668"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1667"},"#1667"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1662"},"#1662"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Improved committee representation\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1655"},"#1662"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/issues/1571"},"#1571"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/issues/1633"},"#1633"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Offchain metadata partial support\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1654"},"#1654"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Refactoring and tech-debt\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1635"},"#1635"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Fixing epoch_stake_progress\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/issues/1620"},"#1620"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Config and modulatirty improvements\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1653"},"#1653"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1652"},"#1652"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Updating to node-8.10-pre. Better support for deposits, refunds and proposal state\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1673"},"#1673")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e2a7c340.5c95095b.js b/assets/js/e2a7c340.5c95095b.js new file mode 100644 index 0000000000..0ab3b33913 --- /dev/null +++ b/assets/js/e2a7c340.5c95095b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48622],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),d=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=d(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),h=d(a),u=n,m=h["".concat(s,".").concat(u)]||h[u]||c[u]||o;return a?r.createElement(m,i(i({ref:t},p),{},{components:a})):r.createElement(m,i({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,i[1]=l;for(var d=2;d<o;d++)i[d]=a[d];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},36391:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-01-13-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-01-13-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-13-hydra.md",source:"@site/blog/2023-01-13-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-01-13T00:00:00.000Z",formattedDate:"January 13, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.56,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-01-13-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-01-14-db-sync"},nextItem:{title:"Node Release Team Update",permalink:"/2023-01-13-release"}},s={authorsImageUrls:[void 0]},d=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:d},h="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"Since last weekly update before christmas, the Hydra team worked on the\ntechnical specification, closed gaps in ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-plutus")," scripts, made the unique\n",(0,n.kt)("inlineCode",{parentName:"p"},"headId")," available to Hydra clients through the API, allow the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," to\nexplicitly synchronize from genesis (if configured), and fixed smaller log and\nbuild issues reported by new users."),(0,n.kt)("p",null,"Besides this, a retrospective ",(0,n.kt)("a",{parentName:"p",href:"https://cardanofoundation.org/en/news/hydra-head-protocol-an-open-source-solution-for-scalability/"},"blog\npost"),"\nwas published by Matthias Benkort (CF) on Hydra, summarizing our progress made\nin 2022 also an outlook where Hydra is headed for in 2023. Also, the team had\nsome first sessions on the voting project with Catalyst and the CF."),(0,n.kt)("p",null,"A full digest monthly digest for December 2022 can be found on the ",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/monthly/2022-12"},"hydra\nwebsite"),"."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Had some first sessions on the voting project with Catalyst and CF"),(0,n.kt)("li",{parentName:"ul"},"Published retrospective ",(0,n.kt)("a",{parentName:"li",href:"https://cardanofoundation.org/en/news/hydra-head-protocol-an-open-source-solution-for-scalability/"},"blog\npost"),"\nby Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also\nan outlook where Hydra is headed for in 2023."),(0,n.kt)("li",{parentName:"ul"},"Worked on the LaTeX spec for HydraHeadV1, not final or published yet - ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/ch1bo/hydra-spec"},"latest\nversion in this repository"),"."),(0,n.kt)("li",{parentName:"ul"},"Add unique ",(0,n.kt)("inlineCode",{parentName:"li"},"headId")," to API and hence make it available to clients."),(0,n.kt)("li",{parentName:"ul"},"Allow ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")," to explicitly synchronize from genesis using ",(0,n.kt)("inlineCode",{parentName:"li"},"--start-chain-from 0"),"."),(0,n.kt)("li",{parentName:"ul"},"Closed gaps in ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-plutus")," scripts",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"bounded transaction validity (",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/adr/21/"},"ADR21"),")"),(0,n.kt)("li",{parentName:"ul"},"enforcing contract continuity via state token in output"))),(0,n.kt)("li",{parentName:"ul"},"Fixed JSON for some logs and smaller build issues reported by new users.")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Reach out to have ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-tutorial")," integrated."),(0,n.kt)("li",{parentName:"ul"},"Plan the next couple of months."),(0,n.kt)("li",{parentName:"ul"},"Complete checking reimbursing of commits in head validator."),(0,n.kt)("li",{parentName:"ul"},"Align plutus scripts to spec and simplify them (identified some simplifications)"),(0,n.kt)("li",{parentName:"ul"},"Improve mutation framework to be sure we fail tests for the right reasons"),(0,n.kt)("li",{parentName:"ul"},"Complete the spec except the open points (<5) and also discuss them with researchers.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e3067ecd.7e1f3557.js b/assets/js/e3067ecd.7e1f3557.js new file mode 100644 index 0000000000..712db268ca --- /dev/null +++ b/assets/js/e3067ecd.7e1f3557.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[84599],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),h=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=h(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=h(a),c=n,m=s["".concat(u,".").concat(c)]||s[c]||d[c]||i;return a?r.createElement(m,o(o({ref:t},p),{},{components:a})):r.createElement(m,o({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:n,o[1]=l;for(var h=2;h<i;h++)o[h]=a[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},11113:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-09-22-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-22-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-22-hydra.md",source:"@site/blog/2023-09-22-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-09-22T00:00:00.000Z",formattedDate:"September 22, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.035,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-09-22-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-09-26-node-cli-api"},nextItem:{title:"Performance & tracing update",permalink:"/2023-09-22-performance-and-tracing"}},u={authorsImageUrls:[void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:h},s="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team conducted the monthly review meeting in\ncollaboration with Mithril, enhancing project coordination."),(0,n.kt)("p",null,"The team improved the gen-hydra-key node command for smoother usability\nand identified concrete steps to enhance network resiliency in feature\nitems ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/188"},"#188"),",\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/1080"},"#1080"),", and\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/1079"},"#1079"),".\nAdditionally, they contributed the aiken-mode editor integration to the\naiken-lang organization, updated dependencies to utilize cardano-api\n8.20, and published the Hydra security advisory CVE-2023-42806 with a\nworkaround available for users."),(0,n.kt)("p",null,"These efforts demonstrate the team\\'s commitment to project improvement,\nsecurity, and open-source community collaboration."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Conducted the monthly review meeting together with Mithril"),(0,n.kt)("li",{parentName:"ul"},"Improved gen-hydra-key node command\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1077"},"#1077")),(0,n.kt)("li",{parentName:"ul"},"Established a clear plan to improve resiliency of network and manifested\nfeature items ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/188"},"#188"),",\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1080"},"#1080")," and\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1079"},"#1079")),(0,n.kt)("li",{parentName:"ul"},"Moved ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/aiken-lang/aiken-mode"},"aiken-mode")," (created by SN)\nto aiken-lang organization"),(0,n.kt)("li",{parentName:"ul"},"Updated dependencies to using cardano-api 8.20\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1075"},"#1075")),(0,n.kt)("li",{parentName:"ul"},"Published security advisory\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/security/advisories/GHSA-gr36-mc6v-72qq"},"CVE-2023-42806"),"\n(workaround available)")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Write-up the monthly report for September"),(0,n.kt)("li",{parentName:"ul"},'Finish "network resilience to disconnects"\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/188"},"#188")),(0,n.kt)("li",{parentName:"ul"},"Finish kupo integration with hydra\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1078"},"#1078")),(0,n.kt)("li",{parentName:"ul"},"Discuss and decide on using aiken or not"),(0,n.kt)("li",{parentName:"ul"},"Address the published security advisory\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/security/advisories/GHSA-gr36-mc6v-72qq"},"CVE-2023-42806"),"\n(to not require workaround)"),(0,n.kt)("li",{parentName:"ul"},"Ideally, release 0.13.0")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e356bfd0.fa7a17d6.js b/assets/js/e356bfd0.fa7a17d6.js new file mode 100644 index 0000000000..cde7e2455a --- /dev/null +++ b/assets/js/e356bfd0.fa7a17d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90083],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(r),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return r?n.createElement(h,i(i({ref:t},p),{},{components:r})):n.createElement(h,i({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=r[c];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},96391:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Crypto Team Update",slug:"2022-10-27-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-10-27-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-27-crypto.md",source:"@site/blog/2022-10-27-crypto.md",title:"Crypto Team Update",description:"High level overview",date:"2022-10-27T00:00:00.000Z",formattedDate:"October 27, 2022",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.095,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2022-10-27-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2022-08-12-sre"},nextItem:{title:"Hydra Team Update",permalink:"/2022-10-21-hydra"}},s={authorsImageUrls:[void 0]},c=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"SECP built-ins",id:"secp-built-ins",level:3},{value:"KES agent",id:"kes-agent",level:3}],p={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to\nmeeting the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-base/issues/315"},"acceptance criteria")," in cardano-base,\nwhich lacks some editorial comments on the style of dQuandrant's PR, the inclusion of one additional test, and\nwe are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution,\nbut also progressing on the implementation."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"secp-built-ins"},"SECP built-ins"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"(missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/313"},"PR 313")),(0,a.kt)("li",{parentName:"ul"},"CIP-0049 was addressed in the editors meeting, and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/250"},"PR 250")," was merged"),(0,a.kt)("li",{parentName:"ul"},"The unit-tests ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/320"},"PR 320")," is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.")),(0,a.kt)("h3",{id:"kes-agent"},"KES agent"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them."),(0,a.kt)("li",{parentName:"ul"},"We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s).")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e3c3ef1c.87b0db49.js b/assets/js/e3c3ef1c.87b0db49.js new file mode 100644 index 0000000000..0d6ba136ea --- /dev/null +++ b/assets/js/e3c3ef1c.87b0db49.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9107],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=s(a),m=n,d=h["".concat(p,".").concat(m)]||h[m]||c[m]||o;return a?r.createElement(d,i(i({ref:t},u),{},{components:a})):r.createElement(d,i({ref:t},u))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[h]="string"==typeof e?e:n,i[1]=l;for(var s=2;s<o;s++)i[s]=a[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},4394:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2022-11-04-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-04-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-04-hydra.md",source:"@site/blog/2022-11-04-hydra.md",title:"Hydra Team Update",description:"High level summary",date:"2022-11-04T00:00:00.000Z",formattedDate:"November 4, 2022",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.935,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2022-11-04-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2022-11-11-network"},nextItem:{title:"Mithril Team Update",permalink:"/2022-11-04-mithril"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:s},h="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This week, the hydra team first re-deployed the latest Hydra scripts to the re-spun ",(0,n.kt)("inlineCode",{parentName:"p"},"preview")," network, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0"},"0.8.0 release notes"),". They also completed implementation of ",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/adr/18/"},"ADR18")," and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra-poc/issues/195#issuecomment-1300503557"},"#195")," and alignment of the specification document with auditors."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete and merge ADR18 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/pull/579"},"#579")),(0,n.kt)("li",{parentName:"ul"},"Re-deploy hydra scripts to respun ",(0,n.kt)("inlineCode",{parentName:"li"},"preview")," network, see ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0"},"0.8.0 release notes")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/pull/595"},"#595")),(0,n.kt)("li",{parentName:"ul"},"Have first gap of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/pull/452"},"#452")," in review."),(0,n.kt)("li",{parentName:"ul"},"Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot."),(0,n.kt)("li",{parentName:"ul"},"Engineering meeting to discuss hard forks and protocol parameter updates ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/195#issuecomment-1300503557"},"#195")),(0,n.kt)("li",{parentName:"ul"},"Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions."),(0,n.kt)("li",{parentName:"ul"},"Drafted project scope for an external audit RFP.")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implement event-sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/issues/580"},"#580")),(0,n.kt)("li",{parentName:"ul"},"Answer the internal auditor","\u2019","s questions"),(0,n.kt)("li",{parentName:"ul"},"Have a draft RFP ready for a first review internally"),(0,n.kt)("li",{parentName:"ul"},"Close some gaps ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra-poc/pull/452"},"#452"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e44a2883.cc36d0db.js b/assets/js/e44a2883.cc36d0db.js new file mode 100644 index 0000000000..95f4ecc255 --- /dev/null +++ b/assets/js/e44a2883.cc36d0db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96755],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(n),m=a,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||o;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var u=2;u<o;u++)l[u]=n[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},80740:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={sidebar_position:2},l="Translate your site",i={unversionedId:"tutorial-extras/translate-your-site",id:"tutorial-extras/translate-your-site",title:"Translate your site",description:"Let's translate docs/intro.md to French.",source:"@site/docs/tutorial-extras/translate-your-site.md",sourceDirName:"tutorial-extras",slug:"/tutorial-extras/translate-your-site",permalink:"/docs/tutorial-extras/translate-your-site",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"defaultSidebar",previous:{title:"Manage Docs Versions",permalink:"/docs/tutorial-extras/manage-docs-versions"}},s={},u=[{value:"Configure i18n",id:"configure-i18n",level:2},{value:"Translate a doc",id:"translate-a-doc",level:2},{value:"Start your localized site",id:"start-your-localized-site",level:2},{value:"Add a Locale Dropdown",id:"add-a-locale-dropdown",level:2},{value:"Build your localized site",id:"build-your-localized-site",level:2}],c={toc:u},d="wrapper";function p(e){let{components:t,...o}=e;return(0,a.kt)(d,(0,r.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"translate-your-site"},"Translate your site"),(0,a.kt)("p",null,"Let's translate ",(0,a.kt)("inlineCode",{parentName:"p"},"docs/intro.md")," to French."),(0,a.kt)("h2",{id:"configure-i18n"},"Configure i18n"),(0,a.kt)("p",null,"Modify ",(0,a.kt)("inlineCode",{parentName:"p"},"docusaurus.config.js")," to add support for the ",(0,a.kt)("inlineCode",{parentName:"p"},"fr")," locale:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-js",metastring:'title="docusaurus.config.js"',title:'"docusaurus.config.js"'},"module.exports = {\n i18n: {\n defaultLocale: 'en',\n locales: ['en', 'fr'],\n },\n};\n")),(0,a.kt)("h2",{id:"translate-a-doc"},"Translate a doc"),(0,a.kt)("p",null,"Copy the ",(0,a.kt)("inlineCode",{parentName:"p"},"docs/intro.md")," file to the ",(0,a.kt)("inlineCode",{parentName:"p"},"i18n/fr")," folder:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/\n\ncp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md\n")),(0,a.kt)("p",null,"Translate ",(0,a.kt)("inlineCode",{parentName:"p"},"i18n/fr/docusaurus-plugin-content-docs/current/intro.md")," in French."),(0,a.kt)("h2",{id:"start-your-localized-site"},"Start your localized site"),(0,a.kt)("p",null,"Start your site on the French locale:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm run start -- --locale fr\n")),(0,a.kt)("p",null,"Your localized site is accessible at ",(0,a.kt)("a",{parentName:"p",href:"http://localhost:3000/fr/"},"http://localhost:3000/fr/")," and the ",(0,a.kt)("inlineCode",{parentName:"p"},"Getting Started")," page is translated."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"In development, you can only use one locale at a same time.")),(0,a.kt)("h2",{id:"add-a-locale-dropdown"},"Add a Locale Dropdown"),(0,a.kt)("p",null,"To navigate seamlessly across languages, add a locale dropdown."),(0,a.kt)("p",null,"Modify the ",(0,a.kt)("inlineCode",{parentName:"p"},"docusaurus.config.js")," file:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-js",metastring:'title="docusaurus.config.js"',title:'"docusaurus.config.js"'},"module.exports = {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'localeDropdown',\n },\n // highlight-end\n ],\n },\n },\n};\n")),(0,a.kt)("p",null,"The locale dropdown now appears in your navbar:"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Locale Dropdown",src:n(4911).Z,width:"370",height:"302"})),(0,a.kt)("h2",{id:"build-your-localized-site"},"Build your localized site"),(0,a.kt)("p",null,"Build your site for a specific locale:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm run build -- --locale fr\n")),(0,a.kt)("p",null,"Or build your site to include all the locales at once:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm run build\n")))}p.isMDXComponent=!0},4911:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png"}}]); \ No newline at end of file diff --git a/assets/js/e44c5603.48faac9b.js b/assets/js/e44c5603.48faac9b.js new file mode 100644 index 0000000000..c25e97824f --- /dev/null +++ b/assets/js/e44c5603.48faac9b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97331],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=p(n),m=r,h=u["".concat(s,".").concat(m)]||u[m]||c[m]||o;return n?a.createElement(h,l(l({ref:t},d),{},{components:n})):a.createElement(h,l({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:r,l[1]=i;for(var p=2;p<o;p++)l[p]=n[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},39077:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=n(87462),r=(n(67294),n(3905));const o={title:"SRE Team Update",slug:"2024-03-15-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2024-03-15-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-15-sre.md",source:"@site/blog/2024-03-15-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-03-15T00:00:00.000Z",formattedDate:"March 15, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.545,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-03-15-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-03-15-node-cli-api"},nextItem:{title:"Ledger Team Update",permalink:"/2024-03-13-ledger"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano-mainnet",id:"cardano-mainnet",level:3},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-ops",id:"cardano-ops",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Govtool",id:"govtool",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3},{value:"Sanchonet-demo",id:"sanchonet-demo",level:3}],d={toc:p},u="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,r.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Cardano-node 8.9.0 is now deployed to all environments.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A new profile-cardano-db-sync-snapshots nixosModule is available for\nsnapshotting dbsync state."))),(0,r.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,r.kt)("h3",{id:"cardano-mainnet"},"Cardano-mainnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Updates cardano node and cli pre-release (-ng) to 8.9.0. Adds a new\ncardano-db-sync snapshots server. Bumps mithril and enhances mithril\nusability with IOG trusted pool signature verification for clients and\nmithril verifier service for signers. Adds miscellaneous other small\nimprovements, bug fixes and tuning. See the pull request description for\nmore details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/9"},"cardano-mainnet-pull-8"))),(0,r.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds nixos service and topology updates related to cardano-node 8.9.0\nrelease:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/compare/22f11ec...dd6ad0f"},"cardano-node-compare"))),(0,r.kt)("h3",{id:"cardano-ops"},"Cardano-ops"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps to cardano-node 8.9.0, fixes metadata server module, removes the legacy\nsnapshots server:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ops/compare/56bdf14...mn-legacy-scale-down"},"cardano-ops-compare"))),(0,r.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Updates cardano node and cli pre-release (-ng) to 8.9.0 and enables new\nbootstrapPeers features and compatibility in the topology functions. Bumps\nmithril and enhances mithril usability with IOG trusted pool signature\nverification for clients, mithril verifier service for signers, mithril\ncapability for process-compose and node entrypoint jobs. Adds miscellaneous\nother small improvements, bug fixes and tuning. See the pull request\ndescription for more details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/34"},"cardano-parts-pull-34"))),(0,r.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Updates cardano node and cli pre-release (-ng) to 8.9.0. Bumps mithril and\nenhances mithril usability with IOG trusted pool signature verification for\nclients, mithril verifier service for signers, mithril capability for\nprocess-compose and node entrypoint jobs. Adds miscellaneous other small\nimprovements, bug fixes and tuning. See the pull request description for\nmore details:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/18"},"cardano-playground-pull-18"))),(0,r.kt)("h3",{id:"govtool"},"Govtool"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Fixes a coalesce function sql query bug in the govtool backend:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/govtool/commit/9920dcb53db35ee1196ebdd77af3090bbdc7c754"},"govtool-commit"))),(0,r.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adds support for bootstrap peers and sanchonet mithril configuration:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/574"},"iohk-nix-pull-574"))),(0,r.kt)("h3",{id:"sanchonet-demo"},"Sanchonet-demo"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bumps cardano-parts for cardano-node 8.9.0 and brings the justfile demo\nrecipes up to 8.9.0 compatibility:\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet-demo/compare/b54da94...8797c24"},"sanchonet-demo-compare"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e4619b9c.58e393e4.js b/assets/js/e4619b9c.58e393e4.js new file mode 100644 index 0000000000..f9640d1451 --- /dev/null +++ b/assets/js/e4619b9c.58e393e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[56482],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=u(r),c=a,h=d["".concat(p,".").concat(c)]||d[c]||m[c]||i;return r?n.createElement(h,o(o({ref:t},s),{},{components:r})):n.createElement(h,o({ref:t},s))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var u=2;u<i;u++)o[u]=r[u];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},70761:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const i={title:"Developer Experience Update",slug:"2023-07-06-developer-experience",authors:"angerman",tags:["devx"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-07-06-developer-experience",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-06-developer-experience.md",source:"@site/blog/2023-07-06-developer-experience.md",title:"Developer Experience Update",description:"High level summary",date:"2023-07-06T00:00:00.000Z",formattedDate:"July 6, 2023",tags:[{label:"devx",permalink:"/tags/devx"}],readingTime:1.145,hasTruncateMarker:!1,authors:[{name:"Moritz Angermann",title:"Head of Developer Experience",url:"https://github.com/angerman",imageURL:"https://github.com/angerman.png",key:"angerman"}],frontMatter:{title:"Developer Experience Update",slug:"2023-07-06-developer-experience",authors:"angerman",tags:["devx"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-07-07-sre"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-07-04-db-sync"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"build support & maintainance",id:"build-support--maintainance",level:3},{value:"compiler upgrades",id:"compiler-upgrades",level:3},{value:"Hydra Tools",id:"hydra-tools",level:3},{value:"haskell.nix",id:"haskellnix",level:3},{value:"devx",id:"devx",level:3},{value:"upstream tooling",id:"upstream-tooling",level:3}],s={toc:u},d="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The Developer Experience team has been dealing with day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, CI migration from Cicero to Hydra, and Buildkite to GitHub Actions. iohk-nix, haskell.nix, and devx have seen improvements."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"build-support--maintainance"},"build support & maintainance"),(0,a.kt)("p",null,"The DevX team has helped troubleshoot a few CI issues, and focused on helping to migrate from Cicero to Hydra, as well as from Buildkite to GitHub Actions."),(0,a.kt)("h3",{id:"compiler-upgrades"},"compiler upgrades"),(0,a.kt)("p",null,"Compatibility with 9.6 has been continued and most of our libraries are not 9.6 compatible. Only a few are not, we hope to have this done by the end of the month. We've also started preliminarily adding GHC 9.8 to our infrastructure for early compiler regression tests."),(0,a.kt)("h3",{id:"hydra-tools"},"Hydra Tools"),(0,a.kt)("p",null,"Our repository, ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra-tools"},"input-output-hk/actions"),", has seen quite some improvements to facility the hydra <-> github integration."),(0,a.kt)("h3",{id:"haskellnix"},"haskell.nix"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/haskell.nix"},"Haskell.nix")," has been maintained and updated with the addition of preliminary GHC 9.8 support."),(0,a.kt)("h3",{id:"devx"},"devx"),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/devx"},"devx")," repository has seen significant improvements, including the addition of GitHub Codespaces, and DevContainers. Integrated with our ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/actions"},"actions/devx")," GitHub Actions, we have a consistent set of tooling for"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"nix develop shells"),(0,a.kt)("li",{parentName:"ul"},"GitHub CodeSpaces integration"),(0,a.kt)("li",{parentName:"ul"},"VSCode DevContainer support"),(0,a.kt)("li",{parentName:"ul"},"GitHub Actions integration")),(0,a.kt)("h3",{id:"upstream-tooling"},"upstream tooling"),(0,a.kt)("p",null,"Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e475cb83.4cbde8a4.js b/assets/js/e475cb83.4cbde8a4.js new file mode 100644 index 0000000000..0536c7c380 --- /dev/null +++ b/assets/js/e475cb83.4cbde8a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[84378],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},h=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=c(a),p=n,m=u["".concat(s,".").concat(p)]||u[p]||d[p]||o;return a?r.createElement(m,i(i({ref:t},h),{},{components:a})):r.createElement(m,i({ref:t},h))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:n,i[1]=l;for(var c=2;c<o;c++)i[c]=a[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}p.displayName="MDXCreateElement"},53728:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-01-12-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-01-12-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-12.md",source:"@site/blog/2024-01-12.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-01-12T00:00:00.000Z",formattedDate:"January 12, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.06,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-01-12-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-01-15-node-cli-api"},nextItem:{title:"Consensus Team Update",permalink:"/2024-01-10-consensus"}},s={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:c},u="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team improved Github actions workflows, addressed protocol\nparameter schema consistency in hydra-node, and made enhancements to log schema\ntests. They created an Architectural Decision Record (ADR) for Cardano\ntransactions serialization in APIs, moved the hydra-chess project to a dedicated\nrepository, and resolved a bug in quickcheck-dynamic and model tests."),(0,n.kt)("p",null,"There will be the monthly review meeting with demos on Hydra, Mithril and\nrelated projects. If this sounds interesting, join us in Google Meet\n",(0,n.kt)("a",{parentName:"p",href:"https://meet.google.com/udc-zgyw-agd"},"https://meet.google.com/udc-zgyw-agd")," next week, January 19 2024 at 17:30 UTC."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Github actions improvements and small fixes to the smoke tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1242"},"#","1242"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1233"},"#","1233")),(0,n.kt)("li",{parentName:"ul"},"Fixed protocol parameter schema consistency around ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1234"},"#","1234")),(0,n.kt)("li",{parentName:"ul"},"Log schema tests improvements and fixes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1244"},"#","1244")),(0,n.kt)("li",{parentName:"ul"},"Created ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1215/files?short_path=3a6c7dc#diff-3a6c7dcfd58c753d4e2639cbfeeff78b09bdd0709a01e6658884de790590c702"},"ADR")," about Cardano transactions serialisation in our APIs\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1215"},"#","1215")),(0,n.kt)("li",{parentName:"ul"},"Moved ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-chess")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1237"},"#","1237")," to a dedicated cardano-scaling organisation repository ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra-chess"},"https://github.com/cardano-scaling/hydra-chess")),(0,n.kt)("li",{parentName:"ul"},"Identified bug on ",(0,n.kt)("inlineCode",{parentName:"li"},"quickcheck-dynamic")," / our model tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1239"},"#","1239"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting (January 19, 17:30 UTC) including several demos (from team and contributors)"),(0,n.kt)("li",{parentName:"ul"},"Do release 0.15.0"),(0,n.kt)("li",{parentName:"ul"},"Improve ",(0,n.kt)("inlineCode",{parentName:"li"},"quickcheck-dynamic")," model to be more robust and cover more\nbehaviour."),(0,n.kt)("li",{parentName:"ul"},"Draft POC about backend for a ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-explorer")," that can track all\nheads on-chain.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e48af7b3.4cbd38c1.js b/assets/js/e48af7b3.4cbd38c1.js new file mode 100644 index 0000000000..6ab2c4e752 --- /dev/null +++ b/assets/js/e48af7b3.4cbd38c1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58659],{77022:e=>{e.exports=JSON.parse('{"permalink":"/tags/sre/page/5","page":5,"postsPerPage":5,"totalPages":6,"totalCount":29,"previousPage":"/tags/sre/page/4","nextPage":"/tags/sre/page/6","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/e4a61baa.7f3b045a.js b/assets/js/e4a61baa.7f3b045a.js new file mode 100644 index 0000000000..26c28c3e2a --- /dev/null +++ b/assets/js/e4a61baa.7f3b045a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53121],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>h});var a=r(67294);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){l(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function u(e,t){if(null==e)return{};var r,a,l=function(e,t){if(null==e)return{};var r,a,l={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=a.createContext({}),i=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=i(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var r=e.components,l=e.mdxType,n=e.originalType,p=e.parentName,d=u(e,["components","mdxType","originalType","parentName"]),m=i(r),s=l,h=m["".concat(p,".").concat(s)]||m[s]||c[s]||n;return r?a.createElement(h,o(o({ref:t},d),{},{components:r})):a.createElement(h,o({ref:t},d))}));function h(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=r.length,o=new Array(n);o[0]=s;var u={};for(var p in t)hasOwnProperty.call(t,p)&&(u[p]=t[p]);u.originalType=e,u[m]="string"==typeof e?e:l,o[1]=u;for(var i=2;i<n;i++)o[i]=r[i];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}s.displayName="MDXCreateElement"},32288:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>c,frontMatter:()=>n,metadata:()=>u,toc:()=>i});var a=r(87462),l=(r(67294),r(3905));const n={title:"Ledger Team Update",slug:"2023-05-26-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,u={permalink:"/2023-05-26-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-26-ledger.md",source:"@site/blog/2023-05-26-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-05-26T00:00:00.000Z",formattedDate:"May 26, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.565,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-05-26-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-05-26-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-05-26-network"}},p={authorsImageUrls:[void 0]},i=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway progress",id:"conway-progress",level:3},{value:"Improve testing",id:"improve-testing",level:3},{value:"Integration work",id:"integration-work",level:3},{value:"Technical debt",id:"technical-debt",level:3}],d={toc:i},m="wrapper";function c(e){let{components:t,...r}=e;return(0,l.kt)(m,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"The ledger team made progress on the conway ledger era. In particular, the design and implementation\nof the new certificates is near complete, we refactored some of our data structures\nto be able to support DReps, we cleaned up the serialization format, and renamed things to make\nclearer the differences with Shelley."),(0,l.kt)("p",null,"The team also completed integration work for the next node release, namely 8.1.0.\nAnd, as always, we continue to address technical debt."),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway-progress"},"Conway progress"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3408"},"pull-3408")," - Improve conway delegation certificates"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3428"},"pull-3428")," - Get rid of Constitutional in favor of Genesis and Committee"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3426"},"pull-3426")," - Add DRep to internal data struture (UMap)"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3425"},"pull-3425")," - Improve witness logic needed for conway"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3423"},"pull-3423")," - Rename ShelleyDelegCerts constructors to distinguish them from Conway"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3421"},"pull-3421")," - Rename DCert -> TxCert"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3454"},"pull-3454")," - conway CDDL minor fixes")),(0,l.kt)("h3",{id:"improve-testing"},"Improve testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3403"},"pull-3403")," - Add Plutus script context golden tests")),(0,l.kt)("h3",{id:"integration-work"},"Integration work"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3410"},"pull-3410")," - Update chaps index"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3416"},"pull-3416")," - Bump cardano-ledger-alonzo-test version"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3414"},"pull-3414")," - Bump cardano-ledger-shelley-test minor version"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3420"},"pull-3420")," - Bump cardano-ledger-shelley-ma-test version"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3441"},"pull-3441")," - Release cardano-ledger-","[alonzo|babbage]","-1.2.1")),(0,l.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3409"},"pull-3409")," - Unit test - no such thing as a reference datum"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3407"},"pull-3407")," - Fixup release process documentation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3404"},"pull-3404")," - Create TotalDeposits events during all eras"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3402"},"pull-3402")," - Fix broken references in the Shelley spec"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3424"},"pull-3424")," - Remove no longer used cardano-ledger-shelley-ma package"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3432"},"pull-3432")," - Add an example on how to bump up versions in the changelog "),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3440"},"pull-3440")," - Revert back to the group serialization for ProtVer for PParams ")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e54eb766.036c89ba.js b/assets/js/e54eb766.036c89ba.js new file mode 100644 index 0000000000..6fb07ab8f3 --- /dev/null +++ b/assets/js/e54eb766.036c89ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21964],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(a),c=r,h=u["".concat(s,".").concat(c)]||u[c]||m[c]||i;return a?n.createElement(h,o(o({ref:t},d),{},{components:a})):n.createElement(h,o({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var p=2;p<i;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},48590:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-03-15-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-15-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-15-hydra.md",source:"@site/blog/2024-03-15-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-03-15T00:00:00.000Z",formattedDate:"March 15, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.38,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-03-15-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-03-18-network"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-03-15-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],d={toc:p},u="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"This week, the Hydra team worked on aligning the specification with the current\nincremental decommit implementation, added decommit to model-based tests and\nalso discussed the incremental commit protocol extension with researchers. The\nteam also updated to ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-api 8.40")," and tests against ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node 8.9.0"),",\nwhich unblocked a possible release and re-enabled smoke tests on public\nnetworks. They also groomed a new ",(0,r.kt)("inlineCode",{parentName:"p"},"/commit")," endpoint interface from a user\ndiscussion and discussed restructuring of the Hydra documentation. The team also\nprepared a ",(0,r.kt)("inlineCode",{parentName:"p"},"Conway"),"-supporting ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-node")," on branch ",(0,r.kt)("inlineCode",{parentName:"p"},"lc/conway-support")," for\nearly adopters (Hi @Juantxu and @ash \ud83d\udc4b). Some internal refactoring prepared for\nupcoming streaming plugins by SundaeLabs and minor fixes to the TUI and\n",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-explorer")," rounded off the week."),(0,r.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Aligned specification with current incremental decommit implementation and added Decommit to model based tests."),(0,r.kt)("li",{parentName:"ul"},"Discussed and explored further on incremental commits with researchers."),(0,r.kt)("li",{parentName:"ul"},"Refactored ",(0,r.kt)("inlineCode",{parentName:"li"},"Event -> Input")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1348"},"#1348")," to prepare for streaming plugins ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1325"},"#1325"),"."),(0,r.kt)("li",{parentName:"ul"},"Minor fixes to the TUI and hydra-explorer clients."),(0,r.kt)("li",{parentName:"ul"},"Updated to ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-node 8.9.0")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-api 8.40")," - this unblocked a possible release and re-enabled smoke tests on public networks."),(0,r.kt)("li",{parentName:"ul"},"Groomed new ",(0,r.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint interface ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1350"},"#1350")," from a user discussion ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/discussions/1337"},"#1337"),"."),(0,r.kt)("li",{parentName:"ul"},"Discussed restructuring of the Hydra documentation ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1349"},"#1349"),"."),(0,r.kt)("li",{parentName:"ul"},"Prepared a ",(0,r.kt)("inlineCode",{parentName:"li"},"Conway"),"-supporting ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra-node")," on branch ",(0,r.kt)("inlineCode",{parentName:"li"},"lc/conway-support")," ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1178"},"#1178")," (will be merged only after the hard-fork).")),(0,r.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Prepare a PR for Kupo using new Hydra transaction format (to prepare for 0.16.0 release)"),(0,r.kt)("li",{parentName:"ul"},"Review and merge streaming plugins ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1325"},"#1325")),(0,r.kt)("li",{parentName:"ul"},"Improve the ",(0,r.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint to unblock users"),(0,r.kt)("li",{parentName:"ul"},"Test corner cases of incremental decommit transaction traces")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e56a9a29.de8bc87b.js b/assets/js/e56a9a29.de8bc87b.js new file mode 100644 index 0000000000..32aa5f6611 --- /dev/null +++ b/assets/js/e56a9a29.de8bc87b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43412],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>g});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),s=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},m=function(e){var n=s(e.components);return r.createElement(c.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),p=s(t),d=a,g=p["".concat(c,".").concat(d)]||p[d]||u[d]||o;return t?r.createElement(g,i(i({ref:n},m),{},{components:t})):r.createElement(g,i({ref:n},m))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=d;var l={};for(var c in n)hasOwnProperty.call(n,c)&&(l[c]=n[c]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var s=2;s<o;s++)i[s]=t[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}d.displayName="MDXCreateElement"},43937:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=t(87462),a=(t(67294),t(3905));const o={title:"Performance & tracing update",slug:"2023-08-24-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-08-24-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-24-performance-and-tracing.md",source:"@site/blog/2023-08-24-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-08-24T00:00:00.000Z",formattedDate:"August 24, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.7,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-08-24-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-08-25-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-08-23-consensus"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:s},p="wrapper";function u(e){let{components:n,...t}=e;return(0,a.kt)(p,(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Benchmarking node version ",(0,a.kt)("inlineCode",{parentName:"li"},"8.2.1")," has concluded. Additionally we're developing benchmarking setups for GHC9.6 and UTxO-HD."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: Our analysis pipeline has received improvements reducing memory footprint."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Another batch of optimizations for the new tracing system has been merged; work on namespace consistency guarantees is ongoing."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: We're performing and analysing various runs for validation purposes on the new hardware cluster.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed and analysed the benchmarks for the ",(0,a.kt)("inlineCode",{parentName:"p"},"8.2.1")," version of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node")," as part of our release benchmarking cycle. "),(0,a.kt)("p",null,"Setting up cluster benchmarks requires completing full system integration. This applies to both supporting a new build platform, as is GHC9.6, as well as targeting a specific feature, like a UTxO-HD enabled node. Currently, we're working on respective integrations on both those paths."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"As cluster runs increase in duration, more and more data is accumulated for analysis. Batch analysis mode needs all data to be held\nin memory, which wouldn't fit anymore even on a 64GB RAM machine. Changes to the in-memory data representation improving on compactness were able to reduce the RAM requirements of our analysis pipeline."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The next portion of optimizations has been completed and merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),", getting rid of Haskell's native ",(0,a.kt)("inlineCode",{parentName:"p"},"String")," representation on critical code paths. This concludes the optimization phase of the new tracing system for all its components used by ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". "),(0,a.kt)("p",null,"The implementation for validation of consistent naming and configuration is ongoing. We're splitting out everything that's verifiable at compile time into a seperate test case which we hope to integrate into CI - leaving only configuration constraints to be verified at or before node startup."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"The verification phase of the nomad cloud backend is ongoing. We're able to perform full runs on the new hardware cluster\nand porting profiles and configurations from the legacy one. The goal is to reproduce with confidence known regressions, or improvements, between runs performed on the legacy cluster and runs performed with the new backend."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e5d179d9.65e8d321.js b/assets/js/e5d179d9.65e8d321.js new file mode 100644 index 0000000000..84393febe1 --- /dev/null +++ b/assets/js/e5d179d9.65e8d321.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8583],{10761:a=>{a.exports=JSON.parse('{"permalink":"/tags/hydra","page":1,"postsPerPage":5,"totalPages":16,"totalCount":79,"nextPage":"/tags/hydra/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/e5dd9161.35060340.js b/assets/js/e5dd9161.35060340.js new file mode 100644 index 0000000000..6bed4c0951 --- /dev/null +++ b/assets/js/e5dd9161.35060340.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[37329],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),s=p(a),d=n,c=s["".concat(u,".").concat(d)]||s[d]||m[d]||i;return a?r.createElement(c,o(o({ref:t},h),{},{components:a})):r.createElement(c,o({ref:t},h))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<i;p++)o[p]=a[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},16036:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-02-24-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-02-24-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-24-hydra.md",source:"@site/blog/2023-02-24-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-02-24T00:00:00.000Z",formattedDate:"February 24, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.93,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-02-24-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-03-02-network"},nextItem:{title:"Mithril Team Update",permalink:"/2023-02-23-mithril"}},u={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:p},s="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team continue closing many gaps and aligning the\nimplementation with the specification. More over, they have groomed a plan to\nmake Hydra Mainnet compatible. Also, they continue moving forward with the\ninternal auditing and have published some auditing guidelines to receive\ncontributions from the community."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/452"},"#452")," (what is\nremaining in there)"),(0,n.kt)("li",{parentName:"ul"},"Aligned the Head protocol logic implementation with the specification"),(0,n.kt)("li",{parentName:"ul"},"Completed full minting policy implementation and spec\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/720"},"#720")),(0,n.kt)("li",{parentName:"ul"},"Clarified message authentication with researchers"),(0,n.kt)("li",{parentName:"ul"},"Groomed what is left to do for Mainnet compatibility\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/713"},"#713")," and drafted a\n0.10.0 version"),(0,n.kt)("li",{parentName:"ul"},"Added a tutorial by ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/perturbing/"},"@perturbing")," to the\nwebsite ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/docs/tutorial/"},"LINK")),(0,n.kt)("li",{parentName:"ul"},"Published auditing guidelines\n",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/audit-guidelines"},"LINK")),(0,n.kt)("li",{parentName:"ul"},"Made hydra-node work for macos\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/746"},"#746")," and added support\nfor building on aarch64\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/673"},"#673")),(0,n.kt)("li",{parentName:"ul"},"Met with a potential customer of Hydra for Payments")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Have the monthly review meeting incl. the report"),(0,n.kt)("li",{parentName:"ul"},"Have smoke tests fixed and running regularly"),(0,n.kt)("li",{parentName:"ul"},"Release 0.9.0 with updated scripts"),(0,n.kt)("li",{parentName:"ul"},"Redraw transaction graphs for specification")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e5eebff8.2b2d6788.js b/assets/js/e5eebff8.2b2d6788.js new file mode 100644 index 0000000000..9ad54f1bd6 --- /dev/null +++ b/assets/js/e5eebff8.2b2d6788.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48048],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(r),d=a,h=u["".concat(s,".").concat(d)]||u[d]||m[d]||o;return r?n.createElement(h,i(i({ref:t},c),{},{components:r})):n.createElement(h,i({ref:t},c))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var p=2;p<o;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},41809:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const o={title:"SRE Team Update",slug:"2024-03-01-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-03-01-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-01-sre.md",source:"@site/blog/2024-03-01-sre.md",title:"SRE Team Update",description:"High level summary",date:"2024-03-01T00:00:00.000Z",formattedDate:"March 1, 2024",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:1.26,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2024-03-01-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-03-01-hydra"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-02-29-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Work in progress",id:"work-in-progress",level:3}],c={toc:p},u="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The SRE team continues work on cardano environment improvements and general\nenvironment maintenance."),(0,a.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Cardano-node 8.8.1-pre is now deployed to sanchonet, two-thirds of preprod,\none-third of preview and also voltaire private chain networks.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Catalyst Voltaire private chain was respun and an updated db-sync and govtool\nbackend deployed after hard fork to Conway era.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"IOG sanchonet pool block producers are now also signing mithril\ncertificates.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"A mithril-signer-verifier service now runs on all IOG SRE mithril signers and\ngenerates alerts if no recent mithril certificates have been signed.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"All cardano-parts mithril clients, whether via nixosConfiguration,\nprocess-compose jobs or the nix cardano-node entrypoint, will now\nautomatically verify that a trusted IOG pool has signed a mithril certificate\nprior to using the associated mithril state. If no trusted IOG pool has\nsigned a recent mithril certificate, mithril state usage with be skipped and\na classic sync from genesis to tip will be performed.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"A significant amount of effort was applied towards the upcoming cardano-node\n8.9.x-pre release in order to align nixos service module code between\ncardano-node nixos services, iohk-nix topology generation, cardano-ops legacy\ncode, and cardano-parts module compatibility."))),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("h3",{id:"work-in-progress"},"Work in progress"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The following PRs contain the mentioned work above and will be finalized and\nmerged once cardano-node 8.9.x-pre or equivalent is tagged. Summary details\nfor each PR will be added in the next biweekly update once merged.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/34"},"cardano-parts-pull-34")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/18"},"cardano-playground-pull-18")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-mainnet/pull/9"},"cardano-mainnet-pull-9"))))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e6402687.53be7bb5.js b/assets/js/e6402687.53be7bb5.js new file mode 100644 index 0000000000..bc52033de0 --- /dev/null +++ b/assets/js/e6402687.53be7bb5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93524],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=p(n),m=o,h=c["".concat(s,".").concat(m)]||c[m]||d[m]||r;return n?a.createElement(h,i(i({ref:t},u),{},{components:n})):a.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:o,i[1]=l;for(var p=2;p<r;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},26879:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var a=n(87462),o=(n(67294),n(3905));const r={title:"Network Team Update",slug:"2022-11-28-network",authors:"coot",tags:["network","release"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-11-28-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-28-network.md",source:"@site/blog/2022-11-28-network.md",title:"Network Team Update",description:"Stake-Driven Data Diffusion Release for Relays",date:"2022-11-28T00:00:00.000Z",formattedDate:"November 28, 2022",tags:[{label:"network",permalink:"/tags/network"},{label:"release",permalink:"/tags/release"}],readingTime:3.675,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-11-28-network",authors:"coot",tags:["network","release"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2022-11-30-performance-and-tracing"},nextItem:{title:"Crypto Team Update",permalink:"/2022-11-25-crypto"}},s={authorsImageUrls:[void 0]},p=[{value:"Stake-Driven Data Diffusion Release for Relays",id:"stake-driven-data-diffusion-release-for-relays",level:2},{value:"Peer Sharing",id:"peer-sharing",level:3},{value:"DeltaQ",id:"deltaq",level:3},{value:"What have we achieve last sprint",id:"what-have-we-achieve-last-sprint",level:2},{value:"DeltaQ",id:"deltaq-1",level:3}],u={toc:p},c="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(c,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"stake-driven-data-diffusion-release-for-relays"},"Stake-Driven Data Diffusion Release for Relays"),(0,o.kt)("p",null,"IOG networking team decided to release the ",(0,o.kt)("em",{parentName:"p"},"Stake-Driven Data Diffusion with\nRobust Optimised Peer Selection")," also more commonly known as ",(0,o.kt)("em",{parentName:"p"},"P2P"),". In the\nlast update, we informed about a performance regression, but it turns out it\nonly affects block producers, and thus we highly advise against running it on\nsuch nodes. Further investigation is required to find the cause of it."),(0,o.kt)("p",null,"On IOG's benchmarking cluster we have seen quite a good performance improvement\non block propagation itself. The cluster is running a static topology with\nvalency 6 (each node is connected to 6 other nodes). In which every of the 50\nnodes are block producers. The setup of this network is the same as mainnet.\nWe've seen 40-50% performance improvement on block propagation comparing to the\nsame cluster deployed with the same topology but using non-P2P nodes. We think\nthis performance improvement is caused by using full duplex connections. Quite\nlikely the transaction traffic floating in both directions on the same TCP\nconnection helps to keep the TCP window open. Note that in a cluster of 50\nnodes with valency 6 the probability of having at least one duplex connection\nis more than 50%. We don't expect the same improvement on mainnet because the\nnetwork is much wider and the transaction traffic is not as large."),(0,o.kt)("p",null,"Just before the release we squashed two small bugs:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4163"},"issue #4163")," - top level integration bug in ",(0,o.kt)("inlineCode",{parentName:"li"},"keep-alive"),";"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/issues/4177"},"issue #4177")," - a bug in ",(0,o.kt)("inlineCode",{parentName:"li"},"outbound-governor"),";"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4165"},"PR #4165")," - a fix ",(0,o.kt)("inlineCode",{parentName:"li"},"cardano-ping")," support of ",(0,o.kt)("inlineCode",{parentName:"li"},"NodeToNodeV_10"),".")),(0,o.kt)("h3",{id:"peer-sharing"},"Peer Sharing"),(0,o.kt)("p",null,"We were carrying a review of ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"peer sharing PR"),"."),(0,o.kt)("h3",{id:"deltaq"},"DeltaQ"),(0,o.kt)("p",null,"Neil Davies was invited to give a guest lecture entitled ",(0,o.kt)("inlineCode",{parentName:"p"},"Avoiding System Catastrophes")," at ",(0,o.kt)("a",{parentName:"p",href:"https://uclouvain.be/en/index.html"},"UCLouvain"),"."),(0,o.kt)("h2",{id:"what-have-we-achieve-last-sprint"},"What have we achieve last sprint"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4163"},"issue #4163"),": we found out that a control message is not passed to the\n",(0,o.kt)("inlineCode",{parentName:"p"},"keep-alive")," mini-protocol, this results in every demotion executing demotion\ntimeout rather than a graceful termination. With the fix the node will no longer log:"),(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{ "kind": "PeerStatusChangeFailure"\n, "peerStatusChangeType": "WarmToCold (ConnectionId {localAddress = 192.168.0.10:7000, remoteAddress = 3.129.186.40:3000})"\n, "reason": "TimeoutError"\n}\n'))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4177"},"issue #4177"),": we fixed an assertion failure in the ",(0,o.kt)("inlineCode",{parentName:"p"},"outbound-governor"),"; now\nwe don't try demoted peers which are being demoted already.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4155"},"PR #4155"),": we refactored ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," packages. There's a top level\n",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-diffusion")," package which integrates ",(0,o.kt)("inlineCode",{parentName:"p"},"network"),"\n& ",(0,o.kt)("inlineCode",{parentName:"p"},"consensus")," code. We also introduced:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ouroboros-network-api")," package which contains the API shared between\n",(0,o.kt)("inlineCode",{parentName:"li"},"network")," & ",(0,o.kt)("inlineCode",{parentName:"li"},"conensus"),";"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ouroboros-network-mock")," package which contains mock API used for testing\n(e.g. a mock chain & chain producer, etc.)"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ouroboros-network-protocols")," package which contains implementation of all\n(but ",(0,o.kt)("inlineCode",{parentName:"li"},"handshake"),") mini-protocols, exposes a ",(0,o.kt)("inlineCode",{parentName:"li"},"testlib")," and contains ",(0,o.kt)("inlineCode",{parentName:"li"},"test"),"\nand ",(0,o.kt)("inlineCode",{parentName:"li"},"cddl")," components.")),(0,o.kt)("p",{parentName:"li"},"This made the dependency tree of ",(0,o.kt)("inlineCode",{parentName:"p"},"network")," & ",(0,o.kt)("inlineCode",{parentName:"p"},"consensus")," packages much\ncleaner.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4169"},"PR #4169"),": we described the usage of release branches in ",(0,o.kt)("inlineCode",{parentName:"p"},"CONTRIBUTING.md"),"\ndoc.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4165"},"PR #4165"),": we fixed ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-ping")," support of ",(0,o.kt)("inlineCode",{parentName:"p"},"NodeToNodeV_10")," protocol."))),(0,o.kt)("h3",{id:"deltaq-1"},"DeltaQ"),(0,o.kt)("p",null,"The abstract of the talk:"),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"An essential step to ensuring that distributed systems are fit for\npurpose."),(0,o.kt)("p",{parentName:"blockquote"},"Distributed systems have become an integral part of our society and\ndaily lives. We are, both implicitly and explicitly, individually as well as\ncollectively, placing ever more trust in them."),(0,o.kt)("p",{parentName:"blockquote"},"Are they worthy of this trust? Our need for them to be \u2018fit-for-purpose\u2019 goes\nwell beyond notions of functional correctness (i.e. never getting the wrong\nanswer). We need them to deliver the desired outcomes in a timely, robust,\nreliable, resilient fashion, at scale and in a sustainable way (both\neconomically and environmentally)."),(0,o.kt)("p",{parentName:"blockquote"},"This all sounds like a worthy aspiration, but what would be a practical\napproach to capturing and reasoning about these issues? How can we ensure that\nsystems can meet their fit-for-purpose objectives, not just in their design but\nas they are deployed, encounter the imperfect world, are scaled to become\neconomic, and proceed into ongoing maintenance?"),(0,o.kt)("p",{parentName:"blockquote"},"This talk will illustrate how the notions of Outcomes and Quality Attenuation\n(as captured by \u2018\u2206Q\u2019) are being used to both frame the necessary notions and\nprovide a basis for assuring the refinement and reification of such systems,\nfrom initial concept to operational infrastructure.")),(0,o.kt)("p",null,"You can download the slides from ",(0,o.kt)("a",{target:"_blank",href:n(98946).Z},"here"),"."))}d.isMDXComponent=!0},98946:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/files/2022-11-24-UCL-60c46564c5dee25b0060304c060ab1cf.pdf"}}]); \ No newline at end of file diff --git a/assets/js/e6ea9b03.069d9747.js b/assets/js/e6ea9b03.069d9747.js new file mode 100644 index 0000000000..93222fac43 --- /dev/null +++ b/assets/js/e6ea9b03.069d9747.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[88869],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),c=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=c(r),d=n,h=s["".concat(u,".").concat(d)]||s[d]||m[d]||i;return r?a.createElement(h,l(l({ref:t},p),{},{components:r})):a.createElement(h,l({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,l=new Array(i);l[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[s]="string"==typeof e?e:n,l[1]=o;for(var c=2;c<i;c++)l[c]=r[c];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},53187:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-03-31-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-03-31-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-31-crypto.md",source:"@site/blog/2023-03-31-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-03-31T00:00:00.000Z",formattedDate:"March 31, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.105,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-03-31-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-04-05-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-03-31-goedel"}},u={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"Sidechains",id:"sidechains",level:3},{value:"MuSig2",id:"musig2",level:3}],p={toc:c},s="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Mithril: Started looking into full-node verifier"),(0,n.kt)("li",{parentName:"ul"},"cardano-base: BLS12-381's PR merged. Creating test-vectors for verifying basic pairing properties."),(0,n.kt)("li",{parentName:"ul"},"KES agent: Blockers overcome. Reaching a first MVP level of the KES-agent. "),(0,n.kt)("li",{parentName:"ul"},"Sidechains: Included BLS12-381 & JubJub to halo2curves"),(0,n.kt)("li",{parentName:"ul"},"MuSig2: Final modifs to C version.")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Started designing how a full-node verifier would work. Issue comming in the next couple of weeks. ")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"BLS12-381 branch merged ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/266"},"PR#266"),". "),(0,n.kt)("li",{parentName:"ul"},"Testing strategy for BLS bindings:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Test-vectors for Groth16, and simple BLS signatures ready."),(0,n.kt)("li",{parentName:"ul"},"Test-vectors with different library, and created by different engineer. ")))),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Resolved issues of circular dependency"),(0,n.kt)("li",{parentName:"ul"},"Got rid of separate DSIGN and DSIGNM, we now have DSIGN over mlocked keys, but the phantom type is the same. "),(0,n.kt)("li",{parentName:"ul"},"Opened a PR for raw bearer branch in ouroboros network ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4395"},"PR4395")),(0,n.kt)("li",{parentName:"ul"},"Resolved a bug where the agent node did not properly closed connections"),(0,n.kt)("li",{parentName:"ul"},"Updated version of ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/70"},"IOSim")," allowed us to finish a first version of KES agent.")),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Included ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/iquerejeta/halo2curves/commit/1ccf987b772dcfaa3c1e3439a4a28f23fcf07c7a"},"BLS12-381")," curve to our branch of halo2curves"),(0,n.kt)("li",{parentName:"ul"},"Included ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/iquerejeta/halo2curves/commit/3f20edb2ed112733a0a0986b0a0386c1b9bc439f"},"JubJub")," to our branch of halo2curves ")),(0,n.kt)("h3",{id:"musig2"},"MuSig2"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Minor reorg ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/42"},"PR#42")),(0,n.kt)("li",{parentName:"ul"},"Started including fuzz testing for deserialisation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/musig2/pull/43"},"PR#"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e70f68c6.f05bf16d.js b/assets/js/e70f68c6.f05bf16d.js new file mode 100644 index 0000000000..758a451b7f --- /dev/null +++ b/assets/js/e70f68c6.f05bf16d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[72815],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=c(r),u=a,f=m["".concat(p,".").concat(u)]||m[u]||d[u]||o;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[m]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},80684:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-03-16-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-03-16-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-16-goedel.md",source:"@site/blog/2023-03-16-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-03-16T00:00:00.000Z",formattedDate:"March 16, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.55,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-03-16-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-03-17-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2023-03-10-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],s={toc:c},m="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the team has been working on drafts of two papers\nimproving the deltaQ tutorial, consulting on performance design, and\nthe final version of the Djed paper."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing draft of DeltaQSD algebra paper for ICE 2023")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Successful outcome of Marlowe consultancy leading to substantial\nimprovement in performance")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing sections on the communication language and bisimulation\nproofs for draft paper about verifying design refinements for\ndistributed system design")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Camera ready version of Djed paper under preparation"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e716e5b6.4078be2b.js b/assets/js/e716e5b6.4078be2b.js new file mode 100644 index 0000000000..5d28ec657e --- /dev/null +++ b/assets/js/e716e5b6.4078be2b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94379],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=s(n),d=a,h=u["".concat(p,".").concat(d)]||u[d]||m[d]||o;return n?r.createElement(h,i(i({ref:t},c),{},{components:n})):r.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var s=2;s<o;s++)i[s]=n[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},13179:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const o={title:"SRE Q3 2023 Update",slug:"2023-Q3-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2023-Q3-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q3-sre.md",source:"@site/quarterly/2023-Q3-sre.md",title:"SRE Q3 2023 Update",description:"2023-07 - 2023-09",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"sre",permalink:"/quarterly/tags/sre"}],readingTime:.905,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Q3 2023 Update",slug:"2023-Q3-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Q3 2023 Update",permalink:"/quarterly/2023-Q3-performance-and-tracing"},nextItem:{title:"Consensus Q4 2023 Update",permalink:"/quarterly/2023-Q4-consensus"}},p={authorsImageUrls:[void 0]},s=[{value:"2023-07 - 2023-09",id:"2023-07---2023-09",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"Next steps",id:"next-steps",level:3}],c={toc:s},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"2023-07---2023-09"},"2023-07 - 2023-09"),(0,a.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,a.kt)("p",null,"In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Completion of mainnet relay networking conversion to p2p topology"),(0,a.kt)("li",{parentName:"ul"},"Cardano sanchonet environment respins for testing new cardano-node pre-release Conway era functionality"),(0,a.kt)("li",{parentName:"ul"},"Stabilization of cardano-explorer in cardano-world using high IOPS bare metal machines"),(0,a.kt)("li",{parentName:"ul"},"Creation of a nix content addressed packages repository, ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs"},"capkgs"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"To provide lightweight release binaries thereby avoiding sluggish nix flakes and devShells"))),(0,a.kt)("li",{parentName:"ul"},"Creation of a cardano performance benchmarking cluster, ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-perf"},"cardano-perf"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"To replace legacy cluster benchmark tooling"))),(0,a.kt)("li",{parentName:"ul"},"Creation of a cardano cluster composition repository, ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts"},"cardano-parts"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"For enabling multi-cluster, multi-role cardano network deployments"))),(0,a.kt)("li",{parentName:"ul"},"Creation of a cardano testnets repository, ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground"},"cardano-playground"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Utilizing cardano-parts for testnet deployments"))),(0,a.kt)("li",{parentName:"ul"},"Creation of a sanchonet demo repository, ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet-demo"},"sanchonet-demo"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Utilizing cardano-parts for fast sanchonet test environment and demo purposes")))),(0,a.kt)("h3",{id:"next-steps"},"Next steps"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Continue with migration of cardano-world testnets to cardano-playground"),(0,a.kt)("li",{parentName:"ul"},"Proceed with spinup of mainnet p2p bootstrap cluster"),(0,a.kt)("li",{parentName:"ul"},"Scale down mainnet non-p2p legacy cluster at the appropriate time")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e7486169.a0c456dc.js b/assets/js/e7486169.a0c456dc.js new file mode 100644 index 0000000000..26b56c33ab --- /dev/null +++ b/assets/js/e7486169.a0c456dc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[45237],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(n),c=o,h=m["".concat(s,".").concat(c)]||m[c]||d[c]||a;return n?r.createElement(h,i(i({ref:t},u),{},{components:n})):r.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:o,i[1]=l;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}c.displayName="MDXCreateElement"},74349:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2022-11-09-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/quarterly/2022-11-09-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2022-11-09-network.md",source:"@site/quarterly/2022-11-09-network.md",title:"Network Team Update",description:"Network Quarterly Update",date:"2022-11-09T00:00:00.000Z",formattedDate:"November 9, 2022",tags:[{label:"network",permalink:"/quarterly/tags/network"}],readingTime:3.87,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-11-09-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Consensus Quarterly Update",permalink:"/quarterly/2022-11-15-consensus"},nextItem:{title:"Ledger Team Update",permalink:"/quarterly/2022-11-07-ledger"}},s={authorsImageUrls:[void 0]},p=[{value:"Network Quarterly Update",id:"network-quarterly-update",level:2},{value:"2022-09 - 2022-11",id:"2022-09---2022-11",level:2},{value:"Summary of most important improvements",id:"summary-of-most-important-improvements",level:3},{value:"Detailed log",id:"detailed-log",level:3},{value:"Next quarter",id:"next-quarter",level:2}],u={toc:p},m="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(m,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"network-quarterly-update"},"Network Quarterly Update"),(0,o.kt)("h2",{id:"2022-09---2022-11"},"2022-09 - 2022-11"),(0,o.kt)("h3",{id:"summary-of-most-important-improvements"},"Summary of most important improvements"),(0,o.kt)("p",null,"During this quarter the networking team delivered low level specification of\npeer sharing & eclipse evasion. We held a session with the consensus & the\nscientists; we got a positive feedback on the design."),(0,o.kt)("p",null,"Further we focused on implementation of peer sharing. We produced a ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/wiki/Peer-Sharing-Implementation-Plan"},"detail\ndesign")," and an ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"early implementation"),"."),(0,o.kt)("p",null,"We prepared the ",(0,o.kt)("em",{parentName:"p"},"P2P Single Relay Release")," (",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node-1.35.5"),"). It\nincludes over ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4120"},"130 patches")," of network stack improvements over the\nprevious version ",(0,o.kt)("inlineCode",{parentName:"p"},"1.35.4"),", which were accomplished over a longer period of\ntime. Among them are both bug fixes and UX improvements for stake pool\noperators like simplified format of the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4563"},"topology file"),", or\nimprovements in the logged messages:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4015"},"tracing of early consensus exceptions")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4127"},"tracing of demotion of local root peers")," (traced with\n",(0,o.kt)("inlineCode",{parentName:"li"},"Warning")," severity), the trace is called ",(0,o.kt)("inlineCode",{parentName:"li"},"TraceDemoteLocalAsynchronous"),", in\n",(0,o.kt)("inlineCode",{parentName:"li"},"json")," format it is encoded as ",(0,o.kt)("inlineCode",{parentName:"li"},"DemoteLocalAsynchronous"),". For an SPO\ntracking these demotion is vital (such demotion could indicate that a block\nproducer is no longer connected to its relays or vice versa)")),(0,o.kt)("p",null,"We also provide better integration with ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3979"},"systemd")," (socket\nactivation improvements) or improvements in the networking stack:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3785"},"exit policies"),","),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3915"},"peer metrics improvements"),","),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4106"},"DNS TTL")," improvements (which make it harder to misconfigure the\nsystem, an issue discovered by the performance & monitoring team),"),(0,o.kt)("li",{parentName:"ul"},"do not trigger inbound idle timeout for ",(0,o.kt)("inlineCode",{parentName:"li"},"node-to-client")," connections (",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/3844"},"pr\n#3844"),"), an issue reported to us by Matthias Benkort from\nCardano Foundation.")),(0,o.kt)("p",null,"Duncan has been making progress with the input endorsers demo. His simulation\nprovides a useful animated visualisation and live quantification of behaviour\nof the modeled design."),(0,o.kt)("p",null,"We also improved our e2e diffusion simulation by implementing header-body\nsplit, similar to what the real implementation does."),(0,o.kt)("p",null,"We also made some advances towards our future goals of P2P release for block\nproducer nodes (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/3800"},"pr #3800")," - in review) & for Daedalus users\n(",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3968"},"pr #3690")," - merged)."),(0,o.kt)("h3",{id:"detailed-log"},"Detailed log"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We expanded diffusion simulation with block-fetch protocol bringing it closer\nto the production system.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We addressed some additional technical depth in diffusion simulation")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We slightly improved documentation & CI of io-sim and typed-protocols\nrepositories for open-source contributors.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We closed a number of issues towards publishing io-sim on Hackage (only two\nessential issues are left open).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We pushed a branch of typed-protocols which captures one of the developer UX\nproblems in the API which we need to solve.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We identified and fixed an issue related to systemd sockets.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We identified and fixed an issue in consensus initialisation not giving\nfeedback on early errors.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We deployed RT View, identified a number of issues which were communicated to\nthe performance & monitoring team.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We finished high level & detailed design of peer sharing, very early\nimplementation of peer sharing is done (note that peer sharing cannot be\nsafely deployed without eclipse evasion & genesis).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We finished high level design of eclipse evasion, and started working on\na detailed design.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We were assigned the role of release engineer for 1.35.5 release (the P2P\nsingle relay release); we prepared a cardano-node for 1.35.5 release which\ncontains more than 130 patches of just network stack improvements done over\nlast few months.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We diagnosed and fixed an tricky bug in the peer state actions (a component\nwhich sits between outbound governor and connection manager). That bug was\nintroduced earlier this year and never released. It was caught by the QA\ntesting framework. We expanded our diffusion simulation to cover such case and\nalso mitigated a chance for reintroducing such a bug in future.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We identified and quite likely mitigated a misconfiguration in the\nbenchmarking cluster (next benchmarking run will confirm our hypothesis).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We simplified the format of p2p topology file, we got positive feedback from\nSPOs.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We raised severities of some of the logging messages, which is an important\nimprovement for SPOs, exchanges and other users of the system.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"We worked on input endorsers simulation which gives both animated and\nquantified live feedback on network operation, using a simplified model of\na TCP/IP network. "))),(0,o.kt)("h2",{id:"next-quarter"},"Next quarter"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Release the Single Relay P2P Release ",(0,o.kt)("inlineCode",{parentName:"p"},"1.35.5"),".")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Carry on with Peer Sharing (review, testing).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Deliver a talk at ",(0,o.kt)("a",{parentName:"p",href:"https://sites.uclouvain.be/OPODIS2022/"},"Conference on Principles of Distributed Systems 2022")," in Brussels, Belgium.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Present Detailed Design of Eclipse Evasion and start implementation phase.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Work on P2P Block Producer release.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Carry on with publishing of ",(0,o.kt)("inlineCode",{parentName:"p"},"io-sim")," on ",(0,o.kt)("inlineCode",{parentName:"p"},"Hackage"),"."))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e7a72da0.daba0582.js b/assets/js/e7a72da0.daba0582.js new file mode 100644 index 0000000000..50629e195c --- /dev/null +++ b/assets/js/e7a72da0.daba0582.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46846],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>u});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},h=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(t),h=a,u=p["".concat(s,".").concat(h)]||p[h]||m[h]||i;return t?r.createElement(u,o(o({ref:n},d),{},{components:t})):r.createElement(u,o({ref:n},d))}));function u(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=h;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var c=2;c<i;c++)o[c]=t[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,t)}h.displayName="MDXCreateElement"},66876:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=t(87462),a=(t(67294),t(3905));const i={title:"Performance & tracing update",slug:"2023-04-19-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o="High level summary",l={permalink:"/2023-04-19-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-19-performance-and-tracing.md",source:"@site/blog/2023-04-19-performance-and-tracing.md",title:"Performance & tracing update",description:"* Benchmarking: We performed a series of benchmarks aimed at the new 8.0 release branch and built a timeline from the 1.35 releases to that branch.",date:"2023-04-19T00:00:00.000Z",formattedDate:"April 19, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.575,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-04-19-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-04-19-consensus"},nextItem:{title:"Cardano Block Production Temporary Outage",permalink:"/2023-04-17-ledger"}},s={authorsImageUrls:[void 0]},c=[{value:"Detailed manifest",id:"detailed-manifest",level:3},{value:"GHC profiling inside workbench",id:"ghc-profiling-inside-workbench",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],d={toc:c},p="wrapper";function m(e){let{components:n,...t}=e;return(0,a.kt)(p,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We performed a series of benchmarks aimed at the new ",(0,a.kt)("inlineCode",{parentName:"li"},"8.0")," release branch and built a timeline from the ",(0,a.kt)("inlineCode",{parentName:"li"},"1.35")," releases to that branch."),(0,a.kt)("li",{parentName:"ul"},"New tracing: Work on safeguarding the new tracing system performance-wise is ongoing. A practical use case for data points is being tackled with Galois."),(0,a.kt)("li",{parentName:"ul"},"Analysis pipeline: We're working on automatically obtaining a detailed manifest for each run."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: The library for benchmarking Plutus scripts has been merged. Also, we've laid the ground for including GHC profiling data into our workbench."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: The first iteration of a distributed / multi-client Nomad cluster has been merged.")),(0,a.kt)("h1",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We have performed various cluster runs targeting the ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0")," release branch. That way we were able to catch an inconsistency in behaviour early on. This led to the creation of a specialized workbench profile ",(0,a.kt)("inlineCode",{parentName:"p"},"epoch-transition")," for local reproduction of what we observed on the benchmarking cluster. "),(0,a.kt)("p",null,"Furthermore, we bridged the gap between the run data from the ",(0,a.kt)("inlineCode",{parentName:"p"},"1.35.x")," releases to the the new ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0.x")," release branch. This included walking the\n",(0,a.kt)("inlineCode",{parentName:"p"},"master")," branch backwards and pinpointing the order, as well as the dates and commits of all relevant component bumps. This timeline is absolutely crucial\nin locating possible regressions for the new release branch, as it provides the exact points in history we would need to target with a comprehensive set of\nbenchmarks."),(0,a.kt)("h1",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"In-depth performance analysis of the new tracing system has already yielded results and helped us smoothing some rough edges. However, this work is still\nongoing. "),(0,a.kt)("p",null,"In coordination with Galois, who are developing a system assurance service by observing a number of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),"s, we're working with the implementation\nof data points which the node provides during runtime. While making the view on data points expressive enough for the external service, the computational\nburden inside the node needs to be kept to an absolute minimum. We're currently in ideation about whether ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," could be extended with a richer\nfeature set to that end."),(0,a.kt)("h1",{id:"infrastructure--analysis"},"Infrastructure & Analysis"),(0,a.kt)("h3",{id:"detailed-manifest"},"Detailed manifest"),(0,a.kt)("p",null,"A run manifest documents, among other things, the component dependencies that were used for a specific build the run has been performed with.\nThese dependencies come from different package sources, have different versioning policies, and an identical package version might provide different\nperformance characteristics depending on the exact commit used for the build. This manifest will greatly increase insight into where changes in measured behaviour might have originated\nby making all component bumps visible and accessible."),(0,a.kt)("h3",{id:"ghc-profiling-inside-workbench"},"GHC profiling inside workbench"),(0,a.kt)("p",null,"The workbench has been equipped with a new ",(0,a.kt)("inlineCode",{parentName:"p"},"-profnix")," profile flavour. This enforces a ",(0,a.kt)("inlineCode",{parentName:"p"},"-fprof-auto")," build for all node-related packages. The type of\nprofiling data generated by the GHC runtime can be customized and will enter statistical analysis. The relevant PR for this new feature has already\nbeen merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),"."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"The added feature for a multi-client Nomad cluster greatly enhances how jobs are organized by the backend and mapped within specific instances.\nThis results in great maintainability while not giving up on flexibility. However, work on that feature is still ongoing."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e80f56fd.47036704.js b/assets/js/e80f56fd.47036704.js new file mode 100644 index 0000000000..d8ef9754cb --- /dev/null +++ b/assets/js/e80f56fd.47036704.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73336],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=u(a),c=n,h=d["".concat(p,".").concat(c)]||d[c]||m[c]||o;return a?r.createElement(h,i(i({ref:t},s),{},{components:a})):r.createElement(h,i({ref:t},s))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:n,i[1]=l;for(var u=2;u<o;u++)i[u]=a[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},78673:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-04-14-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-04-14-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-14-hydra.md",source:"@site/blog/2023-04-14-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-04-14T00:00:00.000Z",formattedDate:"April 14, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.98,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-04-14-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-04-14-goedel"},nextItem:{title:"Hydra Team Update",permalink:"/2023-04-07-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team focused on improving the smoke test, fixing developer\ntooling, and improving the API for voting use cases. They reviewed progress on\nauction, payments, and voting projects and made worked on reproducing a bug with\nhandling rollbacks. Moving forward, the team plans to update dependencies,\nimplement a dirt road fix for the rollbacks bug, and explore adding Hydra\nsupport to kupo."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Reviewed progress on auction, payments and voting projects"),(0,n.kt)("li",{parentName:"ul"},"Improved smoke tests so they can run on mainnet"),(0,n.kt)("li",{parentName:"ul"},"Fixed a regression in the development environment and updated cardano-node\nused in tests"),(0,n.kt)("li",{parentName:"ul"},"Improved API with more configurability to unblock voting use case",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Exclude utxo in ",(0,n.kt)("inlineCode",{parentName:"li"},"SnapshotConfirmed")," outputs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/808"},"#808")),(0,n.kt)("li",{parentName:"ul"},"Addressed a user request by only sending ",(0,n.kt)("inlineCode",{parentName:"li"},"Greetings")," once ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/813"},"#813")))),(0,n.kt)("li",{parentName:"ul"},"Reproduced the rollback bug by improving our model-based test suite ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update dependencies to match ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-node")," master"),(0,n.kt)("li",{parentName:"ul"},"Dirt road fix for rollbacks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/784"},"#784")),(0,n.kt)("li",{parentName:"ul"},"Update Hydraw to maintain state locally"),(0,n.kt)("li",{parentName:"ul"},"Explore adding Hydra support to kupo"),(0,n.kt)("li",{parentName:"ul"},"Put disclaimer texts and closing mainnet compatibility feature ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/713"},"#713"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e847d60c.b657d3a3.js b/assets/js/e847d60c.b657d3a3.js new file mode 100644 index 0000000000..920d083185 --- /dev/null +++ b/assets/js/e847d60c.b657d3a3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[28348],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),d=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=d(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=d(a),u=r,h=p["".concat(c,".").concat(u)]||p[u]||m[u]||i;return a?n.createElement(h,o(o({ref:t},s),{},{components:a})):n.createElement(h,o({ref:t},s))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:r,o[1]=l;for(var d=2;d<i;d++)o[d]=a[d];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},63962:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var n=a(87462),r=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-07-17-hydra",authors:["noonio"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-07-17-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-07-17-hydra.md",source:"@site/blog/2024-07-17-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-07-17T00:00:00.000Z",formattedDate:"July 17, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.93,hasTruncateMarker:!1,authors:[{name:"Noon van der Silk",title:"Software Engineering Lead",url:"https://github.com/noonio",imageURL:"https://github.com/noonio.png",key:"noonio"}],frontMatter:{title:"Hydra Team Update",slug:"2024-07-17-hydra",authors:["noonio"],tags:["hydra"],hide_table_of_contents:!1},nextItem:{title:"Mithril Team Update",permalink:"/2024-07-17-mithril"}},c={authorsImageUrls:[void 0]},d=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve?",id:"what-did-the-team-achieve",level:3},{value:"What's next?",id:"whats-next",level:3}],s={toc:d},p="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"This week, the Hydra team made significant progress on incremental decommits\nby closing the last gaps and cleaning up the specification. They collected\nscenarios and prepared for incremental commits, updated dependencies for\ncompatibility with cardano-node 9.0.0, and continued tidying up documentation.\nWork continued on an easy spin-up of the getting-started demo via\nprocess-compose. Additionally, the team onboarded a new contributor and held\nan early design meeting about payment channels and Blockfrost. They also\nrefined the SDK wallet idea."),(0,r.kt)("h3",{id:"what-did-the-team-achieve"},"What did the team achieve?"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Incremental decommit progress: closed last gaps, cleanup specification ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra/issues/1483"},"#1483")),(0,r.kt)("li",{parentName:"ul"},"Collected scenarios and preparing for incremental commit ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra/issues/1484"},"#1484")),(0,r.kt)("li",{parentName:"ul"},"Updated dependencies, compatibility cardano-node 9.0.0 ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra/pull/1481"},"#1481")),(0,r.kt)("li",{parentName:"ul"},"Continued documentation tidyups"),(0,r.kt)("li",{parentName:"ul"},"WIP easy spin-up of the getting-started demo via process-compose ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra/pull/1503"},"#1503")),(0,r.kt)("li",{parentName:"ul"},"Onboarded new contributor"),(0,r.kt)("li",{parentName:"ul"},"Early design meeting about payment channels and Blockfrost ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra/issues/1305"},"#1305")),(0,r.kt)("li",{parentName:"ul"},"SDK wallet idea refinement ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra/issues/1509"},"#1509"))),(0,r.kt)("h3",{id:"whats-next"},"What's next?"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Merge and release incremental decommit"),(0,r.kt)("li",{parentName:"ul"},"Continued work on incremental commit"),(0,r.kt)("li",{parentName:"ul"},"Support Hydra demo at Rare Evo"),(0,r.kt)("li",{parentName:"ul"},"Have a Head open on ",(0,r.kt)("inlineCode",{parentName:"li"},"preview")," to see it working through the upcoming hard fork")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e8c7dddb.a8a096b3.js b/assets/js/e8c7dddb.a8a096b3.js new file mode 100644 index 0000000000..76528c1254 --- /dev/null +++ b/assets/js/e8c7dddb.a8a096b3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[22615],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>g});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=p(r),d=n,g=c["".concat(u,".").concat(d)]||c[d]||m[d]||l;return r?a.createElement(g,i(i({ref:t},s),{},{components:r})):a.createElement(g,i({ref:t},s))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:n,i[1]=o;for(var p=2;p<l;p++)i[p]=r[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},83765:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-01-17-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-01-17-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-17-ledger.md",source:"@site/blog/2024-01-17-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-01-17T00:00:00.000Z",formattedDate:"January 17, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:.485,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-01-17-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2024-01-19-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2024-01-17-mithril"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Releasing",id:"releasing",level:3}],s={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Last week's achievement was that we finished PlutusV3 integration, which a massive piece of work."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3960"},"pull-3960")," - Plutus script purpose"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3987"},"pull-3987")," - PlutusV3 context")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3989"},"pull-3989")," - Fix too many discards."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3986"},"pull-3986")," - Remove libs/cardano-ledger-pretty"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3991"},"pull-3991")," - Imp native script support"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3993"},"pull-3993")," - Change Test.Cardano.Ledger.Generic.Proof so that there is no more Crypto Evidence.")),(0,n.kt)("h3",{id:"releasing"},"Releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3988"},"pull-3988")," - Bump jinja2 from 3.1.2 to 3.1.3 in /doc")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e8d4d6c0.7682f433.js b/assets/js/e8d4d6c0.7682f433.js new file mode 100644 index 0000000000..8f69a276da --- /dev/null +++ b/assets/js/e8d4d6c0.7682f433.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52818],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var c=2;c<a;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},32340:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var r=n(87462),o=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2023-02-17-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-02-17-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-network.md",source:"@site/blog/2023-02-17-network.md",title:"Network Team Update",description:"High level summary",date:"2023-02-17T00:00:00.000Z",formattedDate:"February 17, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:.865,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-02-17-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2023-02-17-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2023-02-10-hydra"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"Recently QA found a bug in P2P code, which results in busy loops. We added one\nfix to ",(0,o.kt)("inlineCode",{parentName:"p"},"1.35.6")," release, another one will likely be part of next release. The\nfirst one is already included in ",(0,o.kt)("inlineCode",{parentName:"p"},"ouroboros-network-0.3.0.1")," release. These\nbugs could only affect nodes which are out of sync and thus should not impose\nrisk on well maintained nodes on mainnet. We also advertise to deploy at most\none of the relays as a P2P node, which shields from possible consequences."),(0,o.kt)("p",null,"We recently finished design phase of eclipse evasion and we started\nimplementing it (see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?pane=issue&itemId=19819205"},"issue #3886")," for progress)."),(0,o.kt)("p",null,"Galois finished implementing Handshake extension which will allow to query\nnetwork protocol versions (see ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"pr #4256"),")."),(0,o.kt)("p",null,"We also recently released a newer set of network packages to be integrated with\n",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node")," ",(0,o.kt)("inlineCode",{parentName:"p"},"master")," branch, this includes:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"* monoidal-synchronisation-0.1.0.2\n* cardano-client-0.1.0.2\n* network-mux-0.3.0.0\n* ouroboros-network-api-0.1.0.0\n* ouroboros-network-protocols-0.2.0.0\n* ouroboros-network-testing-0.2.0.1\n* ouroboros-network-mock-0.1.0.0\n* ouroboros-network-framework-0.3.0.0\n* ouroboros-network-0.4.0.0 (it doesn't not yet include the fix we included\n in `0.3.0.1`)\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e90b2ff0.77799f29.js b/assets/js/e90b2ff0.77799f29.js new file mode 100644 index 0000000000..64490899e3 --- /dev/null +++ b/assets/js/e90b2ff0.77799f29.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[96840],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>d});var r=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function l(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?n(Object(i),!0).forEach((function(t){a(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):n(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function o(e,t){if(null==e)return{};var i,r,a=function(e,t){if(null==e)return{};var i,r,a={},n=Object.keys(e);for(r=0;r<n.length;r++)i=n[r],t.indexOf(i)>=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)i=n[r],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var p=r.createContext({}),u=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):l(l({},t),e)),i},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var i=e.components,a=e.mdxType,n=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=u(i),c=a,d=m["".concat(p,".").concat(c)]||m[c]||h[c]||n;return i?r.createElement(d,l(l({ref:t},s),{},{components:i})):r.createElement(d,l({ref:t},s))}));function d(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=i.length,l=new Array(n);l[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:a,l[1]=o;for(var u=2;u<n;u++)l[u]=i[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,i)}c.displayName="MDXCreateElement"},99480:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>n,metadata:()=>o,toc:()=>u});var r=i(87462),a=(i(67294),i(3905));const n={title:"Mithril Team Update",slug:"2023-07-13-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-07-13-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-13-mithril.md",source:"@site/blog/2023-07-13-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-07-13T00:00:00.000Z",formattedDate:"July 13, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.92,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-07-13-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-07-14-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-07-12-consensus"}},p={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],s={toc:u},m="wrapper";function h(e){let{components:t,...i}=e;return(0,a.kt)(m,(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The Mithril team created a new ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2327.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2327.0"))," distribution. They focused on preparing the beta launch on the ",(0,a.kt)("inlineCode",{parentName:"p"},"mainnet"),": they tested the new production signer deployment model with the pioneer SPOs, they prepared an SPO on-boarding guide, and they kept working on the deployment and monitoring of the ",(0,a.kt)("inlineCode",{parentName:"p"},"mainnet")," infrastructure. The team also worked on the implementation of a simple stress test tool for benchmarking the aggregator. Additionally, they completed the refactoring of the interface to the cryptographic library. "),(0,a.kt)("p",null,"Finally, they fixed a bug that sporadically prevented the latest signer registration of a SPO to be used in the associated signing epoch, they fixed a bug in the epoch gap detection of the certificate chain in the aggregator, and worked on multiple other optimizations and bugs."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2327.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2327.0"))),(0,a.kt)("li",{parentName:"ul"},"Worked on the epic that prepares the Mithril infrastructure for ",(0,a.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/767"},"#767"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Add infrastructure monitoring")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/987"},"#987")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Deploy 'mainnet' infrastructure")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/988"},"#988")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Handle Secrets management")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/989"},"#989")))),(0,a.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,a.kt)("inlineCode",{parentName:"li"},"Benchmark performances of Mithril Aggregator")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/904"},"#904"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Design & implement basic stress test tool for aggregator")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/991"},"#991")))),(0,a.kt)("li",{parentName:"ul"},"Worked on optimizations:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Remove certificate hash from Artifact")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/932"},"#932")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Check vulnerabilities in CI")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1037"},"#1037")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Add 'created_at' in Mithril Stake Distribution messages")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1030"},"#1030")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Add a 'run-only' option in end to end test")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1048"},"#1048")))),(0,a.kt)("li",{parentName:"ul"},"Worked on refactoring:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Factorize protocol crypto operations")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/669"},"#669")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Refactor aggregator dependency injection and services")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1058"},"#1058")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Build static binaries in CI")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/874"},"#874")))),(0,a.kt)("li",{parentName:"ul"},"Worked on documentation:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Prepare SPO on-boarding guide")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1049"},"#1049")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Add instructions to set firewall using iptables")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1040"},"#1040")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Update ufw command to set firewall on Mithril Signer installation instructions")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1041"},"#1041")))),(0,a.kt)("li",{parentName:"ul"},"Worked on bugs:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Aggregator does not detect certificate chain epoch gap")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/952"},"#952")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"'testing-preview' network does not create certificates")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1015"},"#1015")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"SQLite compatibility in aggregator")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/837"},"#837")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Q&A followup fixes")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1035"},"#1035")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"E2E tests are flaky in CI")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1023"},"#1023"))))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e980c509.b6cf11a1.js b/assets/js/e980c509.b6cf11a1.js new file mode 100644 index 0000000000..c232e294c1 --- /dev/null +++ b/assets/js/e980c509.b6cf11a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15007],{13208:e=>{e.exports=JSON.parse('{"permalink":"/tags/crypto/page/4","page":4,"postsPerPage":5,"totalPages":4,"totalCount":18,"previousPage":"/tags/crypto/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/e9ae9b7e.128accd7.js b/assets/js/e9ae9b7e.128accd7.js new file mode 100644 index 0000000000..0aa0662c1e --- /dev/null +++ b/assets/js/e9ae9b7e.128accd7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[55507],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(r),h=o,d=c["".concat(l,".").concat(h)]||c[h]||m[h]||a;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var p=2;p<a;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}h.displayName="MDXCreateElement"},38884:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2024-02-19-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2024-02-19-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-19-network.md",source:"@site/blog/2024-02-19-network.md",title:"Network Team Update",description:"High-level overview of sprint 55",date:"2024-02-19T00:00:00.000Z",formattedDate:"February 19, 2024",tags:[{label:"network",permalink:"/tags/network"}],readingTime:1.225,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2024-02-19-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-02-21-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-02-16-hydra"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level overview of sprint 55",id:"high-level-overview-of-sprint-55",level:2},{value:"Low-level summary",id:"low-level-summary",level:2},{value:"Open Source Contributions",id:"open-source-contributions",level:2},{value:"IOSim",id:"iosim",level:3}],u={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(c,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-overview-of-sprint-55"},"High-level overview of ",(0,o.kt)("a",{parentName:"h2",href:"https://github.com/orgs/IntersectMBO/projects/5/views/1?visibleFields=%5B%22Title%22%2C%22Labels%22%2C%22Assignees%22%2C%22Status%22%2C%22Linked+pull+requests%22%2C69151865%2C%22Repository%22%5D&filterQuery=sprint%3A%22Sprint+55%22"},"sprint 55")),(0,o.kt)("p",null,"This sprint the networking was nominated for the Cardano Release Engineer role and\nwe've been working on the integration of bootstrap peers with ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node"),". This\nis a work in progress: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-node/pull/5485"},"cardano-node-5485"),". ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node-8.9")," will be the first\nnode which supports the bootstrap peers feature, but we anticipate additional\nimprovements needed before this is used at scale."),(0,o.kt)("p",null,"We disabled mean reward for new peers in the churn mechanism which was hurting\nconnection in remote destinations. Thanks to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/karknu"},"Karl Knutsson")," (",(0,o.kt)("a",{parentName:"p",href:"https://cardanofoundation.org"},"CF"),") for\nproviding evidence and a patch. In future, this mechanism will be further\nchanged, but this requires more analysis. ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4800"},"ouroboros-network#4800")),(0,o.kt)("p",null,"We continued working on ",(0,o.kt)("inlineCode",{parentName:"p"},"tx-submission"),", ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/3311"},"ouroboros-network#3311")),(0,o.kt)("p",null,"We welcome ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/crocodile-dentist"},"Marcin W\xf3jtowicz")," as part of the Networking\nTeam of Cardano Core Tech. He reviewed our documentation as part of his\nonboarding process: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4802"},"ouroboros-network#4802"),"."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/AndrewWestberg"},"Andrew Westberg")," (",(0,o.kt)("a",{parentName:"p",href:"https://dripdropz.io/"},"DripDropz"),") corrected documentation regarding which\n",(0,o.kt)("inlineCode",{parentName:"p"},"node-to-node")," protocol version introduced ",(0,o.kt)("inlineCode",{parentName:"p"},"P2P"),"."),(0,o.kt)("h2",{id:"low-level-summary"},"Low-level summary"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"We fixed an issue related to local root peers related to bootstrap peers: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/issues/4799"},"ouroboros-network#4799"),".")),(0,o.kt)("h2",{id:"open-source-contributions"},"Open Source Contributions"),(0,o.kt)("h3",{id:"iosim"},"IOSim"),(0,o.kt)("p",null,"We released ",(0,o.kt)("a",{parentName:"p",href:"https://hackage.haskell.org/package/io-sim-1.4.1.0"},(0,o.kt)("inlineCode",{parentName:"a"},"io-sim-1.4.1.0"))," with some new features & improvements:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"QuickCheck monadic combinators: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/140"},"io-sim#140"),"."),(0,o.kt)("li",{parentName:"ul"},"Provide ",(0,o.kt)("inlineCode",{parentName:"li"},"PrimMonad")," instance: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/141"},"io-sim#141"),", thanks to ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/dcoutts"},"Duncan Coutts")," (",(0,o.kt)("a",{parentName:"li",href:"https://well-typed.com"},"Well-Typed"),")."),(0,o.kt)("li",{parentName:"ul"},"Fixed ",(0,o.kt)("inlineCode",{parentName:"li"},"threadDelay")," in the presence of ",(0,o.kt)("inlineCode",{parentName:"li"},"registerDelay"),"s: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim/pull/143"},"io-sim#143"),", thanks to\nConsensus Team.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e9dce996.06f07cdc.js b/assets/js/e9dce996.06f07cdc.js new file mode 100644 index 0000000000..0bd9e98920 --- /dev/null +++ b/assets/js/e9dce996.06f07cdc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[33221],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),c=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),h=c(a),u=n,d=h["".concat(p,".").concat(u)]||h[u]||m[u]||i;return a?r.createElement(d,o(o({ref:t},s),{},{components:a})):r.createElement(d,o({ref:t},s))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=u;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var c=2;c<i;c++)o[c]=a[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},82360:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-03-08-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-08-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-08-hydra.md",source:"@site/blog/2024-03-08-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-03-08T00:00:00.000Z",formattedDate:"March 8, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.08,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-03-08-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-03-13-mithril"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-03-08-performance-and-tracing"}},p={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],s={toc:c},h="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team has been working on a new library ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-api-classy")," containing type class instances for era witnesses and also switched nix code to use ",(0,n.kt)("inlineCode",{parentName:"p"},"flake-parts"),". They also further improved the Hydra Head ","[","explorer","]","(",(0,n.kt)("a",{parentName:"p",href:"http://explorer.hydra.family"},"http://explorer.hydra.family"),") UI. The team also improved error reporting on integration tests and refactored the outcome algebra in the hydra-node protocol logic. Finally, they reviewed the incremental decommit specification with researchers. Meanwhile, SundeaLabs already implemented first UDP and Kinesis event sinks based on the EventSource / EventSink refactoring."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"New library ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-api-classy")," containing type class instances for era witnesses."),(0,n.kt)("li",{parentName:"ul"},"Switched the nix code to use ",(0,n.kt)("inlineCode",{parentName:"li"},"flake-parts"),"."),(0,n.kt)("li",{parentName:"ul"},"Completed another increment on the head explorer UI ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1333"},"#","1333"),"."),(0,n.kt)("li",{parentName:"ul"},"Improved error reporting on integration tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1335"},"#","1335"),"."),(0,n.kt)("li",{parentName:"ul"},"Refactored the outcome algebra in the hydra-node protocol logic ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1340"},"#","1340"),"."),(0,n.kt)("li",{parentName:"ul"},"Reviewed incremental decommit specification with researchers."),(0,n.kt)("li",{parentName:"ul"},"SundaeLabs implemented first UDP and Kinesis event sinks based on ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1267"},"#","1267"),".")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Prepare ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1178"},"#","1178")," on a branch for users to try out Conway on hydra."),(0,n.kt)("li",{parentName:"ul"},"Align specification with incremental decommit implementation"),(0,n.kt)("li",{parentName:"ul"},"Improve MTB in terms of new Decommit input"),(0,n.kt)("li",{parentName:"ul"},"Prepare a PR for Kupo using new Hydra transaction format"),(0,n.kt)("li",{parentName:"ul"},"Spike on literate Agda specification pdf")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e9de58f7.f5082fba.js b/assets/js/e9de58f7.f5082fba.js new file mode 100644 index 0000000000..54ebb0bbe7 --- /dev/null +++ b/assets/js/e9de58f7.f5082fba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29370],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>c});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(n),d=i,c=m["".concat(p,".").concat(d)]||m[d]||h[d]||a;return n?r.createElement(c,o(o({ref:t},u),{},{components:n})):r.createElement(c,o({ref:t},u))}));function c(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var s=2;s<a;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},33003:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var r=n(87462),i=(n(67294),n(3905));const a={title:"Mithril Team Update",slug:"2024-01-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-01-17-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-17-mithril.md",source:"@site/blog/2024-01-17-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-01-17T00:00:00.000Z",formattedDate:"January 17, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.165,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-01-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-01-17-ledger"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-01-15-node-cli-api"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:s},m="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(m,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team completed the implementation of the client in the explorer, enabling direct certificate verification from the browser. They initiated the implementation of a new entity type for signing to certify the Cardano transactions set in Mithril networks. The team also upgraded the devnet to support the Conway era and activated the Mithril era marker reader on the Cardano chain in the end-to-end test. Additionally, they kept implementing a mock aggregator to strengthen Mithril client tests in WASM and continued working on threat modeling and risk analysis for P2P networking."),(0,i.kt)("p",null,"Finally, they worked on enhancing node communications between Mithril and Cardano, and they started rolling out the Cardano node in the infrastructure to version ",(0,i.kt)("inlineCode",{parentName:"p"},"8.7.3"),"."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Light Wallet: Create new signed entity type for ",(0,i.kt)("inlineCode",{parentName:"strong"},"CardanoTransactions"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1434"},"#1434")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement the mithril client WASM package in the explorer")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1409"},"#1409")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Activate ",(0,i.kt)("inlineCode",{parentName:"strong"},"babbage"),"/",(0,i.kt)("inlineCode",{parentName:"strong"},"conway")," eras on ",(0,i.kt)("inlineCode",{parentName:"strong"},"devnet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1425"},"#1425")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Transition Mithril Era Reader adapter to ",(0,i.kt)("inlineCode",{parentName:"strong"},"CardanoChain")," in ",(0,i.kt)("inlineCode",{parentName:"strong"},"devnet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1428"},"#1428")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Upgrade Cardano node to ",(0,i.kt)("inlineCode",{parentName:"strong"},"8.7.3"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1410"},"#1410")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement a fake standalone aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1397"},"#1397")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Create a test network on ",(0,i.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ea2603ff.e3489d08.js b/assets/js/ea2603ff.e3489d08.js new file mode 100644 index 0000000000..b6e1af1313 --- /dev/null +++ b/assets/js/ea2603ff.e3489d08.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[86326],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>c});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){l(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function p(e,t){if(null==e)return{};var a,r,l=function(e,t){if(null==e)return{};var a,r,l={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var o=r.createContext({}),u=function(e){var t=r.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(o.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,o=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),d=u(a),h=l,c=d["".concat(o,".").concat(h)]||d[h]||m[h]||n;return a?r.createElement(c,i(i({ref:t},s),{},{components:a})):r.createElement(c,i({ref:t},s))}));function c(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,i=new Array(n);i[0]=h;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[d]="string"==typeof e?e:l,i[1]=p;for(var u=2;u<n;u++)i[u]=a[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}h.displayName="MDXCreateElement"},28380:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>m,frontMatter:()=>n,metadata:()=>p,toc:()=>u});var r=a(87462),l=(a(67294),a(3905));const n={title:"Ledger Team Update",slug:"2023-11-08-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2023-11-08-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-08-ledger.md",source:"@site/blog/2023-11-08-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-11-08T00:00:00.000Z",formattedDate:"November 8, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.685,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-11-08-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"DB-sync Team Update",permalink:"/2023-11-09-db-sync"},nextItem:{title:"Mithril Team Update",permalink:"/2023-11-08-mithril"}},o={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements and releasing",id:"improvements-and-releasing",level:3}],s={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,l.kt)(d,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,l.kt)("p",null,"This update contains mostly improvements to quality of Conway era implementation and\ntooling that we use for testing Ledger. Major Conway bugs that were discovered and\nsquashed are:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"PParamsUpdate proposals will now correctly use DRep thresholds for ratification"),(0,l.kt)("li",{parentName:"ul"},"Treasury withdrawals are now properly enacted."),(0,l.kt)("li",{parentName:"ul"},"Corrected snapshotting and DRep Stake Distribution Pulser initialization"),(0,l.kt)("li",{parentName:"ul"},"Delegation to non-existent Stake pool is no longer possible")),(0,l.kt)("p",null,"Other important quality of life improvements are addition of reusable interfaces for an\nordered set ",(0,l.kt)("inlineCode",{parentName:"p"},"OSet")," and ordered map ",(0,l.kt)("inlineCode",{parentName:"p"},"OMap"),". Which allowed us to disable duplicate\ncertificates and proposals in a transaction. As a precursor to ",(0,l.kt)("inlineCode",{parentName:"p"},"PlutusV3")," integration, a\nserious reorganization of Plutus related functionality was performed."),(0,l.kt)("p",null,"Conway related additions that are noteworthy: Conway Ledger events, disallowing voting on\nexpired proposals, addition of Anchor to Constitutional Committee resignation proposals."),(0,l.kt)("p",null,'Significant improvements have been made to a specialized "Imp" test library that allows us\nwriting concise stateful unit tests for verifying the Ledger logic. Serious progress has\nbeen made on the conformance testing, where we can now interface with Haskell generated\ncode from the Agda specification. Serialization testing has been extended to increase\nbinary conformance coverage.'),(0,l.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,l.kt)("h3",{id:"conway"},"Conway"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3808"},"pull-3808")," - Enhance ",(0,l.kt)("inlineCode",{parentName:"li"},"CommitteeMembersState")," query to return quorum and NoConfidence"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3801"},"pull-3801")," - Fix epoch rule and tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3803"},"pull-3803")," - Fix delegation validation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3759"},"pull-3759")," - Reshuffle things to the DRepPulser incorporates some snap shot things"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3779"},"pull-3779")," - Prevent duplicate certs and proposals"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3794"},"pull-3794")," - Added anchor to resign certs"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3797"},"pull-3797")," - Cleanup JSON instances for Conway governance"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3848"},"pull-3848")," - Plutus modules restructure"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3840"},"pull-3840")," - Fix anomalies in Deposits in the Conway Era"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3856"},"pull-3856")," - Add governance related ledger events"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3825"},"pull-3825")," - Prevent voting on expired GovActions"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3831"},"pull-3831")," - Treasury withdrawal fix"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3791"},"pull-3791")," - Use a Data.OMap.Strict to replace ProposalsSnapshot"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3836"},"pull-3836")," - PParamsUpdate enactment fix"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3846"},"pull-3846")," - Revert argument order swap.")),(0,l.kt)("h3",{id:"testing"},"Testing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3782"},"pull-3782")," - Move ",(0,l.kt)("inlineCode",{parentName:"li"},"ImpTest")," to Shelley testlib"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3842"},"pull-3842")," - Imp improvements"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3844"},"pull-3844")," - Add mappings to Agda types"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3853"},"pull-3853")," - Fix strange assertion failure, which hides real Block too big problem."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3809"},"pull-3809")," - CDDL roundtrip testing"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3832"},"pull-3832")," - Treasury withdrawals tests"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3839"},"pull-3839")," - Added ",(0,l.kt)("inlineCode",{parentName:"li"},"cardano-ledger-conformance")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3841"},"pull-3841")," - Add ",(0,l.kt)("inlineCode",{parentName:"li"},"sha256")," to ",(0,l.kt)("inlineCode",{parentName:"li"},"cardano-ledger-executable-spec"))),(0,l.kt)("h3",{id:"improvements-and-releasing"},"Improvements and releasing"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3843"},"pull-3843")," - Add ...WithLogs versions of evalScripts and friends"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3795"},"pull-3795")," - Bump plutus to 1.15"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3798"},"pull-3798")," - Bump urllib3 from 1.26.17 to 1.26.18 in /doc"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3799"},"pull-3799")," - Changes needed for 8.6 release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3807"},"pull-3807")," - Add invalidBeforeL and invalidHereAfterL functions"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3819"},"pull-3819")," - Fixups needed for a release"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3829"},"pull-3829")," - Post release CHANGELOG version bumps"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3830"},"pull-3830")," - Bump aeson to 2.2"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3833"},"pull-3833")," - Backport release cardano-ledger-conway-1.10.1.0"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3828"},"pull-3828")," - Add changelog for node release 8.6")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ea5b7321.8bee504c.js b/assets/js/ea5b7321.8bee504c.js new file mode 100644 index 0000000000..6ba8944fa6 --- /dev/null +++ b/assets/js/ea5b7321.8bee504c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[43890],{52394:a=>{a.exports=JSON.parse('{"label":"cli-api","permalink":"/tags/cli-api","allTagsPath":"/tags","count":39}')}}]); \ No newline at end of file diff --git a/assets/js/ea84a009.becb808e.js b/assets/js/ea84a009.becb808e.js new file mode 100644 index 0000000000..76b2d0aa73 --- /dev/null +++ b/assets/js/ea84a009.becb808e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92501],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=p(r),d=n,h=c["".concat(u,".").concat(d)]||c[d]||m[d]||o;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var p=2;p<o;p++)i[p]=r[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},602:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Crypto Team Update",slug:"2023-03-03-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-03-03-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-03-crypto.md",source:"@site/blog/2023-03-03-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-03-03T00:00:00.000Z",formattedDate:"March 3, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:1.155,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-03-03-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-03-08-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-03-03-goedel"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"cardano-base",id:"cardano-base",level:3},{value:"KES agent",id:"kes-agent",level:3},{value:"Sidechains",id:"sidechains",level:3}],s={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit."),(0,n.kt)("li",{parentName:"ul"},"cardano-base: BLS branch is now ready for review. We are workign forward its merge. "),(0,n.kt)("li",{parentName:"ul"},"KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase."),(0,n.kt)("li",{parentName:"ul"},"Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Bumped to version ",(0,n.kt)("a",{parentName:"li",href:"https://crates.io/crates/kes-summed-ed25519/0.2.0"},"0.2.0")," the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using ",(0,n.kt)("inlineCode",{parentName:"li"},"mlock"),"."),(0,n.kt)("li",{parentName:"ul"},"Opened ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/783"},"PR#783")," to update dependency"),(0,n.kt)("li",{parentName:"ul"},"Improved testing for batch opening of mtree, ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/773"},"PR#773")),(0,n.kt)("li",{parentName:"ul"},"Improved testing for batch verification of STM sigs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/774"},"PR#774")),(0,n.kt)("li",{parentName:"ul"},"RFP for crypto audit almost ready.")),(0,n.kt)("h3",{id:"cardano-base"},"cardano-base"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"BLS12-381 branch finally ready for review ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/266"},"PR#266"))),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("p",null,"Team off for one week. Other progress:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Learning about raw direct-bearer abstraction. An interface for sockets in consensus."),(0,n.kt)("li",{parentName:"ul"},"use that for direct ser/deser"),(0,n.kt)("li",{parentName:"ul"},"written those syntaxes for ouroboros (coming PR)"),(0,n.kt)("li",{parentName:"ul"},"the kes agent will depend on that. \t")),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("p",null,"Progress with familiarisation of Halo2 library to write circuits."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/eac6bb0a.c94563a4.js b/assets/js/eac6bb0a.c94563a4.js new file mode 100644 index 0000000000..38701f1c6d --- /dev/null +++ b/assets/js/eac6bb0a.c94563a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[87445],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(a),m=r,h=d["".concat(p,".").concat(m)]||d[m]||s[m]||o;return a?n.createElement(h,l(l({ref:t},c),{},{components:a})):n.createElement(h,l({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},97940:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2022-11-16-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2022-11-16-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-16-node-cli-api.md",source:"@site/blog/2022-11-16-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2022-11-16T00:00:00.000Z",formattedDate:"November 16, 2022",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.68,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2022-11-16-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-11-16-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2022-11-16-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3}],c={toc:u},d="wrapper";function s(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2022-11-16---2022-11-29"},"2022-11-16 - 2022-11-29"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("h2",{id:"completed"},"Completed"),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4562"},"Add a native tokens tutorial and exercises"))),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4674"},"Update cardano-cli's help")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4644"},"Remove error calls in renderShelleyTxCmdError"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4639"},"Implement Cardano.Api.DeserialiseAnyOf"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4650"},"Fix windows CI"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("h2",{id:"in-progress"},"In Progress"),(0,r.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"[BUGFIX]","- ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4431"},"Infer protocol params in transaction build")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4408"},"Allow assembling transactions with no witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4279"},"Multiple pools support in query stake snapshot")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4250"},"Optimise query leadership schedule command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4179"},"Optimise query stake snapshot command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli"))),(0,r.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4458"},"Make TxBodyContent an instance of Monoid")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions"))),(0,r.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/eaf1cf7f.22b57b8a.js b/assets/js/eaf1cf7f.22b57b8a.js new file mode 100644 index 0000000000..4a89c00381 --- /dev/null +++ b/assets/js/eaf1cf7f.22b57b8a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[86229],{69010:a=>{a.exports=JSON.parse('{"permalink":"/tags/cli-api/page/2","page":2,"postsPerPage":5,"totalPages":8,"totalCount":39,"previousPage":"/tags/cli-api","nextPage":"/tags/cli-api/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/eb0e2fb1.6ecb4f4d.js b/assets/js/eb0e2fb1.6ecb4f4d.js new file mode 100644 index 0000000000..83b5a98f04 --- /dev/null +++ b/assets/js/eb0e2fb1.6ecb4f4d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[80622],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=p(r),h=n,d=m["".concat(u,".").concat(h)]||m[h]||c[h]||i;return r?a.createElement(d,l(l({ref:t},s),{},{components:r})):a.createElement(d,l({ref:t},s))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,l=new Array(i);l[0]=h;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var p=2;p<i;p++)l[p]=r[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},19040:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-08-17-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-08-17-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-17-crypto.md",source:"@site/blog/2023-08-17-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-08-17T00:00:00.000Z",formattedDate:"August 17, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:.65,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-08-17-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-08-18-sre"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-08-17-db-sync"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Mithril",id:"mithril",level:3},{value:"MuSig2",id:"musig2",level:3},{value:"Sidechains",id:"sidechains",level:3},{value:"KES agent",id:"kes-agent",level:3}],s={toc:p},m="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation"),(0,n.kt)("li",{parentName:"ul"},"mithril: Full node verifier"),(0,n.kt)("li",{parentName:"ul"},"musig2: Include MuSig2 description in cryptography handbook"),(0,n.kt)("li",{parentName:"ul"},"kes_agent: Finilising test and CI. Working on KES binary")),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"mithril"},"Mithril"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Full Node Verifier merged ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/939"},"#939"),".")),(0,n.kt)("h3",{id:"musig2"},"MuSig2"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Started describing MuSig2 to include it as part of the cryptography handbook ")),(0,n.kt)("h3",{id:"sidechains"},"Sidechains"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Analysis of Halo2 verifier with the goal of implementing SNARK verifier in Plutus. Implemented ad-hoc IPA verifier. Work progress in ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/alexandroszacharakis8/halo2/tree/iquerejeta"},"this")," fork.")),(0,n.kt)("h3",{id:"kes-agent"},"KES agent"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"KES agent is ready:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"CI ready ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes-agent/issues/19"},"#19")),(0,n.kt)("li",{parentName:"ul"},"Receipt confirmation message ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes-agent/issues/20"},"#20")),(0,n.kt)("li",{parentName:"ul"},"KES agent binary ready ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes-agent/issues/21"},"#21")),(0,n.kt)("li",{parentName:"ul"},"Control client implemented ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes-agent/issues/11"},"#11"))))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/eb781ed2.18fdac1a.js b/assets/js/eb781ed2.18fdac1a.js new file mode 100644 index 0000000000..626a4244ef --- /dev/null +++ b/assets/js/eb781ed2.18fdac1a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[45723],{21492:s=>{s.exports=JSON.parse('{"label":"consensus","permalink":"/tags/consensus","allTagsPath":"/tags","count":45}')}}]); \ No newline at end of file diff --git a/assets/js/eba74f81.3d7ed61d.js b/assets/js/eba74f81.3d7ed61d.js new file mode 100644 index 0000000000..fdd621bdd7 --- /dev/null +++ b/assets/js/eba74f81.3d7ed61d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5391],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},l=Object.keys(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),c=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),d=c(a),s=n,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||l;return a?r.createElement(h,i(i({ref:t},u),{},{components:a})):r.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=s;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[d]="string"==typeof e?e:n,i[1]=o;for(var c=2;c<l;c++)i[c]=a[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}s.displayName="MDXCreateElement"},86210:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const l={title:"Node API & CLI Team Update",slug:"2024-01-31-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},i="Node-Api-Cli Update",o={permalink:"/2024-01-31-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-31-node-cli-api.md",source:"@site/blog/2024-01-31-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2024-01-31T00:00:00.000Z",formattedDate:"January 31, 2024",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:.845,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2024-01-31-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-01-31-mithril"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-01-31-performance-and-tracing"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],u={toc:c},d="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"2024-01-16---2024-01-31"},"2024-01-16 - 2024-01-31"),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"cardano-cli: Adapt the output of the ",(0,n.kt)("inlineCode",{parentName:"li"},"protocol-parameters")," query to show all parameters in Conway. Improved help on various commands. New command create-testnet-data to eventually replace create-staked. ")),(0,n.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/589"},"Update hedgehog-extras to 0.6.0.1")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/588"},"create-testnet-data: don't fail trying to create irrelevant READMEs")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/585"},"Update help for ",(0,n.kt)("inlineCode",{parentName:"a"},"drep-stake-distribution")," and ",(0,n.kt)("inlineCode",{parentName:"a"},"drep-state")," queries")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/578"},"Release 8.19.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/576"},"Update cardano-api 8.37.1")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/575"},"create-testnet-data: various enhancements")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/572"},"Revert #569: Back to cardano-api JSON for protocol parameters")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-cli/pull/569"},"Use (slightly hacked) cardano-ledger JSON output for protocol parameters"))),(0,n.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/439"},"Expose getAnyNewEpochState. Simplify rendering LedgerState errors")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/438"},"Bump CHaP, update hedgehog-extras 0.6.0.2")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/435"},"Fix bech32 prefixes of committee keys")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/434"},"Update hedgehog-extras to 0.6.0.1")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/433"},"Add return value to ",(0,n.kt)("inlineCode",{parentName:"a"},"checkLedgerStateCondition"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/432"},"Release 8.37.1.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/431"},"Better ",(0,n.kt)("inlineCode",{parentName:"a"},"MonadError")," handling to avoid nesting ",(0,n.kt)("inlineCode",{parentName:"a"},"ExceptT")," in ",(0,n.kt)("inlineCode",{parentName:"a"},"modifyError"))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/430"},"Bump hedgehog-extras 0.6.0.0")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/429"},"Fix cardano-node deadlink"))),(0,n.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5647"},"Bump hedgehog-extras 0.6.0.1")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5644"},"Update cardano-cli 8.19")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5640"},"Disable ledger events governance test temporarily "))),(0,n.kt)("h3",{id:"docs"},"docs"),(0,n.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ebf8adea.79f08941.js b/assets/js/ebf8adea.79f08941.js new file mode 100644 index 0000000000..fe4d44586c --- /dev/null +++ b/assets/js/ebf8adea.79f08941.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54669],{3905:(e,t,i)=>{i.d(t,{Zo:()=>h,kt:()=>c});var r=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?n(Object(i),!0).forEach((function(t){a(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):n(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){if(null==e)return{};var i,r,a=function(e,t){if(null==e)return{};var i,r,a={},n=Object.keys(e);for(r=0;r<n.length;r++)i=n[r],t.indexOf(i)>=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)i=n[r],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},h=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var i=e.components,a=e.mdxType,n=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=s(i),d=a,c=u["".concat(p,".").concat(d)]||u[d]||m[d]||n;return i?r.createElement(c,o(o({ref:t},h),{},{components:i})):r.createElement(c,o({ref:t},h))}));function c(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=i.length,o=new Array(n);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var s=2;s<n;s++)o[s]=i[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,i)}d.displayName="MDXCreateElement"},45668:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>l,toc:()=>s});var r=i(87462),a=(i(67294),i(3905));const n={title:"Mithril Team Update",slug:"2023-05-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-05-17-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-17-mithril.md",source:"@site/blog/2023-05-17-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-05-17T00:00:00.000Z",formattedDate:"May 17, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.555,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-05-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-05-17-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2023-05-17-performance-and-tracing"}},p={authorsImageUrls:[void 0]},s=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],h={toc:s},u="wrapper";function m(e){let{components:t,...i}=e;return(0,a.kt)(u,(0,r.Z)({},h,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The Mithril team released a new ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2318.0"},(0,a.kt)("inlineCode",{parentName:"a"},"2318.0"))," distribution that implements the last migration phase of the aggregator stores and embeds a bug fix for the signer registration. They also completed the implementation of the interfaces defined to provide certification for the immutable full snapshot of Cardano files and Mithril stake distribution. They finalized the implementation of the framework to sign generic types of data in the aggregator and the signer nodes. They also updated the runtime of the aggregator to handle open messages associated with the available types, and evolved the REST API of the aggregator to deliver the artifacts for these types. Additionally, they have upgraded the network explorer in order to display the artifacts and certificates for these different types."),(0,a.kt)("p",null,"Finally, the team started designing an on-chain decentralized signer registration process, and started implementing the new stake distribution computation available from Cardano node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0.0")," (along with the backward compatibility for previous ",(0,a.kt)("inlineCode",{parentName:"p"},"1.35.x")," versions)."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Worked on the epic that designs and implements generic signing/verification of entity services ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/780"},"#780"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the handling of multiple types of signed entity in the aggregator runtime ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/907"},"#907")),(0,a.kt)("li",{parentName:"ul"},"Completed the adaptation of the signer runtime to use the signable builder service ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/854"},"#854")),(0,a.kt)("li",{parentName:"ul"},"Completed the adaptation of the aggregator runtime to use the artifact builder service ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/869"},"#869")),(0,a.kt)("li",{parentName:"ul"},"Completed the appending of the next AVK to all protocol messages ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/888"},"#888")),(0,a.kt)("li",{parentName:"ul"},"Completed the adaptation of the aggregator REST API to retrieve the list/details of the artifacts produced ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/893"},"#893")),(0,a.kt)("li",{parentName:"ul"},"Completed the adaptation of the explorer to handle new artifact routes of the aggregator ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/927"},"#927")))),(0,a.kt)("li",{parentName:"ul"},"Worked on the epic that implements the computation of the stake distribution for ",(0,a.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/880"},"#880"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the implementation of the new stake distribution computation in the chain observer ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/919"},"#919")),(0,a.kt)("li",{parentName:"ul"},"Worked on upgrading the Cardano node to ",(0,a.kt)("inlineCode",{parentName:"li"},"8.0.0")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/920"},"#920"))))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ec06fa8a.a6d0b45b.js b/assets/js/ec06fa8a.a6d0b45b.js new file mode 100644 index 0000000000..3434b512e3 --- /dev/null +++ b/assets/js/ec06fa8a.a6d0b45b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46271],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>k});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function p(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?i(Object(a),!0).forEach((function(e){r(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function l(t,e){if(null==t)return{};var a,n,r=function(t,e){if(null==t)return{};var a,n,r={},i=Object.keys(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var o=n.createContext({}),u=function(t){var e=n.useContext(o),a=e;return t&&(a="function"==typeof t?t(e):p(p({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(o.Provider,{value:e},t.children)},m="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,o=t.parentName,c=l(t,["components","mdxType","originalType","parentName"]),m=u(a),h=r,k=m["".concat(o,".").concat(h)]||m[h]||d[h]||i;return a?n.createElement(k,p(p({ref:e},c),{},{components:a})):n.createElement(k,p({ref:e},c))}));function k(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,p=new Array(i);p[0]=h;var l={};for(var o in e)hasOwnProperty.call(e,o)&&(l[o]=e[o]);l.originalType=t,l[m]="string"==typeof t?t:r,p[1]=l;for(var u=2;u<i;u++)p[u]=a[u];return n.createElement.apply(null,p)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},1091:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>o,contentTitle:()=>p,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-10-10-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},p="Node-Api-Cli Update",l={permalink:"/2023-10-10-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-10-node-cli-api.md",source:"@site/blog/2023-10-10-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-10-10T00:00:00.000Z",formattedDate:"October 10, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.985,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-10-10-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-10-11-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-10-06-hydra"}},o={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},m="wrapper";function d(t){let{components:e,...a}=t;return(0,r.kt)(m,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-09-27---2023-10-10"},"2023-09-27 - 2023-10-10"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"CARDANO-NODE"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.5.0-pre"},"Pre-release of cardano-node 8.5.0-pre"))),(0,r.kt)("p",null,"CARDANO-CLI"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Depracated governance query commands and moved all governance related queries to ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-cli <era> query")),(0,r.kt)("li",{parentName:"ul"},"Drep registration certificates now allow to include an anchor"),(0,r.kt)("li",{parentName:"ul"},"Integrated Drep retirement ceriticates"),(0,r.kt)("li",{parentName:"ul"},"clean up of Drep registration certificates.")),(0,r.kt)("p",null,"CARDANO-API"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Add support for committee hot key witnesses"),(0,r.kt)("li",{parentName:"ul"},"Require conway onwards for voting"),(0,r.kt)("li",{parentName:"ul"},"Conway drep registration: expose ledger anchor parameter"),(0,r.kt)("li",{parentName:"ul"},"Add certs to txbody of Conway transactions")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/347"},"Move ",(0,r.kt)("inlineCode",{parentName:"a"},"governance query")," commands to ",(0,r.kt)("inlineCode",{parentName:"a"},"query")," command group")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/344"},"Rename create-new-committee into update-committee")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/341"},"New version cardano-cli-8.12.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/338"},"Add support for committee hot key witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/337"},"conway governance vote create: make it possible to use cc hot keys")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/331"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli-8.11.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/330"},"Drep certification registration: add parameters for anchor")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/329"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.25.0.1"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/327"},"Move files that are not golden files into ",(0,r.kt)("inlineCode",{parentName:"a"},"input")," directory")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/324"},"Update to cardano-api-8.24")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/323"},"Fix #311 - Add Cold Committee Key text envelope")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/322"},"create-poll, answer-poll, verify-poll: move to 'babbage governance' block")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/320"},"Update to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.23.1.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/319"},"Make ",(0,r.kt)("inlineCode",{parentName:"a"},"transaction view")," emit JSON")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/318"},"Tidy up query command structure")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/317"},"Use ",(0,r.kt)("inlineCode",{parentName:"a"},"caseShelleyToBabbageOrConwayEraOnwards")," from ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/316"},"Add DRep Retirement Certificate command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/310"},"Update to cardano api 8.22.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/309"},"drep registration-certificate: remove mix with SPO registration"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/307"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"EraCast")," instance for ",(0,r.kt)("inlineCode",{parentName:"a"},"Certificate"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/306"},"Add certs to txbody of Conway transactions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/305"},"Move DRep reg certificate anchor types from cardano-cli to cardano-api")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/304"},"Add BabbageEraOnly")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/303"},"New version cardano-api-8.25.2.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/300"},"Add support for committee hot key witnesses")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/299"},"Reduce constraint usage with eons")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/297"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"withShelleyBasedEraConstraintsForLedger"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/296"},"Simplify ",(0,r.kt)("inlineCode",{parentName:"a"},"DebugLedgerState")," with eons")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/294"},"New version cardano-api-8.25.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/293"},"Require conway onwards for voting")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/292"},"Add witness committee cold key")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/291"},"Fix CHaP failure due to haddock issue")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/290"},"Amend cardano-api/pull/284 to use ReexposeLedger")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/289"},"Rename ",(0,r.kt)("inlineCode",{parentName:"a"},"AnyEraInEon")," to ",(0,r.kt)("inlineCode",{parentName:"a"},"EraInEon"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/288"},"Release 8.24.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/287"},"Parameterize ",(0,r.kt)("inlineCode",{parentName:"a"},"AnyEraInEon"),". Add ",(0,r.kt)("inlineCode",{parentName:"a"},"AnyEon"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/286"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.23.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/284"},"conway drep registration: expose ledger anchor parameter")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/282"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"caseAlonzoOnlyOrBabbageEraOnwards")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"alonzoEraOnlyToAlonzoEraOnwards")," functions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/281"},"Rename eon functions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/280"},"New ",(0,r.kt)("inlineCode",{parentName:"a"},"AnyEraInEon"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/279"},"Replace ",(0,r.kt)("inlineCode",{parentName:"a"},"ValidityLowerBoundSupportedInEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/278"},"Replace ",(0,r.kt)("inlineCode",{parentName:"a"},"TxExtraKeyWitnessesSupportedInEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/277"},"Explicit pattern match on all ledger certificates constructors. Remove redundant module")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/276"},"Release 8.22.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/275"},"Replace ",(0,r.kt)("inlineCode",{parentName:"a"},"TxTotalAndReturnCollateralSupportedInEra")))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5490"},"Integrate upstream libraries for 8.5"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5497"},"bump cardano-api to 8.25.2")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5491"},"Remove unused code in cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5490"},"Integrate upstream libraries for 8.5"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ec344652.3a8c1719.js b/assets/js/ec344652.3a8c1719.js new file mode 100644 index 0000000000..9eb025f839 --- /dev/null +++ b/assets/js/ec344652.3a8c1719.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[68580],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=p(r),h=a,d=c["".concat(u,".").concat(h)]||c[h]||m[h]||i;return r?n.createElement(d,o(o({ref:t},s),{},{components:r})):n.createElement(d,o({ref:t},s))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:a,o[1]=l;for(var p=2;p<i;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}h.displayName="MDXCreateElement"},13231:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const i={title:"Crypto Team Update",slug:"2023-07-07-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-07-07-crypto",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-07-crypto.md",source:"@site/blog/2023-07-07-crypto.md",title:"Crypto Team Update",description:"High level summary",date:"2023-07-07T00:00:00.000Z",formattedDate:"July 7, 2023",tags:[{label:"crypto",permalink:"/tags/crypto"}],readingTime:.795,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Crypto Team Update",slug:"2023-07-07-crypto",authors:"iquerejeta",tags:["crypto"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-07-12-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-07-07-goedel"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"kes_agent",id:"kes_agent",level:3},{value:"Mithril",id:"mithril",level:3},{value:"Sidechains",id:"sidechains",level:3},{value:"CIPs and community",id:"cips-and-community",level:3}],s={toc:p},c="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The open fronts that the crypto team is working on are:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sidechains: First version of snark-based ATMS"),(0,a.kt)("li",{parentName:"ul"},"mithril: Full node verifier"),(0,a.kt)("li",{parentName:"ul"},"kes_agent: Keep progress, and prepare CIP and CPS"),(0,a.kt)("li",{parentName:"ul"},"CIPs and community: Finishing BLS12-381 CIP and working on a KECCAK CIP")),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("h3",{id:"kes_agent"},"kes_agent"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"KES Agent CIP/CSP. Preparing documents. Will become public in the future."),(0,a.kt)("li",{parentName:"ul"},"KES Agent testsuite (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/kes-agent/issues/14"},"https://github.com/input-output-hk/kes-agent/issues/14"),")"),(0,a.kt)("li",{parentName:"ul"},"RawBearer abstraction in ouroboros-network-framework (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4395"},"https://github.com/input-output-hk/ouroboros-network/pull/4395"),")"),(0,a.kt)("li",{parentName:"ul"},"Maintaining required changes to cardano-base for KES Agent (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-base/pull/317"},"https://github.com/input-output-hk/cardano-base/pull/317"),")")),(0,a.kt)("h3",{id:"mithril"},"Mithril"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Final review of the implementation of Full Node Verifier ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/pull/939"},"#939"),".\nIncluded benchmarks and further tests.")),(0,a.kt)("h3",{id:"sidechains"},"Sidechains"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Schnorr signature implemented"),(0,a.kt)("li",{parentName:"ul"},"ATMS signature implemented"),(0,a.kt)("li",{parentName:"ul"},"First benchmarks show that for the committe size we expect, we need 2^21 constraints. ")),(0,a.kt)("h3",{id:"cips-and-community"},"CIPs and community"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Addressed some review comments in ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/506"},"#PR506")),(0,a.kt)("li",{parentName:"ul"},"Worked with the communityt on ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/524"},"#PR524")," to include Keccak as part of the next Plutus release.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ec53298b.3d41b670.js b/assets/js/ec53298b.3d41b670.js new file mode 100644 index 0000000000..f26aca8a63 --- /dev/null +++ b/assets/js/ec53298b.3d41b670.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21129],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(n),m=a,g=p["".concat(s,".").concat(m)]||p[m]||d[m]||i;return n?r.createElement(g,o(o({ref:t},u),{},{components:n})):r.createElement(g,o({ref:t},u))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var c=2;c<i;c++)o[c]=n[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},94656:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-04-05-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o="High level summary",l={permalink:"/2023-04-05-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-05-performance-and-tracing.md",source:"@site/blog/2023-04-05-performance-and-tracing.md",title:"Performance & tracing update",description:"* Benchmarking: We worked on adjusting our infrastructure to the new 8.0 release branch and performed a (very) early run.",date:"2023-04-05T00:00:00.000Z",formattedDate:"April 5, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.33,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-04-05-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-04-05-node-cli-api"},nextItem:{title:"Crypto Team Update",permalink:"/2023-03-31-crypto"}},s={authorsImageUrls:[void 0]},c=[{value:"General",id:"general",level:3},{value:"Plutus library",id:"plutus-library",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],u={toc:c},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We worked on adjusting our infrastructure to the new ",(0,a.kt)("inlineCode",{parentName:"li"},"8.0")," release branch and performed a (very) early run."),(0,a.kt)("li",{parentName:"ul"},"New tracing: We're profiling the new tracing system for minimizing its resource footprint and guarantee high throughput."),(0,a.kt)("li",{parentName:"ul"},"Analysis pipeline: Variance analysis both for reporting and for serving as a point of comparison has been merged."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: A library for Plutus scripts will be integrated in our tooling and benchmarking profiles. Also, a profile family aimed at the tracing systems has been added."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: Various specializations of the backend are currently being implemented, along with streamlining credentials management.")),(0,a.kt)("h1",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We have adapted our benchmarking cluster to the requirements of the ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0")," release branch. Testing runs of a very early feature branch for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0"),"\nhelped us localize an important issue in collaboration with the other teams. We look forward to gathering preliminary metrics for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.0")," soon."),(0,a.kt)("h1",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"Analysis of resource usage profiles of both the legacy and new tracing system, with and without trace forwarding, have lead us to gather very\ndetailed profiling data for each possible setup. This is to ensure we keep resource usage within the node to an absolute minimum, while still providing\nthe highest possible throughput of data for forwarding to ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),". "),(0,a.kt)("p",null,"Additionally, we've worked on a very practically-oriented document targeted at end users of the new tracing system. It provides tested step-by-step instructions\nfor tunneling trace forwarding from a node to ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," via an easy to manage system service, which will match the production setup of most users."),(0,a.kt)("h1",{id:"infrastructure--analysis"},"Infrastructure & Analysis"),(0,a.kt)("h3",{id:"general"},"General"),(0,a.kt)("p",null,"Variance analysis as a full-fledged entity in our tooling has been merged. Not only is this type of analysis now part of our reporting pipeline - variance\nanalysis can be fed back and serve as an additional point of comparison."),(0,a.kt)("p",null,"Furthermore, we've created a profile family for the workbench that's specifically aimed at measuring and comparing tracing system configurations."),(0,a.kt)("h3",{id:"plutus-library"},"Plutus library"),(0,a.kt)("p",null,"We opened a PR containing a new package for benchmarking - an extendable library that holds all Plutus scripts we use in our benchmarking profiles.\nThis will enable us in the future to iteratively work on customizing any given script, and the way is called in the context of a specific profile.\nIt is a refinement of current affairs, where we have additional build inputs solely to generate a static script file tied to an external commit."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"The nomad backend is being specialized in three ways: using a podman driver locally, using nomad agents supporting nix installables, and using nomad cloud agents. This supports having a common surface independent of the actual backend driver being used. In addition, vault retrieval and management of cloud access credentials is\nbeing improved to minimize any friction for the backend user."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ed174522.89b56a8b.js b/assets/js/ed174522.89b56a8b.js new file mode 100644 index 0000000000..8cdbc471aa --- /dev/null +++ b/assets/js/ed174522.89b56a8b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[13327],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),s=p(a),u=n,h=s["".concat(c,".").concat(u)]||s[u]||m[u]||o;return a?r.createElement(h,i(i({ref:t},d),{},{components:a})):r.createElement(h,i({ref:t},d))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var p=2;p<o;p++)i[p]=a[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},21178:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-04-05-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-04-05-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-05-hydra.md",source:"@site/blog/2024-04-05-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-04-05T00:00:00.000Z",formattedDate:"April 5, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.72,hasTruncateMarker:!1,authors:[{name:"Daniel Firth",title:"Hydra Software Engineer",url:"https://github.com/locallycompact",imageURL:"https://github.com/locallycompact.png",key:"locallycompact"}],frontMatter:{title:"Hydra Team Update",slug:"2024-04-05-hydra",authors:["locallycompact"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-04-10-mithril"},nextItem:{title:"Consensus Team Update",permalink:"/2024-04-03-consensus"}},c={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],d={toc:p},s="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team released hydra 0.16.0, which supports cardano-node 8.9.0\nand can interpret conway blocks on the cardano-node. We have also updated some hydra\nclients to be compatible with the new hydra api format, including hydraw and kupo."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update our head and ",(0,n.kt)("inlineCode",{parentName:"li"},"hydraw")," instance to ",(0,n.kt)("inlineCode",{parentName:"li"},"master")," (a release candidate)"),(0,n.kt)("li",{parentName:"ul"},"Release 0.16.0 (without incremental decommits)"),(0,n.kt)("li",{parentName:"ul"},"Reproduce close > contest > contest scenarios using stateful testing"),(0,n.kt)("li",{parentName:"ul"},"Have end-to-end scenarios working for the improved ",(0,n.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete the improved ",(0,n.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint to unblock users"),(0,n.kt)("li",{parentName:"ul"},"Potentially release 0.17.0 (with improved ",(0,n.kt)("inlineCode",{parentName:"li"},"/commit")," endpoint)"),(0,n.kt)("li",{parentName:"ul"},"Wrap up the incremental decommit work including the decommit action into the new TxTrace tests"),(0,n.kt)("li",{parentName:"ul"},"Use Versioned Ouroboros protocol for handshaking between nodes."),(0,n.kt)("li",{parentName:"ul"},"Update to cardano-api-8.44.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ed8bde1d.7838f7b2.js b/assets/js/ed8bde1d.7838f7b2.js new file mode 100644 index 0000000000..f4baa1b693 --- /dev/null +++ b/assets/js/ed8bde1d.7838f7b2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52702],{78628:e=>{e.exports=JSON.parse('{"permalink":"/page/59","page":59,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/58","nextPage":"/page/60","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ed930750.4fc82f88.js b/assets/js/ed930750.4fc82f88.js new file mode 100644 index 0000000000..6f8c1e1c4a --- /dev/null +++ b/assets/js/ed930750.4fc82f88.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23318],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),c=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return o.createElement(l.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=c(n),m=r,h=d["".concat(l,".").concat(m)]||d[m]||p[m]||a;return n?o.createElement(h,i(i({ref:t},u),{},{components:n})):o.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:r,i[1]=s;for(var c=2;c<a;c++)i[c]=n[c];return o.createElement.apply(null,i)}return o.createElement.apply(null,n)}m.displayName="MDXCreateElement"},64185:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var o=n(87462),r=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-05-03-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-05-03-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-03-consensus.md",source:"@site/blog/2023-05-03-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-05-03T00:00:00.000Z",formattedDate:"May 3, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.755,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-05-03-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-05-04-mithril"},nextItem:{title:"Performance & tracing update",permalink:"/2023-05-03-performance-and-tracing"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Genesis",id:"genesis",level:2},{value:"Fostering collaboration",id:"fostering-collaboration",level:2}],u={toc:c},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"During the past two weeks we made some important progress in the Genesis design.\nIt seems the ",(0,r.kt)("inlineCode",{parentName:"p"},"BlockFetch")," logic need not be modified for Genesis, although this\nneeds to be confirmed. We started a DoS mitigation handbook and updated our\nconceptual component diagram to guide the Genesis design. We engaged with the\nIOG researchers to work on the Limit on Patience attack vector, work in this\narea is still ongoing. We sketched a design to decouple the CPU load of the node\nfrom its responsiveness to the socket. Finally, we discussed with Networking our\napproach to lower the performance impact of the BlockFetch decision logic, and\ngot green light from them."),(0,r.kt)("p",null,"We migrated the consensus code to a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus"},"new\nrepository"),", splitting\nit from the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," repository, and released version 0.6 of\nConsensus."),(0,r.kt)("p",null,"We also merged the mempool fairness improvement to main branch."),(0,r.kt)("p",null,"Another significant enhancement to our documentation was the addition of an\nexplanation of the hardfork combinator forecast horizon."),(0,r.kt)("p",null,"See the sections below for more details."),(0,r.kt)("h2",{id:"genesis"},"Genesis"),(0,r.kt)("p",null,"We reviewed the ",(0,r.kt)("inlineCode",{parentName:"p"},"BlockFetch")," design documentation, and added some source-code\ncomments that emphasize certain properties of the decisions the ",(0,r.kt)("inlineCode",{parentName:"p"},"BlockFetch"),"\nlogic makes that are helping us confirm that Genesis does not require any\nchanges to ",(0,r.kt)("inlineCode",{parentName:"p"},"BlockFetch"),". We are waiting on input from our former system\narchitect to verify this."),(0,r.kt)("p",null,"We migrated and updated the conceptual component diagram in the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),"\nrepository which helps us situate the Genesis design and argument."),(0,r.kt)("p",null,"We engaged with the IOG researchers about the Genesis design. We sketched out a\nway to address the concern that the Limit on Patiente (LoP) attack vector duty\ncycle is indeed low, but it's still non-trivial to ultimately conclude it's\nsufficiently low."),(0,r.kt)("p",null,"We also sketched a design to decouple the CPU load of the node from its\nresponsiveness to the socket, since the LoP is a relatively tight timeout, and\nnode performance bugs inducing seconds-worth of latency are unfortunately\nfamiliar phenomena."),(0,r.kt)("h2",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("p",null,"We ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/62"},"added an\nexplanation")," of\na question that we had to explain many times about the exact behavior of the\nhardfork combinator forecast horizon."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ed99d55f.e4862491.js b/assets/js/ed99d55f.e4862491.js new file mode 100644 index 0000000000..c776c867c7 --- /dev/null +++ b/assets/js/ed99d55f.e4862491.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65318],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),h=u(a),m=n,c=h["".concat(p,".").concat(m)]||h[m]||d[m]||i;return a?r.createElement(c,o(o({ref:t},s),{},{components:a})):r.createElement(c,o({ref:t},s))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<i;u++)o[u]=a[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},73437:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-10-27-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-10-27-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-27-hydra.md",source:"@site/blog/2023-10-27-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-10-27T00:00:00.000Z",formattedDate:"October 27, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.895,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-10-27-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-10-27-goedel"},nextItem:{title:"Network Team Update",permalink:"/2023-10-27-network"}},p={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],s={toc:u},h="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team fixed the ",(0,n.kt)("inlineCode",{parentName:"p"},"gen-hydra-keys")," command to avoid\noverwriting existing keys, and resolved issues related to the rewritten\n",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-tui"),'. They also worked on a \\"dirt road\\" implementation for the\n\\"Ignored init tx\\" notification, improving the robustness of the system.'),(0,n.kt)("p",null,"The team finalized preparations for the Cardano Summit presentation, including\nimplementation of the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-poll")," example DApp."),(0,n.kt)("p",null,'If you happen to read this and attend the Summit in Dubai, make sure to check\nout our Masterclass about \\"Developing Hydra + Mithril for Scaling Cardano\\" on\nFriday, November 3 at 14:00-15:30 local time in the \\"Al Dar\\" room!'),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fix ",(0,n.kt)("inlineCode",{parentName:"li"},"gen-hydra-keys")," command to not overwrite existing keys\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1136"},"#1136")),(0,n.kt)("li",{parentName:"ul"},"Fixed the rewritten ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-tui"),(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1113"},"#1113"),(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1137"},"#1137")),(0,n.kt)("li",{parentName:"ul"},"Finalized cardano summit preparation\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1109"},"#1109")),(0,n.kt)("li",{parentName:"ul"},"Implemented the ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-poll")," example DApp ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-scaling/hydra-poll"},"link to\nrepository")),(0,n.kt)("li",{parentName:"ul"},'Dirt road implementation for \\"Ignored init tx\\" notification\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/529"},"#529"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Attend cardano summit and deliver presentation"),(0,n.kt)("li",{parentName:"ul"},"Clarify / close user created issues"),(0,n.kt)("li",{parentName:"ul"},"Build ",(0,n.kt)("inlineCode",{parentName:"li"},"aarch64-darwin")," binaries in CI")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/eda7cf83.98cb20c9.js b/assets/js/eda7cf83.98cb20c9.js new file mode 100644 index 0000000000..edf216b480 --- /dev/null +++ b/assets/js/eda7cf83.98cb20c9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48423],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),h=p(a),m=n,d=h["".concat(u,".").concat(m)]||h[m]||c[m]||i;return a?r.createElement(d,l(l({ref:t},s),{},{components:a})):r.createElement(d,l({ref:t},s))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,l=new Array(i);l[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[h]="string"==typeof e?e:n,l[1]=o;for(var p=2;p<i;p++)l[p]=a[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},10725:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-02-10-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-02-10-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-10-hydra.md",source:"@site/blog/2023-02-10-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-02-10T00:00:00.000Z",formattedDate:"February 10, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.14,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-02-10-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-02-17-network"},nextItem:{title:"Mithril Team Update",permalink:"/2023-02-09-mithril"}},u={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:p},h="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,'This week, the Hydra team closed several gaps to align the Hydra scripts\nimplementation further with the specification. This also resulted in a slight\nimprovement on Hydra script size and costs. They consequently analysed the\nasymptotic complexity of collect and fanout and how they relate. Also plutus-tx\nprofiling toolchain was evaluated and set up for future improvements on Hydra\non-chain performance. In discussions with researchers and internal auditors,\nthey also uncovered next steps on further securing the Head protocl using a\n"full" minting policy.'),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Closed several gaps to align script implementation with specification ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/452"},"#452"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Allow contest only once ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/680"},"#680")),(0,n.kt)("li",{parentName:"ul"},"Optimization through head output at index 0 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/700"},"#700")),(0,n.kt)("li",{parentName:"ul"},"Value is preserved ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/702"},"#702")," + optimized exact value equality ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/709"},"#709")))),(0,n.kt)("li",{parentName:"ul"},"Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/721"},"#721"),(0,n.kt)("img",{parentName:"li",src:"https://user-images.githubusercontent.com/2621189/218124686-7a85b40d-12f7-4b00-ad16-128c99f5b707.png",alt:null})),(0,n.kt)("li",{parentName:"ul"},"Fixed our tooling around the Haskell language server"),(0,n.kt)("li",{parentName:"ul"},"Discussed full minting policy with researchers"),(0,n.kt)("li",{parentName:"ul"},"Started grooming \u201cwhat we need for mainnet\u201d on ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/713"},"this")," idea ticket and ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/milestone/8"},"milestone"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implement full minting policy"),(0,n.kt)("li",{parentName:"ul"},"All remaining protocol discrepancies are implemented or groomed as individual features"),(0,n.kt)("li",{parentName:"ul"},"Ideally release 0.9.0 with updated scripts"),(0,n.kt)("li",{parentName:"ul"},"Discuss what we need for mainnet (milestone planning)"),(0,n.kt)("li",{parentName:"ul"},"Redraw transaction graphs for specification (upon feedback)")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/edca0251.3da4031b.js b/assets/js/edca0251.3da4031b.js new file mode 100644 index 0000000000..5667010d70 --- /dev/null +++ b/assets/js/edca0251.3da4031b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[39066],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(r),m=a,g=d["".concat(c,".").concat(m)]||d[m]||u[m]||i;return r?n.createElement(g,o(o({ref:t},p),{},{components:r})):n.createElement(g,o({ref:t},p))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var s=2;s<i;s++)o[s]=r[s];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},22704:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const i={title:"Performance & tracing update",slug:"2023-02-08-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-02-08-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-08-performance-and-tracing.md",source:"@site/blog/2023-02-08-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-02-08T00:00:00.000Z",formattedDate:"February 8, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.445,hasTruncateMarker:!1,authors:[{name:"Serge Kosyrev",title:"Performance and Tracing Team Lead",url:"https://github.com/deepfire",imageURL:"https://github.com/deepfire.png",key:"deepfire"}],frontMatter:{title:"Performance & tracing update",slug:"2023-02-08-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-02-08-node-cli-api"},nextItem:{title:"Crypto Team Update",permalink:"/2023-02-03-crypto"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Performance",id:"performance",level:2},{value:"Tracing",id:"tracing",level:2},{value:"Infrastructure",id:"infrastructure",level:2}],p={toc:s},d="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we're currently running what we consider the final benchmark, to validate the underlying assumptions."),(0,a.kt)("li",{parentName:"ol"},"Release benchmarking: we've performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks."),(0,a.kt)("li",{parentName:"ol"},"New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node."),(0,a.kt)("li",{parentName:"ol"},"New tracing: before going live, we're performing the documentation update, as well as reworking the end user migration guide."),(0,a.kt)("li",{parentName:"ol"},"Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live."),(0,a.kt)("li",{parentName:"ol"},"Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on."),(0,a.kt)("li",{parentName:"ol"},"Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.")),(0,a.kt)("h2",{id:"performance"},"Performance"),(0,a.kt)("p",null,"We are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,"),(0,a.kt)("li",{parentName:"ul"},"after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,"),(0,a.kt)("li",{parentName:"ul"},"finally, we're redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.")),(0,a.kt)("p",null,"In addition, we started benchmarks of the 1.35.6 release."),(0,a.kt)("h2",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"A rework of the new tracing system's internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way."),(0,a.kt)("p",null,"Specifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting."),(0,a.kt)("h2",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"On the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we'll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders."),(0,a.kt)("p",null,"The work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment."),(0,a.kt)("p",null,"The Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/edf65b53.6b739892.js b/assets/js/edf65b53.6b739892.js new file mode 100644 index 0000000000..b799522900 --- /dev/null +++ b/assets/js/edf65b53.6b739892.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[22637],{12537:e=>{e.exports=JSON.parse('{"permalink":"/page/9","page":9,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/8","nextPage":"/page/10","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ee0b7a59.1a0eef68.js b/assets/js/ee0b7a59.1a0eef68.js new file mode 100644 index 0000000000..1558e602c6 --- /dev/null +++ b/assets/js/ee0b7a59.1a0eef68.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[26544],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},c),{},{components:n})):r.createElement(h,s({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u<o;u++)s[u]=n[u];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},1679:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-07-26-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-07-26-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-26-consensus.md",source:"@site/blog/2023-07-26-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-07-26T00:00:00.000Z",formattedDate:"July 26, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.85,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-07-26-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-07-27-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-07-21-hydra"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Genesis liaising",id:"genesis-liaising",level:3}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"db-sync")," team confirmed that the adaptor module the Consensus team provided for UTxO-HD integration, shows no performance degradation. Other clients who wish to integrate with UTxO-HD without using a on-disk storage could use that same approach for now.\nWe also focused on completing tracing support for UTxO-HD in ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),".\nCurrently we are working on UTxO-HD documentation, both for downstream consumers and for the general public; and generalizing the implementation further. "),(0,a.kt)("p",null,"The team working on Genesis decided on a Genesis-motivated change of the epoch structure with the researchers, wrote a self-contained description of the statistical model for historical Genesis windows and eclipse durations, and merged two small improvements to the ",(0,a.kt)("inlineCode",{parentName:"p"},"ChainSync")," client as part of the onboarding efforts for the team that will implement Genesis."),(0,a.kt)("p",null,"The Consensus team also investigated an issue on sanchonet (the Conway testnet) manifesting in long syncing pauses; identified a ledger bug which was promptly fixed by the Ledger team."),(0,a.kt)("h3",{id:"genesis-liaising"},"Genesis liaising"),(0,a.kt)("p",null,"Improvements to the ",(0,a.kt)("inlineCode",{parentName:"p"},"ChainSync")," client:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/222"},"#222"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/233"},"#233"),".")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ee5cb919.fb8b7712.js b/assets/js/ee5cb919.fb8b7712.js new file mode 100644 index 0000000000..15e132c5ed --- /dev/null +++ b/assets/js/ee5cb919.fb8b7712.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[49114],{38392:e=>{e.exports=JSON.parse('{"permalink":"/page/86","page":86,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/85","nextPage":"/page/87","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/ee94a44f.53ee4c10.js b/assets/js/ee94a44f.53ee4c10.js new file mode 100644 index 0000000000..0857a60441 --- /dev/null +++ b/assets/js/ee94a44f.53ee4c10.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[56815],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},6855:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2022-12-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-12-15-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-15-mithril.md",source:"@site/blog/2022-12-15-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2022-12-15T00:00:00.000Z",formattedDate:"December 15, 2022",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.11,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2022-12-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-12-16-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2022-12-14-consensus"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team has released the new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2248.1"},(0,n.kt)("inlineCode",{parentName:"a"},"2248.1"))," of their nodes. They have published the first version of the Mithril cryptographic library on ",(0,n.kt)("a",{parentName:"p",href:"https://crates.io/crates/mithril-stm"},(0,n.kt)("inlineCode",{parentName:"a"},"crates.io")),", the Rust community\u2019s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots."),(0,n.kt)("p",null,"Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Implemented removing verification key and stake from single signatures ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/619"},"#619")),(0,n.kt)("li",{parentName:"ul"},"Completed the extraction of the signer registration from the multi-signer ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/642"},"#642")),(0,n.kt)("li",{parentName:"ul"},"Completed the extraction of the certificate creation from the multi-signer ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/638"},"#638")),(0,n.kt)("li",{parentName:"ul"},"Implemented a workflow to test client binaries (Linux / MacOS / Windows) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/601"},"#601")),(0,n.kt)("li",{parentName:"ul"},"Completed the signature of the artifacts produced by the CI ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/587"},"#587")),(0,n.kt)("li",{parentName:"ul"},"Fixed the protocol parameters transition ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/627"},"#627")),(0,n.kt)("li",{parentName:"ul"},"Worked on optimizing the snapshot digest computation ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/510"},"#510")),(0,n.kt)("li",{parentName:"ul"},"Worked on enforcing the API protocol versions in the client and signer ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/633"},"#633")),(0,n.kt)("li",{parentName:"ul"},"Worked on deactivating the non certified signer registration mode ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/621"},"#621")),(0,n.kt)("li",{parentName:"ul"},"Worked on the re-genesis of the test networks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/651"},"#651"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ef2b6a3f.5caf3a83.js b/assets/js/ef2b6a3f.5caf3a83.js new file mode 100644 index 0000000000..8dcbee1836 --- /dev/null +++ b/assets/js/ef2b6a3f.5caf3a83.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1338],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},u),{},{components:n})):r.createElement(h,s({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var c=2;c<o;c++)s[c]=n[c];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},50818:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"DB-sync Team Update",slug:"2022-12-14-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2022-12-14-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-14-db-sync.md",source:"@site/blog/2022-12-14-db-sync.md",title:"DB-sync Team Update",description:"High level summary",date:"2022-12-14T00:00:00.000Z",formattedDate:"December 14, 2022",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.73,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB-sync Team Update",slug:"2022-12-14-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2022-12-14-consensus"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-12-14-node-cli-api"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team continued testing release ",(0,a.kt)("inlineCode",{parentName:"p"},"13.1.0.0"),". The QA team has reported that no issues have\nbeen found. The DBSync team also worked on cherry-picks back to master and on fixing bugs."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Release is cherry-picked back to master, which uses the new rollback mechanism which uses\nreverse indexes, same as the release\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1320"},"#1320"),"\nThis also fixes a bug number of issues on master."),(0,a.kt)("li",{parentName:"ul"},"Depenencies upgrade and CHaP integration\n",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1324"},"#1324")),(0,a.kt)("li",{parentName:"ul"},"AdaPots fix ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-db-sync/pull/1323"},"#1323"),". This\nfixes an issue where the per epoch AdaPots didn't match the epoch boundary, but\nthey also included changes from the first block of the epoch."),(0,a.kt)("li",{parentName:"ul"},"Deposits Event fix ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3212"},"#3212"),". This pr\nadjusts the Deposits ledger events, so that it can be better used by db-sync. This can reduce the\nnumber of queries that db-sync does during syncing an make syncing faster.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ef4801f7.f754c918.js b/assets/js/ef4801f7.f754c918.js new file mode 100644 index 0000000000..2c066fc511 --- /dev/null +++ b/assets/js/ef4801f7.f754c918.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75394],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(r),m=a,g=d["".concat(c,".").concat(m)]||d[m]||u[m]||i;return r?n.createElement(g,o(o({ref:t},p),{},{components:r})):n.createElement(g,o({ref:t},p))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var s=2;s<i;s++)o[s]=r[s];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},45443:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const i={title:"Performance & tracing update",slug:"2023-02-08-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-02-08-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-08-performance-and-tracing.md",source:"@site/blog/2023-02-08-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2023-02-08T00:00:00.000Z",formattedDate:"February 8, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.445,hasTruncateMarker:!1,authors:[{name:"Serge Kosyrev",title:"Performance and Tracing Team Lead",url:"https://github.com/deepfire",imageURL:"https://github.com/deepfire.png",key:"deepfire"}],frontMatter:{title:"Performance & tracing update",slug:"2023-02-08-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-02-08-node-cli-api"},nextItem:{title:"Crypto Team Update",permalink:"/2023-02-03-crypto"}},c={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Performance",id:"performance",level:2},{value:"Tracing",id:"tracing",level:2},{value:"Infrastructure",id:"infrastructure",level:2}],p={toc:s},d="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we're currently running what we consider the final benchmark, to validate the underlying assumptions."),(0,a.kt)("li",{parentName:"ol"},"Release benchmarking: we've performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks."),(0,a.kt)("li",{parentName:"ol"},"New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node."),(0,a.kt)("li",{parentName:"ol"},"New tracing: before going live, we're performing the documentation update, as well as reworking the end user migration guide."),(0,a.kt)("li",{parentName:"ol"},"Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live."),(0,a.kt)("li",{parentName:"ol"},"Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on."),(0,a.kt)("li",{parentName:"ol"},"Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.")),(0,a.kt)("h2",{id:"performance"},"Performance"),(0,a.kt)("p",null,"We are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,"),(0,a.kt)("li",{parentName:"ul"},"after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,"),(0,a.kt)("li",{parentName:"ul"},"finally, we're redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.")),(0,a.kt)("p",null,"In addition, we started benchmarks of the 1.35.6 release."),(0,a.kt)("h2",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"A rework of the new tracing system's internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way."),(0,a.kt)("p",null,"Specifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting."),(0,a.kt)("h2",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"On the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we'll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders."),(0,a.kt)("p",null,"The work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment."),(0,a.kt)("p",null,"The Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ef4f60e7.4cddd06e.js b/assets/js/ef4f60e7.4cddd06e.js new file mode 100644 index 0000000000..cf5a35871e --- /dev/null +++ b/assets/js/ef4f60e7.4cddd06e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[55531],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,g=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(g,l(l({ref:t},m),{},{components:r})):n.createElement(g,l({ref:t},m))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},86601:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-04-14-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-04-14-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-14-goedel.md",source:"@site/blog/2023-04-14-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-04-14T00:00:00.000Z",formattedDate:"April 14, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.415,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-04-14-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Cardano Block Production Temporary Outage",permalink:"/2023-04-17-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2023-04-14-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the team has submitted two papers for publication, carried\nout consultancy with other teams and has an opening for an intern."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Finalised and submitted two papers to ICE 2023")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Studying Praos paper.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The team is hiring a performance engineering intern - ",(0,a.kt)("a",{parentName:"p",href:"https://apply.workable.com/io-global/j/BFEC5B0AFF/"},"https://apply.workable.com/io-global/j/BFEC5B0AFF/"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Design exploration for congestion management."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/eff08811.a9e928fa.js b/assets/js/eff08811.a9e928fa.js new file mode 100644 index 0000000000..31e9a662c5 --- /dev/null +++ b/assets/js/eff08811.a9e928fa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95816],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),d=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=d(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=d(a),h=r,m=c["".concat(p,".").concat(h)]||c[h]||u[h]||o;return a?n.createElement(m,i(i({ref:t},s),{},{components:a})):n.createElement(m,i({ref:t},s))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:r,i[1]=l;for(var d=2;d<o;d++)i[d]=a[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},72837:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var n=a(87462),r=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-02-03-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-02-03-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-03-hydra.md",source:"@site/blog/2023-02-03-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-02-03T00:00:00.000Z",formattedDate:"February 3, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.12,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-02-03-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-02-03-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-02-02-ledger"}},p={authorsImageUrls:[void 0]},d=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:d},c="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"This week, the Hydra team completed the Hydra specification with a section about\nrollbacks and updated graphs\n(",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/448"},"#448"),"). In a next step,\nthe specification will be made more approachable and an open standard. They\nimproved their ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-cluster")," tool to launch a local ",(0,r.kt)("inlineCode",{parentName:"p"},"--devnet")," sandbox\nenvironment and continued aligning the ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-plutus")," scripts with the\nspecification by hardening the checks on ",(0,r.kt)("inlineCode",{parentName:"p"},"close")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"contest")," transactions."),(0,r.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Completed the specification with a section about rollbacks and updated graphs\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/448"},"#448"),", with a follow-up on making it more approachable and an open standard."),(0,r.kt)("li",{parentName:"ul"},"Continued spec review with internal auditor and incorporated changes."),(0,r.kt)("li",{parentName:"ul"},"Talked to TxPipe about how Demeter and Hydra could work together"),(0,r.kt)("li",{parentName:"ul"},"The ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra-cluster")," executable can be used to launch a local ",(0,r.kt)("inlineCode",{parentName:"li"},"--devnet")," sandbox environment."),(0,r.kt)("li",{parentName:"ul"},"Reproduced the \u201chead being stuck on network outage\u201d bug",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed."))),(0,r.kt)("li",{parentName:"ul"},"Progressed with higher velocity by addressing more and more gaps ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/677"},"#677"))),(0,r.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Upstream our JSON instances to the ledger"),(0,r.kt)("li",{parentName:"ul"},"Close all transaction security related on-chain gaps"),(0,r.kt)("li",{parentName:"ul"},"Ideally release 0.9.0 with updated scripts"),(0,r.kt)("li",{parentName:"ul"},"Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f0418a99.f79829a7.js b/assets/js/f0418a99.f79829a7.js new file mode 100644 index 0000000000..dc6cd71e05 --- /dev/null +++ b/assets/js/f0418a99.f79829a7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73799],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),s=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),c=s(r),d=n,h=c["".concat(l,".").concat(d)]||c[d]||m[d]||a;return r?o.createElement(h,i(i({ref:t},u),{},{components:r})):o.createElement(h,i({ref:t},u))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=d;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[c]="string"==typeof e?e:n,i[1]=p;for(var s=2;s<a;s++)i[s]=r[s];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}d.displayName="MDXCreateElement"},25770:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>p,toc:()=>s});var o=r(87462),n=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-11-16-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,p={permalink:"/2023-11-16-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-16-network.md",source:"@site/blog/2023-11-16-network.md",title:"Network Team Update",description:"High-level overview of sprint 48",date:"2023-11-16T00:00:00.000Z",formattedDate:"November 16, 2023",tags:[{label:"network",permalink:"/tags/network"}],readingTime:.545,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-11-16-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2023-11-17-performance-and-tracing"},nextItem:{title:"Consensus Team Update",permalink:"/2023-11-15-consensus"}},l={authorsImageUrls:[void 0]},s=[{value:"High-level overview of sprint 48",id:"high-level-overview-of-sprint-48",level:2},{value:"Bootstrap Peers",id:"bootstrap-peers",level:3},{value:"IOClasses / IOSim",id:"ioclasses--iosim",level:3},{value:"Tech debt",id:"tech-debt",level:3}],u={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview-of-sprint-48"},"High-level overview of ",(0,n.kt)("a",{parentName:"h2",href:"https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+48%22"},"sprint 48")),(0,n.kt)("h3",{id:"bootstrap-peers"},"Bootstrap Peers"),(0,n.kt)("p",null,"We continued reviewing bootstrap peers, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4555"},"ouroboros-network#4555"),"."),(0,n.kt)("h3",{id:"ioclasses--iosim"},"IOClasses / IOSim"),(0,n.kt)("p",null,"We prepared slides for a Haskell meetup were we presented a talk on ",(0,n.kt)("inlineCode",{parentName:"p"},"IOSimPOR"),".\nThe recording will be availble on ",(0,n.kt)("inlineCode",{parentName:"p"},"YouTube"),"."),(0,n.kt)("p",null,"We also used the opportunity to do some refactoring of the ",(0,n.kt)("inlineCode",{parentName:"p"},"IOSim")," code base: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/117"},"io-sim#117"),".\nWe released ",(0,n.kt)("inlineCode",{parentName:"p"},"io-sim-1.3.0.0")," on ",(0,n.kt)("inlineCode",{parentName:"p"},"Hackage"),": ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/119"},"io-sim#119"),"."),(0,n.kt)("p",null,"We also added ",(0,n.kt)("inlineCode",{parentName:"p"},"forkFinally")," to ",(0,n.kt)("inlineCode",{parentName:"p"},"MonadFork")," (not included in ",(0,n.kt)("inlineCode",{parentName:"p"},"1.3.0.0")," release): ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/123"},"io-sim#123"),"."),(0,n.kt)("h3",{id:"tech-debt"},"Tech debt"),(0,n.kt)("p",null,"We refactored ",(0,n.kt)("inlineCode",{parentName:"p"},"Resource")," used by the DNS subsystem: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4707"},"ouroboros-network#4707"),".\nWe continued reviewing the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4625"},"ouroboros-network#4625")," PR, which refactors\n",(0,n.kt)("inlineCode",{parentName:"p"},"RootPeersDNS")," module."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f04f5aa5.0107a0d0.js b/assets/js/f04f5aa5.0107a0d0.js new file mode 100644 index 0000000000..dc63a4194d --- /dev/null +++ b/assets/js/f04f5aa5.0107a0d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64350],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(h,l(l({ref:t},p),{},{components:n})):r.createElement(h,l({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=n[c];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},9554:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Benchmarking -- Node 9.0.0",slug:"2024-07-performance-9.0.0",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},l=void 0,i={permalink:"/reports/2024-07-performance-9.0.0",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/reports/2024-07-performance-9.0.0.md",source:"@site/reports/2024-07-performance-9.0.0.md",title:"Benchmarking -- Node 9.0.0",description:"Setup",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"benchmarking-reports",permalink:"/reports/tags/benchmarking-reports"}],readingTime:3.255,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Benchmarking -- Node 9.0.0",slug:"2024-07-performance-9.0.0",authors:"mgmeier",tags:["benchmarking-reports"],hide_table_of_contents:!1},prevItem:{title:"Benchmarking -- Node 8.12.1",permalink:"/reports/2024-06-performance-8.12.1"}},s={authorsImageUrls:[void 0]},c=[{value:"Setup",id:"setup",level:2},{value:"Observations",id:"observations",level:2},{value:"Resource Usage",id:"resource-usage",level:3},{value:"Forging Loop",id:"forging-loop",level:3},{value:"Peer propagation",id:"peer-propagation",level:3},{value:"End-to-end propagation",id:"end-to-end-propagation",level:3},{value:"Conclusion",id:"conclusion",level:3},{value:"Contact",id:"contact",level:2},{value:"Attachments",id:"attachments",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.kt)(u,(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"setup"},"Setup"),(0,a.kt)("p",null,"As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"8.12.1")," - baseline from a previous mainnet release"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"9.0.0")," - the current mainnet release")),(0,a.kt)("p",null,"For each version, we're gathering various metrics under 2 different workloads:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"value-only"),": Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("em",{parentName:"li"},"Plutus"),": Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.")),(0,a.kt)("p",null,"Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs\nwere performed in the Conway era."),(0,a.kt)("h2",{id:"observations"},"Observations"),(0,a.kt)("p",null,"These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet. "),(0,a.kt)("h3",{id:"resource-usage"},"Resource Usage"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload Process and Mutator CPU usage are slightly higher on ",(0,a.kt)("inlineCode",{parentName:"li"},"9.0")," - 7% - 8% (4% each under Plutus workload). GC CPU is increased by 11%, but decreases under Putus workload by 3%."),(0,a.kt)("li",{parentName:"ol"},"Only under value workload, Allocation Rate and Minor GCs increase by 5% and the live GC dataset grows by 3%. Heap size is constant."),(0,a.kt)("li",{parentName:"ol"},"CPU 85% spans are 8% shorter (3% under Plutus workload).")),(0,a.kt)("p",null,"Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness."),(0,a.kt)("h3",{id:"forging-loop"},"Forging Loop"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Mempool Snapshotting and Self Adoption time on the block producer increase very slightly under value workload - 2ms (or 3%) each."),(0,a.kt)("li",{parentName:"ol"},"Under Plutus workload, however, a decrease in Self Adoption time by 2ms (or 4%) is the only significant change in the forging loop.")),(0,a.kt)("p",null,"The metric ",(0,a.kt)("em",{parentName:"p"},"'Slot start to announced'")," (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header."),(0,a.kt)("h3",{id:"peer-propagation"},"Peer propagation"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Block Fetch duration is 21ms faster (6%) - 7ms or 5% under Plutus workload."),(0,a.kt)("li",{parentName:"ol"},"Fetched to Sending increases slightly by 3ms (7%) - only under value workload."),(0,a.kt)("li",{parentName:"ol"},"Adoption times on the peers increase slightly by 4ms (5%) - under Plutus workload, however, they are 3ms (6%) faster.")),(0,a.kt)("h3",{id:"end-to-end-propagation"},"End-to-end propagation"),(0,a.kt)("p",null,"This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes. "),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Under value workload / full blocks on ",(0,a.kt)("inlineCode",{parentName:"li"},"9.0"),", we can observe a 4% - 5% improvement of cluster adoption times in the 80th centile and above."),(0,a.kt)("li",{parentName:"ol"},"Under Plutus workload / small blocks, the corresponding improvement is 5% - 6%."),(0,a.kt)("li",{parentName:"ol"},"The main contributing factor is the improvement in Block Fetch duration.")),(0,a.kt)("h3",{id:"conclusion"},"Conclusion"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Network performance clearly improves by ~%5 for 80% to full cluster adoption - independent of workload."),(0,a.kt)("li",{parentName:"ul"},"RAM usage is unchanged on ",(0,a.kt)("inlineCode",{parentName:"li"},"9.0"),". The slight rise in CPU usage is expected, given improved network performance, and does not pose cause for concern."),(0,a.kt)("li",{parentName:"ul"},"We have not observed any performance regression being introduced in ",(0,a.kt)("inlineCode",{parentName:"li"},"9.0.0."),".")),(0,a.kt)("p",null,"NB. These benchmarks were performed in the Conway ledger era. As such, they do not cover the one-time performance cost of transitioning from Babbage and enabling the new features of the Conway ledger."),(0,a.kt)("h2",{id:"contact"},"Contact"),(0,a.kt)("p",null,"As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology. "),(0,a.kt)("p",null,"We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future."),(0,a.kt)("h2",{id:"attachments"},"Attachments"),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"value-only workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(27243).Z},"here"),"."),(0,a.kt)("p",null,"Full report for ",(0,a.kt)("em",{parentName:"p"},"Plutus workload"),", PDF downloadable ",(0,a.kt)("a",{target:"_blank",href:n(87728).Z},"here"),"."),(0,a.kt)("p",null,"NB. The release benchmarks for ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.1")," were performed on tag ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0-pre"),". The patch version bump did not include changes relevant to performance; thus, measurements taken on ",(0,a.kt)("inlineCode",{parentName:"p"},"8.12.0-pre")," remain valid."))}d.isMDXComponent=!0},87728:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-9.0.0.plutus-8385e89a67774584329c93e59dcfe545.pdf"},27243:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/release-9.0.0.value-only-8ef8064d6bb04de733985e12e9a9e5ea.pdf"}}]); \ No newline at end of file diff --git a/assets/js/f117ec90.8aad8d00.js b/assets/js/f117ec90.8aad8d00.js new file mode 100644 index 0000000000..a910382dd4 --- /dev/null +++ b/assets/js/f117ec90.8aad8d00.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[51522],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),u=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(r),m=n,d=c["".concat(s,".").concat(m)]||c[m]||h[m]||i;return r?a.createElement(d,o(o({ref:t},p),{},{components:r})):a.createElement(d,o({ref:t},p))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<i;u++)o[u]=r[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},64385:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2023-09-08-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-08-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-08-hydra.md",source:"@site/blog/2023-09-08-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-09-08T00:00:00.000Z",formattedDate:"September 8, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.06,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-09-08-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-09-12-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2023-09-07-mithril"}},s={authorsImageUrls:[void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:u},c="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team improved the commit process with support for inline\ndatums. They simplified the chain layer by refactoring how the chain state is\npersisted. Updates to the Hydra tutorial were completed, including CI workflows\nto keep it up-to-date. The team engaged in discussions with researchers about\nincremental commits & decommits, and drafted an architectural decision record\nfor a resource-based API. They also explored simpler solutions for the upcoming\nnetwork resilience feature."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Support InlineScriptDatum in commit\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1043"},"#1043")),(0,n.kt)("li",{parentName:"ul"},"Refactored chain state persistency\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1049"},"#1049")),(0,n.kt)("li",{parentName:"ul"},"Completed tutorial updates (by adding CI and some cleanup)\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/997"},"#997")),(0,n.kt)("li",{parentName:"ul"},"Intersect Open Source committee meeting"),(0,n.kt)("li",{parentName:"ul"},'Experimented with various models to better express the \\"Network\nresilience problem\\" to find a KISS solution for\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/188"},"#188")),(0,n.kt)("li",{parentName:"ul"},"Drafted and discussed incremental de-/commit features within team\nand with researchers\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/199"},"#199")," and\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1057"},"#1057")),(0,n.kt)("li",{parentName:"ul"},"Created ADR for a resource based overhaul of the API\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1028"},"#1028"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Meetup of Hydra & Mithril contributors in Nantes, France"),(0,n.kt)("li",{parentName:"ul"},"Integrated cardano-api 8.15 to have GHC 9.6 support"),(0,n.kt)("li",{parentName:"ul"},"A clear design for incremental commits (decommits are already\nunderstood)"),(0,n.kt)("li",{parentName:"ul"},"An ADR for improving tx construction & observation to not need chain\nstate")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f1565105.2125f3e5.js b/assets/js/f1565105.2125f3e5.js new file mode 100644 index 0000000000..a6c14836b5 --- /dev/null +++ b/assets/js/f1565105.2125f3e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[99851],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(f,l(l({ref:t},m),{},{components:r})):n.createElement(f,l({ref:t},m))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},29008:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-11-10-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-11-10-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-10-goedel.md",source:"@site/blog/2023-11-10-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-11-10T00:00:00.000Z",formattedDate:"November 10, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.355,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-11-10-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-11-14-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2023-11-10-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and working on a\nperformance modelling paper"),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"completing work on chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"specifying correctness property of chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"creating diagrams for JLAMP paper")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"finalising structure of JLAMP paper"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f1bfc30d.b702e6a8.js b/assets/js/f1bfc30d.b702e6a8.js new file mode 100644 index 0000000000..c842ae0c8b --- /dev/null +++ b/assets/js/f1bfc30d.b702e6a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[35877],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),h=n,d=m["".concat(s,".").concat(h)]||m[h]||c[h]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}h.displayName="MDXCreateElement"},30394:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-10-11-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-10-11-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-11-mithril.md",source:"@site/blog/2023-10-11-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-10-11T00:00:00.000Z",formattedDate:"October 11, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.77,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-10-11-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-10-13-sre"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-10-10-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team worked on the distribution of the Mithril client as a library that will be distributed on ",(0,n.kt)("a",{parentName:"p",href:"https://crates.io/"},"crates.io"),", the Rust dependencies repository. The team also worked on the deterministic computation of the transaction history of an address from the immutable files and started fixing a bottleneck in the aggregator that limits the ingestion of signatures."),(0,n.kt)("p",null,"Finally, they kept working on the activation of Cloudflare on the infrastructure and fixed some bugs in the Nix CI."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Make ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," crate a library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1141"},"#1141")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Compute deterministic Cardano transactions history PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1283"},"#1283")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"ProtocolKeyRegistration")," creates performance bottleneck in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1187"},"#1187")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Update ",(0,n.kt)("inlineCode",{parentName:"strong"},"Rust")," compiler in ",(0,n.kt)("inlineCode",{parentName:"strong"},"nix")," CI")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1282"},"#1282")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Mithril networks infrastructure maintenance")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1218"},"#1218")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Activate Cloudflare protection of infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1230"},"#1230"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f1df5007.629648a3.js b/assets/js/f1df5007.629648a3.js new file mode 100644 index 0000000000..22e39dbc4f --- /dev/null +++ b/assets/js/f1df5007.629648a3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[53288],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>c});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),d=n,c=h["".concat(s,".").concat(d)]||h[d]||m[d]||a;return r?i.createElement(c,o(o({ref:t},u),{},{components:r})):i.createElement(c,o({ref:t},u))}));function c(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}d.displayName="MDXCreateElement"},80999:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-08-28-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-08-28-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-28-mithril.md",source:"@site/blog/2023-08-28-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-08-28T00:00:00.000Z",formattedDate:"August 28, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-08-28-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-08-29-node-cli-api"},nextItem:{title:"Hydra Team Update",permalink:"/2023-08-25-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team created an explorer page with the registered signers to give recognition to the SPOs already running on mainnet. They also worked on refactoring and standardizing errors in the Mithril nodes, and they enhanced the clarity and reduced verbosity of the logs for the signer and aggregator nodes. Additionally, they started working on the implementation of ",(0,n.kt)("inlineCode",{parentName:"p"},"zstandard")," compression of the snapshot archive, and streaming its download and decompression in the client."),(0,n.kt)("p",null,"Finally, they implemented machine readable progress information in the client, and streamlined the process of verifying the registration status of a signer. "),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Create explorer page with registered signers")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1097"},"#1097")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Simplify logs on the Signer/Aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1106"},"#1106")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Refactor (de)serialization of crypto entities")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/668"},"#668")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Mithril client last snapshot download")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1078"},"#1078")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Use the '/signers/registered' route to verify if a signer is registered")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1152"},"#1152")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Provide progress information with '--json' option in Client")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1095"},"#1095")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Use 'zstandard' compression for snapshot archives")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/876"},"#876")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("inlineCode",{parentName:"li"},"Make client download and extract the archive simultaneously")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1115"},"#1115"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f210b4b5.57594055.js b/assets/js/f210b4b5.57594055.js new file mode 100644 index 0000000000..9a2762624e --- /dev/null +++ b/assets/js/f210b4b5.57594055.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24745],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=c(r),d=a,h=m["".concat(l,".").concat(d)]||m[d]||u[d]||s;return r?n.createElement(h,o(o({ref:t},p),{},{components:r})):n.createElement(h,o({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,o=new Array(s);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var c=2;c<s;c++)o[c]=r[c];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},68831:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const s={title:"DB sync Team Update",slug:"2022-12-01-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2022-12-01-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-01-db-sync.md",source:"@site/blog/2022-12-01-db-sync.md",title:"DB sync Team Update",description:"High level summary",date:"2022-12-01T00:00:00.000Z",formattedDate:"December 1, 2022",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.78,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB sync Team Update",slug:"2022-12-01-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-12-02-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2022-12-01-mithril"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],p={toc:c},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DB Sync team prepared a release ",(0,a.kt)("inlineCode",{parentName:"p"},"13.1.0.0-rc2")," which includes many improvements for db-sync,\nit makes rollbacks and syncing much faster, simplifies the schema, fixes bugs and introduces\nmigrations. This release finalises the objectives that were set for db-sync for the previous\n3 months period and part of the syncing speed objective set for the next period\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/blob/3640e5aa00b8bada61e5d4b6eee063749866711b/cardano-db-sync/CHANGELOG.md#13100"},"Changelog")),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Branch ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/compare/release/13.0.x..3640e5aa00b8bada61e5d4b6eee063749866711b"},"release/13.1.0.x"),"\nincludes all the improvements related to the release. The release is passing through the testing\nphase and a number of bugs and issues have been fixed, like\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/issues/1312"},"#1312"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/issues/1311"},"#1311"),".\nAlso many new unit tests have been added.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Part of the release branch is cherry-picked back into master, in a way that it respects the new\nrelease and development process, so that it takes into account migrations\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-db-sync/issues/1305"},"release process"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"The DB Sync team has also tagged release ",(0,a.kt)("inlineCode",{parentName:"p"},"13.0.6")," which better supports preview and preprod for\ndocker."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f2180c0a.41fb04a9.js b/assets/js/f2180c0a.41fb04a9.js new file mode 100644 index 0000000000..946583571c --- /dev/null +++ b/assets/js/f2180c0a.41fb04a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17433],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),c=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=c(r),m=n,g=s["".concat(u,".").concat(m)]||s[m]||d[m]||l;return r?a.createElement(g,o(o({ref:t},p),{},{components:r})):a.createElement(g,o({ref:t},p))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:n,o[1]=i;for(var c=2;c<l;c++)o[c]=r[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},9304:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-05-05-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-05-05-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-05-ledger.md",source:"@site/blog/2023-05-05-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-05-05T00:00:00.000Z",formattedDate:"May 5, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.235,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-05-05-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-05-12-network"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-05-05-node-cli-api"}},u={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway certificates",id:"conway-certificates",level:2},{value:"Constraint based testing",id:"constraint-based-testing",level:2},{value:"Integration work",id:"integration-work",level:2},{value:"Technical debt",id:"technical-debt",level:2}],p={toc:c},s="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The ledger team focused mainly on the conway ledger era and node integration.\nFor conway, we completed a large structural change that now allows\nfor delegation certificates to be parameterized by era, and introducing\nnew certificates for the first time since Shelley.\nWe also continue to build out our contraint based generators that we will\nuse to property test the conway era.\nIn particular, we can now generate an entire ledger state and a\ntransaction which is balanced with respect to the ledger state."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h2",{id:"conway-certificates"},"Conway certificates"),(0,n.kt)("p",null,"Certificiates are now abstracted as a type family in the ledger codebase.\nMoreover, there are new certificates in the Conway era to support CIP-1694,\nand MIR certificates have been removed."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3387"},"pull-3387"))),(0,n.kt)("h2",{id:"constraint-based-testing"},"Constraint based testing"),(0,n.kt)("p",null,"Our plan for property testing in the conway era is to no longer use the trace generators,\nbut instead generate ledger states and transactions based on constraints.\nWe hit a milestone this week, namely the ability to generate a balanced transaction in the context\nof a ledger state, all based on our ever growing constaint language."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3374"},"pull-3374")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3386"},"pull-3386"))),(0,n.kt)("h2",{id:"integration-work"},"Integration work"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3393"},"pull-3393")," - Performance improvements"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3395"},"pull-3395")," - Conway instances"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3398"},"pull-3398")," - Fix mint translation in the script context")),(0,n.kt)("h2",{id:"technical-debt"},"Technical debt"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3389"},"pull-3389")," - Reduce github pages size"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3390"},"pull-3390")," - Reinstate the tickf optimizations")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f2423430.0860f325.js b/assets/js/f2423430.0860f325.js new file mode 100644 index 0000000000..c91dcfb548 --- /dev/null +++ b/assets/js/f2423430.0860f325.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1321],{3905:(e,n,r)=>{r.d(n,{Zo:()=>u,kt:()=>g});var t=r(67294);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function i(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function o(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?i(Object(r),!0).forEach((function(n){a(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function c(e,n){if(null==e)return{};var r,t,a=function(e,n){if(null==e)return{};var r,t,a={},i=Object.keys(e);for(t=0;t<i.length;t++)r=i[t],n.indexOf(r)>=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t<i.length;t++)r=i[t],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=t.createContext({}),l=function(e){var n=t.useContext(s),r=n;return e&&(r="function"==typeof e?e(n):o(o({},n),e)),r},u=function(e){var n=l(e.components);return t.createElement(s.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},m=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=l(r),m=a,g=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return r?t.createElement(g,o(o({ref:n},u),{},{components:r})):t.createElement(g,o({ref:n},u))}));function g(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=m;var c={};for(var s in n)hasOwnProperty.call(n,s)&&(c[s]=n[s]);c.originalType=e,c[d]="string"==typeof e?e:a,o[1]=c;for(var l=2;l<i;l++)o[l]=r[l];return t.createElement.apply(null,o)}return t.createElement.apply(null,r)}m.displayName="MDXCreateElement"},28149:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var t=r(87462),a=(r(67294),r(3905));const i={title:"Performance & tracing update",slug:"2023-03-22-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o="High level summary",c={permalink:"/2023-03-22-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-22-performance-and-tracing.md",source:"@site/blog/2023-03-22-performance-and-tracing.md",title:"Performance & tracing update",description:"* Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.",date:"2023-03-22T00:00:00.000Z",formattedDate:"March 22, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.5,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-03-22-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-03-22-node-cli-api"},nextItem:{title:"Network Team Update",permalink:"/2023-03-21-network"}},s={authorsImageUrls:[void 0]},l=[{value:"New tracing",id:"new-tracing",level:3},{value:"GHC RTS parametrization",id:"ghc-rts-parametrization",level:3},{value:"Open Sourcing",id:"open-sourcing",level:3},{value:"General",id:"general",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],u={toc:l},d="wrapper";function p(e){let{components:n,...r}=e;return(0,a.kt)(d,(0,t.Z)({},u,r,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations."),(0,a.kt)("li",{parentName:"ul"},"New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we're currently improving documentation and creating setup guidelines for end users."),(0,a.kt)("li",{parentName:"ul"},"Analysis pipeline: Our refined metrics PR has been merged. We're working on including variance analysis to our reporting machinery."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we're laying the groundwork for enabling GHC 9.2 in our benchmarks."),(0,a.kt)("li",{parentName:"ul"},"Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing."),(0,a.kt)("li",{parentName:"ul"},"Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.")),(0,a.kt)("h1",{id:"performance"},"Performance"),(0,a.kt)("h3",{id:"new-tracing"},"New tracing"),(0,a.kt)("p",null,"The new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe\na slight shift in the resource usage profile from memory to CPU, but no regressions in block propagation metrics. Variance was observed to be notably smaller, which gives the new system a much better predictability. From this angle, we consider the new system fit for production use."),(0,a.kt)("h3",{id:"ghc-rts-parametrization"},"GHC RTS parametrization"),(0,a.kt)("p",null,"We're currently prerforming various runs on the cluster to explore the space of different GHC RTS settings for running nodes. The main focus lies\non different configurations for the garbage collector, as well as increasing the number of CPU cores the node may use."),(0,a.kt)("h3",{id:"open-sourcing"},"Open Sourcing"),(0,a.kt)("p",null,"Our API demo has reached prototype stage, and operates on live data from the production database. Making use of the experience gained, we're refining version 1 of the API to provide optimized usability, and creating documentation that both is descriptive of the API endpoints, and focuses on practical, exemplary use cases."),(0,a.kt)("h1",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"For the new tracing system we're currently undertaking an effort to multi-layered documentation: a condensed version, as well\nas a setup guide with pragmatical focus, will be provided alongside the in-depth documentation. This effort should cater to different audiences, and provide distinct entry points\nfor users of the new system, depending on their wants and needs. "),(0,a.kt)("h1",{id:"infrastructure--analysis"},"Infrastructure & Analysis"),(0,a.kt)("h3",{id:"general"},"General"),(0,a.kt)("p",null,"Having included Conway genesis in the workbench, as a next step in future-proofing out benchmarking infrastructure, we're laying the foundation for a switch in compiler version to GHC 9.2. Additionally, we considered variance analysis of our runs to merit inclusion into our reporting pipeling - which will\nincrease confidence in specific metrics."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"We have implemented an appropriate mechanism for genesis distribution: Only after a benchmarking cluster has been deployed successfully, genesis\nis patched and uploaded to an AWS S3 bucket for the nodes to retrieve - as a final step before initiating the actual run. We're confident that this deferred approach will provide clearer evidence for genesis patches, as well as minimize startup time for all runs by factoring in deployment re-tries."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f2b32cff.67d1b9e1.js b/assets/js/f2b32cff.67d1b9e1.js new file mode 100644 index 0000000000..f4e0cb7d59 --- /dev/null +++ b/assets/js/f2b32cff.67d1b9e1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58566],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),h=u(r),d=n,m=h["".concat(p,".").concat(d)]||h[d]||c[d]||l;return r?a.createElement(m,o(o({ref:t},s),{},{components:r})):a.createElement(m,o({ref:t},s))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[h]="string"==typeof e?e:n,o[1]=i;for(var u=2;u<l;u++)o[u]=r[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},59485:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-02-17-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-02-17-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-17-ledger.md",source:"@site/blog/2023-02-17-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-02-17T00:00:00.000Z",formattedDate:"February 17, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.33,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2023-02-17-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-02-17-hydra"},nextItem:{title:"Network Team Update",permalink:"/2023-02-17-network"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Integration work",id:"integration-work",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Small documentation improvements",id:"small-documentation-improvements",level:3},{value:"Specifying CIP-1694",id:"specifying-cip-1694",level:3},{value:"Constraint based testing",id:"constraint-based-testing",level:3}],s={toc:u},h="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This past two weeks saw many months worth of ledger changes integrated with the ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-base"),"\nand ",(0,n.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," repositories.\nThe vast majority of the effort involved all the changes to the ledger serialization libraries\n(and the interplay with ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-base"),") which now support proper versioning.\nSupporting the conway ledger era, and in particular allowing the ledger state to transition\nto a whole new system of governance, also played a noticeable part in the integration."),(0,n.kt)("p",null,"Besides the integration work, the team continues to address technical debt, improve the\ndocumentation, make our testing infrastructure better (such as experimenting with better\nnightly tests), and formally specifying more parts of CIP-1694."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"integration-work"},"Integration work"),(0,n.kt)("p",null,"Below is all the integration work completed, which will enable a release to node from\nthe current ledger master. Many thanks to\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/lehins"},"Alexey")," for this colossal undertaking!"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3303"},"pull-3303")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3302"},"pull-3302")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3300"},"pull-3300")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3299"},"pull-3299")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3298"},"pull-3298")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3297"},"pull-3297")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3292"},"pull-3292")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3289"},"pull-3289")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3288"},"pull-3288")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3279"},"pull-3279")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3282"},"pull-3282")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4349"},"pull-4349"))),(0,n.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,n.kt)("p",null,"Starting in major protocol version 9, zero-valued multi-assets will no longer be permitted\nin the CBOR specification. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3241"},"pull-3241"),"."),(0,n.kt)("p",null,"We now have our ",(0,n.kt)("inlineCode",{parentName:"p"},".cabal")," files being checked for a consistent formatting given by\n",(0,n.kt)("inlineCode",{parentName:"p"},"cabal format")," in our CI. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3286"},"pull-3286"),"."),(0,n.kt)("p",null,"We are still experimenting with better nightly tests for our long running\nproperty based tests. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3276"},"pull-3276")," and ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3296"},"pull-3296"),"."),(0,n.kt)("h3",{id:"small-documentation-improvements"},"Small documentation improvements"),(0,n.kt)("p",null,"The hand proofs of the preservation ADA property have been added back to the\nShelley ledger specification. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3295"},"pull-3295"),"."),(0,n.kt)("p",null,"We have clarified how the script integrity hash is computed in the CDDL description.\nSee ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3290"},"pull-3290"),"."),(0,n.kt)("h3",{id:"specifying-cip-1694"},"Specifying CIP-1694"),(0,n.kt)("p",null,"Our new formal specifications backed by Agda have seen a lot of progress!\nUpgrading to Agda 2.6.3 fixed our main build infrastructure problems,\nand we no longer have to rely on our custom fork. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/formal-ledger-specifications/pull/50"},"pull-50"),"."),(0,n.kt)("p",null,"Our progress on formally specifying CIP-1694 can be followed here:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"in Agda: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/formal-ledger-specifications/pull/40"},"pull-40")),(0,n.kt)("li",{parentName:"ul"},"the corresponding Haskell: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3291"},"pull-3291"))),(0,n.kt)("h3",{id:"constraint-based-testing"},"Constraint based testing"),(0,n.kt)("p",null,"We are still actively working on our new constraint based property testing framework.\nWe have nearly all of the constraints for an entire ledger state\nhooked into generators, and tests that the generators do indeed obey the constraints.\nThe variable count in the constraints is over 100!\nThere is still much work to do on shrinking, making the generators faster,\nand writing actual property tests for the ledger, but the approach still seems viable and\nwe are hopeful that it could replace our trace generators.\nThe WIP can be followed here: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3219"},"pull-3219"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f2deb2f1.0bf56a4f.js b/assets/js/f2deb2f1.0bf56a4f.js new file mode 100644 index 0000000000..4192d037fe --- /dev/null +++ b/assets/js/f2deb2f1.0bf56a4f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[82164],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=s(a),m=n,h=c["".concat(p,".").concat(m)]||c[m]||d[m]||o;return a?r.createElement(h,l(l({ref:t},u),{},{components:a})):r.createElement(h,l({ref:t},u))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:n,l[1]=i;for(var s=2;s<o;s++)l[s]=a[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},80599:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const o={title:"SRE Team Update",slug:"2023-11-10-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-11-10-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-10-sre.md",source:"@site/blog/2023-11-10-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-11-10T00:00:00.000Z",formattedDate:"November 10, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:2.225,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-11-10-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-11-10-hydra"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-11-09-db-sync"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Iohk-nix",id:"iohk-nix",level:3},{value:"Sanchonet-demo",id:"sanchonet-demo",level:3}],u={toc:s},c="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,n.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Cardano-world testnets of preprod, preview, sanchonet and some private test chains have largely completed their migration to the ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground"},"cardano-playground")," stack")),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"capkgs"},"Capkgs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Minor bug fix and db-sync sanchonet package update: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/b1f1cbd...994696f"},"capkgs-compare"))),(0,n.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"General migration support PR for cardano-world to cardano-playground ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/18"},"cardano-parts-pull-18"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Iohk-nix and iohk-nix-ng were updated support the migration of cardano-world networks to cardano-playground"),(0,n.kt)("li",{parentName:"ul"},"Sops-secrets dependent systemd services were fixed to ensure restart upon sops secrets changes"),(0,n.kt)("li",{parentName:"ul"},"Db chain utilities (db-{analyser,synthesizer,truncater}) had -ng variants created to operate on both release and pre-release network chains"),(0,n.kt)("li",{parentName:"ul"},"The profile-cardano-postgres nixos module received preset variables and prepared statements via pgsqlrc for faster and easier analysis of network state"),(0,n.kt)("li",{parentName:"ul"},"The flakeModule jobs now has support for the cardano-cli era command in each of the job scripts by passing the $ERA_CMD variable"),(0,n.kt)("li",{parentName:"ul"},"Default cardano-node-ng package is now 8.6.0-pre, dbsync on sanchonet is now sancho-2-2-0"),(0,n.kt)("li",{parentName:"ul"},"For scripts using a nix-shell shebang, the cardano-parts devShell menu can be disabled from injecting itself into stdout by passing NOMENU=true"),(0,n.kt)("li",{parentName:"ul"},"Template updates include:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Adds optional TF AZ declaration on ec2 resources"),(0,n.kt)("li",{parentName:"ul"},"Adds a cardano node p2p dashboard to the grafana cloud stack"),(0,n.kt)("li",{parentName:"ul"},"Adds a dbsync pool performance analysis query"),(0,n.kt)("li",{parentName:"ul"},"Updates python distribute and delegation scripts from world for playground compatibility"),(0,n.kt)("li",{parentName:"ul"},"Starts a python script lib to reduce shared code among the python scripts"),(0,n.kt)("li",{parentName:"ul"},"Several justfile improvements and new recipes"))),(0,n.kt)("li",{parentName:"ul"},"More detail is available in the PR description"))),(0,n.kt)("li",{parentName:"ul"},"Update submit action script for 8.6 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/19"},"cardano-parts-pull-19")),(0,n.kt)("li",{parentName:"ul"},"Update scripts for 8.6.0-pre ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/21"},"cardano-parts-pull-21"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Fixes subcommand names based on ERA_CMD"),(0,n.kt)("li",{parentName:"ul"},"Adds deposits to some commands"),(0,n.kt)("li",{parentName:"ul"},"Separates CC cold/hot key generation as host authorization has to occur after action is approved"),(0,n.kt)("li",{parentName:"ul"},"CC voting enabled in vote job")))),(0,n.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Migration PR to largely complete the network migration from cardano-world to cardano-playground: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/5"},"cardano-playground-pull-5"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Adds re-spun private chain network"),(0,n.kt)("li",{parentName:"ul"},"Migrates shelley-qa chain network from world"),(0,n.kt)("li",{parentName:"ul"},"Justfile improvements and new recipes"),(0,n.kt)("li",{parentName:"ul"},"Improve concurrent environment chain support"),(0,n.kt)("li",{parentName:"ul"},"More detail is available in the PR description")))),(0,n.kt)("h3",{id:"iohk-nix"},"Iohk-nix"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Migration to play: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/iohk-nix/pull/561"},"iohk-nix-pull-561"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Migrate cardano-lib networks from world.dev.cardano.org to play.dev.cardano.org"),(0,n.kt)("li",{parentName:"ul"},"Remove deprecated cardano-lib p2p network environment"),(0,n.kt)("li",{parentName:"ul"},"Update sanchonet chain with respin changes"),(0,n.kt)("li",{parentName:"ul"},"Update private chain with respin changes"),(0,n.kt)("li",{parentName:"ul"},"Bump private and shelley-qa chains to sanchonet equivalent conway genesis"),(0,n.kt)("li",{parentName:"ul"},"Bump preview, preprod chains to sanchonet equivalent conway genesis for node 8.6.0-pre pre-release testing")))),(0,n.kt)("h3",{id:"sanchonet-demo"},"Sanchonet-demo"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update for cardano-node 8.6.0-pre demo: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/sanchonet-demo/commit/b54da94057ac0949421918208fd04795d029447d"},"sanchonet-demo-commit"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f302e248.a3237b42.js b/assets/js/f302e248.a3237b42.js new file mode 100644 index 0000000000..ca92391e6c --- /dev/null +++ b/assets/js/f302e248.a3237b42.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[83214],{3905:(t,e,a)=>{a.d(e,{Zo:()=>c,kt:()=>s});var n=a(67294);function o(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?r(Object(a),!0).forEach((function(e){o(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function i(t,e){if(null==t)return{};var a,n,o=function(t,e){if(null==t)return{};var a,n,o={},r=Object.keys(t);for(n=0;n<r.length;n++)a=r[n],e.indexOf(a)>=0||(o[a]=t[a]);return o}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n<r.length;n++)a=r[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(o[a]=t[a])}return o}var p=n.createContext({}),u=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},c=function(t){var e=u(t.components);return n.createElement(p.Provider,{value:e},t.children)},d="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var a=t.components,o=t.mdxType,r=t.originalType,p=t.parentName,c=i(t,["components","mdxType","originalType","parentName"]),d=u(a),h=o,s=d["".concat(p,".").concat(h)]||d[h]||m[h]||r;return a?n.createElement(s,l(l({ref:e},c),{},{components:a})):n.createElement(s,l({ref:e},c))}));function s(t,e){var a=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var r=a.length,l=new Array(r);l[0]=h;var i={};for(var p in e)hasOwnProperty.call(e,p)&&(i[p]=e[p]);i.originalType=t,i[d]="string"==typeof t?t:o,l[1]=i;for(var u=2;u<r;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},31079:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>r,metadata:()=>i,toc:()=>u});var n=a(87462),o=(a(67294),a(3905));const r={title:"Node API & CLI Team Update",slug:"2023-02-22-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2023-02-22-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-22-node-cli-api.md",source:"@site/blog/2023-02-22-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-02-22T00:00:00.000Z",formattedDate:"February 22, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.385,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-02-22-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-02-22-consensus"},nextItem:{title:"DB-sync Team Update",permalink:"/2023-02-21-db-sync"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Completed",id:"completed",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"In Progress",id:"in-progress",level:2},{value:"Documentation",id:"documentation",level:2},{value:"CI & project mainteance",id:"ci--project-mainteance",level:2},{value:"cardano-cli",id:"cardano-cli-1",level:3},{value:"cardano-api",id:"cardano-api-1",level:3},{value:"cardano-node",id:"cardano-node-1",level:3},{value:"cardano-testnet",id:"cardano-testnet-1",level:3}],c={toc:u},d="wrapper";function m(t){let{components:e,...a}=t;return(0,o.kt)(d,(0,n.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"2023-02-22---2023-03-07"},"2023-02-22 - 2023-03-07"),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"General bug fixes "),(0,o.kt)("h2",{id:"completed"},"Completed"),(0,o.kt)("h3",{id:"docs"},"docs"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4882"},"Fix some markdown links")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4881"},"Update changelog with PR4788 changes"))),(0,o.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,o.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,o.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4761"},"Fix bug in hash computation in cardano-cli genesis create-cardano")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4636"},"Cleanup exports of cardano-testnet")),(0,o.kt)("li",{parentName:"ul"},"[BUGFIX]"," - ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4537"},"Stop the cli from changing the bytes in user-supplied data")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4625"},"Handle pipes in cardano-cli")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4753"},"Export SubmitResult from Cardano.Api"))),(0,o.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4901"},"Remove pattern Tx"))),(0,o.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4263"},"Stop running CI when the only changes are to docs"))),(0,o.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,o.kt)("h2",{id:"in-progress"},"In Progress"),(0,o.kt)("h2",{id:"documentation"},"Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4949"},"Fix path to mkfiles.sh script in documentation"))),(0,o.kt)("h2",{id:"ci--project-mainteance"},"CI & project mainteance"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4932"},"New build complete job")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4764"},"Update ouroboros-network"))),(0,o.kt)("h3",{id:"cardano-cli-1"},"cardano-cli"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3819"},"Debug output for transaction submit")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4713"},"Fully remove the cli intermediate TxBody format")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4659"},"Render consistent plutus script failure output")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4666"},"Read network ID from environment")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4647"},"CLI option to append additional signatures to a transactions")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"Cardano ping")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4777"},"Better error message for query utxo on oops")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4910"},"New --node-socket-path cli option")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4909"},"Fix qKesKesKeyExpiry to not always be null")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4880"},"Detect invalid counter and certificate")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4823"},"Straight line code for tx commands")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4664"},"New cardano-cli ping command.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4655"},"Move cardano-ping from ouroboros-network to cardano-node project"))),(0,o.kt)("h3",{id:"cardano-api-1"},"cardano-api"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4450"},"Auto-balance multiasset transactions")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4763"},"Remove simple script distinction")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4941"},"Combinators for TxBodyCon\u017btent and related types")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4903"},"Reduce number of calls to toLedgerPParams")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4825"},"Better error message for query utxo without oops 2"))),(0,o.kt)("h3",{id:"cardano-node-1"},"cardano-node"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4911"},"Less verbose node-to-client and node-to-node version logging"))),(0,o.kt)("h3",{id:"cardano-testnet-1"},"cardano-testnet"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4845"},"Use Haskell variables for passing values")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4879"},"Re-enable kes-period-info test")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/3783"},"Transaction debug script command"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f3b8b9d5.3f001e31.js b/assets/js/f3b8b9d5.3f001e31.js new file mode 100644 index 0000000000..238a7039ca --- /dev/null +++ b/assets/js/f3b8b9d5.3f001e31.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6191],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=a,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||i;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var p=2;p<i;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},90964:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const i={title:"Mithril Team Update",slug:"2024-01-31-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-01-31-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-31-mithril.md",source:"@site/blog/2024-01-31-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-01-31T00:00:00.000Z",formattedDate:"January 31, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.22,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-01-31-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-01-31-ledger"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-01-31-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"This week, the Mithril team continued implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the signature of the transactions set and implemented the aggregator route, responsible for generating proofs of membership for a list of Cardano transactions. Additionally, they finalized the manual workflow to test the NPM client package in the CI and enhanced the resilience of computing the list of immutable files in a Cardano node database. The team also expanded the coverage of end-to-end tests in the CI to accommodate multiple versions of the Cardano node and various hard fork scenarios."),(0,a.kt)("p",null,"Finally, they completed the enhanced node communications between Mithril and Cardano for retrieving UTXOs and kept working on the threat modeling and risk analysis for P2P networking."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Light Wallet: Compute message to sign for ",(0,a.kt)("inlineCode",{parentName:"strong"},"CardanoTransactions"))," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1436"},"#1436")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Light Wallet: Implement proof generation route in the aggregator")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1467"},"#1467")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Enhance ImmutableFile list computation resilience")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1450"},"#1450")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Enhance end to end test for Cardano hard forks")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1464"},"#1464")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("strong",{parentName:"li"},"Add WASM client step in Mithril Client multi-platform test")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1408"},"#1408")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Create a test network on ",(0,a.kt)("inlineCode",{parentName:"strong"},"SanchoNet"))," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1173"},"#1173")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Enhance Mithril/Cardano node communication")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1315"},"#1315")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("strong",{parentName:"li"},"Generate automatic documentation for CLIs")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1471"},"#1471"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f3c06362.489c9c7c.js b/assets/js/f3c06362.489c9c7c.js new file mode 100644 index 0000000000..6538a70bf8 --- /dev/null +++ b/assets/js/f3c06362.489c9c7c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[34985],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(n),m=r,d=p["".concat(l,".").concat(m)]||p[m]||h[m]||o;return n?a.createElement(d,i(i({ref:t},c),{},{components:n})):a.createElement(d,i({ref:t},c))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:r,i[1]=s;for(var u=2;u<o;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},22460:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Q2 2023 Update",slug:"2023-Q2-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/quarterly/2023-Q2-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/quarterly/2023-Q2-consensus.md",source:"@site/quarterly/2023-Q2-consensus.md",title:"Consensus Q2 2023 Update",description:"2023-04 -- 2023-06",date:"2024-07-17T12:35:56.000Z",formattedDate:"July 17, 2024",tags:[{label:"consensus",permalink:"/quarterly/tags/consensus"}],readingTime:4.47,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Q2 2023 Update",slug:"2023-Q2-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},nextItem:{title:"Network Q2 2023 Update",permalink:"/quarterly/2023-Q2-network"}},l={authorsImageUrls:[void 0]},u=[{value:"2023-04 -- 2023-06",id:"2023-04----2023-06",level:2},{value:"Main achievements",id:"main-achievements",level:3},{value:"UTxO HD",id:"utxo-hd",level:4},{value:"Genesis",id:"genesis",level:4},{value:"Support",id:"support",level:4},{value:"Technical debt",id:"technical-debt",level:4},{value:"Fostering collaboration",id:"fostering-collaboration",level:4},{value:"Next steps",id:"next-steps",level:3},{value:"UTxO HD",id:"utxo-hd-1",level:4},{value:"Genesis",id:"genesis-1",level:4}],c={toc:u},p="wrapper";function h(e){let{components:t,...o}=e;return(0,r.kt)(p,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"2023-04----2023-06"},"2023-04 -- 2023-06"),(0,r.kt)("h3",{id:"main-achievements"},"Main achievements"),(0,r.kt)("h4",{id:"utxo-hd"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We finished a major prototype refactoring, which includes:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"A better and finer grained DB lock mechanism."),(0,r.kt)("li",{parentName:"ul"},"Elimination of race conditions."),(0,r.kt)("li",{parentName:"ul"},"Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance."),(0,r.kt)("li",{parentName:"ul"},"Architectural simplifications and performance improvements."))),(0,r.kt)("li",{parentName:"ul"},"We implemented a new package to support db-sync integration with UTxO-HD."),(0,r.kt)("li",{parentName:"ul"},"We ran another set of ad-hoc benchmarks:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We uncovered a performance regression on the Network component when using ",(0,r.kt)("inlineCode",{parentName:"li"},"GHC-9.2/9.4"),"."),(0,r.kt)("li",{parentName:"ul"},"The synchronization and replay speed are as expected."),(0,r.kt)("li",{parentName:"ul"},"However, we uncovered memory consumption issues (see figure below).",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The in-memory backend is consuming more memory than the baseline."),(0,r.kt)("li",{parentName:"ul"},"The LMDB backend shows an unexpected memory usage peak."),(0,r.kt)("li",{parentName:"ul"},"Investigation on these issues is ongoing."))))),(0,r.kt)("li",{parentName:"ul"},"We integrated the latest changes in ",(0,r.kt)("inlineCode",{parentName:"li"},"main")," branch.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This required a re-design of the mempool to include the mempool fairness\nimprovement.")))),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(49718).Z,width:"2500",height:"1700"})),(0,r.kt)("h4",{id:"genesis"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This particular question was not anticipated when the Q2 PI was planned."),(0,r.kt)("li",{parentName:"ul"},"As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized."),(0,r.kt)("li",{parentName:"ul"},"That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package."))),(0,r.kt)("li",{parentName:"ul"},"The IOG Researchers' feedback on the design was very valuable. It had two primary effects."),(0,r.kt)("li",{parentName:"ul"},'Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated."),(0,r.kt)("li",{parentName:"ul"},"The additional design complexity is relatively small."))),(0,r.kt)("li",{parentName:"ul"},"Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era."),(0,r.kt)("li",{parentName:"ul"},"All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras."),(0,r.kt)("li",{parentName:"ul"},"Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later."),(0,r.kt)("li",{parentName:"ul"},"The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks."))),(0,r.kt)("li",{parentName:"ul"},"Relevant questions that the IOG Researchers are still assessing.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"These do not block the Genesis implementation, but do affect the ultimate values of specific parameters."),(0,r.kt)("li",{parentName:"ul"},"Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?"),(0,r.kt)("li",{parentName:"ul"},"Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?")))),(0,r.kt)("h4",{id:"support"},"Support"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We performed an analysis on number of file descriptors used by Consensus, this\ninformation can be used by the node operators to check if the number of file\ndescriptors they want to support are enough, thus improving the user (eg node\noperator) experience."),(0,r.kt)("li",{parentName:"ul"},"We implemented a mempool fairness improvement, by which transactions are\nguaranteed to be processed irrespective of their size.")),(0,r.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We fixed a bug in followers logic, which was discovered by our ",(0,r.kt)("inlineCode",{parentName:"li"},"QuickCheck"),"\nproperty tests."),(0,r.kt)("li",{parentName:"ul"},"We created an ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/68"},"immutable DB\nserver"),". This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results."),(0,r.kt)("li",{parentName:"ul"},"We created a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/70"},(0,r.kt)("inlineCode",{parentName:"a"},"db-truncater"))," tool, which can be used in disaster recovery and benchmarking scenarios."),(0,r.kt)("li",{parentName:"ul"},"We created a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/161"},"benchmarks comparison tool")," that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance ",(0,r.kt)("em",{parentName:"li"},"improvements")," introduced by the Ledger team in version ",(0,r.kt)("inlineCode",{parentName:"li"},"0.6.0.0")," of Consensus wrt version ",(0,r.kt)("inlineCode",{parentName:"li"},"0.5.0.0"),".")),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(23425).Z,width:"1840",height:"1372"})),(0,r.kt)("h4",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We released ",(0,r.kt)("inlineCode",{parentName:"li"},"fs-sim")," as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project."),(0,r.kt)("li",{parentName:"ul"},"We migrated the consensus code to a ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus"},"new repository"),", splitting\nit from the ",(0,r.kt)("inlineCode",{parentName:"li"},"ouroboros-network")," repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases)."),(0,r.kt)("li",{parentName:"ul"},"We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users)."),(0,r.kt)("li",{parentName:"ul"},"We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.")),(0,r.kt)("h3",{id:"next-steps"},"Next steps"),(0,r.kt)("h4",{id:"utxo-hd-1"},"UTxO HD"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/28"},"get UTxO-HD ready for handover"),".")),(0,r.kt)("h4",{id:"genesis-1"},"Genesis"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.")))}h.isMDXComponent=!0},23425:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2023-Q2-beacon-graph-ded65e814bfe6d927faa1c5c66bbbfad.png"},49718:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks-74f9d76c2602f09652f584cc4d6a0962.png"}}]); \ No newline at end of file diff --git a/assets/js/f4174027.4c5764c6.js b/assets/js/f4174027.4c5764c6.js new file mode 100644 index 0000000000..74c8a90b28 --- /dev/null +++ b/assets/js/f4174027.4c5764c6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[63643],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),c=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),h=n,m=p["".concat(u,".").concat(h)]||p[h]||s[h]||o;return a?r.createElement(m,i(i({ref:t},d),{},{components:a})):r.createElement(m,i({ref:t},d))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var c=2;c<o;c++)i[c]=a[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}h.displayName="MDXCreateElement"},27362:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-04-12-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-04-12-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-12-hydra.md",source:"@site/blog/2024-04-12-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2024-04-12T00:00:00.000Z",formattedDate:"April 12, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.76,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-04-12-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2024-04-15-node-cli-api"},nextItem:{title:"SRE Team Update",permalink:"/2024-04-12-sre"}},u={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],d={toc:c},p="wrapper";function s(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team fixed a bug in the smoke test and refactored to allow network functions to distinguish between inbound and outbound. The team also prepared a cardano-api 8.44 branch for cardano-node 8.10 once it gets released. They also contributed to the ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-ledger-api")," by undeprecating and exposing ",(0,n.kt)("inlineCode",{parentName:"p"},"redeemerPointer"),"."),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Fix FaucetFailedToBuildTx in smoke test ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1384"},"#","1384")),(0,n.kt)("li",{parentName:"ul"},"Refactoring to allow network functions to distinguish between inbound and outbound"),(0,n.kt)("li",{parentName:"ul"},"Prepared a cardano-api 8.44 branch, but got blocked \ud83d\udc47"),(0,n.kt)("li",{parentName:"ul"},"Undeprecate redeemerPointer and expose it in ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-ledger-api")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4259"},"cardano-ledger#4259"))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete new /commit endpoint interface ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1350"},"#","1350")),(0,n.kt)("li",{parentName:"ul"},"Refactor to allow NodeLogic to pass through connection messages, to unblock \ud83d\udc47"),(0,n.kt)("li",{parentName:"ul"},"Use versioned handshake when connecting hydra-nodes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1010"},"#","1010")),(0,n.kt)("li",{parentName:"ul"},"Test all combinations of decrement/close/fanout for ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1057"},"#","1057")),(0,n.kt)("li",{parentName:"ul"},"Meet with tech writers about the landing page")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f452efc5.38eb58ff.js b/assets/js/f452efc5.38eb58ff.js new file mode 100644 index 0000000000..88b097ec12 --- /dev/null +++ b/assets/js/f452efc5.38eb58ff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[44281],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=c(n),d=a,f=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return n?r.createElement(f,i(i({ref:t},s),{},{components:n})):r.createElement(f,i({ref:t},s))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},89556:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Goedel Team Update",slug:"2023-07-07-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-07-07-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-07-goedel.md",source:"@site/blog/2023-07-07-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-07-07T00:00:00.000Z",formattedDate:"July 7, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.42,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-07-07-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-07-07-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-07-07-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],s={toc:c},m="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This sprint the teams have been working on finalising their ICE papers\nfor publication in EPTCS, formalising concensus, and investigating chain\nsync."),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Preparing final versions of ICE papers")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Reviewing the chain sync design and documentation")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Refactoring the thorn calculus")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"First draft of Praos specification")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Developing bounding factors on timeouts"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f4548430.6f8c794d.js b/assets/js/f4548430.6f8c794d.js new file mode 100644 index 0000000000..0a2e84f5b3 --- /dev/null +++ b/assets/js/f4548430.6f8c794d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[93789],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||i;return r?a.createElement(d,o(o({ref:t},u),{},{components:r})):a.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<i;p++)o[p]=r[p];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},84374:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const i={title:"Mithril Team Update",slug:"2023-09-27-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-27-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-27-mithril.md",source:"@site/blog/2023-09-27-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-09-27T00:00:00.000Z",formattedDate:"September 27, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.975,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-09-27-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-09-29-sre"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-09-26-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team has released a new distribution ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2337.0"},(0,n.kt)("inlineCode",{parentName:"a"},"2337.0")),", which includes the following enhancements: support for ",(0,n.kt)("inlineCode",{parentName:"p"},"zstandard")," compression of snapshot archives, support for the Cardano node version in snapshot metadata, and support for recording snapshot download statistics in the aggregator."),(0,n.kt)("p",null,"They also completed the refactoring and standardization of the errors in the Mithril nodes and published an ",(0,n.kt)("a",{parentName:"p",href:"https://mithril.network/doc/adr/6"},"Architectural decision record")," on the documentation website. Additionally, they kept working on adding Cloudflare protection to the infrastructure."),(0,n.kt)("p",null,"Finally, the team fixed a performance issue on the stress test tool for the aggregator and made some improvements to the documentation for SPOs."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Release new ",(0,n.kt)("inlineCode",{parentName:"strong"},"2337")," distribution")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1219"},"#1219")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Errors refactoring")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/798"},"#798")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Client traffic creates performance bottleneck in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1207"},"#1207")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Record statistics about the downloaded snapshot in the aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1127"},"#1127")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Create a SPO checklist for KES keys update")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1267"},"#1267")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Spike: Run client in browser WASM PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1254"},"#1254")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Benchmark aggregator performances")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1220"},"#1220")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Activate Cloudflare protection of infrastructure")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1230"},"#1230"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f480ab7b.d19cfde3.js b/assets/js/f480ab7b.d19cfde3.js new file mode 100644 index 0000000000..975c818f64 --- /dev/null +++ b/assets/js/f480ab7b.d19cfde3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[87158],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>h});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(t),u=a,h=d["".concat(s,".").concat(u)]||d[u]||m[u]||o;return t?r.createElement(h,i(i({ref:n},p),{},{components:t})):r.createElement(h,i({ref:n},p))}));function h(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=u;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=t[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}u.displayName="MDXCreateElement"},78326:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=t(87462),a=(t(67294),t(3905));const o={title:"Performance & Tracing Update",slug:"2024-02-16-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-02-16-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-16-performance-and-tracing.md",source:"@site/blog/2024-02-16-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-02-16T00:00:00.000Z",formattedDate:"February 16, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.97,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-02-16-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-02-16-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2024-02-16-sre"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Performance",id:"performance",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],p={toc:c},d="wrapper";function m(e){let{components:n,...t}=e;return(0,a.kt)(d,(0,r.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Release benchmarks for ",(0,a.kt)("inlineCode",{parentName:"li"},"8.8.0")," have been performed; we created a local repro for a residual issue."),(0,a.kt)("li",{parentName:"ul"},"Performance: We've implemented and benchmarked two candidates investigating residual issues with GHC9.6."),(0,a.kt)("li",{parentName:"ul"},"Development: Work on the reporting pipeline is ongoing; integration of ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep"),"s into benchmarking workloads has begun."),(0,a.kt)("li",{parentName:"ul"},"Workbench: Implementation of high-level profile definition is ongoing. "),(0,a.kt)("li",{parentName:"ul"},"Tracing: The handle registry feature for ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," is completed; currently in testing."),(0,a.kt)("li",{parentName:"ul"},"Nomad cluster: Increased robustness of deployment and run monitoring has been merged; work on garbage collection has started.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed a full set of release benchmarks for Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.8.0-pre"),". Comparing with release ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2"),", we could\nnot detect any performance risks for that version. We even saw a slight improvement in block fetch related metrics, which led to slightly improved block diffusion times. "),(0,a.kt)("p",null,"Furthermore, we've managed to boil down a complex residual performance issue measured on the cluster to a local reproduction. This enables our DevX team, with highly specialized knowledge of GHC's compiler internals, to\ninvestigate each step in code generation and optimzation, and independently observe the effects of code changes to the affected component."),(0,a.kt)("h3",{id:"performance"},"Performance"),(0,a.kt)("p",null,"Work on the remaining performance issue with GHC9.6 led us to produce two candidates based on Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.2"),", benchmarking\nthe implacations local small changes have for GHC9.6's optimizer. Though those candidates did not uncover the\nissue's root cause, they were able to disprove a hypothesis as to its nature, and quantify the performance impact of said small changes."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.8.0")," comes with capabilities to inject ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s and ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep")," delegations into Conway genesis. We've started work\non integrating those into our automations, and setting sensible values for benchmarking. The aforementioned\ndelegations representing a new data structure in the Conway ledger, we aim to run\nexisting workflows extended with varying sizes of that new structure, measuring their pressure on ledger queries and operations."),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"The performance workbench relies heavily on shell scripting and manipulating JSON data for a great part of its features. This approach\nis very effective for quick experimentation, but lacks in verifiable properties as well as accessibility for new users of workbench."),(0,a.kt)("p",null,"After the successful Haskell port of cluster topology creation, and verification, we're currently applying\nthe same model in porting the entirety of benchmarking profiles to Haskell. The obvious gains are widening workbench's\naudience both for users and developers, as well as implementing a principled approach to all workbench data structures and transformations. "),(0,a.kt)("p",null,"At the same time, we're porting workbench's many options to create fine-tuned geneses, following the same approach."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"We've outfitted ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer")," with a handle registry feature that lets the service work on file handles internally, rather than opening and closing files for each operation. The feature is completed; at the moment we're adding\nappropriate test cases to the service's test suite for validation of its behaviour, and for safeguarding future development."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"Several improvements for our cluster backend have been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),", increasing its overall robustness. We can now safely handle some corner cases where Nomad processes unexpectedly exited, or deployments errored out. Furthermore, an ongoing\nrun can now reliably survive a temporary loss of heartbeat connection between Nomad client and server, without\nthe benchmarking metrics being affected. "),(0,a.kt)("p",null,"Currently, we're working on a reliable automation of garbage collecting old ",(0,a.kt)("inlineCode",{parentName:"p"},"nix")," store entries on the cluster machines, as they fill up disk space. The design has to consider both not interfering with ongoing benchmarks, and\navoiding deployment overhead caused by cleaning the store too frequently."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f48535bf.13521afe.js b/assets/js/f48535bf.13521afe.js new file mode 100644 index 0000000000..fe0da9d7c7 --- /dev/null +++ b/assets/js/f48535bf.13521afe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[45821],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},h=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),p=s(r),c=n,d=p["".concat(u,".").concat(c)]||p[c]||m[c]||i;return r?a.createElement(d,o(o({ref:t},h),{},{components:r})):a.createElement(d,o({ref:t},h))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var s=2;s<i;s++)o[s]=r[s];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},99684:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2023-06-16-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-06-16-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-16-hydra.md",source:"@site/blog/2023-06-16-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-06-16T00:00:00.000Z",formattedDate:"June 16, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.815,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-06-16-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"SRE Team Update",permalink:"/2023-06-23-sre"},nextItem:{title:"Mithril Team Update",permalink:"/2023-06-15-mithril"}},u={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:s},p="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,a.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team focused their efforts on continuing to investigate and\nexperiment operating a head on mainnet. They collected several bugs and issues\nand worked on fixing them. Now the team is soon to release a new version,\n0.11.0, which comes with a lot of improvements and bug fixes."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Restored and fixed a bug which stalled our head on mainnet ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/927"},"#927")),(0,n.kt)("li",{parentName:"ul"},"Solved one user issue ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/914"},"#914")),(0,n.kt)("li",{parentName:"ul"},"Reduced significantly local state size and logs by removing the full scripts from it ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/928"},"#928")),(0,n.kt)("li",{parentName:"ul"},"(pending review) Reduced snapshot size in the API, by only including tx ids ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/922"},"#922"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"New release 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"Monthly report & review meeting."),(0,n.kt)("li",{parentName:"ul"},"Fix some minor bugs discovered when operating our head on mainnet"),(0,n.kt)("li",{parentName:"ul"},"Complete journey for external commits using multiple script UTxOs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/903"},"#903")),(0,n.kt)("li",{parentName:"ul"},"Publish benchmarks and provide regular benchmarks for Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/186"},"#186"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f5063a59.14502a56.js b/assets/js/f5063a59.14502a56.js new file mode 100644 index 0000000000..05ee88bc13 --- /dev/null +++ b/assets/js/f5063a59.14502a56.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[57922],{86038:e=>{e.exports=JSON.parse('{"permalink":"/page/42","page":42,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/41","nextPage":"/page/43","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/f51bb76d.f3863087.js b/assets/js/f51bb76d.f3863087.js new file mode 100644 index 0000000000..072e347d0a --- /dev/null +++ b/assets/js/f51bb76d.f3863087.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[12626],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>g});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},m=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=s(n),u=r,g=d["".concat(c,".").concat(u)]||d[u]||p[u]||i;return n?a.createElement(g,o(o({ref:t},m),{},{components:n})):a.createElement(g,o({ref:t},m))}));function g(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:r,o[1]=l;for(var s=2;s<i;s++)o[s]=n[s];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},21772:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));const i={title:"Performance & tracing update",slug:"2023-03-08-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o="High level summary",l={permalink:"/2023-03-08-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-08-performance-and-tracing.md",source:"@site/blog/2023-03-08-performance-and-tracing.md",title:"Performance & tracing update",description:"* Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.",date:"2023-03-08T00:00:00.000Z",formattedDate:"March 8, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:1.805,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & tracing update",slug:"2023-03-08-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-03-08-node-cli-api"},nextItem:{title:"Crypto Team Update",permalink:"/2023-03-03-crypto"}},c={authorsImageUrls:[void 0]},s=[{value:"1.35.6 release",id:"1356-release",level:3},{value:"Analysis pipeline",id:"analysis-pipeline",level:3},{value:"Open Sourcing",id:"open-sourcing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:s},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate."),(0,r.kt)("li",{parentName:"ul"},"New tracing: Backwards compatibility with legacy tracer nomenclature is being implemented to smoothe the transition for end users."),(0,r.kt)("li",{parentName:"ul"},"Analysis pipeline: A major refinement of benchmarking metrics has been realized, along with a structural improvementents regarding metrics denomination."),(0,r.kt)("li",{parentName:"ul"},"Open Sourcing: Work on going live with our benchmarking data has begun, as well as creating an API demo and documentation."),(0,r.kt)("li",{parentName:"ul"},"Nomad backend: The backend was adapted to a major refactoring in workbench and is being equipped with a nomad-exec based task driver.")),(0,r.kt)("h1",{id:"performance"},"Performance"),(0,r.kt)("h3",{id:"1356-release"},"1.35.6 release"),(0,r.kt)("p",null,"Benchmarking the second release candidate for 1.35.6 could again attest to a perfectly clean bill of health."),(0,r.kt)("h3",{id:"analysis-pipeline"},"Analysis pipeline"),(0,r.kt)("p",null,"Our analysis pipeline has seen an introduction of additional metrics, especially when focusing on the block producing node. They allow us to better\ndifferentiate the timing of ledger ticking and mempool snapshotting in the forging loop - a feature that promises much deeper insight into UTxO-HD performance.\nAdditionally, a restructuring of metrics names has been undertaken along with improvements in their data dictionary; a measure that will make benchmarking\ndata more easily accessible."),(0,r.kt)("h3",{id:"open-sourcing"},"Open Sourcing"),(0,r.kt)("p",null,"As a prerequisite for going live with our benchmarking data, we're currently working on consolidation of existing analyses, such as to provide a common foundation when accessing them externally. Additionally, we've begun working on a small visualization demo and interactive API documentation. Those will enable\nthird parties to make use of that data much more easily, by having reliable guidelines and a working example."),(0,r.kt)("h1",{id:"tracing"},"Tracing"),(0,r.kt)("p",null,"The new tracing system is being outfitted with a comprehensive mapping of its structure to the legacy tracer nomenclature. This feature will make\nthe switch to the new system as smooth as possible for end users, allowing them to gradually adapt their tooling without breaking any functionality in the process."),(0,r.kt)("h1",{id:"infrastructure"},"Infrastructure"),(0,r.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,r.kt)("p",null,"The Nomad backend was adapted to the latest major refactoring in workbench. Work was done on making stateful Nomad clients more autonomous, which will greatly facilitate any automation building on that backend. A task driver based on nomad-exec is currently being implemented."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f522921c.0f24624c.js b/assets/js/f522921c.0f24624c.js new file mode 100644 index 0000000000..5291a6bf20 --- /dev/null +++ b/assets/js/f522921c.0f24624c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[75556],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function p(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),s=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),h=s(a),d=n,c=h["".concat(l,".").concat(d)]||h[d]||m[d]||i;return a?r.createElement(c,o(o({ref:t},u),{},{components:a})):r.createElement(c,o({ref:t},u))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[h]="string"==typeof e?e:n,o[1]=p;for(var s=2;s<i;s++)o[s]=a[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},55660:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>p,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-06-02-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},o=void 0,p={permalink:"/2023-06-02-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-02-hydra.md",source:"@site/blog/2023-06-02-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-06-02T00:00:00.000Z",formattedDate:"June 2, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.215,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-06-02-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-06-07-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2023-06-01-mithril"}},l={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:s},h="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team has put their effort on finding solutions on many\ndifferent problems, such as our broken head on mainnet\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/897"},"#897"),", our fragile monthly\nreport publications on the website and implementing ","\u201c","Option A","\u201d"," for\nexternal commits ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215"),".\nAlthough most of these items are still open, huge progress has been made. To\naccelerate the investigation, they improved their logging to give more precise\nerrors when a transition requirement fails, and to reduce duplication on effets\nlogged content. Last but not least, the team is exploring formal methods and\nattended a workshop on formalizing cryptographic protocols in Agda."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Continued investigating broken head and opened an issue to keep track ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/897"},"#897"),"."),(0,n.kt)("p",{parentName:"li"},"As part of this issue, improvements were made to the node logs:"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Give a precise error when a transition requirement fails ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/pull/895"},"#895"),".")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Reduce duplication for effects logged content by using sequential eventId and effectId pair ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/pull/896"},"#896"),".")))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Fixed references in the hydra specification ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/pull/893"},"#893"),".")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Attended a workshop on formal methods and crypto in Agda."))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Investigate and re-open our team-internal head on mainnet."),(0,n.kt)("li",{parentName:"ul"},"Improve and provide regular benchmarks for Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/186"},"#186"),"."),(0,n.kt)("li",{parentName:"ul"},"Complete journey for external commits implementing ","\u201c","Option A","\u201d"," and start implementing ","\u201c","Option B","\u201d"," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215"),"."),(0,n.kt)("li",{parentName:"ul"},"Authenticate network messages ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/727"},"#727"),"."),(0,n.kt)("li",{parentName:"ul"},"Add hydra as tool to developr platform ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/872"},"#872"),"."),(0,n.kt)("li",{parentName:"ul"},"Fix monthly report publication on docs website.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f5233174.14fae1c8.js b/assets/js/f5233174.14fae1c8.js new file mode 100644 index 0000000000..6050ea4e46 --- /dev/null +++ b/assets/js/f5233174.14fae1c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54419],{50386:e=>{e.exports=JSON.parse('{"permalink":"/tags/mithril/page/13","page":13,"postsPerPage":5,"totalPages":13,"totalCount":63,"previousPage":"/tags/mithril/page/12","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/f530b85c.c54418bb.js b/assets/js/f530b85c.c54418bb.js new file mode 100644 index 0000000000..18cb881b5a --- /dev/null +++ b/assets/js/f530b85c.c54418bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[49605],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(a),s=r,h=d["".concat(p,".").concat(s)]||d[s]||m[s]||o;return a?n.createElement(h,l(l({ref:t},c),{},{components:a})):n.createElement(h,l({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},35118:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const o={title:"Node API & CLI Team Update",slug:"2023-04-05-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},l="Node-Api-Cli Update",i={permalink:"/2023-04-05-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-04-05-node-cli-api.md",source:"@site/blog/2023-04-05-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-04-05T00:00:00.000Z",formattedDate:"April 5, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.315,hasTruncateMarker:!1,authors:[{name:"Jordan Millar",title:"Node Team Lead",url:"https://github.com/Jimbo4350",imageURL:"https://github.com/Jimbo4350.png",key:"Jimbo4350"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-04-05-node-cli-api",authors:"Jimbo4350",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-04-05-consensus"},nextItem:{title:"Performance & tracing update",permalink:"/2023-04-05-performance-and-tracing"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3},{value:"Developer experience",id:"developer-experience",level:3},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3}],c={toc:u},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-04-05---2023-04-19"},"2023-04-05 - 2023-04-19"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Introduce new governance commands create, answer and verify. This allows us to have onchain polls."),(0,r.kt)("li",{parentName:"ul"},"Begin making changes in cardano-api to accomodate for CIP-1694"),(0,r.kt)("li",{parentName:"ul"},"Rename ",(0,r.kt)("inlineCode",{parentName:"li"},"TestEnableDevelopmentHardForkEras")," to ",(0,r.kt)("inlineCode",{parentName:"li"},"ExperimentalHardForksEnabled")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"TestEnableDevelopmentNetworkProtocols")," to ",(0,r.kt)("inlineCode",{parentName:"li"},"ExperimentalProtocolsEnabled")),(0,r.kt)("li",{parentName:"ul"},"Various bug fixes and improvements ")),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"),(0,r.kt)("h3",{id:"developer-experience"},"Developer experience"),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5112"},"Add new interim governance commands: {create, answer, verify}-poll")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5061"},"Remove --stake-address option from stake-address build")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5059"},"Frozen callstack for checkTextEnvelopeFormat function")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5053"},"#5052 Remove reading protocol parameters from Shelley genesis file")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5046"},"Move parsers to reusable location")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4910"},"New --socket-path cli option")," ")),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5108"},"CIP-1694 make space for DRep certificates")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5105"},"File type to track the content and direction of files")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5087"},"Fix import warning")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5086"},"Expose UsingRawBytes et al types")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5085"},"Expose SerialiseAsRawBytesError in Cardano.Api")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5072"},"Introduce new AnyShelleyBasedEra type and simplify CDDL tests.")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5071"},"New genCardanoKeyWitness function")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5069"},"Replace roundtripCBOR with trippingCbor")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5064"},"Remove non-round-trippable value TxInsReferenceNone for babbage onwards in generator")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5063"},"Improve roundtrip functions to report annotations on callsite")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5057"},"Define Functor instance for FileError")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5049"},"Split serialisation from IO")," ")),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5115"},"Master build failure fixes")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5106"},"Allow renamed fields to exist if values the same")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5091"},"workbench: updates")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5084"},"Delete duplicate packages sort packages and imports")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4341"},"Rename TestEnableDevelopmentHardForkEras and TestEnableDevelopmentNetworkProtocols")," ")),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5110"},"Additional check for not-leader slots in LeadershipSchedule tests")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5099"},"Fix epochLength and securityParam to conform to the formula 10 * k / f")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5083"},"Ergonomic directory creation code in tests")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5036"},"Default Cardano.Testnet to NodeLoggingFormatAsJson")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5013"},"Integrate latest ledger dependencies"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f54e05ce.9df7ac37.js b/assets/js/f54e05ce.9df7ac37.js new file mode 100644 index 0000000000..b625501276 --- /dev/null +++ b/assets/js/f54e05ce.9df7ac37.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95514],{78938:e=>{e.exports=JSON.parse('{"permalink":"/page/2","page":2,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/","nextPage":"/page/3","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/f55d3e7a.b9277be2.js b/assets/js/f55d3e7a.b9277be2.js new file mode 100644 index 0000000000..5fbcd8f431 --- /dev/null +++ b/assets/js/f55d3e7a.b9277be2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[54193],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(r),y=o,m=c["".concat(s,".").concat(y)]||c[y]||d[y]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:o,i[1]=l;for(var u=2;u<a;u++)i[u]=r[u];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}y.displayName="MDXCreateElement"},78030:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(87462),o=(r(67294),r(3905));const a={sidebar_position:5},i="Deploy your site",l={unversionedId:"tutorial-basics/deploy-your-site",id:"tutorial-basics/deploy-your-site",title:"Deploy your site",description:"Docusaurus is a static-site-generator (also called Jamstack).",source:"@site/docs/tutorial-basics/deploy-your-site.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/deploy-your-site",permalink:"/docs/tutorial-basics/deploy-your-site",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"defaultSidebar",previous:{title:"Markdown Features",permalink:"/docs/tutorial-basics/markdown-features"},next:{title:"Congratulations!",permalink:"/docs/tutorial-basics/congratulations"}},s={},u=[{value:"Build your site",id:"build-your-site",level:2},{value:"Deploy your site",id:"deploy-your-site-1",level:2}],p={toc:u},c="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(c,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"deploy-your-site"},"Deploy your site"),(0,o.kt)("p",null,"Docusaurus is a ",(0,o.kt)("strong",{parentName:"p"},"static-site-generator")," (also called ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("a",{parentName:"strong",href:"https://jamstack.org/"},"Jamstack")),")."),(0,o.kt)("p",null,"It builds your site as simple ",(0,o.kt)("strong",{parentName:"p"},"static HTML, JavaScript and CSS files"),"."),(0,o.kt)("h2",{id:"build-your-site"},"Build your site"),(0,o.kt)("p",null,"Build your site ",(0,o.kt)("strong",{parentName:"p"},"for production"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"npm run build\n")),(0,o.kt)("p",null,"The static files are generated in the ",(0,o.kt)("inlineCode",{parentName:"p"},"build")," folder."),(0,o.kt)("h2",{id:"deploy-your-site-1"},"Deploy your site"),(0,o.kt)("p",null,"Test your production build locally:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"npm run serve\n")),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"build")," folder is now served at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:3000/"},"http://localhost:3000/"),"."),(0,o.kt)("p",null,"You can now deploy the ",(0,o.kt)("inlineCode",{parentName:"p"},"build")," folder ",(0,o.kt)("strong",{parentName:"p"},"almost anywhere")," easily, ",(0,o.kt)("strong",{parentName:"p"},"for free")," or very small cost (read the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("a",{parentName:"strong",href:"https://docusaurus.io/docs/deployment"},"Deployment Guide")),")."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f57ea8cf.0baa41e1.js b/assets/js/f57ea8cf.0baa41e1.js new file mode 100644 index 0000000000..b39673e2cd --- /dev/null +++ b/assets/js/f57ea8cf.0baa41e1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[29204],{13124:e=>{e.exports=JSON.parse('[{"label":"hydra","permalink":"/tags/hydra","count":79},{"label":"mithril","permalink":"/tags/mithril","count":63},{"label":"consensus","permalink":"/tags/consensus","count":45},{"label":"network","permalink":"/tags/network","count":35},{"label":"sre","permalink":"/tags/sre","count":29},{"label":"ledger","permalink":"/tags/ledger","count":44},{"label":"performance-tracing","permalink":"/tags/performance-tracing","count":34},{"label":"cli-api","permalink":"/tags/cli-api","count":39},{"label":"db-sync","permalink":"/tags/db-sync","count":16},{"label":"goedel","permalink":"/tags/goedel","count":23},{"label":"cip1694","permalink":"/tags/cip-1694","count":1},{"label":"security","permalink":"/tags/security","count":1},{"label":"crypto","permalink":"/tags/crypto","count":18},{"label":"incident","permalink":"/tags/incident","count":2},{"label":"devx","permalink":"/tags/devx","count":2},{"label":"system-test","permalink":"/tags/system-test","count":5},{"label":"release","permalink":"/tags/release","count":5},{"label":"open-source","permalink":"/tags/open-source","count":1},{"label":"embedding-quality","permalink":"/tags/embedding-quality","count":1}]')}}]); \ No newline at end of file diff --git a/assets/js/f58a543c.c21d6199.js b/assets/js/f58a543c.c21d6199.js new file mode 100644 index 0000000000..ead05874f6 --- /dev/null +++ b/assets/js/f58a543c.c21d6199.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65038],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),u=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),p=u(a),c=n,d=p["".concat(s,".").concat(c)]||p[c]||m[c]||i;return a?r.createElement(d,o(o({ref:t},h),{},{components:a})):r.createElement(d,o({ref:t},h))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var u=2;u<i;u++)o[u]=a[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}c.displayName="MDXCreateElement"},56282:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2024-01-19-hydra",authors:["abailly"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-01-19-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-19-hydra.md",source:"@site/blog/2024-01-19-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-01-19T00:00:00.000Z",formattedDate:"January 19, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.03,hasTruncateMarker:!1,authors:[{name:"Arnaud Bailly",title:"Head of Architecture, Cardano Scaling",url:"https://github.com/abailly",imageURL:"https://github.com/abailly.png",key:"abailly"}],frontMatter:{title:"Hydra Team Update",slug:"2024-01-19-hydra",authors:["abailly"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-01-22-network"},nextItem:{title:"SRE Team Update",permalink:"/2024-01-19-sre"}},s={authorsImageUrls:[void 0]},u=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],h={toc:u},p="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,'The team made good progress this week, with the release of version\n0.15.0 marking a milestone, along with the monthly review including\nboth Mithril and Hydra work. We addressed issues in smoke tests and\nwebsite publishing workflows, ensuring a more robust development\nenvironment, and along the way included more "dogfooding" through the\nuse of Mithril to synchronize nodes in smoke tests.'),(0,n.kt)("h3",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Release of Version\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.15.0"},"0.15.0"),". This\nrelease enhances the overall stability and functionality of our\nproduct."),(0,n.kt)("li",{parentName:"ul"},"Monthly Review and Community Demos"),(0,n.kt)("li",{parentName:"ul"},"Smoke Tests and Website Publishing Workflow Fixes: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1246"},"#1246"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Resolved glitches in the website publishing workflows, enhancing\nthe efficiency of our deployment processes."))),(0,n.kt)("li",{parentName:"ul"},"Integration of Mithril for Smoke Test Synchronization: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1252"},"#1252")),(0,n.kt)("li",{parentName:"ul"},"Polishing of Hydra-Chess v0.1.0: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1237"},"#1237"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Worked on polishing hydra-chess v0.1.0, treating it as an example\napplication running on Hydra. This not only demonstrates the\ncapabilities of our platform but also aims at providing a reference for future Hydra\ndevelopers.")))),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Merge Off-Chain Protocol Logic for incremental decommits"),(0,n.kt)("li",{parentName:"ul"},"Initiate work on the on-chain portion of incremental decommits"),(0,n.kt)("li",{parentName:"ul"},"Merge CBOR API Change ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1240"},"#1240")),(0,n.kt)("li",{parentName:"ul"},"Troubleshoot Dangling Fanout Issue ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1260"},"#1260"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f59c978c.a27ffe6a.js b/assets/js/f59c978c.a27ffe6a.js new file mode 100644 index 0000000000..c22a7f59a4 --- /dev/null +++ b/assets/js/f59c978c.a27ffe6a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46545],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=p(n),m=r,d=c["".concat(l,".").concat(m)]||c[m]||h[m]||a;return n?o.createElement(d,s(s({ref:t},u),{},{components:n})):o.createElement(d,s({ref:t},u))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,s=new Array(a);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:r,s[1]=i;for(var p=2;p<a;p++)s[p]=n[p];return o.createElement.apply(null,s)}return o.createElement.apply(null,n)}m.displayName="MDXCreateElement"},22053:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var o=n(87462),r=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2022-11-30-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2022-11-30-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-30-consensus.md",source:"@site/blog/2022-11-30-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2022-11-30T00:00:00.000Z",formattedDate:"November 30, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.4,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-11-30-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"System Test Team Update",permalink:"/2022-12-01-system-test"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2022-11-30-node-cli-api"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD prototype",id:"utxo-hd-prototype",level:3},{value:"Backing store property tests",id:"backing-store-property-tests",level:4},{value:"LSM tree implementation",id:"lsm-tree-implementation",level:3},{value:"CSJ prototype",id:"csj-prototype",level:3},{value:"New VRF and KES crypto integration",id:"new-vrf-and-kes-crypto-integration",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3}],u={toc:p},c="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"During the past two weeks, the consensus team merged improvements to the monadic\ncursor API that was needed to implement LMDB range reads, which is in turn\nrequired for the implementation of the UTxO HD feature. We added tables to\nseveral tests in for the UTxO HD feature, which increases our confidence in the\ncorrectness of the prototype. The mempool property tests are close to being\ncompleted. Also, we finished the LSM tree tuning algorithm."),(0,r.kt)("p",null,"On the Genesis front we started simplifying the BlockFetch logic with\nCSJ-specific workloads in mind. "),(0,r.kt)("p",null,"We are also documenting the Block Diffusion Pipelining feature, and added a\nhigh-level overview of consensus to the top level documentation of\n",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),"."),(0,r.kt)("h2",{id:"workstreams"},"Workstreams"),(0,r.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD prototype"),(0,r.kt)("p",null,"We merged the implementation of a monadic cursor API (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/lmdb-simple/pull/1"},"#1"),")) which was\nneeded to solve a bug with LMDB range-reads. After this PR was merged, we focused on\nbridging the gap between the ",(0,r.kt)("inlineCode",{parentName:"p"},"lmdb-simple")," interface and consensus by facilitating\nusing ",(0,r.kt)("inlineCode",{parentName:"p"},"lmdb-simple"),"'s cursor API without ",(0,r.kt)("inlineCode",{parentName:"p"},"Serialise")," constraints (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/lmdb-simple/pull/3"},"#3"),")."),(0,r.kt)("p",null,"We refactored the backing store property tests to use ",(0,r.kt)("inlineCode",{parentName:"p"},"quickcheck-lockstep"),"\n(",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4081"},"#4081"),")."),(0,r.kt)("p",null,"We added tables to the mock ledger in the UTxO-HD feature branch\n(",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4184"},"#4184"),"). Every test that used to run with ",(0,r.kt)("inlineCode",{parentName:"p"},"SimpleBlocks")," now uses\ntables. This will enable us to exercise the UTxO HD mempool integration by\nleveraging the existing mempool property-tests. The new state-machine\nproperty-tests are still needed for testing the parallel behaviour of the\nmempool."),(0,r.kt)("p",null,"Our work on the mempool state-machine tests revealed the need for improvements\nin the ",(0,r.kt)("inlineCode",{parentName:"p"},"quickcheck-state-machine")," library. Parallel testing assumed that the\nstate machine did not have access to mutable references. However, the mempool\ntests require the use of such mutable references for mocking the ledger\ninterface. As a result, our parallel tests were failing with rather obscure\nmessages. @Jasagredo submitted a pull request (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/stevana/quickcheck-state-machine/pull/12"},"#12"),") that allows for\nnew mutable references to be created at each run of the state machine."),(0,r.kt)("h4",{id:"backing-store-property-tests"},"Backing store property tests"),(0,r.kt)("h3",{id:"lsm-tree-implementation"},"LSM tree implementation"),(0,r.kt)("p",null,"We finished the LSM Tree tuning algorithm. We are currently tidying up the code\nand gathering results (i.e., plots and their interpretation)."),(0,r.kt)("h3",{id:"csj-prototype"},"CSJ prototype"),(0,r.kt)("p",null,"We started simplifying the BlockFetch logic with CSJ-specific workloads in mind."),(0,r.kt)("h3",{id:"new-vrf-and-kes-crypto-integration"},"New VRF and KES crypto integration"),(0,r.kt)("p",null,"Started working on supporting new version of ",(0,r.kt)("inlineCode",{parentName:"p"},"StandardCrypto")," which uses compact\nKES and batched VRF (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4151"},"#4151"),")."),(0,r.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,r.kt)("p",null,'We reviewed the existing state of the Block Diffusion Pipelining document. We\nare now working on the "Implementation" section (',(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4020"},"#4020"),")."),(0,r.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("p",null,"We cleared up our understanding of the error dynamics of forecasting\n(",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4146"},"#4146")," and ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4174"},"#4174"),")."),(0,r.kt)("p",null,"We submitted a pull request that adds an overview of consensus to the ",(0,r.kt)("a",{parentName:"p",href:"https://ouroboros-network.cardano.intersectmbo.org/"},"top level\ndocumentation")," of\nouroboros-network (",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4197"},"#4197"),"). This overview describes the consensus components and adds a\nhyperlinked map to the modules documentation."),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4197"},"https://github.com/input-output-hk/ouroboros-network/pull/4197")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f5a24224.0b903f32.js b/assets/js/f5a24224.0b903f32.js new file mode 100644 index 0000000000..b42a93ab55 --- /dev/null +++ b/assets/js/f5a24224.0b903f32.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[71844],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=p(r),h=n,m=c["".concat(u,".").concat(h)]||c[h]||d[h]||o;return r?a.createElement(m,i(i({ref:t},s),{},{components:r})):a.createElement(m,i({ref:t},s))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=h;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:n,i[1]=l;for(var p=2;p<o;p++)i[p]=r[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},66255:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Ledger Team Update",slug:"2022-10-14-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-10-14-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-14-ledger.md",source:"@site/blog/2022-10-14-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2022-10-14T00:00:00.000Z",formattedDate:"October 14, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.03,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-10-14-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-10-14-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2022-10-05-consensus"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Completed Technical Debt",id:"completed-technical-debt",level:3},{value:"In-progress Technical Debt",id:"in-progress-technical-debt",level:3}],s={toc:p},c="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The ledger team is still primarily focused on addressing\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/issues?q=is%3Aissue+is%3Aopen+label%3A%22%3Acredit_card%3A+technical-debt%22"},"technical"),"\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/projects/3"},"debt"),".\nWe now have the infrastructure for versioning our serialization schemes,\nwhich we continue to put into action.\nWe have made first steps towards getting proper support for the\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/formal-ledger-specifications"},"formal ledger repository"),"\n(in particular, we've added nix builds and\ncontinuous integration support).\nWe are wrapping up an investigation of the performance of a critical\nfunction used by the consensus layer for leader checks.\nFinally, we are improving the packaging and versioning of our code."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"completed-technical-debt"},"Completed Technical Debt"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Because the Shelley ledger era was a complete re-write of the Byron ledger era, a lot of\nour code lives in the ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-ledger-shelley")," package, though with hindsight we can say that\nmuch of it should live in ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-ledger-core"),".\nWe continue to move things to ",(0,n.kt)("inlineCode",{parentName:"li"},"cardano-ledger-core"),", and have much more to come. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3059"},"pull-3059"),"]"),(0,n.kt)("li",{parentName:"ul"},"We now have the infrastructure to support ",(0,n.kt)("strong",{parentName:"li"},"versioned")," serialization schemes.\nThe inability to do this has caused us a lot difficulties,\nsuch as [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3003"},"issue-3003"),"], [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/2965"},"issue-2965"),"] and [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/2444"},"issue-2444"),"].\nWe are still in the process of switching to the versioned serialization scheme\n(such as [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3078"},"pull-3078"),"]),\nbut the infrastructure was completed in [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3063"},"pull-3063"),"]."),(0,n.kt)("li",{parentName:"ul"},"We now have proper nix and CI support for the formal ledger project. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/formal-ledger-specifications/pull/19"},"pull-19"),"]"),(0,n.kt)("li",{parentName:"ul"},"A separate team is helping bring support for\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-haskell-packages"},"CHaP"),"\nto all the cardano-node repositories.\nWe have been helping out with this effort.")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A separate team continues working on upgrading all the\ncardano-node repositories to work with ghc 9.2.4.\nWe have been helping out with this effort.")),(0,n.kt)("h3",{id:"in-progress-technical-debt"},"In-progress Technical Debt"),(0,n.kt)("p",null,"We also have several fairly large pull-requests in review\nthat we are working on."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"In an on-going attempt to build out a more user-friendly API,\nwe continue to remove ",(0,n.kt)("inlineCode",{parentName:"li"},"HasField")," instances in place of using micro-lenses.\nThe protocol parameters, in particular, are being worked on. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3045"},"pull-3045"),"]"),(0,n.kt)("li",{parentName:"ul"},"We are also renaming record fields to be consistent across the repository. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3062"},"pull-3062"),"]"),(0,n.kt)("li",{parentName:"ul"},"We are now cleaning up all the work we did to understand the performance\nof the TICKF transition. We have some improvements to the computatation\nas well. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3068"},"pull-3068"),"]"),(0,n.kt)("li",{parentName:"ul"},"We are adding more documentation, in particular to our ",(0,n.kt)("inlineCode",{parentName:"li"},"Twiddler")," functionality. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3073"},"pull-3073"),"]"),(0,n.kt)("li",{parentName:"ul"},"The formal ledger is adding support for finite set theory. [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/formal-ledger-specifications/pull/20"},"pull-20"),"]")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f5b1250e.c3fa6d8a.js b/assets/js/f5b1250e.c3fa6d8a.js new file mode 100644 index 0000000000..08ed7aad80 --- /dev/null +++ b/assets/js/f5b1250e.c3fa6d8a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[1129],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),h=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=h(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=h(a),d=n,m=u["".concat(s,".").concat(d)]||u[d]||c[d]||o;return a?r.createElement(m,l(l({ref:t},p),{},{components:a})):r.createElement(m,l({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:n,l[1]=i;for(var h=2;h<o;h++)l[h]=a[h];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},25013:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-08-04-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-08-04-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-04-hydra.md",source:"@site/blog/2023-08-04-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-08-04T00:00:00.000Z",formattedDate:"August 4, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.06,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-08-04-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-08-04-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-08-04-ledger"}},s={authorsImageUrls:[void 0]},h=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:h},u="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team achieved notable progress in various aspects of the\nproject. The team updated the use case section for auctions on the ",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/unstable/use-cases/"},"/unstable"),"\nbranch of the website, improving the understanding of Hydra","\u2019","s applicability."),(0,n.kt)("p",null,"From the development side, the team successfully completed event-sourced\npersistence, a key enhancement in the project","\u2019","s architecture which improves\noff-chain transaction processing performance. They also added a\n","\u201c","submit-transaction","\u201d"," endpoint to the API."),(0,n.kt)("p",null,"In addition to project-related progress, the team actively engaged in community\nreviews for several catalyst proposals related to Hydra and Mithril,\ncontributing to the wider Cardano ecosystem."),(0,n.kt)("p",null,"Finally, the full report for the month of July was also published ",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/monthly/2023-07"},"here"),"."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Published the ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-07"},"monthly report for July")),(0,n.kt)("li",{parentName:"ul"},"Updated the use case section for auctions (published on ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/unstable/use-cases/"},"/unstable")," branch)"),(0,n.kt)("li",{parentName:"ul"},"Completed event sourced persistence ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/913"},"#913")),(0,n.kt)("li",{parentName:"ul"},"Added a ","\u201c","submit-transaction","\u201d"," endpoint to the API ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/966"},"#966")),(0,n.kt)("li",{parentName:"ul"},"Community reviews for several catalyst proposals related to Hydra and Mithril"),(0,n.kt)("li",{parentName:"ul"},"Created a network testing tool (hydra-net) ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1006"},"#1006"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Update hydra-node to work with cardano-node version 8.x"),(0,n.kt)("li",{parentName:"ul"},"Remove the internal commit functionality"),(0,n.kt)("li",{parentName:"ul"},"Release version 0.12.0"),(0,n.kt)("li",{parentName:"ul"},"Update & streamline tutorial to work with latest version of hydra-node")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f5b69acd.3a522978.js b/assets/js/f5b69acd.3a522978.js new file mode 100644 index 0000000000..63aa8a6847 --- /dev/null +++ b/assets/js/f5b69acd.3a522978.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[68672],{21446:e=>{e.exports=JSON.parse('{"permalink":"/tags/performance-tracing","page":1,"postsPerPage":5,"totalPages":7,"totalCount":34,"nextPage":"/tags/performance-tracing/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/f5e5d1cf.4d7c8ae9.js b/assets/js/f5e5d1cf.4d7c8ae9.js new file mode 100644 index 0000000000..0b3f7f8ed5 --- /dev/null +++ b/assets/js/f5e5d1cf.4d7c8ae9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[51410],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),h=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=h(e.components);return i.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=h(r),c=n,d=p["".concat(s,".").concat(c)]||p[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,o[1]=l;for(var h=2;h<a;h++)o[h]=r[h];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},45256:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>h});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2022-11-18-mithril",authors:"iquerejeta",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2022-11-18-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-18-mithril.md",source:"@site/blog/2022-11-18-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2022-11-18T00:00:00.000Z",formattedDate:"November 18, 2022",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.35,hasTruncateMarker:!1,authors:[{name:"I\xf1igo Querejeta Azurmendi",title:"Cardano Lead Cryptography Engineer",url:"https://github.com/iquerejeta",imageURL:"https://github.com/iquerejeta.png",key:"iquerejeta"}],frontMatter:{title:"Mithril Team Update",slug:"2022-11-18-mithril",authors:"iquerejeta",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-11-18-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2022-11-16-consensus"}},s={authorsImageUrls:[void 0]},h=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:h},p="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"The Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks. "),(0,n.kt)("p",null,"Finally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Released a new Mithril distribution ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2246.1"},"2246.1")),(0,n.kt)("li",{parentName:"ul"},"Completed the first stage of the store migrations process ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/562"},"#562")),(0,n.kt)("li",{parentName:"ul"},"Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/565"},"#565")),(0,n.kt)("li",{parentName:"ul"},"Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/576"},"#576")),(0,n.kt)("li",{parentName:"ul"},"Prepared a Daedalus synchronization benchmark video with/without Mithril ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/606"},"#606")),(0,n.kt)("li",{parentName:"ul"},"Upgraded the Cardano nodes of the testing Mithril networks to ",(0,n.kt)("inlineCode",{parentName:"li"},"1.35.4")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/594"},"#594")),(0,n.kt)("li",{parentName:"ul"},"Worked on implementing SPO tests nodes on testing Mithril networks ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/563"},"#563")),(0,n.kt)("li",{parentName:"ul"},"Worked on the CIP design for Mithril piggybacked on the Cardano network layer ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/588"},"#588")),(0,n.kt)("li",{parentName:"ul"},"Worked on the refactorizaton of the aggregator multi signer engine ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/398"},"#398"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f63b6b72.cca9b2ac.js b/assets/js/f63b6b72.cca9b2ac.js new file mode 100644 index 0000000000..4dcaebb29b --- /dev/null +++ b/assets/js/f63b6b72.cca9b2ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[87389],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,m=h["".concat(u,".").concat(c)]||h[c]||d[c]||l;return r?a.createElement(m,o(o({ref:t},s),{},{components:r})):a.createElement(m,o({ref:t},s))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=c;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[h]="string"==typeof e?e:n,o[1]=i;for(var p=2;p<l;p++)o[p]=r[p];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},36793:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-07-21-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2023-07-21-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-07-21-ledger.md",source:"@site/blog/2023-07-21-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-07-21T00:00:00.000Z",formattedDate:"July 21, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.715,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-07-21-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-07-21-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-07-21-sre"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"What we achieved",id:"what-we-achieved",level:2},{value:"What is currently in progress",id:"what-is-currently-in-progress",level:2}],s={toc:p},h="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"Our focus was on planning and implementing Conway features that we would like to see deployed and running on Sanchonet.\nAll members of the ledger team participated in the CIP-1694 workshop and had an in-person meeting, where we discussed plans forward for the Conway era.\nWe also investigated some transaction validation issues that occurred on preview with the latest node (for 8.2 release).\nAdditionally, we did some preparatory work that will help us define the types we need for Plutus V3 and integrate with the new version when it will become available.\nWe also made progress on the constraint-based generators, which can now generate valid transactions and ledger states. "),(0,n.kt)("h2",{id:"what-we-achieved"},"What we achieved"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3521"},"pull-3521"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3554"},"pull-3554"),"] Improved Governance model (GovernanceProcedures, ProposalProcedure)"),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3520"},"pull-3520"),"] Improved Governance-related naming (Renamed Tally to Gov and VDel to GovCert ) "),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3531"},"pull-3531"),"] Refactored and simplified code interacting with Plutus"),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3558"},"pull-3558"),"] Fixed a bug that was breaking validation on preview, related to refernce inputs witnesses. We backported and released the fix. "),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3550"},"pull-3550"),"] For Conway to run on Sanchonet, we updated the era Translation to remove zero-ADA outputs. This was necessary because such outputs exist on mainnet, but in Conway they are not allowed."),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3551"},"pull-3551"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3546"},"pull-3546"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3472"},"pull-3472"),"] Updated tools and added some small improvements "),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3146"},"issue-3146"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3498"},"pull-3498"),"] Introduced Conway protocol parameters "),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/2948"},"issue-2948"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3499"},"pull-3499"),"] Implemented ConwayGenesis with the new protocol parameters")),(0,n.kt)("h2",{id:"what-is-currently-in-progress"},"What is currently in progress"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3494"},"issue-3494"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3495"},"pull-3495"),"] Implement returning of proposal deposits"),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3436"},"issue-3436"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3523"},"pull-3523"),"] Implement transferring lovelace from UTxO to treasury"),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3509"},"issue-3509"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3552"},"pull-3552"),"] Add script-support for the committee hot key"),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3532"},"issue-3532"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3556"},"pull-3556"),"] Add script-support for the constitution"),(0,n.kt)("li",{parentName:"ul"},"[",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/issues/3543"},"issue-3543"),"] [",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3557"},"pull-3557"),"] Improve the 'new committee' governance action by specifying the members to be replaced, expiration epoch of new members and adding script-support")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f63d0757.be926309.js b/assets/js/f63d0757.be926309.js new file mode 100644 index 0000000000..97b53a9eb0 --- /dev/null +++ b/assets/js/f63d0757.be926309.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65395],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},75353:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-03-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-20-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-20-mithril.md",source:"@site/blog/2024-03-20-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-03-20T00:00:00.000Z",formattedDate:"March 20, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.23,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-03-20-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2024-03-20-consensus"},nextItem:{title:"Network Team Update",permalink:"/2024-03-18-network"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet"),", completed UI improvements for the explorer, provided metadata about the point of the chain used during the verification process, and investigated a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they began prototyping the implementation of a more versatile beaconing mechanism to sign transactions with low latency."),(0,i.kt)("p",null,"Finally, the team started implementing some community-requested features to verify the output folder structure made by the client, and fixed a source of flakiness in the CI end-to-end test."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Upgrade Cardano node to ",(0,i.kt)("inlineCode",{parentName:"strong"},"8.9.0"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1570"},"#1570")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Explorer improvements for Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1554"},"#1554")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Refactor the Cardano transactions parser with ",(0,i.kt)("inlineCode",{parentName:"strong"},"pallas-hardano"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1557"},"#1557")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Provide latest immutable file number with certified transactions in client")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1536"},"#1536")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement a Block Range Merkle Tree for ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1533"},"#1533")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Support multiple beacon types in signer/aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1562"},"#1562")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Do not require the mithril client to create the DB directory")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1572"},"#1572")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Some transactions are not signed in ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1577"},"#1577")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"End to end tests are flaky in CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1558"},"#1558")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"P2P threat modeling and risk analysis")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1350"},"#1350"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f6aa5556.1287b374.js b/assets/js/f6aa5556.1287b374.js new file mode 100644 index 0000000000..45a5933e1a --- /dev/null +++ b/assets/js/f6aa5556.1287b374.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[376],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),d=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=d(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=d(r),h=n,m=s["".concat(u,".").concat(h)]||s[h]||c[h]||l;return r?a.createElement(m,o(o({ref:t},p),{},{components:r})):a.createElement(m,o({ref:t},p))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=h;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:n,o[1]=i;for(var d=2;d<l;d++)o[d]=r[d];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},86936:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>d});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2022-12-09-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2022-12-09-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-09-ledger.md",source:"@site/blog/2022-12-09-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2022-12-09T00:00:00.000Z",formattedDate:"December 9, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.87,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-12-09-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-12-09-hydra"},nextItem:{title:"Hydra Team Update",permalink:"/2022-12-02-hydra"}},u={authorsImageUrls:[void 0]},d=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano ledger API",id:"cardano-ledger-api",level:4},{value:"Architectural Decision Records (ADRs)",id:"architectural-decision-records-adrs",level:4},{value:"Tracking individual deposits",id:"tracking-individual-deposits",level:4},{value:"Removing pointer addresses",id:"removing-pointer-addresses",level:4},{value:"Technical debt",id:"technical-debt",level:4}],p={toc:d},s="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The Plutus tools team at IOG has started helping the ledger team to build out a user friendly\n",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-ledger-api")," package!\nA ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/projects/5"},"GitHub project"),"\nwill be filled out in the days ahead,\npeople interested in the API can use it to follow along and join in on the conversations."),(0,n.kt)("p",null,"The ledger team has started using\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/blob/6fc0e198560fb4169d435da882394930789a8af8/docs/adr/2022-12-01_001-record-architectural-decisions.md"},"architectural decision records"),"\nto leave a record of important decisions that the team makes.\nWe will retroactively go back through past decisions and make ADRs for them."),(0,n.kt)("p",null,"The logic to track individual deposits is now nearly in place.\nWe are prioritizing correctness with our first pull request, and will follow up with\nperformance optimizations and general cleanup next."),(0,n.kt)("p",null,"Pointer addresses are being deprecated with the Cardano major protocol version 8.\nSee ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/374"},"CPS-0002"),"\nfor more context."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h4",{id:"cardano-ledger-api"},"Cardano ledger API"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Plutus tools team")," has taken our minimal ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-ledger-api")," package and started filling it\nout and adding much needed documentation.\nThey have also added doctests!\nIn the days to come, the Plutus tools team will map out a lot more work for the API and record\nit in this\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/projects/5"},"GitHub project"),"."),(0,n.kt)("p",null,"See"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3182"},"pull-3182")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3188"},"pull-3188"))),(0,n.kt)("h4",{id:"architectural-decision-records-adrs"},"Architectural Decision Records (ADRs)"),(0,n.kt)("p",null,"We are now providing more context and leaving a record of important decisions that are made\nin the ledger. The first ADR explains the very lightweight process."),(0,n.kt)("p",null,"See"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3177"},"pull-3177")," (rendered ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/blob/6fc0e198560fb4169d435da882394930789a8af8/docs/adr/2022-12-01_001-record-architectural-decisions.md"},"here"),")")),(0,n.kt)("h4",{id:"tracking-individual-deposits"},"Tracking individual deposits"),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3190/files"},"ADR-3"),"\nfor background.\nWe now have the logic in place to track individual deposits, and a host of property tests\nto make sure that the logic is correct.\nThe current implementation uses more memory than it needs to, and we will address that next,\nwith our hope being to only use one word (8 bytes) per registered stake credential.\nThere is a fair amount of other cleanup needed for general maintainability."),(0,n.kt)("p",null,"See"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3127"},"pull-3127")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3195"},"pull-3195")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3202"},"pull-3202"))),(0,n.kt)("h4",{id:"removing-pointer-addresses"},"Removing pointer addresses"),(0,n.kt)("p",null,"Pointer addresses, which have never seen any real use\n(there are something like eleven on mainnet), are being deprecated starting at Cardano major\nversion 9.\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/374"},"CPS-0002")," gives the context.\nWe are disabling them by first preventing transaction outputs containing them\nfrom being serialized by the node at the moment we switch to version 9.\nAt the hard fork after that, we will translate the existing few pointer addresses\nto enterprise addresses."),(0,n.kt)("p",null,"See"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3174"},"pull-3174"))),(0,n.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3162"},"pull-3162")," - Sometimes we have to put safeguards in place for hard forks which may never\nbe exercised. After we have passed the given hardfork, we are able to clean up the code\nand simplify our logic. We removed all of the ones that we are currently easily able to."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3165"},"pull-3165")," - We improved the type safety of our code while also discovering and fixing\na serialization bug."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3172"},"pull-3172")," - We removed dead code."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3175"},"pull-3175")," - The Allegra and the Mary code used to be coupled in a particular way the we grew to\ndislike. We made these two ledger eras now uniform with the rest of our code base."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3184"},"pull-3184")," - We organized our property testing code."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3200"},"pull-3200")," - The Plutus tools teams fixed an outstanding bug in the translation from the\nledger state to the Plutus script context.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f6ec1152.8efe65c9.js b/assets/js/f6ec1152.8efe65c9.js new file mode 100644 index 0000000000..f2ff4edc17 --- /dev/null +++ b/assets/js/f6ec1152.8efe65c9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[11254],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>g});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=p(r),d=n,g=m["".concat(u,".").concat(d)]||m[d]||c[d]||l;return r?a.createElement(g,i(i({ref:t},s),{},{components:r})):a.createElement(g,i({ref:t},s))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[m]="string"==typeof e?e:n,i[1]=o;for(var p=2;p<l;p++)i[p]=r[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},53954:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2023-10-13-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2023-10-13-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-13-ledger.md",source:"@site/blog/2023-10-13-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2023-10-13T00:00:00.000Z",formattedDate:"October 13, 2023",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:.965,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2023-10-13-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-10-13-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-10-13-sre"}},u={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway era",id:"conway-era",level:3},{value:"Integration and releasing",id:"integration-and-releasing",level:3},{value:"Testing",id:"testing",level:3}],s={toc:p},m="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The Ledger team has been shifting focus from implementing Conway related features to\ntesting. For this reason there is a very little amount features that are reported this\ntime aorund. Notable Conway related changes are a specialized ledger query for getting\nConstitutional Committee state and prevention of submitting proposal procedures that have\nno valid path to enactment."),(0,n.kt)("p",null,"Testing related work was mainly on a constraint base system as well as on roundtrip\nserialization. As a result of this extra testing a bug in Conway Genesis serialization\nwas eliminated."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway-era"},"Conway era"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3768"},"pull-3768")," - Fail proposal on invalid prevGovActionId"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3781"},"pull-3781")," - CommitteeState query")),(0,n.kt)("h3",{id:"integration-and-releasing"},"Integration and releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3774"},"pull-3774")," - Bump urllib3 from 1.26.10 to 1.26.17 in /doc"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3770"},"pull-3770")," - cabal.project: Bump index states"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3778"},"pull-3778")," - Bump plutus to 1.14")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3769"},"pull-3769")," - Add roundtrip testing by validating FlatTerm"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3783"},"pull-3783")," - Update TranslationInstance.hs"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3775"},"pull-3775")," - Refactor and improve constraint based STS tests"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3793"},"pull-3793")," - Fix sums with negative RHS.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f7132c6a.c78f64bf.js b/assets/js/f7132c6a.c78f64bf.js new file mode 100644 index 0000000000..18129a62d2 --- /dev/null +++ b/assets/js/f7132c6a.c78f64bf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[35594],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return r?n.createElement(f,l(l({ref:t},m),{},{components:r})):n.createElement(f,l({ref:t},m))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},87808:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-12-08-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-12-08-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-08-goedel.md",source:"@site/blog/2023-12-08-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-12-08T00:00:00.000Z",formattedDate:"December 8, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.385,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-12-08-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2023-12-11-performance-and-tracing"},nextItem:{title:"Network Team Update",permalink:"/2023-12-08-network"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols, working on a\nperformance modelling paper and working on a performance modelling\nprototype tool"),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"completing work on chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"proof sketch of conformance property of chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"new content for JLAMP paper")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"NWPT talk"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f76b8023.d4db6391.js b/assets/js/f76b8023.d4db6391.js new file mode 100644 index 0000000000..0da3a9062b --- /dev/null +++ b/assets/js/f76b8023.d4db6391.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[24568],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},c),{},{components:n})):r.createElement(h,s({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u<o;u++)s[u]=n[u];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},66820:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-02-21-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-02-21-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-21-consensus.md",source:"@site/blog/2024-02-21-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-02-21T00:00:00.000Z",formattedDate:"February 21, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.31,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-02-21-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-02-23-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-02-21-mithril"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Triaged an ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/952"},"issue")," where blocks were unnecessarily downloaded, and coded a prototype for a partial solution."),(0,a.kt)("li",{parentName:"ul"},"Discovered an ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/io-sim"},"io-sim")," bug while developing the ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/808"},"Genesis state machine tests"),". The bug was already fixed upstream."),(0,a.kt)("li",{parentName:"ul"},"Added support for making the number of ledger state snapshots to be kept ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/943"},"configurable"),". This needs to be integrated in the node.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f7812855.b3385901.js b/assets/js/f7812855.b3385901.js new file mode 100644 index 0000000000..125da20dad --- /dev/null +++ b/assets/js/f7812855.b3385901.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[99187],{30337:a=>{a.exports=JSON.parse('{"label":"performance-tracing","permalink":"/tags/performance-tracing","allTagsPath":"/tags","count":34}')}}]); \ No newline at end of file diff --git a/assets/js/f7e5e70a.d8becf08.js b/assets/js/f7e5e70a.d8becf08.js new file mode 100644 index 0000000000..e3dc5d896d --- /dev/null +++ b/assets/js/f7e5e70a.d8becf08.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[48909],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=n,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},78370:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2023-11-01-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-11-01-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-01-mithril.md",source:"@site/blog/2023-11-01-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-11-01T00:00:00.000Z",formattedDate:"November 1, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:.895,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-11-01-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-11-01-consensus"},nextItem:{title:"Goedel Team Update",permalink:"/2023-10-27-goedel"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept. They progressed with the adaptation of the Mithril client as a library, and worked on its full WASM compatibility in a proof of concept. The team kept working on the deterministic computation of the transactions from the immutable files, and fixed some unreachability issue on the ",(0,n.kt)("inlineCode",{parentName:"p"},"release-mainnet")," aggregator."),(0,n.kt)("p",null,"Finally, they implemented new Docker images that build the Mithril nodes on the 'devnet' faster and fixed some regressions in the Mithril client CLI."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"P2P Networking - Proof of Concept")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1300"},"#1300")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Build ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-common")," and ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," in WASM PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1284"},"#1284")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Fix ",(0,n.kt)("inlineCode",{parentName:"strong"},"devnet")," Mithril Docker images")," ","[#1272]","(",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1272"},"https://github.com/input-output-hk/mithril/issues/1272")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Light Wallet: Release ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-client")," library")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1311"},"#1311")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Compute deterministic Cardano UTxO set PoC")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1283"},"#1283")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"release-mainnet")," aggregator is unreachable")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1310"},"#1310")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Client regressions in snapshot list and download")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1321"},"#1321"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f850a5f3.7f903dc8.js b/assets/js/f850a5f3.7f903dc8.js new file mode 100644 index 0000000000..19e982a354 --- /dev/null +++ b/assets/js/f850a5f3.7f903dc8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25403],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=u(r),h=o,d=m["".concat(p,".").concat(h)]||m[h]||c[h]||a;return r?n.createElement(d,i(i({ref:t},s),{},{components:r})):n.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:o,i[1]=l;for(var u=2;u<a;u++)i[u]=r[u];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}h.displayName="MDXCreateElement"},23498:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(87462),o=(r(67294),r(3905));const a={title:"Network Team Update",slug:"2023-01-20-network",authors:"coot",tags:["network","release"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-01-20-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-01-20-network.md",source:"@site/blog/2023-01-20-network.md",title:"Network Team Update",description:"High level summary",date:"2023-01-20T00:00:00.000Z",formattedDate:"January 20, 2023",tags:[{label:"network",permalink:"/tags/network"},{label:"release",permalink:"/tags/release"}],readingTime:1.045,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2023-01-20-network",authors:"coot",tags:["network","release"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-01-20-hydra"},nextItem:{title:"SRE Team Update",permalink:"/2023-01-20-sre"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2}],s={toc:u},m="wrapper";function c(e){let{components:t,...r}=e;return(0,o.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"We have been working towards ",(0,o.kt)("inlineCode",{parentName:"p"},"cardano-node-1.35.5")," release. QA & benchmarking\nteams gave a green light for the release, and we made decent progress with some\nCI problem which we encountered on the way (",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4612"},"PR #4612"),"). We are also working on\npeer sharing, making improvements in our testing infrastructure, reducing\ntechnical debt and making progress towards ",(0,o.kt)("inlineCode",{parentName:"p"},"io-sim-1.0.0.0"),". Galois is making\nprogress on Handshake improvements."),(0,o.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,o.kt)("p",null,"Our diffusion simulation network now includes a mixed network of ",(0,o.kt)("inlineCode",{parentName:"p"},"initiator\nonly")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"initiator and responder")," nodes. ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4222"},"issue #4222")),(0,o.kt)("p",null,"We are now reviewing the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"peer sharing pull request"),"."),(0,o.kt)("p",null,"We are also reviewing pull request which introduces handshake query flag. ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4256"},"PR #4256")),(0,o.kt)("p",null,"We fixed a bug in our network simulator. The bug was triggered when a node\ndied when performing a simultaneous TCP open (a corner case of a corner case!). ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4265"},"PR #4265")),(0,o.kt)("p",null,"We also refactored ",(0,o.kt)("inlineCode",{parentName:"p"},"Snocket")," interface and removed the bearer construction from\nits methods. ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4260"},"PR #4260")),(0,o.kt)("p",null,"We are working towards releasing ",(0,o.kt)("inlineCode",{parentName:"p"},"io-sim-1.0.0.0")," on Hackage, which includes\nreviewing two PRs: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/57"},"PR #57")," and ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/60"},"PR #60")," as well as writing an announcement\nblog post. "))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f8681695.0b14908e.js b/assets/js/f8681695.0b14908e.js new file mode 100644 index 0000000000..730aa708ca --- /dev/null +++ b/assets/js/f8681695.0b14908e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32464],{3905:(e,t,i)=>{i.d(t,{Zo:()=>m,kt:()=>c});var n=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function l(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?r(Object(i),!0).forEach((function(t){a(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function o(e,t){if(null==e)return{};var i,n,a=function(e,t){if(null==e)return{};var i,n,a={},r=Object.keys(e);for(n=0;n<r.length;n++)i=r[n],t.indexOf(i)>=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)i=r[n],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),i=t;return e&&(i="function"==typeof e?e(t):l(l({},t),e)),i},m=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,r=e.originalType,p=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),s=u(i),d=a,c=s["".concat(p,".").concat(d)]||s[d]||h[d]||r;return i?n.createElement(c,l(l({ref:t},m),{},{components:i})):n.createElement(c,l({ref:t},m))}));function c(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=i.length,l=new Array(r);l[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[s]="string"==typeof e?e:a,l[1]=o;for(var u=2;u<r;u++)l[u]=i[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,i)}d.displayName="MDXCreateElement"},67885:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var n=i(87462),a=(i(67294),i(3905));const r={title:"Mithril Team Update",slug:"2023-06-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},l=void 0,o={permalink:"/2023-06-15-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-15-mithril.md",source:"@site/blog/2023-06-15-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2023-06-15T00:00:00.000Z",formattedDate:"June 15, 2023",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.795,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2023-06-15-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-06-16-hydra"},nextItem:{title:"Consensus Team Update",permalink:"/2023-06-14-consensus"}},p={authorsImageUrls:[void 0]},u=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],m={toc:u},s="wrapper";function h(e){let{components:t,...i}=e;return(0,a.kt)(s,(0,n.Z)({},m,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,a.kt)("p",null,"The Mithril team completed the implementation of the new sub-command for restoring a Mithril stake distribution in the client. They also updated the client\u2019s developer documentation and architecture documentation, and did some refactoring on the client and its dependency injection mechanism. Additionally, they completed and deployed infrastructure enhancements on the test Mithril networks. They also completed the performance tests of the new stake distribution computation on the Cardano mainnet."),(0,a.kt)("p",null,"Finally, the team worked on fixing a bug on the client multi-platform test, a bug on the aggregator state machine, and some flakiness on the CI."),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Completed on the epic that designs and implements generic signing/verification of entity services ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/780"},"#780"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Create the sub-command for 'Mithril Stake Distribution' in client")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/896"},"#896")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Adapt end to end tests to handle new types of data")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/899"},"#899")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Update client documentation")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/897"},"#897")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Update architecture documentations for new types of data")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/898"},"#898")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Refactoring client")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/960"},"#960")))),(0,a.kt)("li",{parentName:"ul"},"Worked on the epic that prepares the Mithril infrastructure for ",(0,a.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/767"},"#767"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Enhance terraform infrastructure")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/930"},"#930")))),(0,a.kt)("li",{parentName:"ul"},"Completed the epic that implements the computation of the stake distribution for ",(0,a.kt)("inlineCode",{parentName:"li"},"mainnet")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/880"},"#880"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Check performance impact of new stake distribution command on the 'mainnet'")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/962"},"#962")))),(0,a.kt)("li",{parentName:"ul"},"Worked on the epic ",(0,a.kt)("inlineCode",{parentName:"li"},"Prepare Mithril Signer deployment model for SPO")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/862"},"#862"),":",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod'")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/961"},"#961")))),(0,a.kt)("li",{parentName:"ul"},"Worked on bugs and optimizations:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Aggregator does not always detect new immutable file")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/953"},"#953")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"CI tests fail with Rust '1.70.0'")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/958"},"#958")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"End to end tests are flaky")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/954"},"#954")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Certificate dates in metadata are not on the same timezone")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/946"},"#946")),(0,a.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Refactor 'MithrilStakeDistribution' entity")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/967"},"#967")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Fix 'Mithril Client multi-platform test' with new client interface")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/956"},"#956")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Enhance 'ImmutableDigesterError::NotEnoughImmutable' error")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/969"},"#969")),(0,a.kt)("li",{parentName:"ul"},"Completed the issue ",(0,a.kt)("inlineCode",{parentName:"li"},"Client 'snapshot download' command fails with option '--download-dir'")," ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/979"},"#979"))))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f872275a.476774ca.js b/assets/js/f872275a.476774ca.js new file mode 100644 index 0000000000..a20f0ac181 --- /dev/null +++ b/assets/js/f872275a.476774ca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[46922],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,o,a=function(e,t){if(null==e)return{};var n,o,a={},r=Object.keys(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},c=o.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),m=p(n),c=a,d=m["".concat(l,".").concat(c)]||m[c]||h[c]||r;return n?o.createElement(d,i(i({ref:t},u),{},{components:n})):o.createElement(d,i({ref:t},u))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[m]="string"==typeof e?e:a,i[1]=s;for(var p=2;p<r;p++)i[p]=n[p];return o.createElement.apply(null,i)}return o.createElement.apply(null,n)}c.displayName="MDXCreateElement"},87739:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var o=n(87462),a=(n(67294),n(3905));const r={title:"Consensus Team Update",slug:"2023-03-08-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2023-03-08-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-08-consensus.md",source:"@site/blog/2023-03-08-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-03-08T00:00:00.000Z",formattedDate:"March 8, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:2.46,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-03-08-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-03-09-mithril"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-03-08-node-cli-api"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD Prototype",id:"utxo-hd-prototype",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3},{value:"Support",id:"support",level:3}],u={toc:p},m="wrapper";function h(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The Consensus team continued working on refactoring and improving the UTxO-HD\nprototype, and introducing improvements to the ",(0,a.kt)("inlineCode",{parentName:"p"},"lmdb")," related packages. In\nparticular we identified an opportunity to gain performance by handling locks in\na more optimal way."),(0,a.kt)("p",null,"On the Genesis front, we sketched a mitigation for an issue that ",(0,a.kt)("inlineCode",{parentName:"p"},"PNSol")," and\nResearchers caught. We also came op with a road map for not only testing the\nGenesis prototypes, but also for enriching the tests we already have."),(0,a.kt)("p",null,"Regarding technical debt, next to some minor improvements, we created\ncomponent-level micro-benchmarks for adding transactions to the mempool. The\nresults of these benchmarks will be published in the ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," ",(0,a.kt)("a",{parentName:"p",href:"https://ouroboros-consensus.cardano.intersectmbo.org/"},"web\npage"),"."),(0,a.kt)("p",null,"We also finished moving the Consensus documentation to the ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),"\nrepository, released ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus")," ",(0,a.kt)("inlineCode",{parentName:"p"},"0.3.0.0"),", and reduced the time\nGitHub actions take in ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),"."),(0,a.kt)("h2",{id:"workstreams"},"Workstreams"),(0,a.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD Prototype"),(0,a.kt)("p",null,"We continued working on refactoring and improving the UTxO-HD prototype. As a\nresult of the first round of sytem-level benchmarks, we identified an\nopportunity to optimise the way we handle locks to improve performance\n(",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4393"},"#4393"),")."),(0,a.kt)("p",null,"Also, we introduced several improvements to the ",(0,a.kt)("inlineCode",{parentName:"p"},"lmdb")," related packages:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/lmdb-simple/pull/19"},"New tests")," for read-only transaction handles."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/lmdb-simple/pull/18"},"New functions")," and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/lmdb-simple/pull/13"},"data types"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/lmdb-simple/pull/11"},"Updates")," to support improved type safety and smaller constraints in\nthe UTxO HD prototype."),(0,a.kt)("li",{parentName:"ul"},"Windows and MacOS ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/haskell-lmdb/pull/8"},"CI support"),".")),(0,a.kt)("h3",{id:"genesis"},"Genesis"),(0,a.kt)("p",null,"We sketched out a mitigation of the issue that ",(0,a.kt)("inlineCode",{parentName:"p"},"PNSol")," and Researchers caught in\nthe Genesis design."),(0,a.kt)("p",null,"We came up with a road map for testing the Genesis prototypes, including early\nmilestones that are applicable to today's master branch, ie tests that are\nuseful before Genesis, and that will be nicely enriched when we do add Genesis."),(0,a.kt)("p",null,"We developed the aforementioned tests, specifically a ",(0,a.kt)("inlineCode",{parentName:"p"},"QuickCheck")," generator for\nthe Honest leader schedule and one as-aggressive-as-possible Adversarial\nleader schedule that together satisfy the Praos properties that the Consensus\ndesign takes as invariants."),(0,a.kt)("p",null,"We investigated why the improved ",(0,a.kt)("inlineCode",{parentName:"p"},"ChainDB")," queueing implementation behaves\ndifferently in the baseline compared to the prototype, and we are close to\nhaving a full picture of how the Consensus components interact during bulk sync."),(0,a.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,a.kt)("p",null,"We ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4400"},"created")," component-level micro-benchmarks for adding transactions\nto the mempool. We plan on extending this to more mempool actions and different\ntypes of blocks. We ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4422"},"store")," the benchmark data to make it available\nto the GitHub action that ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/12"},"publishes")," the benchmarks results."),(0,a.kt)("p",null,"Other minor improvements include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4429"},"Removal")," of ",(0,a.kt)("inlineCode",{parentName:"li"},"Test.Util.Classify")," in favour of ",(0,a.kt)("inlineCode",{parentName:"li"},"Test.StateMachine.Labelling"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4423"},"Addition")," of ",(0,a.kt)("inlineCode",{parentName:"li"},"-Wunused-packages")," to the default ",(0,a.kt)("inlineCode",{parentName:"li"},"ghc-options")," for Consensus\npackages.")),(0,a.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,a.kt)("p",null,"We finished moving the Consensus documentation ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4374"},"from"),"\n",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/haskell-lmdb/pull/8"},"to")," ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),", in preparation for\nmigrating the code to the latter repository."),(0,a.kt)("h3",{id:"support"},"Support"),(0,a.kt)("p",null,"We ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4412"},"released")," ouroboros-consensus 0.3.0.0."),(0,a.kt)("p",null,"We ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4421"},"reduced")," the load in the ",(0,a.kt)("inlineCode",{parentName:"p"},"ouroboros-network")," GitHub actions,\nthereby reducing the time CI jobs take."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f89a4337.56e26270.js b/assets/js/f89a4337.56e26270.js new file mode 100644 index 0000000000..7b20c0fe4a --- /dev/null +++ b/assets/js/f89a4337.56e26270.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25189],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>s});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),u=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=u(a),h=r,s=m["".concat(p,".").concat(h)]||m[h]||d[h]||i;return a?n.createElement(s,o(o({ref:t},c),{},{components:a})):n.createElement(s,o({ref:t},c))}));function s(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:r,o[1]=l;for(var u=2;u<i;u++)o[u]=a[u];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},54416:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));const i={title:"Node API & CLI Team Update",slug:"2023-09-26-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},o="Node-Api-Cli Update",l={permalink:"/2023-09-26-node-cli-api",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-26-node-cli-api.md",source:"@site/blog/2023-09-26-node-cli-api.md",title:"Node API & CLI Team Update",description:"High level summary",date:"2023-09-26T00:00:00.000Z",formattedDate:"September 26, 2023",tags:[{label:"cli-api",permalink:"/tags/cli-api"}],readingTime:1.68,hasTruncateMarker:!1,authors:[{name:"Carlos LopezDeLara",title:"Node Product Owner",url:"https://github.com/CarlosLopezDeLara",imageURL:"https://github.com/CarlosLopezDeLara.png",key:"carlos"}],frontMatter:{title:"Node API & CLI Team Update",slug:"2023-09-26-node-cli-api",authors:"carlos",tags:["cli-api"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-09-27-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-09-22-hydra"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"cardano-cli",id:"cardano-cli",level:3},{value:"cardano-api",id:"cardano-api",level:3},{value:"cardano-node",id:"cardano-node",level:3},{value:"cardano-testnet",id:"cardano-testnet",level:3},{value:"docs",id:"docs",level:3},{value:"CI & project maintenance",id:"ci--project-maintenance",level:3}],c={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"2023-09-13---2023-09-26"},"2023-09-13 - 2023-09-26"),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/releases/tag/8.4.0-pre"},"cardano-node 8.4.0-pre")," release suitable for SanchoNet."),(0,r.kt)("li",{parentName:"ul"},"CLI continues making progress integrating governance features. During this sprint we integrated the ",(0,r.kt)("strong",{parentName:"li"},"info")," and ",(0,r.kt)("strong",{parentName:"li"},"new-committee")," governance actions."),(0,r.kt)("li",{parentName:"ul"},"The team continued moving to the ERA top-level commands structure. Removed ",(0,r.kt)("inlineCode",{parentName:"li"},"--conway-era")," flag from the legacy commands making conway era commands only accessible via ",(0,r.kt)("inlineCode",{parentName:"li"},"cardano-cli conway"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"stake-pool")," command is now under the ERA top level structure."),(0,r.kt)("li",{parentName:"ul"},"API continues integration with governance features, it is worth to higlight that now ",(0,r.kt)("em",{parentName:"li"},"ProposeNewCommitee")," uses the right key type (cc-cold)")),(0,r.kt)("h3",{id:"cardano-cli"},"cardano-cli"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/302"},"Disambiguate 2-n flags in governance new-committee action")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/298"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-cli-8.10.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/295"},"Upgrade to ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.20.2"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/292"},"cardano-cli: add governance create-info command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/287"},"Release 8.9.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/286"},"Export ",(0,r.kt)("inlineCode",{parentName:"a"},"Cardano.CLI.Legacy.Options.pLegacyCardanoEra")," for cardano-testnet")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/284"},"Rename ",(0,r.kt)("inlineCode",{parentName:"a"},"SomeWitness")," to ",(0,r.kt)("inlineCode",{parentName:"a"},"SomeSigningWitness"),". Rename constructors to avoid name conflicts.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/283"},"Update cardano-api to 8.20.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/282"},"Remove unused governance-related code")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/281"},"Fix typo in stake-pool help text and clarify drep queries arguments")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/280"},"Remove redundant conversions in JSON friendly instances ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/279"},"Regularise era based command structure")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/277"},"Simplify era handling")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/276"},"Remove ",(0,r.kt)("inlineCode",{parentName:"a"},"--conway-era")," flag")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/275"},"Era-based ",(0,r.kt)("inlineCode",{parentName:"a"},"stake-pool")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/274"},"Fix git revision in ",(0,r.kt)("inlineCode",{parentName:"a"},"version")," command")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-cli/pull/273"},"cardano-cli-8.8.0.0"))),(0,r.kt)("h3",{id:"cardano-api"},"cardano-api"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/265"},"Organise eon re-exports. Export ",(0,r.kt)("inlineCode",{parentName:"a"},"MaryEraOnwards"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/264"},"cardano-api-internal: ProposeNewCommittee: StakeKey -> CommitteeColdKey")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/262"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.21.0.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/256"},"Delete unused eon constraints")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/255"},"Export ByronEraOnly")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/254"},"Replace only ",(0,r.kt)("inlineCode",{parentName:"a"},"AdaSupportedInEra")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"MultiAssetSupportedInEra")," with eons")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/250"},"New version ",(0,r.kt)("inlineCode",{parentName:"a"},"cardano-api-8.20.2.0"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/249"},"Add JSON instance for Hash GenesisKey ")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/248"},"Support more ledger constraints")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/247"},"Rename ",(0,r.kt)("inlineCode",{parentName:"a"},"FeatureInEra")," to ",(0,r.kt)("inlineCode",{parentName:"a"},"Eon"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/246"},"Release 8.20.1.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/245"},"Fix DRep Stake and DRep Stake queries for empty lists")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/244"},"Delete ",(0,r.kt)("inlineCode",{parentName:"a"},"TxFeesExplicitInEra")," and ",(0,r.kt)("inlineCode",{parentName:"a"},"TxFeesImplicitInEra"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/243"},"Fix typos in some deserialization error messages")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/pull/240"},"Fix querying for dreps in ",(0,r.kt)("inlineCode",{parentName:"a"},"transaction build")," in eras before conway"))),(0,r.kt)("h3",{id:"cardano-node"},"cardano-node"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5480"},"Trace Configuration Trace Message Enhancement")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5474"},"Bump versions for cardano-node-8.4.0-pre")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5467"},"Updated dependencies for cardano-node-8.4.0-pre")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5466"},"cardano-node: reduce orphan instances"))),(0,r.kt)("h3",{id:"cardano-testnet"},"cardano-testnet"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5474"},"Bump versions for cardano-node-8.4.0-pre")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5471"},"Update to cardano-cli 8.9.0.0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5467"},"Updated dependencies for cardano-node-8.4.0-pre"))),(0,r.kt)("h3",{id:"docs"},"docs"),(0,r.kt)("h3",{id:"ci--project-maintenance"},"CI & project maintenance"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f91da2e3.8628ec31.js b/assets/js/f91da2e3.8628ec31.js new file mode 100644 index 0000000000..dfaa7ee0d5 --- /dev/null +++ b/assets/js/f91da2e3.8628ec31.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[35044],{84274:e=>{e.exports=JSON.parse('{"permalink":"/page/77","page":77,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/76","nextPage":"/page/78","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/f92f97ae.169b8e0e.js b/assets/js/f92f97ae.169b8e0e.js new file mode 100644 index 0000000000..1b29dba0f5 --- /dev/null +++ b/assets/js/f92f97ae.169b8e0e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92530],{80901:e=>{e.exports=JSON.parse('{"permalink":"/page/6","page":6,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/5","nextPage":"/page/7","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/f96c80d6.fda68eb6.js b/assets/js/f96c80d6.fda68eb6.js new file mode 100644 index 0000000000..862bb80a1d --- /dev/null +++ b/assets/js/f96c80d6.fda68eb6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90288],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>g});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},m=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},p=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),u=c(t),p=a,g=u["".concat(s,".").concat(p)]||u[p]||d[p]||i;return t?r.createElement(g,o(o({ref:n},m),{},{components:t})):r.createElement(g,o({ref:n},m))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=p;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var c=2;c<i;c++)o[c]=t[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,t)}p.displayName="MDXCreateElement"},75947:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=t(87462),a=(t(67294),t(3905));const i={title:"Performance & Tracing Update",slug:"2023-12-04-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-12-04-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-12-04-performance-and-tracing.md",source:"@site/blog/2023-12-04-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2023-12-04T00:00:00.000Z",formattedDate:"December 4, 2023",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.085,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2023-12-04-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-12-06-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2023-12-01-hydra"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Infrastructure",id:"infrastructure",level:3},{value:"Tracing",id:"tracing",level:3},{value:"Nomad backend",id:"nomad-backend",level:3}],m={toc:c},u="wrapper";function d(e){let{components:n,...t}=e;return(0,a.kt)(u,(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Release benchmarking for node ",(0,a.kt)("inlineCode",{parentName:"li"},"8.7.0"),". Also, we performed the first-ever Conway benchmarks."),(0,a.kt)("li",{parentName:"ul"},"Development: Conway capability of our workload generator has been implemented and merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master"),"."),(0,a.kt)("li",{parentName:"ul"},"Infrastructure: Changes to our workbench facilitating easy access and archiving of raw benchmarking data."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Quality-of-life improvements to tracing output and addition of a test suite."),(0,a.kt)("li",{parentName:"ul"},"Nomad cluster: Expand the list of benchmarking profiles that can be run on Nomad; generalize cluster topology generation.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"A full set of benchmarks for node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.0")," has been performed, with the focus of enabling the next mainnet release. We've measured slight performance improvements of ",(0,a.kt)("inlineCode",{parentName:"p"},"8.7.0")," over ",(0,a.kt)("inlineCode",{parentName:"p"},"8.6.0"),", and can confirm no regressions have been introduced."),(0,a.kt)("p",null,"Furthermore, we've run system integration level benchmarks in the Conway era for the first time, on the same node version.\nOnly Babbage-compatible workloads have entered comparison as to ascertain performance consequences of only changing the ledger version, and nothing else. The results are very promising, as we could show that switching ledger versions for existing workloads does not come with a performance penalty."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Our transaction generator has been extended to be able to submit all present benchmarking workflows in the Conway era.\nCurrently, we're looking into adding Conway-exclusive features, such as ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep")," registration. Those would be submitted at the very beginning of a run, as we're interested in seeing potential performance implications of maintaining ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep")," sets of varying size in ledger. Furthermore, this will serve as the basis for future development Conway-exclusive workloads, such as governance actions or vote tallying."),(0,a.kt)("h3",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"As our workbench will be pivotal in orchestrating and organizing benchmarking runs on the Nomad cloud backend, we've\nimproved how raw benchmark data is tagged, which metadata is documented in an automated manner. This enhances both access to existing run sets, as well as maintaining an archive for benchmarking data."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"The new tracing system is currently receiving usability improvements as we're reworking the output of several trace messages.\nAdditionally, we're setting up a rigorous test suite to provide safety for future development of and component integration inte the system."),(0,a.kt)("h3",{id:"nomad-backend"},"Nomad backend"),(0,a.kt)("p",null,"We've been working on adapting various benchmarking workloads, which are defined by our workbench's profiles, to running on the new infrastructure. This mainly concerns a workload utilizing Plutus, as well as peer-to-peer flavoured workloads. Furthermore, we're implementing a solution to create all possible cluster topologies algorithmically, instead of still using fixed literal definitions for some cases."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f96c80dc.98a47486.js b/assets/js/f96c80dc.98a47486.js new file mode 100644 index 0000000000..3a2b192db6 --- /dev/null +++ b/assets/js/f96c80dc.98a47486.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[70641],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>p});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),c=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=c(r),h=n,p=u["".concat(s,".").concat(h)]||u[h]||m[h]||i;return r?a.createElement(p,o(o({ref:t},d),{},{components:r})):a.createElement(p,o({ref:t},d))}));function p(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var c=2;c<i;c++)o[c]=r[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},9022:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const i={title:"Hydra Team Update",slug:"2023-09-01-hydra",authors:["v0d1ch"],tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-09-01-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-09-01-hydra.md",source:"@site/blog/2023-09-01-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-09-01T00:00:00.000Z",formattedDate:"September 1, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.93,hasTruncateMarker:!1,authors:[{name:"Sasha Bogicevic",title:"Hydra Software Engineer",url:"https://github.com/v0d1ch",imageURL:"https://github.com/v0d1ch.png",key:"v0d1ch"}],frontMatter:{title:"Hydra Team Update",slug:"2023-09-01-hydra",authors:["v0d1ch"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-09-01-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-09-01-ledger"}},s={authorsImageUrls:[void 0]},c=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],d={toc:c},u="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team focused primarily on changes needed in the network\nlayer and have the first draft document related to needed design. They also\nimproved the user experience by allowing a commit using inline datums.\nDiscussed the off-chain governance with researchers and improved internal model\ntests. "),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly report published"),(0,n.kt)("li",{parentName:"ul"},"Small changes to hydraw and tutorial in light of the Masterclass"),(0,n.kt)("li",{parentName:"ul"},"Investigated a bug and saw it was solved by recent developments"),(0,n.kt)("li",{parentName:"ul"},"Improved the model tests by fully validating L1 transactions"),(0,n.kt)("li",{parentName:"ul"},"Enhanced the /commit API to also allow commit from scripts with inline datums (user request)"),(0,n.kt)("li",{parentName:"ul"},"Discussed off-chain governance with IOG and CF researchers"),(0,n.kt)("li",{parentName:"ul"},"Drafted a first network specification document in the context of Network resilience")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},'Have a clear understanding of the changes we need for the "Improve network resiliency" feature'),(0,n.kt)("li",{parentName:"ul"},"Groomed and agreed plan on incremental commits/decommits"),(0,n.kt)("li",{parentName:"ul"},"Updated tutorials including CI workflows to check consistency"),(0,n.kt)("li",{parentName:"ul"},"Update to GHC 9.6 and latest cardano dependencies (ledger/plutus)")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f9781350.5fe38186.js b/assets/js/f9781350.5fe38186.js new file mode 100644 index 0000000000..d3e0b38047 --- /dev/null +++ b/assets/js/f9781350.5fe38186.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[95174],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>h});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),m=c(t),u=a,h=m["".concat(s,".").concat(u)]||m[u]||p[u]||i;return t?r.createElement(h,o(o({ref:n},d),{},{components:t})):r.createElement(h,o({ref:n},d))}));function h(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=u;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[m]="string"==typeof e?e:a,o[1]=l;for(var c=2;c<i;c++)o[c]=t[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,t)}u.displayName="MDXCreateElement"},34221:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=t(87462),a=(t(67294),t(3905));const i={title:"Performance & Tracing Update",slug:"2024-03-27-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-27-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-27-performance-and-tracing.md",source:"@site/blog/2024-03-27-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-03-27T00:00:00.000Z",formattedDate:"March 27, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:2.99,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-03-27-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2024-03-27-mithril"},nextItem:{title:"Hydra Team Update",permalink:"/2024-03-22-hydra"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3},{value:"UTxO Growth",id:"utxo-growth",level:3},{value:"Nomad cluster",id:"nomad-cluster",level:3}],d={toc:c},m="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(m,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: Release benchmarks for ",(0,a.kt)("inlineCode",{parentName:"li"},"8.9.1")," have been performed and analysed."),(0,a.kt)("li",{parentName:"ul"},"Development: We've implemented a benchmarking setup for UTxO-HD's LMDB (on-disk) backend."),(0,a.kt)("li",{parentName:"ul"},"Workbench: The now modular, ",(0,a.kt)("inlineCode",{parentName:"li"},"nix"),"-based genesis creation has been merged to ",(0,a.kt)("inlineCode",{parentName:"li"},"master"),"; ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep")," delegation and integration of a new ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-cli")," command are ongoing."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Benchmarking the new handle registry feature in ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-tracer")," is complete; quality-of-life improvements to Prometheus output."),(0,a.kt)("li",{parentName:"ul"},"UTxO Growth: We've adjusted our framework to support running UTxO scaling benchmarks on both a single node and a cluster."),(0,a.kt)("li",{parentName:"ul"},"Nomad cluster: new multi-cluster support with the capability to quickly adjust to changes in deployed hardware")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've performed a full set of release benchmarks for Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.1"),". Comparing with release ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.0"),", we could not detect any performance risks for that version. "),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"In context of UTxO scaling, we want to assess the feasability of the current on-disk solution (which is LMDB) of a UTxO-HD enabled node. Using that, the UTxO set will be kept\nin live tables and snapshots on disk, significantly reducing memory requirements. "),(0,a.kt)("p",null,"We've implemented a benchmark setting, and a node service configuration, supporting direct disk access to a dedicated device which can be initialized with optimized\nfile system and mount settings. It's purpose is to serve as storage for the highly performance-critical disk I/O of the LMDB component."),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"Our automation for creating all flavours of geneses has seen cleanup and refactoring - which has been merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". It can now use a more principled, and rigorously checked, modular approach\nto define, create and cache the desired genesis files. "),(0,a.kt)("p",null,"Working on integrating new ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-cli")," functionality in our automation is ongoing. The performance workbench will support a different, and updated, CLI command which will allow injection of ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep")," delegations into genesis."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"Benchmarking ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-tracer"),"'s new handle registry feature has been performed and evaluated. We're satisfied with seeing clear performance improvements along with cleaner code, and much better test coverage.\nEspecially allocation rate and number of garbage collections (GC) could be significantly reduced, along with the CPU time required for performing GCs. This will allow for higher trace message throughput given\nidentiacal system resources - plus less system calls issued to the OS in the process. "),(0,a.kt)("p",null,"Furthermore, the new tracing system is getting improvements for its Prometheus output - like providing version numbers as metrics, or annotating metrics with their type - enhancing the output's overall utility."),(0,a.kt)("h3",{id:"utxo-growth"},"UTxO Growth"),(0,a.kt)("p",null,"The performance workbench now supports profiles aimed at simulating UTxO growth both for a single node and an entire cluster. Additionally, simulating different\nRAM sizes in combination with specific UTxO set sizes is supported. For a single block producing node, the focus is on quick turnaround when running\na benchmark, gaining insight into the node's RAM usage and possible impact on the forging loop. "),(0,a.kt)("p",null,"The cluster profiles enable capturing block diffusion metrics as well, however they require a much longer runtime. We can now successfully benchmark the node's behaviour\nwhen dealing with UTxO set sizes 4x - 5x of current mainnet, as well as a possible change in behaviour when operating close to phsyical RAM limit due to that."),(0,a.kt)("h3",{id:"nomad-cluster"},"Nomad cluster"),(0,a.kt)("p",null,"Our backend now supports allocating and deploying Nomad jobs for multiple clusters simultaneously - all while keeping existing automations operational. We've taken special precautions\na cluster, as seen by the backend, can be efficiently and easily modified to reflect newly deployed, or changed, hardware. Additionally, we've added support for host volumes inside a Nomad\nallocation - which will be needed for benchmarking UTxO-HD's on-disk solution."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f99e473b.ce884dfe.js b/assets/js/f99e473b.ce884dfe.js new file mode 100644 index 0000000000..563d9c9ca1 --- /dev/null +++ b/assets/js/f99e473b.ce884dfe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[88904],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),p=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=n,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?i.createElement(d,o(o({ref:t},u),{},{components:r})):i.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,r)}c.displayName="MDXCreateElement"},29417:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-04-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-04-17-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-17-mithril.md",source:"@site/blog/2024-04-17-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-04-17T00:00:00.000Z",formattedDate:"April 17, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.625,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-04-17-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"DB Sync Team Update",permalink:"/2024-04-17-db-sync"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2024-04-15-node-cli-api"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,n.kt)("p",null,"This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling the signature and proof generation for ",(0,n.kt)("inlineCode",{parentName:"p"},"mainnet")," with the compression of the transaction Merkle tree by using sub-Merkle trees of transactions by block ranges. They also made progress in designing low latency certification, investigated a memory leak in the signature/proof process, and worked on retrieving the tip of the chain with the Pallas chain observer. The team almost completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they completed the refactoring of the database providers of the aggregator and re-span the ",(0,n.kt)("inlineCode",{parentName:"p"},"testing-sanchonet")," network following the release of Cardano node ",(0,n.kt)("inlineCode",{parentName:"p"},"8.10.0-pre"),"."),(0,n.kt)("p",null,"Finally, the team made some optimizations on the compilation of their pre-built binaries to fix panics occurring on CPUs without ADX instructions, and created a network configuration file on the repository to facilitate automatic compatibility checks."),(0,n.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Create file with Cardano minimum versions in repository")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1615"},"#1615")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Deploy ",(0,n.kt)("inlineCode",{parentName:"strong"},"testing-mainnet")," network")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1617"},"#1617")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Refactor ",(0,n.kt)("inlineCode",{parentName:"strong"},"database")," module in aggregator")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1583"},"#1583")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Client deprecation notice should be written in JSON when ",(0,n.kt)("inlineCode",{parentName:"strong"},"--json")," option is used")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1616"},"#1616")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Activate ",(0,n.kt)("inlineCode",{parentName:"strong"},"portable")," feature in ",(0,n.kt)("inlineCode",{parentName:"strong"},"mithril-stm")," by default")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1613"},"#1613")),(0,n.kt)("li",{parentName:"ul"},"Completed the issue ",(0,n.kt)("strong",{parentName:"li"},"Prepare ",(0,n.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet")," for respin with Cardano ",(0,n.kt)("inlineCode",{parentName:"strong"},"8.10"))," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1618"},"#1618")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Store Block Range Merkle roots in signer and aggregator databases")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1633"},"#1633")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Memory leak in Cardano transactions signature/proof")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1629"},"#1629")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Mithril relay broadcasts signer registrations with P2P PubSub")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1587"},"#1587")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," supports retrieving the Chain Point of the tip of the chain")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1589"},"#1589")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Add section for manual setup of squid in SPO guide")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1610"},"#1610")),(0,n.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,n.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f9afe2d8.10492e18.js b/assets/js/f9afe2d8.10492e18.js new file mode 100644 index 0000000000..611d92fc8c --- /dev/null +++ b/assets/js/f9afe2d8.10492e18.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[25094],{43740:e=>{e.exports=JSON.parse('{"permalink":"/tags/ledger","page":1,"postsPerPage":5,"totalPages":9,"totalCount":44,"nextPage":"/tags/ledger/page/2","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/f9c65c8d.e74d608c.js b/assets/js/f9c65c8d.e74d608c.js new file mode 100644 index 0000000000..5150966ef2 --- /dev/null +++ b/assets/js/f9c65c8d.e74d608c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[17813],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),m=c(n),u=a,h=m["".concat(s,".").concat(u)]||m[u]||p[u]||o;return n?r.createElement(h,i(i({ref:t},d),{},{components:n})):r.createElement(h,i({ref:t},d))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},32624:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Performance & Tracing Update",slug:"2024-05-07-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-05-07-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-05-07-performance-and-tracing.md",source:"@site/blog/2024-05-07-performance-and-tracing.md",title:"Performance & Tracing Update",description:"High level summary",date:"2024-05-07T00:00:00.000Z",formattedDate:"May 7, 2024",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:4.045,hasTruncateMarker:!1,authors:[{name:"Michael Karg",title:"Performance and Tracing Team Lead",url:"https://github.com/mgmeier",imageURL:"https://github.com/mgmeier.png",key:"mgmeier"}],frontMatter:{title:"Performance & Tracing Update",slug:"2024-05-07-performance-and-tracing",authors:"mgmeier",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-05-08-ledger"},nextItem:{title:"Network Team Update",permalink:"/2024-05-06-network"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level overview",id:"low-level-overview",level:2},{value:"Benchmarking",id:"benchmarking",level:3},{value:"Development",id:"development",level:3},{value:"Workbench",id:"workbench",level:3},{value:"Tracing",id:"tracing",level:3},{value:"UTxO Growth",id:"utxo-growth",level:3},{value:"UTxO-HD / LMDB",id:"utxo-hd--lmdb",level:3}],d={toc:c},m="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Benchmarking: We've performed and analysed benchmarks in the Conway era, with ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep"),"s injected."),(0,a.kt)("li",{parentName:"ul"},"Development: Tracing ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep")," data has been implemented; improved error reporting in ",(0,a.kt)("inlineCode",{parentName:"li"},"tx-generator")," and analysis quick queries are ongoing work."),(0,a.kt)("li",{parentName:"ul"},"Workbench: We now fully supports the new CLI ",(0,a.kt)("inlineCode",{parentName:"li"},"create-testnet-data")," command and ",(0,a.kt)("inlineCode",{parentName:"li"},"DRep")," injection into Conway genesis. Haskell profile definition work is ongoing."),(0,a.kt)("li",{parentName:"ul"},"Tracing: Various additions to Node metrics are being worked on, such as build info and block producer role. Metrics naming will be further harmonized."),(0,a.kt)("li",{parentName:"ul"},"UTxO Growth: We've finalized analysis and reports of all benchmarks targeting UTxO scaling scenarios."),(0,a.kt)("li",{parentName:"ul"},"UTxO-HD / LMDB: We've performed multiple runs benchmarking the LMDB (on-disk) backend of UTxO-HD.")),(0,a.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,a.kt)("h3",{id:"benchmarking"},"Benchmarking"),(0,a.kt)("p",null,"We've run and analyzed a full set of benchmarks comparing the Conway ledger against the Babbage one, on Node ",(0,a.kt)("inlineCode",{parentName:"p"},"8.10.1-pre"),". For Conway, our additional goal was to measure a vanilla ledger state against one with a large amount of ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s - and delegations to those ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s - present. The\nbenchmarks used our existing value and Plutus workloads to remain comparable to each other."),(0,a.kt)("h3",{id:"development"},"Development"),(0,a.kt)("p",null,"Additional ledger queries for the tracing system have been implemented and merged to ",(0,a.kt)("inlineCode",{parentName:"p"},"master"),". Those capture the amount of, and the number\nof existing delegations to, ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s as trace output - and thus enable creating a metric on top of it, which can then be monitored."),(0,a.kt)("p",null,"The (in our case) non-deterministic nature of shutting down different cluster setups - both local and cloud-based - carries the possibility\nthat our transaction generation service occasionally misclassifies a regular shutdown as an error. Furthermore, in the case of network malfunctions, the service's errors are too unspecific. By implementing thread labels for submission threads, corresponding to each\nsubmission target, and by adding custom smart signal handlers, we'll improve the generator's error reporting significantly."),(0,a.kt)("p",null,"The initial tests for quick queries are being developed further. We're moving towards a principled, and generalized, syntax that supports both\nprepared, parametrizable queries from the application code, as well as ad-hoc queries stated e.g. on the command line."),(0,a.kt)("h3",{id:"workbench"},"Workbench"),(0,a.kt)("p",null,"The performance workbench now fully supports the new ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-cli")," command ",(0,a.kt)("inlineCode",{parentName:"p"},"create-test-data"),". We use it to inject both stake\ndelegated to stake pools into genesis, and - recently added - stake delegated to ",(0,a.kt)("inlineCode",{parentName:"p"},"DRep"),"s as well. It has been proven very useful\nand versatile so far, and will eventually replace the current ",(0,a.kt)("inlineCode",{parentName:"p"},"create-staked")," command. "),(0,a.kt)("p",null,"Work on porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is still ongoing; currently, we're integrating all new profile families that came out of the UTxO growth scenarios."),(0,a.kt)("h3",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"New metrics are being implemented for the tracing system. They will also be part of Prometheus output and as such accessible to\nmonitoring services. There'll be ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),"'s detailed build info, as well as a node's block producer status, meaning the presence of forger credentials. Those new metrics are being backported to the legacy tracing system, too. "),(0,a.kt)("p",null,"Furthermore, we've determined the need to revisit metrics naming. There's still a divergence between naming in the legacy\nand the new system. While this could be mitigated by passing in extra config options, we think that a transition to the new system\nshould not impose any unnecessary effort for node operators. A design to fully harmonize the existing naming schemata is currently being\nset up."),(0,a.kt)("h3",{id:"utxo-growth"},"UTxO Growth"),(0,a.kt)("p",null,"The UTxO Growth benchmarking series has been finalized. We've finished analyses and reports for all scenarios that\nwere tested and explored. "),(0,a.kt)("p",null,"The overarching questions were, given a network of 32GB host systems, how large can the UTxO set grow in general,\nhow large can it grow before the nodes have to operate close to the RAM limit over extended periods of time, and how does scaling the UTxO set size affect network metrics, such as block diffusion. "),(0,a.kt)("p",null,'A dedicated "UTxO Scaling Squad" was set up, who was driving the entire process, and we enjoyed a very focused and productive collaboration with them.'),(0,a.kt)("h3",{id:"utxo-hd--lmdb"},"UTxO-HD / LMDB"),(0,a.kt)("p",null,"Last not least, we were able to benchmark UTxO-HD's on-disk backend on a network of block producing nodes, on a recent ",(0,a.kt)("inlineCode",{parentName:"p"},"8.9.1")," version\nof ",(0,a.kt)("inlineCode",{parentName:"p"},"cardano-node"),". The setup allowed of using a direct access SSD device for performance critical disk I/O, whereas the bulk of ChainDB and ledger snapshots remained on a standard AWS EBS volume. "),(0,a.kt)("p",null,"The benchmarks comprised both optimistic and pessimistic RAM assumptions for the host OS to further optimize I/O via page cache, as well as medium and large UTxO set sizes - the latter almost tripling current mainnet's size. The results were promising; the LMDB backend has proven to be able to accomodate large UTxO sets using significantly less RAM than the default all-in-memory node - and with a more than reasonable trade-off performance-wise. Furthermore, running with pessimistic assumptions, the performance impact on LMDB was very moderate only."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fa00d705.b0c606bd.js b/assets/js/fa00d705.b0c606bd.js new file mode 100644 index 0000000000..52174f87c0 --- /dev/null +++ b/assets/js/fa00d705.b0c606bd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[26710],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>f});var r=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){o(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,o=function(e,t){if(null==e)return{};var a,r,o={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,o=e.mdxType,n=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=p(a),m=o,f=u["".concat(s,".").concat(m)]||u[m]||c[m]||n;return a?r.createElement(f,l(l({ref:t},d),{},{components:a})):r.createElement(f,l({ref:t},d))}));function f(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=a.length,l=new Array(n);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var p=2;p<n;p++)l[p]=a[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},94828:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>n,metadata:()=>i,toc:()=>p});var r=a(87462),o=(a(67294),a(3905));const n={title:"SRE Team Update",slug:"2023-11-24-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-11-24-sre",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-11-24-sre.md",source:"@site/blog/2023-11-24-sre.md",title:"SRE Team Update",description:"High level summary",date:"2023-11-24T00:00:00.000Z",formattedDate:"November 24, 2023",tags:[{label:"sre",permalink:"/tags/sre"}],readingTime:3.115,hasTruncateMarker:!1,authors:[{name:"John Lotoski",title:"Service Reliability Engineer",url:"https://github.com/johnalotoski",imageURL:"https://github.com/johnalotoski.png",key:"johnalotoski"}],frontMatter:{title:"SRE Team Update",slug:"2023-11-24-sre",authors:"johnalotoski",tags:["sre"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2023-11-24-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2023-11-22-ledger"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Capkgs",id:"capkgs",level:3},{value:"Cardano-node",id:"cardano-node",level:3},{value:"Cardano-parts",id:"cardano-parts",level:3},{value:"Cardano-playground",id:"cardano-playground",level:3},{value:"Offchain-metadata-tools",id:"offchain-metadata-tools",level:3}],d={toc:p},u="wrapper";function c(e){let{components:t,...a}=e;return(0,o.kt)(u,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,o.kt)("p",null,"The SRE team continues work on cardano environment improvements and general environment maintenance."),(0,o.kt)("p",null,"Some notable recent changes, updates or improvements include:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The cardano-node nixos service now supports SIGHUP p2p topology reloading when the ",(0,o.kt)("inlineCode",{parentName:"li"},"useSystemdReload")," option is enabled")),(0,o.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,o.kt)("h3",{id:"capkgs"},"Capkgs"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Update cardano-db-sync and offchain-metadata-tools package paths and/or references: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/capkgs/compare/994696f...3ce364f"},"capkgs-compare"))),(0,o.kt)("h3",{id:"cardano-node"},"Cardano-node"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Optionally have cardano-node nixos service utilize SIGHUP p2p topology reload: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/5537"},"cardano-node-pull-5537"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Creates a useSystemdReload bool option for the cardano-node nixos service"),(0,o.kt)("li",{parentName:"ul"},"This will move the topology file(s) to ",(0,o.kt)("inlineCode",{parentName:"li"},"/etc/cardano-node/topology-$i.yaml")," and inject systemd reload hooks for p2p configured cardano-node instances"),(0,o.kt)("li",{parentName:"ul"},"Moving topology files to ",(0,o.kt)("inlineCode",{parentName:"li"},"/etc")," also allows for manual topology updates when a quick test is needed and full service re-deployment isn't desired")))),(0,o.kt)("h3",{id:"cardano-parts"},"Cardano-parts"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Adds a metadata server profile and a number of other features and improvements: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-parts/pull/20"},"cardano-parts-pull-20"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Adds a new metadata-service profile"),(0,o.kt)("li",{parentName:"ul"},"Adds metadata service and pkg configuration options for cardano-groups to utilize the metadata-server profile"),(0,o.kt)("li",{parentName:"ul"},"Adds a cardano-webserver profile for multiple virtualHosts and TLS ACME server aliases for a cluster's static needs, with each cached behind varnish"),(0,o.kt)("li",{parentName:"ul"},"Adds extra node list producers and public producers for cardano-node-topology profile"),(0,o.kt)("li",{parentName:"ul"},"Adds delegation amounts to cardano-postgres psql prepared query show_pools_block_history_in_epoch"),(0,o.kt)("li",{parentName:"ul"},"Adds select systemd metrics reporting to grafana-agent profile"),(0,o.kt)("li",{parentName:"ul"},"Adds a bookRelay multivalue DNS option to disambiguate with groupRelay multivalue DNS"),(0,o.kt)("li",{parentName:"ul"},"Adds an opsLib library to the cardano-parts lib flakeModule and refactors some common code into it"),(0,o.kt)("li",{parentName:"ul"},"Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo"),(0,o.kt)("li",{parentName:"ul"},"Adds job-gen-env-config for both release and pre-release configuration files to support configuration book generation"),(0,o.kt)("li",{parentName:"ul"},"Adds support for grafana recording rules in the template files"),(0,o.kt)("li",{parentName:"ul"},"Improves cardano-group profile handling of producers with respect to multiple instance nodes"),(0,o.kt)("li",{parentName:"ul"},"Improves grafana-agent profile metrics handling for multi-instance cardano-node servers"),(0,o.kt)("li",{parentName:"ul"},"Improves smash service preStart handling while waiting for a node socket"),(0,o.kt)("li",{parentName:"ul"},"Updates Justfile for ERA_CMD demo support"),(0,o.kt)("li",{parentName:"ul"},"Migrates default grafana cloud node exporter, varnish alert and recording rules to grafana alert and recording rule templates"),(0,o.kt)("li",{parentName:"ul"},"Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile"),(0,o.kt)("li",{parentName:"ul"},"Defaults cardano-postgres profile psqlrc use to false")))),(0,o.kt)("h3",{id:"cardano-playground"},"Cardano-playground"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Adds a new testnet metadata server, cluster webserver, and other improvements: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-playground/pull/6"},"cardano-playground-pull-6"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Adds a new metadata server"),(0,o.kt)("li",{parentName:"ul"},"Adds a new webserver for the cluster's static virtualhost needs"),(0,o.kt)("li",{parentName:"ul"},"Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo"),(0,o.kt)("li",{parentName:"ul"},"Adds systemd metrics monitoring to the cluster"),(0,o.kt)("li",{parentName:"ul"},"Resizes sanchonet machines to support the growing chain"),(0,o.kt)("li",{parentName:"ul"},"Completes migration of preprod from world"),(0,o.kt)("li",{parentName:"ul"},"Updates groups to utilize both bookRelay and groupRelay multivalue DNS attributes"),(0,o.kt)("li",{parentName:"ul"},"Updates Justfile for ERA_CMD demo support"),(0,o.kt)("li",{parentName:"ul"},"Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile"),(0,o.kt)("li",{parentName:"ul"},"Migrates book static code to playground from world, with refactor, cleanup and updates"),(0,o.kt)("li",{parentName:"ul"},"Migrates default grafana cloud node exporter, varnish alert and recording rules to declarative grafana alert and recording rules")))),(0,o.kt)("h3",{id:"offchain-metadata-tools"},"Offchain-metadata-tools"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Adds db password option with obfuscation plus misc improvements: ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/offchain-metadata-tools/pull/61"},"offchain-metadata-tools-pull-61"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Adds db password connection option and obfuscates passwords in output for metadata server, sync, webhook services"),(0,o.kt)("li",{parentName:"ul"},"Updates the nixos service for metadata-webhook service to optionally use an environmentFile for secrets: cfg.environmentFile"),(0,o.kt)("li",{parentName:"ul"},"Moves from std use in the nix flake to standard flake schema"),(0,o.kt)("li",{parentName:"ul"},"Fixes hydra CI failures"),(0,o.kt)("li",{parentName:"ul"},"Builds update-docs in hydra to avoid long local build times"),(0,o.kt)("li",{parentName:"ul"},"Removes deprecated tullia"),(0,o.kt)("li",{parentName:"ul"},"Removes deprecated check-hydra from pkgs"),(0,o.kt)("li",{parentName:"ul"},"Removes deprecated bors files and references")))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fa0b1b5d.b0c683e3.js b/assets/js/fa0b1b5d.b0c683e3.js new file mode 100644 index 0000000000..e3c095c454 --- /dev/null +++ b/assets/js/fa0b1b5d.b0c683e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[90056],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),c=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=c(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=c(r),u=n,h=m["".concat(p,".").concat(u)]||m[u]||d[u]||o;return r?a.createElement(h,l(l({ref:t},s),{},{components:r})):a.createElement(h,l({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[m]="string"==typeof e?e:n,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}u.displayName="MDXCreateElement"},62140:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-05-12-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-05-12-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-05-12-goedel.md",source:"@site/blog/2023-05-12-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-05-12T00:00:00.000Z",formattedDate:"May 12, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.445,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-05-12-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Crypto Team Update",permalink:"/2023-05-12-crypto"},nextItem:{title:"Hydra Team Update",permalink:"/2023-05-12-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],s={toc:c},m="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"This sprint the team had two paper accepted for ICE 2023\n(",(0,n.kt)("a",{parentName:"p",href:"https://www.discotec.org/2023/ice"},"https://www.discotec.org/2023/ice"),"). The event will be held in Lisbon\non 19th June 2023. The papers will be published in EPTCS."),(0,n.kt)("h2",{id:"details"},"Details"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Application layer for Praos formalisation in review.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Participating in interactive peer review process for ICE 2023.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"The team is hiring a performance engineering intern - ",(0,n.kt)("a",{parentName:"p",href:"https://apply.workable.com/io-global/j/BFEC5B0AFF/"},"https://apply.workable.com/io-global/j/BFEC5B0AFF/")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fa45022f.01ca5b1b.js b/assets/js/fa45022f.01ca5b1b.js new file mode 100644 index 0000000000..e086c418b2 --- /dev/null +++ b/assets/js/fa45022f.01ca5b1b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40870],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=u(r),d=n,h=m["".concat(p,".").concat(d)]||m[d]||c[d]||l;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:n,i[1]=o;for(var u=2;u<l;u++)i[u]=r[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},25121:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-01-31-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-01-31-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-31-ledger.md",source:"@site/blog/2024-01-31-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-01-31T00:00:00.000Z",formattedDate:"January 31, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.685,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-01-31-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-02-02-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-01-31-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements",id:"improvements",level:3},{value:"Releasing",id:"releasing",level:3}],s={toc:u},m="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"One very important Conway feature that became available since last report is the ability\nfor Stake Pool Operators to vote on some of the security relevant protocol parameter\nupdates. We organized proposal hierarchy into a cohesive implementation, which together\nwith good tests gives us confidence in its correctness."),(0,n.kt)("p",null,"We also fixed a few important bugs:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Preventing Constitutional Committee Members from voting on governance actions that they\nshould not be allowed to vote on."),(0,n.kt)("li",{parentName:"ul"},"Prevent deposits from appearing in orphaned reward accounts after the staking credential\nhas been unregistered, but before the proposal procedure deposit has been returned."),(0,n.kt)("li",{parentName:"ul"},"Ensure Sets are encoded in CBOR with tag 258 by default")),(0,n.kt)("p",null,"Further improvements in testing tools and addition of more tests."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3982"},"pull-3982")," - Added SPO voting thresholds for security relevant parameters"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3978"},"pull-3978")," - Proposals pruning rewrite"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4003"},"pull-4003")," - Prefix Set encoding with tag 258"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3999"},"pull-3999")," - Add PParamUpdates to the plutus context, by transforming them to Plutus Data"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4008"},"pull-4008")," - Fixed a bug in GOV rule"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4013"},"pull-4013")," - Remove ",(0,n.kt)("inlineCode",{parentName:"li"},"EnactState")," from ",(0,n.kt)("inlineCode",{parentName:"li"},"ConwayGovState")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4025"},"pull-4025")," - Further improvements to ",(0,n.kt)("inlineCode",{parentName:"li"},"Proposals")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4021"},"pull-4021")," - Move unclaimed rewards from proposals to treasury")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3997"},"pull-3997")," - Added DRep delegation injections to Conway"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4023"},"pull-4023")," - Add a function ",(0,n.kt)("inlineCode",{parentName:"li"},"registerInState")," to ",(0,n.kt)("inlineCode",{parentName:"li"},"EraTransition")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4005"},"pull-4005")," - Fixes in Shelley ",(0,n.kt)("inlineCode",{parentName:"li"},"Imp")," framework and other small things"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4004"},"pull-4004")," - Verify that enacted gov action is removed"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4016"},"pull-4016")," - Fix Arbitrary instance and invariant checking for ",(0,n.kt)("inlineCode",{parentName:"li"},"Proposals"))),(0,n.kt)("h3",{id:"improvements"},"Improvements"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4002"},"pull-4002")," - Rename ",(0,n.kt)("inlineCode",{parentName:"li"},"Acnt")," to ",(0,n.kt)("inlineCode",{parentName:"li"},"Account"))),(0,n.kt)("h3",{id:"releasing"},"Releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4020"},"pull-4020")," - Remove usages of decommissioned zw3rk nix substituter"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4014"},"pull-4014")," - Update CHaP to fix ",(0,n.kt)("inlineCode",{parentName:"li"},"nix develop")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4011"},"pull-4011")," - Prepare ledger release"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4012"},"pull-4012")," - Updates for Plutus 1.21")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fa5dce7e.9604eeac.js b/assets/js/fa5dce7e.9604eeac.js new file mode 100644 index 0000000000..aa9e01f81f --- /dev/null +++ b/assets/js/fa5dce7e.9604eeac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[73001],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=p(r),d=n,f=m["".concat(s,".").concat(d)]||m[d]||u[d]||o;return r?a.createElement(f,l(l({ref:t},c),{},{components:r})):a.createElement(f,l({ref:t},c))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[m]="string"==typeof e?e:n,l[1]=i;for(var p=2;p<o;p++)l[p]=r[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},20486:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Goedel Team Update",slug:"2023-08-18-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-08-18-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-18-goedel.md",source:"@site/blog/2023-08-18-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-08-18T00:00:00.000Z",formattedDate:"August 18, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.72,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-08-18-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Consensus Team Update",permalink:"/2023-08-23-consensus"},nextItem:{title:"Hydra Team Update",permalink:"/2023-08-18-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],c={toc:p},m="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The team is currently formalising mini protocols and also further\ndeveloping the performance modelling prototype."),(0,n.kt)("h2",{id:"details"},"Details"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Development of an automated prover for showing conformance of\nprograms to state machines (as part of the mini-protocol framework)")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Completion of the documentation of the (current state of the)\nmini-protocol framework")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Discussion about two DeltaQ lectures with two practical sessions as part\nof 4th year masters course on distributed systemsby colleagues at UC\nLouvain in the Autumn")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Discussion about four DeltaQ lectures by colleagues at U. Bergen as part\nof a 5th year Masters course in the Autumn")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Adapted original DeltaQ implementation to the new typeclasses and\nwrote property tests for its algebraic laws"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fa82889f.3470ea34.js b/assets/js/fa82889f.3470ea34.js new file mode 100644 index 0000000000..cbec70f2b1 --- /dev/null +++ b/assets/js/fa82889f.3470ea34.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[64829],{50432:a=>{a.exports=JSON.parse('{"label":"network","permalink":"/tags/network","allTagsPath":"/tags","count":35}')}}]); \ No newline at end of file diff --git a/assets/js/fa9647fb.014f6b12.js b/assets/js/fa9647fb.014f6b12.js new file mode 100644 index 0000000000..2c2bd8ac90 --- /dev/null +++ b/assets/js/fa9647fb.014f6b12.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[34703],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,g=m["".concat(p,".").concat(d)]||m[d]||c[d]||l;return r?n.createElement(g,i(i({ref:t},u),{},{components:r})):n.createElement(g,i({ref:t},u))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:a,i[1]=o;for(var s=2;s<l;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},68670:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-03-27-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-03-27-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-27-ledger.md",source:"@site/blog/2024-03-27-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-03-27T00:00:00.000Z",formattedDate:"March 27, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:.81,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-03-27-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-03-28-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-03-27-mithril"}},p={authorsImageUrls:[void 0]},s=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements",id:"improvements",level:3},{value:"Releasing",id:"releasing",level:3}],u={toc:s},m="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"We continued focusing on adding tests and improving the test frameworks, including the quality of the generated data used in tests."),(0,a.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,a.kt)("h3",{id:"conway"},"Conway"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4205"},"pull-4205")," - Disable CC ratification when number of members is below ",(0,a.kt)("inlineCode",{parentName:"li"},"ppCommitteeMinSize")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4169"},"pull-4169")," - Add ",(0,a.kt)("inlineCode",{parentName:"li"},"GovInfoEvent")," and add event testing capabilities to ",(0,a.kt)("inlineCode",{parentName:"li"},"ImpTest")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4208"},"pull-4208")," - Remove missingScriptsSymmetricDifference")),(0,a.kt)("h3",{id:"testing"},"Testing"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4121"},"pull-4121")," - Newconstraints phase3, Add newtypes: Size, SizeSpec and class Sized."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4197"},"pull-4197")," - add unsafeMkProposals to be used for testing"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4200"},"pull-4200")," - Fix ",(0,a.kt)("inlineCode",{parentName:"li"},"prop_GOV")," so that it runs again"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4216"},"pull-4216")," - improve the ",(0,a.kt)("inlineCode",{parentName:"li"},"GOV")," generator to generate more interesting signals")),(0,a.kt)("h3",{id:"improvements"},"Improvements"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4195"},"pull-4195")," - Fix Haddocks CI"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4175"},"pull-4175")," - Set the ",(0,a.kt)("inlineCode",{parentName:"li"},"column-limit")," in ",(0,a.kt)("inlineCode",{parentName:"li"},"fourmolu")," config"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4210"},"pull-4210")," - Remove small steps test folder")),(0,a.kt)("h3",{id:"releasing"},"Releasing"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4206"},"pull-4206")," - Update hackage flake")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/faece773.bde66c0b.js b/assets/js/faece773.bde66c0b.js new file mode 100644 index 0000000000..a9941adbb8 --- /dev/null +++ b/assets/js/faece773.bde66c0b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[32023],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),d=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=d(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=d(a),h=r,m=c["".concat(p,".").concat(h)]||c[h]||u[h]||o;return a?n.createElement(m,i(i({ref:t},s),{},{components:a})):n.createElement(m,i({ref:t},s))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:r,i[1]=l;for(var d=2;d<o;d++)i[d]=a[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},58910:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var n=a(87462),r=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2023-02-03-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-02-03-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-03-hydra.md",source:"@site/blog/2023-02-03-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-02-03T00:00:00.000Z",formattedDate:"February 3, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.12,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-02-03-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-02-03-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-02-02-ledger"}},p={authorsImageUrls:[void 0]},d=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],s={toc:d},c="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"This week, the Hydra team completed the Hydra specification with a section about\nrollbacks and updated graphs\n(",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/448"},"#448"),"). In a next step,\nthe specification will be made more approachable and an open standard. They\nimproved their ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-cluster")," tool to launch a local ",(0,r.kt)("inlineCode",{parentName:"p"},"--devnet")," sandbox\nenvironment and continued aligning the ",(0,r.kt)("inlineCode",{parentName:"p"},"hydra-plutus")," scripts with the\nspecification by hardening the checks on ",(0,r.kt)("inlineCode",{parentName:"p"},"close")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"contest")," transactions."),(0,r.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Completed the specification with a section about rollbacks and updated graphs\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/448"},"#448"),", with a follow-up on making it more approachable and an open standard."),(0,r.kt)("li",{parentName:"ul"},"Continued spec review with internal auditor and incorporated changes."),(0,r.kt)("li",{parentName:"ul"},"Talked to TxPipe about how Demeter and Hydra could work together"),(0,r.kt)("li",{parentName:"ul"},"The ",(0,r.kt)("inlineCode",{parentName:"li"},"hydra-cluster")," executable can be used to launch a local ",(0,r.kt)("inlineCode",{parentName:"li"},"--devnet")," sandbox environment."),(0,r.kt)("li",{parentName:"ul"},"Reproduced the \u201chead being stuck on network outage\u201d bug",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed."))),(0,r.kt)("li",{parentName:"ul"},"Progressed with higher velocity by addressing more and more gaps ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/677"},"#677"))),(0,r.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Upstream our JSON instances to the ledger"),(0,r.kt)("li",{parentName:"ul"},"Close all transaction security related on-chain gaps"),(0,r.kt)("li",{parentName:"ul"},"Ideally release 0.9.0 with updated scripts"),(0,r.kt)("li",{parentName:"ul"},"Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fb0b9e22.64d28bab.js b/assets/js/fb0b9e22.64d28bab.js new file mode 100644 index 0000000000..d6bccefbb6 --- /dev/null +++ b/assets/js/fb0b9e22.64d28bab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[92522],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),s=u(r),c=n,d=s["".concat(p,".").concat(c)]||s[c]||m[c]||o;return r?a.createElement(d,i(i({ref:t},h),{},{components:r})):a.createElement(d,i({ref:t},h))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=c;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var u=2;u<o;u++)i[u]=r[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},79184:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const o={title:"Hydra Team Update",slug:"2023-06-23-hydra",authors:["ffakenz","pgrange"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2023-06-23-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-23-hydra.md",source:"@site/blog/2023-06-23-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-06-23T00:00:00.000Z",formattedDate:"June 23, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.79,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"},{name:"Pascal Grange",title:"Hydra Software Engineer",url:"https://github.com/pgrange",imageURL:"https://github.com/pgrange.png",key:"pgrange"}],frontMatter:{title:"Hydra Team Update",slug:"2023-06-23-hydra",authors:["ffakenz","pgrange"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-06-23-goedel"},nextItem:{title:"Network Team Update",permalink:"/2023-06-23-network"}},p={authorsImageUrls:[void 0,void 0]},u=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:u},s="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team shared progress updates during the monthly review\nmeeting (monthly report and video recording available soon) and started\nexperimenting on preview network with the new commit from external wallet\nfeature."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly report & review meeting, demonstrating ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/887"},"commit from external\nwallet")),(0,n.kt)("li",{parentName:"ul"},"Published regular ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/unstable/benchmarks/end-to-end-benchmarks"},"benchmarks for\nHydra")),(0,n.kt)("li",{parentName:"ul"},"Moved forward the journey for external commits using multiple script UTxOs\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/903"},"#903")),(0,n.kt)("li",{parentName:"ul"},"Changed the API to only put transaction id in snapshots, instead of the full\ntransactions ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/922"},"#922")," -> this\nis now evolved into fully addressing ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/728"},"#728")),(0,n.kt)("li",{parentName:"ul"},"Fuel marking is now optional as one can now commit from an external wallet\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/924"},"#924")),(0,n.kt)("li",{parentName:"ul"},"Add flag option to display node version on tui\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/934"},"#934"))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete external commits using multiple script UTxOs ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/903"},"#903")),(0,n.kt)("li",{parentName:"ul"},"New release 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"Dirtroad solution of improved persistence performance ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/913"},"#913"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fb63aa20.d49272a4.js b/assets/js/fb63aa20.d49272a4.js new file mode 100644 index 0000000000..63a6870156 --- /dev/null +++ b/assets/js/fb63aa20.d49272a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[58470],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=c(r),p=a,h=m["".concat(s,".").concat(p)]||m[p]||d[p]||o;return r?n.createElement(h,i(i({ref:t},u),{},{components:r})):n.createElement(h,i({ref:t},u))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=r[c];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}p.displayName="MDXCreateElement"},62389:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));const o={title:"Performance & tracing update",slug:"2022-12-14-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-12-14-performance-and-tracing",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-14-performance-and-tracing.md",source:"@site/blog/2022-12-14-performance-and-tracing.md",title:"Performance & tracing update",description:"High level summary",date:"2022-12-14T00:00:00.000Z",formattedDate:"December 14, 2022",tags:[{label:"performance-tracing",permalink:"/tags/performance-tracing"}],readingTime:3.095,hasTruncateMarker:!1,authors:[{name:"Serge Kosyrev",title:"Performance and Tracing Team Lead",url:"https://github.com/deepfire",imageURL:"https://github.com/deepfire.png",key:"deepfire"}],frontMatter:{title:"Performance & tracing update",slug:"2022-12-14-performance-and-tracing",authors:"deepfire",tags:["performance-tracing"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2022-12-14-node-cli-api"},nextItem:{title:"Network Team Update",permalink:"/2022-12-12-network"}},s={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Performance",id:"performance",level:2},{value:"Tracing",id:"tracing",level:2},{value:"Infrastructure",id:"infrastructure",level:2}],u={toc:c},m="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment."),(0,a.kt)("li",{parentName:"ol"},"A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery."),(0,a.kt)("li",{parentName:"ol"},"The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals."),(0,a.kt)("li",{parentName:"ol"},"Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started."),(0,a.kt)("li",{parentName:"ol"},"Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.")),(0,a.kt)("h2",{id:"performance"},"Performance"),(0,a.kt)("p",null,"The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload."),(0,a.kt)("p",null,"We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling."),(0,a.kt)("h2",{id:"tracing"},"Tracing"),(0,a.kt)("p",null,"After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical."),(0,a.kt)("p",null,"To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration."),(0,a.kt)("li",{parentName:"ol"},"The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.")),(0,a.kt)("p",null,"All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further."),(0,a.kt)("p",null,"In addition, we're still pursuing our performance-enhancing rework of the new tracing internals."),(0,a.kt)("h2",{id:"infrastructure"},"Infrastructure"),(0,a.kt)("p",null,"After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends."),(0,a.kt)("p",null,"Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it.\nThis means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis.\nThis will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports."),(0,a.kt)("p",null,"A new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches.\nPreviously we only had automation for two aspects separately, so we only could either:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"compare individual runs (used for different node configurations / versions)"),(0,a.kt)("li",{parentName:"ul"},"collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version)\nNaturally, combining these two capabilities was a long-desired feature of our analysis pipeline.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fb6d6072.07fb8aff.js b/assets/js/fb6d6072.07fb8aff.js new file mode 100644 index 0000000000..4bd9a320a3 --- /dev/null +++ b/assets/js/fb6d6072.07fb8aff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[85487],{4797:a=>{a.exports=JSON.parse('{"label":"performance-tracing","permalink":"/quarterly/tags/performance-tracing","allTagsPath":"/quarterly/tags","count":2}')}}]); \ No newline at end of file diff --git a/assets/js/fb793160.9aef4f54.js b/assets/js/fb793160.9aef4f54.js new file mode 100644 index 0000000000..22ed1a1435 --- /dev/null +++ b/assets/js/fb793160.9aef4f54.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[87411],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=p(n),d=r,m=c["".concat(l,".").concat(d)]||c[d]||h[d]||a;return n?o.createElement(m,s(s({ref:t},u),{},{components:n})):o.createElement(m,s({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,s=new Array(a);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:r,s[1]=i;for(var p=2;p<a;p++)s[p]=n[p];return o.createElement.apply(null,s)}return o.createElement.apply(null,n)}d.displayName="MDXCreateElement"},48089:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var o=n(87462),r=(n(67294),n(3905));const a={title:"Consensus Team Update",slug:"2023-02-08-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-02-08-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-08-consensus.md",source:"@site/blog/2023-02-08-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-02-08T00:00:00.000Z",formattedDate:"February 8, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.5,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-02-08-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Mithril Team Update",permalink:"/2023-02-09-mithril"},nextItem:{title:"Node API & CLI Team Update",permalink:"/2023-02-08-node-cli-api"}},l={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"UTxO HD Prototype",id:"utxo-hd-prototype",level:3},{value:"Genesis",id:"genesis",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Fostering collaboration",id:"fostering-collaboration",level:3},{value:"Support",id:"support",level:3}],u={toc:p},c="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,r.kt)("p",null,"We continue refactoring the UTxO HD prototype while we wait for the system level\nbenchmarks. We have created a new repository that contains the ",(0,r.kt)("inlineCode",{parentName:"p"},"anti-diff"),"\npackages used in this prototype."),(0,r.kt)("p",null,"On the Genesis front, we are preparing another meeting with the researchers to\naudit the implementation design, and we continued working on basic tests and\nsimplifications."),(0,r.kt)("p",null,"During the past two weeks we also introduced two new tools. One for dumping CBOR\nencoded blocks to JSON, and another to serve a local immutable DB."),(0,r.kt)("h2",{id:"workstreams"},"Workstreams"),(0,r.kt)("h3",{id:"utxo-hd-prototype"},"UTxO HD Prototype"),(0,r.kt)("p",null,"We are in the process of refactoring the UTxO HD prototype, while we wait for\nthe system level benchmarks to confirm if the performance of the prototype is\nsatisfactory."),(0,r.kt)("p",null,"We also set up a repository for the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/anti-diffs"},(0,r.kt)("inlineCode",{parentName:"a"},"anti-diff"))," package, which\nrequired us to refactor the code, write documentation, and prepare a release to\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-haskell-packages"},"CHaP"),"."),(0,r.kt)("h3",{id:"genesis"},"Genesis"),(0,r.kt)("p",null,"We worked on ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4347"},"basic tests")," for the ",(0,r.kt)("em",{parentName:"p"},"Limit on Eagerness")," property of\nGenesis. We also introduced further robustness and simplifications in the\nGenesis Density governor. Finally, we developed a presentation to engage again\nwith the researchers on our Genesis implementation design."),(0,r.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,r.kt)("h3",{id:"fostering-collaboration"},"Fostering collaboration"),(0,r.kt)("p",null,"We are in the process of ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/6"},"polishing")," the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus"),"\ndocumentation site, which we will use a the entry point for Consensus related\ndocumentation. The first version will not be complete, but we plan on\nsystematically improving it."),(0,r.kt)("h3",{id:"support"},"Support"),(0,r.kt)("p",null,"We ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4335"},"added a tool")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-consensus-cardano-tools")," which allows\nto dump the Chain DB blocks or any given CBOR encoded blocks as JSON."),(0,r.kt)("p",null,"We also added ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4339"},"another tool")," that serves an existing immutable DB via\nBlockFetch and ChainSync. This tool can help in assisting our local benchmarking\nefforts (for instance Genesis' ChainSync jumping prototype)."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fb8d4667.bcc8682a.js b/assets/js/fb8d4667.bcc8682a.js new file mode 100644 index 0000000000..e9ce053e25 --- /dev/null +++ b/assets/js/fb8d4667.bcc8682a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[57161],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),p=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(s.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=p(n),h=r,m=d["".concat(s,".").concat(h)]||d[h]||c[h]||a;return n?o.createElement(m,i(i({ref:t},u),{},{components:n})):o.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<a;p++)i[p]=n[p];return o.createElement.apply(null,i)}return o.createElement.apply(null,n)}h.displayName="MDXCreateElement"},31241:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var o=n(87462),r=(n(67294),n(3905));const a={title:"Network Team Update",slug:"2022-10-28-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2022-10-28-network",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-10-28-network.md",source:"@site/blog/2022-10-28-network.md",title:"Network Team Update",description:"High-level summary",date:"2022-10-28T00:00:00.000Z",formattedDate:"October 28, 2022",tags:[{label:"network",permalink:"/tags/network"}],readingTime:2.665,hasTruncateMarker:!1,authors:[{name:"Marcin Szamotulski",title:"Network Team Lead",url:"https://github.com/coot",imageURL:"https://github.com/coot.png",key:"coot"}],frontMatter:{title:"Network Team Update",slug:"2022-10-28-network",authors:"coot",tags:["network"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-10-28-hydra"},nextItem:{title:"Performance & Tracing Team Update",permalink:"/2022-10-28-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"Detailed description",id:"detailed-description",level:2},{value:"P2P Network Stack",id:"p2p-network-stack",level:3},{value:"Consensus",id:"consensus",level:3},{value:"Cardano Node",id:"cardano-node",level:3},{value:"Peer Sharing",id:"peer-sharing",level:3},{value:"Eclipse Evasion",id:"eclipse-evasion",level:3},{value:"IO-Sim",id:"io-sim",level:3},{value:"Open Source",id:"open-source",level:3},{value:"Mithril Cardano Integration",id:"mithril-cardano-integration",level:3}],u={toc:p},d="wrapper";function c(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"The team has focused on debuging & fixing bugs for the ",(0,r.kt)("strong",{parentName:"p"},"P2P single relay release"),", which included"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"diagnosing, fixing and writing tests for a bug in ",(0,r.kt)("inlineCode",{parentName:"li"},"peer-state-actions")," which\nfortunately hasn't been released;"),(0,r.kt)("li",{parentName:"ul"},"diagnosing & preventing misconfiguration of DNS")),(0,r.kt)("p",null,"We also focused on developing ",(0,r.kt)("strong",{parentName:"p"},"peer sharing"),". We also held a session with\nthe scientists on eclipse evasion."),(0,r.kt)("h2",{id:"detailed-description"},"Detailed description"),(0,r.kt)("h3",{id:"p2p-network-stack"},"P2P Network Stack"),(0,r.kt)("p",null,"During the past two weeks the team focused on p2p single relay release and peer\nsharing. We found and fixed an important bug recently introduced in one of the\ncomponents of p2p networking stack (fortunately never released). Together with\na fix, we designed a unit test diffusion simulation as well as quickcheck\nproperty test (both could reproduce it). We also changed the code in a way that\nif such a bug is reintroduced in the future, it will be obvious to diagnose.\nFor more see:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4067"},"ouroboros-network#4067")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4086"},"ouroboros-network#4086"))),(0,r.kt)("p",null,"Initial benchmarking run of the P2P code was executed. The results where\nunlike what we see on the mainnet. We found a possible misconfiguration of the\ncluster (caused by 0 TTL on domain names), which could be the direct cause of\nit. We wrote a PR which rules out such misconfiguration. We are awaiting on\nthe next benchmarking results. See more at:"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4106"},"ouroboros-network#4106")),(0,r.kt)("p",null,"We also started working on P2P single relay release. The PR\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4120"},"ouroboros-network#4120"),"\nincludes ",(0,r.kt)("em",{parentName:"p"},"108")," patches cherry-picked from the ",(0,r.kt)("inlineCode",{parentName:"p"},"master")," branch. We started\nworking toward integration these changes against the release branch of\n",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node"),". Early next week we ought to be able to have an early version\nof ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," with ",(0,r.kt)("em",{parentName:"p"},"non experimental P2P support"),"!"),(0,r.kt)("p",null,"For more detailed release plan please see ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/3888"},"P2P - Single\nRelay"),"\nissue."),(0,r.kt)("h3",{id:"consensus"},"Consensus"),(0,r.kt)("p",null,"We identified and fixed missing error reporting in consensus\ninitialisation phase. See more at\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4015"},"ouroboros-network#4015")),(0,r.kt)("h3",{id:"cardano-node"},"Cardano Node"),(0,r.kt)("p",null,"We also made changes in ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," in order to give better experience for\nnode operators. This includes updating severities of some of the traces as\nwell as implementing new format of the p2p topology file. For more see:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4563"},"cardano-node#4563"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-node/pull/4561"},"cardano-node#4561"))),(0,r.kt)("h3",{id:"peer-sharing"},"Peer Sharing"),(0,r.kt)("p",null,"We continued working on implementation of peer sharing. We have an early\nimplementation which will be reviewed and analysed in next weeks. We started\nworking on ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," integration. We need\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4392"},"PR #4392")," to be merged\nbefore such integration will be able to land in ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node"),", although this\nis ",(0,r.kt)("em",{parentName:"p"},"not blocking")," us currently. See more at:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-network/pull/4019"},"ouroboros-network#4019"))),(0,r.kt)("h3",{id:"eclipse-evasion"},"Eclipse Evasion"),(0,r.kt)("p",null,"We held a session which included Alexander Russel, Sandro Coretti-Drayton and\nNick Frisby from the consensus team. We discussed high lever design of the\neclipse evasion scheme, which is important for the design and implementation of\n",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-genesis"),". We got a positive feedback from the researchers."),(0,r.kt)("h3",{id:"io-sim"},"IO-Sim"),(0,r.kt)("p",null,"In this period we made little progress towards releasing ",(0,r.kt)("inlineCode",{parentName:"p"},"IO-Sim")," on Hackage.\nA single ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/io-sim/pull/32"},"PR")," which added\na few missing instances of the ",(0,r.kt)("inlineCode",{parentName:"p"},"STM")," monad."),(0,r.kt)("h3",{id:"open-source"},"Open Source"),(0,r.kt)("p",null,"We made sure the CI runs for PRs which comes from forks (which is important to\naccept contributions from 3rd parties)."),(0,r.kt)("h3",{id:"mithril-cardano-integration"},"Mithril Cardano Integration"),(0,r.kt)("p",null,"We held initial discussions with Arnaud Bailly about possible path to integrate\nmithril to ",(0,r.kt)("inlineCode",{parentName:"p"},"cardano-node")," and take advantage of the ",(0,r.kt)("inlineCode",{parentName:"p"},"ouroboros-network"),"\ndiffusion layer."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fba052bd.8d34f61d.js b/assets/js/fba052bd.8d34f61d.js new file mode 100644 index 0000000000..a9d35ffcc7 --- /dev/null +++ b/assets/js/fba052bd.8d34f61d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[36171],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=p(n),m=r,d=h["".concat(l,".").concat(m)]||h[m]||u[m]||o;return n?a.createElement(d,i(i({ref:t},c),{},{components:n})):a.createElement(d,i({ref:t},c))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:r,i[1]=s;for(var p=2;p<o;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},54664:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(87462),r=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2022-10-02-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},i=void 0,s={permalink:"/2022-10-02-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-02-consensus.md",source:"@site/blog/2022-11-02-consensus.md",title:"Consensus Team Update",description:"High-level summary",date:"2022-11-02T00:00:00.000Z",formattedDate:"November 2, 2022",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:3.53,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2022-10-02-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Embedding Quality Workstream",permalink:"/2022-11-03-embedding-quality"},nextItem:{title:"Ledger Team Update",permalink:"/2022-11-02-ledger"}},l={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"High-level status report",id:"high-level-status-report",level:2},{value:"Workstreams",id:"workstreams",level:2},{value:"Finish the UTxO HD prototype",id:"finish-the-utxo-hd-prototype",level:3},{value:"Backing store property tests",id:"backing-store-property-tests",level:4},{value:"LSM tree implementation",id:"lsm-tree-implementation",level:2},{value:"Benchmarking the CSJ prototype",id:"benchmarking-the-csj-prototype",level:3},{value:"Technical debt",id:"technical-debt",level:2}],c={toc:p},h="wrapper";function u(e){let{components:t,...o}=e;return(0,r.kt)(h,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,r.kt)("p",null,"During the past two weeks, the consensus team continued its work on testing the\nUTxO HD prototype. We completed the era-transition and backing store tests, and\nthe mempool tests are advancing at a steady pace. Regarding our work in the\nGenesis design, we continued our collaboration with the research and networking\nteams, and we continue investigating strategies for making the chain-sync\njumping prototype faster."),(0,r.kt)("h2",{id:"high-level-status-report"},"High-level status report"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Finish the UTxO HD prototype: on track.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We worked on state-machine tests for the mempool, and spotted potential bugs\nin the implementation. Investigation is ongoing."),(0,r.kt)("li",{parentName:"ul"},"We have a set of property tests for the backing store. We still need to\nincorporate the improvements to the LMDB cursor API that these tests\nmade possible."),(0,r.kt)("li",{parentName:"ul"},"We merged the era-transition tests PR."))),(0,r.kt)("li",{parentName:"ul"},"Genesis: on track.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Design work around Genesis continues in collaboration with researchers and\nthe networking team."),(0,r.kt)("li",{parentName:"ul"},"We continued trying to improve the performance of the chain-sync jumping\nprototype. We gained additional insight on which parameters to tweak next.\nIn spite of the baseline still being faster, the current prototype already\nachieves a significant speedup when compared to the naive approach of simply\nrunning full chain-sync with all peers."))),(0,r.kt)("li",{parentName:"ul"},"Tech debt: on track.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"We clarified a common source of confusion around VRF tie-breaking and\ncross-era chain selection.")))),(0,r.kt)("h2",{id:"workstreams"},"Workstreams"),(0,r.kt)("h3",{id:"finish-the-utxo-hd-prototype"},"Finish the UTxO HD prototype"),(0,r.kt)("p",null,"We continued working on property-tests for the UTxO HD prototype. In particular\nwe merged the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4073"},"era-transition tests\nPR"),"."),(0,r.kt)("h4",{id:"backing-store-property-tests"},"Backing store property tests"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4081"},"backing store property tests\nPR")," has been\nreviewed. The next steps are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Improve error handling and command generation."),(0,r.kt)("li",{parentName:"ul"},"Add coverage testing to check that we are not failing to cover interesting\ntest cases.")),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/lmdb-simple/pull/1"},"monadic cursor API"),"\nwent through its first review round. The API is in a relatively stable state.\nThis PR also unifies the ",(0,r.kt)("inlineCode",{parentName:"p"},"cborg")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"serialise"),"-based interfaces to LMDB\noperations. The next steps are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Write\n",(0,r.kt)("a",{parentName:"li",href:"https://hackage.haskell.org/package/quickcheck-dynamic"},(0,r.kt)("inlineCode",{parentName:"a"},"quickcheck-dynamic")),"\nstate-machine tests for this API."),(0,r.kt)("li",{parentName:"ul"},"Adapt the changes in the serialisation interface in the backing store property\ntests. This will involve adding boilerplate code in consensus to make up for\nthe removal of the ",(0,r.kt)("inlineCode",{parentName:"li"},"cborg"),"-based interface.")),(0,r.kt)("h2",{id:"lsm-tree-implementation"},"LSM tree implementation"),(0,r.kt)("p",null,"We worked on the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/issues/4121"},"LSM tree\nprototype"),". In\nparticular, we focused on tuning the LSM tree design to the different workloads\nthat consensus has (eg syncing, normal node operation, etc)."),(0,r.kt)("h3",{id:"benchmarking-the-csj-prototype"},"Benchmarking the CSJ prototype"),(0,r.kt)("p",null,'Work on improving the chain-sync jumping performance is ongoing. In particular\nwe compared the performance of different jump intervals, which, somewhat\nsurprisingly, do not make a significant difference. In particular, we are seeing\nperiodic "plateaus" where the chain-sync tip does not progress, but they are\nmuch longer for the prototype. Our hypothesis is that this seem to be due to a\ncombination of the garbage collector (GC) pauses, and the actual time it takes\nthe non-dynamo chain-sync peers to jump to the tip of the slot of the dynamo\nfragment.'),(0,r.kt)("p",null,"In the coming weeks we will try to shorten these plateaus via a combination of\ntweaking GC options and less synchronisation in the CSJ governor."),(0,r.kt)("p",null,"The following plot shows the performance of the chain-sync jumping prototype\nusing different jumping intervals. It compares the syncing progress by plotting\nthe slots of adopted blocks against time. The baseline is still faster, however\nit is worth noting that the current prototype already achieves a significant\nspeedup when compared to the naive approach of simply running full chain-sync\nwith all peers."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(39294).Z,width:"998",height:"445"})),(0,r.kt)("p",null,'The second plot shows the syncing progress sliced to a chosen ~5min interval,\nand includes, in addition to the slots of adopted blocks, the slots of the tip\nof the ChainSync fragment. This allows us to see how far ahead of the selected\ntip the CS dynamo is, i.e. how much room we have for BlockFetch not to get\nstalled. It shows periodic behaviour (due to the forecasting limit), and shows\nthat the CS fragment tip is not progressing for significant periods\n("plateaus").'),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(96185).Z,width:"998",height:"445"})),(0,r.kt)("h2",{id:"technical-debt"},"Technical debt"),(0,r.kt)("p",null,"We ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/ouroboros-network/pull/4098"},"clarified")," a\ncommon source of confusion around VRF tie-breaking and cross-era chain\nselection. This PR involved correcting potentially misleading names of\nVRF-related functions, and providing context for a particular VRF value is\nused for tie-breaking."))}u.isMDXComponent=!0},96185:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2022-11-02-csj-vs-baseline-sliced-77ff018af70191b4122b1e7cf56c79b8.svg"},39294:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2022-11-02-csj-vs-baseline-9fd0e0e080975cc6cfbe035731b4f38d.svg"}}]); \ No newline at end of file diff --git a/assets/js/fbc5e9d6.7a1958b8.js b/assets/js/fbc5e9d6.7a1958b8.js new file mode 100644 index 0000000000..e93d964a96 --- /dev/null +++ b/assets/js/fbc5e9d6.7a1958b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[21895],{2705:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/fbdc54bf.e8140e25.js b/assets/js/fbdc54bf.e8140e25.js new file mode 100644 index 0000000000..7c7cd65a11 --- /dev/null +++ b/assets/js/fbdc54bf.e8140e25.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[63824],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function p(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),s=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),h=s(a),d=n,c=h["".concat(l,".").concat(d)]||h[d]||m[d]||i;return a?r.createElement(c,o(o({ref:t},u),{},{components:a})):r.createElement(c,o({ref:t},u))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[h]="string"==typeof e?e:n,o[1]=p;for(var s=2;s<i;s++)o[s]=a[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},40671:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>p,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-06-02-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},o=void 0,p={permalink:"/2023-06-02-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-06-02-hydra.md",source:"@site/blog/2023-06-02-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-06-02T00:00:00.000Z",formattedDate:"June 2, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.215,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-06-02-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Node API & CLI Team Update",permalink:"/2023-06-07-node-cli-api"},nextItem:{title:"Mithril Team Update",permalink:"/2023-06-01-mithril"}},l={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],u={toc:s},h="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team has put their effort on finding solutions on many\ndifferent problems, such as our broken head on mainnet\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/897"},"#897"),", our fragile monthly\nreport publications on the website and implementing ","\u201c","Option A","\u201d"," for\nexternal commits ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215"),".\nAlthough most of these items are still open, huge progress has been made. To\naccelerate the investigation, they improved their logging to give more precise\nerrors when a transition requirement fails, and to reduce duplication on effets\nlogged content. Last but not least, the team is exploring formal methods and\nattended a workshop on formalizing cryptographic protocols in Agda."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Continued investigating broken head and opened an issue to keep track ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/issues/897"},"#897"),"."),(0,n.kt)("p",{parentName:"li"},"As part of this issue, improvements were made to the node logs:"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Give a precise error when a transition requirement fails ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/pull/895"},"#895"),".")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Reduce duplication for effects logged content by using sequential eventId and effectId pair ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/pull/896"},"#896"),".")))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Fixed references in the hydra specification ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/pull/893"},"#893"),".")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Attended a workshop on formal methods and crypto in Agda."))),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Investigate and re-open our team-internal head on mainnet."),(0,n.kt)("li",{parentName:"ul"},"Improve and provide regular benchmarks for Hydra ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/186"},"#186"),"."),(0,n.kt)("li",{parentName:"ul"},"Complete journey for external commits implementing ","\u201c","Option A","\u201d"," and start implementing ","\u201c","Option B","\u201d"," ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/215"},"#215"),"."),(0,n.kt)("li",{parentName:"ul"},"Authenticate network messages ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/727"},"#727"),"."),(0,n.kt)("li",{parentName:"ul"},"Add hydra as tool to developr platform ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/872"},"#872"),"."),(0,n.kt)("li",{parentName:"ul"},"Fix monthly report publication on docs website.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fbe14114.d8c654af.js b/assets/js/fbe14114.d8c654af.js new file mode 100644 index 0000000000..fe82464716 --- /dev/null +++ b/assets/js/fbe14114.d8c654af.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18085],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||s;return n?r.createElement(h,o(o({ref:t},c),{},{components:n})):r.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,o[1]=i;for(var u=2;u<s;u++)o[u]=n[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},18499:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const s={title:"Consensus Team Update",slug:"2024-01-10-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2024-01-10-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-10-consensus.md",source:"@site/blog/2024-01-10-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-01-10T00:00:00.000Z",formattedDate:"January 10, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.515,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-01-10-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-01-12-hydra"},nextItem:{title:"Ledger Team Update",permalink:"/2024-01-10-ledger"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"For the past two weeks the Consensus team:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/858"},"Resumed work on implementing")," the initialization and internals of the second iteration of the in-memory ledger database."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/815"},"Resumed work on integrating")," the new ledger database API for UTxO HD."),(0,a.kt)("li",{parentName:"ul"},"Simplified query versioning for downstream users (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/863"},"863")," and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-api/pull/403"},"403"),")."),(0,a.kt)("li",{parentName:"ul"},"Confirmed the cause of missed leadership checks due to ledger snapshots (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/868"},"868"),")."),(0,a.kt)("li",{parentName:"ul"},"Derived principles for the versioning/declaration of queries, since Conway complicates it (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/864"},"864")," and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/issues/866"},"866"),")."),(0,a.kt)("li",{parentName:"ul"},"Unblocked the Node Team in the work on rollback-insensitive leadership schedule queries (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-network/pull/4765"},"4765"),")."),(0,a.kt)("li",{parentName:"ul"},"Drafted the (Pre-Genesis) Bootstrap State Machine (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/808"},"808"),").")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fc30198e.e528f82b.js b/assets/js/fc30198e.e528f82b.js new file mode 100644 index 0000000000..4bfd38a9d3 --- /dev/null +++ b/assets/js/fc30198e.e528f82b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18160],{59740:a=>{a.exports=JSON.parse('{"label":"hydra","permalink":"/tags/hydra","allTagsPath":"/tags","count":79}')}}]); \ No newline at end of file diff --git a/assets/js/fc55a8cc.060622ef.js b/assets/js/fc55a8cc.060622ef.js new file mode 100644 index 0000000000..555d7c4562 --- /dev/null +++ b/assets/js/fc55a8cc.060622ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[15519],{40026:e=>{e.exports=JSON.parse('{"permalink":"/tags/mithril/page/5","page":5,"postsPerPage":5,"totalPages":13,"totalCount":63,"previousPage":"/tags/mithril/page/4","nextPage":"/tags/mithril/page/6","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/fc6043ae.b4cfb728.js b/assets/js/fc6043ae.b4cfb728.js new file mode 100644 index 0000000000..3e52ebd2f5 --- /dev/null +++ b/assets/js/fc6043ae.b4cfb728.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[5785],{19350:e=>{e.exports=JSON.parse('{"permalink":"/tags/goedel/page/4","page":4,"postsPerPage":5,"totalPages":5,"totalCount":23,"previousPage":"/tags/goedel/page/3","nextPage":"/tags/goedel/page/5","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/fc8c3309.77826de7.js b/assets/js/fc8c3309.77826de7.js new file mode 100644 index 0000000000..97d9883025 --- /dev/null +++ b/assets/js/fc8c3309.77826de7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[77642],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=l(n),m=a,d=c["".concat(u,".").concat(m)]||c[m]||h[m]||o;return n?r.createElement(d,s(s({ref:t},p),{},{components:n})):r.createElement(d,s({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:a,s[1]=i;for(var l=2;l<o;l++)s[l]=n[l];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},64267:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2023-08-23-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2023-08-23-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-08-23-consensus.md",source:"@site/blog/2023-08-23-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2023-08-23T00:00:00.000Z",formattedDate:"August 23, 2023",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:1.42,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2023-08-23-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Performance & tracing update",permalink:"/2023-08-24-performance-and-tracing"},nextItem:{title:"Goedel Team Update",permalink:"/2023-08-18-goedel"}},u={authorsImageUrls:[void 0]},l=[{value:"High level summary",id:"high-level-summary",level:2},{value:"UTxO-HD",id:"utxo-hd",level:2},{value:"Tech debt",id:"tech-debt",level:2},{value:"Support",id:"support",level:2}],p={toc:l},c="wrapper";function h(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"On the UTxO-HD front we reached another important milestone, where we handed over the implementation for benchmarking and testing. We are working on addressing the first issues that were found during the integration tests.\nOn the Genesis front we are finalizing the argument that a checkpoint is not necessary for the initial release, including supporting to support said argument. We are also working on the new node release, and several improvements to our code-base."),(0,a.kt)("h2",{id:"utxo-hd"},"UTxO-HD"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We addressed the issues that came from the benchmarking and testing phase (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/314"},"#314"),").",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"We fixed the operational-certificate update exception (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/305"},"#305"),").")))),(0,a.kt)("h2",{id:"tech-debt"},"Tech debt"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"We elaborated an inventory of the symbols used by downstream clients in an effort to clearly define the Consensus API, which will help managing changes and their impact to the downstream clients (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-api/tree/jasagredo/consensus-api"},"this branch"),")."),(0,a.kt)("li",{parentName:"ul"},"We extracted the SOP modules to a separate package as part of our effort to reduce the Consensus API surface area (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/tree/jasagredo/test-sop"},"this branch"),")."),(0,a.kt)("li",{parentName:"ul"},"We took the first step towards improving how the Cardano hard-fork block is instantiated when running a node (see ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/issues/275"},"#275"),")."),(0,a.kt)("li",{parentName:"ul"},"We decreased the flakiness for our test suite (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/284"},"#284"),")."),(0,a.kt)("li",{parentName:"ul"},"We incorporated and merged the pull-request on query versioning (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/273"},"#273"),")."),(0,a.kt)("li",{parentName:"ul"},"We started working on new performance-based regression tests for mempool operations.")),(0,a.kt)("h2",{id:"support"},"Support"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/nfrisby"},"Nick Frisby")," continues with his engineer responsibilities. Notably getting the Consensus release out for node ",(0,a.kt)("inlineCode",{parentName:"li"},"pre-release 8.3"),". Nick also began integrating it into downstream branches (",(0,a.kt)("inlineCode",{parentName:"li"},"cardano{-api,-cli,-node}"),"). The Node team has now taken over, since Nick had progressed up to the point where they needed to start making new design decisions. Related PRs:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/283"},"#283")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/301"},"#301")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/304"},"#304")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/ouroboros-consensus/pull/308"},"#308"))))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fca4af6d.2d5cb5c1.js b/assets/js/fca4af6d.2d5cb5c1.js new file mode 100644 index 0000000000..d21a87b296 --- /dev/null +++ b/assets/js/fca4af6d.2d5cb5c1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[8201],{21308:e=>{e.exports=JSON.parse('{"permalink":"/tags/consensus/page/8","page":8,"postsPerPage":5,"totalPages":9,"totalCount":45,"previousPage":"/tags/consensus/page/7","nextPage":"/tags/consensus/page/9","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/fce7e268.13fd2987.js b/assets/js/fce7e268.13fd2987.js new file mode 100644 index 0000000000..f0a05df2f3 --- /dev/null +++ b/assets/js/fce7e268.13fd2987.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[62140],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var h=r.createContext({}),s=function(e){var t=r.useContext(h),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(h.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,h=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(a),u=n,m=d["".concat(h,".").concat(u)]||d[u]||c[u]||i;return a?r.createElement(m,o(o({ref:t},p),{},{components:a})):r.createElement(m,o({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=u;var l={};for(var h in t)hasOwnProperty.call(t,h)&&(l[h]=t[h]);l.originalType=e,l[d]="string"==typeof e?e:n,o[1]=l;for(var s=2;s<i;s++)o[s]=a[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},50153:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>h,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-03-03-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-03-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-03-hydra.md",source:"@site/blog/2023-03-03-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-03-03T00:00:00.000Z",formattedDate:"March 3, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.19,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-03-03-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-03-03-goedel"},nextItem:{title:"Ledger Team Update",permalink:"/2023-03-03-ledger"}},h={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],p={toc:s},d="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team released version\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/hydra/releases/tag/0.9.0"},"0.9.0")," - a version\nof the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," with fully specified behavior of on-chain scripts and\noff-chain head-logic, decreased costs for opening/closing a Head and scalable\ncontestation deadline semantics. Check out the full release notes for details."),(0,n.kt)("p",null,"Furthermore, they published the ",(0,n.kt)("a",{parentName:"p",href:"https://hydra.family/head-protocol/monthly/2023-03"},"monthly\nreport")," of the Hydra project\nand conducted a review meeting with an increasingly wider audience. The team\nplans to extend invitations through the new Hydra\n",(0,n.kt)("a",{parentName:"p",href:"https://discord.gg/Bwdy2jNdm2"},"#announcements")," discord channel for the next\nmonths, stay tuned!"),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Monthly review meeting with report published ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/monthly/2023-03"},"on website")),(0,n.kt)("li",{parentName:"ul"},"Fixed smoke tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/726"},"#726")),(0,n.kt)("li",{parentName:"ul"},"Reduced the cost of opening/closing a Head (error codes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/748"},"#748")," + head reference script ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/701"},"#701"),")"),(0,n.kt)("li",{parentName:"ul"},"Released version ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/releases/tag/0.9.0"},"0.9.0")),(0,n.kt)("li",{parentName:"ul"},"Conducted a first experiment on mainnet compatibility ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/713"},"#713")),(0,n.kt)("li",{parentName:"ul"},"New discord category with ",(0,n.kt)("a",{parentName:"li",href:"https://discord.gg/Bwdy2jNdm2"},"#announcements")," channel"),(0,n.kt)("li",{parentName:"ul"},"Received a demo about the Hydra for Voting project"),(0,n.kt)("li",{parentName:"ul"},"Lightning talk on mutation-based testing (to be shared)"),(0,n.kt)("li",{parentName:"ul"},"New ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/orgs/input-output-hk/projects/21/views/26"},"themes view")," in on our roadmap and some rearranging as we align it with high-level objectives"),(0,n.kt)("li",{parentName:"ul"},"Clarified things with researchers, but mostly identified action items for them")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Redraw transaction graphs and address TODOs specification"),(0,n.kt)("li",{parentName:"ul"},"Run hydraw with 0.9.0 on preprod"),(0,n.kt)("li",{parentName:"ul"},"Make smoke tests on mainnet possible"),(0,n.kt)("li",{parentName:"ul"},"Groom the explorer item"),(0,n.kt)("li",{parentName:"ul"},"Unblock the auctions projecth with ","\u201c","commit from script","\u201d"," a solution")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fd069ff7.eccb52fe.js b/assets/js/fd069ff7.eccb52fe.js new file mode 100644 index 0000000000..f72b070b08 --- /dev/null +++ b/assets/js/fd069ff7.eccb52fe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[52993],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(r),c=i,d=m["".concat(s,".").concat(c)]||m[c]||h[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},84657:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-03-27-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-03-27-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-27-mithril.md",source:"@site/blog/2024-03-27-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-03-27T00:00:00.000Z",formattedDate:"March 27, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.475,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-03-27-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-03-27-ledger"},nextItem:{title:"Performance & Tracing Update",permalink:"/2024-03-27-performance-and-tracing"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, the Mithril team released a new ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/mithril/releases/tag/2412.0"},(0,i.kt)("inlineCode",{parentName:"a"},"Mithril distribution 2412.0")),". This release includes several critical updates and enhancements, such as support for the Prometheus metrics endpoint in signer, deprecation of the ",(0,i.kt)("inlineCode",{parentName:"p"},"snapshot")," command in the client CLI, full Pallas-based implementation of the chain observer, and support for Cardano node v.8.9.0. "),(0,i.kt)("p",null,"The team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet"),", kept implementing a more versatile beaconing mechanism, reducing the latency of transactions signature, and continued investigating a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they started working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network."),(0,i.kt)("p",null,"Finally, the team completed the implementation of some community-requested features to verify the output folder structure made by the client, and kept investigating a source of flakiness in the CI end-to-end test."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Released the new distribution ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/releases/tag/2412.0"},(0,i.kt)("inlineCode",{parentName:"a"},"2412.0"))),(0,i.kt)("li",{parentName:"ul"},"Publication of a ",(0,i.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/03/26/mithril-signer-prometheus-endpoint"},"dev blog post")," about the ",(0,i.kt)("strong",{parentName:"li"},"Mithril signer Prometheus endpoint release")),(0,i.kt)("li",{parentName:"ul"},"Publication of a ",(0,i.kt)("a",{parentName:"li",href:"https://mithril.network/doc/dev-blog/2024/03/26/client-cli-deprecated-command"},"dev blog post")," about the ",(0,i.kt)("strong",{parentName:"li"},"Mithril client CLI ",(0,i.kt)("inlineCode",{parentName:"strong"},"snapshot")," command deprecation")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Implement a Block Range Merkle Tree for ",(0,i.kt)("inlineCode",{parentName:"strong"},"Cardano Transactions"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1533"},"#1533")),(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Do not require the mithril client to create the DB directory")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1572"},"#1572")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Support multiple beacon types in signer/aggregator")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1562"},"#1562")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril relay broadcasts signer registrations with P2P PubSub")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1587"},"#1587")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Provide fake aggregator data in an aggregated form")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1594"},"#1594")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Some transactions are not signed in ",(0,i.kt)("inlineCode",{parentName:"strong"},"testing-sanchonet"))," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1577"},"#1577")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"End to end tests are flaky in CI")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1558"},"#1558"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fd4eddf4.75cae98c.js b/assets/js/fd4eddf4.75cae98c.js new file mode 100644 index 0000000000..b5cb361a2b --- /dev/null +++ b/assets/js/fd4eddf4.75cae98c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[9314],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,h=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(h,s(s({ref:t},u),{},{components:n})):r.createElement(h,s({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var c=2;c<o;c++)s[c]=n[c];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},44093:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-02-07-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-02-07-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-02-07-consensus.md",source:"@site/blog/2024-02-07-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-02-07T00:00:00.000Z",formattedDate:"February 7, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.315,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-02-07-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-02-09-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-02-07-mithril"}},l={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2}],u={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"This week we managed to integrate in the node the Consensus version of the UTxO-HD prototype that features the second version of the Ledger DB API.\nWe also ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/927"},"changed the epoch structure for Conway"),", made progress towards the Bootstrap State Machine and Peras planning.\nOn the support front, we are investigating the impact of snapshots on missed leadership checks."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fd5f5db6.a09d3a22.js b/assets/js/fd5f5db6.a09d3a22.js new file mode 100644 index 0000000000..c8a36a1472 --- /dev/null +++ b/assets/js/fd5f5db6.a09d3a22.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[23202],{46161:a=>{a.exports=JSON.parse('{"label":"cli-api","permalink":"/tags/cli-api","allTagsPath":"/tags","count":39}')}}]); \ No newline at end of file diff --git a/assets/js/fd6ebf5b.2314074a.js b/assets/js/fd6ebf5b.2314074a.js new file mode 100644 index 0000000000..04a6ee4e47 --- /dev/null +++ b/assets/js/fd6ebf5b.2314074a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[18599],{83821:e=>{e.exports=JSON.parse('{"permalink":"/page/52","page":52,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/51","nextPage":"/page/53","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/fd6fd4a3.aef93d4e.js b/assets/js/fd6fd4a3.aef93d4e.js new file mode 100644 index 0000000000..eda0a7174d --- /dev/null +++ b/assets/js/fd6fd4a3.aef93d4e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[37495],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=p(r),c=n,m=d["".concat(s,".").concat(c)]||d[c]||h[c]||o;return r?a.createElement(m,l(l({ref:t},u),{},{components:r})):a.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var p=2;p<o;p++)l[p]=r[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},66366:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const o={title:"Ledger Team Update",slug:"2022-11-23-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2022-11-23-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-11-23-ledger.md",source:"@site/blog/2022-11-23-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2022-11-23T00:00:00.000Z",formattedDate:"November 23, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.19,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-11-23-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-11-25-hydra"},nextItem:{title:"Hydra Team Update",permalink:"/2022-11-18-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"The Conway ledger era",id:"the-conway-ledger-era",level:3},{value:"Versioned CBOR",id:"versioned-cbor",level:3},{value:"Deposit tracking",id:"deposit-tracking",level:3},{value:"Technical debt",id:"technical-debt",level:3},{value:"Node release",id:"node-release",level:3}],u={toc:p},d="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"We released ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/380"},"CIP-1694"),",\nour proposal for entering the ",(0,n.kt)("a",{parentName:"p",href:"https://roadmap.cardano.org/en/voltaire/"},"Voltaire phase"),".\n",(0,n.kt)("strong",{parentName:"p"},"Please come join the discussion"),", this will be an incredibly exciting transition for\nCardano and we want everyone to participate!"),(0,n.kt)("p",null,"We now have a sensible way to version all of the serialization schemes used in the ledger.\nThe draft pull request was polished, reviewed, and merged this week.\nThis solves many problems that have vexed us since the beginning of the Shelley ledger era."),(0,n.kt)("p",null,"Everyone working on the Cardano node is working together to improve our release process,\nand the ledger team in particular dedicated one engineer to help with these efforts\nfor the next release."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h3",{id:"the-conway-ledger-era"},"The Conway ledger era"),(0,n.kt)("p",null,"The current proposal in ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/380"},"CIP-1694")," encompasses two new ledger eras.\nThe first era will be called Conway, after the English mathematician John Horton Conway.\nThe community facing aspects of the Conway ledger era will be very minimal,\nbut it will pave the way for introducing liquid democracy.\nThe details can be viewed ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/projects/4"},"here"),".\nWe do not yet have a formal specification for the Conway era.\nOur plan is to debut the\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/formal-ledger-specifications"},"formal ledger model"),".\nBriefly, the Conway ledger era will:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"introduce SPO voting for hard forks (in the spirit of the now abandoned ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/318"},"CIP-47"),")"),(0,n.kt)("li",{parentName:"ul"},"provide an on-chain mechanism for rotating the governance keys"),(0,n.kt)("li",{parentName:"ul"},"re-plumb the ledger rules involving governance to be in line with ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/cardano-foundation/CIPs/pull/380"},"CIP-1694"))),(0,n.kt)("h3",{id:"versioned-cbor"},"Versioned CBOR"),(0,n.kt)("p",null,"We now have the ability to easily tie our serialization schemes to the Cardano\nmajor protocol version.\nWe still aim to preserve backwards compatibility as much as possible, but we now have a principled\nplan for resolving problems (see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/372"},"CIP-ledger-cbor"),").\nIn particular, we can now address several long standing issues, such as\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/issues/2444"},"issue-2444"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/issues/2965"},"issue-2965"),", and ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/issues/3003"},"issue-3003"),". "),(0,n.kt)("p",null,"The final (and massive!) pull request which brought us the versioning is ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3138"},"pull-3138"),"."),(0,n.kt)("h3",{id:"deposit-tracking"},"Deposit tracking"),(0,n.kt)("p",null,"The draft pull request which was exploring how best to track individual deposits\nis much closer now to being ready to take out of draft (",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3127"},"pull-3127"),").\nFor background on the issue, see ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/issues/3113"},"issue-3113"),".\nThis is quite an invasive change which effects many of our tests, which we are now addressing."),(0,n.kt)("h3",{id:"technical-debt"},"Technical debt"),(0,n.kt)("p",null,"As always, we keep working on technical debt.\nWe have deduplicated a some things: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3129"},"pull-3129"),", ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3162"},"pull-3162"),".\nWe have memoized a problematic computation (though more due diligence is needed before we can\nmerge): ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3141"},"pull-3141"),"."),(0,n.kt)("h3",{id:"node-release"},"Node release"),(0,n.kt)("p",null,"We have been helping with the node release efforts. See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-node/pull/4608"},"pull-4608"),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fd8a7e73.bfcc9157.js b/assets/js/fd8a7e73.bfcc9157.js new file mode 100644 index 0000000000..fe7b22b19a --- /dev/null +++ b/assets/js/fd8a7e73.bfcc9157.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[97371],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=p(r),c=i,d=h["".concat(s,".").concat(c)]||h[c]||m[c]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:i,o[1]=l;for(var p=2;p<a;p++)o[p]=r[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},19145:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(87462),i=(r(67294),r(3905));const a={title:"Mithril Team Update",slug:"2024-04-24-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2024-04-24-mithril",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-24-mithril.md",source:"@site/blog/2024-04-24-mithril.md",title:"Mithril Team Update",description:"High level overview",date:"2024-04-24T00:00:00.000Z",formattedDate:"April 24, 2024",tags:[{label:"mithril",permalink:"/tags/mithril"}],readingTime:1.22,hasTruncateMarker:!1,authors:[{name:"Jean-Philippe Raynaud",title:"Mithril Tech Lead",url:"https://github.com/jpraynaud",imageURL:"https://github.com/jpraynaud.png",key:"jpraynaud"}],frontMatter:{title:"Mithril Team Update",slug:"2024-04-24-mithril",authors:"jpraynaud",tags:["mithril"],hide_table_of_contents:!1},prevItem:{title:"Ledger Team Update",permalink:"/2024-04-24-ledger"},nextItem:{title:"Hydra Team Update",permalink:"/2024-04-19-hydra"}},s={authorsImageUrls:[void 0]},p=[{value:"High level overview",id:"high-level-overview",level:2},{value:"Low level overview",id:"low-level-overview",level:2}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"high-level-overview"},"High level overview"),(0,i.kt)("p",null,"This week, most of the Mithril team attended the ",(0,i.kt)("a",{parentName:"p",href:"https://buidl.2024.cardano.org/"},"Cardano Buidler Fest #1")," in Toulouse, France. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for ",(0,i.kt)("inlineCode",{parentName:"p"},"mainnet")," by compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges. The team identified the source of an issue preventing proper memory release during the signing/proving of a large set of transactions and developed a fix for it. Additionally, they completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network."),(0,i.kt)("p",null,"Finally, the team implemented a configurable feature for test networks to log unparsable blocks instead of panicking and investigated some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols."),(0,i.kt)("h2",{id:"low-level-overview"},"Low level overview"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Completed the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril relay broadcasts signer registrations with P2P PubSub")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1587"},"#1587")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Store Block Range Merkle roots in signer and aggregator databases")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1633"},"#1633")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Stream import of Cardano transactions")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1646"},"#1646")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Memory leak in Cardano transactions signature/proof")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1629"},"#1629")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"ChainObserver")," supports retrieving the Chain Point of the tip of the chain")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1589"},"#1589")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Add section for manual setup of squid in SPO guide")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1610"},"#1610")),(0,i.kt)("li",{parentName:"ul"},"Worked on the issue ",(0,i.kt)("strong",{parentName:"li"},"Mithril Signer Local Error Policy : Error 182 - MuxError")," ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/mithril/issues/1632"},"#1632"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fdba8f98.dcb82758.js b/assets/js/fdba8f98.dcb82758.js new file mode 100644 index 0000000000..d95a9741fd --- /dev/null +++ b/assets/js/fdba8f98.dcb82758.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[79224],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=s(a),h=n,m=u["".concat(p,".").concat(h)]||u[h]||d[h]||i;return a?r.createElement(m,o(o({ref:t},c),{},{components:a})):r.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var s=2;s<i;s++)o[s]=a[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}h.displayName="MDXCreateElement"},1814:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-03-10-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-03-10-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-03-10-hydra.md",source:"@site/blog/2023-03-10-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-03-10T00:00:00.000Z",formattedDate:"March 10, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.825,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2023-03-10-hydra",authors:"ch1bo",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Goedel Team Update",permalink:"/2023-03-16-goedel"},nextItem:{title:"Mithril Team Update",permalink:"/2023-03-09-mithril"}},p={authorsImageUrls:[void 0]},s=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],c={toc:s},u="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team addressed issues with committing complex UTxOs into a\nHydra Head, prepared the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-node")," to be run on mainnet (soon) and improved\nthe test suite of the ",(0,n.kt)("inlineCode",{parentName:"p"},"hydra-plutus")," scripts. The specification is constantly\ngetting improved upon reviewer feedback on overleaf - this week the graphical\nnotation was refined to be more transaction-focused."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Clarified ","\u201c","bug","\u201d"," of committing UTxOs with reference scripts to a Hydra head ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/737"},"#737")),(0,n.kt)("li",{parentName:"ul"},"Prepare usage of ",(0,n.kt)("inlineCode",{parentName:"li"},"hydra-node")," on mainnet by updating command line options ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/715"},"#715")),(0,n.kt)("li",{parentName:"ul"},"Improved our mutation test suite to all expected errors ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/705"},"#705")),(0,n.kt)("li",{parentName:"ul"},"Re-opened our persistent hydraw demo head on ",(0,n.kt)("inlineCode",{parentName:"li"},"preprod")," using version ",(0,n.kt)("inlineCode",{parentName:"li"},"0.9.0")),(0,n.kt)("li",{parentName:"ul"},"Updated on-chain graphs to be more transaction-focused in the specification")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete mainnet compatibility feature"),(0,n.kt)("li",{parentName:"ul"},"Prepare the Hydra workshop"),(0,n.kt)("li",{parentName:"ul"},"Address all todo\u2019s in the Hydra specification"),(0,n.kt)("li",{parentName:"ul"},"Unblock the auctions project with ","\u201c","commit from script","\u201d"," a solution")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fdc27cae.0432dfca.js b/assets/js/fdc27cae.0432dfca.js new file mode 100644 index 0000000000..76cedb2429 --- /dev/null +++ b/assets/js/fdc27cae.0432dfca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[27697],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,s(s({ref:t},c),{},{components:n})):r.createElement(f,s({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var u=2;u<o;u++)s[u]=n[u];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},14791:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const o={title:"Consensus Team Update",slug:"2024-04-17-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},s=void 0,i={permalink:"/2024-04-17-consensus",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-04-17-consensus.md",source:"@site/blog/2024-04-17-consensus.md",title:"Consensus Team Update",description:"High level summary",date:"2024-04-17T00:00:00.000Z",formattedDate:"April 17, 2024",tags:[{label:"consensus",permalink:"/tags/consensus"}],readingTime:.51,hasTruncateMarker:!1,authors:[{name:"Damian Nadales",title:"Consensus Team Lead",url:"https://github.com/dnadales",imageURL:"https://github.com/dnadales.png",key:"dnadales"}],frontMatter:{title:"Consensus Team Update",slug:"2024-04-17-consensus",authors:"dnadales",tags:["consensus"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-04-15-network"},nextItem:{title:"DB Sync Team Update",permalink:"/2024-04-17-db-sync"}},l={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2}],c={toc:u},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/955"},"Implemented")," the new diffusion pipelining criterion."),(0,a.kt)("li",{parentName:"ul"},"Presented, reviewed and merged the March ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1015"},"milestone")," for Genesis."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5774"},"Integrated")," latest changes into Node version 8.10."),(0,a.kt)("li",{parentName:"ul"},"Regarding the UTXO-HD feature we:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Completed fixes in test-suites from ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-api"),", and ",(0,a.kt)("inlineCode",{parentName:"li"},"ouroboros-consensus"),". All tests are passing in latest prototype."),(0,a.kt)("li",{parentName:"ul"},"Prepared UTXO-HD prototype for LMDB benchmarking."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/pull/5768"},"Fixed")," tracing in ",(0,a.kt)("inlineCode",{parentName:"li"},"cardano-node"),"."),(0,a.kt)("li",{parentName:"ul"},"Started merging code from the UTXO-HD branch into ",(0,a.kt)("inlineCode",{parentName:"li"},"main")," (",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1053"},"1053"),", ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1052"},"1052"),", and ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/ouroboros-consensus/pull/1054"},"1054"),")."))),(0,a.kt)("li",{parentName:"ul"},"We're currently working on getting rid of ",(0,a.kt)("inlineCode",{parentName:"li"},"NoThunks")," errors in Consensus, so that we can enable these tests in CI, for extra assurance.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fe591044.4e0d3a8b.js b/assets/js/fe591044.4e0d3a8b.js new file mode 100644 index 0000000000..fe5630cc62 --- /dev/null +++ b/assets/js/fe591044.4e0d3a8b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[6421],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=a.createContext({}),u=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=u(r),d=n,h=m["".concat(p,".").concat(d)]||m[d]||c[d]||l;return r?a.createElement(h,i(i({ref:t},s),{},{components:r})):a.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:n,i[1]=o;for(var u=2;u<l;u++)i[u]=r[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},84231:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2024-01-31-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},i=void 0,o={permalink:"/2024-01-31-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-31-ledger.md",source:"@site/blog/2024-01-31-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2024-01-31T00:00:00.000Z",formattedDate:"January 31, 2024",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:1.685,hasTruncateMarker:!1,authors:[{name:"Alexey Kuleshevich",title:"Ledger Team Software Engineer",url:"https://github.com/lehins",imageURL:"https://github.com/lehins.png",key:"lehins"}],frontMatter:{title:"Ledger Team Update",slug:"2024-01-31-ledger",authors:"lehins",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2024-02-02-hydra"},nextItem:{title:"Mithril Team Update",permalink:"/2024-01-31-mithril"}},p={authorsImageUrls:[void 0]},u=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Low level summary",id:"low-level-summary",level:2},{value:"Conway",id:"conway",level:3},{value:"Testing",id:"testing",level:3},{value:"Improvements",id:"improvements",level:3},{value:"Releasing",id:"releasing",level:3}],s={toc:u},m="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"One very important Conway feature that became available since last report is the ability\nfor Stake Pool Operators to vote on some of the security relevant protocol parameter\nupdates. We organized proposal hierarchy into a cohesive implementation, which together\nwith good tests gives us confidence in its correctness."),(0,n.kt)("p",null,"We also fixed a few important bugs:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Preventing Constitutional Committee Members from voting on governance actions that they\nshould not be allowed to vote on."),(0,n.kt)("li",{parentName:"ul"},"Prevent deposits from appearing in orphaned reward accounts after the staking credential\nhas been unregistered, but before the proposal procedure deposit has been returned."),(0,n.kt)("li",{parentName:"ul"},"Ensure Sets are encoded in CBOR with tag 258 by default")),(0,n.kt)("p",null,"Further improvements in testing tools and addition of more tests."),(0,n.kt)("h2",{id:"low-level-summary"},"Low level summary"),(0,n.kt)("h3",{id:"conway"},"Conway"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3982"},"pull-3982")," - Added SPO voting thresholds for security relevant parameters"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3978"},"pull-3978")," - Proposals pruning rewrite"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4003"},"pull-4003")," - Prefix Set encoding with tag 258"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3999"},"pull-3999")," - Add PParamUpdates to the plutus context, by transforming them to Plutus Data"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4008"},"pull-4008")," - Fixed a bug in GOV rule"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4013"},"pull-4013")," - Remove ",(0,n.kt)("inlineCode",{parentName:"li"},"EnactState")," from ",(0,n.kt)("inlineCode",{parentName:"li"},"ConwayGovState")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4025"},"pull-4025")," - Further improvements to ",(0,n.kt)("inlineCode",{parentName:"li"},"Proposals")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4021"},"pull-4021")," - Move unclaimed rewards from proposals to treasury")),(0,n.kt)("h3",{id:"testing"},"Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/3997"},"pull-3997")," - Added DRep delegation injections to Conway"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4023"},"pull-4023")," - Add a function ",(0,n.kt)("inlineCode",{parentName:"li"},"registerInState")," to ",(0,n.kt)("inlineCode",{parentName:"li"},"EraTransition")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4005"},"pull-4005")," - Fixes in Shelley ",(0,n.kt)("inlineCode",{parentName:"li"},"Imp")," framework and other small things"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4004"},"pull-4004")," - Verify that enacted gov action is removed"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4016"},"pull-4016")," - Fix Arbitrary instance and invariant checking for ",(0,n.kt)("inlineCode",{parentName:"li"},"Proposals"))),(0,n.kt)("h3",{id:"improvements"},"Improvements"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4002"},"pull-4002")," - Rename ",(0,n.kt)("inlineCode",{parentName:"li"},"Acnt")," to ",(0,n.kt)("inlineCode",{parentName:"li"},"Account"))),(0,n.kt)("h3",{id:"releasing"},"Releasing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4020"},"pull-4020")," - Remove usages of decommissioned zw3rk nix substituter"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4014"},"pull-4014")," - Update CHaP to fix ",(0,n.kt)("inlineCode",{parentName:"li"},"nix develop")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4011"},"pull-4011")," - Prepare ledger release"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-ledger/pull/4012"},"pull-4012")," - Updates for Plutus 1.21")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fec52f54.71213ae0.js b/assets/js/fec52f54.71213ae0.js new file mode 100644 index 0000000000..f0e9f55a23 --- /dev/null +++ b/assets/js/fec52f54.71213ae0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[65249],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=c(n),d=a,h=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return n?r.createElement(h,l(l({ref:t},m),{},{components:n})):r.createElement(h,l({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=n[c];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},50860:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={title:"Goedel Team Update",slug:"2023-10-13-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},l=void 0,i={permalink:"/2023-10-13-goedel",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-10-13-goedel.md",source:"@site/blog/2023-10-13-goedel.md",title:"Goedel Team Update",description:"The team works on applied research and consulting in formal methods",date:"2023-10-13T00:00:00.000Z",formattedDate:"October 13, 2023",tags:[{label:"goedel",permalink:"/tags/goedel"}],readingTime:.38,hasTruncateMarker:!1,authors:[{name:"James Chapman",title:"Head of Formal Methods",url:"https://github.com/jmchapman",imageURL:"https://github.com/jmchapman.png",key:"jmchapman"}],frontMatter:{title:"Goedel Team Update",slug:"2023-10-13-goedel",authors:"jmchapman",tags:["goedel"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-10-15-network"},nextItem:{title:"Hydra Team Update",permalink:"/2023-10-13-hydra"}},p={authorsImageUrls:[void 0]},c=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Details",id:"details",level:2}],m={toc:c},s="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond."),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The team is currently formalising mini protocols and testing the\nperformance analysis tool"),(0,a.kt)("h2",{id:"details"},"Details"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"extending thorn-calculus to support synchronous channels")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"extending mini-protocol framework to support communication with the\nenvironment")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"working on chain sync mini-protocol")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"planning for JLAMP journal paper submission")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"analysying any-to-finish"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fed3e02f.33dba69a.js b/assets/js/fed3e02f.33dba69a.js new file mode 100644 index 0000000000..f67cdce4ef --- /dev/null +++ b/assets/js/fed3e02f.33dba69a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[94545],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>y});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=i(r),d=a,y=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(y,c(c({ref:t},s),{},{components:r})):n.createElement(y,c({ref:t},s))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,c[1]=l;for(var i=2;i<o;i++)c[i]=r[i];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},64990:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>i});var n=r(87462),a=(r(67294),r(3905));const o={title:"DB Sync Team Update",slug:"2024-01-30-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},c=void 0,l={permalink:"/2024-01-30-db-sync",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-01-30-db-sync.md",source:"@site/blog/2024-01-30-db-sync.md",title:"DB Sync Team Update",description:"High level summary",date:"2024-01-30T00:00:00.000Z",formattedDate:"January 30, 2024",tags:[{label:"db-sync",permalink:"/tags/db-sync"}],readingTime:.395,hasTruncateMarker:!1,authors:[{name:"Kostas Dermentzis",title:"Cardano DB-Sync Software Engineer",url:"https://github.com/kderme",imageURL:"https://github.com/kderme.png",key:"kderme"}],frontMatter:{title:"DB Sync Team Update",slug:"2024-01-30-db-sync",authors:"kderme",tags:["db-sync"],hide_table_of_contents:!1},prevItem:{title:"Performance & Tracing Update",permalink:"/2024-01-31-performance-and-tracing"},nextItem:{title:"Hydra Team Update",permalink:"/2024-01-26-hydra"}},p={authorsImageUrls:[void 0]},i=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2}],s={toc:i},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,a.kt)("p",null,"The DBSync team has prepared and tested a new db-sync version for mainnet, we have continued our\nintegration and update for Conway and have extended its modularity."),(0,a.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"We attempt to turn db-sync into a modular project that can run with wither low or high recourses\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1610"},"#1610"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1613"},"#1613"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1590"},"#1590"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Moving the flags above to a config file\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1609"},"#1609"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Optimizations\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1595"},"#1595"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1607"},"#1607"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Conway Support and updates\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1581"},"#1581"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1573"},"#1573"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/IntersectMBO/cardano-db-sync/pull/1570"},"#1570")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fee99998.0ba739db.js b/assets/js/fee99998.0ba739db.js new file mode 100644 index 0000000000..2014e78c6d --- /dev/null +++ b/assets/js/fee99998.0ba739db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[91760],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>c});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,u=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),s=p(a),d=n,c=s["".concat(u,".").concat(d)]||s[d]||m[d]||i;return a?r.createElement(c,o(o({ref:t},h),{},{components:a})):r.createElement(c,o({ref:t},h))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:n,o[1]=l;for(var p=2;p<i;p++)o[p]=a[p];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},49627:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Hydra Team Update",slug:"2023-02-24-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},o=void 0,l={permalink:"/2023-02-24-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2023-02-24-hydra.md",source:"@site/blog/2023-02-24-hydra.md",title:"Hydra Team Update",description:"High-level summary",date:"2023-02-24T00:00:00.000Z",formattedDate:"February 24, 2023",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:.93,hasTruncateMarker:!1,authors:[{name:"Franco Testagrossa",title:"Hydra Software Engineer",url:"https://github.com/ffakenz",imageURL:"https://github.com/ffakenz.png",key:"ffakenz"}],frontMatter:{title:"Hydra Team Update",slug:"2023-02-24-hydra",authors:"ffakenz",tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2023-03-02-network"},nextItem:{title:"Mithril Team Update",permalink:"/2023-02-23-mithril"}},u={authorsImageUrls:[void 0]},p=[{value:"High-level summary",id:"high-level-summary",level:2},{value:"What did the team achieve this week",id:"what-did-the-team-achieve-this-week",level:2},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:2}],h={toc:p},s="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(s,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High-level summary"),(0,n.kt)("p",null,"This week, the Hydra team continue closing many gaps and aligning the\nimplementation with the specification. More over, they have groomed a plan to\nmake Hydra Mainnet compatible. Also, they continue moving forward with the\ninternal auditing and have published some auditing guidelines to receive\ncontributions from the community."),(0,n.kt)("h2",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Completed ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/452"},"#452")," (what is\nremaining in there)"),(0,n.kt)("li",{parentName:"ul"},"Aligned the Head protocol logic implementation with the specification"),(0,n.kt)("li",{parentName:"ul"},"Completed full minting policy implementation and spec\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/720"},"#720")),(0,n.kt)("li",{parentName:"ul"},"Clarified message authentication with researchers"),(0,n.kt)("li",{parentName:"ul"},"Groomed what is left to do for Mainnet compatibility\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/713"},"#713")," and drafted a\n0.10.0 version"),(0,n.kt)("li",{parentName:"ul"},"Added a tutorial by ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/perturbing/"},"@perturbing")," to the\nwebsite ",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/docs/tutorial/"},"LINK")),(0,n.kt)("li",{parentName:"ul"},"Published auditing guidelines\n",(0,n.kt)("a",{parentName:"li",href:"https://hydra.family/head-protocol/audit-guidelines"},"LINK")),(0,n.kt)("li",{parentName:"ul"},"Made hydra-node work for macos\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/746"},"#746")," and added support\nfor building on aarch64\n",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/673"},"#673")),(0,n.kt)("li",{parentName:"ul"},"Met with a potential customer of Hydra for Payments")),(0,n.kt)("h2",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Have the monthly review meeting incl. the report"),(0,n.kt)("li",{parentName:"ul"},"Have smoke tests fixed and running regularly"),(0,n.kt)("li",{parentName:"ul"},"Release 0.9.0 with updated scripts"),(0,n.kt)("li",{parentName:"ul"},"Redraw transaction graphs for specification")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ff158e4d.3937649d.js b/assets/js/ff158e4d.3937649d.js new file mode 100644 index 0000000000..29c7f0b802 --- /dev/null +++ b/assets/js/ff158e4d.3937649d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[67507],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),h=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=h(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=h(a),m=n,d=u["".concat(p,".").concat(m)]||u[m]||c[m]||o;return a?r.createElement(d,i(i({ref:t},s),{},{components:a})):r.createElement(d,i({ref:t},s))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:n,i[1]=l;for(var h=2;h<o;h++)i[h]=a[h];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},18890:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>h});var r=a(87462),n=(a(67294),a(3905));const o={title:"Hydra Team Update",slug:"2024-03-01-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},i=void 0,l={permalink:"/2024-03-01-hydra",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2024-03-01-hydra.md",source:"@site/blog/2024-03-01-hydra.md",title:"Hydra Team Update",description:"High-level Summary",date:"2024-03-01T00:00:00.000Z",formattedDate:"March 1, 2024",tags:[{label:"hydra",permalink:"/tags/hydra"}],readingTime:1.11,hasTruncateMarker:!1,authors:[{name:"Sebastian Nagel",title:"Hydra Team Lead",url:"https://github.com/ch1bo",imageURL:"https://github.com/ch1bo.png",key:"ch1bo"}],frontMatter:{title:"Hydra Team Update",slug:"2024-03-01-hydra",authors:["ch1bo"],tags:["hydra"],hide_table_of_contents:!1},prevItem:{title:"Network Team Update",permalink:"/2024-03-04-network"},nextItem:{title:"SRE Team Update",permalink:"/2024-03-01-sre"}},p={authorsImageUrls:[void 0]},h=[{value:"High-level Summary",id:"high-level-summary",level:3},{value:"What are the goals of next week",id:"what-are-the-goals-of-next-week",level:3}],s={toc:h},u="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(u,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-summary"},"High-level Summary"),(0,n.kt)("p",null,"This week the Hydra team, in addition to the usual maintenance and bug fixing, has been working on the preparation for the switch to Conway making the codebase less babbage specific. The team also conducted the monthly review meeting and published the monthly report on a new website (to keep those reports separate of main repository). They also added a basic UI to the Hydra explorer, switched to aggregating ",(0,n.kt)("inlineCode",{parentName:"p"},"sanchonet")," data and also fixed the smoke tests to work on ",(0,n.kt)("inlineCode",{parentName:"p"},"sanchonet"),". Finally, they continued progress the off-chain incremental commit protocol changes."),(0,n.kt)("h1",{id:"what-did-the-team-achieve-this-week"},"What did the team achieve this week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Conducted the monthly review meeting, written and published the ",(0,n.kt)("a",{parentName:"li",href:"https://cardano-scaling.github.io/website/monthly/2024-02"},"monthly report")," on new website (just pushed to ",(0,n.kt)("a",{parentName:"li",href:"https://cardano-scaling.org"},"https://cardano-scaling.org"),")."),(0,n.kt)("li",{parentName:"ul"},"Added a basic UI to the ",(0,n.kt)("a",{parentName:"li",href:"http://explorer.hydra.family"},"Hydra explorer")," in ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1330"},"#","1331")," and switched to displaying ",(0,n.kt)("inlineCode",{parentName:"li"},"sanchonet")," data."),(0,n.kt)("li",{parentName:"ul"},"Fixed sanchonet smoke tests ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1323"},"#","1323"),", see Github ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/actions/workflows/smoke-test.yaml"},"Actions"),"."),(0,n.kt)("li",{parentName:"ul"},"Refactored and simplified the nix flake ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1317"},"#","1317"),"."),(0,n.kt)("li",{parentName:"ul"},"Updated to cardano-api-8.39 ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1316"},"#","1316"),"."),(0,n.kt)("li",{parentName:"ul"},"Prepare future switch to Conway by making hydra-cardano-api less babbage specific in ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1326"},"#","1326"),", ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1327"},"#","1327")," and ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/pull/1328"},"#","1328"),".")),(0,n.kt)("h3",{id:"what-are-the-goals-of-next-week"},"What are the goals of next week"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete preparation for ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/1178"},"#","1178"),' to switch to Conway (by "flipping" a switch)'),(0,n.kt)("li",{parentName:"ul"},"Complete off-chain incremental commit protocol changes ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/hydra/issues/199"},"#","199")," (and focus on the on-chain part after)."),(0,n.kt)("li",{parentName:"ul"},"Re-align with SundaeLabs on ",(0,n.kt)("inlineCode",{parentName:"li"},"EventSource")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"EventSink")," refactoring.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ff8cfcf7.14341bfe.js b/assets/js/ff8cfcf7.14341bfe.js new file mode 100644 index 0000000000..cefdc8f3e6 --- /dev/null +++ b/assets/js/ff8cfcf7.14341bfe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[20203],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),d=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=d(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=d(r),h=n,m=s["".concat(u,".").concat(h)]||s[h]||c[h]||l;return r?a.createElement(m,o(o({ref:t},p),{},{components:r})):a.createElement(m,o({ref:t},p))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=h;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:n,o[1]=i;for(var d=2;d<l;d++)o[d]=r[d];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},98149:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>d});var a=r(87462),n=(r(67294),r(3905));const l={title:"Ledger Team Update",slug:"2022-12-09-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},o=void 0,i={permalink:"/2022-12-09-ledger",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/blog/2022-12-09-ledger.md",source:"@site/blog/2022-12-09-ledger.md",title:"Ledger Team Update",description:"High level summary",date:"2022-12-09T00:00:00.000Z",formattedDate:"December 9, 2022",tags:[{label:"ledger",permalink:"/tags/ledger"}],readingTime:2.87,hasTruncateMarker:!1,authors:[{name:"Jared Corduan",title:"Ledger Team Lead",url:"https://github.com/JaredCorduan",imageURL:"https://github.com/JaredCorduan.png",key:"JaredCorduan"}],frontMatter:{title:"Ledger Team Update",slug:"2022-12-09-ledger",authors:"JaredCorduan",tags:["ledger"],hide_table_of_contents:!1},prevItem:{title:"Hydra Team Update",permalink:"/2022-12-09-hydra"},nextItem:{title:"Hydra Team Update",permalink:"/2022-12-02-hydra"}},u={authorsImageUrls:[void 0]},d=[{value:"High level summary",id:"high-level-summary",level:2},{value:"Lower level summary",id:"lower-level-summary",level:2},{value:"Cardano ledger API",id:"cardano-ledger-api",level:4},{value:"Architectural Decision Records (ADRs)",id:"architectural-decision-records-adrs",level:4},{value:"Tracking individual deposits",id:"tracking-individual-deposits",level:4},{value:"Removing pointer addresses",id:"removing-pointer-addresses",level:4},{value:"Technical debt",id:"technical-debt",level:4}],p={toc:d},s="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"high-level-summary"},"High level summary"),(0,n.kt)("p",null,"The Plutus tools team at IOG has started helping the ledger team to build out a user friendly\n",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-ledger-api")," package!\nA ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/projects/5"},"GitHub project"),"\nwill be filled out in the days ahead,\npeople interested in the API can use it to follow along and join in on the conversations."),(0,n.kt)("p",null,"The ledger team has started using\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/blob/6fc0e198560fb4169d435da882394930789a8af8/docs/adr/2022-12-01_001-record-architectural-decisions.md"},"architectural decision records"),"\nto leave a record of important decisions that the team makes.\nWe will retroactively go back through past decisions and make ADRs for them."),(0,n.kt)("p",null,"The logic to track individual deposits is now nearly in place.\nWe are prioritizing correctness with our first pull request, and will follow up with\nperformance optimizations and general cleanup next."),(0,n.kt)("p",null,"Pointer addresses are being deprecated with the Cardano major protocol version 8.\nSee ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/374"},"CPS-0002"),"\nfor more context."),(0,n.kt)("h2",{id:"lower-level-summary"},"Lower level summary"),(0,n.kt)("h4",{id:"cardano-ledger-api"},"Cardano ledger API"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Plutus tools team")," has taken our minimal ",(0,n.kt)("inlineCode",{parentName:"p"},"cardano-ledger-api")," package and started filling it\nout and adding much needed documentation.\nThey have also added doctests!\nIn the days to come, the Plutus tools team will map out a lot more work for the API and record\nit in this\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/projects/5"},"GitHub project"),"."),(0,n.kt)("p",null,"See"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3182"},"pull-3182")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3188"},"pull-3188"))),(0,n.kt)("h4",{id:"architectural-decision-records-adrs"},"Architectural Decision Records (ADRs)"),(0,n.kt)("p",null,"We are now providing more context and leaving a record of important decisions that are made\nin the ledger. The first ADR explains the very lightweight process."),(0,n.kt)("p",null,"See"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3177"},"pull-3177")," (rendered ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/blob/6fc0e198560fb4169d435da882394930789a8af8/docs/adr/2022-12-01_001-record-architectural-decisions.md"},"here"),")")),(0,n.kt)("h4",{id:"tracking-individual-deposits"},"Tracking individual deposits"),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/input-output-hk/cardano-ledger/pull/3190/files"},"ADR-3"),"\nfor background.\nWe now have the logic in place to track individual deposits, and a host of property tests\nto make sure that the logic is correct.\nThe current implementation uses more memory than it needs to, and we will address that next,\nwith our hope being to only use one word (8 bytes) per registered stake credential.\nThere is a fair amount of other cleanup needed for general maintainability."),(0,n.kt)("p",null,"See"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3127"},"pull-3127")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3195"},"pull-3195")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3202"},"pull-3202"))),(0,n.kt)("h4",{id:"removing-pointer-addresses"},"Removing pointer addresses"),(0,n.kt)("p",null,"Pointer addresses, which have never seen any real use\n(there are something like eleven on mainnet), are being deprecated starting at Cardano major\nversion 9.\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/cardano-foundation/CIPs/pull/374"},"CPS-0002")," gives the context.\nWe are disabling them by first preventing transaction outputs containing them\nfrom being serialized by the node at the moment we switch to version 9.\nAt the hard fork after that, we will translate the existing few pointer addresses\nto enterprise addresses."),(0,n.kt)("p",null,"See"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3174"},"pull-3174"))),(0,n.kt)("h4",{id:"technical-debt"},"Technical debt"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3162"},"pull-3162")," - Sometimes we have to put safeguards in place for hard forks which may never\nbe exercised. After we have passed the given hardfork, we are able to clean up the code\nand simplify our logic. We removed all of the ones that we are currently easily able to."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3165"},"pull-3165")," - We improved the type safety of our code while also discovering and fixing\na serialization bug."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3172"},"pull-3172")," - We removed dead code."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3175"},"pull-3175")," - The Allegra and the Mary code used to be coupled in a particular way the we grew to\ndislike. We made these two ledger eras now uniform with the rest of our code base."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3184"},"pull-3184")," - We organized our property testing code."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/input-output-hk/cardano-ledger/pull/3200"},"pull-3200")," - The Plutus tools teams fixed an outstanding bug in the translation from the\nledger state to the Plutus script context.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ff98e151.23739f45.js b/assets/js/ff98e151.23739f45.js new file mode 100644 index 0000000000..b6d19e5abf --- /dev/null +++ b/assets/js/ff98e151.23739f45.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[12287],{68464:a=>{a.exports=JSON.parse('{"label":"cli-api","permalink":"/tags/cli-api","allTagsPath":"/tags","count":39}')}}]); \ No newline at end of file diff --git a/assets/js/ffeb8a80.5bdf35b2.js b/assets/js/ffeb8a80.5bdf35b2.js new file mode 100644 index 0000000000..78f38949e7 --- /dev/null +++ b/assets/js/ffeb8a80.5bdf35b2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[35275],{74591:e=>{e.exports=JSON.parse('{"permalink":"/page/64","page":64,"postsPerPage":5,"totalPages":88,"totalCount":436,"previousPage":"/page/63","nextPage":"/page/65","blogDescription":"Regular updates from Cardano Development Teams","blogTitle":"Cardano Development Updates"}')}}]); \ No newline at end of file diff --git a/assets/js/main.5671cdaa.js b/assets/js/main.5671cdaa.js new file mode 100644 index 0000000000..02b7ab19d9 --- /dev/null +++ b/assets/js/main.5671cdaa.js @@ -0,0 +1,2 @@ +/*! For license information please see main.5671cdaa.js.LICENSE.txt */ +(self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[]).push([[40179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>b});var a=n(67294),o=n(87462),r=n(68356),c=n.n(r),i=n(16887);const l={"0048047b":[()=>n.e(38518).then(n.bind(n,79682)),"@site/blog/2022-12-28-node-cli-api.md?truncated=true",79682],"007e4c05":[()=>n.e(73800).then(n.bind(n,65907)),"@site/blog/2023-07-18-node-cli-api.md",65907],"00ae3d77":[()=>n.e(24216).then(n.t.bind(n,42533,19)),"~blog/updates/tags-crypto-page-4-421.json",42533],"011c86a6":[()=>n.e(94507).then(n.t.bind(n,43452,19)),"~docs/default/category-docs-defaultsidebar-category-tutorial-extras-bd0.json",43452],"012b1d34":[()=>n.e(70160).then(n.bind(n,36788)),"@site/blog/2024-05-27-hydra.md",36788],"013c921c":[()=>n.e(28098).then(n.t.bind(n,77081,19)),"~blog/updates/tags-crypto-page-2-cb4-list.json",77081],"015be621":[()=>n.e(80613).then(n.bind(n,77613)),"@site/blog/2022-09-20-consensus.md",77613],"017cd6b7":[()=>n.e(3649).then(n.bind(n,14286)),"@site/blog/2022-11-18-hydra.md",14286],"019bb279":[()=>n.e(83167).then(n.bind(n,86627)),"@site/blog/2022-08-31-consensus.md?truncated=true",86627],"01a85c17":[()=>Promise.all([n.e(40532),n.e(64013)]).then(n.bind(n,91223)),"@theme/BlogTagsListPage",91223],"02208e51":[()=>n.e(42451).then(n.t.bind(n,60013,19)),"~blog/updates/tags-crypto-page-3-0b6-list.json",60013],"022c437b":[()=>n.e(92988).then(n.bind(n,63129)),"@site/quarterly/2024-Q2-sre.md",63129],"0281a492":[()=>n.e(79503).then(n.bind(n,69998)),"@site/blog/2023-06-08-sre.md",69998],"034a14a6":[()=>n.e(95018).then(n.bind(n,10437)),"@site/blog/2023-06-28-performance-and-tracing.md?truncated=true",10437],"0350d52d":[()=>n.e(17878).then(n.bind(n,54391)),"@site/blog/2024-01-05-sre.md?truncated=true",54391],"03d856aa":[()=>n.e(6413).then(n.bind(n,17040)),"@site/blog/2022-11-11-network.md",17040],"042169f6":[()=>n.e(27449).then(n.bind(n,7841)),"@site/blog/2022-12-01-mithril.md",7841],"0431617f":[()=>n.e(68153).then(n.bind(n,33018)),"@site/blog/2023-04-28-goedel.md?truncated=true",33018],"04326247":[()=>n.e(25759).then(n.bind(n,2327)),"@site/blog/2023-01-25-node-cli-api.md?truncated=true",2327],"046dd16d":[()=>n.e(49237).then(n.bind(n,55442)),"@site/blog/2023-09-15-network.md?truncated=true",55442],"04ae583b":[()=>n.e(70057).then(n.t.bind(n,2851,19)),"/home/runner/work/cardano-updates/cardano-updates/.docusaurus/docusaurus-plugin-content-blog/reports/plugin-route-context-module-100.json",2851],"04c3317f":[()=>n.e(83050).then(n.bind(n,10313)),"@site/blog/2023-03-27-system-test.md?truncated=true",10313],"04d19f61":[()=>n.e(57071).then(n.bind(n,63378)),"@site/blog/2024-02-15-node-cli-api.md",63378],"051bf5d6":[()=>n.e(1088).then(n.t.bind(n,30547,19)),"~blog/updates/tags-cli-api-page-7-e63-list.json",30547],"053dec63":[()=>n.e(38951).then(n.bind(n,70533)),"@site/blog/2024-03-15-node-cli-api.md",70533],"05bee9ec":[()=>n.e(87618).then(n.bind(n,88627)),"@site/blog/2024-04-26-node-cli-api.md",88627],"05e38d95":[()=>n.e(40718).then(n.bind(n,71150)),"@site/blog/2024-02-14-mithril.md?truncated=true",71150],"05f2862f":[()=>n.e(18479).then(n.bind(n,88989)),"@site/blog/2023-04-07-hydra.md",88989],"0645cd02":[()=>n.e(46982).then(n.bind(n,57276)),"@site/blog/2023-07-21-ledger.md?truncated=true",57276],"0646a177":[()=>n.e(36303).then(n.bind(n,81778)),"@site/blog/2024-02-28-ledger.md",81778],"0660f60e":[()=>n.e(76131).then(n.t.bind(n,73340,19)),"~blog/updates/tags-network-page-5-a78-list.json",73340],"066b9f60":[()=>n.e(42181).then(n.t.bind(n,73021,19)),"~blog/updates/tags-cli-api-page-6-2d0-list.json",73021],"06a283ef":[()=>n.e(2307).then(n.bind(n,15889)),"@site/blog/2022-10-04-db-sync.md?truncated=true",15889],"06ca6baf":[()=>n.e(67644).then(n.bind(n,52843)),"@site/blog/2024-05-29-mithril.md?truncated=true",52843],"077b979c":[()=>n.e(80500).then(n.bind(n,46459)),"@site/blog/2024-03-20-consensus.md",46459],"078fe100":[()=>n.e(69321).then(n.bind(n,7899)),"@site/quarterly/2023-Q4-sre.md?truncated=true",7899],"07948597":[()=>n.e(57998).then(n.t.bind(n,88796,19)),"~blog/updates/tags-open-source-f3d.json",88796],"07fdf123":[()=>n.e(39439).then(n.bind(n,86757)),"@site/blog/2023-01-13-release.md?truncated=true",86757],"0801ba5a":[()=>n.e(19644).then(n.bind(n,26870)),"@site/blog/2023-05-26-hydra.md?truncated=true",26870],"0813fe0c":[()=>n.e(91705).then(n.bind(n,54110)),"@site/blog/2024-04-05-hydra.md?truncated=true",54110],"089154c4":[()=>n.e(72344).then(n.bind(n,83365)),"@site/blog/2022-11-02-node-cli-api.md",83365],"089f77bc":[()=>n.e(20017).then(n.t.bind(n,97418,19)),"~blog/updates/page-8-8c2.json",97418],"08c82b6d":[()=>n.e(81).then(n.t.bind(n,7232,19)),"/home/runner/work/cardano-updates/cardano-updates/.docusaurus/docusaurus-plugin-content-blog/updates/plugin-route-context-module-100.json",7232],"08d15232":[()=>n.e(46215).then(n.t.bind(n,99578,19)),"~blog/updates/tags-cli-api-page-5-d61.json",99578],"0915a78d":[()=>n.e(10440).then(n.bind(n,82933)),"@site/blog/2024-02-21-mithril.md?truncated=true",82933],"092cb4d9":[()=>n.e(43640).then(n.bind(n,88280)),"@site/reports/2024-03-performance-8.9.1.md?truncated=true",88280],"09719837":[()=>n.e(97618).then(n.bind(n,45612)),"@site/blog/2023-11-24-goedel.md",45612],"09dc29d3":[()=>n.e(18513).then(n.t.bind(n,62327,19)),"~blog/updates/tags-sre-page-2-7bc-list.json",62327],"09e2328d":[()=>n.e(74813).then(n.t.bind(n,86955,19)),"~blog/updates/tags-ledger-page-2-eba.json",86955],"0a44a251":[()=>n.e(63565).then(n.bind(n,51604)),"@site/blog/2022-12-14-node-cli-api.md?truncated=true",51604],"0a497e30":[()=>n.e(35794).then(n.bind(n,57271)),"@site/blog/2024-05-10-sre.md",57271],"0a60fad7":[()=>n.e(43650).then(n.bind(n,59353)),"@site/blog/2023-10-27-goedel.md",59353],"0a8f6579":[()=>n.e(40521).then(n.t.bind(n,61670,19)),"~blog/updates/page-23-651.json",61670],"0ade4266":[()=>n.e(16227).then(n.bind(n,27126)),"@site/blog/2023-11-17-hydra.md",27126],"0af81f82":[()=>n.e(10114).then(n.bind(n,61640)),"@site/blog/2023-03-31-ledger.md?truncated=true",61640],"0b0bfceb":[()=>n.e(60903).then(n.bind(n,27558)),"@site/blog/2023-10-13-sre.md",27558],"0b1b72af":[()=>n.e(26276).then(n.bind(n,23329)),"@site/blog/2022-12-09-crypto.md?truncated=true",23329],"0b5e25e7":[()=>n.e(23621).then(n.bind(n,17681)),"@site/blog/2023-11-01-consensus.md?truncated=true",17681],"0bbf8a95":[()=>n.e(25456).then(n.bind(n,75410)),"@site/blog/2024-04-19-hydra.md?truncated=true",75410],"0bfabad2":[()=>n.e(62670).then(n.bind(n,62286)),"@site/reports/2024-07-performance-9.0.0.md?truncated=true",62286],"0c10bcf4":[()=>n.e(72872).then(n.bind(n,10221)),"@site/blog/2023-05-19-hydra.md",10221],"0c11045c":[()=>n.e(39745).then(n.bind(n,56996)),"@site/blog/2023-02-03-goedel.md?truncated=true",56996],"0c48efb1":[()=>n.e(41794).then(n.bind(n,35468)),"@site/blog/2023-02-17-hydra.md",35468],"0c58c296":[()=>n.e(68237).then(n.t.bind(n,83833,19)),"~blog/updates/tags-cli-api-page-4-9f8-list.json",83833],"0c8d8623":[()=>n.e(21404).then(n.bind(n,95769)),"@site/blog/2023-12-15-hydra.md",95769],"0ca75f19":[()=>n.e(42228).then(n.t.bind(n,12864,19)),"~blog/updates/tags-hydra-page-16-d6d.json",12864],"0ca860fc":[()=>n.e(15315).then(n.t.bind(n,7593,19)),"~blog/updates/tags-network-page-4-09a-list.json",7593],"0d671897":[()=>n.e(29059).then(n.bind(n,75396)),"@site/blog/2022-11-01-db-sync.md?truncated=true",75396],"0d6ce706":[()=>n.e(96256).then(n.t.bind(n,95017,19)),"~blog/updates/tags-ledger-page-7-190-list.json",95017],"0d889cfb":[()=>n.e(27237).then(n.bind(n,30309)),"@site/blog/2023-03-17-hydra.md",30309],"0d954d74":[()=>n.e(91599).then(n.t.bind(n,36062,19)),"~blog/updates/tags-consensus-page-6-301.json",36062],"0db650db":[()=>n.e(74607).then(n.bind(n,49165)),"@site/blog/2023-03-22-consensus.md?truncated=true",49165],"0dea9a3b":[()=>n.e(4910).then(n.bind(n,96597)),"@site/quarterly/2023-01-13-open-source.md",96597],"0dfea636":[()=>n.e(21200).then(n.bind(n,81038)),"@site/blog/2023-07-04-db-sync.md?truncated=true",81038],"0e0c98f4":[()=>n.e(60280).then(n.bind(n,91321)),"@site/blog/2023-08-18-network.md?truncated=true",91321],"0e384e19":[()=>n.e(59671).then(n.bind(n,59881)),"@site/docs/intro.md",59881],"0e717c32":[()=>n.e(26397).then(n.bind(n,40284)),"@site/blog/2023-11-29-mithril.md",40284],"0e828f3a":[()=>n.e(77338).then(n.bind(n,2105)),"@site/blog/2023-09-15-ledger.md?truncated=true",2105],"0e8f60e3":[()=>n.e(39236).then(n.bind(n,80315)),"@site/blog/2024-02-16-sre.md?truncated=true",80315],"0eb9e1ad":[()=>n.e(93751).then(n.t.bind(n,32270,19)),"~blog/updates/tags-ledger-page-3-34b.json",32270],"0edd4eae":[()=>n.e(97478).then(n.t.bind(n,81536,19)),"~blog/updates/tags-mithril-page-6-40f-list.json",81536],"0f191e9d":[()=>n.e(97983).then(n.t.bind(n,75552,19)),"~blog/updates/tags-hydra-782.json",75552],"0fa2fd29":[()=>n.e(83646).then(n.bind(n,83216)),"@site/blog/2023-06-16-hydra.md",83216],"0fc579d4":[()=>n.e(76442).then(n.t.bind(n,68216,19)),"~blog/updates/tags-db-sync-ca9-list.json",68216],10532414:[()=>n.e(6890).then(n.bind(n,97835)),"@site/blog/2023-08-04-goedel.md?truncated=true",97835],"10659ce5":[()=>n.e(40400).then(n.bind(n,62471)),"@site/blog/2022-11-16-node-cli-api.md?truncated=true",62471],"10ca2666":[()=>n.e(86769).then(n.bind(n,74816)),"@site/blog/2024-01-24-consensus.md",74816],"10dfceb5":[()=>n.e(53545).then(n.bind(n,34313)),"@site/blog/2024-05-29-mithril.md",34313],"1112c086":[()=>n.e(61263).then(n.bind(n,71859)),"@site/blog/2023-12-13-mithril.md?truncated=true",71859],"1121299e":[()=>n.e(84213).then(n.bind(n,66259)),"@site/blog/2024-04-10-mithril.md",66259],"113fed8c":[()=>n.e(33215).then(n.bind(n,2073)),"@site/blog/2023-07-12-consensus.md?truncated=true",2073],11423591:[()=>n.e(96410).then(n.bind(n,73677)),"@site/blog/2023-06-08-sre.md?truncated=true",73677],"1147f4da":[()=>n.e(21463).then(n.bind(n,75148)),"@site/blog/2022-11-03-embedding-quality.md",75148],"1150db26":[()=>n.e(7268).then(n.bind(n,3910)),"@site/blog/2024-04-10-ledger.md?truncated=true",3910],"120c0b00":[()=>n.e(59955).then(n.bind(n,33276)),"@site/blog/2022-11-30-node-cli-api.md",33276],"12208c5e":[()=>n.e(32852).then(n.bind(n,32458)),"@site/blog/2023-07-21-hydra.md",32458],"12525f14":[()=>n.e(46207).then(n.bind(n,96725)),"@site/quarterly/2023-04-03-ledger.md?truncated=true",96725],"12637b23":[()=>n.e(32706).then(n.bind(n,24879)),"@site/blog/2023-05-24-node-cli-api.md?truncated=true",24879],"126e82e6":[()=>n.e(96871).then(n.bind(n,67870)),"@site/blog/2022-11-02-ledger.md?truncated=true",67870],"12a1613f":[()=>n.e(4615).then(n.bind(n,65518)),"@site/blog/2023-08-11-performance-and-tracing.md?truncated=true",65518],"12ba2af2":[()=>n.e(3203).then(n.bind(n,87685)),"@site/blog/2024-06-26-mithril.md",87685],"12c83d8a":[()=>n.e(58774).then(n.bind(n,77470)),"@site/blog/2023-07-28-hydra.md",77470],"12d5d907":[()=>n.e(16348).then(n.bind(n,37534)),"@site/blog/2023-04-07-hydra.md?truncated=true",37534],"133ddf45":[()=>n.e(73716).then(n.t.bind(n,25601,19)),"~blog/updates/page-51-74a.json",25601],"1377d1fa":[()=>n.e(79841).then(n.bind(n,92927)),"@site/blog/2022-10-19-node-cli-api.md",92927],"142448a1":[()=>n.e(61705).then(n.bind(n,13255)),"@site/blog/2024-05-10-sre.md?truncated=true",13255],"144cea98":[()=>n.e(50881).then(n.bind(n,86528)),"@site/blog/2023-02-22-node-cli-api.md",86528],"144cf255":[()=>n.e(55553).then(n.bind(n,34167)),"@site/blog/2022-11-04-mithril.md?truncated=true",34167],"14db8e4c":[()=>n.e(33815).then(n.t.bind(n,26528,19)),"~blog/updates/tags-mithril-page-3-607.json",26528],"14eb3368":[()=>Promise.all([n.e(40532),n.e(9817)]).then(n.bind(n,34228)),"@theme/DocCategoryGeneratedIndexPage",34228],"14ffac04":[()=>n.e(59494).then(n.bind(n,16801)),"@site/blog/2023-09-01-ledger.md",16801],"15072f11":[()=>n.e(83129).then(n.bind(n,49702)),"@site/quarterly/2022-11-07-ledger.md?truncated=true",49702],"1558d884":[()=>n.e(2906).then(n.bind(n,75088)),"@site/blog/2024-05-07-performance-and-tracing.md",75088],"15691c1d":[()=>n.e(43729).then(n.bind(n,19289)),"@site/blog/2023-08-17-secp-security-issue-report.md",19289],"15dc596d":[()=>n.e(6962).then(n.bind(n,487)),"@site/blog/2022-11-02-system-test.md?truncated=true",487],"161d96eb":[()=>n.e(41867).then(n.t.bind(n,54420,19)),"~blog/updates/tags-network-page-3-b41.json",54420],"163cc15d":[()=>n.e(25588).then(n.bind(n,46129)),"@site/blog/2024-05-22-ledger.md",46129],16833806:[()=>n.e(67658).then(n.t.bind(n,63600,19)),"~blog/updates/tags-devx-bd8.json",63600],"16a93549":[()=>n.e(4307).then(n.bind(n,68546)),"@site/blog/2023-07-07-sre.md",68546],"16b5fa1e":[()=>n.e(72074).then(n.t.bind(n,39259,19)),"~blog/updates/tags-network-page-2-2d5.json",39259],"16f9706c":[()=>n.e(54316).then(n.t.bind(n,85216,19)),"~blog/updates/tags-ledger-page-8-6df.json",85216],"170ad9f9":[()=>n.e(59256).then(n.bind(n,87063)),"@site/blog/2024-03-20-consensus.md?truncated=true",87063],17254497:[()=>n.e(27921).then(n.bind(n,77631)),"@site/blog/2024-03-06-mithril.md?truncated=true",77631],"1752e4e5":[()=>n.e(770).then(n.bind(n,9131)),"@site/blog/2023-10-18-consensus.md?truncated=true",9131],17630979:[()=>n.e(93724).then(n.bind(n,22903)),"@site/blog/2022-11-02-system-test.md",22903],"177280a4":[()=>n.e(95447).then(n.bind(n,67686)),"@site/blog/2022-11-11-hydra.md?truncated=true",67686],17896441:[()=>Promise.all([n.e(40532),n.e(80210),n.e(27918)]).then(n.bind(n,15154)),"@theme/DocItem",15154],"17e76f05":[()=>n.e(64966).then(n.bind(n,24065)),"@site/blog/2023-05-12-hydra.md?truncated=true",24065],"187056c8":[()=>n.e(40430).then(n.bind(n,1377)),"@site/blog/2022-11-11-crypto.md",1377],"189b9341":[()=>n.e(815).then(n.bind(n,54105)),"@site/blog/2024-07-17-mithril.md?truncated=true",54105],"18c41134":[()=>n.e(82859).then(n.bind(n,43494)),"@site/docs/tutorial-basics/markdown-features.mdx",43494],"199b4690":[()=>n.e(38370).then(n.bind(n,44757)),"@site/blog/2024-04-03-mithril.md?truncated=true",44757],"19b42e4a":[()=>n.e(47089).then(n.t.bind(n,52616,19)),"~blog/updates/tags-hydra-page-3-da3-list.json",52616],"1a6775b2":[()=>n.e(29867).then(n.t.bind(n,97531,19)),"~blog/updates/page-35-8fd.json",97531],"1a6b5039":[()=>n.e(52463).then(n.t.bind(n,40239,19)),"~blog/updates/page-44-cef.json",40239],"1a932c01":[()=>n.e(2348).then(n.bind(n,48897)),"@site/blog/2023-08-17-db-sync.md?truncated=true",48897],"1a982bed":[()=>n.e(27885).then(n.t.bind(n,97247,19)),"~blog/quarterly/quarterly-tags-cli-api-quarterly-c3b-list.json",97247],"1aa68a01":[()=>n.e(5507).then(n.t.bind(n,84408,19)),"~blog/reports/reports-8a0.json",84408],"1ac6d9a0":[()=>n.e(86243).then(n.t.bind(n,2993,19)),"~blog/updates/tags-cli-api-page-3-7c4-list.json",2993],"1adaa071":[()=>n.e(11164).then(n.t.bind(n,18712,19)),"~blog/updates/tags-hydra-page-5-51b.json",18712],"1afca88e":[()=>n.e(49835).then(n.bind(n,3693)),"@site/blog/2023-10-02-network.md",3693],"1b2a226f":[()=>n.e(88782).then(n.bind(n,67497)),"@site/blog/2023-09-07-mithril.md",67497],"1b34f23d":[()=>n.e(91990).then(n.bind(n,91179)),"@site/blog/2023-11-20-cip1694.md",91179],"1b386b52":[()=>n.e(7939).then(n.t.bind(n,2385,19)),"~blog/updates/tags-release-006-list.json",2385],"1b89036f":[()=>n.e(42408).then(n.bind(n,15430)),"@site/blog/2024-07-10-mithril.md?truncated=true",15430],"1be78505":[()=>Promise.all([n.e(40532),n.e(29514)]).then(n.bind(n,19963)),"@theme/DocPage",19963],"1be923a7":[()=>n.e(47658).then(n.bind(n,43079)),"@site/blog/2023-06-12-network.md?truncated=true",43079],"1bfd87fe":[()=>n.e(93762).then(n.bind(n,56703)),"@site/blog/2023-12-22-network.md",56703],"1c192ca4":[()=>n.e(23146).then(n.bind(n,31697)),"@site/blog/2023-11-15-mithril.md?truncated=true",31697],"1c273fb9":[()=>n.e(38292).then(n.bind(n,56014)),"@site/blog/2024-03-20-mithril.md",56014],"1caacab6":[()=>n.e(85442).then(n.bind(n,89790)),"@site/blog/2023-03-10-hydra.md?truncated=true",89790],"1cb5298b":[()=>n.e(9009).then(n.bind(n,59569)),"@site/blog/2024-05-22-ledger.md?truncated=true",59569],"1cfb0a67":[()=>n.e(30066).then(n.t.bind(n,23143,19)),"~blog/updates/tags-incident-df6.json",23143],"1d10bd9e":[()=>n.e(5978).then(n.bind(n,66143)),"@site/blog/2023-03-08-node-cli-api.md",66143],"1da92289":[()=>n.e(22954).then(n.bind(n,49363)),"@site/blog/2022-11-03-embedding-quality.md?truncated=true",49363],"1dd82bf1":[()=>n.e(74475).then(n.bind(n,89)),"@site/blog/2024-05-15-consensus.md?truncated=true",89],"1e4232ab":[()=>n.e(88818).then(n.bind(n,6193)),"@site/docs/tutorial-basics/create-a-document.md",6193],"1e57c0e2":[()=>n.e(64313).then(n.bind(n,45222)),"@site/blog/2023-08-18-goedel.md?truncated=true",45222],"1e9d3edd":[()=>n.e(91660).then(n.t.bind(n,87202,19)),"~blog/updates/tags-hydra-page-14-d1b-list.json",87202],"1eaa900a":[()=>n.e(68107).then(n.bind(n,96571)),"@site/quarterly/2024-Q2-sre.md?truncated=true",96571],"1eb5f871":[()=>n.e(50685).then(n.bind(n,15111)),"@site/blog/2024-02-21-consensus.md",15111],"1edde1a1":[()=>n.e(3721).then(n.t.bind(n,29814,19)),"~blog/updates/tags-system-test-035-list.json",29814],"1f391b9e":[()=>Promise.all([n.e(40532),n.e(80210),n.e(13085)]).then(n.bind(n,14247)),"@theme/MDXPage",14247],"1f9c0c9c":[()=>n.e(28323).then(n.bind(n,3315)),"@site/blog/2023-09-20-mithril.md",3315],20441287:[()=>n.e(879).then(n.bind(n,93178)),"@site/blog/2024-03-18-network.md",93178],"2073b851":[()=>Promise.all([n.e(51068),n.e(47704)]).then(n.bind(n,3529)),"@site/blog/2022-09-27-network.md?truncated=true",3529],"2075513f":[()=>n.e(70665).then(n.t.bind(n,94216,19)),"~blog/updates/tags-ledger-page-9-dd6.json",94216],"20904fef":[()=>n.e(12620).then(n.t.bind(n,73398,19)),"~blog/updates/tags-ledger-page-6-121-list.json",73398],"209bf559":[()=>n.e(80367).then(n.bind(n,73937)),"@site/blog/2023-10-02-network.md?truncated=true",73937],"20bc6fcd":[()=>n.e(4093).then(n.bind(n,46994)),"@site/blog/2023-06-09-developer-experience.md",46994],"20ca2c37":[()=>n.e(38516).then(n.bind(n,12772)),"@site/blog/2023-07-04-db-sync.md",12772],"20db5fd1":[()=>n.e(50887).then(n.t.bind(n,35711,19)),"~blog/updates/tags-network-page-7-58d-list.json",35711],"214ea763":[()=>n.e(54462).then(n.t.bind(n,60507,19)),"~blog/updates/tags-sre-page-6-a24.json",60507],"2154b8e4":[()=>n.e(28480).then(n.bind(n,39253)),"@site/blog/2023-05-26-ledger.md?truncated=true",39253],"216f4a5f":[()=>n.e(69701).then(n.t.bind(n,92061,19)),"~blog/updates/page-17-62c.json",92061],"21857c8f":[()=>n.e(85417).then(n.bind(n,7484)),"@site/blog/2022-12-01-system-test.md",7484],"219856ee":[()=>n.e(2109).then(n.bind(n,47873)),"@site/blog/2023-04-28-goedel.md",47873],"21f2a9aa":[()=>n.e(21806).then(n.t.bind(n,18031,19)),"~blog/updates/tags-mithril-page-13-786.json",18031],"221981c6":[()=>n.e(99715).then(n.bind(n,68123)),"@site/blog/2024-01-12.md?truncated=true",68123],"223e0224":[()=>n.e(60538).then(n.t.bind(n,47109,19)),"~blog/updates/tags-goedel-page-5-f27.json",47109],"2276e554":[()=>n.e(28843).then(n.bind(n,6380)),"@site/blog/2023-08-04-network.md",6380],"228ebc11":[()=>n.e(20897).then(n.t.bind(n,36795,19)),"~blog/updates/page-7-3c3.json",36795],"22a8c4ec":[()=>n.e(13056).then(n.bind(n,91722)),"@site/blog/2023-11-10-goedel.md?truncated=true",91722],"22e80361":[()=>n.e(20196).then(n.t.bind(n,28471,19)),"~blog/updates/page-43-b0a.json",28471],"234d19c9":[()=>n.e(72993).then(n.t.bind(n,7994,19)),"~blog/updates/tags-mithril-page-7-a17-list.json",7994],"237aa4d6":[()=>n.e(98918).then(n.bind(n,71014)),"@site/blog/2023-07-20-goedel.md",71014],"23c4c5bd":[()=>n.e(70498).then(n.bind(n,37993)),"@site/blog/2024-04-17-consensus.md",37993],"2455acc4":[()=>n.e(21642).then(n.bind(n,36107)),"@site/blog/2023-08-15-node-cli-api.md",36107],"245ecae9":[()=>n.e(65356).then(n.bind(n,27417)),"@site/blog/2023-09-15-hydra.md",27417],"246d9f04":[()=>n.e(7966).then(n.bind(n,52531)),"@site/blog/2023-08-04-crypto.md?truncated=true",52531],"24788f0e":[()=>n.e(66278).then(n.t.bind(n,21980,19)),"~blog/updates/tags-hydra-page-15-b65-list.json",21980],"24d5a6d9":[()=>n.e(98698).then(n.bind(n,35142)),"@site/blog/2023-09-27-mithril.md?truncated=true",35142],"24d9143c":[()=>n.e(8893).then(n.bind(n,98915)),"@site/blog/2024-05-15-mithril.md?truncated=true",98915],"24fb874a":[()=>n.e(21159).then(n.t.bind(n,10043,19)),"~blog/updates/page-46-6b3.json",10043],"251f0563":[()=>n.e(32570).then(n.t.bind(n,52389,19)),"~blog/updates/tags-mithril-page-12-e87-list.json",52389],"25456c82":[()=>n.e(70937).then(n.t.bind(n,80574,19)),"~blog/updates/tags-ledger-page-8-6df-list.json",80574],"26678b7e":[()=>n.e(47724).then(n.bind(n,32447)),"@site/blog/2022-12-02-hydra.md",32447],"2691c4f4":[()=>n.e(93362).then(n.bind(n,71581)),"@site/blog/2024-03-06-consensus.md?truncated=true",71581],"26a4b8b3":[()=>n.e(47669).then(n.bind(n,39448)),"@site/blog/2023-12-04-performance-and-tracing.md?truncated=true",39448],27164297:[()=>n.e(69110).then(n.bind(n,53777)),"@site/blog/2024-05-15-mithril.md",53777],"2738ca2a":[()=>n.e(41016).then(n.t.bind(n,82228,19)),"~blog/updates/page-71-b9c.json",82228],"274d7200":[()=>n.e(26565).then(n.bind(n,38189)),"@site/blog/2022-11-11-ledger.md?truncated=true",38189],"27c463c7":[()=>n.e(24327).then(n.t.bind(n,83769,19)),"/home/runner/work/cardano-updates/cardano-updates/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],28000465:[()=>n.e(96577).then(n.bind(n,35683)),"@site/blog/2024-01-26-hydra.md?truncated=true",35683],"2831f2fb":[()=>n.e(20018).then(n.t.bind(n,28650,19)),"~blog/updates/tags-sre-page-5-9cf.json",28650],"28644f4c":[()=>n.e(16498).then(n.bind(n,32475)),"@site/blog/2024-02-02-sre.md?truncated=true",32475],28874657:[()=>n.e(28592).then(n.bind(n,68472)),"@site/blog/2023-03-08-consensus.md",68472],"28bc1d1b":[()=>n.e(1285).then(n.bind(n,41578)),"@site/blog/2023-06-08-system-test.md?truncated=true",41578],"28d85025":[()=>n.e(5214).then(n.bind(n,85773)),"@site/blog/2023-12-06-ledger.md",85773],"29352f22":[()=>n.e(38848).then(n.t.bind(n,53124,19)),"~blog/updates/tags-hydra-page-10-616.json",53124],"29388bf2":[()=>n.e(31416).then(n.bind(n,18460)),"@site/blog/2024-05-10-hydra.md?truncated=true",18460],"29f10536":[()=>n.e(97444).then(n.t.bind(n,31274,19)),"~blog/updates/page-45-7ec.json",31274],"2a707bc4":[()=>n.e(81564).then(n.t.bind(n,16570,19)),"~blog/updates/tags-cli-api-946-list.json",16570],"2a8f0182":[()=>n.e(57227).then(n.bind(n,82749)),"@site/blog/2023-03-22-node-cli-api.md",82749],"2b637fd9":[()=>n.e(69376).then(n.bind(n,75477)),"@site/blog/2023-09-14-db-sync.md",75477],"2b872e03":[()=>n.e(81755).then(n.bind(n,84975)),"@site/blog/2024-04-12-hydra.md?truncated=true",84975],"2bc04bf6":[()=>n.e(56010).then(n.bind(n,16010)),"@site/blog/2023-06-01-mithril.md",16010],"2c6851ed":[()=>n.e(31762).then(n.bind(n,65777)),"@site/blog/2024-06-25-performance-and-tracing.md?truncated=true",65777],"2ca47575":[()=>n.e(49200).then(n.t.bind(n,59647,19)),"~blog/updates/tags-mithril-page-3-607-list.json",59647],"2d0da244":[()=>n.e(26299).then(n.bind(n,91989)),"@site/blog/2023-04-28-crypto.md?truncated=true",91989],"2d52a685":[()=>n.e(20553).then(n.bind(n,7623)),"@site/blog/2023-05-31-performance-and-tracing.md?truncated=true",7623],"2d72833d":[()=>n.e(18303).then(n.bind(n,22472)),"@site/blog/2023-02-17-hydra.md?truncated=true",22472],"2d91c21f":[()=>n.e(30335).then(n.bind(n,27810)),"@site/blog/2023-04-17-incident.md",27810],"2e0caba1":[()=>n.e(84670).then(n.t.bind(n,18121,19)),"~blog/quarterly/quarterly-tags-sre-8d3-list.json",18121],"2e28eb6b":[()=>n.e(46576).then(n.bind(n,74929)),"@site/blog/2023-08-10-mithril.md?truncated=true",74929],"2e2abe90":[()=>n.e(69467).then(n.bind(n,18367)),"@site/blog/2023-01-19-ledger.md?truncated=true",18367],"2e3d75f1":[()=>n.e(7387).then(n.bind(n,61188)),"@site/blog/2024-03-22-hydra.md",61188],"2e4b96cf":[()=>n.e(59936).then(n.t.bind(n,26624,19)),"~blog/reports/reports-tags-tags-10c.json",26624],"2e4cebe0":[()=>n.e(32532).then(n.bind(n,34700)),"@site/quarterly/2023-Q4-performance-and-tracing.md",34700],"2e52ad4e":[()=>n.e(66840).then(n.bind(n,80401)),"@site/blog/2023-03-17-crypto.md",80401],"2ea56af2":[()=>n.e(34263).then(n.bind(n,45206)),"@site/blog/2024-02-14-ledger.md",45206],"2eba0b82":[()=>n.e(43898).then(n.bind(n,92134)),"@site/blog/2023-01-20-sre.md",92134],"2f43fcdf":[()=>n.e(56734).then(n.bind(n,9712)),"@site/blog/2024-03-06-consensus.md",9712],"2fa57f55":[()=>n.e(47176).then(n.bind(n,52901)),"@site/blog/2022-09-01-ledger.md?truncated=true",52901],"2fd426fa":[()=>n.e(36016).then(n.bind(n,89488)),"@site/blog/2023-01-11-consensus.md",89488],"300a86ed":[()=>n.e(73010).then(n.bind(n,72021)),"@site/blog/2024-02-15-node-cli-api.md?truncated=true",72021],"301cd1f4":[()=>n.e(11952).then(n.bind(n,30886)),"@site/blog/2023-08-23-consensus.md",30886],"3029c859":[()=>n.e(11915).then(n.bind(n,67312)),"@site/blog/2024-01-24-mithril.md",67312],"309cdfe6":[()=>n.e(67037).then(n.bind(n,70260)),"@site/blog/2024-06-25-performance-and-tracing.md",70260],"31025fde":[()=>n.e(22519).then(n.bind(n,53320)),"@site/blog/2023-09-08-hydra.md?truncated=true",53320],"3143eb67":[()=>n.e(7204).then(n.bind(n,57574)),"@site/blog/2023-01-11-performance-and-tracing.md?truncated=true",57574],"31889a8f":[()=>n.e(96446).then(n.bind(n,59591)),"@site/blog/2022-11-02-consensus.md?truncated=true",59591],"31a18ffd":[()=>n.e(7558).then(n.t.bind(n,53942,19)),"~blog/updates/tags-network-87d.json",53942],"3223729c":[()=>n.e(37609).then(n.t.bind(n,15038,19)),"~docs/default/category-docs-defaultsidebar-category-tutorial-basics-332.json",15038],"324138c8":[()=>n.e(95613).then(n.bind(n,42554)),"@site/blog/2023-02-22-consensus.md",42554],"32a89ce0":[()=>n.e(24665).then(n.bind(n,11422)),"@site/blog/2024-03-15-sre.md?truncated=true",11422],"32d4ad41":[()=>n.e(42575).then(n.bind(n,17402)),"@site/blog/2022-11-11-hydra.md",17402],"3328a3bf":[()=>n.e(86393).then(n.bind(n,44495)),"@site/blog/2022-10-04-db-sync.md",44495],"335868d9":[()=>n.e(45480).then(n.bind(n,98404)),"@site/blog/2023-11-29-consensus.md",98404],"3399a664":[()=>n.e(70950).then(n.bind(n,36908)),"@site/blog/2023-09-12-node-cli-api.md?truncated=true",36908],"33bc9424":[()=>n.e(74169).then(n.t.bind(n,30569,19)),"~blog/updates/page-47-adb.json",30569],34012593:[()=>n.e(86809).then(n.bind(n,22555)),"@site/blog/2023-03-03-goedel.md",22555],"347c3e4d":[()=>n.e(23271).then(n.bind(n,43292)),"@site/blog/2022-12-01-db-sync.md",43292],"34f5d9d4":[()=>n.e(26458).then(n.bind(n,33245)),"@site/blog/2024-05-27-hydra.md?truncated=true",33245],"3538f18d":[()=>n.e(14545).then(n.bind(n,23518)),"@site/blog/2024-06-19-ledger.md?truncated=true",23518],"354f96c6":[()=>n.e(78580).then(n.bind(n,21287)),"@site/blog/2023-10-04-consensus.md",21287],"35760f21":[()=>n.e(68904).then(n.bind(n,12277)),"@site/blog/2024-02-02-sre.md",12277],"35785fae":[()=>n.e(7233).then(n.bind(n,56031)),"@site/blog/2023-01-27-hydra.md?truncated=true",56031],35961293:[()=>n.e(6115).then(n.bind(n,69047)),"@site/blog/2023-11-22-mithril.md",69047],"35c3586e":[()=>n.e(2789).then(n.bind(n,70373)),"@site/blog/2023-10-06-hydra.md?truncated=true",70373],"35e2a0c5":[()=>n.e(90999).then(n.bind(n,53873)),"@site/blog/2023-09-29-ledger.md",53873],"35ef34ae":[()=>n.e(44966).then(n.bind(n,6768)),"@site/blog/2023-08-04-sre.md?truncated=true",6768],"3659ef2a":[()=>n.e(96204).then(n.bind(n,20160)),"@site/blog/2024-07-03-mithril.md?truncated=true",20160],"365e04c6":[()=>n.e(23623).then(n.t.bind(n,55175,19)),"~blog/updates/tags-sre-page-3-51a.json",55175],"367766a3":[()=>n.e(98489).then(n.t.bind(n,78059,19)),"~blog/updates/page-40-397.json",78059],"36a96f5a":[()=>n.e(92160).then(n.bind(n,5083)),"@site/blog/2023-11-09-db-sync.md",5083],"36e46525":[()=>n.e(50646).then(n.bind(n,8558)),"@site/blog/2023-12-22-network.md?truncated=true",8558],"370b5914":[()=>n.e(66394).then(n.t.bind(n,27750,19)),"~blog/updates/tags-performance-tracing-page-3-49d-list.json",27750],"370c5287":[()=>n.e(32438).then(n.bind(n,24475)),"@site/blog/2022-10-28-network.md",24475],"37b247a8":[()=>n.e(21080).then(n.bind(n,46172)),"@site/blog/2023-12-06-mithril.md?truncated=true",46172],"380c57b3":[()=>n.e(25574).then(n.bind(n,36217)),"@site/blog/2024-03-27-performance-and-tracing.md?truncated=true",36217],"38284ae5":[()=>n.e(49105).then(n.bind(n,66756)),"@site/blog/2023-11-17-performance-and-tracing.md",66756],"3839ff25":[()=>n.e(64466).then(n.t.bind(n,91836,19)),"~blog/quarterly/quarterly-tags-ledger-86d-list.json",91836],"3876260c":[()=>n.e(58181).then(n.bind(n,85089)),"@site/blog/2024-03-28-hydra.md?truncated=true",85089],"387f3426":[()=>n.e(34719).then(n.bind(n,78509)),"@site/blog/2023-11-10-hydra.md",78509],"391126a1":[()=>n.e(80542).then(n.bind(n,71720)),"@site/blog/2023-03-17-ledger.md?truncated=true",71720],"393be207":[()=>n.e(87414).then(n.bind(n,53123)),"@site/src/pages/markdown-page.md",53123],"393cd824":[()=>n.e(65773).then(n.bind(n,14686)),"@site/blog/2023-04-05-node-cli-api.md?truncated=true",14686],"395173ce":[()=>n.e(48245).then(n.bind(n,74952)),"@site/blog/2024-03-29-sre.md?truncated=true",74952],"397686d4":[()=>n.e(89756).then(n.bind(n,54922)),"@site/blog/2023-08-11-performance-and-tracing.md",54922],"39db4f40":[()=>n.e(10159).then(n.bind(n,56809)),"@site/blog/2024-04-24-ledger.md?truncated=true",56809],"39dd59eb":[()=>n.e(89943).then(n.bind(n,31438)),"@site/blog/2024-04-18-network.md?truncated=true",31438],"39ea0274":[()=>n.e(50694).then(n.bind(n,16712)),"@site/blog/2024-05-01-consensus.md?truncated=true",16712],"3a3a2602":[()=>n.e(20974).then(n.bind(n,17330)),"@site/blog/2023-07-14-hydra.md",17330],"3a3e17f4":[()=>n.e(84598).then(n.t.bind(n,37637,19)),"~blog/updates/tags-goedel-page-4-d10.json",37637],"3a40f46b":[()=>n.e(36337).then(n.bind(n,9213)),"@site/blog/2023-11-22-ledger.md",9213],"3a493dd8":[()=>n.e(39071).then(n.bind(n,17741)),"@site/blog/2023-05-26-hydra.md",17741],"3a5dab2a":[()=>n.e(90469).then(n.t.bind(n,31308,19)),"~blog/updates/tags-hydra-page-12-81e-list.json",31308],"3a906e9e":[()=>n.e(56626).then(n.t.bind(n,1043,19)),"~blog/updates/page-75-118.json",1043],"3ab5f4e0":[()=>n.e(4376).then(n.bind(n,33684)),"@site/blog/2023-03-23-db-sync.md?truncated=true",33684],"3ac610ff":[()=>n.e(15091).then(n.bind(n,79647)),"@site/blog/2023-03-16-goedel.md?truncated=true",79647],"3b080b29":[()=>n.e(66175).then(n.t.bind(n,37899,19)),"~blog/quarterly/quarterly-tags-tags-787.json",37899],"3b214584":[()=>n.e(89650).then(n.t.bind(n,84038,19)),"~blog/updates/tags-ledger-page-3-34b-list.json",84038],"3b3294a4":[()=>n.e(493).then(n.t.bind(n,40861,19)),"~blog/updates/tags-ledger-page-4-8c7-list.json",40861],"3bb06773":[()=>n.e(65029).then(n.bind(n,36825)),"@site/blog/2023-08-29-node-cli-api.md",36825],"3bb415e3":[()=>n.e(94900).then(n.bind(n,83813)),"@site/blog/2023-06-23-goedel.md?truncated=true",83813],"3bc8fe23":[()=>n.e(12029).then(n.bind(n,3902)),"@site/blog/2023-10-11-mithril.md?truncated=true",3902],"3bf61174":[()=>n.e(25358).then(n.t.bind(n,1829,19)),"~blog/updates/page-80-081.json",1829],"3bfbfc92":[()=>n.e(92734).then(n.t.bind(n,74298,19)),"~blog/updates/page-60-368.json",74298],"3c041795":[()=>n.e(98125).then(n.bind(n,68889)),"@site/blog/2024-07-10-consensus.md?truncated=true",68889],"3c0c6268":[()=>n.e(95815).then(n.t.bind(n,50129,19)),"~blog/updates/page-34-16c.json",50129],"3c14a1c3":[()=>n.e(76900).then(n.bind(n,29021)),"@site/blog/2024-07-10-mithril.md",29021],"3c3d2bff":[()=>n.e(49706).then(n.bind(n,46019)),"@site/blog/2023-08-17-secp-security-issue-report.md?truncated=true",46019],"3c855eb4":[()=>n.e(27865).then(n.bind(n,98607)),"@site/blog/2024-02-29-node-cli-api.md?truncated=true",98607],"3cb9fdac":[()=>n.e(55638).then(n.bind(n,92191)),"@site/blog/2023-04-20-node-cli-api.md",92191],"3ce290cc":[()=>n.e(18654).then(n.bind(n,64938)),"@site/blog/2023-02-17-goedel.md?truncated=true",64938],"3d542156":[()=>n.e(85563).then(n.t.bind(n,98964,19)),"~blog/updates/tags-performance-tracing-page-7-b2e.json",98964],"3dbbac8a":[()=>n.e(16855).then(n.bind(n,22358)),"@site/blog/2023-07-13-mithril.md",22358],"3dbe7590":[()=>n.e(94706).then(n.bind(n,44481)),"@site/blog/2024-03-30-node-cli-api.md",44481],"3ed6d409":[()=>n.e(41890).then(n.t.bind(n,84623,19)),"~blog/updates/tags-cip-1694-58d-list.json",84623],"3ee2c73a":[()=>n.e(50506).then(n.bind(n,71126)),"@site/blog/2023-05-01-db-sync.md",71126],"3f2108ba":[()=>n.e(99610).then(n.bind(n,48560)),"@site/blog/2023-08-10-mithril.md",48560],"3f828345":[()=>n.e(68677).then(n.t.bind(n,35557,19)),"~blog/updates/tags-db-sync-page-3-e86-list.json",35557],"3f9060c3":[()=>n.e(36398).then(n.bind(n,37709)),"@site/blog/2023-04-05-consensus.md?truncated=true",37709],"3fb79450":[()=>n.e(19182).then(n.bind(n,8)),"@site/blog/2024-01-31-performance-and-tracing.md?truncated=true",8],"3fbaa021":[()=>n.e(41452).then(n.bind(n,48277)),"@site/blog/2024-02-16-sre.md",48277],"40b80600":[()=>n.e(39139).then(n.bind(n,10564)),"@site/blog/2024-03-13-ledger.md",10564],"40e498fa":[()=>n.e(23092).then(n.bind(n,72311)),"@site/blog/2022-11-02-node-cli-api.md?truncated=true",72311],41606842:[()=>n.e(88101).then(n.bind(n,79031)),"@site/blog/2022-12-02-hydra.md?truncated=true",79031],41686714:[()=>n.e(28757).then(n.t.bind(n,80609,19)),"~blog/updates/tags-goedel-3af.json",80609],"417fc4b4":[()=>n.e(57271).then(n.bind(n,30336)),"@site/blog/2023-01-20-hydra.md?truncated=true",30336],"41d087d7":[()=>n.e(71972).then(n.bind(n,97898)),"@site/blog/2022-11-18-hydra.md?truncated=true",97898],"425dfc0f":[()=>n.e(85349).then(n.bind(n,95911)),"@site/blog/2023-08-04-crypto.md",95911],"42ad0ca4":[()=>n.e(80309).then(n.bind(n,33044)),"@site/blog/2023-03-31-hydra.md",33044],"42eb15cf":[()=>n.e(87891).then(n.t.bind(n,64192,19)),"~blog/updates/tags-ledger-page-6-121.json",64192],"43289e4d":[()=>n.e(458).then(n.bind(n,54048)),"@site/blog/2023-08-18-hydra.md",54048],"435d8b4c":[()=>n.e(88697).then(n.bind(n,21135)),"@site/blog/2023-04-27-hydra.md",21135],"437db4bf":[()=>n.e(81587).then(n.bind(n,25180)),"@site/blog/2023-02-03-crypto.md",25180],"43956aba":[()=>n.e(75081).then(n.t.bind(n,62075,19)),"~blog/updates/tags-hydra-page-16-d6d-list.json",62075],"439b9a57":[()=>n.e(96121).then(n.bind(n,11519)),"@site/blog/2022-11-02-release.md?truncated=true",11519],"43aa4824":[()=>n.e(98347).then(n.bind(n,13379)),"@site/blog/2023-03-17-ledger.md",13379],"43ab8474":[()=>n.e(5106).then(n.bind(n,99276)),"@site/blog/2023-10-15-network.md?truncated=true",99276],"43bbbae7":[()=>n.e(24310).then(n.bind(n,2530)),"@site/blog/2022-10-28-sre.md",2530],44149308:[()=>n.e(64018).then(n.t.bind(n,18284,19)),"~blog/updates/tags-mithril-6cc-list.json",18284],"444dad87":[()=>n.e(70895).then(n.bind(n,87921)),"@site/blog/2023-08-04-ledger.md",87921],"44642b2f":[()=>n.e(43108).then(n.bind(n,10798)),"@site/blog/2023-02-10-hydra.md",10798],"44cd51e3":[()=>n.e(98294).then(n.t.bind(n,47809,19)),"~blog/updates/tags-hydra-page-10-616-list.json",47809],"44e33f80":[()=>n.e(31636).then(n.bind(n,56423)),"@site/blog/2023-11-08-mithril.md",56423],"4574fd9f":[()=>n.e(81677).then(n.bind(n,13918)),"@site/blog/2024-02-19-network.md?truncated=true",13918],"45a10ae8":[()=>n.e(22206).then(n.bind(n,33786)),"@site/blog/2023-07-07-sre.md?truncated=true",33786],"45e52e4e":[()=>n.e(35005).then(n.bind(n,4646)),"@site/blog/2024-01-22-network.md?truncated=true",4646],"463d37d9":[()=>n.e(42441).then(n.bind(n,79055)),"@site/reports/2024-06-performance-8.12.1.md?truncated=true",79055],46898189:[()=>n.e(4089).then(n.bind(n,83398)),"@site/blog/2024-05-08-ledger.md",83398],"469935bd":[()=>n.e(47605).then(n.bind(n,74340)),"@site/blog/2023-09-01-network.md?truncated=true",74340],"46b1db29":[()=>n.e(78258).then(n.bind(n,85648)),"@site/quarterly/2023-Q4-consensus.md",85648],"46ba60f8":[()=>n.e(28050).then(n.bind(n,91478)),"@site/blog/2024-04-15-node-cli-api.md",91478],"46c51ef6":[()=>n.e(28298).then(n.bind(n,88673)),"@site/quarterly/2022-11-09-network.md?truncated=true",88673],"4708484f":[()=>n.e(5607).then(n.bind(n,26623)),"@site/blog/2024-01-19-sre.md?truncated=true",26623],"4731c85e":[()=>n.e(50645).then(n.bind(n,84821)),"@site/blog/2024-06-12-mithril.md?truncated=true",84821],"4735cd81":[()=>n.e(15529).then(n.bind(n,68428)),"@site/blog/2023-01-20-network.md?truncated=true",68428],"47658b82":[()=>n.e(60263).then(n.bind(n,64472)),"@site/blog/2023-04-05-performance-and-tracing.md",64472],"47da279e":[()=>n.e(6236).then(n.bind(n,32978)),"@site/blog/2023-06-23-sre.md",32978],"47e876cf":[()=>n.e(12372).then(n.t.bind(n,18246,19)),"~blog/updates/page-21-7a8.json",18246],"485c7377":[()=>n.e(7322).then(n.bind(n,73200)),"@site/blog/2022-11-04-open-source.md",73200],"486d3992":[()=>n.e(87622).then(n.bind(n,7439)),"@site/blog/2023-11-24-goedel.md?truncated=true",7439],"492dc159":[()=>n.e(75748).then(n.bind(n,4)),"@site/blog/2023-07-06-developer-experience.md",4],"4953deee":[()=>n.e(20306).then(n.t.bind(n,77511,19)),"~blog/updates/tags-mithril-page-2-f24-list.json",77511],"496cb9ef":[()=>n.e(60852).then(n.bind(n,5306)),"@site/blog/2023-04-19-consensus.md",5306],"49910c96":[()=>n.e(39313).then(n.t.bind(n,92990,19)),"~blog/updates/page-88-c53.json",92990],"4994a283":[()=>n.e(43484).then(n.bind(n,84343)),"@site/blog/2024-01-24-mithril.md?truncated=true",84343],"49bee9db":[()=>n.e(71690).then(n.t.bind(n,72768,19)),"~blog/quarterly/quarterly-tags-network-56f.json",72768],"49d642c9":[()=>n.e(80575).then(n.bind(n,93731)),"@site/blog/2023-11-15-consensus.md",93731],"49d88be4":[()=>n.e(73343).then(n.bind(n,18820)),"@site/blog/2023-10-13-hydra.md?truncated=true",18820],"4a0a5eb3":[()=>n.e(99572).then(n.t.bind(n,16964,19)),"~blog/updates/tags-system-test-035.json",16964],"4a8836ad":[()=>n.e(4823).then(n.t.bind(n,57254,19)),"~blog/updates/tags-ledger-91e.json",57254],"4aaac366":[()=>n.e(97535).then(n.bind(n,17682)),"@site/blog/2022-11-30-performance-and-tracing.md",17682],"4ab012ff":[()=>n.e(7555).then(n.bind(n,90789)),"@site/blog/2023-06-28-consensus.md",90789],"4ac33b1c":[()=>n.e(37592).then(n.t.bind(n,87599,19)),"~blog/updates/tags-hydra-page-8-b10-list.json",87599],"4b1460f8":[()=>n.e(17605).then(n.t.bind(n,45063,19)),"~blog/updates/page-20-038.json",45063],"4b2a148e":[()=>n.e(58388).then(n.t.bind(n,57920,19)),"~blog/updates/tags-hydra-page-11-017-list.json",57920],"4b62dc40":[()=>n.e(10335).then(n.bind(n,91534)),"@site/blog/2023-02-21-db-sync.md",91534],"4b90674f":[()=>n.e(92308).then(n.bind(n,7811)),"@site/blog/2023-09-01-goedel.md",7811],"4b996e44":[()=>n.e(7897).then(n.bind(n,92942)),"@site/blog/2023-06-23-network.md",92942],"4be9a3a6":[()=>n.e(25480).then(n.bind(n,47519)),"@site/blog/2023-03-03-ledger.md",47519],"4bed0e48":[()=>n.e(34631).then(n.bind(n,21290)),"@site/blog/2023-02-17-crypto.md",21290],"4c4444c5":[()=>n.e(76438).then(n.bind(n,58584)),"@site/blog/2024-02-29-node-cli-api.md",58584],"4c4f8ee1":[()=>n.e(80113).then(n.bind(n,10331)),"@site/blog/2022-10-04-node-cli-api.md?truncated=true",10331],"4c8419de":[()=>n.e(2091).then(n.bind(n,77206)),"@site/blog/2023-12-13-mithril.md",77206],"4ce06e64":[()=>n.e(46318).then(n.bind(n,30792)),"@site/blog/2023-01-27-hydra.md",30792],"4d3eb7e7":[()=>n.e(64827).then(n.bind(n,71235)),"@site/blog/2023-07-07-goedel.md?truncated=true",71235],"4d4ca631":[()=>n.e(18848).then(n.bind(n,92603)),"@site/blog/2024-01-31-node-cli-api.md?truncated=true",92603],"4d7391f8":[()=>n.e(50617).then(n.bind(n,56873)),"@site/blog/2024-05-22-mithril.md",56873],"4d7c8e78":[()=>n.e(45389).then(n.bind(n,58435)),"@site/blog/2023-03-24-hydra.md?truncated=true",58435],"4da01d42":[()=>n.e(17903).then(n.bind(n,99538)),"@site/quarterly/2023-04-04-network.md",99538],"4dba54fc":[()=>n.e(91732).then(n.t.bind(n,52,19)),"~blog/quarterly/quarterly-tags-cli-api-quarterly-c3b.json",52],"4dc3be72":[()=>n.e(76074).then(n.bind(n,75804)),"@site/blog/2023-01-26-mithril.md?truncated=true",75804],"4de4e659":[()=>n.e(53662).then(n.bind(n,64703)),"@site/blog/2023-11-29-mithril.md?truncated=true",64703],"4df30499":[()=>n.e(51951).then(n.bind(n,6909)),"@site/blog/2023-01-11-performance-and-tracing.md",6909],"4e419659":[()=>n.e(11996).then(n.t.bind(n,85290,19)),"~blog/updates/tags-cli-api-page-3-7c4.json",85290],"4e45b006":[()=>n.e(63089).then(n.bind(n,11442)),"@site/blog/2023-09-15-ledger.md",11442],"4eaeb622":[()=>n.e(17139).then(n.t.bind(n,93213,19)),"~blog/updates/page-27-eb3.json",93213],"4ed83391":[()=>n.e(22838).then(n.bind(n,50994)),"@site/blog/2023-09-22-performance-and-tracing.md",50994],"4ef29baf":[()=>n.e(2156).then(n.bind(n,93261)),"@site/blog/2024-03-15-hydra.md",93261],"4f47c374":[()=>n.e(58671).then(n.t.bind(n,51397,19)),"~blog/updates/tags-hydra-page-7-81d.json",51397],"4fe12b4b":[()=>n.e(48837).then(n.bind(n,91525)),"@site/blog/2023-03-31-goedel.md",91525],"4febca42":[()=>n.e(16349).then(n.bind(n,6690)),"@site/blog/2023-05-05-node-cli-api.md",6690],"50135b75":[()=>n.e(54176).then(n.bind(n,87628)),"@site/blog/2023-06-15-mithril.md",87628],"505049d0":[()=>n.e(34111).then(n.t.bind(n,89378,19)),"~blog/updates/tags-performance-tracing-page-3-49d.json",89378],50560035:[()=>n.e(23214).then(n.t.bind(n,85424,19)),"~blog/updates/tags-mithril-page-2-f24.json",85424],"5090ff9c":[()=>n.e(92164).then(n.t.bind(n,31225,19)),"~blog/updates/page-33-758.json",31225],"50d0e663":[()=>n.e(30670).then(n.bind(n,6403)),"@site/blog/2023-03-17-crypto.md?truncated=true",6403],"50d19186":[()=>n.e(6566).then(n.t.bind(n,80956,19)),"~blog/updates/tags-consensus-page-7-67b.json",80956],"50f12e76":[()=>n.e(26308).then(n.bind(n,80316)),"@site/blog/2024-01-05-sre.md",80316],"5160091e":[()=>n.e(27250).then(n.t.bind(n,78151,19)),"~blog/updates/page-29-e3c.json",78151],"519b5664":[()=>n.e(41419).then(n.bind(n,73936)),"@site/blog/2024-01-05-hydra.md?truncated=true",73936],"51bf60d9":[()=>n.e(62901).then(n.bind(n,71365)),"@site/blog/2023-05-12-network.md?truncated=true",71365],"51cf8946":[()=>n.e(6324).then(n.bind(n,83753)),"@site/blog/2022-11-25-hydra.md",83753],"5226ad4f":[()=>n.e(17214).then(n.bind(n,45302)),"@site/blog/2023-08-18-ledger.md",45302],"5282f34e":[()=>n.e(71531).then(n.t.bind(n,391,19)),"~blog/updates/tags-mithril-6cc.json",391],"5296f864":[()=>n.e(6255).then(n.bind(n,7408)),"@site/quarterly/2023-Q2-sre.md?truncated=true",7408],"52b8fa8a":[()=>n.e(19516).then(n.bind(n,74143)),"@site/blog/2023-08-25-hydra.md",74143],"531a6747":[()=>n.e(50550).then(n.t.bind(n,47071,19)),"~blog/updates/tags-network-87d-list.json",47071],"533a09ca":[()=>n.e(54607).then(n.bind(n,95802)),"@site/docs/tutorial-basics/create-a-blog-post.md",95802],"533bb9dc":[()=>n.e(70022).then(n.bind(n,44508)),"@site/blog/2022-11-28-network.md?truncated=true",44508],"5346bf97":[()=>n.e(13530).then(n.t.bind(n,19803,19)),"~blog/updates/tags-consensus-page-3-94e-list.json",19803],"5347b974":[()=>n.e(88619).then(n.t.bind(n,39345,19)),"~blog/updates/page-32-596.json",39345],53631751:[()=>n.e(3685).then(n.t.bind(n,61016,19)),"~blog/updates/page-87-dff.json",61016],"54a7c81e":[()=>n.e(16878).then(n.bind(n,10396)),"@site/blog/2023-10-24-node-cli-api.md?truncated=true",10396],"550b6b1a":[()=>n.e(95016).then(n.bind(n,54053)),"@site/blog/2024-04-03-consensus.md?truncated=true",54053],"550cdc1d":[()=>n.e(75730).then(n.bind(n,70133)),"@site/blog/2023-02-03-goedel.md",70133],"5537c822":[()=>n.e(54320).then(n.bind(n,50107)),"@site/blog/2024-06-19-mithril.md",50107],"5574328a":[()=>n.e(6519).then(n.bind(n,18256)),"@site/blog/2023-12-08-node-cli-api.md",18256],"55b9667a":[()=>n.e(75506).then(n.bind(n,73833)),"@site/blog/2023-03-02-network.md?truncated=true",73833],"55e35eab":[()=>n.e(6249).then(n.bind(n,64911)),"@site/blog/2023-12-06-mithril.md",64911],"563fcf2e":[()=>n.e(94560).then(n.bind(n,54332)),"@site/blog/2023-01-05-ledger.md?truncated=true",54332],"5642d223":[()=>n.e(8525).then(n.t.bind(n,68195,19)),"~blog/updates/page-72-47b.json",68195],"5668eccd":[()=>n.e(3918).then(n.bind(n,42)),"@site/blog/2022-12-09-hydra.md",42],"5674f153":[()=>n.e(14392).then(n.bind(n,8247)),"@site/blog/2023-09-15-sre.md",8247],"568314b4":[()=>n.e(97806).then(n.bind(n,65310)),"@site/blog/2024-01-09-network.md",65310],"56f35d85":[()=>n.e(5485).then(n.bind(n,98803)),"@site/blog/2023-03-03-ledger.md?truncated=true",98803],57008883:[()=>n.e(33399).then(n.bind(n,50417)),"@site/blog/2023-11-24-sre.md",50417],"570bc21e":[()=>n.e(15898).then(n.t.bind(n,74607,19)),"~blog/updates/tags-mithril-page-4-488.json",74607],"5733c82d":[()=>n.e(94184).then(n.bind(n,97630)),"@site/blog/2022-09-16-ledger.md",97630],"573e0546":[()=>n.e(83019).then(n.bind(n,95456)),"@site/blog/2023-12-08-sre.md?truncated=true",95456],57700755:[()=>n.e(13276).then(n.t.bind(n,15745,19)),"/home/runner/work/cardano-updates/cardano-updates/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],"5778ca6b":[()=>n.e(51727).then(n.bind(n,86516)),"@site/quarterly/2022-11-07-nod-api-cli.md",86516],"57e0ab98":[()=>n.e(20779).then(n.bind(n,49514)),"@site/quarterly/2023-Q2-network.md?truncated=true",49514],"57f9f9c7":[()=>n.e(30252).then(n.t.bind(n,22749,19)),"~blog/updates/page-56-d57.json",22749],"5889a844":[()=>n.e(68184).then(n.bind(n,69282)),"@site/blog/2022-10-28-hydra.md",69282],"588e4efd":[()=>n.e(50097).then(n.bind(n,58022)),"@site/blog/2023-05-26-network.md",58022],"58a16fc9":[()=>n.e(38077).then(n.bind(n,24498)),"@site/blog/2024-04-26-sre.md",24498],"58c7cc80":[()=>n.e(53744).then(n.bind(n,56843)),"@site/blog/2024-05-10-hydra.md",56843],"58de45fc":[()=>n.e(72459).then(n.t.bind(n,6328,19)),"~blog/reports/reports-tags-benchmarking-reports-19d-list.json",6328],"58ef99f4":[()=>n.e(1686).then(n.bind(n,33989)),"@site/blog/2024-04-18-network.md",33989],"5907b27e":[()=>n.e(97795).then(n.t.bind(n,29272,19)),"~blog/updates/tags-hydra-page-8-b10.json",29272],"59a262d5":[()=>n.e(42198).then(n.bind(n,87547)),"@site/blog/2023-05-17-consensus.md?truncated=true",87547],"59e2956e":[()=>n.e(45332).then(n.t.bind(n,21557,19)),"~blog/updates/page-57-ee1.json",21557],"5a36c8fd":[()=>n.e(16727).then(n.bind(n,17317)),"@site/blog/2023-12-20-mithril.md?truncated=true",17317],"5a4abf4f":[()=>n.e(58359).then(n.bind(n,22490)),"@site/blog/2024-03-08-hydra.md",22490],"5a843cd2":[()=>n.e(37221).then(n.bind(n,73760)),"@site/blog/2023-07-27-mithril.md",73760],"5af0f4f9":[()=>n.e(16165).then(n.bind(n,81057)),"@site/blog/2023-09-01-sre.md",81057],"5b019cc0":[()=>n.e(19447).then(n.t.bind(n,46500,19)),"~blog/updates/index.json",46500],"5b622352":[()=>n.e(73659).then(n.bind(n,48727)),"@site/blog/2024-04-10-ledger.md",48727],"5c868d36":[()=>n.e(15589).then(n.bind(n,90187)),"@site/docs/tutorial-basics/create-a-page.md",90187],"5c8fca76":[()=>n.e(44003).then(n.bind(n,2907)),"@site/blog/2023-10-27-sre.md?truncated=true",2907],"5cc32405":[()=>n.e(65562).then(n.bind(n,83838)),"@site/blog/2023-10-13-hydra.md",83838],"5d0266be":[()=>n.e(33671).then(n.bind(n,56787)),"@site/blog/2023-10-13-ledger.md",56787],"5d5964ec":[()=>n.e(53931).then(n.bind(n,66734)),"@site/blog/2023-04-05-consensus.md",66734],"5d9e7658":[()=>n.e(40650).then(n.bind(n,80123)),"@site/blog/2024-02-05-network.md?truncated=true",80123],"5de0f279":[()=>n.e(35646).then(n.t.bind(n,46106,19)),"~blog/updates/tags-mithril-page-11-2b5-list.json",46106],"5e3dc99b":[()=>n.e(67272).then(n.bind(n,56893)),"@site/blog/2022-12-16-hydra.md",56893],"5e730d4f":[()=>n.e(76762).then(n.bind(n,63341)),"@site/blog/2023-05-12-network.md",63341],"5e9a4be9":[()=>n.e(11748).then(n.bind(n,26518)),"@site/blog/2023-11-22-ledger.md?truncated=true",26518],"5eec6141":[()=>n.e(45394).then(n.bind(n,36708)),"@site/blog/2024-04-24-ledger.md",36708],"5f1db61d":[()=>n.e(68452).then(n.t.bind(n,96166,19)),"~blog/updates/tags-consensus-page-7-67b-list.json",96166],"5f42e212":[()=>n.e(20578).then(n.bind(n,90307)),"@site/reports/2024-03-performance-8.9.0.md",90307],"5f459bde":[()=>n.e(65761).then(n.bind(n,66752)),"@site/blog/2024-01-10-mithril.md",66752],"6004d2a4":[()=>n.e(57193).then(n.bind(n,57610)),"@site/blog/2023-08-04-network.md?truncated=true",57610],"600e4190":[()=>n.e(80599).then(n.bind(n,15191)),"@site/quarterly/2023-04-04-network.md?truncated=true",15191],60293520:[()=>n.e(93283).then(n.bind(n,14954)),"@site/blog/2024-03-13-mithril.md?truncated=true",14954],"60e1630c":[()=>n.e(31831).then(n.bind(n,48895)),"@site/blog/2023-02-08-node-cli-api.md",48895],"611f3a9e":[()=>n.e(25351).then(n.bind(n,9434)),"@site/blog/2023-09-15-sre.md?truncated=true",9434],"617b050a":[()=>n.e(40232).then(n.bind(n,36781)),"@site/blog/2023-12-11-performance-and-tracing.md?truncated=true",36781],"6190b2fb":[()=>n.e(48600).then(n.bind(n,35996)),"@site/blog/2023-06-09-developer-experience.md?truncated=true",35996],"61e62d68":[()=>n.e(81169).then(n.bind(n,49569)),"@site/blog/2023-09-01-goedel.md?truncated=true",49569],"6226ba71":[()=>n.e(70644).then(n.bind(n,88151)),"@site/blog/2022-11-23-ledger.md?truncated=true",88151],"623a19a8":[()=>n.e(6543).then(n.bind(n,17985)),"@site/blog/2024-05-08-ledger.md?truncated=true",17985],"62422ab6":[()=>n.e(55855).then(n.bind(n,29632)),"@site/blog/2023-02-17-ledger.md?truncated=true",29632],"62c838a9":[()=>n.e(55522).then(n.t.bind(n,14642,19)),"~blog/updates/tags-performance-tracing-page-2-7b7-list.json",14642],"62d3f25f":[()=>n.e(91644).then(n.bind(n,84992)),"@site/blog/2024-02-16-hydra.md",84992],"62ec9f43":[()=>n.e(8694).then(n.bind(n,67097)),"@site/blog/2023-06-01-mithril.md?truncated=true",67097],"62f46a38":[()=>n.e(2681).then(n.bind(n,14066)),"@site/blog/2023-02-17-goedel.md",14066],"632979e8":[()=>n.e(32831).then(n.bind(n,26902)),"@site/blog/2023-06-29-mithril.md",26902],"637356df":[()=>n.e(95979).then(n.bind(n,29388)),"@site/blog/2022-09-19-db-sync.md",29388],"63a0ff66":[()=>n.e(22585).then(n.bind(n,73776)),"@site/blog/2024-03-15-node-cli-api.md?truncated=true",73776],"63a2f993":[()=>n.e(94164).then(n.bind(n,58307)),"@site/blog/2024-06-05-ledger.md?truncated=true",58307],"63c9ac3d":[()=>n.e(62431).then(n.t.bind(n,37672,19)),"~blog/updates/page-66-df5.json",37672],"63fae4f0":[()=>n.e(39898).then(n.bind(n,5383)),"@site/blog/2023-03-21-network.md",5383],"649eea43":[()=>n.e(55914).then(n.bind(n,7642)),"@site/blog/2024-01-19-hydra.md?truncated=true",7642],"65837eee":[()=>n.e(2589).then(n.bind(n,43289)),"@site/blog/2023-12-30-node-cli-api.md",43289],"65d0391b":[()=>n.e(88572).then(n.bind(n,87655)),"@site/blog/2023-08-17-crypto.md?truncated=true",87655],"65d07996":[()=>n.e(13160).then(n.bind(n,97977)),"@site/blog/2024-05-15-consensus.md",97977],"65dd336a":[()=>n.e(92680).then(n.bind(n,69753)),"@site/blog/2024-05-24-sre.md",69753],"65ecf6d5":[()=>n.e(64112).then(n.bind(n,22207)),"@site/blog/2023-08-04-sre.md",22207],"66345e96":[()=>n.e(48983).then(n.bind(n,1037)),"@site/blog/2023-06-23-goedel.md",1037],"66555aa8":[()=>n.e(34088).then(n.bind(n,89465)),"@site/blog/2024-06-26-consensus.md",89465],"6728e788":[()=>n.e(7374).then(n.t.bind(n,50562,19)),"~blog/updates/tags-performance-tracing-page-4-b67-list.json",50562],"67ce4884":[()=>n.e(86830).then(n.bind(n,31549)),"@site/blog/2023-05-12-goedel.md",31549],"684ac28b":[()=>n.e(37355).then(n.bind(n,97324)),"@site/blog/2024-06-05-ledger.md",97324],"68585f67":[()=>n.e(14274).then(n.bind(n,3278)),"@site/blog/2023-07-21-sre.md?truncated=true",3278],"6875c492":[()=>Promise.all([n.e(40532),n.e(80210),n.e(2529),n.e(48610)]).then(n.bind(n,41714)),"@theme/BlogTagsPostsPage",41714],"687d3bf5":[()=>n.e(94302).then(n.bind(n,88915)),"@site/blog/2024-04-12-sre.md",88915],"689c81d9":[()=>n.e(51363).then(n.t.bind(n,77992,19)),"~blog/updates/page-31-308.json",77992],"68b2c30a":[()=>n.e(94432).then(n.t.bind(n,6879,19)),"~blog/quarterly/quarterly-tags-consensus-f91.json",6879],"68b9da9c":[()=>n.e(97348).then(n.t.bind(n,17492,19)),"~blog/quarterly/quarterly-tags-open-source-e2f-list.json",17492],"68fb9d2f":[()=>n.e(80048).then(n.bind(n,33281)),"@site/blog/2022-09-16-ledger.md?truncated=true",33281],"691b1ed7":[()=>n.e(4944).then(n.bind(n,18980)),"@site/blog/2023-01-25-consensus.md",18980],"692497e1":[()=>n.e(92214).then(n.bind(n,29578)),"@site/blog/2023-08-09-consensus.md",29578],"6927f7c4":[()=>n.e(60019).then(n.bind(n,45798)),"@site/blog/2023-10-25-mithril.md",45798],"69c7a5a7":[()=>n.e(56950).then(n.bind(n,91002)),"@site/blog/2023-09-22-performance-and-tracing.md?truncated=true",91002],"69d44fe6":[()=>n.e(62748).then(n.t.bind(n,71090,19)),"~blog/updates/page-22-f33.json",71090],"6a75c57a":[()=>n.e(88592).then(n.bind(n,50202)),"@site/blog/2023-08-04-performance-and-tracing.md?truncated=true",50202],"6b16e156":[()=>n.e(52650).then(n.bind(n,2133)),"@site/blog/2023-05-01-db-sync.md?truncated=true",2133],"6b51f988":[()=>n.e(24384).then(n.bind(n,99968)),"@site/quarterly/2023-Q2-consensus.md?truncated=true",99968],"6bae8700":[()=>n.e(35703).then(n.bind(n,84195)),"@site/blog/2023-08-11-hydra.md",84195],"6c10d32f":[()=>n.e(11759).then(n.bind(n,90099)),"@site/blog/2024-01-10-consensus.md",90099],"6c50c5d9":[()=>n.e(24155).then(n.bind(n,95931)),"@site/blog/2024-03-18-network.md?truncated=true",95931],"6c8b7ad4":[()=>n.e(28577).then(n.bind(n,55749)),"@site/quarterly/2023-Q3-sre.md",55749],"6d0badab":[()=>n.e(87675).then(n.t.bind(n,77987,19)),"~blog/updates/archive-3ef.json",77987],"6d22e028":[()=>n.e(29750).then(n.bind(n,38784)),"@site/blog/2023-11-14-node-cli-api.md?truncated=true",38784],"6d25229c":[()=>n.e(91879).then(n.bind(n,36845)),"@site/blog/2023-06-08-goedel.md?truncated=true",36845],"6d371395":[()=>n.e(97730).then(n.bind(n,73547)),"@site/blog/2022-09-01-ledger.md",73547],"6d66ecac":[()=>n.e(14671).then(n.bind(n,52242)),"@site/blog/2024-01-26-hydra.md",52242],"6d826f51":[()=>n.e(7729).then(n.bind(n,87439)),"@site/blog/2022-10-18-consensus.md",87439],"6da0a796":[()=>n.e(80567).then(n.bind(n,41701)),"@site/blog/2022-11-25-crypto.md?truncated=true",41701],"6ded2f47":[()=>n.e(10217).then(n.t.bind(n,46914,19)),"~blog/updates/tags-performance-tracing-979.json",46914],"6e43d302":[()=>n.e(59747).then(n.bind(n,3666)),"@site/blog/2023-09-29-ledger.md?truncated=true",3666],"6e743f1b":[()=>n.e(42686).then(n.bind(n,47088)),"@site/blog/2023-01-11-consensus.md?truncated=true",47088],"6e7b669d":[()=>n.e(96799).then(n.bind(n,19258)),"@site/blog/2023-09-15-network.md",19258],"6e9ea927":[()=>n.e(62496).then(n.t.bind(n,80569,19)),"~blog/updates/tags-db-sync-page-4-f1e.json",80569],"6eecfaae":[()=>n.e(84069).then(n.bind(n,62566)),"@site/blog/2023-06-09-crypto.md?truncated=true",62566],"6ef7a896":[()=>n.e(16616).then(n.bind(n,93391)),"@site/blog/2024-03-29-sre.md",93391],"6fb45133":[()=>n.e(79260).then(n.bind(n,42305)),"@site/blog/2023-03-08-node-cli-api.md?truncated=true",42305],"7030fa2f":[()=>n.e(39640).then(n.bind(n,88752)),"@site/blog/2022-08-31-consensus.md",88752],70372002:[()=>n.e(52703).then(n.bind(n,78155)),"@site/blog/2023-10-06-performance-and-tracing.md",78155],"70396aa3":[()=>n.e(92517).then(n.bind(n,27198)),"@site/blog/2023-10-04-mithril.md?truncated=true",27198],"704e5bb8":[()=>n.e(56733).then(n.bind(n,50085)),"@site/blog/2023-08-04-ledger.md?truncated=true",50085],"706d2bfc":[()=>n.e(65579).then(n.bind(n,54221)),"@site/blog/2023-12-08-node-cli-api.md?truncated=true",54221],"7095f3d5":[()=>n.e(49545).then(n.bind(n,65058)),"@site/blog/2024-01-17-mithril.md",65058],"71508f04":[()=>n.e(80019).then(n.t.bind(n,34651,19)),"~blog/updates/page-14-0a2.json",34651],"71d215be":[()=>n.e(74390).then(n.bind(n,87182)),"@site/blog/2023-07-14-hydra.md?truncated=true",87182],"71e4641a":[()=>Promise.all([n.e(51068),n.e(53940)]).then(n.bind(n,16528)),"@site/blog/2022-08-12-network.md",16528],"7214e9a2":[()=>n.e(54613).then(n.bind(n,18853)),"@site/blog/2024-05-22-mithril.md?truncated=true",18853],"72174b40":[()=>n.e(58236).then(n.bind(n,82549)),"@site/blog/2024-04-17-db-sync.md?truncated=true",82549],"7221b837":[()=>n.e(90045).then(n.bind(n,45165)),"@site/blog/2023-11-20-cip1694.md?truncated=true",45165],"729abf9f":[()=>n.e(43837).then(n.t.bind(n,93487,19)),"~blog/quarterly/quarterly-d8b.json",93487],"72c81964":[()=>n.e(94590).then(n.bind(n,25418)),"@site/blog/2023-01-26-mithril.md",25418],"72dde749":[()=>n.e(70526).then(n.bind(n,49628)),"@site/blog/2023-12-08.md?truncated=true",49628],"72e3f9d2":[()=>n.e(15013).then(n.t.bind(n,85666,19)),"~blog/updates/page-78-507.json",85666],"732b35ea":[()=>n.e(97230).then(n.bind(n,16965)),"@site/blog/2024-06-10-hydra.md",16965],"733f2214":[()=>n.e(947).then(n.bind(n,67719)),"@site/blog/2022-10-14-hydra.md",67719],"73a96f39":[()=>n.e(95845).then(n.bind(n,70943)),"@site/blog/2023-04-21-hydra.md",70943],"73bbd4d7":[()=>n.e(25590).then(n.bind(n,26293)),"@site/blog/2022-09-20-consensus.md?truncated=true",26293],"73f0dde0":[()=>n.e(30101).then(n.bind(n,94885)),"@site/blog/2023-05-05-node-cli-api.md?truncated=true",94885],"741efb60":[()=>n.e(38705).then(n.bind(n,58874)),"@site/blog/2024-04-10-mithril.md?truncated=true",58874],"7439ef37":[()=>n.e(20433).then(n.bind(n,31145)),"@site/blog/2023-11-08-ledger.md",31145],"7442b11e":[()=>n.e(25665).then(n.bind(n,40584)),"@site/blog/2024-02-28-ledger.md?truncated=true",40584],"74d66224":[()=>n.e(40767).then(n.bind(n,4793)),"@site/blog/2022-12-14-consensus.md?truncated=true",4793],"7518bbd3":[()=>n.e(70606).then(n.bind(n,49271)),"@site/blog/2023-12-15-hydra.md?truncated=true",49271],"752b6ead":[()=>n.e(50165).then(n.bind(n,4691)),"@site/blog/2023-05-31-performance-and-tracing.md",4691],"7574ff34":[()=>n.e(34891).then(n.bind(n,73908)),"@site/blog/2023-09-01-sre.md?truncated=true",73908],"7598a821":[()=>n.e(92999).then(n.bind(n,12061)),"@site/blog/2024-02-16-hydra.md?truncated=true",12061],"75a8d947":[()=>n.e(48e3).then(n.t.bind(n,7966,19)),"~blog/updates/tags-goedel-3af-list.json",7966],"76794a21":[()=>n.e(29071).then(n.bind(n,54861)),"@site/blog/2023-02-23-mithril.md?truncated=true",54861],"769eb34c":[()=>n.e(6919).then(n.bind(n,5102)),"@site/blog/2023-07-26-consensus.md",5102],"76c61a3b":[()=>n.e(91192).then(n.bind(n,6540)),"@site/blog/2022-11-16-performance-and-tracing.md?truncated=true",6540],"76f55d29":[()=>n.e(44093).then(n.t.bind(n,65441,19)),"~blog/updates/tags-network-page-7-58d.json",65441],"771eb9f2":[()=>n.e(2251).then(n.t.bind(n,65884,19)),"~blog/updates/tags-cip-1694-58d.json",65884],"771f29e6":[()=>n.e(56674).then(n.bind(n,27064)),"@site/blog/2023-03-31-ledger.md",27064],"77215fb3":[()=>n.e(13680).then(n.bind(n,22549)),"@site/blog/2022-10-21-hydra.md?truncated=true",22549],"77550e96":[()=>n.e(62227).then(n.bind(n,68441)),"@site/blog/2023-08-29-node-cli-api.md?truncated=true",68441],"776206d2":[()=>n.e(24323).then(n.t.bind(n,30864,19)),"~blog/updates/tags-mithril-page-8-2cd.json",30864],"778ef860":[()=>n.e(96838).then(n.bind(n,92977)),"@site/blog/2023-09-15-goedel.md",92977],"77d69aed":[()=>n.e(29399).then(n.bind(n,60006)),"@site/blog/2023-05-31-consensus.md",60006],"77d820b6":[()=>n.e(76413).then(n.bind(n,88538)),"@site/blog/2023-05-03-performance-and-tracing.md",88538],"77e9cceb":[()=>n.e(54868).then(n.bind(n,19157)),"@site/blog/2023-08-17-db-sync.md",19157],"785e66fe":[()=>n.e(92407).then(n.t.bind(n,23464,19)),"~blog/updates/tags-hydra-page-9-6c0-list.json",23464],"789f2cca":[()=>n.e(43261).then(n.bind(n,15659)),"@site/blog/2023-08-18-ledger.md?truncated=true",15659],"78c763b8":[()=>n.e(96944).then(n.bind(n,66974)),"@site/blog/2023-10-24-node-cli-api.md",66974],"78d07d74":[()=>n.e(29837).then(n.t.bind(n,70699,19)),"~blog/updates/tags-hydra-page-2-bd4.json",70699],"78d554ba":[()=>n.e(61980).then(n.bind(n,99956)),"@site/blog/2023-05-26-goedel.md",99956],"78d8ce1d":[()=>n.e(73320).then(n.bind(n,82826)),"@site/blog/2022-11-01-db-sync.md",82826],"78df8d65":[()=>n.e(29537).then(n.bind(n,52713)),"@site/blog/2023-04-28-network.md?truncated=true",52713],"795480a5":[()=>n.e(78446).then(n.bind(n,14366)),"@site/blog/2023-01-05-ledger.md",14366],79730245:[()=>n.e(61596).then(n.bind(n,57102)),"@site/blog/2023-02-17-network.md?truncated=true",57102],"798d160f":[()=>n.e(82358).then(n.bind(n,66525)),"@site/blog/2023-10-18-consensus.md",66525],"79d76848":[()=>n.e(75379).then(n.bind(n,71256)),"@site/quarterly/2023-01-13-open-source.md?truncated=true",71256],"79ddb53e":[()=>n.e(93360).then(n.bind(n,21435)),"@site/blog/2024-01-22-network.md",21435],"7a167eb1":[()=>n.e(73074).then(n.t.bind(n,47999,19)),"~blog/updates/page-50-0b0.json",47999],"7a263bfa":[()=>n.e(98450).then(n.bind(n,56210)),"@site/blog/2023-10-27-network.md?truncated=true",56210],"7a3449d6":[()=>n.e(97673).then(n.bind(n,56006)),"@site/blog/2024-01-05-hydra.md",56006],"7a4b421f":[()=>n.e(67452).then(n.bind(n,36234)),"@site/blog/2023-04-19-performance-and-tracing.md?truncated=true",36234],"7a6174e7":[()=>n.e(44377).then(n.bind(n,82136)),"@site/blog/2023-08-28-mithril.md?truncated=true",82136],"7a7e39bb":[()=>n.e(61660).then(n.bind(n,88637)),"@site/blog/2023-05-17-mithril.md",88637],"7b261353":[()=>n.e(50857).then(n.t.bind(n,36396,19)),"~blog/updates/tags-mithril-page-8-2cd-list.json",36396],"7ba00404":[()=>n.e(96907).then(n.t.bind(n,20117,19)),"~blog/updates/page-79-95e.json",20117],"7c359f4d":[()=>n.e(77696).then(n.bind(n,60515)),"@site/blog/2023-01-13-system-test.md?truncated=true",60515],"7c54274f":[()=>n.e(49599).then(n.t.bind(n,69691,19)),"~blog/updates/tags-db-sync-page-2-a79-list.json",69691],"7c78252e":[()=>n.e(69354).then(n.t.bind(n,93417,19)),"~blog/updates/tags-hydra-page-9-6c0.json",93417],"7c785843":[()=>n.e(54629).then(n.t.bind(n,20632,19)),"~blog/updates/tags-consensus-page-6-301-list.json",20632],"7c815b5e":[()=>n.e(59318).then(n.bind(n,97771)),"@site/blog/2022-10-05-consensus.md?truncated=true",97771],"7c895c96":[()=>n.e(83036).then(n.bind(n,93424)),"@site/blog/2023-09-06-consensus.md?truncated=true",93424],"7ca6b5b4":[()=>n.e(59881).then(n.t.bind(n,13158,19)),"~blog/updates/tags-performance-tracing-page-2-7b7.json",13158],"7d9cdd40":[()=>n.e(11987).then(n.bind(n,59836)),"@site/blog/2024-01-10-mithril.md?truncated=true",59836],"7de7ce98":[()=>n.e(9828).then(n.bind(n,95271)),"@site/quarterly/2023-Q3-performance-and-tracing.md?truncated=true",95271],"7de83161":[()=>n.e(7968).then(n.bind(n,91578)),"@site/blog/2023-11-15-consensus.md?truncated=true",91578],"7e644b1f":[()=>n.e(60375).then(n.bind(n,16503)),"@site/blog/2023-08-04-hydra.md",16503],"7e87972d":[()=>n.e(2432).then(n.bind(n,8671)),"@site/blog/2022-11-30-performance-and-tracing.md?truncated=true",8671],"7e9cd387":[()=>n.e(89250).then(n.bind(n,49674)),"@site/blog/2024-02-14-mithril.md",49674],"7ebab15c":[()=>n.e(41088).then(n.bind(n,1192)),"@site/blog/2024-06-10-hydra.md?truncated=true",1192],"7f6d758e":[()=>n.e(88822).then(n.t.bind(n,72406,19)),"~blog/updates/tags-security-b34-list.json",72406],"7fa9de70":[()=>n.e(38938).then(n.bind(n,65004)),"@site/blog/2023-11-17-hydra.md?truncated=true",65004],"7faccef9":[()=>n.e(75064).then(n.bind(n,37006)),"@site/blog/2022-10-28-performance-and-tracing.md?truncated=true",37006],"7fc8ff62":[()=>n.e(32191).then(n.bind(n,5907)),"@site/blog/2024-01-19-sre.md",5907],"7fda8ae5":[()=>n.e(81015).then(n.bind(n,64126)),"@site/blog/2024-07-05-sre.md?truncated=true",64126],"80514ec9":[()=>n.e(93122).then(n.t.bind(n,84284,19)),"~blog/quarterly/quarterly-tags-ledger-86d.json",84284],80537537:[()=>n.e(43140).then(n.bind(n,88265)),"@site/blog/2023-08-01-node-cli-api.md",88265],"805fc822":[()=>n.e(53165).then(n.bind(n,7581)),"@site/blog/2022-12-12-network.md?truncated=true",7581],80617771:[()=>n.e(23427).then(n.bind(n,22977)),"@site/blog/2023-09-29-hydra.md?truncated=true",22977],"80c54634":[()=>n.e(99808).then(n.bind(n,57809)),"@site/blog/2023-08-11-hydra.md?truncated=true",57809],"812c0fab":[()=>n.e(65682).then(n.t.bind(n,99296,19)),"~blog/updates/tags-sre-page-3-51a-list.json",99296],"81528b00":[()=>n.e(50471).then(n.bind(n,67938)),"@site/blog/2022-12-01-mithril.md?truncated=true",67938],"817a876c":[()=>n.e(71483).then(n.bind(n,29415)),"@site/blog/2024-07-17-hydra.md?truncated=true",29415],"818cb4a0":[()=>n.e(18815).then(n.bind(n,38318)),"@site/blog/hydra-2024-02-02.md",38318],"818d6f05":[()=>n.e(65808).then(n.t.bind(n,1149,19)),"~blog/updates/page-30-25c.json",1149],"81bb24c9":[()=>n.e(46003).then(n.bind(n,94887)),"@site/blog/2022-11-18-mithril.md",94887],"81db2276":[()=>n.e(81360).then(n.bind(n,57779)),"@site/blog/2024-02-16-performance-and-tracing.md",57779],82209890:[()=>n.e(30141).then(n.bind(n,25680)),"@site/blog/2023-06-14-performance-and-tracing.md",25680],"822bd8ab":[()=>n.e(36504).then(n.bind(n,27428)),"@site/docs/tutorial-basics/congratulations.md",27428],"8236b20c":[()=>n.e(7979).then(n.bind(n,16477)),"@site/blog/2024-05-29-consensus.md?truncated=true",16477],"82db709e":[()=>n.e(27647).then(n.bind(n,10627)),"@site/blog/2023-11-10-sre.md?truncated=true",10627],"82f24945":[()=>n.e(33724).then(n.bind(n,11607)),"@site/blog/2023-01-20-crypto.md?truncated=true",11607],"831d95cb":[()=>n.e(75319).then(n.bind(n,69346)),"@site/blog/2023-01-13-hydra.md",69346],"8368e4b7":[()=>n.e(79008).then(n.bind(n,86097)),"@site/blog/2024-05-24-performance-and-tracing.md",86097],83757913:[()=>n.e(42571).then(n.bind(n,70692)),"@site/blog/2024-02-05-network.md",70692],"83831b70":[()=>n.e(63288).then(n.t.bind(n,12811,19)),"~blog/updates/tags-goedel-page-5-f27-list.json",12811],"838dc3f3":[()=>n.e(73745).then(n.bind(n,37228)),"@site/blog/2023-12-08-network.md?truncated=true",37228],"839c5f78":[()=>n.e(90645).then(n.t.bind(n,46923,19)),"~blog/updates/tags-mithril-page-11-2b5.json",46923],"83e7e4db":[()=>n.e(68102).then(n.bind(n,85321)),"@site/quarterly/2022-11-15-consensus.md",85321],84189288:[()=>n.e(48863).then(n.bind(n,59071)),"@site/blog/2023-07-12-consensus.md",59071],"84677cf0":[()=>n.e(54415).then(n.bind(n,70789)),"@site/blog/2022-12-09-hydra.md?truncated=true",70789],"8470e3c7":[()=>n.e(38141).then(n.bind(n,75734)),"@site/blog/2023-01-06-crypto.md?truncated=true",75734],"84909ac3":[()=>n.e(53208).then(n.bind(n,73313)),"@site/blog/2024-04-17-mithril.md",73313],"84bc1a8f":[()=>n.e(7717).then(n.t.bind(n,30592,19)),"~blog/updates/tags-mithril-page-6-40f.json",30592],"8515128d":[()=>n.e(2548).then(n.t.bind(n,7148,19)),"~blog/updates/tags-ledger-page-9-dd6-list.json",7148],"8534c2dd":[()=>n.e(39987).then(n.bind(n,88128)),"@site/blog/2023-11-24-hydra.md?truncated=true",88128],"857645d9":[()=>n.e(117).then(n.bind(n,25535)),"@site/quarterly/2024-Q1-sre.md",25535],"85c4e11b":[()=>n.e(74024).then(n.bind(n,70165)),"@site/blog/2024-04-19-performance-and-tracing.md",70165],"86870c59":[()=>n.e(52334).then(n.t.bind(n,28736,19)),"~blog/updates/tags-mithril-page-10-41f.json",28736],"86b90503":[()=>n.e(12023).then(n.bind(n,16926)),"@site/blog/2024-04-12-sre.md?truncated=true",16926],"86c4d158":[()=>n.e(46831).then(n.bind(n,3439)),"@site/blog/2023-06-08-system-test.md",3439],87088759:[()=>n.e(90047).then(n.t.bind(n,32425,19)),"~blog/quarterly/blog-post-list-prop-quarterly.json",32425],"871691d4":[()=>n.e(2136).then(n.bind(n,78081)),"@site/blog/2023-06-23-network.md?truncated=true",78081],"876c34e9":[()=>n.e(85369).then(n.bind(n,94306)),"@site/blog/2023-04-27-hydra.md?truncated=true",94306],"878c8163":[()=>n.e(45932).then(n.bind(n,91329)),"@site/blog/2023-09-14-db-sync.md?truncated=true",91329],"884eee03":[()=>n.e(54975).then(n.bind(n,99054)),"@site/blog/2023-12-06-ledger.md?truncated=true",99054],"8864b77b":[()=>n.e(61908).then(n.bind(n,21318)),"@site/blog/2023-03-08-performance-and-tracing.md?truncated=true",21318],"88e4c211":[()=>n.e(92388).then(n.t.bind(n,96195,19)),"~blog/updates/page-3-02e.json",96195],"8914fa7e":[()=>n.e(15347).then(n.bind(n,17177)),"@site/blog/2022-11-16-consensus.md?truncated=true",17177],89931013:[()=>n.e(10173).then(n.bind(n,34101)),"@site/blog/2023-04-06-mithril.md?truncated=true",34101],"89b1cff2":[()=>n.e(65548).then(n.bind(n,2822)),"@site/blog/2024-02-07-mithril.md",2822],"8a4bf3d8":[()=>n.e(87881).then(n.bind(n,75789)),"@site/blog/2024-04-15-node-cli-api.md?truncated=true",75789],"8a6fc2ec":[()=>n.e(22154).then(n.bind(n,82391)),"@site/blog/2023-01-19-ledger.md",82391],"8aeb9708":[()=>n.e(28650).then(n.bind(n,74830)),"@site/blog/2023-12-08-sre.md",74830],"8b4d9039":[()=>n.e(55202).then(n.bind(n,81007)),"@site/blog/2023-04-19-consensus.md?truncated=true",81007],"8b59c913":[()=>n.e(48993).then(n.bind(n,34378)),"@site/reports/2023-12-performance-8.7.2.md?truncated=true",34378],"8bfc66fb":[()=>n.e(15623).then(n.bind(n,69907)),"@site/blog/2023-07-07-crypto.md?truncated=true",69907],"8c3c73e0":[()=>n.e(23685).then(n.bind(n,95509)),"@site/reports/2024-03-performance-8.9.0.md?truncated=true",95509],"8c6dbeca":[()=>n.e(96162).then(n.bind(n,32688)),"@site/blog/2023-02-17-crypto.md?truncated=true",32688],"8c75942c":[()=>n.e(3530).then(n.bind(n,6905)),"@site/blog/2023-02-09-mithril.md",6905],"8ccf5d9f":[()=>n.e(66649).then(n.bind(n,78367)),"@site/blog/2022-10-14-ledger.md",78367],"8cd47ea9":[()=>n.e(58628).then(n.bind(n,31550)),"@site/blog/2022-10-21-hydra.md",31550],"8d0075ff":[()=>n.e(99750).then(n.bind(n,65389)),"@site/blog/2023-09-20-consensus.md",65389],"8d209506":[()=>n.e(32936).then(n.bind(n,58373)),"@site/blog/2023-01-20-crypto.md",58373],"8d306cf9":[()=>n.e(18144).then(n.bind(n,9865)),"@site/blog/2023-11-01-mithril.md",9865],"8d3da32e":[()=>n.e(84877).then(n.bind(n,92122)),"@site/blog/2022-11-02-release.md",92122],"8d60cfea":[()=>n.e(27043).then(n.bind(n,83357)),"@site/blog/2024-01-30-db-sync.md?truncated=true",83357],"8dbcbb69":[()=>n.e(56994).then(n.t.bind(n,46938,19)),"~blog/updates/tags-embedding-quality-a90-list.json",46938],"8e0eb050":[()=>n.e(66956).then(n.bind(n,84668)),"@site/blog/2024-05-13-node-cli-api.md?truncated=true",84668],"8e410d22":[()=>n.e(25272).then(n.bind(n,54212)),"@site/blog/2023-03-23-mithril.md",54212],"8ed15298":[()=>n.e(9928).then(n.bind(n,5378)),"@site/blog/2023-07-04-node-cli-api.md",5378],"8ed69c89":[()=>n.e(11537).then(n.bind(n,28190)),"@site/blog/2024-04-30-mithril.md",28190],"8fd26069":[()=>n.e(75834).then(n.bind(n,21601)),"@site/blog/2023-12-22-hydra.md?truncated=true",21601],"8fe062a7":[()=>n.e(21597).then(n.bind(n,17331)),"@site/blog/2023-10-27-sre.md",17331],"8fea44ca":[()=>n.e(97517).then(n.bind(n,11611)),"@site/blog/2023-01-25-consensus.md?truncated=true",11611],90323238:[()=>n.e(82641).then(n.t.bind(n,29481,19)),"~blog/updates/tags-ledger-page-2-eba-list.json",29481],"90ae2cef":[()=>n.e(98153).then(n.t.bind(n,75441,19)),"~blog/updates/page-81-8e9.json",75441],"90aeef13":[()=>n.e(12853).then(n.bind(n,17798)),"@site/blog/2024-06-26-mithril.md?truncated=true",17798],"90bf9c2d":[()=>n.e(32035).then(n.bind(n,91041)),"@site/blog/2023-05-04-mithril.md",91041],"90cc522f":[()=>n.e(75696).then(n.bind(n,73887)),"@site/blog/2023-04-21-hydra.md?truncated=true",73887],"90f359c5":[()=>n.e(66891).then(n.bind(n,83762)),"@site/blog/2022-10-28-sre.md?truncated=true",83762],"9136968b":[()=>n.e(4986).then(n.bind(n,99124)),"@site/blog/2023-03-31-crypto.md?truncated=true",99124],"913aac40":[()=>n.e(92846).then(n.bind(n,97344)),"@site/blog/2023-03-23-mithril.md?truncated=true",97344],91595845:[()=>n.e(51268).then(n.bind(n,3573)),"@site/blog/2023-05-12-crypto.md?truncated=true",3573],"919e3b80":[()=>n.e(20605).then(n.bind(n,86247)),"@site/blog/2024-06-19-ledger.md",86247],"91b05c51":[()=>n.e(17490).then(n.bind(n,34691)),"@site/blog/2022-12-12-network.md",34691],"91c8d0f7":[()=>n.e(15696).then(n.bind(n,97250)),"@site/blog/2024-03-01-hydra.md",97250],"91dad5e0":[()=>n.e(54937).then(n.t.bind(n,51161,19)),"~blog/updates/tags-mithril-page-12-e87.json",51161],"91ed84ec":[()=>n.e(89193).then(n.t.bind(n,33495,19)),"~blog/updates/page-18-46d.json",33495],"91f74828":[()=>n.e(7152).then(n.t.bind(n,51679,19)),"~blog/updates/tags-mithril-page-10-41f-list.json",51679],"922e2d6b":[()=>n.e(70756).then(n.t.bind(n,95983,19)),"~blog/updates/page-68-c50.json",95983],"924be064":[()=>n.e(21798).then(n.bind(n,93825)),"@site/blog/2023-01-06-crypto.md",93825],"925feafa":[()=>n.e(19773).then(n.bind(n,67358)),"@site/blog/2023-02-23-mithril.md",67358],"9291df2e":[()=>n.e(62302).then(n.bind(n,32194)),"@site/blog/2023-10-04-mithril.md",32194],"92b15de5":[()=>n.e(8905).then(n.t.bind(n,39451,19)),"~blog/quarterly/quarterly-tags-performance-tracing-cae-list.json",39451],"92b56def":[()=>n.e(45014).then(n.bind(n,54869)),"@site/reports/2023-12-performance-8.7.2.md",54869],"92e62ade":[()=>n.e(34425).then(n.t.bind(n,26319,19)),"~blog/updates/tags-network-page-6-17e-list.json",26319],"9308fe55":[()=>n.e(18355).then(n.bind(n,42859)),"@site/blog/2024-03-27-ledger.md?truncated=true",42859],"932bb1e6":[()=>n.e(65153).then(n.t.bind(n,85144,19)),"~blog/updates/tags-db-sync-ca9.json",85144],"933ecdda":[()=>n.e(38248).then(n.bind(n,20214)),"@site/blog/2023-12-30-node-cli-api.md?truncated=true",20214],"9348fe5e":[()=>n.e(1938).then(n.t.bind(n,26108,19)),"~blog/updates/tags-cli-api-page-7-e63.json",26108],"934a8f8d":[()=>n.e(36370).then(n.bind(n,81779)),"@site/blog/2023-11-09-db-sync.md?truncated=true",81779],"935f2afb":[()=>n.e(80053).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],93729337:[()=>n.e(85845).then(n.bind(n,82597)),"@site/blog/2023-01-14-db-sync.md",82597],"93b15a8c":[()=>n.e(14582).then(n.bind(n,34989)),"@site/blog/2022-10-27-crypto.md",34989],94133299:[()=>n.e(48275).then(n.bind(n,87687)),"@site/blog/2022-09-30-ledger.md",87687],"941d55d9":[()=>n.e(20170).then(n.bind(n,15524)),"@site/blog/2024-02-07-consensus.md",15524],"9423f7cf":[()=>n.e(60539).then(n.t.bind(n,58858,19)),"~blog/updates/tags-cli-api-page-8-9bc-list.json",58858],"9440f007":[()=>n.e(98254).then(n.bind(n,59255)),"@site/blog/2022-12-14-consensus.md",59255],"94780c38":[()=>n.e(58925).then(n.bind(n,99178)),"@site/blog/2023-01-14-db-sync.md?truncated=true",99178],"94a907c9":[()=>n.e(23941).then(n.bind(n,44751)),"@site/blog/2023-03-03-goedel.md?truncated=true",44751],"94ad958d":[()=>n.e(59088).then(n.bind(n,69996)),"@site/blog/2024-05-03.md",69996],"94c6d911":[()=>n.e(44501).then(n.bind(n,14130)),"@site/blog/2022-11-16-performance-and-tracing.md",14130],"94d5ff15":[()=>n.e(99137).then(n.bind(n,57051)),"@site/blog/2024-04-24-mithril.md?truncated=true",57051],"95f12e12":[()=>n.e(84727).then(n.bind(n,67975)),"@site/quarterly/2023-01-18-consensus.md?truncated=true",67975],"961dc6d0":[()=>n.e(67122).then(n.bind(n,29772)),"@site/blog/2024-01-31-performance-and-tracing.md",29772],"9625caab":[()=>n.e(69574).then(n.bind(n,54063)),"@site/quarterly/2023-Q4-sre.md",54063],"9668e24b":[()=>n.e(68044).then(n.bind(n,14624)),"@site/blog/2023-09-20-mithril.md?truncated=true",14624],"96ff3c40":[()=>n.e(65856).then(n.bind(n,84611)),"@site/blog/2023-12-08-network.md",84611],"97407dee":[()=>n.e(47263).then(n.bind(n,53615)),"@site/quarterly/2023-04-25-consensus.md?truncated=true",53615],"97cbe67b":[()=>n.e(48221).then(n.bind(n,70314)),"@site/blog/2023-04-06-mithril.md",70314],"97cbe753":[()=>n.e(24272).then(n.t.bind(n,27012,19)),"~blog/updates/page-65-b92.json",27012],"97daee08":[()=>n.e(32070).then(n.bind(n,43729)),"@site/blog/2023-03-09-mithril.md",43729],"981d7293":[()=>n.e(36945).then(n.bind(n,90929)),"@site/blog/2024-03-01-sre.md",90929],"983b561c":[()=>n.e(54685).then(n.t.bind(n,8904,19)),"~blog/updates/page-13-99f.json",8904],"985c36e4":[()=>n.e(29545).then(n.t.bind(n,1517,19)),"~blog/updates/page-70-892.json",1517],"986e43da":[()=>n.e(6807).then(n.bind(n,61934)),"@site/blog/2023-02-02-ledger.md",61934],"988c71cb":[()=>n.e(84433).then(n.bind(n,68697)),"@site/blog/2024-05-06-network.md?truncated=true",68697],"98e6984f":[()=>n.e(19861).then(n.bind(n,80648)),"@site/blog/2022-12-15-mithril.md?truncated=true",80648],"9936161a":[()=>n.e(86576).then(n.t.bind(n,46229,19)),"~blog/updates/tags-security-b34.json",46229],"996aa714":[()=>n.e(70594).then(n.bind(n,73172)),"@site/blog/2022-12-14-performance-and-tracing.md?truncated=true",73172],99881079:[()=>n.e(53004).then(n.bind(n,38772)),"@site/blog/2023-05-17-performance-and-tracing.md?truncated=true",38772],"999e2b46":[()=>n.e(76433).then(n.bind(n,25360)),"@site/blog/2023-06-14-consensus.md?truncated=true",25360],"99b0bd12":[()=>n.e(59798).then(n.bind(n,17110)),"@site/blog/2023-06-12-network.md",17110],"99d1374b":[()=>n.e(93347).then(n.t.bind(n,98165,19)),"~blog/quarterly/quarterly-tags-consensus-f91-list.json",98165],"99d83f94":[()=>n.e(44635).then(n.bind(n,21475)),"@site/blog/2024-07-17-mithril.md",21475],"9a03c440":[()=>n.e(16959).then(n.bind(n,66401)),"@site/blog/2023-02-23-performance-and-tracing.md",66401],"9a0e13cc":[()=>n.e(34746).then(n.t.bind(n,26933,19)),"~blog/updates/tags-sre-c43-list.json",26933],"9a49abff":[()=>n.e(82695).then(n.t.bind(n,94835,19)),"~blog/updates/tags-ledger-page-4-8c7.json",94835],"9a947260":[()=>n.e(65063).then(n.t.bind(n,90948,19)),"~blog/quarterly/quarterly-tags-sre-8d3.json",90948],"9b436c26":[()=>n.e(64342).then(n.t.bind(n,38689,19)),"~blog/updates/tags-network-page-3-b41-list.json",38689],"9b5ce5fa":[()=>n.e(75501).then(n.bind(n,64213)),"@site/blog/2023-11-08-mithril.md?truncated=true",64213],"9b6092d7":[()=>n.e(48990).then(n.bind(n,90436)),"@site/blog/2022-12-14-db-sync.md",90436],"9b7a95a2":[()=>n.e(7266).then(n.bind(n,54972)),"@site/blog/2022-10-18-consensus.md?truncated=true",54972],"9ba26136":[()=>n.e(62231).then(n.bind(n,19146)),"@site/blog/2023-10-15-network.md",19146],"9bb237b8":[()=>n.e(17251).then(n.t.bind(n,59516,19)),"~blog/updates/tags-hydra-page-11-017.json",59516],"9bd1b7cb":[()=>n.e(83025).then(n.t.bind(n,54230,19)),"~blog/updates/tags-sre-page-4-2d2.json",54230],"9c00a84f":[()=>n.e(31529).then(n.t.bind(n,46529,19)),"~blog/updates/tags-network-page-5-a78.json",46529],"9c781688":[()=>n.e(92043).then(n.t.bind(n,7721,19)),"~blog/updates/tags-hydra-page-15-b65.json",7721],"9c7979b1":[()=>n.e(31757).then(n.bind(n,71635)),"@site/blog/2023-08-18-sre.md",71635],"9c96fa11":[()=>n.e(90178).then(n.bind(n,42764)),"@site/blog/2023-03-31-hydra.md?truncated=true",42764],"9cab6d73":[()=>n.e(93203).then(n.bind(n,72305)),"@site/blog/2023-07-07-hydra.md?truncated=true",72305],"9ce37f6e":[()=>n.e(66764).then(n.bind(n,79098)),"@site/blog/2023-12-01-hydra.md?truncated=true",79098],"9d4323f3":[()=>n.e(79166).then(n.t.bind(n,21164,19)),"~blog/updates/page-41-fe1.json",21164],"9d7869bb":[()=>n.e(37734).then(n.bind(n,91509)),"@site/blog/2023-09-01-ledger.md?truncated=true",91509],"9de5c9e8":[()=>n.e(90399).then(n.bind(n,39756)),"@site/blog/2024-01-24-consensus.md?truncated=true",39756],"9dee36e7":[()=>n.e(58744).then(n.bind(n,57912)),"@site/blog/2023-08-18-sre.md?truncated=true",57912],"9e3f42ed":[()=>n.e(30717).then(n.bind(n,60252)),"@site/blog/2024-03-27-mithril.md?truncated=true",60252],"9e4087bc":[()=>n.e(53608).then(n.bind(n,63169)),"@theme/BlogArchivePage",63169],"9e570fef":[()=>n.e(32925).then(n.bind(n,62129)),"@site/blog/2023-09-15-goedel.md?truncated=true",62129],"9ef45f96":[()=>n.e(92898).then(n.t.bind(n,20379,19)),"~blog/updates/page-53-698.json",20379],"9f11a452":[()=>n.e(86358).then(n.bind(n,11688)),"@site/blog/2024-07-03-mithril.md",11688],"9f4f09d0":[()=>n.e(62009).then(n.bind(n,56419)),"@site/blog/2024-05-24-performance-and-tracing.md?truncated=true",56419],"9f70a142":[()=>n.e(6169).then(n.bind(n,4756)),"@site/blog/2022-12-09-crypto.md",4756],"9f761678":[()=>n.e(278).then(n.bind(n,32230)),"@site/blog/2023-04-28-crypto.md",32230],"9f7c2154":[()=>n.e(32472).then(n.bind(n,35890)),"@site/blog/2022-12-28-node-cli-api.md",35890],"9fba226c":[()=>n.e(53222).then(n.t.bind(n,77041,19)),"~blog/reports/blog-post-list-prop-reports.json",77041],"9fba849d":[()=>n.e(82941).then(n.bind(n,14990)),"@site/blog/2022-11-04-hydra.md?truncated=true",14990],"9ff56e7d":[()=>n.e(78642).then(n.bind(n,8108)),"@site/blog/2024-07-08-network.md",8108],a0225fec:[()=>n.e(67794).then(n.t.bind(n,23320,19)),"~blog/updates/page-73-a62.json",23320],a040c838:[()=>n.e(9499).then(n.bind(n,85704)),"@site/blog/2023-06-09-crypto.md",85704],a041ec46:[()=>n.e(74646).then(n.bind(n,404)),"@site/blog/2024-02-23-hydra.md",404],a0d18a99:[()=>n.e(62767).then(n.bind(n,11960)),"@site/quarterly/2022-11-07-ledger.md",11960],a12974ca:[()=>n.e(76884).then(n.t.bind(n,53371,19)),"~blog/updates/tags-sre-page-4-2d2-list.json",53371],a14fd889:[()=>n.e(87326).then(n.bind(n,16410)),"@site/blog/2023-10-18-mithril.md?truncated=true",16410],a1597564:[()=>n.e(60715).then(n.bind(n,33286)),"@site/blog/2023-02-02-ledger.md?truncated=true",33286],a1a26142:[()=>n.e(79113).then(n.t.bind(n,92810,19)),"~blog/updates/page-69-f3b.json",92810],a1ac97eb:[()=>n.e(36463).then(n.bind(n,25274)),"@site/blog/2022-11-30-node-cli-api.md?truncated=true",25274],a1cde312:[()=>n.e(90748).then(n.bind(n,47553)),"@site/blog/2023-07-28-hydra.md?truncated=true",47553],a1d1f035:[()=>n.e(91282).then(n.bind(n,39065)),"@site/blog/2023-09-20-consensus.md?truncated=true",39065],a1d4a798:[()=>n.e(25353).then(n.bind(n,53712)),"@site/blog/2023-11-17-performance-and-tracing.md?truncated=true",53712],a1d6199d:[()=>n.e(97193).then(n.bind(n,68527)),"@site/blog/2024-03-04-network.md",68527],a1f2945e:[()=>n.e(87407).then(n.bind(n,18936)),"@site/blog/2023-09-26-node-cli-api.md?truncated=true",18936],a1ff8cc5:[()=>n.e(8362).then(n.t.bind(n,80641,19)),"~blog/updates/tags-consensus-page-8-05f.json",80641],a21706c9:[()=>n.e(92146).then(n.t.bind(n,37247,19)),"~blog/updates/page-24-fbb.json",37247],a25baf4b:[()=>n.e(52622).then(n.bind(n,52906)),"@site/blog/2024-03-28-hydra.md",52906],a29c613f:[()=>n.e(23928).then(n.bind(n,79550)),"@site/blog/2024-01-31-mithril.md?truncated=true",79550],a2a63bac:[()=>n.e(16002).then(n.bind(n,54903)),"@site/blog/2023-06-09-hydra.md",54903],a2ee852b:[()=>n.e(95208).then(n.bind(n,15302)),"@site/blog/2023-05-03-consensus.md",15302],a3889346:[()=>n.e(49769).then(n.bind(n,8838)),"@site/blog/2022-09-30-ledger.md?truncated=true",8838],a419cc29:[()=>n.e(73513).then(n.t.bind(n,13692,19)),"~blog/updates/page-19-21b.json",13692],a4419125:[()=>n.e(40077).then(n.bind(n,13274)),"@site/blog/2024-03-04-network.md?truncated=true",13274],a48d66c0:[()=>n.e(77965).then(n.bind(n,69029)),"@site/blog/2023-09-07-performance-and-tracing.md",69029],a526ae0c:[()=>n.e(67103).then(n.t.bind(n,76987,19)),"~blog/updates/page-61-176.json",76987],a56f68e5:[()=>n.e(75940).then(n.bind(n,28194)),"@site/blog/2024-06-26-consensus.md?truncated=true",28194],a572b6ff:[()=>n.e(56618).then(n.bind(n,18104)),"@site/blog/2023-08-04-performance-and-tracing.md",18104],a5aa5392:[()=>n.e(97779).then(n.t.bind(n,86118,19)),"~blog/updates/tags-devx-bd8-list.json",86118],a5c8afdd:[()=>n.e(6814).then(n.t.bind(n,34048,19)),"~blog/updates/tags-goedel-page-2-c81-list.json",34048],a609cdb3:[()=>n.e(32288).then(n.bind(n,60378)),"@site/blog/2024-03-08-performance-and-tracing.md?truncated=true",60378],a6238997:[()=>n.e(49904).then(n.bind(n,46010)),"@site/blog/2023-04-17-incident.md?truncated=true",46010],a6472a96:[()=>n.e(14587).then(n.t.bind(n,34921,19)),"~blog/updates/page-26-a44.json",34921],a687dd04:[()=>n.e(26026).then(n.bind(n,59536)),"@site/blog/2023-10-13-sre.md?truncated=true",59536],a69b7e0b:[()=>n.e(43308).then(n.t.bind(n,94022,19)),"~blog/updates/tags-db-sync-page-2-a79.json",94022],a69f0deb:[()=>n.e(2773).then(n.bind(n,67900)),"@site/blog/2023-07-18-node-cli-api.md?truncated=true",67900],a6aa9e1f:[()=>Promise.all([n.e(40532),n.e(80210),n.e(2529),n.e(93089)]).then(n.bind(n,80046)),"@theme/BlogListPage",80046],a6e1d45a:[()=>n.e(8737).then(n.bind(n,30221)),"@site/blog/2023-10-27-hydra.md",30221],a6e5ff3c:[()=>n.e(78153).then(n.bind(n,3868)),"@site/blog/2023-08-18-hydra.md?truncated=true",3868],a739ba69:[()=>n.e(24514).then(n.bind(n,75061)),"@site/reports/2024-05-performance-8.9.3.md",75061],a7418040:[()=>n.e(16886).then(n.bind(n,43603)),"@site/blog/2023-11-15-mithril.md",43603],a74edb50:[()=>n.e(21074).then(n.bind(n,76519)),"@site/blog/2023-12-22-sre.md?truncated=true",76519],a79960af:[()=>n.e(83472).then(n.t.bind(n,1660,19)),"~blog/updates/tags-cli-api-page-5-d61-list.json",1660],a7a31948:[()=>n.e(85943).then(n.bind(n,91654)),"@site/blog/2023-09-29-sre.md",91654],a82a69a3:[()=>n.e(7902).then(n.t.bind(n,55642,19)),"~blog/updates/page-16-d6c.json",55642],a8738e5f:[()=>n.e(99881).then(n.bind(n,67461)),"@site/blog/2023-04-20-mithril.md",67461],a9019578:[()=>n.e(4497).then(n.bind(n,65934)),"@site/blog/2022-10-04-node-cli-api.md",65934],a92d4e87:[()=>n.e(45757).then(n.t.bind(n,12883,19)),"~blog/updates/tags-mithril-page-5-908.json",12883],a9347c1b:[()=>n.e(76323).then(n.bind(n,95829)),"@site/blog/2023-02-09-mithril.md?truncated=true",95829],aa4c9cc8:[()=>n.e(50919).then(n.bind(n,13503)),"@site/blog/2023-05-19-hydra.md?truncated=true",13503],aaf18ab0:[()=>n.e(3158).then(n.t.bind(n,48776,19)),"~blog/updates/page-54-e50.json",48776],ab4c3279:[()=>n.e(72690).then(n.bind(n,67660)),"@site/blog/2023-09-22-hydra.md",67660],abfcb655:[()=>n.e(3188).then(n.bind(n,28601)),"@site/blog/2023-12-22-hydra.md",28601],ac4f0787:[()=>n.e(80733).then(n.bind(n,87252)),"@site/blog/2024-03-13-mithril.md",87252],ac56cb0b:[()=>n.e(39329).then(n.bind(n,7640)),"@site/blog/2022-11-16-consensus.md",7640],ac7236c1:[()=>n.e(7538).then(n.bind(n,8334)),"@site/blog/2024-03-22-hydra.md?truncated=true",8334],ac8f4356:[()=>n.e(19064).then(n.t.bind(n,10860,19)),"~blog/updates/page-84-c36.json",10860],ace79a55:[()=>n.e(61185).then(n.bind(n,40709)),"@site/blog/2023-06-30-hydra.md?truncated=true",40709],ad067570:[()=>n.e(70205).then(n.bind(n,1862)),"@site/blog/2023-12-11-performance-and-tracing.md",1862],ad3b787d:[()=>n.e(17323).then(n.bind(n,57074)),"@site/blog/2024-03-30-node-cli-api.md?truncated=true",57074],ad9136bc:[()=>n.e(74108).then(n.t.bind(n,43912,19)),"~blog/updates/page-48-ebc.json",43912],ad9f1248:[()=>n.e(30654).then(n.t.bind(n,99428,19)),"~blog/updates/tags-goedel-page-3-424-list.json",99428],add555bf:[()=>n.e(23360).then(n.bind(n,7584)),"@site/blog/2022-11-02-ledger.md",7584],ae2d2424:[()=>n.e(17873).then(n.bind(n,59274)),"@site/blog/2022-10-14-hydra.md?truncated=true",59274],ae39809c:[()=>n.e(29129).then(n.t.bind(n,88323,19)),"~blog/updates/page-15-208.json",88323],ae714ef1:[()=>n.e(43545).then(n.bind(n,63807)),"@site/blog/2024-01-10-ledger.md",63807],af332a03:[()=>n.e(15228).then(n.t.bind(n,51788,19)),"~blog/updates/tags-hydra-page-6-ccd-list.json",51788],af4c9a4c:[()=>n.e(48966).then(n.t.bind(n,3837,19)),"~blog/updates/tags-performance-tracing-page-5-f57.json",3837],af883e31:[()=>n.e(57534).then(n.t.bind(n,72375,19)),"~blog/updates/tags-ledger-page-5-77a.json",72375],af8de899:[()=>n.e(10536).then(n.t.bind(n,87392,19)),"~blog/updates/page-83-141.json",87392],afa83c07:[()=>n.e(68115).then(n.bind(n,27614)),"@site/blog/2023-07-31-network.md?truncated=true",27614],b032e7ab:[()=>n.e(292).then(n.bind(n,32167)),"@site/blog/2023-07-27-mithril.md?truncated=true",32167],b03d4a4e:[()=>n.e(52834).then(n.bind(n,44301)),"@site/blog/2022-11-11-ledger.md",44301],b073a55d:[()=>n.e(20955).then(n.bind(n,7729)),"@site/quarterly/2023-Q3-performance-and-tracing.md",7729],b0b16a90:[()=>n.e(58800).then(n.t.bind(n,39534,19)),"~blog/quarterly/quarterly-archive-17f.json",39534],b0f8ff9f:[()=>n.e(99786).then(n.t.bind(n,90395,19)),"~blog/updates/page-38-d34.json",90395],b134e481:[()=>n.e(90980).then(n.bind(n,13899)),"@site/blog/2024-02-14-ledger.md?truncated=true",13899],b13b9480:[()=>n.e(18471).then(n.t.bind(n,87511,19)),"~blog/updates/tags-crypto-page-2-cb4.json",87511],b1992084:[()=>n.e(39223).then(n.t.bind(n,4903,19)),"~blog/updates/tags-db-sync-page-4-f1e-list.json",4903],b242687d:[()=>n.e(22191).then(n.bind(n,95807)),"@site/blog/2023-09-29-sre.md?truncated=true",95807],b28a1077:[()=>n.e(7413).then(n.bind(n,49384)),"@site/blog/2023-05-17-performance-and-tracing.md",49384],b2ab4460:[()=>n.e(67987).then(n.bind(n,62355)),"@site/blog/2023-10-13-goedel.md?truncated=true",62355],b2f6ced4:[()=>n.e(13752).then(n.bind(n,68015)),"@site/blog/hydra-2024-02-09.md",68015],b3041b60:[()=>n.e(35889).then(n.bind(n,2592)),"@site/blog/2023-05-05-ledger.md?truncated=true",2592],b3043f02:[()=>n.e(27478).then(n.bind(n,59290)),"@site/blog/2023-10-04-consensus.md?truncated=true",59290],b34c935f:[()=>n.e(41732).then(n.t.bind(n,84447,19)),"~blog/updates/tags-performance-tracing-page-5-f57-list.json",84447],b3c27c9b:[()=>n.e(95318).then(n.t.bind(n,46961,19)),"~blog/updates/page-49-c29.json",46961],b3f59e42:[()=>n.e(22057).then(n.bind(n,2110)),"@site/quarterly/2023-Q4-consensus.md?truncated=true",2110],b4af885a:[()=>n.e(16839).then(n.t.bind(n,41743,19)),"~blog/updates/tags-hydra-page-7-81d-list.json",41743],b4cc2dd2:[()=>n.e(70635).then(n.bind(n,52945)),"@site/blog/2023-03-03-hydra.md",52945],b4f5b98b:[()=>n.e(78461).then(n.bind(n,18983)),"@site/blog/2023-08-01-node-cli-api.md?truncated=true",18983],b512dd46:[()=>n.e(47093).then(n.bind(n,5136)),"@site/blog/2022-11-11-network.md?truncated=true",5136],b5164349:[()=>n.e(40176).then(n.bind(n,3644)),"@site/blog/2023-03-22-performance-and-tracing.md",3644],b51d04b3:[()=>n.e(4855).then(n.t.bind(n,59030,19)),"~blog/updates/tags-consensus-page-9-557.json",59030],b5340a11:[()=>n.e(48542).then(n.t.bind(n,72988,19)),"~blog/updates/page-10-857.json",72988],b57687d8:[()=>n.e(24651).then(n.bind(n,17503)),"@site/blog/2023-05-31-consensus.md?truncated=true",17503],b5d3534a:[()=>n.e(4295).then(n.bind(n,57563)),"@site/blog/2023-12-08-goedel.md",57563],b6036a11:[()=>n.e(13753).then(n.bind(n,90109)),"@site/blog/2024-01-09-network.md?truncated=true",90109],b646abd3:[()=>n.e(52399).then(n.t.bind(n,28146,19)),"~blog/updates/tags-hydra-page-12-81e.json",28146],b6472136:[()=>n.e(40586).then(n.bind(n,91332)),"@site/blog/2024-04-26-node-cli-api.md?truncated=true",91332],b65e5ec2:[()=>n.e(15715).then(n.bind(n,79198)),"@site/blog/2023-09-07-performance-and-tracing.md?truncated=true",79198],b66964f6:[()=>n.e(54933).then(n.bind(n,89417)),"@site/blog/2024-05-29-consensus.md",89417],b69dce12:[()=>n.e(3986).then(n.t.bind(n,25003,19)),"~blog/updates/tags-crypto-e2f.json",25003],b6ef4fcb:[()=>n.e(53516).then(n.bind(n,33340)),"@site/blog/2022-12-16-hydra.md?truncated=true",33340],b76ef772:[()=>n.e(4498).then(n.t.bind(n,6196,19)),"~blog/updates/tags-mithril-page-7-a17.json",6196],b78698d9:[()=>n.e(33288).then(n.bind(n,52949)),"@site/blog/2023-01-25-node-cli-api.md",52949],b7dd63dc:[()=>n.e(11400).then(n.bind(n,51146)),"@site/blog/2023-11-10-hydra.md?truncated=true",51146],b836e3b2:[()=>n.e(85606).then(n.t.bind(n,50468,19)),"~blog/updates/page-63-73e.json",50468],b88c8fa9:[()=>n.e(42190).then(n.bind(n,22750)),"@site/blog/2022-12-14-node-cli-api.md",22750],b8a3fbda:[()=>n.e(7741).then(n.bind(n,68986)),"@site/blog/2023-09-29-goedel.md",68986],b8bcf1d1:[()=>n.e(73277).then(n.bind(n,98981)),"@site/blog/2023-02-03-crypto.md?truncated=true",98981],b8c8891e:[()=>n.e(66282).then(n.bind(n,13203)),"@site/blog/2024-04-03-mithril.md",13203],b8f51c1a:[()=>n.e(51630).then(n.t.bind(n,68021,19)),"~blog/updates/page-25-52d.json",68021],b92c36fd:[()=>n.e(52322).then(n.bind(n,84846)),"@site/blog/2022-10-28-hydra.md?truncated=true",84846],b96303b2:[()=>n.e(41092).then(n.bind(n,88918)),"@site/blog/2024-05-13-node-cli-api.md",88918],b9ad018f:[()=>n.e(44534).then(n.t.bind(n,91484,19)),"~blog/updates/tags-db-sync-page-3-e86.json",91484],b9b1b0de:[()=>n.e(15286).then(n.bind(n,49167)),"@site/blog/2024-07-10-consensus.md",49167],ba0b6dbd:[()=>Promise.all([n.e(51068),n.e(30126)]).then(n.bind(n,50065)),"@site/blog/2022-08-12-network.md?truncated=true",50065],ba0b87b5:[()=>n.e(579).then(n.bind(n,80291)),"@site/blog/2024-04-19-performance-and-tracing.md?truncated=true",80291],ba2ecd41:[()=>n.e(88204).then(n.t.bind(n,57280,19)),"~blog/updates/tags-hydra-page-5-51b-list.json",57280],ba740fe3:[()=>n.e(10025).then(n.bind(n,34207)),"@site/blog/2024-02-28-mithril.md",34207],ba7f9bb8:[()=>n.e(83879).then(n.t.bind(n,39700,19)),"~blog/updates/page-82-a34.json",39700],bafef0bd:[()=>n.e(24801).then(n.t.bind(n,51628,19)),"~blog/updates/tags-hydra-page-4-b67-list.json",51628],bb016389:[()=>n.e(69088).then(n.bind(n,36690)),"@site/blog/hydra-2024-02-09.md?truncated=true",36690],bb33890e:[()=>n.e(1866).then(n.t.bind(n,75086,19)),"~blog/updates/tags-consensus-page-4-18c-list.json",75086],bb44f9e3:[()=>n.e(45943).then(n.bind(n,90805)),"@site/blog/2023-09-07-mithril.md?truncated=true",90805],bb465a37:[()=>n.e(6246).then(n.bind(n,12332)),"@site/blog/2023-01-13-release.md",12332],bbdd9b59:[()=>n.e(67557).then(n.bind(n,21728)),"@site/blog/2024-06-05-mithril.md?truncated=true",21728],bc17f22c:[()=>n.e(90605).then(n.t.bind(n,88366,19)),"~blog/updates/page-5-264.json",88366],bc4c7bdd:[()=>n.e(52680).then(n.t.bind(n,52120,19)),"~blog/updates/tags-open-source-f3d-list.json",52120],bc6b65d9:[()=>n.e(40160).then(n.bind(n,45335)),"@site/blog/2023-03-02-network.md",45335],bc79ed22:[()=>n.e(11212).then(n.bind(n,40450)),"@site/blog/2024-07-05-sre.md",40450],bc942cd0:[()=>n.e(43735).then(n.t.bind(n,41075,19)),"~blog/updates/tags-hydra-page-3-da3.json",41075],bcc2133c:[()=>n.e(55006).then(n.bind(n,93868)),"@site/blog/2023-12-22-sre.md",93868],bccb35b7:[()=>n.e(94759).then(n.bind(n,19604)),"@site/blog/2023-05-26-network.md?truncated=true",19604],bce2d096:[()=>n.e(93213).then(n.bind(n,94899)),"@site/blog/2024-07-03-ledger.md?truncated=true",94899],bcf46d9c:[()=>n.e(31617).then(n.bind(n,48880)),"@site/blog/2023-01-20-hydra.md",48880],bd08fea4:[()=>n.e(70029).then(n.bind(n,4269)),"@site/blog/2024-03-08-performance-and-tracing.md",4269],bd1eb202:[()=>n.e(38454).then(n.bind(n,82529)),"@site/blog/2024-05-03.md?truncated=true",82529],bd307c3a:[()=>n.e(85642).then(n.bind(n,90819)),"@site/blog/2024-04-03-consensus.md",90819],bd3fea4c:[()=>n.e(90439).then(n.t.bind(n,16874,19)),"~blog/updates/tags-mithril-page-9-5e9-list.json",16874],bd65afd9:[()=>n.e(36160).then(n.bind(n,25362)),"@site/blog/2023-07-12-performance-and-tracing.md",25362],bda3e1c7:[()=>n.e(27335).then(n.bind(n,19203)),"@site/blog/2023-02-08-node-cli-api.md?truncated=true",19203],bdc4c1ed:[()=>n.e(76581).then(n.bind(n,29598)),"@site/blog/2023-06-09-hydra.md?truncated=true",29598],be16a434:[()=>n.e(83247).then(n.bind(n,85869)),"@site/blog/2023-08-24-performance-and-tracing.md",85869],be1e6782:[()=>n.e(25469).then(n.bind(n,12306)),"@site/quarterly/2023-Q2-network.md",12306],be2e95c8:[()=>n.e(89351).then(n.t.bind(n,82621,19)),"~blog/updates/tags-embedding-quality-a90.json",82621],beba3ea5:[()=>n.e(26337).then(n.bind(n,28890)),"@site/blog/2024-07-03-ledger.md",28890],bfcdc265:[()=>n.e(567).then(n.t.bind(n,15021,19)),"~blog/updates/page-36-1da.json",15021],c0354ce6:[()=>n.e(36881).then(n.bind(n,50633)),"@site/blog/2023-11-24-hydra.md",50633],c036f08e:[()=>n.e(40309).then(n.bind(n,52303)),"@site/blog/2023-06-23-sre.md?truncated=true",52303],c061e3b1:[()=>n.e(64614).then(n.bind(n,99797)),"@site/blog/2023-03-09-mithril.md?truncated=true",99797],c063df1b:[()=>n.e(21562).then(n.bind(n,7314)),"@site/blog/2023-03-03-crypto.md",7314],c08c0f47:[()=>n.e(64562).then(n.bind(n,63876)),"@site/blog/2023-06-14-consensus.md",63876],c0ac1524:[()=>n.e(89752).then(n.bind(n,58905)),"@site/blog/2023-08-04-goedel.md",58905],c0cf6239:[()=>n.e(53482).then(n.bind(n,29025)),"@site/quarterly/2023-01-13-network.md?truncated=true",29025],c0d329f5:[()=>n.e(764).then(n.t.bind(n,97886,19)),"~blog/updates/tags-ledger-page-7-190.json",97886],c10365f3:[()=>n.e(7783).then(n.bind(n,3827)),"@site/blog/2023-04-20-mithril.md?truncated=true",3827],c149628c:[()=>n.e(41735).then(n.t.bind(n,45456,19)),"~blog/reports/reports-tags-benchmarking-reports-19d.json",45456],c158f9a9:[()=>n.e(11829).then(n.t.bind(n,91225,19)),"~blog/updates/page-37-cb2.json",91225],c178b56c:[()=>n.e(92255).then(n.bind(n,80883)),"@site/blog/2023-09-01-network.md",80883],c1c5c6f5:[()=>n.e(95569).then(n.t.bind(n,9564,19)),"/home/runner/work/cardano-updates/cardano-updates/.docusaurus/docusaurus-plugin-content-blog/quarterly/plugin-route-context-module-100.json",9564],c1cf9f04:[()=>n.e(276).then(n.bind(n,694)),"@site/blog/2024-06-12-mithril.md",694],c25c032e:[()=>n.e(76375).then(n.t.bind(n,57458,19)),"~blog/updates/tags-hydra-page-13-9f1.json",57458],c2b4dd94:[()=>n.e(43020).then(n.bind(n,79021)),"@site/blog/2023-07-12-performance-and-tracing.md?truncated=true",79021],c2d03b29:[()=>n.e(82224).then(n.t.bind(n,82276,19)),"~blog/updates/tags-mithril-page-4-488-list.json",82276],c2e0061a:[()=>n.e(84755).then(n.bind(n,41372)),"@site/blog/2024-06-19-mithril.md?truncated=true",41372],c2eec07f:[()=>n.e(35388).then(n.bind(n,6988)),"@site/blog/2023-07-04-node-cli-api.md?truncated=true",6988],c315164d:[()=>n.e(43194).then(n.bind(n,64268)),"@site/blog/2023-01-12-mithril.md?truncated=true",64268],c4479859:[()=>n.e(73321).then(n.bind(n,92606)),"@site/blog/2023-06-07-node-cli-api.md",92606],c4565987:[()=>n.e(14645).then(n.t.bind(n,94644,19)),"~blog/updates/tags-performance-tracing-page-7-b2e-list.json",94644],c48f7122:[()=>n.e(69473).then(n.t.bind(n,99816,19)),"~blog/updates/page-12-b6a.json",99816],c4d8aa78:[()=>n.e(81415).then(n.t.bind(n,78360,19)),"~blog/updates/tags-crypto-page-3-0b6.json",78360],c511c40f:[()=>n.e(94922).then(n.bind(n,63417)),"@site/blog/2023-05-17-consensus.md",63417],c51276e7:[()=>n.e(2071).then(n.t.bind(n,10359,19)),"~blog/updates/tags-incident-df6-list.json",10359],c52fdde1:[()=>n.e(54421).then(n.bind(n,61874)),"@site/blog/2024-01-10-ledger.md?truncated=true",61874],c5858ebd:[()=>n.e(95199).then(n.bind(n,16011)),"@site/quarterly/2023-04-03-ledger.md",16011],c5b24241:[()=>n.e(19683).then(n.t.bind(n,96779,19)),"~blog/updates/tags-ledger-page-5-77a-list.json",96779],c5fa22e0:[()=>n.e(58033).then(n.t.bind(n,75454,19)),"~blog/updates/tags-mithril-page-9-5e9.json",75454],c60581f2:[()=>n.e(97094).then(n.bind(n,84718)),"@site/blog/2023-02-08-consensus.md?truncated=true",84718],c63933b3:[()=>n.e(11727).then(n.bind(n,27502)),"@site/blog/2023-03-22-consensus.md",27502],c65b5e22:[()=>n.e(93471).then(n.t.bind(n,2920,19)),"~blog/updates/page-28-907.json",2920],c6ae40c2:[()=>n.e(17693).then(n.bind(n,68680)),"@site/blog/2023-01-20-sre.md?truncated=true",68680],c6f90b29:[()=>n.e(39080).then(n.bind(n,9762)),"@site/blog/2023-06-07-node-cli-api.md?truncated=true",9762],c7096169:[()=>n.e(25074).then(n.t.bind(n,24901,19)),"~blog/updates/page-85-d22.json",24901],c7337d4e:[()=>n.e(91151).then(n.bind(n,82469)),"@site/quarterly/2023-04-25-consensus.md",82469],c7db80fc:[()=>n.e(33742).then(n.t.bind(n,69681,19)),"~blog/updates/tags-consensus-page-4-18c.json",69681],c7e43a05:[()=>n.e(65956).then(n.bind(n,75265)),"@site/blog/2023-10-25-mithril.md?truncated=true",75265],c8056232:[()=>n.e(20326).then(n.t.bind(n,33580,19)),"~blog/updates/page-74-883.json",33580],c8302006:[()=>n.e(91221).then(n.t.bind(n,4029,19)),"~blog/quarterly/quarterly-page-2-3bf.json",4029],c831575d:[()=>n.e(42677).then(n.bind(n,20519)),"@site/blog/2023-02-21-db-sync.md?truncated=true",20519],c880761d:[()=>n.e(89579).then(n.bind(n,86710)),"@site/blog/2024-04-26-sre.md?truncated=true",86710],c90fb258:[()=>n.e(26584).then(n.bind(n,44389)),"@site/blog/2023-06-08-db-sync.md",44389],c9210b26:[()=>n.e(97959).then(n.bind(n,31535)),"@site/blog/2023-05-04-mithril.md?truncated=true",31535],c92fbd03:[()=>n.e(99720).then(n.t.bind(n,95281,19)),"~blog/updates/tags-sre-c43.json",95281],c9987321:[()=>n.e(5637).then(n.bind(n,22486)),"@site/blog/2024-01-15-node-cli-api.md?truncated=true",22486],c9d7f018:[()=>n.e(71955).then(n.t.bind(n,60398,19)),"~blog/updates/tags-consensus-page-5-6ad.json",60398],ca3b5bc8:[()=>n.e(96140).then(n.bind(n,92861)),"@site/blog/2023-08-09-consensus.md?truncated=true",92861],ca6829cb:[()=>n.e(41153).then(n.bind(n,14193)),"@site/blog/2023-10-20-hydra.md",14193],ca6e2d66:[()=>n.e(47827).then(n.t.bind(n,16180,19)),"~blog/updates/tags-performance-tracing-page-6-50d-list.json",16180],caab1e2e:[()=>n.e(93570).then(n.bind(n,74145)),"@site/blog/2023-07-20-goedel.md?truncated=true",74145],cab3a9ea:[()=>n.e(97343).then(n.bind(n,84597)),"@site/reports/2024-03-performance-8.9.1.md",84597],caeff77a:[()=>n.e(4553).then(n.t.bind(n,32905,19)),"~blog/updates/tags-cli-api-page-8-9bc.json",32905],cb1998b9:[()=>n.e(6795).then(n.t.bind(n,4758,19)),"~blog/quarterly/quarterly-tags-open-source-e2f.json",4758],cb54f244:[()=>n.e(48955).then(n.bind(n,46981)),"@site/blog/2023-12-08.md",46981],cb70d85b:[()=>n.e(6177).then(n.t.bind(n,77217,19)),"~blog/updates/tags-consensus-page-2-2f6-list.json",77217],cb7a1a0b:[()=>n.e(90934).then(n.bind(n,62094)),"@site/blog/2023-11-16-network.md?truncated=true",62094],cbd762f3:[()=>n.e(48810).then(n.t.bind(n,70453,19)),"~blog/updates/tags-consensus-page-2-2f6.json",70453],cc267639:[()=>n.e(81214).then(n.bind(n,27582)),"@site/blog/2023-01-13-system-test.md",27582],cc5c2602:[()=>n.e(78761).then(n.bind(n,43451)),"@site/quarterly/2023-01-13-network.md",43451],cc653543:[()=>n.e(91878).then(n.bind(n,18426)),"@site/blog/2024-02-21-mithril.md",18426],cc74f849:[()=>n.e(99896).then(n.bind(n,84845)),"@site/blog/2024-02-28-mithril.md?truncated=true",84845],cc9fa3d1:[()=>n.e(26500).then(n.t.bind(n,60923,19)),"~blog/updates/page-55-fa6.json",60923],ccb3697b:[()=>n.e(59835).then(n.t.bind(n,29687,19)),"~blog/updates/page-76-8e5.json",29687],ccb7a847:[()=>n.e(22469).then(n.bind(n,17352)),"@site/blog/2023-11-01-consensus.md",17352],ccc49370:[()=>Promise.all([n.e(40532),n.e(80210),n.e(2529),n.e(46103)]).then(n.bind(n,65203)),"@theme/BlogPostPage",65203],cce29330:[()=>n.e(65225).then(n.bind(n,90560)),"@site/blog/2023-12-20-mithril.md",90560],cced6026:[()=>n.e(48818).then(n.bind(n,52869)),"@site/quarterly/2022-11-07-nod-api-cli.md?truncated=true",52869],ccf451f9:[()=>n.e(5237).then(n.bind(n,81451)),"@site/blog/2023-10-20-hydra.md?truncated=true",81451],ccfc9222:[()=>n.e(87233).then(n.bind(n,86986)),"@site/blog/2023-03-22-node-cli-api.md?truncated=true",86986],cd0ded60:[()=>n.e(27668).then(n.bind(n,72238)),"@site/blog/2023-06-30-hydra.md",72238],cd5f993f:[()=>n.e(16571).then(n.bind(n,98678)),"@site/blog/2024-03-13-ledger.md?truncated=true",98678],cd612773:[()=>n.e(67205).then(n.bind(n,26169)),"@site/blog/2023-05-12-crypto.md",26169],cdcf18ac:[()=>n.e(79424).then(n.bind(n,266)),"@site/blog/2024-05-01-consensus.md",266],cdecbf23:[()=>n.e(45749).then(n.t.bind(n,92738,19)),"~blog/updates/tags-goedel-page-2-c81.json",92738],ce17d78b:[()=>n.e(77533).then(n.bind(n,9586)),"@site/quarterly/2023-Q2-sre.md",9586],ce230425:[()=>n.e(59914).then(n.bind(n,49328)),"@site/blog/2024-05-24-sre.md?truncated=true",49328],ce266bdc:[()=>n.e(47258).then(n.bind(n,31770)),"@site/blog/2024-07-08-network.md?truncated=true",31770],ce6dcc9e:[()=>n.e(77644).then(n.bind(n,56737)),"@site/blog/2022-09-19-db-sync.md?truncated=true",56737],ce7ed51f:[()=>n.e(30830).then(n.bind(n,71367)),"@site/blog/2023-04-14-hydra.md",71367],cebf097b:[()=>n.e(22772).then(n.t.bind(n,21785,19)),"~blog/updates/tags-consensus-59b-list.json",21785],cf1bc381:[()=>n.e(84773).then(n.bind(n,77907)),"@site/blog/2023-06-14-performance-and-tracing.md?truncated=true",77907],cf472160:[()=>n.e(26287).then(n.bind(n,21393)),"@site/blog/2024-01-17-ledger.md?truncated=true",21393],d0639dee:[()=>n.e(52506).then(n.bind(n,84505)),"@site/blog/2023-11-29-consensus.md?truncated=true",84505],d077dadd:[()=>n.e(88862).then(n.bind(n,4491)),"@site/blog/2023-06-28-consensus.md?truncated=true",4491],d0e182b9:[()=>n.e(32627).then(n.bind(n,81065)),"@site/blog/2023-06-29-mithril.md?truncated=true",81065],d124c703:[()=>n.e(15152).then(n.bind(n,54219)),"@site/blog/2022-11-04-open-source.md?truncated=true",54219],d13afeb8:[()=>n.e(28672).then(n.t.bind(n,11584,19)),"~blog/updates/tags-consensus-page-9-557-list.json",11584],d15a0787:[()=>n.e(89548).then(n.bind(n,20257)),"@site/blog/2023-09-29-hydra.md",20257],d192a362:[()=>n.e(28810).then(n.t.bind(n,42013,19)),"~blog/reports/reports-archive-fe7.json",42013],d19a344f:[()=>n.e(20387).then(n.bind(n,3568)),"@site/blog/2023-04-14-goedel.md",3568],d1d77594:[()=>n.e(1105).then(n.bind(n,28018)),"@site/blog/2024-02-23-hydra.md?truncated=true",28018],d21b93c1:[()=>n.e(94012).then(n.t.bind(n,90161,19)),"~blog/updates/tags-goedel-page-3-424.json",90161],d2463491:[()=>n.e(75061).then(n.bind(n,315)),"@site/blog/hydra-2024-02-02.md?truncated=true",315],d2ab2776:[()=>n.e(16360).then(n.bind(n,40090)),"@site/blog/2023-06-08-goedel.md",40090],d2aca35e:[()=>n.e(13412).then(n.bind(n,62337)),"@site/blog/2023-10-06-hydra.md",62337],d2ea5af2:[()=>n.e(91984).then(n.bind(n,15042)),"@site/blog/2023-04-21-ledger.md",15042],d343e3e1:[()=>n.e(8033).then(n.bind(n,26796)),"@site/blog/2023-09-15-hydra.md?truncated=true",26796],d369886f:[()=>n.e(25854).then(n.t.bind(n,32296,19)),"~blog/updates/page-62-110.json",32296],d369bf59:[()=>n.e(55802).then(n.t.bind(n,14055,19)),"~blog/updates/page-4-365.json",14055],d37f32a8:[()=>n.e(51389).then(n.bind(n,9326)),"@site/blog/2024-03-06-mithril.md",9326],d3a595c1:[()=>n.e(1537).then(n.bind(n,698)),"@site/blog/2022-10-19-node-cli-api.md?truncated=true",698],d3a63b1a:[()=>n.e(85085).then(n.t.bind(n,56577,19)),"~blog/updates/tags-crypto-e2f-list.json",56577],d3ba1bbd:[()=>n.e(76476).then(n.t.bind(n,95256,19)),"~blog/updates/tags-consensus-page-3-94e.json",95256],d3c2803b:[()=>n.e(14844).then(n.t.bind(n,83434,19)),"~blog/updates/tags-sre-page-2-7bc.json",83434],d3f3f546:[()=>n.e(13764).then(n.bind(n,54994)),"@site/blog/2022-11-25-crypto.md",54994],d5676bf9:[()=>n.e(3270).then(n.bind(n,82850)),"@site/blog/2023-07-07-hydra.md",82850],d5a278e5:[()=>n.e(67666).then(n.t.bind(n,92833,19)),"~blog/updates/page-67-4fd.json",92833],d5c6258a:[()=>n.e(83261).then(n.bind(n,52785)),"@site/blog/2024-06-05-node-cli-api.md?truncated=true",52785],d5cc3122:[()=>n.e(28669).then(n.bind(n,3047)),"@site/blog/2023-06-08-db-sync.md?truncated=true",3047],d5f27176:[()=>n.e(95558).then(n.bind(n,45623)),"@site/blog/2023-10-10-node-cli-api.md?truncated=true",45623],d632b502:[()=>n.e(17847).then(n.t.bind(n,33756,19)),"~blog/quarterly/quarterly-tags-network-56f-list.json",33756],d65b9dd2:[()=>n.e(93108).then(n.bind(n,59513)),"@site/blog/2023-10-27-network.md",59513],d6a3b4a5:[()=>n.e(30482).then(n.bind(n,19301)),"@site/blog/2023-07-31-network.md",19301],d6a93ba7:[()=>n.e(31349).then(n.bind(n,61256)),"@site/blog/2022-12-01-system-test.md?truncated=true",61256],d6b66cf4:[()=>n.e(95516).then(n.t.bind(n,1673,19)),"~blog/updates/blog-post-list-prop-updates.json",1673],d6c09ac2:[()=>n.e(22393).then(n.bind(n,98294)),"@site/blog/2023-07-21-hydra.md?truncated=true",98294],d6e5a7f4:[()=>n.e(86517).then(n.t.bind(n,81361,19)),"~blog/updates/tags-cli-api-page-6-2d0.json",81361],d6f20405:[()=>n.e(23599).then(n.bind(n,73363)),"@site/blog/2023-09-01-hydra.md",73363],d700c1da:[()=>n.e(28819).then(n.bind(n,90050)),"@site/blog/2024-04-19-hydra.md",90050],d70b4c5f:[()=>n.e(71870).then(n.bind(n,39446)),"@site/blog/2023-10-06-performance-and-tracing.md?truncated=true",39446],d76bd867:[()=>n.e(75563).then(n.bind(n,85131)),"@site/reports/2024-06-performance-8.12.1.md",85131],d7836792:[()=>n.e(42126).then(n.bind(n,82217)),"@site/blog/2023-08-25-hydra.md?truncated=true",82217],d7899fea:[()=>n.e(17285).then(n.bind(n,59997)),"@site/blog/2022-11-11-crypto.md?truncated=true",59997],d79a4bb7:[()=>n.e(90206).then(n.bind(n,25790)),"@site/blog/2022-11-25-hydra.md?truncated=true",25790],d7c69167:[()=>n.e(24288).then(n.bind(n,15983)),"@site/blog/2023-09-29-goedel.md?truncated=true",15983],d7d5383e:[()=>n.e(17300).then(n.t.bind(n,44808,19)),"~blog/updates/page-58-645.json",44808],d7dccf50:[()=>n.e(96229).then(n.bind(n,15203)),"@site/quarterly/2024-Q1-sre.md?truncated=true",15203],d7e5c882:[()=>n.e(12652).then(n.t.bind(n,73165,19)),"~blog/updates/tags-sre-page-6-a24-list.json",73165],d7ea4c81:[()=>n.e(64586).then(n.bind(n,31839)),"@site/blog/2024-01-15-node-cli-api.md",31839],d83d9042:[()=>n.e(8580).then(n.bind(n,42611)),"@site/blog/2023-05-12-hydra.md",42611],d857251e:[()=>n.e(75698).then(n.bind(n,14394)),"@site/blog/2023-05-24-node-cli-api.md",14394],d863ede2:[()=>n.e(45766).then(n.bind(n,48709)),"@site/blog/2023-02-22-consensus.md?truncated=true",48709],d8668f0c:[()=>n.e(1821).then(n.bind(n,94658)),"@site/blog/2023-03-23-db-sync.md",94658],d8c4fe87:[()=>n.e(24671).then(n.bind(n,48221)),"@site/blog/2023-09-06-consensus.md",48221],d90a9d25:[()=>n.e(63345).then(n.bind(n,89646)),"@site/blog/2024-06-05-mithril.md",89646],d92df848:[()=>n.e(2578).then(n.bind(n,61895)),"@site/blog/2023-01-12-mithril.md",61895],d934bbef:[()=>n.e(92182).then(n.t.bind(n,803,19)),"~blog/updates/page-11-f65.json",803],d957ac34:[()=>n.e(57772).then(n.bind(n,66001)),"@site/blog/2023-03-24-hydra.md",66001],d967308c:[()=>n.e(20957).then(n.bind(n,39967)),"@site/blog/2023-10-18-mithril.md",39967],d96cfa54:[()=>n.e(16171).then(n.bind(n,21351)),"@site/blog/2023-05-03-performance-and-tracing.md?truncated=true",21351],d97d797d:[()=>n.e(46347).then(n.t.bind(n,30809,19)),"~blog/updates/tags-consensus-page-5-6ad-list.json",30809],d988d084:[()=>n.e(85138).then(n.bind(n,56663)),"@site/blog/2023-06-28-performance-and-tracing.md",56663],d99d594e:[()=>n.e(46521).then(n.bind(n,43933)),"@site/blog/2023-02-23-performance-and-tracing.md?truncated=true",43933],d9a6bb79:[()=>n.e(27287).then(n.t.bind(n,29291,19)),"~blog/updates/tags-release-006.json",29291],d9b708eb:[()=>n.e(67463).then(n.bind(n,49915)),"@site/blog/2023-04-20-node-cli-api.md?truncated=true",49915],d9ccb35d:[()=>n.e(3136).then(n.bind(n,62438)),"@site/blog/2023-03-21-network.md?truncated=true",62438],da04b7b0:[()=>n.e(78101).then(n.bind(n,12804)),"@site/blog/2023-08-15-node-cli-api.md?truncated=true",12804],da2bedef:[()=>n.e(11903).then(n.bind(n,37783)),"@site/blog/2024-02-07-mithril.md?truncated=true",37783],da7937f0:[()=>n.e(62083).then(n.bind(n,52445)),"@site/blog/2022-10-05-consensus.md",52445],daa3e20a:[()=>n.e(29177).then(n.bind(n,34169)),"@site/blog/2023-03-27-system-test.md",34169],daace409:[()=>Promise.all([n.e(51068),n.e(89008)]).then(n.bind(n,23947)),"@site/blog/2022-09-27-network.md",23947],db138d7c:[()=>n.e(18634).then(n.bind(n,78238)),"@site/quarterly/2023-01-18-consensus.md",78238],db3d0db2:[()=>n.e(12709).then(n.bind(n,77801)),"@site/blog/2024-05-06-network.md",77801],db50202c:[()=>n.e(63566).then(n.bind(n,99900)),"@site/blog/2023-05-26-goedel.md?truncated=true",99900],db8fcc67:[()=>n.e(1099).then(n.t.bind(n,43384,19)),"~blog/updates/tags-performance-tracing-page-4-b67.json",43384],dbfcd384:[()=>n.e(8721).then(n.bind(n,39763)),"@site/blog/2024-04-30-mithril.md?truncated=true",39763],dc3c29da:[()=>n.e(58623).then(n.bind(n,22298)),"@site/reports/2024-05-performance-8.9.3.md?truncated=true",22298],dc590d3d:[()=>n.e(21439).then(n.t.bind(n,5524,19)),"~blog/updates/tags-hydra-page-2-bd4-list.json",5524],dceb6e64:[()=>n.e(18242).then(n.bind(n,22300)),"@site/quarterly/2022-11-15-consensus.md?truncated=true",22300],dd1ee47a:[()=>n.e(24519).then(n.t.bind(n,47291,19)),"~blog/updates/tags-hydra-page-13-9f1-list.json",47291],dd6797bc:[()=>n.e(52016).then(n.t.bind(n,52262,19)),"~blog/updates/page-39-76c.json",52262],ddcb8bff:[()=>n.e(54642).then(n.bind(n,15811)),"@site/blog/2023-11-22-mithril.md?truncated=true",15811],ddce0bff:[()=>n.e(31005).then(n.bind(n,59319)),"@site/blog/2023-07-21-sre.md",59319],de3a87a3:[()=>n.e(16224).then(n.t.bind(n,86398,19)),"~blog/updates/tags-hydra-page-6-ccd.json",86398],de42301d:[()=>n.e(29890).then(n.t.bind(n,49189,19)),"~blog/updates/tags-network-page-2-2d5-list.json",49189],de4537b5:[()=>n.e(41923).then(n.bind(n,52161)),"@site/blog/2023-10-27-goedel.md?truncated=true",52161],de790939:[()=>n.e(42185).then(n.bind(n,99073)),"@site/blog/2023-04-21-ledger.md?truncated=true",99073],decc8fa8:[()=>n.e(57918).then(n.bind(n,43654)),"@site/blog/2023-12-01-hydra.md",43654],dee5d2d9:[()=>n.e(52560).then(n.bind(n,46159)),"@site/blog/2023-08-18-network.md",46159],df778edc:[()=>n.e(79036).then(n.bind(n,65687)),"@site/blog/2023-04-28-network.md",65687],dfd49ee8:[()=>n.e(60247).then(n.bind(n,72396)),"@site/blog/2022-10-28-performance-and-tracing.md",72396],dff1c289:[()=>n.e(3792).then(n.bind(n,30089)),"@site/docs/tutorial-extras/manage-docs-versions.md",30089],dff84d74:[()=>n.e(65421).then(n.bind(n,812)),"@site/blog/2022-11-04-mithril.md",812],e05cd66a:[()=>n.e(64637).then(n.bind(n,57959)),"@site/blog/2024-06-05-node-cli-api.md",57959],e0a887fb:[()=>n.e(70291).then(n.t.bind(n,9027,19)),"~blog/updates/tags-network-page-6-17e.json",9027],e0b45b46:[()=>n.e(55135).then(n.bind(n,23826)),"@site/blog/2023-09-12-node-cli-api.md",23826],e135bd86:[()=>n.e(69791).then(n.bind(n,96223)),"@site/blog/2022-11-30-consensus.md?truncated=true",96223],e158fd47:[()=>n.e(88829).then(n.bind(n,64964)),"@site/blog/2023-03-31-goedel.md?truncated=true",64964],e1e18011:[()=>n.e(27577).then(n.bind(n,98913)),"@site/quarterly/2023-Q4-performance-and-tracing.md?truncated=true",98913],e1f21c3f:[()=>n.e(58680).then(n.bind(n,32235)),"@site/blog/2023-11-14-node-cli-api.md",32235],e2011657:[()=>n.e(30849).then(n.bind(n,51505)),"@site/blog/2023-03-17-hydra.md?truncated=true",51505],e25ae581:[()=>n.e(1929).then(n.bind(n,4890)),"@site/blog/2023-06-23-hydra.md",4890],e2621d74:[()=>n.e(36291).then(n.bind(n,8523)),"@site/blog/2024-04-17-db-sync.md",8523],e2a7c340:[()=>n.e(48622).then(n.bind(n,36391)),"@site/blog/2023-01-13-hydra.md?truncated=true",36391],e3067ecd:[()=>n.e(84599).then(n.bind(n,11113)),"@site/blog/2023-09-22-hydra.md?truncated=true",11113],e356bfd0:[()=>n.e(90083).then(n.bind(n,96391)),"@site/blog/2022-10-27-crypto.md?truncated=true",96391],e3c3ef1c:[()=>n.e(9107).then(n.bind(n,4394)),"@site/blog/2022-11-04-hydra.md",4394],e44a2883:[()=>n.e(96755).then(n.bind(n,80740)),"@site/docs/tutorial-extras/translate-your-site.md",80740],e44c5603:[()=>n.e(97331).then(n.bind(n,39077)),"@site/blog/2024-03-15-sre.md",39077],e4619b9c:[()=>n.e(56482).then(n.bind(n,70761)),"@site/blog/2023-07-06-developer-experience.md?truncated=true",70761],e475cb83:[()=>n.e(84378).then(n.bind(n,53728)),"@site/blog/2024-01-12.md",53728],e48af7b3:[()=>n.e(58659).then(n.t.bind(n,77022,19)),"~blog/updates/tags-sre-page-5-9cf-list.json",77022],e4a61baa:[()=>n.e(53121).then(n.bind(n,32288)),"@site/blog/2023-05-26-ledger.md",32288],e54eb766:[()=>n.e(21964).then(n.bind(n,48590)),"@site/blog/2024-03-15-hydra.md?truncated=true",48590],e56a9a29:[()=>n.e(43412).then(n.bind(n,43937)),"@site/blog/2023-08-24-performance-and-tracing.md?truncated=true",43937],e5d179d9:[()=>n.e(8583).then(n.t.bind(n,10761,19)),"~blog/updates/tags-hydra-782-list.json",10761],e5dd9161:[()=>n.e(37329).then(n.bind(n,16036)),"@site/blog/2023-02-24-hydra.md",16036],e5eebff8:[()=>n.e(48048).then(n.bind(n,41809)),"@site/blog/2024-03-01-sre.md?truncated=true",41809],e6402687:[()=>n.e(93524).then(n.bind(n,26879)),"@site/blog/2022-11-28-network.md",26879],e6ea9b03:[()=>n.e(88869).then(n.bind(n,53187)),"@site/blog/2023-03-31-crypto.md",53187],e70f68c6:[()=>n.e(72815).then(n.bind(n,80684)),"@site/blog/2023-03-16-goedel.md",80684],e716e5b6:[()=>n.e(94379).then(n.bind(n,13179)),"@site/quarterly/2023-Q3-sre.md?truncated=true",13179],e7486169:[()=>n.e(45237).then(n.bind(n,74349)),"@site/quarterly/2022-11-09-network.md",74349],e7a72da0:[()=>n.e(46846).then(n.bind(n,66876)),"@site/blog/2023-04-19-performance-and-tracing.md",66876],e80f56fd:[()=>n.e(73336).then(n.bind(n,78673)),"@site/blog/2023-04-14-hydra.md?truncated=true",78673],e847d60c:[()=>n.e(28348).then(n.bind(n,63962)),"@site/blog/2024-07-17-hydra.md",63962],e8c7dddb:[()=>n.e(22615).then(n.bind(n,83765)),"@site/blog/2024-01-17-ledger.md",83765],e8d4d6c0:[()=>n.e(52818).then(n.bind(n,32340)),"@site/blog/2023-02-17-network.md",32340],e90b2ff0:[()=>n.e(96840).then(n.bind(n,99480)),"@site/blog/2023-07-13-mithril.md?truncated=true",99480],e980c509:[()=>n.e(15007).then(n.t.bind(n,13208,19)),"~blog/updates/tags-crypto-page-4-421-list.json",13208],e9ae9b7e:[()=>n.e(55507).then(n.bind(n,38884)),"@site/blog/2024-02-19-network.md",38884],e9dce996:[()=>n.e(33221).then(n.bind(n,82360)),"@site/blog/2024-03-08-hydra.md?truncated=true",82360],e9de58f7:[()=>n.e(29370).then(n.bind(n,33003)),"@site/blog/2024-01-17-mithril.md?truncated=true",33003],ea2603ff:[()=>n.e(86326).then(n.bind(n,28380)),"@site/blog/2023-11-08-ledger.md?truncated=true",28380],ea5b7321:[()=>n.e(43890).then(n.t.bind(n,52394,19)),"~blog/updates/tags-cli-api-page-4-9f8.json",52394],ea84a009:[()=>n.e(92501).then(n.bind(n,602)),"@site/blog/2023-03-03-crypto.md?truncated=true",602],eac6bb0a:[()=>n.e(87445).then(n.bind(n,97940)),"@site/blog/2022-11-16-node-cli-api.md",97940],eaf1cf7f:[()=>n.e(86229).then(n.t.bind(n,69010,19)),"~blog/updates/tags-cli-api-page-2-b49-list.json",69010],eb0e2fb1:[()=>n.e(80622).then(n.bind(n,19040)),"@site/blog/2023-08-17-crypto.md",19040],eb781ed2:[()=>n.e(45723).then(n.t.bind(n,21492,19)),"~blog/updates/tags-consensus-59b.json",21492],eba74f81:[()=>n.e(5391).then(n.bind(n,86210)),"@site/blog/2024-01-31-node-cli-api.md",86210],ebf8adea:[()=>n.e(54669).then(n.bind(n,45668)),"@site/blog/2023-05-17-mithril.md?truncated=true",45668],ec06fa8a:[()=>n.e(46271).then(n.bind(n,1091)),"@site/blog/2023-10-10-node-cli-api.md",1091],ec344652:[()=>n.e(68580).then(n.bind(n,13231)),"@site/blog/2023-07-07-crypto.md",13231],ec53298b:[()=>n.e(21129).then(n.bind(n,94656)),"@site/blog/2023-04-05-performance-and-tracing.md?truncated=true",94656],ed174522:[()=>n.e(13327).then(n.bind(n,21178)),"@site/blog/2024-04-05-hydra.md",21178],ed8bde1d:[()=>n.e(52702).then(n.t.bind(n,78628,19)),"~blog/updates/page-59-d72.json",78628],ed930750:[()=>n.e(23318).then(n.bind(n,64185)),"@site/blog/2023-05-03-consensus.md?truncated=true",64185],ed99d55f:[()=>n.e(65318).then(n.bind(n,73437)),"@site/blog/2023-10-27-hydra.md?truncated=true",73437],eda7cf83:[()=>n.e(48423).then(n.bind(n,10725)),"@site/blog/2023-02-10-hydra.md?truncated=true",10725],edca0251:[()=>n.e(39066).then(n.bind(n,22704)),"@site/blog/2023-02-08-performance-and-tracing.md?truncated=true",22704],edf65b53:[()=>n.e(22637).then(n.t.bind(n,12537,19)),"~blog/updates/page-9-361.json",12537],ee0b7a59:[()=>n.e(26544).then(n.bind(n,1679)),"@site/blog/2023-07-26-consensus.md?truncated=true",1679],ee5cb919:[()=>n.e(49114).then(n.t.bind(n,38392,19)),"~blog/updates/page-86-697.json",38392],ee94a44f:[()=>n.e(56815).then(n.bind(n,6855)),"@site/blog/2022-12-15-mithril.md",6855],ef2b6a3f:[()=>n.e(1338).then(n.bind(n,50818)),"@site/blog/2022-12-14-db-sync.md?truncated=true",50818],ef4801f7:[()=>n.e(75394).then(n.bind(n,45443)),"@site/blog/2023-02-08-performance-and-tracing.md",45443],ef4f60e7:[()=>n.e(55531).then(n.bind(n,86601)),"@site/blog/2023-04-14-goedel.md?truncated=true",86601],eff08811:[()=>n.e(95816).then(n.bind(n,72837)),"@site/blog/2023-02-03-hydra.md",72837],f0418a99:[()=>n.e(73799).then(n.bind(n,25770)),"@site/blog/2023-11-16-network.md",25770],f04f5aa5:[()=>n.e(64350).then(n.bind(n,9554)),"@site/reports/2024-07-performance-9.0.0.md",9554],f117ec90:[()=>n.e(51522).then(n.bind(n,64385)),"@site/blog/2023-09-08-hydra.md",64385],f1565105:[()=>n.e(99851).then(n.bind(n,29008)),"@site/blog/2023-11-10-goedel.md",29008],f1bfc30d:[()=>n.e(35877).then(n.bind(n,30394)),"@site/blog/2023-10-11-mithril.md",30394],f1df5007:[()=>n.e(53288).then(n.bind(n,80999)),"@site/blog/2023-08-28-mithril.md",80999],f210b4b5:[()=>n.e(24745).then(n.bind(n,68831)),"@site/blog/2022-12-01-db-sync.md?truncated=true",68831],f2180c0a:[()=>n.e(17433).then(n.bind(n,9304)),"@site/blog/2023-05-05-ledger.md",9304],f2423430:[()=>n.e(1321).then(n.bind(n,28149)),"@site/blog/2023-03-22-performance-and-tracing.md?truncated=true",28149],f2b32cff:[()=>n.e(58566).then(n.bind(n,59485)),"@site/blog/2023-02-17-ledger.md",59485],f2deb2f1:[()=>n.e(82164).then(n.bind(n,80599)),"@site/blog/2023-11-10-sre.md",80599],f302e248:[()=>n.e(83214).then(n.bind(n,31079)),"@site/blog/2023-02-22-node-cli-api.md?truncated=true",31079],f3b8b9d5:[()=>n.e(6191).then(n.bind(n,90964)),"@site/blog/2024-01-31-mithril.md",90964],f3c06362:[()=>n.e(34985).then(n.bind(n,22460)),"@site/quarterly/2023-Q2-consensus.md",22460],f4174027:[()=>n.e(63643).then(n.bind(n,27362)),"@site/blog/2024-04-12-hydra.md",27362],f452efc5:[()=>n.e(44281).then(n.bind(n,89556)),"@site/blog/2023-07-07-goedel.md",89556],f4548430:[()=>n.e(93789).then(n.bind(n,84374)),"@site/blog/2023-09-27-mithril.md",84374],f480ab7b:[()=>n.e(87158).then(n.bind(n,78326)),"@site/blog/2024-02-16-performance-and-tracing.md?truncated=true",78326],f48535bf:[()=>n.e(45821).then(n.bind(n,99684)),"@site/blog/2023-06-16-hydra.md?truncated=true",99684],f5063a59:[()=>n.e(57922).then(n.t.bind(n,86038,19)),"~blog/updates/page-42-ca9.json",86038],f51bb76d:[()=>n.e(12626).then(n.bind(n,21772)),"@site/blog/2023-03-08-performance-and-tracing.md",21772],f522921c:[()=>n.e(75556).then(n.bind(n,55660)),"@site/blog/2023-06-02-hydra.md",55660],f5233174:[()=>n.e(54419).then(n.t.bind(n,50386,19)),"~blog/updates/tags-mithril-page-13-786-list.json",50386],f530b85c:[()=>n.e(49605).then(n.bind(n,35118)),"@site/blog/2023-04-05-node-cli-api.md",35118],f54e05ce:[()=>n.e(95514).then(n.t.bind(n,78938,19)),"~blog/updates/page-2-b45.json",78938],f55d3e7a:[()=>n.e(54193).then(n.bind(n,78030)),"@site/docs/tutorial-basics/deploy-your-site.md",78030],f57ea8cf:[()=>n.e(29204).then(n.t.bind(n,13124,19)),"~blog/updates/tags-tags-c2b.json",13124],f58a543c:[()=>n.e(65038).then(n.bind(n,56282)),"@site/blog/2024-01-19-hydra.md",56282],f59c978c:[()=>n.e(46545).then(n.bind(n,22053)),"@site/blog/2022-11-30-consensus.md",22053],f5a24224:[()=>n.e(71844).then(n.bind(n,66255)),"@site/blog/2022-10-14-ledger.md?truncated=true",66255],f5b1250e:[()=>n.e(1129).then(n.bind(n,25013)),"@site/blog/2023-08-04-hydra.md?truncated=true",25013],f5b69acd:[()=>n.e(68672).then(n.t.bind(n,21446,19)),"~blog/updates/tags-performance-tracing-979-list.json",21446],f5e5d1cf:[()=>n.e(51410).then(n.bind(n,45256)),"@site/blog/2022-11-18-mithril.md?truncated=true",45256],f63b6b72:[()=>n.e(87389).then(n.bind(n,36793)),"@site/blog/2023-07-21-ledger.md",36793],f63d0757:[()=>n.e(65395).then(n.bind(n,75353)),"@site/blog/2024-03-20-mithril.md?truncated=true",75353],f6aa5556:[()=>n.e(376).then(n.bind(n,86936)),"@site/blog/2022-12-09-ledger.md?truncated=true",86936],f6ec1152:[()=>n.e(11254).then(n.bind(n,53954)),"@site/blog/2023-10-13-ledger.md?truncated=true",53954],f7132c6a:[()=>n.e(35594).then(n.bind(n,87808)),"@site/blog/2023-12-08-goedel.md?truncated=true",87808],f76b8023:[()=>n.e(24568).then(n.bind(n,66820)),"@site/blog/2024-02-21-consensus.md?truncated=true",66820],f7812855:[()=>n.e(99187).then(n.t.bind(n,30337,19)),"~blog/updates/tags-performance-tracing-page-6-50d.json",30337],f7e5e70a:[()=>n.e(48909).then(n.bind(n,78370)),"@site/blog/2023-11-01-mithril.md?truncated=true",78370],f850a5f3:[()=>n.e(25403).then(n.bind(n,23498)),"@site/blog/2023-01-20-network.md",23498],f8681695:[()=>n.e(32464).then(n.bind(n,67885)),"@site/blog/2023-06-15-mithril.md?truncated=true",67885],f872275a:[()=>n.e(46922).then(n.bind(n,87739)),"@site/blog/2023-03-08-consensus.md?truncated=true",87739],f89a4337:[()=>n.e(25189).then(n.bind(n,54416)),"@site/blog/2023-09-26-node-cli-api.md",54416],f91da2e3:[()=>n.e(35044).then(n.t.bind(n,84274,19)),"~blog/updates/page-77-9d9.json",84274],f92f97ae:[()=>n.e(92530).then(n.t.bind(n,80901,19)),"~blog/updates/page-6-d10.json",80901],f96c80d6:[()=>n.e(90288).then(n.bind(n,75947)),"@site/blog/2023-12-04-performance-and-tracing.md",75947],f96c80dc:[()=>n.e(70641).then(n.bind(n,9022)),"@site/blog/2023-09-01-hydra.md?truncated=true",9022],f9781350:[()=>n.e(95174).then(n.bind(n,34221)),"@site/blog/2024-03-27-performance-and-tracing.md",34221],f99e473b:[()=>n.e(88904).then(n.bind(n,29417)),"@site/blog/2024-04-17-mithril.md?truncated=true",29417],f9afe2d8:[()=>n.e(25094).then(n.t.bind(n,43740,19)),"~blog/updates/tags-ledger-91e-list.json",43740],f9c65c8d:[()=>n.e(17813).then(n.bind(n,32624)),"@site/blog/2024-05-07-performance-and-tracing.md?truncated=true",32624],fa00d705:[()=>n.e(26710).then(n.bind(n,94828)),"@site/blog/2023-11-24-sre.md?truncated=true",94828],fa0b1b5d:[()=>n.e(90056).then(n.bind(n,62140)),"@site/blog/2023-05-12-goedel.md?truncated=true",62140],fa45022f:[()=>n.e(40870).then(n.bind(n,25121)),"@site/blog/2024-01-31-ledger.md",25121],fa5dce7e:[()=>n.e(73001).then(n.bind(n,20486)),"@site/blog/2023-08-18-goedel.md",20486],fa82889f:[()=>n.e(64829).then(n.t.bind(n,50432,19)),"~blog/updates/tags-network-page-4-09a.json",50432],fa9647fb:[()=>n.e(34703).then(n.bind(n,68670)),"@site/blog/2024-03-27-ledger.md",68670],faece773:[()=>n.e(32023).then(n.bind(n,58910)),"@site/blog/2023-02-03-hydra.md?truncated=true",58910],fb0b9e22:[()=>n.e(92522).then(n.bind(n,79184)),"@site/blog/2023-06-23-hydra.md?truncated=true",79184],fb63aa20:[()=>n.e(58470).then(n.bind(n,62389)),"@site/blog/2022-12-14-performance-and-tracing.md",62389],fb6d6072:[()=>n.e(85487).then(n.t.bind(n,4797,19)),"~blog/quarterly/quarterly-tags-performance-tracing-cae.json",4797],fb793160:[()=>n.e(87411).then(n.bind(n,48089)),"@site/blog/2023-02-08-consensus.md",48089],fb8d4667:[()=>n.e(57161).then(n.bind(n,31241)),"@site/blog/2022-10-28-network.md?truncated=true",31241],fba052bd:[()=>n.e(36171).then(n.bind(n,54664)),"@site/blog/2022-11-02-consensus.md",54664],fbc5e9d6:[()=>n.e(21895).then(n.t.bind(n,2705,19)),"~blog/updates/tags-hydra-page-14-d1b.json",2705],fbdc54bf:[()=>n.e(63824).then(n.bind(n,40671)),"@site/blog/2023-06-02-hydra.md?truncated=true",40671],fbe14114:[()=>n.e(18085).then(n.bind(n,18499)),"@site/blog/2024-01-10-consensus.md?truncated=true",18499],fc30198e:[()=>n.e(18160).then(n.t.bind(n,59740,19)),"~blog/updates/tags-hydra-page-4-b67.json",59740],fc55a8cc:[()=>n.e(15519).then(n.t.bind(n,40026,19)),"~blog/updates/tags-mithril-page-5-908-list.json",40026],fc6043ae:[()=>n.e(5785).then(n.t.bind(n,19350,19)),"~blog/updates/tags-goedel-page-4-d10-list.json",19350],fc8c3309:[()=>n.e(77642).then(n.bind(n,64267)),"@site/blog/2023-08-23-consensus.md?truncated=true",64267],fca4af6d:[()=>n.e(8201).then(n.t.bind(n,21308,19)),"~blog/updates/tags-consensus-page-8-05f-list.json",21308],fce7e268:[()=>n.e(62140).then(n.bind(n,50153)),"@site/blog/2023-03-03-hydra.md?truncated=true",50153],fd069ff7:[()=>n.e(52993).then(n.bind(n,84657)),"@site/blog/2024-03-27-mithril.md",84657],fd4eddf4:[()=>n.e(9314).then(n.bind(n,44093)),"@site/blog/2024-02-07-consensus.md?truncated=true",44093],fd5f5db6:[()=>n.e(23202).then(n.t.bind(n,46161,19)),"~blog/updates/tags-cli-api-page-2-b49.json",46161],fd6ebf5b:[()=>n.e(18599).then(n.t.bind(n,83821,19)),"~blog/updates/page-52-09f.json",83821],fd6fd4a3:[()=>n.e(37495).then(n.bind(n,66366)),"@site/blog/2022-11-23-ledger.md",66366],fd8a7e73:[()=>n.e(97371).then(n.bind(n,19145)),"@site/blog/2024-04-24-mithril.md",19145],fdba8f98:[()=>n.e(79224).then(n.bind(n,1814)),"@site/blog/2023-03-10-hydra.md",1814],fdc27cae:[()=>n.e(27697).then(n.bind(n,14791)),"@site/blog/2024-04-17-consensus.md?truncated=true",14791],fe591044:[()=>n.e(6421).then(n.bind(n,84231)),"@site/blog/2024-01-31-ledger.md?truncated=true",84231],fec52f54:[()=>n.e(65249).then(n.bind(n,50860)),"@site/blog/2023-10-13-goedel.md",50860],fed3e02f:[()=>n.e(94545).then(n.bind(n,64990)),"@site/blog/2024-01-30-db-sync.md",64990],fee99998:[()=>n.e(91760).then(n.bind(n,49627)),"@site/blog/2023-02-24-hydra.md?truncated=true",49627],ff158e4d:[()=>n.e(67507).then(n.bind(n,18890)),"@site/blog/2024-03-01-hydra.md?truncated=true",18890],ff8cfcf7:[()=>n.e(20203).then(n.bind(n,98149)),"@site/blog/2022-12-09-ledger.md",98149],ff98e151:[()=>n.e(12287).then(n.t.bind(n,68464,19)),"~blog/updates/tags-cli-api-946.json",68464],ffeb8a80:[()=>n.e(35275).then(n.t.bind(n,74591,19)),"~blog/updates/page-64-107.json",74591]};function s(e){let{error:t,retry:n,pastDelay:o}=e;return t?a.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},a.createElement("p",null,String(t)),a.createElement("div",null,a.createElement("button",{type:"button",onClick:n},"Retry"))):o?a.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},a.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},a.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},a.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},a.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),a.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),a.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),a.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},a.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),a.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),a.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),a.createElement("circle",{cx:"22",cy:"22",r:"8"},a.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var d=n(99670),u=n(30226);function p(e,t){if("*"===e)return c()({loading:s,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return a.createElement(u.z,{value:{plugin:{name:"native",id:"default"}}},a.createElement(n,t))}});const r=i[`${e}-${t}`],p={},b=[],f=[],g=(0,d.Z)(r);return Object.entries(g).forEach((e=>{let[t,n]=e;const a=l[n];a&&(p[t]=a[0],b.push(a[1]),f.push(a[2]))})),c().Map({loading:s,loader:p,modules:b,webpack:()=>f,render(t,n){const c=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,a]=t;const o=a.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(a).filter((e=>"default"!==e)).forEach((e=>{o[e]=a[e]}));let r=c;const i=n.split(".");i.slice(0,-1).forEach((e=>{r=r[e]})),r[i[i.length-1]]=o}));const i=c.__comp;delete c.__comp;const l=c.__context;return delete c.__context,a.createElement(u.z,{value:l},a.createElement(i,(0,o.Z)({},c,n)))}})}const b=[{path:"/2022-08-12-network",component:p("/2022-08-12-network","544"),exact:!0},{path:"/2022-08-12-sre",component:p("/2022-08-12-sre","b19"),exact:!0},{path:"/2022-08-31-consensus",component:p("/2022-08-31-consensus","2d8"),exact:!0},{path:"/2022-09-01-ledger",component:p("/2022-09-01-ledger","33c"),exact:!0},{path:"/2022-09-16-ledger",component:p("/2022-09-16-ledger","938"),exact:!0},{path:"/2022-09-19-db-sync",component:p("/2022-09-19-db-sync","75c"),exact:!0},{path:"/2022-09-20-consensus",component:p("/2022-09-20-consensus","ae5"),exact:!0},{path:"/2022-09-27-network",component:p("/2022-09-27-network","be3"),exact:!0},{path:"/2022-09-30-ledger",component:p("/2022-09-30-ledger","2ef"),exact:!0},{path:"/2022-10-02-consensus",component:p("/2022-10-02-consensus","3fd"),exact:!0},{path:"/2022-10-04-db-sync",component:p("/2022-10-04-db-sync","3e6"),exact:!0},{path:"/2022-10-04-node-cli-api",component:p("/2022-10-04-node-cli-api","572"),exact:!0},{path:"/2022-10-05-consensus",component:p("/2022-10-05-consensus","81b"),exact:!0},{path:"/2022-10-14-hydra",component:p("/2022-10-14-hydra","c6e"),exact:!0},{path:"/2022-10-14-ledger",component:p("/2022-10-14-ledger","37b"),exact:!0},{path:"/2022-10-18-consensus",component:p("/2022-10-18-consensus","41a"),exact:!0},{path:"/2022-10-19-node-cli-api",component:p("/2022-10-19-node-cli-api","106"),exact:!0},{path:"/2022-10-21-hydra",component:p("/2022-10-21-hydra","f56"),exact:!0},{path:"/2022-10-27-crypto",component:p("/2022-10-27-crypto","3d5"),exact:!0},{path:"/2022-10-28-hydra",component:p("/2022-10-28-hydra","0eb"),exact:!0},{path:"/2022-10-28-network",component:p("/2022-10-28-network","8bc"),exact:!0},{path:"/2022-10-28-performance-and-tracing",component:p("/2022-10-28-performance-and-tracing","83f"),exact:!0},{path:"/2022-10-31-open-source",component:p("/2022-10-31-open-source","32c"),exact:!0},{path:"/2022-11-01-db-sync",component:p("/2022-11-01-db-sync","cab"),exact:!0},{path:"/2022-11-02-ledger",component:p("/2022-11-02-ledger","416"),exact:!0},{path:"/2022-11-02-node-cli-api",component:p("/2022-11-02-node-cli-api","ca9"),exact:!0},{path:"/2022-11-02-release",component:p("/2022-11-02-release","421"),exact:!0},{path:"/2022-11-02-system-test",component:p("/2022-11-02-system-test","306"),exact:!0},{path:"/2022-11-03-embedding-quality",component:p("/2022-11-03-embedding-quality","4ed"),exact:!0},{path:"/2022-11-04-hydra",component:p("/2022-11-04-hydra","e8b"),exact:!0},{path:"/2022-11-04-mithril",component:p("/2022-11-04-mithril","160"),exact:!0},{path:"/2022-11-11-crypto",component:p("/2022-11-11-crypto","76f"),exact:!0},{path:"/2022-11-11-hydra",component:p("/2022-11-11-hydra","f1a"),exact:!0},{path:"/2022-11-11-ledger",component:p("/2022-11-11-ledger","f8a"),exact:!0},{path:"/2022-11-11-network",component:p("/2022-11-11-network","507"),exact:!0},{path:"/2022-11-16-consensus",component:p("/2022-11-16-consensus","351"),exact:!0},{path:"/2022-11-16-node-cli-api",component:p("/2022-11-16-node-cli-api","ab4"),exact:!0},{path:"/2022-11-16-performance-and-tracing",component:p("/2022-11-16-performance-and-tracing","796"),exact:!0},{path:"/2022-11-18-hydra",component:p("/2022-11-18-hydra","351"),exact:!0},{path:"/2022-11-18-mithril",component:p("/2022-11-18-mithril","b5e"),exact:!0},{path:"/2022-11-23-ledger",component:p("/2022-11-23-ledger","578"),exact:!0},{path:"/2022-11-25-crypto",component:p("/2022-11-25-crypto","c41"),exact:!0},{path:"/2022-11-25-hydra",component:p("/2022-11-25-hydra","bd6"),exact:!0},{path:"/2022-11-28-network",component:p("/2022-11-28-network","da5"),exact:!0},{path:"/2022-11-30-consensus",component:p("/2022-11-30-consensus","ee0"),exact:!0},{path:"/2022-11-30-node-cli-api",component:p("/2022-11-30-node-cli-api","8c2"),exact:!0},{path:"/2022-11-30-performance-and-tracing",component:p("/2022-11-30-performance-and-tracing","b59"),exact:!0},{path:"/2022-12-01-db-sync",component:p("/2022-12-01-db-sync","8d2"),exact:!0},{path:"/2022-12-01-mithril",component:p("/2022-12-01-mithril","83e"),exact:!0},{path:"/2022-12-01-system-test",component:p("/2022-12-01-system-test","6e1"),exact:!0},{path:"/2022-12-02-hydra",component:p("/2022-12-02-hydra","88a"),exact:!0},{path:"/2022-12-09-crypto",component:p("/2022-12-09-crypto","beb"),exact:!0},{path:"/2022-12-09-hydra",component:p("/2022-12-09-hydra","348"),exact:!0},{path:"/2022-12-09-ledger",component:p("/2022-12-09-ledger","98c"),exact:!0},{path:"/2022-12-12-network",component:p("/2022-12-12-network","4d3"),exact:!0},{path:"/2022-12-14-consensus",component:p("/2022-12-14-consensus","c1f"),exact:!0},{path:"/2022-12-14-db-sync",component:p("/2022-12-14-db-sync","0f3"),exact:!0},{path:"/2022-12-14-node-cli-api",component:p("/2022-12-14-node-cli-api","392"),exact:!0},{path:"/2022-12-14-performance-and-tracing",component:p("/2022-12-14-performance-and-tracing","e78"),exact:!0},{path:"/2022-12-15-mithril",component:p("/2022-12-15-mithril","1bf"),exact:!0},{path:"/2022-12-16-hydra",component:p("/2022-12-16-hydra","92e"),exact:!0},{path:"/2022-12-28-node-cli-api",component:p("/2022-12-28-node-cli-api","13b"),exact:!0},{path:"/2023-01-05-ledger",component:p("/2023-01-05-ledger","31c"),exact:!0},{path:"/2023-01-06-crypto",component:p("/2023-01-06-crypto","bd5"),exact:!0},{path:"/2023-01-11-consensus",component:p("/2023-01-11-consensus","c05"),exact:!0},{path:"/2023-01-11-performance-and-tracing",component:p("/2023-01-11-performance-and-tracing","e49"),exact:!0},{path:"/2023-01-12-mithril",component:p("/2023-01-12-mithril","d5e"),exact:!0},{path:"/2023-01-13-hydra",component:p("/2023-01-13-hydra","5e4"),exact:!0},{path:"/2023-01-13-release",component:p("/2023-01-13-release","eac"),exact:!0},{path:"/2023-01-13-system-test",component:p("/2023-01-13-system-test","990"),exact:!0},{path:"/2023-01-14-db-sync",component:p("/2023-01-14-db-sync","def"),exact:!0},{path:"/2023-01-19-ledger",component:p("/2023-01-19-ledger","150"),exact:!0},{path:"/2023-01-20-crypto",component:p("/2023-01-20-crypto","1e1"),exact:!0},{path:"/2023-01-20-hydra",component:p("/2023-01-20-hydra","7e4"),exact:!0},{path:"/2023-01-20-network",component:p("/2023-01-20-network","f01"),exact:!0},{path:"/2023-01-20-sre",component:p("/2023-01-20-sre","05b"),exact:!0},{path:"/2023-01-25-consensus",component:p("/2023-01-25-consensus","079"),exact:!0},{path:"/2023-01-25-node-cli-api",component:p("/2023-01-25-node-cli-api","c27"),exact:!0},{path:"/2023-01-26-mithril",component:p("/2023-01-26-mithril","4a0"),exact:!0},{path:"/2023-01-27-hydra",component:p("/2023-01-27-hydra","786"),exact:!0},{path:"/2023-02-02-ledger",component:p("/2023-02-02-ledger","ec5"),exact:!0},{path:"/2023-02-03-crypto",component:p("/2023-02-03-crypto","88e"),exact:!0},{path:"/2023-02-03-goedel",component:p("/2023-02-03-goedel","e57"),exact:!0},{path:"/2023-02-03-hydra",component:p("/2023-02-03-hydra","454"),exact:!0},{path:"/2023-02-08-consensus",component:p("/2023-02-08-consensus","a90"),exact:!0},{path:"/2023-02-08-node-cli-api",component:p("/2023-02-08-node-cli-api","20c"),exact:!0},{path:"/2023-02-08-performance-and-tracing",component:p("/2023-02-08-performance-and-tracing","e64"),exact:!0},{path:"/2023-02-09-mithril",component:p("/2023-02-09-mithril","228"),exact:!0},{path:"/2023-02-10-hydra",component:p("/2023-02-10-hydra","7a9"),exact:!0},{path:"/2023-02-17-crypto",component:p("/2023-02-17-crypto","1c5"),exact:!0},{path:"/2023-02-17-goedel",component:p("/2023-02-17-goedel","d51"),exact:!0},{path:"/2023-02-17-hydra",component:p("/2023-02-17-hydra","3ba"),exact:!0},{path:"/2023-02-17-ledger",component:p("/2023-02-17-ledger","7ee"),exact:!0},{path:"/2023-02-17-network",component:p("/2023-02-17-network","d4e"),exact:!0},{path:"/2023-02-21-db-sync",component:p("/2023-02-21-db-sync","67f"),exact:!0},{path:"/2023-02-22-consensus",component:p("/2023-02-22-consensus","c97"),exact:!0},{path:"/2023-02-22-node-cli-api",component:p("/2023-02-22-node-cli-api","175"),exact:!0},{path:"/2023-02-23-mithril",component:p("/2023-02-23-mithril","c7b"),exact:!0},{path:"/2023-02-23-performance-and-tracing",component:p("/2023-02-23-performance-and-tracing","dba"),exact:!0},{path:"/2023-02-24-hydra",component:p("/2023-02-24-hydra","b1f"),exact:!0},{path:"/2023-03-02-network",component:p("/2023-03-02-network","647"),exact:!0},{path:"/2023-03-03-crypto",component:p("/2023-03-03-crypto","f16"),exact:!0},{path:"/2023-03-03-goedel",component:p("/2023-03-03-goedel","484"),exact:!0},{path:"/2023-03-03-hydra",component:p("/2023-03-03-hydra","0b8"),exact:!0},{path:"/2023-03-03-ledger",component:p("/2023-03-03-ledger","f12"),exact:!0},{path:"/2023-03-08-consensus",component:p("/2023-03-08-consensus","b57"),exact:!0},{path:"/2023-03-08-node-cli-api",component:p("/2023-03-08-node-cli-api","9c6"),exact:!0},{path:"/2023-03-08-performance-and-tracing",component:p("/2023-03-08-performance-and-tracing","bd7"),exact:!0},{path:"/2023-03-09-mithril",component:p("/2023-03-09-mithril","8be"),exact:!0},{path:"/2023-03-10-hydra",component:p("/2023-03-10-hydra","c05"),exact:!0},{path:"/2023-03-16-goedel",component:p("/2023-03-16-goedel","847"),exact:!0},{path:"/2023-03-17-crypto",component:p("/2023-03-17-crypto","1c0"),exact:!0},{path:"/2023-03-17-hydra",component:p("/2023-03-17-hydra","456"),exact:!0},{path:"/2023-03-17-ledger",component:p("/2023-03-17-ledger","3c4"),exact:!0},{path:"/2023-03-21-network",component:p("/2023-03-21-network","94d"),exact:!0},{path:"/2023-03-22-consensus",component:p("/2023-03-22-consensus","711"),exact:!0},{path:"/2023-03-22-node-cli-api",component:p("/2023-03-22-node-cli-api","e3f"),exact:!0},{path:"/2023-03-22-performance-and-tracing",component:p("/2023-03-22-performance-and-tracing","440"),exact:!0},{path:"/2023-03-23-db-sync",component:p("/2023-03-23-db-sync","02d"),exact:!0},{path:"/2023-03-23-mithril",component:p("/2023-03-23-mithril","b17"),exact:!0},{path:"/2023-03-24-hydra",component:p("/2023-03-24-hydra","da7"),exact:!0},{path:"/2023-03-27-system-test",component:p("/2023-03-27-system-test","f31"),exact:!0},{path:"/2023-03-31-crypto",component:p("/2023-03-31-crypto","d2d"),exact:!0},{path:"/2023-03-31-goedel",component:p("/2023-03-31-goedel","d17"),exact:!0},{path:"/2023-03-31-hydra",component:p("/2023-03-31-hydra","28d"),exact:!0},{path:"/2023-03-31-ledger",component:p("/2023-03-31-ledger","b6a"),exact:!0},{path:"/2023-04-05-consensus",component:p("/2023-04-05-consensus","041"),exact:!0},{path:"/2023-04-05-node-cli-api",component:p("/2023-04-05-node-cli-api","9c5"),exact:!0},{path:"/2023-04-05-performance-and-tracing",component:p("/2023-04-05-performance-and-tracing","697"),exact:!0},{path:"/2023-04-06-mithril",component:p("/2023-04-06-mithril","cb4"),exact:!0},{path:"/2023-04-07-hydra",component:p("/2023-04-07-hydra","37d"),exact:!0},{path:"/2023-04-14-goedel",component:p("/2023-04-14-goedel","750"),exact:!0},{path:"/2023-04-14-hydra",component:p("/2023-04-14-hydra","e8d"),exact:!0},{path:"/2023-04-17-ledger",component:p("/2023-04-17-ledger","78e"),exact:!0},{path:"/2023-04-19-consensus",component:p("/2023-04-19-consensus","d04"),exact:!0},{path:"/2023-04-19-performance-and-tracing",component:p("/2023-04-19-performance-and-tracing","6e4"),exact:!0},{path:"/2023-04-20-mithril",component:p("/2023-04-20-mithril","594"),exact:!0},{path:"/2023-04-20-node-cli-api",component:p("/2023-04-20-node-cli-api","fe8"),exact:!0},{path:"/2023-04-21-hydra",component:p("/2023-04-21-hydra","03f"),exact:!0},{path:"/2023-04-21-ledger",component:p("/2023-04-21-ledger","533"),exact:!0},{path:"/2023-04-27-hydra",component:p("/2023-04-27-hydra","c48"),exact:!0},{path:"/2023-04-28-crypto",component:p("/2023-04-28-crypto","fec"),exact:!0},{path:"/2023-04-28-goedel",component:p("/2023-04-28-goedel","72e"),exact:!0},{path:"/2023-04-28-network",component:p("/2023-04-28-network","160"),exact:!0},{path:"/2023-05-01-db-sync",component:p("/2023-05-01-db-sync","2d5"),exact:!0},{path:"/2023-05-03-consensus",component:p("/2023-05-03-consensus","7d1"),exact:!0},{path:"/2023-05-03-performance-and-tracing",component:p("/2023-05-03-performance-and-tracing","6fa"),exact:!0},{path:"/2023-05-04-mithril",component:p("/2023-05-04-mithril","255"),exact:!0},{path:"/2023-05-05-ledger",component:p("/2023-05-05-ledger","2ee"),exact:!0},{path:"/2023-05-05-node-cli-api",component:p("/2023-05-05-node-cli-api","1a6"),exact:!0},{path:"/2023-05-12-crypto",component:p("/2023-05-12-crypto","760"),exact:!0},{path:"/2023-05-12-goedel",component:p("/2023-05-12-goedel","481"),exact:!0},{path:"/2023-05-12-hydra",component:p("/2023-05-12-hydra","bb0"),exact:!0},{path:"/2023-05-12-network",component:p("/2023-05-12-network","916"),exact:!0},{path:"/2023-05-17-consensus",component:p("/2023-05-17-consensus","efa"),exact:!0},{path:"/2023-05-17-mithril",component:p("/2023-05-17-mithril","11e"),exact:!0},{path:"/2023-05-17-performance-and-tracing",component:p("/2023-05-17-performance-and-tracing","d3b"),exact:!0},{path:"/2023-05-19-hydra",component:p("/2023-05-19-hydra","e71"),exact:!0},{path:"/2023-05-24-node-cli-api",component:p("/2023-05-24-node-cli-api","0e1"),exact:!0},{path:"/2023-05-26-goedel",component:p("/2023-05-26-goedel","51a"),exact:!0},{path:"/2023-05-26-hydra",component:p("/2023-05-26-hydra","a38"),exact:!0},{path:"/2023-05-26-ledger",component:p("/2023-05-26-ledger","1aa"),exact:!0},{path:"/2023-05-26-network",component:p("/2023-05-26-network","c79"),exact:!0},{path:"/2023-05-31-consensus",component:p("/2023-05-31-consensus","b5d"),exact:!0},{path:"/2023-05-31-performance-and-tracing",component:p("/2023-05-31-performance-and-tracing","e0e"),exact:!0},{path:"/2023-06-01-mithril",component:p("/2023-06-01-mithril","9ed"),exact:!0},{path:"/2023-06-02-hydra",component:p("/2023-06-02-hydra","58f"),exact:!0},{path:"/2023-06-07-node-cli-api",component:p("/2023-06-07-node-cli-api","154"),exact:!0},{path:"/2023-06-08-db-sync",component:p("/2023-06-08-db-sync","676"),exact:!0},{path:"/2023-06-08-goedel",component:p("/2023-06-08-goedel","619"),exact:!0},{path:"/2023-06-08-sre",component:p("/2023-06-08-sre","c8b"),exact:!0},{path:"/2023-06-08-system-test",component:p("/2023-06-08-system-test","6ec"),exact:!0},{path:"/2023-06-09-crypto",component:p("/2023-06-09-crypto","9b9"),exact:!0},{path:"/2023-06-09-developer-experience",component:p("/2023-06-09-developer-experience","044"),exact:!0},{path:"/2023-06-09-hydra",component:p("/2023-06-09-hydra","661"),exact:!0},{path:"/2023-06-12-network",component:p("/2023-06-12-network","1e0"),exact:!0},{path:"/2023-06-14-consensus",component:p("/2023-06-14-consensus","f0f"),exact:!0},{path:"/2023-06-14-performance-and-tracing",component:p("/2023-06-14-performance-and-tracing","e89"),exact:!0},{path:"/2023-06-15-mithril",component:p("/2023-06-15-mithril","427"),exact:!0},{path:"/2023-06-16-hydra",component:p("/2023-06-16-hydra","efe"),exact:!0},{path:"/2023-06-23-goedel",component:p("/2023-06-23-goedel","bfd"),exact:!0},{path:"/2023-06-23-hydra",component:p("/2023-06-23-hydra","ed7"),exact:!0},{path:"/2023-06-23-network",component:p("/2023-06-23-network","b31"),exact:!0},{path:"/2023-06-23-sre",component:p("/2023-06-23-sre","f2b"),exact:!0},{path:"/2023-06-28-consensus",component:p("/2023-06-28-consensus","fc4"),exact:!0},{path:"/2023-06-28-performance-and-tracing",component:p("/2023-06-28-performance-and-tracing","fa8"),exact:!0},{path:"/2023-06-29-mithril",component:p("/2023-06-29-mithril","1ec"),exact:!0},{path:"/2023-06-30-hydra",component:p("/2023-06-30-hydra","477"),exact:!0},{path:"/2023-07-04-db-sync",component:p("/2023-07-04-db-sync","c24"),exact:!0},{path:"/2023-07-04-node-cli-api",component:p("/2023-07-04-node-cli-api","a0c"),exact:!0},{path:"/2023-07-06-developer-experience",component:p("/2023-07-06-developer-experience","077"),exact:!0},{path:"/2023-07-07-crypto",component:p("/2023-07-07-crypto","da0"),exact:!0},{path:"/2023-07-07-goedel",component:p("/2023-07-07-goedel","575"),exact:!0},{path:"/2023-07-07-hydra",component:p("/2023-07-07-hydra","7f8"),exact:!0},{path:"/2023-07-07-sre",component:p("/2023-07-07-sre","bfa"),exact:!0},{path:"/2023-07-12-consensus",component:p("/2023-07-12-consensus","b7b"),exact:!0},{path:"/2023-07-12-performance-and-tracing",component:p("/2023-07-12-performance-and-tracing","f30"),exact:!0},{path:"/2023-07-13-mithril",component:p("/2023-07-13-mithril","35a"),exact:!0},{path:"/2023-07-14-hydra",component:p("/2023-07-14-hydra","036"),exact:!0},{path:"/2023-07-18-node-cli-api",component:p("/2023-07-18-node-cli-api","b50"),exact:!0},{path:"/2023-07-20-goedel",component:p("/2023-07-20-goedel","64d"),exact:!0},{path:"/2023-07-21-hydra",component:p("/2023-07-21-hydra","440"),exact:!0},{path:"/2023-07-21-ledger",component:p("/2023-07-21-ledger","683"),exact:!0},{path:"/2023-07-21-sre",component:p("/2023-07-21-sre","0cb"),exact:!0},{path:"/2023-07-26-consensus",component:p("/2023-07-26-consensus","336"),exact:!0},{path:"/2023-07-27-mithril",component:p("/2023-07-27-mithril","50a"),exact:!0},{path:"/2023-07-28-hydra",component:p("/2023-07-28-hydra","4a6"),exact:!0},{path:"/2023-07-31-network",component:p("/2023-07-31-network","e77"),exact:!0},{path:"/2023-08-01-node-cli-api",component:p("/2023-08-01-node-cli-api","3c5"),exact:!0},{path:"/2023-08-04-crypto",component:p("/2023-08-04-crypto","e98"),exact:!0},{path:"/2023-08-04-goedel",component:p("/2023-08-04-goedel","2b0"),exact:!0},{path:"/2023-08-04-hydra",component:p("/2023-08-04-hydra","9ec"),exact:!0},{path:"/2023-08-04-ledger",component:p("/2023-08-04-ledger","fe8"),exact:!0},{path:"/2023-08-04-network",component:p("/2023-08-04-network","a76"),exact:!0},{path:"/2023-08-04-performance-and-tracing",component:p("/2023-08-04-performance-and-tracing","906"),exact:!0},{path:"/2023-08-04-sre",component:p("/2023-08-04-sre","280"),exact:!0},{path:"/2023-08-09-consensus",component:p("/2023-08-09-consensus","10d"),exact:!0},{path:"/2023-08-10-mithril",component:p("/2023-08-10-mithril","106"),exact:!0},{path:"/2023-08-11-hydra",component:p("/2023-08-11-hydra","b83"),exact:!0},{path:"/2023-08-11-performance-and-tracing",component:p("/2023-08-11-performance-and-tracing","e1f"),exact:!0},{path:"/2023-08-15-node-cli-api",component:p("/2023-08-15-node-cli-api","a4d"),exact:!0},{path:"/2023-08-17-crypto",component:p("/2023-08-17-crypto","b23"),exact:!0},{path:"/2023-08-17-db-sync",component:p("/2023-08-17-db-sync","390"),exact:!0},{path:"/2023-08-17-secp-issue",component:p("/2023-08-17-secp-issue","ceb"),exact:!0},{path:"/2023-08-18-goedel",component:p("/2023-08-18-goedel","176"),exact:!0},{path:"/2023-08-18-hydra",component:p("/2023-08-18-hydra","a24"),exact:!0},{path:"/2023-08-18-ledger",component:p("/2023-08-18-ledger","e33"),exact:!0},{path:"/2023-08-18-network",component:p("/2023-08-18-network","dcc"),exact:!0},{path:"/2023-08-18-sre",component:p("/2023-08-18-sre","132"),exact:!0},{path:"/2023-08-23-consensus",component:p("/2023-08-23-consensus","536"),exact:!0},{path:"/2023-08-24-performance-and-tracing",component:p("/2023-08-24-performance-and-tracing","17b"),exact:!0},{path:"/2023-08-25-hydra",component:p("/2023-08-25-hydra","feb"),exact:!0},{path:"/2023-08-28-mithril",component:p("/2023-08-28-mithril","109"),exact:!0},{path:"/2023-08-29-node-cli-api",component:p("/2023-08-29-node-cli-api","886"),exact:!0},{path:"/2023-09-01-goedel",component:p("/2023-09-01-goedel","cc4"),exact:!0},{path:"/2023-09-01-hydra",component:p("/2023-09-01-hydra","f66"),exact:!0},{path:"/2023-09-01-ledger",component:p("/2023-09-01-ledger","309"),exact:!0},{path:"/2023-09-01-network",component:p("/2023-09-01-network","c25"),exact:!0},{path:"/2023-09-01-sre",component:p("/2023-09-01-sre","369"),exact:!0},{path:"/2023-09-06-consensus",component:p("/2023-09-06-consensus","7f8"),exact:!0},{path:"/2023-09-07-mithril",component:p("/2023-09-07-mithril","948"),exact:!0},{path:"/2023-09-07-performance-and-tracing",component:p("/2023-09-07-performance-and-tracing","c59"),exact:!0},{path:"/2023-09-08-hydra",component:p("/2023-09-08-hydra","142"),exact:!0},{path:"/2023-09-12-node-cli-api",component:p("/2023-09-12-node-cli-api","772"),exact:!0},{path:"/2023-09-14-db-sync",component:p("/2023-09-14-db-sync","1b7"),exact:!0},{path:"/2023-09-15-goedel",component:p("/2023-09-15-goedel","c2f"),exact:!0},{path:"/2023-09-15-hydra",component:p("/2023-09-15-hydra","6e3"),exact:!0},{path:"/2023-09-15-ledger",component:p("/2023-09-15-ledger","ab5"),exact:!0},{path:"/2023-09-15-network",component:p("/2023-09-15-network","713"),exact:!0},{path:"/2023-09-15-sre",component:p("/2023-09-15-sre","d88"),exact:!0},{path:"/2023-09-20-consensus",component:p("/2023-09-20-consensus","dbe"),exact:!0},{path:"/2023-09-20-mithril",component:p("/2023-09-20-mithril","f4e"),exact:!0},{path:"/2023-09-22-hydra",component:p("/2023-09-22-hydra","ed9"),exact:!0},{path:"/2023-09-22-performance-and-tracing",component:p("/2023-09-22-performance-and-tracing","16a"),exact:!0},{path:"/2023-09-26-node-cli-api",component:p("/2023-09-26-node-cli-api","e83"),exact:!0},{path:"/2023-09-27-mithril",component:p("/2023-09-27-mithril","160"),exact:!0},{path:"/2023-09-29-goedel",component:p("/2023-09-29-goedel","4f5"),exact:!0},{path:"/2023-09-29-hydra",component:p("/2023-09-29-hydra","722"),exact:!0},{path:"/2023-09-29-ledger",component:p("/2023-09-29-ledger","78c"),exact:!0},{path:"/2023-09-29-sre",component:p("/2023-09-29-sre","69a"),exact:!0},{path:"/2023-10-02-network",component:p("/2023-10-02-network","2f2"),exact:!0},{path:"/2023-10-04-consensus",component:p("/2023-10-04-consensus","e43"),exact:!0},{path:"/2023-10-04-mithril",component:p("/2023-10-04-mithril","8a0"),exact:!0},{path:"/2023-10-06-hydra",component:p("/2023-10-06-hydra","4fa"),exact:!0},{path:"/2023-10-06-performance-and-tracing",component:p("/2023-10-06-performance-and-tracing","4b1"),exact:!0},{path:"/2023-10-10-node-cli-api",component:p("/2023-10-10-node-cli-api","85b"),exact:!0},{path:"/2023-10-11-mithril",component:p("/2023-10-11-mithril","9f7"),exact:!0},{path:"/2023-10-13-goedel",component:p("/2023-10-13-goedel","a2e"),exact:!0},{path:"/2023-10-13-hydra",component:p("/2023-10-13-hydra","8ca"),exact:!0},{path:"/2023-10-13-ledger",component:p("/2023-10-13-ledger","b68"),exact:!0},{path:"/2023-10-13-sre",component:p("/2023-10-13-sre","907"),exact:!0},{path:"/2023-10-15-network",component:p("/2023-10-15-network","0f4"),exact:!0},{path:"/2023-10-18-consensus",component:p("/2023-10-18-consensus","3c2"),exact:!0},{path:"/2023-10-18-mithril",component:p("/2023-10-18-mithril","c96"),exact:!0},{path:"/2023-10-20-hydra",component:p("/2023-10-20-hydra","f59"),exact:!0},{path:"/2023-10-24-node-cli-api",component:p("/2023-10-24-node-cli-api","d79"),exact:!0},{path:"/2023-10-25-mithril",component:p("/2023-10-25-mithril","5b0"),exact:!0},{path:"/2023-10-27-goedel",component:p("/2023-10-27-goedel","a6a"),exact:!0},{path:"/2023-10-27-hydra",component:p("/2023-10-27-hydra","532"),exact:!0},{path:"/2023-10-27-network",component:p("/2023-10-27-network","ef1"),exact:!0},{path:"/2023-10-27-sre",component:p("/2023-10-27-sre","229"),exact:!0},{path:"/2023-11-01-consensus",component:p("/2023-11-01-consensus","358"),exact:!0},{path:"/2023-11-01-mithril",component:p("/2023-11-01-mithril","a2c"),exact:!0},{path:"/2023-11-08-ledger",component:p("/2023-11-08-ledger","416"),exact:!0},{path:"/2023-11-08-mithril",component:p("/2023-11-08-mithril","583"),exact:!0},{path:"/2023-11-09-db-sync",component:p("/2023-11-09-db-sync","34e"),exact:!0},{path:"/2023-11-10-goedel",component:p("/2023-11-10-goedel","d94"),exact:!0},{path:"/2023-11-10-hydra",component:p("/2023-11-10-hydra","02d"),exact:!0},{path:"/2023-11-10-sre",component:p("/2023-11-10-sre","906"),exact:!0},{path:"/2023-11-14-node-cli-api",component:p("/2023-11-14-node-cli-api","263"),exact:!0},{path:"/2023-11-15-consensus",component:p("/2023-11-15-consensus","92b"),exact:!0},{path:"/2023-11-15-mithril",component:p("/2023-11-15-mithril","f00"),exact:!0},{path:"/2023-11-16-network",component:p("/2023-11-16-network","876"),exact:!0},{path:"/2023-11-17-hydra",component:p("/2023-11-17-hydra","f15"),exact:!0},{path:"/2023-11-17-performance-and-tracing",component:p("/2023-11-17-performance-and-tracing","574"),exact:!0},{path:"/2023-11-20-cip1694",component:p("/2023-11-20-cip1694","ea6"),exact:!0},{path:"/2023-11-22-ledger",component:p("/2023-11-22-ledger","5a1"),exact:!0},{path:"/2023-11-22-mithril",component:p("/2023-11-22-mithril","92f"),exact:!0},{path:"/2023-11-24-goedel",component:p("/2023-11-24-goedel","b99"),exact:!0},{path:"/2023-11-24-hydra",component:p("/2023-11-24-hydra","f64"),exact:!0},{path:"/2023-11-24-sre",component:p("/2023-11-24-sre","5bd"),exact:!0},{path:"/2023-11-29-consensus",component:p("/2023-11-29-consensus","51d"),exact:!0},{path:"/2023-11-29-mithril",component:p("/2023-11-29-mithril","37c"),exact:!0},{path:"/2023-12-01-hydra",component:p("/2023-12-01-hydra","00d"),exact:!0},{path:"/2023-12-04-performance-and-tracing",component:p("/2023-12-04-performance-and-tracing","ace"),exact:!0},{path:"/2023-12-06-ledger",component:p("/2023-12-06-ledger","340"),exact:!0},{path:"/2023-12-06-mithril",component:p("/2023-12-06-mithril","02c"),exact:!0},{path:"/2023-12-08-goedel",component:p("/2023-12-08-goedel","09c"),exact:!0},{path:"/2023-12-08-hydra",component:p("/2023-12-08-hydra","f78"),exact:!0},{path:"/2023-12-08-network",component:p("/2023-12-08-network","605"),exact:!0},{path:"/2023-12-08-node-cli-api",component:p("/2023-12-08-node-cli-api","bba"),exact:!0},{path:"/2023-12-08-sre",component:p("/2023-12-08-sre","0d6"),exact:!0},{path:"/2023-12-11-performance-and-tracing",component:p("/2023-12-11-performance-and-tracing","f33"),exact:!0},{path:"/2023-12-13-mithril",component:p("/2023-12-13-mithril","f4e"),exact:!0},{path:"/2023-12-15-hydra",component:p("/2023-12-15-hydra","1d0"),exact:!0},{path:"/2023-12-20-mithril",component:p("/2023-12-20-mithril","a2e"),exact:!0},{path:"/2023-12-22-hydra",component:p("/2023-12-22-hydra","9f5"),exact:!0},{path:"/2023-12-22-network",component:p("/2023-12-22-network","371"),exact:!0},{path:"/2023-12-22-sre",component:p("/2023-12-22-sre","3b5"),exact:!0},{path:"/2023-12-30-node-cli-api",component:p("/2023-12-30-node-cli-api","c58"),exact:!0},{path:"/2024-01-05-hydra",component:p("/2024-01-05-hydra","bf4"),exact:!0},{path:"/2024-01-05-sre",component:p("/2024-01-05-sre","dca"),exact:!0},{path:"/2024-01-09-network",component:p("/2024-01-09-network","c3a"),exact:!0},{path:"/2024-01-10-consensus",component:p("/2024-01-10-consensus","a04"),exact:!0},{path:"/2024-01-10-ledger",component:p("/2024-01-10-ledger","3b2"),exact:!0},{path:"/2024-01-10-mithril",component:p("/2024-01-10-mithril","844"),exact:!0},{path:"/2024-01-12-hydra",component:p("/2024-01-12-hydra","4c6"),exact:!0},{path:"/2024-01-15-node-cli-api",component:p("/2024-01-15-node-cli-api","b23"),exact:!0},{path:"/2024-01-17-ledger",component:p("/2024-01-17-ledger","8e7"),exact:!0},{path:"/2024-01-17-mithril",component:p("/2024-01-17-mithril","8f0"),exact:!0},{path:"/2024-01-19-hydra",component:p("/2024-01-19-hydra","559"),exact:!0},{path:"/2024-01-19-sre",component:p("/2024-01-19-sre","42c"),exact:!0},{path:"/2024-01-22-network",component:p("/2024-01-22-network","c6d"),exact:!0},{path:"/2024-01-24-consensus",component:p("/2024-01-24-consensus","0f6"),exact:!0},{path:"/2024-01-24-mithril",component:p("/2024-01-24-mithril","f54"),exact:!0},{path:"/2024-01-26-hydra",component:p("/2024-01-26-hydra","481"),exact:!0},{path:"/2024-01-30-db-sync",component:p("/2024-01-30-db-sync","28b"),exact:!0},{path:"/2024-01-31-ledger",component:p("/2024-01-31-ledger","924"),exact:!0},{path:"/2024-01-31-mithril",component:p("/2024-01-31-mithril","166"),exact:!0},{path:"/2024-01-31-node-cli-api",component:p("/2024-01-31-node-cli-api","a45"),exact:!0},{path:"/2024-01-31-performance-and-tracing",component:p("/2024-01-31-performance-and-tracing","73f"),exact:!0},{path:"/2024-02-02-hydra",component:p("/2024-02-02-hydra","a1a"),exact:!0},{path:"/2024-02-02-sre",component:p("/2024-02-02-sre","99c"),exact:!0},{path:"/2024-02-05-network",component:p("/2024-02-05-network","7b5"),exact:!0},{path:"/2024-02-07-consensus",component:p("/2024-02-07-consensus","f10"),exact:!0},{path:"/2024-02-07-mithril",component:p("/2024-02-07-mithril","93a"),exact:!0},{path:"/2024-02-09-hydra",component:p("/2024-02-09-hydra","4cc"),exact:!0},{path:"/2024-02-14-ledger",component:p("/2024-02-14-ledger","6c0"),exact:!0},{path:"/2024-02-14-mithril",component:p("/2024-02-14-mithril","6b3"),exact:!0},{path:"/2024-02-15-node-cli-api",component:p("/2024-02-15-node-cli-api","0ac"),exact:!0},{path:"/2024-02-16-hydra",component:p("/2024-02-16-hydra","8e0"),exact:!0},{path:"/2024-02-16-performance-and-tracing",component:p("/2024-02-16-performance-and-tracing","587"),exact:!0},{path:"/2024-02-16-sre",component:p("/2024-02-16-sre","d56"),exact:!0},{path:"/2024-02-19-network",component:p("/2024-02-19-network","3f1"),exact:!0},{path:"/2024-02-21-consensus",component:p("/2024-02-21-consensus","0a3"),exact:!0},{path:"/2024-02-21-mithril",component:p("/2024-02-21-mithril","530"),exact:!0},{path:"/2024-02-23-hydra",component:p("/2024-02-23-hydra","5d6"),exact:!0},{path:"/2024-02-28-ledger",component:p("/2024-02-28-ledger","342"),exact:!0},{path:"/2024-02-28-mithril",component:p("/2024-02-28-mithril","fd8"),exact:!0},{path:"/2024-02-29-node-cli-api",component:p("/2024-02-29-node-cli-api","4ec"),exact:!0},{path:"/2024-03-01-hydra",component:p("/2024-03-01-hydra","e18"),exact:!0},{path:"/2024-03-01-sre",component:p("/2024-03-01-sre","378"),exact:!0},{path:"/2024-03-04-network",component:p("/2024-03-04-network","d72"),exact:!0},{path:"/2024-03-06-consensus",component:p("/2024-03-06-consensus","b28"),exact:!0},{path:"/2024-03-06-mithril",component:p("/2024-03-06-mithril","e4f"),exact:!0},{path:"/2024-03-08-hydra",component:p("/2024-03-08-hydra","a64"),exact:!0},{path:"/2024-03-08-performance-and-tracing",component:p("/2024-03-08-performance-and-tracing","e18"),exact:!0},{path:"/2024-03-13-ledger",component:p("/2024-03-13-ledger","815"),exact:!0},{path:"/2024-03-13-mithril",component:p("/2024-03-13-mithril","a31"),exact:!0},{path:"/2024-03-15-hydra",component:p("/2024-03-15-hydra","e19"),exact:!0},{path:"/2024-03-15-node-cli-api",component:p("/2024-03-15-node-cli-api","eda"),exact:!0},{path:"/2024-03-15-sre",component:p("/2024-03-15-sre","18e"),exact:!0},{path:"/2024-03-18-network",component:p("/2024-03-18-network","b77"),exact:!0},{path:"/2024-03-20-consensus",component:p("/2024-03-20-consensus","7ff"),exact:!0},{path:"/2024-03-20-mithril",component:p("/2024-03-20-mithril","2a9"),exact:!0},{path:"/2024-03-22-hydra",component:p("/2024-03-22-hydra","5aa"),exact:!0},{path:"/2024-03-27-ledger",component:p("/2024-03-27-ledger","b19"),exact:!0},{path:"/2024-03-27-mithril",component:p("/2024-03-27-mithril","bfb"),exact:!0},{path:"/2024-03-27-performance-and-tracing",component:p("/2024-03-27-performance-and-tracing","66f"),exact:!0},{path:"/2024-03-28-hydra",component:p("/2024-03-28-hydra","39b"),exact:!0},{path:"/2024-03-29-sre",component:p("/2024-03-29-sre","d9c"),exact:!0},{path:"/2024-03-30-node-cli-api",component:p("/2024-03-30-node-cli-api","f17"),exact:!0},{path:"/2024-04-03-consensus",component:p("/2024-04-03-consensus","03f"),exact:!0},{path:"/2024-04-03-mithril",component:p("/2024-04-03-mithril","ca4"),exact:!0},{path:"/2024-04-05-hydra",component:p("/2024-04-05-hydra","a08"),exact:!0},{path:"/2024-04-10-ledger",component:p("/2024-04-10-ledger","328"),exact:!0},{path:"/2024-04-10-mithril",component:p("/2024-04-10-mithril","372"),exact:!0},{path:"/2024-04-12-hydra",component:p("/2024-04-12-hydra","4d0"),exact:!0},{path:"/2024-04-12-sre",component:p("/2024-04-12-sre","79a"),exact:!0},{path:"/2024-04-15-network",component:p("/2024-04-15-network","c85"),exact:!0},{path:"/2024-04-15-node-cli-api",component:p("/2024-04-15-node-cli-api","1c2"),exact:!0},{path:"/2024-04-17-consensus",component:p("/2024-04-17-consensus","dd0"),exact:!0},{path:"/2024-04-17-db-sync",component:p("/2024-04-17-db-sync","b72"),exact:!0},{path:"/2024-04-17-mithril",component:p("/2024-04-17-mithril","c86"),exact:!0},{path:"/2024-04-19-hydra",component:p("/2024-04-19-hydra","43e"),exact:!0},{path:"/2024-04-19-performance-and-tracing",component:p("/2024-04-19-performance-and-tracing","1aa"),exact:!0},{path:"/2024-04-24-ledger",component:p("/2024-04-24-ledger","9fa"),exact:!0},{path:"/2024-04-24-mithril",component:p("/2024-04-24-mithril","5b2"),exact:!0},{path:"/2024-04-26-sre",component:p("/2024-04-26-sre","f0a"),exact:!0},{path:"/2024-04-27-node-cli-api",component:p("/2024-04-27-node-cli-api","1da"),exact:!0},{path:"/2024-04-30-mithril",component:p("/2024-04-30-mithril","4df"),exact:!0},{path:"/2024-05-01-consensus",component:p("/2024-05-01-consensus","3cd"),exact:!0},{path:"/2024-05-03-hydra",component:p("/2024-05-03-hydra","4df"),exact:!0},{path:"/2024-05-06-network",component:p("/2024-05-06-network","5ae"),exact:!0},{path:"/2024-05-07-performance-and-tracing",component:p("/2024-05-07-performance-and-tracing","277"),exact:!0},{path:"/2024-05-08-ledger",component:p("/2024-05-08-ledger","689"),exact:!0},{path:"/2024-05-10-hydra",component:p("/2024-05-10-hydra","d9d"),exact:!0},{path:"/2024-05-10-sre",component:p("/2024-05-10-sre","71d"),exact:!0},{path:"/2024-05-13-node-cli-api",component:p("/2024-05-13-node-cli-api","3a7"),exact:!0},{path:"/2024-05-15-consensus",component:p("/2024-05-15-consensus","1e7"),exact:!0},{path:"/2024-05-15-mithril",component:p("/2024-05-15-mithril","901"),exact:!0},{path:"/2024-05-22-ledger",component:p("/2024-05-22-ledger","1eb"),exact:!0},{path:"/2024-05-22-mithril",component:p("/2024-05-22-mithril","3fd"),exact:!0},{path:"/2024-05-24-performance-and-tracing",component:p("/2024-05-24-performance-and-tracing","4ff"),exact:!0},{path:"/2024-05-24-sre",component:p("/2024-05-24-sre","0ce"),exact:!0},{path:"/2024-05-27-hydra",component:p("/2024-05-27-hydra","fae"),exact:!0},{path:"/2024-05-29-consensus",component:p("/2024-05-29-consensus","d9e"),exact:!0},{path:"/2024-05-29-mithril",component:p("/2024-05-29-mithril","193"),exact:!0},{path:"/2024-06-05-ledger",component:p("/2024-06-05-ledger","52e"),exact:!0},{path:"/2024-06-05-mithril",component:p("/2024-06-05-mithril","6ac"),exact:!0},{path:"/2024-06-05-node-cli-api",component:p("/2024-06-05-node-cli-api","3a5"),exact:!0},{path:"/2024-06-10-hydra",component:p("/2024-06-10-hydra","d7c"),exact:!0},{path:"/2024-06-12-mithril",component:p("/2024-06-12-mithril","31c"),exact:!0},{path:"/2024-06-19-ledger",component:p("/2024-06-19-ledger","ce2"),exact:!0},{path:"/2024-06-19-mithril",component:p("/2024-06-19-mithril","e64"),exact:!0},{path:"/2024-06-25-performance-and-tracing",component:p("/2024-06-25-performance-and-tracing","8f3"),exact:!0},{path:"/2024-06-26-consensus",component:p("/2024-06-26-consensus","7e4"),exact:!0},{path:"/2024-06-26-mithril",component:p("/2024-06-26-mithril","858"),exact:!0},{path:"/2024-07-03-ledger",component:p("/2024-07-03-ledger","a2f"),exact:!0},{path:"/2024-07-03-mithril",component:p("/2024-07-03-mithril","900"),exact:!0},{path:"/2024-07-05-sre",component:p("/2024-07-05-sre","f7c"),exact:!0},{path:"/2024-07-08-network",component:p("/2024-07-08-network","091"),exact:!0},{path:"/2024-07-10-consensus",component:p("/2024-07-10-consensus","04e"),exact:!0},{path:"/2024-07-10-mithril",component:p("/2024-07-10-mithril","246"),exact:!0},{path:"/2024-07-17-hydra",component:p("/2024-07-17-hydra","84f"),exact:!0},{path:"/2024-07-17-mithril",component:p("/2024-07-17-mithril","9c7"),exact:!0},{path:"/archive",component:p("/archive","0a5"),exact:!0},{path:"/markdown-page",component:p("/markdown-page","ec9"),exact:!0},{path:"/page/10",component:p("/page/10","5e3"),exact:!0},{path:"/page/11",component:p("/page/11","2bb"),exact:!0},{path:"/page/12",component:p("/page/12","609"),exact:!0},{path:"/page/13",component:p("/page/13","c2c"),exact:!0},{path:"/page/14",component:p("/page/14","bf4"),exact:!0},{path:"/page/15",component:p("/page/15","556"),exact:!0},{path:"/page/16",component:p("/page/16","ed6"),exact:!0},{path:"/page/17",component:p("/page/17","852"),exact:!0},{path:"/page/18",component:p("/page/18","b55"),exact:!0},{path:"/page/19",component:p("/page/19","c6e"),exact:!0},{path:"/page/2",component:p("/page/2","c9e"),exact:!0},{path:"/page/20",component:p("/page/20","f43"),exact:!0},{path:"/page/21",component:p("/page/21","272"),exact:!0},{path:"/page/22",component:p("/page/22","028"),exact:!0},{path:"/page/23",component:p("/page/23","66a"),exact:!0},{path:"/page/24",component:p("/page/24","5d5"),exact:!0},{path:"/page/25",component:p("/page/25","3ca"),exact:!0},{path:"/page/26",component:p("/page/26","329"),exact:!0},{path:"/page/27",component:p("/page/27","aff"),exact:!0},{path:"/page/28",component:p("/page/28","650"),exact:!0},{path:"/page/29",component:p("/page/29","f34"),exact:!0},{path:"/page/3",component:p("/page/3","93a"),exact:!0},{path:"/page/30",component:p("/page/30","79e"),exact:!0},{path:"/page/31",component:p("/page/31","899"),exact:!0},{path:"/page/32",component:p("/page/32","398"),exact:!0},{path:"/page/33",component:p("/page/33","51c"),exact:!0},{path:"/page/34",component:p("/page/34","37e"),exact:!0},{path:"/page/35",component:p("/page/35","f23"),exact:!0},{path:"/page/36",component:p("/page/36","6f1"),exact:!0},{path:"/page/37",component:p("/page/37","bde"),exact:!0},{path:"/page/38",component:p("/page/38","632"),exact:!0},{path:"/page/39",component:p("/page/39","de1"),exact:!0},{path:"/page/4",component:p("/page/4","d06"),exact:!0},{path:"/page/40",component:p("/page/40","549"),exact:!0},{path:"/page/41",component:p("/page/41","377"),exact:!0},{path:"/page/42",component:p("/page/42","c10"),exact:!0},{path:"/page/43",component:p("/page/43","0ac"),exact:!0},{path:"/page/44",component:p("/page/44","ee2"),exact:!0},{path:"/page/45",component:p("/page/45","6ba"),exact:!0},{path:"/page/46",component:p("/page/46","7c7"),exact:!0},{path:"/page/47",component:p("/page/47","f4c"),exact:!0},{path:"/page/48",component:p("/page/48","21d"),exact:!0},{path:"/page/49",component:p("/page/49","c64"),exact:!0},{path:"/page/5",component:p("/page/5","025"),exact:!0},{path:"/page/50",component:p("/page/50","171"),exact:!0},{path:"/page/51",component:p("/page/51","454"),exact:!0},{path:"/page/52",component:p("/page/52","302"),exact:!0},{path:"/page/53",component:p("/page/53","f68"),exact:!0},{path:"/page/54",component:p("/page/54","563"),exact:!0},{path:"/page/55",component:p("/page/55","d77"),exact:!0},{path:"/page/56",component:p("/page/56","1b7"),exact:!0},{path:"/page/57",component:p("/page/57","dd7"),exact:!0},{path:"/page/58",component:p("/page/58","ecb"),exact:!0},{path:"/page/59",component:p("/page/59","20b"),exact:!0},{path:"/page/6",component:p("/page/6","318"),exact:!0},{path:"/page/60",component:p("/page/60","4c2"),exact:!0},{path:"/page/61",component:p("/page/61","02d"),exact:!0},{path:"/page/62",component:p("/page/62","7eb"),exact:!0},{path:"/page/63",component:p("/page/63","ea2"),exact:!0},{path:"/page/64",component:p("/page/64","19d"),exact:!0},{path:"/page/65",component:p("/page/65","01c"),exact:!0},{path:"/page/66",component:p("/page/66","b57"),exact:!0},{path:"/page/67",component:p("/page/67","45c"),exact:!0},{path:"/page/68",component:p("/page/68","4e6"),exact:!0},{path:"/page/69",component:p("/page/69","1cb"),exact:!0},{path:"/page/7",component:p("/page/7","2d0"),exact:!0},{path:"/page/70",component:p("/page/70","ee8"),exact:!0},{path:"/page/71",component:p("/page/71","61f"),exact:!0},{path:"/page/72",component:p("/page/72","d60"),exact:!0},{path:"/page/73",component:p("/page/73","b2e"),exact:!0},{path:"/page/74",component:p("/page/74","a64"),exact:!0},{path:"/page/75",component:p("/page/75","2c7"),exact:!0},{path:"/page/76",component:p("/page/76","82b"),exact:!0},{path:"/page/77",component:p("/page/77","4a7"),exact:!0},{path:"/page/78",component:p("/page/78","360"),exact:!0},{path:"/page/79",component:p("/page/79","ffe"),exact:!0},{path:"/page/8",component:p("/page/8","fc7"),exact:!0},{path:"/page/80",component:p("/page/80","65a"),exact:!0},{path:"/page/81",component:p("/page/81","5cf"),exact:!0},{path:"/page/82",component:p("/page/82","f4c"),exact:!0},{path:"/page/83",component:p("/page/83","ff4"),exact:!0},{path:"/page/84",component:p("/page/84","141"),exact:!0},{path:"/page/85",component:p("/page/85","46e"),exact:!0},{path:"/page/86",component:p("/page/86","2f1"),exact:!0},{path:"/page/87",component:p("/page/87","11d"),exact:!0},{path:"/page/88",component:p("/page/88","eeb"),exact:!0},{path:"/page/9",component:p("/page/9","589"),exact:!0},{path:"/quarterly",component:p("/quarterly","eaf"),exact:!0},{path:"/quarterly/2022-10-07-node-cli-api",component:p("/quarterly/2022-10-07-node-cli-api","5f3"),exact:!0},{path:"/quarterly/2022-11-07-ledger",component:p("/quarterly/2022-11-07-ledger","713"),exact:!0},{path:"/quarterly/2022-11-09-network",component:p("/quarterly/2022-11-09-network","9ef"),exact:!0},{path:"/quarterly/2022-11-15-consensus",component:p("/quarterly/2022-11-15-consensus","724"),exact:!0},{path:"/quarterly/2023-01-13-network",component:p("/quarterly/2023-01-13-network","73f"),exact:!0},{path:"/quarterly/2023-01-13-open-source",component:p("/quarterly/2023-01-13-open-source","85b"),exact:!0},{path:"/quarterly/2023-01-18-consensus",component:p("/quarterly/2023-01-18-consensus","418"),exact:!0},{path:"/quarterly/2023-04-03-ledger",component:p("/quarterly/2023-04-03-ledger","bd9"),exact:!0},{path:"/quarterly/2023-04-04-network",component:p("/quarterly/2023-04-04-network","2ea"),exact:!0},{path:"/quarterly/2023-04-25-consensus",component:p("/quarterly/2023-04-25-consensus","280"),exact:!0},{path:"/quarterly/2023-Q2-consensus",component:p("/quarterly/2023-Q2-consensus","606"),exact:!0},{path:"/quarterly/2023-Q2-network",component:p("/quarterly/2023-Q2-network","236"),exact:!0},{path:"/quarterly/2023-Q2-sre",component:p("/quarterly/2023-Q2-sre","aa4"),exact:!0},{path:"/quarterly/2023-Q3-performance-and-tracing",component:p("/quarterly/2023-Q3-performance-and-tracing","bbb"),exact:!0},{path:"/quarterly/2023-Q3-sre",component:p("/quarterly/2023-Q3-sre","000"),exact:!0},{path:"/quarterly/2023-Q4-consensus",component:p("/quarterly/2023-Q4-consensus","ffd"),exact:!0},{path:"/quarterly/2023-Q4-performance-and-tracing",component:p("/quarterly/2023-Q4-performance-and-tracing","70e"),exact:!0},{path:"/quarterly/2023-Q4-sre",component:p("/quarterly/2023-Q4-sre","cdb"),exact:!0},{path:"/quarterly/2024-Q1-sre",component:p("/quarterly/2024-Q1-sre","328"),exact:!0},{path:"/quarterly/2024-Q2-sre",component:p("/quarterly/2024-Q2-sre","6a6"),exact:!0},{path:"/quarterly/archive",component:p("/quarterly/archive","5f3"),exact:!0},{path:"/quarterly/page/2",component:p("/quarterly/page/2","6db"),exact:!0},{path:"/quarterly/tags",component:p("/quarterly/tags","231"),exact:!0},{path:"/quarterly/tags/cli-api-quarterly",component:p("/quarterly/tags/cli-api-quarterly","419"),exact:!0},{path:"/quarterly/tags/consensus",component:p("/quarterly/tags/consensus","693"),exact:!0},{path:"/quarterly/tags/ledger",component:p("/quarterly/tags/ledger","480"),exact:!0},{path:"/quarterly/tags/network",component:p("/quarterly/tags/network","de0"),exact:!0},{path:"/quarterly/tags/open-source",component:p("/quarterly/tags/open-source","0c4"),exact:!0},{path:"/quarterly/tags/performance-tracing",component:p("/quarterly/tags/performance-tracing","34a"),exact:!0},{path:"/quarterly/tags/sre",component:p("/quarterly/tags/sre","cf8"),exact:!0},{path:"/reports",component:p("/reports","bdb"),exact:!0},{path:"/reports/2023-12-performance-8.7.2",component:p("/reports/2023-12-performance-8.7.2","5dd"),exact:!0},{path:"/reports/2024-03-performance-8.9.0",component:p("/reports/2024-03-performance-8.9.0","fa3"),exact:!0},{path:"/reports/2024-03-performance-8.9.1",component:p("/reports/2024-03-performance-8.9.1","21d"),exact:!0},{path:"/reports/2024-05-performance-8.9.3",component:p("/reports/2024-05-performance-8.9.3","6d4"),exact:!0},{path:"/reports/2024-06-performance-8.12.1",component:p("/reports/2024-06-performance-8.12.1","978"),exact:!0},{path:"/reports/2024-07-performance-9.0.0",component:p("/reports/2024-07-performance-9.0.0","679"),exact:!0},{path:"/reports/archive",component:p("/reports/archive","d17"),exact:!0},{path:"/reports/tags",component:p("/reports/tags","d18"),exact:!0},{path:"/reports/tags/benchmarking-reports",component:p("/reports/tags/benchmarking-reports","31e"),exact:!0},{path:"/tags",component:p("/tags","90c"),exact:!0},{path:"/tags/cip-1694",component:p("/tags/cip-1694","edc"),exact:!0},{path:"/tags/cli-api",component:p("/tags/cli-api","6c7"),exact:!0},{path:"/tags/cli-api/page/2",component:p("/tags/cli-api/page/2","135"),exact:!0},{path:"/tags/cli-api/page/3",component:p("/tags/cli-api/page/3","20d"),exact:!0},{path:"/tags/cli-api/page/4",component:p("/tags/cli-api/page/4","fb3"),exact:!0},{path:"/tags/cli-api/page/5",component:p("/tags/cli-api/page/5","45e"),exact:!0},{path:"/tags/cli-api/page/6",component:p("/tags/cli-api/page/6","c05"),exact:!0},{path:"/tags/cli-api/page/7",component:p("/tags/cli-api/page/7","787"),exact:!0},{path:"/tags/cli-api/page/8",component:p("/tags/cli-api/page/8","07b"),exact:!0},{path:"/tags/consensus",component:p("/tags/consensus","820"),exact:!0},{path:"/tags/consensus/page/2",component:p("/tags/consensus/page/2","098"),exact:!0},{path:"/tags/consensus/page/3",component:p("/tags/consensus/page/3","5ae"),exact:!0},{path:"/tags/consensus/page/4",component:p("/tags/consensus/page/4","910"),exact:!0},{path:"/tags/consensus/page/5",component:p("/tags/consensus/page/5","d60"),exact:!0},{path:"/tags/consensus/page/6",component:p("/tags/consensus/page/6","c04"),exact:!0},{path:"/tags/consensus/page/7",component:p("/tags/consensus/page/7","c84"),exact:!0},{path:"/tags/consensus/page/8",component:p("/tags/consensus/page/8","3f5"),exact:!0},{path:"/tags/consensus/page/9",component:p("/tags/consensus/page/9","f0d"),exact:!0},{path:"/tags/crypto",component:p("/tags/crypto","b28"),exact:!0},{path:"/tags/crypto/page/2",component:p("/tags/crypto/page/2","d0b"),exact:!0},{path:"/tags/crypto/page/3",component:p("/tags/crypto/page/3","6db"),exact:!0},{path:"/tags/crypto/page/4",component:p("/tags/crypto/page/4","09c"),exact:!0},{path:"/tags/db-sync",component:p("/tags/db-sync","25f"),exact:!0},{path:"/tags/db-sync/page/2",component:p("/tags/db-sync/page/2","2d6"),exact:!0},{path:"/tags/db-sync/page/3",component:p("/tags/db-sync/page/3","5ef"),exact:!0},{path:"/tags/db-sync/page/4",component:p("/tags/db-sync/page/4","735"),exact:!0},{path:"/tags/devx",component:p("/tags/devx","129"),exact:!0},{path:"/tags/embedding-quality",component:p("/tags/embedding-quality","fd2"),exact:!0},{path:"/tags/goedel",component:p("/tags/goedel","9eb"),exact:!0},{path:"/tags/goedel/page/2",component:p("/tags/goedel/page/2","0f6"),exact:!0},{path:"/tags/goedel/page/3",component:p("/tags/goedel/page/3","c3d"),exact:!0},{path:"/tags/goedel/page/4",component:p("/tags/goedel/page/4","5e8"),exact:!0},{path:"/tags/goedel/page/5",component:p("/tags/goedel/page/5","234"),exact:!0},{path:"/tags/hydra",component:p("/tags/hydra","e6a"),exact:!0},{path:"/tags/hydra/page/10",component:p("/tags/hydra/page/10","b1a"),exact:!0},{path:"/tags/hydra/page/11",component:p("/tags/hydra/page/11","adf"),exact:!0},{path:"/tags/hydra/page/12",component:p("/tags/hydra/page/12","044"),exact:!0},{path:"/tags/hydra/page/13",component:p("/tags/hydra/page/13","439"),exact:!0},{path:"/tags/hydra/page/14",component:p("/tags/hydra/page/14","7ff"),exact:!0},{path:"/tags/hydra/page/15",component:p("/tags/hydra/page/15","e8f"),exact:!0},{path:"/tags/hydra/page/16",component:p("/tags/hydra/page/16","383"),exact:!0},{path:"/tags/hydra/page/2",component:p("/tags/hydra/page/2","34d"),exact:!0},{path:"/tags/hydra/page/3",component:p("/tags/hydra/page/3","5e9"),exact:!0},{path:"/tags/hydra/page/4",component:p("/tags/hydra/page/4","909"),exact:!0},{path:"/tags/hydra/page/5",component:p("/tags/hydra/page/5","010"),exact:!0},{path:"/tags/hydra/page/6",component:p("/tags/hydra/page/6","1b2"),exact:!0},{path:"/tags/hydra/page/7",component:p("/tags/hydra/page/7","891"),exact:!0},{path:"/tags/hydra/page/8",component:p("/tags/hydra/page/8","180"),exact:!0},{path:"/tags/hydra/page/9",component:p("/tags/hydra/page/9","9e5"),exact:!0},{path:"/tags/incident",component:p("/tags/incident","86f"),exact:!0},{path:"/tags/ledger",component:p("/tags/ledger","055"),exact:!0},{path:"/tags/ledger/page/2",component:p("/tags/ledger/page/2","5be"),exact:!0},{path:"/tags/ledger/page/3",component:p("/tags/ledger/page/3","726"),exact:!0},{path:"/tags/ledger/page/4",component:p("/tags/ledger/page/4","7e9"),exact:!0},{path:"/tags/ledger/page/5",component:p("/tags/ledger/page/5","0cd"),exact:!0},{path:"/tags/ledger/page/6",component:p("/tags/ledger/page/6","7dc"),exact:!0},{path:"/tags/ledger/page/7",component:p("/tags/ledger/page/7","57a"),exact:!0},{path:"/tags/ledger/page/8",component:p("/tags/ledger/page/8","f63"),exact:!0},{path:"/tags/ledger/page/9",component:p("/tags/ledger/page/9","134"),exact:!0},{path:"/tags/mithril",component:p("/tags/mithril","897"),exact:!0},{path:"/tags/mithril/page/10",component:p("/tags/mithril/page/10","db2"),exact:!0},{path:"/tags/mithril/page/11",component:p("/tags/mithril/page/11","4fb"),exact:!0},{path:"/tags/mithril/page/12",component:p("/tags/mithril/page/12","11e"),exact:!0},{path:"/tags/mithril/page/13",component:p("/tags/mithril/page/13","a65"),exact:!0},{path:"/tags/mithril/page/2",component:p("/tags/mithril/page/2","d68"),exact:!0},{path:"/tags/mithril/page/3",component:p("/tags/mithril/page/3","af3"),exact:!0},{path:"/tags/mithril/page/4",component:p("/tags/mithril/page/4","b4b"),exact:!0},{path:"/tags/mithril/page/5",component:p("/tags/mithril/page/5","562"),exact:!0},{path:"/tags/mithril/page/6",component:p("/tags/mithril/page/6","a57"),exact:!0},{path:"/tags/mithril/page/7",component:p("/tags/mithril/page/7","935"),exact:!0},{path:"/tags/mithril/page/8",component:p("/tags/mithril/page/8","f2b"),exact:!0},{path:"/tags/mithril/page/9",component:p("/tags/mithril/page/9","df3"),exact:!0},{path:"/tags/network",component:p("/tags/network","0e6"),exact:!0},{path:"/tags/network/page/2",component:p("/tags/network/page/2","008"),exact:!0},{path:"/tags/network/page/3",component:p("/tags/network/page/3","df1"),exact:!0},{path:"/tags/network/page/4",component:p("/tags/network/page/4","b41"),exact:!0},{path:"/tags/network/page/5",component:p("/tags/network/page/5","767"),exact:!0},{path:"/tags/network/page/6",component:p("/tags/network/page/6","bdf"),exact:!0},{path:"/tags/network/page/7",component:p("/tags/network/page/7","c40"),exact:!0},{path:"/tags/open-source",component:p("/tags/open-source","ac1"),exact:!0},{path:"/tags/performance-tracing",component:p("/tags/performance-tracing","44f"),exact:!0},{path:"/tags/performance-tracing/page/2",component:p("/tags/performance-tracing/page/2","98c"),exact:!0},{path:"/tags/performance-tracing/page/3",component:p("/tags/performance-tracing/page/3","8d6"),exact:!0},{path:"/tags/performance-tracing/page/4",component:p("/tags/performance-tracing/page/4","1da"),exact:!0},{path:"/tags/performance-tracing/page/5",component:p("/tags/performance-tracing/page/5","356"),exact:!0},{path:"/tags/performance-tracing/page/6",component:p("/tags/performance-tracing/page/6","8ee"),exact:!0},{path:"/tags/performance-tracing/page/7",component:p("/tags/performance-tracing/page/7","5fd"),exact:!0},{path:"/tags/release",component:p("/tags/release","3f8"),exact:!0},{path:"/tags/security",component:p("/tags/security","8e7"),exact:!0},{path:"/tags/sre",component:p("/tags/sre","917"),exact:!0},{path:"/tags/sre/page/2",component:p("/tags/sre/page/2","e55"),exact:!0},{path:"/tags/sre/page/3",component:p("/tags/sre/page/3","f03"),exact:!0},{path:"/tags/sre/page/4",component:p("/tags/sre/page/4","5ac"),exact:!0},{path:"/tags/sre/page/5",component:p("/tags/sre/page/5","099"),exact:!0},{path:"/tags/sre/page/6",component:p("/tags/sre/page/6","510"),exact:!0},{path:"/tags/system-test",component:p("/tags/system-test","f69"),exact:!0},{path:"/docs",component:p("/docs","705"),routes:[{path:"/docs/category/tutorial---basics",component:p("/docs/category/tutorial---basics","961"),exact:!0,sidebar:"defaultSidebar"},{path:"/docs/category/tutorial---extras",component:p("/docs/category/tutorial---extras","66d"),exact:!0,sidebar:"defaultSidebar"},{path:"/docs/intro",component:p("/docs/intro","5ba"),exact:!0,sidebar:"defaultSidebar"},{path:"/docs/tutorial-basics/congratulations",component:p("/docs/tutorial-basics/congratulations","f00"),exact:!0,sidebar:"defaultSidebar"},{path:"/docs/tutorial-basics/create-a-blog-post",component:p("/docs/tutorial-basics/create-a-blog-post","859"),exact:!0,sidebar:"defaultSidebar"},{path:"/docs/tutorial-basics/create-a-document",component:p("/docs/tutorial-basics/create-a-document","35e"),exact:!0,sidebar:"defaultSidebar"},{path:"/docs/tutorial-basics/create-a-page",component:p("/docs/tutorial-basics/create-a-page","2c8"),exact:!0,sidebar:"defaultSidebar"},{path:"/docs/tutorial-basics/deploy-your-site",component:p("/docs/tutorial-basics/deploy-your-site","732"),exact:!0,sidebar:"defaultSidebar"},{path:"/docs/tutorial-basics/markdown-features",component:p("/docs/tutorial-basics/markdown-features","072"),exact:!0,sidebar:"defaultSidebar"},{path:"/docs/tutorial-extras/manage-docs-versions",component:p("/docs/tutorial-extras/manage-docs-versions","048"),exact:!0,sidebar:"defaultSidebar"},{path:"/docs/tutorial-extras/translate-your-site",component:p("/docs/tutorial-extras/translate-your-site","a66"),exact:!0,sidebar:"defaultSidebar"}]},{path:"/",component:p("/","4aa"),exact:!0},{path:"*",component:p("*")}]},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>r});var a=n(67294);const o=a.createContext(!1);function r(e){let{children:t}=e;const[n,r]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{r(!0)}),[]),a.createElement(o.Provider,{value:n},t)}},49383:(e,t,n)=>{"use strict";var a=n(67294),o=n(73935),r=n(73727),c=n(70405),i=n(10412);const l=[n(32497),n(3310),n(18320),n(52295)];var s=n(723),d=n(16550),u=n(18790);function p(e){let{children:t}=e;return a.createElement(a.Fragment,null,t)}var b=n(87462),f=n(35742),g=n(52263),m=n(44996),h=n(86668),_=n(1944),y=n(94711),v=n(19727),x=n(43320),w=n(90197);function k(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,g.Z)(),n=(0,y.l)();return a.createElement(f.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:o}]=e;return a.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:o})})),a.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,g.Z)(),o=function(){const{siteConfig:{url:e}}=(0,g.Z)(),{pathname:t}=(0,d.TH)();return e+(0,m.Z)(t)}(),r=t?`${n}${t}`:o;return a.createElement(f.Z,null,a.createElement("meta",{property:"og:url",content:r}),a.createElement("link",{rel:"canonical",href:r}))}function S(){const{i18n:{currentLocale:e}}=(0,g.Z)(),{metadata:t,image:n}=(0,h.L)();return a.createElement(a.Fragment,null,a.createElement(f.Z,null,a.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),a.createElement("body",{className:v.h})),n&&a.createElement(_.d,{image:n}),a.createElement(E,null),a.createElement(k,null),a.createElement(w.Z,{tag:x.HX,locale:e}),a.createElement(f.Z,null,t.map(((e,t)=>a.createElement("meta",(0,b.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,u.f)(s.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(98934),L=n(58940);function j(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];const o=l.map((t=>{const a=t.default?.[e]??t[e];return a?.(...n)}));return()=>o.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:o}=e;return(0,a.useLayoutEffect)((()=>{o!==n&&(o&&function(e){const{hash:t}=e;if(t){const e=decodeURIComponent(t.substring(1)),n=document.getElementById(e);n?.scrollIntoView()}else window.scrollTo(0,0)}(n),j("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function R(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,u.f)(s.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class N extends a.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=i.Z.canUseDOM?j("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=j("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),R(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return a.createElement(P,{previousLocation:this.previousLocation,location:t},a.createElement(d.AW,{location:t,render:()=>e}))}}const O=N,M="docusaurus-base-url-issue-banner-container",D="docusaurus-base-url-issue-banner",I="docusaurus-base-url-issue-banner-suggestion-container",F="__DOCUSAURUS_INSERT_BASEURL_BANNER";function q(e){return`\nwindow['${F}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${F}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${M}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${D}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${I}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${I}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function B(){const{siteConfig:{baseUrl:e}}=(0,g.Z)();return(0,a.useLayoutEffect)((()=>{window[F]=!1}),[]),a.createElement(a.Fragment,null,!i.Z.canUseDOM&&a.createElement(f.Z,null,a.createElement("script",null,q(e))),a.createElement("div",{id:M}))}function z(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,g.Z)(),{pathname:n}=(0,d.TH)();return t&&n===e?a.createElement(B,null):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:o,localeConfigs:r}}=(0,g.Z)(),c=(0,m.Z)(e),{htmlLang:i,direction:l}=r[o];return a.createElement(f.Z,null,a.createElement("html",{lang:i,dir:l}),a.createElement("title",null,t),a.createElement("meta",{property:"og:title",content:t}),a.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&a.createElement("link",{rel:"icon",href:c}))}var $=n(44763);function H(){const e=(0,u.H)(s.Z),t=(0,d.TH)();return a.createElement($.Z,null,a.createElement(L.M,null,a.createElement(A.t,null,a.createElement(p,null,a.createElement(U,null),a.createElement(S,null),a.createElement(z,null),a.createElement(O,{location:T(t)},e)))))}var G=n(16887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const a=document.createElement("link");a.setAttribute("rel","prefetch"),a.setAttribute("href",e),a.onload=()=>t(),a.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(a)}))}:function(e){return new Promise(((t,n)=>{const a=new XMLHttpRequest;a.open("GET",e,!0),a.withCredentials=!0,a.onload=()=>{200===a.status?t():n()},a.send(null)}))};var V=n(99670);const W=new Set,Q=new Set,Y=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,K={prefetch(e){if(!(e=>!Y()&&!Q.has(e)&&!W.has(e))(e))return!1;W.add(e);const t=(0,u.f)(s.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!Q.has(e))(e)&&(Q.add(e),R(e))},X=Object.freeze(K);if(i.Z.canUseDOM){window.docusaurus=X;const e=o.hydrate;R(window.location.pathname).then((()=>{e(a.createElement(c.B6,null,a.createElement(r.VK,null,a.createElement(H,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>u});var a=n(67294),o=n(36809);const r=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"intro","docs":[{"id":"intro","path":"/docs/intro","sidebar":"defaultSidebar"},{"id":"tutorial-basics/congratulations","path":"/docs/tutorial-basics/congratulations","sidebar":"defaultSidebar"},{"id":"tutorial-basics/create-a-blog-post","path":"/docs/tutorial-basics/create-a-blog-post","sidebar":"defaultSidebar"},{"id":"tutorial-basics/create-a-document","path":"/docs/tutorial-basics/create-a-document","sidebar":"defaultSidebar"},{"id":"tutorial-basics/create-a-page","path":"/docs/tutorial-basics/create-a-page","sidebar":"defaultSidebar"},{"id":"tutorial-basics/deploy-your-site","path":"/docs/tutorial-basics/deploy-your-site","sidebar":"defaultSidebar"},{"id":"tutorial-basics/markdown-features","path":"/docs/tutorial-basics/markdown-features","sidebar":"defaultSidebar"},{"id":"tutorial-extras/manage-docs-versions","path":"/docs/tutorial-extras/manage-docs-versions","sidebar":"defaultSidebar"},{"id":"tutorial-extras/translate-your-site","path":"/docs/tutorial-extras/translate-your-site","sidebar":"defaultSidebar"},{"id":"/category/tutorial---basics","path":"/docs/category/tutorial---basics","sidebar":"defaultSidebar"},{"id":"/category/tutorial---extras","path":"/docs/category/tutorial---extras","sidebar":"defaultSidebar"}],"draftIds":[],"sidebars":{"defaultSidebar":{"link":{"path":"/docs/intro","label":"intro"}}}}],"breadcrumbs":true}}}'),c=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var i=n(57529);const l=JSON.parse('{"docusaurusVersion":"2.2.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.2.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.2.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.2.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.2.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.2.0"}}}'),s={siteConfig:o.default,siteMetadata:l,globalData:r,i18n:c,codeTranslations:i},d=a.createContext(s);function u(e){let{children:t}=e;return a.createElement(d.Provider,{value:s},t)}},44763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var a=n(67294),o=n(10412),r=n(35742),c=n(93285);function i(e){let{error:t,tryAgain:n}=e;return a.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},a.createElement("h1",null,"This page crashed."),a.createElement("p",null,t.message),a.createElement("button",{type:"button",onClick:n},"Try again"))}function l(e){let{error:t,tryAgain:n}=e;return a.createElement(d,{fallback:()=>a.createElement(i,{error:t,tryAgain:n})},a.createElement(r.Z,null,a.createElement("title",null,"Page Error")),a.createElement(c.Z,null,a.createElement(i,{error:t,tryAgain:n})))}const s=e=>a.createElement(l,e);class d extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??s)(e)}return e??null}}},10412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const a="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:a,canUseEventListeners:a&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:a&&"IntersectionObserver"in window,canUseViewport:a&&"screen"in window}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var a=n(67294),o=n(70405);function r(e){return a.createElement(o.ql,e)}},39960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>b});var a=n(87462),o=n(67294),r=n(73727),c=n(18780),i=n(52263),l=n(13919),s=n(10412);const d=o.createContext({collectLink:()=>{}});var u=n(44996);function p(e,t){let{isNavLink:n,to:p,href:b,activeClassName:f,isActive:g,"data-noBrokenLinkCheck":m,autoAddBaseUrl:h=!0,..._}=e;const{siteConfig:{trailingSlash:y,baseUrl:v}}=(0,i.Z)(),{withBaseUrl:x}=(0,u.C)(),w=(0,o.useContext)(d),k=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(()=>k.current));const E=p||b;const S=(0,l.Z)(E),C=E?.replace("pathname://","");let T=void 0!==C?(A=C,h&&(e=>e.startsWith("/"))(A)?x(A):A):void 0;var A;T&&S&&(T=(0,c.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:v}));const L=(0,o.useRef)(!1),j=n?r.OL:r.rU,P=s.Z.canUseIntersectionObserver,R=(0,o.useRef)(),N=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,o.useEffect)((()=>(!P&&S&&null!=T&&window.docusaurus.prefetch(T),()=>{P&&R.current&&R.current.disconnect()})),[R,T,P,S]);const O=T?.startsWith("#")??!1,M=!T||!S||O;return M||m||w.collectLink(T),M?o.createElement("a",(0,a.Z)({ref:k,href:T},E&&!S&&{target:"_blank",rel:"noopener noreferrer"},_)):o.createElement(j,(0,a.Z)({},_,{onMouseEnter:N,onTouchStart:N,innerRef:e=>{k.current=e,P&&e&&S&&(R.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(R.current.unobserve(e),R.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),R.current.observe(e))},to:T},n&&{isActive:g,activeClassName:f}))}const b=o.forwardRef(p)},11875:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=()=>null},95999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l,I:()=>i});var a=n(67294);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,a.isValidElement)(e)))?n.map(((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var r=n(57529);function c(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return r[t??n]??n??t}function i(e,t){let{message:n,id:a}=e;return o(c({message:n,id:a}),t)}function l(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=c({message:t,id:n});return a.createElement(a.Fragment,null,o(i,r))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>a});const a="default"},13919:(e,t,n)=>{"use strict";function a(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!a(e)}n.d(t,{Z:()=>o,b:()=>a})},44996:(e,t,n)=>{"use strict";n.d(t,{C:()=>r,Z:()=>c});var a=n(52263),o=n(13919);function r(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)();return{withBaseUrl:(n,a)=>function(e,t,n,a){let{forcePrependBaseUrl:r=!1,absolute:c=!1}=void 0===a?{}:a;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const i=n.startsWith(t)?n:t+n.replace(/^\//,"");return c?e+i:i}(t,e,n,a)}}function c(e,t){void 0===t&&(t={});const{withBaseUrl:n}=r();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var a=n(67294),o=n(58940);function r(){return(0,a.useContext)(o._)}},72389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var a=n(67294),o=n(98934);function r(){return(0,a.useContext)(o._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const a=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[r,c]=n;const i=o?`${o}.${r}`:r;a(c)?e(c,i):t[i]=c}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>r});var a=n(67294);const o=a.createContext(null);function r(e){let{children:t,value:n}=e;const r=a.useContext(o),c=(0,a.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const a={...t.data,...n?.data};return{plugin:t.plugin,data:a}}({parent:r,value:n})),[r,n]);return a.createElement(o.Provider,{value:c},t)}},80143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>g,gA:()=>p,_r:()=>d,Jo:()=>m,zh:()=>u,yW:()=>f,gB:()=>b});var a=n(16550),o=n(52263),r=n(29935);function c(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const i=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=function(e,t){const n=i(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,a.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,a.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((a=>{a.id===t&&(n[e.name]=a)}))})),n}(o.id):{}}}const s={},d=()=>c("docusaurus-plugin-content-docs")??s,u=e=>function(e,t,n){void 0===t&&(t=r.m),void 0===n&&(n={});const a=c(e),o=a?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,a.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,a.LX)(t,{path:n.path,exact:!1,strict:!1})})),r=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!r&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return r}(t,n,e)}function b(e){return u(e).versions}function f(e){const t=u(e);return i(t)}function g(e){const t=u(e),{pathname:n}=(0,a.TH)();return l(t,n)}function m(e){const t=u(e),{pathname:n}=(0,a.TH)();return function(e,t){const n=i(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var a=n(74865),o=n.n(a);o().configure({showSpinner:!1});const r={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var a=n(87410),o=n(36809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:a}=t;globalThis.Prism=e,a.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(a.Z)},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var a=n(67294);const o={iconExternalLink:"iconExternalLink_nPIU"};function r(e){let{width:t=13.5,height:n=13.5}=e;return a.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:o.iconExternalLink},a.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},93285:(e,t,n)=>{"use strict";n.d(t,{Z:()=>lt});var a=n(67294),o=n(86010),r=n(44763),c=n(1944),i=n(87462),l=n(16550),s=n(95999),d=n(85936);const u="docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function b(){const e=(0,a.useRef)(null),{action:t}=(0,l.k6)(),n=(0,a.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(u);t&&p(t)}),[]);return(0,d.S)((n=>{let{location:a}=n;e.current&&!a.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const f=(0,s.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function g(e){const t=e.children??f,{containerRef:n,onClick:o}=b();return a.createElement("div",{ref:n,role:"region","aria-label":f},a.createElement("a",(0,i.Z)({},e,{href:`#${u}`,onClick:o}),t))}var m=n(35281),h=n(19727);const _={skipToContent:"skipToContent_fXgn"};function y(){return a.createElement(g,{className:_.skipToContent})}var v=n(86668),x=n(59689);function w(e){let{width:t=21,height:n=21,color:o="currentColor",strokeWidth:r=1.2,className:c,...l}=e;return a.createElement("svg",(0,i.Z)({viewBox:"0 0 15 15",width:t,height:n},l),a.createElement("g",{stroke:o,strokeWidth:r},a.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const k={closeButton:"closeButton_CVFx"};function E(e){return a.createElement("button",(0,i.Z)({type:"button","aria-label":(0,s.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.Z)("clean-btn close",k.closeButton,e.className)}),a.createElement(w,{width:14,height:14,strokeWidth:3.1}))}const S={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,v.L)(),{content:n}=t;return a.createElement("div",(0,i.Z)({},e,{className:(0,o.Z)(S.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,v.L)(),{isActive:t,close:n}=(0,x.nT)();if(!t)return null;const{backgroundColor:o,textColor:r,isCloseable:c}=e;return a.createElement("div",{className:T.announcementBar,style:{backgroundColor:o,color:r},role:"banner"},c&&a.createElement("div",{className:T.announcementBarPlaceholder}),a.createElement(C,{className:T.announcementBarContent}),c&&a.createElement(E,{onClick:n,className:T.announcementBarClose}))}var L=n(72961),j=n(12466);var P=n(902),R=n(13102);const N=a.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,R.HY)(),[n,o]=(0,a.useState)(!1),r=null!==t.component,c=(0,P.D9)(r);return(0,a.useEffect)((()=>{r&&!c&&o(!0)}),[r,c]),(0,a.useEffect)((()=>{r?e.shown||o(!0):o(!1)}),[e.shown,r]),(0,a.useMemo)((()=>[n,o]),[n])}();return a.createElement(N.Provider,{value:n},t)}function M(e){if(e.component){const t=e.component;return a.createElement(t,e.props)}}function D(){const e=(0,a.useContext)(N);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,a.useCallback)((()=>n(!1)),[n]),r=(0,R.HY)();return(0,a.useMemo)((()=>({shown:t,hide:o,content:M(r)})),[o,r,t])}function I(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:c}=D();return a.createElement("div",{className:"navbar-sidebar"},t,a.createElement("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":c})},a.createElement("div",{className:"navbar-sidebar__item menu"},n),a.createElement("div",{className:"navbar-sidebar__item menu"},r)))}var F=n(92949),q=n(72389);function B(e){return a.createElement("svg",(0,i.Z)({viewBox:"0 0 24 24",width:24,height:24},e),a.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function z(e){return a.createElement("svg",(0,i.Z)({viewBox:"0 0 24 24",width:24,height:24},e),a.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function $(e){let{className:t,value:n,onChange:r}=e;const c=(0,q.Z)(),i=(0,s.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===n?(0,s.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return a.createElement("div",{className:(0,o.Z)(U.toggle,t)},a.createElement("button",{className:(0,o.Z)("clean-btn",U.toggleButton,!c&&U.toggleButtonDisabled),type:"button",onClick:()=>r("dark"===n?"light":"dark"),disabled:!c,title:i,"aria-label":i,"aria-live":"polite"},a.createElement(B,{className:(0,o.Z)(U.toggleIcon,U.lightToggleIcon)}),a.createElement(z,{className:(0,o.Z)(U.toggleIcon,U.darkToggleIcon)})))}const H=a.memo($);function G(e){let{className:t}=e;const n=(0,v.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:r}=(0,F.I)();return n?null:a.createElement(H,{className:t,value:o,onChange:r})}var Z=n(21327);function V(){return a.createElement(Z.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,L.e)();return a.createElement("button",{type:"button","aria-label":(0,s.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},a.createElement(w,{color:"var(--ifm-color-emphasis-600)"}))}function Q(){return a.createElement("div",{className:"navbar-sidebar__brand"},a.createElement(V,null),a.createElement(G,{className:"margin-right--md"}),a.createElement(W,null))}var Y=n(39960),K=n(44996),X=n(13919);function J(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var ee=n(39471);function te(e){let{activeBasePath:t,activeBaseRegex:n,to:o,href:r,label:c,html:l,isDropdownLink:s,prependBaseUrlToHref:d,...u}=e;const p=(0,K.Z)(o),b=(0,K.Z)(t),f=(0,K.Z)(r,{forcePrependBaseUrl:!0}),g=c&&r&&!(0,X.Z)(r),m=l?{dangerouslySetInnerHTML:{__html:l}}:{children:a.createElement(a.Fragment,null,c,g&&a.createElement(ee.Z,s&&{width:12,height:12}))};return r?a.createElement(Y.Z,(0,i.Z)({href:d?f:r},u,m)):a.createElement(Y.Z,(0,i.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?J(n,t.pathname):t.pathname.startsWith(b)},u,m))}function ne(e){let{className:t,isDropdownItem:n=!1,...r}=e;const c=a.createElement(te,(0,i.Z)({className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},r));return n?a.createElement("li",null,c):c}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return a.createElement("li",{className:"menu__list-item"},a.createElement(te,(0,i.Z)({className:(0,o.Z)("menu__link",t)},r)))}function oe(e){let{mobile:t=!1,position:n,...o}=e;const r=t?ae:ne;return a.createElement(r,(0,i.Z)({},o,{activeClassName:o.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var re=n(86043),ce=n(48596),ie=n(52263);function le(e,t){return e.some((e=>function(e,t){return!!(0,ce.Mg)(e.to,t)||!!J(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function se(e){let{items:t,position:n,className:r,onClick:c,...l}=e;const s=(0,a.useRef)(null),[d,u]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&u(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[s]),a.createElement("div",{ref:s,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":d})},a.createElement(te,(0,i.Z)({"aria-haspopup":"true","aria-expanded":d,role:"button",href:l.to?void 0:"#",className:(0,o.Z)("navbar__link",r)},l,{onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),u(!d))}}),l.children??l.label),a.createElement("ul",{className:"dropdown__menu"},t.map(((e,n)=>a.createElement(ke,(0,i.Z)({isDropdownItem:!0,onKeyDown:e=>{if(n===t.length-1&&"Tab"===e.key){e.preventDefault(),u(!1);const t=s.current.nextElementSibling;if(t){(t instanceof HTMLAnchorElement?t:t.querySelector("a")).focus()}}},activeClassName:"dropdown__link--active"},e,{key:n}))))))}function de(e){let{items:t,className:n,position:r,onClick:c,...s}=e;const d=function(){const{siteConfig:{baseUrl:e}}=(0,ie.Z)(),{pathname:t}=(0,l.TH)();return t.replace(e,"/")}(),u=le(t,d),{collapsed:p,toggleCollapsed:b,setCollapsed:f}=(0,re.u)({initialState:()=>!u});return(0,a.useEffect)((()=>{u&&f(!u)}),[d,u,f]),a.createElement("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":p})},a.createElement(te,(0,i.Z)({role:"button",className:(0,o.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},s,{onClick:e=>{e.preventDefault(),b()}}),s.children??s.label),a.createElement(re.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>a.createElement(ke,(0,i.Z)({mobile:!0,isDropdownItem:!0,onClick:c,activeClassName:"menu__link--active"},e,{key:t}))))))}function ue(e){let{mobile:t=!1,...n}=e;const o=t?de:se;return a.createElement(o,n)}var pe=n(94711);function be(e){let{width:t=20,height:n=20,...o}=e;return a.createElement("svg",(0,i.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},o),a.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const fe="iconLanguage_nlXk";var ge=n(11875);const me={searchBox:"searchBox_ZlJk"};function he(e){let{children:t,className:n}=e;return a.createElement("div",{className:(0,o.Z)(n,me.searchBox)},t)}var _e=n(80143),ye=n(52802);var ve=n(60373);const xe=e=>e.docs.find((t=>t.id===e.mainDocId));const we={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:o,...r}=e;const{i18n:{currentLocale:c,locales:d,localeConfigs:u}}=(0,ie.Z)(),p=(0,pe.l)(),{search:b,hash:f}=(0,l.TH)(),g=[...n,...d.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${b}${f}`;return{label:u[e].label,lang:u[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===c?t?"menu__link--active":"dropdown__link--active":""}})),...o],m=t?(0,s.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):u[c].label;return a.createElement(ue,(0,i.Z)({},r,{mobile:t,label:a.createElement(a.Fragment,null,a.createElement(be,{className:fe}),m),items:g}))},search:function(e){let{mobile:t,className:n}=e;return t?null:a.createElement(he,{className:n},a.createElement(ge.Z,null))},dropdown:ue,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:c=!1}=e;const i=c?"li":"div";return a.createElement(i,{className:(0,o.Z)({navbar__item:!r&&!c,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:o,...r}=e;const{activeDoc:c}=(0,_e.Iw)(o),l=(0,ye.vY)(t,o);return null===l?null:a.createElement(oe,(0,i.Z)({exact:!0},r,{isActive:()=>c?.path===l.path||!!c?.sidebar&&c.sidebar===l.sidebar,label:n??l.id,to:l.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:o,...r}=e;const{activeDoc:c}=(0,_e.Iw)(o),l=(0,ye.oz)(t,o).link;if(!l)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return a.createElement(oe,(0,i.Z)({exact:!0},r,{isActive:()=>c?.sidebar===t,label:n??l.label,to:l.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:o,...r}=e;const c=(0,ye.lO)(o)[0],l=t??c.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(c).path;return a.createElement(oe,(0,i.Z)({},r,{label:l,to:s}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:o,dropdownItemsBefore:r,dropdownItemsAfter:c,...d}=e;const{search:u,hash:p}=(0,l.TH)(),b=(0,_e.Iw)(n),f=(0,_e.gB)(n),{savePreferredVersionName:g}=(0,ve.J)(n),m=[...r,...f.map((e=>{const t=b.alternateDocVersions[e.name]??xe(e);return{label:e.label,to:`${t.path}${u}${p}`,isActive:()=>e===b.activeVersion,onClick:()=>g(e.name)}})),...c],h=(0,ye.lO)(n)[0],_=t&&m.length>1?(0,s.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,y=t&&m.length>1?void 0:xe(h).path;return m.length<=1?a.createElement(oe,(0,i.Z)({},d,{mobile:t,label:_,to:y,isActive:o?()=>!1:void 0})):a.createElement(ue,(0,i.Z)({},d,{mobile:t,label:_,to:y,items:m,isActive:o?()=>!1:void 0}))}};function ke(e){let{type:t,...n}=e;const o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),r=we[o];if(!r)throw new Error(`No NavbarItem component found for type "${t}".`);return a.createElement(r,n)}function Ee(){const e=(0,L.e)(),t=(0,v.L)().navbar.items;return a.createElement("ul",{className:"menu__list"},t.map(((t,n)=>a.createElement(ke,(0,i.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Se(e){return a.createElement("button",(0,i.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),a.createElement(s.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ce(){const e=0===(0,v.L)().navbar.items.length,t=D();return a.createElement(a.Fragment,null,!e&&a.createElement(Se,{onClick:()=>t.hide()}),t.content)}function Te(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,a.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?a.createElement(I,{header:a.createElement(Q,null),primaryMenu:a.createElement(Ee,null),secondaryMenu:a.createElement(Ce,null)}):null}const Ae={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Le(e){return a.createElement("div",(0,i.Z)({role:"presentation"},e,{className:(0,o.Z)("navbar-sidebar__backdrop",e.className)}))}function je(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:r}}=(0,v.L)(),c=(0,L.e)(),{navbarRef:i,isNavbarVisible:l}=function(e){const[t,n]=(0,a.useState)(e),o=(0,a.useRef)(!1),r=(0,a.useRef)(0),c=(0,a.useCallback)((e=>{null!==e&&(r.current=e.getBoundingClientRect().height)}),[]);return(0,j.RF)(((t,a)=>{let{scrollY:c}=t;if(!e)return;if(c<r.current)return void n(!0);if(o.current)return void(o.current=!1);const i=a?.scrollY,l=document.documentElement.scrollHeight-r.current,s=window.innerHeight;i&&c>=i?n(!1):c+s<l&&n(!0)})),(0,d.S)((t=>{if(!e)return;const a=t.location.hash;if(a?document.getElementById(a.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:c,isNavbarVisible:t}}(n);return a.createElement("nav",{ref:i,className:(0,o.Z)("navbar","navbar--fixed-top",n&&[Ae.navbarHideable,!l&&Ae.navbarHidden],{"navbar--dark":"dark"===r,"navbar--primary":"primary"===r,"navbar-sidebar--show":c.shown})},t,a.createElement(Le,{onClick:c.toggle}),a.createElement(Te,null))}const Pe="right";function Re(e){let{width:t=30,height:n=30,className:o,...r}=e;return a.createElement("svg",(0,i.Z)({className:o,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},r),a.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Ne(){const{toggle:e,shown:t}=(0,L.e)();return a.createElement("button",{onClick:e,"aria-label":(0,s.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},a.createElement(Re,null))}const Oe={colorModeToggle:"colorModeToggle_DEke"};function Me(e){let{items:t}=e;return a.createElement(a.Fragment,null,t.map(((e,t)=>a.createElement(ke,(0,i.Z)({},e,{key:t})))))}function De(e){let{left:t,right:n}=e;return a.createElement("div",{className:"navbar__inner"},a.createElement("div",{className:"navbar__items"},t),a.createElement("div",{className:"navbar__items navbar__items--right"},n))}function Ie(){const e=(0,L.e)(),t=(0,v.L)().navbar.items,[n,o]=function(e){function t(e){return"left"===(e.position??Pe)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),r=t.find((e=>"search"===e.type));return a.createElement(De,{left:a.createElement(a.Fragment,null,!e.disabled&&a.createElement(Ne,null),a.createElement(V,null),a.createElement(Me,{items:n})),right:a.createElement(a.Fragment,null,a.createElement(Me,{items:o}),a.createElement(G,{className:Oe.colorModeToggle}),!r&&a.createElement(he,null,a.createElement(ge.Z,null)))})}function Fe(){return a.createElement(je,null,a.createElement(Ie,null))}function qe(e){let{item:t}=e;const{to:n,href:o,label:r,prependBaseUrlToHref:c,...l}=t,s=(0,K.Z)(n),d=(0,K.Z)(o,{forcePrependBaseUrl:!0});return a.createElement(Y.Z,(0,i.Z)({className:"footer__link-item"},o?{href:c?d:o}:{to:s},l),r,o&&!(0,X.Z)(o)&&a.createElement(ee.Z,null))}function Be(e){let{item:t}=e;return t.html?a.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):a.createElement("li",{key:t.href??t.to,className:"footer__item"},a.createElement(qe,{item:t}))}function ze(e){let{column:t}=e;return a.createElement("div",{className:"col footer__col"},a.createElement("div",{className:"footer__title"},t.title),a.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>a.createElement(Be,{key:t,item:e})))))}function Ue(e){let{columns:t}=e;return a.createElement("div",{className:"row footer__links"},t.map(((e,t)=>a.createElement(ze,{key:t,column:e}))))}function $e(){return a.createElement("span",{className:"footer__link-separator"},"\xb7")}function He(e){let{item:t}=e;return t.html?a.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):a.createElement(qe,{item:t})}function Ge(e){let{links:t}=e;return a.createElement("div",{className:"footer__links text--center"},a.createElement("div",{className:"footer__links"},t.map(((e,n)=>a.createElement(a.Fragment,{key:n},a.createElement(He,{item:e}),t.length!==n+1&&a.createElement($e,null))))))}function Ze(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?a.createElement(Ue,{columns:t}):a.createElement(Ge,{links:t})}var Ve=n(50941);const We={footerLogoLink:"footerLogoLink_BH7S"};function Qe(e){let{logo:t}=e;const{withBaseUrl:n}=(0,K.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return a.createElement(Ve.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function Ye(e){let{logo:t}=e;return t.href?a.createElement(Y.Z,{href:t.href,className:We.footerLogoLink,target:t.target},a.createElement(Qe,{logo:t})):a.createElement(Qe,{logo:t})}function Ke(e){let{copyright:t}=e;return a.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Xe(e){let{style:t,links:n,logo:r,copyright:c}=e;return a.createElement("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t})},a.createElement("div",{className:"container container-fluid"},n,(r||c)&&a.createElement("div",{className:"footer__bottom text--center"},r&&a.createElement("div",{className:"margin-bottom--sm"},r),c)))}function Je(){const{footer:e}=(0,v.L)();if(!e)return null;const{copyright:t,links:n,logo:o,style:r}=e;return a.createElement(Xe,{style:r,links:n&&n.length>0&&a.createElement(Ze,{links:n}),logo:o&&a.createElement(Ye,{logo:o}),copyright:t&&a.createElement(Ke,{copyright:t})})}const et=a.memo(Je);var tt=n(50012);const nt="docusaurus.tab.",at=a.createContext(void 0);const ot=(0,P.Qc)([F.S,x.pl,function(e){let{children:t}=e;const n=function(){const[e,t]=(0,a.useState)({}),n=(0,a.useCallback)(((e,t)=>{(0,tt.W)(`${nt}${e}`).set(t)}),[]);(0,a.useEffect)((()=>{try{const e={};(0,tt._)().forEach((t=>{if(t.startsWith(nt)){const n=t.substring(nt.length);e[n]=(0,tt.W)(t).get()}})),t(e)}catch(e){console.error(e)}}),[]);const o=(0,a.useCallback)(((e,a)=>{t((t=>({...t,[e]:a}))),n(e,a)}),[n]);return(0,a.useMemo)((()=>({tabGroupChoices:e,setTabGroupChoices:o})),[e,o])}();return a.createElement(at.Provider,{value:n},t)},j.OC,ve.L5,c.VC,function(e){let{children:t}=e;return a.createElement(R.n2,null,a.createElement(L.M,null,a.createElement(O,null,t)))}]);function rt(e){let{children:t}=e;return a.createElement(ot,null,t)}function ct(e){let{error:t,tryAgain:n}=e;return a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(s.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),a.createElement("p",null,t.message),a.createElement("div",null,a.createElement("button",{type:"button",onClick:n},a.createElement(s.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}const it={mainWrapper:"mainWrapper_z2l0"};function lt(e){const{children:t,noFooter:n,wrapperClassName:i,title:l,description:s}=e;return(0,h.t)(),a.createElement(rt,null,a.createElement(c.d,{title:l,description:s}),a.createElement(y,null),a.createElement(A,null),a.createElement(Fe,null),a.createElement("div",{id:u,className:(0,o.Z)(m.k.wrapper.main,it.mainWrapper,i)},a.createElement(r.Z,{fallback:e=>a.createElement(ct,e)},t)),!n&&a.createElement(et,null))}},21327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var a=n(87462),o=n(67294),r=n(39960),c=n(44996),i=n(52263),l=n(86668),s=n(50941);function d(e){let{logo:t,alt:n,imageClassName:a}=e;const r={light:(0,c.Z)(t.src),dark:(0,c.Z)(t.srcDark||t.src)},i=o.createElement(s.Z,{className:t.className,sources:r,height:t.height,width:t.width,alt:n,style:t.style});return a?o.createElement("div",{className:a},i):i}function u(e){const{siteConfig:{title:t}}=(0,i.Z)(),{navbar:{title:n,logo:s}}=(0,l.L)(),{imageClassName:u,titleClassName:p,...b}=e,f=(0,c.Z)(s?.href||"/"),g=n?"":t,m=s?.alt??g;return o.createElement(r.Z,(0,a.Z)({to:f},b,s?.target&&{target:s.target}),s&&o.createElement(d,{logo:s,alt:m,imageClassName:u}),null!=n&&o.createElement("b",{className:p},n))}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var a=n(67294),o=n(35742);function r(e){let{locale:t,version:n,tag:r}=e;const c=t;return a.createElement(o.Z,null,t&&a.createElement("meta",{name:"docusaurus_locale",content:t}),n&&a.createElement("meta",{name:"docusaurus_version",content:n}),r&&a.createElement("meta",{name:"docusaurus_tag",content:r}),c&&a.createElement("meta",{name:"docsearch:language",content:c}),n&&a.createElement("meta",{name:"docsearch:version",content:n}),r&&a.createElement("meta",{name:"docsearch:docusaurus_tag",content:r}))}},50941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(87462),o=n(67294),r=n(86010),c=n(72389),i=n(92949);const l={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function s(e){const t=(0,c.Z)(),{colorMode:n}=(0,i.I)(),{sources:s,className:d,alt:u,...p}=e,b=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,b.map((e=>o.createElement("img",(0,a.Z)({key:e,src:s[e],alt:u,className:(0,r.Z)(l.themedImage,l[`themedImage--${e}`],d)},p)))))}},86043:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,z:()=>g});var a=n(87462),o=n(67294),r=n(10412);const c="ease-in-out";function i(e){let{initialState:t}=e;const[n,a]=(0,o.useState)(t??!1),r=(0,o.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:r}}const l={display:"none",overflow:"hidden",height:"0px"},s={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?l:s;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function u(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const r=(0,o.useRef)(!1);(0,o.useEffect)((()=>{const e=t.current;function o(){const t=e.scrollHeight,n=a?.duration??function(e){const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??c}`,height:`${t}px`}}function i(){const t=o();e.style.transition=t.transition,e.style.height=t.height}if(!r.current)return d(e,n),void(r.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=l.height,e.style.overflow=l.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function p(e){if(!r.Z.canUseDOM)return e?l:s}function b(e){let{as:t="div",collapsed:n,children:a,animation:r,onCollapseTransitionEnd:c,className:i,disableSSRStyle:l}=e;const s=(0,o.useRef)(null);return u({collapsibleRef:s,collapsed:n,animation:r}),o.createElement(t,{ref:s,style:l?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(s.current,n),c?.(n))},className:i},a)}function f(e){let{collapsed:t,...n}=e;const[r,c]=(0,o.useState)(!t),[i,l]=(0,o.useState)(t);return(0,o.useLayoutEffect)((()=>{t||c(!0)}),[t]),(0,o.useLayoutEffect)((()=>{r&&l(t)}),[r,t]),r?o.createElement(b,(0,a.Z)({},n,{collapsed:i})):null}function g(e){let{lazy:t,...n}=e;const a=t?f:b;return o.createElement(a,n)}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>f,pl:()=>b});var a=n(67294),o=n(72389),r=n(50012),c=n(902),i=n(86668);const l=(0,r.W)("docusaurus.announcement.dismiss"),s=(0,r.W)("docusaurus.announcement.id"),d=()=>"true"===l.get(),u=e=>l.set(String(e)),p=a.createContext(null);function b(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,i.L)(),t=(0,o.Z)(),[n,r]=(0,a.useState)((()=>!!t&&d()));(0,a.useEffect)((()=>{r(d())}),[]);const c=(0,a.useCallback)((()=>{u(!0),r(!0)}),[]);return(0,a.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=s.get();"annoucement-bar"===n&&(n="announcement-bar");const a=t!==n;s.set(t),a&&u(!1),!a&&d()||r(!1)}),[e]),(0,a.useMemo)((()=>({isActive:!!e&&!n,close:c})),[e,n,c])}();return a.createElement(p.Provider,{value:n},t)}function f(){const e=(0,a.useContext)(p);if(!e)throw new c.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>m,S:()=>g});var a=n(67294),o=n(10412),r=n(902),c=n(50012),i=n(86668);const l=a.createContext(void 0),s="theme",d=(0,c.W)(s),u={light:"light",dark:"dark"},p=e=>e===u.dark?u.dark:u.light,b=e=>o.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),f=e=>{d.set(p(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,i.L)(),[o,r]=(0,a.useState)(b(e));(0,a.useEffect)((()=>{t&&d.del()}),[t]);const c=(0,a.useCallback)((function(t,a){void 0===a&&(a={});const{persist:o=!0}=a;t?(r(t),o&&f(t)):(r(n?window.matchMedia("(prefers-color-scheme: dark)").matches?u.dark:u.light:e),d.del())}),[n,e]);(0,a.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(o))}),[o]),(0,a.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==s)return;const t=d.get();null!==t&&c(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,c]);const l=(0,a.useRef)(!1);return(0,a.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:c(null)};return e.addListener(a),()=>e.removeListener(a)}),[c,t,n]),(0,a.useMemo)((()=>({colorMode:o,setColorMode:c,get isDarkTheme(){return o===u.dark},setLightTheme(){c(u.light)},setDarkTheme(){c(u.dark)}})),[o,c])}();return a.createElement(l.Provider,{value:n},t)}function m(){const e=(0,a.useContext)(l);if(null==e)throw new r.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>_,L5:()=>m});var a=n(67294),o=n(80143),r=n(29935),c=n(86668),i=n(52802),l=n(902),s=n(50012);const d=e=>`docs-preferred-version-${e}`,u={save:(e,t,n)=>{(0,s.W)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,s.W)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,s.W)(d(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const b=a.createContext(null);function f(){const e=(0,o._r)(),t=(0,c.L)().docs.versionPersistence,n=(0,a.useMemo)((()=>Object.keys(e)),[e]),[r,i]=(0,a.useState)((()=>p(n)));(0,a.useEffect)((()=>{i(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:a}=e;function o(e){const t=u.read(e,n);return a[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(u.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[r,(0,a.useMemo)((()=>({savePreferredVersion:function(e,n){u.save(e,t,n),i((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=f();return a.createElement(b.Provider,{value:n},t)}function m(e){let{children:t}=e;return i.cE?a.createElement(g,null,t):a.createElement(a.Fragment,null,t)}function h(){const e=(0,a.useContext)(b);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function _(e){void 0===e&&(e=r.m);const t=(0,o.zh)(e),[n,c]=h(),{preferredVersionName:i}=n[e];return{preferredVersion:t.versions.find((e=>e.name===i))??null,savePreferredVersionName:(0,a.useCallback)((t=>{c.savePreferredVersion(e,t)}),[c,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,b:()=>i});var a=n(67294),o=n(902);const r=Symbol("EmptyContext"),c=a.createContext(r);function i(e){let{children:t,name:n,items:o}=e;const r=(0,a.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return a.createElement(c.Provider,{value:r},t)}function l(){const e=(0,a.useContext)(c);if(e===r)throw new o.i6("DocsSidebarProvider");return e}},74477:(e,t,n)=>{"use strict";n.d(t,{E:()=>i,q:()=>c});var a=n(67294),o=n(902);const r=a.createContext(null);function c(e){let{children:t,version:n}=e;return a.createElement(r.Provider,{value:n},t)}function i(){const e=(0,a.useContext)(r);if(null===e)throw new o.i6("DocsVersionProvider");return e}},72961:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>b});var a=n(67294),o=n(13102),r=n(87524),c=n(16550),i=n(902);function l(e){!function(e){const t=(0,c.k6)(),n=(0,i.zX)(e);(0,a.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var s=n(86668);const d=a.createContext(void 0);function u(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,r.i)(),n=!e&&"mobile"===t,[c,i]=(0,a.useState)(!1);l((()=>{if(c)return i(!1),!1}));const d=(0,a.useCallback)((()=>{i((e=>!e))}),[]);return(0,a.useEffect)((()=>{"desktop"===t&&i(!1)}),[t]),(0,a.useMemo)((()=>({disabled:e,shouldRender:n,toggle:d,shown:c})),[e,n,d,c])}function p(e){let{children:t}=e;const n=u();return a.createElement(d.Provider,{value:n},t)}function b(){const e=a.useContext(d);if(void 0===e)throw new i.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>i,Zo:()=>l,n2:()=>c});var a=n(67294),o=n(902);const r=a.createContext(null);function c(e){let{children:t}=e;const n=(0,a.useState)({component:null,props:null});return a.createElement(r.Provider,{value:n},t)}function i(){const e=(0,a.useContext)(r);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function l(e){let{component:t,props:n}=e;const c=(0,a.useContext)(r);if(!c)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,i]=c,l=(0,o.Ql)(n);return(0,a.useEffect)((()=>{i({component:t,props:l})}),[i,t,l]),(0,a.useEffect)((()=>()=>i({component:null,props:null})),[i]),null}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>r});var a=n(67294);const o="navigation-with-keyboard";function r(){(0,a.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>s});var a=n(67294),o=n(10412);const r={desktop:"desktop",mobile:"mobile",ssr:"ssr"},c=996;function i(){return o.Z.canUseDOM?window.innerWidth>c?r.desktop:r.mobile:r.ssr}const l=!1;function s(){const[e,t]=(0,a.useState)((()=>l?"ssr":i()));return(0,a.useEffect)((()=>{function e(){t(i())}const n=l?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},35281:(e,t,n)=>{"use strict";n.d(t,{k:()=>a});const a={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},52802:(e,t,n)=>{"use strict";n.d(t,{MN:()=>S,Wl:()=>f,_F:()=>_,cE:()=>p,jA:()=>g,xz:()=>b,hI:()=>E,lO:()=>x,vY:()=>k,oz:()=>w,s1:()=>v});var a=n(67294),o=n(16550),r=n(18790),c=n(80143),i=n(60373),l=n(74477),s=n(1116);function d(e){return Array.from(new Set(e))}var u=n(48596);const p=!!c._r;function b(e){const t=(0,l.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function f(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=f(t);if(e)return e}}}function g(){const{pathname:e}=(0,o.TH)(),t=(0,s.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const m=(e,t)=>void 0!==e&&(0,u.Mg)(e,t),h=(e,t)=>e.some((e=>_(e,t)));function _(e,t){return"link"===e.type?m(e.href,t):"category"===e.type&&(m(e.href,t)||h(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:a=!1}=e;const o=[];return function e(t){for(const r of t)if("category"===r.type&&((0,u.Mg)(r.href,n)||e(r.items))||"link"===r.type&&(0,u.Mg)(r.href,n)){return a&&"category"!==r.type||o.unshift(r),!0}return!1}(t),o}function v(){const e=(0,s.V)(),{pathname:t}=(0,o.TH)(),n=(0,c.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function x(e){const{activeVersion:t}=(0,c.Iw)(e),{preferredVersion:n}=(0,i.J)(e),o=(0,c.yW)(e);return(0,a.useMemo)((()=>d([t,n,o].filter(Boolean))),[t,n,o])}function w(e,t){const n=x(t);return(0,a.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),a=t.find((t=>t[0]===e));if(!a)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\n Available sidebar ids are:\n - ${Object.keys(t).join("\n- ")}`);return a[1]}),[e,n])}function k(e,t){const n=x(t);return(0,a.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),a=t.find((t=>t.id===e));if(!a){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`DocNavbarItem: couldn't find any doc with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${d(t.map((e=>e.id))).join("\n- ")}`)}return a}),[e,n])}function E(e){let{route:t,versionMetadata:n}=e;const a=(0,o.TH)(),c=t.routes,i=c.find((e=>(0,o.LX)(a.pathname,e)));if(!i)return null;const l=i.sidebar,s=l?n.docsSidebars[l]:void 0;return{docElement:(0,r.H)(c),sidebarName:l,sidebarItems:s}}function S(e){return e.filter((e=>"category"!==e.type||!!f(e)))}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>d,VC:()=>b});var a=n(67294),o=n(86010),r=n(35742),c=n(30226);function i(){const e=a.useContext(c._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(44996),s=n(52263);function d(e){let{title:t,description:n,keywords:o,image:c,children:i}=e;const d=function(e){const{siteConfig:t}=(0,s.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}(t),{withBaseUrl:u}=(0,l.C)(),p=c?u(c,{absolute:!0}):void 0;return a.createElement(r.Z,null,t&&a.createElement("title",null,d),t&&a.createElement("meta",{property:"og:title",content:d}),n&&a.createElement("meta",{name:"description",content:n}),n&&a.createElement("meta",{property:"og:description",content:n}),o&&a.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),p&&a.createElement("meta",{property:"og:image",content:p}),p&&a.createElement("meta",{name:"twitter:image",content:p}),i)}const u=a.createContext(void 0);function p(e){let{className:t,children:n}=e;const c=a.useContext(u),i=(0,o.Z)(c,t);return a.createElement(u.Provider,{value:i},a.createElement(r.Z,null,a.createElement("html",{className:i})),n)}function b(e){let{children:t}=e;const n=i(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const c=`plugin-id-${n.plugin.id}`;return a.createElement(p,{className:(0,o.Z)(r,c)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>c,Qc:()=>s,Ql:()=>l,i6:()=>i,zX:()=>r});var a=n(67294);const o=n(10412).Z.canUseDOM?a.useLayoutEffect:a.useEffect;function r(e){const t=(0,a.useRef)(e);return o((()=>{t.current=e}),[e]),(0,a.useCallback)((function(){return t.current(...arguments)}),[])}function c(e){const t=(0,a.useRef)();return o((()=>{t.current=e})),t.current}class i extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function l(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,a.useMemo)((()=>e),t.flat())}function s(e){return t=>{let{children:n}=t;return a.createElement(a.Fragment,null,e.reduceRight(((e,t)=>a.createElement(t,null,e)),n))}}},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>c,Ns:()=>i});var a=n(67294),o=n(723),r=n(52263);function c(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function i(){const{baseUrl:e}=(0,r.Z)().siteConfig;return(0,a.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function a(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(a)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>l,RF:()=>u});var a=n(67294),o=n(10412),r=n(72389),c=n(902);const i=a.createContext(void 0);function l(e){let{children:t}=e;const n=function(){const e=(0,a.useRef)(!0);return(0,a.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return a.createElement(i.Provider,{value:n},t)}function s(){const e=(0,a.useContext)(i);if(null==e)throw new c.i6("ScrollControllerProvider");return e}const d=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function u(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=s(),o=(0,a.useRef)(d()),r=(0,c.zX)(e);(0,a.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();r(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[r,n,...t])}function p(){const e=(0,a.useRef)(null),t=(0,r.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function a(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(a),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>a,os:()=>o});n(52263);const a="default";function o(e,t){return`docs-${e}-${t}`}},50012:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,_:()=>l});const a="localStorage";function o(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,r||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),r=!0),null}var t}let r=!1;const c={get:()=>null,set:()=>{},del:()=>{}};function i(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t}}(e);const n=o(t?.persistence);return null===n?c:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{n.setItem(e,t)}catch(a){console.error(`Docusaurus storage error, can't set ${e}=${t}`,a)}},del:()=>{try{n.removeItem(e)}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}}}}function l(e){void 0===e&&(e=a);const t=o(e);if(!t)return[];const n=[];for(let a=0;a<t.length;a+=1){const e=t.key(a);null!==e&&n.push(e)}return n}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>r});var a=n(52263),o=n(16550);function r(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:r}}=(0,a.Z)(),{pathname:c}=(0,o.TH)(),i=r===n?e:e.replace(`/${r}/`,"/"),l=c.replace(e,"");return{createUrl:function(e){let{locale:a,fullyQualified:o}=e;return`${o?t:""}${function(e){return e===n?`${i}`:`${i}${e}/`}(a)}${l}`}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>c});var a=n(67294),o=n(16550),r=n(902);function c(e){const t=(0,o.TH)(),n=(0,r.D9)(t),c=(0,r.zX)(e);(0,a.useEffect)((()=>{n&&t!==n&&c({location:t,previousLocation:n})}),[c,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var a=n(52263);function o(){return(0,a.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:a}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),r="/"===o||o===a?o:(c=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(c):function(e){return e.endsWith("/")?e.slice(0,-1):e}(c));var c;return e.replace(o,r)}},18780:function(e,t,n){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var o=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return a(o).default}})},86010:(e,t,n)=>{"use strict";function a(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=a(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}n.d(t,{Z:()=>o});const o=function(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=a(e))&&(o&&(o+=" "),o+=t);return o}},99318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>v,q_:()=>C,ob:()=>b,PP:()=>A,Ep:()=>p});var a=n(87462);function o(e){return"/"===e.charAt(0)}function r(e,t){for(var n=t,a=n+1,o=e.length;a<o;n+=1,a+=1)e[n]=e[a];e.pop()}const c=function(e,t){void 0===t&&(t="");var n,a=e&&e.split("/")||[],c=t&&t.split("/")||[],i=e&&o(e),l=t&&o(t),s=i||l;if(e&&o(e)?c=a:a.length&&(c.pop(),c=c.concat(a)),!c.length)return"/";if(c.length){var d=c[c.length-1];n="."===d||".."===d||""===d}else n=!1;for(var u=0,p=c.length;p>=0;p--){var b=c[p];"."===b?r(c,p):".."===b?(r(c,p),u++):u&&(r(c,p),u--)}if(!s)for(;u--;u)c.unshift("..");!s||""===c[0]||c[0]&&o(c[0])||c.unshift("");var f=c.join("/");return n&&"/"!==f.substr(-1)&&(f+="/"),f};var i=n(38776);function l(e){return"/"===e.charAt(0)?e:"/"+e}function s(e){return"/"===e.charAt(0)?e.substr(1):e}function d(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function u(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,a=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),a&&"#"!==a&&(o+="#"===a.charAt(0)?a:"#"+a),o}function b(e,t,n,o){var r;"string"==typeof e?(r=function(e){var t=e||"/",n="",a="",o=t.indexOf("#");-1!==o&&(a=t.substr(o),t=t.substr(0,o));var r=t.indexOf("?");return-1!==r&&(n=t.substr(r),t=t.substr(0,r)),{pathname:t,search:"?"===n?"":n,hash:"#"===a?"":a}}(e),r.state=t):(void 0===(r=(0,a.Z)({},e)).pathname&&(r.pathname=""),r.search?"?"!==r.search.charAt(0)&&(r.search="?"+r.search):r.search="",r.hash?"#"!==r.hash.charAt(0)&&(r.hash="#"+r.hash):r.hash="",void 0!==t&&void 0===r.state&&(r.state=t));try{r.pathname=decodeURI(r.pathname)}catch(i){throw i instanceof URIError?new URIError('Pathname "'+r.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):i}return n&&(r.key=n),o?r.pathname?"/"!==r.pathname.charAt(0)&&(r.pathname=c(r.pathname,o.pathname)):r.pathname=o.pathname:r.pathname||(r.pathname="/"),r}function f(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,a,o){if(null!=e){var r="function"==typeof e?e(t,n):e;"string"==typeof r?"function"==typeof a?a(r,o):o(!0):o(!1!==r)}else o(!0)},appendListener:function(e){var n=!0;function a(){n&&e.apply(void 0,arguments)}return t.push(a),function(){n=!1,t=t.filter((function(e){return e!==a}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];t.forEach((function(e){return e.apply(void 0,n)}))}}}var g=!("undefined"==typeof window||!window.document||!window.document.createElement);function m(e,t){t(window.confirm(e))}var h="popstate",_="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function v(e){void 0===e&&(e={}),g||(0,i.Z)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,r=!(-1===window.navigator.userAgent.indexOf("Trident")),c=e,s=c.forceRefresh,v=void 0!==s&&s,x=c.getUserConfirmation,w=void 0===x?m:x,k=c.keyLength,E=void 0===k?6:k,S=e.basename?u(l(e.basename)):"";function C(e){var t=e||{},n=t.key,a=t.state,o=window.location,r=o.pathname+o.search+o.hash;return S&&(r=d(r,S)),b(r,a,n)}function T(){return Math.random().toString(36).substr(2,E)}var A=f();function L(e){(0,a.Z)(z,e),z.length=n.length,A.notifyListeners(z.location,z.action)}function j(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(C(e.state))}function P(){N(C(y()))}var R=!1;function N(e){if(R)R=!1,L();else{A.confirmTransitionTo(e,"POP",w,(function(t){t?L({action:"POP",location:e}):function(e){var t=z.location,n=M.indexOf(t.key);-1===n&&(n=0);var a=M.indexOf(e.key);-1===a&&(a=0);var o=n-a;o&&(R=!0,I(o))}(e)}))}}var O=C(y()),M=[O.key];function D(e){return S+p(e)}function I(e){n.go(e)}var F=0;function q(e){1===(F+=e)&&1===e?(window.addEventListener(h,j),r&&window.addEventListener(_,P)):0===F&&(window.removeEventListener(h,j),r&&window.removeEventListener(_,P))}var B=!1;var z={length:n.length,action:"POP",location:O,createHref:D,push:function(e,t){var a="PUSH",r=b(e,t,T(),z.location);A.confirmTransitionTo(r,a,w,(function(e){if(e){var t=D(r),c=r.key,i=r.state;if(o)if(n.pushState({key:c,state:i},null,t),v)window.location.href=t;else{var l=M.indexOf(z.location.key),s=M.slice(0,l+1);s.push(r.key),M=s,L({action:a,location:r})}else window.location.href=t}}))},replace:function(e,t){var a="REPLACE",r=b(e,t,T(),z.location);A.confirmTransitionTo(r,a,w,(function(e){if(e){var t=D(r),c=r.key,i=r.state;if(o)if(n.replaceState({key:c,state:i},null,t),v)window.location.replace(t);else{var l=M.indexOf(z.location.key);-1!==l&&(M[l]=r.key),L({action:a,location:r})}else window.location.replace(t)}}))},go:I,goBack:function(){I(-1)},goForward:function(){I(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return B||(q(1),B=!0),function(){return B&&(B=!1,q(-1)),t()}},listen:function(e){var t=A.appendListener(e);return q(1),function(){q(-1),t()}}};return z}var x="hashchange",w={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+s(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:s,decodePath:l},slash:{encodePath:l,decodePath:l}};function k(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function S(e){window.location.replace(k(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),g||(0,i.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,r=void 0===o?m:o,c=n.hashType,s=void 0===c?"slash":c,h=e.basename?u(l(e.basename)):"",_=w[s],y=_.encodePath,v=_.decodePath;function C(){var e=v(E());return h&&(e=d(e,h)),b(e)}var T=f();function A(e){(0,a.Z)(B,e),B.length=t.length,T.notifyListeners(B.location,B.action)}var L=!1,j=null;function P(){var e,t,n=E(),a=y(n);if(n!==a)S(a);else{var o=C(),c=B.location;if(!L&&(t=o,(e=c).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(j===p(o))return;j=null,function(e){if(L)L=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,r,(function(n){n?A({action:t,location:e}):function(e){var t=B.location,n=M.lastIndexOf(p(t));-1===n&&(n=0);var a=M.lastIndexOf(p(e));-1===a&&(a=0);var o=n-a;o&&(L=!0,D(o))}(e)}))}}(o)}}var R=E(),N=y(R);R!==N&&S(N);var O=C(),M=[p(O)];function D(e){t.go(e)}var I=0;function F(e){1===(I+=e)&&1===e?window.addEventListener(x,P):0===I&&window.removeEventListener(x,P)}var q=!1;var B={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=k(window.location.href)),n+"#"+y(h+p(e))},push:function(e,t){var n="PUSH",a=b(e,void 0,void 0,B.location);T.confirmTransitionTo(a,n,r,(function(e){if(e){var t=p(a),o=y(h+t);if(E()!==o){j=t,function(e){window.location.hash=e}(o);var r=M.lastIndexOf(p(B.location)),c=M.slice(0,r+1);c.push(t),M=c,A({action:n,location:a})}else A()}}))},replace:function(e,t){var n="REPLACE",a=b(e,void 0,void 0,B.location);T.confirmTransitionTo(a,n,r,(function(e){if(e){var t=p(a),o=y(h+t);E()!==o&&(j=t,S(o));var r=M.indexOf(p(B.location));-1!==r&&(M[r]=t),A({action:n,location:a})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return q||(F(1),q=!0),function(){return q&&(q=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return B}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,r=void 0===o?["/"]:o,c=t.initialIndex,i=void 0===c?0:c,l=t.keyLength,s=void 0===l?6:l,d=f();function u(e){(0,a.Z)(v,e),v.length=v.entries.length,d.notifyListeners(v.location,v.action)}function g(){return Math.random().toString(36).substr(2,s)}var m=T(i,0,r.length-1),h=r.map((function(e){return b(e,void 0,"string"==typeof e?g():e.key||g())})),_=p;function y(e){var t=T(v.index+e,0,v.entries.length-1),a=v.entries[t];d.confirmTransitionTo(a,"POP",n,(function(e){e?u({action:"POP",location:a,index:t}):u()}))}var v={length:h.length,action:"POP",location:h[m],index:m,entries:h,createHref:_,push:function(e,t){var a="PUSH",o=b(e,t,g(),v.location);d.confirmTransitionTo(o,a,n,(function(e){if(e){var t=v.index+1,n=v.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),u({action:a,location:o,index:t,entries:n})}}))},replace:function(e,t){var a="REPLACE",o=b(e,t,g(),v.location);d.confirmTransitionTo(o,a,n,(function(e){e&&(v.entries[v.index]=o,u({action:a,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=v.index+e;return t>=0&&t<v.entries.length},block:function(e){return void 0===e&&(e=!1),d.setPrompt(e)},listen:function(e){return d.appendListener(e)}};return v}},8679:(e,t,n)=>{"use strict";var a=n(59864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},r={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},c={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},i={};function l(e){return a.isMemo(e)?c:i[e.$$typeof]||o}i[a.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},i[a.Memo]=c;var s=Object.defineProperty,d=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,b=Object.getPrototypeOf,f=Object.prototype;e.exports=function e(t,n,a){if("string"!=typeof n){if(f){var o=b(n);o&&o!==f&&e(t,o,a)}var c=d(n);u&&(c=c.concat(u(n)));for(var i=l(t),g=l(n),m=0;m<c.length;++m){var h=c[m];if(!(r[h]||a&&a[h]||g&&g[h]||i&&i[h])){var _=p(n,h);try{s(t,h,_)}catch(y){}}}}return t}},41143:e=>{"use strict";e.exports=function(e,t,n,a,o,r,c,i){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[n,a,o,r,c,i],d=0;(l=new Error(t.replace(/%s/g,(function(){return s[d++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},32497:(e,t,n)=>{"use strict";n.r(t)},52295:(e,t,n)=>{"use strict";n.r(t)},74865:function(e,t,n){var a,o;a=function(){var e,t,n={version:"0.2.0"},a=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function r(e){return 100*(-1+e)}function c(e,t,n){var o;return(o="translate3d"===a.positionUsing?{transform:"translate3d("+r(e)+"%,0,0)"}:"translate"===a.positionUsing?{transform:"translate("+r(e)+"%,0)"}:{"margin-left":r(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(a[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,a.minimum,1),n.status=1===e?null:e;var r=n.render(!t),s=r.querySelector(a.barSelector),d=a.speed,u=a.easing;return r.offsetWidth,i((function(t){""===a.positionUsing&&(a.positionUsing=n.getPositioningCSS()),l(s,c(e,d,u)),1===e?(l(r,{transition:"none",opacity:1}),r.offsetWidth,setTimeout((function(){l(r,{transition:"all "+d+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),d)}),d)):setTimeout(t,d)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),a.trickleSpeed)};return a.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*a.trickleRate)},e=0,t=0,n.promise=function(a){return a&&"resolved"!==a.state()?(0===t&&n.start(),e++,t++,a.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");d(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=a.template;var o,c=t.querySelector(a.barSelector),i=e?"-100":r(n.status||0),s=document.querySelector(a.parent);return l(c,{transition:"all 0 linear",transform:"translate3d("+i+"%,0,0)"}),a.showSpinner||(o=t.querySelector(a.spinnerSelector))&&b(o),s!=document.body&&d(s,"nprogress-custom-parent"),s.appendChild(t),t},n.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(a.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&b(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var i=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function a(t){var n=document.body.style;if(t in n)return t;for(var a,o=e.length,r=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((a=e[o]+r)in n)return a;return t}function o(e){return e=n(e),t[e]||(t[e]=a(e))}function r(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,a,o=arguments;if(2==o.length)for(n in t)void 0!==(a=t[n])&&t.hasOwnProperty(n)&&r(e,n,a);else r(e,o[1],o[2])}}();function s(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function d(e,t){var n=p(e),a=n+t;s(n,t)||(e.className=a.substring(1))}function u(e,t){var n,a=p(e);s(e,t)&&(n=a.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function b(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof a?a.call(t,n,t,e):a)||(e.exports=o)},27418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach((function(e){a[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},a)).join("")}catch(o){return!1}}()?Object.assign:function(e,o){for(var r,c,i=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),l=1;l<arguments.length;l++){for(var s in r=Object(arguments[l]))n.call(r,s)&&(i[s]=r[s]);if(t){c=t(r);for(var d=0;d<c.length;d++)a.call(r,c[d])&&(i[c[d]]=r[c[d]])}}return i}},87410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var a=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},a={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,r;switch(n=n||{},a.util.type(t)){case"Object":if(r=a.util.objId(t),n[r])return n[r];for(var c in o={},n[r]=o,t)t.hasOwnProperty(c)&&(o[c]=e(t[c],n));return o;case"Array":return r=a.util.objId(t),n[r]?n[r]:(o=[],n[r]=o,t.forEach((function(t,a){o[a]=e(t,n)})),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var a="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(a))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=a.util.clone(a.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var r=(o=o||a.languages)[e],c={};for(var i in r)if(r.hasOwnProperty(i)){if(i==t)for(var l in n)n.hasOwnProperty(l)&&(c[l]=n[l]);n.hasOwnProperty(i)||(c[i]=r[i])}var s=o[e];return o[e]=c,a.languages.DFS(a.languages,(function(t,n){n===s&&t!=e&&(this[t]=c)})),c},DFS:function e(t,n,o,r){r=r||{};var c=a.util.objId;for(var i in t)if(t.hasOwnProperty(i)){n.call(t,i,t[i],o||i);var l=t[i],s=a.util.type(l);"Object"!==s||r[c(l)]?"Array"!==s||r[c(l)]||(r[c(l)]=!0,e(l,n,i,r)):(r[c(l)]=!0,e(l,n,null,r))}}},plugins:{},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};return a.hooks.run("before-tokenize",r),r.tokens=a.tokenize(r.code,r.grammar),a.hooks.run("after-tokenize",r),o.stringify(a.util.encode(r.tokens),r.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var a in n)t[a]=n[a];delete t.rest}var o=new i;return l(o,o.head,e),c(e,o,t,o.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=a.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=a.hooks.all[e];if(n&&n.length)for(var o,r=0;o=n[r++];)o(t)}},Token:o};function o(e,t,n,a){this.type=e,this.content=t,this.alias=n,this.length=0|(a||"").length}function r(e,t,n,a){e.lastIndex=t;var o=e.exec(n);if(o&&a&&o[1]){var r=o[1].length;o.index+=r,o[0]=o[0].slice(r)}return o}function c(e,t,n,i,d,u){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var b=n[p];b=Array.isArray(b)?b:[b];for(var f=0;f<b.length;++f){if(u&&u.cause==p+","+f)return;var g=b[f],m=g.inside,h=!!g.lookbehind,_=!!g.greedy,y=g.alias;if(_&&!g.pattern.global){var v=g.pattern.toString().match(/[imsuy]*$/)[0];g.pattern=RegExp(g.pattern.source,v+"g")}for(var x=g.pattern||g,w=i.next,k=d;w!==t.tail&&!(u&&k>=u.reach);k+=w.value.length,w=w.next){var E=w.value;if(t.length>e.length)return;if(!(E instanceof o)){var S,C=1;if(_){if(!(S=r(x,k,e,h))||S.index>=e.length)break;var T=S.index,A=S.index+S[0].length,L=k;for(L+=w.value.length;T>=L;)L+=(w=w.next).value.length;if(k=L-=w.value.length,w.value instanceof o)continue;for(var j=w;j!==t.tail&&(L<A||"string"==typeof j.value);j=j.next)C++,L+=j.value.length;C--,E=e.slice(k,L),S.index-=k}else if(!(S=r(x,0,E,h)))continue;T=S.index;var P=S[0],R=E.slice(0,T),N=E.slice(T+P.length),O=k+E.length;u&&O>u.reach&&(u.reach=O);var M=w.prev;if(R&&(M=l(t,M,R),k+=R.length),s(t,M,C),w=l(t,M,new o(p,m?a.tokenize(P,m):P,y,P)),N&&l(t,w,N),C>1){var D={cause:p+","+f,reach:O};c(e,t,n,w.prev,k,D),u&&D.reach>u.reach&&(u.reach=D.reach)}}}}}}function i(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var a=t.next,o={value:n,prev:t,next:a};return t.next=o,a.prev=o,e.length++,o}function s(e,t,n){for(var a=t.next,o=0;o<n&&a!==e.tail;o++)a=a.next;t.next=a,a.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var r={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},c=t.alias;c&&(Array.isArray(c)?Array.prototype.push.apply(r.classes,c):r.classes.push(c)),a.hooks.run("wrap",r);var i="";for(var l in r.attributes)i+=" "+l+'="'+(r.attributes[l]||"").replace(/"/g,""")+'"';return"<"+r.tag+' class="'+r.classes.join(" ")+'"'+i+">"+r.content+"</"+r.tag+">"},a}(),o=a;a.default=a,o.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var a={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};a["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var r={};r[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:a},o.languages.insertBefore("markup","cdata",r)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},a={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:a},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:a},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:a.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:a.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],r=a.variable[1].inside,c=0;c<o.length;c++)r[o[c]]=e.languages.bash[o[c]];e.languages.shell=e.languages.bash}(o),o.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var a={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:a,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:a,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,a="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),r=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function c(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return a})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return a}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return a})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+r+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:c(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:c(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:c(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:c(r),lookbehind:!0,greedy:!0},number:{pattern:c(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var a=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return a})),r=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+r+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+r+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(a),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+r+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(a),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,a=t.length;n<a;n++){var o=t[n];if("code"===o.type){var r=o.content[1],c=o.content[3];if(r&&c&&"code-language"===r.type&&"code-block"===c.type&&"string"==typeof r.content){var i=r.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),l="language-"+(i=(/[a-z][\w-]*/i.exec(i)||[""])[0].toLowerCase());c.alias?"string"==typeof c.alias?c.alias=[c.alias,l]:c.alias.push(l):c.alias=[l]}}else e(o.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",a=0,o=t.classes.length;a<o;a++){var r=t.classes[a],s=/language-(.+)/.exec(r);if(s){n=s[1];break}}var d,u=e.languages[n];if(u)t.content=e.highlight((d=t.content,d.replace(c,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),l(n);var a=i[t];return a||e}))),u,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var c=RegExp(e.languages.markup.tag.pattern.source,"gi"),i={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var a=t[n++];if("keyword"===a.type&&"mutation"===a.content){var o=[];if(u(["definition-mutation","punctuation"])&&"("===d(1).content){n+=2;var r=p(/^\($/,/^\)$/);if(-1===r)continue;for(;n<r;n++){var c=d(0);"variable"===c.type&&(b(c,"variable-input"),o.push(c.content))}n=r+1}if(u(["punctuation","property-query"])&&"{"===d(0).content&&(n++,b(d(0),"property-mutation"),o.length>0)){var i=p(/^\{$/,/^\}$/);if(-1===i)continue;for(var l=n;l<i;l++){var s=t[l];"variable"===s.type&&o.indexOf(s.content)>=0&&b(s,"variable-input")}}}}function d(e){return t[n+e]}function u(e,t){t=t||0;for(var n=0;n<e.length;n++){var a=d(n+t);if(!a||a.type!==e[n])return!1}return!0}function p(e,a){for(var o=1,r=n;r<t.length;r++){var c=t[r],i=c.content;if("punctuation"===c.type&&"string"==typeof i)if(e.test(i))o++;else if(a.test(i)&&0===--o)return r}return-1}function b(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),o.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,a=t.inside.interpolation,o=a.inside["interpolation-punctuation"],r=a.pattern.source;function c(t,a){if(e.languages[t])return{pattern:RegExp("((?:"+a+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function i(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function l(t,n,a){var o={code:t,grammar:n,language:a};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function s(t){var n={};n["interpolation-punctuation"]=o;var r=e.tokenize(t,n);if(3===r.length){var c=[1,1];c.push.apply(c,l(r[1],e.languages.javascript,"javascript")),r.splice.apply(r,c)}return new e.Token("interpolation",r,a.alias,t)}function d(t,n,a){var o=e.tokenize(t,{interpolation:{pattern:RegExp(r),lookbehind:!0}}),c=0,d={},u=l(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=i(c++,a)););return d[n]=o,n})).join(""),n,a),p=Object.keys(d);return c=0,function e(t){for(var n=0;n<t.length;n++){if(c>=p.length)return;var a=t[n];if("string"==typeof a||"string"==typeof a.content){var o=p[c],r="string"==typeof a?a:a.content,i=r.indexOf(o);if(-1!==i){++c;var l=r.substring(0,i),u=s(d[o]),b=r.substring(i+o.length),f=[];if(l&&f.push(l),f.push(u),b){var g=[b];e(g),f.push.apply(f,g)}"string"==typeof a?(t.splice.apply(t,[n,1].concat(f)),n+=f.length-1):a.content=f}}else{var m=a.content;Array.isArray(m)?e(m):e([m])}}}(u),new e.Token(a,u,"language-"+a,t)}e.languages.javascript["template-string"]=[c("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),c("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),c("svg",/\bsvg/.source),c("markdown",/\b(?:markdown|md)/.source),c("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),c("sql",/\bsql/.source),t].filter(Boolean);var u={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in u&&function t(n){for(var a=0,o=n.length;a<o;a++){var r=n[a];if("string"!=typeof r){var c=r.content;if(Array.isArray(c))if("template-string"===r.type){var i=c[1];if(3===c.length&&"string"!=typeof i&&"embedded-code"===i.type){var l=p(i),s=i.alias,u=Array.isArray(s)?s[0]:s,b=e.languages[u];if(!b)continue;c[1]=d(l,b,u)}}else t(c);else"string"!=typeof c&&t([c])}}}(t.tokens)}))}(o),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],a=0;a<n.length;a++){var o=n[a],r=e.languages.javascript[o];"RegExp"===e.util.type(r)&&(r=e.languages.javascript[o]={pattern:r});var c=r.inside||{};r.inside=c,c["maybe-class-name"]=/^[A-Z][\s\S]*/}}(o),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,a=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function r(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return a})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}o=r(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=r(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:r(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:r(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var c=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(c).join(""):""},i=function(t){for(var n=[],a=0;a<t.length;a++){var o=t[a],r=!1;if("string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===c(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:c(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:r=!0),(r||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var l=c(o);a<t.length-1&&("string"==typeof t[a+1]||"plain-text"===t[a+1].type)&&(l+=c(t[a+1]),t.splice(a+1,1)),a>0&&("string"==typeof t[a-1]||"plain-text"===t[a-1].type)&&(l=c(t[a-1])+l,t.splice(a-1,1),a--),t[a]=new e.Token("plain-text",l,null,l)}o.content&&"string"!=typeof o.content&&i(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var a=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+a+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,a,o,r){if(n.language===a){var c=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof r&&!r(e))return e;for(var o,i=c.length;-1!==n.code.indexOf(o=t(a,i));)++i;return c[i]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,a){if(n.language===a&&n.tokenStack){n.grammar=e.languages[a];var o=0,r=Object.keys(n.tokenStack);!function c(i){for(var l=0;l<i.length&&!(o>=r.length);l++){var s=i[l];if("string"==typeof s||s.content&&"string"==typeof s.content){var d=r[o],u=n.tokenStack[d],p="string"==typeof s?s:s.content,b=t(a,d),f=p.indexOf(b);if(f>-1){++o;var g=p.substring(0,f),m=new e.Token(a,e.tokenize(u,n.grammar),"language-"+a,u),h=p.substring(f+b.length),_=[];g&&_.push.apply(_,c([g])),_.push(m),h&&_.push.apply(_,c([h])),"string"==typeof s?i.splice.apply(i,[l,1].concat(_)):s.content=_}}else s.content&&c(s.content)}return i}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},a={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};a.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:a}},a.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:a}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:a}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:a}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:a}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:a.interpolation}},rest:a}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:a.interpolation,comment:a.comment,punctuation:/[{},]/}},func:a.func,string:a.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:a.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const r=o},29901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const a=n(29901),o=n(39642),r=new Set;function c(e){void 0===e?e=Object.keys(a.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...r,...Object.keys(Prism.languages)];o(a,e,t).load((e=>{if(!(e in a.languages))return void(c.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16500).resolve(t)],delete Prism.languages[e],n(16500)(t),r.add(e)}))}c.silent=!1,e.exports=c},6726:(e,t,n)=>{var a={"./":2885};function o(e){var t=r(e);return n(t)}function r(e){if(!n.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}o.keys=function(){return Object.keys(a)},o.resolve=r,e.exports=o,o.id=6726},16500:(e,t,n)=>{var a={"./":2885};function o(e){var t=r(e);return n(t)}function r(e){if(!n.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}o.keys=function(){return Object.keys(a)},o.resolve=r,e.exports=o,o.id=16500},39642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,a=e.length;n<a;n++)t[e[n]]=!0;return t}function a(e){var n={},a=[];function o(a,r){if(!(a in n)){r.push(a);var c=r.indexOf(a);if(c<r.length-1)throw new Error("Circular dependency: "+r.slice(c).join(" -> "));var i={},l=e[a];if(l){function s(t){if(!(t in e))throw new Error(a+" depends on an unknown component "+t);if(!(t in i))for(var c in o(t,r),i[t]=!0,n[t])i[c]=!0}t(l.require,s),t(l.optional,s),t(l.modify,s)}n[a]=i,r.pop()}}return function(e){var t=n[e];return t||(o(e,a),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(r,c,i){var l=function(e){var t={};for(var n in e){var a=e[n];for(var o in a)if("meta"!=o){var r=a[o];t[o]="string"==typeof r?{title:r}:r}}return t}(r),s=function(e){var n;return function(a){if(a in e)return a;if(!n)for(var o in n={},e){var r=e[o];t(r&&r.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[a]||a}}(l);c=c.map(s),i=(i||[]).map(s);var d=n(c),u=n(i);c.forEach((function e(n){var a=l[n];t(a&&a.require,(function(t){t in u||(d[t]=!0,e(t))}))}));for(var p,b=a(l),f=d;o(f);){for(var g in p={},f){var m=l[g];t(m&&m.modify,(function(e){e in u&&(p[e]=!0)}))}for(var h in u)if(!(h in d))for(var _ in b(h))if(_ in d){p[h]=!0;break}for(var y in f=p)d[y]=!0}var v={getIds:function(){var e=[];return v.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,a,o){var r=o?o.series:void 0,c=o?o.parallel:e,i={},l={};function s(e){if(e in i)return i[e];l[e]=!0;var o,d=[];for(var u in t(e))u in n&&d.push(u);if(0===d.length)o=a(e);else{var p=c(d.map((function(e){var t=s(e);return delete l[e],t})));r?o=r(p,(function(){return a(e)})):a(e)}return i[e]=o}for(var d in n)s(d);var u=[];for(var p in l)u.push(i[p]);return c(u)}(b,d,t,n)}};return v}}();e.exports=t},92703:(e,t,n)=>{"use strict";var a=n(50414);function o(){}function r(){}r.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,r,c){if(c!==a){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:o};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var a=n(67294),o=n(27418),r=n(63840);function c(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!a)throw Error(c(227));var i=new Set,l={};function s(e,t){d(e,t),d(e+"Capture",t)}function d(e,t){for(l[e]=t,e=0;e<t.length;e++)i.add(t[e])}var u=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,b=Object.prototype.hasOwnProperty,f={},g={};function m(e,t,n,a,o,r,c){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=a,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=r,this.removeEmptyString=c}var h={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){h[e]=new m(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];h[t]=new m(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){h[e]=new m(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){h[e]=new m(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){h[e]=new m(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){h[e]=new m(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){h[e]=new m(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){h[e]=new m(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){h[e]=new m(e,5,!1,e.toLowerCase(),null,!1,!1)}));var _=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function v(e,t,n,a){var o=h.hasOwnProperty(t)?h[t]:null;(null!==o?0===o.type:!a&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,a){if(null==t||function(e,t,n,a){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!a&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,a))return!0;if(a)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,a)&&(n=null),a||null===o?function(e){return!!b.call(g,e)||!b.call(f,e)&&(p.test(e)?g[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,a=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,a?e.setAttributeNS(a,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(_,y);h[t]=new m(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(_,y);h[t]=new m(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(_,y);h[t]=new m(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){h[e]=new m(e,1,!1,e.toLowerCase(),null,!1,!1)})),h.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){h[e]=new m(e,1,!1,e.toLowerCase(),null,!0,!0)}));var x=a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=60103,k=60106,E=60107,S=60108,C=60114,T=60109,A=60110,L=60112,j=60113,P=60120,R=60115,N=60116,O=60121,M=60128,D=60129,I=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var q=Symbol.for;w=q("react.element"),k=q("react.portal"),E=q("react.fragment"),S=q("react.strict_mode"),C=q("react.profiler"),T=q("react.provider"),A=q("react.context"),L=q("react.forward_ref"),j=q("react.suspense"),P=q("react.suspense_list"),R=q("react.memo"),N=q("react.lazy"),O=q("react.block"),q("react.scope"),M=q("react.opaque.id"),D=q("react.debug_trace_mode"),I=q("react.offscreen"),F=q("react.legacy_hidden")}var B,z="function"==typeof Symbol&&Symbol.iterator;function U(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=z&&e[z]||e["@@iterator"])?e:null}function $(e){if(void 0===B)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);B=t&&t[1]||""}return"\n"+B+e}var H=!1;function G(e,t){if(!e||H)return"";H=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(l){var a=l}Reflect.construct(e,[],t)}else{try{t.call()}catch(l){a=l}e.call(t.prototype)}else{try{throw Error()}catch(l){a=l}e()}}catch(l){if(l&&a&&"string"==typeof l.stack){for(var o=l.stack.split("\n"),r=a.stack.split("\n"),c=o.length-1,i=r.length-1;1<=c&&0<=i&&o[c]!==r[i];)i--;for(;1<=c&&0<=i;c--,i--)if(o[c]!==r[i]){if(1!==c||1!==i)do{if(c--,0>--i||o[c]!==r[i])return"\n"+o[c].replace(" at new "," at ")}while(1<=c&&0<=i);break}}}finally{H=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?$(e):""}function Z(e){switch(e.tag){case 5:return $(e.type);case 16:return $("Lazy");case 13:return $("Suspense");case 19:return $("SuspenseList");case 0:case 2:case 15:return e=G(e.type,!1);case 11:return e=G(e.type.render,!1);case 22:return e=G(e.type._render,!1);case 1:return e=G(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case E:return"Fragment";case k:return"Portal";case C:return"Profiler";case S:return"StrictMode";case j:return"Suspense";case P:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case R:return V(e.type);case O:return V(e._render);case N:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function W(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Q(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Y(e){e._valueTracker||(e._valueTracker=function(e){var t=Q(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),a=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,r=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){a=""+e,r.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return a},setValue:function(e){a=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function K(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=Q(e)?e.checked?"true":"false":e.value),(e=a)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,a=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:a,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=W(t.value),a=t.type;if(null!=n)"number"===a?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===a||"reset"===a)return void e.removeAttribute("value");t.hasOwnProperty("value")?oe(e,t.type,n):t.hasOwnProperty("defaultValue")&&oe(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function ae(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var a=t.type;if(!("submit"!==a&&"reset"!==a||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function oe(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function re(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return a.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ce(e,t,n,a){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&a&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(a&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function ie(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(c(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function le(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(c(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(c(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function se(e,t){var n=W(t.value),a=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=a&&(e.defaultValue=""+a)}function de(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var ue={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function be(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var fe,ge,me=(ge=function(e,t){if(e.namespaceURI!==ue.svg||"innerHTML"in e)e.innerHTML=t;else{for((fe=fe||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=fe.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,a){MSApp.execUnsafeLocalFunction((function(){return ge(e,t)}))}:ge);function he(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var _e={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function ve(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||_e.hasOwnProperty(e)&&_e[e]?(""+t).trim():t+"px"}function xe(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var a=0===n.indexOf("--"),o=ve(n,t[n],a);"float"===n&&(n="cssFloat"),a?e.setProperty(n,o):e[n]=o}}Object.keys(_e).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_e[t]=_e[e]}))}));var we=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ke(e,t){if(t){if(we[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(c(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(c(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(c(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(c(62))}}function Ee(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Se(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Ae=null;function Le(e){if(e=no(e)){if("function"!=typeof Ce)throw Error(c(280));var t=e.stateNode;t&&(t=oo(t),Ce(e.stateNode,e.type,t))}}function je(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function Pe(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Re(e,t){return e(t)}function Ne(e,t,n,a,o){return e(t,n,a,o)}function Oe(){}var Me=Re,De=!1,Ie=!1;function Fe(){null===Te&&null===Ae||(Oe(),Pe())}function qe(e,t){var n=e.stateNode;if(null===n)return null;var a=oo(n);if(null===a)return null;n=a[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(a=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!a;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(c(231,t,typeof n));return n}var Be=!1;if(u)try{var ze={};Object.defineProperty(ze,"passive",{get:function(){Be=!0}}),window.addEventListener("test",ze,ze),window.removeEventListener("test",ze,ze)}catch(ge){Be=!1}function Ue(e,t,n,a,o,r,c,i,l){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(d){this.onError(d)}}var $e=!1,He=null,Ge=!1,Ze=null,Ve={onError:function(e){$e=!0,He=e}};function We(e,t,n,a,o,r,c,i,l){$e=!1,He=null,Ue.apply(Ve,arguments)}function Qe(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ye(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ke(e){if(Qe(e)!==e)throw Error(c(188))}function Xe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Qe(e)))throw Error(c(188));return t!==e?null:e}for(var n=e,a=t;;){var o=n.return;if(null===o)break;var r=o.alternate;if(null===r){if(null!==(a=o.return)){n=a;continue}break}if(o.child===r.child){for(r=o.child;r;){if(r===n)return Ke(o),e;if(r===a)return Ke(o),t;r=r.sibling}throw Error(c(188))}if(n.return!==a.return)n=o,a=r;else{for(var i=!1,l=o.child;l;){if(l===n){i=!0,n=o,a=r;break}if(l===a){i=!0,a=o,n=r;break}l=l.sibling}if(!i){for(l=r.child;l;){if(l===n){i=!0,n=r,a=o;break}if(l===a){i=!0,a=r,n=o;break}l=l.sibling}if(!i)throw Error(c(189))}}if(n.alternate!==a)throw Error(c(190))}if(3!==n.tag)throw Error(c(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,at,ot=!1,rt=[],ct=null,it=null,lt=null,st=new Map,dt=new Map,ut=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function bt(e,t,n,a,o){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:o,targetContainers:[a]}}function ft(e,t){switch(e){case"focusin":case"focusout":ct=null;break;case"dragenter":case"dragleave":it=null;break;case"mouseover":case"mouseout":lt=null;break;case"pointerover":case"pointerout":st.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":dt.delete(t.pointerId)}}function gt(e,t,n,a,o,r){return null===e||e.nativeEvent!==r?(e=bt(t,n,a,o,r),null!==t&&(null!==(t=no(t))&&tt(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function mt(e){var t=to(e.target);if(null!==t){var n=Qe(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ye(n)))return e.blockedOn=t,void at(e.lanePriority,(function(){r.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function ht(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=no(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function _t(e,t,n){ht(e)&&n.delete(t)}function yt(){for(ot=!1;0<rt.length;){var e=rt[0];if(null!==e.blockedOn){null!==(e=no(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&rt.shift()}null!==ct&&ht(ct)&&(ct=null),null!==it&&ht(it)&&(it=null),null!==lt&&ht(lt)&&(lt=null),st.forEach(_t),dt.forEach(_t)}function vt(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,yt)))}function xt(e){function t(t){return vt(t,e)}if(0<rt.length){vt(rt[0],e);for(var n=1;n<rt.length;n++){var a=rt[n];a.blockedOn===e&&(a.blockedOn=null)}}for(null!==ct&&vt(ct,e),null!==it&&vt(it,e),null!==lt&&vt(lt,e),st.forEach(t),dt.forEach(t),n=0;n<ut.length;n++)(a=ut[n]).blockedOn===e&&(a.blockedOn=null);for(;0<ut.length&&null===(n=ut[0]).blockedOn;)mt(n),null===n.blockedOn&&ut.shift()}function wt(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var kt={animationend:wt("Animation","AnimationEnd"),animationiteration:wt("Animation","AnimationIteration"),animationstart:wt("Animation","AnimationStart"),transitionend:wt("Transition","TransitionEnd")},Et={},St={};function Ct(e){if(Et[e])return Et[e];if(!kt[e])return e;var t,n=kt[e];for(t in n)if(n.hasOwnProperty(t)&&t in St)return Et[e]=n[t];return e}u&&(St=document.createElement("div").style,"AnimationEvent"in window||(delete kt.animationend.animation,delete kt.animationiteration.animation,delete kt.animationstart.animation),"TransitionEvent"in window||delete kt.transitionend.transition);var Tt=Ct("animationend"),At=Ct("animationiteration"),Lt=Ct("animationstart"),jt=Ct("transitionend"),Pt=new Map,Rt=new Map,Nt=["abort","abort",Tt,"animationEnd",At,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",jt,"transitionEnd","waiting","waiting"];function Ot(e,t){for(var n=0;n<e.length;n+=2){var a=e[n],o=e[n+1];o="on"+(o[0].toUpperCase()+o.slice(1)),Rt.set(a,t),Pt.set(a,o),s(o,[a])}}(0,r.unstable_now)();var Mt=8;function Dt(e){if(0!=(1&e))return Mt=15,1;if(0!=(2&e))return Mt=14,2;if(0!=(4&e))return Mt=13,4;var t=24&e;return 0!==t?(Mt=12,t):0!=(32&e)?(Mt=11,32):0!==(t=192&e)?(Mt=10,t):0!=(256&e)?(Mt=9,256):0!==(t=3584&e)?(Mt=8,t):0!=(4096&e)?(Mt=7,4096):0!==(t=4186112&e)?(Mt=6,t):0!==(t=62914560&e)?(Mt=5,t):67108864&e?(Mt=4,67108864):0!=(134217728&e)?(Mt=3,134217728):0!==(t=805306368&e)?(Mt=2,t):0!=(1073741824&e)?(Mt=1,1073741824):(Mt=8,e)}function It(e,t){var n=e.pendingLanes;if(0===n)return Mt=0;var a=0,o=0,r=e.expiredLanes,c=e.suspendedLanes,i=e.pingedLanes;if(0!==r)a=r,o=Mt=15;else if(0!==(r=134217727&n)){var l=r&~c;0!==l?(a=Dt(l),o=Mt):0!==(i&=r)&&(a=Dt(i),o=Mt)}else 0!==(r=n&~c)?(a=Dt(r),o=Mt):0!==i&&(a=Dt(i),o=Mt);if(0===a)return 0;if(a=n&((0>(a=31-$t(a))?0:1<<a)<<1)-1,0!==t&&t!==a&&0==(t&c)){if(Dt(t),o<=Mt)return t;Mt=o}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=a;0<t;)o=1<<(n=31-$t(t)),a|=e[n],t&=~o;return a}function Ft(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function qt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Bt(24&~t))?qt(10,t):e;case 10:return 0===(e=Bt(192&~t))?qt(8,t):e;case 8:return 0===(e=Bt(3584&~t))&&(0===(e=Bt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=Bt(805306368&~t))&&(t=268435456),t}throw Error(c(358,e))}function Bt(e){return e&-e}function zt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ut(e,t,n){e.pendingLanes|=t;var a=t-1;e.suspendedLanes&=a,e.pingedLanes&=a,(e=e.eventTimes)[t=31-$t(t)]=n}var $t=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Ht(e)/Gt|0)|0},Ht=Math.log,Gt=Math.LN2;var Zt=r.unstable_UserBlockingPriority,Vt=r.unstable_runWithPriority,Wt=!0;function Qt(e,t,n,a){De||Oe();var o=Kt,r=De;De=!0;try{Ne(o,e,t,n,a)}finally{(De=r)||Fe()}}function Yt(e,t,n,a){Vt(Zt,Kt.bind(null,e,t,n,a))}function Kt(e,t,n,a){var o;if(Wt)if((o=0==(4&t))&&0<rt.length&&-1<pt.indexOf(e))e=bt(null,e,t,n,a),rt.push(e);else{var r=Xt(e,t,n,a);if(null===r)o&&ft(e,a);else{if(o){if(-1<pt.indexOf(e))return e=bt(r,e,t,n,a),void rt.push(e);if(function(e,t,n,a,o){switch(t){case"focusin":return ct=gt(ct,e,t,n,a,o),!0;case"dragenter":return it=gt(it,e,t,n,a,o),!0;case"mouseover":return lt=gt(lt,e,t,n,a,o),!0;case"pointerover":var r=o.pointerId;return st.set(r,gt(st.get(r)||null,e,t,n,a,o)),!0;case"gotpointercapture":return r=o.pointerId,dt.set(r,gt(dt.get(r)||null,e,t,n,a,o)),!0}return!1}(r,e,t,n,a))return;ft(e,a)}Oa(e,t,a,null,n)}}}function Xt(e,t,n,a){var o=Se(a);if(null!==(o=to(o))){var r=Qe(o);if(null===r)o=null;else{var c=r.tag;if(13===c){if(null!==(o=Ye(r)))return o;o=null}else if(3===c){if(r.stateNode.hydrate)return 3===r.tag?r.stateNode.containerInfo:null;o=null}else r!==o&&(o=null)}}return Oa(e,t,a,o,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,a=n.length,o="value"in Jt?Jt.value:Jt.textContent,r=o.length;for(e=0;e<a&&n[e]===o[e];e++);var c=a-e;for(t=1;t<=c&&n[a-t]===o[r-t];t++);return tn=o.slice(e,1<t?1-t:void 0)}function an(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function rn(){return!1}function cn(e){function t(t,n,a,o,r){for(var c in this._reactName=t,this._targetInst=a,this.type=n,this.nativeEvent=o,this.target=r,this.currentTarget=null,e)e.hasOwnProperty(c)&&(t=e[c],this[c]=t?t(o):o[c]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?on:rn,this.isPropagationStopped=rn,this}return o(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var ln,sn,dn,un={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=cn(un),bn=o({},un,{view:0,detail:0}),fn=cn(bn),gn=o({},bn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==dn&&(dn&&"mousemove"===e.type?(ln=e.screenX-dn.screenX,sn=e.screenY-dn.screenY):sn=ln=0,dn=e),ln)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),mn=cn(gn),hn=cn(o({},gn,{dataTransfer:0})),_n=cn(o({},bn,{relatedTarget:0})),yn=cn(o({},un,{animationName:0,elapsedTime:0,pseudoElement:0})),vn=o({},un,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),xn=cn(vn),wn=cn(o({},un,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},En={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function Tn(){return Cn}var An=o({},bn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=an(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?En[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?an(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?an(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=cn(An),jn=cn(o({},gn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Pn=cn(o({},bn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Rn=cn(o({},un,{propertyName:0,elapsedTime:0,pseudoElement:0})),Nn=o({},gn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),On=cn(Nn),Mn=[9,13,27,32],Dn=u&&"CompositionEvent"in window,In=null;u&&"documentMode"in document&&(In=document.documentMode);var Fn=u&&"TextEvent"in window&&!In,qn=u&&(!Dn||In&&8<In&&11>=In),Bn=String.fromCharCode(32),zn=!1;function Un(e,t){switch(e){case"keyup":return-1!==Mn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Hn=!1;var Gn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Gn[e.type]:"textarea"===t}function Vn(e,t,n,a){je(a),0<(t=Da(t,"onChange")).length&&(n=new pn("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var Wn=null,Qn=null;function Yn(e){Aa(e,0)}function Kn(e){if(K(ao(e)))return e}function Xn(e,t){if("change"===e)return t}var Jn=!1;if(u){var ea;if(u){var ta="oninput"in document;if(!ta){var na=document.createElement("div");na.setAttribute("oninput","return;"),ta="function"==typeof na.oninput}ea=ta}else ea=!1;Jn=ea&&(!document.documentMode||9<document.documentMode)}function aa(){Wn&&(Wn.detachEvent("onpropertychange",oa),Qn=Wn=null)}function oa(e){if("value"===e.propertyName&&Kn(Qn)){var t=[];if(Vn(t,Qn,e,Se(e)),e=Yn,De)e(t);else{De=!0;try{Re(e,t)}finally{De=!1,Fe()}}}}function ra(e,t,n){"focusin"===e?(aa(),Qn=n,(Wn=t).attachEvent("onpropertychange",oa)):"focusout"===e&&aa()}function ca(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Kn(Qn)}function ia(e,t){if("click"===e)return Kn(t)}function la(e,t){if("input"===e||"change"===e)return Kn(t)}var sa="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},da=Object.prototype.hasOwnProperty;function ua(e,t){if(sa(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(a=0;a<n.length;a++)if(!da.call(t,n[a])||!sa(e[n[a]],t[n[a]]))return!1;return!0}function pa(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ba(e,t){var n,a=pa(e);for(e=0;a;){if(3===a.nodeType){if(n=e+a.textContent.length,e<=t&&n>=t)return{node:a,offset:t-e};e=n}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=pa(a)}}function fa(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?fa(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function ga(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(a){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function ma(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var ha=u&&"documentMode"in document&&11>=document.documentMode,_a=null,ya=null,va=null,xa=!1;function wa(e,t,n){var a=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;xa||null==_a||_a!==X(a)||("selectionStart"in(a=_a)&&ma(a)?a={start:a.selectionStart,end:a.selectionEnd}:a={anchorNode:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset},va&&ua(va,a)||(va=a,0<(a=Da(ya,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=_a)))}Ot("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Ot("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Ot(Nt,2);for(var ka="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Ea=0;Ea<ka.length;Ea++)Rt.set(ka[Ea],0);d("onMouseEnter",["mouseout","mouseover"]),d("onMouseLeave",["mouseout","mouseover"]),d("onPointerEnter",["pointerout","pointerover"]),d("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Sa="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ca=new Set("cancel close invalid load scroll toggle".split(" ").concat(Sa));function Ta(e,t,n){var a=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,a,o,r,i,l,s){if(We.apply(this,arguments),$e){if(!$e)throw Error(c(198));var d=He;$e=!1,He=null,Ge||(Ge=!0,Ze=d)}}(a,t,void 0,e),e.currentTarget=null}function Aa(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var a=e[n],o=a.event;a=a.listeners;e:{var r=void 0;if(t)for(var c=a.length-1;0<=c;c--){var i=a[c],l=i.instance,s=i.currentTarget;if(i=i.listener,l!==r&&o.isPropagationStopped())break e;Ta(o,i,s),r=l}else for(c=0;c<a.length;c++){if(l=(i=a[c]).instance,s=i.currentTarget,i=i.listener,l!==r&&o.isPropagationStopped())break e;Ta(o,i,s),r=l}}}if(Ge)throw e=Ze,Ge=!1,Ze=null,e}function La(e,t){var n=ro(t),a=e+"__bubble";n.has(a)||(Na(t,e,2,!1),n.add(a))}var ja="_reactListening"+Math.random().toString(36).slice(2);function Pa(e){e[ja]||(e[ja]=!0,i.forEach((function(t){Ca.has(t)||Ra(t,!1,e,null),Ra(t,!0,e,null)})))}function Ra(e,t,n,a){var o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,r=n;if("selectionchange"===e&&9!==n.nodeType&&(r=n.ownerDocument),null!==a&&!t&&Ca.has(e)){if("scroll"!==e)return;o|=2,r=a}var c=ro(r),i=e+"__"+(t?"capture":"bubble");c.has(i)||(t&&(o|=4),Na(r,e,o,t),c.add(i))}function Na(e,t,n,a){var o=Rt.get(t);switch(void 0===o?2:o){case 0:o=Qt;break;case 1:o=Yt;break;default:o=Kt}n=o.bind(null,t,n,e),o=void 0,!Be||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),a?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Oa(e,t,n,a,o){var r=a;if(0==(1&t)&&0==(2&t)&&null!==a)e:for(;;){if(null===a)return;var c=a.tag;if(3===c||4===c){var i=a.stateNode.containerInfo;if(i===o||8===i.nodeType&&i.parentNode===o)break;if(4===c)for(c=a.return;null!==c;){var l=c.tag;if((3===l||4===l)&&((l=c.stateNode.containerInfo)===o||8===l.nodeType&&l.parentNode===o))return;c=c.return}for(;null!==i;){if(null===(c=to(i)))return;if(5===(l=c.tag)||6===l){a=r=c;continue e}i=i.parentNode}}a=a.return}!function(e,t,n){if(Ie)return e(t,n);Ie=!0;try{return Me(e,t,n)}finally{Ie=!1,Fe()}}((function(){var a=r,o=Se(n),c=[];e:{var i=Pt.get(e);if(void 0!==i){var l=pn,s=e;switch(e){case"keypress":if(0===an(n))break e;case"keydown":case"keyup":l=Ln;break;case"focusin":s="focus",l=_n;break;case"focusout":s="blur",l=_n;break;case"beforeblur":case"afterblur":l=_n;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=hn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Pn;break;case Tt:case At:case Lt:l=yn;break;case jt:l=Rn;break;case"scroll":l=fn;break;case"wheel":l=On;break;case"copy":case"cut":case"paste":l=xn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=jn}var d=0!=(4&t),u=!d&&"scroll"===e,p=d?null!==i?i+"Capture":null:i;d=[];for(var b,f=a;null!==f;){var g=(b=f).stateNode;if(5===b.tag&&null!==g&&(b=g,null!==p&&(null!=(g=qe(f,p))&&d.push(Ma(f,g,b)))),u)break;f=f.return}0<d.length&&(i=new l(i,s,null,n,o),c.push({event:i,listeners:d}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(i="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(s=n.relatedTarget||n.fromElement)||!to(s)&&!s[Ja])&&(l||i)&&(i=o.window===o?o:(i=o.ownerDocument)?i.defaultView||i.parentWindow:window,l?(l=a,null!==(s=(s=n.relatedTarget||n.toElement)?to(s):null)&&(s!==(u=Qe(s))||5!==s.tag&&6!==s.tag)&&(s=null)):(l=null,s=a),l!==s)){if(d=mn,g="onMouseLeave",p="onMouseEnter",f="mouse","pointerout"!==e&&"pointerover"!==e||(d=jn,g="onPointerLeave",p="onPointerEnter",f="pointer"),u=null==l?i:ao(l),b=null==s?i:ao(s),(i=new d(g,f+"leave",l,n,o)).target=u,i.relatedTarget=b,g=null,to(o)===a&&((d=new d(p,f+"enter",s,n,o)).target=b,d.relatedTarget=u,g=d),u=g,l&&s)e:{for(p=s,f=0,b=d=l;b;b=Ia(b))f++;for(b=0,g=p;g;g=Ia(g))b++;for(;0<f-b;)d=Ia(d),f--;for(;0<b-f;)p=Ia(p),b--;for(;f--;){if(d===p||null!==p&&d===p.alternate)break e;d=Ia(d),p=Ia(p)}d=null}else d=null;null!==l&&Fa(c,i,l,d,!1),null!==s&&null!==u&&Fa(c,u,s,d,!0)}if("select"===(l=(i=a?ao(a):window).nodeName&&i.nodeName.toLowerCase())||"input"===l&&"file"===i.type)var m=Xn;else if(Zn(i))if(Jn)m=la;else{m=ca;var h=ra}else(l=i.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===i.type||"radio"===i.type)&&(m=ia);switch(m&&(m=m(e,a))?Vn(c,m,n,o):(h&&h(e,i,a),"focusout"===e&&(h=i._wrapperState)&&h.controlled&&"number"===i.type&&oe(i,"number",i.value)),h=a?ao(a):window,e){case"focusin":(Zn(h)||"true"===h.contentEditable)&&(_a=h,ya=a,va=null);break;case"focusout":va=ya=_a=null;break;case"mousedown":xa=!0;break;case"contextmenu":case"mouseup":case"dragend":xa=!1,wa(c,n,o);break;case"selectionchange":if(ha)break;case"keydown":case"keyup":wa(c,n,o)}var _;if(Dn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Hn?Un(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(qn&&"ko"!==n.locale&&(Hn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Hn&&(_=nn()):(en="value"in(Jt=o)?Jt.value:Jt.textContent,Hn=!0)),0<(h=Da(a,y)).length&&(y=new wn(y,e,null,n,o),c.push({event:y,listeners:h}),_?y.data=_:null!==(_=$n(n))&&(y.data=_))),(_=Fn?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(zn=!0,Bn);case"textInput":return(e=t.data)===Bn&&zn?null:e;default:return null}}(e,n):function(e,t){if(Hn)return"compositionend"===e||!Dn&&Un(e,t)?(e=nn(),tn=en=Jt=null,Hn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return qn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(a=Da(a,"onBeforeInput")).length&&(o=new wn("onBeforeInput","beforeinput",null,n,o),c.push({event:o,listeners:a}),o.data=_))}Aa(c,t)}))}function Ma(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Da(e,t){for(var n=t+"Capture",a=[];null!==e;){var o=e,r=o.stateNode;5===o.tag&&null!==r&&(o=r,null!=(r=qe(e,n))&&a.unshift(Ma(e,r,o)),null!=(r=qe(e,t))&&a.push(Ma(e,r,o))),e=e.return}return a}function Ia(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Fa(e,t,n,a,o){for(var r=t._reactName,c=[];null!==n&&n!==a;){var i=n,l=i.alternate,s=i.stateNode;if(null!==l&&l===a)break;5===i.tag&&null!==s&&(i=s,o?null!=(l=qe(n,r))&&c.unshift(Ma(n,l,i)):o||null!=(l=qe(n,r))&&c.push(Ma(n,l,i))),n=n.return}0!==c.length&&e.push({event:t,listeners:c})}function qa(){}var Ba=null,za=null;function Ua(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function $a(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Ha="function"==typeof setTimeout?setTimeout:void 0,Ga="function"==typeof clearTimeout?clearTimeout:void 0;function Za(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Va(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Wa(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Qa=0;var Ya=Math.random().toString(36).slice(2),Ka="__reactFiber$"+Ya,Xa="__reactProps$"+Ya,Ja="__reactContainer$"+Ya,eo="__reactEvents$"+Ya;function to(e){var t=e[Ka];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Ja]||n[Ka]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Wa(e);null!==e;){if(n=e[Ka])return n;e=Wa(e)}return t}n=(e=n).parentNode}return null}function no(e){return!(e=e[Ka]||e[Ja])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ao(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(c(33))}function oo(e){return e[Xa]||null}function ro(e){var t=e[eo];return void 0===t&&(t=e[eo]=new Set),t}var co=[],io=-1;function lo(e){return{current:e}}function so(e){0>io||(e.current=co[io],co[io]=null,io--)}function uo(e,t){io++,co[io]=e.current,e.current=t}var po={},bo=lo(po),fo=lo(!1),go=po;function mo(e,t){var n=e.type.contextTypes;if(!n)return po;var a=e.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===t)return a.__reactInternalMemoizedMaskedChildContext;var o,r={};for(o in n)r[o]=t[o];return a&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=r),r}function ho(e){return null!=(e=e.childContextTypes)}function _o(){so(fo),so(bo)}function yo(e,t,n){if(bo.current!==po)throw Error(c(168));uo(bo,t),uo(fo,n)}function vo(e,t,n){var a=e.stateNode;if(e=t.childContextTypes,"function"!=typeof a.getChildContext)return n;for(var r in a=a.getChildContext())if(!(r in e))throw Error(c(108,V(t)||"Unknown",r));return o({},n,a)}function xo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||po,go=bo.current,uo(bo,e),uo(fo,fo.current),!0}function wo(e,t,n){var a=e.stateNode;if(!a)throw Error(c(169));n?(e=vo(e,t,go),a.__reactInternalMemoizedMergedChildContext=e,so(fo),so(bo),uo(bo,e)):so(fo),uo(fo,n)}var ko=null,Eo=null,So=r.unstable_runWithPriority,Co=r.unstable_scheduleCallback,To=r.unstable_cancelCallback,Ao=r.unstable_shouldYield,Lo=r.unstable_requestPaint,jo=r.unstable_now,Po=r.unstable_getCurrentPriorityLevel,Ro=r.unstable_ImmediatePriority,No=r.unstable_UserBlockingPriority,Oo=r.unstable_NormalPriority,Mo=r.unstable_LowPriority,Do=r.unstable_IdlePriority,Io={},Fo=void 0!==Lo?Lo:function(){},qo=null,Bo=null,zo=!1,Uo=jo(),$o=1e4>Uo?jo:function(){return jo()-Uo};function Ho(){switch(Po()){case Ro:return 99;case No:return 98;case Oo:return 97;case Mo:return 96;case Do:return 95;default:throw Error(c(332))}}function Go(e){switch(e){case 99:return Ro;case 98:return No;case 97:return Oo;case 96:return Mo;case 95:return Do;default:throw Error(c(332))}}function Zo(e,t){return e=Go(e),So(e,t)}function Vo(e,t,n){return e=Go(e),Co(e,t,n)}function Wo(){if(null!==Bo){var e=Bo;Bo=null,To(e)}Qo()}function Qo(){if(!zo&&null!==qo){zo=!0;var e=0;try{var t=qo;Zo(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),qo=null}catch(n){throw null!==qo&&(qo=qo.slice(e+1)),Co(Ro,Wo),n}finally{zo=!1}}}var Yo=x.ReactCurrentBatchConfig;function Ko(e,t){if(e&&e.defaultProps){for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Xo=lo(null),Jo=null,er=null,tr=null;function nr(){tr=er=Jo=null}function ar(e){var t=Xo.current;so(Xo),e.type._context._currentValue=t}function or(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function rr(e,t){Jo=e,tr=er=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Dc=!0),e.firstContext=null)}function cr(e,t){if(tr!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(tr=e,t=1073741823),t={context:e,observedBits:t,next:null},null===er){if(null===Jo)throw Error(c(308));er=t,Jo.dependencies={lanes:0,firstContext:t,responders:null}}else er=er.next=t;return e._currentValue}var ir=!1;function lr(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function sr(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function dr(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ur(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function pr(e,t){var n=e.updateQueue,a=e.alternate;if(null!==a&&n===(a=a.updateQueue)){var o=null,r=null;if(null!==(n=n.firstBaseUpdate)){do{var c={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===r?o=r=c:r=r.next=c,n=n.next}while(null!==n);null===r?o=r=t:r=r.next=t}else o=r=t;return n={baseState:a.baseState,firstBaseUpdate:o,lastBaseUpdate:r,shared:a.shared,effects:a.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function br(e,t,n,a){var r=e.updateQueue;ir=!1;var c=r.firstBaseUpdate,i=r.lastBaseUpdate,l=r.shared.pending;if(null!==l){r.shared.pending=null;var s=l,d=s.next;s.next=null,null===i?c=d:i.next=d,i=s;var u=e.alternate;if(null!==u){var p=(u=u.updateQueue).lastBaseUpdate;p!==i&&(null===p?u.firstBaseUpdate=d:p.next=d,u.lastBaseUpdate=s)}}if(null!==c){for(p=r.baseState,i=0,u=d=s=null;;){l=c.lane;var b=c.eventTime;if((a&l)===l){null!==u&&(u=u.next={eventTime:b,lane:0,tag:c.tag,payload:c.payload,callback:c.callback,next:null});e:{var f=e,g=c;switch(l=t,b=n,g.tag){case 1:if("function"==typeof(f=g.payload)){p=f.call(b,p,l);break e}p=f;break e;case 3:f.flags=-4097&f.flags|64;case 0:if(null==(l="function"==typeof(f=g.payload)?f.call(b,p,l):f))break e;p=o({},p,l);break e;case 2:ir=!0}}null!==c.callback&&(e.flags|=32,null===(l=r.effects)?r.effects=[c]:l.push(c))}else b={eventTime:b,lane:l,tag:c.tag,payload:c.payload,callback:c.callback,next:null},null===u?(d=u=b,s=p):u=u.next=b,i|=l;if(null===(c=c.next)){if(null===(l=r.shared.pending))break;c=l.next,l.next=null,r.lastBaseUpdate=l,r.shared.pending=null}}null===u&&(s=p),r.baseState=s,r.firstBaseUpdate=d,r.lastBaseUpdate=u,zi|=i,e.lanes=i,e.memoizedState=p}}function fr(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var a=e[t],o=a.callback;if(null!==o){if(a.callback=null,a=n,"function"!=typeof o)throw Error(c(191,o));o.call(a)}}}var gr=(new a.Component).refs;function mr(e,t,n,a){n=null==(n=n(a,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var hr={isMounted:function(e){return!!(e=e._reactInternals)&&Qe(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var a=pl(),o=bl(e),r=dr(a,o);r.payload=t,null!=n&&(r.callback=n),ur(e,r),fl(e,o,a)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=pl(),o=bl(e),r=dr(a,o);r.tag=1,r.payload=t,null!=n&&(r.callback=n),ur(e,r),fl(e,o,a)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=pl(),a=bl(e),o=dr(n,a);o.tag=2,null!=t&&(o.callback=t),ur(e,o),fl(e,a,n)}};function _r(e,t,n,a,o,r,c){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(a,r,c):!t.prototype||!t.prototype.isPureReactComponent||(!ua(n,a)||!ua(o,r))}function yr(e,t,n){var a=!1,o=po,r=t.contextType;return"object"==typeof r&&null!==r?r=cr(r):(o=ho(t)?go:bo.current,r=(a=null!=(a=t.contextTypes))?mo(e,o):po),t=new t(n,r),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=hr,e.stateNode=t,t._reactInternals=e,a&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=r),t}function vr(e,t,n,a){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,a),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,a),t.state!==e&&hr.enqueueReplaceState(t,t.state,null)}function xr(e,t,n,a){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=gr,lr(e);var r=t.contextType;"object"==typeof r&&null!==r?o.context=cr(r):(r=ho(t)?go:bo.current,o.context=mo(e,r)),br(e,n,o,a),o.state=e.memoizedState,"function"==typeof(r=t.getDerivedStateFromProps)&&(mr(e,t,r,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&hr.enqueueReplaceState(o,o.state,null),br(e,n,o,a),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4)}var wr=Array.isArray;function kr(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(c(309));var a=n.stateNode}if(!a)throw Error(c(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=a.refs;t===gr&&(t=a.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!=typeof e)throw Error(c(284));if(!n._owner)throw Error(c(290,e))}return e}function Er(e,t){if("textarea"!==e.type)throw Error(c(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function Sr(e){function t(t,n){if(e){var a=t.lastEffect;null!==a?(a.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,a){if(!e)return null;for(;null!==a;)t(n,a),a=a.sibling;return null}function a(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Zl(e,t)).index=0,e.sibling=null,e}function r(t,n,a){return t.index=a,e?null!==(a=t.alternate)?(a=a.index)<n?(t.flags=2,n):a:(t.flags=2,n):n}function i(t){return e&&null===t.alternate&&(t.flags=2),t}function l(e,t,n,a){return null===t||6!==t.tag?((t=Yl(n,e.mode,a)).return=e,t):((t=o(t,n)).return=e,t)}function s(e,t,n,a){return null!==t&&t.elementType===n.type?((a=o(t,n.props)).ref=kr(e,t,n),a.return=e,a):((a=Vl(n.type,n.key,n.props,null,e.mode,a)).ref=kr(e,t,n),a.return=e,a)}function d(e,t,n,a){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Kl(n,e.mode,a)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function u(e,t,n,a,r){return null===t||7!==t.tag?((t=Wl(n,e.mode,a,r)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Yl(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case w:return(n=Vl(t.type,t.key,t.props,null,e.mode,n)).ref=kr(e,null,t),n.return=e,n;case k:return(t=Kl(t,e.mode,n)).return=e,t}if(wr(t)||U(t))return(t=Wl(t,e.mode,n,null)).return=e,t;Er(e,t)}return null}function b(e,t,n,a){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:l(e,t,""+n,a);if("object"==typeof n&&null!==n){switch(n.$$typeof){case w:return n.key===o?n.type===E?u(e,t,n.props.children,a,o):s(e,t,n,a):null;case k:return n.key===o?d(e,t,n,a):null}if(wr(n)||U(n))return null!==o?null:u(e,t,n,a,null);Er(e,n)}return null}function f(e,t,n,a,o){if("string"==typeof a||"number"==typeof a)return l(t,e=e.get(n)||null,""+a,o);if("object"==typeof a&&null!==a){switch(a.$$typeof){case w:return e=e.get(null===a.key?n:a.key)||null,a.type===E?u(t,e,a.props.children,o,a.key):s(t,e,a,o);case k:return d(t,e=e.get(null===a.key?n:a.key)||null,a,o)}if(wr(a)||U(a))return u(t,e=e.get(n)||null,a,o,null);Er(t,a)}return null}function g(o,c,i,l){for(var s=null,d=null,u=c,g=c=0,m=null;null!==u&&g<i.length;g++){u.index>g?(m=u,u=null):m=u.sibling;var h=b(o,u,i[g],l);if(null===h){null===u&&(u=m);break}e&&u&&null===h.alternate&&t(o,u),c=r(h,c,g),null===d?s=h:d.sibling=h,d=h,u=m}if(g===i.length)return n(o,u),s;if(null===u){for(;g<i.length;g++)null!==(u=p(o,i[g],l))&&(c=r(u,c,g),null===d?s=u:d.sibling=u,d=u);return s}for(u=a(o,u);g<i.length;g++)null!==(m=f(u,o,g,i[g],l))&&(e&&null!==m.alternate&&u.delete(null===m.key?g:m.key),c=r(m,c,g),null===d?s=m:d.sibling=m,d=m);return e&&u.forEach((function(e){return t(o,e)})),s}function m(o,i,l,s){var d=U(l);if("function"!=typeof d)throw Error(c(150));if(null==(l=d.call(l)))throw Error(c(151));for(var u=d=null,g=i,m=i=0,h=null,_=l.next();null!==g&&!_.done;m++,_=l.next()){g.index>m?(h=g,g=null):h=g.sibling;var y=b(o,g,_.value,s);if(null===y){null===g&&(g=h);break}e&&g&&null===y.alternate&&t(o,g),i=r(y,i,m),null===u?d=y:u.sibling=y,u=y,g=h}if(_.done)return n(o,g),d;if(null===g){for(;!_.done;m++,_=l.next())null!==(_=p(o,_.value,s))&&(i=r(_,i,m),null===u?d=_:u.sibling=_,u=_);return d}for(g=a(o,g);!_.done;m++,_=l.next())null!==(_=f(g,o,m,_.value,s))&&(e&&null!==_.alternate&&g.delete(null===_.key?m:_.key),i=r(_,i,m),null===u?d=_:u.sibling=_,u=_);return e&&g.forEach((function(e){return t(o,e)})),d}return function(e,a,r,l){var s="object"==typeof r&&null!==r&&r.type===E&&null===r.key;s&&(r=r.props.children);var d="object"==typeof r&&null!==r;if(d)switch(r.$$typeof){case w:e:{for(d=r.key,s=a;null!==s;){if(s.key===d){if(7===s.tag){if(r.type===E){n(e,s.sibling),(a=o(s,r.props.children)).return=e,e=a;break e}}else if(s.elementType===r.type){n(e,s.sibling),(a=o(s,r.props)).ref=kr(e,s,r),a.return=e,e=a;break e}n(e,s);break}t(e,s),s=s.sibling}r.type===E?((a=Wl(r.props.children,e.mode,l,r.key)).return=e,e=a):((l=Vl(r.type,r.key,r.props,null,e.mode,l)).ref=kr(e,a,r),l.return=e,e=l)}return i(e);case k:e:{for(s=r.key;null!==a;){if(a.key===s){if(4===a.tag&&a.stateNode.containerInfo===r.containerInfo&&a.stateNode.implementation===r.implementation){n(e,a.sibling),(a=o(a,r.children||[])).return=e,e=a;break e}n(e,a);break}t(e,a),a=a.sibling}(a=Kl(r,e.mode,l)).return=e,e=a}return i(e)}if("string"==typeof r||"number"==typeof r)return r=""+r,null!==a&&6===a.tag?(n(e,a.sibling),(a=o(a,r)).return=e,e=a):(n(e,a),(a=Yl(r,e.mode,l)).return=e,e=a),i(e);if(wr(r))return g(e,a,r,l);if(U(r))return m(e,a,r,l);if(d&&Er(e,r),void 0===r&&!s)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(c(152,V(e.type)||"Component"))}return n(e,a)}}var Cr=Sr(!0),Tr=Sr(!1),Ar={},Lr=lo(Ar),jr=lo(Ar),Pr=lo(Ar);function Rr(e){if(e===Ar)throw Error(c(174));return e}function Nr(e,t){switch(uo(Pr,t),uo(jr,e),uo(Lr,Ar),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:be(null,"");break;default:t=be(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}so(Lr),uo(Lr,t)}function Or(){so(Lr),so(jr),so(Pr)}function Mr(e){Rr(Pr.current);var t=Rr(Lr.current),n=be(t,e.type);t!==n&&(uo(jr,e),uo(Lr,n))}function Dr(e){jr.current===e&&(so(Lr),so(jr))}var Ir=lo(0);function Fr(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var qr=null,Br=null,zr=!1;function Ur(e,t){var n=Hl(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function $r(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Hr(e){if(zr){var t=Br;if(t){var n=t;if(!$r(e,t)){if(!(t=Va(n.nextSibling))||!$r(e,t))return e.flags=-1025&e.flags|2,zr=!1,void(qr=e);Ur(qr,n)}qr=e,Br=Va(t.firstChild)}else e.flags=-1025&e.flags|2,zr=!1,qr=e}}function Gr(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;qr=e}function Zr(e){if(e!==qr)return!1;if(!zr)return Gr(e),zr=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!$a(t,e.memoizedProps))for(t=Br;t;)Ur(e,t),t=Va(t.nextSibling);if(Gr(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(c(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Br=Va(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Br=null}}else Br=qr?Va(e.stateNode.nextSibling):null;return!0}function Vr(){Br=qr=null,zr=!1}var Wr=[];function Qr(){for(var e=0;e<Wr.length;e++)Wr[e]._workInProgressVersionPrimary=null;Wr.length=0}var Yr=x.ReactCurrentDispatcher,Kr=x.ReactCurrentBatchConfig,Xr=0,Jr=null,ec=null,tc=null,nc=!1,ac=!1;function oc(){throw Error(c(321))}function rc(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sa(e[n],t[n]))return!1;return!0}function cc(e,t,n,a,o,r){if(Xr=r,Jr=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Yr.current=null===e||null===e.memoizedState?Rc:Nc,e=n(a,o),ac){r=0;do{if(ac=!1,!(25>r))throw Error(c(301));r+=1,tc=ec=null,t.updateQueue=null,Yr.current=Oc,e=n(a,o)}while(ac)}if(Yr.current=Pc,t=null!==ec&&null!==ec.next,Xr=0,tc=ec=Jr=null,nc=!1,t)throw Error(c(300));return e}function ic(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===tc?Jr.memoizedState=tc=e:tc=tc.next=e,tc}function lc(){if(null===ec){var e=Jr.alternate;e=null!==e?e.memoizedState:null}else e=ec.next;var t=null===tc?Jr.memoizedState:tc.next;if(null!==t)tc=t,ec=e;else{if(null===e)throw Error(c(310));e={memoizedState:(ec=e).memoizedState,baseState:ec.baseState,baseQueue:ec.baseQueue,queue:ec.queue,next:null},null===tc?Jr.memoizedState=tc=e:tc=tc.next=e}return tc}function sc(e,t){return"function"==typeof t?t(e):t}function dc(e){var t=lc(),n=t.queue;if(null===n)throw Error(c(311));n.lastRenderedReducer=e;var a=ec,o=a.baseQueue,r=n.pending;if(null!==r){if(null!==o){var i=o.next;o.next=r.next,r.next=i}a.baseQueue=o=r,n.pending=null}if(null!==o){o=o.next,a=a.baseState;var l=i=r=null,s=o;do{var d=s.lane;if((Xr&d)===d)null!==l&&(l=l.next={lane:0,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null}),a=s.eagerReducer===e?s.eagerState:e(a,s.action);else{var u={lane:d,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null};null===l?(i=l=u,r=a):l=l.next=u,Jr.lanes|=d,zi|=d}s=s.next}while(null!==s&&s!==o);null===l?r=a:l.next=i,sa(a,t.memoizedState)||(Dc=!0),t.memoizedState=a,t.baseState=r,t.baseQueue=l,n.lastRenderedState=a}return[t.memoizedState,n.dispatch]}function uc(e){var t=lc(),n=t.queue;if(null===n)throw Error(c(311));n.lastRenderedReducer=e;var a=n.dispatch,o=n.pending,r=t.memoizedState;if(null!==o){n.pending=null;var i=o=o.next;do{r=e(r,i.action),i=i.next}while(i!==o);sa(r,t.memoizedState)||(Dc=!0),t.memoizedState=r,null===t.baseQueue&&(t.baseState=r),n.lastRenderedState=r}return[r,a]}function pc(e,t,n){var a=t._getVersion;a=a(t._source);var o=t._workInProgressVersionPrimary;if(null!==o?e=o===a:(e=e.mutableReadLanes,(e=(Xr&e)===e)&&(t._workInProgressVersionPrimary=a,Wr.push(t))),e)return n(t._source);throw Wr.push(t),Error(c(350))}function bc(e,t,n,a){var o=Ni;if(null===o)throw Error(c(349));var r=t._getVersion,i=r(t._source),l=Yr.current,s=l.useState((function(){return pc(o,t,n)})),d=s[1],u=s[0];s=tc;var p=e.memoizedState,b=p.refs,f=b.getSnapshot,g=p.source;p=p.subscribe;var m=Jr;return e.memoizedState={refs:b,source:t,subscribe:a},l.useEffect((function(){b.getSnapshot=n,b.setSnapshot=d;var e=r(t._source);if(!sa(i,e)){e=n(t._source),sa(u,e)||(d(e),e=bl(m),o.mutableReadLanes|=e&o.pendingLanes),e=o.mutableReadLanes,o.entangledLanes|=e;for(var a=o.entanglements,c=e;0<c;){var l=31-$t(c),s=1<<l;a[l]|=e,c&=~s}}}),[n,t,a]),l.useEffect((function(){return a(t._source,(function(){var e=b.getSnapshot,n=b.setSnapshot;try{n(e(t._source));var a=bl(m);o.mutableReadLanes|=a&o.pendingLanes}catch(r){n((function(){throw r}))}}))}),[t,a]),sa(f,n)&&sa(g,t)&&sa(p,a)||((e={pending:null,dispatch:null,lastRenderedReducer:sc,lastRenderedState:u}).dispatch=d=jc.bind(null,Jr,e),s.queue=e,s.baseQueue=null,u=pc(o,t,n),s.memoizedState=s.baseState=u),u}function fc(e,t,n){return bc(lc(),e,t,n)}function gc(e){var t=ic();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:sc,lastRenderedState:e}).dispatch=jc.bind(null,Jr,e),[t.memoizedState,e]}function mc(e,t,n,a){return e={tag:e,create:t,destroy:n,deps:a,next:null},null===(t=Jr.updateQueue)?(t={lastEffect:null},Jr.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(a=n.next,n.next=e,e.next=a,t.lastEffect=e),e}function hc(e){return e={current:e},ic().memoizedState=e}function _c(){return lc().memoizedState}function yc(e,t,n,a){var o=ic();Jr.flags|=e,o.memoizedState=mc(1|t,n,void 0,void 0===a?null:a)}function vc(e,t,n,a){var o=lc();a=void 0===a?null:a;var r=void 0;if(null!==ec){var c=ec.memoizedState;if(r=c.destroy,null!==a&&rc(a,c.deps))return void mc(t,n,r,a)}Jr.flags|=e,o.memoizedState=mc(1|t,n,r,a)}function xc(e,t){return yc(516,4,e,t)}function wc(e,t){return vc(516,4,e,t)}function kc(e,t){return vc(4,2,e,t)}function Ec(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Sc(e,t,n){return n=null!=n?n.concat([e]):null,vc(4,2,Ec.bind(null,t,e),n)}function Cc(){}function Tc(e,t){var n=lc();t=void 0===t?null:t;var a=n.memoizedState;return null!==a&&null!==t&&rc(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function Ac(e,t){var n=lc();t=void 0===t?null:t;var a=n.memoizedState;return null!==a&&null!==t&&rc(t,a[1])?a[0]:(e=e(),n.memoizedState=[e,t],e)}function Lc(e,t){var n=Ho();Zo(98>n?98:n,(function(){e(!0)})),Zo(97<n?97:n,(function(){var n=Kr.transition;Kr.transition=1;try{e(!1),t()}finally{Kr.transition=n}}))}function jc(e,t,n){var a=pl(),o=bl(e),r={lane:o,action:n,eagerReducer:null,eagerState:null,next:null},c=t.pending;if(null===c?r.next=r:(r.next=c.next,c.next=r),t.pending=r,c=e.alternate,e===Jr||null!==c&&c===Jr)ac=nc=!0;else{if(0===e.lanes&&(null===c||0===c.lanes)&&null!==(c=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=c(i,n);if(r.eagerReducer=c,r.eagerState=l,sa(l,i))return}catch(s){}fl(e,o,a)}}var Pc={readContext:cr,useCallback:oc,useContext:oc,useEffect:oc,useImperativeHandle:oc,useLayoutEffect:oc,useMemo:oc,useReducer:oc,useRef:oc,useState:oc,useDebugValue:oc,useDeferredValue:oc,useTransition:oc,useMutableSource:oc,useOpaqueIdentifier:oc,unstable_isNewReconciler:!1},Rc={readContext:cr,useCallback:function(e,t){return ic().memoizedState=[e,void 0===t?null:t],e},useContext:cr,useEffect:xc,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yc(4,2,Ec.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yc(4,2,e,t)},useMemo:function(e,t){var n=ic();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var a=ic();return t=void 0!==n?n(t):t,a.memoizedState=a.baseState=t,e=(e=a.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=jc.bind(null,Jr,e),[a.memoizedState,e]},useRef:hc,useState:gc,useDebugValue:Cc,useDeferredValue:function(e){var t=gc(e),n=t[0],a=t[1];return xc((function(){var t=Kr.transition;Kr.transition=1;try{a(e)}finally{Kr.transition=t}}),[e]),n},useTransition:function(){var e=gc(!1),t=e[0];return hc(e=Lc.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var a=ic();return a.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},bc(a,e,t,n)},useOpaqueIdentifier:function(){if(zr){var e=!1,t=function(e){return{$$typeof:M,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Qa++).toString(36))),Error(c(355))})),n=gc(t)[1];return 0==(2&Jr.mode)&&(Jr.flags|=516,mc(5,(function(){n("r:"+(Qa++).toString(36))}),void 0,null)),t}return gc(t="r:"+(Qa++).toString(36)),t},unstable_isNewReconciler:!1},Nc={readContext:cr,useCallback:Tc,useContext:cr,useEffect:wc,useImperativeHandle:Sc,useLayoutEffect:kc,useMemo:Ac,useReducer:dc,useRef:_c,useState:function(){return dc(sc)},useDebugValue:Cc,useDeferredValue:function(e){var t=dc(sc),n=t[0],a=t[1];return wc((function(){var t=Kr.transition;Kr.transition=1;try{a(e)}finally{Kr.transition=t}}),[e]),n},useTransition:function(){var e=dc(sc)[0];return[_c().current,e]},useMutableSource:fc,useOpaqueIdentifier:function(){return dc(sc)[0]},unstable_isNewReconciler:!1},Oc={readContext:cr,useCallback:Tc,useContext:cr,useEffect:wc,useImperativeHandle:Sc,useLayoutEffect:kc,useMemo:Ac,useReducer:uc,useRef:_c,useState:function(){return uc(sc)},useDebugValue:Cc,useDeferredValue:function(e){var t=uc(sc),n=t[0],a=t[1];return wc((function(){var t=Kr.transition;Kr.transition=1;try{a(e)}finally{Kr.transition=t}}),[e]),n},useTransition:function(){var e=uc(sc)[0];return[_c().current,e]},useMutableSource:fc,useOpaqueIdentifier:function(){return uc(sc)[0]},unstable_isNewReconciler:!1},Mc=x.ReactCurrentOwner,Dc=!1;function Ic(e,t,n,a){t.child=null===e?Tr(t,null,n,a):Cr(t,e.child,n,a)}function Fc(e,t,n,a,o){n=n.render;var r=t.ref;return rr(t,o),a=cc(e,t,n,a,r,o),null===e||Dc?(t.flags|=1,Ic(e,t,a,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,ri(e,t,o))}function qc(e,t,n,a,o,r){if(null===e){var c=n.type;return"function"!=typeof c||Gl(c)||void 0!==c.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vl(n.type,null,a,t,t.mode,r)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=c,Bc(e,t,c,a,o,r))}return c=e.child,0==(o&r)&&(o=c.memoizedProps,(n=null!==(n=n.compare)?n:ua)(o,a)&&e.ref===t.ref)?ri(e,t,r):(t.flags|=1,(e=Zl(c,a)).ref=t.ref,e.return=t,t.child=e)}function Bc(e,t,n,a,o,r){if(null!==e&&ua(e.memoizedProps,a)&&e.ref===t.ref){if(Dc=!1,0==(r&o))return t.lanes=e.lanes,ri(e,t,r);0!=(16384&e.flags)&&(Dc=!0)}return $c(e,t,n,a,r)}function zc(e,t,n){var a=t.pendingProps,o=a.children,r=null!==e?e.memoizedState:null;if("hidden"===a.mode||"unstable-defer-without-hiding"===a.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},wl(t,n);else{if(0==(1073741824&n))return e=null!==r?r.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},wl(t,e),null;t.memoizedState={baseLanes:0},wl(t,null!==r?r.baseLanes:n)}else null!==r?(a=r.baseLanes|n,t.memoizedState=null):a=n,wl(t,a);return Ic(e,t,o,n),t.child}function Uc(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function $c(e,t,n,a,o){var r=ho(n)?go:bo.current;return r=mo(t,r),rr(t,o),n=cc(e,t,n,a,r,o),null===e||Dc?(t.flags|=1,Ic(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,ri(e,t,o))}function Hc(e,t,n,a,o){if(ho(n)){var r=!0;xo(t)}else r=!1;if(rr(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yr(t,n,a),xr(t,n,a,o),a=!0;else if(null===e){var c=t.stateNode,i=t.memoizedProps;c.props=i;var l=c.context,s=n.contextType;"object"==typeof s&&null!==s?s=cr(s):s=mo(t,s=ho(n)?go:bo.current);var d=n.getDerivedStateFromProps,u="function"==typeof d||"function"==typeof c.getSnapshotBeforeUpdate;u||"function"!=typeof c.UNSAFE_componentWillReceiveProps&&"function"!=typeof c.componentWillReceiveProps||(i!==a||l!==s)&&vr(t,c,a,s),ir=!1;var p=t.memoizedState;c.state=p,br(t,a,c,o),l=t.memoizedState,i!==a||p!==l||fo.current||ir?("function"==typeof d&&(mr(t,n,d,a),l=t.memoizedState),(i=ir||_r(t,n,i,a,p,l,s))?(u||"function"!=typeof c.UNSAFE_componentWillMount&&"function"!=typeof c.componentWillMount||("function"==typeof c.componentWillMount&&c.componentWillMount(),"function"==typeof c.UNSAFE_componentWillMount&&c.UNSAFE_componentWillMount()),"function"==typeof c.componentDidMount&&(t.flags|=4)):("function"==typeof c.componentDidMount&&(t.flags|=4),t.memoizedProps=a,t.memoizedState=l),c.props=a,c.state=l,c.context=s,a=i):("function"==typeof c.componentDidMount&&(t.flags|=4),a=!1)}else{c=t.stateNode,sr(e,t),i=t.memoizedProps,s=t.type===t.elementType?i:Ko(t.type,i),c.props=s,u=t.pendingProps,p=c.context,"object"==typeof(l=n.contextType)&&null!==l?l=cr(l):l=mo(t,l=ho(n)?go:bo.current);var b=n.getDerivedStateFromProps;(d="function"==typeof b||"function"==typeof c.getSnapshotBeforeUpdate)||"function"!=typeof c.UNSAFE_componentWillReceiveProps&&"function"!=typeof c.componentWillReceiveProps||(i!==u||p!==l)&&vr(t,c,a,l),ir=!1,p=t.memoizedState,c.state=p,br(t,a,c,o);var f=t.memoizedState;i!==u||p!==f||fo.current||ir?("function"==typeof b&&(mr(t,n,b,a),f=t.memoizedState),(s=ir||_r(t,n,s,a,p,f,l))?(d||"function"!=typeof c.UNSAFE_componentWillUpdate&&"function"!=typeof c.componentWillUpdate||("function"==typeof c.componentWillUpdate&&c.componentWillUpdate(a,f,l),"function"==typeof c.UNSAFE_componentWillUpdate&&c.UNSAFE_componentWillUpdate(a,f,l)),"function"==typeof c.componentDidUpdate&&(t.flags|=4),"function"==typeof c.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof c.componentDidUpdate||i===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof c.getSnapshotBeforeUpdate||i===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=a,t.memoizedState=f),c.props=a,c.state=f,c.context=l,a=s):("function"!=typeof c.componentDidUpdate||i===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof c.getSnapshotBeforeUpdate||i===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),a=!1)}return Gc(e,t,n,a,r,o)}function Gc(e,t,n,a,o,r){Uc(e,t);var c=0!=(64&t.flags);if(!a&&!c)return o&&wo(t,n,!1),ri(e,t,r);a=t.stateNode,Mc.current=t;var i=c&&"function"!=typeof n.getDerivedStateFromError?null:a.render();return t.flags|=1,null!==e&&c?(t.child=Cr(t,e.child,null,r),t.child=Cr(t,null,i,r)):Ic(e,t,i,r),t.memoizedState=a.state,o&&wo(t,n,!0),t.child}function Zc(e){var t=e.stateNode;t.pendingContext?yo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&yo(0,t.context,!1),Nr(e,t.containerInfo)}var Vc,Wc,Qc,Yc,Kc={dehydrated:null,retryLane:0};function Xc(e,t,n){var a,o=t.pendingProps,r=Ir.current,c=!1;return(a=0!=(64&t.flags))||(a=(null===e||null!==e.memoizedState)&&0!=(2&r)),a?(c=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(r|=1),uo(Ir,1&r),null===e?(void 0!==o.fallback&&Hr(t),e=o.children,r=o.fallback,c?(e=Jc(t,e,r,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Kc,e):"number"==typeof o.unstable_expectedLoadTime?(e=Jc(t,e,r,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Kc,t.lanes=33554432,e):((n=Ql({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,c?(o=ti(e,t,o.children,o.fallback,n),c=t.child,r=e.child.memoizedState,c.memoizedState=null===r?{baseLanes:n}:{baseLanes:r.baseLanes|n},c.childLanes=e.childLanes&~n,t.memoizedState=Kc,o):(n=ei(e,t,o.children,n),t.memoizedState=null,n))}function Jc(e,t,n,a){var o=e.mode,r=e.child;return t={mode:"hidden",children:t},0==(2&o)&&null!==r?(r.childLanes=0,r.pendingProps=t):r=Ql(t,o,0,null),n=Wl(n,o,a,null),r.return=e,n.return=e,r.sibling=n,e.child=r,n}function ei(e,t,n,a){var o=e.child;return e=o.sibling,n=Zl(o,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=a),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function ti(e,t,n,a,o){var r=t.mode,c=e.child;e=c.sibling;var i={mode:"hidden",children:n};return 0==(2&r)&&t.child!==c?((n=t.child).childLanes=0,n.pendingProps=i,null!==(c=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=c,c.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zl(c,i),null!==e?a=Zl(e,a):(a=Wl(a,r,o,null)).flags|=2,a.return=t,n.return=t,n.sibling=a,t.child=n,a}function ni(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),or(e.return,t)}function ai(e,t,n,a,o,r){var c=e.memoizedState;null===c?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:o,lastEffect:r}:(c.isBackwards=t,c.rendering=null,c.renderingStartTime=0,c.last=a,c.tail=n,c.tailMode=o,c.lastEffect=r)}function oi(e,t,n){var a=t.pendingProps,o=a.revealOrder,r=a.tail;if(Ic(e,t,a.children,n),0!=(2&(a=Ir.current)))a=1&a|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ni(e,n);else if(19===e.tag)ni(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}a&=1}if(uo(Ir,a),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===Fr(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),ai(t,!1,o,n,r,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===Fr(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}ai(t,!0,n,null,r,t.lastEffect);break;case"together":ai(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ri(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),zi|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(c(153));if(null!==t.child){for(n=Zl(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zl(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function ci(e,t){if(!zr)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var a=null;null!==n;)null!==n.alternate&&(a=n),n=n.sibling;null===a?t||null===e.tail?e.tail=null:e.tail.sibling=null:a.sibling=null}}function ii(e,t,n){var a=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ho(t.type)&&_o(),null;case 3:return Or(),so(fo),so(bo),Qr(),(a=t.stateNode).pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),null!==e&&null!==e.child||(Zr(t)?t.flags|=4:a.hydrate||(t.flags|=256)),Wc(t),null;case 5:Dr(t);var r=Rr(Pr.current);if(n=t.type,null!==e&&null!=t.stateNode)Qc(e,t,n,a,r),e.ref!==t.ref&&(t.flags|=128);else{if(!a){if(null===t.stateNode)throw Error(c(166));return null}if(e=Rr(Lr.current),Zr(t)){a=t.stateNode,n=t.type;var i=t.memoizedProps;switch(a[Ka]=t,a[Xa]=i,n){case"dialog":La("cancel",a),La("close",a);break;case"iframe":case"object":case"embed":La("load",a);break;case"video":case"audio":for(e=0;e<Sa.length;e++)La(Sa[e],a);break;case"source":La("error",a);break;case"img":case"image":case"link":La("error",a),La("load",a);break;case"details":La("toggle",a);break;case"input":ee(a,i),La("invalid",a);break;case"select":a._wrapperState={wasMultiple:!!i.multiple},La("invalid",a);break;case"textarea":le(a,i),La("invalid",a)}for(var s in ke(n,i),e=null,i)i.hasOwnProperty(s)&&(r=i[s],"children"===s?"string"==typeof r?a.textContent!==r&&(e=["children",r]):"number"==typeof r&&a.textContent!==""+r&&(e=["children",""+r]):l.hasOwnProperty(s)&&null!=r&&"onScroll"===s&&La("scroll",a));switch(n){case"input":Y(a),ae(a,i,!0);break;case"textarea":Y(a),de(a);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(a.onclick=qa)}a=e,t.updateQueue=a,null!==a&&(t.flags|=4)}else{switch(s=9===r.nodeType?r:r.ownerDocument,e===ue.html&&(e=pe(n)),e===ue.html?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof a.is?e=s.createElement(n,{is:a.is}):(e=s.createElement(n),"select"===n&&(s=e,a.multiple?s.multiple=!0:a.size&&(s.size=a.size))):e=s.createElementNS(e,n),e[Ka]=t,e[Xa]=a,Vc(e,t,!1,!1),t.stateNode=e,s=Ee(n,a),n){case"dialog":La("cancel",e),La("close",e),r=a;break;case"iframe":case"object":case"embed":La("load",e),r=a;break;case"video":case"audio":for(r=0;r<Sa.length;r++)La(Sa[r],e);r=a;break;case"source":La("error",e),r=a;break;case"img":case"image":case"link":La("error",e),La("load",e),r=a;break;case"details":La("toggle",e),r=a;break;case"input":ee(e,a),r=J(e,a),La("invalid",e);break;case"option":r=re(e,a);break;case"select":e._wrapperState={wasMultiple:!!a.multiple},r=o({},a,{value:void 0}),La("invalid",e);break;case"textarea":le(e,a),r=ie(e,a),La("invalid",e);break;default:r=a}ke(n,r);var d=r;for(i in d)if(d.hasOwnProperty(i)){var u=d[i];"style"===i?xe(e,u):"dangerouslySetInnerHTML"===i?null!=(u=u?u.__html:void 0)&&me(e,u):"children"===i?"string"==typeof u?("textarea"!==n||""!==u)&&he(e,u):"number"==typeof u&&he(e,""+u):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(l.hasOwnProperty(i)?null!=u&&"onScroll"===i&&La("scroll",e):null!=u&&v(e,i,u,s))}switch(n){case"input":Y(e),ae(e,a,!1);break;case"textarea":Y(e),de(e);break;case"option":null!=a.value&&e.setAttribute("value",""+W(a.value));break;case"select":e.multiple=!!a.multiple,null!=(i=a.value)?ce(e,!!a.multiple,i,!1):null!=a.defaultValue&&ce(e,!!a.multiple,a.defaultValue,!0);break;default:"function"==typeof r.onClick&&(e.onclick=qa)}Ua(n,a)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Yc(e,t,e.memoizedProps,a);else{if("string"!=typeof a&&null===t.stateNode)throw Error(c(166));n=Rr(Pr.current),Rr(Lr.current),Zr(t)?(a=t.stateNode,n=t.memoizedProps,a[Ka]=t,a.nodeValue!==n&&(t.flags|=4)):((a=(9===n.nodeType?n:n.ownerDocument).createTextNode(a))[Ka]=t,t.stateNode=a)}return null;case 13:return so(Ir),a=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(a=null!==a,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Zr(t):n=null!==e.memoizedState,a&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Ir.current)?0===Fi&&(Fi=3):(0!==Fi&&3!==Fi||(Fi=4),null===Ni||0==(134217727&zi)&&0==(134217727&Ui)||_l(Ni,Mi))),(a||n)&&(t.flags|=4),null);case 4:return Or(),Wc(t),null===e&&Pa(t.stateNode.containerInfo),null;case 10:return ar(t),null;case 19:if(so(Ir),null===(a=t.memoizedState))return null;if(i=0!=(64&t.flags),null===(s=a.rendering))if(i)ci(a,!1);else{if(0!==Fi||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(s=Fr(e))){for(t.flags|=64,ci(a,!1),null!==(i=s.updateQueue)&&(t.updateQueue=i,t.flags|=4),null===a.lastEffect&&(t.firstEffect=null),t.lastEffect=a.lastEffect,a=n,n=t.child;null!==n;)e=a,(i=n).flags&=2,i.nextEffect=null,i.firstEffect=null,i.lastEffect=null,null===(s=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=s.childLanes,i.lanes=s.lanes,i.child=s.child,i.memoizedProps=s.memoizedProps,i.memoizedState=s.memoizedState,i.updateQueue=s.updateQueue,i.type=s.type,e=s.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return uo(Ir,1&Ir.current|2),t.child}e=e.sibling}null!==a.tail&&$o()>Zi&&(t.flags|=64,i=!0,ci(a,!1),t.lanes=33554432)}else{if(!i)if(null!==(e=Fr(s))){if(t.flags|=64,i=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),ci(a,!0),null===a.tail&&"hidden"===a.tailMode&&!s.alternate&&!zr)return null!==(t=t.lastEffect=a.lastEffect)&&(t.nextEffect=null),null}else 2*$o()-a.renderingStartTime>Zi&&1073741824!==n&&(t.flags|=64,i=!0,ci(a,!1),t.lanes=33554432);a.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=a.last)?n.sibling=s:t.child=s,a.last=s)}return null!==a.tail?(n=a.tail,a.rendering=n,a.tail=n.sibling,a.lastEffect=t.lastEffect,a.renderingStartTime=$o(),n.sibling=null,t=Ir.current,uo(Ir,i?1&t|2:1&t),n):null;case 23:case 24:return kl(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==a.mode&&(t.flags|=4),null}throw Error(c(156,t.tag))}function li(e){switch(e.tag){case 1:ho(e.type)&&_o();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Or(),so(fo),so(bo),Qr(),0!=(64&(t=e.flags)))throw Error(c(285));return e.flags=-4097&t|64,e;case 5:return Dr(e),null;case 13:return so(Ir),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return so(Ir),null;case 4:return Or(),null;case 10:return ar(e),null;case 23:case 24:return kl(),null;default:return null}}function si(e,t){try{var n="",a=t;do{n+=Z(a),a=a.return}while(a);var o=n}catch(r){o="\nError generating stack: "+r.message+"\n"+r.stack}return{value:e,source:t,stack:o}}function di(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vc=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Wc=function(){},Qc=function(e,t,n,a){var r=e.memoizedProps;if(r!==a){e=t.stateNode,Rr(Lr.current);var c,i=null;switch(n){case"input":r=J(e,r),a=J(e,a),i=[];break;case"option":r=re(e,r),a=re(e,a),i=[];break;case"select":r=o({},r,{value:void 0}),a=o({},a,{value:void 0}),i=[];break;case"textarea":r=ie(e,r),a=ie(e,a),i=[];break;default:"function"!=typeof r.onClick&&"function"==typeof a.onClick&&(e.onclick=qa)}for(u in ke(n,a),n=null,r)if(!a.hasOwnProperty(u)&&r.hasOwnProperty(u)&&null!=r[u])if("style"===u){var s=r[u];for(c in s)s.hasOwnProperty(c)&&(n||(n={}),n[c]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(l.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in a){var d=a[u];if(s=null!=r?r[u]:void 0,a.hasOwnProperty(u)&&d!==s&&(null!=d||null!=s))if("style"===u)if(s){for(c in s)!s.hasOwnProperty(c)||d&&d.hasOwnProperty(c)||(n||(n={}),n[c]="");for(c in d)d.hasOwnProperty(c)&&s[c]!==d[c]&&(n||(n={}),n[c]=d[c])}else n||(i||(i=[]),i.push(u,n)),n=d;else"dangerouslySetInnerHTML"===u?(d=d?d.__html:void 0,s=s?s.__html:void 0,null!=d&&s!==d&&(i=i||[]).push(u,d)):"children"===u?"string"!=typeof d&&"number"!=typeof d||(i=i||[]).push(u,""+d):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(l.hasOwnProperty(u)?(null!=d&&"onScroll"===u&&La("scroll",e),i||s===d||(i=[])):"object"==typeof d&&null!==d&&d.$$typeof===M?d.toString():(i=i||[]).push(u,d))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}},Yc=function(e,t,n,a){n!==a&&(t.flags|=4)};var ui="function"==typeof WeakMap?WeakMap:Map;function pi(e,t,n){(n=dr(-1,n)).tag=3,n.payload={element:null};var a=t.value;return n.callback=function(){Yi||(Yi=!0,Ki=a),di(0,t)},n}function bi(e,t,n){(n=dr(-1,n)).tag=3;var a=e.type.getDerivedStateFromError;if("function"==typeof a){var o=t.value;n.payload=function(){return di(0,t),a(o)}}var r=e.stateNode;return null!==r&&"function"==typeof r.componentDidCatch&&(n.callback=function(){"function"!=typeof a&&(null===Xi?Xi=new Set([this]):Xi.add(this),di(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var fi="function"==typeof WeakSet?WeakSet:Set;function gi(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){Bl(e,n)}else t.current=null}function mi(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,a=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ko(t.type,n),a),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Za(t.stateNode.containerInfo))}throw Error(c(163))}function hi(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var a=e.create;e.destroy=a()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var o=e;a=o.next,0!=(4&(o=o.tag))&&0!=(1&o)&&(Il(n,e),Dl(n,e)),e=a}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(a=n.elementType===n.type?t.memoizedProps:Ko(n.type,t.memoizedProps),e.componentDidUpdate(a,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&fr(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}fr(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Ua(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&xt(n)))))}throw Error(c(163))}function _i(e,t){for(var n=e;;){if(5===n.tag){var a=n.stateNode;if(t)"function"==typeof(a=a.style).setProperty?a.setProperty("display","none","important"):a.display="none";else{a=n.stateNode;var o=n.memoizedProps.style;o=null!=o&&o.hasOwnProperty("display")?o.display:null,a.style.display=ve("display",o)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yi(e,t){if(Eo&&"function"==typeof Eo.onCommitFiberUnmount)try{Eo.onCommitFiberUnmount(ko,t)}catch(r){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var a=n,o=a.destroy;if(a=a.tag,void 0!==o)if(0!=(4&a))Il(t,n);else{a=t;try{o()}catch(r){Bl(a,r)}}n=n.next}while(n!==e)}break;case 1:if(gi(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(r){Bl(t,r)}break;case 5:gi(t);break;case 4:Si(e,t)}}function vi(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function xi(e){return 5===e.tag||3===e.tag||4===e.tag}function wi(e){e:{for(var t=e.return;null!==t;){if(xi(t))break e;t=t.return}throw Error(c(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var a=!1;break;case 3:case 4:t=t.containerInfo,a=!0;break;default:throw Error(c(161))}16&n.flags&&(he(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||xi(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}a?ki(e,n,t):Ei(e,n,t)}function ki(e,t,n){var a=e.tag,o=5===a||6===a;if(o)e=o?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=qa));else if(4!==a&&null!==(e=e.child))for(ki(e,t,n),e=e.sibling;null!==e;)ki(e,t,n),e=e.sibling}function Ei(e,t,n){var a=e.tag,o=5===a||6===a;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==a&&null!==(e=e.child))for(Ei(e,t,n),e=e.sibling;null!==e;)Ei(e,t,n),e=e.sibling}function Si(e,t){for(var n,a,o=t,r=!1;;){if(!r){r=o.return;e:for(;;){if(null===r)throw Error(c(160));switch(n=r.stateNode,r.tag){case 5:a=!1;break e;case 3:case 4:n=n.containerInfo,a=!0;break e}r=r.return}r=!0}if(5===o.tag||6===o.tag){e:for(var i=e,l=o,s=l;;)if(yi(i,s),null!==s.child&&4!==s.tag)s.child.return=s,s=s.child;else{if(s===l)break e;for(;null===s.sibling;){if(null===s.return||s.return===l)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}a?(i=n,l=o.stateNode,8===i.nodeType?i.parentNode.removeChild(l):i.removeChild(l)):n.removeChild(o.stateNode)}else if(4===o.tag){if(null!==o.child){n=o.stateNode.containerInfo,a=!0,o.child.return=o,o=o.child;continue}}else if(yi(e,o),null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;4===(o=o.return).tag&&(r=!1)}o.sibling.return=o.return,o=o.sibling}}function Ci(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var a=n=n.next;do{3==(3&a.tag)&&(e=a.destroy,a.destroy=void 0,void 0!==e&&e()),a=a.next}while(a!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){a=t.memoizedProps;var o=null!==e?e.memoizedProps:a;e=t.type;var r=t.updateQueue;if(t.updateQueue=null,null!==r){for(n[Xa]=a,"input"===e&&"radio"===a.type&&null!=a.name&&te(n,a),Ee(e,o),t=Ee(e,a),o=0;o<r.length;o+=2){var i=r[o],l=r[o+1];"style"===i?xe(n,l):"dangerouslySetInnerHTML"===i?me(n,l):"children"===i?he(n,l):v(n,i,l,t)}switch(e){case"input":ne(n,a);break;case"textarea":se(n,a);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!a.multiple,null!=(r=a.value)?ce(n,!!a.multiple,r,!1):e!==!!a.multiple&&(null!=a.defaultValue?ce(n,!!a.multiple,a.defaultValue,!0):ce(n,!!a.multiple,a.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(c(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,xt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Gi=$o(),_i(t.child,!0)),void Ti(t);case 19:return void Ti(t);case 23:case 24:return void _i(t,null!==t.memoizedState)}throw Error(c(163))}function Ti(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new fi),t.forEach((function(t){var a=Ul.bind(null,e,t);n.has(t)||(n.add(t),t.then(a,a))}))}}function Ai(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Li=Math.ceil,ji=x.ReactCurrentDispatcher,Pi=x.ReactCurrentOwner,Ri=0,Ni=null,Oi=null,Mi=0,Di=0,Ii=lo(0),Fi=0,qi=null,Bi=0,zi=0,Ui=0,$i=0,Hi=null,Gi=0,Zi=1/0;function Vi(){Zi=$o()+500}var Wi,Qi=null,Yi=!1,Ki=null,Xi=null,Ji=!1,el=null,tl=90,nl=[],al=[],ol=null,rl=0,cl=null,il=-1,ll=0,sl=0,dl=null,ul=!1;function pl(){return 0!=(48&Ri)?$o():-1!==il?il:il=$o()}function bl(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===Ho()?1:2;if(0===ll&&(ll=Bi),0!==Yo.transition){0!==sl&&(sl=null!==Hi?Hi.pendingLanes:0),e=ll;var t=4186112&~sl;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=Ho(),0!=(4&Ri)&&98===e?e=qt(12,ll):e=qt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ll),e}function fl(e,t,n){if(50<rl)throw rl=0,cl=null,Error(c(185));if(null===(e=gl(e,t)))return null;Ut(e,t,n),e===Ni&&(Ui|=t,4===Fi&&_l(e,Mi));var a=Ho();1===t?0!=(8&Ri)&&0==(48&Ri)?yl(e):(ml(e,n),0===Ri&&(Vi(),Wo())):(0==(4&Ri)||98!==a&&99!==a||(null===ol?ol=new Set([e]):ol.add(e)),ml(e,n)),Hi=e}function gl(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function ml(e,t){for(var n=e.callbackNode,a=e.suspendedLanes,o=e.pingedLanes,r=e.expirationTimes,i=e.pendingLanes;0<i;){var l=31-$t(i),s=1<<l,d=r[l];if(-1===d){if(0==(s&a)||0!=(s&o)){d=t,Dt(s);var u=Mt;r[l]=10<=u?d+250:6<=u?d+5e3:-1}}else d<=t&&(e.expiredLanes|=s);i&=~s}if(a=It(e,e===Ni?Mi:0),t=Mt,0===a)null!==n&&(n!==Io&&To(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Io&&To(n)}15===t?(n=yl.bind(null,e),null===qo?(qo=[n],Bo=Co(Ro,Qo)):qo.push(n),n=Io):14===t?n=Vo(99,yl.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(c(358,e))}}(t),n=Vo(n,hl.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function hl(e){if(il=-1,sl=ll=0,0!=(48&Ri))throw Error(c(327));var t=e.callbackNode;if(Ml()&&e.callbackNode!==t)return null;var n=It(e,e===Ni?Mi:0);if(0===n)return null;var a=n,o=Ri;Ri|=16;var r=Cl();for(Ni===e&&Mi===a||(Vi(),El(e,a));;)try{Ll();break}catch(l){Sl(e,l)}if(nr(),ji.current=r,Ri=o,null!==Oi?a=0:(Ni=null,Mi=0,a=Fi),0!=(Bi&Ui))El(e,0);else if(0!==a){if(2===a&&(Ri|=64,e.hydrate&&(e.hydrate=!1,Za(e.containerInfo)),0!==(n=Ft(e))&&(a=Tl(e,n))),1===a)throw t=qi,El(e,0),_l(e,n),ml(e,$o()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,a){case 0:case 1:throw Error(c(345));case 2:case 5:Rl(e);break;case 3:if(_l(e,n),(62914560&n)===n&&10<(a=Gi+500-$o())){if(0!==It(e,0))break;if(((o=e.suspendedLanes)&n)!==n){pl(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=Ha(Rl.bind(null,e),a);break}Rl(e);break;case 4:if(_l(e,n),(4186112&n)===n)break;for(a=e.eventTimes,o=-1;0<n;){var i=31-$t(n);r=1<<i,(i=a[i])>o&&(o=i),n&=~r}if(n=o,10<(n=(120>(n=$o()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Li(n/1960))-n)){e.timeoutHandle=Ha(Rl.bind(null,e),n);break}Rl(e);break;default:throw Error(c(329))}}return ml(e,$o()),e.callbackNode===t?hl.bind(null,e):null}function _l(e,t){for(t&=~$i,t&=~Ui,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-$t(t),a=1<<n;e[n]=-1,t&=~a}}function yl(e){if(0!=(48&Ri))throw Error(c(327));if(Ml(),e===Ni&&0!=(e.expiredLanes&Mi)){var t=Mi,n=Tl(e,t);0!=(Bi&Ui)&&(n=Tl(e,t=It(e,t)))}else n=Tl(e,t=It(e,0));if(0!==e.tag&&2===n&&(Ri|=64,e.hydrate&&(e.hydrate=!1,Za(e.containerInfo)),0!==(t=Ft(e))&&(n=Tl(e,t))),1===n)throw n=qi,El(e,0),_l(e,t),ml(e,$o()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Rl(e),ml(e,$o()),null}function vl(e,t){var n=Ri;Ri|=1;try{return e(t)}finally{0===(Ri=n)&&(Vi(),Wo())}}function xl(e,t){var n=Ri;Ri&=-2,Ri|=8;try{return e(t)}finally{0===(Ri=n)&&(Vi(),Wo())}}function wl(e,t){uo(Ii,Di),Di|=t,Bi|=t}function kl(){Di=Ii.current,so(Ii)}function El(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Ga(n)),null!==Oi)for(n=Oi.return;null!==n;){var a=n;switch(a.tag){case 1:null!=(a=a.type.childContextTypes)&&_o();break;case 3:Or(),so(fo),so(bo),Qr();break;case 5:Dr(a);break;case 4:Or();break;case 13:case 19:so(Ir);break;case 10:ar(a);break;case 23:case 24:kl()}n=n.return}Ni=e,Oi=Zl(e.current,null),Mi=Di=Bi=t,Fi=0,qi=null,$i=Ui=zi=0}function Sl(e,t){for(;;){var n=Oi;try{if(nr(),Yr.current=Pc,nc){for(var a=Jr.memoizedState;null!==a;){var o=a.queue;null!==o&&(o.pending=null),a=a.next}nc=!1}if(Xr=0,tc=ec=Jr=null,ac=!1,Pi.current=null,null===n||null===n.return){Fi=1,qi=t,Oi=null;break}e:{var r=e,c=n.return,i=n,l=t;if(t=Mi,i.flags|=2048,i.firstEffect=i.lastEffect=null,null!==l&&"object"==typeof l&&"function"==typeof l.then){var s=l;if(0==(2&i.mode)){var d=i.alternate;d?(i.updateQueue=d.updateQueue,i.memoizedState=d.memoizedState,i.lanes=d.lanes):(i.updateQueue=null,i.memoizedState=null)}var u=0!=(1&Ir.current),p=c;do{var b;if(b=13===p.tag){var f=p.memoizedState;if(null!==f)b=null!==f.dehydrated;else{var g=p.memoizedProps;b=void 0!==g.fallback&&(!0!==g.unstable_avoidThisFallback||!u)}}if(b){var m=p.updateQueue;if(null===m){var h=new Set;h.add(s),p.updateQueue=h}else m.add(s);if(0==(2&p.mode)){if(p.flags|=64,i.flags|=16384,i.flags&=-2981,1===i.tag)if(null===i.alternate)i.tag=17;else{var _=dr(-1,1);_.tag=2,ur(i,_)}i.lanes|=1;break e}l=void 0,i=t;var y=r.pingCache;if(null===y?(y=r.pingCache=new ui,l=new Set,y.set(s,l)):void 0===(l=y.get(s))&&(l=new Set,y.set(s,l)),!l.has(i)){l.add(i);var v=zl.bind(null,r,s,i);s.then(v,v)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);l=Error((V(i.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Fi&&(Fi=2),l=si(l,i),p=c;do{switch(p.tag){case 3:r=l,p.flags|=4096,t&=-t,p.lanes|=t,pr(p,pi(0,r,t));break e;case 1:r=l;var x=p.type,w=p.stateNode;if(0==(64&p.flags)&&("function"==typeof x.getDerivedStateFromError||null!==w&&"function"==typeof w.componentDidCatch&&(null===Xi||!Xi.has(w)))){p.flags|=4096,t&=-t,p.lanes|=t,pr(p,bi(p,r,t));break e}}p=p.return}while(null!==p)}Pl(n)}catch(k){t=k,Oi===n&&null!==n&&(Oi=n=n.return);continue}break}}function Cl(){var e=ji.current;return ji.current=Pc,null===e?Pc:e}function Tl(e,t){var n=Ri;Ri|=16;var a=Cl();for(Ni===e&&Mi===t||El(e,t);;)try{Al();break}catch(o){Sl(e,o)}if(nr(),Ri=n,ji.current=a,null!==Oi)throw Error(c(261));return Ni=null,Mi=0,Fi}function Al(){for(;null!==Oi;)jl(Oi)}function Ll(){for(;null!==Oi&&!Ao();)jl(Oi)}function jl(e){var t=Wi(e.alternate,e,Di);e.memoizedProps=e.pendingProps,null===t?Pl(e):Oi=t,Pi.current=null}function Pl(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ii(n,t,Di)))return void(Oi=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Di)||0==(4&n.mode)){for(var a=0,o=n.child;null!==o;)a|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=a}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=li(t)))return n.flags&=2047,void(Oi=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Oi=t);Oi=t=e}while(null!==t);0===Fi&&(Fi=5)}function Rl(e){var t=Ho();return Zo(99,Nl.bind(null,e,t)),null}function Nl(e,t){do{Ml()}while(null!==el);if(0!=(48&Ri))throw Error(c(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(c(177));e.callbackNode=null;var a=n.lanes|n.childLanes,o=a,r=e.pendingLanes&~o;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=o,e.mutableReadLanes&=o,e.entangledLanes&=o,o=e.entanglements;for(var i=e.eventTimes,l=e.expirationTimes;0<r;){var s=31-$t(r),d=1<<s;o[s]=0,i[s]=-1,l[s]=-1,r&=~d}if(null!==ol&&0==(24&a)&&ol.has(e)&&ol.delete(e),e===Ni&&(Oi=Ni=null,Mi=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,a=n.firstEffect):a=n:a=n.firstEffect,null!==a){if(o=Ri,Ri|=32,Pi.current=null,Ba=Wt,ma(i=ga())){if("selectionStart"in i)l={start:i.selectionStart,end:i.selectionEnd};else e:if(l=(l=i.ownerDocument)&&l.defaultView||window,(d=l.getSelection&&l.getSelection())&&0!==d.rangeCount){l=d.anchorNode,r=d.anchorOffset,s=d.focusNode,d=d.focusOffset;try{l.nodeType,s.nodeType}catch(C){l=null;break e}var u=0,p=-1,b=-1,f=0,g=0,m=i,h=null;t:for(;;){for(var _;m!==l||0!==r&&3!==m.nodeType||(p=u+r),m!==s||0!==d&&3!==m.nodeType||(b=u+d),3===m.nodeType&&(u+=m.nodeValue.length),null!==(_=m.firstChild);)h=m,m=_;for(;;){if(m===i)break t;if(h===l&&++f===r&&(p=u),h===s&&++g===d&&(b=u),null!==(_=m.nextSibling))break;h=(m=h).parentNode}m=_}l=-1===p||-1===b?null:{start:p,end:b}}else l=null;l=l||{start:0,end:0}}else l=null;za={focusedElem:i,selectionRange:l},Wt=!1,dl=null,ul=!1,Qi=a;do{try{Ol()}catch(C){if(null===Qi)throw Error(c(330));Bl(Qi,C),Qi=Qi.nextEffect}}while(null!==Qi);dl=null,Qi=a;do{try{for(i=e;null!==Qi;){var y=Qi.flags;if(16&y&&he(Qi.stateNode,""),128&y){var v=Qi.alternate;if(null!==v){var x=v.ref;null!==x&&("function"==typeof x?x(null):x.current=null)}}switch(1038&y){case 2:wi(Qi),Qi.flags&=-3;break;case 6:wi(Qi),Qi.flags&=-3,Ci(Qi.alternate,Qi);break;case 1024:Qi.flags&=-1025;break;case 1028:Qi.flags&=-1025,Ci(Qi.alternate,Qi);break;case 4:Ci(Qi.alternate,Qi);break;case 8:Si(i,l=Qi);var w=l.alternate;vi(l),null!==w&&vi(w)}Qi=Qi.nextEffect}}catch(C){if(null===Qi)throw Error(c(330));Bl(Qi,C),Qi=Qi.nextEffect}}while(null!==Qi);if(x=za,v=ga(),y=x.focusedElem,i=x.selectionRange,v!==y&&y&&y.ownerDocument&&fa(y.ownerDocument.documentElement,y)){null!==i&&ma(y)&&(v=i.start,void 0===(x=i.end)&&(x=v),"selectionStart"in y?(y.selectionStart=v,y.selectionEnd=Math.min(x,y.value.length)):(x=(v=y.ownerDocument||document)&&v.defaultView||window).getSelection&&(x=x.getSelection(),l=y.textContent.length,w=Math.min(i.start,l),i=void 0===i.end?w:Math.min(i.end,l),!x.extend&&w>i&&(l=i,i=w,w=l),l=ba(y,w),r=ba(y,i),l&&r&&(1!==x.rangeCount||x.anchorNode!==l.node||x.anchorOffset!==l.offset||x.focusNode!==r.node||x.focusOffset!==r.offset)&&((v=v.createRange()).setStart(l.node,l.offset),x.removeAllRanges(),w>i?(x.addRange(v),x.extend(r.node,r.offset)):(v.setEnd(r.node,r.offset),x.addRange(v))))),v=[];for(x=y;x=x.parentNode;)1===x.nodeType&&v.push({element:x,left:x.scrollLeft,top:x.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<v.length;y++)(x=v[y]).element.scrollLeft=x.left,x.element.scrollTop=x.top}Wt=!!Ba,za=Ba=null,e.current=n,Qi=a;do{try{for(y=e;null!==Qi;){var k=Qi.flags;if(36&k&&hi(y,Qi.alternate,Qi),128&k){v=void 0;var E=Qi.ref;if(null!==E){var S=Qi.stateNode;Qi.tag,v=S,"function"==typeof E?E(v):E.current=v}}Qi=Qi.nextEffect}}catch(C){if(null===Qi)throw Error(c(330));Bl(Qi,C),Qi=Qi.nextEffect}}while(null!==Qi);Qi=null,Fo(),Ri=o}else e.current=n;if(Ji)Ji=!1,el=e,tl=t;else for(Qi=a;null!==Qi;)t=Qi.nextEffect,Qi.nextEffect=null,8&Qi.flags&&((k=Qi).sibling=null,k.stateNode=null),Qi=t;if(0===(a=e.pendingLanes)&&(Xi=null),1===a?e===cl?rl++:(rl=0,cl=e):rl=0,n=n.stateNode,Eo&&"function"==typeof Eo.onCommitFiberRoot)try{Eo.onCommitFiberRoot(ko,n,void 0,64==(64&n.current.flags))}catch(C){}if(ml(e,$o()),Yi)throw Yi=!1,e=Ki,Ki=null,e;return 0!=(8&Ri)||Wo(),null}function Ol(){for(;null!==Qi;){var e=Qi.alternate;ul||null===dl||(0!=(8&Qi.flags)?Je(Qi,dl)&&(ul=!0):13===Qi.tag&&Ai(e,Qi)&&Je(Qi,dl)&&(ul=!0));var t=Qi.flags;0!=(256&t)&&mi(e,Qi),0==(512&t)||Ji||(Ji=!0,Vo(97,(function(){return Ml(),null}))),Qi=Qi.nextEffect}}function Ml(){if(90!==tl){var e=97<tl?97:tl;return tl=90,Zo(e,Fl)}return!1}function Dl(e,t){nl.push(t,e),Ji||(Ji=!0,Vo(97,(function(){return Ml(),null})))}function Il(e,t){al.push(t,e),Ji||(Ji=!0,Vo(97,(function(){return Ml(),null})))}function Fl(){if(null===el)return!1;var e=el;if(el=null,0!=(48&Ri))throw Error(c(331));var t=Ri;Ri|=32;var n=al;al=[];for(var a=0;a<n.length;a+=2){var o=n[a],r=n[a+1],i=o.destroy;if(o.destroy=void 0,"function"==typeof i)try{i()}catch(s){if(null===r)throw Error(c(330));Bl(r,s)}}for(n=nl,nl=[],a=0;a<n.length;a+=2){o=n[a],r=n[a+1];try{var l=o.create;o.destroy=l()}catch(s){if(null===r)throw Error(c(330));Bl(r,s)}}for(l=e.current.firstEffect;null!==l;)e=l.nextEffect,l.nextEffect=null,8&l.flags&&(l.sibling=null,l.stateNode=null),l=e;return Ri=t,Wo(),!0}function ql(e,t,n){ur(e,t=pi(0,t=si(n,t),1)),t=pl(),null!==(e=gl(e,1))&&(Ut(e,1,t),ml(e,t))}function Bl(e,t){if(3===e.tag)ql(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){ql(n,e,t);break}if(1===n.tag){var a=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof a.componentDidCatch&&(null===Xi||!Xi.has(a))){var o=bi(n,e=si(t,e),1);if(ur(n,o),o=pl(),null!==(n=gl(n,1)))Ut(n,1,o),ml(n,o);else if("function"==typeof a.componentDidCatch&&(null===Xi||!Xi.has(a)))try{a.componentDidCatch(t,e)}catch(r){}break}}n=n.return}}function zl(e,t,n){var a=e.pingCache;null!==a&&a.delete(t),t=pl(),e.pingedLanes|=e.suspendedLanes&n,Ni===e&&(Mi&n)===n&&(4===Fi||3===Fi&&(62914560&Mi)===Mi&&500>$o()-Gi?El(e,0):$i|=n),ml(e,t)}function Ul(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Ho()?1:2:(0===ll&&(ll=Bi),0===(t=Bt(62914560&~ll))&&(t=4194304))),n=pl(),null!==(e=gl(e,t))&&(Ut(e,t,n),ml(e,n))}function $l(e,t,n,a){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Hl(e,t,n,a){return new $l(e,t,n,a)}function Gl(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zl(e,t){var n=e.alternate;return null===n?((n=Hl(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vl(e,t,n,a,o,r){var i=2;if(a=e,"function"==typeof e)Gl(e)&&(i=1);else if("string"==typeof e)i=5;else e:switch(e){case E:return Wl(n.children,o,r,t);case D:i=8,o|=16;break;case S:i=8,o|=1;break;case C:return(e=Hl(12,n,t,8|o)).elementType=C,e.type=C,e.lanes=r,e;case j:return(e=Hl(13,n,t,o)).type=j,e.elementType=j,e.lanes=r,e;case P:return(e=Hl(19,n,t,o)).elementType=P,e.lanes=r,e;case I:return Ql(n,o,r,t);case F:return(e=Hl(24,n,t,o)).elementType=F,e.lanes=r,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:i=10;break e;case A:i=9;break e;case L:i=11;break e;case R:i=14;break e;case N:i=16,a=null;break e;case O:i=22;break e}throw Error(c(130,null==e?e:typeof e,""))}return(t=Hl(i,n,t,o)).elementType=e,t.type=a,t.lanes=r,t}function Wl(e,t,n,a){return(e=Hl(7,e,a,t)).lanes=n,e}function Ql(e,t,n,a){return(e=Hl(23,e,a,t)).elementType=I,e.lanes=n,e}function Yl(e,t,n){return(e=Hl(6,e,null,t)).lanes=n,e}function Kl(e,t,n){return(t=Hl(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xl(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=zt(0),this.expirationTimes=zt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zt(0),this.mutableSourceEagerHydrationData=null}function Jl(e,t,n,a){var o=t.current,r=pl(),i=bl(o);e:if(n){t:{if(Qe(n=n._reactInternals)!==n||1!==n.tag)throw Error(c(170));var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(ho(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);throw Error(c(171))}if(1===n.tag){var s=n.type;if(ho(s)){n=vo(n,s,l);break e}}n=l}else n=po;return null===t.context?t.context=n:t.pendingContext=n,(t=dr(r,i)).payload={element:e},null!==(a=void 0===a?null:a)&&(t.callback=a),ur(o,t),fl(o,i,r),i}function es(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function ts(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function ns(e,t){ts(e,t),(e=e.alternate)&&ts(e,t)}function as(e,t,n){var a=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xl(e,t,null!=n&&!0===n.hydrate),t=Hl(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,lr(t),e[Ja]=n.current,Pa(8===e.nodeType?e.parentNode:e),a)for(e=0;e<a.length;e++){var o=(t=a[e])._getVersion;o=o(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,o]:n.mutableSourceEagerHydrationData.push(t,o)}this._internalRoot=n}function os(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function rs(e,t,n,a,o){var r=n._reactRootContainer;if(r){var c=r._internalRoot;if("function"==typeof o){var i=o;o=function(){var e=es(c);i.call(e)}}Jl(t,c,e,o)}else{if(r=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new as(e,0,t?{hydrate:!0}:void 0)}(n,a),c=r._internalRoot,"function"==typeof o){var l=o;o=function(){var e=es(c);l.call(e)}}xl((function(){Jl(t,c,e,o)}))}return es(c)}function cs(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!os(t))throw Error(c(200));return function(e,t,n){var a=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:k,key:null==a?null:""+a,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Wi=function(e,t,n){var a=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||fo.current)Dc=!0;else{if(0==(n&a)){switch(Dc=!1,t.tag){case 3:Zc(t),Vr();break;case 5:Mr(t);break;case 1:ho(t.type)&&xo(t);break;case 4:Nr(t,t.stateNode.containerInfo);break;case 10:a=t.memoizedProps.value;var o=t.type._context;uo(Xo,o._currentValue),o._currentValue=a;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xc(e,t,n):(uo(Ir,1&Ir.current),null!==(t=ri(e,t,n))?t.sibling:null);uo(Ir,1&Ir.current);break;case 19:if(a=0!=(n&t.childLanes),0!=(64&e.flags)){if(a)return oi(e,t,n);t.flags|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),uo(Ir,Ir.current),a)break;return null;case 23:case 24:return t.lanes=0,zc(e,t,n)}return ri(e,t,n)}Dc=0!=(16384&e.flags)}else Dc=!1;switch(t.lanes=0,t.tag){case 2:if(a=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=mo(t,bo.current),rr(t,n),o=cc(null,t,a,e,o,n),t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ho(a)){var r=!0;xo(t)}else r=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,lr(t);var i=a.getDerivedStateFromProps;"function"==typeof i&&mr(t,a,i,e),o.updater=hr,t.stateNode=o,o._reactInternals=t,xr(t,a,e,n),t=Gc(null,t,a,!0,r,n)}else t.tag=0,Ic(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=(r=o._init)(o._payload),t.type=o,r=t.tag=function(e){if("function"==typeof e)return Gl(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===R)return 14}return 2}(o),e=Ko(o,e),r){case 0:t=$c(null,t,o,e,n);break e;case 1:t=Hc(null,t,o,e,n);break e;case 11:t=Fc(null,t,o,e,n);break e;case 14:t=qc(null,t,o,Ko(o.type,e),a,n);break e}throw Error(c(306,o,""))}return t;case 0:return a=t.type,o=t.pendingProps,$c(e,t,a,o=t.elementType===a?o:Ko(a,o),n);case 1:return a=t.type,o=t.pendingProps,Hc(e,t,a,o=t.elementType===a?o:Ko(a,o),n);case 3:if(Zc(t),a=t.updateQueue,null===e||null===a)throw Error(c(282));if(a=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,sr(e,t),br(t,a,null,n),(a=t.memoizedState.element)===o)Vr(),t=ri(e,t,n);else{if((r=(o=t.stateNode).hydrate)&&(Br=Va(t.stateNode.containerInfo.firstChild),qr=t,r=zr=!0),r){if(null!=(e=o.mutableSourceEagerHydrationData))for(o=0;o<e.length;o+=2)(r=e[o])._workInProgressVersionPrimary=e[o+1],Wr.push(r);for(n=Tr(t,null,a,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Ic(e,t,a,n),Vr();t=t.child}return t;case 5:return Mr(t),null===e&&Hr(t),a=t.type,o=t.pendingProps,r=null!==e?e.memoizedProps:null,i=o.children,$a(a,o)?i=null:null!==r&&$a(a,r)&&(t.flags|=16),Uc(e,t),Ic(e,t,i,n),t.child;case 6:return null===e&&Hr(t),null;case 13:return Xc(e,t,n);case 4:return Nr(t,t.stateNode.containerInfo),a=t.pendingProps,null===e?t.child=Cr(t,null,a,n):Ic(e,t,a,n),t.child;case 11:return a=t.type,o=t.pendingProps,Fc(e,t,a,o=t.elementType===a?o:Ko(a,o),n);case 7:return Ic(e,t,t.pendingProps,n),t.child;case 8:case 12:return Ic(e,t,t.pendingProps.children,n),t.child;case 10:e:{a=t.type._context,o=t.pendingProps,i=t.memoizedProps,r=o.value;var l=t.type._context;if(uo(Xo,l._currentValue),l._currentValue=r,null!==i)if(l=i.value,0===(r=sa(l,r)?0:0|("function"==typeof a._calculateChangedBits?a._calculateChangedBits(l,r):1073741823))){if(i.children===o.children&&!fo.current){t=ri(e,t,n);break e}}else for(null!==(l=t.child)&&(l.return=t);null!==l;){var s=l.dependencies;if(null!==s){i=l.child;for(var d=s.firstContext;null!==d;){if(d.context===a&&0!=(d.observedBits&r)){1===l.tag&&((d=dr(-1,n&-n)).tag=2,ur(l,d)),l.lanes|=n,null!==(d=l.alternate)&&(d.lanes|=n),or(l.return,n),s.lanes|=n;break}d=d.next}}else i=10===l.tag&&l.type===t.type?null:l.child;if(null!==i)i.return=l;else for(i=l;null!==i;){if(i===t){i=null;break}if(null!==(l=i.sibling)){l.return=i.return,i=l;break}i=i.return}l=i}Ic(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,a=(r=t.pendingProps).children,rr(t,n),a=a(o=cr(o,r.unstable_observedBits)),t.flags|=1,Ic(e,t,a,n),t.child;case 14:return r=Ko(o=t.type,t.pendingProps),qc(e,t,o,r=Ko(o.type,r),a,n);case 15:return Bc(e,t,t.type,t.pendingProps,a,n);case 17:return a=t.type,o=t.pendingProps,o=t.elementType===a?o:Ko(a,o),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ho(a)?(e=!0,xo(t)):e=!1,rr(t,n),yr(t,a,o),xr(t,a,o,n),Gc(null,t,a,!0,e,n);case 19:return oi(e,t,n);case 23:case 24:return zc(e,t,n)}throw Error(c(156,t.tag))},as.prototype.render=function(e){Jl(e,this._internalRoot,null,null)},as.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Jl(null,e,null,(function(){t[Ja]=null}))},et=function(e){13===e.tag&&(fl(e,4,pl()),ns(e,4))},tt=function(e){13===e.tag&&(fl(e,67108864,pl()),ns(e,67108864))},nt=function(e){if(13===e.tag){var t=pl(),n=bl(e);fl(e,n,t),ns(e,n)}},at=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var o=oo(a);if(!o)throw Error(c(90));K(a),ne(a,o)}}}break;case"textarea":se(e,n);break;case"select":null!=(t=n.value)&&ce(e,!!n.multiple,t,!1)}},Re=vl,Ne=function(e,t,n,a,o){var r=Ri;Ri|=4;try{return Zo(98,e.bind(null,t,n,a,o))}finally{0===(Ri=r)&&(Vi(),Wo())}},Oe=function(){0==(49&Ri)&&(function(){if(null!==ol){var e=ol;ol=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,ml(e,$o())}))}Wo()}(),Ml())},Me=function(e,t){var n=Ri;Ri|=2;try{return e(t)}finally{0===(Ri=n)&&(Vi(),Wo())}};var is={Events:[no,ao,oo,je,Pe,Ml,{current:!1}]},ls={findFiberByHostInstance:to,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},ss={bundleType:ls.bundleType,version:ls.version,rendererPackageName:ls.rendererPackageName,rendererConfig:ls.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:x.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Xe(e))?null:e.stateNode},findFiberByHostInstance:ls.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ds=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ds.isDisabled&&ds.supportsFiber)try{ko=ds.inject(ss),Eo=ds}catch(ge){}}t.hydrate=function(e,t,n){if(!os(t))throw Error(c(200));return rs(null,e,t,!0,n)}},73935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(64448)},69590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,a="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function r(e,c){if(e===c)return!0;if(e&&c&&"object"==typeof e&&"object"==typeof c){if(e.constructor!==c.constructor)return!1;var i,l,s,d;if(Array.isArray(e)){if((i=e.length)!=c.length)return!1;for(l=i;0!=l--;)if(!r(e[l],c[l]))return!1;return!0}if(n&&e instanceof Map&&c instanceof Map){if(e.size!==c.size)return!1;for(d=e.entries();!(l=d.next()).done;)if(!c.has(l.value[0]))return!1;for(d=e.entries();!(l=d.next()).done;)if(!r(l.value[1],c.get(l.value[0])))return!1;return!0}if(a&&e instanceof Set&&c instanceof Set){if(e.size!==c.size)return!1;for(d=e.entries();!(l=d.next()).done;)if(!c.has(l.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(c)){if((i=e.length)!=c.length)return!1;for(l=i;0!=l--;)if(e[l]!==c[l])return!1;return!0}if(e.constructor===RegExp)return e.source===c.source&&e.flags===c.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof c.valueOf)return e.valueOf()===c.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof c.toString)return e.toString()===c.toString();if((i=(s=Object.keys(e)).length)!==Object.keys(c).length)return!1;for(l=i;0!=l--;)if(!Object.prototype.hasOwnProperty.call(c,s[l]))return!1;if(t&&e instanceof Element)return!1;for(l=i;0!=l--;)if(("_owner"!==s[l]&&"__v"!==s[l]&&"__o"!==s[l]||!e.$$typeof)&&!r(e[s[l]],c[s[l]]))return!1;return!0}return e!=e&&c!=c}e.exports=function(e,t){try{return r(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},70405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>G,ql:()=>J});var a=n(67294),o=n(45697),r=n.n(o),c=n(69590),i=n.n(c),l=n(41143),s=n.n(l),d=n(96774),u=n.n(d);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},p.apply(this,arguments)}function b(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,f(e,t)}function f(e,t){return f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},f(e,t)}function g(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)t.indexOf(n=r[a])>=0||(o[n]=e[n]);return o}var m={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},h={rel:["amphtml","canonical","alternate"]},_={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},v=Object.keys(m).map((function(e){return m[e]})),x={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},w=Object.keys(x).reduce((function(e,t){return e[x[t]]=t,e}),{}),k=function(e,t){for(var n=e.length-1;n>=0;n-=1){var a=e[n];if(Object.prototype.hasOwnProperty.call(a,t))return a[t]}return null},E=function(e){var t=k(e,m.TITLE),n=k(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var a=k(e,"defaultTitle");return t||a||void 0},S=function(e){return k(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[m.BASE]})).map((function(e){return e[m.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var a=Object.keys(n),o=0;o<a.length;o+=1){var r=a[o].toLowerCase();if(-1!==e.indexOf(r)&&n[r])return t.concat(n)}return t}),[])},A=function(e,t,n){var a={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n,r=Object.keys(e),c=0;c<r.length;c+=1){var i=r[c],l=i.toLowerCase();-1===t.indexOf(l)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===l&&"stylesheet"===e[l].toLowerCase()||(n=l),-1===t.indexOf(i)||"innerHTML"!==i&&"cssText"!==i&&"itemprop"!==i||(n=i)}if(!n||!e[n])return!1;var s=e[n].toLowerCase();return a[n]||(a[n]={}),o[n]||(o[n]={}),!a[n][s]&&(o[n][s]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var r=Object.keys(o),c=0;c<r.length;c+=1){var i=r[c],l=p({},a[i],o[i]);a[i]=l}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},j=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),a=0;a<n.length;a+=1)if(t[n[a]]&&t[n[a]].includes(e[n[a]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},R=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},N=[m.NOSCRIPT,m.SCRIPT,m.STYLE],O=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},M=function(e){return Object.keys(e).reduce((function(t,n){var a=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+a:a}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[x[n]||n]=e[n],t}),t)},I=function(e,t){return t.map((function(t,n){var o,r=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=x[e]||e;"innerHTML"===n||"cssText"===n?r.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:r[n]=t[e]})),a.createElement(e,r)}))},F=function(e,t,n){switch(e){case m.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,r=D(n,o),[a.createElement(m.TITLE,r,e)];var e,n,o,r},toString:function(){return function(e,t,n,a){var o=M(n),r=j(t);return o?"<"+e+' data-rh="true" '+o+">"+O(r,a)+"</"+e+">":"<"+e+' data-rh="true">'+O(r,a)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return M(t)}};default:return{toComponent:function(){return I(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,a){var o=Object.keys(a).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===a[t]?t:t+'="'+O(a[t],n)+'"';return e?e+" "+o:o}),""),r=a.innerHTML||a.cssText||"",c=-1===N.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(c?"/>":">"+r+"</"+e+">")}),"")}(e,t,n)}}}},q=function(e){var t=e.baseTag,n=e.bodyAttributes,a=e.encode,o=e.htmlAttributes,r=e.noscriptTags,c=e.styleTags,i=e.title,l=void 0===i?"":i,s=e.titleAttributes,d=e.linkTags,u=e.metaTags,p=e.scriptTags,b={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var f=function(e){var t=e.linkTags,n=e.scriptTags,a=e.encode,o=P(e.metaTags,y),r=P(t,h),c=P(n,_);return{priorityMethods:{toComponent:function(){return[].concat(I(m.META,o.priority),I(m.LINK,r.priority),I(m.SCRIPT,c.priority))},toString:function(){return F(m.META,o.priority,a)+" "+F(m.LINK,r.priority,a)+" "+F(m.SCRIPT,c.priority,a)}},metaTags:o.default,linkTags:r.default,scriptTags:c.default}}(e);b=f.priorityMethods,d=f.linkTags,u=f.metaTags,p=f.scriptTags}return{priority:b,base:F(m.BASE,t,a),bodyAttributes:F("bodyAttributes",n,a),htmlAttributes:F("htmlAttributes",o,a),link:F(m.LINK,d,a),meta:F(m.META,u,a),noscript:F(m.NOSCRIPT,r,a),script:F(m.SCRIPT,p,a),style:F(m.STYLE,c,a),title:F(m.TITLE,{title:l,titleAttributes:s},a)}},B=[],z=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=q({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=a.createContext({}),$=r().shape({setHelmet:r().func,helmetInstances:r().shape({get:r().func,add:r().func,remove:r().func})}),H="undefined"!=typeof document,G=function(e){function t(n){var a;return(a=e.call(this,n)||this).helmetData=new z(a.props.context,t.canUseDOM),a}return b(t,e),t.prototype.render=function(){return a.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(a.Component);G.canUseDOM=H,G.propTypes={context:r().shape({helmet:r().shape()}),children:r().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var Z=function(e,t){var n,a=document.head||document.querySelector(m.HEAD),o=a.querySelectorAll(e+"[data-rh]"),r=[].slice.call(o),c=[];return t&&t.length&&t.forEach((function(t){var a=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?a.innerHTML=t.innerHTML:"cssText"===o?a.styleSheet?a.styleSheet.cssText=t.cssText:a.appendChild(document.createTextNode(t.cssText)):a.setAttribute(o,void 0===t[o]?"":t[o]));a.setAttribute("data-rh","true"),r.some((function(e,t){return n=t,a.isEqualNode(e)}))?r.splice(n,1):c.push(a)})),r.forEach((function(e){return e.parentNode.removeChild(e)})),c.forEach((function(e){return a.appendChild(e)})),{oldTags:r,newTags:c}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var a=n.getAttribute("data-rh"),o=a?a.split(","):[],r=[].concat(o),c=Object.keys(t),i=0;i<c.length;i+=1){var l=c[i],s=t[l]||"";n.getAttribute(l)!==s&&n.setAttribute(l,s),-1===o.indexOf(l)&&o.push(l);var d=r.indexOf(l);-1!==d&&r.splice(d,1)}for(var u=r.length-1;u>=0;u-=1)n.removeAttribute(r[u]);o.length===r.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==c.join(",")&&n.setAttribute("data-rh",c.join(","))}},W=function(e,t){var n=e.baseTag,a=e.htmlAttributes,o=e.linkTags,r=e.metaTags,c=e.noscriptTags,i=e.onChangeClientState,l=e.scriptTags,s=e.styleTags,d=e.title,u=e.titleAttributes;V(m.BODY,e.bodyAttributes),V(m.HTML,a),function(e,t){void 0!==e&&document.title!==e&&(document.title=j(e)),V(m.TITLE,t)}(d,u);var p={baseTag:Z(m.BASE,n),linkTags:Z(m.LINK,o),metaTags:Z(m.META,r),noscriptTags:Z(m.NOSCRIPT,c),scriptTags:Z(m.SCRIPT,l),styleTags:Z(m.STYLE,s)},b={},f={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,a=t.oldTags;n.length&&(b[e]=n),a.length&&(f[e]=p[e].oldTags)})),t&&t(),i(e,b,f)},Q=null,Y=function(e){function t(){for(var t,n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return(t=e.call.apply(e,[this].concat(a))||this).rendered=!1,t}b(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!u()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,a=n.setHelmet,o=null,r=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:k(e,"defer"),encode:k(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(m.LINK,["rel","href"],e),metaTags:A(m.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(m.NOSCRIPT,["innerHTML"],e),onChangeClientState:S(e),scriptTags:A(m.SCRIPT,["src","innerHTML"],e),styleTags:A(m.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});G.canUseDOM?(t=r,Q&&cancelAnimationFrame(Q),t.defer?Q=requestAnimationFrame((function(){W(t,(function(){Q=null}))})):(W(t),Q=null)):q&&(o=q(r)),a(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(a.Component);Y.propTypes={context:$.isRequired},Y.displayName="HelmetDispatcher";var K=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}b(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!i()(R(this.props,"helmetData"),R(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case m.SCRIPT:case m.NOSCRIPT:return{innerHTML:t};case m.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,a=e.arrayTypeChildren;return p({},a,((t={})[n.type]=[].concat(a[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,a=e.child,o=e.newProps,r=e.newChildProps,c=e.nestedChildren;switch(a.type){case m.TITLE:return p({},o,((t={})[a.type]=c,t.titleAttributes=p({},r),t));case m.BODY:return p({},o,{bodyAttributes:p({},r)});case m.HTML:return p({},o,{htmlAttributes:p({},r)});default:return p({},o,((n={})[a.type]=p({},r),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var a;n=p({},n,((a={})[t]=e[t],a))})),n},n.warnOnInvalidChildren=function(e,t){return s()(v.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+v.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),s()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return a.Children.forEach(e,(function(e){if(e&&e.props){var a=e.props,r=a.children,c=g(a,K),i=Object.keys(c).reduce((function(e,t){return e[w[t]||t]=c[t],e}),{}),l=e.type;switch("symbol"==typeof l?l=l.toString():n.warnOnInvalidChildren(e,r),l){case m.FRAGMENT:t=n.mapChildrenToProps(r,t);break;case m.LINK:case m.META:case m.NOSCRIPT:case m.SCRIPT:case m.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:i,nestedChildren:r});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:i,nestedChildren:r})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=g(e,X),o=p({},n),r=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!r||r instanceof z||(r=new z(r.context,r.instances)),r?a.createElement(Y,p({},o,{context:r.value,helmetData:void 0})):a.createElement(U.Consumer,null,(function(e){return a.createElement(Y,p({},o,{context:e}))}))},t}(a.Component);J.propTypes={base:r().object,bodyAttributes:r().object,children:r().oneOfType([r().arrayOf(r().node),r().node]),defaultTitle:r().string,defer:r().bool,encodeSpecialCharacters:r().bool,htmlAttributes:r().object,link:r().arrayOf(r().object),meta:r().arrayOf(r().object),noscript:r().arrayOf(r().object),onChangeClientState:r().func,script:r().arrayOf(r().object),style:r().arrayOf(r().object),title:r().string,titleAttributes:r().object,titleTemplate:r().string,prioritizeSeoTags:r().bool,helmetData:r().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},69921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,a=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,r=n?Symbol.for("react.fragment"):60107,c=n?Symbol.for("react.strict_mode"):60108,i=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,d=n?Symbol.for("react.async_mode"):60111,u=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,b=n?Symbol.for("react.suspense"):60113,f=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,m=n?Symbol.for("react.lazy"):60116,h=n?Symbol.for("react.block"):60121,_=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,v=n?Symbol.for("react.scope"):60119;function x(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case a:switch(e=e.type){case d:case u:case r:case i:case c:case b:return e;default:switch(e=e&&e.$$typeof){case s:case p:case m:case g:case l:return e;default:return t}}case o:return t}}}function w(e){return x(e)===u}t.AsyncMode=d,t.ConcurrentMode=u,t.ContextConsumer=s,t.ContextProvider=l,t.Element=a,t.ForwardRef=p,t.Fragment=r,t.Lazy=m,t.Memo=g,t.Portal=o,t.Profiler=i,t.StrictMode=c,t.Suspense=b,t.isAsyncMode=function(e){return w(e)||x(e)===d},t.isConcurrentMode=w,t.isContextConsumer=function(e){return x(e)===s},t.isContextProvider=function(e){return x(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},t.isForwardRef=function(e){return x(e)===p},t.isFragment=function(e){return x(e)===r},t.isLazy=function(e){return x(e)===m},t.isMemo=function(e){return x(e)===g},t.isPortal=function(e){return x(e)===o},t.isProfiler=function(e){return x(e)===i},t.isStrictMode=function(e){return x(e)===c},t.isSuspense=function(e){return x(e)===b},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===r||e===u||e===i||e===c||e===b||e===f||"object"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===g||e.$$typeof===l||e.$$typeof===s||e.$$typeof===p||e.$$typeof===_||e.$$typeof===y||e.$$typeof===v||e.$$typeof===h)},t.typeOf=x},59864:(e,t,n)=>{"use strict";e.exports=n(69921)},68356:(e,t,n)=>{"use strict";function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(){return c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},c.apply(this,arguments)}var i=n(67294),l=n(45697),s=[],d=[];function u(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(a){var o=u(e[a]);o.loading?t.loading=!0:(t.loaded[a]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[a]=e})).catch((function(e){t.error=e}))}))}catch(a){t.error=a}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function b(e,t){return i.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function f(e,t){var u,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var f=c({loader:null,loading:null,delay:200,timeout:null,render:b,webpack:null,modules:null},t),g=null;function m(){return g||(g=e(f.loader)),g.promise}return s.push(m),"function"==typeof f.webpack&&d.push((function(){if((0,f.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return m()})),p=u=function(t){function n(n){var a;return r(o(o(a=t.call(this,n)||this)),"retry",(function(){a.setState({error:null,loading:!0,timedOut:!1}),g=e(f.loader),a._loadModule()})),m(),a.state={error:g.error,pastDelay:!1,timedOut:!1,loading:g.loading,loaded:g.loaded},a}a(n,t),n.preload=function(){return m()};var c=n.prototype;return c.UNSAFE_componentWillMount=function(){this._loadModule()},c.componentDidMount=function(){this._mounted=!0},c._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(f.modules)&&f.modules.forEach((function(t){e.context.loadable.report(t)})),g.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof f.delay&&(0===f.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),f.delay)),"number"==typeof f.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),f.timeout));var n=function(){t({error:g.error,loaded:g.loaded,loading:g.loading}),e._clearTimeouts()};g.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},c.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},c._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},c.render=function(){return this.state.loading||this.state.error?i.createElement(f.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?f.render(this.state.loaded,this.props):null},n}(i.Component),r(u,"contextTypes",{loadable:l.shape({report:l.func.isRequired})}),p}function g(e){return f(u,e)}g.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return f(p,e)};var m=function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return i.Children.only(this.props.children)},t}(i.Component);function h(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return h(e)}))}r(m,"propTypes",{report:l.func.isRequired}),r(m,"childContextTypes",{loadable:l.shape({report:l.func.isRequired}).isRequired}),g.Capture=m,g.preloadAll=function(){return new Promise((function(e,t){h(s).then(e,t)}))},g.preloadReady=function(){return new Promise((function(e,t){h(d).then(e,e)}))},e.exports=g},18790:(e,t,n)=>{"use strict";n.d(t,{H:()=>i,f:()=>c});var a=n(16550),o=n(87462),r=n(67294);function c(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,a.LX)(t,e):n.length?n[n.length-1].match:a.F0.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&c(e.routes,t,n)),o})),n}function i(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?r.createElement(a.rs,n,e.map((function(e,n){return r.createElement(a.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.Z)({},n,{},t,{route:e})):r.createElement(e.component,(0,o.Z)({},n,t,{route:e}))}})}))):null}},73727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>d,rU:()=>m});var a=n(16550),o=n(75068),r=n(67294),c=n(99318),i=n(87462),l=n(63366),s=n(38776),d=function(e){function t(){for(var t,n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return(t=e.call.apply(e,[this].concat(a))||this).history=(0,c.lX)(t.props),t}return(0,o.Z)(t,e),t.prototype.render=function(){return r.createElement(a.F0,{history:this.history,children:this.props.children})},t}(r.Component);r.Component;var u=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,c.ob)(e,null,null,t):e},b=function(e){return e},f=r.forwardRef;void 0===f&&(f=b);var g=f((function(e,t){var n=e.innerRef,a=e.navigate,o=e.onClick,c=(0,l.Z)(e,["innerRef","navigate","onClick"]),s=c.target,d=(0,i.Z)({},c,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||s&&"_self"!==s||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),a())}});return d.ref=b!==f&&t||n,r.createElement("a",d)}));var m=f((function(e,t){var n=e.component,o=void 0===n?g:n,d=e.replace,m=e.to,h=e.innerRef,_=(0,l.Z)(e,["component","replace","to","innerRef"]);return r.createElement(a.s6.Consumer,null,(function(e){e||(0,s.Z)(!1);var n=e.history,a=p(u(m,e.location),e.location),l=a?n.createHref(a):"",g=(0,i.Z)({},_,{href:l,navigate:function(){var t=u(m,e.location),a=(0,c.Ep)(e.location)===(0,c.Ep)(p(t));(d||a?n.replace:n.push)(t)}});return b!==f?g.ref=t||h:g.innerRef=h,r.createElement(o,g)}))})),h=function(e){return e},_=r.forwardRef;void 0===_&&(_=h);var y=_((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,c=e.activeClassName,d=void 0===c?"active":c,b=e.activeStyle,f=e.className,g=e.exact,y=e.isActive,v=e.location,x=e.sensitive,w=e.strict,k=e.style,E=e.to,S=e.innerRef,C=(0,l.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return r.createElement(a.s6.Consumer,null,(function(e){e||(0,s.Z)(!1);var n=v||e.location,c=p(u(E,n),n),l=c.pathname,T=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,a.LX)(n.pathname,{path:T,exact:g,sensitive:x,strict:w}):null,L=!!(y?y(A,n):A),j="function"==typeof f?f(L):f,P="function"==typeof k?k(L):k;L&&(j=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(j,d),P=(0,i.Z)({},P,b));var R=(0,i.Z)({"aria-current":L&&o||null,className:j,style:P,to:c},C);return h!==_?R.ref=t||S:R.innerRef=S,r.createElement(m,R)}))}))},16550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>E,F0:()=>y,LX:()=>k,TH:()=>N,k6:()=>R,rs:()=>j,s6:()=>_});var a=n(75068),o=n(67294),r=n(45697),c=n.n(r),i=n(99318),l=n(38776),s=n(87462),d=n(39658),u=n.n(d),p=(n(59864),n(63366)),b=(n(8679),1073741823),f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var g=o.createContext||function(e,t){var n,r,i="__create-react-context-"+function(){var e="__global_unique_id__";return f[e]=(f[e]||0)+1}()+"__",l=function(e){function n(){for(var t,n,a,o=arguments.length,r=new Array(o),c=0;c<o;c++)r[c]=arguments[c];return(t=e.call.apply(e,[this].concat(r))||this).emitter=(n=t.props.value,a=[],{on:function(e){a.push(e)},off:function(e){a=a.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,a.forEach((function(e){return e(n,t)}))}}),t}(0,a.Z)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[i]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,a=this.props.value,o=e.value;((r=a)===(c=o)?0!==r||1/r==1/c:r!=r&&c!=c)?n=0:(n="function"==typeof t?t(a,o):b,0!==(n|=0)&&this.emitter.set(e.value,n))}var r,c},o.render=function(){return this.props.children},n}(o.Component);l.childContextTypes=((n={})[i]=c().object.isRequired,n);var s=function(t){function n(){for(var e,n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return(e=t.call.apply(t,[this].concat(a))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,a.Z)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?b:t},o.componentDidMount=function(){this.context[i]&&this.context[i].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?b:e},o.componentWillUnmount=function(){this.context[i]&&this.context[i].off(this.onUpdate)},o.getValue=function(){return this.context[i]?this.context[i].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return s.contextTypes=((r={})[i]=c().object,r),{Provider:l,Consumer:s}},m=function(e){var t=g();return t.displayName=e,t},h=m("Router-History"),_=m("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,a.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(_.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(h.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;o.Component;var v={},x=1e4,w=0;function k(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,a=n.path,o=n.exact,r=void 0!==o&&o,c=n.strict,i=void 0!==c&&c,l=n.sensitive,s=void 0!==l&&l;return[].concat(a).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var a=function(e,t){var n=""+t.end+t.strict+t.sensitive,a=v[n]||(v[n]={});if(a[e])return a[e];var o=[],r={regexp:u()(e,o,t),keys:o};return w<x&&(a[e]=r,w++),r}(n,{end:r,strict:i,sensitive:s}),o=a.regexp,c=a.keys,l=o.exec(e);if(!l)return null;var d=l[0],p=l.slice(1),b=e===d;return r&&!b?null:{path:n,url:"/"===n&&""===d?"/":d,isExact:b,params:c.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var E=function(e){function t(){return e.apply(this,arguments)||this}return(0,a.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(_.Consumer,null,(function(t){t||(0,l.Z)(!1);var n=e.props.location||t.location,a=e.props.computedMatch?e.props.computedMatch:e.props.path?k(n.pathname,e.props):t.match,r=(0,s.Z)({},t,{location:n,match:a}),c=e.props,i=c.children,d=c.component,u=c.render;return Array.isArray(i)&&function(e){return 0===o.Children.count(e)}(i)&&(i=null),o.createElement(_.Provider,{value:r},r.match?i?"function"==typeof i?i(r):i:d?o.createElement(d,r):u?u(r):null:"function"==typeof i?i(r):null)}))},t}(o.Component);function S(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=S(e);return 0!==t.pathname.indexOf(n)?t:(0,s.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,i.Ep)(e)}function A(e){return function(){(0,l.Z)(!1)}}function L(){}o.Component;var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,a.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(_.Consumer,null,(function(t){t||(0,l.Z)(!1);var n,a,r=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==a&&o.isValidElement(e)){n=e;var c=e.props.path||e.props.from;a=c?k(r.pathname,(0,s.Z)({},e.props,{path:c})):t.match}})),a?o.cloneElement(n,{location:r,computedMatch:a}):null}))},t}(o.Component);var P=o.useContext;function R(){return P(h)}function N(){return P(_).location}},39658:(e,t,n)=>{var a=n(5826);e.exports=b,e.exports.parse=r,e.exports.compile=function(e,t){return i(r(e,t),t)},e.exports.tokensToFunction=i,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function r(e,t){for(var n,a=[],r=0,c=0,i="",d=t&&t.delimiter||"/";null!=(n=o.exec(e));){var u=n[0],p=n[1],b=n.index;if(i+=e.slice(c,b),c=b+u.length,p)i+=p[1];else{var f=e[c],g=n[2],m=n[3],h=n[4],_=n[5],y=n[6],v=n[7];i&&(a.push(i),i="");var x=null!=g&&null!=f&&f!==g,w="+"===y||"*"===y,k="?"===y||"*"===y,E=n[2]||d,S=h||_;a.push({name:m||r++,prefix:g||"",delimiter:E,optional:k,repeat:w,partial:x,asterisk:!!v,pattern:S?s(S):v?".*":"[^"+l(E)+"]+?"})}}return c<e.length&&(i+=e.substr(c)),i&&a.push(i),a}function c(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function i(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",u(t)));return function(t,o){for(var r="",i=t||{},l=(o||{}).pretty?c:encodeURIComponent,s=0;s<e.length;s++){var d=e[s];if("string"!=typeof d){var u,p=i[d.name];if(null==p){if(d.optional){d.partial&&(r+=d.prefix);continue}throw new TypeError('Expected "'+d.name+'" to be defined')}if(a(p)){if(!d.repeat)throw new TypeError('Expected "'+d.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(d.optional)continue;throw new TypeError('Expected "'+d.name+'" to not be empty')}for(var b=0;b<p.length;b++){if(u=l(p[b]),!n[s].test(u))throw new TypeError('Expected all "'+d.name+'" to match "'+d.pattern+'", but received `'+JSON.stringify(u)+"`");r+=(0===b?d.prefix:d.delimiter)+u}}else{if(u=d.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):l(p),!n[s].test(u))throw new TypeError('Expected "'+d.name+'" to match "'+d.pattern+'", but received "'+u+'"');r+=d.prefix+u}}else r+=d}return r}}function l(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function s(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function d(e,t){return e.keys=t,e}function u(e){return e&&e.sensitive?"":"i"}function p(e,t,n){a(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,r=!1!==n.end,c="",i=0;i<e.length;i++){var s=e[i];if("string"==typeof s)c+=l(s);else{var p=l(s.prefix),b="(?:"+s.pattern+")";t.push(s),s.repeat&&(b+="(?:"+p+b+")*"),c+=b=s.optional?s.partial?p+"("+b+")?":"(?:"+p+"("+b+"))?":p+"("+b+")"}}var f=l(n.delimiter||"/"),g=c.slice(-f.length)===f;return o||(c=(g?c.slice(0,-f.length):c)+"(?:"+f+"(?=$))?"),c+=r?"$":o&&g?"":"(?="+f+"|$)",d(new RegExp("^"+c,u(n)),t)}function b(e,t,n){return a(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var a=0;a<n.length;a++)t.push({name:a,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return d(e,t)}(e,t):a(e)?function(e,t,n){for(var a=[],o=0;o<e.length;o++)a.push(b(e[o],t,n).source);return d(new RegExp("(?:"+a.join("|")+")",u(n)),t)}(e,t,n):function(e,t,n){return p(r(e,n),t,n)}(e,t,n)}},72408:(e,t,n)=>{"use strict";var a=n(27418),o=60103,r=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var c=60109,i=60110,l=60112;t.Suspense=60113;var s=60115,d=60116;if("function"==typeof Symbol&&Symbol.for){var u=Symbol.for;o=u("react.element"),r=u("react.portal"),t.Fragment=u("react.fragment"),t.StrictMode=u("react.strict_mode"),t.Profiler=u("react.profiler"),c=u("react.provider"),i=u("react.context"),l=u("react.forward_ref"),t.Suspense=u("react.suspense"),s=u("react.memo"),d=u("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function b(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var f={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g={};function m(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||f}function h(){}function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||f}m.prototype.isReactComponent={},m.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(b(85));this.updater.enqueueSetState(this,e,t,"setState")},m.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},h.prototype=m.prototype;var y=_.prototype=new h;y.constructor=_,a(y,m.prototype),y.isPureReactComponent=!0;var v={current:null},x=Object.prototype.hasOwnProperty,w={key:!0,ref:!0,__self:!0,__source:!0};function k(e,t,n){var a,r={},c=null,i=null;if(null!=t)for(a in void 0!==t.ref&&(i=t.ref),void 0!==t.key&&(c=""+t.key),t)x.call(t,a)&&!w.hasOwnProperty(a)&&(r[a]=t[a]);var l=arguments.length-2;if(1===l)r.children=n;else if(1<l){for(var s=Array(l),d=0;d<l;d++)s[d]=arguments[d+2];r.children=s}if(e&&e.defaultProps)for(a in l=e.defaultProps)void 0===r[a]&&(r[a]=l[a]);return{$$typeof:o,type:e,key:c,ref:i,props:r,_owner:v.current}}function E(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var S=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,a,c){var i=typeof e;"undefined"!==i&&"boolean"!==i||(e=null);var l=!1;if(null===e)l=!0;else switch(i){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case o:case r:l=!0}}if(l)return c=c(l=e),e=""===a?"."+C(l,0):a,Array.isArray(c)?(n="",null!=e&&(n=e.replace(S,"$&/")+"/"),T(c,t,n,"",(function(e){return e}))):null!=c&&(E(c)&&(c=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(c,n+(!c.key||l&&l.key===c.key?"":(""+c.key).replace(S,"$&/")+"/")+e)),t.push(c)),1;if(l=0,a=""===a?".":a+":",Array.isArray(e))for(var s=0;s<e.length;s++){var d=a+C(i=e[s],s);l+=T(i,t,n,d,c)}else if(d=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof d)for(e=d.call(e),s=0;!(i=e.next()).done;)l+=T(i=i.value,t,n,d=a+C(i,s++),c);else if("object"===i)throw t=""+e,Error(b(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return l}function A(e,t,n){if(null==e)return e;var a=[],o=0;return T(e,a,"","",(function(e){return t.call(n,e,o++)})),a}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var j={current:null};function P(){var e=j.current;if(null===e)throw Error(b(321));return e}var R={ReactCurrentDispatcher:j,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:v,IsSomeRendererActing:{current:!1},assign:a};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!E(e))throw Error(b(143));return e}},t.Component=m,t.PureComponent=_,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=R,t.cloneElement=function(e,t,n){if(null==e)throw Error(b(267,e));var r=a({},e.props),c=e.key,i=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,l=v.current),void 0!==t.key&&(c=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(d in t)x.call(t,d)&&!w.hasOwnProperty(d)&&(r[d]=void 0===t[d]&&void 0!==s?s[d]:t[d])}var d=arguments.length-2;if(1===d)r.children=n;else if(1<d){s=Array(d);for(var u=0;u<d;u++)s[u]=arguments[u+2];r.children=s}return{$$typeof:o,type:e.type,key:c,ref:i,props:r,_owner:l}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:i,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:c,_context:e},e.Consumer=e},t.createElement=k,t.createFactory=function(e){var t=k.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:l,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:s,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return P().useCallback(e,t)},t.useContext=function(e,t){return P().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return P().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return P().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return P().useLayoutEffect(e,t)},t.useMemo=function(e,t){return P().useMemo(e,t)},t.useReducer=function(e,t,n){return P().useReducer(e,t,n)},t.useRef=function(e){return P().useRef(e)},t.useState=function(e){return P().useState(e)},t.version="17.0.2"},67294:(e,t,n)=>{"use strict";e.exports=n(72408)},60053:(e,t)=>{"use strict";var n,a,o,r;if("object"==typeof performance&&"function"==typeof performance.now){var c=performance;t.unstable_now=function(){return c.now()}}else{var i=Date,l=i.now();t.unstable_now=function(){return i.now()-l}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var s=null,d=null,u=function(){if(null!==s)try{var e=t.unstable_now();s(!0,e),s=null}catch(n){throw setTimeout(u,0),n}};n=function(e){null!==s?setTimeout(n,0,e):(s=e,setTimeout(u,0))},a=function(e,t){d=setTimeout(e,t)},o=function(){clearTimeout(d)},t.unstable_shouldYield=function(){return!1},r=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,b=window.clearTimeout;if("undefined"!=typeof console){var f=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof f&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var g=!1,m=null,h=-1,_=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},r=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):_=0<e?Math.floor(1e3/e):5};var v=new MessageChannel,x=v.port2;v.port1.onmessage=function(){if(null!==m){var e=t.unstable_now();y=e+_;try{m(!0,e)?x.postMessage(null):(g=!1,m=null)}catch(n){throw x.postMessage(null),n}}else g=!1},n=function(e){m=e,g||(g=!0,x.postMessage(null))},a=function(e,n){h=p((function(){e(t.unstable_now())}),n)},o=function(){b(h),h=-1}}function w(e,t){var n=e.length;e.push(t);e:for(;;){var a=n-1>>>1,o=e[a];if(!(void 0!==o&&0<S(o,t)))break e;e[a]=t,e[n]=o,n=a}}function k(e){return void 0===(e=e[0])?null:e}function E(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var a=0,o=e.length;a<o;){var r=2*(a+1)-1,c=e[r],i=r+1,l=e[i];if(void 0!==c&&0>S(c,n))void 0!==l&&0>S(l,c)?(e[a]=l,e[i]=n,a=i):(e[a]=c,e[r]=n,a=r);else{if(!(void 0!==l&&0>S(l,n)))break e;e[a]=l,e[i]=n,a=i}}}return t}return null}function S(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,L=null,j=3,P=!1,R=!1,N=!1;function O(e){for(var t=k(T);null!==t;){if(null===t.callback)E(T);else{if(!(t.startTime<=e))break;E(T),t.sortIndex=t.expirationTime,w(C,t)}t=k(T)}}function M(e){if(N=!1,O(e),!R)if(null!==k(C))R=!0,n(D);else{var t=k(T);null!==t&&a(M,t.startTime-e)}}function D(e,n){R=!1,N&&(N=!1,o()),P=!0;var r=j;try{for(O(n),L=k(C);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var c=L.callback;if("function"==typeof c){L.callback=null,j=L.priorityLevel;var i=c(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof i?L.callback=i:L===k(C)&&E(C),O(n)}else E(C);L=k(C)}if(null!==L)var l=!0;else{var s=k(T);null!==s&&a(M,s.startTime-n),l=!1}return l}finally{L=null,j=r,P=!1}}var I=r;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){R||P||(R=!0,n(D))},t.unstable_getCurrentPriorityLevel=function(){return j},t.unstable_getFirstCallbackNode=function(){return k(C)},t.unstable_next=function(e){switch(j){case 1:case 2:case 3:var t=3;break;default:t=j}var n=j;j=t;try{return e()}finally{j=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=I,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=j;j=e;try{return t()}finally{j=n}},t.unstable_scheduleCallback=function(e,r,c){var i=t.unstable_now();switch("object"==typeof c&&null!==c?c="number"==typeof(c=c.delay)&&0<c?i+c:i:c=i,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:A++,callback:r,priorityLevel:e,startTime:c,expirationTime:l=c+l,sortIndex:-1},c>i?(e.sortIndex=c,w(T,e),null===k(C)&&e===k(T)&&(N?o():N=!0,a(M,c-i))):(e.sortIndex=l,w(C,e),R||P||(R=!0,n(D))),e},t.unstable_wrapCallback=function(e){var t=j;return function(){var n=j;j=t;try{return e.apply(this,arguments)}finally{j=n}}}},63840:(e,t,n)=>{"use strict";e.exports=n(60053)},96774:e=>{e.exports=function(e,t,n,a){var o=n?n.call(a,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var r=Object.keys(e),c=Object.keys(t);if(r.length!==c.length)return!1;for(var i=Object.prototype.hasOwnProperty.bind(t),l=0;l<r.length;l++){var s=r[l];if(!i(s))return!1;var d=e[s],u=t[s];if(!1===(o=n?n.call(a,d,u,s):void 0)||void 0===o&&d!==u)return!1}return!0}},36809:(e,t,n)=>{"use strict";n.d(t,{default:()=>a});const a={title:"Cardano Development Updates",tagline:"Regular updates from Cardano Development Teams",url:"https://updates.cardano.intersectmbo.org",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.ico",organizationName:"intersectmbo",projectName:"cardano-updates",plugins:[["content-blog",{id:"quarterly",routeBasePath:"quarterly",path:"quarterly",authorsMapPath:"authors.yml",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/"}],["content-blog",{id:"reports",routeBasePath:"reports",path:"reports",authorsMapPath:"authors.yml",editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/"}]],scripts:[{src:"https://plausible.io/js/script.js",defer:!0,"data-domain":"updates.cardano.intersectmbo.org"}],presets:[["classic",{blog:{id:"updates",routeBasePath:"/",showReadingTime:!0,editUrl:"https://github.com/intersectmbo/cardano-updates/tree/main/",blogTitle:"Cardano Development Updates",blogDescription:"Regular updates from Cardano Development Teams",postsPerPage:5,blogSidebarTitle:"Recent Posts",blogSidebarCount:10,feedOptions:{type:"all",title:"Cardano Updates Feed",description:"Regular updates from Cardano Development Teams"}},sitemap:{},theme:{customCss:"/home/runner/work/cardano-updates/cardano-updates/src/css/custom.css"}}]],themeConfig:{navbar:{title:"Cardano Updates",logo:{alt:"Cardano Logo",src:"img/logo.svg"},items:[{to:"/",label:"Home",position:"right"},{to:"/quarterly",label:"Quarterly",position:"right"},{to:"/reports",label:"Reports",position:"right"},{type:"dropdown",to:"tags",label:"Topics",position:"right",items:[{to:"tags",label:"All Topics"},{to:"tags/network",label:"Network"},{to:"tags/consensus",label:"Consensus"},{to:"tags/ledger",label:"Ledger"},{to:"tags/hydra",label:"Hydra"},{to:"tags/db-sync",label:"DB Sync"},{to:"tags/cli-api",label:"Node CLI & API"},{to:"quarterly/tags/cli-api-quarterly",label:"Node CLI & API Quarterly"},{to:"tags/crypto",label:"Crypto"},{to:"tags/goedel",label:"Goedel"},{to:"tags/mithril",label:"Mithril"},{to:"tags/performance-tracing",label:"Performance & Tracing"},{to:"reports/tags/benchmarking-reports",label:"Benchmarking Reports"},{to:"tags/incident",label:"Incident Reports"}]},{to:"archive",label:"Archive",position:"right"},{href:"https://updates.cardano.intersectmbo.org",position:"right",className:"header-github-link","aria-label":"GitHub repository"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Blog",items:[{label:"Home",to:"/"},{label:"Archive",to:"archive"},{label:"Tags",to:"tags"}]}],copyright:"Copyright \xa9 2024 Intersect, Built with Docusaurus."},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},87462:(e,t,n)=>{"use strict";function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},a.apply(this,arguments)}n.d(t,{Z:()=>a})},75068:(e,t,n)=>{"use strict";function a(e,t){return a=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},a(e,t)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,a(e,t)}n.d(t,{Z:()=>o})},63366:(e,t,n)=>{"use strict";function a(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{Z:()=>a})},38776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var a=!0,o="Invariant failed";function r(e,t){if(!e){if(a)throw new Error(o);var n="function"==typeof t?t():t,r=n?"".concat(o,": ").concat(n):o;throw new Error(r)}}},57529:e=>{"use strict";e.exports={}},16887:e=>{"use strict";e.exports=JSON.parse('{"/2022-08-12-network-544":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"71e4641a"},"/2022-08-12-sre-b19":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"43bbbae7"},"/2022-08-31-consensus-2d8":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"7030fa2f"},"/2022-09-01-ledger-33c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"6d371395"},"/2022-09-16-ledger-938":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5733c82d"},"/2022-09-19-db-sync-75c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"637356df"},"/2022-09-20-consensus-ae5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"015be621"},"/2022-09-27-network-be3":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"daace409"},"/2022-09-30-ledger-2ef":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"94133299"},"/2022-10-02-consensus-3fd":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"fba052bd"},"/2022-10-04-db-sync-3e6":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"3328a3bf"},"/2022-10-04-node-cli-api-572":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"a9019578"},"/2022-10-05-consensus-81b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"da7937f0"},"/2022-10-14-hydra-c6e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"733f2214"},"/2022-10-14-ledger-37b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8ccf5d9f"},"/2022-10-18-consensus-41a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"6d826f51"},"/2022-10-19-node-cli-api-106":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"1377d1fa"},"/2022-10-21-hydra-f56":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8cd47ea9"},"/2022-10-27-crypto-3d5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"93b15a8c"},"/2022-10-28-hydra-0eb":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5889a844"},"/2022-10-28-network-8bc":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"370c5287"},"/2022-10-28-performance-and-tracing-83f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"dfd49ee8"},"/2022-10-31-open-source-32c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"485c7377"},"/2022-11-01-db-sync-cab":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"78d8ce1d"},"/2022-11-02-ledger-416":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"add555bf"},"/2022-11-02-node-cli-api-ca9":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"089154c4"},"/2022-11-02-release-421":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8d3da32e"},"/2022-11-02-system-test-306":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"17630979"},"/2022-11-03-embedding-quality-4ed":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"1147f4da"},"/2022-11-04-hydra-e8b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e3c3ef1c"},"/2022-11-04-mithril-160":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"dff84d74"},"/2022-11-11-crypto-76f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"187056c8"},"/2022-11-11-hydra-f1a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"32d4ad41"},"/2022-11-11-ledger-f8a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"b03d4a4e"},"/2022-11-11-network-507":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"03d856aa"},"/2022-11-16-consensus-351":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ac56cb0b"},"/2022-11-16-node-cli-api-ab4":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"eac6bb0a"},"/2022-11-16-performance-and-tracing-796":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"94c6d911"},"/2022-11-18-hydra-351":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"017cd6b7"},"/2022-11-18-mithril-b5e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"81bb24c9"},"/2022-11-23-ledger-578":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"fd6fd4a3"},"/2022-11-25-crypto-c41":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d3f3f546"},"/2022-11-25-hydra-bd6":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"51cf8946"},"/2022-11-28-network-da5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e6402687"},"/2022-11-30-consensus-ee0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f59c978c"},"/2022-11-30-node-cli-api-8c2":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"120c0b00"},"/2022-11-30-performance-and-tracing-b59":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4aaac366"},"/2022-12-01-db-sync-8d2":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"347c3e4d"},"/2022-12-01-mithril-83e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"042169f6"},"/2022-12-01-system-test-6e1":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"21857c8f"},"/2022-12-02-hydra-88a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"26678b7e"},"/2022-12-09-crypto-beb":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"9f70a142"},"/2022-12-09-hydra-348":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5668eccd"},"/2022-12-09-ledger-98c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ff8cfcf7"},"/2022-12-12-network-4d3":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"91b05c51"},"/2022-12-14-consensus-c1f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"9440f007"},"/2022-12-14-db-sync-0f3":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"9b6092d7"},"/2022-12-14-node-cli-api-392":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"b88c8fa9"},"/2022-12-14-performance-and-tracing-e78":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"fb63aa20"},"/2022-12-15-mithril-1bf":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ee94a44f"},"/2022-12-16-hydra-92e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5e3dc99b"},"/2022-12-28-node-cli-api-13b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"9f7c2154"},"/2023-01-05-ledger-31c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"795480a5"},"/2023-01-06-crypto-bd5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"924be064"},"/2023-01-11-consensus-c05":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"2fd426fa"},"/2023-01-11-performance-and-tracing-e49":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4df30499"},"/2023-01-12-mithril-d5e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d92df848"},"/2023-01-13-hydra-5e4":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"831d95cb"},"/2023-01-13-release-eac":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"bb465a37"},"/2023-01-13-system-test-990":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"cc267639"},"/2023-01-14-db-sync-def":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"93729337"},"/2023-01-19-ledger-150":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8a6fc2ec"},"/2023-01-20-crypto-1e1":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8d209506"},"/2023-01-20-hydra-7e4":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"bcf46d9c"},"/2023-01-20-network-f01":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f850a5f3"},"/2023-01-20-sre-05b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"2eba0b82"},"/2023-01-25-consensus-079":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"691b1ed7"},"/2023-01-25-node-cli-api-c27":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"b78698d9"},"/2023-01-26-mithril-4a0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"72c81964"},"/2023-01-27-hydra-786":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4ce06e64"},"/2023-02-02-ledger-ec5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"986e43da"},"/2023-02-03-crypto-88e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"437db4bf"},"/2023-02-03-goedel-e57":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"550cdc1d"},"/2023-02-03-hydra-454":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"eff08811"},"/2023-02-08-consensus-a90":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"fb793160"},"/2023-02-08-node-cli-api-20c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"60e1630c"},"/2023-02-08-performance-and-tracing-e64":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ef4801f7"},"/2023-02-09-mithril-228":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8c75942c"},"/2023-02-10-hydra-7a9":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"44642b2f"},"/2023-02-17-crypto-1c5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4bed0e48"},"/2023-02-17-goedel-d51":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"62f46a38"},"/2023-02-17-hydra-3ba":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"0c48efb1"},"/2023-02-17-ledger-7ee":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f2b32cff"},"/2023-02-17-network-d4e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e8d4d6c0"},"/2023-02-21-db-sync-67f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4b62dc40"},"/2023-02-22-consensus-c97":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"324138c8"},"/2023-02-22-node-cli-api-175":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"144cea98"},"/2023-02-23-mithril-c7b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"925feafa"},"/2023-02-23-performance-and-tracing-dba":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"9a03c440"},"/2023-02-24-hydra-b1f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e5dd9161"},"/2023-03-02-network-647":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"bc6b65d9"},"/2023-03-03-crypto-f16":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"c063df1b"},"/2023-03-03-goedel-484":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"34012593"},"/2023-03-03-hydra-0b8":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"b4cc2dd2"},"/2023-03-03-ledger-f12":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4be9a3a6"},"/2023-03-08-consensus-b57":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"28874657"},"/2023-03-08-node-cli-api-9c6":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"1d10bd9e"},"/2023-03-08-performance-and-tracing-bd7":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f51bb76d"},"/2023-03-09-mithril-8be":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"97daee08"},"/2023-03-10-hydra-c05":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"fdba8f98"},"/2023-03-16-goedel-847":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e70f68c6"},"/2023-03-17-crypto-1c0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"2e52ad4e"},"/2023-03-17-hydra-456":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"0d889cfb"},"/2023-03-17-ledger-3c4":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"43aa4824"},"/2023-03-21-network-94d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"63fae4f0"},"/2023-03-22-consensus-711":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"c63933b3"},"/2023-03-22-node-cli-api-e3f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"2a8f0182"},"/2023-03-22-performance-and-tracing-440":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"b5164349"},"/2023-03-23-db-sync-02d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d8668f0c"},"/2023-03-23-mithril-b17":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8e410d22"},"/2023-03-24-hydra-da7":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d957ac34"},"/2023-03-27-system-test-f31":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"daa3e20a"},"/2023-03-31-crypto-d2d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e6ea9b03"},"/2023-03-31-goedel-d17":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4fe12b4b"},"/2023-03-31-hydra-28d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"42ad0ca4"},"/2023-03-31-ledger-b6a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"771f29e6"},"/2023-04-05-consensus-041":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5d5964ec"},"/2023-04-05-node-cli-api-9c5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f530b85c"},"/2023-04-05-performance-and-tracing-697":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"47658b82"},"/2023-04-06-mithril-cb4":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"97cbe67b"},"/2023-04-07-hydra-37d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"05f2862f"},"/2023-04-14-goedel-750":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d19a344f"},"/2023-04-14-hydra-e8d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ce7ed51f"},"/2023-04-17-ledger-78e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"2d91c21f"},"/2023-04-19-consensus-d04":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"496cb9ef"},"/2023-04-19-performance-and-tracing-6e4":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e7a72da0"},"/2023-04-20-mithril-594":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"a8738e5f"},"/2023-04-20-node-cli-api-fe8":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"3cb9fdac"},"/2023-04-21-hydra-03f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"73a96f39"},"/2023-04-21-ledger-533":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d2ea5af2"},"/2023-04-27-hydra-c48":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"435d8b4c"},"/2023-04-28-crypto-fec":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"9f761678"},"/2023-04-28-goedel-72e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"219856ee"},"/2023-04-28-network-160":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"df778edc"},"/2023-05-01-db-sync-2d5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"3ee2c73a"},"/2023-05-03-consensus-7d1":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"a2ee852b"},"/2023-05-03-performance-and-tracing-6fa":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"77d820b6"},"/2023-05-04-mithril-255":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"90bf9c2d"},"/2023-05-05-ledger-2ee":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f2180c0a"},"/2023-05-05-node-cli-api-1a6":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4febca42"},"/2023-05-12-crypto-760":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"cd612773"},"/2023-05-12-goedel-481":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"67ce4884"},"/2023-05-12-hydra-bb0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d83d9042"},"/2023-05-12-network-916":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5e730d4f"},"/2023-05-17-consensus-efa":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"c511c40f"},"/2023-05-17-mithril-11e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"7a7e39bb"},"/2023-05-17-performance-and-tracing-d3b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"b28a1077"},"/2023-05-19-hydra-e71":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"0c10bcf4"},"/2023-05-24-node-cli-api-0e1":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d857251e"},"/2023-05-26-goedel-51a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"78d554ba"},"/2023-05-26-hydra-a38":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"3a493dd8"},"/2023-05-26-ledger-1aa":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e4a61baa"},"/2023-05-26-network-c79":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"588e4efd"},"/2023-05-31-consensus-b5d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"77d69aed"},"/2023-05-31-performance-and-tracing-e0e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"752b6ead"},"/2023-06-01-mithril-9ed":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"2bc04bf6"},"/2023-06-02-hydra-58f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f522921c"},"/2023-06-07-node-cli-api-154":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"c4479859"},"/2023-06-08-db-sync-676":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"c90fb258"},"/2023-06-08-goedel-619":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d2ab2776"},"/2023-06-08-sre-c8b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"0281a492"},"/2023-06-08-system-test-6ec":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"86c4d158"},"/2023-06-09-crypto-9b9":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"a040c838"},"/2023-06-09-developer-experience-044":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"20bc6fcd"},"/2023-06-09-hydra-661":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"a2a63bac"},"/2023-06-12-network-1e0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"99b0bd12"},"/2023-06-14-consensus-f0f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"c08c0f47"},"/2023-06-14-performance-and-tracing-e89":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"82209890"},"/2023-06-15-mithril-427":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"50135b75"},"/2023-06-16-hydra-efe":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"0fa2fd29"},"/2023-06-23-goedel-bfd":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"66345e96"},"/2023-06-23-hydra-ed7":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e25ae581"},"/2023-06-23-network-b31":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4b996e44"},"/2023-06-23-sre-f2b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"47da279e"},"/2023-06-28-consensus-fc4":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4ab012ff"},"/2023-06-28-performance-and-tracing-fa8":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d988d084"},"/2023-06-29-mithril-1ec":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"632979e8"},"/2023-06-30-hydra-477":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"cd0ded60"},"/2023-07-04-db-sync-c24":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"20ca2c37"},"/2023-07-04-node-cli-api-a0c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8ed15298"},"/2023-07-06-developer-experience-077":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"492dc159"},"/2023-07-07-crypto-da0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ec344652"},"/2023-07-07-goedel-575":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f452efc5"},"/2023-07-07-hydra-7f8":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d5676bf9"},"/2023-07-07-sre-bfa":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"16a93549"},"/2023-07-12-consensus-b7b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"84189288"},"/2023-07-12-performance-and-tracing-f30":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"bd65afd9"},"/2023-07-13-mithril-35a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"3dbbac8a"},"/2023-07-14-hydra-036":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"3a3a2602"},"/2023-07-18-node-cli-api-b50":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"007e4c05"},"/2023-07-20-goedel-64d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"237aa4d6"},"/2023-07-21-hydra-440":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"12208c5e"},"/2023-07-21-ledger-683":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f63b6b72"},"/2023-07-21-sre-0cb":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ddce0bff"},"/2023-07-26-consensus-336":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"769eb34c"},"/2023-07-27-mithril-50a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5a843cd2"},"/2023-07-28-hydra-4a6":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"12c83d8a"},"/2023-07-31-network-e77":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d6a3b4a5"},"/2023-08-01-node-cli-api-3c5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"80537537"},"/2023-08-04-crypto-e98":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"425dfc0f"},"/2023-08-04-goedel-2b0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"c0ac1524"},"/2023-08-04-hydra-9ec":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"7e644b1f"},"/2023-08-04-ledger-fe8":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"444dad87"},"/2023-08-04-network-a76":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"2276e554"},"/2023-08-04-performance-and-tracing-906":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"a572b6ff"},"/2023-08-04-sre-280":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"65ecf6d5"},"/2023-08-09-consensus-10d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"692497e1"},"/2023-08-10-mithril-106":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"3f2108ba"},"/2023-08-11-hydra-b83":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"6bae8700"},"/2023-08-11-performance-and-tracing-e1f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"397686d4"},"/2023-08-15-node-cli-api-a4d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"2455acc4"},"/2023-08-17-crypto-b23":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"eb0e2fb1"},"/2023-08-17-db-sync-390":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"77e9cceb"},"/2023-08-17-secp-issue-ceb":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"15691c1d"},"/2023-08-18-goedel-176":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"fa5dce7e"},"/2023-08-18-hydra-a24":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"43289e4d"},"/2023-08-18-ledger-e33":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5226ad4f"},"/2023-08-18-network-dcc":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"dee5d2d9"},"/2023-08-18-sre-132":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"9c7979b1"},"/2023-08-23-consensus-536":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"301cd1f4"},"/2023-08-24-performance-and-tracing-17b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"be16a434"},"/2023-08-25-hydra-feb":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"52b8fa8a"},"/2023-08-28-mithril-109":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f1df5007"},"/2023-08-29-node-cli-api-886":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"3bb06773"},"/2023-09-01-goedel-cc4":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4b90674f"},"/2023-09-01-hydra-f66":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d6f20405"},"/2023-09-01-ledger-309":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"14ffac04"},"/2023-09-01-network-c25":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"c178b56c"},"/2023-09-01-sre-369":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5af0f4f9"},"/2023-09-06-consensus-7f8":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d8c4fe87"},"/2023-09-07-mithril-948":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"1b2a226f"},"/2023-09-07-performance-and-tracing-c59":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"a48d66c0"},"/2023-09-08-hydra-142":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f117ec90"},"/2023-09-12-node-cli-api-772":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e0b45b46"},"/2023-09-14-db-sync-1b7":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"2b637fd9"},"/2023-09-15-goedel-c2f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"778ef860"},"/2023-09-15-hydra-6e3":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"245ecae9"},"/2023-09-15-ledger-ab5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4e45b006"},"/2023-09-15-network-713":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"6e7b669d"},"/2023-09-15-sre-d88":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5674f153"},"/2023-09-20-consensus-dbe":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8d0075ff"},"/2023-09-20-mithril-f4e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"1f9c0c9c"},"/2023-09-22-hydra-ed9":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ab4c3279"},"/2023-09-22-performance-and-tracing-16a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4ed83391"},"/2023-09-26-node-cli-api-e83":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f89a4337"},"/2023-09-27-mithril-160":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f4548430"},"/2023-09-29-goedel-4f5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"b8a3fbda"},"/2023-09-29-hydra-722":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d15a0787"},"/2023-09-29-ledger-78c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"35e2a0c5"},"/2023-09-29-sre-69a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"a7a31948"},"/2023-10-02-network-2f2":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"1afca88e"},"/2023-10-04-consensus-e43":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"354f96c6"},"/2023-10-04-mithril-8a0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"9291df2e"},"/2023-10-06-hydra-4fa":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d2aca35e"},"/2023-10-06-performance-and-tracing-4b1":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"70372002"},"/2023-10-10-node-cli-api-85b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ec06fa8a"},"/2023-10-11-mithril-9f7":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f1bfc30d"},"/2023-10-13-goedel-a2e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"fec52f54"},"/2023-10-13-hydra-8ca":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5cc32405"},"/2023-10-13-ledger-b68":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5d0266be"},"/2023-10-13-sre-907":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"0b0bfceb"},"/2023-10-15-network-0f4":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"9ba26136"},"/2023-10-18-consensus-3c2":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"798d160f"},"/2023-10-18-mithril-c96":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d967308c"},"/2023-10-20-hydra-f59":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ca6829cb"},"/2023-10-24-node-cli-api-d79":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"78c763b8"},"/2023-10-25-mithril-5b0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"6927f7c4"},"/2023-10-27-goedel-a6a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"0a60fad7"},"/2023-10-27-hydra-532":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"a6e1d45a"},"/2023-10-27-network-ef1":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d65b9dd2"},"/2023-10-27-sre-229":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8fe062a7"},"/2023-11-01-consensus-358":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ccb7a847"},"/2023-11-01-mithril-a2c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8d306cf9"},"/2023-11-08-ledger-416":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"7439ef37"},"/2023-11-08-mithril-583":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"44e33f80"},"/2023-11-09-db-sync-34e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"36a96f5a"},"/2023-11-10-goedel-d94":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f1565105"},"/2023-11-10-hydra-02d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"387f3426"},"/2023-11-10-sre-906":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f2deb2f1"},"/2023-11-14-node-cli-api-263":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e1f21c3f"},"/2023-11-15-consensus-92b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"49d642c9"},"/2023-11-15-mithril-f00":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"a7418040"},"/2023-11-16-network-876":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f0418a99"},"/2023-11-17-hydra-f15":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"0ade4266"},"/2023-11-17-performance-and-tracing-574":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"38284ae5"},"/2023-11-20-cip1694-ea6":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"1b34f23d"},"/2023-11-22-ledger-5a1":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"3a40f46b"},"/2023-11-22-mithril-92f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"35961293"},"/2023-11-24-goedel-b99":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"09719837"},"/2023-11-24-hydra-f64":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"c0354ce6"},"/2023-11-24-sre-5bd":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"57008883"},"/2023-11-29-consensus-51d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"335868d9"},"/2023-11-29-mithril-37c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"0e717c32"},"/2023-12-01-hydra-00d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"decc8fa8"},"/2023-12-04-performance-and-tracing-ace":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f96c80d6"},"/2023-12-06-ledger-340":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"28d85025"},"/2023-12-06-mithril-02c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"55e35eab"},"/2023-12-08-goedel-09c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"b5d3534a"},"/2023-12-08-hydra-f78":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"cb54f244"},"/2023-12-08-network-605":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"96ff3c40"},"/2023-12-08-node-cli-api-bba":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5574328a"},"/2023-12-08-sre-0d6":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8aeb9708"},"/2023-12-11-performance-and-tracing-f33":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ad067570"},"/2023-12-13-mithril-f4e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4c8419de"},"/2023-12-15-hydra-1d0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"0c8d8623"},"/2023-12-20-mithril-a2e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"cce29330"},"/2023-12-22-hydra-9f5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"abfcb655"},"/2023-12-22-network-371":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"1bfd87fe"},"/2023-12-22-sre-3b5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"bcc2133c"},"/2023-12-30-node-cli-api-c58":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"65837eee"},"/2024-01-05-hydra-bf4":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"7a3449d6"},"/2024-01-05-sre-dca":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"50f12e76"},"/2024-01-09-network-c3a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"568314b4"},"/2024-01-10-consensus-a04":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"6c10d32f"},"/2024-01-10-ledger-3b2":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ae714ef1"},"/2024-01-10-mithril-844":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5f459bde"},"/2024-01-12-hydra-4c6":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e475cb83"},"/2024-01-15-node-cli-api-b23":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d7ea4c81"},"/2024-01-17-ledger-8e7":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e8c7dddb"},"/2024-01-17-mithril-8f0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"7095f3d5"},"/2024-01-19-hydra-559":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f58a543c"},"/2024-01-19-sre-42c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"7fc8ff62"},"/2024-01-22-network-c6d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"79ddb53e"},"/2024-01-24-consensus-0f6":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"10ca2666"},"/2024-01-24-mithril-f54":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"3029c859"},"/2024-01-26-hydra-481":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"6d66ecac"},"/2024-01-30-db-sync-28b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"fed3e02f"},"/2024-01-31-ledger-924":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"fa45022f"},"/2024-01-31-mithril-166":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f3b8b9d5"},"/2024-01-31-node-cli-api-a45":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"eba74f81"},"/2024-01-31-performance-and-tracing-73f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"961dc6d0"},"/2024-02-02-hydra-a1a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"818cb4a0"},"/2024-02-02-sre-99c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"35760f21"},"/2024-02-05-network-7b5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"83757913"},"/2024-02-07-consensus-f10":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"941d55d9"},"/2024-02-07-mithril-93a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"89b1cff2"},"/2024-02-09-hydra-4cc":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"b2f6ced4"},"/2024-02-14-ledger-6c0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"2ea56af2"},"/2024-02-14-mithril-6b3":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"7e9cd387"},"/2024-02-15-node-cli-api-0ac":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"04d19f61"},"/2024-02-16-hydra-8e0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"62d3f25f"},"/2024-02-16-performance-and-tracing-587":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"81db2276"},"/2024-02-16-sre-d56":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"3fbaa021"},"/2024-02-19-network-3f1":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e9ae9b7e"},"/2024-02-21-consensus-0a3":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"1eb5f871"},"/2024-02-21-mithril-530":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"cc653543"},"/2024-02-23-hydra-5d6":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"a041ec46"},"/2024-02-28-ledger-342":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"0646a177"},"/2024-02-28-mithril-fd8":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ba740fe3"},"/2024-02-29-node-cli-api-4ec":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4c4444c5"},"/2024-03-01-hydra-e18":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"91c8d0f7"},"/2024-03-01-sre-378":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"981d7293"},"/2024-03-04-network-d72":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"a1d6199d"},"/2024-03-06-consensus-b28":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"2f43fcdf"},"/2024-03-06-mithril-e4f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d37f32a8"},"/2024-03-08-hydra-a64":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5a4abf4f"},"/2024-03-08-performance-and-tracing-e18":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"bd08fea4"},"/2024-03-13-ledger-815":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"40b80600"},"/2024-03-13-mithril-a31":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ac4f0787"},"/2024-03-15-hydra-e19":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4ef29baf"},"/2024-03-15-node-cli-api-eda":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"053dec63"},"/2024-03-15-sre-18e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e44c5603"},"/2024-03-18-network-b77":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"20441287"},"/2024-03-20-consensus-7ff":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"077b979c"},"/2024-03-20-mithril-2a9":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"1c273fb9"},"/2024-03-22-hydra-5aa":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"2e3d75f1"},"/2024-03-27-ledger-b19":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"fa9647fb"},"/2024-03-27-mithril-bfb":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"fd069ff7"},"/2024-03-27-performance-and-tracing-66f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f9781350"},"/2024-03-28-hydra-39b":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"a25baf4b"},"/2024-03-29-sre-d9c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"6ef7a896"},"/2024-03-30-node-cli-api-f17":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"3dbe7590"},"/2024-04-03-consensus-03f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"bd307c3a"},"/2024-04-03-mithril-ca4":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"b8c8891e"},"/2024-04-05-hydra-a08":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"ed174522"},"/2024-04-10-ledger-328":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5b622352"},"/2024-04-10-mithril-372":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"1121299e"},"/2024-04-12-hydra-4d0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"f4174027"},"/2024-04-12-sre-79a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"687d3bf5"},"/2024-04-15-network-c85":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"58ef99f4"},"/2024-04-15-node-cli-api-1c2":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"46ba60f8"},"/2024-04-17-consensus-dd0":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"23c4c5bd"},"/2024-04-17-db-sync-b72":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e2621d74"},"/2024-04-17-mithril-c86":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"84909ac3"},"/2024-04-19-hydra-43e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d700c1da"},"/2024-04-19-performance-and-tracing-1aa":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"85c4e11b"},"/2024-04-24-ledger-9fa":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5eec6141"},"/2024-04-24-mithril-5b2":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"fd8a7e73"},"/2024-04-26-sre-f0a":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"58a16fc9"},"/2024-04-27-node-cli-api-1da":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"05bee9ec"},"/2024-04-30-mithril-4df":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8ed69c89"},"/2024-05-01-consensus-3cd":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"cdcf18ac"},"/2024-05-03-hydra-4df":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"94ad958d"},"/2024-05-06-network-5ae":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"db3d0db2"},"/2024-05-07-performance-and-tracing-277":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"1558d884"},"/2024-05-08-ledger-689":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"46898189"},"/2024-05-10-hydra-d9d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"58c7cc80"},"/2024-05-10-sre-71d":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"0a497e30"},"/2024-05-13-node-cli-api-3a7":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"b96303b2"},"/2024-05-15-consensus-1e7":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"65d07996"},"/2024-05-15-mithril-901":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"27164297"},"/2024-05-22-ledger-1eb":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"163cc15d"},"/2024-05-22-mithril-3fd":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"4d7391f8"},"/2024-05-24-performance-and-tracing-4ff":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"8368e4b7"},"/2024-05-24-sre-0ce":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"65dd336a"},"/2024-05-27-hydra-fae":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"012b1d34"},"/2024-05-29-consensus-d9e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"b66964f6"},"/2024-05-29-mithril-193":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"10dfceb5"},"/2024-06-05-ledger-52e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"684ac28b"},"/2024-06-05-mithril-6ac":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"d90a9d25"},"/2024-06-05-node-cli-api-3a5":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e05cd66a"},"/2024-06-10-hydra-d7c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"732b35ea"},"/2024-06-12-mithril-31c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"c1cf9f04"},"/2024-06-19-ledger-ce2":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"919e3b80"},"/2024-06-19-mithril-e64":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"5537c822"},"/2024-06-25-performance-and-tracing-8f3":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"309cdfe6"},"/2024-06-26-consensus-7e4":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"66555aa8"},"/2024-06-26-mithril-858":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"12ba2af2"},"/2024-07-03-ledger-a2f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"beba3ea5"},"/2024-07-03-mithril-900":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"9f11a452"},"/2024-07-05-sre-f7c":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"bc79ed22"},"/2024-07-08-network-091":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"9ff56e7d"},"/2024-07-10-consensus-04e":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"b9b1b0de"},"/2024-07-10-mithril-246":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"3c14a1c3"},"/2024-07-17-hydra-84f":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"e847d60c"},"/2024-07-17-mithril-9c7":{"__comp":"ccc49370","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","content":"99d83f94"},"/archive-0a5":{"__comp":"9e4087bc","__context":{"plugin":"08c82b6d"},"archive":"6d0badab"},"/markdown-page-ec9":{"__comp":"1f391b9e","__context":{"plugin":"57700755"},"content":"393be207"},"/page/10-5e3":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"f99e473b"},{"content":"8a4bf3d8"},{"content":"2b872e03"},{"content":"86b90503"},{"content":"1150db26"}],"metadata":"b5340a11"},"/page/11-2bb":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"741efb60"},{"content":"0813fe0c"},{"content":"550b6b1a"},{"content":"199b4690"},{"content":"ad3b787d"}],"metadata":"d934bbef"},"/page/12-609":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"395173ce"},{"content":"3876260c"},{"content":"9308fe55"},{"content":"9e3f42ed"},{"content":"380c57b3"}],"metadata":"c48f7122"},"/page/13-c2c":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"ac7236c1"},{"content":"170ad9f9"},{"content":"f63d0757"},{"content":"6c50c5d9"},{"content":"e54eb766"}],"metadata":"983b561c"},"/page/14-bf4":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"63a0ff66"},{"content":"32a89ce0"},{"content":"cd5f993f"},{"content":"60293520"},{"content":"e9dce996"}],"metadata":"71508f04"},"/page/15-556":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"a609cdb3"},{"content":"2691c4f4"},{"content":"17254497"},{"content":"a4419125"},{"content":"ff158e4d"}],"metadata":"ae39809c"},"/page/16-ed6":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"e5eebff8"},{"content":"3c855eb4"},{"content":"7442b11e"},{"content":"cc74f849"},{"content":"d1d77594"}],"metadata":"a82a69a3"},"/page/17-852":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"f76b8023"},{"content":"0915a78d"},{"content":"4574fd9f"},{"content":"7598a821"},{"content":"f480ab7b"}],"metadata":"216f4a5f"},"/page/18-b55":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"0e8f60e3"},{"content":"300a86ed"},{"content":"b134e481"},{"content":"05e38d95"},{"content":"bb016389"}],"metadata":"91ed84ec"},"/page/19-c6e":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"fd4eddf4"},{"content":"da2bedef"},{"content":"5d9e7658"},{"content":"28644f4c"},{"content":"d2463491"}],"metadata":"a419cc29"},"/page/2-c9e":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"7fda8ae5"},{"content":"bce2d096"},{"content":"3659ef2a"},{"content":"a56f68e5"},{"content":"90aeef13"}],"metadata":"f54e05ce"},"/page/20-f43":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"fe591044"},{"content":"a29c613f"},{"content":"4d4ca631"},{"content":"3fb79450"},{"content":"8d60cfea"}],"metadata":"4b1460f8"},"/page/21-272":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"28000465"},{"content":"9de5c9e8"},{"content":"4994a283"},{"content":"45e52e4e"},{"content":"649eea43"}],"metadata":"47e876cf"},"/page/22-028":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"4708484f"},{"content":"cf472160"},{"content":"e9de58f7"},{"content":"c9987321"},{"content":"221981c6"}],"metadata":"69d44fe6"},"/page/23-66a":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"fbe14114"},{"content":"c52fdde1"},{"content":"7d9cdd40"},{"content":"b6036a11"},{"content":"519b5664"}],"metadata":"0a8f6579"},"/page/24-5d5":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"0350d52d"},{"content":"933ecdda"},{"content":"8fd26069"},{"content":"36e46525"},{"content":"a74edb50"}],"metadata":"a21706c9"},"/page/25-3ca":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"5a36c8fd"},{"content":"7518bbd3"},{"content":"1112c086"},{"content":"617b050a"},{"content":"f7132c6a"}],"metadata":"b8f51c1a"},"/page/26-329":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"838dc3f3"},{"content":"706d2bfc"},{"content":"573e0546"},{"content":"72dde749"},{"content":"884eee03"}],"metadata":"a6472a96"},"/page/27-aff":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"37b247a8"},{"content":"26a4b8b3"},{"content":"9ce37f6e"},{"content":"d0639dee"},{"content":"4de4e659"}],"metadata":"4eaeb622"},"/page/28-650":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"486d3992"},{"content":"8534c2dd"},{"content":"fa00d705"},{"content":"5e9a4be9"},{"content":"ddcb8bff"}],"metadata":"c65b5e22"},"/page/29-f34":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"7221b837"},{"content":"7fa9de70"},{"content":"a1d4a798"},{"content":"cb7a1a0b"},{"content":"7de83161"}],"metadata":"5160091e"},"/page/3-93a":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"2c6851ed"},{"content":"3538f18d"},{"content":"c2e0061a"},{"content":"4731c85e"},{"content":"7ebab15c"}],"metadata":"88e4c211"},"/page/30-79e":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"1c192ca4"},{"content":"6d22e028"},{"content":"22a8c4ec"},{"content":"b7dd63dc"},{"content":"82db709e"}],"metadata":"818d6f05"},"/page/31-899":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"934a8f8d"},{"content":"ea2603ff"},{"content":"9b5ce5fa"},{"content":"0b5e25e7"},{"content":"f7e5e70a"}],"metadata":"689c81d9"},"/page/32-398":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"de4537b5"},{"content":"ed99d55f"},{"content":"7a263bfa"},{"content":"5c8fca76"},{"content":"c7e43a05"}],"metadata":"5347b974"},"/page/33-51c":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"54a7c81e"},{"content":"ccf451f9"},{"content":"1752e4e5"},{"content":"a14fd889"},{"content":"43ab8474"}],"metadata":"5090ff9c"},"/page/34-37e":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"b2ab4460"},{"content":"49d88be4"},{"content":"f6ec1152"},{"content":"a687dd04"},{"content":"3bc8fe23"}],"metadata":"3c0c6268"},"/page/35-f23":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"d5f27176"},{"content":"35c3586e"},{"content":"d70b4c5f"},{"content":"b3043f02"},{"content":"70396aa3"}],"metadata":"1a6775b2"},"/page/36-6f1":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"209bf559"},{"content":"d7c69167"},{"content":"80617771"},{"content":"6e43d302"},{"content":"b242687d"}],"metadata":"bfcdc265"},"/page/37-bde":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"24d5a6d9"},{"content":"a1f2945e"},{"content":"e3067ecd"},{"content":"69c7a5a7"},{"content":"a1d1f035"}],"metadata":"c158f9a9"},"/page/38-632":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"9668e24b"},{"content":"9e570fef"},{"content":"d343e3e1"},{"content":"0e828f3a"},{"content":"046dd16d"}],"metadata":"b0f8ff9f"},"/page/39-de1":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"611f3a9e"},{"content":"878c8163"},{"content":"3399a664"},{"content":"31025fde"},{"content":"bb44f9e3"}],"metadata":"dd6797bc"},"/page/4-d06":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"63a2f993"},{"content":"bbdd9b59"},{"content":"d5c6258a"},{"content":"8236b20c"},{"content":"06ca6baf"}],"metadata":"d369bf59"},"/page/40-549":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"b65e5ec2"},{"content":"7c895c96"},{"content":"61e62d68"},{"content":"f96c80dc"},{"content":"9d7869bb"}],"metadata":"367766a3"},"/page/41-377":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"469935bd"},{"content":"7574ff34"},{"content":"77550e96"},{"content":"7a6174e7"},{"content":"d7836792"}],"metadata":"9d4323f3"},"/page/42-c10":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"e56a9a29"},{"content":"fc8c3309"},{"content":"1e57c0e2"},{"content":"a6e5ff3c"},{"content":"789f2cca"}],"metadata":"f5063a59"},"/page/43-0ac":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"0e0c98f4"},{"content":"9dee36e7"},{"content":"65d0391b"},{"content":"1a932c01"},{"content":"3c3d2bff"}],"metadata":"22e80361"},"/page/44-ee2":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"da04b7b0"},{"content":"80c54634"},{"content":"12a1613f"},{"content":"2e28eb6b"},{"content":"ca3b5bc8"}],"metadata":"1a6b5039"},"/page/45-6ba":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"246d9f04"},{"content":"10532414"},{"content":"f5b1250e"},{"content":"704e5bb8"},{"content":"6004d2a4"}],"metadata":"29f10536"},"/page/46-7c7":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"6a75c57a"},{"content":"35ef34ae"},{"content":"b4f5b98b"},{"content":"afa83c07"},{"content":"a1cde312"}],"metadata":"24fb874a"},"/page/47-f4c":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"b032e7ab"},{"content":"ee0b7a59"},{"content":"d6c09ac2"},{"content":"0645cd02"},{"content":"68585f67"}],"metadata":"33bc9424"},"/page/48-21d":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"caab1e2e"},{"content":"a69f0deb"},{"content":"71d215be"},{"content":"e90b2ff0"},{"content":"113fed8c"}],"metadata":"ad9136bc"},"/page/49-c64":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"c2b4dd94"},{"content":"8bfc66fb"},{"content":"4d3eb7e7"},{"content":"9cab6d73"},{"content":"45a10ae8"}],"metadata":"b3c27c9b"},"/page/5-025":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"34f5d9d4"},{"content":"9f4f09d0"},{"content":"ce230425"},{"content":"1cb5298b"},{"content":"7214e9a2"}],"metadata":"bc17f22c"},"/page/50-171":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"e4619b9c"},{"content":"0dfea636"},{"content":"c2eec07f"},{"content":"ace79a55"},{"content":"d0e182b9"}],"metadata":"7a167eb1"},"/page/51-454":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"d077dadd"},{"content":"034a14a6"},{"content":"3bb415e3"},{"content":"fb0b9e22"},{"content":"871691d4"}],"metadata":"133ddf45"},"/page/52-302":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"c036f08e"},{"content":"f48535bf"},{"content":"f8681695"},{"content":"999e2b46"},{"content":"cf1bc381"}],"metadata":"fd6ebf5b"},"/page/53-f68":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"1be923a7"},{"content":"6eecfaae"},{"content":"6190b2fb"},{"content":"bdc4c1ed"},{"content":"d5cc3122"}],"metadata":"9ef45f96"},"/page/54-563":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"6d25229c"},{"content":"11423591"},{"content":"28bc1d1b"},{"content":"c6f90b29"},{"content":"fbdc54bf"}],"metadata":"aaf18ab0"},"/page/55-d77":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"62ec9f43"},{"content":"b57687d8"},{"content":"2d52a685"},{"content":"db50202c"},{"content":"0801ba5a"}],"metadata":"cc9fa3d1"},"/page/56-1b7":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"2154b8e4"},{"content":"bccb35b7"},{"content":"12637b23"},{"content":"aa4c9cc8"},{"content":"59a262d5"}],"metadata":"57f9f9c7"},"/page/57-dd7":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"ebf8adea"},{"content":"99881079"},{"content":"91595845"},{"content":"fa0b1b5d"},{"content":"17e76f05"}],"metadata":"59e2956e"},"/page/58-ecb":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"51bf60d9"},{"content":"b3041b60"},{"content":"73f0dde0"},{"content":"c9210b26"},{"content":"ed930750"}],"metadata":"d7d5383e"},"/page/59-20b":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"d96cfa54"},{"content":"6b16e156"},{"content":"2d0da244"},{"content":"0431617f"},{"content":"78df8d65"}],"metadata":"ed8bde1d"},"/page/6-318":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"1dd82bf1"},{"content":"24d9143c"},{"content":"8e0eb050"},{"content":"29388bf2"},{"content":"142448a1"}],"metadata":"f92f97ae"},"/page/60-4c2":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"876c34e9"},{"content":"90cc522f"},{"content":"de790939"},{"content":"c10365f3"},{"content":"d9b708eb"}],"metadata":"3bfbfc92"},"/page/61-02d":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"8b4d9039"},{"content":"7a4b421f"},{"content":"a6238997"},{"content":"ef4f60e7"},{"content":"e80f56fd"}],"metadata":"a526ae0c"},"/page/62-7eb":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"12d5d907"},{"content":"89931013"},{"content":"3f9060c3"},{"content":"393cd824"},{"content":"ec53298b"}],"metadata":"d369886f"},"/page/63-ea2":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"9136968b"},{"content":"e158fd47"},{"content":"9c96fa11"},{"content":"0af81f82"},{"content":"04c3317f"}],"metadata":"b836e3b2"},"/page/64-19d":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"4d7c8e78"},{"content":"3ab5f4e0"},{"content":"913aac40"},{"content":"0db650db"},{"content":"ccfc9222"}],"metadata":"ffeb8a80"},"/page/65-01c":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"f2423430"},{"content":"d9ccb35d"},{"content":"50d0e663"},{"content":"e2011657"},{"content":"391126a1"}],"metadata":"97cbe753"},"/page/66-b57":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"3ac610ff"},{"content":"1caacab6"},{"content":"c061e3b1"},{"content":"f872275a"},{"content":"6fb45133"}],"metadata":"63c9ac3d"},"/page/67-45c":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"8864b77b"},{"content":"ea84a009"},{"content":"94a907c9"},{"content":"fce7e268"},{"content":"56f35d85"}],"metadata":"d5a278e5"},"/page/68-4e6":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"55b9667a"},{"content":"fee99998"},{"content":"76794a21"},{"content":"d99d594e"},{"content":"d863ede2"}],"metadata":"922e2d6b"},"/page/69-1cb":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"f302e248"},{"content":"c831575d"},{"content":"8c6dbeca"},{"content":"3ce290cc"},{"content":"2d72833d"}],"metadata":"a1a26142"},"/page/7-2d0":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"623a19a8"},{"content":"f9c65c8d"},{"content":"988c71cb"},{"content":"bd1eb202"},{"content":"39ea0274"}],"metadata":"228ebc11"},"/page/70-ee8":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"62422ab6"},{"content":"79730245"},{"content":"eda7cf83"},{"content":"a9347c1b"},{"content":"c60581f2"}],"metadata":"985c36e4"},"/page/71-61f":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"bda3e1c7"},{"content":"edca0251"},{"content":"b8bcf1d1"},{"content":"0c11045c"},{"content":"faece773"}],"metadata":"2738ca2a"},"/page/72-d60":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"a1597564"},{"content":"35785fae"},{"content":"4dc3be72"},{"content":"8fea44ca"},{"content":"04326247"}],"metadata":"5642d223"},"/page/73-b2e":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"82f24945"},{"content":"417fc4b4"},{"content":"4735cd81"},{"content":"c6ae40c2"},{"content":"2e2abe90"}],"metadata":"a0225fec"},"/page/74-a64":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"94780c38"},{"content":"e2a7c340"},{"content":"07fdf123"},{"content":"7c359f4d"},{"content":"c315164d"}],"metadata":"c8056232"},"/page/75-2c7":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"6e743f1b"},{"content":"3143eb67"},{"content":"8470e3c7"},{"content":"563fcf2e"},{"content":"0048047b"}],"metadata":"3a906e9e"},"/page/76-82b":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"b6ef4fcb"},{"content":"98e6984f"},{"content":"74d66224"},{"content":"ef2b6a3f"},{"content":"0a44a251"}],"metadata":"ccb3697b"},"/page/77-4a7":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"996aa714"},{"content":"805fc822"},{"content":"0b1b72af"},{"content":"84677cf0"},{"content":"f6aa5556"}],"metadata":"f91da2e3"},"/page/78-360":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"41606842"},{"content":"f210b4b5"},{"content":"81528b00"},{"content":"d6a93ba7"},{"content":"e135bd86"}],"metadata":"72e3f9d2"},"/page/79-ffe":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"a1ac97eb"},{"content":"7e87972d"},{"content":"533bb9dc"},{"content":"6da0a796"},{"content":"d79a4bb7"}],"metadata":"7ba00404"},"/page/8-fc7":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"dbfcd384"},{"content":"b6472136"},{"content":"c880761d"},{"content":"39db4f40"},{"content":"94d5ff15"}],"metadata":"089f77bc"},"/page/80-65a":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"6226ba71"},{"content":"41d087d7"},{"content":"f5e5d1cf"},{"content":"8914fa7e"},{"content":"10659ce5"}],"metadata":"3bf61174"},"/page/81-5cf":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"76c61a3b"},{"content":"d7899fea"},{"content":"177280a4"},{"content":"274d7200"},{"content":"b512dd46"}],"metadata":"90ae2cef"},"/page/82-f4c":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"9fba849d"},{"content":"144cf255"},{"content":"d124c703"},{"content":"1da92289"},{"content":"31889a8f"}],"metadata":"ba7f9bb8"},"/page/83-ff4":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"126e82e6"},{"content":"40e498fa"},{"content":"439b9a57"},{"content":"15dc596d"},{"content":"0d671897"}],"metadata":"af8de899"},"/page/84-141":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"b92c36fd"},{"content":"fb8d4667"},{"content":"7faccef9"},{"content":"90f359c5"},{"content":"e356bfd0"}],"metadata":"ac8f4356"},"/page/85-46e":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"77215fb3"},{"content":"d3a595c1"},{"content":"9b7a95a2"},{"content":"ae2d2424"},{"content":"f5a24224"}],"metadata":"c7096169"},"/page/86-2f1":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"7c815b5e"},{"content":"06a283ef"},{"content":"4c4f8ee1"},{"content":"a3889346"},{"content":"2073b851"}],"metadata":"ee5cb919"},"/page/87-11d":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"73bbd4d7"},{"content":"ce6dcc9e"},{"content":"68fb9d2f"},{"content":"2fa57f55"},{"content":"019bb279"}],"metadata":"53631751"},"/page/88-eeb":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"ba0b6dbd"}],"metadata":"49910c96"},"/page/9-589":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"0bbf8a95"},{"content":"ba0b87b5"},{"content":"39dd59eb"},{"content":"fdc27cae"},{"content":"72174b40"}],"metadata":"edf65b53"},"/quarterly-eaf":{"__comp":"a6aa9e1f","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","items":[{"content":"6b51f988"},{"content":"57e0ab98"},{"content":"5296f864"},{"content":"7de7ce98"},{"content":"e716e5b6"},{"content":"b3f59e42"},{"content":"e1e18011"},{"content":"078fe100"},{"content":"d7dccf50"},{"content":"1eaa900a"}],"metadata":"729abf9f"},"/quarterly/2022-10-07-node-cli-api-5f3":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"5778ca6b"},"/quarterly/2022-11-07-ledger-713":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"a0d18a99"},"/quarterly/2022-11-09-network-9ef":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"e7486169"},"/quarterly/2022-11-15-consensus-724":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"83e7e4db"},"/quarterly/2023-01-13-network-73f":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"cc5c2602"},"/quarterly/2023-01-13-open-source-85b":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"0dea9a3b"},"/quarterly/2023-01-18-consensus-418":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"db138d7c"},"/quarterly/2023-04-03-ledger-bd9":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"c5858ebd"},"/quarterly/2023-04-04-network-2ea":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"4da01d42"},"/quarterly/2023-04-25-consensus-280":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"c7337d4e"},"/quarterly/2023-Q2-consensus-606":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"f3c06362"},"/quarterly/2023-Q2-network-236":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"be1e6782"},"/quarterly/2023-Q2-sre-aa4":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"ce17d78b"},"/quarterly/2023-Q3-performance-and-tracing-bbb":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"b073a55d"},"/quarterly/2023-Q3-sre-000":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"6c8b7ad4"},"/quarterly/2023-Q4-consensus-ffd":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"46b1db29"},"/quarterly/2023-Q4-performance-and-tracing-70e":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"2e4cebe0"},"/quarterly/2023-Q4-sre-cdb":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"9625caab"},"/quarterly/2024-Q1-sre-328":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"857645d9"},"/quarterly/2024-Q2-sre-6a6":{"__comp":"ccc49370","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","content":"022c437b"},"/quarterly/archive-5f3":{"__comp":"9e4087bc","__context":{"plugin":"c1c5c6f5"},"archive":"b0b16a90"},"/quarterly/page/2-6db":{"__comp":"a6aa9e1f","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","items":[{"content":"97407dee"},{"content":"600e4190"},{"content":"12525f14"},{"content":"95f12e12"},{"content":"c0cf6239"},{"content":"79d76848"},{"content":"dceb6e64"},{"content":"46c51ef6"},{"content":"15072f11"},{"content":"cced6026"}],"metadata":"c8302006"},"/quarterly/tags-231":{"__comp":"01a85c17","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","tags":"3b080b29"},"/quarterly/tags/cli-api-quarterly-419":{"__comp":"6875c492","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","items":[{"content":"cced6026"}],"tag":"4dba54fc","listMetadata":"1a982bed"},"/quarterly/tags/consensus-693":{"__comp":"6875c492","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","items":[{"content":"6b51f988"},{"content":"b3f59e42"},{"content":"97407dee"},{"content":"95f12e12"},{"content":"dceb6e64"}],"tag":"68b2c30a","listMetadata":"99d1374b"},"/quarterly/tags/ledger-480":{"__comp":"6875c492","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","items":[{"content":"12525f14"},{"content":"15072f11"}],"tag":"80514ec9","listMetadata":"3839ff25"},"/quarterly/tags/network-de0":{"__comp":"6875c492","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","items":[{"content":"57e0ab98"},{"content":"600e4190"},{"content":"c0cf6239"},{"content":"46c51ef6"}],"tag":"49bee9db","listMetadata":"d632b502"},"/quarterly/tags/open-source-0c4":{"__comp":"6875c492","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","items":[{"content":"79d76848"}],"tag":"cb1998b9","listMetadata":"68b9da9c"},"/quarterly/tags/performance-tracing-34a":{"__comp":"6875c492","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","items":[{"content":"7de7ce98"},{"content":"e1e18011"}],"tag":"fb6d6072","listMetadata":"92b15de5"},"/quarterly/tags/sre-cf8":{"__comp":"6875c492","__context":{"plugin":"c1c5c6f5"},"sidebar":"87088759","items":[{"content":"5296f864"},{"content":"e716e5b6"},{"content":"078fe100"},{"content":"d7dccf50"},{"content":"1eaa900a"}],"tag":"9a947260","listMetadata":"2e0caba1"},"/reports-bdb":{"__comp":"a6aa9e1f","__context":{"plugin":"04ae583b"},"sidebar":"9fba226c","items":[{"content":"8b59c913"},{"content":"8c3c73e0"},{"content":"092cb4d9"},{"content":"dc3c29da"},{"content":"463d37d9"},{"content":"0bfabad2"}],"metadata":"1aa68a01"},"/reports/2023-12-performance-8.7.2-5dd":{"__comp":"ccc49370","__context":{"plugin":"04ae583b"},"sidebar":"9fba226c","content":"92b56def"},"/reports/2024-03-performance-8.9.0-fa3":{"__comp":"ccc49370","__context":{"plugin":"04ae583b"},"sidebar":"9fba226c","content":"5f42e212"},"/reports/2024-03-performance-8.9.1-21d":{"__comp":"ccc49370","__context":{"plugin":"04ae583b"},"sidebar":"9fba226c","content":"cab3a9ea"},"/reports/2024-05-performance-8.9.3-6d4":{"__comp":"ccc49370","__context":{"plugin":"04ae583b"},"sidebar":"9fba226c","content":"a739ba69"},"/reports/2024-06-performance-8.12.1-978":{"__comp":"ccc49370","__context":{"plugin":"04ae583b"},"sidebar":"9fba226c","content":"d76bd867"},"/reports/2024-07-performance-9.0.0-679":{"__comp":"ccc49370","__context":{"plugin":"04ae583b"},"sidebar":"9fba226c","content":"f04f5aa5"},"/reports/archive-d17":{"__comp":"9e4087bc","__context":{"plugin":"04ae583b"},"archive":"d192a362"},"/reports/tags-d18":{"__comp":"01a85c17","__context":{"plugin":"04ae583b"},"sidebar":"9fba226c","tags":"2e4b96cf"},"/reports/tags/benchmarking-reports-31e":{"__comp":"6875c492","__context":{"plugin":"04ae583b"},"sidebar":"9fba226c","items":[{"content":"8b59c913"},{"content":"8c3c73e0"},{"content":"092cb4d9"},{"content":"dc3c29da"},{"content":"463d37d9"},{"content":"0bfabad2"}],"tag":"c149628c","listMetadata":"58de45fc"},"/tags-90c":{"__comp":"01a85c17","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","tags":"f57ea8cf"},"/tags/cip-1694-edc":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"7221b837"}],"tag":"771eb9f2","listMetadata":"3ed6d409"},"/tags/cli-api-6c7":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"d5c6258a"},{"content":"8e0eb050"},{"content":"b6472136"},{"content":"8a4bf3d8"},{"content":"ad3b787d"}],"tag":"ff98e151","listMetadata":"2a707bc4"},"/tags/cli-api/page/2-135":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"63a0ff66"},{"content":"3c855eb4"},{"content":"300a86ed"},{"content":"4d4ca631"},{"content":"c9987321"}],"tag":"fd5f5db6","listMetadata":"eaf1cf7f"},"/tags/cli-api/page/3-20d":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"933ecdda"},{"content":"706d2bfc"},{"content":"6d22e028"},{"content":"54a7c81e"},{"content":"d5f27176"}],"tag":"4e419659","listMetadata":"1ac6d9a0"},"/tags/cli-api/page/4-fb3":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"a1f2945e"},{"content":"3399a664"},{"content":"77550e96"},{"content":"da04b7b0"},{"content":"b4f5b98b"}],"tag":"ea5b7321","listMetadata":"0c58c296"},"/tags/cli-api/page/5-45e":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"a69f0deb"},{"content":"c2eec07f"},{"content":"c6f90b29"},{"content":"12637b23"},{"content":"73f0dde0"}],"tag":"08d15232","listMetadata":"a79960af"},"/tags/cli-api/page/6-c05":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"d9b708eb"},{"content":"393cd824"},{"content":"ccfc9222"},{"content":"6fb45133"},{"content":"f302e248"}],"tag":"d6e5a7f4","listMetadata":"066b9f60"},"/tags/cli-api/page/7-787":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"bda3e1c7"},{"content":"04326247"},{"content":"0048047b"},{"content":"0a44a251"},{"content":"a1ac97eb"}],"tag":"9348fe5e","listMetadata":"051bf5d6"},"/tags/cli-api/page/8-07b":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"10659ce5"},{"content":"40e498fa"},{"content":"d3a595c1"},{"content":"4c4f8ee1"}],"tag":"caeff77a","listMetadata":"9423f7cf"},"/tags/consensus-820":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"3c041795"},{"content":"a56f68e5"},{"content":"8236b20c"},{"content":"1dd82bf1"},{"content":"39ea0274"}],"tag":"eb781ed2","listMetadata":"cebf097b"},"/tags/consensus/page/2-098":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"fdc27cae"},{"content":"550b6b1a"},{"content":"170ad9f9"},{"content":"2691c4f4"},{"content":"f76b8023"}],"tag":"cbd762f3","listMetadata":"cb70d85b"},"/tags/consensus/page/3-5ae":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"fd4eddf4"},{"content":"9de5c9e8"},{"content":"fbe14114"},{"content":"d0639dee"},{"content":"7de83161"}],"tag":"d3ba1bbd","listMetadata":"5346bf97"},"/tags/consensus/page/4-910":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"0b5e25e7"},{"content":"1752e4e5"},{"content":"b3043f02"},{"content":"a1d1f035"},{"content":"7c895c96"}],"tag":"c7db80fc","listMetadata":"bb33890e"},"/tags/consensus/page/5-d60":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"fc8c3309"},{"content":"ca3b5bc8"},{"content":"ee0b7a59"},{"content":"113fed8c"},{"content":"d077dadd"}],"tag":"c9d7f018","listMetadata":"d97d797d"},"/tags/consensus/page/6-c04":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"999e2b46"},{"content":"b57687d8"},{"content":"59a262d5"},{"content":"ed930750"},{"content":"8b4d9039"}],"tag":"0d954d74","listMetadata":"7c785843"},"/tags/consensus/page/7-c84":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"3f9060c3"},{"content":"0db650db"},{"content":"f872275a"},{"content":"d863ede2"},{"content":"c60581f2"}],"tag":"50d19186","listMetadata":"5f1db61d"},"/tags/consensus/page/8-3f5":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"8fea44ca"},{"content":"6e743f1b"},{"content":"74d66224"},{"content":"e135bd86"},{"content":"8914fa7e"}],"tag":"a1ff8cc5","listMetadata":"fca4af6d"},"/tags/consensus/page/9-f0d":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"31889a8f"},{"content":"9b7a95a2"},{"content":"7c815b5e"},{"content":"73bbd4d7"},{"content":"019bb279"}],"tag":"b51d04b3","listMetadata":"d13afeb8"},"/tags/crypto-b28":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"65d0391b"},{"content":"3c3d2bff"},{"content":"246d9f04"},{"content":"8bfc66fb"},{"content":"6eecfaae"}],"tag":"b69dce12","listMetadata":"d3a63b1a"},"/tags/crypto/page/2-d0b":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"91595845"},{"content":"2d0da244"},{"content":"9136968b"},{"content":"50d0e663"},{"content":"ea84a009"}],"tag":"b13b9480","listMetadata":"013c921c"},"/tags/crypto/page/3-6db":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"8c6dbeca"},{"content":"b8bcf1d1"},{"content":"82f24945"},{"content":"8470e3c7"},{"content":"0b1b72af"}],"tag":"c4d8aa78","listMetadata":"02208e51"},"/tags/crypto/page/4-09c":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"6da0a796"},{"content":"d7899fea"},{"content":"e356bfd0"}],"tag":"00ae3d77","listMetadata":"e980c509"},"/tags/db-sync-25f":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"72174b40"},{"content":"8d60cfea"},{"content":"934a8f8d"},{"content":"878c8163"},{"content":"1a932c01"}],"tag":"932bb1e6","listMetadata":"0fc579d4"},"/tags/db-sync/page/2-2d6":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"0dfea636"},{"content":"d5cc3122"},{"content":"6b16e156"},{"content":"3ab5f4e0"},{"content":"c831575d"}],"tag":"a69b7e0b","listMetadata":"7c54274f"},"/tags/db-sync/page/3-5ef":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"94780c38"},{"content":"ef2b6a3f"},{"content":"f210b4b5"},{"content":"0d671897"},{"content":"06a283ef"}],"tag":"b9ad018f","listMetadata":"3f828345"},"/tags/db-sync/page/4-735":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"ce6dcc9e"}],"tag":"6e9ea927","listMetadata":"b1992084"},"/tags/devx-129":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"e4619b9c"},{"content":"6190b2fb"}],"tag":"16833806","listMetadata":"a5aa5392"},"/tags/embedding-quality-fd2":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"1da92289"}],"tag":"be2e95c8","listMetadata":"8dbcbb69"},"/tags/goedel-9eb":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"f7132c6a"},{"content":"486d3992"},{"content":"22a8c4ec"},{"content":"de4537b5"},{"content":"b2ab4460"}],"tag":"41686714","listMetadata":"75a8d947"},"/tags/goedel/page/2-0f6":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"d7c69167"},{"content":"9e570fef"},{"content":"61e62d68"},{"content":"1e57c0e2"},{"content":"10532414"}],"tag":"cdecbf23","listMetadata":"a5c8afdd"},"/tags/goedel/page/3-c3d":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"caab1e2e"},{"content":"4d3eb7e7"},{"content":"3bb415e3"},{"content":"6d25229c"},{"content":"db50202c"}],"tag":"d21b93c1","listMetadata":"ad9f1248"},"/tags/goedel/page/4-5e8":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"fa0b1b5d"},{"content":"0431617f"},{"content":"ef4f60e7"},{"content":"e158fd47"},{"content":"3ac610ff"}],"tag":"3a3e17f4","listMetadata":"fc6043ae"},"/tags/goedel/page/5-234":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"94a907c9"},{"content":"3ce290cc"},{"content":"0c11045c"}],"tag":"223e0224","listMetadata":"83831b70"},"/tags/hydra-e6a":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"817a876c"},{"content":"7ebab15c"},{"content":"34f5d9d4"},{"content":"29388bf2"},{"content":"bd1eb202"}],"tag":"0f191e9d","listMetadata":"e5d179d9"},"/tags/hydra/page/10-b1a":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"ace79a55"},{"content":"fb0b9e22"},{"content":"f48535bf"},{"content":"bdc4c1ed"},{"content":"fbdc54bf"}],"tag":"29352f22","listMetadata":"44cd51e3"},"/tags/hydra/page/11-adf":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"0801ba5a"},{"content":"aa4c9cc8"},{"content":"17e76f05"},{"content":"876c34e9"},{"content":"90cc522f"}],"tag":"9bb237b8","listMetadata":"4b2a148e"},"/tags/hydra/page/12-044":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"e80f56fd"},{"content":"12d5d907"},{"content":"9c96fa11"},{"content":"4d7c8e78"},{"content":"e2011657"}],"tag":"b646abd3","listMetadata":"3a5dab2a"},"/tags/hydra/page/13-439":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"1caacab6"},{"content":"fce7e268"},{"content":"fee99998"},{"content":"2d72833d"},{"content":"eda7cf83"}],"tag":"c25c032e","listMetadata":"dd1ee47a"},"/tags/hydra/page/14-7ff":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"faece773"},{"content":"35785fae"},{"content":"417fc4b4"},{"content":"e2a7c340"},{"content":"b6ef4fcb"}],"tag":"fbc5e9d6","listMetadata":"1e9d3edd"},"/tags/hydra/page/15-e8f":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"84677cf0"},{"content":"41606842"},{"content":"d79a4bb7"},{"content":"41d087d7"},{"content":"177280a4"}],"tag":"9c781688","listMetadata":"24788f0e"},"/tags/hydra/page/16-383":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"9fba849d"},{"content":"b92c36fd"},{"content":"77215fb3"},{"content":"ae2d2424"}],"tag":"0ca75f19","listMetadata":"43956aba"},"/tags/hydra/page/2-34d":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"0bbf8a95"},{"content":"2b872e03"},{"content":"0813fe0c"},{"content":"3876260c"},{"content":"ac7236c1"}],"tag":"78d07d74","listMetadata":"dc590d3d"},"/tags/hydra/page/3-5e9":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"e54eb766"},{"content":"e9dce996"},{"content":"ff158e4d"},{"content":"d1d77594"},{"content":"7598a821"}],"tag":"bc942cd0","listMetadata":"19b42e4a"},"/tags/hydra/page/4-909":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"bb016389"},{"content":"d2463491"},{"content":"28000465"},{"content":"649eea43"},{"content":"221981c6"}],"tag":"fc30198e","listMetadata":"bafef0bd"},"/tags/hydra/page/5-010":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"519b5664"},{"content":"8fd26069"},{"content":"7518bbd3"},{"content":"72dde749"},{"content":"9ce37f6e"}],"tag":"1adaa071","listMetadata":"ba2ecd41"},"/tags/hydra/page/6-1b2":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"8534c2dd"},{"content":"7fa9de70"},{"content":"b7dd63dc"},{"content":"ed99d55f"},{"content":"ccf451f9"}],"tag":"de3a87a3","listMetadata":"af332a03"},"/tags/hydra/page/7-891":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"49d88be4"},{"content":"35c3586e"},{"content":"80617771"},{"content":"e3067ecd"},{"content":"d343e3e1"}],"tag":"4f47c374","listMetadata":"b4af885a"},"/tags/hydra/page/8-180":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"31025fde"},{"content":"f96c80dc"},{"content":"d7836792"},{"content":"a6e5ff3c"},{"content":"80c54634"}],"tag":"5907b27e","listMetadata":"4ac33b1c"},"/tags/hydra/page/9-9e5":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"f5b1250e"},{"content":"a1cde312"},{"content":"d6c09ac2"},{"content":"71d215be"},{"content":"9cab6d73"}],"tag":"7c78252e","listMetadata":"785e66fe"},"/tags/incident-86f":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"3c3d2bff"},{"content":"a6238997"}],"tag":"1cfb0a67","listMetadata":"c51276e7"},"/tags/ledger-055":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"bce2d096"},{"content":"3538f18d"},{"content":"63a2f993"},{"content":"1cb5298b"},{"content":"623a19a8"}],"tag":"4a8836ad","listMetadata":"f9afe2d8"},"/tags/ledger/page/2-5be":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"39db4f40"},{"content":"1150db26"},{"content":"9308fe55"},{"content":"cd5f993f"},{"content":"7442b11e"}],"tag":"09e2328d","listMetadata":"90323238"},"/tags/ledger/page/3-726":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"b134e481"},{"content":"fe591044"},{"content":"cf472160"},{"content":"c52fdde1"},{"content":"884eee03"}],"tag":"0eb9e1ad","listMetadata":"3b214584"},"/tags/ledger/page/4-7e9":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"5e9a4be9"},{"content":"7221b837"},{"content":"ea2603ff"},{"content":"f6ec1152"},{"content":"6e43d302"}],"tag":"9a49abff","listMetadata":"3b3294a4"},"/tags/ledger/page/5-0cd":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"0e828f3a"},{"content":"9d7869bb"},{"content":"789f2cca"},{"content":"704e5bb8"},{"content":"0645cd02"}],"tag":"af883e31","listMetadata":"c5b24241"},"/tags/ledger/page/6-7dc":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"2154b8e4"},{"content":"b3041b60"},{"content":"de790939"},{"content":"a6238997"},{"content":"0af81f82"}],"tag":"42eb15cf","listMetadata":"20904fef"},"/tags/ledger/page/7-57a":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"391126a1"},{"content":"56f35d85"},{"content":"62422ab6"},{"content":"a1597564"},{"content":"2e2abe90"}],"tag":"c0d329f5","listMetadata":"0d6ce706"},"/tags/ledger/page/8-f63":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"563fcf2e"},{"content":"f6aa5556"},{"content":"6226ba71"},{"content":"274d7200"},{"content":"126e82e6"}],"tag":"16f9706c","listMetadata":"25456c82"},"/tags/ledger/page/9-134":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"f5a24224"},{"content":"a3889346"},{"content":"68fb9d2f"},{"content":"2fa57f55"}],"tag":"2075513f","listMetadata":"8515128d"},"/tags/mithril-897":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"189b9341"},{"content":"1b89036f"},{"content":"3659ef2a"},{"content":"90aeef13"},{"content":"c2e0061a"}],"tag":"5282f34e","listMetadata":"44149308"},"/tags/mithril/page/10-db2":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"e90b2ff0"},{"content":"d0e182b9"},{"content":"f8681695"},{"content":"62ec9f43"},{"content":"ebf8adea"}],"tag":"86870c59","listMetadata":"91f74828"},"/tags/mithril/page/11-4fb":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"c9210b26"},{"content":"c10365f3"},{"content":"89931013"},{"content":"913aac40"},{"content":"c061e3b1"}],"tag":"839c5f78","listMetadata":"5de0f279"},"/tags/mithril/page/12-11e":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"76794a21"},{"content":"a9347c1b"},{"content":"4dc3be72"},{"content":"c315164d"},{"content":"98e6984f"}],"tag":"91dad5e0","listMetadata":"251f0563"},"/tags/mithril/page/13-a65":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"81528b00"},{"content":"f5e5d1cf"},{"content":"144cf255"}],"tag":"21f2a9aa","listMetadata":"f5233174"},"/tags/mithril/page/2-d68":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"4731c85e"},{"content":"bbdd9b59"},{"content":"06ca6baf"},{"content":"7214e9a2"},{"content":"24d9143c"}],"tag":"50560035","listMetadata":"4953deee"},"/tags/mithril/page/3-af3":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"dbfcd384"},{"content":"94d5ff15"},{"content":"f99e473b"},{"content":"741efb60"},{"content":"199b4690"}],"tag":"14db8e4c","listMetadata":"2ca47575"},"/tags/mithril/page/4-b4b":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"9e3f42ed"},{"content":"f63d0757"},{"content":"60293520"},{"content":"17254497"},{"content":"cc74f849"}],"tag":"570bc21e","listMetadata":"c2d03b29"},"/tags/mithril/page/5-562":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"0915a78d"},{"content":"05e38d95"},{"content":"da2bedef"},{"content":"a29c613f"},{"content":"4994a283"}],"tag":"a92d4e87","listMetadata":"fc55a8cc"},"/tags/mithril/page/6-a57":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"e9de58f7"},{"content":"7d9cdd40"},{"content":"5a36c8fd"},{"content":"1112c086"},{"content":"37b247a8"}],"tag":"84bc1a8f","listMetadata":"0edd4eae"},"/tags/mithril/page/7-935":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"4de4e659"},{"content":"ddcb8bff"},{"content":"1c192ca4"},{"content":"9b5ce5fa"},{"content":"f7e5e70a"}],"tag":"b76ef772","listMetadata":"234d19c9"},"/tags/mithril/page/8-f2b":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"c7e43a05"},{"content":"a14fd889"},{"content":"3bc8fe23"},{"content":"70396aa3"},{"content":"24d5a6d9"}],"tag":"776206d2","listMetadata":"7b261353"},"/tags/mithril/page/9-df3":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"9668e24b"},{"content":"bb44f9e3"},{"content":"7a6174e7"},{"content":"2e28eb6b"},{"content":"b032e7ab"}],"tag":"c5fa22e0","listMetadata":"bd3fea4c"},"/tags/network-0e6":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"ce266bdc"},{"content":"988c71cb"},{"content":"39dd59eb"},{"content":"6c50c5d9"},{"content":"a4419125"}],"tag":"31a18ffd","listMetadata":"531a6747"},"/tags/network/page/2-008":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"4574fd9f"},{"content":"5d9e7658"},{"content":"45e52e4e"},{"content":"b6036a11"},{"content":"36e46525"}],"tag":"16b5fa1e","listMetadata":"de42301d"},"/tags/network/page/3-df1":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"838dc3f3"},{"content":"cb7a1a0b"},{"content":"7a263bfa"},{"content":"43ab8474"},{"content":"209bf559"}],"tag":"161d96eb","listMetadata":"9b436c26"},"/tags/network/page/4-b41":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"046dd16d"},{"content":"469935bd"},{"content":"0e0c98f4"},{"content":"6004d2a4"},{"content":"afa83c07"}],"tag":"fa82889f","listMetadata":"0ca860fc"},"/tags/network/page/5-767":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"871691d4"},{"content":"1be923a7"},{"content":"bccb35b7"},{"content":"51bf60d9"},{"content":"78df8d65"}],"tag":"9c00a84f","listMetadata":"0660f60e"},"/tags/network/page/6-bdf":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"d9ccb35d"},{"content":"55b9667a"},{"content":"79730245"},{"content":"4735cd81"},{"content":"805fc822"}],"tag":"e0a887fb","listMetadata":"92e62ade"},"/tags/network/page/7-c40":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"533bb9dc"},{"content":"b512dd46"},{"content":"fb8d4667"},{"content":"2073b851"},{"content":"ba0b6dbd"}],"tag":"76f55d29","listMetadata":"20db5fd1"},"/tags/open-source-ac1":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"d124c703"}],"tag":"07948597","listMetadata":"bc4c7bdd"},"/tags/performance-tracing-44f":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"2c6851ed"},{"content":"9f4f09d0"},{"content":"f9c65c8d"},{"content":"ba0b87b5"},{"content":"380c57b3"}],"tag":"6ded2f47","listMetadata":"f5b69acd"},"/tags/performance-tracing/page/2-98c":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"a609cdb3"},{"content":"f480ab7b"},{"content":"3fb79450"},{"content":"617b050a"},{"content":"26a4b8b3"}],"tag":"7ca6b5b4","listMetadata":"62c838a9"},"/tags/performance-tracing/page/3-8d6":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"a1d4a798"},{"content":"d70b4c5f"},{"content":"69c7a5a7"},{"content":"b65e5ec2"},{"content":"e56a9a29"}],"tag":"505049d0","listMetadata":"370b5914"},"/tags/performance-tracing/page/4-1da":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"12a1613f"},{"content":"6a75c57a"},{"content":"c2b4dd94"},{"content":"034a14a6"},{"content":"cf1bc381"}],"tag":"db8fcc67","listMetadata":"6728e788"},"/tags/performance-tracing/page/5-356":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"2d52a685"},{"content":"99881079"},{"content":"d96cfa54"},{"content":"7a4b421f"},{"content":"ec53298b"}],"tag":"af4c9a4c","listMetadata":"b34c935f"},"/tags/performance-tracing/page/6-8ee":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"f2423430"},{"content":"8864b77b"},{"content":"d99d594e"},{"content":"edca0251"},{"content":"3143eb67"}],"tag":"f7812855","listMetadata":"ca6e2d66"},"/tags/performance-tracing/page/7-5fd":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"996aa714"},{"content":"7e87972d"},{"content":"76c61a3b"},{"content":"7faccef9"}],"tag":"3d542156","listMetadata":"c4565987"},"/tags/release-3f8":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"4735cd81"},{"content":"07fdf123"},{"content":"805fc822"},{"content":"533bb9dc"},{"content":"439b9a57"}],"tag":"d9a6bb79","listMetadata":"1b386b52"},"/tags/security-8e7":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"7221b837"}],"tag":"9936161a","listMetadata":"7f6d758e"},"/tags/sre-917":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"7fda8ae5"},{"content":"ce230425"},{"content":"142448a1"},{"content":"c880761d"},{"content":"86b90503"}],"tag":"c92fbd03","listMetadata":"9a0e13cc"},"/tags/sre/page/2-e55":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"395173ce"},{"content":"32a89ce0"},{"content":"e5eebff8"},{"content":"0e8f60e3"},{"content":"28644f4c"}],"tag":"d3c2803b","listMetadata":"09dc29d3"},"/tags/sre/page/3-f03":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"4708484f"},{"content":"0350d52d"},{"content":"a74edb50"},{"content":"573e0546"},{"content":"fa00d705"}],"tag":"365e04c6","listMetadata":"812c0fab"},"/tags/sre/page/4-5ac":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"82db709e"},{"content":"5c8fca76"},{"content":"a687dd04"},{"content":"b242687d"},{"content":"611f3a9e"}],"tag":"9bd1b7cb","listMetadata":"a12974ca"},"/tags/sre/page/5-099":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"7574ff34"},{"content":"9dee36e7"},{"content":"35ef34ae"},{"content":"68585f67"},{"content":"45a10ae8"}],"tag":"2831f2fb","listMetadata":"e48af7b3"},"/tags/sre/page/6-510":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"c036f08e"},{"content":"11423591"},{"content":"c6ae40c2"},{"content":"90f359c5"}],"tag":"214ea763","listMetadata":"d7e5c882"},"/tags/system-test-f69":{"__comp":"6875c492","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"28bc1d1b"},{"content":"04c3317f"},{"content":"7c359f4d"},{"content":"d6a93ba7"},{"content":"15dc596d"}],"tag":"4a0a5eb3","listMetadata":"1edde1a1"},"/docs-705":{"__comp":"1be78505","__context":{"plugin":"27c463c7"},"versionMetadata":"935f2afb"},"/docs/category/tutorial---basics-961":{"__comp":"14eb3368","categoryGeneratedIndex":"3223729c"},"/docs/category/tutorial---extras-66d":{"__comp":"14eb3368","categoryGeneratedIndex":"011c86a6"},"/docs/intro-5ba":{"__comp":"17896441","content":"0e384e19"},"/docs/tutorial-basics/congratulations-f00":{"__comp":"17896441","content":"822bd8ab"},"/docs/tutorial-basics/create-a-blog-post-859":{"__comp":"17896441","content":"533a09ca"},"/docs/tutorial-basics/create-a-document-35e":{"__comp":"17896441","content":"1e4232ab"},"/docs/tutorial-basics/create-a-page-2c8":{"__comp":"17896441","content":"5c868d36"},"/docs/tutorial-basics/deploy-your-site-732":{"__comp":"17896441","content":"f55d3e7a"},"/docs/tutorial-basics/markdown-features-072":{"__comp":"17896441","content":"18c41134"},"/docs/tutorial-extras/manage-docs-versions-048":{"__comp":"17896441","content":"dff1c289"},"/docs/tutorial-extras/translate-your-site-a66":{"__comp":"17896441","content":"e44a2883"},"/-4aa":{"__comp":"a6aa9e1f","__context":{"plugin":"08c82b6d"},"sidebar":"d6b66cf4","items":[{"content":"817a876c"},{"content":"189b9341"},{"content":"3c041795"},{"content":"1b89036f"},{"content":"ce266bdc"}],"metadata":"5b019cc0"}}')}},e=>{e.O(0,[40532],(()=>{return t=49383,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.5671cdaa.js.LICENSE.txt b/assets/js/main.5671cdaa.js.LICENSE.txt new file mode 100644 index 0000000000..6e08db297b --- /dev/null +++ b/assets/js/main.5671cdaa.js.LICENSE.txt @@ -0,0 +1,53 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + */ + +/** @license React v0.20.2 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/assets/js/runtime~main.983414eb.js b/assets/js/runtime~main.983414eb.js new file mode 100644 index 0000000000..35c42c5e25 --- /dev/null +++ b/assets/js/runtime~main.983414eb.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,d,f,c,b,a={},t={};function r(e){var d=t[e];if(void 0!==d)return d.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return a[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=a,r.c=t,e=[],r.O=(d,f,c,b)=>{if(!f){var a=1/0;for(i=0;i<e.length;i++){f=e[i][0],c=e[i][1],b=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&b||a>=b)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,b<a&&(a=b));if(t){e.splice(i--,1);var n=c();void 0!==n&&(d=n)}}return d}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[f,c,b]},r.n=e=>{var d=e&&e.__esModule?()=>e.default:()=>e;return r.d(d,{a:d}),d},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var a={};d=d||[null,f({}),f([]),f(f)];for(var t=2&c&&e;"object"==typeof t&&!~d.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((d=>a[d]=()=>e[d]));return a.default=()=>e,r.d(b,a),b},r.d=(e,d)=>{for(var f in d)r.o(d,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:d[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((d,f)=>(r.f[f](e,d),d)),[])),r.u=e=>"assets/js/"+({81:"08c82b6d",117:"857645d9",276:"c1cf9f04",278:"9f761678",292:"b032e7ab",376:"f6aa5556",458:"43289e4d",493:"3b3294a4",567:"bfcdc265",579:"ba0b87b5",764:"c0d329f5",770:"1752e4e5",815:"189b9341",879:"20441287",947:"733f2214",1088:"051bf5d6",1099:"db8fcc67",1105:"d1d77594",1129:"f5b1250e",1285:"28bc1d1b",1321:"f2423430",1338:"ef2b6a3f",1537:"d3a595c1",1686:"58ef99f4",1821:"d8668f0c",1866:"bb33890e",1929:"e25ae581",1938:"9348fe5e",2071:"c51276e7",2091:"4c8419de",2109:"219856ee",2136:"871691d4",2156:"4ef29baf",2251:"771eb9f2",2307:"06a283ef",2348:"1a932c01",2432:"7e87972d",2548:"8515128d",2578:"d92df848",2589:"65837eee",2681:"62f46a38",2773:"a69f0deb",2789:"35c3586e",2906:"1558d884",3136:"d9ccb35d",3158:"aaf18ab0",3188:"abfcb655",3203:"12ba2af2",3270:"d5676bf9",3530:"8c75942c",3649:"017cd6b7",3685:"53631751",3721:"1edde1a1",3792:"dff1c289",3918:"5668eccd",3986:"b69dce12",4089:"46898189",4093:"20bc6fcd",4295:"b5d3534a",4307:"16a93549",4376:"3ab5f4e0",4497:"a9019578",4498:"b76ef772",4553:"caeff77a",4615:"12a1613f",4823:"4a8836ad",4855:"b51d04b3",4910:"0dea9a3b",4944:"691b1ed7",4986:"9136968b",5106:"43ab8474",5214:"28d85025",5237:"ccf451f9",5391:"eba74f81",5485:"56f35d85",5507:"1aa68a01",5607:"4708484f",5637:"c9987321",5785:"fc6043ae",5978:"1d10bd9e",6115:"35961293",6169:"9f70a142",6177:"cb70d85b",6191:"f3b8b9d5",6236:"47da279e",6246:"bb465a37",6249:"55e35eab",6255:"5296f864",6324:"51cf8946",6413:"03d856aa",6421:"fe591044",6519:"5574328a",6543:"623a19a8",6566:"50d19186",6795:"cb1998b9",6807:"986e43da",6814:"a5c8afdd",6890:"10532414",6919:"769eb34c",6962:"15dc596d",7152:"91f74828",7204:"3143eb67",7233:"35785fae",7266:"9b7a95a2",7268:"1150db26",7322:"485c7377",7374:"6728e788",7387:"2e3d75f1",7413:"b28a1077",7538:"ac7236c1",7555:"4ab012ff",7558:"31a18ffd",7717:"84bc1a8f",7729:"6d826f51",7741:"b8a3fbda",7783:"c10365f3",7897:"4b996e44",7902:"a82a69a3",7939:"1b386b52",7966:"246d9f04",7968:"7de83161",7979:"8236b20c",8033:"d343e3e1",8201:"fca4af6d",8362:"a1ff8cc5",8525:"5642d223",8580:"d83d9042",8583:"e5d179d9",8694:"62ec9f43",8721:"dbfcd384",8737:"a6e1d45a",8893:"24d9143c",8905:"92b15de5",9009:"1cb5298b",9107:"e3c3ef1c",9314:"fd4eddf4",9499:"a040c838",9817:"14eb3368",9828:"7de7ce98",9928:"8ed15298",10025:"ba740fe3",10114:"0af81f82",10159:"39db4f40",10173:"89931013",10217:"6ded2f47",10335:"4b62dc40",10440:"0915a78d",10536:"af8de899",11164:"1adaa071",11212:"bc79ed22",11254:"f6ec1152",11400:"b7dd63dc",11537:"8ed69c89",11727:"c63933b3",11748:"5e9a4be9",11759:"6c10d32f",11829:"c158f9a9",11903:"da2bedef",11915:"3029c859",11952:"301cd1f4",11987:"7d9cdd40",11996:"4e419659",12023:"86b90503",12029:"3bc8fe23",12287:"ff98e151",12372:"47e876cf",12620:"20904fef",12626:"f51bb76d",12652:"d7e5c882",12709:"db3d0db2",12853:"90aeef13",13056:"22a8c4ec",13085:"1f391b9e",13160:"65d07996",13276:"57700755",13327:"ed174522",13412:"d2aca35e",13530:"5346bf97",13680:"77215fb3",13752:"b2f6ced4",13753:"b6036a11",13764:"d3f3f546",14274:"68585f67",14392:"5674f153",14545:"3538f18d",14582:"93b15a8c",14587:"a6472a96",14645:"c4565987",14671:"6d66ecac",14844:"d3c2803b",15007:"e980c509",15013:"72e3f9d2",15091:"3ac610ff",15152:"d124c703",15228:"af332a03",15286:"b9b1b0de",15315:"0ca860fc",15347:"8914fa7e",15519:"fc55a8cc",15529:"4735cd81",15589:"5c868d36",15623:"8bfc66fb",15696:"91c8d0f7",15715:"b65e5ec2",15898:"570bc21e",16002:"a2a63bac",16165:"5af0f4f9",16171:"d96cfa54",16224:"de3a87a3",16227:"0ade4266",16348:"12d5d907",16349:"4febca42",16360:"d2ab2776",16498:"28644f4c",16571:"cd5f993f",16616:"6ef7a896",16727:"5a36c8fd",16839:"b4af885a",16855:"3dbbac8a",16878:"54a7c81e",16886:"a7418040",16959:"9a03c440",17139:"4eaeb622",17214:"5226ad4f",17251:"9bb237b8",17285:"d7899fea",17300:"d7d5383e",17323:"ad3b787d",17433:"f2180c0a",17490:"91b05c51",17605:"4b1460f8",17693:"c6ae40c2",17813:"f9c65c8d",17847:"d632b502",17873:"ae2d2424",17878:"0350d52d",17903:"4da01d42",18085:"fbe14114",18144:"8d306cf9",18160:"fc30198e",18242:"dceb6e64",18303:"2d72833d",18355:"9308fe55",18471:"b13b9480",18479:"05f2862f",18513:"09dc29d3",18599:"fd6ebf5b",18634:"db138d7c",18654:"3ce290cc",18815:"818cb4a0",18848:"4d4ca631",19064:"ac8f4356",19182:"3fb79450",19447:"5b019cc0",19516:"52b8fa8a",19644:"0801ba5a",19683:"c5b24241",19773:"925feafa",19861:"98e6984f",20017:"089f77bc",20018:"2831f2fb",20170:"941d55d9",20196:"22e80361",20203:"ff8cfcf7",20306:"4953deee",20326:"c8056232",20387:"d19a344f",20433:"7439ef37",20553:"2d52a685",20578:"5f42e212",20605:"919e3b80",20779:"57e0ab98",20897:"228ebc11",20955:"b073a55d",20957:"d967308c",20974:"3a3a2602",21074:"a74edb50",21080:"37b247a8",21129:"ec53298b",21159:"24fb874a",21200:"0dfea636",21404:"0c8d8623",21439:"dc590d3d",21463:"1147f4da",21562:"c063df1b",21597:"8fe062a7",21642:"2455acc4",21798:"924be064",21806:"21f2a9aa",21895:"fbc5e9d6",21964:"e54eb766",22057:"b3f59e42",22154:"8a6fc2ec",22191:"b242687d",22206:"45a10ae8",22393:"d6c09ac2",22469:"ccb7a847",22519:"31025fde",22585:"63a0ff66",22615:"e8c7dddb",22637:"edf65b53",22772:"cebf097b",22838:"4ed83391",22954:"1da92289",23092:"40e498fa",23146:"1c192ca4",23202:"fd5f5db6",23214:"50560035",23271:"347c3e4d",23318:"ed930750",23360:"add555bf",23427:"80617771",23599:"d6f20405",23621:"0b5e25e7",23623:"365e04c6",23685:"8c3c73e0",23928:"a29c613f",23941:"94a907c9",24155:"6c50c5d9",24216:"00ae3d77",24272:"97cbe753",24288:"d7c69167",24310:"43bbbae7",24323:"776206d2",24327:"27c463c7",24384:"6b51f988",24514:"a739ba69",24519:"dd1ee47a",24568:"f76b8023",24651:"b57687d8",24665:"32a89ce0",24671:"d8c4fe87",24745:"f210b4b5",24801:"bafef0bd",25074:"c7096169",25094:"f9afe2d8",25189:"f89a4337",25272:"8e410d22",25351:"611f3a9e",25353:"a1d4a798",25358:"3bf61174",25403:"f850a5f3",25456:"0bbf8a95",25469:"be1e6782",25480:"4be9a3a6",25574:"380c57b3",25588:"163cc15d",25590:"73bbd4d7",25665:"7442b11e",25759:"04326247",25854:"d369886f",26026:"a687dd04",26276:"0b1b72af",26287:"cf472160",26299:"2d0da244",26308:"50f12e76",26337:"beba3ea5",26397:"0e717c32",26458:"34f5d9d4",26500:"cc9fa3d1",26544:"ee0b7a59",26565:"274d7200",26584:"c90fb258",26710:"fa00d705",27043:"8d60cfea",27237:"0d889cfb",27250:"5160091e",27287:"d9a6bb79",27335:"bda3e1c7",27449:"042169f6",27478:"b3043f02",27577:"e1e18011",27647:"82db709e",27668:"cd0ded60",27697:"fdc27cae",27865:"3c855eb4",27885:"1a982bed",27918:"17896441",27921:"17254497",28050:"46ba60f8",28098:"013c921c",28298:"46c51ef6",28323:"1f9c0c9c",28348:"e847d60c",28480:"2154b8e4",28577:"6c8b7ad4",28592:"28874657",28650:"8aeb9708",28669:"d5cc3122",28672:"d13afeb8",28757:"41686714",28810:"d192a362",28819:"d700c1da",28843:"2276e554",29059:"0d671897",29071:"76794a21",29129:"ae39809c",29177:"daa3e20a",29204:"f57ea8cf",29370:"e9de58f7",29399:"77d69aed",29514:"1be78505",29537:"78df8d65",29545:"985c36e4",29750:"6d22e028",29837:"78d07d74",29867:"1a6775b2",29890:"de42301d",30066:"1cfb0a67",30101:"73f0dde0",30126:"ba0b6dbd",30141:"82209890",30252:"57f9f9c7",30335:"2d91c21f",30482:"d6a3b4a5",30654:"ad9f1248",30670:"50d0e663",30717:"9e3f42ed",30830:"ce7ed51f",30849:"e2011657",31005:"ddce0bff",31349:"d6a93ba7",31416:"29388bf2",31529:"9c00a84f",31617:"bcf46d9c",31636:"44e33f80",31757:"9c7979b1",31762:"2c6851ed",31831:"60e1630c",32023:"faece773",32035:"90bf9c2d",32070:"97daee08",32191:"7fc8ff62",32288:"a609cdb3",32438:"370c5287",32464:"f8681695",32472:"9f7c2154",32532:"2e4cebe0",32570:"251f0563",32627:"d0e182b9",32706:"12637b23",32831:"632979e8",32852:"12208c5e",32925:"9e570fef",32936:"8d209506",33215:"113fed8c",33221:"e9dce996",33288:"b78698d9",33399:"57008883",33671:"5d0266be",33724:"82f24945",33742:"c7db80fc",33815:"14db8e4c",34088:"66555aa8",34111:"505049d0",34263:"2ea56af2",34425:"92e62ade",34631:"4bed0e48",34703:"fa9647fb",34719:"387f3426",34746:"9a0e13cc",34891:"7574ff34",34985:"f3c06362",35005:"45e52e4e",35044:"f91da2e3",35275:"ffeb8a80",35388:"c2eec07f",35594:"f7132c6a",35646:"5de0f279",35703:"6bae8700",35794:"0a497e30",35877:"f1bfc30d",35889:"b3041b60",36016:"2fd426fa",36160:"bd65afd9",36171:"fba052bd",36291:"e2621d74",36303:"0646a177",36337:"3a40f46b",36370:"934a8f8d",36398:"3f9060c3",36463:"a1ac97eb",36504:"822bd8ab",36881:"c0354ce6",36945:"981d7293",37221:"5a843cd2",37329:"e5dd9161",37355:"684ac28b",37495:"fd6fd4a3",37592:"4ac33b1c",37609:"3223729c",37734:"9d7869bb",38077:"58a16fc9",38141:"8470e3c7",38248:"933ecdda",38292:"1c273fb9",38370:"199b4690",38454:"bd1eb202",38516:"20ca2c37",38518:"0048047b",38705:"741efb60",38848:"29352f22",38938:"7fa9de70",38951:"053dec63",39066:"edca0251",39071:"3a493dd8",39080:"c6f90b29",39139:"40b80600",39223:"b1992084",39236:"0e8f60e3",39313:"49910c96",39329:"ac56cb0b",39439:"07fdf123",39640:"7030fa2f",39745:"0c11045c",39898:"63fae4f0",39987:"8534c2dd",40077:"a4419125",40160:"bc6b65d9",40176:"b5164349",40232:"617b050a",40309:"c036f08e",40400:"10659ce5",40430:"187056c8",40521:"0a8f6579",40586:"b6472136",40650:"5d9e7658",40718:"05e38d95",40767:"74d66224",40870:"fa45022f",41016:"2738ca2a",41088:"7ebab15c",41092:"b96303b2",41153:"ca6829cb",41419:"519b5664",41452:"3fbaa021",41732:"b34c935f",41735:"c149628c",41794:"0c48efb1",41867:"161d96eb",41890:"3ed6d409",41923:"de4537b5",42126:"d7836792",42181:"066b9f60",42185:"de790939",42190:"b88c8fa9",42198:"59a262d5",42228:"0ca75f19",42408:"1b89036f",42441:"463d37d9",42451:"02208e51",42571:"83757913",42575:"32d4ad41",42677:"c831575d",42686:"6e743f1b",43020:"c2b4dd94",43108:"44642b2f",43140:"80537537",43194:"c315164d",43261:"789f2cca",43308:"a69b7e0b",43412:"e56a9a29",43484:"4994a283",43545:"ae714ef1",43640:"092cb4d9",43650:"0a60fad7",43729:"15691c1d",43735:"bc942cd0",43837:"729abf9f",43890:"ea5b7321",43898:"2eba0b82",44003:"5c8fca76",44093:"76f55d29",44281:"f452efc5",44377:"7a6174e7",44501:"94c6d911",44534:"b9ad018f",44635:"99d83f94",44966:"35ef34ae",45014:"92b56def",45237:"e7486169",45332:"59e2956e",45389:"4d7c8e78",45394:"5eec6141",45480:"335868d9",45723:"eb781ed2",45749:"cdecbf23",45757:"a92d4e87",45766:"d863ede2",45821:"f48535bf",45932:"878c8163",45943:"bb44f9e3",46003:"81bb24c9",46103:"ccc49370",46207:"12525f14",46215:"08d15232",46271:"ec06fa8a",46318:"4ce06e64",46347:"d97d797d",46521:"d99d594e",46545:"f59c978c",46576:"2e28eb6b",46831:"86c4d158",46846:"e7a72da0",46922:"f872275a",46982:"0645cd02",47089:"19b42e4a",47093:"b512dd46",47176:"2fa57f55",47258:"ce266bdc",47263:"97407dee",47605:"469935bd",47658:"1be923a7",47669:"26a4b8b3",47704:"2073b851",47724:"26678b7e",47827:"ca6e2d66",48e3:"75a8d947",48048:"e5eebff8",48221:"97cbe67b",48245:"395173ce",48275:"94133299",48423:"eda7cf83",48542:"b5340a11",48600:"6190b2fb",48610:"6875c492",48622:"e2a7c340",48810:"cbd762f3",48818:"cced6026",48837:"4fe12b4b",48863:"84189288",48909:"f7e5e70a",48955:"cb54f244",48966:"af4c9a4c",48983:"66345e96",48990:"9b6092d7",48993:"8b59c913",49105:"38284ae5",49114:"ee5cb919",49200:"2ca47575",49237:"046dd16d",49545:"7095f3d5",49599:"7c54274f",49605:"f530b85c",49706:"3c3d2bff",49769:"a3889346",49835:"1afca88e",49904:"a6238997",50097:"588e4efd",50165:"752b6ead",50471:"81528b00",50506:"3ee2c73a",50550:"531a6747",50617:"4d7391f8",50645:"4731c85e",50646:"36e46525",50685:"1eb5f871",50694:"39ea0274",50857:"7b261353",50881:"144cea98",50887:"20db5fd1",50919:"aa4c9cc8",51268:"91595845",51363:"689c81d9",51389:"d37f32a8",51410:"f5e5d1cf",51522:"f117ec90",51630:"b8f51c1a",51727:"5778ca6b",51951:"4df30499",52016:"dd6797bc",52322:"b92c36fd",52334:"86870c59",52399:"b646abd3",52463:"1a6b5039",52506:"d0639dee",52560:"dee5d2d9",52622:"a25baf4b",52650:"6b16e156",52680:"bc4c7bdd",52702:"ed8bde1d",52703:"70372002",52818:"e8d4d6c0",52834:"b03d4a4e",52993:"fd069ff7",53004:"99881079",53121:"e4a61baa",53165:"805fc822",53208:"84909ac3",53222:"9fba226c",53288:"f1df5007",53482:"c0cf6239",53516:"b6ef4fcb",53545:"10dfceb5",53608:"9e4087bc",53662:"4de4e659",53744:"58c7cc80",53931:"5d5964ec",53940:"71e4641a",54176:"50135b75",54193:"f55d3e7a",54316:"16f9706c",54320:"5537c822",54415:"84677cf0",54419:"f5233174",54421:"c52fdde1",54462:"214ea763",54607:"533a09ca",54613:"7214e9a2",54629:"7c785843",54642:"ddcb8bff",54669:"ebf8adea",54685:"983b561c",54868:"77e9cceb",54933:"b66964f6",54937:"91dad5e0",54975:"884eee03",55006:"bcc2133c",55135:"e0b45b46",55202:"8b4d9039",55507:"e9ae9b7e",55522:"62c838a9",55531:"ef4f60e7",55553:"144cf255",55638:"3cb9fdac",55802:"d369bf59",55855:"62422ab6",55914:"649eea43",56010:"2bc04bf6",56482:"e4619b9c",56618:"a572b6ff",56626:"3a906e9e",56674:"771f29e6",56733:"704e5bb8",56734:"2f43fcdf",56815:"ee94a44f",56950:"69c7a5a7",56994:"8dbcbb69",57071:"04d19f61",57161:"fb8d4667",57193:"6004d2a4",57227:"2a8f0182",57271:"417fc4b4",57534:"af883e31",57772:"d957ac34",57918:"decc8fa8",57922:"f5063a59",57998:"07948597",58033:"c5fa22e0",58181:"3876260c",58236:"72174b40",58359:"5a4abf4f",58388:"4b2a148e",58470:"fb63aa20",58566:"f2b32cff",58623:"dc3c29da",58628:"8cd47ea9",58659:"e48af7b3",58671:"4f47c374",58680:"e1f21c3f",58744:"9dee36e7",58774:"12c83d8a",58800:"b0b16a90",58925:"94780c38",59088:"94ad958d",59256:"170ad9f9",59318:"7c815b5e",59494:"14ffac04",59671:"0e384e19",59747:"6e43d302",59798:"99b0bd12",59835:"ccb3697b",59881:"7ca6b5b4",59914:"ce230425",59936:"2e4b96cf",59955:"120c0b00",60019:"6927f7c4",60247:"dfd49ee8",60263:"47658b82",60280:"0e0c98f4",60375:"7e644b1f",60538:"223e0224",60539:"9423f7cf",60715:"a1597564",60852:"496cb9ef",60903:"0b0bfceb",61185:"ace79a55",61263:"1112c086",61596:"79730245",61660:"7a7e39bb",61705:"142448a1",61908:"8864b77b",61980:"78d554ba",62009:"9f4f09d0",62083:"da7937f0",62140:"fce7e268",62227:"77550e96",62231:"9ba26136",62302:"9291df2e",62431:"63c9ac3d",62496:"6e9ea927",62670:"0bfabad2",62748:"69d44fe6",62767:"a0d18a99",62901:"51bf60d9",63089:"4e45b006",63288:"83831b70",63345:"d90a9d25",63565:"0a44a251",63566:"db50202c",63643:"f4174027",63824:"fbdc54bf",64013:"01a85c17",64018:"44149308",64112:"65ecf6d5",64313:"1e57c0e2",64342:"9b436c26",64350:"f04f5aa5",64466:"3839ff25",64562:"c08c0f47",64586:"d7ea4c81",64614:"c061e3b1",64637:"e05cd66a",64827:"4d3eb7e7",64829:"fa82889f",64966:"17e76f05",65029:"3bb06773",65038:"f58a543c",65063:"9a947260",65153:"932bb1e6",65225:"cce29330",65249:"fec52f54",65318:"ed99d55f",65356:"245ecae9",65395:"f63d0757",65421:"dff84d74",65548:"89b1cff2",65562:"5cc32405",65579:"706d2bfc",65682:"812c0fab",65761:"5f459bde",65773:"393cd824",65808:"818d6f05",65856:"96ff3c40",65956:"c7e43a05",66175:"3b080b29",66278:"24788f0e",66282:"b8c8891e",66394:"370b5914",66649:"8ccf5d9f",66764:"9ce37f6e",66840:"2e52ad4e",66891:"90f359c5",66956:"8e0eb050",67037:"309cdfe6",67103:"a526ae0c",67122:"961dc6d0",67205:"cd612773",67272:"5e3dc99b",67452:"7a4b421f",67463:"d9b708eb",67507:"ff158e4d",67557:"bbdd9b59",67644:"06ca6baf",67658:"16833806",67666:"d5a278e5",67794:"a0225fec",67987:"b2ab4460",68044:"9668e24b",68102:"83e7e4db",68107:"1eaa900a",68115:"afa83c07",68153:"0431617f",68184:"5889a844",68237:"0c58c296",68452:"5f1db61d",68580:"ec344652",68672:"f5b69acd",68677:"3f828345",68904:"35760f21",69088:"bb016389",69110:"27164297",69321:"078fe100",69354:"7c78252e",69376:"2b637fd9",69467:"2e2abe90",69473:"c48f7122",69574:"9625caab",69701:"216f4a5f",69791:"e135bd86",70022:"533bb9dc",70029:"bd08fea4",70057:"04ae583b",70160:"012b1d34",70205:"ad067570",70291:"e0a887fb",70498:"23c4c5bd",70526:"72dde749",70594:"996aa714",70606:"7518bbd3",70635:"b4cc2dd2",70641:"f96c80dc",70644:"6226ba71",70665:"2075513f",70756:"922e2d6b",70895:"444dad87",70937:"25456c82",70950:"3399a664",71483:"817a876c",71531:"5282f34e",71690:"49bee9db",71844:"f5a24224",71870:"d70b4c5f",71955:"c9d7f018",71972:"41d087d7",72074:"16b5fa1e",72344:"089154c4",72459:"58de45fc",72690:"ab4c3279",72815:"e70f68c6",72872:"0c10bcf4",72993:"234d19c9",73001:"fa5dce7e",73010:"300a86ed",73074:"7a167eb1",73277:"b8bcf1d1",73320:"78d8ce1d",73321:"c4479859",73336:"e80f56fd",73343:"49d88be4",73513:"a419cc29",73659:"5b622352",73716:"133ddf45",73745:"838dc3f3",73799:"f0418a99",73800:"007e4c05",74024:"85c4e11b",74108:"ad9136bc",74169:"33bc9424",74390:"71d215be",74475:"1dd82bf1",74607:"0db650db",74646:"a041ec46",74813:"09e2328d",75061:"d2463491",75064:"7faccef9",75081:"43956aba",75319:"831d95cb",75379:"79d76848",75394:"ef4801f7",75501:"9b5ce5fa",75506:"55b9667a",75556:"f522921c",75563:"d76bd867",75696:"90cc522f",75698:"d857251e",75730:"550cdc1d",75748:"492dc159",75834:"8fd26069",75940:"a56f68e5",76074:"4dc3be72",76131:"0660f60e",76323:"a9347c1b",76375:"c25c032e",76413:"77d820b6",76433:"999e2b46",76438:"4c4444c5",76442:"0fc579d4",76476:"d3ba1bbd",76581:"bdc4c1ed",76762:"5e730d4f",76884:"a12974ca",76900:"3c14a1c3",77338:"0e828f3a",77533:"ce17d78b",77642:"fc8c3309",77644:"ce6dcc9e",77696:"7c359f4d",77965:"a48d66c0",78101:"da04b7b0",78153:"a6e5ff3c",78258:"46b1db29",78446:"795480a5",78461:"b4f5b98b",78580:"354f96c6",78642:"9ff56e7d",78761:"cc5c2602",79008:"8368e4b7",79036:"df778edc",79113:"a1a26142",79166:"9d4323f3",79224:"fdba8f98",79260:"6fb45133",79424:"cdcf18ac",79503:"0281a492",79841:"1377d1fa",80019:"71508f04",80048:"68fb9d2f",80053:"935f2afb",80113:"4c4f8ee1",80309:"42ad0ca4",80367:"209bf559",80500:"077b979c",80542:"391126a1",80567:"6da0a796",80575:"49d642c9",80599:"600e4190",80613:"015be621",80622:"eb0e2fb1",80733:"ac4f0787",81015:"7fda8ae5",81169:"61e62d68",81214:"cc267639",81360:"81db2276",81415:"c4d8aa78",81564:"2a707bc4",81587:"437db4bf",81677:"4574fd9f",81755:"2b872e03",82164:"f2deb2f1",82224:"c2d03b29",82358:"798d160f",82641:"90323238",82695:"9a49abff",82859:"18c41134",82941:"9fba849d",83019:"573e0546",83025:"9bd1b7cb",83036:"7c895c96",83050:"04c3317f",83129:"15072f11",83167:"019bb279",83214:"f302e248",83247:"be16a434",83261:"d5c6258a",83472:"a79960af",83646:"0fa2fd29",83879:"ba7f9bb8",84069:"6eecfaae",84213:"1121299e",84378:"e475cb83",84433:"988c71cb",84598:"3a3e17f4",84599:"e3067ecd",84670:"2e0caba1",84727:"95f12e12",84755:"c2e0061a",84773:"cf1bc381",84877:"8d3da32e",85085:"d3a63b1a",85138:"d988d084",85349:"425dfc0f",85369:"876c34e9",85417:"21857c8f",85442:"1caacab6",85487:"fb6d6072",85563:"3d542156",85606:"b836e3b2",85642:"bd307c3a",85845:"93729337",85943:"a7a31948",86229:"eaf1cf7f",86243:"1ac6d9a0",86326:"ea2603ff",86358:"9f11a452",86393:"3328a3bf",86517:"d6e5a7f4",86576:"9936161a",86769:"10ca2666",86809:"34012593",86830:"67ce4884",87158:"f480ab7b",87233:"ccfc9222",87326:"a14fd889",87389:"f63b6b72",87407:"a1f2945e",87411:"fb793160",87414:"393be207",87445:"eac6bb0a",87618:"05bee9ec",87622:"486d3992",87675:"6d0badab",87881:"8a4bf3d8",87891:"42eb15cf",88101:"41606842",88204:"ba2ecd41",88572:"65d0391b",88592:"6a75c57a",88619:"5347b974",88697:"435d8b4c",88782:"1b2a226f",88818:"1e4232ab",88822:"7f6d758e",88829:"e158fd47",88862:"d077dadd",88869:"e6ea9b03",88904:"f99e473b",89008:"daace409",89193:"91ed84ec",89250:"7e9cd387",89351:"be2e95c8",89548:"d15a0787",89579:"c880761d",89650:"3b214584",89752:"c0ac1524",89756:"397686d4",89943:"39dd59eb",90045:"7221b837",90047:"87088759",90056:"fa0b1b5d",90083:"e356bfd0",90178:"9c96fa11",90206:"d79a4bb7",90288:"f96c80d6",90399:"9de5c9e8",90439:"bd3fea4c",90469:"3a5dab2a",90605:"bc17f22c",90645:"839c5f78",90748:"a1cde312",90934:"cb7a1a0b",90980:"b134e481",90999:"35e2a0c5",91151:"c7337d4e",91192:"76c61a3b",91221:"c8302006",91282:"a1d1f035",91599:"0d954d74",91644:"62d3f25f",91660:"1e9d3edd",91705:"0813fe0c",91732:"4dba54fc",91760:"fee99998",91878:"cc653543",91879:"6d25229c",91984:"d2ea5af2",91990:"1b34f23d",92043:"9c781688",92146:"a21706c9",92160:"36a96f5a",92164:"5090ff9c",92182:"d934bbef",92214:"692497e1",92255:"c178b56c",92308:"4b90674f",92388:"88e4c211",92407:"785e66fe",92501:"ea84a009",92517:"70396aa3",92522:"fb0b9e22",92530:"f92f97ae",92680:"65dd336a",92734:"3bfbfc92",92846:"913aac40",92898:"9ef45f96",92988:"022c437b",92999:"7598a821",93089:"a6aa9e1f",93108:"d65b9dd2",93122:"80514ec9",93203:"9cab6d73",93213:"bce2d096",93283:"60293520",93347:"99d1374b",93360:"79ddb53e",93362:"2691c4f4",93471:"c65b5e22",93524:"e6402687",93570:"caab1e2e",93724:"17630979",93751:"0eb9e1ad",93762:"1bfd87fe",93789:"f4548430",94012:"d21b93c1",94164:"63a2f993",94184:"5733c82d",94302:"687d3bf5",94379:"e716e5b6",94432:"68b2c30a",94507:"011c86a6",94545:"fed3e02f",94560:"563fcf2e",94590:"72c81964",94706:"3dbe7590",94759:"bccb35b7",94900:"3bb415e3",94922:"c511c40f",95016:"550b6b1a",95018:"034a14a6",95174:"f9781350",95199:"c5858ebd",95208:"a2ee852b",95318:"b3c27c9b",95447:"177280a4",95514:"f54e05ce",95516:"d6b66cf4",95558:"d5f27176",95569:"c1c5c6f5",95613:"324138c8",95815:"3c0c6268",95816:"eff08811",95845:"73a96f39",95979:"637356df",96121:"439b9a57",96140:"ca3b5bc8",96162:"8c6dbeca",96204:"3659ef2a",96229:"d7dccf50",96256:"0d6ce706",96410:"11423591",96446:"31889a8f",96577:"28000465",96755:"e44a2883",96799:"6e7b669d",96838:"778ef860",96840:"e90b2ff0",96871:"126e82e6",96907:"7ba00404",96944:"78c763b8",97094:"c60581f2",97193:"a1d6199d",97230:"732b35ea",97331:"e44c5603",97343:"cab3a9ea",97348:"68b9da9c",97371:"fd8a7e73",97444:"29f10536",97478:"0edd4eae",97517:"8fea44ca",97535:"4aaac366",97618:"09719837",97673:"7a3449d6",97730:"6d371395",97779:"a5aa5392",97795:"5907b27e",97806:"568314b4",97959:"c9210b26",97983:"0f191e9d",98125:"3c041795",98153:"90ae2cef",98254:"9440f007",98294:"44cd51e3",98347:"43aa4824",98450:"7a263bfa",98489:"367766a3",98698:"24d5a6d9",98918:"237aa4d6",99137:"94d5ff15",99187:"f7812855",99572:"4a0a5eb3",99610:"3f2108ba",99715:"221981c6",99720:"c92fbd03",99750:"8d0075ff",99786:"b0f8ff9f",99808:"80c54634",99851:"f1565105",99881:"a8738e5f",99896:"cc74f849"}[e]||e)+"."+{81:"8647aa4f",117:"ddd55bb1",276:"3768e9a5",278:"ea91f1b6",292:"07227bd8",376:"1287b374",458:"47823cd2",493:"e2689ce4",567:"43ecc94c",579:"ceaea511",764:"8e7b0d87",770:"72e246c3",815:"7a4ea899",879:"88a8fb18",947:"ec8a8fbf",1088:"73ef6219",1099:"32b8a17e",1105:"be720d25",1129:"c3fa6d8a",1285:"53a9d32e",1321:"0860f325",1338:"5caf3a83",1537:"8b2407f7",1686:"44775b76",1821:"f784672e",1866:"8411879d",1929:"67cf717b",1938:"fd3e1049",2071:"40177999",2091:"01102dd7",2109:"005f1711",2136:"84539636",2156:"ea8a2ed5",2251:"d3336e14",2307:"efcbc83d",2348:"f28371e3",2432:"5a7be5be",2529:"3a3a1ec8",2548:"9466caac",2578:"60911cc8",2589:"5f60931e",2681:"0fa09951",2773:"4197ad38",2789:"5003ab27",2906:"458bb7a8",3136:"a1a85e57",3158:"d4bde453",3188:"4190802d",3203:"76fcec32",3270:"8f8fde13",3530:"6fdd13b5",3649:"37598484",3685:"2f05b60a",3721:"824bef08",3792:"d7931837",3918:"b6a4ebf6",3986:"7dc90f2b",4089:"a9100397",4093:"8eb5e8a4",4295:"b07617c8",4307:"f1566f8d",4376:"d8819c97",4497:"7d43fa28",4498:"50801d41",4553:"49dc4a15",4615:"8986c60c",4823:"58a58e79",4855:"05e73c61",4910:"85072ff7",4944:"ddce9504",4972:"a20ea76a",4986:"a5e820a1",5106:"159b1e96",5214:"7c238fd3",5237:"f6e89df9",5391:"3d7ed61d",5485:"24e3a756",5507:"e34d36ae",5607:"f00723f1",5637:"fbb36977",5785:"b4cfb728",5978:"148e968d",6115:"185b0f7d",6169:"e4213a9e",6177:"e1d89988",6191:"3f001e31",6236:"30478d94",6246:"6e438bcf",6249:"dfc78cf3",6255:"4a9171b2",6324:"26856ee1",6413:"2fa5e6e2",6421:"4e0d3a8b",6519:"a76e896d",6543:"bab67a31",6566:"ca8701fc",6795:"873bdb9f",6807:"163ee9d1",6814:"672e0f1f",6890:"34ec8bc6",6919:"f9679a13",6962:"b562aa25",7152:"b7874250",7204:"8408d00f",7233:"0383597b",7266:"c1c88053",7268:"5f247a6a",7322:"be0a86e6",7374:"c85c7f97",7387:"4b46ccd6",7413:"1d70106f",7538:"b8200f7a",7555:"f4d1e40c",7558:"52a8f28a",7717:"05256cc7",7729:"594c41d6",7741:"8c4d8c2a",7783:"08c90d03",7897:"1db71a05",7902:"f45d1bff",7939:"966d03fb",7966:"5f192186",7968:"4e86e9d8",7979:"8fc11def",8033:"335e911c",8201:"2d5cb5c1",8362:"fec34ee8",8525:"fff68606",8580:"3cea37ad",8583:"65e8d321",8694:"522dfa89",8721:"55853d69",8737:"8682e6c3",8893:"51803899",8905:"d6551fc0",9009:"22f7fd22",9107:"87b0db49",9314:"75cae98c",9499:"388b3fec",9817:"75d4fe89",9828:"981a7a29",9928:"948a56b8",10025:"d3768b21",10114:"de9ddace",10159:"4d878a54",10173:"e0bc6f6f",10217:"aeb058ce",10335:"3ba7341f",10440:"337eab00",10536:"6a51cafe",11164:"de0ffd94",11212:"48c57de0",11254:"8efe65c9",11400:"7b0b3e49",11537:"88722042",11727:"43daea5e",11748:"6140d25f",11759:"d331fe36",11829:"f074d224",11903:"86fb9eb3",11915:"32e896e5",11952:"799031c5",11987:"00b650ff",11996:"503318e1",12023:"ed5708e0",12029:"cfa0b0b8",12287:"23739f45",12372:"9410ab7a",12620:"fdb02381",12626:"f3863087",12652:"7863dd8e",12709:"5d462f1c",12853:"3804e399",13056:"8486103a",13085:"4c243540",13160:"ed778e80",13276:"3e57e6d9",13327:"89b56a8b",13412:"87165dd4",13530:"1119bfdf",13680:"4edccf97",13752:"5a014dbb",13753:"4668ab6e",13764:"8109bcf7",14274:"613a7bf1",14392:"dddf1606",14545:"f91696a0",14582:"ca7e6de2",14587:"d67c5166",14645:"fb7cda29",14671:"46bb675b",14844:"69a481e2",15007:"b6cf11a1",15013:"fe2ef88a",15091:"c8c44cc1",15152:"58e5c11d",15228:"aa3fc496",15286:"c61c688f",15315:"1836c504",15347:"9751ef9b",15519:"060622ef",15529:"792afa66",15589:"c4ac43f4",15623:"dcaf9435",15696:"cb4a0f12",15715:"08045cd3",15898:"ef49ad03",16002:"743a665e",16165:"b871a003",16171:"b27c8151",16224:"218b5ba8",16227:"ca05a8c7",16348:"4b4f6c05",16349:"1da69019",16360:"da37b7e4",16498:"e2d46ce2",16571:"89556ee7",16616:"a406b1da",16727:"e5f9c0ca",16839:"81b26f5e",16855:"a377d47f",16878:"59b9e205",16886:"d54210bb",16959:"5978b364",17139:"ee122c28",17214:"06d33a85",17251:"d1f95429",17285:"a68995a1",17300:"6a06ad17",17323:"d6b4cddb",17433:"41fb04a9",17490:"f09a9607",17605:"2450872f",17693:"af4f6237",17813:"e74d608c",17847:"ceca0621",17873:"2ed54d65",17878:"41e046dc",17903:"3c555133",18085:"d8c654af",18144:"b4238489",18160:"e528f82b",18242:"b6cf9fe4",18303:"03b48a0c",18355:"d10b29d4",18471:"242e919d",18479:"d21d4e42",18513:"e5316a48",18599:"2314074a",18634:"f87f3c90",18654:"bcd1cd14",18815:"3434d17f",18848:"b639730e",19064:"1d45f1cd",19182:"92a6a971",19447:"8b86c4cf",19516:"7439e906",19644:"d1bd4071",19683:"3193975b",19773:"a164bf89",19861:"8ae096f4",20017:"b2f37131",20018:"3af4df5d",20170:"6a383eb2",20196:"f13f42a6",20203:"14341bfe",20306:"96090a62",20326:"9746cde5",20387:"f8fddd09",20433:"574404a1",20553:"bdcf070c",20578:"f5f4fbb7",20605:"1112a7f6",20779:"46b5720d",20897:"70181a4c",20955:"8b931802",20957:"787c09b7",20974:"a5198d57",21074:"09101528",21080:"96bfc6f4",21129:"3d41b670",21159:"c7b4a4ba",21200:"11847a5d",21404:"10c744cc",21439:"28344601",21463:"825e8b96",21562:"c5172914",21597:"13b4895e",21642:"919dff7c",21798:"31aabe30",21806:"0cbfc32c",21895:"7a1958b8",21964:"036c89ba",22057:"21d90fd2",22154:"fbacec1a",22191:"3a8f087d",22206:"11de5ab7",22393:"3ac82fb4",22469:"f3803c62",22519:"e2ab81a8",22585:"679353c2",22615:"a8a096b3",22637:"6b739892",22772:"96313cb4",22838:"93ae624d",22954:"1543cf46",23092:"8930877a",23146:"d9184ffd",23202:"a09d3a22",23214:"9d2e2c8e",23271:"2e79ae34",23318:"4fc82f88",23360:"11a08ff3",23427:"cf903a90",23599:"2e85e2ac",23621:"b695abc4",23623:"bdf83975",23685:"56b5a025",23928:"390d37b5",23941:"26ec1a11",24155:"dbc38c41",24216:"927cde2c",24272:"ac9091dd",24288:"74e606dc",24310:"3e01208e",24323:"077a59d0",24327:"c17177cd",24384:"9cce0847",24514:"1045042a",24519:"2d6b57b1",24568:"d4db6391",24651:"380e3cf1",24665:"27ec3321",24671:"1e0191e5",24745:"57594055",24801:"edb8bcfc",25074:"435725f4",25094:"10492e18",25189:"56e26270",25272:"a84f438c",25351:"4784dc54",25353:"a85750a5",25358:"0261cb0f",25403:"7f903dc8",25456:"2da884ff",25469:"c15a7bdc",25480:"8024d216",25574:"22277867",25588:"0c0545d7",25590:"7df3a626",25665:"f6c9c86e",25759:"04bcdd0e",25854:"62d81c17",26026:"31e4aa69",26276:"c3bb6e44",26287:"a360a1f1",26299:"c5b67c9c",26308:"c3014720",26337:"11d190f7",26397:"46b4b879",26458:"472487a8",26500:"52455b53",26544:"1a0eef68",26565:"d1cb3b5f",26584:"c323c697",26710:"b0c606bd",27043:"779b53ef",27237:"2e692128",27250:"bab67b67",27287:"4a52d3f4",27335:"68ca5f08",27449:"28635291",27478:"2ed6805b",27577:"0b360a5d",27647:"f99eec3e",27668:"ff3724c2",27697:"0432dfca",27865:"c366bfb8",27885:"23ae968b",27918:"12db7610",27921:"72cf589e",28050:"61898963",28098:"e07fe431",28298:"8fa59059",28323:"8cea1177",28348:"b657d3a3",28480:"47d0f46b",28577:"af79ab43",28592:"ef912c31",28650:"345f0d0b",28669:"1f17a19e",28672:"0e6d3504",28757:"14a1104b",28810:"ee2a29cd",28819:"96eb750b",28843:"1da781e5",29059:"431072f0",29071:"3c574d38",29129:"9077b21c",29177:"1a59f103",29204:"0baa41e1",29370:"f5082fba",29399:"179c97cb",29514:"eb072735",29537:"958185e8",29545:"e343408f",29750:"50e9700b",29837:"647300b8",29867:"35eb131d",29890:"7b153f14",30066:"18f12216",30101:"9d923228",30126:"24053519",30141:"4162f75c",30252:"1a8728dd",30335:"fd212af3",30482:"af6ce8b7",30654:"9c1ed1fc",30670:"91bd4732",30717:"728b7faf",30830:"ee7f4e8c",30849:"b38fb0d4",31005:"29009505",31349:"669f1626",31416:"d8b0d04f",31529:"f1331e7b",31617:"af113492",31636:"7dc29fd0",31757:"d64d4d6e",31762:"f7e3f2b3",31831:"c49555ac",32023:"bde66c0b",32035:"a70871ef",32070:"643cba8f",32191:"23c8dc51",32288:"d8ac34f0",32438:"001eaa67",32464:"0b14908e",32472:"a728f343",32532:"339cd329",32570:"18319f78",32627:"a92456af",32706:"62c1478c",32831:"9f1c582c",32852:"f4ec2b41",32925:"56dbda22",32936:"742da2ef",33215:"19100b50",33221:"06f07cdc",33288:"def10593",33399:"6fc009e7",33671:"62145ac9",33724:"af89165c",33742:"4b5eafb1",33815:"2c8af609",34088:"40640613",34111:"93efe283",34263:"c24ba665",34425:"03a5844c",34631:"9dfe303b",34703:"014f6b12",34719:"152826b9",34746:"dc66313e",34891:"48f856fe",34985:"489c9c7c",35005:"a41179a3",35044:"8628ec31",35275:"5bdf35b2",35388:"ec50ea53",35594:"c78f64bf",35646:"532c91e1",35703:"22455ef6",35794:"5b3ebd5f",35877:"b702e6a8",35889:"a5d15c8c",36016:"a88a4610",36160:"474429fe",36171:"8d34f61d",36291:"5ba151b3",36303:"d00a7946",36337:"bdd0e927",36370:"eaca409f",36398:"ec57be7f",36463:"a2e1c2fa",36504:"4d69b16c",36881:"dd443c64",36945:"b7f52d57",37221:"468b4c95",37329:"35060340",37355:"2ae9fc0f",37495:"aef93d4e",37592:"9d5e4ed9",37609:"154f73fe",37734:"142282dd",38077:"4e54b885",38141:"b50d610c",38248:"f69df260",38292:"78e3d4c4",38370:"31196232",38454:"415014fa",38516:"52642b28",38518:"e5b31236",38705:"043d5ab0",38848:"289ad8d1",38938:"3da021b7",38951:"cb709b05",39066:"3da4031b",39071:"df250b1d",39080:"80b6ad1b",39139:"246aff1f",39223:"48b826b6",39236:"9a09806c",39313:"b8b781b1",39329:"0611678c",39439:"dc46cb53",39640:"7aa0c74e",39745:"3d1a986e",39898:"00cfda02",39987:"3f7d0f49",40077:"a971230c",40160:"e576e413",40176:"cfd9647a",40232:"7d54aebe",40309:"7b77a934",40400:"e4151fc8",40430:"0491b26d",40521:"9adf14c8",40586:"dbd35dbc",40650:"da4183cd",40718:"1116f1b6",40767:"563d93ab",40870:"01ca5b1b",41016:"97074049",41088:"7cf0fca6",41092:"0ca518a9",41153:"5e6056eb",41419:"49f1de2b",41452:"fd34b48e",41732:"ea5a883f",41735:"33c97bf6",41794:"1f4e1be7",41867:"5f0ef66a",41890:"459a9f36",41923:"c752e517",42126:"243d9223",42181:"ad98ad25",42185:"56539338",42190:"ff81611b",42198:"051c1d08",42228:"c36625a0",42408:"10d5decc",42441:"01d17dae",42451:"ff194e36",42571:"b8bba9e9",42575:"0381278a",42677:"d5cc68b7",42686:"de5f26df",43020:"8f10f7b0",43108:"b28342ce",43140:"aa488c4d",43194:"b4f0ce38",43261:"30caf1f2",43308:"98ed5b26",43412:"de8bc87b",43484:"51d09764",43545:"1458ce14",43640:"630fcade",43650:"b0318f8e",43729:"1473ccd3",43735:"7d2bc2af",43837:"0d7913a5",43890:"8bee504c",43898:"7b500fcd",44003:"f7706117",44093:"335e0574",44281:"38eb58ff",44377:"eb3f5dca",44501:"c5326d17",44534:"d948b9d3",44635:"977d57b0",44966:"81024531",45014:"9435a7e4",45237:"a0c456dc",45332:"b2e0ca4b",45389:"025b8deb",45394:"91ae6e3c",45480:"6ee8dd2f",45723:"18fdac1a",45749:"841b3ebd",45757:"b9972c71",45766:"76119859",45821:"13521afe",45932:"cda799f6",45943:"bb0787da",46003:"b35a566f",46103:"66cad8e9",46207:"7f52fc0e",46215:"2d6be30e",46271:"a6d0b45b",46318:"1a1dd725",46347:"e84acb26",46521:"9304d83e",46545:"a27ffe6a",46576:"05031fe3",46831:"205d143c",46846:"daba0582",46922:"476774ca",46982:"3fc1c02a",47089:"e64c8d0c",47093:"893b95b4",47176:"79002ce0",47258:"8177db59",47263:"ec4bc500",47605:"652452d1",47658:"5b820cfb",47669:"45c88475",47704:"819d19a2",47724:"6b8ec098",47827:"bbe312db",48e3:"ee73c41d",48048:"2b2d6788",48221:"039ea848",48245:"3c8c76d1",48275:"628e2443",48423:"98cb20c9",48542:"3e10bcc9",48600:"080c4e25",48610:"16502a56",48622:"5c95095b",48810:"2149c8cf",48818:"af2a889f",48837:"a8b4c7ac",48863:"64173711",48909:"d8becf08",48955:"3eeb510a",48966:"2b2f1842",48983:"bb21bc81",48990:"84fd0087",48993:"3d40b9f3",49105:"2a827e86",49114:"fb8b7712",49200:"7bf9b828",49237:"bb001f1a",49545:"06fc92f2",49599:"bf507112",49605:"c54418bb",49706:"a2293639",49769:"dff40bbe",49835:"62a4bc03",49904:"6c320784",50097:"ff334de1",50165:"1fab45cd",50471:"6e4c6ff3",50506:"cdd07e86",50550:"45b07d6f",50617:"2418afc5",50645:"7f055d6d",50646:"afade4a5",50685:"57d724e4",50694:"9740ee14",50857:"9f2c4dc2",50881:"8a95dc33",50887:"1a03082d",50919:"8092136b",51068:"b4d6108e",51268:"355894eb",51363:"df94b939",51389:"a09ab85d",51410:"4d7c8ae9",51522:"8aad8d00",51630:"e6027d86",51727:"5b886cf1",51951:"7bb61829",52016:"568952a0",52322:"0fc75bd8",52334:"f08bccfd",52399:"7c750d3b",52463:"be02918c",52506:"f778db61",52560:"22a85d6d",52622:"991a4b98",52650:"386c5813",52680:"92ecf0d8",52702:"7838f7b2",52703:"6df44eed",52818:"7682f433",52834:"c1b01705",52993:"eccb52fe",53004:"418efbc2",53121:"7f3b045a",53165:"3307b04c",53208:"d6bcc33e",53222:"0a093447",53288:"629648a3",53482:"a679c299",53516:"f86d4c42",53545:"bea6467e",53608:"47006cd4",53662:"20a68461",53744:"412c1784",53931:"74f8d97a",53940:"3da43464",54176:"100177a1",54193:"b9277be2",54316:"ba6de1d6",54320:"493b8401",54415:"0b28bfba",54419:"14fae1c8",54421:"6e955840",54462:"ebb04b3a",54607:"39efdc73",54613:"1621da4b",54629:"4012a532",54642:"2ee70d29",54669:"79f08941",54685:"b7dff44f",54868:"8196316e",54933:"1fa83ff2",54937:"838c03b9",54975:"99a81844",55006:"50a458c8",55135:"84e90e68",55202:"35601eb6",55507:"128accd7",55522:"13cf9180",55531:"4cddd06e",55553:"aeff65f8",55638:"32c06432",55802:"ead21723",55855:"8333998e",55914:"b7aee78d",56010:"b010f2f1",56482:"58e393e4",56618:"d6d14e85",56626:"570e3e26",56674:"3213c17c",56733:"2460f2be",56734:"4b913562",56815:"53ee4c10",56950:"e51235de",56994:"8ec7fb76",57071:"5e25ea99",57161:"bcc8682a",57193:"c0e4a6ef",57227:"b0fa5446",57271:"99a7acf7",57534:"9e3ef7d9",57772:"e878b7bb",57918:"e4e8b977",57922:"14502a56",57998:"c81519f9",58033:"34f39fbf",58181:"0a1d2cd1",58236:"ce2d9041",58359:"7c635b4a",58388:"c2ee86a0",58470:"d49272a4",58566:"67d1b9e1",58623:"c40953c9",58628:"f8bd8be2",58659:"4cbd38c1",58671:"112b7378",58680:"cc2a6014",58744:"6658a7f5",58774:"181ac276",58800:"5448fed4",58925:"3fc4a3f6",59088:"bf15de97",59256:"9a595295",59318:"3f0a8932",59494:"f94b9dba",59671:"7d1a9476",59747:"b5363a58",59798:"6eb5a911",59835:"01fbd726",59881:"6cf9a2f5",59914:"eff9c4d8",59936:"98a28e4e",59955:"31df5ba4",60019:"42687e61",60247:"abdcd705",60263:"2cf25410",60280:"605642f2",60375:"d69ffe3a",60538:"e3a18dd4",60539:"61d96388",60715:"5bc4f69b",60852:"3e03069c",60903:"f6487362",61185:"1e58fc25",61263:"ad3e2eca",61596:"e527e94d",61660:"df609b06",61705:"51281420",61908:"63a904b9",61980:"8f646dce",62009:"41c1bbf4",62083:"65c63c0c",62140:"13fd2987",62227:"276e46c6",62231:"55b0cd6e",62302:"b529be05",62431:"75454db0",62496:"9e3d5212",62670:"4c2eca52",62748:"a437345d",62767:"95ce753d",62901:"2a426149",63089:"9dab71ee",63288:"58e74740",63345:"d1afdf21",63565:"f39d86d2",63566:"13cfbc7f",63643:"4c5764c6",63824:"e8140e25",64013:"545379d8",64018:"f2062ff4",64112:"603e2906",64313:"e69b15e3",64342:"d7dc3795",64350:"0107a0d0",64466:"0b1dfd99",64562:"4b5e5e64",64586:"26ade935",64614:"fb013bb5",64637:"9907b855",64827:"b570ba51",64829:"3470ea34",64966:"768fd49e",65029:"570c8a45",65038:"c21d6199",65063:"4b5cd995",65153:"9458e665",65225:"537b60dc",65249:"71213ae0",65318:"e4862491",65356:"75793936",65395:"be926309",65421:"b0f42cf3",65548:"4d3c8213",65562:"52478967",65579:"5b80d322",65682:"744d1002",65761:"8d41e040",65773:"962ae227",65808:"7caa0a12",65856:"cefe4c96",65956:"b2c9209d",66175:"3360d872",66278:"bdff0c19",66282:"8ce2452a",66394:"86026d11",66649:"ae990cb9",66764:"bf4f1a6a",66840:"c4229054",66891:"9b4fd7b8",66956:"2cab6372",67037:"d7e18736",67103:"122f3363",67122:"5dc4794a",67205:"525d109a",67272:"b4567d0d",67452:"9944f750",67463:"7330034e",67507:"3937649d",67557:"6a0cf5ee",67644:"3d32b254",67658:"00840d0e",67666:"5c8a5480",67794:"32b5cfb9",67987:"5476f776",68044:"08421470",68102:"f4ae79a2",68107:"9c8fa138",68115:"68919a26",68153:"23f0bae1",68184:"a4fcf82d",68237:"a46e3724",68452:"76c0b809",68580:"3a8c1719",68672:"3a522978",68677:"944c1e54",68904:"07f3b987",69088:"21034aff",69110:"e43dedf1",69321:"234ccb45",69354:"50f7363b",69376:"f7d5edac",69467:"01a92536",69473:"5c2ded40",69574:"44ad02aa",69701:"69bd6e32",69791:"1815920d",70022:"e68b6c44",70029:"7513ae1d",70057:"291ccae9",70160:"4f13a527",70205:"5de7a581",70291:"6837c355",70498:"0184ae10",70526:"7e53494f",70594:"0ed38e71",70606:"d1d879e6",70635:"ca89cee7",70641:"98a47486",70644:"e2ed9a9e",70665:"20585582",70756:"4bf457b1",70895:"141a80dc",70937:"61ea318e",70950:"e462bd94",71483:"36efa6ab",71531:"219c9c18",71690:"bea3fa8f",71844:"0b903f32",71870:"5eb2f60f",71955:"ed141bd6",71972:"e16565bf",72074:"ae1e5412",72344:"7c188c1d",72459:"1eea35fb",72690:"d16585d7",72815:"f05bf16d",72872:"b4a8688c",72993:"9969ef1d",73001:"9604eeac",73010:"ba5069cf",73074:"f1d598c8",73277:"efb881c7",73320:"6f7c5045",73321:"0a084de0",73336:"47036704",73343:"b0e97673",73513:"56c94ff4",73659:"53459d11",73716:"1d864212",73745:"43fca0bc",73799:"f79829a7",73800:"12fcc797",74024:"7bd16a5e",74108:"37be0f76",74169:"32c086b9",74390:"ed9ec992",74475:"6e39d4cc",74607:"2f6a554c",74646:"bbaaf7a9",74813:"b05813d1",75061:"59193529",75064:"546a0a9b",75081:"9a754318",75319:"95d265a5",75379:"b64e9809",75394:"f754c918",75501:"d8346d88",75506:"71bd08a8",75556:"0f24624c",75563:"e09b82ae",75696:"6ac9708e",75698:"62ff4187",75730:"bfc61fb3",75748:"69e6a092",75834:"233f77d1",75940:"a07d7726",76074:"cab45bf9",76131:"decdff3e",76323:"7cb1accd",76375:"ccb65124",76413:"3a90568c",76433:"6b266244",76438:"71417a58",76442:"bb0d5e29",76476:"10dcdcc6",76581:"d4febbdd",76762:"81268577",76884:"0054abbb",76900:"0c0f4f11",77338:"3ee2e898",77533:"76bdebc2",77642:"77826de7",77644:"6eb82dbe",77696:"02316724",77965:"eacbe8df",78101:"0a81e497",78153:"57f7274c",78258:"e8890509",78446:"32f86dea",78461:"95b83af6",78580:"2c6acd52",78642:"3d31e48b",78761:"30714e2b",79008:"b20cb50a",79036:"010e47f0",79113:"d92be10a",79166:"11459e20",79224:"dcb82758",79260:"a65a0945",79424:"992afb49",79503:"0fd9d1e3",79841:"ebb55dd5",80019:"197b81fc",80048:"619b68f4",80053:"ce3dd627",80113:"421e2ad7",80210:"245c42c2",80309:"9d0f1fbe",80367:"06bcc5a6",80500:"1d873c11",80542:"44137e8d",80567:"f6493984",80575:"d2c566bb",80599:"ba391183",80613:"34adb8a0",80622:"6ecb4f4d",80733:"a737b9b1",81015:"d6c5ec41",81169:"bf1333c0",81214:"4ddee7a8",81360:"2d9f4296",81415:"bed22e96",81564:"03b81d3f",81587:"f971d2dd",81677:"f77d7aea",81755:"583ac824",82164:"0bf56a4f",82224:"8c621623",82358:"80a9d032",82641:"745592ee",82695:"ffa7c3ad",82859:"2ac91b95",82941:"0a7c6153",83019:"90461fd6",83025:"eee0cabf",83036:"fc86622b",83050:"1984c407",83129:"a2e928ce",83167:"725868f2",83214:"a3237b42",83247:"076c35cc",83261:"2cf47d40",83472:"0262e888",83646:"8658f186",83879:"fb65d4a8",84069:"70b56ca8",84213:"3804508b",84378:"4cbde8a4",84433:"ec06b285",84598:"0af6297d",84599:"7e1f3557",84670:"e948e6e8",84727:"d6fac154",84755:"4fea544c",84773:"b5f44e75",84877:"a6317eb7",85085:"c7da7d17",85138:"74d18a6f",85349:"0640b352",85369:"704d7e35",85417:"f94bfa38",85442:"50670748",85487:"07fb8aff",85563:"55bb2fe2",85606:"56baecdb",85642:"947a722f",85845:"ee9b9678",85943:"879877da",86229:"22b57b8a",86243:"460a45c7",86326:"e3489d08",86358:"79f74d58",86393:"48ef1632",86517:"32b94ff2",86576:"32ed940d",86769:"4e7718c1",86809:"506ef8bd",86830:"48858b96",87158:"d19cfde3",87233:"389c10e5",87326:"29c4c0f3",87389:"cca9b2ac",87407:"e48bafcf",87411:"9aef4f54",87414:"6e5453dc",87445:"c94563a4",87618:"db3f3656",87622:"2741e25f",87675:"9dbedcfe",87881:"4c7a3a3c",87891:"0a41212a",88101:"0e246202",88204:"484dbb30",88572:"dba76c13",88592:"a0e37b80",88619:"f083e9e8",88697:"7163132e",88782:"21adb695",88818:"d24b0c09",88822:"8d735d17",88829:"2dd5093e",88862:"2acd0182",88869:"069d9747",88904:"ce884dfe",89008:"faba77e5",89193:"65b7c3af",89250:"1a182b0c",89351:"3940c164",89548:"8c89292e",89579:"66ef08c5",89650:"d0b0a736",89752:"7937938f",89756:"79f1df13",89943:"4065b4f5",90045:"449b8b2a",90047:"a5c0ddde",90056:"b0c683e3",90083:"fa7a17d6",90178:"940ac50d",90206:"b835acf9",90288:"fda68eb6",90399:"4da694a2",90439:"1321bd0c",90469:"d2c4662c",90605:"046a5840",90645:"f5d68b8b",90748:"5ea6b878",90934:"bb382be5",90980:"c4f6b8ea",90999:"8f3df132",91151:"4d9bf54d",91192:"2d8cc364",91221:"763af04c",91282:"db320d05",91599:"cb67ae44",91644:"f4c8d071",91660:"cd937061",91705:"ea93897e",91732:"59dc5120",91760:"0ba739db",91878:"88710045",91879:"a964dca4",91984:"85ee3304",91990:"fd6d2091",92043:"ce339223",92146:"7c0f7025",92160:"8b928ff3",92164:"ec2d127f",92182:"f8c8d424",92214:"4115e573",92255:"ad959469",92308:"33e9db7a",92388:"de1f3eef",92407:"4d74ddaf",92501:"becb808e",92517:"e6d65c1a",92522:"64d28bab",92530:"169b8e0e",92680:"b3b48020",92734:"6cdb6aae",92846:"ab6cc179",92898:"8154d34f",92988:"8f358b43",92999:"9bec1a49",93089:"3167acc2",93108:"f4df3b6d",93122:"5f57e65d",93203:"1ed8bc89",93213:"b1a42648",93283:"ccf215d0",93347:"6fbefd6a",93360:"bf5c0ed4",93362:"5de11a3e",93471:"7926c0e7",93524:"53be7bb5",93570:"33282a18",93724:"b59bc8a1",93751:"8b492717",93762:"93258ad9",93789:"6f8c794d",94012:"afed2c4d",94164:"62063dc6",94184:"23fcb8c1",94302:"d87da8aa",94379:"4078be2b",94432:"03309998",94507:"b56afe76",94545:"33dba69a",94560:"79fa50bc",94590:"4edc6f25",94706:"3310b576",94759:"d38a4b10",94900:"539a5208",94922:"e9ee81bc",95016:"1b3e987c",95018:"d0e40c06",95174:"5fe38186",95199:"98b811ee",95208:"52b5af79",95318:"cea9e6c0",95447:"a531d46e",95514:"9df7ac37",95516:"3bcc069a",95558:"a951e3f2",95569:"bba09171",95613:"2c707609",95815:"56bf918d",95816:"a9e928fa",95845:"b98653b0",95979:"1be2a9a9",96121:"35e4e413",96140:"640cf1bb",96162:"bd3f5897",96204:"2d97f394",96229:"970722ba",96256:"9fff3953",96410:"db804c98",96446:"30f3518c",96577:"48eba356",96755:"cc36d0db",96799:"6697021b",96838:"251e67f7",96840:"77799f29",96871:"da48ff44",96907:"4ff26f8d",96944:"e7d9ddb9",97094:"49ece7db",97193:"e2acb002",97230:"526a6380",97331:"48faac9b",97343:"ef43f631",97348:"5d2405fe",97371:"bfcc9157",97444:"413b3235",97478:"e11f57e3",97517:"b5842b36",97535:"8843454f",97618:"c7a3d8fc",97673:"c653ce97",97730:"afc187e4",97779:"0e722af7",97795:"7fbdb510",97806:"b51c4c3e",97959:"66a4c703",97983:"d411f954",98125:"f79ecca9",98153:"42b45f67",98254:"dd37fb5b",98294:"4da46250",98347:"6dae5e34",98450:"66fd51f3",98489:"94a15d4e",98698:"ff4763a5",98918:"8fba8ee2",99137:"aa3a830c",99187:"b3385901",99572:"f8bbda81",99610:"a4042d50",99715:"026fc6eb",99720:"8816b8b5",99750:"ecbd405f",99786:"d583044f",99808:"e85b5fe2",99851:"2125f3e5",99881:"1ed0c575",99896:"5c6182f8"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,d)=>Object.prototype.hasOwnProperty.call(e,d),c={},b="cardano-updates:",r.l=(e,d,f,a)=>{if(c[e])c[e].push(d);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==b+f){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",b+f),t.src=e),c[e]=[d];var l=(d,f)=>{t.onerror=t.onload=null,clearTimeout(s);var b=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(f))),d)return d(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={10532414:"6890",11423591:"96410",16833806:"67658",17254497:"27921",17630979:"93724",17896441:"27918",20441287:"879",27164297:"69110",28000465:"96577",28874657:"28592",34012593:"86809",35961293:"6115",41606842:"88101",41686714:"28757",44149308:"64018",46898189:"4089",50560035:"23214",53631751:"3685",57008883:"33399",57700755:"13276",60293520:"93283",70372002:"52703",79730245:"61596",80537537:"43140",80617771:"23427",82209890:"30141",83757913:"42571",84189288:"48863",87088759:"90047",89931013:"10173",90323238:"82641",91595845:"51268",93729337:"85845",94133299:"48275",99881079:"53004","08c82b6d":"81","857645d9":"117",c1cf9f04:"276","9f761678":"278",b032e7ab:"292",f6aa5556:"376","43289e4d":"458","3b3294a4":"493",bfcdc265:"567",ba0b87b5:"579",c0d329f5:"764","1752e4e5":"770","189b9341":"815","733f2214":"947","051bf5d6":"1088",db8fcc67:"1099",d1d77594:"1105",f5b1250e:"1129","28bc1d1b":"1285",f2423430:"1321",ef2b6a3f:"1338",d3a595c1:"1537","58ef99f4":"1686",d8668f0c:"1821",bb33890e:"1866",e25ae581:"1929","9348fe5e":"1938",c51276e7:"2071","4c8419de":"2091","219856ee":"2109","871691d4":"2136","4ef29baf":"2156","771eb9f2":"2251","06a283ef":"2307","1a932c01":"2348","7e87972d":"2432","8515128d":"2548",d92df848:"2578","65837eee":"2589","62f46a38":"2681",a69f0deb:"2773","35c3586e":"2789","1558d884":"2906",d9ccb35d:"3136",aaf18ab0:"3158",abfcb655:"3188","12ba2af2":"3203",d5676bf9:"3270","8c75942c":"3530","017cd6b7":"3649","1edde1a1":"3721",dff1c289:"3792","5668eccd":"3918",b69dce12:"3986","20bc6fcd":"4093",b5d3534a:"4295","16a93549":"4307","3ab5f4e0":"4376",a9019578:"4497",b76ef772:"4498",caeff77a:"4553","12a1613f":"4615","4a8836ad":"4823",b51d04b3:"4855","0dea9a3b":"4910","691b1ed7":"4944","9136968b":"4986","43ab8474":"5106","28d85025":"5214",ccf451f9:"5237",eba74f81:"5391","56f35d85":"5485","1aa68a01":"5507","4708484f":"5607",c9987321:"5637",fc6043ae:"5785","1d10bd9e":"5978","9f70a142":"6169",cb70d85b:"6177",f3b8b9d5:"6191","47da279e":"6236",bb465a37:"6246","55e35eab":"6249","5296f864":"6255","51cf8946":"6324","03d856aa":"6413",fe591044:"6421","5574328a":"6519","623a19a8":"6543","50d19186":"6566",cb1998b9:"6795","986e43da":"6807",a5c8afdd:"6814","769eb34c":"6919","15dc596d":"6962","91f74828":"7152","3143eb67":"7204","35785fae":"7233","9b7a95a2":"7266","1150db26":"7268","485c7377":"7322","6728e788":"7374","2e3d75f1":"7387",b28a1077:"7413",ac7236c1:"7538","4ab012ff":"7555","31a18ffd":"7558","84bc1a8f":"7717","6d826f51":"7729",b8a3fbda:"7741",c10365f3:"7783","4b996e44":"7897",a82a69a3:"7902","1b386b52":"7939","246d9f04":"7966","7de83161":"7968","8236b20c":"7979",d343e3e1:"8033",fca4af6d:"8201",a1ff8cc5:"8362","5642d223":"8525",d83d9042:"8580",e5d179d9:"8583","62ec9f43":"8694",dbfcd384:"8721",a6e1d45a:"8737","24d9143c":"8893","92b15de5":"8905","1cb5298b":"9009",e3c3ef1c:"9107",fd4eddf4:"9314",a040c838:"9499","14eb3368":"9817","7de7ce98":"9828","8ed15298":"9928",ba740fe3:"10025","0af81f82":"10114","39db4f40":"10159","6ded2f47":"10217","4b62dc40":"10335","0915a78d":"10440",af8de899:"10536","1adaa071":"11164",bc79ed22:"11212",f6ec1152:"11254",b7dd63dc:"11400","8ed69c89":"11537",c63933b3:"11727","5e9a4be9":"11748","6c10d32f":"11759",c158f9a9:"11829",da2bedef:"11903","3029c859":"11915","301cd1f4":"11952","7d9cdd40":"11987","4e419659":"11996","86b90503":"12023","3bc8fe23":"12029",ff98e151:"12287","47e876cf":"12372","20904fef":"12620",f51bb76d:"12626",d7e5c882:"12652",db3d0db2:"12709","90aeef13":"12853","22a8c4ec":"13056","1f391b9e":"13085","65d07996":"13160",ed174522:"13327",d2aca35e:"13412","5346bf97":"13530","77215fb3":"13680",b2f6ced4:"13752",b6036a11:"13753",d3f3f546:"13764","68585f67":"14274","5674f153":"14392","3538f18d":"14545","93b15a8c":"14582",a6472a96:"14587",c4565987:"14645","6d66ecac":"14671",d3c2803b:"14844",e980c509:"15007","72e3f9d2":"15013","3ac610ff":"15091",d124c703:"15152",af332a03:"15228",b9b1b0de:"15286","0ca860fc":"15315","8914fa7e":"15347",fc55a8cc:"15519","4735cd81":"15529","5c868d36":"15589","8bfc66fb":"15623","91c8d0f7":"15696",b65e5ec2:"15715","570bc21e":"15898",a2a63bac:"16002","5af0f4f9":"16165",d96cfa54:"16171",de3a87a3:"16224","0ade4266":"16227","12d5d907":"16348","4febca42":"16349",d2ab2776:"16360","28644f4c":"16498",cd5f993f:"16571","6ef7a896":"16616","5a36c8fd":"16727",b4af885a:"16839","3dbbac8a":"16855","54a7c81e":"16878",a7418040:"16886","9a03c440":"16959","4eaeb622":"17139","5226ad4f":"17214","9bb237b8":"17251",d7899fea:"17285",d7d5383e:"17300",ad3b787d:"17323",f2180c0a:"17433","91b05c51":"17490","4b1460f8":"17605",c6ae40c2:"17693",f9c65c8d:"17813",d632b502:"17847",ae2d2424:"17873","0350d52d":"17878","4da01d42":"17903",fbe14114:"18085","8d306cf9":"18144",fc30198e:"18160",dceb6e64:"18242","2d72833d":"18303","9308fe55":"18355",b13b9480:"18471","05f2862f":"18479","09dc29d3":"18513",fd6ebf5b:"18599",db138d7c:"18634","3ce290cc":"18654","818cb4a0":"18815","4d4ca631":"18848",ac8f4356:"19064","3fb79450":"19182","5b019cc0":"19447","52b8fa8a":"19516","0801ba5a":"19644",c5b24241:"19683","925feafa":"19773","98e6984f":"19861","089f77bc":"20017","2831f2fb":"20018","941d55d9":"20170","22e80361":"20196",ff8cfcf7:"20203","4953deee":"20306",c8056232:"20326",d19a344f:"20387","7439ef37":"20433","2d52a685":"20553","5f42e212":"20578","919e3b80":"20605","57e0ab98":"20779","228ebc11":"20897",b073a55d:"20955",d967308c:"20957","3a3a2602":"20974",a74edb50:"21074","37b247a8":"21080",ec53298b:"21129","24fb874a":"21159","0dfea636":"21200","0c8d8623":"21404",dc590d3d:"21439","1147f4da":"21463",c063df1b:"21562","8fe062a7":"21597","2455acc4":"21642","924be064":"21798","21f2a9aa":"21806",fbc5e9d6:"21895",e54eb766:"21964",b3f59e42:"22057","8a6fc2ec":"22154",b242687d:"22191","45a10ae8":"22206",d6c09ac2:"22393",ccb7a847:"22469","31025fde":"22519","63a0ff66":"22585",e8c7dddb:"22615",edf65b53:"22637",cebf097b:"22772","4ed83391":"22838","1da92289":"22954","40e498fa":"23092","1c192ca4":"23146",fd5f5db6:"23202","347c3e4d":"23271",ed930750:"23318",add555bf:"23360",d6f20405:"23599","0b5e25e7":"23621","365e04c6":"23623","8c3c73e0":"23685",a29c613f:"23928","94a907c9":"23941","6c50c5d9":"24155","00ae3d77":"24216","97cbe753":"24272",d7c69167:"24288","43bbbae7":"24310","776206d2":"24323","27c463c7":"24327","6b51f988":"24384",a739ba69:"24514",dd1ee47a:"24519",f76b8023:"24568",b57687d8:"24651","32a89ce0":"24665",d8c4fe87:"24671",f210b4b5:"24745",bafef0bd:"24801",c7096169:"25074",f9afe2d8:"25094",f89a4337:"25189","8e410d22":"25272","611f3a9e":"25351",a1d4a798:"25353","3bf61174":"25358",f850a5f3:"25403","0bbf8a95":"25456",be1e6782:"25469","4be9a3a6":"25480","380c57b3":"25574","163cc15d":"25588","73bbd4d7":"25590","7442b11e":"25665","04326247":"25759",d369886f:"25854",a687dd04:"26026","0b1b72af":"26276",cf472160:"26287","2d0da244":"26299","50f12e76":"26308",beba3ea5:"26337","0e717c32":"26397","34f5d9d4":"26458",cc9fa3d1:"26500",ee0b7a59:"26544","274d7200":"26565",c90fb258:"26584",fa00d705:"26710","8d60cfea":"27043","0d889cfb":"27237","5160091e":"27250",d9a6bb79:"27287",bda3e1c7:"27335","042169f6":"27449",b3043f02:"27478",e1e18011:"27577","82db709e":"27647",cd0ded60:"27668",fdc27cae:"27697","3c855eb4":"27865","1a982bed":"27885","46ba60f8":"28050","013c921c":"28098","46c51ef6":"28298","1f9c0c9c":"28323",e847d60c:"28348","2154b8e4":"28480","6c8b7ad4":"28577","8aeb9708":"28650",d5cc3122:"28669",d13afeb8:"28672",d192a362:"28810",d700c1da:"28819","2276e554":"28843","0d671897":"29059","76794a21":"29071",ae39809c:"29129",daa3e20a:"29177",f57ea8cf:"29204",e9de58f7:"29370","77d69aed":"29399","1be78505":"29514","78df8d65":"29537","985c36e4":"29545","6d22e028":"29750","78d07d74":"29837","1a6775b2":"29867",de42301d:"29890","1cfb0a67":"30066","73f0dde0":"30101",ba0b6dbd:"30126","57f9f9c7":"30252","2d91c21f":"30335",d6a3b4a5:"30482",ad9f1248:"30654","50d0e663":"30670","9e3f42ed":"30717",ce7ed51f:"30830",e2011657:"30849",ddce0bff:"31005",d6a93ba7:"31349","29388bf2":"31416","9c00a84f":"31529",bcf46d9c:"31617","44e33f80":"31636","9c7979b1":"31757","2c6851ed":"31762","60e1630c":"31831",faece773:"32023","90bf9c2d":"32035","97daee08":"32070","7fc8ff62":"32191",a609cdb3:"32288","370c5287":"32438",f8681695:"32464","9f7c2154":"32472","2e4cebe0":"32532","251f0563":"32570",d0e182b9:"32627","12637b23":"32706","632979e8":"32831","12208c5e":"32852","9e570fef":"32925","8d209506":"32936","113fed8c":"33215",e9dce996:"33221",b78698d9:"33288","5d0266be":"33671","82f24945":"33724",c7db80fc:"33742","14db8e4c":"33815","66555aa8":"34088","505049d0":"34111","2ea56af2":"34263","92e62ade":"34425","4bed0e48":"34631",fa9647fb:"34703","387f3426":"34719","9a0e13cc":"34746","7574ff34":"34891",f3c06362:"34985","45e52e4e":"35005",f91da2e3:"35044",ffeb8a80:"35275",c2eec07f:"35388",f7132c6a:"35594","5de0f279":"35646","6bae8700":"35703","0a497e30":"35794",f1bfc30d:"35877",b3041b60:"35889","2fd426fa":"36016",bd65afd9:"36160",fba052bd:"36171",e2621d74:"36291","0646a177":"36303","3a40f46b":"36337","934a8f8d":"36370","3f9060c3":"36398",a1ac97eb:"36463","822bd8ab":"36504",c0354ce6:"36881","981d7293":"36945","5a843cd2":"37221",e5dd9161:"37329","684ac28b":"37355",fd6fd4a3:"37495","4ac33b1c":"37592","3223729c":"37609","9d7869bb":"37734","58a16fc9":"38077","8470e3c7":"38141","933ecdda":"38248","1c273fb9":"38292","199b4690":"38370",bd1eb202:"38454","20ca2c37":"38516","0048047b":"38518","741efb60":"38705","29352f22":"38848","7fa9de70":"38938","053dec63":"38951",edca0251:"39066","3a493dd8":"39071",c6f90b29:"39080","40b80600":"39139",b1992084:"39223","0e8f60e3":"39236","49910c96":"39313",ac56cb0b:"39329","07fdf123":"39439","7030fa2f":"39640","0c11045c":"39745","63fae4f0":"39898","8534c2dd":"39987",a4419125:"40077",bc6b65d9:"40160",b5164349:"40176","617b050a":"40232",c036f08e:"40309","10659ce5":"40400","187056c8":"40430","0a8f6579":"40521",b6472136:"40586","5d9e7658":"40650","05e38d95":"40718","74d66224":"40767",fa45022f:"40870","2738ca2a":"41016","7ebab15c":"41088",b96303b2:"41092",ca6829cb:"41153","519b5664":"41419","3fbaa021":"41452",b34c935f:"41732",c149628c:"41735","0c48efb1":"41794","161d96eb":"41867","3ed6d409":"41890",de4537b5:"41923",d7836792:"42126","066b9f60":"42181",de790939:"42185",b88c8fa9:"42190","59a262d5":"42198","0ca75f19":"42228","1b89036f":"42408","463d37d9":"42441","02208e51":"42451","32d4ad41":"42575",c831575d:"42677","6e743f1b":"42686",c2b4dd94:"43020","44642b2f":"43108",c315164d:"43194","789f2cca":"43261",a69b7e0b:"43308",e56a9a29:"43412","4994a283":"43484",ae714ef1:"43545","092cb4d9":"43640","0a60fad7":"43650","15691c1d":"43729",bc942cd0:"43735","729abf9f":"43837",ea5b7321:"43890","2eba0b82":"43898","5c8fca76":"44003","76f55d29":"44093",f452efc5:"44281","7a6174e7":"44377","94c6d911":"44501",b9ad018f:"44534","99d83f94":"44635","35ef34ae":"44966","92b56def":"45014",e7486169:"45237","59e2956e":"45332","4d7c8e78":"45389","5eec6141":"45394","335868d9":"45480",eb781ed2:"45723",cdecbf23:"45749",a92d4e87:"45757",d863ede2:"45766",f48535bf:"45821","878c8163":"45932",bb44f9e3:"45943","81bb24c9":"46003",ccc49370:"46103","12525f14":"46207","08d15232":"46215",ec06fa8a:"46271","4ce06e64":"46318",d97d797d:"46347",d99d594e:"46521",f59c978c:"46545","2e28eb6b":"46576","86c4d158":"46831",e7a72da0:"46846",f872275a:"46922","0645cd02":"46982","19b42e4a":"47089",b512dd46:"47093","2fa57f55":"47176",ce266bdc:"47258","97407dee":"47263","469935bd":"47605","1be923a7":"47658","26a4b8b3":"47669","2073b851":"47704","26678b7e":"47724",ca6e2d66:"47827","75a8d947":"48000",e5eebff8:"48048","97cbe67b":"48221","395173ce":"48245",eda7cf83:"48423",b5340a11:"48542","6190b2fb":"48600","6875c492":"48610",e2a7c340:"48622",cbd762f3:"48810",cced6026:"48818","4fe12b4b":"48837",f7e5e70a:"48909",cb54f244:"48955",af4c9a4c:"48966","66345e96":"48983","9b6092d7":"48990","8b59c913":"48993","38284ae5":"49105",ee5cb919:"49114","2ca47575":"49200","046dd16d":"49237","7095f3d5":"49545","7c54274f":"49599",f530b85c:"49605","3c3d2bff":"49706",a3889346:"49769","1afca88e":"49835",a6238997:"49904","588e4efd":"50097","752b6ead":"50165","81528b00":"50471","3ee2c73a":"50506","531a6747":"50550","4d7391f8":"50617","4731c85e":"50645","36e46525":"50646","1eb5f871":"50685","39ea0274":"50694","7b261353":"50857","144cea98":"50881","20db5fd1":"50887",aa4c9cc8:"50919","689c81d9":"51363",d37f32a8:"51389",f5e5d1cf:"51410",f117ec90:"51522",b8f51c1a:"51630","5778ca6b":"51727","4df30499":"51951",dd6797bc:"52016",b92c36fd:"52322","86870c59":"52334",b646abd3:"52399","1a6b5039":"52463",d0639dee:"52506",dee5d2d9:"52560",a25baf4b:"52622","6b16e156":"52650",bc4c7bdd:"52680",ed8bde1d:"52702",e8d4d6c0:"52818",b03d4a4e:"52834",fd069ff7:"52993",e4a61baa:"53121","805fc822":"53165","84909ac3":"53208","9fba226c":"53222",f1df5007:"53288",c0cf6239:"53482",b6ef4fcb:"53516","10dfceb5":"53545","9e4087bc":"53608","4de4e659":"53662","58c7cc80":"53744","5d5964ec":"53931","71e4641a":"53940","50135b75":"54176",f55d3e7a:"54193","16f9706c":"54316","5537c822":"54320","84677cf0":"54415",f5233174:"54419",c52fdde1:"54421","214ea763":"54462","533a09ca":"54607","7214e9a2":"54613","7c785843":"54629",ddcb8bff:"54642",ebf8adea:"54669","983b561c":"54685","77e9cceb":"54868",b66964f6:"54933","91dad5e0":"54937","884eee03":"54975",bcc2133c:"55006",e0b45b46:"55135","8b4d9039":"55202",e9ae9b7e:"55507","62c838a9":"55522",ef4f60e7:"55531","144cf255":"55553","3cb9fdac":"55638",d369bf59:"55802","62422ab6":"55855","649eea43":"55914","2bc04bf6":"56010",e4619b9c:"56482",a572b6ff:"56618","3a906e9e":"56626","771f29e6":"56674","704e5bb8":"56733","2f43fcdf":"56734",ee94a44f:"56815","69c7a5a7":"56950","8dbcbb69":"56994","04d19f61":"57071",fb8d4667:"57161","6004d2a4":"57193","2a8f0182":"57227","417fc4b4":"57271",af883e31:"57534",d957ac34:"57772",decc8fa8:"57918",f5063a59:"57922","07948597":"57998",c5fa22e0:"58033","3876260c":"58181","72174b40":"58236","5a4abf4f":"58359","4b2a148e":"58388",fb63aa20:"58470",f2b32cff:"58566",dc3c29da:"58623","8cd47ea9":"58628",e48af7b3:"58659","4f47c374":"58671",e1f21c3f:"58680","9dee36e7":"58744","12c83d8a":"58774",b0b16a90:"58800","94780c38":"58925","94ad958d":"59088","170ad9f9":"59256","7c815b5e":"59318","14ffac04":"59494","0e384e19":"59671","6e43d302":"59747","99b0bd12":"59798",ccb3697b:"59835","7ca6b5b4":"59881",ce230425:"59914","2e4b96cf":"59936","120c0b00":"59955","6927f7c4":"60019",dfd49ee8:"60247","47658b82":"60263","0e0c98f4":"60280","7e644b1f":"60375","223e0224":"60538","9423f7cf":"60539",a1597564:"60715","496cb9ef":"60852","0b0bfceb":"60903",ace79a55:"61185","1112c086":"61263","7a7e39bb":"61660","142448a1":"61705","8864b77b":"61908","78d554ba":"61980","9f4f09d0":"62009",da7937f0:"62083",fce7e268:"62140","77550e96":"62227","9ba26136":"62231","9291df2e":"62302","63c9ac3d":"62431","6e9ea927":"62496","0bfabad2":"62670","69d44fe6":"62748",a0d18a99:"62767","51bf60d9":"62901","4e45b006":"63089","83831b70":"63288",d90a9d25:"63345","0a44a251":"63565",db50202c:"63566",f4174027:"63643",fbdc54bf:"63824","01a85c17":"64013","65ecf6d5":"64112","1e57c0e2":"64313","9b436c26":"64342",f04f5aa5:"64350","3839ff25":"64466",c08c0f47:"64562",d7ea4c81:"64586",c061e3b1:"64614",e05cd66a:"64637","4d3eb7e7":"64827",fa82889f:"64829","17e76f05":"64966","3bb06773":"65029",f58a543c:"65038","9a947260":"65063","932bb1e6":"65153",cce29330:"65225",fec52f54:"65249",ed99d55f:"65318","245ecae9":"65356",f63d0757:"65395",dff84d74:"65421","89b1cff2":"65548","5cc32405":"65562","706d2bfc":"65579","812c0fab":"65682","5f459bde":"65761","393cd824":"65773","818d6f05":"65808","96ff3c40":"65856",c7e43a05:"65956","3b080b29":"66175","24788f0e":"66278",b8c8891e:"66282","370b5914":"66394","8ccf5d9f":"66649","9ce37f6e":"66764","2e52ad4e":"66840","90f359c5":"66891","8e0eb050":"66956","309cdfe6":"67037",a526ae0c:"67103","961dc6d0":"67122",cd612773:"67205","5e3dc99b":"67272","7a4b421f":"67452",d9b708eb:"67463",ff158e4d:"67507",bbdd9b59:"67557","06ca6baf":"67644",d5a278e5:"67666",a0225fec:"67794",b2ab4460:"67987","9668e24b":"68044","83e7e4db":"68102","1eaa900a":"68107",afa83c07:"68115","0431617f":"68153","5889a844":"68184","0c58c296":"68237","5f1db61d":"68452",ec344652:"68580",f5b69acd:"68672","3f828345":"68677","35760f21":"68904",bb016389:"69088","078fe100":"69321","7c78252e":"69354","2b637fd9":"69376","2e2abe90":"69467",c48f7122:"69473","9625caab":"69574","216f4a5f":"69701",e135bd86:"69791","533bb9dc":"70022",bd08fea4:"70029","04ae583b":"70057","012b1d34":"70160",ad067570:"70205",e0a887fb:"70291","23c4c5bd":"70498","72dde749":"70526","996aa714":"70594","7518bbd3":"70606",b4cc2dd2:"70635",f96c80dc:"70641","6226ba71":"70644","2075513f":"70665","922e2d6b":"70756","444dad87":"70895","25456c82":"70937","3399a664":"70950","817a876c":"71483","5282f34e":"71531","49bee9db":"71690",f5a24224:"71844",d70b4c5f:"71870",c9d7f018:"71955","41d087d7":"71972","16b5fa1e":"72074","089154c4":"72344","58de45fc":"72459",ab4c3279:"72690",e70f68c6:"72815","0c10bcf4":"72872","234d19c9":"72993",fa5dce7e:"73001","300a86ed":"73010","7a167eb1":"73074",b8bcf1d1:"73277","78d8ce1d":"73320",c4479859:"73321",e80f56fd:"73336","49d88be4":"73343",a419cc29:"73513","5b622352":"73659","133ddf45":"73716","838dc3f3":"73745",f0418a99:"73799","007e4c05":"73800","85c4e11b":"74024",ad9136bc:"74108","33bc9424":"74169","71d215be":"74390","1dd82bf1":"74475","0db650db":"74607",a041ec46:"74646","09e2328d":"74813",d2463491:"75061","7faccef9":"75064","43956aba":"75081","831d95cb":"75319","79d76848":"75379",ef4801f7:"75394","9b5ce5fa":"75501","55b9667a":"75506",f522921c:"75556",d76bd867:"75563","90cc522f":"75696",d857251e:"75698","550cdc1d":"75730","492dc159":"75748","8fd26069":"75834",a56f68e5:"75940","4dc3be72":"76074","0660f60e":"76131",a9347c1b:"76323",c25c032e:"76375","77d820b6":"76413","999e2b46":"76433","4c4444c5":"76438","0fc579d4":"76442",d3ba1bbd:"76476",bdc4c1ed:"76581","5e730d4f":"76762",a12974ca:"76884","3c14a1c3":"76900","0e828f3a":"77338",ce17d78b:"77533",fc8c3309:"77642",ce6dcc9e:"77644","7c359f4d":"77696",a48d66c0:"77965",da04b7b0:"78101",a6e5ff3c:"78153","46b1db29":"78258","795480a5":"78446",b4f5b98b:"78461","354f96c6":"78580","9ff56e7d":"78642",cc5c2602:"78761","8368e4b7":"79008",df778edc:"79036",a1a26142:"79113","9d4323f3":"79166",fdba8f98:"79224","6fb45133":"79260",cdcf18ac:"79424","0281a492":"79503","1377d1fa":"79841","71508f04":"80019","68fb9d2f":"80048","935f2afb":"80053","4c4f8ee1":"80113","42ad0ca4":"80309","209bf559":"80367","077b979c":"80500","391126a1":"80542","6da0a796":"80567","49d642c9":"80575","600e4190":"80599","015be621":"80613",eb0e2fb1:"80622",ac4f0787:"80733","7fda8ae5":"81015","61e62d68":"81169",cc267639:"81214","81db2276":"81360",c4d8aa78:"81415","2a707bc4":"81564","437db4bf":"81587","4574fd9f":"81677","2b872e03":"81755",f2deb2f1:"82164",c2d03b29:"82224","798d160f":"82358","9a49abff":"82695","18c41134":"82859","9fba849d":"82941","573e0546":"83019","9bd1b7cb":"83025","7c895c96":"83036","04c3317f":"83050","15072f11":"83129","019bb279":"83167",f302e248:"83214",be16a434:"83247",d5c6258a:"83261",a79960af:"83472","0fa2fd29":"83646",ba7f9bb8:"83879","6eecfaae":"84069","1121299e":"84213",e475cb83:"84378","988c71cb":"84433","3a3e17f4":"84598",e3067ecd:"84599","2e0caba1":"84670","95f12e12":"84727",c2e0061a:"84755",cf1bc381:"84773","8d3da32e":"84877",d3a63b1a:"85085",d988d084:"85138","425dfc0f":"85349","876c34e9":"85369","21857c8f":"85417","1caacab6":"85442",fb6d6072:"85487","3d542156":"85563",b836e3b2:"85606",bd307c3a:"85642",a7a31948:"85943",eaf1cf7f:"86229","1ac6d9a0":"86243",ea2603ff:"86326","9f11a452":"86358","3328a3bf":"86393",d6e5a7f4:"86517","9936161a":"86576","10ca2666":"86769","67ce4884":"86830",f480ab7b:"87158",ccfc9222:"87233",a14fd889:"87326",f63b6b72:"87389",a1f2945e:"87407",fb793160:"87411","393be207":"87414",eac6bb0a:"87445","05bee9ec":"87618","486d3992":"87622","6d0badab":"87675","8a4bf3d8":"87881","42eb15cf":"87891",ba2ecd41:"88204","65d0391b":"88572","6a75c57a":"88592","5347b974":"88619","435d8b4c":"88697","1b2a226f":"88782","1e4232ab":"88818","7f6d758e":"88822",e158fd47:"88829",d077dadd:"88862",e6ea9b03:"88869",f99e473b:"88904",daace409:"89008","91ed84ec":"89193","7e9cd387":"89250",be2e95c8:"89351",d15a0787:"89548",c880761d:"89579","3b214584":"89650",c0ac1524:"89752","397686d4":"89756","39dd59eb":"89943","7221b837":"90045",fa0b1b5d:"90056",e356bfd0:"90083","9c96fa11":"90178",d79a4bb7:"90206",f96c80d6:"90288","9de5c9e8":"90399",bd3fea4c:"90439","3a5dab2a":"90469",bc17f22c:"90605","839c5f78":"90645",a1cde312:"90748",cb7a1a0b:"90934",b134e481:"90980","35e2a0c5":"90999",c7337d4e:"91151","76c61a3b":"91192",c8302006:"91221",a1d1f035:"91282","0d954d74":"91599","62d3f25f":"91644","1e9d3edd":"91660","0813fe0c":"91705","4dba54fc":"91732",fee99998:"91760",cc653543:"91878","6d25229c":"91879",d2ea5af2:"91984","1b34f23d":"91990","9c781688":"92043",a21706c9:"92146","36a96f5a":"92160","5090ff9c":"92164",d934bbef:"92182","692497e1":"92214",c178b56c:"92255","4b90674f":"92308","88e4c211":"92388","785e66fe":"92407",ea84a009:"92501","70396aa3":"92517",fb0b9e22:"92522",f92f97ae:"92530","65dd336a":"92680","3bfbfc92":"92734","913aac40":"92846","9ef45f96":"92898","022c437b":"92988","7598a821":"92999",a6aa9e1f:"93089",d65b9dd2:"93108","80514ec9":"93122","9cab6d73":"93203",bce2d096:"93213","99d1374b":"93347","79ddb53e":"93360","2691c4f4":"93362",c65b5e22:"93471",e6402687:"93524",caab1e2e:"93570","0eb9e1ad":"93751","1bfd87fe":"93762",f4548430:"93789",d21b93c1:"94012","63a2f993":"94164","5733c82d":"94184","687d3bf5":"94302",e716e5b6:"94379","68b2c30a":"94432","011c86a6":"94507",fed3e02f:"94545","563fcf2e":"94560","72c81964":"94590","3dbe7590":"94706",bccb35b7:"94759","3bb415e3":"94900",c511c40f:"94922","550b6b1a":"95016","034a14a6":"95018",f9781350:"95174",c5858ebd:"95199",a2ee852b:"95208",b3c27c9b:"95318","177280a4":"95447",f54e05ce:"95514",d6b66cf4:"95516",d5f27176:"95558",c1c5c6f5:"95569","324138c8":"95613","3c0c6268":"95815",eff08811:"95816","73a96f39":"95845","637356df":"95979","439b9a57":"96121",ca3b5bc8:"96140","8c6dbeca":"96162","3659ef2a":"96204",d7dccf50:"96229","0d6ce706":"96256","31889a8f":"96446",e44a2883:"96755","6e7b669d":"96799","778ef860":"96838",e90b2ff0:"96840","126e82e6":"96871","7ba00404":"96907","78c763b8":"96944",c60581f2:"97094",a1d6199d:"97193","732b35ea":"97230",e44c5603:"97331",cab3a9ea:"97343","68b9da9c":"97348",fd8a7e73:"97371","29f10536":"97444","0edd4eae":"97478","8fea44ca":"97517","4aaac366":"97535","09719837":"97618","7a3449d6":"97673","6d371395":"97730",a5aa5392:"97779","5907b27e":"97795","568314b4":"97806",c9210b26:"97959","0f191e9d":"97983","3c041795":"98125","90ae2cef":"98153","9440f007":"98254","44cd51e3":"98294","43aa4824":"98347","7a263bfa":"98450","367766a3":"98489","24d5a6d9":"98698","237aa4d6":"98918","94d5ff15":"99137",f7812855:"99187","4a0a5eb3":"99572","3f2108ba":"99610","221981c6":"99715",c92fbd03:"99720","8d0075ff":"99750",b0f8ff9f:"99786","80c54634":"99808",f1565105:"99851",a8738e5f:"99881",cc74f849:"99896"}[e]||e,r.p+r.u(e)},(()=>{var e={51303:0,40532:0};r.f.j=(d,f)=>{var c=r.o(e,d)?e[d]:void 0;if(0!==c)if(c)f.push(c[2]);else if(/^(40532|51303)$/.test(d))e[d]=0;else{var b=new Promise(((f,b)=>c=e[d]=[f,b]));f.push(c[2]=b);var a=r.p+r.u(d),t=new Error;r.l(a,(f=>{if(r.o(e,d)&&(0!==(c=e[d])&&(e[d]=void 0),c)){var b=f&&("load"===f.type?"missing":f.type),a=f&&f.target&&f.target.src;t.message="Loading chunk "+d+" failed.\n("+b+": "+a+")",t.name="ChunkLoadError",t.type=b,t.request=a,c[1](t)}}),"chunk-"+d,d)}},r.O.j=d=>0===e[d];var d=(d,f)=>{var c,b,a=f[0],t=f[1],o=f[2],n=0;if(a.some((d=>0!==e[d]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(d&&d(f);n<a.length;n++)b=a[n],r.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return r.O(i)},f=self.webpackChunkcardano_updates=self.webpackChunkcardano_updates||[];f.forEach(d.bind(null,0)),f.push=d.bind(null,f.push.bind(f))})()})(); \ No newline at end of file diff --git a/atom.xml b/atom.xml new file mode 100644 index 0000000000..9c7a60277c --- /dev/null +++ b/atom.xml @@ -0,0 +1,8750 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>https://updates.cardano.intersectmbo.org/</id> + <title>Cardano Updates Feed + 2024-07-17T00:00:00.000Z + https://github.com/jpmonette/feed + + Regular updates from Cardano Development Teams + https://updates.cardano.intersectmbo.org/img/favicon.ico + + <![CDATA[Hydra Team Update]]> + 2024-07-17-hydra + + 2024-07-17T00:00:00.000Z + + High-level summary

This week, the Hydra team made significant progress on incremental decommits +by closing the last gaps and cleaning up the specification. They collected +scenarios and prepared for incremental commits, updated dependencies for +compatibility with cardano-node 9.0.0, and continued tidying up documentation. +Work continued on an easy spin-up of the getting-started demo via +process-compose. Additionally, the team onboarded a new contributor and held +an early design meeting about payment channels and Blockfrost. They also +refined the SDK wallet idea.

What did the team achieve?

  • Incremental decommit progress: closed last gaps, cleanup specification #1483
  • Collected scenarios and preparing for incremental commit #1484
  • Updated dependencies, compatibility cardano-node 9.0.0 #1481
  • Continued documentation tidyups
  • WIP easy spin-up of the getting-started demo via process-compose #1503
  • Onboarded new contributor
  • Early design meeting about payment channels and Blockfrost #1305
  • SDK wallet idea refinement #1509

What's next?

  • Merge and release incremental decommit
  • Continued work on incremental commit
  • Support Hydra demo at Rare Evo
  • Have a Head open on preview to see it working through the upcoming hard fork
]]>
+ + Noon van der Silk + https://github.com/noonio + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-07-17-mithril + + 2024-07-17T00:00:00.000Z + + High level overview

This week, the Mithril team released the new distribution 2428.0, which includes support for Cardano node version 9.0.0, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks by calibrating the signature parameters for mainnet, fixing a bug preventing the signature of the last block advertised as certified, optimizing a part of the artifact production that was blocking the certification, and starting removing the code reading transactions from the immutable files.

Finally, the team started working on the certification of the Cardano stake distribution and continued redacting a CIP for the diffusion of Mithril signatures through the Cardano network.

Low level overview

  • Released the new distribution 2428.0
  • Completed the issue Release 2428 distribution #1810
  • Completed the issue Calibrate Cardano transaction signature parameters #1814
  • Completed the issue Non blocking artifact production in aggregator #1792
  • Completed the issue Cardano transaction importer does not import the last block advertised as certified #1785
  • Completed the issue A recorded but non certified Cardano transaction creates an error in prover #1819
  • Completed the issue Signer make test command fails #1816
  • Completed the issue Document Prometheus metrics and Grafana Dahsboard for signer #1834
  • Completed the issue Explorer keeps previous Cardano transaction error #1818
  • Worked on the issue Implement signable and artifacts builders for Cardano Stake Distribution #1832
  • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
  • Worked on the issue Cleanup Immutable File in Cardano transaction #1825
  • Worked on the issue Upgrade testing-sanchonet for respin with Cardano 9.0.0 #1822
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Consensus Team Update]]> + 2024-07-10-consensus + + 2024-07-10T00:00:00.000Z + + High level summary
  • Assisted with Node release 9.0:
    • Performed security audits, engaged with other teams, implemented improvements, and released Consensus packages.
  • We are now running additional NoThunks tests, which help us safeguard against memory leaks in the node.
  • Reviewed Milestone 13 of Genesis, which improves the code documentation of Genesis, and implements some fixes and optimizations.
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-07-10-mithril + + 2024-07-10T00:00:00.000Z + + High level overview

This week, the Mithril team worked on supporting Cardano node version 9.0.0 and started working on a new Mithril distribution. They also continued implementing the certification of Cardano transactions in Mithril networks. They fixed some bugs blocking the REST API during transactions import, causing resource exhaustion on the aggregator Cardano node, and creating some exceptions in the explorer. They also kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

Finally, the team worked on enhancing the artifact production in the aggregator to avoid blocking the certification and finalized enforcing the linting of all the files in the repository with the CI.

Low level overview

  • Completed the issue Upgrade Cardano node 9.0.0 #1787
  • Completed the issue Aggregator/Signer preload transactions when Cardano transactions certification is not activated #1782
  • Completed the issue Explorer does not handle invalid transaction hashes #1784
  • Completed the issue Cardano transactions import blocks aggregator and signer #1797
  • Completed the issue Resource exhausted on Cardano node socket #1803
  • Completed the issue Certificate pending route overwhelms the Cardano node in aggregator #1804
  • Completed the issue Optimize Cardano transaction prover performances with parallelization #1756
  • Completed the issue Lint Markdown/JavaScript files in repository #1754
  • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
  • Worked on the issue Release 2428 distribution #1810
  • Worked on the issue Non blocking artifact production in aggregator #1792
  • Worked on the issue Cardano transaction importer does not import the last block advertised as certified #1785
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Network Team Update]]> + 2024-07-08-network + + 2024-07-08T00:00:00.000Z + + High-level overview of sprint 65

Karl Knutsson (CF) fixed a bug which prevented a node using bootstrap peers +to sync using them, for a more detailed description see ouroboros-network#4899.

Earlier this year we fixed bugs in IOSimPOR which prevent us from using it in +ouroboros-network (io-sim#153, io-sim#159); since +ouroboros-network#4872 was merged we have a large number of tests that are +using IOSimPOR's schedule exploration. In the last sprint we fixed +some bugs discovered by IOSimPOR in ouroboros-network:

We continued working on new tx-submission logic: ouroboros-network#3311 as +well as on Genesis. The work on Genesis is split in a few PRs which are +currently in review process:

  • Big Ledger Peer Targets for Genesis - ouroboros-network#4832
  • Feed peer selection governor with big ledger peers obtained from a snapshot - ouroboros-network#4850
  • Introduction of serialization instances in support of ledger peer snapshot - ouroboros-network#4851
  • Verification of big ledger peer snapshot file - [ouroboros-network#4888]

High-level overview of sprint 64

Karl Knutsson (CF) modified peer sharing behaviour to not share peers whith +which connections failed, see ouroboros-network#4883 for more details.

We fixed inbound governor counters tracer, see ouroboros-network#4885.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[SRE Team Update]]> + 2024-07-05-sre + + 2024-07-05T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-node 9.0.0 is now deployed to mainnet, preprod, preview, private and +shelley-qa environments. The last several weeks have been very busy with +pre-release and release activity and environment upgrades involving +cardano-node versions 8.9.3, 8.9.4, 8.12.0-pre, 8.12.1, 8.12.2 and +now 9.0.0 as of this update.

  • Sanchonet environment remains pinned at cardano-node version 8.11.0-pre until +the next respin which will support 9.0.0 or greater.

  • Ogmios service and package options were added to cardano-parts.

  • Four documents were added to cardano-playground to better explain some +operational procedures: debugging of peer-to-peer connections; governance +voting with the playground stakepools; faucet setup; faucet pool +de-delegation. Found at: +docs/explain

  • One document was added to cardano-mainnet to explain cardano-snapshot +operations. Found at: +docs/explain

  • Private chain was stopped and re-spun with 2 hr epochs for testing.

  • Hydra and performance cluster machines had their configuration updated to be +more robust to transient nix store caches outages which may re-occur in the +future.

  • All machines in cardano-playground and cardano-mainnet clusters were updated +to nixpkgs 24.05.

Lower level summary

Cardano-mainnet

  • Sets cardano-node to 8.12.2 as well as usage of a custom gc delay parameter +branch for bootstrap nodes. Updates all machines to nixpkgs to 24.05 with +openssh 9.8p1. Adds one new explainer readme document, new alerts and various +script, recipe, and other improvements. See the PR description for more +details: +cardano-mainnet-pull-16

Cardano-ops

  • Bumps to cardano-node 9.0.0, adds coredump metrics, adds OOM/coredump +alerting, adjusts systemd stop timeout to avoid some unneccesary chain +replays: +cardano-ops-compare

Cardano-parts

  • Sets cardano-node (release) and cardano-node-ng (pre-release) versions to +8.12.2 and cardano-db-sync-ng to sancho-5-0-0. Updates nixpkgs to +24.05. Includes nixosModule, dashboard, metric, alert and recipe +improvements and new features. More detail is available in the PR +description: +cardano-parts-pull-43

Cardano-perf

  • Adjusts nix config to avoid R2 500 errors on transient cache problems and +adds explorer to perf class: +cardano-perf-compare

Cardano-playground

  • Sets cardano-node (release) and cardano-node-ng (pre-release) versions to +8.12.2 and cardano-db-sync-ng to sancho-5-0-0. Updates all machines to +nixpkgs to 24.05 with openssh 9.8p1. Respins private chain and KES +rotates multiple chains. Adds four new explainer readme documents, new alerts +and various script, recipe, and other improvements. See the PR description +for more details: +cardano-playground-pull-27

Iohk-nix

Ops-lib

  • Updates deployers with recent nixpkgs, nix, refactors to preserve legacy +nixops usage, adds starship and fzf: +ops-lib-pull-134

  • Bumps openssh to 9.8p1 +ops-lib-pull-135

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-07-03-ledger + + 2024-07-03T00:00:00.000Z + + High level summary

This period we added some last minute changes that were necessary for improving resilience +and safety of Conway implementation:

  • Authorization of hot credentials for constitutional committee members is now only possible +for cold credentials that are present in the ledger state, either in the current committee +or in one of the proposals.
  • Voting is restricted to entities that are present in the ledger state
  • DRep votes will be removed whenever DRep unregisters
  • Pricing model for the size of reference scripts was changed from linear to +exponential. Moreover, extra limits on the total size of reference scripts being used +have been put in place.

Low level summary

Conway

  • pull-4430 - CostModel json parsing
  • pull-4438 - Fix UTXOW era in diagrams for Conway
  • pull-4443 - Make reference scripts fee grow exponentially with size
  • pull-4436 - Authorize known cc members only
  • pull-4433 - Improve resilience of future PParams
  • pull-4453 - Tx refscript size check
  • pull-4452 - Prevent votes for non existent entities
  • pull-4450 - BBODY refscript size check

Testing

  • pull-4417 - constrained-generators: use consistent warning pragma
  • pull-4431 - constrained-generators: fix flakyness in set generator
  • pull-4312 - Convert AlonzoValidTxUTXOW to ImpTest (Part 1)
  • pull-4386 - Increase the size of the committee for testing
  • pull-4425 - Conformance test plumbing: EPOCH
  • pull-4442 - Update executable-spec SRP
  • pull-4405 - Add more scripts to alonzo utxosspec
  • pull-4445 - Conformance tests plumbing: NEWEPOCH
  • pull-4460 - Remove unnecessary allocation in non-integral reference code
  • pull-4457 - Conformance: POOL: Translate and adjust

Infrastructure and releasing

]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-07-03-mithril + + 2024-07-03T00:00:00.000Z + + High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They completed the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas and worked on fixing some bugs occurring during the warmup phase of the signer and aggregator. They also worked on supporting the new Cardano node version 8.12 and kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

Finally, the team fixed a bug that prevented the parsing of some blocks in the SanchoNet network and made some optimizations on the databases of the signer and aggregator.

Low level overview

  • Completed the issue Import Cardano transactions with ChainReader #1705
  • Completed the issue Cardano signatures are not produced on testing-sanchonet #1750
  • Completed the issue SQLite WAL files are not truncated in signer and aggregator #1707
  • Completed the issue Conditional embedding of Cardano CLI in Docker images #1725
  • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
  • Worked on the issue Optimize Cardano transaction prover performances with parallelization #1756
  • Worked on the issue Upgrade Cardano node 8.12.2 #1787
  • Worked on the issue Aggregator/Signer preload transactions when Cardano transactions certification is not activated #1782
  • Worked on the issue Cardano transaction importer does not import the last block advertised as certified #1785
  • Worked on the issue Lint Markdown/JavaScript files in repository #1754
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Consensus Team Update]]> + 2024-06-26-consensus + + 2024-06-26T00:00:00.000Z + + High level summary
  • Supported debugging activities related to bootstrap nodes.
  • Merged various improvements to the db-X tools; in particular, db-truncater (which is used regularly by community members on sanchonet) got much faster.
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-06-26-mithril + + 2024-06-26T00:00:00.000Z + + High level overview

This week, the Mithril team released the threat modeling explainer for the documentation website. They also continued implementing the certification of Cardano transactions in Mithril networks and the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas. Additionally, the team started redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

Finally, they fixed a bug that prevented the verification of the transactions included in the last certified block and improved the WASM client's documentation.

Low level overview

  • Completed the issue Threat modeling and risk analysis #1350
  • Completed the issue Implement database connection pooling for Cardano transaction repository #1760
  • Completed the issue Import Cardano transactions by sequences of block ranges #1766
  • Completed the issue Limit Cardano transactions prover input #1757
  • Completed the issue Transactions of the block number in the artifact are never certified by the prover #1762
  • Completed the issue Add missing pre-requisite to build WASM client #1753
  • Worked on the issue Import Cardano transactions with ChainReader #1705
  • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
  • Worked on the issue Optimize Cardano transaction prover performances with parallelization #1756
  • Worked on the issue Cardano signatures are not produced on testing-sanchonet #1750
  • Worked on the issue Lint Markdown/JavaScript files in repository #1754
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Performance & Tracing Update]]> + 2024-06-25-performance-and-tracing + + 2024-06-25T00:00:00.000Z + + High level summary
  • Benchmarking: Release benchmarks for Node 8.12.0; DRep benchmarks with 100k DReps.
  • Development: Merged a performance fix on 8.11; kicked off development of governance action workload.
  • Workbench: Adjusted automations to latest 8.12 Conway features and Plutus cost model; implementation of CIP-69 and CIP-117 for our tooling is in validation phase.
  • Tracing: Work on metrics naming ongoing. Factoring out RTView component is completed and has entered testing.
  • IOI Tech Meetup: Our team contributed two presentations at the meetup in Zurich; worked on community report of UTxO scaling benchmarks.

Low level overview

Benchmarking

We've run and analyzed a full set of release benchmarks for Node versions 8.12.0. In comparison with the latest mainnet release 8.9.3, we could not observe any regressions. In fact, 8.12.0 was able to deliver equal network +performance at a slightly reduced resource cost - both for CPU and memory.

Another benchmark of the Conway ledger with large amounts of DReps has been performed. This time, 100000 DReps were chosen - this amount aims to simulate a scenario where lots of self-delegation takes place. While a performance +impact is observable in this instance, we can still see that the number of DReps scales well overall, and poses no concern for network peformance.

Development

We have contributed and merged a performance fix on 8.11 which adresses a regressing metric in the forging loop. The regression was only observable under specific conditions. Benchmarks on 8.12 +have already confirmed the fix to be successful.

We've kicked off governance action workloads for benchmarking. This will be an entirely new workload type for Conway era, targeting performance measurements of its decentralized decision making process. The workload will feature +registering proposals, acting as multiple DReps to vote on active proposals, vote tallying and proposal enactment. We're very grateful for the Ledger team's helpful support so far in creating a workload design for benchmarking - one that evenly stresses +the network over extended periods of time.

Workbench

The workbench automations have been upgraded to handle Node 8.12 and the corresponding integrations of Cardano API and CLI.

Furthermore, we've updated to the latest PlutusV3 costmodel in our benchmarks - as well as implemented CIP-69 and CIP-117 for all our PlutusV3 benchmarking scripts, pending validation by the Plutus team.

Tracing

The work on aligning of metrics naming and semantics of new and legacy tracing is ongoing. Additionally, we're adding a handful of metrics to the new tracing system which currently exist in legacy tracing only.

Factoring out the RTView ("real-time view") component of cardano-tracer in the new tracing system has finished. This includes a considerable refactoring of cardano-tracer's codebase, so that we're currently running test on the new codebase. Isolating +RTView is due to its being in prototype stage for too long, and the design decisions taken. In the short term, this will make several package dependencies optional, which have become troublesome for CI, as well as making cardano-tracer more lightweight. +RTView remains as an opt-in.

IOI Tech Meetup

Our entire team traveled to Zurich, Switzerland to attend ZuriHac'24 and the IOI Tech Meetup. It was fantastic to meet everyone in person, and we all had an amazing and very productive time. A big Thank You to everyone involved in making that happen, and making it a success.

We contributed two presentations for the meetup: a thourough introduction of the new tracing system aimed at developers - as it's not tailored exclusively to cardano-node, but can be used in other (Haskell) services as well. And secondly, +an overview over the benchmarking framework based on Quantitative Timeliness Agreements which we're building - as well as a show-and-tell of our prototype, implementing part of said framework. We're grateful for the great interest and feedback from all +the participants.

Last not least, we worked on creating a community report of the UTxO scaling benchmarks performed during March and April - to be released soon.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-06-19-ledger + + 2024-06-19T00:00:00.000Z + + High level summary

Major milestone was reached this period. We've implemented +CIP-0069 that improves +PlutusV3 functionality by making spending datums optional and enforcing all scripts to +have exactly one argument. This feature allows for spending scripts to be usable for other +purposes, like minting for example.

Couple of important bugs have been fixed:

  • Script execution for certificates with the same plutus script did not execute correctly.
  • Prevent delegation to a non-existent pool.

With this feature complete and a few bug fixes we were also able to mark Conway era and +CIP-1694 as feature +complete and ready for release. Naturally, testing of Conway era will continue all the way +into the hard fork.

Low level summary

Conway

  • pull-4374 - CIP-0069
  • pull-4394 - Fix Certifying Redeemer issue
  • pull-4400 - Check that the pool being delegated to exists for ConwayDelegCert
  • pull-4409 - Update to plutus-ledger-api-1.30

Testing

  • pull-4384 - Re-enabled Full NewEpochstate test
  • pull-4397 - Add a lens to HasSubState
  • pull-4399 - New simple examples for maps
  • pull-4403 - constrained-generators: Add lookup_ for maps
  • pull-4414 - constrained-generators: Hotfix failing test
  • pull-4411 - constrained-generators: introduce a hook for naming variables

Infrastructure and releasing

  • pull-4424 - GHA: Downgrade the version of actions/upload-artifact
  • pull-4426 - Take care of all compiler warnings for GHC-9.8
  • pull-4407 - Change the default ghc version to 9.6.5
  • pull-4416 - Bump urllib3 from 1.26.18 to 1.26.19 in /doc
]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-06-19-mithril + + 2024-06-19T00:00:00.000Z + + High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They implemented a warmup strategy for the signer and aggregator to begin importing transactions as early as possible, thus minimizing the impact of network activation on certification. They also significantly improved the throughput of the prover route of the aggregator by addressing database access bottlenecks. Additionally, the team made progress on low-latency certification by completing the handling of chain rollbacks and nearly completing the retrieval of transactions using the chain sync mini-protocol and Pallas.

Finally, they made final modifications to the threat modeling explainer for the documentation website, which will be released shortly, and worked on a bug that occurs when parsing some blocks of the SanchoNet network.

Low level overview

  • Completed the issue Handle rollbacks in Cardano transactions #1724
  • Completed the issue Pooled resources should be reset when given back #1743
  • Completed the issue Lock signature of signed entity types during warm-up #1693
  • Completed the issue Warmup import Cardano transactions at node startup #1692
  • Completed the issue Build, test and package arm64 binaries in CI #1751
  • Worked on the issue Threat modeling and risk analysis #1350
  • Worked on the issue Import Cardano transactions with ChainReader #1705
  • Worked on the issue Import Cardano transactions by sequences of block ranges #1766
  • Worked on the issue Implement database connection pooling for Cardano transaction repository #1760
  • Worked on the issue Cardano signatures are not produced on testing-sanchonet #1750
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-06-12-mithril + + 2024-06-12T00:00:00.000Z + + High level overview

This week, the Mithril team released the new distribution 2423.0, which includes the removal of the snaphot command of the client CLI, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks and improved the throughput of the prover route of the aggregator by fixing some bottlenecks in the Merkle proof computation. Additionally, the team made progress on low-latency certification by working on the retrieval of the transactions with the chain sync mini-protocol and Pallas, as well as the handling of rollbacks of the chain.

Finally, they kept working on the threat modeling explainer for the documentation website and provided support for multiple TLS implementations in the client library thanks to a community contribution.

Low level overview

  • Released the new distribution 2423.0
  • Publication of a dev blog post about the removed Mithril client CLI 'snapshot' command
  • Completed the issue Client verification fails with an already stored but non certified yet transaction #1719
  • Completed the issue Computation of Merkle proof has bottleneck with multiple transactions #1730
  • Completed the issue Automatic rollback on SQL transactions #1741
  • Completed the issue Allow the underlying TLS implementation to be selectable when using a library. #1737
  • Completed the issue Release 2423 distribution #1695
  • Completed the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
  • Worked on the issue Handle rollbacks in Cardano transactions #1724
  • Worked on the issue Pooled resources should be reset when given back #1743
  • Worked on the issue Threat modeling and risk analysis #1350
  • Worked on the issue Import Cardano transactions with ChainReader #1705
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-06-10-hydra + + 2024-06-10T00:00:00.000Z + + High-level Summary

This sprint, the Hydra team updated the node to be compatible with cardano-node 8.11-pre. We continued work on increment decommits, investigating adversarial attacks on the smart contract and preparing it to be merged. We also discussed options for the incremental commit work, including designs for a hydra-ledger.

Next sprint we aim to merge incremental decommits and make further progress on the incremental commit design.

What did the team achieve this sprint?

  • Update to cardano-node 8.11-pre #1439
  • Allow committing internal wallet utxos #1442
  • Rewrite introduction section and fknown issues section. #1451
  • Make specification editing in markdown possible #1187
  • Fix ignored hydra-plutus tests #1458
  • Re-open internal head with blueprint commits.

What are the goals of the next sprint?

  • Incremental decommit #1057
  • Make progress on the design for incremental commit #199
  • Test combinations of decrement/close/fanout #1390
]]>
+ + Daniel Firth + https://github.com/locallycompact + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-06-05-ledger + + 2024-06-05T00:00:00.000Z + + High level summary

This time around we continued on testing the Conway era and improving our conformance +tests. Thanks to this extensive testing we found and fixed a few more bugs in the Conway +implementation. We fixed bugs related to DRep expiry and the choice of correct threshold for +the committee voting. One important feature that was implemented is ignoring the +minimun committee size during the bootstrap phase, in order to avoid a deadlock situation in +case that enough committeee members were to resign. We've also improved the correctness of +our CDDL specification and improved the safety by restricting some of the types of +protocol parameters.

Low level summary

Conway

  • pull-4350 - Add identity instance for Inject
  • pull-4361 - Fixed a bug in RATIFY
  • pull-4358 - DRep expiry update with number of dormant epochs
  • pull-4365 - Create pool stake distribution query for voting
  • pull-4376 - Ignore ppCommitteeMinSize during bootstrap
  • pull-4364 - DRep state query and related tests
  • pull-4357 - Specify numeric ranges explicitly in conway cddl files

Testing and formal spec

  • pull-4339 - constrained-generators: introduce tools for controlling test case distribution
  • pull-4348 - Conformance: GOVCERT
  • pull-4213 - Utxow Predicate failure tests
  • pull-4351 - Enable retrying flaky tests in nightly CI
  • pull-4345 - constrained-generators: Add explanation :: [String] -&gt; Pred fn -&gt; Pred fn
  • pull-4362 - Threshold translation in conformance testing
  • pull-4369 - constrained-generators: Add flip_ to avoid having to add new native functions
  • pull-4377 - constrained-generators: propagate information backwards in the solver
  • pull-4389 - Fixed issue #4340. Problem with futurePParams not adequate in Conway.
  • pull-4378 - Conformance: POOL
  • pull-4388 - Improved the translation of PParamUpdate in conformance
  • pull-4355 - Fix order of arguments to verifyVrf

Infrastructure and releasing

  • pull-4352 - Remove dependency on deprecated ansi-wl-print package
  • pull-4344 - constrained-generators: identify and fix an issue with big bodies to ifElse
  • pull-4338 - Add conformance testing for ENACT
  • pull-4354 - Added conformance test for DELEG
  • pull-4367 - Fixed 8.10 not building
  • pull-4368 - Ensure GitHub CI fails when tests are skipped due to a build failure
  • pull-4373 - Add -rtsopts to all test suites
]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-06-05-mithril + + 2024-06-05T00:00:00.000Z + + High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They improved the throughput of the prover route of the aggregator by using resource pooling and made progress on low-latency certification by transitioning to a chain point-based beacon, which allows for faster transaction signing. They also kept investigating prover performance bottlenecks, worked on fixing a bug that caused unsigned transactions to appear as signed, and continued implementing the import of transactions with the ChainSync mini-protocol and Pallas.

Additionally, the team started preparing the threat modeling explainer for the documentation website and kept investigating some Cardano node error messages that could be caused by how the Pallas client handles connections to mini-protocols.

Low level overview

  • Completed the issue Implement Resource Pooling for Block Range Merkle maps #1698
  • Completed the issue Sign Cardano transactions with ChainPoint based beacon #1697
  • Completed the issue Cardano transactions prover performances drop with more than 5 transactions #1722
  • Worked on the issue Import Cardano transactions with ChainReader #1705
  • Worked on the issue Client verification fails with an already stored but non certified yet transaction #1719
  • Worked on the issue Computation of Merkle proof has bottleneck with multiple transactions #1730
  • Worked on the issue Threat modeling and risk analysis #1350
  • Worked on the issue Release 2423 distribution #1695
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2024-06-05-node-cli-api + + 2024-06-05T00:00:00.000Z + + 2024-05-13 - 2024-06-05

High level summary

CARDANO NODE

  • In order to avoid an accidental hardfork, when "ConwayGenesisFile" is not set in the node configuration file, by default the node can only understand protocol version 8 (Babbage era).

CARDANO CLI

  • query protocol-parameters now shows Conway era protocol parameters when in Conway.
  • transaction view now shows proposales and votes inside a transaction body.
  • Release of cardano-cli 8.23.1.0
  • We now publish pre-compiled binaries of each release together with the corresponding SHA256Sum.

CARDANO-API

  • Release of 8.46.0.0

Details

cardano-cli

cardano-api

  • Release cardano-api-8.46.0.0
    • Updated cardano-ledger, ouroboros-consensus and plutus packages.
    • Added FailT dependency.
    • Updated conwayGenesisDefaults and alonzoGenesisDefaults.
    • Changed CostModel to use Int64 instead of Integer.
    • Fixed ProtocolParameters golden test to account for the Integer -> Int64 change in the CostModel. (breaking, test) PR 523

cardano-node

cardano-testnet

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Consensus Team Update]]> + 2024-05-29-consensus + + 2024-05-29T00:00:00.000Z + + High level summary
  • Updated UTXO-HD to use simple diffs which drastically improved the mempool benchmarks (#1114).
  • Helped quickcheck-state-machine to release version 0.10.0 (#48). We rely on this library for our high-assurance property-tests.
  • Rebased UTXO-HD on top of node 8.11 (#1121). A replay with the in-memory backend took 5:05 hours up to slot 124M.
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-05-29-mithril + + 2024-05-29T00:00:00.000Z + + High level overview

This week, the Mithril team released a new Mithril protocol insights dashboard and a new explorer page displaying active and deregistered SPOs for the latest Cardano epochs. They also continued implementing the certification of Cardano transactions in Mithril networks by improving the throughput of the prover route of the aggregator and making progress on low-latency certification by completing the implementation of a chain block reader from the Cardano mini-protocol with Pallas.

Additionally, the team started working on a new beacon for signing Cardano transactions based on the chain point. Finally, they refactored the persistence library, enhanced their testing tools for Cardano transactions, and fixed a block parsing problem that prevented the signature of Cardano transactions in the test networks.

Low level overview

  • Released the Mithril Protocol Insights Dashboard
  • Completed the issue Prototype optimizations for increasing Cardano transactions proof generation throughput #1687
  • Completed the issue Retrieve Cardano blocks with chainsync in pallas PoC #1590
  • Completed the issue Explorer display in/out SPOs in registered signers page #1686
  • Completed the issue Create a test Cardano transactions builder #1667
  • Completed the issue Cardano signatures are not produced on testing-sanchonet and testing-mainnet #1681
  • Completed the issue Remove snapshot command in client CLI #1690
  • Completed the issue Block Streamer returns ChainScannedBlocks #1704
  • Completed the issue Remove connections coupling with providers in database #1711
  • Worked on the issue Implement Resource Pooling for Block Range Merkle maps #1698
  • Worked on the issue Sign Cardano transactions with ChainPoint based beacon #1697
  • Worked on the issue Import Cardano transactions with ChainReader #1705
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-05-27-hydra + + 2024-05-27T00:00:00.000Z + + High-level Summary

This sprint, the Hydra team released version 0.17.0 of the hydra-node, containing the new blueprint commit transaction mechanism and upgrades to the networking protocol incorporated over the last several weeks. We also completed several documentation upgrades.

Next sprint, we aim to focus the outstanding increment decommit work, completing the model tests for it as well as investigating adversarial attacks on the smart contract.

What did the team achieve this sprint?

  • Combine blueprint and commit tx metadata #1409
  • Diagnose currently stuck head. #1415
  • Document offline mode #1414
  • Document writing an Event Sink and Source #1413
  • Streaming Plugins #1325
  • Ensure -Werror is running in CI. #1426
  • Release hydra-node-0.17.0

What are the goal of the next sprint?

  • Update to cardano-node 8.11-pre #1439
  • Incremental decommit #1057
  • Make progress on the design for incremental commit #199
  • Reopen a head to test blueprint commits.
  • Test combinations of decrement/close/fanout #1390
]]>
+ + Daniel Firth + https://github.com/locallycompact + + +
+ + <![CDATA[Performance & Tracing Update]]> + 2024-05-24-performance-and-tracing + + 2024-05-24T00:00:00.000Z + + High level summary
  • Benchmarking: Node versions 8.9.3 and 8.11.0; new PlutusV3 plus addtional DRep benchmarks; re-evaluation of network latency.
  • Development: BLST workload for PlutusV3 was implemented; improved error/shutdown behaviour for tx-generator is in testing phase.
  • Workbench: UTxO-HD tracer configs harmonized. New plutusv3 profiles supporting experimental budgets. Work on Haskell profile definition is in validation phase.
  • Tracing: New metrics and handle registry feature merged to master. Work on metrics naming ongoing. Factoring out RTView component has begun.

Low level overview

Benchmarking

Runs and analyses of full sets of release benchmarks have been performed for Node versions 8.9.3 and 8.11.0.

For comparison of how the Conway ledger performs when injecting large amounts of DReps and delegations versus one with zero DReps we've run additional configurations with existing workloads from release benchmarking. So far we've found +that the number of DReps in ledger scales well and does not lead to notable performance penalties.

Additionally, we've successfully run the baseline for the upcoming PlutusV3 benchmarks on our Nomad cluster. Those will, given the new V3 cost model, serve to determine headroom, or constraint, regarding resource usage and network metrics when +operating under various execution budgets.

Last not least, with much appreciated support and feedback from the network team, we performed a re-evaluation of the network the latency matrix for our benchmarking cluster. The cluster stretches over three regions globally. Due to unknown changes in the underlying +hardware infrastructure, a slight delay between Europe and Asia/Pacific regions could be measured. We needed to adjust some existing baselines accordingly - otherwise, this delay could be falsely attributed to a software regression.

Development

We have implemented a benchmarking workload using PlutusV3's new BLST internals. As those do little memory allocation, but require more CPU steps, this workload will allow us to focus on that particular aspect of block and transaction budgets.

The tx-generator service will now label each submission thread with its submission target. Additionally, it has been equipped with custom signal handlers. This will improve both how gracefully shutdowns can be performed, and how +precise error reporting is done when losing connection to a submission target. Last not least, the service now supports a configurable KeepAlive timeout for the NodeToNode mini-protocol - accounting for very long major GC pauses on +submission targets under very specific benchmarking workloads. Those features have entered testing phase.

Workbench

Thanks to feedback from the consensus team, we've harmonized tracing configurations for our benchmarks between regular and UTxO-HD node. As the latter is more verbose by default, this is a confounding factor for our metrics: We're analysing north +of 90 traces per second per cluster node, so all node flavours are required to be equally verbose.

The benchmarks based on the BLST workload now additionally support scaling budget components up or down at will. This means we can run a given cost model against custom execution budgets, controlling the point where the workload will exhaust it. This enables comparison +of performance impact of potential changes to those budgets.

Porting our performance workbench's profile definitions to Haskell has been nearly completed, and an adequate test suite been implemented. This new component has now entered validation phase to make sure it correctly replicates all existing profile content.

Tracing

Two new metrics for cardano-node have landed in master - both for new and legacy tracing systems. They provide detailed build info, and indicate wether the node is a block producer or not.

We're now working on closing the gap in the metric naming schema between new and legacy tracing. The aim is to allow for a seamless interchange, without additional configuration required, so that all existing monitoring services can rely on identical metric +names with identical semantics.

Furthermore, work has begun to factor out the RTView ("real-time view") component of cardano-tracer in the new tracing system. Unfortunately, the component has remained in prototype stage for over a year, and has revealed some design shortcomings. It's aim +is to provide an interactive, real-time dashboard based on metrics from all nodes connected to cardano-tracer. The current design has all front-end side code baked into the backend service, requiring to rebuild the entire service in Haskell even for simple changes in the +dashboard. We decided to isolate the component in the current code base, which still allows for optionally enabling it for a build. The long term goal however is to convert it into a downstream service: It will ingest metrics by reforwarding, or querying a REST API, and will provide +a clear separation of frontend facing code. Thus we, and anybody, can use their favourite web technology for visualization of metrics.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[SRE Team Update]]> + 2024-05-24-sre + + 2024-05-24T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Sanchonet was respun for cardano-node 8.11.0-pre

  • Private chain was respun twice for pre-sancho respin testing and short epoch +testing with cardano-node 8.11.0-pre

  • Shelley-qa, two-thirds of preview and one-third of preprod networks were +deployed to cardano-node 8.11.0-pre

  • Sanchonet, private chain and shelley-qa networks had dbsync sancho-4-3-0 +deployed

  • A dbsync show_current_forging prepared statement was added to the +cardano-parts profile-cardano-postgres nixosModule to aid with debugging +chain quality issues

  • Three documents were added to cardano-playground to better explain some +operations procedures: KES rotation, chain quality debugging and new network +creation. Found at: +docs/explain

  • A new mithril dashboard template is available in cardano-parts

Lower level summary

Capkgs:

  • Avoid git API rate limit errors on update github action via netrc usage and +corresponding secret: +capkgs-commit

Cardano-parts

  • Sets cardano-node-ng to 8.11.0-pre and cardano-db-sync-ng to sancho-4-3-0. +Adds a dbsync prepared statement, mithril dashboard template, updates the +node application dashboard template, improves justfile recipe templates and +tunes some systemd dependencies. Iohk-nix-ng was updated for sanchonet and +private chain respins. More detail is available in the PR description: +cardano-parts-pull-41

Cardano-mainnet

  • Rotates KES, pins iogp4 as -ng, adds a mithril dashboard, updates the node +application dashboard, improves justfile recipes and tunes systemd node and +mithril services to avoid some edge case errors. See the PR description for +more details: +cardano-mainnet-pull-15

Cardano-ogmios

Cardano-playground

  • Respins sancho and private chains and deploys cardano-node 8.11.0-pre and +cardano-db-sync sancho-4-3-0 to appropriate envs and machines. Adds a mithril +dashboard template, updates the node application dashboard template, improves +justfile recipe templates. Adds three new explainer readme documents. See the +PR description for more details: +cardano-playground-pull-24
]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-05-22-ledger + + 2024-05-22T00:00:00.000Z + + High level summary

Most of the focus was on the conformance testing this time around. We had completed +conformance tests for CERT and RATIFY rules and progressed on some of the others. This +also resulted in some improvements to the constraint-generators framework. Besides that +we've also fixed Stake Pool Operator stake distribution calculation that is used for +voting by including proposal deposits that are currently locked in the system. One of the +Ledger team members was also performing duties of a release engineer, so we also +facilitated the latest cardano-node-8.11 release.

Low level summary

Features and fixes

  • pull-4324 - Proposal deposits in SPO voting stake
  • pull-4316 - Complete EraScript hierarchy with missing classes
  • pull-4287 - Fix various minor issues in the Shelley & Babbage specs

Testing

  • pull-4320 - CERT conformance
  • pull-4334 - RATIFY conformance
  • pull-4337 - Fix RATIFY conformance
  • pull-4325 - constrained-generators: soundness tests and bugfixes
  • pull-4323 - constrained-generators: clean up interface
  • pull-4336 - constrained-generators: Introduce fromList_ :: (HasSpec fn a, Ord a) =&gt; Term fn [a] -&gt; Term fn (Set a)

Infrastructure and releasing

  • pull-4333 - Fix babbage-test and conway-test versions
  • pull-4332 - Update CHANGELOGs
  • pull-4343 - Bump requests from 2.31.0 to 2.32.0 in /doc
]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-05-22-mithril + + 2024-05-22T00:00:00.000Z + + High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling proof generation for mainnet by prototyping optimizations and benchmarking performance improvements. They also made progress on low-latency certification by completing the retrieval of the chain tip and importing transactions from the Cardano mini-protocol with Pallas. Additionally, they worked on a new explorer page to display in/out SPOs for the latest Cardano epochs.

Finally, the team upgraded the testing-sanchonet network following the SanchoNet network respin, created a module for building test transactions, and began removing the deprecated snapshot command from the client CLI.

Low level overview

  • Completed the issue Aggregator stress test crashes during signer registration #1676
  • Completed the issue Prune Cardano transactions stored on signer #1645
  • Completed the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
  • Completed the issue Prepare testing-sanchonet for respin with Cardano 8.11-pre #1694
  • Completed the issue MacOS Rust tests are flaky in CI #1556
  • Worked on the issue Prototype optimizations for increasing Cardano transactions proof generation throughput #1687
  • Worked on the issue Retrieve Cardano blocks with chainsync in pallas PoC #1590
  • Worked on the issue Explorer display in/out SPOs in registered signers page #1686
  • Worked on the issue Create a test Cardano transactions builder #1667
  • Worked on the issue Cardano signatures are not produced on testing-sanchonet and testing-mainnet #1681
  • Worked on the issue Remove snapshot command in client CLI #1690
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Consensus Team Update]]> + 2024-05-15-consensus + + 2024-05-15T00:00:00.000Z + + High level summary
  • Released Consensus for Node 8.11 (#1101)
  • Improved the Praos chain order:
    • Restricted VRF tiebreaker based on slot distance (#1047)
    • Small tweak to the issue number tiebreaker (#1086)
  • Wrote overview on the statistics on the leader schedule (#1096)
  • Integrated robustness refinement for concluding that a node is caught up in the context of bootstrap peers (#1031)
  • The P&T team managed to complete the UTXO-HD benchmarks using the LMDB backend and the results are promising.
  • We're working on setting up the Consensus Technical Working Group within Intersect, so if you'd like to participate please reach out to Damian Nadales.
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-05-15-mithril + + 2024-05-15T00:00:00.000Z + + High level overview

This week, the Mithril team released the new distribution 2418.1, which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes aimed at preventing memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet. Specifically, they completed the implementation of compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges and initiated testing and assessing performance on mainnet in a test Mithril network. Additionally, they started working on minimizing the extra disk space requirements for the signer on the SPO infrastructure.

Finally, the team implemented some optimizations for the aggregator, fixed some bugs on the client, and introduced new documentation for compiling the Mithril relay from source.

Low level overview

  • Released the new distribution 2418.1
  • Completed the issue Use Block Range Merkle roots to sign Cardano transactions #1634
  • Completed the issue Use Block Range Merkle roots to prove Cardano transactions #1635
  • Completed the issue Deploy Cardano transactions to testing-mainnet #1647
  • Completed the issue Consistent sorting of transactions from GetCardanoTransactionProvider in signer and aggregator #1657
  • Completed the issue Use SQLite transactions when inserting Cardano Transactions and Block Range Roots #1656
  • Completed the issue Implement Ord on SignedEntityTypeDiscriminants #1648
  • Completed the issue Merkle roots don't have fixed size in the block_range_root table #1668
  • Completed the issue Refactor Cardano transactions database layer in persistence for signer and aggregator #1677
  • Completed the issue Some timing tests fail on ARM #1466
  • Completed the issue Add Mithril networks configurations in networks.json #1638
  • Completed the issue Add section for manual setup of squid in SPO guide #1610
  • Worked on the issue Aggregator stress test crashes during signer registration #1676
  • Worked on the issue Prune Cardano transactions stored on signer #1645
  • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
  • Worked on the issue Retrieves Cardano blocks with chainsync in pallas PoC #1590
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2024-05-13-node-cli-api + + 2024-05-13T00:00:00.000Z + + 2024-04-27 - 2024-05-13

High level summary

Enhancements to the CLI encompass several noteworthy additions. These include the introduction of a new hardfork initiation command, rendering --prev-governance-action-tx-id optional for create-no-confidence actions, addressing scenarios where the committee is defined in the Conway Genesis file, and refining help texts. Additionally, there have been updates to the description fields in governance action files.

Adjust maximum understood protocol version from 9 to 10 when the experimental hardforks flag is enabled. This allows us to bypass Conway's bootstrap phase in testing

Continued work in testing implementation of CIP1694 with cardano-testnet.

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-05-10-hydra + + 2024-05-10T00:00:00.000Z + + High-level summary

This week, the Hydra team upgraded the hydra-node networking layer to use a versioned handshake protocol, as well as extensive documentation restructuring and bug fixes to the hydra-tui.

What did the team achieve this week

  • Use versioned hadshake when connecting hydra-nodes.
  • Restructure documentation.
  • Fixed the transaction envelope type parsing in order to be compatible with cardano-cli and update our docs.
  • Show the contestations in the hydra-tui
  • Experiment with removing persistence in the reliability layer and adding custom command to Reset the head state to the last confirmed snapshot

What are the goals of next week

  • Provide aarch64-linux docker images for hydra-node.
  • Release hydra-node 0.17.0
  • Finish new model spec changes related to decommit testing
]]>
+ + Daniel Firth + https://github.com/locallycompact + + +
+ + <![CDATA[SRE Team Update]]> + 2024-05-10-sre + + 2024-05-10T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • A preview of the new cardano tracing system is available by using the +profile-cardano-node-new-tracing new nixosModule from cardano-parts and is +complemented with new tracing system dashboards and alerts

  • Custom cardano metrics can be pushed to a statsd server and then scraped to a +monitoring solution using the profile-cardano-custom-metrics new +nixosModule from cardano-parts

  • A new cardano-parts job for spinning up clusters using a recent cardano-cli +command, create-testnet-data, was implemented: .#job-gen-custom-node-config-data

Lower level summary

Cardano-faucet

Cardano-parts

  • Sets cardano-faucet-ng to 8.10, and mithril[-ng] to 2418-1. A preview +nixosModule for cardano-node's new tracing system has been added as well as a +cardano custom-metrics module. Dashboards have been added for the new tracing +system. Cardano-node alerts have been refactored into several rulesets which +include some new alerts as well as new tracing system alerts. A job for +spinning a cardano cluster up using a new underlying cardano-cli mechanism, +create-testnet-data, was added. More detail is available in the PR description: +cardano-parts-pull-40

Cardano-mainnet

  • Sets mithril to 2418-1. Cardano-node alerts have been refactored into +several rulesets which include some new alerts as well as new tracing system +alerts. See the PR description for more details: +cardano-mainnet-pull-14

Cardano-perf

Cardano-playground

  • Sets cardano-faucet-ng to 8.10 which fixes a sanchonet faucet instability, and +mithril[-ng] to 2418-1. Adds a new cardano-node tracing system preview to some +machines with corresponding dashboards. Cardano-node alerts have been +refactored into several rulesets which include some new alerts as well as new +tracing system alerts. A job for spinning a cardano cluster up using a new +underlying cardano-cli mechanism, create-testnet-data, was added and integrated +with the Justfile start-demo recipe. Includes other misc tuning and +improvements. See the PR description for more details: +cardano-playground-pull-23
]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-05-08-ledger + + 2024-05-08T00:00:00.000Z + + High level summary

Some of the most important and final Conway features were implemented since the last report:

  • Bootstrap phase is fully implemented
  • HardForkInitiaztion governance action will now correctly take us into the next era +that will follow the Conway era.
  • DRep stake distribution now also includes the amount in the reward account and deposits +that were left for the governance proposals.
  • CostModels updates for plutus scripts made more flexible, which will allow us adding +new primitives for all plutus versions starting with the Conway era.

As always, besides new features, we also wrote a lot of testing functionality. We now have +our first and fully functional conformance test for a GOV rule, with a few more in the +works. Many improvements and bugfixes to constraint based generating functionality. Last, +but not least, we did a major and long awaited improvement to our CI setup that makes it +much easier to spot failing tests and deal with potential flakiness.

Low level summary

Conway

  • pull-4275 - Restrict gov actions during bootstrap
  • pull-4253 - Hardfork Initiation into a new era
  • pull-4273 - DRepDistr: Iterate over the DRep delegations in UMap
  • pull-4309 - Add proposal deposits to DRep active voting stake.
  • pull-4284 - Flexible costmodel params
  • pull-4328 - Disable drep thresholds in bootstrap

Testing

  • pull-4295 - Improve generator in ImpTestsState
  • pull-4292 - constrained-generators: add genHint for maps
  • pull-4298 - constrained-generators: utility function for asserting over a reified value
  • pull-4300 - constrained-generators: hotfix of latest derp...
  • pull-4297 - constrained-generators: Fix ifElse dependencies
  • pull-4301 - constrained-generators: Add monitoring capability to get a handle on test case distribution
  • pull-4315 - constrained-generators: Improve error messages and make the tree generator reasonably sized
  • pull-4317 - constrained-generators: Fix bug in reifies
  • pull-4299 - Fix strange CI failure.
  • pull-4285 - Start Conway Imp tests with an initial committee and constitution
  • pull-4303 - Fix test caused by erroneous merge
  • pull-4310 - Fix OMap.assocList
  • pull-4268 - Enable conformance tests for GOV rule

Infrastructure and releasing

  • pull-4276 - Use a separate job for each test suite in GitHub CI
  • pull-4304 - Ensure the CI complete step fails when tests fail
  • pull-4308 - Add a CI status check to prevent merging PRs that contain merges
  • pull-4305 - Use the correct iohk action for installing Haskell in GitHub CI
  • pull-4322 - Bump jinja2 from 3.1.3 to 3.1.4 in /doc
]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Performance & Tracing Update]]> + 2024-05-07-performance-and-tracing + + 2024-05-07T00:00:00.000Z + + High level summary
  • Benchmarking: We've performed and analysed benchmarks in the Conway era, with DReps injected.
  • Development: Tracing DRep data has been implemented; improved error reporting in tx-generator and analysis quick queries are ongoing work.
  • Workbench: We now fully supports the new CLI create-testnet-data command and DRep injection into Conway genesis. Haskell profile definition work is ongoing.
  • Tracing: Various additions to Node metrics are being worked on, such as build info and block producer role. Metrics naming will be further harmonized.
  • UTxO Growth: We've finalized analysis and reports of all benchmarks targeting UTxO scaling scenarios.
  • UTxO-HD / LMDB: We've performed multiple runs benchmarking the LMDB (on-disk) backend of UTxO-HD.

Low level overview

Benchmarking

We've run and analyzed a full set of benchmarks comparing the Conway ledger against the Babbage one, on Node 8.10.1-pre. For Conway, our additional goal was to measure a vanilla ledger state against one with a large amount of DReps - and delegations to those DReps - present. The +benchmarks used our existing value and Plutus workloads to remain comparable to each other.

Development

Additional ledger queries for the tracing system have been implemented and merged to master. Those capture the amount of, and the number +of existing delegations to, DReps as trace output - and thus enable creating a metric on top of it, which can then be monitored.

The (in our case) non-deterministic nature of shutting down different cluster setups - both local and cloud-based - carries the possibility +that our transaction generation service occasionally misclassifies a regular shutdown as an error. Furthermore, in the case of network malfunctions, the service's errors are too unspecific. By implementing thread labels for submission threads, corresponding to each +submission target, and by adding custom smart signal handlers, we'll improve the generator's error reporting significantly.

The initial tests for quick queries are being developed further. We're moving towards a principled, and generalized, syntax that supports both +prepared, parametrizable queries from the application code, as well as ad-hoc queries stated e.g. on the command line.

Workbench

The performance workbench now fully supports the new cardano-cli command create-test-data. We use it to inject both stake +delegated to stake pools into genesis, and - recently added - stake delegated to DReps as well. It has been proven very useful +and versatile so far, and will eventually replace the current create-staked command.

Work on porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is still ongoing; currently, we're integrating all new profile families that came out of the UTxO growth scenarios.

Tracing

New metrics are being implemented for the tracing system. They will also be part of Prometheus output and as such accessible to +monitoring services. There'll be cardano-node's detailed build info, as well as a node's block producer status, meaning the presence of forger credentials. Those new metrics are being backported to the legacy tracing system, too.

Furthermore, we've determined the need to revisit metrics naming. There's still a divergence between naming in the legacy +and the new system. While this could be mitigated by passing in extra config options, we think that a transition to the new system +should not impose any unnecessary effort for node operators. A design to fully harmonize the existing naming schemata is currently being +set up.

UTxO Growth

The UTxO Growth benchmarking series has been finalized. We've finished analyses and reports for all scenarios that +were tested and explored.

The overarching questions were, given a network of 32GB host systems, how large can the UTxO set grow in general, +how large can it grow before the nodes have to operate close to the RAM limit over extended periods of time, and how does scaling the UTxO set size affect network metrics, such as block diffusion.

A dedicated "UTxO Scaling Squad" was set up, who was driving the entire process, and we enjoyed a very focused and productive collaboration with them.

UTxO-HD / LMDB

Last not least, we were able to benchmark UTxO-HD's on-disk backend on a network of block producing nodes, on a recent 8.9.1 version +of cardano-node. The setup allowed of using a direct access SSD device for performance critical disk I/O, whereas the bulk of ChainDB and ledger snapshots remained on a standard AWS EBS volume.

The benchmarks comprised both optimistic and pessimistic RAM assumptions for the host OS to further optimize I/O via page cache, as well as medium and large UTxO set sizes - the latter almost tripling current mainnet's size. The results were promising; the LMDB backend has proven to be able to accomodate large UTxO sets using significantly less RAM than the default all-in-memory node - and with a more than reasonable trade-off performance-wise. Furthermore, running with pessimistic assumptions, the performance impact on LMDB was very moderate only.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Network Team Update]]> + 2024-05-06-network + + 2024-05-06T00:00:00.000Z + + High-level overview of sprint 60Edited on 8th of May: new EGK counters will be included in `cardano-node-8.9.3`, added links to `cardano-node-8.9.3` PR and `ouroboros-network-0.15` release.

Peer-Sharing Improvements

We continued working on improving peer sharing. As part of this work light +peer sharing (e.g. including inbound peers to the known set of outbound +governor), was restructured. Now, sending more peers than what was requested by +the peer-sharing client is a protocol error, and the connection will be terminated; +This hasn't been a resource attack vector since we always limited the number of +peers taken by the outbound-governor and the number of peers has always been +limited by the size of the mux ingress queue reserved for peer-sharing +mini-protocol. These changes will be released in cardano-node-8.9.3. See +ouroboros-network#4868

We also merged the work on outbound governor counters, which initially started +as just an extension for peer-sharing counters but turned into a larger +refactorisation. We announced it in the previous report. These changes will +be included in 8.9.3. See ouroboros-network#4845, +ouroboros-network#4861.

Light peer sharing (inbound peers) refactorisation allowed us to refactor the +inbound governor loop: we restructured it so that the internal state is kept +pure (and thus not shared with other threads), while the public part is +computed incrementally (with good amortised costs and thus leading to good performance) and exposed to other +components (e.g. the outbound-governor), see ouroboros-network#4871 (which +is built on top of ouroboros-network#4868).

The PR [cardano-nod#5831] integrates ouroboros-network-0.15 with +cardano-node-8.9.x branch. All included PRs / issues in +ouroboros-network-0.15 are listed here.

Genesis

We implemented the API needed by the consensus layer for Genesis; see +ouroboros-network#4815, ouroboros-network#4846.

We continued working on outbound governor changes to support Genesis:

Bootstrap Peers

Karl Knutsson ([CF]) found and fixed some problems related to big-ledger and +public root peers. Here's an excerpt from the changelog file:

  • updated the big-ledger retry state in case of an exception;
  • reset public root retry state when transitioning between LedgerStateJudgements;
  • reduced public root retry timer;
  • don't classify a config file with public-root/bootstrap-peers IP addresses only +as a DNS error. +See ouroboros-network#4867.

Churn

We merged a refactorisation which synchronises churn with the outbound +governor, see ouroboros-network#4617.

Minor Improvements

A few other minor improvements were merged:

Testing

We added quickcheck-monoids package and also submitted an upstream patch to +QuickCheck to include a version of the standard All / Any monoids, which +are helpful when writing more complex properties. We will use +quickcheck-monoids until the upstream PR will be released. It will be +available from CHaP. See quickcheck#397.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-05-03-hydra + + 2024-05-03T00:00:00.000Z + + High-level summary

This week, the Hydra team has been working on refactoring and detecting network protocol version mismatches. They have also merged the /commit endpoint changes including a follow-up fix about fee calculation. Besides this, they applied minor workflow fixes by adding docker images to nix checks and disabling mithril integration testing on preview (until mithril 2418 is released).

What did the team achieve this week

  • Refactor connectivity and detect network protocol version mismatches #1381
  • Merged and completed #1350, including a follow-up fix about fee calculation
  • Add docker images to nix checks
  • Disable mithril-client testing on Preview

What are the goals of next week

  • Restructure documentation including a how to about streaming plugins #1325
  • Add arm64 docker images as requested in #1404
  • Release 0.17.0
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Consensus Team Update]]> + 2024-05-01-consensus + + 2024-05-01T00:00:00.000Z + + High level summary
  • Reworked the argument for the different databases used in Consensus, in preparation for UTxO-HD (#1059).
  • Helped review the first Peras Innovation draft report.
  • Continued working on VRF restriction based on slot distance. The corresponding PR (#1047) went through its first round of reviews.
  • Provided support to the Networking team to review their work on querying big ledger peers (#1067).
  • Continued working on open-sourcing fs-api and fs-sim.
  • Performed other minor refactorings in the codebase (#1073 and #1070).
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-04-30-mithril + + 2024-04-30T00:00:00.000Z + + High level overview

This week, the Mithril team prepared a new pre-release distribution 2418.1-pre, which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes to prevent memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet by leveraging the compression of the transaction Merkle tree using sub-Merkle trees based on transaction block ranges during signature and proving. Additionally, they implemented a stream mechanism for importing transactions into the signer and aggregator stores.

Finally, the team started implementing a global Mithril networks configuration file and continued investigating some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.

Low level overview

  • Created a pre-release for the new distribution 2418.1-pre
  • Completed the issue Store Block Range Merkle roots in signer and aggregator databases #1633
  • Completed the issue Stream import of Cardano transactions #1646
  • Completed the issue Memory leak in Cardano transactions signature/proof #1629
  • Completed the issue Handle unparsed blocks in Cardano transactions parser #1567
  • Worked on the issue Use Block Range Merkle roots to sign Cardano transactions #1634
  • Worked on the issue Use Block Range Merkle roots to prove Cardano transactions #1635
  • Worked on the issue Use SQLite transactions when inserting Cardano Transactions and Block Range Roots #1656
  • Worked on the issue Add Mithril networks configurations in networks.json #1638
  • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
  • Worked on the issue Add section for manual setup of squid in SPO guide #1610
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2024-04-27-node-cli-api + + 2024-04-26T00:00:00.000Z + + 2024-04-16 - 2024-04-26

High level summary

8.10.1-pre was released to SanchoNet.

The team continues focused on implementing tests for the Conway era on the cardano-node repository. This sprint the team made various improvements to +CI pipelines on cardano-cli.

  • Cardano-cli: implemented build-estimate to facilitate automatic transaction balancing without access to a live node; and added minFeeRefScriptCostPerByte as an option to create-protocol-parameters-update command.

cardano-node

cardano-cli

cardano-api

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[SRE Team Update]]> + 2024-04-26-sre + + 2024-04-26T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-node 8.9.2 is now deployed to mainnet, preprod, preview and +shelley-qa environments.

  • Cardano-node 8.10.1-pre is now deployed to sanchonet and also to one-third of +IOGs preprod environment nodes and two-thirds of IOGs preview environment +nodes.

  • Private chain for Voltaire team was paused with plans for a future respin.

  • The network team's ouroboros-network-ops machine cluster was re-written using +the cardano-parts stack to upgrade from the nixops/terraform/niv stack it was +previously using.

Lower level summary

Cardano-parts

  • Sets cardano-node to 8.9.2, dbsync-ng to sancho-4.2.0; mithril to 2412.0, +iohk-nix to include new peerSharing defaults and introduce a new block +producer config. Adds a new truncate-chain recipe and improves mithril +related services. More detail is available in the PR description: +cardano-parts-pull-38

  • Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2; mithril pre (-ng) +to unstable, iohk-nix and iohk-nix-ng pin includes new Cardano Foundation +bootstrap relays. Adds new aws machine management and other recipes, metadata +job support for pool creation, misc fixes and improvements. More detail is +available in the PR description: +cardano-parts-pull-39

Cardano-mainnet

  • Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new +peerSharing defaults and colmena.nix cluster refactor for peerSharing +adjustments and implements all updates in cardano-parts PR#38. See the PR +description for more details: +cardano-mainnet-pull-12

  • Sets dbsync to 13.2.0.2, iohk-nix and iohk-nix-ng to include new CF relays, +adds new aws machine management recipes and implements all updates in +cardano-parts PR#39. See the PR description for more details: +cardano-mainnet-pull-13

Cardano-node

  • Default peerSharing true and add block producer config to release binaries. +See the PR description for more details: +cardano-node-pull-5789

Cardano-ops

Cardano-perf

  • Adds a caddy webserver for run reviews and tunes the NVME FS mounts for performance: +cardano-perf-compare

Cardano-playground

  • Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new +peerSharing defaults, refactors mdbook out of docs dir, adds example chain +manipulation doc and implements all updates in cardano-parts PR#38. See the +PR description for more details: +cardano-playground-pull-21

  • Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2, mithril pre (-ng) +to unstable, iohk-nix and iohk-nix-ng to include new CF relays, adds a public +TLS dbsync user connection option, stops private chain cluster and implements +all updates in cardano-parts PR#39. See the PR description for more details: +cardano-playground-pull-22

Iohk-nix

  • Creates block producer configurations to accomodate PeerSharing set true by default: +iohk-nix-pull-575

  • Adds Cardano Foundation mainnet bootstrap peers: +iohk-nix-pull-578

Ouroboros-network-ops

Sanchonet

Sanchonet-demo

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-04-24-ledger + + 2024-04-24T00:00:00.000Z + + High level summary

Ability to specify CostModel for PlutusV3 in the genesis file was implemented, which +will allow us to execute PlutusV3 as soon as we enter Conway era, which is essential +for guardrails script. Important bugs that have been fixed:

  • Invalid reporting of InsufficientCollateral and ValueNotConservedUTxO predicate +failures. In case of validation failure a confusing deserialization was reported instead +of those predicate failures.
  • Calculation of votes for Constitutional Committee Members did not consider expired +members correctly.
  • Useful function redeemerPointer was deprecated without good justification.

Besides bugfixes there was a lot of work done on the testing side. Constraint based data +generation is receiving continuous improvements. More unit and property tests for Conway +era functionality.

Low level summary

Conway

  • pull-4259 - Undeprecate redeemerPointer and expose it in cardano-ledger-api
  • pull-4252 - Add PlutusV3 CostModel to UpgradeConwayPParams
  • pull-4247 - Change the balance in InsufficientCollateral to DeltaCoin
  • pull-4267 - Expand TxAuxData interface
  • pull-4265 - Inline UTxO and UTxOW PredFailure for Conway
  • pull-4281 - Discount expired CC from CC-size calculation
  • pull-4290 - Add NoThunks instance for UTxO pred failures
  • pull-4288 - Fix burning tokens predicate failure

Testing

  • pull-4241 - Add fixup combinators to ImpTest framework
  • pull-4229 - Shrinking for constrained-generators
  • pull-4244 - Imptests: CommitteeMinSize affects in-flight props
  • pull-4269 - Fix generation bug for sums of positive member spec
  • pull-4266 - Add imptest to propose and enact unknown costmodels
  • pull-4261 - constrained-generators cleanup for hackage
  • pull-4279 - constrained-generators: Fix bug in toPreds for maps + add additional tests
  • pull-4272 - simplify foldMap interface to higher order syntax
  • pull-4283 - constrained-generators: add new test to test suite
  • pull-4286 - constrained-generators: refactor reify to reduce the number of binding sites + delay simplification more to avoid variable capture in higher order syntax

Infrastructure and releasing

  • pull-4260 - Bump idna from 3.3 to 3.7 in /doc
  • pull-4277 - Fixed formatting in HowToProfileLedger.md
  • pull-4282 - Bump plutus deps to 1.26
  • pull-4294 - Avoid cancelling scheduled CI when a new merge happens on master
]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-04-24-mithril + + 2024-04-24T00:00:00.000Z + + High level overview

This week, most of the Mithril team attended the Cardano Buidler Fest #1 in Toulouse, France. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet by compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges. The team identified the source of an issue preventing proper memory release during the signing/proving of a large set of transactions and developed a fix for it. Additionally, they completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network.

Finally, the team implemented a configurable feature for test networks to log unparsable blocks instead of panicking and investigated some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.

Low level overview

  • Completed the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
  • Worked on the issue Store Block Range Merkle roots in signer and aggregator databases #1633
  • Worked on the issue Stream import of Cardano transactions #1646
  • Worked on the issue Memory leak in Cardano transactions signature/proof #1629
  • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
  • Worked on the issue Add section for manual setup of squid in SPO guide #1610
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-04-19-hydra + + 2024-04-19T00:00:00.000Z + + High-level summary

This week, the Hydra team refactored the heartbeat logic to prepare for the versioned network protocol. They have also switched http://explorer.hydra.family to run on the preview network. Additionally, the team has added property tests to the /commit endpoint changes.

What did the team achieve this week

  • Refactor heartbeat logic to prepare for versioned network protocol.
  • Switch http://explorer.hydra.family to run on preview network.
  • Add property tests to /commit endpoint changes

What are the goals of next week

  • Attend and connect with community on Cardano Builder Fest
  • Merge new /commit endpoint changes
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Performance & Tracing Update]]> + 2024-04-19-performance-and-tracing + + 2024-04-19T00:00:00.000Z + + High level summary
  • Benchmarking: We've performed benchmarks and analyses for Node versions 8.9.2 and 8.10.0.
  • Development: Design phase for implementing quick queries in the analysis pipeline has begun.
  • Workbench: We're finishing up the new features for the reporting pipeline; Haskell profile definition work is ongoing.
  • Tracing: Improving the Prometheus output is ongoing; the node's build info will be accessible as a Prometheus label.
  • UTxO Growth: Our tooling has been augmented to support benchmarks starting with a non-empty chain.

Low level overview

Benchmarking

We've performed a full set of release benchmarks for Node 8.9.2. Comparing with release 8.9.1, we could not detect any performance risks for that version.

The benchmarks for 8.10.0 have shown a slight improvement in the time the block forging loop needs to evaluate, whilst additionally, resource usage of the cardano-node process was also slightly reduced - a nice performance improvement.

Development

Our analysis pipeline is based on batch analysis of data from over 50 cluster nodes; it consumes very large amounts of trace output ex post facto, when the actual benchmark has terminated. +This is very time-intensive, and not viable for obeserving an additional metric that you later on determine might need consideration.

We're planning to add quick queries into a benchmarking run's trace data to our analysis pipeline. These will be structured such that parameterizable, ad-hoc querying is supported. Initial tests showed that evaluation speed +of such queries is fast enough to merit designing a principled, and generalized, syntax for them - and a subsequent implementation.

Workbench

The reporting pipeline has been augmented with direct support for customizable, and stylable, TeX rendering - currently receiving final touches.

Porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is ongoing work. It is our goal to both increase reliable profile definition and validation, and +facilitate usage by engineers less familiar with the workbench.

Tracing

The work to improve system metrics as presented to Prometheus is still ongoing. Type annotations, as well as introducing Prometheus labels for certain metrics to convey (like e.g. build information), will make that interface +more versatile. It also facilitates configuration of monitoring or dashboards like Grafana on top of those Prometheus metrics.

UTxO Growth

For the UTxO scaling benchmarks, we've augmented the workbench with the capability to support injection of a custom synthesized chain into the deployment, and start a benchmark only after replaying that chain - whereas +our benchmarks usually start just with a genesis block.

To achieve that, different components of our tooling needed addition of features: distributing that chain to the node cluster, having analysis work without necessarily providing trace evidence of each block in the chain being forged by a benchmarking node. Cluster timing had to be adjusted to account for the gap between genesis start time and the chain tip. However, this entire mechanism opens up the possibility of having a very distinct ledger state at hand for a benchmark - one, that's been particularly crafted via a series of +pre-defined transactions constituting the blocks during creation of the synthesized chain.

In the future, we plan to flesh out a more general design of that mechanism, which currently is tied to a very specific use case only.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Network Team Update]]> + 2024-04-15-network + + 2024-04-18T00:00:00.000Z + + High-level overview of sprint 58 and sprint 59

Releases

We released cardano-node-8.9.1, and we tagged a soon to be released +cardano-node-8.9.2 +The 8.9.2 release will have a fixed peer sharing support, which we +incidentally broke in 8.9.1. We expanded our test suite to cover discovered +bugs (see below for more details). Please also see the release +tab in our project to see which PRs / issues were +included in a given release, the following mapping might also be useful:

  • ouroboros-network-0.13.1.0 -> cardano-node-8.9.1
  • ouroboros-entwork-0.14.0.0 -> cardano-node-8.9.2

Genesis

We continued working on network Genesis support:

  • ouroboros-network#3396 - churn policy for Genesis;
  • ouroboros-network#4813 - outbound governor support for Genesis;
  • support for cardano-cli to write a big ledger peers snapshot to disk and +for cardano-node to pass it to ouroboros-network.

As well as a feature required by consensus:

TxSubmission

Only a little progress was made due to one of us being on vacation.

Churn and EKG metrics

While working on ouroboros-network#4815, we addressed technical debt +in churn. The PR removes implicit synchronisation (in terms of delays) in +favour of explicit synchronisation with the outbound governor. The PR extends +EKG counters traced by the node. See below for some graphs.

Documentation

We updated the documentation on peer sharing, see +cardano-node-wiki#44.

Low level details

Peer Sharing Testing

We wrote a testing scenario for peer sharing, which simulates a node setup: +A -> B <- C, where neither of the nodes B and C have any local roots; they only learn about other nodes through (light) peer sharing. B learns +about A and C because they connect to it, while C should learn about A +through peer sharing. This test scenario should prevent us from breaking peer sharing in the +future in some obvious ways. In the future, we will also work on extending our +test suite with peer sharing in mind. See ouroboros-network#4839, +ouroboros-network#4841.

EKG / Prometheus Counters

Note that this is in progress, so some things might still change.

We will provide counters for active (also known as hot) peers, +established (e.g. hot & warm) peers and known (e.g. hot, warm and +cold) peers. This is the same way one specifies targets in the node's +configuration. In addition, the three groups are split into five categories:

  • ledger peers
  • big ledger peers
  • local root peers
  • bootstrap peers
  • shared peers

In addition, we also provide a counter for root peers, which counts ledger peers, +big ledger peers, local roots and bootstrap peers, which correspond to the +root peers target TargetNumberOfRootPeers in the configuration.

We also provide counters for ongoing promotions and demotions.

Ledger peers are affected by TargetNumberOf{Known,Established,Active}Peers and TargetNumberOfRootPeers. +The gap between TargetNumberOfRootPeers and TargetNumberOfKnownPeers will +be filled either with ledger peers or peers, which the node discovered through +peer sharing. +Big ledger peers are affected by TargetNumberOf{Known,Established,Active}BigLedgerPeers.

Below are some Grafana graphs from an experimental cardano-node branch:

Deprecation policy

The previous hot, warm / cold EKG counters will also be available, +although deprecated after the new ones are released. Sometime in the future +they will be removed.

Grafana graphs

The screenshots are from a node, which is configured without any bootstrap +peers, which is why all bootstrap metrics are 0. The node is configured with the following targets:

  "TargetNumberOfRootPeers": 60,
"TargetNumberOfKnownPeers": 100,
"TargetNumberOfEstablishedPeers": 40,
"TargetNumberOfActivePeers": 15,
"TargetNumberOfKnownBigLedgerPeers": 15,
"TargetNumberOfEstablishedBigLedgerPeers": 10,
"TargetNumberOfActiveBigLedgerPeers": 5,

and has a small number of local root peers and one peer in its publicRoots +configuration.

Active Peers Metrics

P2P relays

Established Peers Metrics

P2P relays

Known Peers Metrics

P2P relays

Churn Metrics

P2P relays

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Consensus Team Update]]> + 2024-04-17-consensus + + 2024-04-17T00:00:00.000Z + + High level summary
  • Implemented the new diffusion pipelining criterion.
  • Presented, reviewed and merged the March milestone for Genesis.
  • Integrated latest changes into Node version 8.10.
  • Regarding the UTXO-HD feature we:
    • Completed fixes in test-suites from cardano-node, cardano-api, and ouroboros-consensus. All tests are passing in latest prototype.
    • Prepared UTXO-HD prototype for LMDB benchmarking.
    • Fixed tracing in cardano-node.
    • Started merging code from the UTXO-HD branch into main (1053, 1052, and 1054).
  • We're currently working on getting rid of NoThunks errors in Consensus, so that we can enable these tests in CI, for extra assurance.
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[DB Sync Team Update]]> + 2024-04-17-db-sync + + 2024-04-17T00:00:00.000Z + + High level summary

The DBSync team has released 1 version for mainnet 13.2.0.1 and 3 pre-releases for sanchonet +4.0.0, 4.1.0, 4.2.0. We have continued the integration of Conway (CIP-1694) and the support +of off-chain data (CIP-100)

Lower level summary

  • CI build and docker fixes +#1670 +#1668 +#1667 +#1662

  • Improved committee representation +#1662 +#1571 +#1633

  • Offchain metadata partial support +#1654

  • Refactoring and tech-debt +#1635

  • Fixing epoch_stake_progress +#1620

  • Config and modulatirty improvements +#1653 +#1652

  • Updating to node-8.10-pre. Better support for deposits, refunds and proposal state +#1673

]]>
+ + Kostas Dermentzis + https://github.com/kderme + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-04-17-mithril + + 2024-04-17T00:00:00.000Z + + High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling the signature and proof generation for mainnet with the compression of the transaction Merkle tree by using sub-Merkle trees of transactions by block ranges. They also made progress in designing low latency certification, investigated a memory leak in the signature/proof process, and worked on retrieving the tip of the chain with the Pallas chain observer. The team almost completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they completed the refactoring of the database providers of the aggregator and re-span the testing-sanchonet network following the release of Cardano node 8.10.0-pre.

Finally, the team made some optimizations on the compilation of their pre-built binaries to fix panics occurring on CPUs without ADX instructions, and created a network configuration file on the repository to facilitate automatic compatibility checks.

Low level overview

  • Completed the issue Create file with Cardano minimum versions in repository #1615
  • Completed the issue Deploy testing-mainnet network #1617
  • Completed the issue Refactor database module in aggregator #1583
  • Completed the issue Client deprecation notice should be written in JSON when --json option is used #1616
  • Completed the issue Activate portable feature in mithril-stm by default #1613
  • Completed the issue Prepare testing-sanchonet for respin with Cardano 8.10 #1618
  • Worked on the issue Store Block Range Merkle roots in signer and aggregator databases #1633
  • Worked on the issue Memory leak in Cardano transactions signature/proof #1629
  • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
  • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
  • Worked on the issue Add section for manual setup of squid in SPO guide #1610
  • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2024-04-15-node-cli-api + + 2024-04-15T00:00:00.000Z + + 2024-04-01 - 2024-04-15

High level summary

Adding support for script based committee members certificates: authorization and resignation. It is now possible to convert extended signing Drep and Committee keys to a Shelley-format key. Improvements to Conway era tests. Use threshold instead of quorum for committee members.

cardano-cli

cardano-api

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-04-12-hydra + + 2024-04-12T00:00:00.000Z + + High-level summary

This week, the Hydra team fixed a bug in the smoke test and refactored to allow network functions to distinguish between inbound and outbound. The team also prepared a cardano-api 8.44 branch for cardano-node 8.10 once it gets released. They also contributed to the cardano-ledger-api by undeprecating and exposing redeemerPointer.

What did the team achieve this week

  • Fix FaucetFailedToBuildTx in smoke test #1384
  • Refactoring to allow network functions to distinguish between inbound and outbound
  • Prepared a cardano-api 8.44 branch, but got blocked 👇
  • Undeprecate redeemerPointer and expose it in cardano-ledger-api cardano-ledger#4259

What are the goals of next week

  • Complete new /commit endpoint interface #1350
  • Refactor to allow NodeLogic to pass through connection messages, to unblock 👇
  • Use versioned handshake when connecting hydra-nodes #1010
  • Test all combinations of decrement/close/fanout for #1057
  • Meet with tech writers about the landing page
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[SRE Team Update]]> + 2024-04-12-sre + + 2024-04-12T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Private chain for Voltaire team was respun for cardano-node 8.10.0-pre +pre-release and re-hard forked into Conway era.

  • Sanchonet was respun for cardano-node 8.10.0-pre pre-release and re-hard +forked into Conway era.

  • Cardano-node 8.10.0-pre was also deployed to one-third of IOGs preprod +environment nodes and two-thirds of IOGs preview environment nodes.

Lower level summary

Cardano-parts

  • Sets cardano-node|cli-ng to 8.10.0-pre, dbsync-ng to sancho-4.1.0; bumps +nixpkgs (23.11) and nixpkgs-unstable; improves, adds new and fixes a number +of just recipes; allows repo custom recipes to be kept as a separate import +for easy justfile maintenance; refactors ip module checking into its own +nixosModule and adds an extra abort option for safety. Much more detail is +available in the PR description: +cardano-parts-pull-36

Cardano-mainnet

  • Bumps cardano-parts for a number of recipe additions, improvements, fixes. +Fixes blockperf dnsmasq looksups and adjusts colmena topology code to account +for intra-cluster localRoots now defaulting to trustable true and implements +all updates in cardano-parts PR#36. See the PR description for more details: +cardano-mainnet-pull-11

Cardano-perf

  • Add a new perf-ssd machine class and deployment for ssd related performance +testing and benchmarking. Add new just recipes and cluster resource tagging. +cardano-perf-compare

Cardano-playground

  • Bumps cardano-parts for a number of recipe additions, improvements, fixes, +and node 8.10.0-pre. Respins private chain and sanchonet for node 8.10.0-pre +with corresponding book updates and implements all updates in cardano-parts +PR#36. See the PR description for more details: +cardano-playground-pull-20

Iohk-nix

  • WIP: Prepares block producer configurations to accomodate upcoming peerSharing default change: +iohk-nix-pull-575

  • Provides iohk-nix updates for node 8.10: +iohk-nix-pull-576

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-04-10-ledger + + 2024-04-10T00:00:00.000Z + + High level summary

Most notable progress is on testing. In particular data generation for conformance test +has been improved and the implementation organized. Addition of various Conway related +unit and property tests.

Conway

  • pull-4236 - Fix typo in ToJSON of ConwayGovState
  • pull-4250 - Add some ToJSON instances needed by cardano-node

Testing

  • pull-4221 - Fix a NoThunks test failure on nightly builds
  • pull-4214 - Fix estimateMinFeeTx w/ bootstrap test
  • pull-4189 - Imptests - treasury withdrawals
  • pull-4207 - Added tests from a bug report
  • pull-4238 - Imptests: ParameterChange affects ratification for in-flight proposals
  • pull-4243 - Convert small-steps testsuite to Hspec
  • pull-4248 - Fix withdrawals test data generation in EnactSpec
  • pull-4212 - Update and reorganize conformance tests
  • pull-4242 - Added UnitTestTools and IncrementalStakeTest

Infrastructure and releasing

Low level summary

]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-04-10-mithril + + 2024-04-10T00:00:00.000Z + + High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed the incremental storage of transactions, activated the signature of the transactions on the testing-preview network, and prepared a new network to test the scaling on mainnet data. The team also made progress on a prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they worked on refactoring the database providers of the aggregator.

Finally, the team delivered a community requested feature that displays the minimum versions of the Cardano node that the signer supports in a machine-readable format. They also provided a manual setup guide for the relay in the SPO user guide.

Low level overview

  • Completed the issue Implement incremental storage of Cardano transactions in signer/aggregator #1591
  • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
  • Worked on the issue Refactor database module in aggregator #1583
  • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
  • Worked on the issue Create file with Cardano minimum versions in repository #1615
  • Worked on the issue Deploy testing-mainnet network #1617
  • Worked on the issue Add section for manual setup of squid in SPO guide #1610
  • Completed the issue Signer metrics server displays confusing log message #1620
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-04-05-hydra + + 2024-04-05T00:00:00.000Z + + High-level summary

This week, the Hydra team released hydra 0.16.0, which supports cardano-node 8.9.0 +and can interpret conway blocks on the cardano-node. We have also updated some hydra +clients to be compatible with the new hydra api format, including hydraw and kupo.

What did the team achieve this week

  • Update our head and hydraw instance to master (a release candidate)
  • Release 0.16.0 (without incremental decommits)
  • Reproduce close > contest > contest scenarios using stateful testing
  • Have end-to-end scenarios working for the improved /commit endpoint

What are the goals of next week

  • Complete the improved /commit endpoint to unblock users
  • Potentially release 0.17.0 (with improved /commit endpoint)
  • Wrap up the incremental decommit work including the decommit action into the new TxTrace tests
  • Use Versioned Ouroboros protocol for handshaking between nodes.
  • Update to cardano-api-8.44.
]]>
+ + Daniel Firth + https://github.com/locallycompact + + +
+ + <![CDATA[Consensus Team Update]]> + 2024-04-03-consensus + + 2024-04-03T00:00:00.000Z + + High level summary
  • Made the LocalTxMonitor HasTx cross-era behavior less surprising.
  • Finalized the tests in ouroboros-consensus for the UTXO-HD branch, except the mempool-parallel test which is still failing sometimes.
  • Fixed an upstream complication in quickcheck-state-machine related to Parallel state machines which should allow us for an easier and more understandable setup of the parallel mempool tests.
  • Drafted parallel state machine testing infrastructure for quickcheck-dynamic. Eventually could be used to replace the QSM infra for mempool parallel tests.
  • Cleaned up the Cardano.API.LedgerState module, required for UTXO-HD integration.
  • We have been working on Node release 8.10. The changes upstream are integrated all the way to Node. Tests and benchmarks are pending. The versions of Consensus, Ledger, and Networking are released, and we will focus next on releasing CLI, API, and finally Node.
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-04-03-mithril + + 2024-04-03T00:00:00.000Z + + High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed the implementation of a more versatile beaconing mechanism, worked on implementing incremental storage of transactions, and fixed the bug in the block parser that prevented some Conway transactions from being signed. Additionally, they continued working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.

Finally, they enhanced the internal storage of data on the test aggregator server and addressed a source of flakiness in the CI end-to-end test.

Low level overview

  • Worked on the issue Implement incremental storage of Cardano transactions in signer/aggregator #1591
  • Completed the issue Support multiple beacon types in signer/aggregator #1562
  • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
  • Completed the issue Provide fake aggregator data in an aggregated form #1594
  • Completed the issue Some transactions are not signed in testing-sanchonet #1577
  • Completed the issue End to end tests are flaky in CI #1558
  • Completed the issue npm publication fails in the release workflow #1595
  • Completed the issue Add indexes on foreign keys of SQLite stores #1603
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2024-03-30-node-cli-api + + 2024-03-30T00:00:00.000Z + + 2024-03-16 - 2024-03-30

High level summary

Adding support for script based committee and dreps. This includes queries and using script as arguments instead of keys on various command.

cardano-cli

cardano-api

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[SRE Team Update]]> + 2024-03-29-sre + + 2024-03-29T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-node 8.9.1 is now deployed to all environments.

  • The legacy IOG mainnet metadata server has been retired with CF now providing +metadata server services going forward.

  • Cardano-parts PR#35, merged and linked below, offers ip information +integration into nixosConfiguration modules as well as template-diff and +template-patch recipes for easier upgrades going forward.

Lower level summary

Capkgs

  • Adds a shortRev suffix to package names, fixes an rclone recipe, fixes a CI +push action, defaults to recursively dereferenced object hashes, cleans up +reference patterns. See the PR description for more details: +capkgs-pull-2

Cardano-mainnet

  • Bumps to cardano-node 8.9.1 and deploys all machines, makes ip information +available in nixosCfgs, adds new expected machine alerts, tunes snapshot +alerts and implements all updates in cardano-parts PR#35. See the PR +description for more details: +cardano-mainnet-pull-10

Cardano-ops

Cardano-parts

  • Upgrades cardano-node to 8.9.1 for both release and pre-release, integrates +machine ip information into nixosConfigurations, enables /etc/hosts file +usage in cardano-node topology, enhances cardano-node topology producer +generation with customizable address types, introduces template patching +recipes for easier cardano-parts updates to existing clusters. Much more +detail is available in the PR description: +cardano-parts-pull-35

Cardano-playground

  • Bumps to cardano-node 8.9.1 and deploys all envs, rotates KES keys in most +envs, makes ip information available in nixosCfgs and implements all updates +in cardano-parts PR#35. See the PR description for more details: +cardano-playground-pull-18
]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-03-28-hydra + + 2024-03-28T00:00:00.000Z + + High-level summary

This week, the Hydra team conducted the monthly review meeting and investigated +a broken head situation. The team slightly improved conway forward compatibility +in explorer / hydra-node, enhanced hydra-cluster --devnet which allows e2e +testing of kupo, extended smoke test to also include committing ADA into the +head, documented the anticipated behavior of incremental decommits, and added +decommits to the tutorial.

What did the team achieve this week

  • Conducted the monthly review meeting (link to recording already?)
  • Investigated a broken head situation #1374
  • Slightly improved conway forward compatibility in explorer / hydra-node #1373
  • Busy hydra-cluster --devnet sandbox which allows e2e testing of kupo #1378
  • Extended smoke test to also include committing ADA into the head #1377
  • Documented the anticipated behavior of incremental decommits and added decommits to tutorial
  • Another write-up of how the incremental commit/decommit could work (without needing merkle trees or L2/L1 interleaving) on this issue

What are the goals of next week

  • Complete the written monthly report
  • Update our head and hydraw instance to master (a release candidate)
  • Complete the improved /commit endpoint to unblock users
  • Release 0.16.0 (likely without incremental decommits)
  • Reproduce close > contest > contest scenarios using stateful testing
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-03-27-ledger + + 2024-03-27T00:00:00.000Z + + High level summary

We continued focusing on adding tests and improving the test frameworks, including the quality of the generated data used in tests.

Low level summary

Conway

  • pull-4205 - Disable CC ratification when number of members is below ppCommitteeMinSize
  • pull-4169 - Add GovInfoEvent and add event testing capabilities to ImpTest
  • pull-4208 - Remove missingScriptsSymmetricDifference

Testing

  • pull-4121 - Newconstraints phase3, Add newtypes: Size, SizeSpec and class Sized.
  • pull-4197 - add unsafeMkProposals to be used for testing
  • pull-4200 - Fix prop_GOV so that it runs again
  • pull-4216 - improve the GOV generator to generate more interesting signals

Improvements

Releasing

]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-03-27-mithril + + 2024-03-27T00:00:00.000Z + + High level overview

This week, the Mithril team released a new Mithril distribution 2412.0. This release includes several critical updates and enhancements, such as support for the Prometheus metrics endpoint in signer, deprecation of the snapshot command in the client CLI, full Pallas-based implementation of the chain observer, and support for Cardano node v.8.9.0.

The team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, kept implementing a more versatile beaconing mechanism, reducing the latency of transactions signature, and continued investigating a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they started working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.

Finally, the team completed the implementation of some community-requested features to verify the output folder structure made by the client, and kept investigating a source of flakiness in the CI end-to-end test.

Low level overview

  • Released the new distribution 2412.0
  • Publication of a dev blog post about the Mithril signer Prometheus endpoint release
  • Publication of a dev blog post about the Mithril client CLI snapshot command deprecation
  • Completed the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
  • Completed the issue Do not require the mithril client to create the DB directory #1572
  • Worked on the issue Support multiple beacon types in signer/aggregator #1562
  • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
  • Worked on the issue Provide fake aggregator data in an aggregated form #1594
  • Worked on the issue Some transactions are not signed in testing-sanchonet #1577
  • Worked on the issue End to end tests are flaky in CI #1558
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Performance & Tracing Update]]> + 2024-03-27-performance-and-tracing + + 2024-03-27T00:00:00.000Z + + High level summary
  • Benchmarking: Release benchmarks for 8.9.1 have been performed and analysed.
  • Development: We've implemented a benchmarking setup for UTxO-HD's LMDB (on-disk) backend.
  • Workbench: The now modular, nix-based genesis creation has been merged to master; DRep delegation and integration of a new cardano-cli command are ongoing.
  • Tracing: Benchmarking the new handle registry feature in cardano-tracer is complete; quality-of-life improvements to Prometheus output.
  • UTxO Growth: We've adjusted our framework to support running UTxO scaling benchmarks on both a single node and a cluster.
  • Nomad cluster: new multi-cluster support with the capability to quickly adjust to changes in deployed hardware

Low level overview

Benchmarking

We've performed a full set of release benchmarks for Node 8.9.1. Comparing with release 8.9.0, we could not detect any performance risks for that version.

Development

In context of UTxO scaling, we want to assess the feasability of the current on-disk solution (which is LMDB) of a UTxO-HD enabled node. Using that, the UTxO set will be kept +in live tables and snapshots on disk, significantly reducing memory requirements.

We've implemented a benchmark setting, and a node service configuration, supporting direct disk access to a dedicated device which can be initialized with optimized +file system and mount settings. It's purpose is to serve as storage for the highly performance-critical disk I/O of the LMDB component.

Workbench

Our automation for creating all flavours of geneses has seen cleanup and refactoring - which has been merged to master. It can now use a more principled, and rigorously checked, modular approach +to define, create and cache the desired genesis files.

Working on integrating new cardano-cli functionality in our automation is ongoing. The performance workbench will support a different, and updated, CLI command which will allow injection of DRep delegations into genesis.

Tracing

Benchmarking cardano-tracer's new handle registry feature has been performed and evaluated. We're satisfied with seeing clear performance improvements along with cleaner code, and much better test coverage. +Especially allocation rate and number of garbage collections (GC) could be significantly reduced, along with the CPU time required for performing GCs. This will allow for higher trace message throughput given +identiacal system resources - plus less system calls issued to the OS in the process.

Furthermore, the new tracing system is getting improvements for its Prometheus output - like providing version numbers as metrics, or annotating metrics with their type - enhancing the output's overall utility.

UTxO Growth

The performance workbench now supports profiles aimed at simulating UTxO growth both for a single node and an entire cluster. Additionally, simulating different +RAM sizes in combination with specific UTxO set sizes is supported. For a single block producing node, the focus is on quick turnaround when running +a benchmark, gaining insight into the node's RAM usage and possible impact on the forging loop.

The cluster profiles enable capturing block diffusion metrics as well, however they require a much longer runtime. We can now successfully benchmark the node's behaviour +when dealing with UTxO set sizes 4x - 5x of current mainnet, as well as a possible change in behaviour when operating close to phsyical RAM limit due to that.

Nomad cluster

Our backend now supports allocating and deploying Nomad jobs for multiple clusters simultaneously - all while keeping existing automations operational. We've taken special precautions +a cluster, as seen by the backend, can be efficiently and easily modified to reflect newly deployed, or changed, hardware. Additionally, we've added support for host volumes inside a Nomad +allocation - which will be needed for benchmarking UTxO-HD's on-disk solution.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-03-22-hydra + + 2024-03-22T00:00:00.000Z + + High-level summary

This week, the Hydra team restored test compatibility with all networks, reviewed and merged streaming plugins contributed by SundaeLabs. The team also fixed tutorial instructions for downloading the latest cardano-node, fixed the observed contesters bug, prepared a PRs for downstream clients to use the new API format for transactions (preparing the release with this breaking change). Finally, they also recorded a walkthrough video on how the hydra project is run: https://www.youtube.com/watch?v=JGUeO7A6mMU

What did the team achieve this week

  • Restored compatibility with all networks #1355.
  • Reviewed and merged streaming plugins (only missing a how-to) #1325.
  • Fixed tutorial instructions for downloading cardano-node 8.9.0 #1367.
  • Fixed the observed contesters bug #1266.
  • Prepared a PR for Kupo using new Hydra transaction format kupo#166.
  • Recorded a walkthrough on how the hydra project is run (uncut) https://www.youtube.com/watch?v=JGUeO7A6mMU.

What are the goals of next week

  • Conduct the monthly review meeting
  • Improve the /commit endpoint to unblock users
  • Stateful testing of transaction traces to verify corner cases for +incremental decommit
  • Release 0.16.0
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Consensus Team Update]]> + 2024-03-20-consensus + + 2024-03-20T00:00:00.000Z + + High level summary
  • Merged the alternative fs-api interface for I/O using user-supplied buffers. This feature is important because it defines lower-level primitives for the filesystem API, which opens op avenues for more use cases and more efficient I/O operations (for instance when implementing lsm-tree, which is part of our efforts to move the ledger state to disk). This feature has not been released yet.
  • Implemented new diffusion pipelining criterion .
  • Released Consensus packages containing backports for Node 8.9.1.
  • Focused on fixing the tests for ouroboros-consensus in the UTXO-HD branch. Work is ongoing.
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-03-20-mithril + + 2024-03-20T00:00:00.000Z + + High level overview

This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed UI improvements for the explorer, provided metadata about the point of the chain used during the verification process, and investigated a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they began prototyping the implementation of a more versatile beaconing mechanism to sign transactions with low latency.

Finally, the team started implementing some community-requested features to verify the output folder structure made by the client, and fixed a source of flakiness in the CI end-to-end test.

Low level overview

  • Completed the issue Upgrade Cardano node to 8.9.0 #1570
  • Completed the issue Explorer improvements for Cardano transactions #1554
  • Completed the issue Refactor the Cardano transactions parser with pallas-hardano #1557
  • Completed the issue Provide latest immutable file number with certified transactions in client #1536
  • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
  • Worked on the issue Support multiple beacon types in signer/aggregator #1562
  • Worked on the issue Do not require the mithril client to create the DB directory #1572
  • Worked on the issue Some transactions are not signed in testing-sanchonet #1577
  • Worked on the issue End to end tests are flaky in CI #1558
  • Worked on the issue P2P threat modeling and risk analysis #1350
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Network Team Update]]> + 2024-03-18-network + + 2024-03-18T00:00:00.000Z + + High-level overview of sprint 57

We released cardano-node-8.9.0 (which includes +ouroboros-newtork-0.12.0.0). This release contains the following network +upgrades:

Soon we will release [cardano-node-8.9.1] (which includes +ouroboros-network-0.12.0.0). This release will contain:

  • Peer sharing improvements & fixes. Contributed and tested by Karl Knutsson CF.
  • cardano-ping updates to support NodeToNode_V13 & peer sharing.
  • Some smaller maintenance changes.

The list of network features included in ouroboros-network-0.12.0.0 and +ouroboros-network-0.13.0.0 can be found here.

We also continued working on tx-submission, ouroboros-network#3311. Mostly +working on the pure internal API for decision-making and testing it with +property-based tests. The next step is to get all the information needed to run +the decision logic in an efficient way and later write a mini-protocol client +which is using the new API and testing it.

We also started working on thing to finalise the Genesis support from the +network. We have a PR under review, ouroboros-network#4832. We also started +to investigate how to support big ledger peer snapshots. This requires changes +in the topology file as well as cardano-node & ouroboros-network to +understand the snapshots; and on the other hand creation of such snapshots by +cardano-cli.

Low-level summary

This time everything was high-level, 😉.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-03-15-hydra + + 2024-03-15T00:00:00.000Z + + High-level summary

This week, the Hydra team worked on aligning the specification with the current +incremental decommit implementation, added decommit to model-based tests and +also discussed the incremental commit protocol extension with researchers. The +team also updated to cardano-api 8.40 and tests against cardano-node 8.9.0, +which unblocked a possible release and re-enabled smoke tests on public +networks. They also groomed a new /commit endpoint interface from a user +discussion and discussed restructuring of the Hydra documentation. The team also +prepared a Conway-supporting hydra-node on branch lc/conway-support for +early adopters (Hi @Juantxu and @ash 👋). Some internal refactoring prepared for +upcoming streaming plugins by SundaeLabs and minor fixes to the TUI and +hydra-explorer rounded off the week.

What did the team achieve this week

  • Aligned specification with current incremental decommit implementation and added Decommit to model based tests.
  • Discussed and explored further on incremental commits with researchers.
  • Refactored Event -> Input #1348 to prepare for streaming plugins #1325.
  • Minor fixes to the TUI and hydra-explorer clients.
  • Updated to cardano-node 8.9.0 and cardano-api 8.40 - this unblocked a possible release and re-enabled smoke tests on public networks.
  • Groomed new /commit endpoint interface #1350 from a user discussion #1337.
  • Discussed restructuring of the Hydra documentation #1349.
  • Prepared a Conway-supporting hydra-node on branch lc/conway-support #1178 (will be merged only after the hard-fork).

What are the goals of next week

  • Prepare a PR for Kupo using new Hydra transaction format (to prepare for 0.16.0 release)
  • Review and merge streaming plugins #1325
  • Improve the /commit endpoint to unblock users
  • Test corner cases of incremental decommit transaction traces
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2024-03-15-node-cli-api + + 2024-03-15T00:00:00.000Z + + 2024-03-01 - 2024-03-15

High level summary

  • cardano-cli: Focus is on testing Conway features. Several improvements to create-testnet-data command, useful for creating/deploying local clusters for testing. Enable parallel execution of tests.

cardano-cli

cardano-api

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[SRE Team Update]]> + 2024-03-15-sre + + 2024-03-15T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-node 8.9.0 is now deployed to all environments.

  • A new profile-cardano-db-sync-snapshots nixosModule is available for +snapshotting dbsync state.

Lower level summary

Cardano-mainnet

  • Updates cardano node and cli pre-release (-ng) to 8.9.0. Adds a new +cardano-db-sync snapshots server. Bumps mithril and enhances mithril +usability with IOG trusted pool signature verification for clients and +mithril verifier service for signers. Adds miscellaneous other small +improvements, bug fixes and tuning. See the pull request description for +more details: +cardano-mainnet-pull-8

Cardano-node

  • Adds nixos service and topology updates related to cardano-node 8.9.0 +release: +cardano-node-compare

Cardano-ops

  • Bumps to cardano-node 8.9.0, fixes metadata server module, removes the legacy +snapshots server: +cardano-ops-compare

Cardano-parts

  • Updates cardano node and cli pre-release (-ng) to 8.9.0 and enables new +bootstrapPeers features and compatibility in the topology functions. Bumps +mithril and enhances mithril usability with IOG trusted pool signature +verification for clients, mithril verifier service for signers, mithril +capability for process-compose and node entrypoint jobs. Adds miscellaneous +other small improvements, bug fixes and tuning. See the pull request +description for more details: +cardano-parts-pull-34

Cardano-playground

  • Updates cardano node and cli pre-release (-ng) to 8.9.0. Bumps mithril and +enhances mithril usability with IOG trusted pool signature verification for +clients, mithril verifier service for signers, mithril capability for +process-compose and node entrypoint jobs. Adds miscellaneous other small +improvements, bug fixes and tuning. See the pull request description for +more details: +cardano-playground-pull-18

Govtool

  • Fixes a coalesce function sql query bug in the govtool backend: +govtool-commit

Iohk-nix

  • Adds support for bootstrap peers and sanchonet mithril configuration: +iohk-nix-pull-574

Sanchonet-demo

  • Bumps cardano-parts for cardano-node 8.9.0 and brings the justfile demo +recipes up to 8.9.0 compatibility: +sanchonet-demo-compare
]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-03-13-ledger + + 2024-03-13T00:00:00.000Z + + High level summary

Focus has been on testing: adding tests and improving our testing framework to make it easier to write tests for various Conway features. +We also did some cleanup and reorganisation of code, to make it more manageable and easier to release. +We have started work on Hardfork Initiation: support for intra-era hardfork initiation and necessary updates the SPO stake distribution calculation.

Low level summary

Conway

  • pull-4140 - Intra era hardfork initiation
  • pull-4154 - SPO stake distr calc for HardForkInitiation
  • pull-4150 - Add ConwayUtxosPredFailure
  • pull-4162 - Add ConwayDRepIncorrectRefund and tests for GovCert
  • pull-4112 - Fail when conway features are present in transactions that use Plutus v1/v2
  • pull-4164 - Change hot credential representation in CommitteeState
  • pull-4178 - Remove code repetition in Conway era CDDL

Testing

  • pull-4096 - Add a collection of test Plutus scripts for use in ImpTests
  • pull-4144 - Add imptests for delaying actions enactment
  • pull-4104 - Governance policy tests
  • pull-4123 - Add the ability to do constraints over trees in constrained-generators
  • pull-4163 - Reorganise GovSpec, add GovCertSpec
  • pull-4152 - Add extra type-safety to ensure that all predicate failures have roundtrip tests
  • pull-4172 - Add imptests for some more GOV predicate failures
  • pull-4139 - Add extra time from 1 sec to 2 sec for prop_soundness test.
  • pull-4173 - Update profiling instructions
  • pull-4177 - Plutusv3 initialization tests
  • pull-4155 - Fix nightly build failures

Improvements

  • pull-4141 - Add boom placeholder
  • pull-4157 - Split Conway governance
  • pull-4188 - Simplify implementation of ToJSON1 of ListMap
  • pull-4129 - Modify PParams to use similar naming to ProtocolParams in cardano-api
  • pull-4160 - Make shelley TxWits consistent with other eras
  • pull-4168 - Add missing InjectFailure instances for ConwayUtxosPredFailure
  • pull-4086 - Change applySTS to return NonEmpty (PredicateFailure s)
  • pull-4176 - Add CARDANO_MAINNET_MIRROR to Nix shell
  • pull-4174 - Convert small-steps-test into a sublibrary
  • pull-4159 - Shelley rules cleanup

Specification

  • pull-4042 - Fix the prose being inconsistent with the figure
  • pull-4151 - Fix an issue with txinfo and unusual notation in Babbage UTXO rule

Releasing

]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-03-13-mithril + + 2024-03-13T00:00:00.000Z + + High level overview

This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the adaptation of the Mithril explorer to support Cardano transaction verification, kept improving its UI, fixed the bug that prevented the signature of some Conway era transactions, implemented a more robust transactions parser, and started providing metadata about the point of the chain used during the verification process. Additionally, they have completed the optimization of the communications of the Mithril nodes and the Cardano node with the finalization of the Pallas chain observer.

Finally, the team enhanced the handling of logs in the CLI of the Mithril nodes and investigated some remaining flakiness in the end-to-end test in the CI.

Low level overview

  • Completed the issue Output CLIs logs to stderr #1515
  • Completed the issue Implement Cardano Transactions in explorer #1497
  • Completed the issue Enhance Mithril/Cardano node communication #1315
  • Completed the issue npm publish fails on latest when next exists #1531
  • Completed the issue Cardano transactions are not all signed in testing-sanchonet #1537
  • Completed the issue Enhance www demonstration in mithril-client-wasm #1552
  • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
  • Worked on the issue Provide latest immutable file number with certified Cardano transactions in client #1536
  • Worked on the issue Explorer improvements Cardano transactions #1554
  • Worked on the issue Refactor the Cardano transactions parser with pallas-hardano #1557
  • Worked on the issue End to end tests are flaky in CI #1558
  • Worked on the issue P2P threat modeling and risk analysis #1350
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-03-08-hydra + + 2024-03-08T00:00:00.000Z + + High-level summary

This week, the Hydra team has been working on a new library cardano-api-classy containing type class instances for era witnesses and also switched nix code to use flake-parts. They also further improved the Hydra Head [explorer](http://explorer.hydra.family) UI. The team also improved error reporting on integration tests and refactored the outcome algebra in the hydra-node protocol logic. Finally, they reviewed the incremental decommit specification with researchers. Meanwhile, SundeaLabs already implemented first UDP and Kinesis event sinks based on the EventSource / EventSink refactoring.

What did the team achieve this week

  • New library cardano-api-classy containing type class instances for era witnesses.
  • Switched the nix code to use flake-parts.
  • Completed another increment on the head explorer UI #1333.
  • Improved error reporting on integration tests #1335.
  • Refactored the outcome algebra in the hydra-node protocol logic #1340.
  • Reviewed incremental decommit specification with researchers.
  • SundaeLabs implemented first UDP and Kinesis event sinks based on #1267.

What are the goals of next week

  • Prepare #1178 on a branch for users to try out Conway on hydra.
  • Align specification with incremental decommit implementation
  • Improve MTB in terms of new Decommit input
  • Prepare a PR for Kupo using new Hydra transaction format
  • Spike on literate Agda specification pdf
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Performance & Tracing Update]]> + 2024-03-08-performance-and-tracing + + 2024-03-08T00:00:00.000Z + + High level summary
  • Benchmarking: We've performed release benchmarks for Node 8.9.0. Additionally, we benchmarked different GC settings for cardano-node.
  • Development: Ongoing work on the reporting pipeline and high-level profile definitions.
  • Workbench: In conjunction with DRep delegations in genesis, we're working on adjustments to a new cardano-cli command.
  • Tracing: Test coverage for the new handle registry feature in cardano-tracer is complete.
  • UTxO Growth: Currently, we're developing a series of benchmarks targeting performance implications of increased UTxO set size.
  • Nomad cluster: Disk storage safety net; better admin access to Nomad nodes; basic backend support for more than 1 cluster; new latency service.

Low level overview

Benchmarking

We've performed a full set of release benchmarks for Node 8.9.0. Initially, we identified a performance regression in connection to ledger snapshots. This has been addressed very swiftly. +Having re-run the fixed version, we could detect no performance risks in comparison with 8.7.2 / 8.7.3.

In an additional set of benchmarks, we targeted the garbage collector (GC) settings that cardano-node is built with by default. Specifically, we compared these (copying, sequential GC) as a baseline +to using the parallel GC, the compacting GC and the non-moving GC - all of which are supported by GHC's runtime system. As GC always is a trade-off between space and time (and as a consequence, responsiveness); +we could measure the parallel GC offering a slight increase in responsiveness at the cost of delaying some evaluations - which is suboptimal for a block forger. The compacting GC could clearly +achieve a smaller RAM footprint, but only at the cost of increased CPU usage - and clearly worsened responsiveness. The non-moving GC could greatly enhance responsiveness - but increased the RAM footprint tremendously, as +well as introduced delays in the forging loop. In conclusion: the existing default is still the best choice by far for cardano-node - validated both on GHC8.10.7 and GHC9.6.3.

Development

The work on moving benchmark profile, and genesis, definitions out of the bash scripting / JSON data transformation space is still ongoing. Type safety and a test suite for those tasks +will allow for a much more principled approach.

The implementation of additional rendering formats and report templates for our reporting pipeline has been completed; it is currently in testing and validation phase.

Workbench

We're working on integrating new cardano-cli functionality in our automations. Injecting DRep delegations into genesis - for Conway ledger benchmarks - will require us +to use a new CLI command, which differs in in output structure and options provided from the one we're using to inject stake pool delegations. This requires us to +implement and additional post-processing step for backends to find everything as expected.

Furthermore, a PR has been merged which refactors and cleans up benchmarking profiles, with a focus on fine-tuning solo-node benchmarks which scrutinize a single cardano-node process.

Tracing

The test suite for cardano-tracer's new handle registry feature is complete, and the new feature passes all tests. At the moment, we're +preparing it for merging into master.

UTxO Growth

We're developing a series of benchmarks that will provide insight into possible changes to the Node's performance characteristics given different UTxO set sizes and numbers of delegated wallets. +What we aim to capture in these benchmarks is the system's capability to scale with UTxO growth - while simultaneously evaluating hardware requirements. The workloads will be based on existing release benchmarks, but allow for flexibility regarding UTxO set and delegations. They will target the existing in-memory solution, and at the same time permit feasability testing UTxO-HD's on-disk +flavour - which does not keep the entire UTxO set in RAM permanently.

Nomad cluster

Implementation of cluster machine disk space checking and garbage collection is complete. A requirement was that no +monitoring process interferes with a running benchmark, so a non-synchronous approach was chosen to guarantee enough disk space. This prevents failing +runs, and thus the necessity to repeat them.

In the process, the workbench backend was equipped with a wider range of cluster commands and abstractions, which makes administrating cluster +machines more flexible. This includes a new service to create a network latency matrix for deployed cluster hardware - generalizing the approach +chosen during the Nomad cluster's initial validation phase. This can guarantee the validity of existing baselines in case of hardware reboots, or changes +in topology.

Last not least, the backend is currently receiving an additional feature: supporting more than 1 hardware cluster. This will enable us, +in the future, to benchmark on ephemeral clusters - without interfering with the hard requirements, or the schedule, of release benchmarking +on our default deployment. The motivation is being able to benchmark different hardware configurations, along with varying cardano-node options and +initial ledger states on a parallel schedule - also, without having to keep those clusters running at all times.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Consensus Team Update]]> + 2024-03-06-consensus + + 2024-03-06T00:00:00.000Z + + High level summary
  • Completed the rebase of the production libraries for UTXO-HD on 8.9, both in ouroboros-consensus, cardano-api and cardano-node.
  • Measured sync and replay times and memory in UTXO-HD. The latest result are reported here.
  • Bugfixed the snapshot interval.
  • Added an extra case to isIncorrectClaimedFlag for Babbage and Conway eras.
  • Added a db-analyser analysis to get the UTXO size per slot. The result of the analysis is illustrated here.
  • Started integration work for Node release 8.10.
  • Reviewed the Genesis pull-requests submitted by Tweag. They are pending a final round of review.
  • Helped the current release engineer prepare the 8.9 release candidate.
  • The Consensus Team has also been helping troubleshoot known issues with 8.9 (eg snapshots causing missed leadership schedules, unexpected snapshot interval, integration tests, etc).
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-03-06-mithril + + 2024-03-06T00:00:00.000Z + + High level overview

This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they worked on adapting the Mithril explorer to support Cardano transaction verification, started implementing a more efficient transaction signing scheme, stabilized the type names in the API, and kept investigating a bug that prevents the signature of some Conway era transactions. Additionally, they have completed the first version of the Prometheus monitoring endpoint for the signer.

Finally, the team fixed a bug occuring in the publication of the npm packages of the client, enhanced the HTTP tests of the aggregator, and kept working on the KES period computation in the Pallas chain observer.

Low level overview

  • Completed the issue Expose Prometheus metrics for Mithril signer #1096
  • Completed the issue Make HTTP server tests more robust #1524
  • Completed the issue Stabilize namings in Cardano Transactions API #1535
  • Completed the issue Reorganize crates in the repository #1528
  • Worked on the issue Implement Cardano Transactions in explorer #1497
  • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
  • Worked on the issue Output CLIs logs to stderr #1515
  • Worked on the issue npm publish fails on latest when next exists #1531
  • Worked on the issue Cardano transactions are not all signed in testing-sanchonet #1537
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Worked on the issue P2P threat modeling and risk analysis #1350
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Network Team Update]]> + 2024-03-04-network + + 2024-03-04T00:00:00.000Z + + High-level overview of sprint 56

Cardano-Node, Cardano-API, Cardano-CLI

In the last sprint, the network team was designated to take the Release +Engineering Role, as the coming release contains mostly network advances. +Armando Santos has been making progress on it. The following packages were +published to CHaP:

and other ouroboros-network packages with minor changes. The following +packages were also published:

The work on cardano-node is in progress, see cardano-node#5485

We would like to thank Karl Knutsson (CF) for helping us to test the upcoming +cardano-node release.

Ouroboros-Network

We continued working on tx-submission, ouroboros-network#3311

We started to execute an idea to put all configuration values used by the +diffusion layer Ouroboros.Network.Diffusion.Configuration module. Currently, +default values are spread in different repositories (e.g. cardano-node, +ouroboros-consensus). See ouroboros-network#4805.

We restored how syncing works in bootstrap mode to get the same performance +characteristics, see ouroboros-network#4809, ouroboros-network#4810.

We started working on Outbound-Governor Genesis mode, see +ouroboros-network#4813.

Ouroboros-Consensus

We requested to modify how bulk-sync mode works to make it use the same +mechanism that the newly added LedgerStateJudgement. See +ouroboros-consensus#958.

Low-level summary

We also addressed a minor issue regarding tracing LedgerStateJudgement +changes, see ouroboros-network#4816.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-03-01-hydra + + 2024-03-01T00:00:00.000Z + + High-level Summary

This week the Hydra team, in addition to the usual maintenance and bug fixing, has been working on the preparation for the switch to Conway making the codebase less babbage specific. The team also conducted the monthly review meeting and published the monthly report on a new website (to keep those reports separate of main repository). They also added a basic UI to the Hydra explorer, switched to aggregating sanchonet data and also fixed the smoke tests to work on sanchonet. Finally, they continued progress the off-chain incremental commit protocol changes.

What did the team achieve this week

What are the goals of next week

  • Complete preparation for #1178 to switch to Conway (by "flipping" a switch)
  • Complete off-chain incremental commit protocol changes #199 (and focus on the on-chain part after).
  • Re-align with SundaeLabs on EventSource and EventSink refactoring.
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[SRE Team Update]]> + 2024-03-01-sre + + 2024-03-01T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-node 8.8.1-pre is now deployed to sanchonet, two-thirds of preprod, +one-third of preview and also voltaire private chain networks.

  • Catalyst Voltaire private chain was respun and an updated db-sync and govtool +backend deployed after hard fork to Conway era.

  • IOG sanchonet pool block producers are now also signing mithril +certificates.

  • A mithril-signer-verifier service now runs on all IOG SRE mithril signers and +generates alerts if no recent mithril certificates have been signed.

  • All cardano-parts mithril clients, whether via nixosConfiguration, +process-compose jobs or the nix cardano-node entrypoint, will now +automatically verify that a trusted IOG pool has signed a mithril certificate +prior to using the associated mithril state. If no trusted IOG pool has +signed a recent mithril certificate, mithril state usage with be skipped and +a classic sync from genesis to tip will be performed.

  • A significant amount of effort was applied towards the upcoming cardano-node +8.9.x-pre release in order to align nixos service module code between +cardano-node nixos services, iohk-nix topology generation, cardano-ops legacy +code, and cardano-parts module compatibility.

Lower level summary

Work in progress

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2024-02-29-node-cli-api + + 2024-02-29T00:00:00.000Z + + 2024-02-16 - 2024-02-29

High level summary

  • cardano-cli: Release cardano-cli-8.20.3.0; Integrate with most recent ouroboros network, consensus and api. Enhancements to various queries. Continue working on implementing tests for Conway era.

cardano-cli

cardano-api

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-02-28-ledger + + 2024-02-28T00:00:00.000Z + + High level summary

Quite a useful and desired feature described in +CIP-0110 of allowing reference +scripts for PlutusV1 has been implemented for Conway.

For the most part we are now spending time on writing tests and enhancing out tooling that +we use for testing. This is paying out dividends since we are finding and fixing important +Conway related bugs. Notable bugs that were squashed this time around are related to using +incorrect stake distribution for both DReps and Stake Pools.

Low level summary

Conway

  • pull-4059 - Enable Plutus v1 reference scripts in Conway
  • pull-4088 - Committee query improvements
  • pull-4115 - Switch to using the correct stake pool distribution for voting
  • pull-4116 - Fix Drep stake distribution

Testing

  • pull-4100 - PPU wellformedness tests
  • pull-4097 - Test that unwithdrawn rewards contribute to voting power
  • pull-4102 - fix prop_DELEG in STS tests
  • pull-4106 - Imp script fixes
  • pull-4118 - Add test for maps with small domains
  • pull-4119 - NewConstraints phase1. Add BoolFn And and Or and tests
  • pull-4120 - Newconstaints phase2 rename IsUniverse (BaseUniverse), Fn (BaseFn)
  • pull-4130 - Added tests for checking proposal network IDs
  • pull-4114 - Imp Bootstrap address support

Improvements

Specification

Releasing

  • pull-4105 - Update RELEASING with revisioning instructions
  • pull-4117 - Use plutus-ledger-api 1.22.1
]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-02-28-mithril + + 2024-02-28T00:00:00.000Z + + High level overview

This week the Mithril team announced the release of a new Mithril distribution 2408.0. This release includes several critical updates and enhancements, such as improved support for stake distribution, Mithril era markers retrieval in the Pallas chain observer, enhanced support for the Conway era and Sanchonet network, as well as various bug fixes and performance improvements. +In addition, the team has made changes to the Mithril client CLI, changing the log output from stdout to stderr from v0.7.0. This announcement was made in the developer blog post.

The team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the support for the verification in the browser with the WASM client, they worked on enhancing the associated client CLI API, and implemented smoke tests. Additionally, the team has activated the signature of Cardano transactions on the testing-sanchonet network, and they have investigated a bug that prevents the signature of some transactions on this network.

Finally, the team worked on reorganizing the repository structure, fixed an issue with test folder generation on MacOS, and worked on some documentation improvements.

Low level overview

  • Released the new distribution 2408.0
  • Publication of a dev blog post about the Mithril SanchoNet network release.
  • Publication of a dev blog post about a breaking change in the Mithril client CLI.
  • Completed the issue Implement Cardano Transactions commands in the client binary #1469
  • Completed the issue Implement Cardano Transactions verification in the WASM client #1470
  • Completed the issue Some end to end tests are flaky in the CI #1147
  • Completed the issue Release 2408 distribution #1500
  • Completed the issue Unify test folder generation #1508
  • Completed the issue Adapt Mithril Client multi-platform test for Cardano Transactions #1510
  • Completed the issue Document Mithril signer footprint #1519
  • Completed the issue Add a runbook for running Client multi-platform tests #1530
  • Completed the issue Update workflow github actions to node-20 #1520
  • Worked on the issue Cardano transactions are not all signed in testing-sanchonet #1537
  • Worked on the issue Make HTTP server tests more robust #1524
  • Worked on the issue Stabilize namings in Cardano Transactions API #1535
  • Worked on the issue Reorganize crates in the repository #1528
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Worked on the issue P2P threat modeling and risk analysis #1350
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-02-23-hydra + + 2024-02-23T00:00:00.000Z + + High-level Summary

This week, the Hydra team successfully fixed the fanout after contest bug using their significantly improved model-based test suite. Additionally, they transitioned to cardano-api version 8.38 and started testing against cardano-node version 8.8. Furthermore, they enhanced fee estimation within the hydra-node internal wallet resulting in cheaper head opening / closing transactions and added transaction metadata to help identifying Hydra protocol transactions.

What did the team achieve this week

  • Fixed the fanout after contest bug using our signifcantly improved model-based test suite #1260
  • Switched to cardano-api 8.38 and run tests against cardano-node 8.8 #1297
  • Improved fee estimation in hydra-node internal wallet #1315
  • Added transaction metadata to identify Hydra protocol transactions (on L1) #1311

What are the goals of next week

  • Have the monthly review meeting + write a report
  • Explorer targeting and showing data of the latest released hydra version
  • Implement off-chain incremental commit protocol changes
  • Review EventSource and EventSink refactor done by SundaeLabs
  • See smoke tests passing consistently on Sanchonet
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Consensus Team Update]]> + 2024-02-21-consensus + + 2024-02-21T00:00:00.000Z + + High level summary
  • Triaged an issue where blocks were unnecessarily downloaded, and coded a prototype for a partial solution.
  • Discovered an io-sim bug while developing the Genesis state machine tests. The bug was already fixed upstream.
  • Added support for making the number of ledger state snapshots to be kept configurable. This needs to be integrated in the node.
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-02-21-mithril + + 2024-02-21T00:00:00.000Z + + High level overview

This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They worked on enhancing the client CLI output and almost completed the support for the verification of Cardano transactions in the browser with the WASM client. The team also worked on a new feature of the Pallas chain observer to support stake distribution retrieval, and fixed the majority of the flakiness occurring in the CI end-to-end tests. Additionally, they have deployed the new Mithril network running on SanchoNet.

Finally, the team created a new example crate for using the client library to verify Cardano transactions, kept working on the threat modeling and risk analysis for the Mithril network, and completed their new tool for automatic documentation generation for the CLIs.

Low level overview

  • Worked on the issue Implement Cardano Transactions commands in the client binary #1469
  • Worked on the issue Implement Cardano Transactions verification in the WASM client #1470
  • Worked on the issue Some end to end tests are flaky in the CI #1147
  • Completed the issue Re-spin Sanchonet network #1503
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Completed the issue Add signing capabilities to the root route of the aggregator #1496
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Completed the issue Add an example crate for the CardanoTransactions type #1495
  • Worked on the issue Unify test folder generation #1508
  • Completed the issue Generate automatic documentation for CLIs #1471
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Network Team Update]]> + 2024-02-19-network + + 2024-02-19T00:00:00.000Z + + High-level overview of sprint 55

This sprint the networking was nominated for the Cardano Release Engineer role and +we've been working on the integration of bootstrap peers with cardano-node. This +is a work in progress: cardano-node-5485. cardano-node-8.9 will be the first +node which supports the bootstrap peers feature, but we anticipate additional +improvements needed before this is used at scale.

We disabled mean reward for new peers in the churn mechanism which was hurting +connection in remote destinations. Thanks to Karl Knutsson (CF) for +providing evidence and a patch. In future, this mechanism will be further +changed, but this requires more analysis. ouroboros-network#4800

We continued working on tx-submission, ouroboros-network#3311

We welcome Marcin Wójtowicz as part of the Networking +Team of Cardano Core Tech. He reviewed our documentation as part of his +onboarding process: ouroboros-network#4802.

Andrew Westberg (DripDropz) corrected documentation regarding which +node-to-node protocol version introduced P2P.

Low-level summary

Open Source Contributions

IOSim

We released io-sim-1.4.1.0 with some new features & improvements:

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-02-16-hydra + + 2024-02-16T00:00:00.000Z + + High-level Summary

This week, the team made finally progress on the model based testing framework (and reproducing a bug) by fixing issues related to fully validating Cardano transactions. They also enabled continuous deployment of hydra-explorer to http://explorer.hydra.family/heads, facilitating easier access for users. Furthermore, they improved code quality by incorporating Haskell linting into their CI workflow and addeda user-ished conversion of HeadId to CurrencySymbol.

What did the team achieve this week

  • Fixed model based testing framework to fully validate Cardano transactions
  • Enabled continuous deployment of hydra-explorer to http://explorer.hydra.family/heads
  • Identified need for cardano-node 8.8 and cardano-api 8.38 (breaking changes) to continue integration with Conway networks
  • Added Haskell linting to our CI workflow - Minor addition to convert HeadId into CurrencySymbol #919
  • Reviewed a small refactor PR on our model-based test runner #1300

What are the goals of next week

  • Fix the fanout after contest bug
  • Bite the bullet and have a non-mainnet compatible master to complete smoke tests on sanchonet
  • Specify the on-chain validators for incremental decommits
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Performance & Tracing Update]]> + 2024-02-16-performance-and-tracing + + 2024-02-16T00:00:00.000Z + + High level summary
  • Benchmarking: Release benchmarks for 8.8.0 have been performed; we created a local repro for a residual issue.
  • Performance: We've implemented and benchmarked two candidates investigating residual issues with GHC9.6.
  • Development: Work on the reporting pipeline is ongoing; integration of DReps into benchmarking workloads has begun.
  • Workbench: Implementation of high-level profile definition is ongoing.
  • Tracing: The handle registry feature for cardano-tracer is completed; currently in testing.
  • Nomad cluster: Increased robustness of deployment and run monitoring has been merged; work on garbage collection has started.

Low level overview

Benchmarking

We've performed a full set of release benchmarks for Node 8.8.0-pre. Comparing with release 8.7.2, we could +not detect any performance risks for that version. We even saw a slight improvement in block fetch related metrics, which led to slightly improved block diffusion times.

Furthermore, we've managed to boil down a complex residual performance issue measured on the cluster to a local reproduction. This enables our DevX team, with highly specialized knowledge of GHC's compiler internals, to +investigate each step in code generation and optimzation, and independently observe the effects of code changes to the affected component.

Performance

Work on the remaining performance issue with GHC9.6 led us to produce two candidates based on Node 8.7.2, benchmarking +the implacations local small changes have for GHC9.6's optimizer. Though those candidates did not uncover the +issue's root cause, they were able to disprove a hypothesis as to its nature, and quantify the performance impact of said small changes.

Development

Node 8.8.0 comes with capabilities to inject DReps and DRep delegations into Conway genesis. We've started work +on integrating those into our automations, and setting sensible values for benchmarking. The aforementioned +delegations representing a new data structure in the Conway ledger, we aim to run +existing workflows extended with varying sizes of that new structure, measuring their pressure on ledger queries and operations.

Workbench

The performance workbench relies heavily on shell scripting and manipulating JSON data for a great part of its features. This approach +is very effective for quick experimentation, but lacks in verifiable properties as well as accessibility for new users of workbench.

After the successful Haskell port of cluster topology creation, and verification, we're currently applying +the same model in porting the entirety of benchmarking profiles to Haskell. The obvious gains are widening workbench's +audience both for users and developers, as well as implementing a principled approach to all workbench data structures and transformations.

At the same time, we're porting workbench's many options to create fine-tuned geneses, following the same approach.

Tracing

We've outfitted cardano-tracer with a handle registry feature that lets the service work on file handles internally, rather than opening and closing files for each operation. The feature is completed; at the moment we're adding +appropriate test cases to the service's test suite for validation of its behaviour, and for safeguarding future development.

Nomad backend

Several improvements for our cluster backend have been merged to master, increasing its overall robustness. We can now safely handle some corner cases where Nomad processes unexpectedly exited, or deployments errored out. Furthermore, an ongoing +run can now reliably survive a temporary loss of heartbeat connection between Nomad client and server, without +the benchmarking metrics being affected.

Currently, we're working on a reliable automation of garbage collecting old nix store entries on the cluster machines, as they fill up disk space. The design has to consider both not interfering with ongoing benchmarks, and +avoiding deployment overhead caused by cleaning the store too frequently.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[SRE Team Update]]> + 2024-02-16-sre + + 2024-02-16T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Sanchonet state was respun from slot 14255995 for cardano-node 8.8.0-pre
  • Cardano node 8.8.0-pre is now deployed to sanchonet, shelley-qa, two-thirds +of preprod and one-third of preview networks
  • IOG pool block producers are now signing mithril certificates for preview, +preprod and mainnet networks
  • A cardano performance dashboard is now available for both playground and +cardano-mainnet deployments

Lower level summary

Cardano-mainnet

  • Adds mithril signers and perf dashboard to the mainnet cluster; improves +network docs, tunes alerts, plus misc fixes: +cardano-mainnet-pull-8

Cardano-parts

  • Adds mithril signer capability to role-block-producer nixosModule, adds a +profile-mithril-relay nixosModule and includes misc other improvements and +fixes: +cardano-parts-pull-31

  • Updates packages for sanchonet respin, adds a node performance dashboard +template and fixes misc issues: +cardano-parts-pull-32

Cardano-parts

  • Adds mithril signers and mithril relays to preview and preprod networks and +includes misc other improvements and fixes: +cardano-playground-pull-15

  • Updates machines and pin for sanchonet respin, adds a node performance +dashboard and fixes misc issues: +cardano-playground-pull-16

Iohk-nix

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2024-02-15-node-cli-api + + 2024-02-15T00:00:00.000Z + + 2024-02-01 - 2024-02-15

High level summary

  • cardano-cli: Added the 'immutable' tip parameter to conway queries that allow the user to query either the current volatile tip (default) or the immutable tip. The committee keys can now sign transactions, required to submit votes.

  • cardano-api: Fix Conway PlutusV3 script hash mismatch. Make committee hash prefixes CIP-5 compliant.

cardano-cli

cardano-api

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-02-14-ledger + + 2024-02-14T00:00:00.000Z + + High level summary

Last few weeks were spent mostly on implementing various fixes, writing tests and +improving capabilities of our testing frameworks. Important bug fixes are:

  • Retention of Anchor for proposal procedures in the ledger state in order for users to be +able to query the node for those anchors
  • JSON serialization of rational numbers in protocol parameters and governance procedures +are encoded without loss of precision

Feature wise, we've added a new protocol parameter that controls the contribution of +reference scripts sizes in the transaction fee calculation formula.

Major achievement that is worth announcing is a Haskell package named +cuddle that we developed over the last few +months. Soon we will be transitioning to specifying CDDL in Haskell for all eras using +that package. It will be used to compile the CDDL specification that developers in the +community rely on so much. There are enormous benefits in using this tool, when compared +to writing CDDL specification manually. Namely it allows us to reduce duplication and +reuse common and unchanged specification from previous eras. It also improves safety and +correctness of our specification and decoders, because it ensures that the specification +is well typed and it uses QuickCheck to generate random data for validating that our +decoders are implemented according to the spec.

Low level summary

Conway

  • pull-4031 - Further proposals improvements. Take 2
  • pull-3996 - Index aware PlutusPurpose
  • pull-3983 - Include reference scripts size in min fee calculation
  • pull-4040 - Redeemers serialization fixes
  • pull-4033 - Make Conway-specific queries only available in Conway
  • pull-4028 - Embed ProposalProcedure in GovActionState
  • pull-4056 - Reduce duplication in Conway UTXOW rule
  • pull-4055 - Update MinFeeRefScriptCoinsPerByte.
  • pull-4053 - Rename committeeQuorum to committeeThreshold
  • pull-4058 - Fix ToJSON instance of BoundedRatio to avoid precision loss
  • pull-4070 - Rename AsIndex to AsIx
  • pull-4065 - Remove ConwayPool rule definition

Improvements

  • pull-4037 - Add capability to hash Plutus scripts directly
  • pull-4030 - Report Plutus ScriptHash upon execution failure

Testing

  • pull-3895 - Constrained v2
  • pull-3981 - Test proposals rewrite
  • pull-4051 - Full support of random and quickcheck-transformers in impTest
  • pull-4050 - Fixed the "All Tx are valid on traces of length 150" intermittent bug
  • pull-4049 - Support for Plutus scripts in ImpTest
  • pull-4075 - Discontinue the mingw target in the nix build
  • pull-4072 - Fix ouroborus-consensus serialization roundtrip test
  • pull-4080 - Test that a resigned CC cannot be reelected without removal
  • pull-4083 - Fix flakyness at the cost of turning test on during development
  • pull-4084 - Fix intermittent test failures in leader-proportion test

Specification

  • pull-4015 - Shelley ledger spec: amend erratum on nonce stabilization window
  • pull-4064 - Fix wrong prose for new epoch environment
  • pull-4081 - Fix MIR rule using wrong values for treasury and reserves

Releasing

]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-02-14-mithril + + 2024-02-14T00:00:00.000Z + + High level overview

This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the upgrade of the client library and the CLI to support the verification of Cardano transactions. They also released the new Mithril network running on SanchoNet. Additionally, the team rolled out a new feature of the Pallas chain observer (that now supports the retrieval of Mithril era markers), and kept investigating some flakiness occurring in the CI end-to-end tests.

Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and updated the Mithril network architecture documentation.

Low level overview

  • Published a development blog post Mithril SanchoNet network released
  • Completed the issue Implement transactions verification in client library #1468
  • Completed the issue Implement Cardano Transactions commands in the client binary #1469
  • Completed the issue Create a test network on SanchoNet #1173
  • Completed the issue Update Mithril network architecture documentation #1488
  • Completed the issue Upgrade http dependency #1474
  • Completed the issue Extract database feature from common crate #1492
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Worked on the issue Some end to end tests are flaky in the CI #1147
  • Worked on the issue Add an example crate for the CardanoTransactions type #1495
  • Worked on the issue Generate automatic documentation for CLIs #1471
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-02-09-hydra + + 2024-02-09T00:00:00.000Z + + High-level Summary

This week, the Hydra team worked on forward compatibility for Conway support, deployed the hydra explorer tool, and improved the model based testing to support more actions (Fanout and Rollbacks).

What did the team achieve this week

  • Addressed flakyness in two types of integration tests
  • Fixed our tooling (HLS 2.6 on GHC 9.6.4)
  • Fixed configuration of running head in preview
  • Added Fanout and Rollbacks to our Model basd test suite #1296
  • Deployed the hydra explorer to http://explorer.hydra.family:9090/heads (url will change a bit more)
  • Updated smoke test to run sanchonet

What are the goals of next week

  • Fix the fanout after contest bug
  • Specify the on-chain validators for incremental decommits
  • Complete smoke tests on sanchonet
]]>
+ + Daniel Firth + https://github.com/locallycompact + + +
+ + <![CDATA[Consensus Team Update]]> + 2024-02-07-consensus + + 2024-02-07T00:00:00.000Z + + High level summary

This week we managed to integrate in the node the Consensus version of the UTxO-HD prototype that features the second version of the Ledger DB API. +We also changed the epoch structure for Conway, made progress towards the Bootstrap State Machine and Peras planning. +On the support front, we are investigating the impact of snapshots on missed leadership checks.

]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-02-07-mithril + + 2024-02-07T00:00:00.000Z + + High level overview

This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the aggregator routes responsible for generating proofs of membership for a list of Cardano transactions and for listing produced artifacts. Additionally, they worked on extending the Mithril client library to support the verification of Cardano transactions, and on the creation of the new Mithril network running on SanchoNet.

Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and investigated some flakiness occurring in the end-to-end tests in the CI.

Low level overview

  • Completed the issue Implement proof generation route in the aggregator #1467
  • Completed the issue Implement artifact routes in the aggregator #1478
  • Completed the issue Enhance ImmutableFile list computation resilience #1450
  • Completed the issue Add WASM client step in Mithril Client multi-platform test #1408
  • Completed the issue Enhance end to end test for Cardano hard forks #1464
  • Worked on the issue Implement transactions verification in client library #1468
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Worked on the issue Some end to end tests are flaky in the CI #1147
  • Worked on the issue Handle cancellation of certificate verification in WASM client #1480
  • Worked on the issue Upgrade http dependency #1474
  • Worked on the issue Generate automatic documentation for CLIs #1471
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Network Team Update]]> + 2024-02-05-network + + 2024-02-05T00:00:00.000Z + + High-level overview of sprint 54

In this sprint, we merged the bootstrap peers (aka weak genesis) changes to +the ouroboros-network repository (ouroboros-network#4615). We continued +working on integration & testing it using an early development version of +cardano-node (cardano-node#5485).

Andrew Westberg (DripDropz) noticed and fixed a mistake in the cddl spec which resulted in +misleading documentation; ouroboros-network#4790. The Handshake protocol flag +should be called initiatorOnlyDiffusionMode. Library authors providing +connectivity with other nodes via the node-to-node protocol are advised to review +their implementation.

We continued working on the tx-submission decision logic; +ouroboros-network#3311.

Karl Knutsson (CF) implemented:

Open Source Contributions

IOSim

We released a new version of io-sim to Hackage:

NoThunks

We released a new version of nothunks to Hackage:

Low-level summary

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[SRE Team Update]]> + 2024-02-02-sre + + 2024-02-02T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano explorer is being sunset and will soon be replaced by a new Cardano +Foundation explorer
  • IOG mainnet pools are now participating in propagation time reporting using +Cardano Foundation's blockperf +tool
  • Cardano-parts node nixosConfigurations, node entrypoint and process-compose +node jobs now utilize mithril +client automatically on preview and preprod networks for faster +synchronization of first start up. Mainnet mithril client use as well as +signer modules will be available soon.

Lower level summary

Cardano-mainnet

Cardano-parts

  • Adds a block performance module which utilizes cardano-foundation's blockperf +for aggregate block propagation reporting: +cardano-parts-pull-29
  • Adds a mithril client for nixosConfigurations, process-compose cardano-node +processes and cardano-node entrypoint: +cardano-parts-pull-30

Iohk-nix

  • Adds required mithril client environment information for preview, preprod, +mainnet: +iohk-nix-pull-570

Cardano-world

Upstream Contributions

Blockperf

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-02-02-hydra + + 2024-02-02T00:00:00.000Z + + High-level Summary

This week, the Hydra team authored and published the monthly report for January 2024, enhanced user feedback for failed commands, updated cardano-api dependency and GHC to newer versions, re-opened their persistent head in preparation for the hard-fork, extended the model-based testing suite to cover the closing of heads, fixed a bug in io-sim, and contributed to cardano-node.

What did the team achieve this week

What are the goals of next week

  • Fix the fanout after contest bug #1260
  • Run Hydra smoke tests on sanchonet #1257
  • Specify the on-chain validators for incremental decommits #1057
  • Have the explorer hosted #696
  • Prepare PRs for dropped JSON instances from API #1213
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-01-31-ledger + + 2024-01-31T00:00:00.000Z + + High level summary

One very important Conway feature that became available since last report is the ability +for Stake Pool Operators to vote on some of the security relevant protocol parameter +updates. We organized proposal hierarchy into a cohesive implementation, which together +with good tests gives us confidence in its correctness.

We also fixed a few important bugs:

  • Preventing Constitutional Committee Members from voting on governance actions that they +should not be allowed to vote on.
  • Prevent deposits from appearing in orphaned reward accounts after the staking credential +has been unregistered, but before the proposal procedure deposit has been returned.
  • Ensure Sets are encoded in CBOR with tag 258 by default

Further improvements in testing tools and addition of more tests.

Low level summary

Conway

  • pull-3982 - Added SPO voting thresholds for security relevant parameters
  • pull-3978 - Proposals pruning rewrite
  • pull-4003 - Prefix Set encoding with tag 258
  • pull-3999 - Add PParamUpdates to the plutus context, by transforming them to Plutus Data
  • pull-4008 - Fixed a bug in GOV rule
  • pull-4013 - Remove EnactState from ConwayGovState
  • pull-4025 - Further improvements to Proposals
  • pull-4021 - Move unclaimed rewards from proposals to treasury

Testing

  • pull-3997 - Added DRep delegation injections to Conway
  • pull-4023 - Add a function registerInState to EraTransition
  • pull-4005 - Fixes in Shelley Imp framework and other small things
  • pull-4004 - Verify that enacted gov action is removed
  • pull-4016 - Fix Arbitrary instance and invariant checking for Proposals

Improvements

Releasing

]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-01-31-mithril + + 2024-01-31T00:00:00.000Z + + High level overview

This week, the Mithril team continued implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the signature of the transactions set and implemented the aggregator route, responsible for generating proofs of membership for a list of Cardano transactions. Additionally, they finalized the manual workflow to test the NPM client package in the CI and enhanced the resilience of computing the list of immutable files in a Cardano node database. The team also expanded the coverage of end-to-end tests in the CI to accommodate multiple versions of the Cardano node and various hard fork scenarios.

Finally, they completed the enhanced node communications between Mithril and Cardano for retrieving UTXOs and kept working on the threat modeling and risk analysis for P2P networking.

Low level overview

  • Completed the issue Light Wallet: Compute message to sign for CardanoTransactions #1436
  • Completed the issue Light Wallet: Implement proof generation route in the aggregator #1467
  • Completed the issue Enhance ImmutableFile list computation resilience #1450
  • Completed the issue Enhance end to end test for Cardano hard forks #1464
  • Completed the issue Add WASM client step in Mithril Client multi-platform test #1408
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Worked on the issue Generate automatic documentation for CLIs #1471
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2024-01-31-node-cli-api + + 2024-01-31T00:00:00.000Z + + 2024-01-16 - 2024-01-31

High level summary

  • cardano-cli: Adapt the output of the protocol-parameters query to show all parameters in Conway. Improved help on various commands. New command create-testnet-data to eventually replace create-staked.

cardano-cli

cardano-api

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Performance & Tracing Update]]> + 2024-01-31-performance-and-tracing + + 2024-01-31T00:00:00.000Z + + High level summary
  • Benchmarking: GHC 9.6.3 benchmarks for node 8.7.2 have been performed.
  • Development: Additional features for our reporting pipeline, while simultaneously reducing dependency footprint.
  • Tracing: Implementation for cardano-tracer to work on handles instead of files; work on New Tracing Quickstart document has begun.
  • Nomad cluster: We're preparing an upgrade to the latest Nomad version.

Low level overview

Benchmarking

We've performed a full set of GHC 9.6.3 benchmarks for node 8.7.2. For recommending GHC9.6 as a default build platform for cardano-node - from a performance perspective - we observe only one residual issue. As a way to +address this, we've decided to create a reproduction benchmark targeting the affected component.

Development

Our reporting pipeline will be expanded to support a wider range of rendering formats, as well as report templates. As the pipeline is part of our workbench - and thus gets downloaded and built when entering the workbench shell - it's +good practice to keep a small dependency footprint. When reworking the pipeline, we aim to simultaneously reduce dependencies.

Tracing

So far, cardano-tracer has internally been using files, or file names, for the purpose of logging trace messages it receives via forwarding. This is simple, but induces quite some overhead at runtime: files have to be opened and closed for each message. +Using and managing open file handles inside cardano-tracer does remove that overhead, but unsurprisingly introduces some complexity into the application code. Currently, we're working on implementing that change.

Furthermore, we're working on a Quickstart document for the new tracing system, with end users as its intended audience. It will contain recommended production use setup(s), and how to efficiently configure and run them step by step. Additionally, it +will provide a brief, but comprehensive overview over the features at the user's disposal.

Nomad backend

On the Nomad cluster, we've experienced undesired system behaviour when the heartbeat between the Nomad server and a client is interrupted temporarily - although the Nomad job itself is still 100% functional. A Nomad +upgrade to the latest version promises to fix that, but it turn comes with other issues. We're currently working on adapting our automation and deployment around those known issues, before we can eventually +apply the upgrade.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[DB Sync Team Update]]> + 2024-01-30-db-sync + + 2024-01-30T00:00:00.000Z + + High level summary

The DBSync team has prepared and tested a new db-sync version for mainnet, we have continued our +integration and update for Conway and have extended its modularity.

Lower level summary

  • We attempt to turn db-sync into a modular project that can run with wither low or high recourses +#1610 +#1613 +#1590

  • Moving the flags above to a config file +#1609

  • Optimizations +#1595 +#1607

  • Conway Support and updates +#1581 +#1573 +#1570

]]>
+ + Kostas Dermentzis + https://github.com/kderme + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-01-26-hydra + + 2024-01-26T00:00:00.000Z + + High-level Summary

This week, the Hydra team conducted yearly roadmapping sessions, introduced a +breaking API change to eliminate JSON encoding of transactions (refer to issue +#1213 for details), completed off-chain logic for incremental decommits through, +and implemented a hydra-explorer backend.

What did the team achieve this week

  • Conducted yearly roadmapping sessions
  • Merged a breaking API change to drop JSON encoding of transactions #1213 - contact us if you were relying on this.
  • Completed off-chain logic for incremental decommits #1223
  • Implemented a hydra-explorer backend #1235

What are the goals of next week

  • Publish the monthly report
  • Prepare PRs for hydra clients to switch to CBOR due to the changed API (see above)
  • Enhance the model testing framework to cover close/contest (needed to fix a bug and incremental decommit development)
  • Fix new bugs (all minors) and finish things before starting new
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Consensus Team Update]]> + 2024-01-24-consensus + + 2024-01-24T00:00:00.000Z + + High level summary

This week the team continued working on the second iteration of the Ledger DB API for UTxO-HD, as well as on Genesis. +We incorporated further improvements to the onboarding documentation, and wrote a document explaining a specific subtlety of our chain orders. +For Conway, we integrated DReps and initial delegates injection, which will allow the Performance and Tracing team to run benchmarks for this era.

]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-01-24-mithril + + 2024-01-24T00:00:00.000Z + + High level overview

This week, the Mithril team released the initial version of the Mithril client NPM package, enabling developers to integrate core Mithril features into their web applications running in a browser. They also released a new distribution, 2403.1, which includes support for Cardano node version 8.7.3, a new chain observer based on the Pallas library, along with bug fixes and performance improvements.

The team kept implementing a new entity type for certifying the Cardano transactions set in Mithril networks and made good progress on retrieving transactions and combining them into a Mithril protocol message. Additionally, they finished implementing a mock aggregator and using it in the browser tests for the Mithril client in WASM.

Finally, they worked on enhancing node communications between Mithril and Cardano and continued working on threat modeling and risk analysis for P2P networking.

Low level overview

  • Release of the mithril-client npm package library crate
  • Publication of a dev blog post about the released Mithril client npm package
  • Released the new distribution 2403.1
  • Completed the issue Light Wallet: Gather transactions from immutable files and store them in the database #1435
  • Completed the issue Light Wallet: Implement browser tests with fake aggregator #1407
  • Completed the issue Implement a fake standalone aggregator #1397
  • Worked on the issue Light Wallet: Compute message to sign for CardanoTransactions #1436
  • Worked on the issue Enhance ImmutableFile list computation resilience #1450
  • Worked on the issue Add WASM client step in Mithril Client multi-platform test #1408
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Completed the issue Add warn missing docs in mithril client cli #1439
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Network Team Update]]> + 2024-01-22-network + + 2024-01-22T00:00:00.000Z + + High level overview of sprint 53

We integrated bootstrap peers with cardano-node in an experimental branch +([cardano-node-5485], ouroboros-network-4615). We continued working on +tx-submission: ouroboros-network-3311.

Karl Knutsson (CF) worked on peer sharing improvements: ouroboros-network-4778.

Erik de Castro Lopo made ouroboros-network packages compile with GHC-9.8: +ouroboros-network-4727.

Nick Frisby (Tweag, Consensus Team), modified local-state-query mini-protocol +so that one can acquire the immutable tip and thus get information which is not +subject to rollbacks: ouroboros-network-4765.

Low level summary

Other, less significant changes / improvements include:

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-01-19-hydra + + 2024-01-19T00:00:00.000Z + + High-level Summary

The team made good progress this week, with the release of version +0.15.0 marking a milestone, along with the monthly review including +both Mithril and Hydra work. We addressed issues in smoke tests and +website publishing workflows, ensuring a more robust development +environment, and along the way included more "dogfooding" through the +use of Mithril to synchronize nodes in smoke tests.

What did the team achieve this week

  • Release of Version +0.15.0. This +release enhances the overall stability and functionality of our +product.
  • Monthly Review and Community Demos
  • Smoke Tests and Website Publishing Workflow Fixes: #1246
    • Resolved glitches in the website publishing workflows, enhancing +the efficiency of our deployment processes.
  • Integration of Mithril for Smoke Test Synchronization: #1252
  • Polishing of Hydra-Chess v0.1.0: #1237
    • Worked on polishing hydra-chess v0.1.0, treating it as an example +application running on Hydra. This not only demonstrates the +capabilities of our platform but also aims at providing a reference for future Hydra +developers.

What are the goals of next week

  • Merge Off-Chain Protocol Logic for incremental decommits
  • Initiate work on the on-chain portion of incremental decommits
  • Merge CBOR API Change #1240
  • Troubleshoot Dangling Fanout Issue #1260
]]>
+ + Arnaud Bailly + https://github.com/abailly + + +
+ + <![CDATA[SRE Team Update]]> + 2024-01-19-sre + + 2024-01-19T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general +environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-node 8.7.3 is now generally deployed to all testnet and mainnet environments +managed by coretech SRE

  • Dbsync and node stack process-compose jobs are now available from +cardano-parts for users running nix >= 2.17.0 and nix experimental-features += nix-command flakes fetch-closure

  • These can be run with:

     nix run github:input-output-hk/cardano-parts#run-process-compose-node-stack
    nix run github:input-output-hk/cardano-parts#run-process-compose-dbsync-$NETWORK
  • For more details, see the merged cardano-parts process-compose +PR

Lower level summary

Cardano-monitoring

Cardano-mainnet

  • Adds a readme, switches to nonmoving gc for producers, plus misc improvements +from cardano-parts: +cardano-mainnet-pull-6

Cardano-ops

  • Merged a long standing branch converting legacy mainnet relays to p2p, node -> +8.7.2, db-sync snapshots -> 13.1.1.3, and other improvements: +cardano-ops-pull-417

Cardano-parts

  • Adds a readme, provides misc improvements, service optimizations, alert tuning, +sql pool performance analysis fix, package updates: +cardano-parts-pull-27
  • Adds process-compose dbsync and node stacks: +cardano-parts-pull-28

Cardano-playground

Upstream Contributions

  • Contributions to upstream process-compose related repos were made in order to +complete the process-compose dbsync and node stacks in cardano-parts, +including the following:

Process-compose-flake

Services-flake

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-01-17-ledger + + 2024-01-17T00:00:00.000Z + + High level summary

Last week's achievement was that we finished PlutusV3 integration, which a massive piece of work.

Low level summary

Conway

Testing

  • pull-3989 - Fix too many discards.
  • pull-3986 - Remove libs/cardano-ledger-pretty
  • pull-3991 - Imp native script support
  • pull-3993 - Change Test.Cardano.Ledger.Generic.Proof so that there is no more Crypto Evidence.

Releasing

  • pull-3988 - Bump jinja2 from 3.1.2 to 3.1.3 in /doc
]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-01-17-mithril + + 2024-01-17T00:00:00.000Z + + High level overview

This week, the Mithril team completed the implementation of the client in the explorer, enabling direct certificate verification from the browser. They initiated the implementation of a new entity type for signing to certify the Cardano transactions set in Mithril networks. The team also upgraded the devnet to support the Conway era and activated the Mithril era marker reader on the Cardano chain in the end-to-end test. Additionally, they kept implementing a mock aggregator to strengthen Mithril client tests in WASM and continued working on threat modeling and risk analysis for P2P networking.

Finally, they worked on enhancing node communications between Mithril and Cardano, and they started rolling out the Cardano node in the infrastructure to version 8.7.3.

Low level overview

  • Completed the issue Light Wallet: Create new signed entity type for CardanoTransactions #1434
  • Completed the issue Implement the mithril client WASM package in the explorer #1409
  • Completed the issue Activate babbage/conway eras on devnet #1425
  • Completed the issue Transition Mithril Era Reader adapter to CardanoChain in devnet #1428
  • Completed the issue Upgrade Cardano node to 8.7.3 #1410
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Implement a fake standalone aggregator #1397
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2024-01-15-node-cli-api + + 2024-01-15T00:00:00.000Z + + 2024-01-01 - 2024-01-15

High level summary

  • cardano-cli: Improve queries drep and stake pool queries. Code clean-up
  • cardano-api: Added support for drep extended keys
  • cardano-testnet: Update to cardano-cli 8.18.0.0

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-01-12-hydra + + 2024-01-12T00:00:00.000Z + + High-level summary

This week, the Hydra team improved Github actions workflows, addressed protocol +parameter schema consistency in hydra-node, and made enhancements to log schema +tests. They created an Architectural Decision Record (ADR) for Cardano +transactions serialization in APIs, moved the hydra-chess project to a dedicated +repository, and resolved a bug in quickcheck-dynamic and model tests.

There will be the monthly review meeting with demos on Hydra, Mithril and +related projects. If this sounds interesting, join us in Google Meet +https://meet.google.com/udc-zgyw-agd next week, January 19 2024 at 17:30 UTC.

What did the team achieve this week

  • Github actions improvements and small fixes to the smoke tests #1242, #1233
  • Fixed protocol parameter schema consistency around hydra-node #1234
  • Log schema tests improvements and fixes #1244
  • Created ADR about Cardano transactions serialisation in our APIs +#1215
  • Moved hydra-chess #1237 to a dedicated cardano-scaling organisation repository https://github.com/cardano-scaling/hydra-chess
  • Identified bug on quickcheck-dynamic / our model tests #1239

What are the goals of next week

  • Monthly review meeting (January 19, 17:30 UTC) including several demos (from team and contributors)
  • Do release 0.15.0
  • Improve quickcheck-dynamic model to be more robust and cover more +behaviour.
  • Draft POC about backend for a hydra-explorer that can track all +heads on-chain.
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Consensus Team Update]]> + 2024-01-10-consensus + + 2024-01-10T00:00:00.000Z + + High level summary

For the past two weeks the Consensus team:

  • Resumed work on implementing the initialization and internals of the second iteration of the in-memory ledger database.
  • Resumed work on integrating the new ledger database API for UTxO HD.
  • Simplified query versioning for downstream users (863 and 403).
  • Confirmed the cause of missed leadership checks due to ledger snapshots (868).
  • Derived principles for the versioning/declaration of queries, since Conway complicates it (864 and 866).
  • Unblocked the Node Team in the work on rollback-insensitive leadership schedule queries (4765).
  • Drafted the (Pre-Genesis) Bootstrap State Machine (808).
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Ledger Team Update]]> + 2024-01-10-ledger + + 2024-01-10T00:00:00.000Z + + High level summary

Major Conway related development was the refactoring of how we distinguish Plutus +language versions in every era, thus drasticly improving the type safety and getting us +much closer to PlutusV3 integration.

There has also been many bug fixes and improvements since the last update. Some important bug +fixes are:

  • missing "protocolVersion" field in JSON instance for Babbage and Conway protocol parameters
  • requiring witnesses for DRep registration
  • new committee governance action ratification was implemented incorrectly
  • guard against invalid protocol versions in hard fork initiation proposals
  • failures during updates of Plutus CostModels were not retained
  • fixed the types for some protocol parameters in order to prevent values that are too large
  • serialization and CDDL fixes

A few useful features have been also implemented, like new ledger events, doubling the +limit for Url length, consensus query, JSON instances and so on. It was also required +for testing to implement a reliable transaction fee estimation function, which is now +available not only for testing, but also for cardano-cli.

Low level summary

Conway

  • pull-3915 - Utilize Inject type class for Val's inject
  • pull-3899 - Bring Plutus language version to the type level
  • pull-3917 - Ensure DRepRegistration certificate requires a witness
  • pull-3921 - Fix committee validation in Ratify
  • pull-3935 - Fixed a bug in Conway.Rules.Gov
  • pull-3956 - Allow 128 byte Url and DnsNames for decoder version atleast 9.
  • pull-3954 - Fix how we update CostModels
  • pull-3947 - Change the type of some pparam fields to align with how they are represented in Consensus
  • pull-3951 - Conway genesis DRep injection
  • pull-3961 - Switch ContextError to an injective type family from a data family
  • pull-3963 - Abstract getWitsVKeyNeeded
  • pull-3933 - Improve cbor serialization of TxWits in Conway
  • pull-3971 - ToJson instances for context error
  • pull-3977 - Added GetAccountStateQuery
  • pull-3975 - Add policy hash protection to TreasuryWithdrawals and ParameterChange

Testing

  • pull-3892 - Translate DRep expiry test from ConwayFeatures to Imp GovSpec
  • pull-3913 - Add certs to conformance testing
  • pull-3911 - Add a Preds to generate valid GovActionStates.
  • pull-3929 - Improve comment on unit_interval in cddl
  • pull-3950 - Use discard to avoid bad traces for fixOutput
  • pull-3935 - Add some Imp tests for HardForkInitiation.
  • pull-3964 - Ignore thunks in utxosDeposited
  • pull-3962 - Add estimateMinFeeTx
  • pull-3976 - Introduce accurate min fee calculation function: calcMinFeeTx

Improvements

  • pull-3930 - Change type of mintedTxBodyL to PolicyID
  • pull-3924 - Split type classes out of eras Core module
  • pull-3934 - Type safety bugfixes
  • pull-3949 - Add FromJSON BabbagePParams instance
  • pull-3953 - Babbage / Conway PParams JSON serialization
  • pull-3946 - Epoch interval instances
  • pull-3932 - Add ledger event TxUTxODiff
  • pull-3969 - Add missing stake key deposit in formal spec
  • pull-3973 - Move functionality of Cardano.Ledger.Pretty to Test.Cardano.Ledger.Generic.PrettyCore

Releasing

]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2024-01-10-mithril + + 2024-01-10T00:00:00.000Z + + High level overview

This week, the Mithril team worked on implementing the client in the explorer to enable direct verification of certificates from the browser. They also addressed the configuration issue in the signer node service, which occasionally resulted in signers not registering their keys after a restart. Additionally, the team kept implementing a mock aggregator to strengthen Mithril client tests in WASM, continued working on threat modeling and risk analysis for P2P networking, and progressed with the devnet upgrade to support the Conway era.

Finally, they worked on enhancing node communications between Mithril and Cardano and completed the upgrade of the Cardano node topology used in the Mithril networks' infrastructure.

Low level overview

  • Published a development blog post Mithril signer service new configuration
  • Completed the issue Simplify Mithril client CLI download command #1406
  • Completed the issue Make all infra Cardano nodes use P2P topology #1405
  • Completed the issue Implement ChainObserver adapter configuration in aggregator #1396
  • Completed the issue Fix signer node service setup #1404
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Implement a fake standalone aggregator #1397
  • Worked on the issue Implement the mithril client WASM package in the explorer #1409
  • Worked on the issue Light Wallet: Implement browser tests with fake aggregator #1407
  • Worked on the issue Activate babbage/conway eras on devnet #1425
  • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Network Team Update]]> + 2024-01-09-network + + 2024-01-09T00:00:00.000Z + + High-level overview of sprint 52

Happy New Year!

In this short sprint we analysed a failure which happened on a new large +cluster that's run by IOG. The process exhausted all file handles and was left +without any functional connections. The issues apparently is rare, and thus +doesn't impose a high risk.

We also continued working on tx-submission: ouroboros-network-3311.

Detailed description

It turned out that the process exhausted the number of file handles leaking +multiple /proc/{PID}/stat files open. We suspect that the bug is caused by

  • using lazy IO in iohk-monitoring-framework, and
  • using a recent kernel version

With lazy IO file handles are read as long as the data is required and they are +closed only when EOF is reached. We currently suspect that a new linux kernel +added something at the end of the /proc/{PID}/stat which is not parsed by +iohk-monitoring-framework, so whenever the file is read we leak it (it's +never closed) and eventually, there are no file handles to be used by the +network layer: the accept loop doesn't return any inbound connection, neither +an outbound connection can be created. This issue will be addressed by the +profiling team (which owns the logging subsystem).

The fix will be proposed in the future release, in the meantime we suggest to +keep observing file handles used by the node.

I would like to thank John Lotoski (IOG), Karl Knutsson (CF), Neil Davies +(PNSol) and Michael Karg (IOG) who all contributed to this analysis.

While analysing the log we also found a few smaller issues in the outbound +governor which were fixed in [ouroboros-network-#4764].

The IO error indicating exhausting file handles is not currently visible. It +is not re-thrown nor logged. This needs to be fixed in a future version. See +ouroboros-network-4769.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Hydra Team Update]]> + 2024-01-05-hydra + + 2024-01-05T00:00:00.000Z + + High-level summary

In between the end-of-year holidays, the Hydra team completed the implementation +of the Conway support feature, fixed a minor bug that was hindering tests from +running on MacOS, and addressed a regression in the protocol-parameter formats +used by the hydra-node. They also worked on off-chain code for incremental +decommits, specifically focusing on transaction creation. Furthermore, they +conducted a spike on implementing a Chess game using Hydra, with an experience +report provided.

What did the team achieve this week

  • Fixed a regression on protocol-parameter formats used by the hydra-node #1226
  • Fixed a minor bug prohibiting tests running on MacOS #1218
  • Complete conway support feature #1227
  • Transaction creation off-chain code for incremental decommits #1218
  • First spike on implementing a Chess game on Hydra report, related to: #1098

What are the goals of next week

  • Fully resolve protocol parameter misalignment #1234
  • Cut a release 0.15.0 to ship offline-mode and conway support
  • Prepare demo for conway support
  • Complete transaction creation and observation for incremental decommits
  • Backend for a hydra-explorer that can track all heads on-chain
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[SRE Team Update]]> + 2024-01-05-sre + + 2024-01-05T00:00:00.000Z + + High level summary

During the lightly staffed holiday period for node SRE, the emphasis was on +maintaining environment stability, tuning and resolving any noisey alerts.

Investigation into and testing around the following two topics also +started during this period:

  • Ledger snapshots causing a small number of missed slots for forgers on mainnet: +ouroboros-consensus-issue-868

  • A cardano-node rare file descriptor leak, with a more detailed description +here

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-12-30-node-cli-api + + 2023-12-30T00:00:00.000Z + + 2023-12-09 - 2023-12-30

High level summary

  • Migrated reposotiries to IntersectMBO.
  • Improved era handling on cardano-api. Instead of enumerating every possible era, we use two constructors: +'CurrentEra' and 'UpcomingEra'. This design simplifies the handling of eras, especially for cardano-api consumers who are primarily concerned with the current mainnet era and the next era for an upcoming hardfork.
  • Cleaning-up the cardano-cli, in particular to the babbage era commands where some Conway options had spilled.

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-12-22-hydra + + 2023-12-22T00:00:00.000Z + + High-level summary

This week, the Hydra team made significant progress, implementing an offline mode with associated refactoring. They enhanced user experience by detecting incompatible eras in hydra-node. Protocol changes were implemented for incremental decommits, addressing off-chain logic. Additionally, the team contributed fixes to cardano-ledger and coordinated with the Eternl team on enabling committing into a head from their wallet.

What did the team achieve this week

  • Offline mode implementation +#1118 and +refactoring +#1222
  • Detect incompatible era in hydra-node and provide better UX +#1216
  • Implemented protocol changes for incremental decommits (off-chain +logic) #1057
  • Contributed fixes to cardano-ledger#3949 and +#3953
  • Synced up with the Eternl team on enabling committing into a head from +their wallet

What are the goals of next week

  • Maybe cut a release 0.15.0 to ship offline-mode and unsupported era UX
  • Full conway support in hydra-node
  • Transaction creation and observation for incremental decommits
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Network Team Update]]> + 2023-12-22-network + + 2023-12-22T00:00:00.000Z + + High-level overview of sprint 51

Outbound Governor Bug in cardano-node-8.7.2

In the current sprint, we received a bunch of reports from SPOs about nodes not +maintaining some connection when using cardano-node-8.7.2 (running in P2P +mode). Such regressions are very important to us since they can lead to lost +blocks. We were able to reproduce this issue. Every time there's a longer +pause of block production (due to the statistical nature of Ouroboros), there +is a chance that the bug will be armed. For this reason cardano-node-8.7.2 +needs to be closely monitored.

We found the bug and developed a fix, ref. Karl +Kntusson (CF) wasn't able to reproduce the bug with the patched version of +the node for long enough (almost two weeks now) for us to belive that the fix +is correct.

Advise for SPOs

We created a release branch for 8.7.3. The advice from +the network team is to either downgrade to the previous release, e.g. 8.1.2 +or use the above release branch (note that there were no benchmarks made or Q&A +tests yet).

Testing plans

We were also able to reproduce the bug using IOSim, ouroboros-network#4757. +However, the bug relies on a particular schedule of two threads which are +involved and we needed to artificailly modify IOSim schedule in production +code - something that we don't want to commit to the master branch. We also +experimented with a randomised scheduler for IOSim, but that did not lead to +finding the schedule which arms the bug: the search space grows exponentially +with the number of steps in the threads, partial order reduction techniques +implemented in IOSimPOR are more appropriate - unfortunatelly the simulation +test is too large to be executed in IOSimPOR even with large amounts of +RAM. To use IOSimPOR we need to implement a test which includes the two +interacting components:

  • connection-manager
  • outbound-governor (where the bug was located)

which communicate through PeerStateActions, without including all the +diffusion components as we do in our sim-net tests. More in style of +outbound-governor tests where there is just a single outbound-governor, +unlike in the sim-net which runs multiple communicating diffusions.

Bootstrap peers

We continued working on bootstrap peers, ouroboros-network#4555

TxSubmission Decision Logic

We continued working on tx-submission decision logic, ouroboros-network#3311

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[SRE Team Update]]> + 2023-12-22-sre + + 2023-12-22T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • A new repository was created which enables agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: cardano-monitoring
  • The govtool backend swagger interface was nix flake packaged and deployed for Voltaire private chain testing usage
  • Grafana cloud monitoring stacks were migrated to new EC2 cardano-monitoring servers
  • Cardano-db-sync state snapshots now support client range requests, details here
  • In addition to monitoring server centralized grafana metrics, sysstat collected system metrics are now available locally on all cluster machines at high time resolution
  • Code changes required due to repository migrations to IntersectMBO have largely been completed

Lower level summary

Auth-keys-hub

Cardano-monitoring

  • A new repository enabling agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: cardano-monitoring

Cardano-parts

  • Migrate from grafana cloud monitoring to ec2 monitoring, add resource tagging support, declarative route53 CNAME list, and additional improvements and fixes: cardano-parts-pull-25
  • Improve ssh key handling and edge cases, resolve misc issues, add IOPS and throughput gp3 openTofu support: cardano-parts-pull-26

Cardano-playground

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-12-20-mithril + + 2023-12-20T00:00:00.000Z + + High level overview

This week, the Mithril team completed aggregator optimizations, enabling the certification of new data types without introducing a new era. They also facilitated the selection of these data types through a simple configuration parameter. Additionally, the team started implementing a mock aggregator to strengthen Mithril client tests in WASM, kept working on threat modeling and risk analysis for P2P networking, and progressed with the implementation of a testing Mithril network for SanchoNet.

Finally, they worked on some optimizations and refactoring of the Mithril client CLI and started upgrading the Cardano node topology used in the Mithril networks' infrastructure.

Low level overview

  • Completed the issue Implement open_message timeout in aggregator #1387
  • Completed the issue Implement configurable signed entity types in aggregator #1388
  • Completed the issue Enhance machine readable logs in client #1234
  • Completed the issue Manual publication to npm registry with GitHub action #1411
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Implement a fake standalone aggregator #1397
  • Worked on the issue Simplify Mithril client CLI download command #1406
  • Worked on the issue Make all infra Cardano nodes use P2P topology #1405
  • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-12-15-hydra + + 2023-12-15T00:00:00.000Z + + High-level summary

This week, the Hydra team identified and resolved issues with a malfunctioning +head on mainnet, implementing preventive measures. They edited and merged a new +Architectural Decision Record (ADR) proposed by SundaeLabs, upgraded +cardano-node to version 8.7.2, and improved the TUI user experience. +Preparations for "Conway support" were initiated, and updates were made to logs +and API schemas. Additionally, initial steps were taken towards incremental +decommits.

What did the team achieve this week

  • Troubleshoot and recover a broken head on mainnet. Opened issue +#1202 and PR +avoiding this in-flight +#1211
  • Designed and proposed a new ADR to generalize EventSource and +EventSinks#1157, +contributed by SundaeLabs.
  • Upgrade cardano-node to 8.7.2 +#1199 and +re-enables e2e nix-shell support on Darwin +#1203
  • UX enhancement on TUI +#1201
  • Preparations for "Conway support" +#1177[#1206 & +#1207]
  • Update logs and api schemas +#1212
  • First steps on incremental decommits +#1057:
    • Drafted the e2e workflow +#1205
    • Added decommit API endpoints +#1209

What are the goals of next week

  • Detect incompatible blocks and provide better UX
  • Conway support in hydra-node
  • Off-chain logic for incremental decommits
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-12-13-mithril + + 2023-12-13T00:00:00.000Z + + High level overview

This week, the Mithril team completed the adaptation of the Mithril client library for WASM compilation, providing a JavaScript API for it. They also completed the proof of concept to demonstrate that a subset of Cardano transactions is part of the entire transactions set. The refactoring of the Mithril client CLI with the Mithril client library was also finalized. Additionally, the team kept working on the threat modeling and risk analysis for P2P networking, along with progressing in the implementation of a testing Mithril network for SanchoNet.

Finally, they started implementing an expiration mechanism for the open messages in the aggregator, and they completed the upgrade of Rust dependencies with breaking changes.

Low level overview

  • Completed the issue Light Wallet: Implement mithril-client WASM library #1336
  • Completed the issue Light Wallet: Certify Cardano UTXO/transactions set PoC #1393
  • Completed the issue Refactor mithril-client-cli with mithril-client library #1335
  • Worked on the issue Implement open_message timeout in aggregator #1387
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Enhance machine readable logs in client #1234
  • Worked on the issue Create a test network on SanchoNet #1173
  • Completed the issue Upgrade breaking changes crates #1357
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Performance & Tracing Update]]> + 2023-12-11-performance-and-tracing + + 2023-12-11T00:00:00.000Z + + High level summary
  • Benchmarking: Release benchmarking for node 8.7.2, as well as P2P benchmarks - the latter being a premiere for the Nomad cluster.
  • Development: Work on automating the submission of Conway transactions for registration of and stake delegation to DReps is ongoing.
  • Infrastructure: We're preparing to safely retire our current benchmarking cluster.
  • Tracing: The documentation for the new tracing system is being reworked. Additionally, we've added a feature to cardano-tracer to capture performance over a long runtime.
  • Nomad cluster: The Nomad backend has been successfully equipped with support for up-to-date P2P topology, as well as deployment for Plutus script data.

Low level overview

Benchmarking

We've performed a full set of release benchmarks for node 8.7.2. From a performance perspective, it has been greenlit for mainnet release. Starting with this version, our team will publish observations alongside the original comparative analysis of benchmarks, providing insight into key metrics and resource usage. Hence, for the post on version 8.7.2, see here.

Additionally, we're running P2P versus no-P2P benchmarks on the same version. We intend to establish future baseline runs using P2P topology as the default setting. All our cluster nodes being block producers, it is crucial to establish the P2P stack does not exhibit any regression regarding block forging. Furthermore, the evidence gathered from those benchmarks forms the base for a recommended setting for P2P on mainnet block producers.

It deserves special mention that those P2P benchmarks are our first production runs with the Nomad cluster - and using the new tracing system exclusively. Having finalized all optimization rounds of the latter, and having meticulously eliminated all confounding factors from the Nomad infrastructure, we're confident in the measurements being subject to extremely low variance - which we made sure of in many past validation runs on Nomad.

Development

Orchestrating DRep actions into benchmarking workflows has opened up a fairly large design space. Currently, we're focusing on having stake delegated to DReps, in order to trigger ledger pulses for calculations particular to DRep actions. We can benchmark a possible +performance impact of those pulses - even if there are no actions ongoing - as a first step.

The contributing factors to the cost of those pulses are both the number of DReps registered, and the number of delegations to them. It is still under debate which values represent a probable model for mainnet, and whether we can achieve stake delegation programmatically (i.e. by submitting transactions), or if, for large numbers, we need means to inject those delegations into genesis.

Infrastructure

With the switch of all production benchmarks to the Nomad cluster, we will retire the legacy cardano-ops cluster very shortly. Currently, we're making sure that when all its resources are released, we keep an archive for all runs performed, including all raw log data - with the oldest runs dating back as far as December 2019.

Tracing

We've outfitted the cardano-tracer service with the same kind of resource tracing machinery that's used by cardano-node - as well as created a dedicated benchmarking profile for it. It puts very little pressure on the node; instead it causes 6 nodes to emit traces at a rate of >35 messages per second, putting pressure on cardano-tracer via trace forwarding at >200 messages per second for an extended period of time. Analysis of these traces will form the ground for various optimizations of cardano-tracer that are currently being worked on.

As we aim for early 2024 to be able to recommend the new tracing system as default in production use, we're currently also reworking the comprehensive documentation to reflect all changes made over the last months.

Nomad backend

In addition to being able to deploy Plutus script data and redeemers seperately (instead of inlining them as the legacy cluster did), the Nomad cluster now supports being set up with recent P2P topology. No-P2P topology format will still be supported +for occasional regression benchmarking of the P2P stack, when desired. Furthermore, we've completed porting all benchmarking profiles from the legacy cluster to Nomad.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-12-08-goedel + + 2023-12-08T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols, working on a +performance modelling paper and working on a performance modelling +prototype tool

Details

  • completing work on chain sync mini-protocol

  • proof sketch of conformance property of chain sync mini-protocol

  • new content for JLAMP paper

  • NWPT talk

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Network Team Update]]> + 2023-12-08-network + + 2023-12-08T00:00:00.000Z + + High-level overview of sprint 49 & sprint 50

Fixed PeerSelection bug

Karl Knutsson (Cardano Foundation (CF)) found a bug in +the cardano-node-8.7.0 version used on the Sancho Net which was fixed in 8.7.1. +It resulted in a node not being able to reconnect to an upstream peer once it +was demoted by an asynchronous exception. This bug would be caught by Q&A in +a mainet release, but for testnet releases, Q&A test suite is not used. We also +developed a test which covers the bug in the ouroboros-network, we also identified +a missing PeerSelection test which we need to port to our simulation network. +See ouroboros-network#4734, ouroboros-network#4665.

Bootstrap Peers

Still under review, ouroboros-network#4555. The consensus team is now +implementing the API we need for bootstrap peers. Once consensus API is implemented we will integrate changes in an experimental branch of +cardano-node.

Tx-Submission

We started working on a new implementation of the tx-submission application. No +tx-submission protocol changes are foreseen, but we want to be able to +download each tx from just one upstream peer and share the results between +different connections. We want to distribute the bandwidth between multiple +clients. We also think that this work will prepare us for the future +Ouroboros-Leios changes, which will contain various versions of tx-submission +like mini-protocols. See ouroboros-network#4701.

Peer Sharing

Various fixes and improvements were implemented:

  • ouroboros-network#4725

    • disabled peer sharing with initiator-only nodes: currently it's not +possible to get peers from initiator-only nodes (edge nodes, e.g. +wallets). In the future, we might change this, which will require running +a server-side of the peer-sharing protocol by such nodes. See +ouroboros-network#4726.
    • fixed peer-sharing codec
    • fixed a handshake bug which returned a wrong peer-sharing option
  • ouroboros-network#4728

    • disabled peer-sharing for NodeToNodeV_11 and NodeToNodeV_12
  • Karl Knutsson (CF) has been working on additional improvements, e.g. ouroboros-network#4735

With these fixes, Karl Knutsson (CF) was able to see that two peers on the mainnet +can discover themselves through peer-sharing and keep being mutually useful +and thus the connection surviving outbound-governor churn events.

IOSim

We improved the memory footprint of IOSim in io-sim#126, see +ouroboros-network#4721 for heap profile improvements on large test cases.

We are working on optimising the memory footprint of IOSimPOR. We are +reimplementing VectorClocks using a trie, instead of a map which leads to +significant improvements.

Cardano-Ping

cardano-node-0.2.0.10 was released to CHaP, ouroboros-network#4746. This +version exports more APIs which turned out to be useful in cardano-node test +suite, see cardano-node#5536.

Technical Debt

We addressed some small tech-debt issues in ouroboros-network#4722:

  • fixed some typos
  • using bracket instead of onException in withSnocket
  • improved haddocks
  • organised TracePeerSelection constructors

We improved the memory footprint of some of our tests in ouroboros-network#4721.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-12-08-node-cli-api + + 2023-12-08T00:00:00.000Z + + 2023-11-15 - 2023-12-08

High level summary

This is sprint was mostly about bug fixing, code clean-ups and optimizations in preparation for a mainnet suitable release.

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[SRE Team Update]]> + 2023-12-08-sre + + 2023-12-08T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • Sanchonet was respun to cardano-node 8.7.0-pre, and upgraded to cardano-node 8.7.1-pre shortly afterwards
  • Cardano-node 8.7.2 was released and all environments were then upgraded to 8.7.2
  • Cardano-parts deployed machines were upgraded to nixpkgs 23.11 and nix 2.19.3
  • Cardano-parts resource deployed environments were switched from the use of Terraform to OpenTofu

Lower level summary

Capkgs

  • Updated for cardano-node 8.7.2 and process-compose packages: capkgs-compare

Cardano-parts

Cardano-ops

Cardano-playground

Cardano-world

  • Sanchonet update PR: cardano-world-pull-111
    • Merge the long running sanchonet-updated branch
    • Migrate explorers from ziti to wireguard tunnel usage
    • Remove remaining ziti code and provisioned resources
    • Retire remaining nomad jobs in preference of the cardano-playground environments
    • Downsize the cluster in preference of the cardano-playground environments

Iohk-nix

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-12-08-hydra + + 2023-12-08T00:00:00.000Z + + High-level summary

This week, the Hydra team made progress by releasing version +0.14.0, +incorporating updates and improvements. They also updated dependencies +in preparation for Conway support, addressing +#1114. +Additionally, the team completed substantial refactoring in hydra-node +using stateless observation, aiming to enhance system efficiency and +performance +#1096. Lastly, +they investigated regressions related to JSON serialized transactions +and consider dropping this in favor of CBOR only submission.

What did the team achieve this week

  • Released version +0.14.0
  • Updated dependencies to prepare for Conway support +#1114
  • Completed substantial refactoring in hydra-node using stateless +observation +#1096
  • Investigated regressions about JSON serialized transactions

What are the goals of next week

  • Analysed our mainnet head and why some transactions were invalid
  • Detect incompatible blocks and provide better UX
  • Update to newer cardano-node and Conway support in hydra-node
  • Draft the end-to-end workflow for incremental decommits
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Ledger Team Update]]> + 2023-12-06-ledger + + 2023-12-06T00:00:00.000Z + + High level summary

This period we reached a major milestone, namely we now have an initial version of Conway +conformance testing working. We are now able to generate random valid data with the help +of constraint based testing framework, apply that data to Conway Ledger rules and verify +that the output matches to the one produced by the executable version of the Formal Ledger +Specification, when it is applied to the same random data.

We also had a couple of Conway bugs fixed and a few new predicate check implemented. Get +Constitutional Committee query is complete and tested. Various improvements to the +testing tools. Addition of more test cases.

Low level summary

Conway

  • pull-3888 - Add checks for valid ProtVer when a proposal is a HardFork
  • pull-3902 - Fix pvCanFollow usage in Conway and improve clarity in Shelley
  • pull-3855 - Remove unreachable proposals
  • pull-3903 - Add lenient decoder for Addr
  • pull-3878 - Committee query - implement next epoch change

Testing

  • pull-3893 - Move tree-diff dependency to tests together with all instances
  • pull-3896 - Fix Brute force failure
  • pull-3904 - New ListWhere Pred added to the Constrained Solver.
  • pull-3907 - cardano-ledger-conformance: Remove CHANGELOG.md from cabal file
  • pull-3883 - Committee QuerySpec Imp Test
  • pull-3909 - Make impAnn a bit more useful, by making the logs scoped by impAnn
  • pull-3908 - Use upstream testing instances for very basic types
  • pull-3912 - Removed call to tail, and the 'watchPulser' test
  • pull-3852 - Added constrained generators to conformance tests - Part 1

Improvements and releasing

]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-12-06-mithril + + 2023-12-06T00:00:00.000Z + + High level overview

This week, the Mithril team made progress in adapting the Mithril client library for WASM compilation and providing a JavaScript API for it. They also completed the optimization of the aggregator's performance. Additionally, the team initiated the implementation of a testing Mithril network for SanchoNet and conducted threat modeling and risk analysis for P2P networking.

Finally, they enhanced the developer experience of the Mithril client library by providing ready-to-run examples in the repository and implemented a workflow to manually publish libraries on crates.io.

Low level overview

  • Worked on the issue Light Wallet: Release mithril-client WASM library #1336
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Create a test network on Sanchonet #1173
  • Worked on the issue Upgrade breaking changes crates #1357
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Completed the issue Enhance aggregator REST API performances #1327
  • Completed the issue Signer runtime is stuck for some SPO #1312
  • Completed the issue Make mithril-client examples full crates #1385
  • Completed the issue Manual publication to crates.io with GitHub action #1380
  • Completed the issue Remove sqlite dependency from mithril-client crate #1390
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Performance & Tracing Update]]> + 2023-12-04-performance-and-tracing + + 2023-12-04T00:00:00.000Z + + High level summary
  • Benchmarking: Release benchmarking for node 8.7.0. Also, we performed the first-ever Conway benchmarks.
  • Development: Conway capability of our workload generator has been implemented and merged to master.
  • Infrastructure: Changes to our workbench facilitating easy access and archiving of raw benchmarking data.
  • Tracing: Quality-of-life improvements to tracing output and addition of a test suite.
  • Nomad cluster: Expand the list of benchmarking profiles that can be run on Nomad; generalize cluster topology generation.

Low level overview

Benchmarking

A full set of benchmarks for node 8.7.0 has been performed, with the focus of enabling the next mainnet release. We've measured slight performance improvements of 8.7.0 over 8.6.0, and can confirm no regressions have been introduced.

Furthermore, we've run system integration level benchmarks in the Conway era for the first time, on the same node version. +Only Babbage-compatible workloads have entered comparison as to ascertain performance consequences of only changing the ledger version, and nothing else. The results are very promising, as we could show that switching ledger versions for existing workloads does not come with a performance penalty.

Development

Our transaction generator has been extended to be able to submit all present benchmarking workflows in the Conway era. +Currently, we're looking into adding Conway-exclusive features, such as DRep registration. Those would be submitted at the very beginning of a run, as we're interested in seeing potential performance implications of maintaining DRep sets of varying size in ledger. Furthermore, this will serve as the basis for future development Conway-exclusive workloads, such as governance actions or vote tallying.

Infrastructure

As our workbench will be pivotal in orchestrating and organizing benchmarking runs on the Nomad cloud backend, we've +improved how raw benchmark data is tagged, which metadata is documented in an automated manner. This enhances both access to existing run sets, as well as maintaining an archive for benchmarking data.

Tracing

The new tracing system is currently receiving usability improvements as we're reworking the output of several trace messages. +Additionally, we're setting up a rigorous test suite to provide safety for future development of and component integration inte the system.

Nomad backend

We've been working on adapting various benchmarking workloads, which are defined by our workbench's profiles, to running on the new infrastructure. This mainly concerns a workload utilizing Plutus, as well as peer-to-peer flavoured workloads. Furthermore, we're implementing a solution to create all possible cluster topologies algorithmically, instead of still using fixed literal definitions for some cases.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-12-01-hydra + + 2023-12-01T00:00:00.000Z + + High-level summary

This week, the Hydra team conducted a packed Monthly Review meeting, +featuring demonstrations and the preparation of the monthly report. They +addressed flakiness in tests and enhanced the logs json schema, +improving overall test reliability. Additionally, the team successfully +built MacOS ARM64 (aarch64-darwin) binaries in CI, expanding platform +support. They further improved the network configuration by detecting +incompatible persisted states, contributing to overall system +robustness. Finally, the team released version 0.14.0, highlighting +their commitment to delivering regular updates and improvements.

What did the team achieve this week

  • Monthly Review +meeting +packed with demonstrations and prepared monthly report +#1189
  • Fixed several flaky tests and improved the logs json schema +#1188#1190#1192
  • Built MacOS ARM64 (aarch64-darwin) binaries in CI +#1182
  • Improved network configuration by detecting incompatible persisted +states #1174
  • Released version 0.14.0

What are the goals of next week

  • Start work on incremental decommit
  • Continue shepherding contributed PRs to completion
  • Finish stateless-observation work
  • Open a head on a Conway network
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-11-29-consensus + + 2023-11-29T00:00:00.000Z + + High level summary

The Consensus team implemented and tested a patch that does not propagate future headers. +It is under review, and we expect it can be released in the next Cardano node version. +On the UTxO-HD front, we finished prototyping the LedgerDB and BackingStore redesign, which is required for the LSM-tree integration and might help us implement a more resource efficient in-memory backend. +With this prototype finished we can start integrating the rest of the code. +We investigated the unexpected performance degradation observed when acquiring the block context. +We also released Cardano node 8.7.0 and moved tree-diff outside cardano-ledger libraries.

]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-11-29-mithril + + 2023-11-29T00:00:00.000Z + + High level overview

This week, the Mithril team released the initial version of the Mithril client library, enabling developers to integrate core Mithril features into their applications. They also released a new distribution, 2347.0, which includes support for slim certificate production by the aggregator, along with bug fixes and performance improvements.

The team also introduced the initial version of Cardano/Mithril node communication enhancements, implemented by TxPipe as part of the Catalyst project. They made progress in decentralizing Mithril networks, including testing the Mithril peer-to-peer (P2P) relay on a test network and conducting threat modeling and risk analysis for P2P networking. Additionally, they started working on adapting the Mithril client library for WASM compilation and made progress in optimizing aggregator performance.

Finally, they fixed inaccuracies in the verbosity level of logs across most nodes and worked on troubleshooting for some users.

Low level overview

  • Release of the mithril-client library crate
  • Publication of a dev blog post about the released Mithril library
  • Released the new distribution 2347.0
  • Worked on the issue Light Wallet: Release mithril-client WASM library #1336
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Enhance aggregator REST API performances #1327
  • Worked on the issue Signer runtime is stuck for some SPO #1312
  • Completed the issue Support P2P relay in infrastructure #1361
  • Completed the issue Make Cardano node version custom in CI/CD #1355
  • Completed the issue Manually deploy a test Mithril network #1356
  • Completed the issue mithril-client verbosity not following usage menu #1325
  • Completed the issue Error message for mithril-client snapshot download #1375
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-11-24-goedel + + 2023-11-24T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and working on a +performance modelling paper

Details

  • completing work on chain sync mini-protocol

  • proof sketch of conformance property of chain sync mini-protocol

  • onboarding new performance modelling intern

  • new content for JLAMP paper

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-11-24-hydra + + 2023-11-24T00:00:00.000Z + + High-level summary

This week, the Hydra team spent significant time opening a head among +themselves on mainnet using the release candidate, revealing and +addressing lurking bugs such as +#1174. Also +required was this change to dynamically calculate the min utxo value +#1176, a +necessary adjustment following the switch to inline datums. The team +engaged with cardano-cli / cardano-api maintainers to discuss recent +changes and collaborated on drafting feature ideas, including providing +Conway support +for the Hydra roadmap. As part of ongoing improvements, they +experimented with writing the specification in markdown instead of +LaTex.

What did the team achieve this week

  • Opened head among us on mainnet and uncovered a few lurking bugs like +#1174 in the +release candidate
  • Calculate the min utxo value instead of hard-coding it +#1176, which is +needed since we switched to inline datums.
  • Met with the cardano-cli / cardano-api maintainers to discuss +recent changes and way forward
  • Drafted features ideas to provide Conway +support on the +Hydra roadmap
  • Experimented in writing the specification in markdown instead of LaTex

What are the goals of next week

  • Have the Monthly review meeting with several demos
  • Release version 0.14.0 with this +scope
  • Complete tidying up chain layer via stateless observation changes in +hydra-node +#1096
  • Update dependencies to prepare for Conway +#1114
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[SRE Team Update]]> + 2023-11-24-sre + + 2023-11-24T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • The cardano-node nixos service now supports SIGHUP p2p topology reloading when the useSystemdReload option is enabled

Lower level summary

Capkgs

  • Update cardano-db-sync and offchain-metadata-tools package paths and/or references: capkgs-compare

Cardano-node

  • Optionally have cardano-node nixos service utilize SIGHUP p2p topology reload: cardano-node-pull-5537
    • Creates a useSystemdReload bool option for the cardano-node nixos service
    • This will move the topology file(s) to /etc/cardano-node/topology-$i.yaml and inject systemd reload hooks for p2p configured cardano-node instances
    • Moving topology files to /etc also allows for manual topology updates when a quick test is needed and full service re-deployment isn't desired

Cardano-parts

  • Adds a metadata server profile and a number of other features and improvements: cardano-parts-pull-20
    • Adds a new metadata-service profile
    • Adds metadata service and pkg configuration options for cardano-groups to utilize the metadata-server profile
    • Adds a cardano-webserver profile for multiple virtualHosts and TLS ACME server aliases for a cluster's static needs, with each cached behind varnish
    • Adds extra node list producers and public producers for cardano-node-topology profile
    • Adds delegation amounts to cardano-postgres psql prepared query show_pools_block_history_in_epoch
    • Adds select systemd metrics reporting to grafana-agent profile
    • Adds a bookRelay multivalue DNS option to disambiguate with groupRelay multivalue DNS
    • Adds an opsLib library to the cardano-parts lib flakeModule and refactors some common code into it
    • Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo
    • Adds job-gen-env-config for both release and pre-release configuration files to support configuration book generation
    • Adds support for grafana recording rules in the template files
    • Improves cardano-group profile handling of producers with respect to multiple instance nodes
    • Improves grafana-agent profile metrics handling for multi-instance cardano-node servers
    • Improves smash service preStart handling while waiting for a node socket
    • Updates Justfile for ERA_CMD demo support
    • Migrates default grafana cloud node exporter, varnish alert and recording rules to grafana alert and recording rule templates
    • Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile
    • Defaults cardano-postgres profile psqlrc use to false

Cardano-playground

  • Adds a new testnet metadata server, cluster webserver, and other improvements: cardano-playground-pull-6
    • Adds a new metadata server
    • Adds a new webserver for the cluster's static virtualhost needs
    • Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo
    • Adds systemd metrics monitoring to the cluster
    • Resizes sanchonet machines to support the growing chain
    • Completes migration of preprod from world
    • Updates groups to utilize both bookRelay and groupRelay multivalue DNS attributes
    • Updates Justfile for ERA_CMD demo support
    • Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile
    • Migrates book static code to playground from world, with refactor, cleanup and updates
    • Migrates default grafana cloud node exporter, varnish alert and recording rules to declarative grafana alert and recording rules

Offchain-metadata-tools

  • Adds db password option with obfuscation plus misc improvements: offchain-metadata-tools-pull-61
    • Adds db password connection option and obfuscates passwords in output for metadata server, sync, webhook services
    • Updates the nixos service for metadata-webhook service to optionally use an environmentFile for secrets: cfg.environmentFile
    • Moves from std use in the nix flake to standard flake schema
    • Fixes hydra CI failures
    • Builds update-docs in hydra to avoid long local build times
    • Removes deprecated tullia
    • Removes deprecated check-hydra from pkgs
    • Removes deprecated bors files and references
]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Ledger Team Update]]> + 2023-11-22-ledger + + 2023-11-22T00:00:00.000Z + + High level summary

Last two weeks progress was mainly on testing, bug fixes and improvements to clarity of +CDDL specification. Important bugfixes include:

  • Fix deserialization of ValueNotConservedUTxO predicate failure that could not +previously report zero ADA.
  • Fix deserialization of CostModels in the PParamsUpdate. Invalid CostModels are no +longer allowed, only CostModels for unrecognized Plutus versions are allowed starting +with Conway
  • Fix returning of Deposits for ProposalProcedures

Testing tooling has been improved and new tests have been implemented for Conway era.

Low level summary

Conway

  • pull-3858 - Restructure computing Refunds and Deposits in a TxBody across all eras
  • pull-3860 - Removed mock/crypto.cddl, added optional tag to sets
  • pull-3864 - Fix Proposal deposits and add deposit tests to imp tests
  • pull-3859 - Rename ProposalsSnapshot to Proposals
  • pull-3867 - MaryValue fixes
  • pull-3869 - Indicate that tag 258 is optional for OSet. Fix rational CDDL
  • pull-3863 - Improve deposits refunds re-usability
  • pull-3861 - Fail PParamsUpdate deserialization for invalid costmodels in Conway
  • pull-3875 - Fix cddl spec for CostModels in Conway
  • pull-3876 - Change 4 PParam fields from EpochNo to EpochInterval
  • pull-3884 - Relax requirement on the Set tag 258 to be enforced in the next era

Testing

  • pull-3868 - Improvements to support property tests on Traces with simple Tx with DRep related Certs
  • pull-3792 - RATIFY and GOV constraint tests
  • pull-3885 - Added a test for genTxAndNewEpoch
  • pull-3886 - QuickCheck Imp integration

Improvements and releasing

]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-11-22-mithril + + 2023-11-22T00:00:00.000Z + + High level overview

This week, the Mithril team made progress in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, completing the first prototype implementation of the Mithril relay, which enables P2P signature broadcasting. They also made progress in optimizing the performance of the aggregator. Additionally, the team completed some enhancements on the CI/CD that will help manually deploy experimental Mithril networks for SanchoNet, as well as for the new P2P network layer.

Finally, they investigated occasional runtime issues causing delays for certain SPOs and started preparing for the next distribution release.

Low level overview

  • Completed the issue Prototype a P2P relay with libp2p #1326
  • Worked on the issue Enhance aggregator REST API performances #1327
  • Worked on the issue Signer runtime is stuck for some SPO #1312
  • Completed the issue Manually deploy a test Mithril network #1356
  • Completed the issue Make Cardano node version custom in CI/CD #1355
  • Worked on the issue Support P2P relay in infrastructure #1361
  • Completed the issue mithril-client fails to extract archive #1352
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Initial CIP 1694 Security Analysis and Responses]]> + 2023-11-20-cip1694 + + 2023-11-20T00:00:00.000Z + + High level summary

We have undertaken an initial high-level security analysis of the CIP-1694 design. We summarise the analysis and our responses here.

Initial CIP-1694 Security Analysis and Responses

Section: The constitutional committee


  • “For example, if we consider the hypothetical Constitution rule "The Cardano network must always be able to produce new blocks" - In this example, if the governance action to reduce block size to 0 is passed, then there will be no way of passing or enacting further proposals. That is, this governance action is completely non-reversable. Suggestion: Instating a built-in mechanism that checks (and perhaps enforces) that the proposed governance actions, if passed, can be reverted in the future.

There is a 'guardrails document' in preparation which captures issues such as these. Some of them may be automatable, as suggested; others will need to be evaluated by humans.


Section: Size of the constitutional committee


  • A possible issue with very large committee sizes (or large number of proposals/voters in general) is that it may take longer to have votes appear on-chain, which in extreme cases may require longer voting periods.

Thanks. Yes, we’ve been thinking about this issue for a long time, see for example the section ‘Final safety measure, post bootstrapping’. We don’t consider this as an issue for the CC since they need to be elected while DReps can just register, so we expect the number of CC members to be much less than the number of DReps


Section: Terms


  • The following sentence is a bit awkward to read: “For example, a committee of size five with a threshold of 3/5 a minimum size of three and two expired members can still pass governance actions if two non-expired members vote Yes.” —> Suggestion: “For example, if we have a committee of size five with a threshold of 3/5, then a committee of three non-expired and two expired members can still pass governance actions if two non-expired members vote Yes.”

Thanks. Yes, that suggestion is a bit easier to read.


Section: Registered DReps


  • “Additionally, registered DReps will need to vote regularly to still be considered active.” - There is a minor issue with requiring “voting regularly”. That is, if there are no proposals to vote on for a long time, this means that no DRep can vote regularly (or they have to issue bogus proposals just to vote on them).

Thanks. We’ve added a mechanism to prevent that issue in the spec/code where if there’s nothing to vote on for an entire epoch, we increment the epoch that each DRep expires.


Section: Ratification


  • It is a bit unclear why protocol changes: network group and technical group are two separate groups.

These correspond exactly to the groups that are administered by the Parameter Committee.


  • I didn’t understand the rationale for requiring 100% “Yes” votes to pass “Info” type governance actions? It seems they have the least potential to harm the system.

Yes, it’s not about harming the system, since Info +actions have no direct effect on the operation of Cardano. The motivation is simply to record the actual level of support for the action.

Once an action is enacted it’s no longer possible to vote on it. So if there was e.g. a threshold of 50%, then there is no way of telling whether the support for it might eventually have reached 90% or higher if it was not immediately enacted when the threshold was reached.


Section: Content


  • For Hard-fork initiation, the changed parameters should probably also be required as part of Additional data.

Protocol parameters can be changed in arbitrary ways by the hard fork and new ones might be introduced, so anything this action pins down might not actually be the value that will be present after the hard fork.


Section: Protocol Parameter groups


  • It is a bit unclear to the reader what some of these parameters mean, for example: monetary expansion (rho) and treasury expansion (tau). Suggestion: Include brief explanations for the non-obvious parameters.

These are existing protocol parameters, described in e.g. https://cips.cardano.org/cips/cip9/9 or The Cardano Protocol Parameters Guide.


  • With the current set of governance actions, it seems that it is not possible to add new types of protocol parameters, or categories of governance voting thresholds. Suggestion: Consider possibility of incorporating governance actions that allow addition of new protocol parameters, deletion of defunct protocol parameters, or modification of governance voting threshold categories.

All of this needs to be done via a hard fork. If we had an action that added a parameter then there is no way of giving it semantics anyway, since that must be done by logic in the code.


Section: Votes


  • Is a constitutional committee member also a DRep? If so, do they vote twice, once as a committee member and once as a DRep?

They may or may not be (and they could also be an SPO). Note that this is fine, since these are completely separate tallies. This is also not preventable, since we don’t have an on-chain mechanism for identity. And yes, each credential gets to vote on each action for all roles in the governance system it has.


Section: Separation of Hard Fork Initiation from Standard Protocol Parameter Changes


  • It is unclear whether there would be automated checks for whether a proposal is indeed a soft fork or hard fork, which would reduce human error in categorising proposals.

There is no on-chain mechanism that could enforce this, the best we could do is some kind of certificate. However, this may not be trustworthy, of course. We will consider this in future versions of Voltaire.


Section: Changes post Edinburgh workshop (July 2023)


  • “All governance actions are enacted one epoch after they are ratified.” - I’m not sure if this line is currently in the main body of the CIP?

It is, but it is phrased differently: ‘All governance actions are enacted on the epoch boundary after their ratification.’


Section: Reduced deposits for some government actions


  • Another downside of requiring endorsement from the constitutional committee is that this likely does not apply to constitutional committee-related proposals, such as no-confidence votes.

Indeed. We have no plans for this at the moment.

]]>
+ + Kevin Hammond + https://github.com/kevinhammond + + + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-11-17-hydra + + 2023-11-17T00:00:00.000Z + + High-level summary

This week, the Hydra team made several impactful updates. They addressed +misleading errors regarding collect com transactions, resolved a security +advisory (CVE-2023-42806), and simplified the Hydra Head protocol by using +inline datums. The team also tackled minor inconsistencies in specifications and +implementation, documented reasons for potentially dropped close transactions by +the cardano-node, and collaborated with SundaeLabs on an offline mode for +hydra-node. Additionally, they engaged in discussions with researchers about +incremental de-/commits.

What did the team achieve this week

  • Removed misleading errors about collect com transactions #839
  • Addressed security advisory CVE-2023-42806 in PR #1161
  • Changed the head protocol to use inline datums, simplifying things in the hydra-node #1162
  • Addressed minor inconsistencies in spec and implementation #1104
  • Documented why close transacations might be dropped by the cardano-node (cant fix) #1039
  • Tidy up a few things here and there
  • Worked with SundaeLabs on the offline mode for hydra-node
  • Discussed incremental de-/commits with researchers

What are the goals of next week

  • Start work on incremental decommits protocol specification #1057
  • Provide support to Hypix
  • Address all open bugs
  • Release version 0.14.0 with this scope
  • Update dependencies to prepare for Conway #1114
  • Shepherd off-line mode PR over the finish line
  • Complete tidying up chain layer via stateless observation changes in hydra-node #1096
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Performance & Tracing Update]]> + 2023-11-17-performance-and-tracing + + 2023-11-17T00:00:00.000Z + + High level summary
  • Benchmarking: Release benchmarking for node 8.6.0 as well as benchmarks scrutinizing GHC versions and the new tracing system.
  • Development: PlutusV3 capability of our workload generator has been implemented.
  • Tracing: First round of optimization of the cardano-tracer service has completed, awaiting validation.
  • Nomad backend: A significant PR has landed addressing automation features and debugging capabilites.
  • Workbench: Configurable remote environments and improvements to run documentation have been merged to master.

Low level overview

Benchmarking

We've performed and analyzed a full set of benchmarks for node 8.6.0, both in comparison to recent release tags +and mainnet version 8.1.2. A lot of development work has entered the system since then, so it is crucial +we can rule out any potential performance risks for the next mainnet release.

Additionally, we've been benchmarking GHC9.6.3 builds of cardano-node. Overall, we've observed reliable optimization behaviour by that compiler version - which is much more in line with expectations than what we've seen on GHC9.2.7. Getting evidence on how predictable (and malleable, by code annotations) performance is when building with a certain compiler version is essential for settling on a version as supported release platform.

A last set of benchmarks was dedicated to the new tracing system with node 8.6.0. We were able to show that +there is no performance risk to enabling the new system, even when forwarding all trace messages to a cardano-tracer +service on the receiving end. Key metrics for block forging, as well as block diffusion, did not exhibit any regression.

Development

For future benchmarks to be built around PlutusV3, we've equipped our transaction generator with basic integration and tests for the upcoming Plutus version. This enables us to target the new cost model and potential changes +to the execution budgets by developing specialized workloads.

Tracing

The cardano-tracer service has received its first batch of optimizations. Profiling output is promising; to measure +performance for a long service run time, we're currently equipping the service binary with the same capability to +emit regular resource traces as cardano-node. Analysis of those will be the basis for validating this and possible future optimization efforts.

Nomad backend

Many improvements for the nomad backend have been implemented and merged to master. This encompasses a unified naming schema for all nomad profiles, improved internal management of cluster topology, a more fine-grained healthcheck service, +more detailed automated documentation of underlying hardware, as well as lazy resource release. The latter enables +our team to investigate and debug interrupted runs for the exact moment and in the exact cluster state a potential failure occurred.

Workbench

Our performance workbench has seen upgrades in documenting and reporting cardano-node builds. This ranges from capturing package versions and commit ids of key dependencies, to querying a deployed node for its build compiler. +When alternating between compiler versions and benchmarking custom built branches, automating such documentation is essential.

Furthermore, the workbench is now able to access several remote deployments on all active clusters. This allows for fetching data, analyzing, comparing and reporting on all benchmarks from just one centralized workbench instance.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Network Team Update]]> + 2023-11-16-network + + 2023-11-16T00:00:00.000Z + + High-level overview of sprint 48

Bootstrap Peers

We continued reviewing bootstrap peers, ouroboros-network#4555.

IOClasses / IOSim

We prepared slides for a Haskell meetup were we presented a talk on IOSimPOR. +The recording will be availble on YouTube.

We also used the opportunity to do some refactoring of the IOSim code base: io-sim#117. +We released io-sim-1.3.0.0 on Hackage: io-sim#119.

We also added forkFinally to MonadFork (not included in 1.3.0.0 release): io-sim#123.

Tech debt

We refactored Resource used by the DNS subsystem: ouroboros-network#4707. +We continued reviewing the ouroboros-network#4625 PR, which refactors +RootPeersDNS module.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-11-15-consensus + + 2023-11-15T00:00:00.000Z + + High level summary

Over the last two weeks, we managed to run a UTxO-HD capable node in legacy mode, which maintains the baseline memory usage while keeping all the ledger state in memory (as the current node does). +This legacy mode could provide an alternative for releasing a UTxO-HD capable node where people can choose whether to store the large part of the UTxO set on disk or not. +However, legacy mode involves code duplication, requires several weeks of work before it is production ready (more integration and testing). Moreover, we will not release UTxO-HD before Conway to avoid the risk of delaying the latter. +On the other hand, to integrate the LSM-tree backend for UTxO-HD we need to redesign the Consensus storage layer, and this new design might enable us to implement an alternative in-memory backing store that will have a very similar performance and resource requirements as the current Cardano node. +Therefore, during the coming months we will focus our efforts on the redesign of the storage layer and the LSM-tree backend.

On the Genesis front, we reviewed the peer simulator for Genesis tests, which was implemented by Tweag and was signed-off by the Consensus team.

We also continued our work on improving the handling of blocks from the future. We presented possible approaches to handling blocks from the future in the Chief Scientist Meeting at IOG, which was very well-received. The discussion with the IOG scientists touched upon the relationship of this approach to Ouroboros Chronos.

Javier Sagredo continues his cycle as release engineer, and he is working on version 8.7 of Cardano node.

]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-11-15-mithril + + 2023-11-15T00:00:00.000Z + + High level overview

This week, the Mithril team completed the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof-of-concept, achieving the implementation of P2P signatures broadcast with the relay in the end-to-end tests. Additionally, the team completed the proof-of-concept for the deterministic computation of the UTXO/transactions set from the immutable files.

Finally, they continued addressing some performance issue associated with the 'release-mainnet' aggregator, and fixed a bug with the tool used to process batch certificate hash re-computation.

Low level overview

  • Worked on the issue Prototype a P2P relay with libp2p #1300
  • Completed the issue Light Wallet: Release mithril-client library #1311
  • Completed the issue Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283
  • Completed the issue release-mainnet aggregator is unreachable #1310
  • Completed the issue Fix certificate hashes re-computation in aggregator #1343
  • Completed the issue Remove unstable tag in unstable release #1235
  • Worked on the issue Enhance aggregator REST API performances #1327
  • Worked on the issue Signer runtime is stuck for some SPO #1312
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-11-14-node-cli-api + + 2023-11-14T00:00:00.000Z + + 2023-11-01 - 2023-11-14

High level summary

CARDANO-NODE

CARDANO-CLI

  • Improve golden tests
  • Clean-up of conway era commands

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-11-10-goedel + + 2023-11-10T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and working on a +performance modelling paper

Details

  • completing work on chain sync mini-protocol

  • specifying correctness property of chain sync mini-protocol

  • creating diagrams for JLAMP paper

  • finalising structure of JLAMP paper

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-11-10-hydra + + 2023-11-10T00:00:00.000Z + + High-level summary

The last two weeks, the Hydra team achieved several milestones. They published +the monthly report for October, providing updates on project developments. The +team delivered a presentation and workshop at the Cardano Summit, contributing +to community engagement. They implemented a \"dirt road\" solution for the +\"Ignored init tx\" notification and moved the hydra-poll example project to a +dedicated repository. Additionally, the team built a hydra-chain-observer tool +for Hydra Heads, updated the toolchain to GHC 9.6.3, and made various +improvements to tooling and code formatting. They addressed specific issues, +such as fixing the gen-hydra-keys command and resolving concerns with the +rewritten hydra-tui. The team also enhanced the hydra-cluster smoke test +suite by fetching network configurations dynamically. Lastly, they actively +reviewed pull requests and architectural decision records from the community, +including contributions from SundaeSwap. An experiment, the Hydra tally, was +completed and successfully deployed to the mainnet by the Cardano Foundation.

What did the team achieve this week

  • Published the monthly report for +october
  • Given a presentation / workshop at the Cardano summit +#1109
  • Dirt road implementation for \"Ignored init tx\" notification +#529 (without +stateless observation)
  • Completed and moved hydra-poll example project into a +dedicated +repository
  • Built a first version of a chain observation tool for Hydra Heads +#1096
  • Switched toolchain to GHC 9.6.3 and various improvements on tooling +and code formatting +#1135#1152#1151#1154
  • Fix gen-hydra-keys command to not overwrite existing +keys #1136
  • Fixed the rewritten hydra-tui#1113#1137
  • Fetch network configurations instead of packaging them into +hydra-cluster (smoke) test suite +#1156
  • Reviewing PRs and ADRs from the community (SundaeSwap) +#1118#1157
  • Hydra tally experiment (Cardano Foundation) deployed to mainnet

What are the goals of next week

  • Tackle reported bugs
  • Shepherd contributed off-line mode PR to the main codeline
  • Improve chain observation tool to include more data and refactor +existing code towards more stateless observation
  • Start work on incremental decommits
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[SRE Team Update]]> + 2023-11-10-sre + + 2023-11-10T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-world testnets of preprod, preview, sanchonet and some private test chains have largely completed their migration to the cardano-playground stack

Lower level summary

Capkgs

Cardano-parts

  • General migration support PR for cardano-world to cardano-playground cardano-parts-pull-18
    • Iohk-nix and iohk-nix-ng were updated support the migration of cardano-world networks to cardano-playground
    • Sops-secrets dependent systemd services were fixed to ensure restart upon sops secrets changes
    • Db chain utilities (db-{analyser,synthesizer,truncater}) had -ng variants created to operate on both release and pre-release network chains
    • The profile-cardano-postgres nixos module received preset variables and prepared statements via pgsqlrc for faster and easier analysis of network state
    • The flakeModule jobs now has support for the cardano-cli era command in each of the job scripts by passing the $ERA_CMD variable
    • Default cardano-node-ng package is now 8.6.0-pre, dbsync on sanchonet is now sancho-2-2-0
    • For scripts using a nix-shell shebang, the cardano-parts devShell menu can be disabled from injecting itself into stdout by passing NOMENU=true
    • Template updates include:
      • Adds optional TF AZ declaration on ec2 resources
      • Adds a cardano node p2p dashboard to the grafana cloud stack
      • Adds a dbsync pool performance analysis query
      • Updates python distribute and delegation scripts from world for playground compatibility
      • Starts a python script lib to reduce shared code among the python scripts
      • Several justfile improvements and new recipes
    • More detail is available in the PR description
  • Update submit action script for 8.6 cardano-parts-pull-19
  • Update scripts for 8.6.0-pre cardano-parts-pull-21
    • Fixes subcommand names based on ERA_CMD
    • Adds deposits to some commands
    • Separates CC cold/hot key generation as host authorization has to occur after action is approved
    • CC voting enabled in vote job

Cardano-playground

  • Migration PR to largely complete the network migration from cardano-world to cardano-playground: cardano-playground-pull-5
    • Adds re-spun private chain network
    • Migrates shelley-qa chain network from world
    • Justfile improvements and new recipes
    • Improve concurrent environment chain support
    • More detail is available in the PR description

Iohk-nix

  • Migration to play: iohk-nix-pull-561
    • Migrate cardano-lib networks from world.dev.cardano.org to play.dev.cardano.org
    • Remove deprecated cardano-lib p2p network environment
    • Update sanchonet chain with respin changes
    • Update private chain with respin changes
    • Bump private and shelley-qa chains to sanchonet equivalent conway genesis
    • Bump preview, preprod chains to sanchonet equivalent conway genesis for node 8.6.0-pre pre-release testing

Sanchonet-demo

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[DB-sync Team Update]]> + 2023-11-09-db-sync + + 2023-11-09T00:00:00.000Z + + High level summary

We have created new tag sancho-2-2-0, which integrates missing Conway feautures and some minor fix +tags sancho-2-1-0, sancho-2-0-1. +We have completed the initial implementation for the bootstrap instance objective.

Lower level summary

  • Add a new --disable-gov flag which disabled Conway ferautures +#1558
  • Fix of the committee key size +#1544
  • Workaround a ledger issue with unregistered pools +#1542
  • Implemented a mechanism that loads the UTxO from the ledger resulting is way faster syncs +#1539
  • Rename offline to offchain +#1533
  • Transfer existing tests to Conway era +#1529#1547
]]>
+ + Kostas Dermentzis + https://github.com/kderme + + +
+ + <![CDATA[Ledger Team Update]]> + 2023-11-08-ledger + + 2023-11-08T00:00:00.000Z + + High level summary

This update contains mostly improvements to quality of Conway era implementation and +tooling that we use for testing Ledger. Major Conway bugs that were discovered and +squashed are:

  • PParamsUpdate proposals will now correctly use DRep thresholds for ratification
  • Treasury withdrawals are now properly enacted.
  • Corrected snapshotting and DRep Stake Distribution Pulser initialization
  • Delegation to non-existent Stake pool is no longer possible

Other important quality of life improvements are addition of reusable interfaces for an +ordered set OSet and ordered map OMap. Which allowed us to disable duplicate +certificates and proposals in a transaction. As a precursor to PlutusV3 integration, a +serious reorganization of Plutus related functionality was performed.

Conway related additions that are noteworthy: Conway Ledger events, disallowing voting on +expired proposals, addition of Anchor to Constitutional Committee resignation proposals.

Significant improvements have been made to a specialized "Imp" test library that allows us +writing concise stateful unit tests for verifying the Ledger logic. Serious progress has +been made on the conformance testing, where we can now interface with Haskell generated +code from the Agda specification. Serialization testing has been extended to increase +binary conformance coverage.

Low level summary

Conway

  • pull-3808 - Enhance CommitteeMembersState query to return quorum and NoConfidence
  • pull-3801 - Fix epoch rule and tests
  • pull-3803 - Fix delegation validation
  • pull-3759 - Reshuffle things to the DRepPulser incorporates some snap shot things
  • pull-3779 - Prevent duplicate certs and proposals
  • pull-3794 - Added anchor to resign certs
  • pull-3797 - Cleanup JSON instances for Conway governance
  • pull-3848 - Plutus modules restructure
  • pull-3840 - Fix anomalies in Deposits in the Conway Era
  • pull-3856 - Add governance related ledger events
  • pull-3825 - Prevent voting on expired GovActions
  • pull-3831 - Treasury withdrawal fix
  • pull-3791 - Use a Data.OMap.Strict to replace ProposalsSnapshot
  • pull-3836 - PParamsUpdate enactment fix
  • pull-3846 - Revert argument order swap.

Testing

  • pull-3782 - Move ImpTest to Shelley testlib
  • pull-3842 - Imp improvements
  • pull-3844 - Add mappings to Agda types
  • pull-3853 - Fix strange assertion failure, which hides real Block too big problem.
  • pull-3809 - CDDL roundtrip testing
  • pull-3832 - Treasury withdrawals tests
  • pull-3839 - Added cardano-ledger-conformance
  • pull-3841 - Add sha256 to cardano-ledger-executable-spec

Improvements and releasing

  • pull-3843 - Add ...WithLogs versions of evalScripts and friends
  • pull-3795 - Bump plutus to 1.15
  • pull-3798 - Bump urllib3 from 1.26.17 to 1.26.18 in /doc
  • pull-3799 - Changes needed for 8.6 release
  • pull-3807 - Add invalidBeforeL and invalidHereAfterL functions
  • pull-3819 - Fixups needed for a release
  • pull-3829 - Post release CHANGELOG version bumps
  • pull-3830 - Bump aeson to 2.2
  • pull-3833 - Backport release cardano-ledger-conway-1.10.1.0
  • pull-3828 - Add changelog for node release 8.6
]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-11-08-mithril + + 2023-11-08T00:00:00.000Z + + High level overview

This week, the Mithril team continued working on completing the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, achieving the implementation of a very basic working demo with a peer-to-peer publish-subscribe (pub-sub) mechanism. Additionally, the team continued working on the deterministic computation of the UTXO/transactions set from the immutable files.

Finally, they resolved the naming issue of the Docker package responsible for storing images of the new Mithril client CLI, and continued addressing a performance issue associated with the 'release-mainnet' aggregator.

Low level overview

  • Worked on the issue Prototype a P2P relay with libp2p #1300
  • Worked on the issue Light Wallet: Release mithril-client library #1311
  • Worked on the issue Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283
  • Worked on the issue release-mainnet aggregator is unreachable #1310
  • Completed the issue Client Docker package is incorrect #1322
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-11-01-consensus + + 2023-11-01T00:00:00.000Z + + High level summary

This week the Consensus team made progress on two fronts: the question of survivable eclipse duration, which is part of our work supporting Genesis delivery, and how to improve the handling of blocks from the future. +Regarding the UTxO-HD branch, we managed to run a node with legacy blocks, which is syncing with mainnet, up to including Alonzo. +We also investigated a regression in mempool snapshotting, which was ultimately solved by a Ledger update, and will be fixed in the upcoming Node 8.6 release.

]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-11-01-mithril + + 2023-11-01T00:00:00.000Z + + High level overview

This week, the Mithril team kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept. They progressed with the adaptation of the Mithril client as a library, and worked on its full WASM compatibility in a proof of concept. The team kept working on the deterministic computation of the transactions from the immutable files, and fixed some unreachability issue on the release-mainnet aggregator.

Finally, they implemented new Docker images that build the Mithril nodes on the 'devnet' faster and fixed some regressions in the Mithril client CLI.

Low level overview

  • Worked on the issue P2P Networking - Proof of Concept #1300
  • Completed the issue Build mithril-common and mithril-client in WASM PoC #1284
  • Completed the issue Fix devnet Mithril Docker images [#1272](https://github.com/input-output-hk/mithril/issues/1272
  • Worked on the issue Light Wallet: Release mithril-client library #1311
  • Worked on the issue Compute deterministic Cardano UTxO set PoC #1283
  • Worked on the issue release-mainnet aggregator is unreachable #1310
  • Completed the issue Client regressions in snapshot list and download #1321
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-10-27-goedel + + 2023-10-27T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and writing a paper +on performance modelling

Details

  • completing work on chain sync mini-protocol

  • outline for JLAMP journal paper submission

  • analysing timeouts

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-10-27-hydra + + 2023-10-27T00:00:00.000Z + + High-level summary

This week, the Hydra team fixed the gen-hydra-keys command to avoid +overwriting existing keys, and resolved issues related to the rewritten +hydra-tui. They also worked on a \"dirt road\" implementation for the +\"Ignored init tx\" notification, improving the robustness of the system.

The team finalized preparations for the Cardano Summit presentation, including +implementation of the hydra-poll example DApp.

If you happen to read this and attend the Summit in Dubai, make sure to check +out our Masterclass about \"Developing Hydra + Mithril for Scaling Cardano\" on +Friday, November 3 at 14:00-15:30 local time in the \"Al Dar\" room!

What did the team achieve this week

  • Fix gen-hydra-keys command to not overwrite existing keys +#1136
  • Fixed the rewritten hydra-tui#1113#1137
  • Finalized cardano summit preparation +#1109
  • Implemented the hydra-poll example DApp link to +repository
  • Dirt road implementation for \"Ignored init tx\" notification +#529

What are the goals of next week

  • Attend cardano summit and deliver presentation
  • Clarify / close user created issues
  • Build aarch64-darwin binaries in CI
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Network Team Update]]> + 2023-10-27-network + + 2023-10-27T00:00:00.000Z + + High-level overview of sprint 47

Bootstrap Peers

We continued to review the process of bootstrap peers, see ouroboros-network#4555

CI / Tests

We investigated our CI issues. We found a memory leak in typed-protocols +function used for testing codecs which triggered out of memory manager (OOM) on +some platforms (typed-protocols#43); we also found a bug in the connection manager which resulted in CI +timeouts (see connection-manager-fix).

KeepAlive client

We found two small issues with the keep-alive client, which were addressed +by Karl Knutsson (Cardano Foundation), ouroboros-network#4689.

Galois

We merged two large PRs prepared by Galois:

Cardano Network Service Assurance (CNSA)

Galois made the following progress on CNSA:

  • a simple [InfuxDB] database backend has been added;
  • the documentation has been updated;
  • internal improvements to the code;
  • progress on a new "CSNA analysis" that provides, for each sampler node, the +block download throughput in bytes over time.

New CHaP Release

We cut a new release of ouroboros-netowrk packages to CHaP: chap#547

More details

CI / Tests

We improved the memory footprint of some of our tests by analysing a stream of +IOSim traces without retaining them, see ouroboros-network#4696

As a safety measure, we introduced an upper bound for heap memory used by test +artefacts in our nix tests. We use 200MB limit for all tests except for +network-mux tests which use 350MB limit, see ouroboros-network#4702.

We refactored one of our tests to use ephemeral ports thus allowing it to +run concurrently, see ouroboros-network#4702.

We merged ouroboros-network#4623 which fixes a bunch of test failures.

All of them were due to a bug in test logic rather than a bug in production +code.

Release Process

We updated our release process & associated scripts, see +ouroboros-network#4705.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[SRE Team Update]]> + 2023-10-27-sre + + 2023-10-27T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-world testnets of preprod, preview, sanchonet and some private test chains are in the process of being migrated to the cardano-playground stack

Lower level summary

Capkgs

  • Adds offchain-metadata-tools, dbsync sanchonet updates: capkgs-compare

Cardano-parts

  • General package updates, modules improvements and template recipes to support network migration from world to playground cardano-parts-pull-17
    • Bumps cardano-db-sync-ng to sancho-2-0-0 tag
    • Bumps iohk-nix-ng to mig-sancho branch for sanchonet pool migration from world to play
    • Adds more machine system bins and devShell bins for scripting and debug purposes
    • Adds cardano-show-kes-period alias on any node machine importing profile-cardano-node-group module
    • Adds profile-cardano-node-topology module for a simplified interface to most common topology needs
    • Adds a job-delegate-rewards-stake-key job as an optional follow on to pool creation and registration jobs
    • Adds a topology function to filter self from group machines with an allowList for matching infixes
    • Adds metadata-server and related offchain-metadata-tools bins from capkgs
    • Updates justfile template with:
      • a new query-all recipe for getting status of multiple concurrent running environments
      • a new set-default-cardano-env recipe for fast switching between environments
      • a new start-demo recipe for forking a custom env into conway
      • a new start-node recipe for generic environment start
      • a new stop-node recipe for generic environment stop
      • updated list-machines recipe for handling of empty nixos machine config and empty ssh_config conditions
      • updated query-tip recipe to a generic query tip compatible with each environment

Cardano-playground

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-10-25-mithril + + 2023-10-25T00:00:00.000Z + + High level overview

This week, the Mithril team released a new distribution 2342.0. This release includes support for SPO tickers displayed in the Mithril explorer and the ability to produce slim Docker images for Mithril nodes.

They also kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, progressed with the adaptation of the Mithril client as a library, and worked on the deterministic computation of the UTXO set from the immutable files.

Finally, they fixed the bottleneck of the key registration in the aggregator, investigated some unreachability on the release-mainnet aggregator, and enhanced the Mithril explorer UI.

Low level overview

  • Worked on the issue P2P Networking - Proof of Concept #1300
  • Completed the issue Make mithril-client crate a library #1141
  • Worked on the issue Compute deterministic Cardano UTxO set PoC #1283
  • Completed the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
  • Worked on the issue Fix devnet Mithril Docker images #1272
  • Worked on the issue release-mainnet aggregator is unreachable #1310
  • Worked on the issue Build mithril-common and mithril-client in WASM PoC #1284
  • Completed the issue Display a summary of signers before the full list in explorer #1133
  • Completed the issue Add certificates list in explorer #1184
  • Completed the issue CoreVerifier setup does not compute total_stake correctly #1306
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-10-24-node-cli-api + + 2023-10-24T00:00:00.000Z + + 2023-10-11 - 2023-10-24

High level summary

CARDANO-CLI

  • Disambiguate cardano-cli stake credential related flags on treasury withdrawal governance actions making it easy to identify which is used for the deposit refund and which for the destination of the funds from the treasury if the action is ratified.
  • stake-address-info now shows deposits balance.
  • Added conway governance action view to allow to inspect governance action files before submitting them on a transaction.
  • build-raw support for --vote-file and --proposal-file

CARDANO-API

  • Support DRep extended keys
  • Support Plutus V1 in Conway

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-10-20-hydra + + 2023-10-20T00:00:00.000Z + + High-level summary

This week, the Hydra team mainly focused on preparing a masterclass and workshop for #CardanoSummit2023.

In addition, they improved the Hydra node API's submit-transaction endpoint to accept three different encoding types: Base16 encoded CBOR string, TextEnvelope type, and JSON. +This improvement offers users greater flexibility and ease of interaction with the API.

Finally, the team has followed up on the TUI brick upgrade to version 1.10. +This effort has resulted in addressing minor details and enhancing the overall user experience with the TUI.

What did the team achieve this week

  • Prepare presentation and workshop for Cardano Summit.
  • More TUI fixes and improvements.
  • Upgrade GHC from 9.2.8 -> 9.6.2 #1105
  • Solved user issue related to submitting transactions in cbor format #1111.
  • Fix hydraw connection issue making it more stable #1121.

What are the goals of next week

  • Work on hydra-poll dApp for Cardano summit.
  • Start the work on packaging hydra-node and related services.
]]>
+ + Franco Testagrossa + https://github.com/ffakenz + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-10-18-consensus + + 2023-10-18T00:00:00.000Z + + High level summary

During the past two weeks the Consensus team received additional benchmark results for the UTxO-HD feature that show the resource usage for the in-memory backend is not satisfactory for a mainnet release, and we need to wait on the implementation of a new infrastructure to benchmark the LMDB backend (not likely to happen before next year). While we wait on this, we are evaluating the feasibility of making the UTxO-HD feature switchable, which will enable us to release it as an experimental feature. On the Genesis front we produced the first draft for a Survivable Eclipse Duration Model. We released version 8.5.0 of Cardano node, resumed work on subpar handling of blocks from the future, and improved our tracing system to assist problem troubleshooting in the node.

UTxO-HD

  • The Plutus workload benchmark for the in-memory backend showed no regressions for the metrics of interest, but it does show an increase in resource usage.
  • We got additional ad-hoc measurements on memory UTxO-HD consumption. The memory usage of the in-memory backend is not satisfactory for a release. The memory usage of the LMDB backend is considerably lower, but we need to see how much lower we can bring it by running a node whose memory is constrained to 8GB.
  • We resumed work on an alternative solution that will make the UTxO-HD switchable. This will enable us to keep the baseline performance by totally disabling UTxO-HD, while allowing users to experiment with the feature if they wish to do so.

Genesis

  • We produced the first draft for a Survivable Eclipse Duration Model (422).

Support

  • Esgen finished his cycle as release engineer. Node 8.5.0 has been released.
  • We resumed work on the subpar handling of block from the future (4251).
  • We prepared the integration of new tracing events for the next node release. These tracing events will help debugging potential issues in the node (such as the previously mentioned issue).
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-10-18-mithril + + 2023-10-18T00:00:00.000Z + + High level overview

This week, the Mithril team started working on the decentralization of the Mithril networks with a proof of concept of peer-to-peer (P2P) networking between nodes. The team kept working on the adaptation of the Mithril client as a library, on the deterministic computation of the transaction history of an address from the immutable files, and on the refactoring that will fix the bottleneck of the key registration in the aggregator. Additionally, they published a security advisory for the Mithril relay.

Finally, they enhanced the CI/CD to publish multiple packages to crates.io and started improving the developer experience with the Mithril devnet.

Low level overview

  • Published the security advisory Mithril relay could expose Cardano block producer internal IP when updated #GHSA-9m3h-72xj-x2gq
  • Worked on the issue P2P Networking - Proof of Concept #1300
  • Worked on the issue Make mithril-client crate a library #1141
  • Worked on the issue Compute deterministic Cardano transactions history PoC #1283
  • Worked on the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
  • Completed the issue Publish multiple packages to crates.io #1298
  • Completed the issue Rename public key published in releases #1292
  • Completed the issue Mithril networks infrastructure maintenance #1218
  • Worked on the issue Fix devnet Mithril Docker images #1272
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Network Team Update]]> + 2023-10-15-network + + 2023-10-15T00:00:00.000Z + + High-level overview of sprint 46

Bootstrap Peers

We continued reviewing of bootstrap peers, see ouroboros-network#4555.

Towards Typed Protocols 0.2.0.0

We diagnosed the performance regression of the new design. The work on +typed-protocols will be postponed. For more details see the +typed-protocols#3. As an outcome of the performance debugging we prepared +PR which updates the demo-ping-pong and +demo-chain-sync applications.

Peer Sharing

We made progress in review of ouroboros-network#4644, which simplifies the +peer sharing and fixes the ouroboros-network#4642 issue.

Tech Debt

We reviewed the ouroboros-network#3836 PR which inspects all the uses of +error in ouroboros-network. The PR was prepared by Galois.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-10-13-goedel + + 2023-10-13T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and testing the +performance analysis tool

Details

  • extending thorn-calculus to support synchronous channels

  • extending mini-protocol framework to support communication with the +environment

  • working on chain sync mini-protocol

  • planning for JLAMP journal paper submission

  • analysying any-to-finish

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-10-13-hydra + + 2023-10-13T00:00:00.000Z + + High-level summary

This week, the Hydra team's primary focus was on finalizing the new network resilience layer. This involved adding persistency to ensure data integrity.

They also completed the exploration of potentially moving the Plutus validator scripts to Aiken.

Additionally, the team dedicated some attention to our TUI by upgrading the Brick framework. They also undertook a comprehensive refactoring of the project's structure and addressed various bug fixes. These efforts are aimed at enhancing the overall user experience of our project.

What did the team achieve this week

  • Network Resilience Persistence (#1101)[https://github.com/input-output-hk/hydra/pull/1101].
  • Upgrade brick on TUI (#1103)[https://github.com/input-output-hk/hydra/pull/1103].
  • Aiken commit validator translation (#1072)[https://github.com/input-output-hk/hydra/pull/1072].
  • Fixed some bugs in our TUI client.

What are the goals of next week

  • Prepare presentation and workshop for Cardano Summit.
  • Work on hydra-poll dApp for Cardano summit.
  • Start the work on packaging hydra-node and related services.
]]>
+ + Franco Testagrossa + https://github.com/ffakenz + + +
+ + <![CDATA[Ledger Team Update]]> + 2023-10-13-ledger + + 2023-10-13T00:00:00.000Z + + High level summary

The Ledger team has been shifting focus from implementing Conway related features to +testing. For this reason there is a very little amount features that are reported this +time aorund. Notable Conway related changes are a specialized ledger query for getting +Constitutional Committee state and prevention of submitting proposal procedures that have +no valid path to enactment.

Testing related work was mainly on a constraint base system as well as on roundtrip +serialization. As a result of this extra testing a bug in Conway Genesis serialization +was eliminated.

Low level summary

Conway era

Integration and releasing

Testing

  • pull-3769 - Add roundtrip testing by validating FlatTerm
  • pull-3783 - Update TranslationInstance.hs
  • pull-3775 - Refactor and improve constraint based STS tests
  • pull-3793 - Fix sums with negative RHS.
]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[SRE Team Update]]> + 2023-10-13-sre + + 2023-10-13T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • Sanchonet environment was updated to 8.5.0-pre.
  • Cardano-parts now supports cardano-db-sync, cardano-smash, cardano-faucet and grafana cloud monitoring

Lower level summary

Capkgs

  • Various improvements and fixes including:
    • Add GHA cron schedule
    • Add nix auto-gc to avoid running out of storage during large package set builds
    • Add new packages to capkgs
    • Reduce runner storage requirement leaving more room for builds
    • Restructure capkgs attribute names to avoid package name collisions
    • Return to non-musl builds for cardano packages to retain journald compatability
    • Update cache usage to from file level to folder level to reduce network and latency overhead
    • Commit diff: capkgs-compare

Cardano-parts

  • Updates cardano-node-ng to 8.5.0-pre and adds a Conway era automation job: cardano-parts-pull-16
  • Dbsync, smash, faucet and more: cardano-parts-pull-15
    • Adds cardano-db-sync, cardano-faucet, cardano-postgres, cardano-smash, profiles and/or services and related changes
    • Adds nginx vhost metrics exporter profile
    • Adds smash registered-relay-dump service and exporter for use until legacy relay nodes are scaled down
    • Adds bash *-ng autocompletion compatible wrappers
    • Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview
    • Adds downstream grafana cloud dashboard as templates
    • Adds downstream grafana cloud alerts as templates
    • Updates grafana-agent profile with new exporter scrape hooks: cardano-db-sync, cardano-faucet, nginx-vts, varnish
    • Updates the basic profile with IOG cache and commonly used bins
    • Updates the pre-release profile to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning
    • Updates flakeModule jobs with new conway era automation and additional IO encryption shimming and file type checks
    • Updates .sops.yaml template for supporting faucet secrets, workbench secrets, state-demo secrets
    • Updates the Justfile template with terraform fixes for workspace switching and provider auto-reconfiguration
    • Updates the cloudFormation terraformState template with stack modifications to preserve all resources in case of deletion
    • Updates the colmena template with dbsync, smash, faucet machines profiles and roles
    • Improves prior cardano-postgres modules to now automatically tune pg parameters based on machine cpuCount, memMiB and desired conns
    • Bumps capkgs node-ng to 8.5.0-pre

Cardano-playground

  • Dbsync, smash, faucet and more: cardano-playground-pull-3
    • Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview
    • Adds dbsync, smash, faucet machines and corresponding metrics exporters, dashboards and alerts
    • Moves the flake.cardano-parts.cluster.group attrSet name to groups to accurately reflect the plurality and the upstream corresponding change
    • Optimizes machine sizes
    • Updates .sops.yaml for supporting faucet secrets, workbench secrets, state-demo secrets
    • Updates the cloudFormation terraformState file with stack modifications to preserve all resources in case of deletion
    • Updates the cluster isNg definition to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning
    • Updates the Justfile with terraform fixes for workspace switching and provider auto-reconfiguration

Cardano-world

Sanchonet-demo

  • Update for cardano-node 8.5.0, conway job recipes and cardano-parts interface changes: sanchonet-demo-commit
]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-10-11-mithril + + 2023-10-11T00:00:00.000Z + + High level overview

This week, the Mithril team worked on the distribution of the Mithril client as a library that will be distributed on crates.io, the Rust dependencies repository. The team also worked on the deterministic computation of the transaction history of an address from the immutable files and started fixing a bottleneck in the aggregator that limits the ingestion of signatures.

Finally, they kept working on the activation of Cloudflare on the infrastructure and fixed some bugs in the Nix CI.

Low level overview

  • Worked on the issue Make mithril-client crate a library #1141
  • Worked on the issue Compute deterministic Cardano transactions history PoC #1283
  • Worked on the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
  • Completed the issue Update Rust compiler in nix CI #1282
  • Worked on the issue Mithril networks infrastructure maintenance #1218
  • Worked on the issue Activate Cloudflare protection of infrastructure #1230
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-10-10-node-cli-api + + 2023-10-10T00:00:00.000Z + + 2023-09-27 - 2023-10-10

High level summary

CARDANO-NODE

CARDANO-CLI

  • Depracated governance query commands and moved all governance related queries to cardano-cli <era> query
  • Drep registration certificates now allow to include an anchor
  • Integrated Drep retirement ceriticates
  • clean up of Drep registration certificates.

CARDANO-API

  • Add support for committee hot key witnesses
  • Require conway onwards for voting
  • Conway drep registration: expose ledger anchor parameter
  • Add certs to txbody of Conway transactions

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-10-06-hydra + + 2023-10-06T00:00:00.000Z + + High-level summary

This week, the Hydra team released version 0.13.0, which includes fixes and extensions for state persistency and the ability to draft a commit transaction using inline datums.

The team also delivered the first version of the network resilience layer, significantly increasing head availability.

Additionally, they have been providing support to several funded Catalyst projects that want to build on Hydra.

Last but not least, they updated and published security policy and vulnerability disclosure policy reports on how to handle security vulnerabilities within Hydra.

What did the team achieve this week

  • Release 0.13.0
  • Published vulnerability reports #1088
  • Merged network resilience work part I #1074
  • Planning for Cardano Summit participation
  • Discussions with funded Catalyst projects wanting to build on Hydra for support
  • Merged typos fix PR from @omahs #1095

What are the goals of next week

  • Complete Aiken commit validator script #1072
  • Complete Kupo integration #1078
  • Brick upgrade on TUI #1103
  • Clean backlog
  • Prepare and rehearse demo and talk for Cardano Summit
]]>
+ + Franco Testagrossa + https://github.com/ffakenz + + +
+ + <![CDATA[Performance & tracing update]]> + 2023-10-06-performance-and-tracing + + 2023-10-06T00:00:00.000Z + + High level summary
  • Benchmarking: Continued benchmarking of UTxO-HD and performed benchmarks for the new tracing system.
  • Consensus QTAs: Our protoype approach is applied to potential regression fixes with GHC 9.2.7.
  • Development: We've developed strategies for future benchmarks of PlutusV3 and UTxO-HD's on-disk backing store.
  • Tracing: The machine-readable tracer configuration has been merged. Optimization of cardano-tracer started.
  • Nomad backend: Ongoing variance analysis and refined cluster topology.

Low level overview

Benchmarking

Performing and analyzing benchmarks for the UTxO-HD feature is an ongoing effort; we can reliably assess the +performance of the in-memory backing store and evaluate possible optimizations (or regressions) for it.

Furthermore, benchmarks of our new tracing system after several rounds of optimization have been performed. The results +show all key metrics now being unaffected by the choice of tracing system (legacy or new) - with the new system being able to provide more features and flexibility in comparison. The benchmarks also highlighted further points for optimization, with the focus now on the cardano-tracer service.

Consensus QTAs

The Quantitative Timeliness Agreements (QTA) prototype is being used in coordination with Consensus and DevX to validate a series of patches that address optmization opportunities which GHC8.10 seizes, but GHC9.2 misses. The +feedback from this approach is much more immediate than running benchmarks at system integration level. But once we eventually do, we expect to reproduce the relevant observations - which would mean a big step towards maturing the prototype.

Development

Benchmarking UTxO-HD's on-disk backing store needs special attention: in virtualized environments, disk I/O is not a reliable metric as it passes several layers of indirection. As this is the very metric which will influence overall performance of this UTxO-HD flavour, we developed a plan to monitor such nodes, connected to a running network, on dedicated hardware - having direct SSD access. Replicating this setup for an entire benchmarking cluster of such nodes will be a future effort.

PlutusV3 will come with new builtins and a new cost model. It will take a specialized benchmark to ascertain the soundness of that model running a full cluster of nodes, possibly stressing expensive builtins. At the same time, +we'd like to validate the many improvements that have gone into the Plutus evaluator.

Tracing

The focus for further optimization of the new tracing system has shifted to cardano-tracer - the service +receiving and processing traces from one (or more) nodes. Whilst undisputed that the code living in cardano-node is +more performance critical, the receiving service must still minimize its resource footprint. Moreover, it can +generate load for a running node when querying data points from it - which calls for tight control of that mechanism and its possible configurations.

Nomad backend

Variance analysis of new nomad backend has revealed a necessary adjustment of the cluster's topology. We repeated +the same analysis and now see even better confidence in the measurements taken with nomad. This concludes the work on the backend proper for the time being. The last steps before production use will focus on the interface between backend and our workbench, which provides all high-level benchmark definitions and analysis machinery.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-10-04-consensus + + 2023-10-04T00:00:00.000Z + + High level summary

The value-only workload benchmarks showed that the mempool forging regression observed in the UTxO-HD branch was fixed by the latest patch. In spite of the higher resource demands, for the metrics of interest (forging, peer-propagation, end-to-end propagation) we see no regression when using the UTxO-HD version of Cardano node, with the in-memory backend.

On the Genesis front the Researchers continue reviewing different aspects of the design, in particular the argument that the Genesis rule will select the Cardano historical chain. +We also merged a fix for the Babbage to Conway transition, and released a new version of Consensus.

Genesis

  • We elicited review from the Researchers on a final draft of the argument that the Genesis rule will select the Cardano historical chain (392).

Support

  • We merged a minimal patch that fixes parameter update bug during the Babbage to Conway transition (366).
  • We enabled richer tracers in cardano-node that can be useful in future debugging (384).
  • Esgen continues with his release engineer activities, and created a new Consensus release.

Fostering collaboration

  • We merged a new section into our documentation that explains the existing hard-fork combinator (HFC) interface and its complexities, which are relate do why the Babagge to Conway transition surprised us in this way. This explanation is step one towards improving the HFC interface (369).
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-10-04-mithril + + 2023-10-04T00:00:00.000Z + + High level overview

This week, the Mithril team updated a proposal for implementing Mithril in a light wallet and created a discussion on implementing Mithril in a light wallet to receive feedback and contributions from the community.

They also completed a proof of concept to run a Mithril client in a browser with WASM and worked on enhancing the explorer UI with SPO tickers displayed next to the pool IDs. Additionally, the team finalized a tool for benchmarking aggregator performance over a range of signer and client loads and for visualizing the results of these benchmarks.

Finally, the team added a root page to the aggregator endpoint, created a status page for the Mithril networks, and added a section about KES key rotation in the signer documentation for SPOs.

Low level overview

  • Created the discussion Implement Mithril in a light wallet #1273
  • Completed the issue Run client in browser WASM PoC #1254
  • Completed the issue Benchmark aggregator performances #1220
  • Worked on the issue Add SPO tickers in explorer #1185
  • Completed the issue Add a non 404 status code on the aggregator endpoint #1103
  • Completed the issue Use source attribute in errors #1265
  • Completed the issue Create a SPO checklist for KES keys update #1267
  • Completed the issue Configure status page and alerting #1277
  • Completed the issue Upgrade dependencies #1274
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Network Team Update]]> + 2023-10-02-network + + 2023-10-02T00:00:00.000Z + + High-level overview of sprint 45

Bootstrap Peers

We started reviewing the bootstrap peers PR, ouroboros-network#4615.

Towards Typed Protocols 0.2.0.0

We discovered a performance regression when using typed-protocols-0.2.0.0, and we +started investigating where it comes from. Currently, we see that +typed-protocols-0.2.0.0 can outperform typed-protocols-0.1.0.0 when running +in isolation with a simple ping-pong protocol, so the regression might be in +the new block fetch implementation which comes with typed-protocols-0.2.0.0 +See typed-protocols#3.

Tech Debt

We merged two PRs written by Galois engineers:

  • a pull request which refactors the main entry function for P2P, see ouroboros-network#3834;
  • a pull request which reviews usage of unsafe function in the network code based.

Galois also made progress with the following two issues:

IO-Sim

IOSimPOR

We found and fixed a bug in IOSimPOR. We'd like to thank Prof. John Hughes +(Quviq AB) for helping us with debugging the issue.

We also provided a more uniform API for IOSimPOR, and added ways to make the +debugging similar problems in the future easier.

Technical Details on IOSim refactoring
We removed the usage of `unsafePerformIO` from `IOSimPOR`, which also means removing parallel evaluation of discovered races. We found out that it gives only 25% better performance. In the future QuickCheck will offer running different cases in parallel which should provide better performance as there are no dependencies between the evaluation of different test cases, while schedules are discovered while running which limits the possible gains from running them concurrently. The performance was not the only factor though. When using parallelism in the lazy `ST` monad we'd need to rely on memory guarantees of `STRefs`. In `GHC-9.6` they share the implementation with `IORef`s, but it might not be the case in the future.

IOSim

To prepare for the next release, we consolidate packages taking advantage of +the public sublibraries supported now both by cabal and Hackage. This is +a work in progress, io-sim#114.

Cardano Newtork Service Assurance

Galois made the following progress:

  • A test run of spinning up a CNSA instance was done, as a result documentation +was updated.
  • Based on the IOG code review of the CNSA code, updates to the CNSA code were +made.
  • Galois has started the design for adding a CNSA analysis for "fetched bytes +over time while node is syncing".

P2P adoption

In the last two weeks, we've seen increase in P2P adoption. +P2P relays

The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays. +node versions

Open Source

We upstreamed our FFI bindings to Windows named pipes to Win32 package, the +PR was accepted and merged.

We also received an external contribution which enhanced our documentation, see +ouroboros-network#4676.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-09-29-goedel + + 2023-09-29T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and testing the +performance analysis tool

Details

  • drafting processs calculus semantics of mini protocol programs

  • testing the new performance modelling tool

  • further work on specification of mini protocols

  • extension of mini protocol framework to support communication of +programs with local environments via synchronous channels

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-09-29-hydra + + 2023-09-29T00:00:00.000Z + + High-level summary

This week, the Hydra team mainly focused on having a working new reliability +network layer; and specified its expected behavior in a new ADR.

They also revisited the security policy and vulnerability disclosure policy on +how to handle security vulnerability within Hydra, and in particular how to +handle so-called "Silent fixes".

What did the team achieve this week

  • Updated security policy and vulnerability disclosure policy #1088
  • Adr/network reliability #1082

What are the goals of next week

]]>
+ + Franco Testagrossa + https://github.com/ffakenz + + +
+ + <![CDATA[Ledger Team Update]]> + 2023-09-29-ledger + + 2023-09-29T00:00:00.000Z + + High level summary

Few important Conway related features were completed in this two week period:

  • Constitutional Committee was the last missing Conway related entity that has now been +fully implemented.
  • Treasury withdrawals governance actions have been fixed and now behave as expected.
  • Current treasury amount supplied in the transaction is now enforced by the rules.
  • DRep's expiry is prevented by delaying the expiry for all DReps whenever there are no +proposals to vote on.
  • Semantics of how CostModels are updated with Protocol Parameters have been changed to +allow for individual Plutus language version updates, rather than requiring a complete +replacement of all CostModels

Besides the new features there were also important performance and testing improvements:

  • In particular stake distribution computation and native script handling received some +optimizations.
  • New testing DSL has been implemented that drastically simplifies writing unit tests for +ledger rules.
  • Integration tests and benchmarks are now possible for Conway era because of the overhaul +of functionality for initial funds and staking injection whenever node starts up in +Conway, while bypassing all previous eras.

Low level summary

Conway era

  • pull-3729 - DRep expiry update after a contiguous set of epochs with no proposals to vote on
  • pull-3739 - Rename some PParams to be consistent with Agda specification
  • pull-3743 - Move DRepDistr from VState to ConwayGovState
  • pull-3746 - Implement tcTranslationContextL for Shelley
  • pull-3737 - Implement EraTransition
  • pull-3749 - Add predicate failure: current treasury value mismatch in LEDGER
  • pull-3748 - Apply enacted treasury withdrawals
  • pull-3745 - Constitutional Committee Ratification
  • pull-3763 - Plutus interface improvements
  • pull-3771 - Changed how costmodel updates are applied
  • pull-3766 - Prevent updating protocol version with PParamUpdate

Performance

  • pull-3765 - Improve native script handling
  • pull-3747 - Use (CompactForm Coin) in IncrementalStake, DRepDistr (and other places) instead of Coin
  • pull-3758 - Cardano-Perf regression: UMap.size regression fix
  • pull-3754 - Use Alonzo-style TxOut encoder when possible

Releasing

  • pull-3742 - Update fourmolu, ghcid and hls. Update haskellNix and iohkNix flakes
  • pull-3744 - Changelog 8.4
  • pull-3752 - Patch release of cardano ledger conway 1.8.1.0
  • pull-3753 - Minor cleanup and changelog entries
  • pull-3760 - Fixup issues for release
  • pull-3764 - Bump plutus deps to 1.13

Testing

  • pull-3734 - Removed Shaped instance for Rep
  • pull-3735 - Simplify the implementations of hasOrd and hasEq
  • pull-3728 - STS tests based on constraints
  • pull-3714 - Implement the remaining upgradable families
  • pull-3733 - Add some unit tests for Conway features
  • pull-3762 - Update CDDL for praos headers.
]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[SRE Team Update]]> + 2023-09-29-sre + + 2023-09-29T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • Sanchonet environment was re-spun starting from slot 7171200 and updated to cardano-node 8.4.0-pre.
  • The use of cardano-node docker hub will be deprecated in preference of GHCR

Lower level summary

Capkgs

  • Refactor parsing scripts, add github action automation, various bugfixes and cleanup: capkgs-compare

Cardano-parts

  • Updates secrets layout scheme, adds sops enc/dec for jobs, adds cloud monitoring profile, updates flake templates and other improvements/fixes: cardano-parts-pull-8

Cardano-playground

  • Updates for new cardano-parts secrets handling and layout, TF workspace handling, group multivalue DNS support, grafana cloud monitoring and other improvements: cardano-playground

Cardano-world

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-09-27-mithril + + 2023-09-27T00:00:00.000Z + + High level overview

The Mithril team has released a new distribution 2337.0, which includes the following enhancements: support for zstandard compression of snapshot archives, support for the Cardano node version in snapshot metadata, and support for recording snapshot download statistics in the aggregator.

They also completed the refactoring and standardization of the errors in the Mithril nodes and published an Architectural decision record on the documentation website. Additionally, they kept working on adding Cloudflare protection to the infrastructure.

Finally, the team fixed a performance issue on the stress test tool for the aggregator and made some improvements to the documentation for SPOs.

Low level overview

  • Completed the issue Release new 2337 distribution #1219
  • Completed the issue Errors refactoring #798
  • Completed the issue Client traffic creates performance bottleneck in aggregator #1207
  • Completed the issue Record statistics about the downloaded snapshot in the aggregator #1127
  • Completed the issue Create a SPO checklist for KES keys update #1267
  • Worked on the issue Spike: Run client in browser WASM PoC #1254
  • Worked on the issue Benchmark aggregator performances #1220
  • Worked on the issue Activate Cloudflare protection of infrastructure #1230
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-09-26-node-cli-api + + 2023-09-26T00:00:00.000Z + + 2023-09-13 - 2023-09-26

High level summary

  • cardano-node 8.4.0-pre release suitable for SanchoNet.
  • CLI continues making progress integrating governance features. During this sprint we integrated the info and new-committee governance actions.
  • The team continued moving to the ERA top-level commands structure. Removed --conway-era flag from the legacy commands making conway era commands only accessible via cardano-cli conway.
  • stake-pool command is now under the ERA top level structure.
  • API continues integration with governance features, it is worth to higlight that now ProposeNewCommitee uses the right key type (cc-cold)

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-09-22-hydra + + 2023-09-22T00:00:00.000Z + + High-level summary

This week, the Hydra team conducted the monthly review meeting in +collaboration with Mithril, enhancing project coordination.

The team improved the gen-hydra-key node command for smoother usability +and identified concrete steps to enhance network resiliency in feature +items #188, +#1080, and +#1079. +Additionally, they contributed the aiken-mode editor integration to the +aiken-lang organization, updated dependencies to utilize cardano-api +8.20, and published the Hydra security advisory CVE-2023-42806 with a +workaround available for users.

These efforts demonstrate the team\'s commitment to project improvement, +security, and open-source community collaboration.

What did the team achieve this week

  • Conducted the monthly review meeting together with Mithril
  • Improved gen-hydra-key node command +#1077
  • Established a clear plan to improve resiliency of network and manifested +feature items #188, +#1080 and +#1079
  • Moved aiken-mode (created by SN) +to aiken-lang organization
  • Updated dependencies to using cardano-api 8.20 +#1075
  • Published security advisory +CVE-2023-42806 +(workaround available)

What are the goals of next week

  • Write-up the monthly report for September
  • Finish "network resilience to disconnects" +#188
  • Finish kupo integration with hydra +#1078
  • Discuss and decide on using aiken or not
  • Address the published security advisory +CVE-2023-42806 +(to not require workaround)
  • Ideally, release 0.13.0
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Performance & tracing update]]> + 2023-09-22-performance-and-tracing + + 2023-09-22T00:00:00.000Z + + High level summary
  • Benchmarking: We've performed both low-level network and high-level variance analysis of our benchmarking clusters.
  • Infrastructure: Our reporting pipeline was adjusted to classify various workloads easily reducing rework time.
  • Tracing: Work on machine-readable tracing of tracer configuration is ongoing.
  • Nomad backend: We've been able to eliminate several possible confounders on the nomad cluster.
  • Team: We're currently onboarding a new team member: Welcome to Cardano Performance & Tracing, Baldur Blöndal!

Low level overview

Benchmarking

As part of the effort to bring the Nomad backend into production use, we've been equipping both that and the existing benchmarking +backend with means to measure and document network latency for each run. Furthermore we've implemented means to +capture TCP packets for a limited time window during a benchmarking run - which will allow us to spot differences +in the behaviour of the underlying networking stack at OS level.

Additionally, we're running variance analysis in parallel on both backends to ascertain confidence in metrics originating from either. We've concluded that baseline profile runs aren't directly comparable between the two, so we decided +to compare standard deviations instead to validate the measurements from nomad.

Infrastructure

Reporting on benchmarks does require human time and effort to rework the final document. Improvements to the reporting pipeline +have been merged to master. They reduce the time necessary to do so by various changes to the template and the workload classification logic in analysis.

Beyond that, we've looked into issues where services would quit with an unjustified exit failure upon shutdown - under rare circumstances. By reworking shutdown logic for trace-dispatcher and tx-generator we were able to address those issues.

Tracing

After various steps in constructing a configuration upon node startup, it is vital to document +which runtime configuration the node arrived eventually. We're working on providing a machine-readable JSON/YAML +trace message for that purpose.

This will facilitate hot-reloading a node's tracer configuration in the future: users will be able to take such a trace message, apply their intended change and hot-reload it immediately into the node.

Nomad backend

As with the existing benchmarking cluster, nomad is currently under scrutiny with regard to the reliability of metrics it +produces, as well as the behaviour of its OS-level network stack. For instance, differing kernel versions can have an +impact on our measurements, as we'd be basically using two different instruments to take them.

Along the way we've already been successful in eliminating some possible confounders that had been introduced by the nomad service +or the slightly different system architecture of the new cluster.

New team member

Baldur Blöndal is an extremely capable and experienced Haskell developer. Also, he's an excellent fit for our existing team. +So I'm very pleased to welcome him onboard with IOG, and with Performance & Tracing. He will be working on cardano-tracer, the component receiving, processing and making available node traces and metrics.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-09-20-consensus + + 2023-09-20T00:00:00.000Z + + High level summary

We have a proposed fix for the mempool forging regression observed in the UTxO-HD branch. We need to confirm this by running system level benchmarks. +We are still working on a fall back mechanism for keeping the baseline performance of Cardano node, if the performance of the UTxO-HD is not enough. +On the Genesis front, we confirmed with the researchers that the proposed Genesis design is satisfactory for the historical Cardano chain. +We also have a proposed fix for the wrong protocol version bug, found in the Sanchonet, after transitioning to Conway.

UTxO-HD

  • We optimized the mempool revalidation process, which in turn ought to solve the regression observed during system-level benchmarks in the in-memory version (349). System level benchmark results are pending.
  • Regarding the workaround to keep the node's baseline performance if that of the in-memory backend turns out not to be enough for our stakeholders (344), we are still expanding the legacy block package such that we could at some point run the node with a legacy Cardano block. There are some loose ends to wrap up before we can begin the first test run.
  • We also brought the UTxO-HD branch up to date with node version 8.4.0.

Genesis

  • We finished the discussion with the Researchers on how to argue that the proposed Genesis design is satisfactory for the existing historical Cardano chain. +We are now drafting the final self-contained argument. (4157)

Support

  • We debugged a bad parameter update on the Babbage to Conway transition in the SanchoNet testnet (339). +A superficial patch is within reach and we are in the process of reviewing the PRs related to this fix (340, 354, and 355) +However we are investigating a more principled redesign of the epoch transition logic, which required us to revisit the existing interfaces of the ConsensusProtocol type class and the HardForkBlock combinator (345 and 346). This is important to prevent these kind of errors in the future. This is an overdue step in the process of taking full ownership of the HFC: reconsidering original HFC design decisions for which we now have much more context, a few years later.
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-09-20-mithril + + 2023-09-20T00:00:00.000Z + + High level overview

This week, the Mithril team has completed the refactoring of the terraform deployment workflows in GitHub actions, and the implementation of snapshot compression parameters in the deployments. They kept working on the refactoring and standardization of the errors in the Mithril nodes. The team also completed the implementation of Cloudflare protection for the aggregator infrastructure and started working on its deployment and activation in the Mithril networks. Additionally, they worked on recording download statistics on the aggregator which will be used to produce usage reports.

Finally, they kept working on the aggregator performance bottleneck that occurs with high client traffic and started creating a new distribution.

Low level overview

  • Completed the issue Add snapshot compression parameters in infrastructure deployments #1200
  • Completed the issue Add Cloudflare protection of infrastructure #986
  • Worked on the issue Record statistics about the downloaded snapshot in the aggregator #1127
  • Worked on the issue Error refactoring #798
  • Worked on the issue Activate Cloudflare protection of infrastructure #1230
  • Worked on the issue Release new 2337 distribution #1219
  • Completed the issue Upgrade dependencies #1238
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-09-15-goedel + + 2023-09-15T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

Details

  • working on collating and open sourcing performance analysis prototype

  • improvements to Ouroboros Praos specification in Isabelle

  • working on formalising chain sync mini-protocol

  • reviewing an alternatice semantics for DeltaQ

  • Seminar talk at U. Bergen on algebraic properties of timeliness

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-09-15-hydra + + 2023-09-15T00:00:00.000Z + + High-level summary

This week, most of the Hydra team was attending a cardano scaling workshop in +Nantes, France. They used this oportunity to meet fellow mithril team and spend +some time together to hack on some code and, as always, reflect on the past work +and find optimal path forward for both projects. They also fixed a bug that +caused hydra-node to crash when querying L1, worked on a new network resillience +proof-of-concept and accepted a new ADR related to stateless transaction +observation.

What did the team achieve this week

  • Cardano scaling workshop with members of hydra and mithril teams
  • Accepted user contribution for possible new use-case #1048
  • Fix for the hydra-node crash related to internal wallet query #1053
  • Collected experimental CI findings #1070
  • Propose first POC for the network resilience #1074

What are the goals of next week

  • Monthly review meeting & report including updates from Mithril
  • Review POC and discuss our options for the network resilience
  • Update cardano-api to version 8.20
  • Address TODOs on aiken commit validator #1072
  • Complete hydra-support in kupo kupo#117
]]>
+ + Sasha Bogicevic + https://github.com/v0d1ch + + + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Ledger Team Update]]> + 2023-09-15-ledger + + 2023-09-15T00:00:00.000Z + + High level summary

The Ledger team's focus is still mainly on the Conway era implementation.

We were able to add ability to specify initial Constitutional Comittee and the initial +version of Constitution. Priority in which Governance Action are now enacted matches the +specification. DRep's deposits are now properly accounted for. Governance actions that are +not allowed to be voted on by Stake Pool operators and Constitutional Committee members +are prevented by transaction submission failure, rather than simply being ignored. There +was a few important CDDL fixes as well as a lot of new round trip serialization +tests. Constraint based testing framework has also received a lot of improvements.

Low level summary

Conway era

  • pull-3681 - Conway Genesis additions
  • pull-3690 - Preserve the order of ProposalProcedures
  • pull-3705 - Removed ProtVer from EnactState
  • pull-3700 - Add conway-specific certs to deposit/refunds
  • pull-3704 - Add comments on deprecating certs to Conway CDDL
  • pull-3698 - Reordering of governance actions
  • pull-3712 - Disallow empty fields in ConwayTxBodyRaw
  • pull-3716 - Abstract threshold calculation
  • pull-3725 - Fix mistaken use of dollar sign in cddl files
  • pull-3718 - Predicate failure for mismatched Voter GovAction
  • pull-3721 - Committee expiration, validation and modification

Improvements and releasing

Testing

  • pull-3730 - Implement Show instance for Rep using IsTypeable
  • pull-3697 - Rewrite testEql using Typeable to make it impossible to forget cases
  • pull-3709 - Add many new features to the Constrained modues in cardano-ledger-test
  • pull-3726 - Conway and other eras serialization roundtrip tests
  • pull-3713 - Improve CI resiliency against GitHub issues
]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Network Team Update]]> + 2023-09-15-network + + 2023-09-15T00:00:00.000Z + + High-level overview of sprint 44

Bootstrap Peers

In this sprint, we focused on developing bootstrap peers.

Thanks to the input from Samuel Leathers (IOG) and John Lotoski (IOG), we +identified a possible improvement to bootstrap peers. A more detailed +description is available here.

Cardano-Node-8.4.0 Release

We also were responsible for the cardano-node-8.4.0-pre release. A final +integration PR is currently being merged. We published +new versions of ouroboros-consensus, cardano-api and cardano-cli.

Towards Typed Protocols 0.2.0.0

We also updated the future typed-protocols-0.2.0.0 and its integration with +cardano-node. This is towards our goal which we planned for the next +quarter. The identified tasks are to fix breaking tests, and then measure and +address possible performance regressions.

Tech Debt

Mark Tullsen (Galois) submitted two more PRs: ouroboros-network-#4663, +ouroboros-network-#4664. We provided feedback on their other pull requests: ouroboros-network-#4661 and +ouroboros-network-#4660.

P2P adoption

In the last two weeks, there was a regression in P2P adoption concerning +the number of SPOs or stakes, although the number of overall P2P relays has +increased. Karl Knutsson (Cardano Foundation) is investigating +this issue. +P2P relays

The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays, which slowly +increase over time. The V9 and earlier versions of the node-to-node +the protocol indicates nodes version 1.35.x or earlier. +node versions

Data has been kindly provided by Cardano Foundation and their mainnet +monitoring infrastructure.

Open Source

We are in the process of upstreaming our ffi to Windows Named Pipes API to the Win32 package, see [win32-220].

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[SRE Team Update]]> + 2023-09-15-sre + + 2023-09-15T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent updates or improvements include:

  • Sanchonet environment was updated to 8.3.0-pre.
  • Cardano-parts now enables downstream consumers to spin up multiple cardano-networks per repository, an example of which is here.

Lower level summary

Capkgs

  • Add a readme, optimize flake inputs, improve nu and ruby parsing scripts: capkgs-compare

Cardano-ops

Cardano-parts

  • Utilize content addressed binaries to significantly improve eval, build and devShell performance: cardano-parts-pull-8
  • Add an aws flakeModule for obtaining ec2 specs, fix node.socket devShell error: cardano-parts-pull-10
  • Fix warns thrown during some builds and devShell usage: cardano-parts-pull-11
  • Add flakeModules and nixosModules in preparation for cardano-node grouped deployments: cardano-parts-pull-12
  • Enable group deployments by: adding several module, profile and role nixosModules; updating flakeModules; adding sops age secrets handling: cardano-parts-pull-13

Cardano-perf

  • Modify the wireguard network from mesh to star, enable ICMP, enable Nomad raw_exec and add hydraJobs: cardano-perf-compare

Cardano-playground

Cardano-world

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[DB-sync Team Update]]> + 2023-09-14-db-sync + + 2023-09-14T00:00:00.000Z + + High level summary

We have created a DBSync tag sancho-1-1-0 which can follow sanchonet. Also +the team has ran a number of benchmarks and tests for the new options/flavours of DBSync +and prepared a blogpost which summorises them, for downstream components.

Lower level summary

  • Integration of node-8.3.x and support for Sanchonet on Conway +#1498
  • Simplifications of new feautures +#1496
  • Makes it impossible to restart DBSync with different schema options and adds +tests for them +#1466
  • CI fixes +#1494#1491
  • Prepared a blogpost about different DBSync options +blog
]]>
+ + Kostas Dermentzis + https://github.com/kderme + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-09-12-node-cli-api + + 2023-09-12T00:00:00.000Z + + 2023-08-30 - 2023-09-12

High level summary

Release of Cardano-node 8.3.0-pre for SanchoNet. Adds DReps to the Conway governance rules. Allows registration of DReps, delegation to DReps and voting on constitution action with DReps and SPOs. +This release completes phase 2 of SanchoNet feature roll out plan

CLI continues on its migration to a era-based top-level commands. This sprint we moved text-view, key, query, genesis, node, stake-address, transaction and address into this new command structure. This is the initial migration, there is still some clean-up to do on future sprints.

We are moving the drep delegation-certificate to the stake-address command so delegating to a drep is done via stake-addres vote-delegation-certificate. Along the same lines, we are renaming +stake-address delegation-certificate (delagating to a stake pool) to stake-address stake-delegation-certificate to distinguish between stake delegation to a pool and votes delegation to a drep. On top +of that, there is a new type of delegation certificate to delegate (stake) to a stake pool and (votes) to a drep simultaneosuly stake-address stake-and-vote-delegation-certificate. Note that change is not included on 8.3 but will come on 8.4. +Removing --conway-era flag from all the transaction sub-commands.

Update description fields in delegation certificates from Stake Address Delegation Certificate to respectively (Conway onwards):

  • Stake Delegation Certificate
  • Vote Delegation Certificate
  • Stake and Vote Delegation Certificate

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-09-08-hydra + + 2023-09-08T00:00:00.000Z + + High-level summary

This week, the Hydra team improved the commit process with support for inline +datums. They simplified the chain layer by refactoring how the chain state is +persisted. Updates to the Hydra tutorial were completed, including CI workflows +to keep it up-to-date. The team engaged in discussions with researchers about +incremental commits & decommits, and drafted an architectural decision record +for a resource-based API. They also explored simpler solutions for the upcoming +network resilience feature.

What did the team achieve this week

  • Support InlineScriptDatum in commit +#1043
  • Refactored chain state persistency +#1049
  • Completed tutorial updates (by adding CI and some cleanup) +#997
  • Intersect Open Source committee meeting
  • Experimented with various models to better express the \"Network +resilience problem\" to find a KISS solution for +#188
  • Drafted and discussed incremental de-/commit features within team +and with researchers +#199 and +#1057
  • Created ADR for a resource based overhaul of the API +#1028

What are the goals of next week

  • Meetup of Hydra & Mithril contributors in Nantes, France
  • Integrated cardano-api 8.15 to have GHC 9.6 support
  • A clear design for incremental commits (decommits are already +understood)
  • An ADR for improving tx construction & observation to not need chain +state
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-09-07-mithril + + 2023-09-07T00:00:00.000Z + + High level overview

The Mithril team has released a new distribution 2335.0 which brings enhancements to the client: support for simultaneous downloading and unpacking of the snapshot archives, support for one line command restoration of the latest snapshot, and availability of machine readable progress information.

They have also worked on snapshots enhancements: implementation of the zstandard compression to produce smaller archives, and providing the version of the Cardano node used to create the archive in the snapshot artifacts. They have completed the second phase of the implementation of the stress test tool to benchamrk the aggregator. Additionally, they have kept working on refactoring and standardizing errors in the Mithril nodes.

Finally, they have worked on adding Cloudflare protection to the infrastructure, and they have fixed some bugs that occurred during restoration of a snapshot by a client.

Low level overview

  • Completed the issue Use 'zstandard' compression for snapshot archives #876
  • Completed the issue Design & implement stress test tool for aggregator - phase 2 #1155
  • Completed the issue Provide progress information with '--json' option in Client #1095
  • Completed the issue Make client download and extract the archive simultaneously #1115
  • Completed the issue Add aggregator Cardano node version in snapshot artifact #948
  • Completed the issue Make Cardano node version part of the Mithril network configuration #947
  • Completed the issue Post deployment 'mainnet' infrastructure #1091
  • Worked on the issue Errors refactoring #798
  • Worked on the issue Add Cloudflare protection of infrastructure #986
  • Completed the issue Failed to restore recent snapshot with strange error #1160
  • Completed the issue Update 'ed25519-dalek' to '2.0.0' #1188
  • Completed the issue Add target networks blocks in release notes #1151
  • Completed the issue Fix end to end 'wait_for_the_expected_time' test #1191
  • Completed the issue Fix docs 'git checkout' command #1174
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Performance & tracing update]]> + 2023-09-07-performance-and-tracing + + 2023-09-07T00:00:00.000Z + + High level summary
  • Benchmarking: We've performed and analysed feature benchmarks for both UTxO-HD and the current P2P stack.
  • Infrastructure: Various improvements of our analysis pipeline have been merged to master, supporting safe log truncation.
  • Tracing: Namespace consistency checks have been merged to master along with a curated configuration for benchmarking.
  • Nomad backend: We're productively using the new backend to measure new vs. legacy tracing system, adding many quality-of-life improvements.

Low level overview

Benchmarking

We've completed various runs and analyses targeting two distinct features of the node: UTxO-HD and Peer2Peer.

With our UTxO-HD benchmark we could clearly localize one point where this new way of maintaining ledger state is still costly, but at the same time confirm that in basically all other aspects UTxO-HD makes no difference in performance.

The Peer2Peer benchmarks focused on the effects that enabling this feature on a block producing node has on propagation times, as well as scrutinized a proposed change to the Peer2Peer network stack.

Infrastructure

As a result of optimizing in-memory representation of log objects, which are constructed from a node's traces, we can now analyse runs that last longer in total. For runs that exceed their expected duration, analysis now supports a truncation +operation that keeps the interdependencies of block events intact.

Truncation might happen at a slightly different point +in time - and therefore in its log object stream - for each node in the cluster. An additional step validating the block hash timeline of the cluster has been implemented for the pipeline. It provides early feedback on whether a specific truncation will lead to a valid full analysis, which requires much more time.

Tracing

Consistency checking of namespace implementation and configuration when using the new system has been completed. +This feature enables feedback on when tracer implementation details in some component might have changed. It's also able to detect when a configuration used for operating a cardano-node shows inconsistencies with the namespaces the system provides - and hence needs attention.

Furthermore, we've created a fine-grained configuration of the new system that caters to benchmarking's need of very many +detailed trace messages. It's aimed at mirroring the same amount of trace messages, and information, we're seeing from our usage of the legacy system; an important step in making benchmarks between systems comparable.

Nomad backend

The new backend is currently being used for further validation with regard to the existing cluster. Additionally, we're using it in production mode to comparatively benchmark both tracing systems after merging past month's optimizations - which is the +first real-life application of the nomad cluster. Hands-on experience in that phase translates into many small improvements which can be immediately applied to enhance user experience for the new backend.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-09-06-consensus + + 2023-09-06T00:00:00.000Z + + High level summary

We were able to successfully run the system-level benchmarks for the UTxO-HD implementation, for the first time. There was an important regression in block forging performance that will have to be addressed before UTxO-HD is released. We also revisited the implementation of our query processing logic, which was needed to address the performance regression found in the query-by-address command. The preliminary performance results show that now the performance of this query is on-par with the Cardano baseline version, but we need further confirmation. +On the Genesis front, we presented the grinding-aware safety argument for the proposed historical Cardano Genesis windows to the IOG Researchers. +The Consensus release engineer finished his rotation: version 8.3.0-pre of cardano-node is releasing 2023 September 5.

UTxO-HD

  • We ran the first successful system-level benchmarks for UTxO-HD (see #203) using the in-memory backend.
    • We observed a factor 12 regression in the forging performance, which we will have to address. There are strong indications that the regression is due to the backing store accesses that take place when taking a mempool snapshot.
    • After the mempool regression is fixed the benchmarks need to be ran again.
    • System-level UTxO-HD benchmarks with the LMDB are still pending.
  • UTxO-HD will eventually be necessary due to the growth of the UTxO set and other ledger state structures that live in memory at the moment. However, we are trying a strategy by which we could preserve the baseline performance of the node, in case SPOs and other node users are not ready to migrate yet (see #344).
  • We implemented a new way of processing queries at the hard-fork block level, which resolves the performance regression observed in GetUTxOByAddress (see this comment). Preliminary results are promising.
  • Regarding the roll out plan, UTxO-HD requires a significant change in the Consensus codebase. Even though we might be able to hide any potential performance impact in the node by keeping all data in memory (#344), the Consensus component was significantly changed, so we might have to postpone releasing this feature to mitigate any risks of conflicting with the implementation of CIP-1694 and release of Conway.

Tech debt

  • We added tests that Consensus emits valid CBOR (#3099). This helped us detect a couple of serialization bugs. The tests still need to be merged into the main branch (#323).

Support

  • Nick Frisby finished his release engineer rotation; cardano-node 8.3.0-pre is releasing 2023 September 5.
  • We helped to investigate a protocol version bug in Sanchonet (see #3491).
  • We started to implement the Network interface for bootstrap peer functionality, from which Genesis will benefit as well (see #91.
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-09-01-goedel + + 2023-09-01T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

Details

  • finalising a presenting performance analysis internship work to the +formal methods team

  • developed a new Isabelle mini-protocol framework and examples

  • planning an extended version of the ICE DeltaQ paper

  • working on algebraic rules for properisation of any-to-finish

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-09-01-hydra + + 2023-09-01T00:00:00.000Z + + High-level summary

This week, the Hydra team focused primarily on changes needed in the network +layer and have the first draft document related to needed design. They also +improved the user experience by allowing a commit using inline datums. +Discussed the off-chain governance with researchers and improved internal model +tests.

What did the team achieve this week

  • Monthly report published
  • Small changes to hydraw and tutorial in light of the Masterclass
  • Investigated a bug and saw it was solved by recent developments
  • Improved the model tests by fully validating L1 transactions
  • Enhanced the /commit API to also allow commit from scripts with inline datums (user request)
  • Discussed off-chain governance with IOG and CF researchers
  • Drafted a first network specification document in the context of Network resilience

What are the goals of next week

  • Have a clear understanding of the changes we need for the "Improve network resiliency" feature
  • Groomed and agreed plan on incremental commits/decommits
  • Updated tutorials including CI workflows to check consistency
  • Update to GHC 9.6 and latest cardano dependencies (ledger/plutus)
]]>
+ + Sasha Bogicevic + https://github.com/v0d1ch + + +
+ + <![CDATA[Ledger Team Update]]> + 2023-09-01-ledger + + 2023-09-01T00:00:00.000Z + + High level summary

Broadly speaking the Ledger team focused on a few main areas of Conway era:

  • Creation of voting state snapshots in order to correctly delay ratification for one epoch
  • Validation of the Governance Actions sequencing and ordering
  • Proper expiry of DReps and Proposal Procedures
  • Expanding Conway Genesis functionality
  • Utilization of some of the new Protocol Parameters in ledger validation rules

Low level summary

Conway era

  • pull-3659 - Validate Network for ProposalProcedure and TreasuryWithdrawal
  • pull-3637 - Avoid using sequence of tuples, by adding GovActionId to GovActionState
  • pull-3651 - Inactive DReps
  • pull-3664 - Track proposal expiry
  • pull-3668 - Add min committee size predicate to NewCommittee
  • pull-3669 - Add Proposal deposit check against PParam
  • pull-3676 - Fix inactive PoolStake not counting as Drep Stake
  • pull-3635 - Make snapshots of GovActionsState
  • pull-3670 - Validate previously enacted govAction
  • pull-3694 - Improve error reporting on the positive coin decoder
  • pull-3674 - Added RATIFY thresholds
  • pull-3684 - Add proposal delaying, remove predicate failure from ENACT
  • pull-3688 - DRep Refunds and update evalTransactionBalance

Improvements and releasing

  • pull-3677 - Minor patch that fixes the DRep distribution computation
  • pull-3686 - Post patch release fixup
  • pull-3695 - Changelog for cardano-node-8.3 release
  • pull-3683 - Add two new bench mark programs

Testing

]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Network Team Update]]> + 2023-09-01-network + + 2023-09-01T00:00:00.000Z + + High-level overview of sprint 43

In this sprint, we received contributions from CF & Galois. Karl Knutsson +(CF) has addressed various issues regarding peer churning in P2P, timeouts +and our WireShark dissector. While the Galois developers focused on +addressing issues from their review last year. See below for more details.

We continued working on bootstrap peers ouroboros-network-#4661.

We refactored our test suites: they are split into io-tests which require to +be run natively on all platforms (these tests mostly contain tests that +require IO system calls) and sim-tests which are platform independent. We +run io-tests on all supported platforms (e.g. x86_64-linux, +x86-64-darwin, aarch64-darwin and x86_64-w64-mingw32 (Windows)) natively. +The sim-tests are not executed on Windows due to memory limitations on +GitHub Actions runners. ouroboros-network-#4653

We also started rebasing typed-protocols refactoring branches.

Marcin was appointed as the cardano-node release engineer for the 8.4.0-pre +version. So far he integrated cardano-ledger-conway-1.8 and +ouroboros-network-0.9.1.0 to ouroboros-consensus, cardano-cli and +cardano-api. Once we will have an integration branch for cardano-node, +cardano-ledger-conway-1.8 and ouroboros-consensus packages can be released +to CHaP and PRs can be merged once they go through review & CI.

We also fixed some smaller issues regarding peer sharing (both were discovered +by Karl from CF). More details are included below.

Progress on P2P addoption

SPO relays

There are currently ~2000 relays running P2P +enabled nodes that belong to 557 pools with a combined stake of 7900Mil Ada. On +16th of August it was ~1700 relays, 531 pools with a combined stake of 7700Mil +Ada.

P2P relays

The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays, which slowly +increase over time. The V9 and earlier versions of the node-to-node +the protocol indicates nodes version 1.35.x or earlier. +node versions

Data has been kindly provided by CF and their mainnet monitoring +infrastructure.

IOG relays

As of this week, 90% of IOG relays are running a P2P setup. In the next sprint all +IOG relays will be running P2P.

Detailed description

In this sprint, we got a few contributions from CF:

  • Karl made peer churning mechanism less aggressive ouroboros-network-#4656; and
  • he added timeouts for idle states in ChainSync & KeepAlive +miniprotocols. These timeouts help a node remove idle connections from the +responder (server) side ouroboros-network-#4648.
  • he improved the WireShark dissector by adding support for the peer-sharing mini-protocol ouroboros-network-#4656.

Galois has been making progress in addressing some of the issues they raised in their review (last year):

Peer Sharing

  • Light peer sharing is only enabled when peer sharing is turned on ouroboros-network-#4652;
  • Handshake incorrectly reports peer sharing value. It's supposed to relay the +remote value, but instead, it returns the local value. ouroboros-network-#4642 (in review).

Async Demotion Test Fix

  • We fixed an async demotion test failure which turned out to be a weakness of +the test itself rather than a bug in the connection manager. ouroboros-network-#4655
]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[SRE Team Update]]> + 2023-09-01-sre + + 2023-09-01T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent updates or improvements include:

  • Work on cardano-parts repo continues and was utilized by the sanchonet-demo repository for demonstration purposes
  • Work on a new capkgs repository started -- "Content Addressed Packages"
    • This repository provides common Cardano release and pre-release binaries in a pure content addressed nix package type via flake output
    • These packages don't have the associated IFD, long eval times and large source dependencies that the originating source repositories often do
    • Consumers of such packages, such as devShells or nixos machines, can benefit from the improved performance this offers

Lower level summary

Capkgs

  • Content addressed packages -- new repo: capkgs

Cardano-ops

  • Cardano p2p relay updates, dbSync snapshots server update, monitoring adjustments: cardano-ops-compare

Cardano-parts

Cardano-perf

Cardano-world

Sanchonet-demo

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-08-29-node-cli-api + + 2023-08-29T00:00:00.000Z + + 2023-08-16 - 2023-08-29

High level summary

CLI is making progress towards phases 3 and 4 of SanchoNet.

  • Ability to create info, no-confidence and new committee governance actions.

  • Voting as DREP is possible now on the CLI

  • API is now using Ledger's PParams and VotingProcedures

  • Expose following queries from consensus:

    - GetGovState
    - GetDRepState
    - GetDRepStakeDistr
    - GetCommitteeState
    - GetConstitution

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-08-28-mithril + + 2023-08-28T00:00:00.000Z + + High level overview

The Mithril team created an explorer page with the registered signers to give recognition to the SPOs already running on mainnet. They also worked on refactoring and standardizing errors in the Mithril nodes, and they enhanced the clarity and reduced verbosity of the logs for the signer and aggregator nodes. Additionally, they started working on the implementation of zstandard compression of the snapshot archive, and streaming its download and decompression in the client.

Finally, they implemented machine readable progress information in the client, and streamlined the process of verifying the registration status of a signer.

Low level overview

  • Completed the issue Create explorer page with registered signers #1097
  • Completed the issue Simplify logs on the Signer/Aggregator #1106
  • Completed the issue Refactor (de)serialization of crypto entities #668
  • Completed the issue Mithril client last snapshot download #1078
  • Completed the issue Use the '/signers/registered' route to verify if a signer is registered #1152
  • Worked on the issue Provide progress information with '--json' option in Client #1095
  • Worked on the issue Use 'zstandard' compression for snapshot archives #876
  • Worked on the issue Make client download and extract the archive simultaneously #1115
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-08-25-hydra + + 2023-08-25T00:00:00.000Z + + High-level summary

This week, the Hydra team conducted the monthly review meeting for Agust,which +continously ensures transparent communication and project evaluation.

In terms of community engagement, the Hydra team gave a Hydra master-class at +RareEvo workshop as an educational initiative for the community. +Additionally, the team updated the Hydra demo and tutorial to include Mithril +and latest release changes.

They also focused on exploring the Hydra network resiliance in order to improve +hydra-node availability, as it becomes stuck very easily and that leads to a +bad user experience.

What did the team achieve this week

  • Hydra master-class at RareEvo workshop!
  • Monthly report & review meeting
  • Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff
  • Groomed network resilience and explorer features #188
  • New ADR for “Resourced based API” #1028

What are the goals of next week

  • Have a poc on network resilience working #188
  • Fix issue #931: “Chain state in head state not updated on replayed observation”
  • Fix issue #1039: "Close transaction dropped from cardano-node"
]]>
+ + Franco Testagrossa + https://github.com/ffakenz + + +
+ + <![CDATA[Performance & tracing update]]> + 2023-08-24-performance-and-tracing + + 2023-08-24T00:00:00.000Z + + High level summary
  • Benchmarking: Benchmarking node version 8.2.1 has concluded. Additionally we're developing benchmarking setups for GHC9.6 and UTxO-HD.
  • Infrastructure: Our analysis pipeline has received improvements reducing memory footprint.
  • Tracing: Another batch of optimizations for the new tracing system has been merged; work on namespace consistency guarantees is ongoing.
  • Nomad backend: We're performing and analysing various runs for validation purposes on the new hardware cluster.

Low level overview

Benchmarking

We've performed and analysed the benchmarks for the 8.2.1 version of cardano-node as part of our release benchmarking cycle.

Setting up cluster benchmarks requires completing full system integration. This applies to both supporting a new build platform, as is GHC9.6, as well as targeting a specific feature, like a UTxO-HD enabled node. Currently, we're working on respective integrations on both those paths.

Infrastructure

As cluster runs increase in duration, more and more data is accumulated for analysis. Batch analysis mode needs all data to be held +in memory, which wouldn't fit anymore even on a 64GB RAM machine. Changes to the in-memory data representation improving on compactness were able to reduce the RAM requirements of our analysis pipeline.

Tracing

The next portion of optimizations has been completed and merged to master, getting rid of Haskell's native String representation on critical code paths. This concludes the optimization phase of the new tracing system for all its components used by cardano-node.

The implementation for validation of consistent naming and configuration is ongoing. We're splitting out everything that's verifiable at compile time into a seperate test case which we hope to integrate into CI - leaving only configuration constraints to be verified at or before node startup.

Nomad backend

The verification phase of the nomad cloud backend is ongoing. We're able to perform full runs on the new hardware cluster +and porting profiles and configurations from the legacy one. The goal is to reproduce with confidence known regressions, or improvements, between runs performed on the legacy cluster and runs performed with the new backend.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-08-23-consensus + + 2023-08-23T00:00:00.000Z + + High level summary

On the UTxO-HD front we reached another important milestone, where we handed over the implementation for benchmarking and testing. We are working on addressing the first issues that were found during the integration tests. +On the Genesis front we are finalizing the argument that a checkpoint is not necessary for the initial release, including supporting to support said argument. We are also working on the new node release, and several improvements to our code-base.

UTxO-HD

  • We addressed the issues that came from the benchmarking and testing phase (see #314).
    • We fixed the operational-certificate update exception (#305).

Tech debt

  • We elaborated an inventory of the symbols used by downstream clients in an effort to clearly define the Consensus API, which will help managing changes and their impact to the downstream clients (see this branch).
  • We extracted the SOP modules to a separate package as part of our effort to reduce the Consensus API surface area (see this branch).
  • We took the first step towards improving how the Cardano hard-fork block is instantiated when running a node (see #275).
  • We decreased the flakiness for our test suite (#284).
  • We incorporated and merged the pull-request on query versioning (#273).
  • We started working on new performance-based regression tests for mempool operations.

Support

  • Nick Frisby continues with his engineer responsibilities. Notably getting the Consensus release out for node pre-release 8.3. Nick also began integrating it into downstream branches (cardano{-api,-cli,-node}). The Node team has now taken over, since Nick had progressed up to the point where they needed to start making new design decisions. Related PRs:
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-08-18-goedel + + 2023-08-18T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

Details

  • Development of an automated prover for showing conformance of +programs to state machines (as part of the mini-protocol framework)

  • Completion of the documentation of the (current state of the) +mini-protocol framework

  • Discussion about two DeltaQ lectures with two practical sessions as part +of 4th year masters course on distributed systemsby colleagues at UC +Louvain in the Autumn

  • Discussion about four DeltaQ lectures by colleagues at U. Bergen as part +of a 5th year Masters course in the Autumn

  • Adapted original DeltaQ implementation to the new typeclasses and +wrote property tests for its algebraic laws

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-08-18-hydra + + 2023-08-18T00:00:00.000Z + + High-level summary

This week, the Hydra team released version 0.12.0, a significant update that +brings support for cardano-node 8.1.2, along with performance enhancements and +various API improvements. Additionally, the team successfully onboarded a new +contributor who is now actively participating in operating a Hydra Head. They +took part in a meeting of the Intersect open source committee and prepared the +Hydra master-class for RareEvo, an educational initiative for the community.

If you happen to be at RareEvo, register for the Hydra master-class using this +form. +We hope to make it possible to follow along on-line as well and will announce +details on the Hydra announcements channel on the IOG discord +server.

What did the team achieve this week

  • Released version 0.12.0 which adds support for cardano-node 8.1.2, performance +and several API improvements. Release notes
  • Replaced commit via websocket with external draft + submit. #954
  • Onboarded new contributor to the point where he actively participates in operating a Head now.
  • Joined a first meeting of the Intersect open source committee
  • Prepared the Hydra master-class for RareEvo.

What are the goals of next week

  • Monthly review meeting
  • Run the Hydra master-class at RareEvo!
  • Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff
  • Clear out red bin items (technical debt)
  • Groom network resilience and explorer features
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Ledger Team Update]]> + 2023-08-18-ledger + + 2023-08-18T00:00:00.000Z + + High level summary

The ledger team made great progress in advancing Conway era forward. In particular, voting +for DRep and Stake Pool Operators is now at the state that can be used by downstream +components. Addition of new ledger state queries makes it possible to verify changes to +the governance state, such as placement of votes, submission of governance proposals, +inspecting DRep stake distribution and more. Addition of treasury withdrawals concludes the +ability to enact all of the governance actions, except for the hard fork initiation.

Low level summary

Conway progress

  • pull-3577 - Move PParams to GovState
  • pull-3609 - Adjust thresholds for sanchonet
  • pull-3604 - README: update CIP-1694 link
  • pull-3616 - Switch TreasuryWithdrawals to use RewardAcnt
  • pull-3599 - Add governance action well-formedness check
  • pull-3607 - Rename governance to gov
  • pull-3601 - Added DRep anchors
  • pull-3615 - Add optional previous GovActionId in some ProposalProcedures
  • pull-3596 - Upgradeable families
  • pull-3625 - Change constitution to use Anchor
  • pull-3592 - Added pulsing incremental computation of the DRep distribution
  • pull-3523 - Treasury donations
  • pull-3633 - Prevent state changes on phase2 failure
  • pull-3634 - Disable serialization of protocolVersion param update
  • pull-3630 - Implemented DRep refreshing
  • pull-3640 - Remove crypto parameterization from AnchorData
  • pull-3636 - Implement DRep ratification with an "always passing"; threshold
  • pull-3648 - Governance queries
  • pull-3650 - Change environment for ShelleyPOOLREAP rule
  • pull-3658 - Set DRep ratify threshold to 51%
  • pull-3628 - DELEG, POOL, GOVCERT conformance with Spec v0.8

Testing

Improvements and releasing

  • pull-3660 - Fix bounds and versions
  • pull-3661 - Adjust versions, bounds and CHANGELOGs to account for the latest release
]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Network Team Update]]> + 2023-08-18-network + + 2023-08-18T00:00:00.000Z + + High-level overview of sprint 42

Eclipse Evasion

We merged and released a new version of the ouroboros-network package (version +0.9.0.0) which includes big ledger peers feature. +This is the primary peer selection mechanism to defend against eclipses. We +also prepared a PR to updated ouroboros-cosnensus +and ekg-forward packages.

CDDL specs for protocol codecs

We made the cddl spec for network codec more inline with the implementation +which is highly polymorphic. cddl doesn't have the notion of polymorphism, +but has any which can generate any valid cbor term. We matched it with an +Any type on the Haskell side and made all remaining tests & specs use it. +This simplified the specifications and made it easier to understand which parts +are defined in the spec, and which parts are left unspecified. See +ouroboros-network#4595.

Ouroboros-Network-Framework API changes

We also released ouroboros-network-framework and other network components. +The ouroboros-network-framework package contains a redesign of API exposed to +ouroboros-consensus. We consolidated, cleaned it and made it easier to +extend in the future if there will be new arguments that need to be passed to +mini-protocol initiator and responders which comes from the low-level network +layer.

Nix setup (CI)

We also made a major review of our nix setup. With help from our DevX team +we ended up with a clean flake.nix file which can:

  • compile & test the code on x86_64-linux, x86_64-darwin and aarch64-darwin
  • cross-compile to Windows on x86_64-linux

And provides a shell which contains all the build tools, including ghc-9.6, +hls, cddl, and more. See ouroboros-network#4640, +ouroboros-network#4643.

Other contributions

Cardano Network Service Assurance

  • The work and writeup in finishing up the CNSA, first stage (first +contract).
  • Getting Sam Cowger (Galois Inc) up to speed.
  • The IOG Networking team carried a reivew of CNSA project progress: a limitted +code & design review.

Galois Review

Sam Cowger and Mark Tullsen (Galois Inc) have made some progress on each of the tech debt issues

scoping, requirements, and getting started.

CI

We added a nightly run for GitHub actions and made the GitHub actions test be +executed with extra concurrency ouroboros-network#4637, ouroboros-network#4649.

We also added GitHub's dependabot ouroboros-network#4650.

Bootstrap Peers

We settled on implementation design of bootstrap peers which is being +implemented, ouroboros-network#4615.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[SRE Team Update]]> + 2023-08-18-sre + + 2023-08-18T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent updates or improvements include:

  • Sanchonet and shelley-qa environments were updated to 8.2.1-pre.
  • Work on two new repos utilizing flake parts for cardano cluster generation, automation and operation.

Lower level summary

Cardano-ops

Cardano-parts

Cardano-perf

Cardano-playground

Cardano-world

Inputs-check

  • A flake parts module to check input closure sizes recursively for optimization considerations: inputs-check
]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Crypto Team Update]]> + 2023-08-17-crypto + + 2023-08-17T00:00:00.000Z + + High level summary

The open fronts that the crypto team is working on are:

  • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
  • mithril: Full node verifier
  • musig2: Include MuSig2 description in cryptography handbook
  • kes_agent: Finilising test and CI. Working on KES binary

Low level summary

Mithril

  • Full Node Verifier merged #939.

MuSig2

  • Started describing MuSig2 to include it as part of the cryptography handbook

Sidechains

  • Analysis of Halo2 verifier with the goal of implementing SNARK verifier in Plutus. Implemented ad-hoc IPA verifier. Work progress in this fork.

KES agent

  • KES agent is ready:
    • CI ready #19
    • Receipt confirmation message #20
    • KES agent binary ready #21
    • Control client implemented #11
]]>
+ + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
+ + <![CDATA[DB-sync Team Update]]> + 2023-08-17-db-sync + + 2023-08-17T00:00:00.000Z + + High level summary

We have integrated many new Conway feutures and allow db-sync to sync sanchonet. +We also continued testing and improving the new db-sync options.

Lower level summary

  • Conway integration +#1484
  • Support for Sanchonet +#1476
  • Stake distribution is computed earlier +#1484
  • Deposit ledger events are now used. This reduces the db queries and makes syncing faster +#1484
  • Testing new db-sync options +#1466
  • Added support for ghc-9.6 +#1479
  • Tech debt: improve exceptions +#1471
]]>
+ + Kostas Dermentzis + https://github.com/kderme + + +
+ + <![CDATA[SECP bindings Security Issue Report]]> + 2023-08-17-secp-issue + + 2023-08-17T00:00:00.000Z + + Security Issue Report: SECP256k1 bug

Date Occurred: July 15, 2022 +Severity: Potentially Very High if exploited on Mainnet +Authors: Iñigo Querejeta Azurmendi

Date of Report: August 17, 2023

Summary of Issue

Criticality Level

Actually low (since the issue was detected prior to deployment) but potentially very high if it had been deployed to mainnet +Context

New SECP256k1 Plutus bindings were being introduced in order to support interoperability with other major chains, such as Bitcoin and Ethereum. The intention was to deploy these as part of the Vasil hard-fork. The bindings were considered to be a low-security risk since the underlying library functions were well tested and had been deployed on other blockchains. +How was the Issue Detected

The issue was detected via specific End-to-End tests that had been commissioned. It was (accidentally) triggered on the Cardano Testnet before a fix could be deployed there.

What Action was Taken

The Cardano Testnet was permanently halted, and new test environments were deployed (Preview and Pre-Prod). +Fixes were applied to prevent the use of the primitives. +A full security audit was carried out on the bindings. +The rollout of the primitives was postponed to a new hard fork (Valentine)

Potential Effect

The potential effect was that an adversary might be able to craft invalid Plutus transactions to crash any node, requiring execution of the Cardano disaster recovery plan to revert to a safe state and bypass the transaction.

Actual Effect

  • Delay to the Vasil hard-fork
  • Temporary removal of SECP256k1 primitives
  • Additional hard-fork to introduce SECP256k1 primitives

Ongoing Mitigations Needed, if any

None

Responsibility for Mitigations

Core team

Detailed description of Incident

New Plutus secp256k1 cryptographic primitives for Plutus v2 failed to apply the necessary validity checks on the input data, meaning that the primitives could theoretically be used in an unsafe environment. The vulnerability was present in recent node versions (1.35.0 onwards), including ones deployed to Cardano Testnet.

The problem was not in the deserialization functions of the underlying library (Bitcoin's library) but rather that the Haskell functions that implemented the Plutus builtins were not calling them correctly. In particular, the library functions were designed to take structured data as input. However, the Haskell FFI implementation that was produced for the Plutus builtins allowed a caller to pass in (possibly) unstructured data. There were no checks that these data were structured in the correct way. This issue was detected during End-to-End testing.

  • This is the ECDSA signature verification algorithm that was used. It takes a SECP256k1_pubkey as input. That type is an opaque type with an expected structure: a parsed and valid public key. It was not immediately obvious that structured data needed to be passed to allow the function to be used safely.
  • The same happened with the Schnorr verification function. It takes as input a SECP256k1_xonly_pubkey, which is again an opaque structure that holds a parsed and valid public key.

The FFI skipped checks over these structured keys and directly passed the raw bytes that were given as arguments. If an adversary were to pass in data that was not properly structured, then it could result in unexpected behavior of the library. This could perhaps translate into an adversary being able to crash the nodes that ran these functions. All nodes in the network could be crashed by a single transaction that would then be executed repeatedly, so stalling the network until the disaster recovery process was initiated.

The fix was addressed in this PR. It consisted of using the external representation that the deserialization function expects and running the deserialization prior to signature verification. This was audited by security experts.

Recommendations

  • Check all new Plutus bindings for correct use.
  • Audit all new Plutus built-in bindings.
  • Continue to develop specific End-to-End tests for all new Plutus features.
  • Do not assume that any existing library functions are "safe". Treat all external calls circumspectly.
]]>
+ + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-08-15-node-cli-api + + 2023-08-15T00:00:00.000Z + + 2023-08-02 - 2023-08-15

High level summary

  • cardano-node 8.2.1 (pre-release) to SanchoNet
  • Continue moving CLI into era-based top level command structure
  • Wire-up DREP key generation,
  • Fix DREP deregistration certificates
  • Implement Constitutional Committee Key generation on the CLI
  • Introducing era-based protocol parameters on the API
  • Removing depracated functions and types on the API

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

Fix broken links in docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-08-11-hydra + + 2023-08-11T00:00:00.000Z + + High-level summary

This week, the Hydra team updated hydra-node to support cardano-node version +8.1.2, ensuring compatibility with the latest mainnet release. The team also +participated in discussions about a "cardanonical" JSON schema and added it as a +submodule to the project, contributing to improved data modeling and +interoperability.

In terms of community engagement, the team successfully onboarded a new +contributor, also participated in a RareEvo Twitter space, and continued +preparations for the Hydra master-class.

What did the team achieve this week

  • Updated dependencies to support cardano-node 8.1.2 #1007
  • Engaged in discussions about a cardanonical json schema and +add it as submodule to the project +#1013
  • Onboarded a new contributor to the hydra project (@locallycompact)
  • Joined RareEvo twitter space and continued preparation of hydra master-class

What are the goals of next week

  • Update & streamline tutorial to work with latest version of hydra-node
  • Remove the internal commit functionality #954
  • Release 0.12.0
]]>
+ + Franco Testagrossa + https://github.com/ffakenz + + + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Performance & tracing update]]> + 2023-08-11-performance-and-tracing + + 2023-08-11T00:00:00.000Z + + High level summary
  • Benchmarking: We've concluded benchmarking node version 8.2.0.
  • Tracing: Optimization of the new tracing system has been merged; we're currently working on self-documenting tracing configuration.
  • Nomad backend: A PR that makes our backend take advantage of added flexibility of the new hardware cluster has been merged.

Low level overview

Benchmarking

As part of our release benchmarking cycle, we've completed and analysed the runs for the 8.2.0 version of cardano-node. In addition to the adjustment of sanity checks in our automation, we had to implement small changes in the analysis pipeline as well to accomodate the new version.

Tracing

A significant amount of optimizations for the new tracing system has finally been merged to master. At the moment, +we're working on having a trace message self-document the final tracing configuration of a running node. Apart from adding +insight into the system, this feature also aims at making future hot reloading of tracing configuration explicit and straightforward.

Furthermore, we're setting up a final round of system integration level benchmarks comparing new against legacy tracing.

Nomad backend

The new hardware cluster permits greater flexibility as far as SSH access is concerned. By using nomad for a consistent +and reliable deployment, but taking advantage of direct connections for healthchecks and data transfer we believe we were +able to reduce overall network latency in the nomad cluster. This improves confidence when capturing all network related measurements during our benchmarks.

A PR that adds these capabalities to our nomad backend - along with very many quality-of-life improvements - has been merged to master.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-08-10-mithril + + 2023-08-10T00:00:00.000Z + + High level overview

The Mithril team completed the Mithril protocol’s mainnet beta launch: the release-mainnet network is now consistently producing new certificates and snapshots! The team has released a new distribution 2331.1 which includes some optimizations and bug fixes: the bootstrap time of a Cardano node restored from a Mithril snapshot has been significantly reduced, and a bug that made the aggregator produce corrupted archives has been fixed. They also kept working on the implementation of the stress test tool for benchmarking the aggregator: the first phase has been implemented, as well as a monitoring feature. Additionally, they kept implementing the refactoring of the serialization/deserialization of the entities of the cryptographic library, and working on the post deployment of the mainnet infrastructure.

Finally, they completed the rewriting and enhancements of the documentation website, and they completed the runbook for operating a production Mithril network.

Low level overview

  • Released the new distribution 2331.1
  • Completed the epic Release 'mainnet' Mithril network #918
  • Worked on the epic Benchmark performances of Mithril Aggregator #904:
    • Completed the issue Design & implement basic stress test tool for aggregator - phase 1 #991
  • Worked on the epic Post deployment 'mainnet' infrastructure #1091:
    • Completed the issue Create Production Infrastructure Runbook #1085
    • Completed the issue Ingest 'mainnet' metrics/logs in Grafana #1122
  • Worked on optimizations:
    • Completed the issue Add a 'clean' file to extracted database in client #1131
    • Worked on the issue Create explorer page with registered signers #1097
  • Worked on refactoring:
    • Worked on the issue Refactor (de)serialization of crypto entities #668
  • Worked on bugs:
    • Completed the issue Client fails to unpack some snapshot archive #1137
    • Completed the issue The 'release-preprod' network stopped producing certificates #1114
    • Completed the issue The 'release-mainnet' network does not show up in the explorer #1111
  • Worked on dependencies:
    • Completed the issue Upgrade Cardano node to '8.1.2' #1090
  • Worked on troubleshooting:
    • Completed the issue Signer can't sign with 'Invalid signature for party' error #1125
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-08-09-consensus + + 2023-08-09T00:00:00.000Z + + High level summary

This week the Consensus team worked on integrating the latest node release into the UTxO HD branch. Our ad-hoc benchmarks in which we sync a node from scratch showed that the LMDB backend uses around 8GB of memory. We also released new versions of fs-sim and fs-api, and released strict-checked-vars.

UTxO-HD

  • Rebased UTxO-HD on top of node 8.2 (issue)
  • Address new Maybe translations for UTxOs in Conway 1.6. (PR).
  • Performed ad-hoc benchmarking syncs with both implementations. The LMDB backend uses around 8GB of memory.
  • Fixed an infinite loop on the mempool tracing code that was preventing the node from shutting down gracefully.
  • Fixed an infinite loop on the ledger state query for traversing queries that prevented the node from running QueryUTxOByAddress (PR).
  • Measured the speed of QueryUTxOByAddress under different queryBatchSize values. There is a significant performance degradation for these queries when using the UTxO-HD version. Using the mainnet UTxO set at slot 90 million, querying an address took 40 seconds using the in-memory backend and 90 seconds using the LMDB backend, whereas the baseline took 7 seconds. We need to investigate if we can improve this situation or whether an external service that runs alongside the node is a better solution.
  • Refactored and implemented ledgertable-related classes for the general HardforkBlock.

Genesis

  • Frisby and Esgen continue to engage with the Researchers on grinding against the Genesis design.

Fostering collaboration

  • Drafted a document explaining versioning of local state queries #273.

Support

  • Frisby is the release engineer this cycle.
  • Successfully created work-in-progress ouroboros-consensus and cardano-api commits that integrate the 2023 Aug 7 tip of cardano-ledger. This will require a release of ouroboros-consensus, which hasn't happened yet.
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Crypto Team Update]]> + 2023-08-04-crypto + + 2023-08-04T00:00:00.000Z + + High level summary

The open fronts that the crypto team is working on are:

  • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
  • mithril: Full node verifier
  • musig2: Finalised the missing fuzz tests
  • kes_agent: engineer on PTO. Work halted

Low level summary

Mithril

  • Work on a mithril flaky test #1105
  • Keep working on Full Node Verifier #939. +Should be merged in the coming week.

MuSig2

  • Finalised the fuzz tests #43

Sidechains

  • Analysis of Halo2 verifier. Necessary for a future implementation of a plutus verifier.
]]>
+ + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-08-04-goedel + + 2023-08-04T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is formalising mini protocols and also further developing the +performance modelling prototype.

Details

  • Developing new framework for specification and verification of +mini-protocols which is closer to the Haskell implementation.

  • Developed a new internal representation for the DeltaQ algebra that +allows for more modularity in backend implementations

  • Discussions regarding the Cardano networking specification

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-08-04-hydra + + 2023-08-04T00:00:00.000Z + + High-level summary

This week, the Hydra team achieved notable progress in various aspects of the +project. The team updated the use case section for auctions on the /unstable +branch of the website, improving the understanding of Hydras applicability.

From the development side, the team successfully completed event-sourced +persistence, a key enhancement in the projects architecture which improves +off-chain transaction processing performance. They also added a +submit-transaction endpoint to the API.

In addition to project-related progress, the team actively engaged in community +reviews for several catalyst proposals related to Hydra and Mithril, +contributing to the wider Cardano ecosystem.

Finally, the full report for the month of July was also published here.

What did the team achieve this week

  • Published the monthly report for July
  • Updated the use case section for auctions (published on /unstable branch)
  • Completed event sourced persistence #913
  • Added a submit-transaction endpoint to the API #966
  • Community reviews for several catalyst proposals related to Hydra and Mithril
  • Created a network testing tool (hydra-net) #1006

What are the goals of next week

  • Update hydra-node to work with cardano-node version 8.x
  • Remove the internal commit functionality
  • Release version 0.12.0
  • Update & streamline tutorial to work with latest version of hydra-node
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Ledger Team Update]]> + 2023-08-04-ledger + + 2023-08-04T00:00:00.000Z + + High level summary

The ledger team was working almost exclusively on the Conway era implementation. In +particular, the main focus was directed towards solidifying transaction related types and +their binary representation. We also directed some effort into unblocking Plutus team with +respect to PlutusV3 integration.

Low level summary

Conway progress

  • pull-3552 - Allow Constitutional Committee Hot Key to be ScriptHash
  • pull-3581 - Make Constitutional Committee Cold Key to be ScriptHash
  • pull-3571 - Implement a portion of the TICKF rule.
  • pull-3556 - Add Script to Constitution
  • pull-3576 - Add optional Anchor to ConwayRegDRep certificate
  • pull-3495 - Implement refund logic for Proposal deposits
  • pull-3579 - Change voting procedure in the transaction to a nested Map
  • pull-3585 - Rename CommitteeCert into a GovCert
  • pull-3587 - Remove DelegStakeTxCert from the COMPLETE pragma for TxCert
  • pull-3586 - Add CurrentTreasuryValue to TxBody
  • pull-3588 - Rename key roles
  • pull-3557 - Update NewCommittee action to use RewardAcnt and add more info
  • pull-3595 - Add ConwayUpdateDRep constructor to ConwayTxCertGov type
  • pull-3600 - Filter out zero TxOuts on Byron/Shelley boundary instead of Babbage/Conway
  • pull-3597 - Update ProposalProcedure return address to be a RewardAcnt

Testing

  • pull-3374 - New features for generation subject to constraints
  • pull-3519 - Basic Conway features test

Bugfixes

Plutus integration

  • issue-3538 - A fairly complete specification was created for the PlutusV3 context
  • pull-3593 - Conway TxInfo for PlutusV3 is now compatible with all pre-Conway functionality

Improvements and releasing

  • pull-3574 - Improve clarity and performance of collateral Non-ADA validation:
  • pull-3573 - Update top-level CHANGELOG.md with cardano-node relevant changes
  • pull-3555 - Bump pygments from 2.12.0 to 2.15.0 in /doc
  • pull-3575 - Bump certifi from 2022.12.7 to 2023.7.22 in /doc
  • pull-3567 - Backport mint field translation bugfix
  • pull-3568 - Fixed typo in byron ledger spec
  • pull-3572 - Release/backport tickf bugfix
]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[Network Team Update]]> + 2023-08-04-network + + 2023-08-04T00:00:00.000Z + + High-level overview of sprint 41

24th July - 6th August 2023

We started the implementation of bootstrap peers. Bootstrap peers are designed +to provide a safety guarantee for nodes joining the network while still taking +advantage of the distributed network for nodes that are synced. This will be +an intermediate step before Genesis which will allow for further distribute the +system. The bootstrap peers will be run by some trusted partners like CF, +Emurgo or IOG. They are primarily designed for leaf nodes (e.g. full node +wallets), which often end up syncing and require access to the honest chain. See +ouroboros-network#4615 for a more detailed implementation plan.

Other contributions

We started to use nothunks library to discover if we have any unevaluated +thunks which can lead to memory leaks ouroboros-network#4633. We found +a small one in the peer metric component of the P2P networking stack. Fixing +it put us on a small detour of fixing the API of the strict-checked-vars +package: cardano-base#431, cardano-base#432, as well as adding NFData +instance to io-classes. We also improved nothunks +library to make debugging easier and we provided a NoThunks instance for +ThreadId which we will need in the future (see nothunks#33).

We released a new version of io-classes (version 1.2.0.0) and related +packages to Hackage.

We addressed all review comments on the eclipse evasion PR which introduces big +ledger peers, ouroboros-network#3886.

We fixed how SIGHUP signal handlers are registered, so it's not possible to +shutdown a node which was starting while trying to update network topology, +see cardano-node#5421.

I didn't mention that in the previous update, so here it goes: in the previous +sprint we released ouroboros-network-0.8.2.0 and +ouroboros-network-framework-0.7.0.0.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Performance & tracing update]]> + 2023-08-04-performance-and-tracing + + 2023-08-04T00:00:00.000Z + + High level summary
  • Benchmarking: We're adjusting the benchmarking cluster to handle runs for node version 8.2.0.
  • Tracing: We've finished optimization of the new tracing system and added extra robustness with regard to namespacing.
  • Infrastructure: We've been working on making all benchmarking code compliant with the latest GHC9.6.
  • Nomad backend: The new backend has seen adjustments due to a change of underlying hardware. Additionally, we've successfully performed various benchmarking runs on it.

Low level overview

Benchmarking

The 8.2.0 version of cardano-node required adjustment of some of the sanity checks that are part of our benchmarking +cluster automation. We've pinpointed the necessary changes and are currently setting up the cluster for the new node version.

Tracing

The optimization efforts for the new tracing system have been completed and have significantly reduced the resource footprint +when using it as default for a running node.

A linchpin of the new system is the organization of traces into a namespace hierarchy. This affects configuration, self-documentation as well as rendering of desired trace messages. The new system is now equipped to detect any +inconsistency in the whole set of tracers, defined across all components, even if they are never turned on in a running node. +This feature adds another layer of robustness to the whole system.

Infrastructure

A potential switch to GHC9.6 (or higher) required some work on our code bases to make it compliant with recent compiler +versions. We've future-proofed our benchmarking code.

Nomad backend

The hardware cluster that our nomad backend was accessing has been changed, and we were able to adjust our backend +accordingly without touching its higher level abstractions and functionality. Moreover, with the new hardware and cluster setup, certain tasks such as retrieving run artifacts or healthcheck monitoring have become more performant.

The validation phase is ongoing. We were able to perform successful runs and analyses for various 8.x node versions, including 8.2.0-pre. With parallel runs on the current cluster, we hope to measure the same effects we've observed with the +nomad backend - which will be a big step towards production use.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[SRE Team Update]]> + 2023-08-04-sre + + 2023-08-04T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent updates or improvements include:

  • Preprod and preview envionments were updated to 8.1.2.
  • Sanchonet and shelley-qa environments were updated to 8.2.0-pre.
  • Work on a new cardano performance repo which utilizes a lightweight Cloudformation/Rain to Terraform infra bootstrap and Nomad environment has begun.

Lower level summary

Cardano-ops

Cardano-perf

Cardano-world

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-08-01-node-cli-api + + 2023-08-01T00:00:00.000Z + + 2023-07-19 - 2023-08-01

High level summary

  • Release of Node 8.2.0
    • Updates to the ledger packages extend progress on the Conway ledger era to support new governance features via CIP-1694.
    • This release is phase 1 of the SanchoNet roll out
    • Allows SPOs to vote on changes to the on-chain constitution.
    • Ability to start the node in block production mode with no secrets loaded using the --non-producing-node flag.
    • Updates to the networking packages prepare the road for peer sharing.
  • cardano-cli and cardano-api continue to integrate Conway era features
  • Continue refactoring of cardano-testnet

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Network Team Update]]> + 2023-07-31-network + + 2023-07-31T00:00:00.000Z + + Network Update (Sprints 39 & 40)

The network updates got distracted. Mostly because of me leaving for the meeting in Edinburgh, Scotland and the being away. +It was great to see and talk to so many of the community members.

Sprint 39 (Jun 26 - Jul 09)

Major changes

Now the following list of traces will be turned on by default:

node-to-client protocol
  • LocalConnectionManagerTracer
  • LocalInboundGovernor
  • LocalHandshake
  • LocalServer
node-to-node protocol
  • Server

See cardano-node#5353. This will be released in node-8.2.0.

We made sure that cardano-client-0.1.0.x library (which is db-sync) is not using the experimental node-to-client protocol. +The cardano-client-0.2.0.0 was not affected. +See ouroboros-network#4612.

We merged the dynamic block production feature to ouroboros-consensus (also available in the cardano-node-8.2.0 release). +Dynamic block production enables hot-swap p2p nodes, which are important for the p2p deployment of block-producing nodes. +See ouroboros-network#3159, [ouroboros-consensu#140].

We continued to review the implementation of big ledger peers for eclipse evasion, see ouroboros-network#4462.

Minor changes

Sprint 40 (Jul 09 - Jul 23)

Major changes

We integrated ouroboros-network-0.8.2.0 with the master branch of cardano-node for the 8.2.0 release (the version match between ouroboros-network and cardano-node is purely accidental). +This includes:

  • integration with dynamic block production feature. +This feature is documented in the following PR.
  • Warm valency for local root peers (see below).

For the full list of features included in the 8.2.0 release from the network side, please take a look at the pre-release nodes.

We improved the memory footprint of peer metrics measured by the P2P stack. +Peer metrics are used to decide which peers to demote every churn interval (roughly every hour with some probabilistic fluctuation). +See ouroboros-network#4620. +The improvement will be available in cardano-node-8.2.0.

We added an optional explicit warm valency to local root peers of the P2P topology file. +Previously we used an implicit valency, e.g. the node keeps connections to all of the local roots; with local warm valency the node will pick only that many peers from the local root peers group to connect to. +The hot valency (previously known simply as valency) hasn't changed, but it must be smaller than the warm valency as hot peers are selected from warm ones. +Warm valency is a useful feature to limit resource consumption if one of the domain names in the local root peer group resolves to many IP addresses. +See ouroboros-network#4575, cardano-node#5409.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-07-28-hydra + + 2023-07-28T00:00:00.000Z + + High-level summary

During this week, the Hydra team achieved significant progress in various areas. +They conducted the monthly review meeting for July, which continously ensures +transparent communication and project evaluation. The team migrated the core +logic of the node to an event-sourced architecture and incremental writes of +events to persistence, enhancing the projects performance and maintainability. +Furthermore, the team added the ability to read protocol parameters via the API +and fixed the CI workflows to support pull requests from forks of external +contributors, streamlining the development process for community involvement.

What did the team achieve this week

  • Held the monthly review meeting for July (recording)
  • Migrate the core logic of the node to an event-sourced architecture #999
  • Updated persistence to faster incremental writes of events #1000
  • Added ability to read protocol parameters via API #735
  • Fix CI workflows to support pull requests from forks of external contributors #993
  • Updated to GHC 9.2.8 #1005
  • Prepared an updated use cases section on https://hydra.family (published with next release)

What are the goals of next week

  • Publish monthly report
  • Complete user transaction submission work #966
  • Remove commit from internal wallet (deprecated) #954
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-07-27-mithril + + 2023-07-27T00:00:00.000Z + + High level overview

The Mithril team launched Mithril protocol’s mainnet beta: the release-mainnet network is now open for signer registrations, and its genesis certificate has been created. The team is monitoring the network, and expects it to start producing certificates during the next Cardano epoch.

They have released a new distribution 2329.0, which is running on the release-mainnet network. They also kept working on the implementation of the stress test tool for benchmarking the aggregator. The team kept working on the refactoring of the serialization/deserialization of the entities of the cryptographic library. Additionally, they completed the cleanup of the legacy store adapters in the aggregator.

Finally, they have worked on enhancing the documentation for onboarding SPOs and setting up a Mithril signer, and fixing installation bugs of the binary artifacts produced in the CI.

Low level overview

  • Created the dev blog post Mithril Protocol’s Mainnet Beta Launch
  • Released the new distribution 2329.0
  • Closed the epic that prepares the Mithril infrastructure for mainnet #767:
    • Completed the issue Deploy 'mainnet' infrastructure #988
    • Completed the issue Handle Secrets management #989
  • Worked on the epic Release 'mainnet' Mithril network #918
    • Completed the issue Prepare SPO on-boarding guide #1049
  • Worked on the epic Benchmark performances of Mithril Aggregator #904:
    • Worked on the issue Design & implement basic stress test tool for aggregator #991
  • Worked on optimizations:
    • Completed the issue Enhance the configuration of Mithril relay #1080
    • Completed the issue Remove legacy store adapters from aggregator #1053
    • Completed the issue Add a 'sign' sub-command to 'genesis' command in aggregator #1081
  • Worked on refactoring:
    • Worked on the issue Refactor (de)serialization of crypto entities #668
  • Worked on documentation:
    • Completed the issue Enhance 'Run a Mithril Signer node (SPO)' guide #1055
  • Worked on bugs:
    • Completed the issue Shared library error in CI binaries #1073
    • Completed the issue Debian package does not install cleanly on older ubuntu versions #834
    • Completed the issue Aggregator panics with new (de)serialization of 'ProtocolVerificationKey' #1083
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-07-26-consensus + + 2023-07-26T00:00:00.000Z + + High level summary

The db-sync team confirmed that the adaptor module the Consensus team provided for UTxO-HD integration, shows no performance degradation. Other clients who wish to integrate with UTxO-HD without using a on-disk storage could use that same approach for now. +We also focused on completing tracing support for UTxO-HD in cardano-node. +Currently we are working on UTxO-HD documentation, both for downstream consumers and for the general public; and generalizing the implementation further.

The team working on Genesis decided on a Genesis-motivated change of the epoch structure with the researchers, wrote a self-contained description of the statistical model for historical Genesis windows and eclipse durations, and merged two small improvements to the ChainSync client as part of the onboarding efforts for the team that will implement Genesis.

The Consensus team also investigated an issue on sanchonet (the Conway testnet) manifesting in long syncing pauses; identified a ledger bug which was promptly fixed by the Ledger team.

Genesis liaising

Improvements to the ChainSync client:

]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-07-21-hydra + + 2023-07-21T00:00:00.000Z + + High-level summary

This week, the Hydra team updated the specification to align with recent +off-chain protocol changes, completed refactoring the snapshot emission +in preparation for event-sourced protocol logic, and updated to GHC +9.2.7, resulting in improved compile times and slightly smaller Plutus +scripts.

What did the team achieve this week

  • Updated the specification to match the recent off-chain protocol +changes to complete +#728
  • Refactored the snapshot emission logic in preparation for event +sourced protocol logic.
  • Updated to GHC 9.2.7, which led to improved compile times and +slightly smaller plutus scripts.

What are the goals of next week

  • Monthly review meeting next wednesday and July report
  • Reflect latest information onto our roadmap.
  • Actual implemention of event-sourced persistence +#913.
  • Update the use cases section on https://hydra.family
  • Remove deprecated internal commit +#954.
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Ledger Team Update]]> + 2023-07-21-ledger + + 2023-07-21T00:00:00.000Z + + High level summary

Our focus was on planning and implementing Conway features that we would like to see deployed and running on Sanchonet. +All members of the ledger team participated in the CIP-1694 workshop and had an in-person meeting, where we discussed plans forward for the Conway era. +We also investigated some transaction validation issues that occurred on preview with the latest node (for 8.2 release). +Additionally, we did some preparatory work that will help us define the types we need for Plutus V3 and integrate with the new version when it will become available. +We also made progress on the constraint-based generators, which can now generate valid transactions and ledger states.

What we achieved

  • [pull-3521] [pull-3554] Improved Governance model (GovernanceProcedures, ProposalProcedure)
  • [pull-3520] Improved Governance-related naming (Renamed Tally to Gov and VDel to GovCert )
  • [pull-3531] Refactored and simplified code interacting with Plutus
  • [pull-3558] Fixed a bug that was breaking validation on preview, related to refernce inputs witnesses. We backported and released the fix.
  • [pull-3550] For Conway to run on Sanchonet, we updated the era Translation to remove zero-ADA outputs. This was necessary because such outputs exist on mainnet, but in Conway they are not allowed.
  • [pull-3551] [pull-3546] [pull-3472] Updated tools and added some small improvements
  • [issue-3146] [pull-3498] Introduced Conway protocol parameters
  • [issue-2948] [pull-3499] Implemented ConwayGenesis with the new protocol parameters

What is currently in progress

]]>
+ + Alexey Kuleshevich + https://github.com/lehins + + +
+ + <![CDATA[SRE Team Update]]> + 2023-07-21-sre + + 2023-07-21T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent improvements include:

  • Re-spin sanchonet for testing a new node version followed by fork to Conway
  • Deploying a sanchonet compatible faucet to sanchonet
  • Migrate shelley qa legacy environment to cardano-world

Lower level summary

Cardano-node

Cardano-ops

  • Mainnet relays are 50% migrated to p2p topology and 1 relay per region dedicated for ledger peers: cardano-ops-compare

Cardano-world

Iohk-nix

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-07-20-goedel + + 2023-07-20T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

The team is working on formalising mini protocols, the performance +modelling prototype and also finishing off their ICE papers.

Details

  • Formalization of the chain synchronization mini-protocol in the +thorn calculus

  • Final pre-publication steps for ICE 2023 papers

  • Developing approach for specification and verification of +mini-protocols

  • Started work on porting the DeltaQ framework to a new, more concrete +backend based on piecewise-polynomials

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-07-18-node-cli-api + + 2023-07-18T00:00:00.000Z + + 2023-07-05 - 2023-07-18

High level summary

  • Integrate Conway certificates in cardano-api
  • Prepare cardano-cli and cardano-api for cardano-node 8.1.2
  • Tagged cardano-cli 8.3.0.0
    • Query for the hash of the constitution (Conway)
    • Ability to create votes and governance actions
  • Tagged cardano-cli 8.3.1.0
    • Make it build with ghc-9.6
  • Upgrade to optparse-applicative-fork-0.18.1.0 for parsing command line options

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-07-14-hydra + + 2023-07-14T00:00:00.000Z + + High-level summary

This week the team focused on exploring the event sourced persistence in order +to improve hydra-node performance. Because of this work the team noticed we +need to refactor the emit snapshot emission logic and update the spec in the +light of new changes. They also took the time to revisit their goals and product +plans for the next quarter as well as doing some security fixes related to +multisignatures.

What did the team achieve this week

  • Finished spike about performance improvements of event sourced persistence #963.
  • Refactor snapshot emission in protocol logic.
  • Revisited our roadmap and goals.
  • Prepared and conducated a learning session on lean-waste.
  • Improve security of multi-signature checks, see this Github security advisory.
  • Implemented a cache friendly way to version our binaries #962.

What are the goals of next week

  • Implement Event sourced persistence #913.
  • Remove deprecated internal commit #954 and close #728.
]]>
+ + Franco Testagrossa + https://github.com/ffakenz + + + Sasha Bogicevic + https://github.com/v0d1ch + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-07-13-mithril + + 2023-07-13T00:00:00.000Z + + High level overview

The Mithril team created a new 2327.0 distribution. They focused on preparing the beta launch on the mainnet: they tested the new production signer deployment model with the pioneer SPOs, they prepared an SPO on-boarding guide, and they kept working on the deployment and monitoring of the mainnet infrastructure. The team also worked on the implementation of a simple stress test tool for benchmarking the aggregator. Additionally, they completed the refactoring of the interface to the cryptographic library.

Finally, they fixed a bug that sporadically prevented the latest signer registration of a SPO to be used in the associated signing epoch, they fixed a bug in the epoch gap detection of the certificate chain in the aggregator, and worked on multiple other optimizations and bugs.

Low level overview

  • Released the new distribution 2327.0
  • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
    • Completed the issue Add infrastructure monitoring #987
    • Worked on the issue Deploy 'mainnet' infrastructure #988
    • Worked on the issue Handle Secrets management #989
  • Worked on the epic Benchmark performances of Mithril Aggregator #904:
    • Worked on the issue Design & implement basic stress test tool for aggregator #991
  • Worked on optimizations:
    • Completed the issue Remove certificate hash from Artifact #932
    • Completed the issue Check vulnerabilities in CI #1037
    • Completed the issue Add 'created_at' in Mithril Stake Distribution messages #1030
    • Completed the issue Add a 'run-only' option in end to end test #1048
  • Worked on refactoring:
    • Completed the issue Factorize protocol crypto operations #669
    • Completed the issue Refactor aggregator dependency injection and services #1058
    • Completed the issue Build static binaries in CI #874
  • Worked on documentation:
    • Completed the issue Prepare SPO on-boarding guide #1049
    • Completed the issue Add instructions to set firewall using iptables #1040
    • Completed the issue Update ufw command to set firewall on Mithril Signer installation instructions #1041
  • Worked on bugs:
    • Completed the issue Aggregator does not detect certificate chain epoch gap #952
    • Completed the issue 'testing-preview' network does not create certificates #1015
    • Completed the issue SQLite compatibility in aggregator #837
    • Completed the issue Q&A followup fixes #1035
    • Completed the issue E2E tests are flaky in CI #1023
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-07-12-consensus + + 2023-07-12T00:00:00.000Z + + High level summary

This week the team working on UTxO-HD discovered a space leak in the peer metrics code. This was communicated to the Networking team who has a proposed fix. The ad-hoc benchmarks that the team ran using a local immutable DB server showed good memory and time performance. We still have to check the performance on a memory constrained machine.

The team working on the Genesis design started onboarding the team of engineers that will implement the new Genesis protocol. This team is also finalizing the statistical model for historical Genesis feasibility.

On the support front, the team drafted an information exchange requirement (IER) for the Networking team to safely and efficiently control peer load.

]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Performance & tracing update]]> + 2023-07-12-performance-and-tracing + + 2023-07-12T00:00:00.000Z + + High level summary
  • Benchmarking: The peformance investigation into the compiler switch to GHC9 is ongoing. Additionally, a roadmap for implementing Consensus QTAs has been developed.
  • Infrastructure: Our workbench has undergone some refactoring to seamlessly integrate its profiles into all available backends.
  • Tracing: Optimization of the new tracing system is ongoing and yielding good performance results.
  • Nomad backend: We developed a new feature for the nomad backend which allows pinning deployments to specific machines.

Low level overview

Benchmarking

Our analysis of the GHC9 build of cardano-node has produced several locations in the code base where the new compiler seems to miss opportunities for optimization. Our hypothesis is, that those can account for the difference in resource usage we observe when benchmarking with a full cluster run. Instructing the compiler on how to perform the optimizations which GHC8 apparently applied out of the box requires further investigation.

In an effort to define Quantitative Timeliness Agreements (QTAs) on a per-component basis, we have coordinated with the Consensus team and developed a roadmap for providing those on consensus level. Making use of the insight that system-level benchmarks allow, we intend to set up and calibrate a benchmark that can reliably predict a regression or optimization for select metrics before needing full integration into cardano-node. This will help tremendously in various ways: catching regressions much earlier, localizing them much easier, avoiding repeated component integration and much shorter feedback cycle.

Infrastructure

We have worked on seamless integration of our benchmarking profiles into the many available backends that the workbench provides. The goal was to be backend-agnostic, to guarantee that all benchmarking run artifacts be structurally identical as far as their file name, format and location are concerned. This lead to refactoring work and has already landed in master.

Tracing

Much effort went into further optimization of the new tracing system. After working on configuration to align both new and legacy tracing system with regard to their trace frequencies, we could uncover some increase in resource usage. This occurred for corner cases under very heavy load. These cases have been addressed already, and do now surpass the legacy tracing system in terms of performance.

Nomad backend

For reliable benchmarking results it is vital to introduce as few confounding factors as possible when performing runs. This includes hardware and network topology. The nomad backend has been outfitted with a mechanism to pin the nomad job for some node in our benhcmarking cluster to a specific machine instance. This greatly increases confidence in the metrics observed from a run.

Furthermore this feature will detect any change in the underlying hardware or topology so it can be taken into account. The new feature has been merged to master.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Crypto Team Update]]> + 2023-07-07-crypto + + 2023-07-07T00:00:00.000Z + + High level summary

The open fronts that the crypto team is working on are:

  • Sidechains: First version of snark-based ATMS
  • mithril: Full node verifier
  • kes_agent: Keep progress, and prepare CIP and CPS
  • CIPs and community: Finishing BLS12-381 CIP and working on a KECCAK CIP

Low level summary

kes_agent

Mithril

  • Final review of the implementation of Full Node Verifier #939. +Included benchmarks and further tests.

Sidechains

  • Schnorr signature implemented
  • ATMS signature implemented
  • First benchmarks show that for the committe size we expect, we need 2^21 constraints.

CIPs and community

  • Addressed some review comments in #PR506
  • Worked with the communityt on #PR524 to include Keccak as part of the next Plutus release.
]]>
+ + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-07-07-goedel + + 2023-07-07T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the teams have been working on finalising their ICE papers +for publication in EPTCS, formalising concensus, and investigating chain +sync.

Details

  • Preparing final versions of ICE papers

  • Reviewing the chain sync design and documentation

  • Refactoring the thorn calculus

  • First draft of Praos specification

  • Developing bounding factors on timeouts

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-07-07-hydra + + 2023-07-07T00:00:00.000Z + + High-level summary

This week the Hydra team accomplished some nice progress. They secured the +network layer further by implementing authentication of the messages between the +peers in the Head protocol. In the process they also managed to separate +HeartBeat messages from the protocol ones which somewhat improved the quality of +code in Hydra. The team also finished work related to sending only transaction +ids in ReqSn messages, fixed an issue in the smoke tests, and improved benchmark +publishing on the website.

What did the team achieve this week

What are the goals of next week

  • Spike on performance improvements of event sourced persistence #913
  • Add new endpoint for submitting client transactions
  • Remove commit from internal wallet
]]>
+ + Franco Testagrossa + https://github.com/ffakenz + + + Sasha Bogicevic + https://github.com/v0d1ch + + +
+ + <![CDATA[SRE Team Update]]> + 2023-07-07-sre + + 2023-07-07T00:00:00.000Z + + High level summary

The SRE team continues work on cardano environment improvements, supporting CI improvements, and general environment maintenance.

Some notable recent improvements include:

  • Improved cardano-node entrypoint handling to allow for clean restarts in the Nomad environment
  • Explorer component updates
  • Spongix caching server rewrite for R2 Cloudflare support and various performance improvements

Lower level summary

Cardano-node

Cardano-ogmios

Cardano-ops

  • Improve storage resize script, workaround systemd node signal handling, rescale p2p relays: cardano-ops-compare

Cardano-rosetta

Cardano-world

Spongix

  • Spongix caching server rewrite for Cloudflare R2 backend support plus misc improvements: spongix-simple-branch
]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Developer Experience Update]]> + 2023-07-06-developer-experience + + 2023-07-06T00:00:00.000Z + + High level summary

The Developer Experience team has been dealing with day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, CI migration from Cicero to Hydra, and Buildkite to GitHub Actions. iohk-nix, haskell.nix, and devx have seen improvements.

Lower level summary

build support & maintainance

The DevX team has helped troubleshoot a few CI issues, and focused on helping to migrate from Cicero to Hydra, as well as from Buildkite to GitHub Actions.

compiler upgrades

Compatibility with 9.6 has been continued and most of our libraries are not 9.6 compatible. Only a few are not, we hope to have this done by the end of the month. We've also started preliminarily adding GHC 9.8 to our infrastructure for early compiler regression tests.

Hydra Tools

Our repository, input-output-hk/actions, has seen quite some improvements to facility the hydra <-> github integration.

haskell.nix

Haskell.nix has been maintained and updated with the addition of preliminary GHC 9.8 support.

devx

The devx repository has seen significant improvements, including the addition of GitHub Codespaces, and DevContainers. Integrated with our actions/devx GitHub Actions, we have a consistent set of tooling for

  • nix develop shells
  • GitHub CodeSpaces integration
  • VSCode DevContainer support
  • GitHub Actions integration

upstream tooling

Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

]]>
+ + Moritz Angermann + https://github.com/angerman + + +
+ + <![CDATA[DB-sync Team Update]]> + 2023-07-04-db-sync + + 2023-07-04T00:00:00.000Z + + High level summary

We've made progress in all high level objectives

  • CIP-1694 integration design
  • UTxO-HD integration proof of concept
  • schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2 and tested
  • Many devx issues resolved

Lower level summary

  • We have improved and validated the design for the Conway integration in db-sync
  • Improved the initial integration of the UTxO-HD feauture branches which are under test
  • Prepared a new release 13.1.1.3 which supports node 8.1.1 +#1455.
  • This also fixes a bug +#1451
  • Added new tests to the new tx_out options +#1429
  • Fixed a chronic issue in db-sync related to exception handling and concurrency +This fixes many other issues and simplifies the logic in db-sync +#1447
  • A number of fixes and improvements in ci, docker, devx, docs +#1436#1442#1448#1452
]]>
+ + Kostas Dermentzis + https://github.com/kderme + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-07-04-node-cli-api + + 2023-07-04T00:00:00.000Z + + 2023-06-21 - 2023-07-04

High level summary

  • Started integration of conway era into the cardano-api,
  • Pre-release of cardano-cli 8.2.1 which enables creating goveranance "Update constitution" governance actionsas well as voting. Both only as SPO. DREP and CC will come in future releases.
  • Cardano-cli is moving to a top-level era command structure (i.e. cardano-cli conway, cardano-cli babbage, etc to accomodate for different fucntionalities available in diferent eras. In particular between Babbage and Conway governance-related functionalities.
  • Continue refactoring cardano-testnet
  • CI and docs house keeping on the new cardnao-cli and cardano-api repositories

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-06-30-hydra + + 2023-06-30T00:00:00.000Z + + High-level summary

This week, the Hydra team wrote and published the monthly report for June, +implemented the end-to-end functionality for external commits, and tested it on +the preview environment. They also listed Hydra as a tool on the Cardano +developer portal, providing more visibility for the project. The team clarified +the path forward for L2 protocol improvements and explored an alternative CI +approach using cabal instead of nix. Additionally, they released version 0.11.0, +marking another milestone in the projects development.

What did the team achieve this week

  • Written and published the monthly report for June
  • Implemented external commits end-to-end incl. tested it on preview #215
  • Listed Hydra as a tool on cardano developer portal
  • Cleared up path forward on L2 protocol improvements #728
  • Established an alternative CI using more cabal tools #923
  • Release version 0.11.0

What are the goals of next week

  • Spike on performance improvements of event sourced persistence #913
  • Complete ReqSn only sends transaction ids #728
  • Groom and plan last items for 0.12.0 (remove internal commit)
  • Improve reliability of benchmarks
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-06-29-mithril + + 2023-06-29T00:00:00.000Z + + High level overview

The Mithril team completed the design of the signer deployment model for the SPOs to run Mithril on their Cardano mainnet infrastructure, and implemented the associated Mithril Relay in the Mithril networks. They started working on the design and implementation of a stress test tool for benchmarking the aggregator performances. They worked on the refactoring of the Mithril Stake Distribution entity and the uniformization of the date types in the nodes. They also worked on implementing a new tool command in the aggregator and its first sub-command that helps avoiding re-genesis of the certificate chain when the structure of the certificate is updated. Additionally, they worked on implementing some monitoring for the Mithril infrastructure, and worked on a retry mechanism for the artifact creation of the aggregator.

Finally, they fixed some bugs, and they completed the upgrade of the Mithril networks to Cardano node v.8.1.1.

Low level overview

  • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
    • Worked on the issue Add infrastructure monitoring #987
  • Completed the epic Prepare Mithril Signer deployment model for SPO #862:
    • Completed the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
    • Completed the issue Adapt infrastructure to use Mithril Relay #1018
    • Completed the issue Announce the new signer deployment model in a dev blog post #1017
  • Worked on the epic Benchmark performances of Mithril Aggregator #904:
    • Worked on the issue Design & implement basic stress test tool for aggregator #991
  • Worked on bugs:
    • Completed the issue Aggregator does not exit on critical error #993
    • Completed the issue Computation of master certificate of an epoch is incorrect #1006
    • Completed the issue End to end tests are flaky #954
    • Worked on the issue 'testing-preview' network does not create certificates #1015
  • Worked on optimizations:
    • Completed the issue Dates format is not standardized #946
    • Completed the issue Add 'recompute-certificates-hash' command to aggregator #1001
    • Completed the issue Add a retry mechanism for artifact creation in aggregator #984
    • Completed the issue Log node version at startup in Aggregator/Signer #944
    • Completed the issue Reactivate Publish Results job in CI #978
    • Completed the issue Clean 'pending_snapshot' directory of aggregator #983
    • Completed the issue Update OpenAPI spec examples #1000
  • Worked on refactoring:
    • Completed the issue Refactor 'MithrilStakeDistribution' entity #967
    • Completed the issue Refactoring client #982
    • Completed the issue Refactor download code in client #1010
    • Worked on the issue Factorize protocol crypto operations #669
  • Worked on dependencies:
    • Completed the issue Upgrade Cardano node to '8.1.1' #973
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-06-28-consensus + + 2023-06-28T00:00:00.000Z + + High level summary

During the past two weeks the team working on the Genesis implementation continued to engage with the researchers, which resulted in various simplifications of the correctness argument for the historical Genesis window. They also decided on an approach for a syncing node to decide that it is (no longer) caught up. This functionality was requested by the networking team.

The team working on the UTxO-HD implementation ran ad-hoc benchmarks that showed performance issues, which are being investigated. They also merged several improvements required for the first UTxO-HD release, and added a package for easing integration with other downstream components.

Regarding our support activities, we integrated the latest Ledger changes into Consensus in preparation for release 8.2 of node.

Genesis

  • We continued to engage with the researchers on our probabilistic model for historical Genesis window, resulting in various simplifications that make the correctness argument more clear while not being excessively conservative.

  • We decided on an approach of how to implement functionality requested by the Networking team; namely, how a syncing node can safely conclude that it is (no longer) caught up. Certain parameters are still subject to discussion with the researchers, and we have still have to agree on a concrete API for this functionality with the Networking team.

UTxO-HD

  • We merged the last of the PRs that were part of UTxO-HD improvements for version 0.1: expose UTxO-HD configuration options in the node, refactor ledger tables, and expose a method of computing the UTxO set size.
  • We added a new "legacy" cardano block in a new ouroboros-consensus-cardano-legacy-block package that should ease the transition for some downstream packages to UTxO-HD, like db-sync. This is really only useful for downstream packages that use the parts of consensus that don't involve the storage components, in which case we can largely ignore ledger tables. Ignoring ledger tables could also make functionality like block (re-)application more performant for the legacy Cardano block as compared to the actual (UTxO-HD compatible) Cardano block.
  • We performed ad-hoc benchmarks of the UTxO-HD implementation, observing a regression in sync speed in the LMDB implementation as well as a regression in memory usage on the in-memory implementation. We are investigating this.
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Performance & tracing update]]> + 2023-06-28-performance-and-tracing + + 2023-06-28T00:00:00.000Z + + High level summary
  • Benchmarking: We've performed several new benchmarks and a performance investigation in preparation of switching the default compiler to GHC9.
  • Infrastructure: The first batch of refactoring and documentation for our tx-generator has been merged to master.
  • Tracing: We've looked into an issue where the tracing system's concurrency could prevent a graceful node shutdown.
  • Nomad backend: Our new cloud backend has seen various improvements regarding deployment and monitoring; validation runs for the backend are ongoing.

Low level overview

Benchmarking

The compiler switch to GHC9 as the default build platform for cardano-node and its components still has noticeable effects on system-wide performance metrics. An investigation into the different resource usage profiles of compiler versions does seem to indicate GHC9's significantly different inlining behaviour may produce those effects. We're currently locating the specific places in component code that have the most extensive effect in that regard.

Using the forge-stress approximation we set up, we could determine that above effect is not due to a range of RTS parameters, as for example the number of capabilites used by the node.

Infrastructure

The tx-generator is a crucial part of our tooling responsible for producing very specific workloads for our benchmarking cluster. In an effort to flesh out an API to make it reusable for more general use cases, a first set of refactorings has been merged to master. Additionally, this merge contained systematic documentation both for internal and for exposed areas of the code base.

Tracing

The tracing system's concurrency could under certain conditions prevent a graceful shutdown of the node. This issue did occur only after adding specific new traces on a development branch. We could localize and address that issue.

Nomad backend

With the data gathered from running the new nomad cloud backend, we've been able to address many, many small and medium-sized improvements. The deployment process has been restructured for better efficiency, and the healthcheck system could be fine-tuned to recognize severity of various conditions that might occur. Optimization of fetching all run data from the cloud for evaluation is in progress.

Additionally, we're continuing the new backend's validation by setting up test runs and looking into comparative analyses with metrics gathered from the current cluster backend.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-06-23-goedel + + 2023-06-23T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the teams presented two papers at ICE 2023.

Details

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-06-23-hydra + + 2023-06-23T00:00:00.000Z + + High-level summary

This week, the Hydra team shared progress updates during the monthly review +meeting (monthly report and video recording available soon) and started +experimenting on preview network with the new commit from external wallet +feature.

What did the team achieve this week

  • Monthly report & review meeting, demonstrating commit from external +wallet
  • Published regular benchmarks for +Hydra
  • Moved forward the journey for external commits using multiple script UTxOs +#903
  • Changed the API to only put transaction id in snapshots, instead of the full +transactions #922 -> this +is now evolved into fully addressing #728
  • Fuel marking is now optional as one can now commit from an external wallet +#924
  • Add flag option to display node version on tui +#934

What are the goals of next week

  • Complete external commits using multiple script UTxOs #903
  • New release 0.11.0
  • Dirtroad solution of improved persistence performance #913
]]>
+ + Franco Testagrossa + https://github.com/ffakenz + + + Pascal Grange + https://github.com/pgrange + + +
+ + <![CDATA[Network Team Update]]> + 2023-06-23-network + + 2023-06-23T00:00:00.000Z + + Network Update

Key contributions

We held a series of session to review the implementation of big ledger peers +(eclipse evasion). See #4462.

We get a request from a 3rd party to clarify an inconsistency between CDDL spec +and protocol implementation. We worked out a nice solution which takes +advantage of the any notion available in CDDL. On the Haskell side we +provide Any type which gen generate almost any CBOR term (some are excluded +only because they are not decoded back to the same form, and we relay on that +property). See #4580.

We fixed a bunch of problems of the cardano-cli ping command. It also now has +a limited support of node-to-client mini-protocol (the -c option is +ignored, as it cannot be supported by node-to-client protocol). Note that +the format of messages has changed, timestamps are printed in ISO8601 format. +See #4601, #5326, #5313, #30

In order to provide a new flag in the topology file which enables ledger peers +when the chain is close to the tip, we continued to work on #4530. This is +currently in review, the consensus team will need to provide us with the new +api. This feature is useful for two reasons: makes it easier to maintain +a topology file, it will also limit the traffic on public roots generated by +for example full node wallets and distribute it to ledger peers.

We also continued to work on a blog post which describes the journey of design +& implementation of the dynamic P2P network layer. Too be announced soon :).

Other smaller changes

We limit the concurrency of resolving dns names. Up to 8 root peers or ledger +peers DNS names are resolved concurrently, and at most 2 local root peer DNS +names. See #4596.

We fixed handshake query timeout in #4603.

We renamed one of the block-fetch decision constructors as requested by the +consensus team, see #4608.

]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[SRE Team Update]]> + 2023-06-23-sre + + 2023-06-23T00:00:00.000Z + + High level summary

The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include:

  • A devx-ci cluster containing a Hydra build server and Linux build farm was stood up and is intended to replace Cicero functionality
  • Cardano Sanchonet environment was stood up to test Conway era functionality
  • Cardano-node nixos service was updated to support the latest p2p topology format and non-systemd socket activation use case
  • Cardano-node 8.1.1 was deployed to preview, preprod and mainnet environments

Lower level summary

Cardano-node

  • Update cardano-node nixos service for updated p2p topology and non-systemd socket activation: cardano-node-pull-5318

Cardano-ops

Cardano-world

Ci-ops

Ci-world

  • Add devx-ci cluster integration for caching, monitoring during cicero to devx-ci transition: ci-world-compare

Devx-ci

  • A CI cluster with a hydra build server was stood up and is intended to replace usage of Cicero: devx-ci-repo

Iohk-nix

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-06-16-hydra + + 2023-06-16T00:00:00.000Z + + High-level summary

This week, the Hydra team focused their efforts on continuing to investigate and +experiment operating a head on mainnet. They collected several bugs and issues +and worked on fixing them. Now the team is soon to release a new version, +0.11.0, which comes with a lot of improvements and bug fixes.

What did the team achieve this week

  • Restored and fixed a bug which stalled our head on mainnet #927
  • Solved one user issue #914
  • Reduced significantly local state size and logs by removing the full scripts from it #928
  • (pending review) Reduced snapshot size in the API, by only including tx ids #922

What are the goals of next week

  • New release 0.11.0
  • Monthly report & review meeting.
  • Fix some minor bugs discovered when operating our head on mainnet
  • Complete journey for external commits using multiple script UTxOs #903
  • Publish benchmarks and provide regular benchmarks for Hydra #186
]]>
+ + Franco Testagrossa + https://github.com/ffakenz + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-06-15-mithril + + 2023-06-15T00:00:00.000Z + + High level overview

The Mithril team completed the implementation of the new sub-command for restoring a Mithril stake distribution in the client. They also updated the client’s developer documentation and architecture documentation, and did some refactoring on the client and its dependency injection mechanism. Additionally, they completed and deployed infrastructure enhancements on the test Mithril networks. They also completed the performance tests of the new stake distribution computation on the Cardano mainnet.

Finally, the team worked on fixing a bug on the client multi-platform test, a bug on the aggregator state machine, and some flakiness on the CI.

Low level overview

  • Completed on the epic that designs and implements generic signing/verification of entity services #780:
    • Completed the issue Create the sub-command for 'Mithril Stake Distribution' in client #896
    • Completed the issue Adapt end to end tests to handle new types of data #899
    • Completed the issue Update client documentation #897
    • Completed the issue Update architecture documentations for new types of data #898
    • Completed the issue Refactoring client #960
  • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
    • Completed the issue Enhance terraform infrastructure #930
  • Completed the epic that implements the computation of the stake distribution for mainnet #880:
    • Completed the issue Check performance impact of new stake distribution command on the 'mainnet' #962
  • Worked on the epic Prepare Mithril Signer deployment model for SPO #862:
    • Worked on the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
  • Worked on bugs and optimizations:
    • Completed the issue Aggregator does not always detect new immutable file #953
    • Completed the issue CI tests fail with Rust '1.70.0' #958
    • Worked on the issue End to end tests are flaky #954
    • Worked on the issue Certificate dates in metadata are not on the same timezone #946
    • Worked on the issue Refactor 'MithrilStakeDistribution' entity #967
    • Completed the issue Fix 'Mithril Client multi-platform test' with new client interface #956
    • Completed the issue Enhance 'ImmutableDigesterError::NotEnoughImmutable' error #969
    • Completed the issue Client 'snapshot download' command fails with option '--download-dir' #979
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-06-14-consensus + + 2023-06-14T00:00:00.000Z + + High level summary

The Consensus team had a very productive meeting with IOG Researchers. We now seem to be in alignment in regards to a strong argument that the Byron and TPraos eras do not need to be checkpointed for an MVP. +There is one remaining question (which applies also to the Praos era): how to assess the threat that short forks pose against historical windows that underperformed? We are currently collaborating on that. We also drafted an argument that the updated "Limit on Patience" timeout sufficiently bounds how long the adversary can inflate a victim's overall sync time.

On the UTxO-HD front, the prototype branch was rebased on top of the latest ouroboros-consensus main branch and integrated on top of cardano-node 8.1.1-pre. As a result, the mempool fairness fix that was released recently is now integrated into UTxO-HD. +We managed to run a node again with UTxO-HD enabled. +We also identified a race condition in the UTxO-HD prototype and fixed it. In addition, we started performing UTxO-HD ad-hoc benchmarks for cardano-node, which uncovered a performance regression on the Network component when using GHC-9.2/9.4. This is being addressed.

Regarding our support activities, we Released fs-sim-0.2.0.0 and are in the process of preparing the 8.2 release of cardano-node. We also identified and started fixing incorrectly-unevaluated thunks in preparation for enabling CI NoThunks tests.

]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Performance & tracing update]]> + 2023-06-14-performance-and-tracing + + 2023-06-14T00:00:00.000Z + + High level summary
  • Benchmarking: We've continued release benchmarking and established a new baseline for 8.0.0.
  • New tracing: Our benchmarking profile for measuring new vs. legacy tracing performance has been refined.
  • Nomad backend: The healthcheck system for the the nomad cloud has been completed. We've performed the first full runs on the new backend.

Low level overview

Benchmarking

In our release benchmarking cycle, we established a new performance baseline for 8.0.0. Additionally, we've measured +performance under various workloads for 8.1.1-pre; the results look promising and validate the optimization efforts +done on several system components.

In the meantime, we've finalized a build plan with GHC9.2 that matches the current one with GHC8.10; a requirement for +benchmarking as a large amount of differences in the dependency graph can confound the results for the application code proper.

Tracing

The legacy and the new tracing system differ fundamentally in design, implementation and handling. So for metrics to be +meaningful in a comparison, benchmarking profiles have to be tuned such that not only log line frequency but frequency of specific +trace messages are closely aligned. We've found that higher granularity in this regard was necessary, and done additional work on our dedicated profiles.

Additionally, we've had a first glance of what additional traces could be valuable in the context of benchmarking UTxO-HD.

Nomad backend

As the new backend's healthcheck system in its first iteration can now serve as a guardrail to ensure sanity of a full-length run, we've performed our first 52-node cluster runs on nomad cloud. We're currently smoothing the edges around cluster deployment, and analysing the metrics gathered from those runs.

This means the backend is entering validation phase, where we systematically compare all metrics taken from the new +infrastructure to the existing ones, including determining reproducibility and variance.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Network Team Update]]> + 2023-06-12-network + + 2023-06-12T00:00:00.000Z + + Network Update

Key contributions and advances

We merged light peer sharing feature, which allows to include inbound peers +into outbound governor known peers. This is the primary way for new +unregistered nodes to enter the network, which then can be shared using peer +sharing. Note that peer sharing is an experimental feature which is disabled +until genesis & eclipse evasion as fully implemented. See #3596.

We are making progress reviewing eclipse evasion, #3886.

We fixed another bug in local root peers. We found out that if the local roots +where ignored until the first domain name was resolved, see #4583. The bug +fix was backported and released in ouroboros-network-0.8.1.1.

We re-started working on dynamically enabling block forging to address issue +#3159, which will enable us to release P2P on block producing nodes. See #140.

New cardano-ping / cardano-cli ping release

We prepared a new release of cardano-ping library which supports the new +query feature (query supported versions). See #4589, #4593 and #5313. +The new version of cardano-cli ping will use ISO8601 formatted +timestamps; also the formatting of ping results is slightly improved, and it +will introduce the new --query-versions (-Q) switch. If the remote site +supports the query parameter, the command will print:

redacted-ip:port network rtt: 0.064
redacted-ip:port handshake rtt: 0.064010896s
redacted-ip:port Queried versions [NodeToNodeVersionV11 764824073 InitiatorAndResponder,NodeToNodeVersionV10 764824073 InitiatorAndResponder,NodeToNodeVersionV9 764824073 Initiat
orAndResponder,NodeToNodeVersionV8 764824073 InitiatorAndResponder,NodeToNodeVersionV7 764824073 InitiatorAndResponder]

otherwise it will print the negotiation results

redacted-ip:port network rtt: 0.045
redacted-ip:port handshake rtt: 0.101867615s
redacted-ip:port Negotiated version NodeToNodeVersionV10 764824073 InitiatorAndResponder

Note that in that case cardano-cli ping offers InitiatorAndResponder, which +allows us to detect whether the remote side is an InitiatorOnly or +InitiatorAndResponder. Also cardano-cli ping will no longer announce +itself as InitiatorAndResponder, except for the case mentioned above.

Other smaller contributions

On a request from the Marlow Team, we published haddocks of typed-protocols, +which are now available here (#40, #41).

We made a new release of strict-stm-1.1.0.1 on Hackage, which fixed a bug in +package description file, #101 .

We also helped to debug a deadlock when using named pipes on Windows in the new +RawBearer API. The API is being used to store secret keys only in memory. +The PR #4395 is under review.

We also have two more PRs which are under review:

  • #4530: enabling ledger peers on a fixed number of slots before the tip of the chain;
  • #4580: a PR which fixes inconsistencies in one of our cddl specs.
]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Crypto Team Update]]> + 2023-06-09-crypto + + 2023-06-09T00:00:00.000Z + + High level summary

The open fronts that the crypto team is working on are:

  • cardano-base: E2E tests for BLS bindings and KES agent
  • Sidechains: Implement ECC chip and Rescue hash primitives for ATMS
  • mithril: Full node verifier

Low level summary

cardano-base

  • RawBearer API in ouroboros-network-framework (https://github.com/input-output-hk/ouroboros-network/pull/4395); blocked due to issue with windows' localSnocket. Trying to resolve.
  • Adapting cardano-base for direct memory transfers between mlocked RAM and file descriptors #317.
  • Above, blocked by the simplification of typeclasses #404.
  • Provided e2e test cases to the testing team with aggregated signatures and schnorr signatures for the BLS bindings

Mithril

  • Implementation of Full Node Verifier #939

Sidechains

  • ECC chip implemented for JubJub over BLS12-381
  • Rescue chip implemented for hashing.
  • Currently working on Schnorr signature (which uses the above constraints)
]]>
+ + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
+ + <![CDATA[Developer Experience Update]]> + 2023-06-09-developer-experience + + 2023-06-09T00:00:00.000Z + + High level summary

The Developer Experience team has been devoted to day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, the maintaince of our cardano-haskell-packages (CHaP), and infrastructure like GitHub Actions, iohk-nix, haskell.nix, and devx. Furthermore, we have also contributed to upstream tooling improvements.

Lower level summary

build support & maintainance

Our DevX team has been instrumental in troubleshooting and fixing a wide range of issues, from broken windows builds and obscure LoadDLL errors to blst integration across Nix and Github CI. We've also initiated automatic uploads for release assets. Our efforts in streamlining complex CI setups have paid off, with some repositories like cardano-base experiencing significant reductions in CI complexity.

compiler upgrades

After the support for 9.2 across our libraries, we have started working on 9.6 compabilitiy as well. This move brings us closer to the upstream compiler, facilitating the contribution of patches and enabling early detection of regressions. In addition, we're prioritizing compaining even stronger for better backwards compatibility.

CHaP (cardano-haskell-packages)

We relocated the underlying tooling, (foliage), for CHaP into the IOG organization. Furthermore, we have introduced improved tooling to quickly add constraints to packages, better error reporting for add-revision and better hackage url compatibility to facilitate easer usage of CHaP.

GitHub Actions

Our repository, input-output-hk/actions, now houses the necessary actions for installing pre-requisites to build Cardano projects using GitHub Actions. Leveraging the base and haskell install actions has allowed us to simplify workflows in the repos, focusing primarily on invoking cabal.

iohk-nix

The iohk-nix repository has undergone a major revamp and now provides pre-built packages of the cryptographic libraries IOG utilizes for GitHub Runners. The key components we use, sodium, blst, and secp256k1, are also fixed to certain revisions within the iohk-nix repository.

haskell.nix

Haskell.nix has been maintained and updated with the addition of GHC 9.6.2 and GHC 8.2.8. After discovering performance regression in the native bignum backend, we switched the default bignum backend to gmp.

devx

The relatively new devx repository is where we experiment with a single nix development shell that aims to suffice for most use-cases at IOG. This initiative is expected to eliminate a number of CI failures related to project-build and shell interaction problems. The devx repository's readme has been updated to reflect its purpose and usage guidelines.

upstream tooling

Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

]]>
+ + Moritz Angermann + https://github.com/angerman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-06-09-hydra + + 2023-06-09T00:00:00.000Z + + High-level summary

This week, the Hydra team worked on multiple fronts. They finished the +investigation about the broken head on mainnet and re-opened their persistent +head instance. The team also fixed the monthly report publication on their +website and started sketching ideas and further improvements. Also, they are on +the last mile to deliver a new feature which will allow parties to commit funds +from extern wallets. Finally the team started to work on optimizing the +performance on their benchmarks.

What did the team achieve this week

  • Finished investigation on broken head on mainnet #897 and re-opened it.
  • Added support for externally committing regular utxo #887
  • Fix monthly report publication on docs website and published the monthly report. Odd problems when publishing monthly report:
    • Make us think about if we should change something about the website #908
    • Open issue to docusaurus #9036
  • Fixed a bug in the benchmark process #910
  • Explored performance of the hydra-node{.verbatim} and identified a +bottleneck.
  • Timed transaction feature is being used by the auction project 🎉

What are the goals of next week

  • Complete performance analysis and start/plan improvements and provide +regular benchmarks for Hydra #186
  • Add hydra as tool to developer platform #872.
  • Authenticate network messages #727.
  • Complete journey for external commits using multiple script UTxOs #903
  • Start implementing Option B for external commits #215.
]]>
+ + Franco Testagrossa + https://github.com/ffakenz + + +
+ + <![CDATA[DB-sync Team Update]]> + 2023-06-08-db-sync + + 2023-06-08T00:00:00.000Z + + High level summary

We've made progress in all high level objectives

  • CIP-1694 integration design
  • UTxO-HD integration proof of concept
  • schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2
  • A new hire will help us with devx issues.

Lower level summary

]]>
+ + Kostas Dermentzis + https://github.com/kderme + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-06-08-goedel + + 2023-06-08T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the team has been working on giving and preparing public +talks, also on preparing final versions of their ICE 2023 papers, and +on analysing chain selection.

This sprint the team has been working on final revisions for the +pre-proceedings versions of two ICE 2023 papers.

Details

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[SRE Team Update]]> + 2023-06-08-sre + + 2023-06-08T00:00:00.000Z + + High level summary

The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include: expanding the darwin CI cluster and providing new aarch64 builder support; adding bare metal bitte cluster capability with network overlay for high IOPS workload performance, such as explorer.

Lower level summary

Bitte

  • Equinix bare metal capability was added to bitte: bitte-pull-194
  • Update bitte nixpkgs, nix version, nomad driver, equinix lifecycle, misc bug fixes: bitte-pull-201

Bitte-cells

Cardano-graphql

Cardano-node

Cardano-ops

Cardano-world

Ci-ops

  • Update legacy darwin builders and buildkite agent for ci-world network overlay and monitoring: ci-ops-pull-108

Ci-world

Cicero

  • Implement a cicero webhook backoff with exponential decay plus jitter: cicero-pull-79

Iohk-nix

Openziti

]]>
+ + John Lotoski + https://github.com/johnalotoski + + +
+ + <![CDATA[System Test Team Update]]> + 2023-06-08-system-test + + 2023-06-08T00:00:00.000Z + + High level summary

Since the last update (2023-03-26) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.7 and 8.0.0 releases.

Workstreams

Full list of closed PRs

Framework improvements:

  • Make cardano-submit-api REST API service available and run corresponding regression tests by default
  • Update cabal build testing for 8.0.0
  • Add support for testing governance SPO poll
  • Use Poetry for Python dependency management
  • Check status of known GH issues during tests runtime and finish the test accordingly
  • Generate topology files with both IP addresses and DNS names
  • Log issues like failure to start a cluster instance and report errors during tests runtime

Testing improvements

  • Add rollback testing:
    1. global consensus is reached after rollback, in situation where less than securityParam blocks were produced since cluster split
    2. global consensus is not reached when more than securityParam blocks were produced, and the result is permanent fork
  • Add tests to governance SPO poll commands

Node:

DB-Sync:

  • improvements in db-sync sync tests
  • improvements in db-sync functional tests
]]>
+ + Martin Kourim + https://github.com/mkoura + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-06-07-node-cli-api + + 2023-06-07T00:00:00.000Z + + 2023-06-07 - 2023-06-20

High level summary

  • Completed cardano-cli migration to input-output-hk/cardano-cli
  • cardano-cli ping now uses cardano-ping-0.2.0.5
  • New queries on API:
    • queryCurrentEpochState
    • queryDebugLedgerState
    • queryGenesisParameters
    • queryPoolDistribution
    • queryPoolState
    • queryProtocolParameters
    • queryProtocolParametersUpdate
    • queryProtocolState
    • queryStakeAddresses
    • queryStakeDistribution
    • queryStakePoolParameters
    • queryStakeSnapshot
  • Deprecate:
    • queryPparams
  • Export query API as functions
    • genFeatureValueInEra
    • featureInShelleyBasedEra
    • isFeatureValue
    • valueOrDefault
    • asFeatureValue
    • asFeatureValueInShelleyBasedEra
    • queryEpoch
    • requireShelleyBasedEra
  • Restructure cardano-testnet (WIP)

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

]]>
+ + Carlos LopezDeLara + https://github.com/CarlosLopezDeLara + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-06-02-hydra + + 2023-06-02T00:00:00.000Z + + High-level summary

This week, the Hydra team has put their effort on finding solutions on many +different problems, such as our broken head on mainnet +#897, our fragile monthly +report publications on the website and implementing Option A for +external commits #215. +Although most of these items are still open, huge progress has been made. To +accelerate the investigation, they improved their logging to give more precise +errors when a transition requirement fails, and to reduce duplication on effets +logged content. Last but not least, the team is exploring formal methods and +attended a workshop on formalizing cryptographic protocols in Agda.

What did the team achieve this week

  • Continued investigating broken head and opened an issue to keep track #897.

    As part of this issue, improvements were made to the node logs:

    • Give a precise error when a transition requirement fails #895.

    • Reduce duplication for effects logged content by using sequential eventId and effectId pair #896.

  • Fixed references in the hydra specification #893.

  • Attended a workshop on formal methods and crypto in Agda.

What are the goals of next week

  • Investigate and re-open our team-internal head on mainnet.
  • Improve and provide regular benchmarks for Hydra #186.
  • Complete journey for external commits implementing Option A and start implementing Option B #215.
  • Authenticate network messages #727.
  • Add hydra as tool to developr platform #872.
  • Fix monthly report publication on docs website.
]]>
+ + Franco Testagrossa + https://github.com/ffakenz + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-06-01-mithril + + 2023-06-01T00:00:00.000Z + + High level overview

The Mithril team released a new 2321.1 distribution that fully implements the mechanism developed to sign generic data. They completed the upgrade of the Cardano node in the Mithril networks to v.8.0.0 and the implementation of the new computation of the stake distribution. They refactored the state machines of the signer and aggregator, and the signed entity service of the aggregator. Additionally, they worked on adapting the client and implementing a new sub-command for restoring the Cardano immutable file snapshots.

Finally, the team worked on adding a new certificate list route in the aggregator REST API, and started enhancing the infrastructure of the Mithril networks.

Low level overview

  • Released the new distribution 2321.1
  • Worked on the epic that designs and implements generic signing/verification of entity services #780:
    • Completed the issue Enhance MessageAdapter for Artifact in aggregator REST API #925
    • Completed the issue Create the sub-command for 'Cardano Immutable Files Full' in client #895
    • Completed the issue Enhance state machines Aggregator/Signer #933
    • Completed the issue Adapt the aggregator REST API to list certificates #892
    • Worked on the issue Adapt end to end tests to handle new types of data #899
    • Worked on the issue Update client documentation #897
    • Worked on the issue Update architecture documentations for new types of data #898
  • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
    • Worked on the issue Enhance terraform infrastructure #930
  • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
    • Completed the issue Upgrade Cardano node to '8.0.0' #920
  • Completed the issue Add export path in Client CLI #512
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-05-31-consensus + + 2023-05-31T00:00:00.000Z + + High level summary

During the Past two weeks we drafted an implementation path for concluding that a node is caught up, which will also be used to back Network's ledger-peer selection (see this issue). We also carried a thorough investigation into the exact feasibility of applying the Genesis rule to certain historical parts of the chain.

On the UTxO-HD front, we are working on improving the ledger tables design and wrapping up the improved DB locking mechanism. We also released packages that are required not only by UTxO-HD but are already used in cardano.

UTxO-HD

  • We have a plan for making the ledger tables in UTxO-HD more ergonomic by mimicking SOP classes like HPure and HAp . In short, we implement generalised versions of important classes like Applicative and Traversable.

Support

  • fs-sim-0.1.0.2 and fs-api-0.1.0.2 were released, which makes them now compatible with GHC up to 9.6.
  • ouroboros-consensus-0.7.0.0 was released for cardano-node 8.1, including query serialization fixes for backwards compatibility.
]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Performance & tracing update]]> + 2023-05-31-performance-and-tracing + + 2023-05-31T00:00:00.000Z + + High level summary
  • Benchmarking: We've performed and analysed first benchmarks with GHC9.2 builds. Additionally we have developed an early indicator for how build config changes might reflect on metrics from our model cluster.
  • New tracing: Collaboration with Galois led to the new tracing system to be equipped with a re-forwarding mechanism.
  • Nomad backend: Porting the 52 node model cluster to nomad cloud is ongoing, with the focus on deployment and health checks.

Low level overview

Benchmarking

The first set of runs with GHC9.2 as a build platform are in. We've discovered a significant difference in resource profile usage compared to GHC8.10. Further investigation uncovered the need for benchmarking another parameter change in the build +configuration: As it stands, the ghc-bignum package is using the Haskell native-backend as a default. We strive +to benchmark a build with the gmp-backend next.

A variant of our forge-stress local benchmark has been set up to serve as an early indicator for the resource usage profile +we'd expect to observe on the model cluster. This provides us with a much tighter feedback loop, as local run duration is way +shorter. This indicator is specific to changes in the configuration of build and the runtime systems, and will be of great +support when evaluating different compiler versions or RTS flags incrementally.

Tracing

The hub of the new tracing system cardano-tracer is designed with a fixed output behaviour, which is limited to various +logging options. Thanks to the contribution from Galois, that design is now extended to be able to re-forward all, or a pre-filtered portion, of traces from the node in a configurable manner. This will enable downstream applications to +directly receive the set of trace values relevant to their logic, without any additional cost for the node itself at all.

Nomad backend

We're currently working out the details of efficiently deploying and monitoring a fleet of 50+ nodes, along with +job definitions for tracing and transaction generation. Scaling up to those many instances, and monitoring an ongoing +benchmarking run required us to fine-tune communications with the nomad server.

Related to that, the new cloud backend will provide a monitoring and health-checking mechanism which is far more flexible +and offers more detailed insight than the previous iteration in cardano-ops. The backend will enable you to formulate +very specific conditions for an ongoing run to be considered healthy, and offer automation of certain actions should these conditions not be met.

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-05-26-goedel + + 2023-05-26T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the team has been working on final revisions for the +pre-proceedings versions of two ICE 2023 papers.

Details

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-05-26-hydra + + 2023-05-26T00:00:00.000Z + + High-level summary

This week, the Hydra team accomplished several important tasks. They held their +monthly review meeting and drafted the report for May. They made progress on +implementing the first end-to-end journey for external commits using "Option A" +for normal UTxOs, while still considering "Option B". The team also integrated a +Spanish translation contributed by the community, created micro-benchmarks for +transaction validation and deserialization, and made improvements to +hydra-node's version reporting. Last but not least, they implemented the ability +to commit multiple UTxOs to a head at once.

What did the team achieve this week

  • Held the monthly review meeting (recording + slides) & drafted the report for May.
  • Have a first end-to-end journey for external commits implementing Option A +for normal UTxOs #887 (still considering Option B).
  • Integrated the spanish translation #866.
  • Created micro-benchmarks for transaction validation and deserialization #884.
  • Improve hydra-node version reporting on non-released builds #849
  • Some minor CI improvements following up last weeks changes.
  • Allow commit transactions with multiple UTxO #774.

What are the goals of next week

  • Investigate and re-open our team-internal head on mainnet.
  • Improve and provide regular benchmarks for Hydra #186.
  • Complete external commits with script UTxOs #215.
  • Authenticate network messages #727.
  • Add hydra as tool to developr platform #872.
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Ledger Team Update]]> + 2023-05-26-ledger + + 2023-05-26T00:00:00.000Z + + High level summary

The ledger team made progress on the conway ledger era. In particular, the design and implementation +of the new certificates is near complete, we refactored some of our data structures +to be able to support DReps, we cleaned up the serialization format, and renamed things to make +clearer the differences with Shelley.

The team also completed integration work for the next node release, namely 8.1.0. +And, as always, we continue to address technical debt.

Low level summary

Conway progress

  • pull-3408 - Improve conway delegation certificates
  • pull-3428 - Get rid of Constitutional in favor of Genesis and Committee
  • pull-3426 - Add DRep to internal data struture (UMap)
  • pull-3425 - Improve witness logic needed for conway
  • pull-3423 - Rename ShelleyDelegCerts constructors to distinguish them from Conway
  • pull-3421 - Rename DCert -> TxCert
  • pull-3454 - conway CDDL minor fixes

Improve testing

  • pull-3403 - Add Plutus script context golden tests

Integration work

  • pull-3410 - Update chaps index
  • pull-3416 - Bump cardano-ledger-alonzo-test version
  • pull-3414 - Bump cardano-ledger-shelley-test minor version
  • pull-3420 - Bump cardano-ledger-shelley-ma-test version
  • pull-3441 - Release cardano-ledger-[alonzo|babbage]-1.2.1

Technical debt

  • pull-3409 - Unit test - no such thing as a reference datum
  • pull-3407 - Fixup release process documentation
  • pull-3404 - Create TotalDeposits events during all eras
  • pull-3402 - Fix broken references in the Shelley spec
  • pull-3424 - Remove no longer used cardano-ledger-shelley-ma package
  • pull-3432 - Add an example on how to bump up versions in the changelog
  • pull-3440 - Revert back to the group serialization for ProtVer for PParams
]]>
+ + Jared Corduan + https://github.com/JaredCorduan + + +
+ + <![CDATA[Network Team Update]]> + 2023-05-26-network + + 2023-05-26T00:00:00.000Z + + High level summary

We continued working on eclipse-evasion. We also analysed and fixed a bug +when using DNS names in local root peers. We continued working on engineering +blog post about P2P. We released a new version of packages for +cardano-node-8.1.0 release.

We improved our CI, removed obsolete scripts add extra validation which checks +if CHANGELOG.md files were updated.

We also improved release scripts.

Detailed summary

  • Eclipse evasion: #4462
  • Local root peers bug fix: #4559
  • Release to CHaP: #4573
  • CI improvements: #4572
  • Release script improvements: #4573
]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-05-24-node-cli-api + + 2023-05-24T00:00:00.000Z + + 2023-05-24 - 2023-06-06

High level summary

  • The last sprint focused on removing cardano-cli and cardano-api from the cardano-node repository. We have successfully moved cardano-api to its own repository and will do the same for cardano-cli after the 8.1 node is released.
  • We provided assitance where needed in the release
  • An integration repository https://github.com/input-output-hk/fusion-flamingo was created to enable my team to more easily work on cardano-cli and cardano-api

docs

CI & project maintenance

Developer experience

cardano-cli

cardano-api

cardano-node

cardano-testnet

]]>
+ + Jordan Millar + https://github.com/Jimbo4350 + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-05-19-hydra + + 2023-05-19T00:00:00.000Z + + High-level summary

This week, the Hydra team has worked on several fronts, including improvements of their CI speed, logs, documentation pages and adding the support for timed transactions. They also updated the "Coding Standards" for the project, improved the troubleshooting page on their website and wrote a section about how to operate a hydra node. Finally the team completed a feature request that allows clients to submit and validate transactions to their hydra nodes using time validity ranges, ensuring isomorphism with L1.

What did the team achieve this week

  • Complete validation of timed transactions feature #196.
  • Write ops instructions and troubleshooting #569 and improve logs.
  • Remove --ledger-genesis argument to hydra-node options #863.
  • Fix issue with garbage collected caches by using a new cardano-scaling.cachix in more workflows #877.
  • Use nix to build test binaries to increase CI speed #867.
  • Updated our Coding Standards.

What are the goals of next week

  • Monthly report & review meeting.
  • Have a first end-to-end journey for external commits implementing "Option A" #215.
  • Integrate spanish translation #866.
  • Improve and provide regular benchmarks for Hydra #186.
  • Allow commit transactions with multiple UTxO #774.
  • Explored stateless observation and refined hydra explorer ticket #696.
]]>
+ + Franco Testagrossa + https://github.com/ffakenz + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-05-17-consensus + + 2023-05-17T00:00:00.000Z + + High level summary

During the past two weeks we brought further improvements into the Genesis design in collaboration with the IO Research and Networking teams. These improvements concern the Genesis selection rule, candidate rule, and root peers usage. See the [Genesis][#genesis] section for more details.

Regarding our UTxO-HD prototype, during the past two weeks we put together a pull-request that improves the DB locking mechanism, started porting the mempool fairness improvements from our main branch, and integrated a new open source library (that implements cancellative monoids) that allowed us to simplify our code and get a small performance gain.

We improved our tooling by releasing an immutable DB server, which can be used for testing and benchmarking purposes, and a db-truncater program, which can be used in disaster recovery and benchmarking scenarios.

Genesis

The consensus team working on Genesis:

  • Improved the genesis selection rule as a result of our interaction with IO Research.
  • Studied how the hard-fork combinator handles forecasting at era transitions, and improved our documentation.
  • Determined that the simplest candidate rule we had considered will work for the Genesis window at era transitions, at least for the MVP.
  • Elaborated concrete proposal for the Genesis State Machine.
  • Met with the Networking Team and advised/co-designed how to implement the stop gap usage of public trusted root peers before Genesis is released (it's similar to the Genesis State Machine).

The team is currently re-analyzing the Limit on Patience, which can be less aggressive now that we've re-introduced the Genesis State Machine.

]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-05-17-mithril + + 2023-05-17T00:00:00.000Z + + High level overview

The Mithril team released a new 2318.0 distribution that implements the last migration phase of the aggregator stores and embeds a bug fix for the signer registration. They also completed the implementation of the interfaces defined to provide certification for the immutable full snapshot of Cardano files and Mithril stake distribution. They finalized the implementation of the framework to sign generic types of data in the aggregator and the signer nodes. They also updated the runtime of the aggregator to handle open messages associated with the available types, and evolved the REST API of the aggregator to deliver the artifacts for these types. Additionally, they have upgraded the network explorer in order to display the artifacts and certificates for these different types.

Finally, the team started designing an on-chain decentralized signer registration process, and started implementing the new stake distribution computation available from Cardano node 8.0.0 (along with the backward compatibility for previous 1.35.x versions).

Low level overview

  • Worked on the epic that designs and implements generic signing/verification of entity services #780:
    • Completed the handling of multiple types of signed entity in the aggregator runtime #907
    • Completed the adaptation of the signer runtime to use the signable builder service #854
    • Completed the adaptation of the aggregator runtime to use the artifact builder service #869
    • Completed the appending of the next AVK to all protocol messages #888
    • Completed the adaptation of the aggregator REST API to retrieve the list/details of the artifacts produced #893
    • Completed the adaptation of the explorer to handle new artifact routes of the aggregator #927
  • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
    • Completed the implementation of the new stake distribution computation in the chain observer #919
    • Worked on upgrading the Cardano node to 8.0.0 #920
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Performance & tracing update]]> + 2023-05-17-performance-and-tracing + + 2023-05-17T00:00:00.000Z + + High level summary
  • Benchmarking: We're preparing our model cluster to perform GHC9.2 benchmarks, as well as experimenting with increased dataset sizes.
  • New tracing: After optimization work on the new tracing system, another cycle of validation and documentation is due.
  • Analysis pipeline: First steps on implementing incremental analysis have been untertaken.
  • Open Sourcing: Exhaustive dataflow charts for both our analysis tool locli and our workbanch have been merged to master
  • Nomad backend: The first set of CI-centric workbench profiles have been adjusted and run on the nomad backend; currently we're porting the definition of our model cluster.
  • P&T Meetup: We had a very productive personal meetup in Lugano, Switzerland.
  • Offboarding: Sadly, we have to say goodbye to our team lead. Currently, we're busy with the handover.

Low level overview

Benchmarking

As a compiler switch to GHC 9.2.7 for cardano-node's default build environment is around the corner, we're setting up our benchmarking cluster to +handle the new version. Special attention is given to the fact that we might need more flexibility in switching compiler versions in the future. This +also involves choosing a reliable baseline as reference point for inter-version comparisons.

Additionally we've been working on refining our model cluster: by increasing UTxO and delegation map sizes to closer match those of current mainnet, +we strive to have a more accurate model - and thus be able to make more detailed predictions regarding performance. However, this still needs to +be balanced against resource demand for all our cluster's nodes.

Tracing

For our new tracing system, we're currently validating the behaviour of the system after optimizations have been applied. Furthermore, some +quality-of-life details that have changed required us to revision the system documentation.

Analysis

As a mid-term goal, we aim to provide incremental analysis of our benchmarking metrics. While currently, we can only reliably process runs that have been +normally (or abnormally) terminated, we see the possibility of incrementally analysing ongoing runs, or any data source yielding our key metrics, as a +huge opportunity to increase our operational flexibility. All in all, this approach entails building completely new features for our pipeline. A first effort to accomodate incrementally incoming data points has been undertaken.

Open Sourcing

A very involved and exhaustive documentation and visualization effort has been undertaken to make the data flow through our key benchmarking +copmonents more accessible. As a result, detailed charts for both our LogObject CLI locli and our workbench have been merged to master.

Nomad backend

While our Nomad backend is reaching completion, and hardware setup is being implemented in collaboration with SRE, we've been adjusting +those profiles of our workbench that target CI-oriented workloads to the new backend. Those profiles should demonstrate the full functionality +of the nomad cloud backend.

Additionally, we're porting a first deployable version of our model cluster to nomad cloud, which will form the basis for validation of our actual key metrics with regard to those from the existing cluster.

Performance & Tracing Meetup

We held a personal team meetup in Lugano, Switzerland. In an amazing location, and with a great seminar room to focus, we had 2 very productive +days together. Being able to discuss live and in colour, we could effectively synchronize on where the team is at, and how we want to develop in the future. +Also, it was a great opportunity to finally meet in person.

Offboarding

Last not least we regret that our team lead is leaving at the end of May. Currently, he's handing over all his obligations, which requires reorganisation +of team structure, and responsabilities of team members for specific tasks. Serge, we all want to thank you for your excellent and reliable lead; we very much enjoyed the time with you, and wish you all the best for your future endeavours!

]]>
+ + Michael Karg + https://github.com/mgmeier + + +
+ + <![CDATA[Crypto Team Update]]> + 2023-05-12-crypto + + 2023-05-12T00:00:00.000Z + + High level summary

The open fronts that the crypto team is working on are:

  • cardano-base: Include final tests for BLS signature. Further adaptations for KES agent.
  • Sidechains: Implement BLS and JubJub using upstream's macros to merge these curves in halo2curves.

Low level summary

cardano-base

Sidechains

  • Opened PR in halo2curves to include BLS12-381 and JubJub, #38
  • Addition constraint over JubJub merged #10
]]>
+ + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
+ + <![CDATA[Goedel Team Update]]> + 2023-05-12-goedel + + 2023-05-12T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

High level summary

This sprint the team had two paper accepted for ICE 2023 +(https://www.discotec.org/2023/ice). The event will be held in Lisbon +on 19th June 2023. The papers will be published in EPTCS.

Details

]]>
+ + James Chapman + https://github.com/jmchapman + + +
+ + <![CDATA[Hydra Team Update]]> + 2023-05-12-hydra + + 2023-05-12T00:00:00.000Z + + High-level summary

This week, the Hydra team achieved a number of milestones, including the release +of the first mainnet compatible version. Besides this they also addressed +inconsistencies in rollback handling, added an architecture page to the website, +reducing the size of logs using event IDs. They also had productive discussions +with researchers on plans for incremental commits/decommits and had a whiteboard +session on DeFi and lending protocols. The goals for next week include +completing the validation of the timed transactions feature, exploring stateless +observation, refining the Hydra explorer ticket, writing ops instructions and +troubleshooting, and implementing the first end-to-end journey for external +commits.

What did the team achieve this week

  • Released first mainnnet compatible version 0.10.0
  • Addressed inconsist handling of rollbacks #784
  • Added architecture page and fixed haddock links on our website #838
  • Opened a new hydra head on mainnet
  • Talked with researchers on initial plan for incremental commits/decommits
  • Had a Whiteboard session on DeFi and lending protocols
  • Reduced size of logs using event ids #859
  • Published the monthly report for April

What are the goals of next week

  • Complete validation of timed transactions feature #196
  • Explored stateless observation and refined hydra explorer ticket #696
  • Write ops instructions and troubleshooting #569 and improve logs
  • Have a first end-to-end journey for external commits implemented #215
]]>
+ + Sebastian Nagel + https://github.com/ch1bo + + +
+ + <![CDATA[Network Team Update]]> + 2023-05-12-network + + 2023-05-12T00:00:00.000Z + + High level summary

We started working on a new way to switch between root & ledger peers (see +below). We continued to work on eclipse-evasion. We merged changes to +Handshake contributed by Galois Inc. We made improvements to our tests (fixed +a flaky test, added cddl specs for NodeToNodeVersionData and +NodeToClientVersionData). We improved our CI and automated the process of +releasing new package version to CHaP.

Detailed summary

We continued to work on testing eclipse-evasion.

We came up with an idea to limit how full node wallets relay on root peers +(currently operated by IOG, in future also CF and Emurgo). We designed +a switch to use ledger peers if the node tip is close enough to the current +time. For more details see #4530.

We merged changes to the handshake mini-protocol which allow one to query +server's node-to-node / node-to-client parameters. We are grateful to +Galois Inc. for implementing it, #4256 and #4538. We published new version +of packages to CHaP chap-#253.

We added DiffusionError wrapper. Thanks to it, ouroboros-consensus will +not duplicate diffusion errors messages in the log, #4537.

We fixed an issue which caused one of our tests to be flaky, #4515.

We added cddl tests for NodeToNodeVersionData and NodeToClientVersionData: +#4540, #4544 (in review).

We wrote scripts which will help us release packages as well as verify that we +released all the package necessary to build the newest set of packages, +#4542.

We renamed the consensus startup tracer and make sure it doesn't log +ExitSuccess exceptions, consensus-#71.

We reviewed PR which adds RawBearer API, #4395.

We made series of improvements to our CI:

  • #4539: we don't need to install cryptographic libraries in CI;
  • #4545: Javier Sagredo (consensus) cleaned up CI after consensus moved +to a new repo;
  • #4546: we switched to use GitHub merge queues;
  • #4549: we made it possible to trigger building haddocks manually;
  • #4553: we fixed and enhanced caching of building dependencies.
]]>
+ + Marcin Szamotulski + https://github.com/coot + + +
+ + <![CDATA[Ledger Team Update]]> + 2023-05-05-ledger + + 2023-05-05T00:00:00.000Z + + High level summary

The ledger team focused mainly on the conway ledger era and node integration. +For conway, we completed a large structural change that now allows +for delegation certificates to be parameterized by era, and introducing +new certificates for the first time since Shelley. +We also continue to build out our contraint based generators that we will +use to property test the conway era. +In particular, we can now generate an entire ledger state and a +transaction which is balanced with respect to the ledger state.

Low level summary

Conway certificates

Certificiates are now abstracted as a type family in the ledger codebase. +Moreover, there are new certificates in the Conway era to support CIP-1694, +and MIR certificates have been removed.

Constraint based testing

Our plan for property testing in the conway era is to no longer use the trace generators, +but instead generate ledger states and transactions based on constraints. +We hit a milestone this week, namely the ability to generate a balanced transaction in the context +of a ledger state, all based on our ever growing constaint language.

Integration work

Technical debt

]]>
+ + Jared Corduan + https://github.com/JaredCorduan + + +
+ + <![CDATA[Node API & CLI Team Update]]> + 2023-05-05-node-cli-api + + 2023-05-05T00:00:00.000Z + + 2023-05-05 - 2023-05-23

High level summary

  • Golden tests for cardano-cli command help output were added.
  • Documentation was updated with new libsodium installation instructions.
  • There were several updates for the cardano-cli:
    • Deletion of the deprecated shelley command group.
    • Addition of golden tests for CLI help.
    • An improvement to avoid bare IO in tests, allowing better error reporting in failed tests.
    • Generation of UTCTime test values without leap seconds (avoids erroneous test failures)
    • Support for signing transactions with GenesisDelegateSigningKey_ed25519_bip32.
  • The cardano-api underwent multiple refinements:
    • Implementing deposit handling when balancing transactions (necessary for Conway)
    • Cleaning up socket file path code.
  • Several changes were made to the cardano-testnet:
    • Adding golden tests for cardano-testnet help.
    • Removing all hardcoded yaml files in cardano-testnet
    • Improving cardano-testnet help output.
    • Parameterizing default yaml configuration value, allowing for easier hardforking to the era of choice.

docs

CI & project maintenance

Developer experience

cardano-cli

cardano-api

cardano-node

cardano-testnet

]]>
+ + Jordan Millar + https://github.com/Jimbo4350 + + +
+ + <![CDATA[Mithril Team Update]]> + 2023-05-04-mithril + + 2023-05-04T00:00:00.000Z + + High level overview

The Mithril team completed the implementation of the new certifier service of the aggregator, which is in charge of producing certificates for multi-signatures. They also finished implementing the interfaces defined to provide certification for the full immutable Cardano files snapshot and the Mithril stake distribution. Additionally, they have completed the refactoring of the multi-signer in the aggregator. The team also fixed the bug in the signer registration that was responsible for gaps during the signature phase for some signers, and they upgraded the Cardano node used in the Mithril testnets and devnet to version 1.35.7.

Finally, they have worked on designing a decentralized registration for the signers that takes place on the Cardano chain.

Low level overview

  • Worked on the epic that designs and implements generic signing/verification of entity services #780:
    • Completed the implementation of the Certifier service in the aggregator #850
    • Completed the implementation of the signable builder for the Mithril Stake Distribution #851
    • Completed the implementation of the artifact builder for the Mithril Stake Distribution #870
    • Completed the implementation of the signable builder for the Full Immutables Snapshot #852
    • Completed the implementation of the artifact builder for the Full Immutables Snapshot #871
    • Completed the adaptation of the aggregator runtime to use the signable builder service #853
    • Worked on the adaptation of the signer runtime to use the signable builder service #854
    • Completed the definition of the entity service interface for verification/restoration #868
    • Completed the refactoring of the OpenMessage type #878
  • Completed the epic that simplifies the multi-signer in the aggregator #398:
    • Completed the extraction of the single signature registration from the multi-signer #643
  • Completed the upgrade of the Cardano node to version 1.35.7 #881
  • Fixed the bug that created a discrepancy of the signer verification keys between signers and aggregators #873
]]>
+ + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
+ + <![CDATA[Consensus Team Update]]> + 2023-05-03-consensus + + 2023-05-03T00:00:00.000Z + + High level summary

During the past two weeks we made some important progress in the Genesis design. +It seems the BlockFetch logic need not be modified for Genesis, although this +needs to be confirmed. We started a DoS mitigation handbook and updated our +conceptual component diagram to guide the Genesis design. We engaged with the +IOG researchers to work on the Limit on Patience attack vector, work in this +area is still ongoing. We sketched a design to decouple the CPU load of the node +from its responsiveness to the socket. Finally, we discussed with Networking our +approach to lower the performance impact of the BlockFetch decision logic, and +got green light from them.

We migrated the consensus code to a new +repository, splitting +it from the ouroboros-network repository, and released version 0.6 of +Consensus.

We also merged the mempool fairness improvement to main branch.

Another significant enhancement to our documentation was the addition of an +explanation of the hardfork combinator forecast horizon.

See the sections below for more details.

Genesis

We reviewed the BlockFetch design documentation, and added some source-code +comments that emphasize certain properties of the decisions the BlockFetch +logic makes that are helping us confirm that Genesis does not require any +changes to BlockFetch. We are waiting on input from our former system +architect to verify this.

We migrated and updated the conceptual component diagram in the ouroboros-consensus +repository which helps us situate the Genesis design and argument.

We engaged with the IOG researchers about the Genesis design. We sketched out a +way to address the concern that the Limit on Patiente (LoP) attack vector duty +cycle is indeed low, but it's still non-trivial to ultimately conclude it's +sufficiently low.

We also sketched a design to decouple the CPU load of the node from its +responsiveness to the socket, since the LoP is a relatively tight timeout, and +node performance bugs inducing seconds-worth of latency are unfortunately +familiar phenomena.

Fostering collaboration

We added an +explanation of +a question that we had to explain many times about the exact behavior of the +hardfork combinator forecast horizon.

]]>
+ + Damian Nadales + https://github.com/dnadales + + +
+ + <![CDATA[Performance & tracing update]]> + 2023-05-03-performance-and-tracing + + 2023-05-03T00:00:00.000Z + +
  • Benchmarking: The benchmarks and performance investigations for the new 8.0 release branch are ongoing.
  • New tracing: Performance optimization of the new tracing system is paying off and we could notably shrink its resource footprint.
  • Analysis pipeline: An exhaustive documentation and dataflow diagram for our analyses is being worked on.
  • Infrastructure: The plutus-apps flake input for cardano-node has finally been removed.
  • Nomad backend: A PR implementing placement of benchmarking clusters has been merged.
  • Benchmarking

    The performance investigations on the 8.0 release branch have lead to pinpointing and addressing incosistent behaviour. For that, +we created yet another local reproduction with the workbench's forge-stress benchmark.

    Currently we're working on scaling up the dataset size (UTxO and delegations) on the AWS cluster to gain further insight into 8.0 and +subsequent releases.

    Additionally, we've refined the trace-bench family of profiles that target benchmarking our own new tracing system.

    Tracing

    Optimization of the tracing system has identified several locations where inefficient serializations were used; those were not originally +intended to run on a performance-critical codepath. We've worked on improving those, as well as eliminating cases of redundant +conversion between different serialization formats. This has brought down both memory and CPU impact of the tracing system.

    Infrastructure & Analysis

    Dataflow documentation

    The LogObject CLI locli is at the heart of our analysis and reporting pipeline. To increase its accessibility and facilitate +further development, we're creating a detailed and illustrated documentation of all dataflows that happen during analysis and reporting.

    Remove redundant Plutus flake input

    This step is the conclusion of porting Plutus benchmarking scripts to our own library. By finally removing the now unnecessary flake input, +we simplify the dependency graph for cardano-node, as well as enable immediate feedback when developing Plutus benchmarks.

    Nomad backend

    Sophisticated placement of nodes across various regions of the globe is a cornerstone of the model cluster we use for benchmarking. +This capability has now been added to the Nomad backend and can be controlled with Nomad job descriptions. A PR with this, along +with various quality-of-life improvements, has been merged to master.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    + + <![CDATA[DB-sync Team Update]]> + 2023-05-01-db-sync + + 2023-05-01T00:00:00.000Z + + High level summary

    Lower level summary

    • Prepared a schema change which is expected to speed up queries and help clients +#1389.
    • Ran a big number of benchmarks on the above to evaluate if this change is reasonable.
    • Performance optimization related to rewards +#1382
    • Using the cache in more places to reduce recourses usage +#1380
    • Evaluated risks related to UTXO-HD integration
    • Worked on a feauture request to split the tx_out to an address table +#1396
    • Worked on another feauture request to prune the consumed entries from the tx_out table +#1398
    • Prepared for CIP-1694 integration
    ]]>
    + + Kostas Dermentzis + https://github.com/kderme + + +
    + + <![CDATA[Crypto Team Update]]> + 2023-04-28-crypto + + 2023-04-28T00:00:00.000Z + + High level summary

    The open fronts that the crypto team is working on are:

    • cardano-base: New KES structure finally merged. Included additional tests to BLS, and including test vectors created with zkcrypto's library.
    • KES agent: Reaching state of MVP. Rewriting KES agent networking code to use the Snockets abstraction.
    • Sidechains: Started implementing ECC chip of JubJub over BLS12-381.

    Low level summary

    cardano-base

    • #255 finally merged 🎉
    • Additional tests for BLS bindings #384
    • Open PR for including test vectors created with zkscrypto's library, PR#397

    KES agent

    • Introducing the SignKeyWithPeriodKES wrapper type, which bundles a KES key with its corresponding KES period PR#389.
    • Introducing the DirectSerialise API into cardano-base, which allows us to write mlocked memory directly to a file descriptor, without going through intermediate encodings stored on the GHC heap (which is a no-no due to secure forgetting requirements) #317.
    • Figuring out how to generalize the KES, DSIGN, and mlocking code in cardano-base such that it can run in IOSim
    • Rewriting KES agent networking code to use the Snockets abstraction, which gives us a platform-independent sockets layer (i.e., it will also work on Windows), and also allows us to run networked code in IOSim for testing purposes
    • Refactor MonadSodium into MonadMLock PR#388.

    Sidechains

    • Started working on ECC chip for JubJub over BLS (problems still with the multiplication constraint)
    • Use macros used by PSE library to try and merge our fork of halo2curves into PSE's repo
    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Goedel Team Update]]> + 2023-04-28-goedel + + 2023-04-28T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is working on porting an existing formalisation of Ouroboros +Praos to a newer foundation.

    Details

    ]]>
    + + James Chapman + https://github.com/jmchapman + + +
    + + <![CDATA[Network Team Update]]> + 2023-04-28-network + + 2023-04-28T00:00:00.000Z + + High level summary

    The networking team has released the following packages to Hackage:

    We published an announcement blog post. We made progress +also on another blog post which will describes the design of the P2P networking +layer.

    After moving ouroboros-consensus to its own repository, we made +ouroboros-network compatible with GHC 9.4 and 9.6.

    We made cardano-client library independent of +ouroboros-consensus-diffusion.

    We prepared release of network packages for cardano-node-8.0.

    Detailed log

    Ouroboros-Network

    IO-Sim

    • io-classes-1.0.0.0, and following up releases: 1.0.0.1 (ghc-9.6 +support), 1.1.0.0 (documentation fix).
    • Fixed timeouts and delays in io-sim in a series of PRs: io-sim#81, +io-sim#82, io-sim#86, io-sim#87.
    • Renamed a module: io-sim#88.
    • Fixed a failing registerDelayCancellable test: [io-sim#80].
    • Use GitHub merge queue in io-sim repository.
    • CI: download stylish-haskell: io-sim#83.

    Typed Protocols

    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-04-27-hydra + + 2023-04-27T00:00:00.000Z + + High-level summary

    This week, the Hydra team held their Monthly review meeting and drafted the +report which likely is published next week. They put the spec into the +repository and website, addressed a user issue and fixed the TUI peer list. +Furthermore, they updated dependencies, conducted a Twitter space on Auctions +use cases, covered the rollback bug with tests and implemented a solution. +Looking ahead, their goals for next week include releasing 0.10.0, implementing +timed transactions support, writing a Query API ADR, and grooming work items +like off-chain benchmarks.

    What did the team achieve this week

    • Held the Monthly review meeting and drafted the report (to be published next week)
    • Added the spec into the repository +#693 and published on +the +website
    • Groom and addressed user issue #823
    • Covered the rollback bug with tests and implemented a solution (to be reviewed) #784
    • Fixed the TUI peer list
    • Updated dependencies to match cardano-node master
    • Conducted a twitter space on Auctions use cases

    What are the goals of next week

    • Release 0.10.0
    • Support timed transactions solution drafted and validated API with users
    • Write Query API ADR and groom a concrete step
    • Groom and solve PostTxOnChainFailed UX problem #832
    • Groom off-chain benchmarks idea #186 and turn it into a feature
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-04-21-hydra + + 2023-04-21T00:00:00.000Z + + High-level summary

    This week, the Hydra team worked on several fronts, including fixing state +machine continuity on-chain, discussing voting project solutions, exploring +adding Hydra support to kupo, and improving API navigation with a sidebar. The +team also updated dependencies and fixed issues in their test suites. Moving +forward, the team plans to hold the next monthly review meeting, address a user +issue, prepare for the 0.10.0 release, and work on a dirt road fix for the +rollbacks issue with proper test coverage.

    What did the team achieve this week

    • Fixed scripts to enforce state machine continuity on-chain #777.
    • Took part in a twitter space on Scaling Cardano.
    • Joined a CBIA meeting to discuss Cardano network protocols & how to specify them.
    • Discussed potential solutions of ensuring vote uniqueness in the voting project.
    • Updated dependencies to match cardano-node master to prepare for upcoming releases and hard-forks
    • Explored adding Hydra support to kupo, a lightweight Cardano chain indexer - some more work required.
    • Improved navigation of the API Reference with a sidebar, see unstable API version.
    • Fixed two things in our test suites (random port conflicts and an arithmetic underflow in smoke test)

    What are the goals of next week

    • Monthly review meeting (join via Discord or AddEvent) & report
    • Dirt road fix for rollbacks #784 properly covered by a test.
    • Groom and ideally address user issue #823.
    • Put the spec into the repo #693 and prepare release 0.10.0.
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Ledger Team Update]]> + 2023-04-21-ledger + + 2023-04-21T00:00:00.000Z + + High level summary

    We continued to make progress on CIP-1694 and the conway ledger era. +In particular, the conway era now supports Plutus V3. +Finally, we made small improvements to the ledger API and now host +our Haskell code documentation (haddocks) on github pages.

    Low level summary

    Conway ledger era

    Haddocks hosted on github pages

    Small improvements to the API

    Technical Debt

    • [pull-3367] Fix cost model json instances.
    • [pull-3371] UMap cleanup.
    • [pull-3373] Upgrade to ghc 9.2.7 and cabal 3.10.1.
    • [pull-3375] Sadly, we had to revert the TICKF optimizations. There was a regression we do not yet understand.
    • [pull-3377] Fix cabal warnings.
    • [pull-3383] Fix multi-asset test.
    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Mithril Team Update]]> + 2023-04-20-mithril + + 2023-04-20T00:00:00.000Z + + High level overview

    The Mithril team released a new 2315.0 distribution that implements the first part of the migration of the aggregator stores along with minor improvements and bug fixes. They finished the migration of the aggregator stores to a relational design by completing the adaptation and migration of the signed entity, signer and single signature stores. They also created a new tick service that provides beacons to other services of the aggregator. Additionally, they started implementing the new new certifier service of the aggregator that is in charge of producing certificates for multi-signatures.

    Finally, they completed the design and definition of the interfaces that must be implemented to provide certification for a new type of data in a Mithril network.

    Low level overview

    • Released the new distribution 2315.0
    • Completed the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the signed_entity table #816
      • Completed the creation of the signer table #814
      • Completed the migration/adaptation of the single_signature table #829
    • Worked on the epic that designs and implement generic signing/verification of entity services #780:
      • Completed the definition of the interface of the generic entity service for signing #847
      • Worked on the implementation of the Certifier service in the aggregator #850
      • Completed the extension of the SignedEntityType type #848
      • Completed the implementation of the Tick service in the aggregator #849
      • Worked on implementing the signable builder for the Mithril Stake Distribution #851
    ]]>
    + + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2023-04-20-node-cli-api + + 2023-04-20T00:00:00.000Z + + 2023-04-20 - 2023-05-04

    High level summary

    • Various fixes and improvements

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[Consensus Team Update]]> + 2023-04-19-consensus + + 2023-04-19T00:00:00.000Z + + High level summary

    This week the consensus team continued working on the improved DB lock mechanism +for UTxO-HD, and modifications to the mempool benchmarks that this prototype +requires.

    On the Genesis front we validated that the fragment size calculation in +BlockFetch is a major performance sink for ChainSync Jumping. By removing it +we will get performance that is acceptably close to that of the baseline. We +also started investigating a performance fix that does not alter the existing +baseline behavior too much. In addition we reviewed our Genesis attack vector +calculations.

    On the support front we released Consensus 0.4, and we are working on improving +our release process, to support the Cardano-wide efforts in this area. We also +performed an analysis on the number of file descriptors that consensus use. This +information can be used by the node operators to check if the number of file +descriptors they want to support are enough.

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Performance & tracing update]]> + 2023-04-19-performance-and-tracing + + 2023-04-19T00:00:00.000Z + +
  • Benchmarking: We performed a series of benchmarks aimed at the new 8.0 release branch and built a timeline from the 1.35 releases to that branch.
  • New tracing: Work on safeguarding the new tracing system performance-wise is ongoing. A practical use case for data points is being tackled with Galois.
  • Analysis pipeline: We're working on automatically obtaining a detailed manifest for each run.
  • Infrastructure: The library for benchmarking Plutus scripts has been merged. Also, we've laid the ground for including GHC profiling data into our workbench.
  • Nomad backend: The first iteration of a distributed / multi-client Nomad cluster has been merged.
  • Benchmarking

    We have performed various cluster runs targeting the 8.0 release branch. That way we were able to catch an inconsistency in behaviour early on. This led to the creation of a specialized workbench profile epoch-transition for local reproduction of what we observed on the benchmarking cluster.

    Furthermore, we bridged the gap between the run data from the 1.35.x releases to the the new 8.0.x release branch. This included walking the +master branch backwards and pinpointing the order, as well as the dates and commits of all relevant component bumps. This timeline is absolutely crucial +in locating possible regressions for the new release branch, as it provides the exact points in history we would need to target with a comprehensive set of +benchmarks.

    Tracing

    In-depth performance analysis of the new tracing system has already yielded results and helped us smoothing some rough edges. However, this work is still +ongoing.

    In coordination with Galois, who are developing a system assurance service by observing a number of cardano-nodes, we're working with the implementation +of data points which the node provides during runtime. While making the view on data points expressive enough for the external service, the computational +burden inside the node needs to be kept to an absolute minimum. We're currently in ideation about whether cardano-tracer could be extended with a richer +feature set to that end.

    Infrastructure & Analysis

    Detailed manifest

    A run manifest documents, among other things, the component dependencies that were used for a specific build the run has been performed with. +These dependencies come from different package sources, have different versioning policies, and an identical package version might provide different +performance characteristics depending on the exact commit used for the build. This manifest will greatly increase insight into where changes in measured behaviour might have originated +by making all component bumps visible and accessible.

    GHC profiling inside workbench

    The workbench has been equipped with a new -profnix profile flavour. This enforces a -fprof-auto build for all node-related packages. The type of +profiling data generated by the GHC runtime can be customized and will enter statistical analysis. The relevant PR for this new feature has already +been merged to master.

    Nomad backend

    The added feature for a multi-client Nomad cluster greatly enhances how jobs are organized by the backend and mapped within specific instances. +This results in great maintainability while not giving up on flexibility. However, work on that feature is still ongoing.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    + + <![CDATA[Cardano Block Production Temporary Outage]]> + 2023-04-17-ledger + + 2023-04-17T00:00:00.000Z + + Cardano block production temporary outage

    On Sunday, January 22, 2023, an incident occurred resulting in block production pausing for a brief period of time (approximately two minutes, similar to the usual pause at an epoch boundary). Around 50% of block-producing nodes and relays restarted during this period. Having restarted, nodes continued to produce blocks without failure. While the network continued to operate, the issue did have the potential to affect network integrity, so was flagged as a ‘critical’ incident, thus warranting immediate response and investigation by IOG engineers. +The investigation (with SPO & Cardano Foundation collaboration) quickly revealed the cause of the issue – a complex bug in data structure handling code related to the precise order of insertion/deletion of multi-asset tokens into the internal ledger record. Input Output Global (IOG) engineers, along with SPOs and DApp developers, collectively identified how to reproduce the issue as a unit test that could be included in the standard Cardano node test suite. +Following successful testing, this led to a bug fix being implemented, tested, benchmarked, and deployed as a hotfix in the node v.1.35.5 release on Friday, January 27, 2023. Care was taken not to highlight the exact cause of the bug during this process so that it could not be exploited prior to SPOs deploying this new node version. +With the fix deployed, the Cardano SPO and developer community have not seen any further instances of this issue.

    Further Details

    You can read more details on the incident and how it was managed from SundaeSwap’s Pi Lanningham here. Thanks again to all the community for its support in identifying and fixing this bug.

    ]]>
    + + Kevin Hammond + https://github.com/kevinhammond + + + +
    + + <![CDATA[Goedel Team Update]]> + 2023-04-14-goedel + + 2023-04-14T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has submitted two papers for publication, carried +out consultancy with other teams and has an opening for an intern.

    Details

    ]]>
    + + James Chapman + https://github.com/jmchapman + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-04-14-hydra + + 2023-04-14T00:00:00.000Z + + High-level summary

    This week, the Hydra team focused on improving the smoke test, fixing developer +tooling, and improving the API for voting use cases. They reviewed progress on +auction, payments, and voting projects and made worked on reproducing a bug with +handling rollbacks. Moving forward, the team plans to update dependencies, +implement a dirt road fix for the rollbacks bug, and explore adding Hydra +support to kupo.

    What did the team achieve this week

    • Reviewed progress on auction, payments and voting projects
    • Improved smoke tests so they can run on mainnet
    • Fixed a regression in the development environment and updated cardano-node +used in tests
    • Improved API with more configurability to unblock voting use case
      • Exclude utxo in SnapshotConfirmed outputs #808
      • Addressed a user request by only sending Greetings once #813
    • Reproduced the rollback bug by improving our model-based test suite #784

    What are the goals of next week

    • Update dependencies to match cardano-node master
    • Dirt road fix for rollbacks #784
    • Update Hydraw to maintain state locally
    • Explore adding Hydra support to kupo
    • Put disclaimer texts and closing mainnet compatibility feature #713
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-04-07-hydra + + 2023-04-07T00:00:00.000Z + + High-level summary

    This week, the Hydra team published the monthly report for March, created +separate links for different versions of documentation, and clarified potential +solutions for the Rollbacks bug. The team also discussed Query API requests for +the Hydra Voting project and met with community members to answer questions +about Hydra. Moving forward, the team plans to integrate the specification into +the repository, implement a short-term fix for the Rollbacks issue, and draft a +Query API ADR.

    What did the team achieve this week

    • Published monthly reports on website
    • Separate last released and latest versions of docs (e.g. normal released vs. /unstable)
    • Discussed Query API concerns from Hydra Voting project (link)
    • Clarified rollbacks bug and defined possible solutions (short and long term) #784
    • Met with community members to answer questions about Hydra

    What are the goals of next week

    • Finally get the docs integrated into the repository #693
    • Dirt road fix for rollbacks #784
    • Disclaimer text and detail known issues about mainnet compatibility +#713
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Mithril Team Update]]> + 2023-04-06-mithril + + 2023-04-06T00:00:00.000Z + + High level overview

    The Mithril team released a new 2313.0 distribution that implements minor improvements and bug fixes. They continued implementing the migration of the aggregator stores to a relational design. They finished adaptating and migrating the certificate, epoch settings, signed entity type, signer registration and open message stores. Additionally, they completed the refactoring of the dependency injector of the aggregator and simplified its multi-signer in order for it to sign multiple concurrent messages.

    Finally, the team has worked on designing the new architecture of the network to support signing multiple types of data and upgraded the version of the Cardano node used in the Mithril testnets and devnet to 1.35.6.

    Low level overview

    • Released the new distribution 2313.0
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the epoch_settings table #813
      • Completed the migration/adaptation of the signed-entity-type table #815
      • Completed the migration/adaptation of the certificate table #817
      • Completed the migration/adaptation of the open_message table #827
      • Completed the migration/adaptation of the signer_registration table #828
    • Completed the refactoring of the dependency injection of the aggregator #823
    • Completed the cleanup of the multi-signer of the aggregator #824
    • Completed the upgrade of the Cardano node to 1.35.6 #843
    ]]>
    + + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
    + + <![CDATA[Consensus Team Update]]> + 2023-04-05-consensus + + 2023-04-05T00:00:00.000Z + + High level summary

    This week the consensus team finished the UTxO-HD prototype refactoring. We are +now working on improving the DB lock mechanism to improve performance. We also +introduced several improvements to the file system abstraction and simulation +layer (fs-sim), which culminated in the release of fs-sim-0.1.0.0 and +fs-api-0.1.0.0 to CHaP.

    On the Genesis front we distributed the updated Genesis design document, +soliciting feedback from Networking Team and IOG Researchers. We also opened up +a PR for the adversarial leader schedule QuickCheck generator, which is being +reviewed.

    On the support front, we got a new Consensus version that can use different +fundamental VRF crypto primitives for Babbage and Conway eras.

    On the tech debt front we fixed an bug in the followers logic, which was +discovered by our QuickCheck property tests.

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2023-04-05-node-cli-api + + 2023-04-05T00:00:00.000Z + + 2023-04-05 - 2023-04-19

    High level summary

    • Introduce new governance commands create, answer and verify. This allows us to have onchain polls.
    • Begin making changes in cardano-api to accomodate for CIP-1694
    • Rename TestEnableDevelopmentHardForkEras to ExperimentalHardForksEnabled and TestEnableDevelopmentNetworkProtocols to ExperimentalProtocolsEnabled
    • Various bug fixes and improvements

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[Performance & tracing update]]> + 2023-04-05-performance-and-tracing + + 2023-04-05T00:00:00.000Z + +
  • Benchmarking: We worked on adjusting our infrastructure to the new 8.0 release branch and performed a (very) early run.
  • New tracing: We're profiling the new tracing system for minimizing its resource footprint and guarantee high throughput.
  • Analysis pipeline: Variance analysis both for reporting and for serving as a point of comparison has been merged.
  • Infrastructure: A library for Plutus scripts will be integrated in our tooling and benchmarking profiles. Also, a profile family aimed at the tracing systems has been added.
  • Nomad backend: Various specializations of the backend are currently being implemented, along with streamlining credentials management.
  • Benchmarking

    We have adapted our benchmarking cluster to the requirements of the 8.0 release branch. Testing runs of a very early feature branch for 8.0 +helped us localize an important issue in collaboration with the other teams. We look forward to gathering preliminary metrics for 8.0 soon.

    Tracing

    Analysis of resource usage profiles of both the legacy and new tracing system, with and without trace forwarding, have lead us to gather very +detailed profiling data for each possible setup. This is to ensure we keep resource usage within the node to an absolute minimum, while still providing +the highest possible throughput of data for forwarding to cardano-tracer.

    Additionally, we've worked on a very practically-oriented document targeted at end users of the new tracing system. It provides tested step-by-step instructions +for tunneling trace forwarding from a node to cardano-tracer via an easy to manage system service, which will match the production setup of most users.

    Infrastructure & Analysis

    General

    Variance analysis as a full-fledged entity in our tooling has been merged. Not only is this type of analysis now part of our reporting pipeline - variance +analysis can be fed back and serve as an additional point of comparison.

    Furthermore, we've created a profile family for the workbench that's specifically aimed at measuring and comparing tracing system configurations.

    Plutus library

    We opened a PR containing a new package for benchmarking - an extendable library that holds all Plutus scripts we use in our benchmarking profiles. +This will enable us in the future to iteratively work on customizing any given script, and the way is called in the context of a specific profile. +It is a refinement of current affairs, where we have additional build inputs solely to generate a static script file tied to an external commit.

    Nomad backend

    The nomad backend is being specialized in three ways: using a podman driver locally, using nomad agents supporting nix installables, and using nomad cloud agents. This supports having a common surface independent of the actual backend driver being used. In addition, vault retrieval and management of cloud access credentials is +being improved to minimize any friction for the backend user.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    + + <![CDATA[Crypto Team Update]]> + 2023-03-31-crypto + + 2023-03-31T00:00:00.000Z + + High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Started looking into full-node verifier
    • cardano-base: BLS12-381's PR merged. Creating test-vectors for verifying basic pairing properties.
    • KES agent: Blockers overcome. Reaching a first MVP level of the KES-agent.
    • Sidechains: Included BLS12-381 & JubJub to halo2curves
    • MuSig2: Final modifs to C version.

    Low level summary

    Mithril

    • Started designing how a full-node verifier would work. Issue comming in the next couple of weeks.

    cardano-base

    • BLS12-381 branch merged PR#266.
    • Testing strategy for BLS bindings:
      • Test-vectors for Groth16, and simple BLS signatures ready.
      • Test-vectors with different library, and created by different engineer.

    KES agent

    • Resolved issues of circular dependency
    • Got rid of separate DSIGN and DSIGNM, we now have DSIGN over mlocked keys, but the phantom type is the same.
    • Opened a PR for raw bearer branch in ouroboros network PR4395
    • Resolved a bug where the agent node did not properly closed connections
    • Updated version of IOSim allowed us to finish a first version of KES agent.

    Sidechains

    • Included BLS12-381 curve to our branch of halo2curves
    • Included JubJub to our branch of halo2curves

    MuSig2

    • Minor reorg PR#42
    • Started including fuzz testing for deserialisation PR#
    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Goedel Team Update]]> + 2023-03-31-goedel + + 2023-03-31T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on final drafts of two papers +for internal review and planning next steps of analysis of consensus +design refiniments.

    Details

    • Preparing final draft of DeltaQSD algebra paper for internal review

    • Preparing final draft of verifying design refinements for +distributed system design for internal review

    • Planning next phase of consensus design refinement analysis

    ]]>
    + + James Chapman + https://github.com/jmchapman + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-03-31-hydra + + 2023-03-31T00:00:00.000Z + + High-level summary

    This week, the Hydra continued work on finishing mainnet compatibility. The +semi-automated smoke tests and some missing documentation is still preventing +from calling that fully done. They fixed smaller issues and made a step in the +Head protocol more robust. Besides development, they met with interested people +from the community who want to get started collaborating on communication and +marketing materials.

    What did the team achieve this week

    • Groomed and followed-up on GetUTxO user request discussion #797
    • Fixed hydra-node crashes after forks #560
    • Made collectCom more robust and aligned with spec #786
    • Completed configurable API feature #380
    • Met potential contributors about Hydra communication and marketing materials
    • Versioned documentation: we have a unstable bleeding edge version available as well now, seperate from the last released version

    What are the goals of next week

    • Follow-up backlog and roadmap clean-up
    • Complete mainnet compatibility feature #713 (documentation updates)
    • Integrate Hydra specification into repository #693
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Ledger Team Update]]> + 2023-03-31-ledger + + 2023-03-31T00:00:00.000Z + + High level summary

    We are still heavily involved in work related to preparing the next release. +The other main thing we have worked on is experimentation about how we will +handle the DRep stake distribution for CIP-1694 in the conway ledger era. +Lastly, we merged a fix for +node-4826 +into our main branch (there will be a post-mortem shortly).

    Low level summary

    Support for the next release

    • pull-3363 - Fix problems relating to Arbitrary instances used by consensus.
    • pull-3361 - Remove the alonze genesis from the conway genesis.
    • pull-3360 - Translate bad pointer addresses to valid ones in conway.
    • pull-3357 - Fix a bug relating to zero valued ADA in the script context.
    • pull-3356 - Added needed instances (Arbitrary and Serialization) for conway integration.
    • pull-3345 - Added helper functions for the CLI.
    • pull-3342 - Fix a bug with a CLI helper function (having to do with deposit tracking).

    Experiments for DRep stake distribution

    Adding another stake distribution to the ledger state presents some new challenges. +We would like to be able to use the current stake distribution at the epoch boundary +for DRep voting so that people can always vote themselves in time for any proposal. +To this end, we have a prototype of an incremental computation based on the incremental +lambda calculus, together with tests and benchmarks (which are very promising). +See pull-3344.

    Additionally, more of the ledger state is going to need to be rearranged to accomodate +the new incremental computations. +We have two draft PRs up for possibles solution. +See pull-3353 and pull-3364.

    Technical debt and bug fixes

    Documentation changes

    • pull-3354 - Rename "optional datums" with "supplemental datums" in the alonzo spec.
    • pull-3352 - Add a section to the Shelly errata about the individual deposit tracking.
    • pull-3351 - Further clarify the details regarding the script integrity hash.
    • pull-3350 - Some cleanup of the Babbage spec.
    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[System Test Team Update]]> + 2023-03-27-system-test + + 2023-03-27T00:00:00.000Z + + High level summary

    Since the last update (2023-1-13) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.5 and 1.35.6 releases (and their predecessing release candidates) and ran tests on branch with the UTxO-HD functionality.

    Workstreams

    Framework improvements:

    • improvements in searching for unexpected error messages in log files during test run
    • added support for UTxO-HD testing
    • added support for the new P2P topology format
    • added local cluster variant that has the same properties as mainnet (epoch length, fees, etc.)
    • added preliminary support for the Conway era
    • added support for running tests on the Preview testnet

    Full list of closed PRs

    Node:

    • ran tests on node branch with the UTxO-HD functionality
    • tested the 1.35.5 release
    • tested the 1.35.6 release

    DB-Sync:

    • improvements in db-sync sync tests
    • improvements in db-sync functional tests
    ]]>
    + + Martin Kourim + https://github.com/mkoura + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-03-24-hydra + + 2023-03-24T00:00:00.000Z + + High-level summary

    This week, the Hydra had a team workshop and conducted the monthly review +meeting for March. They demonstrated a Hydra Head on mainnet, which was running +the hydraw demo application. While this marks an important milestone, they also +emphasized that more features are still to be added as needed for applications +to run on Hydra. Besides this, the roadmap is getting cleaned up to encourage +discussions and provide more space for user requests.

    What did the team achieve this week

    • Monthly review meeting slides/recording, full report of March next week
      • Opened a head on mainnet with hydraw demonstration
      • Hydra pay updates
    • Team workshop in Austria
      • Hydra presentation at the Cardano Foundation in Zurich
      • In-person grooming session, marked many items as candidates to be rather :idea: dicussions
      • Improved head protocol #786 and investigated a potential bug in rollback handling #784
      • Team building and retrospective

    What are the goals of next week

    • Follow-up on backlog and roadmap clean-up
    • Complete mainnet compatibility feature (documentation updates)
    • Make API more configurable #380
    • Integrate Hydra specification into repository #693
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[DB-sync Team Update]]> + 2023-03-23-db-sync + + 2023-03-23T00:00:00.000Z + + High level summary

    The DBSync team worked in performance enhancements issues, on providing new db-sync options and on +technical debt and bug fixing. The DBSync team also on boarded a new member.

    Low level summary

    • Worked on an issue which causes ada_pots tables to include the values related not only to an +epoch, but also the first epoch of the last epoch. +#1367
    • Fixed an issue where the epoch table didn't rollback and caused wrong values +#1370
    • Fixed an issue were users with disable-ledger option had to provide the state dir option, even +though it was never used. Also refactored the no ledger part of the codebase. +#1378
    • Improved the perforance by using the cache more. Also provided many new options which enables or +disables parts of db-sync. In addition a new --turbo mode is enables which allows db-sync to sync +mainnet in hours. +#1379
    ]]>
    + + Kostas Dermentzis + https://github.com/kderme + + +
    + + <![CDATA[Mithril Team Update]]> + 2023-03-23-mithril + + 2023-03-23T00:00:00.000Z + + High level overview

    The Mithril team released a new 2310.0 distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images.

    Finally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano mainnet and they have fixed some bugs.

    Low level overview

    • Completed the epic that implements eras behavior switch #707:
      • Completed handling the API version switch at era transition #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed on the migration/adaptation of the stake_pool table #787
      • Worked on the migration/adaptation of the epoch_settings table #813
      • Worked on the migration/adaptation of the signed-entity-type table #815
      • Completed the creation of a stake distribution service #799
    • Completed the testing of Mithril with Cardano mainnet network #777
    • Completed qualifying the computation of the stake distribution #810
    • Completed the testing of the Docker client in the Mithril Client multi-platform test workflow #794
    • Worked on bugs and optimizations:
      • Fixed a bug that made computation of the stake distribution occur multiple times during an epoch #804
      • Fixed a bug that created deadlocks on the SQLite connection #807
      • Optimized the error message and the behavior of the signer node when KES keys have expired #820
      • Upgraded the infrastructure of the testing-preview and pre-release-preview networks #801
      • Re-genesis of the testing-preview network #803
      • Re-genesis of the pre-release-preview network #818
    ]]>
    + + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
    + + <![CDATA[Consensus Team Update]]> + 2023-03-22-consensus + + 2023-03-22T00:00:00.000Z + + High level summary

    This week the consensus team continued working on the refactoring of the UTxO HD +prototype, and design and testing of Genesis. We also extracted the fs-sim +package, which provides a file-system abstraction layer that can be used for +testing and simulation. This makes the Consensus code base smaller, while +providing a package that the community can reuse and contribute to. We also +fixed a failing property test related to iterators. We are also working on +mempool and VRF improvements.

    Low-level details

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2023-03-22-node-cli-api + + 2023-03-22T00:00:00.000Z + + 2023-03-22 - 2023-04-05

    High level summary

    • Added new cardano-cli ping command which allows users to ping remote cardano-nodes.
    • The transaction build command now can automatically balance multiassets
    • New combinators for constructing transaction bodies. This allows us to construct transaction bodies in a composable manner.

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[Performance & tracing update]]> + 2023-03-22-performance-and-tracing + + 2023-03-22T00:00:00.000Z + +
  • Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.
  • New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we're currently improving documentation and creating setup guidelines for end users.
  • Analysis pipeline: Our refined metrics PR has been merged. We're working on including variance analysis to our reporting machinery.
  • Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we're laying the groundwork for enabling GHC 9.2 in our benchmarks.
  • Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing.
  • Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.
  • Performance

    New tracing

    The new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe +a slight shift in the resource usage profile from memory to CPU, but no regressions in block propagation metrics. Variance was observed to be notably smaller, which gives the new system a much better predictability. From this angle, we consider the new system fit for production use.

    GHC RTS parametrization

    We're currently prerforming various runs on the cluster to explore the space of different GHC RTS settings for running nodes. The main focus lies +on different configurations for the garbage collector, as well as increasing the number of CPU cores the node may use.

    Open Sourcing

    Our API demo has reached prototype stage, and operates on live data from the production database. Making use of the experience gained, we're refining version 1 of the API to provide optimized usability, and creating documentation that both is descriptive of the API endpoints, and focuses on practical, exemplary use cases.

    Tracing

    For the new tracing system we're currently undertaking an effort to multi-layered documentation: a condensed version, as well +as a setup guide with pragmatical focus, will be provided alongside the in-depth documentation. This effort should cater to different audiences, and provide distinct entry points +for users of the new system, depending on their wants and needs.

    Infrastructure & Analysis

    General

    Having included Conway genesis in the workbench, as a next step in future-proofing out benchmarking infrastructure, we're laying the foundation for a switch in compiler version to GHC 9.2. Additionally, we considered variance analysis of our runs to merit inclusion into our reporting pipeling - which will +increase confidence in specific metrics.

    Nomad backend

    We have implemented an appropriate mechanism for genesis distribution: Only after a benchmarking cluster has been deployed successfully, genesis +is patched and uploaded to an AWS S3 bucket for the nodes to retrieve - as a final step before initiating the actual run. We're confident that this deferred approach will provide clearer evidence for genesis patches, as well as minimize startup time for all runs by factoring in deployment re-tries.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    + + <![CDATA[Network Team Update]]> + 2023-03-21-network + + 2023-03-21T00:00:00.000Z + + High level summary

    In the last spring we released cardano-node-1.35.6 with dynamic P2P +functionality.

    We received reports from some SPOs who encountered problems with their non +P2P block producing nodes not being able to connect to their P2P relay. Karl +Knutsson (from Cardano Foundation) reproduced this issue between two nodes (a +non P2P and a P2P one) on mainnet. Karl and the IOG Networking Team analysed +it and found a bug in the legacy non p2p code. The bug is only possible to +trigger with a P2P node which is binding its outbound connection port to +a fixed IP address and port (default in p2p). A possible solution was found. +For more information see #4465.

    We released cardano-ping-0.1.0.0 package to CHaP. cardano-ping is no +longer available as a standalone binary, but instead it will become part of +cardano-cli (see #4664)

    We are testing cardano-node with peer sharing functionality (#4019).

    We are working on eclipse evasion. We added new class of peers: big ledger +peers to the outbound governor, implemented tests and fixed found issues +(#4462). We also made the information if a given peer plays the role of +a big ledger peer to the mini-protocols. This will allow to modify +mini-protocol applications for such peers. As part of this functionality we +refactored some core types in the network code which simplifies exposed API.

    Together with Moritz Angerman we started to update io-sim to ghc-9.6.1 (see +#73).

    We merged a fix of configuration of accepted connections limit in +cardano-node (see #4902).

    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + + <![CDATA[Crypto Team Update]]> + 2023-03-17-crypto + + 2023-03-17T00:00:00.000Z + + High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: RFP finished. Code ready for audit.
    • cardano-base: BLS12-381's PR approved, only blocker is Windows' CI. Preparing extensive testing strategy together with Plutus and Testing teams.
    • KES agent: Working on a desing on how to use IO sim in order to allow for proper network simulation testing.
    • Sidechains: Preparing proving system to use the curves needed for main-net PoC.

    Low level summary

    Mithril

    • Merged PR#783
    • RFP for crypto audit ready.

    cardano-base

    • BLS12-381 branch approved PR#266. Blocker is Windown's CI. Working on it
    • Testing strategy for BLS bindings:
      • Preparing test-vectors for Groth16, and simple BLS signatures
      • Finding community projects to help write their use cases
      • Designing AC, and expected tests for higher levels of development (Plutus team, E2E tests, etc)
    • Wrote blogpost on how using the same key for ed25519 and VRF completely breaks the security of both systems

    KES agent

    • Started integration of sockets interface used in consensus
    • Use that for de/ser
    • Resolving problems with block memory in IOSim. Can't use withForeignPtr in IOSim
    • Results in having to parametrise for IOSim in KES and DSIGN for testing

    Sidechains

    • Prepared an API for proof generation in sidechains, with it's C API for integration with JVM languages.
    • Design document and start interacting with researchers for concrete instantiation of SNARK-based ATMS.
    • EdDSA over JubJub ready
    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-03-17-hydra + + 2023-03-17T00:00:00.000Z + + High-level summary

    This week, the Hydra team has continued work on the mainnet compatibility of the +hydra-node. They added a golden test suite for hydra-plutus scripts, added +some detection of hydra-node misconfiguration, established a limit of 100 ADA +per commit and other smaller tasks to prepare for a mainnet beta release.

    Next week there will be a small team workshop to push for demonstrating a Hydra +Head on the Cardano mainnet, ideally just in time for the monthly review +meeting. See the hydra channels on the IOG Technical Community discord server +for details.

    What did the team achieve this week

    • Implement a 100 ADA hard-coded commit limit in the hydra-node +#763
    • Pay back funds to faucet after smoke-test run +#773
    • Setup custom github runner for smoke-tests on mainnet +#775
    • Created golden tests to assure the script hash stays the same between +changes #772
    • Removed hardcoded error codes in plutus scripts +#768
    • Detect misconfiguration of a hydra-node given persistent state +#767
    • Met with potential users for hydra-pay
    • Prepared hydra workshop

    What are the goals of next week

    • Hydra monthly meeting
    • Open a multi-party head on mainnet
    • Complete mainnet compatibility feature
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Ledger Team Update]]> + 2023-03-17-ledger + + 2023-03-17T00:00:00.000Z + + High level summary

    We made further progress on the conway ledger era. +In particular, we expanded the ledger API significantly, including lots of governance features. +We also made progress on the specification and corresponding work in the Haskell implementation.

    We also continued to integrate the latest ledger packages into cardano node and addressed +technical debt.

    Low level summary

    Expanded ledger API

    The ledger API was significantly expanded to include:

    • a lot of protocol parameter support
    • versioning support (type level ledger eras and protocol versions)
    • auxiliary data support
    • many new lenses
    • support for witnesses
    • support for conway governance

    See pull-3328.

    Conway ledger rules

    We have made progress on the formal ledger specification for the Conway era. +Moreover, the corresponding Haskell updates were also completed:

    Incremental SPO/DRep stake distribution computation

    We have a working (and correct) proof of concept for how to use the incremental lambda calculus +to maintain several of the stake distributions incrementally. +For the per-SPO distribution, this is a performance improvement. +For the (conway) per-DRep distribution, this is will allow those who have delegated their votes +to a DRep to have time to react to any votes that they disapprove of. +(Sorry, no code to share just yet, more to come.)

    Technical debt

    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Goedel Team Update]]> + 2023-03-16-goedel + + 2023-03-16T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers +improving the deltaQ tutorial, consulting on performance design, and +the final version of the Djed paper.

    Details

    • Preparing draft of DeltaQSD algebra paper for ICE 2023

    • Successful outcome of Marlowe consultancy leading to substantial +improvement in performance

    • Preparing sections on the communication language and bisimulation +proofs for draft paper about verifying design refinements for +distributed system design

    • Camera ready version of Djed paper under preparation

    ]]>
    + + James Chapman + https://github.com/jmchapman + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-03-10-hydra + + 2023-03-10T00:00:00.000Z + + High-level summary

    This week, the Hydra team addressed issues with committing complex UTxOs into a +Hydra Head, prepared the hydra-node to be run on mainnet (soon) and improved +the test suite of the hydra-plutus scripts. The specification is constantly +getting improved upon reviewer feedback on overleaf - this week the graphical +notation was refined to be more transaction-focused.

    What did the team achieve this week

    • Clarified bug of committing UTxOs with reference scripts to a Hydra head #737
    • Prepare usage of hydra-node on mainnet by updating command line options #715
    • Improved our mutation test suite to all expected errors #705
    • Re-opened our persistent hydraw demo head on preprod using version 0.9.0
    • Updated on-chain graphs to be more transaction-focused in the specification

    What are the goals of next week

    • Complete mainnet compatibility feature
    • Prepare the Hydra workshop
    • Address all todo’s in the Hydra specification
    • Unblock the auctions project with commit from script a solution
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Mithril Team Update]]> + 2023-03-09-mithril + + 2023-03-09T00:00:00.000Z + + High level overview

    The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano mainnet and computes the stake distribution with the optimized unreleased Cardano CLI command.

    Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.

    Low level overview

    • Worked on the epic that implements eras behavior switch #707:
      • Completed the deployment of the era behavior switch to the test networks #752
      • Completed the enhancement of datum generation for era markers #786
      • Worked on handling the API version with an era switch #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Worked on the migration/adaptation of the stake_pool table #787
    • Completed the refactoring of errors in the signer and aggregator state machines #665
    • Worked on testing Mithril with a mainnet Cardano network #777
    • Worked on fixing bugs with the Docker client image:
      • Fixed a bug that made the Docker client container crash at startup #769
      • Fixed a bug that prevented the restoration of a snapshot with a Docker client #791
      • Worked on testing the Docker client in the Mithril Client multi-platform test workflow #794
    ]]>
    + + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
    + + <![CDATA[Consensus Team Update]]> + 2023-03-08-consensus + + 2023-03-08T00:00:00.000Z + + High level summary

    The Consensus team continued working on refactoring and improving the UTxO-HD +prototype, and introducing improvements to the lmdb related packages. In +particular we identified an opportunity to gain performance by handling locks in +a more optimal way.

    On the Genesis front, we sketched a mitigation for an issue that PNSol and +Researchers caught. We also came op with a road map for not only testing the +Genesis prototypes, but also for enriching the tests we already have.

    Regarding technical debt, next to some minor improvements, we created +component-level micro-benchmarks for adding transactions to the mempool. The +results of these benchmarks will be published in the ouroboros-consensus web +page.

    We also finished moving the Consensus documentation to the ouroboros-consensus +repository, released ouroboros-consensus 0.3.0.0, and reduced the time +GitHub actions take in ouroboros-network.

    Workstreams

    UTxO HD Prototype

    We continued working on refactoring and improving the UTxO-HD prototype. As a +result of the first round of sytem-level benchmarks, we identified an +opportunity to optimise the way we handle locks to improve performance +(#4393).

    Also, we introduced several improvements to the lmdb related packages:

    Genesis

    We sketched out a mitigation of the issue that PNSol and Researchers caught in +the Genesis design.

    We came up with a road map for testing the Genesis prototypes, including early +milestones that are applicable to today's master branch, ie tests that are +useful before Genesis, and that will be nicely enriched when we do add Genesis.

    We developed the aforementioned tests, specifically a QuickCheck generator for +the Honest leader schedule and one as-aggressive-as-possible Adversarial +leader schedule that together satisfy the Praos properties that the Consensus +design takes as invariants.

    We investigated why the improved ChainDB queueing implementation behaves +differently in the baseline compared to the prototype, and we are close to +having a full picture of how the Consensus components interact during bulk sync.

    Technical debt

    We created component-level micro-benchmarks for adding transactions +to the mempool. We plan on extending this to more mempool actions and different +types of blocks. We store the benchmark data to make it available +to the GitHub action that publishes the benchmarks results.

    Other minor improvements include:

    • Removal of Test.Util.Classify in favour of Test.StateMachine.Labelling.
    • Addition of -Wunused-packages to the default ghc-options for Consensus +packages.

    Fostering collaboration

    We finished moving the Consensus documentation from +ouroboros-network to ouroboros-consensus, in preparation for +migrating the code to the latter repository.

    Support

    We released ouroboros-consensus 0.3.0.0.

    We reduced the load in the ouroboros-network GitHub actions, +thereby reducing the time CI jobs take.

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2023-03-08-node-cli-api + + 2023-03-08T00:00:00.000Z + + 2023-03-08 - 2023-03-21

    High level summary

    General bug fixes and some refactoring

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[Performance & tracing update]]> + 2023-03-08-performance-and-tracing + + 2023-03-08T00:00:00.000Z + +
  • Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.
  • New tracing: Backwards compatibility with legacy tracer nomenclature is being implemented to smoothe the transition for end users.
  • Analysis pipeline: A major refinement of benchmarking metrics has been realized, along with a structural improvementents regarding metrics denomination.
  • Open Sourcing: Work on going live with our benchmarking data has begun, as well as creating an API demo and documentation.
  • Nomad backend: The backend was adapted to a major refactoring in workbench and is being equipped with a nomad-exec based task driver.
  • Performance

    1.35.6 release

    Benchmarking the second release candidate for 1.35.6 could again attest to a perfectly clean bill of health.

    Analysis pipeline

    Our analysis pipeline has seen an introduction of additional metrics, especially when focusing on the block producing node. They allow us to better +differentiate the timing of ledger ticking and mempool snapshotting in the forging loop - a feature that promises much deeper insight into UTxO-HD performance. +Additionally, a restructuring of metrics names has been undertaken along with improvements in their data dictionary; a measure that will make benchmarking +data more easily accessible.

    Open Sourcing

    As a prerequisite for going live with our benchmarking data, we're currently working on consolidation of existing analyses, such as to provide a common foundation when accessing them externally. Additionally, we've begun working on a small visualization demo and interactive API documentation. Those will enable +third parties to make use of that data much more easily, by having reliable guidelines and a working example.

    Tracing

    The new tracing system is being outfitted with a comprehensive mapping of its structure to the legacy tracer nomenclature. This feature will make +the switch to the new system as smooth as possible for end users, allowing them to gradually adapt their tooling without breaking any functionality in the process.

    Infrastructure

    Nomad backend

    The Nomad backend was adapted to the latest major refactoring in workbench. Work was done on making stateful Nomad clients more autonomous, which will greatly facilitate any automation building on that backend. A task driver based on nomad-exec is currently being implemented.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    + + <![CDATA[Crypto Team Update]]> + 2023-03-03-crypto + + 2023-03-03T00:00:00.000Z + + High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.
    • cardano-base: BLS branch is now ready for review. We are workign forward its merge.
    • KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.
    • Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs

    Low level summary

    Mithril

    • Bumped to version 0.2.0 the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using mlock.
    • Opened PR#783 to update dependency
    • Improved testing for batch opening of mtree, PR#773
    • Improved testing for batch verification of STM sigs PR#774
    • RFP for crypto audit almost ready.

    cardano-base

    • BLS12-381 branch finally ready for review PR#266

    KES agent

    Team off for one week. Other progress:

    • Learning about raw direct-bearer abstraction. An interface for sockets in consensus.
    • use that for direct ser/deser
    • written those syntaxes for ouroboros (coming PR)
    • the kes agent will depend on that.

    Sidechains

    Progress with familiarisation of Halo2 library to write circuits.

    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Goedel Team Update]]> + 2023-03-03-goedel + + 2023-03-03T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers and one +technical report, improving the deltaQ tutorial, consulting on +performance design, and the Djed paper has been accepted for +publication.

    Details

    • Preparing draft of DeltaQSD algebra paper for FORTE 2023

    • Extending the technical report on which the above paper is based

    • Consulting with an external company on performance engineering of Plutus contracts

    • Planning improvements and collecting material for the deltaQ +tutorial based on experience with systems that manage risk at +multiple timescales

    • Preparing sections on the communication language and idempontency +laws for draft paper about verifying design refinements for +distributed system design

    • Studying Cardano chain sync protocol

    • "Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin +Protocol" has been accepted for publication at IEEE ICBC 2023

    ]]>
    + + James Chapman + https://github.com/jmchapman + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-03-03-hydra + + 2023-03-03T00:00:00.000Z + + High-level summary

    This week, the Hydra team released version +0.9.0 - a version +of the hydra-node with fully specified behavior of on-chain scripts and +off-chain head-logic, decreased costs for opening/closing a Head and scalable +contestation deadline semantics. Check out the full release notes for details.

    Furthermore, they published the monthly +report of the Hydra project +and conducted a review meeting with an increasingly wider audience. The team +plans to extend invitations through the new Hydra +#announcements discord channel for the next +months, stay tuned!

    What did the team achieve this week

    • Monthly review meeting with report published on website
    • Fixed smoke tests #726
    • Reduced the cost of opening/closing a Head (error codes #748 + head reference script #701)
    • Released version 0.9.0
    • Conducted a first experiment on mainnet compatibility #713
    • New discord category with #announcements channel
    • Received a demo about the Hydra for Voting project
    • Lightning talk on mutation-based testing (to be shared)
    • New themes view in on our roadmap and some rearranging as we align it with high-level objectives
    • Clarified things with researchers, but mostly identified action items for them

    What are the goals of next week

    • Redraw transaction graphs and address TODOs specification
    • Run hydraw with 0.9.0 on preprod
    • Make smoke tests on mainnet possible
    • Groom the explorer item
    • Unblock the auctions projecth with commit from script a solution
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Ledger Team Update]]> + 2023-03-03-ledger + + 2023-03-03T00:00:00.000Z + + High level summary

    We have focused the last two weeks on CIP-1694, integration of the last several months of ledger +work into consensus and node, and testing infrastrutcture that we will use in the conway ledger era.

    Low level summary

    Conway rules

    We made a major update to the conway era so that the implementation is now in sync with the spec +with respect to the ratification and enactment logic.

    See the notes in pull-3291 for more details.

    Constraint based generators

    This week we hit a major milestone in our efforts to build out better property based testing +support for the main ledger properties. +The new constraint based generators can now generate full ledger states with what is probably +very close to the real constraints (if anything, it is under constrained). +Next we will work on generating a transaction in the context of a ledger state, which would allow +us to actually start using these generators for real tests.

    See pull-3219.

    Preparing a release, now with proper versioning

    After quite some time, we are ready to release a version of ledger that will work with a new +version of consensus, using CHaPs.

    See pull-3308.

    Technical debt

    • We cleaned up the redeemer serialization code (to prevent future mistakes). See pull-3269.
    • We added a note to the Alonzo spec, specifying that the transaction inputs are +lexicographically ordered in the Plutus script context. See pull-3306.
    • We fixed a problem with the address deserialiazation +(we mistakenly fixed a bug in the Babbage era which cannot be fixed until Conway). +See pull-3307.
    • We fixed a problem with our nix build. See pull-3311.
    • We fixed a problem with our NoThunks tests. See pull-3310.
    • We improved our nightly tests. See pull-3316.
    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Network Team Update]]> + 2023-03-02-network + + 2023-03-02T00:00:00.000Z + + High level summary

    In the current sprint the networking team focused on fixing bugs and pushing +forward implementation of eclipse evasion. We also found a bug in our +simulation testing setup (in integration of test node). We also overviewed the +work on extending handshake protocol which is delivered by Galois Inc.

    We published ouroboros-network-0.4.0.1 and +ouroboros-network-protocols-0.3.0.0 to CHaP.

    We also fixed a bug in cardano-node which results in not being able to +configure inbound connection limits, see PR #4902.

    Together with Karl Knutsson (CF) we realised an issue in cardano-cli: it's +validation of DNS names, IP address & ports when registering a stake pool +should be more strict to protect against common mistakes which we identified on +the chain. See issue #4929.

    Detailed work log

    In PR #4385 we fixed two bugs in peer state actions. First one results in +a busy loop if demotion from hot to warm times outs. This busy loop is +eventually exited when mux exits (we reported this in our previous report). +This fix made it to 1.35.6 release as well.

    In addition the PR #4385 also fixes another bug which results in hot -> warm +-> hot demotion / promotion busy loop.

    The PR #4385 also fixed a bug in a node only used in simulation which +resulted in not using chain-sync or block-fetch mini-protocols. In the +review process, we realised that the header-body split in the simulated node +requires further work (see PR #4419, which is under review).

    The PR #4385 also extend our generators, which together with the above fix, +cover the hot -> warm -> hot demotion / promotion busy loop.

    In PR #4419 we introduce a ChainDB for our simulation node, which plays +similar role to ChainDB in the ouroboros-consensus: a persistent (across +simulated restarts) store of blocks which does chain selection. This ensures +that the simulated node is using block-fetch to download blocks announced by +chain-sync mini-protocol.

    We also made progress with reviewing PR #4019 - peer sharing.

    We also fixed issue #4370 - a connection manager test failure, see PR #4384.

    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-02-24-hydra + + 2023-02-24T00:00:00.000Z + + High-level summary

    This week, the Hydra team continue closing many gaps and aligning the +implementation with the specification. More over, they have groomed a plan to +make Hydra Mainnet compatible. Also, they continue moving forward with the +internal auditing and have published some auditing guidelines to receive +contributions from the community.

    What did the team achieve this week

    • Completed #452 (what is +remaining in there)
    • Aligned the Head protocol logic implementation with the specification
    • Completed full minting policy implementation and spec +#720
    • Clarified message authentication with researchers
    • Groomed what is left to do for Mainnet compatibility +#713 and drafted a +0.10.0 version
    • Added a tutorial by @perturbing to the +website LINK
    • Published auditing guidelines +LINK
    • Made hydra-node work for macos +#746 and added support +for building on aarch64 +#673
    • Met with a potential customer of Hydra for Payments

    What are the goals of next week

    • Have the monthly review meeting incl. the report
    • Have smoke tests fixed and running regularly
    • Release 0.9.0 with updated scripts
    • Redraw transaction graphs for specification
    ]]>
    + + Franco Testagrossa + https://github.com/ffakenz + + +
    + + <![CDATA[Mithril Team Update]]> + 2023-02-23-mithril + + 2023-02-23T00:00:00.000Z + + High level overview

    The Mithril team released a new 2306.0 distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes’ CLI that allows generating and signing an era marker’s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.

    Low level overview

    • Released the new distribution 2306.0
    • Completed the epic that implements signer versions deployment monitoring #718:
      • Completed the implementation an event producer/consumer via channel #738
      • Completed the creation of a database and its configuration to save the events on the consumer side #740
      • Completed the creation of events and sending them on the channel on the producer side #741
      • Completed the creation of the signer registration event #742
      • Completed the creation a query to extract the node versions stakes distribution #743
    • Worked on the epic that implements eras behavior switch #707:
      • Completed the loading of era reader adapters from config in the signer and the aggregator #732
      • Completed the implementation of an era cli command in the aggregator #755
      • Completed the implementation of a dynamic matrix of cases in CI end to end tests #760
    • Fixed some bugs:
      • Fixed the unsupported unixepoch() function #757
      • Fixed the problem that prevented some signers from signing on the testing-preview network #730
      • Update SQLite version to 3.40 in aggregator infrastructure #765
    ]]>
    + + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
    + + <![CDATA[Performance & tracing update]]> + 2023-02-23-performance-and-tracing + + 2023-02-23T00:00:00.000Z + +
  • SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.
  • Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.
  • UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.
  • New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.
  • Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.
  • Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.
  • Performance

    SECP

    1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.
    2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.
    3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking.

    UTxO-HD

    1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.
    2. We're currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.

    1.35.6 release

    Benchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.

    Tracing

    Work on the new tracing system's introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.

    Infrastructure

    Nomad backend

    1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.
    2. Locality assumptions were removed and job monitoring was refactored.
    3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.
    4. We're currently evaluating different options for genesis distribution in said cluster.

    NixOps backend

    The NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    + + <![CDATA[Consensus Team Update]]> + 2023-02-22-consensus + + 2023-02-22T00:00:00.000Z + + High level summary

    During the past two weeks we got the results from the system level benchmarks +for UTxO HD. They showed a substantial performance regression, so we spent some +time analyzing the results. We found out the frequency at which ledger snapshots +were taken was too high, so we requested the benchmarking team a new run with a +more realistic snapshotting policy. We continued refactoring and improving the +prototype, and we released UTxO-HD related packages to CHaP.

    We met with IOG researchers and networking specialists to discuss the Genesis +design, which was well received. We continued working on testing and +benchmarking different Genesis prototypes.

    We are also working on solving a test failure related to iterators. This work +derived in several improvements such as better documentation, a framework for +writing unit (and regression) tests, and the possibility of debugging +QuickCheck counter examples in the REPL.

    Finally, we released ouroboros-consensus 0.2.0.0 and +ouroboros-consensus-cardano 0.3.0.0 to CHaP

    Workstreams

    UTxO HD Prototype

    We got the results of the first system level benchmarks for UTxO HD. They seemed +to indicate a significant regression in performance. After looking into the +benchmark logs we found that the benchmark runs took ledger state snapshots too +often, due to the default snapshotting policy depending on k, and k being so +small in the benchmark runs. Therefore, the next step is to re-run the +benchmarks with a snapshotting policy that more closely resembles the one from +mainnet.

    At the same time, we continued refactoring and cleaning up the prototype.

    Also, we prepared the anti-diff packages (fingertree-rm, diff-containers, +simple-semigroupoids) and the lmdb related packages (cardano-lmdb and +cardano-lmdb-simple) to CHaP.

    Genesis

    The Genesis design was presented to the IOG researchers and Peter Thompson from +NSol. It was well received. They pointed out one blindspot, but we think it'll +be relatively simple to mitigate.

    In parallel, we continued developing test and benchmarks for the Genesis +prototypes. I particular we tested and implemented a potential fix for +increased ChainDB dequeue timings, which partly +behaved as we expected, but still needs further investigation. Also we obtained +new benchmarking data for the prototype.

    Technical debt

    Related to #4183, we developed a DSL for specifying +ChainDB unit tests. This will allow us to better understand the +counter-examples returned by QuickCheck tests, and to write regression +tests for them. Also, we added a module to enable +QuickCheck counter-examples to be run on the REPL, allowing for faster debugging +feedback. Also, we improved the documentation related to followers +(#4372).

    We are also working on a design for optimizing the way we handle blocks from the +future.

    Support

    We released ouroboros-consensus 0.2.0.0 and ouroboros-consensus-cardano +0.3.0.0 to CHaP. Remember that we decided to split the packages related to +Consensus into two bundles, one with the core functionality, Cardano-agnostic +code, and another bundle with instantiations specific to Cardano.

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2023-02-22-node-cli-api + + 2023-02-22T00:00:00.000Z + + 2023-02-22 - 2023-03-07

    High level summary

    General bug fixes

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    Documentation

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[DB-sync Team Update]]> + 2023-02-21-db-sync + + 2023-02-21T00:00:00.000Z + + High level summary

    The db-sync team created a new tag 13.1.0.2 which is ready to release. +We also investigated and had the first working UTxO-HD integration which is one +of the potential future risks for db-sync.

    Low level summary

    • Integrated the UTxO-HD feauture branch in kderme/utxo-hd-1. This doesn't +use the full on disk storage but keeps things in memory and the plan is to keep +it this way for the first iteration. The integration still has some performance +issues which we investigate
    • Created tag 13.1.0.2 which upgrades the dependencies of db-sync
    • Fixed an issue related to errors appearing in SMASH +#1353
    • Continued with ghc-9.2 integration +#1339
    • Worked on an new fixing procedure for +#1348. +We try to make these procedures work also on older schema version, without the +need to migrate to newer schema, which can be very useful for fixing existing +snapshots.
    ]]>
    + + Kostas Dermentzis + https://github.com/kderme + + +
    + + <![CDATA[Crypto Team Update]]> + 2023-02-17-crypto + + 2023-02-17T00:00:00.000Z + + High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril's core library (decided to add audit of KES). Design proposal for viable registration.
    • cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: started implementation in rust.

    Low level summary

    Mithril

    • Transmute helpers merged PR#722
    • We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope.
    • We are working in a modification of KES to require caller to allocate the secret key buffer.
    • Proposed a solution for signer registration of Mithril.

    cardano-base

    • Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 proof.
      • Results are promising, with using only 23% of the execution budget to verify a realistic proof.
      • Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril.
    • KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this.
    • Conversion finally merged PR#344.

    KES agent

    • Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation
    • Figuring out how to go from fake file descriptor to write the raw bytes

    MuSig2

    • Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental.
    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Goedel Team Update]]> + 2023-02-17-goedel + + 2023-02-17T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers and one +technical report, distributivity properties of deltaQ, and consulting +on performance design with the Marlowe team.

    Details

    • Processing reviews on performance engineering paper and planning +paper revisions accordingly

    • Investigating distributivity properties of DeltaQ

    • Preparing sections on the thorn calculus and idempotency laws for +draft paper about verifying design refinements for distributed +system design

    • Consulting on performance design with Marlowe team

    ]]>
    + + James Chapman + https://github.com/jmchapman + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-02-17-hydra + + 2023-02-17T00:00:00.000Z + + High-level summary

    This week, the Hydra team completed work on dealing differently with contests +during the contestation period. These will now always push out the deadline and +hence contestation periods are easier to pick (depending on the network a Head +runs on). Furthermore, they added an important acceptance test and completed +internal refactoring of the protocol logic making future changes easier.

    What did the team achieve this week

    • Push contestation deadline on each contest #716
    • Wrote an acceptance (property) test can always close/fanout when collect is successful
    • Internal refactoring of our HeadLogic
    • Groomed remaining things from #452 into dedicated features

    What are the goals of next week

    • Complete full minting policy #720
    • Release 0.9.0 with updated scripts
    • Plan mainnet milestone and a 0.10.0 version
    • Redraw transaction graphs for specification (upon feedback)
    • Have smoke tests fixed and running regularly
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Ledger Team Update]]> + 2023-02-17-ledger + + 2023-02-17T00:00:00.000Z + + High level summary

    This past two weeks saw many months worth of ledger changes integrated with the cardano-base +and ouroboros-network repositories. +The vast majority of the effort involved all the changes to the ledger serialization libraries +(and the interplay with cardano-base) which now support proper versioning. +Supporting the conway ledger era, and in particular allowing the ledger state to transition +to a whole new system of governance, also played a noticeable part in the integration.

    Besides the integration work, the team continues to address technical debt, improve the +documentation, make our testing infrastructure better (such as experimenting with better +nightly tests), and formally specifying more parts of CIP-1694.

    Lower level summary

    Integration work

    Below is all the integration work completed, which will enable a release to node from +the current ledger master. Many thanks to +Alexey for this colossal undertaking!

    Technical debt

    Starting in major protocol version 9, zero-valued multi-assets will no longer be permitted +in the CBOR specification. See pull-3241.

    We now have our .cabal files being checked for a consistent formatting given by +cabal format in our CI. See pull-3286.

    We are still experimenting with better nightly tests for our long running +property based tests. See pull-3276 and pull-3296.

    Small documentation improvements

    The hand proofs of the preservation ADA property have been added back to the +Shelley ledger specification. See pull-3295.

    We have clarified how the script integrity hash is computed in the CDDL description. +See pull-3290.

    Specifying CIP-1694

    Our new formal specifications backed by Agda have seen a lot of progress! +Upgrading to Agda 2.6.3 fixed our main build infrastructure problems, +and we no longer have to rely on our custom fork. See pull-50.

    Our progress on formally specifying CIP-1694 can be followed here:

    Constraint based testing

    We are still actively working on our new constraint based property testing framework. +We have nearly all of the constraints for an entire ledger state +hooked into generators, and tests that the generators do indeed obey the constraints. +The variable count in the constraints is over 100! +There is still much work to do on shrinking, making the generators faster, +and writing actual property tests for the ledger, but the approach still seems viable and +we are hopeful that it could replace our trace generators. +The WIP can be followed here: pull-3219.

    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Network Team Update]]> + 2023-02-17-network + + 2023-02-17T00:00:00.000Z + + High level summary

    Recently QA found a bug in P2P code, which results in busy loops. We added one +fix to 1.35.6 release, another one will likely be part of next release. The +first one is already included in ouroboros-network-0.3.0.1 release. These +bugs could only affect nodes which are out of sync and thus should not impose +risk on well maintained nodes on mainnet. We also advertise to deploy at most +one of the relays as a P2P node, which shields from possible consequences.

    We recently finished design phase of eclipse evasion and we started +implementing it (see issue #3886 for progress).

    Galois finished implementing Handshake extension which will allow to query +network protocol versions (see pr #4256).

    We also recently released a newer set of network packages to be integrated with +cardano-node master branch, this includes:

    * monoidal-synchronisation-0.1.0.2
    * cardano-client-0.1.0.2
    * network-mux-0.3.0.0
    * ouroboros-network-api-0.1.0.0
    * ouroboros-network-protocols-0.2.0.0
    * ouroboros-network-testing-0.2.0.1
    * ouroboros-network-mock-0.1.0.0
    * ouroboros-network-framework-0.3.0.0
    * ouroboros-network-0.4.0.0 (it doesn't not yet include the fix we included
    in `0.3.0.1`)
    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-02-10-hydra + + 2023-02-10T00:00:00.000Z + + High-level summary

    This week, the Hydra team closed several gaps to align the Hydra scripts +implementation further with the specification. This also resulted in a slight +improvement on Hydra script size and costs. They consequently analysed the +asymptotic complexity of collect and fanout and how they relate. Also plutus-tx +profiling toolchain was evaluated and set up for future improvements on Hydra +on-chain performance. In discussions with researchers and internal auditors, +they also uncovered next steps on further securing the Head protocl using a +"full" minting policy.

    What did the team achieve this week

    • Closed several gaps to align script implementation with specification #452
      • Allow contest only once #680
      • Optimization through head output at index 0 #700
      • Value is preserved #702 + optimized exact value equality #709
    • Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to #721
    • Fixed our tooling around the Haskell language server
    • Discussed full minting policy with researchers
    • Started grooming “what we need for mainnet” on this idea ticket and milestone

    What are the goals of next week

    • Implement full minting policy
    • All remaining protocol discrepancies are implemented or groomed as individual features
    • Ideally release 0.9.0 with updated scripts
    • Discuss what we need for mainnet (milestone planning)
    • Redraw transaction graphs for specification (upon feedback)
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Mithril Team Update]]> + 2023-02-09-mithril + + 2023-02-09T00:00:00.000Z + + High level overview

    The Mithril team released a new 2304.1 distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.

    Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version 1.35.5 on their devnet and infrastructure.

    Low level overview

    • Released the new distribution 2304.1
    • Fixed a bug that prevented some signers to sign with 2304.0-prerelease #716
    • Completed the implementation of an EraChecker that checks if an era is active #708
    • Completed the implementation of an EraReader that gathers era activation data #709
    • Completed the implementation of an EraReader adapter with on chain transaction as source #710
    • Completed the relational design of the aggregator store #476
    • Completed adding a new SPO on the testing-preview network #729
    • Completed the upgrade of the Cardano node to 1.35.5 #725
    • Fixed flakiness in the CI #734
    ]]>
    + + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
    + + <![CDATA[Consensus Team Update]]> + 2023-02-08-consensus + + 2023-02-08T00:00:00.000Z + + High level summary

    We continue refactoring the UTxO HD prototype while we wait for the system level +benchmarks. We have created a new repository that contains the anti-diff +packages used in this prototype.

    On the Genesis front, we are preparing another meeting with the researchers to +audit the implementation design, and we continued working on basic tests and +simplifications.

    During the past two weeks we also introduced two new tools. One for dumping CBOR +encoded blocks to JSON, and another to serve a local immutable DB.

    Workstreams

    UTxO HD Prototype

    We are in the process of refactoring the UTxO HD prototype, while we wait for +the system level benchmarks to confirm if the performance of the prototype is +satisfactory.

    We also set up a repository for the anti-diff package, which +required us to refactor the code, write documentation, and prepare a release to +CHaP.

    Genesis

    We worked on basic tests for the Limit on Eagerness property of +Genesis. We also introduced further robustness and simplifications in the +Genesis Density governor. Finally, we developed a presentation to engage again +with the researchers on our Genesis implementation design.

    Technical debt

    Fostering collaboration

    We are in the process of polishing the ouroboros-consensus +documentation site, which we will use a the entry point for Consensus related +documentation. The first version will not be complete, but we plan on +systematically improving it.

    Support

    We added a tool to ouroboros-consensus-cardano-tools which allows +to dump the Chain DB blocks or any given CBOR encoded blocks as JSON.

    We also added another tool that serves an existing immutable DB via +BlockFetch and ChainSync. This tool can help in assisting our local benchmarking +efforts (for instance Genesis' ChainSync jumping prototype).

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2023-02-08-node-cli-api + + 2023-02-08T00:00:00.000Z + + 2023-02-08 - 2023-02-21

    High level summary

    More maintenance and resolving raised issues.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[Performance & tracing update]]> + 2023-02-08-performance-and-tracing + + 2023-02-08T00:00:00.000Z + + High level summary
    1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we're currently running what we consider the final benchmark, to validate the underlying assumptions.
    2. Release benchmarking: we've performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.
    3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.
    4. New tracing: before going live, we're performing the documentation update, as well as reworking the end user migration guide.
    5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.
    6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.
    7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.

    Performance

    We are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:

    • we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,
    • after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,
    • finally, we're redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.

    In addition, we started benchmarks of the 1.35.6 release.

    Tracing

    A rework of the new tracing system's internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.

    Specifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.

    Infrastructure

    On the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we'll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.

    The work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.

    The Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops.

    ]]>
    + + Serge Kosyrev + https://github.com/deepfire + + +
    + + <![CDATA[Crypto Team Update]]> + 2023-02-03-crypto + + 2023-02-03T00:00:00.000Z + + High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril.
    • cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.

    Low level summary

    Mithril

    • Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing PR#722
    • We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.
    • We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.

    cardano-base

    • There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381.
    • The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.
    • The update VRF PR#341 is finally merged, and we are ready to merge PR#344, which implements conversion functions from the compatible types between Praos and PraosBatchCompat.

    KES agent

    • Use of snockets to send the data directly from the socket to secure memory.
    • We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives
    • Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.

    MuSig2

    The GitHub Action linelint is used to check the files.

    • A new job for linting is added to the file /.github/workflows/ci.yml. The rules are configured in the file /.github/workflows/.linelint.yml. Some files from the configuration of libsecp were failing, so in the rules in .linelint.yml the failing files are denoted to be ignored by the linter.
    • Folders are reorganized. We created a folder to handle the example. This folder includes the examplemusig2.c, a distinct config.h, and helper.c. The example is enhanced by implementing the functions in the helper for the configuration given in config.h. The number of messages is different than the tests. The example is made more generic to run with a loop.
    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Goedel Team Update]]> + 2023-02-03-goedel + + 2023-02-03T00:00:00.000Z + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been preparing several papers for peer review +and knowledge sharing and consulting within IO and the community.

    Details

    • R&D Seminar on experience participating in a member based organisation
    • Full day tutorial on performance engineering presented at HiPEAC +2023 conference
    • Finished preparing and submitted a paper on performance engineering +to an ACM workshop
    • Preparing a draft paper for future submission about verifying design +refinements for distributed system design
    • Consulting on performance design of other IO projects
    ]]>
    + + James Chapman + https://github.com/jmchapman + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-02-03-hydra + + 2023-02-03T00:00:00.000Z + + High-level summary

    This week, the Hydra team completed the Hydra specification with a section about +rollbacks and updated graphs +(#448). In a next step, +the specification will be made more approachable and an open standard. They +improved their hydra-cluster tool to launch a local --devnet sandbox +environment and continued aligning the hydra-plutus scripts with the +specification by hardening the checks on close and contest transactions.

    What did the team achieve this week

    • Completed the specification with a section about rollbacks and updated graphs +#448, with a follow-up on making it more approachable and an open standard.
    • Continued spec review with internal auditor and incorporated changes.
    • Talked to TxPipe about how Demeter and Hydra could work together
    • The hydra-cluster executable can be used to launch a local --devnet sandbox environment.
    • Reproduced the “head being stuck on network outage” bug
      • relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed.
    • Progressed with higher velocity by addressing more and more gaps #677

    What are the goals of next week

    • Upstream our JSON instances to the ledger
    • Close all transaction security related on-chain gaps
    • Ideally release 0.9.0 with updated scripts
    • Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Ledger Team Update]]> + 2023-02-02-ledger + + 2023-02-02T00:00:00.000Z + + High level summary

    Much of the work the past two weeks involved integration efforts, +cleaning up and debugging some serialization issues, +adding tests, and work on large projects that are still ongoing. +We also released a CIP this week that aims to make the ledger +a registered CIP category.

    Lower level summary

    Ledger evolution CIP

    We published a +CIP +that will make the Cardano ledger a registered category of the CIP process.

    Serialization issues

    We had previously thought that we had found a serialization problem with the redeemers, +but it turned out to just be particularly confusing code. +We have now clarified the issue for the future.

    See pull-3263, pull-3269, and pull-3268.

    Starting in protocol version 9, we will no longer accept duplicate keys in CBOR maps.

    See pull-3277.

    New tests

    We added a new property test suite for some of our custom containers.

    See pull-3270.

    Progress on a better cost model serialization situation.

    We are still working our way through issue-2902. +Towards this end, we are now properly gating the new flexible encoders +until version 9.

    See pull-3274.

    Nightly tests

    We are still experimenting with moving more CI actions to GitHub actions.

    See pull-3276.

    Constraint based generators

    We continue to add to our proof of concept for constraint based generators. +See the previous ledger update for more information about this project.

    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-01-27-hydra + + 2023-01-27T00:00:00.000Z + + High-level summary

    This week, the Hydra team had a monthly review meeting with their stakeholders, +contributors and interested people from the community. The monthly repot for +January 2023 is a digest +of the things presented and also includes a summary of the meeting. The Hydra +specification was getting discussed and the team is incorporating suggested +changes of reviewers. Last but not least, they compute and publish script +information on every PR and also on the +website +now.

    What did the team achieve this week

    • Had the monthly review meeting with a broader audience
    • Published the monthly report for January 2023
    • Reviewed the spec and discussed individual aborts with researchers
    • Compute and publish script information along benchmarks on every PR and website

    What are the goals of next week

    • Add rollback section to Hydra spec, update pictures and publish it as part of repository
    • Discuss bigger spec findings (full minting policy, individual aborts, split fanout) as change/pull requests on the spec in the repository.
    • Groom & plan actions required for a maintainable Head explorer + break down align gaps feature.
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Mithril Team Update]]> + 2023-01-26-mithril + + 2023-01-26T00:00:00.000Z + + High level overview

    The Mithril team released a new 2302.0 distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.

    Finally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.

    Low level overview

    • Released the new distribution 2302.0
    • Implemented a backward/forward compatibility mechanism for API messages #688:
      • Implement the mechanism for the signer registration #689
      • Implement the mechanism for the signature registration #693
      • Implement the mechanism for epoch settings #695
      • Implement the mechanism for certificate pending #696
      • Implement the mechanism for certificate #697
      • Implement the mechanism for snapshots list #698
      • Implement the mechanism for snapshot #699
      • Update enforcement of API version with Semver #705
    • Completed the PoC implementation of backward compatibility with protobuf #677
    • Completed the PoC implementation of backward compatibility with avro #678
    • Completed the PoC to Read/Write transaction on chain for Era activations #672
    • Completed the upgrade Cardano devnet to 1.35.4 #523
    ]]>
    + + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
    + + <![CDATA[Consensus Team Update]]> + 2023-01-25-consensus + + 2023-01-25T00:00:00.000Z + + High level summary

    During the past two weeks, the consensus team finished the testing activities +around the UTxO-HD prototype. This is a very important milestone which will +enable us to run system-level tests and benchmarks, as well as start refactoring +and cleaning the prototype. Regarding our Genesis workstream, we elaborated a +roadmap that gives an indication of the remaining work. We also continued our +work on benchmarking chain-sync-jumping. We also continued working on improving +the way we handle blocks from the future, and advancing the integration of the +new VRF and KES crypto.

    Workstreams

    UTxO HD Prototype

    As the prototype is nearing its completion, it was important to have enough +confidence that we will be able to move additional parts of the ledger state +onto disk. We worked together with the Ledger team to elaborate a +sketch on how the UTxO-HD design would accommodate the migration of +additional data from memory to disk. This gave us enough confidence that the +current architecture will be extensible in the future.

    On the testing front, we added property-based tests for the UTxO-HD +type classes.

    We also enabled disabled components, and addressed several +technical debt issues:

    • Implement splitSized anti-diff split (#4269), and integrate it +into consensus (#4273).
    • Renaming of peekVal to peekMDBVal (#7).

    We ran ad-hoc benchmarks for syncing a chain from scratch and replaying. We +found a race condition in the LMDB backing store, which we fixed. +After the fix we were able to successfully run these benchmarks. The results +were published by this pull request.

    We used our db-analyser tool to benchmark the cost of reading keys and +flushing values to disk. The following plot shows the duration of these disk +operation in relation to the main ledger operations, where we can see that the +cost of the former are comparatively low. The spike at the beginning of the +graph is when, at the start of the Shelley era, the entire UTxO set is flushed +to disk.

    UTxO-HD read and flush benchmarks

    After months of hard work adding tests for the prototype, we are ready to run +end-to-end tests on the node, and system level benchmarks. This signals a very +important milestone for the UTxO-HD workstream 🎉.

    Genesis

    We elaborated a high-level decomposition of the remaining +work for Genesis. We also continued benchmarking the chain-sync-jumping +happy-path.

    Technical debt

    We continued working on improving the way we handle blocks from the future.

    Support

    We completed the mapping of Crypto to HeaderCrypto and body Crypto. +HeaderCrypto is moved to cardano-protocol-tpraos. We created a draft pull +request to facilitate compiling consensus.

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2023-01-25-node-cli-api + + 2023-01-25T00:00:00.000Z + + 2023-01-25 - 2023-02-07

    High level summary

    General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the cardano-cli query stake-snapshot command.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[Crypto Team Update]]> + 2023-01-20-crypto + + 2023-01-20T00:00:00.000Z + + High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We explored whether some uses of transmute could be removed, but it resulted in considerable regression.
    • cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision.
    • KES agent: An inconsistency between contra-tracer available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the contra-tracer used by consensus.

    Low level summary

    Mithril

    • We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average PR#675. We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing.
    • We are writing a RFP for the audit of the core library.

    cardano-base

    • A problem with Nix is blocking merge of PR#341
    • Plutus team ran benchmarks of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution.
    • Team is fully digesting the Plonk paper.
    • There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used.

    KES agent

    • A little unforseen delay has been caused by a mismatch in the use of contra-tracer. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are doing the change, but still the CI is not happy.
    • The same was needed for the KES agents prerequisites PR#317.
    • We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency
    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-01-20-hydra + + 2023-01-20T00:00:00.000Z + + High-level summary

    This week, the Hydra team has been focusing on the write-up of the Hydra HeadV1 +specification. Of which a first version has been aggregated and is currently +under review. They aligned the on-chain scripts of reimbursing funds on abort +like defined in the specification, improved the mutation test framework to have +more control when testing plutus scripts. The added HeadId in the API and the +TUI example client make hydra-node easier to use and a first experiment of a +Hydra Head explorer was showing the utility of this - see what Heads exist on +the preview network here.

    What did the team achieve this week

    • HeadId to API and display in the TUI #678
    • Experiment of creating a hydra explorer, first result hosted here
    • Improved mutation framework allowing to fail for the right reason #679
    • Correctly reimburse funds in abort (matching the spec) #670
    • Finished a first write-up of the Hydra HeadV1 spec: Read it on overleaf (Communication channels for feedback)

    What are the goals of next week

    • Monthly review meeting with a broader audience
    • Groom & plan actions required for a maintainable Head explorer
    • Break “align gaps” feature into smaller chunks (at least on- /off-chain) and groom it
    • Review the spec & discuss individual aborts with researchers (a bigger open question)
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Network Team Update]]> + 2023-01-20-network + + 2023-01-20T00:00:00.000Z + + High level summary

    We have been working towards cardano-node-1.35.5 release. QA & benchmarking +teams gave a green light for the release, and we made decent progress with some +CI problem which we encountered on the way (PR #4612). We are also working on +peer sharing, making improvements in our testing infrastructure, reducing +technical debt and making progress towards io-sim-1.0.0.0. Galois is making +progress on Handshake improvements.

    Low level summary

    Our diffusion simulation network now includes a mixed network of initiator +only and initiator and responder nodes. issue #4222

    We are now reviewing the peer sharing pull request.

    We are also reviewing pull request which introduces handshake query flag. PR #4256

    We fixed a bug in our network simulator. The bug was triggered when a node +died when performing a simultaneous TCP open (a corner case of a corner case!). PR #4265

    We also refactored Snocket interface and removed the bearer construction from +its methods. PR #4260

    We are working towards releasing io-sim-1.0.0.0 on Hackage, which includes +reviewing two PRs: PR #57 and PR #60 as well as writing an announcement +blog post.

    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + + +
    + + <![CDATA[SRE Team Update]]> + 2023-01-20-sre + + 2023-01-20T00:00:00.000Z + + High level summary

    The SRE team continues work on Cicero, Tullia, and Bitte, as well as providing +support for cardano-world.

    Lower level summary

    Cicero

    • Fixed various race conditions around transformers.
    • Brought our CI up to date.
    • Migrated to the Nomad exec driver with Nix support for many actions.
    • Moved Nix builds to the Nomad clients for much better cache locality.
    • Ongoing work on vastly improving the action matching and evaluation speed.

    Tullia

    • Made it easier to support cloning from a PR's fork
    • Update to latest std
    • Add workaround for cgroup issue: nomad#12877
    • github preset: add github.ci.remote and (read|get)Repository functions
    • Fix various issues around CUE handling

    Bitte

    • Upgrade to NixOS 22.11
    • Prototype usage of Colmena for deploys instead of deploy-rs
    • Finalized work on Equinix Metal support
    • Prototype better secrets management with ragenix instead of sops-nix
    • Improve CI and bring it up to date

    cardano-world

    • Fixd various OOM issues on preview and preprod
    • Rotated KES keys on preview and preprod
    • Optimize mainnet db-sync to cope with higher load
    • Fix an issue where PostgreSQL would fail after a reboot

    bitte-world

    • Updated to NixOS 22.11

    ci-world

    • Updated to NixOS 22.11
    • Added Equnix cluster
    • Improve caching of Nix builds
    ]]>
    + + Michael Fellinger + https://github.com/manveru + + +
    + + <![CDATA[Ledger Team Update]]> + 2023-01-19-ledger + + 2023-01-19T00:00:00.000Z + + High level summary

    The ledger team completed some preliminary ground work in preparation for CIP-1694 +(restructuring the ledger state), +fixed the PDF hosting problem (mostly the formal specs), +built out more of the new user-friendly ledger API, +finished a proof of concept for constraint-based generators for property tests +(with the hopes of being able to replace our trace generators one day), +and addressed technical debt.

    Lower level summary

    Restructuring the ledger state

    The existing governance structures will be replace in the conway ledger era, +as described in CIP-1694. +In particular, the ledger rules will be restructured as follows:

       BBODY
    |
    |-------------------------------|
    v v
    TICK LEDGERS
    | |
    |---------| |
    v v v
    RUPD ~NEWEPOCH~ ~LEDGER~
    | |
    |----------| |--------|-------------------|-----------|
    v v v v v
    ~EPOCH~ +ENACTMENT+ DELEGS UTXOW +TALLY+
    | | |
    |---------|------------| v |
    v v v DELPL v
    SNAP POOLREAP -UPEC- | UTXO
    |--------| |
    v v v
    POOL DELEG ~UTXOS~

    -..- Removed
    +..+ Added
    ~..~ Modified

    Moreover, the ledger state will also be restructured in accordance with the new rules. +In the conway code, we have now removed UPEC, added TALLY, and stubbed ENACTMENT. +We have also adapted all the data structures in the ledger state.

    See:

    PDF hosting

    We now build all of our PDFs using a GitHub action which is triggered by pushing a tag +with a specific form, cardano-ledger-spec-YYYY-MM-DD. +The action creates a GitHub release containing the PDFs. +The links in the main ledger README now point to the PDFs in the latest release.

    See:

    Powering the new ledger API

    We have now removed all the HasField instances from the protocol parameter data types, +and replaced them with lenses. +This is probably the last major restructuring that the ledger team will do on the code base +for the API for a while +(the Plutus tools team will be working on it next, see here). +We also added a new helpful function ensureMinCoinTxOut.

    See:

    Constraint-based generators

    Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks +which span several epochs, mimicking a real network. +These tests are, in theory, excellent for checking properties. +They are, however, very difficult to maintain and are not as random as we would like +(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We would like to switch to tests which instead generate a random ledger state representative +of not just an initial state, generate a single random valid block, and then test our properties. +The hope is that these will be much more random and easier to maintain.

    We have finished a proof of concept are encouraged that this approach could work!

    See:

    Technical debt

    • pull-3244 massive CI speedup
    • pull-3249 better types for fees in the protocol parameters
    • pull-3264 move our annotator code to the cardano-ledger-binary package where it belongs
    • pull-3239 move the Wdrls type to the Core module.
    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[DB-sync Team Update]]> + 2023-01-14-db-sync + + 2023-01-14T00:00:00.000Z + + High level summary

    After spending the last months on improving DBSync and releasing 13.1.0.0 the DBSync team focused +the last weeks on integrating upstream changes and tech debt. This includes integrating CHaP, the +new leger core and ghc-9.2.4

    Lower level summary

    • Integrate CHaP +#1331
    • Integrate new ledger core 0.1.1.1 and ghc-9.2 +#1332
    • Technical debt: Add code formatter fourmolu +#1334
    • Preparing and tracking Conway and UTxO integration
    ]]>
    + + Kostas Dermentzis + https://github.com/kderme + + +
    + + <![CDATA[Hydra Team Update]]> + 2023-01-13-hydra + + 2023-01-13T00:00:00.000Z + + High-level summary

    Since last weekly update before christmas, the Hydra team worked on the +technical specification, closed gaps in hydra-plutus scripts, made the unique +headId available to Hydra clients through the API, allow the hydra-node to +explicitly synchronize from genesis (if configured), and fixed smaller log and +build issues reported by new users.

    Besides this, a retrospective blog +post +was published by Matthias Benkort (CF) on Hydra, summarizing our progress made +in 2022 also an outlook where Hydra is headed for in 2023. Also, the team had +some first sessions on the voting project with Catalyst and the CF.

    A full digest monthly digest for December 2022 can be found on the hydra +website.

    What did the team achieve this week

    • Had some first sessions on the voting project with Catalyst and CF
    • Published retrospective blog +post +by Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also +an outlook where Hydra is headed for in 2023.
    • Worked on the LaTeX spec for HydraHeadV1, not final or published yet - latest +version in this repository.
    • Add unique headId to API and hence make it available to clients.
    • Allow hydra-node to explicitly synchronize from genesis using --start-chain-from 0.
    • Closed gaps in hydra-plutus scripts
      • bounded transaction validity (ADR21)
      • enforcing contract continuity via state token in output
    • Fixed JSON for some logs and smaller build issues reported by new users.

    What are the goals of next week

    • Reach out to have hydra-tutorial integrated.
    • Plan the next couple of months.
    • Complete checking reimbursing of commits in head validator.
    • Align plutus scripts to spec and simplify them (identified some simplifications)
    • Improve mutation framework to be sure we fail tests for the right reasons
    • Complete the spec except the open points (<5) and also discuss them with researchers.
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Node Release Team Update]]> + 2023-01-13-release + + 2023-01-13T00:00:00.000Z + + Node Reelease Update

    2022-11-02 - 2023-01-13

    Executive Summary

    A 1.35.5 release for single relay P2P is nearly completed and should be released this month. This release is based on +release/1.35 branch and does not bump cardano-ledger.

    The team successfully integrated an interim release bump of ledger and consensus into cardano-node master. +This work will not be released in a node version, but will be continued by the current dependency bump in progress.

    We anticipate once this dependency bump is completed, regular 2 week releases will be feasible again.

    The 1.35.4 release is being ran by more than 70% of stake pools. Planning for the mainnet hard fork date is in progress.

    Completed

    In Progress

    ]]>
    + + Samuel Leathers + https://github.com/disassembler + + +
    + + <![CDATA[System Test Team Update]]> + 2023-01-13-system-test + + 2023-01-13T00:00:00.000Z + + High level summary

    During the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the P2P Single +Relay functionality.

    We also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level.

    Workstreams

    Framework improvements:

    • extended the cardano-node-tests with the ability for anybody to fork the repo and run all our System Tests on GitHub Actions
    • added 2 new nightly pipelines - nightly-mixed and nightly-p2p - details here
    • some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;

    === 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) === + to + === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===

    Node:

    • ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled
    • started the preparations for testing the next tag - details here

    DB-Sync:

    • some improvements on db-sync sync tests
    ]]>
    + + Dorin Solomon + https://github.com/dorin100 + + +
    + + <![CDATA[Mithril Team Update]]> + 2023-01-12-mithril + + 2023-01-12T00:00:00.000Z + + High level overview

    The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ADR. They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.

    Finally, they have worked on upgrading the devnet and fixing some flakiness in the end to end tests of the CI.

    Low level overview

    • Implemented the redaction of an ADR for handling graceful updates of the Mithril Network #671
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with protobuf #677
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with avro #678
    • Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction #672
    • Worked on upgrading the Cardano node of the Mithril devnet, as well as fixing flakiness of the CI #523
    • Prepared and tested the new 2302 distribution pre-release 2302.0-prerelease
    • Updated the documentation for SPO to build a signer node in order to better reflect the new release process #681
    ]]>
    + + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
    + + <![CDATA[Consensus Team Update]]> + 2023-01-11-consensus + + 2023-01-11T00:00:00.000Z + + High level summary

    The consensus team is resuming its activities after the Christmas break. During +these weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and +discussing with the Ledger team the changes that might be required for the next +iterations. The pull request that adds the Conway era is waiting for a second +review round and we hope to merge it soon. On the technical debt side we are +looking into a property-test failure found in the iterators. We are +investigating if this is an error in the model or in the implementation. We also +improved the documentation of our testing code.

    Workstreams

    UTxO HD Prototype

    We worked with the Ledger team to start preparing the next versions of UTxO-HD. +The Ledger team is concerned that for the remaining maps we might need the full +ledger state on epoch boundaries. Since the main consumer of the ledger rules is +Consensus, the code that requires access to a full state could be moved from the +ledger to some Ledger-Consensus bridge. Eg. the traversal of rewards could take +place in such bridge, instead of querying the ledger for the values that are +required in the epoch-transition computations.

    We relocated some UTxO-HD definitions, in preparation for merging +the prototype into master.

    We also completed updated local benchmarks comparing the replay time and memory +consumption of:

    • the baseline node (f2fc76ef45647275c98634da1718290b976ff364)
    • the UTxO-HD node with the in-memory backend
    • the UTxO-HD node with the LMDB backend

    The following plot shows the results: we can see that the LMDB node barely +reaches 8GB of memory, but it takes 1.78 times longer to replay the chain. The +in-memory backend is about 30 minutes faster, but still slower than the baseline +version. We are aware of this phenomenon and it is inherent to the problem of +maintaining sequences of differences of the last k ledger states that allows +us to perform rollback and roll-forward. We are in the process of measuring +syncing from scratch times.

    We also added StaticEither accessors that helped us to simplify +the UTxO-HD prototype.

    New Conway era

    We incorporated the feedback of the pull request, and rebased this +branch on top of master. The PR is pending a second review round and we hope +to merge this soon.

    Technical debt

    We are investigating a property-testing failure involving +iterators. Solving this requires understanding the expected behavior of +iterators in the counterexample found by QuickCheck to determine if the error +is in the model or in the implementation.

    Fostering collaboration

    We moved the contents of docs/Testing.md closer to the code, so that the +explanations about the tests are easier to find in the relevant modules, and the +documentation is easier to keep up to date.

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Performance & tracing update]]> + 2023-01-11-performance-and-tracing + + 2023-01-11T00:00:00.000Z + + High level summary

    Since our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:

    1. SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress.
    2. The new tracing system: the improved API of the new tracing system was implemented, and we're now porting the tracing integration layer over.
    3. Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks.
    4. New benchmark deployment infrastructure: we've made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs.
    5. Legacy benchmarking: we've started merging the legacy benchmark deployment infrastructure into the workbench.
    6. Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.

    Performance

    The AWS cluster infrastructure necessary for SECP benchmarking is still being worked on.

    Tracing

    The improved tracing internals were implemented, and we're now into the phase of updating the tracing integration, which is also mostly done.

    Infrastructure

    Thanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components.

    On the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters. +We now have a very clear and granular method to keep track of protocol parameter evolution -- e.g. the mainnet history changes are now tracked at epoch granularity, while also allowing for systematically described change overlays. This makes the benchmark profile definition much more clear and robust against mistakes.

    We also started a merge of the legacy benchmarking environment (based on cardano-ops) into the workbench. The separation between environments was too costly, causing us to reimplement any benchmarking change twice -- first, during development, in the workbench, then in cardano-ops. In addition, maintenance of compatibility code was incurring additional costs, slowing benchmark data analysis development. +Once this merge is complete, this will allow us to sharply cut the benchmark development cycle and overheads.

    ]]>
    + + Serge Kosyrev + https://github.com/deepfire + + +
    + + <![CDATA[Crypto Team Update]]> + 2023-01-06-crypto + + 2023-01-06T00:00:00.000Z + + High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: The API features (error handling) has been merged.
    • Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI.
    • KES agent: We keep progressing with KES secure forgetting implementation.

    We also started working in the cryptography engineering handbook, which will be a cross team effort.

    Low level summary

    MuSig2

    • Merged the more granular error handling mechanism PR#33

    Mithril

    • Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in Version 0.1.1, which was published in crates.io.
    • Updated new KES format to mithril library PR 674
    • We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync PR 531
    • We keep progressing on reducing the use of transmute in mithril-stm.

    cardano-base

    • Nothing new to report. Still working in merging these PRs. We are only missing nix merge of PR#520 and the updates on VRF will be merged.

    KES agent

    • We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests PR#255.

    Cryptography handbook

    We have made available the (temporary) cryptography handbook https://input-output-hk.github.io/cryptography_spec/, and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives.

    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Ledger Team Update]]> + 2023-01-05-ledger + + 2023-01-05T00:00:00.000Z + + High level summary

    The ledger team finished up the remaining work for tracking individual depots, +built out the new Conway era transaction body (in line with CIP-1694), +greatly reduce some problematically large calculations on the epoch boundary, +and addressed technical debt.

    Lower level summary

    Finishing the deposit tracking

    The initial work on the individual deposit tracking project focused only on correctness. +As this is a large data structure +(since its size is linear with respect to the number of registered stake credentials), +it is very important that we also reduce the memory overhead as much as possible. +Fortunately, we were able to add very little overhead for the deposits by using existing +efficient data structures. The extra tracking now only incurs one word (8 bytes) +per registered stake credential.

    See:

    New Conway era transaction

    We implemented the Conway era transaction body, which is in line with CIP-1694. +Note that the Conway era implements, losing speaking, the parts of CIP-1694 that are not +related to the liquid democracy (the "DReps"). +The new transaction body adds the new governance actions and votes, +while also deprecating the old governance structures +(i.e. the old protocol parameter updates and MIR certificates).

    We also now have the wire specification (CDDL file) and serialization code in place. +The wire specification is still subject to change while we work on the Conway era, +but it is now usable and has proper testing support +(so that, for example, the serialization round-trips, etc).

    See:

    Optimizing the TICKF transition

    Every since the release of the Shelley era, we have been working to reduce the computational load +placed on the node by the ledger at the epoch boundary. +While still not perfect, we believe that we have removed one of the final problematically long +epoch boundary computations that exacerbate situations like +this. +In particular, the problem involved the way in which the consensus layer obtains a view of the +ledger for the purposes of checking the leadership schedule in a new epoch. +We implemented a stopgap measure which now only incurs a single multi-second cost once per epoch +instead of potentially several multi-second costs while the networks waits for the first block +of a new epoch to be minted.

    See:

    Technical debt

    We closed the year out with a lot of reduction to the technical debt!

    Improved ledger event

    • pull-3212 - The ledger events are not guaranteed to appear in any given order within a block. +For this reason, motivated by the use case in db-sync, the TotalDeposits event now +includes a transaction ID and emits the change in deposits instead of the value.

    Improved type saftey

    • pull-3208 - We replaced NominalDiffTime with a newtype wrapper. The problem was that our CBOR +encoders and decoders were using the wrong level of precision, having to due with with +the Shelley genesis file. We removed the potential problem with a newtype wrapper.
    • pull-3167 - We now use a GADT to ensure consistency of the Plutus language in the types +for TransactionScriptFailure and PlutusDebug.

    Code/Module organization

    • pull-3175 - The Allegra and Mary eras had an unusual relationship in our codebase, +due to the uncertainly of release dates while we were implementing them. +In particular, they were coupled in way that is different from the rest of the code base. +With hindsight on our side, we split the combined shelley-ma Haskell package into two +separate ledger era packages, which is now consistent with the rest of the repository +and module structure.
    • pull-3184 - We created a core test sub-library, cleaning up a lot of our property test +generator code.
    • pull-3210 - We moved the KeyPair type to the test library. Outside of testing, +the ledger does not need to deal with signing keys, and since this is a topic that +deserves the utmost care, it is best to make it clear that our use of signing keys +is only for testing.
    • pull-3229 - We split the Cardano.Ledger.Alonzo.Data module, which is more consistent with the rest +of the codebase.

    Revert pointer address deprecation

    Thanks to one of our excellent internal auditors, +@jmhrpr, +we now have a better plan for deprecating pointer addresses. +This meant that we had to revert the previous work to deprecate them.

    See:

    Miscellaneous

    • pull-3205 - We removed deprecated type synonyms.
    • pull-3218 - We cleaned up the address deserialization.
    • pull-3223 - We fixed faulty address deserialization tests.
    • pull-3222 - We switched to a general type family TxOut from concrete ones, +reducing many constraints.
    • pull-3224 - ShelleyGenesis is now parameterized by crypto instead of by era.
    • pull-3170 - We set the cabal-version to 3.0 in our projects.
    • pull-3172 - We removed the now useless EncodeMint/DecodeMint classes.
    • pull-3225 - We switch from ormolu to +fourmolu. +The reason was to be able to finally have more diff friendly code!
    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2022-12-28-node-cli-api + + 2022-12-28T00:00:00.000Z + + 2022-12-28 - 2023-01-10

    High level summary

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[Hydra Team Update]]> + 2022-12-16-hydra + + 2022-12-16T00:00:00.000Z + + High-level summary

    This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on the website and reduced the cost for commit transactions by ~30% with the help of reference scripts.

    The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.

    What did the team achieve this week

    • Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.
    • Reduce commit transaction costs by ~30% with reference scripts.
    • Prepared an RFP for external audit of the Hydra Head solution.
    • Fixed transaction cost benchmarks for abort tx #631.
    • Recorded decision to use model-based testing (ADR22) and improved Model documentation.
      • Concluding the first increment on Validate coordinated Head protocol #194.
      • Formulated next step / follow-up on testing the Soundness property of our protocol #656.
    • Switched to using nix flakes for development setup and CI build #646.

    What are the goals of next week

    • Push ADR21 & tx validity gap over the finish line (smoke tests missing).
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Close & recap on the year with another monthly report (+ blog post).
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Mithril Team Update]]> + 2022-12-15-mithril + + 2022-12-15T00:00:00.000Z + + High level overview

    The Mithril team has released the new distribution 2248.1 of their nodes. They have published the first version of the Mithril cryptographic library on crates.io, the Rust community’s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.

    Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities.

    Low level overview

    • Implemented removing verification key and stake from single signatures #619
    • Completed the extraction of the signer registration from the multi-signer #642
    • Completed the extraction of the certificate creation from the multi-signer #638
    • Implemented a workflow to test client binaries (Linux / MacOS / Windows) #601
    • Completed the signature of the artifacts produced by the CI #587
    • Fixed the protocol parameters transition #627
    • Worked on optimizing the snapshot digest computation #510
    • Worked on enforcing the API protocol versions in the client and signer #633
    • Worked on deactivating the non certified signer registration mode #621
    • Worked on the re-genesis of the test networks #651
    ]]>
    + + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
    + + <![CDATA[Consensus Team Update]]> + 2022-12-14-consensus + + 2022-12-14T00:00:00.000Z + + High level summary

    During the past two weeks, the Consensus team finalized the QSM tests for the +backing store and Mempool on the UTxO-HD branch with important discoveries +regarding parallel QSM testing. We also worked with the Ledger team to envisage +the modifications that are required in Ledger and Consensus to accommodate the +changes in the crypto VRF and KES. The db-analyser now supports bechmarking +the ledger operations, which will allow us to identify, debug, and profile +potential performance problems. We drafted a document that defines how to manage +the versions of Consensus-related packages. The top level documentation of +ouroboros-network now features a description of the consensus components and +provides a hyperlinked map to the modules documentation.

    Workstreams

    UTxO HD prototype

    Whereas we had passing sequential state-machine tests for the mempool, the +parallel case proved to be more challenging than we thought. The operation of +adding a list of transactions to the mempool is not atomic and, as a result, +when adding a list of transactions, transactions from other processes can be +added in between. The mempool implementation handles this correctly, however +this required us to redesign the parallel model we had to take +the lack of atomicity into account.

    Backing store property tests

    We finished refactoring the backing store property tests. The second review +round is ongoing.

    LSM tree implementation

    We are working on benchmarking (in terms of time and number of IO operations) +fetching/looking up data from disk.

    Genesis

    We worked on the design of a mechanism to prevent a DoS attack on our Genesis +design related to rollbacks. This was arguably the biggest outstanding question.

    During the discussions around Genesis, we noticed a design boundary that nicely +delineates a fundamental component. We almost have a full Haskell prototype of +it. It will be very nicely self-contained, perhaps even usable in the ultimate +implementation!

    New VRF and KES crypto integration

    We collaborated with the Ledger team on preparing the ledger state and crypto +types to avoid huge allocation on the epoch boundary when changing aspects of +the crypto that will only manifest in headers, not in the ledger states.

    Technical debt

    We merged the pull-request that adds a support to db-analyser for +benchmarking ledger operations. This will allow us to identify, debug, and +profile potential performance problems. The benchmark focus on the main 5 ledger +operations that are involved in chain syncing, block forging, and block +validation, namely:

    1. Forecast.
    2. Header tick.
    3. Header application.
    4. Block tick.
    5. Block application.

    The following figure shows a plot of the benchmarking results for the first 65 +million blocks (approximately) of the Cardano chain. The thin yellow lines under +the x-axis show the epoch boundaries, whereas the thick yellow lines correspond +to the era transitions.

    As we can see in this figure, era and epoch boundaries require more computation +time. The ledger team are aware of this problem, and we are working to improve +this situation.

    Fostering collaboration

    We drafted a document motivating and defining how Consensus (and +possibly other core teams) will/should manage our package versions. This +pull-request garnered many great discussions from our team members and other +teams too: Sebastian Nagel, Arnaud Bailly, Michael Peyton-Jones, Ziyang Liu, et +al. We want to thank you all for your input, and we found this discussion very +enlightening!

    We merged the pull request that adds an overview of consensus to +the top level +documentation of +ouroboros-network. This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[DB-sync Team Update]]> + 2022-12-14-db-sync + + 2022-12-14T00:00:00.000Z + + High level summary

    The DBSync team continued testing release 13.1.0.0. The QA team has reported that no issues have +been found. The DBSync team also worked on cherry-picks back to master and on fixing bugs.

    Lower level summary

    • Release is cherry-picked back to master, which uses the new rollback mechanism which uses +reverse indexes, same as the release +#1320 +This also fixes a bug number of issues on master.
    • Depenencies upgrade and CHaP integration +#1324
    • AdaPots fix #1323. This +fixes an issue where the per epoch AdaPots didn't match the epoch boundary, but +they also included changes from the first block of the epoch.
    • Deposits Event fix #3212. This pr +adjusts the Deposits ledger events, so that it can be better used by db-sync. This can reduce the +number of queries that db-sync does during syncing an make syncing faster.
    ]]>
    + + Kostas Dermentzis + https://github.com/kderme + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2022-12-14-node-cli-api + + 2022-12-14T00:00:00.000Z + + 2022-12-14 - 2022-12-27

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[Performance & tracing update]]> + 2022-12-14-performance-and-tracing + + 2022-12-14T00:00:00.000Z + + High level summary
    1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.
    2. A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery.
    3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals.
    4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.
    5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.

    Performance

    The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload.

    We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.

    Tracing

    After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.

    To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:

    1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.
    2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.

    All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further.

    In addition, we're still pursuing our performance-enhancing rework of the new tracing internals.

    Infrastructure

    After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.

    Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it. +This means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis. +This will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports.

    A new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches. +Previously we only had automation for two aspects separately, so we only could either:

    • compare individual runs (used for different node configurations / versions)
    • collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version) +Naturally, combining these two capabilities was a long-desired feature of our analysis pipeline.
    ]]>
    + + Serge Kosyrev + https://github.com/deepfire + + +
    + + <![CDATA[Network Team Update]]> + 2022-12-12-network + + 2022-12-12T00:00:00.000Z + + High level summary

    In last sprint the team focused on preparations for the conference talk at +OPODIS 2022. We also worked on preparations to publish io-sim and related +packages on Hackage (PR #57, PR #60).

    We also started reviewing:

    • ouroboros-network
    • cardano-node
    • cardano-ledger +repositories for open-source readiness (PR #4128).

    We prepared a PR which changes how node-to-node and node-to-client protocol +versiones are serialised in cardano-node log (PR #4691).

    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + + +
    + + <![CDATA[Crypto Team Update]]> + 2022-12-09-crypto + + 2022-12-09T00:00:00.000Z + + High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency.
    • Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack.
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • [Still in progress] We are introducing a more granular error handling mechanism PR#33
    • We merged the API redesig PR#35
    • We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future PR#36

    Mithril

    • We merged the individual signature PR#620
    • We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (kes repo)

    cardano-base

    • Nothing new to report. Still working in merging these PRs.
    • We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a bug in GHC

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Fixed a 'use-after-free' bug in the KES agent.
    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Hydra Team Update]]> + 2022-12-09-hydra + + 2022-12-09T00:00:00.000Z + + High-level summary

    This week, the Hydra team has worked on completing to "Validate coordinated head protocol against formal model", this is a huge step to verify the implementation is secure. They also worked on implementing ADR21 related to bounded tx validity which is now under review. HydraPay project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of issues they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.

    What did the team achieve this week

    • Document model based testing #194 & #641
    • Got ADR21, reducing gaps between implementation and specification, under review.
    • Complete review on hydra-tutorial.
    • Complete first round of review on HydraPay work #634
    • Meeting with Director of CyberSecurity frio IOG to unblock "the RFP prepared for the external audit" #606
    • Remove vasil-dev and testnet from smoke-test because they were not working #630
    • Fix flaky plutus-merkle-tree test #642
    • Refactor NetworkSpec to improve legilibility.
    • Fix benchmark cost for abortTx #631
    • Adapt nix.conf to the recent hydra-ci nix cache migration.

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation.
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Get Cicero (new CI) working.
    • Use reference inputs to reduce the cost of the commitTx.
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Ledger Team Update]]> + 2022-12-09-ledger + + 2022-12-09T00:00:00.000Z + + High level summary

    The Plutus tools team at IOG has started helping the ledger team to build out a user friendly +cardano-ledger-api package! +A GitHub project +will be filled out in the days ahead, +people interested in the API can use it to follow along and join in on the conversations.

    The ledger team has started using +architectural decision records +to leave a record of important decisions that the team makes. +We will retroactively go back through past decisions and make ADRs for them.

    The logic to track individual deposits is now nearly in place. +We are prioritizing correctness with our first pull request, and will follow up with +performance optimizations and general cleanup next.

    Pointer addresses are being deprecated with the Cardano major protocol version 8. +See CPS-0002 +for more context.

    Lower level summary

    Cardano ledger API

    The Plutus tools team has taken our minimal cardano-ledger-api package and started filling it +out and adding much needed documentation. +They have also added doctests! +In the days to come, the Plutus tools team will map out a lot more work for the API and record +it in this +GitHub project.

    See

    Architectural Decision Records (ADRs)

    We are now providing more context and leaving a record of important decisions that are made +in the ledger. The first ADR explains the very lightweight process.

    See

    Tracking individual deposits

    See ADR-3 +for background. +We now have the logic in place to track individual deposits, and a host of property tests +to make sure that the logic is correct. +The current implementation uses more memory than it needs to, and we will address that next, +with our hope being to only use one word (8 bytes) per registered stake credential. +There is a fair amount of other cleanup needed for general maintainability.

    See

    Removing pointer addresses

    Pointer addresses, which have never seen any real use +(there are something like eleven on mainnet), are being deprecated starting at Cardano major +version 9. +CPS-0002 gives the context. +We are disabling them by first preventing transaction outputs containing them +from being serialized by the node at the moment we switch to version 9. +At the hard fork after that, we will translate the existing few pointer addresses +to enterprise addresses.

    See

    Technical debt

    • pull-3162 - Sometimes we have to put safeguards in place for hard forks which may never +be exercised. After we have passed the given hardfork, we are able to clean up the code +and simplify our logic. We removed all of the ones that we are currently easily able to.
    • pull-3165 - We improved the type safety of our code while also discovering and fixing +a serialization bug.
    • pull-3172 - We removed dead code.
    • pull-3175 - The Allegra and the Mary code used to be coupled in a particular way the we grew to +dislike. We made these two ledger eras now uniform with the rest of our code base.
    • pull-3184 - We organized our property testing code.
    • pull-3200 - The Plutus tools teams fixed an outstanding bug in the translation from the +ledger state to the Plutus script context.
    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Hydra Team Update]]> + 2022-12-02-hydra + + 2022-12-02T00:00:00.000Z + + High-level summary

    This week, the Hydra team has worked on cleaning up several things in progress +after last week's summit. They have extended their model-based testing (MBT) +approach with transaction creation & observation +#410, solved +AcquirePointTooOld problems of the hydra-node with by changing the wallet +initialization #439. +Also, the Hydra researchers updated the security proofs of the Coordinated Hydra +Head, which are bound to be included in the Hydra HeadV1 specification.

    What did the team achieve this week

    • Monthly review & report - will also be published on our website #644
    • Extended the model-based testing (MBT) with transaction creation/observation #410
    • Solve AcquirePointTooOld problems with new wallet initialization #439
    • Fixed our hydraw deployments (EC2 instances)
    • Created & discussed ADR21 within tx validity work
    • Received & discussed security proofs of Coordinated Hydra Head (requires more work)

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation
    • Complete review & integrate the Hydra tutorial
    • Review latest hydra-pay work
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec
    • Get Cicero (new CI) working
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[DB sync Team Update]]> + 2022-12-01-db-sync + + 2022-12-01T00:00:00.000Z + + High level summary

    The DB Sync team prepared a release 13.1.0.0-rc2 which includes many improvements for db-sync, +it makes rollbacks and syncing much faster, simplifies the schema, fixes bugs and introduces +migrations. This release finalises the objectives that were set for db-sync for the previous +3 months period and part of the syncing speed objective set for the next period +Changelog

    Lower level summary

    • Branch release/13.1.0.x +includes all the improvements related to the release. The release is passing through the testing +phase and a number of bugs and issues have been fixed, like +#1312 +#1311. +Also many new unit tests have been added.

    • Part of the release branch is cherry-picked back into master, in a way that it respects the new +release and development process, so that it takes into account migrations +release process

    • The DB Sync team has also tagged release 13.0.6 which better supports preview and preprod for +docker.

    ]]>
    + + Kostas Dermentzis + https://github.com/kderme + + +
    + + <![CDATA[Mithril Team Update]]> + 2022-12-01-mithril + + 2022-12-01T00:00:00.000Z + + High level overview

    The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes.

    Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.

    Low level overview

    • Implemented custom Mithril SPOs on testing/pre-release networks #563
    • Deprecated Signer Declarative Pool Id registration mode #585
    • Completed the second stage of the store automatic migration process #600
    • Completed the deployment pipelines to crates.io registry #588
    • Completed automatic generation of nodes/libraries versions manifest in releases notes #599
    • Completed CI/CD handling of PR from forks #597
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #586
    • Worked on signing the artifacts released in the distributions by the CI/CD #587
    • Worked on multi-platforms end to end test #601
    • Worked on the refactorizaton of the aggregator multi-signer engine #398
    ]]>
    + + Jean-Philippe Raynaud + https://github.com/jpraynaud + + +
    + + <![CDATA[System Test Team Update]]> + 2022-12-01-system-test + + 2022-12-01T00:00:00.000Z + + High level summary

    During the last 2 weeks we did more improvements on our Test Framework, planned the testing of the P2P Single +Relay functionality, and also tested some DB-Sync tags.

    Workstreams

    Framework improvements:

    • moved the System Test CLI Pipelines from BuildKite to Github Actions
    • improved the reporting tools to support the rerun of the failled tests and update of the reports
    • added support for Github API in report-aggregator, so reports will be generated from the GitHub nightly jobs from now on
    • added support for mixed topology - P2P, legacy, mixed topologies
    • planned the P2P Single Relay system test activities
    • added support to start regression tests with PV8 + better selection of tests

    DB-Sync:

    • confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)
    • tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2
    ]]>
    + + Dorin Solomon + https://github.com/dorin100 + + +
    + + <![CDATA[Consensus Team Update]]> + 2022-11-30-consensus + + 2022-11-30T00:00:00.000Z + + High level summary

    During the past two weeks, the consensus team merged improvements to the monadic +cursor API that was needed to implement LMDB range reads, which is in turn +required for the implementation of the UTxO HD feature. We added tables to +several tests in for the UTxO HD feature, which increases our confidence in the +correctness of the prototype. The mempool property tests are close to being +completed. Also, we finished the LSM tree tuning algorithm.

    On the Genesis front we started simplifying the BlockFetch logic with +CSJ-specific workloads in mind.

    We are also documenting the Block Diffusion Pipelining feature, and added a +high-level overview of consensus to the top level documentation of +ouroboros-network.

    Workstreams

    UTxO HD prototype

    We merged the implementation of a monadic cursor API (#1)) which was +needed to solve a bug with LMDB range-reads. After this PR was merged, we focused on +bridging the gap between the lmdb-simple interface and consensus by facilitating +using lmdb-simple's cursor API without Serialise constraints (#3).

    We refactored the backing store property tests to use quickcheck-lockstep +(#4081).

    We added tables to the mock ledger in the UTxO-HD feature branch +(#4184). Every test that used to run with SimpleBlocks now uses +tables. This will enable us to exercise the UTxO HD mempool integration by +leveraging the existing mempool property-tests. The new state-machine +property-tests are still needed for testing the parallel behaviour of the +mempool.

    Our work on the mempool state-machine tests revealed the need for improvements +in the quickcheck-state-machine library. Parallel testing assumed that the +state machine did not have access to mutable references. However, the mempool +tests require the use of such mutable references for mocking the ledger +interface. As a result, our parallel tests were failing with rather obscure +messages. @Jasagredo submitted a pull request (#12) that allows for +new mutable references to be created at each run of the state machine.

    Backing store property tests

    LSM tree implementation

    We finished the LSM Tree tuning algorithm. We are currently tidying up the code +and gathering results (i.e., plots and their interpretation).

    CSJ prototype

    We started simplifying the BlockFetch logic with CSJ-specific workloads in mind.

    New VRF and KES crypto integration

    Started working on supporting new version of StandardCrypto which uses compact +KES and batched VRF (#4151).

    Technical debt

    We reviewed the existing state of the Block Diffusion Pipelining document. We +are now working on the "Implementation" section (#4020).

    Fostering collaboration

    We cleared up our understanding of the error dynamics of forecasting +(#4146 and #4174).

    We submitted a pull request that adds an overview of consensus to the top level +documentation of +ouroboros-network (#4197). This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    https://github.com/input-output-hk/ouroboros-network/pull/4197

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2022-11-30-node-cli-api + + 2022-11-30T00:00:00.000Z + + 2022-11-30 - 2022-12-13

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[Performance & tracing update]]> + 2022-11-30-performance-and-tracing + + 2022-11-30T00:00:00.000Z + + High level summary
    1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.
    2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.
    3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.
    4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.
    5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.

    Performance

    We have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don't see any significant performance changes. The component bumps are therefore clear for release.

    Tracing

    For the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them. +The idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time.

    To support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics.

    Infrastructure

    Generation support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation.

    In addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model.

    The intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged. +We are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration.

    We continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability.

    We are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP.

    As usual, a number of smaller workbench, data analysis & reporting improvements have been made.

    ]]>
    + + Serge Kosyrev + https://github.com/deepfire + + +
    + + <![CDATA[Network Team Update]]> + 2022-11-28-network + + 2022-11-28T00:00:00.000Z + + Stake-Driven Data Diffusion Release for Relays

    IOG networking team decided to release the Stake-Driven Data Diffusion with +Robust Optimised Peer Selection also more commonly known as P2P. In the +last update, we informed about a performance regression, but it turns out it +only affects block producers, and thus we highly advise against running it on +such nodes. Further investigation is required to find the cause of it.

    On IOG's benchmarking cluster we have seen quite a good performance improvement +on block propagation itself. The cluster is running a static topology with +valency 6 (each node is connected to 6 other nodes). In which every of the 50 +nodes are block producers. The setup of this network is the same as mainnet. +We've seen 40-50% performance improvement on block propagation comparing to the +same cluster deployed with the same topology but using non-P2P nodes. We think +this performance improvement is caused by using full duplex connections. Quite +likely the transaction traffic floating in both directions on the same TCP +connection helps to keep the TCP window open. Note that in a cluster of 50 +nodes with valency 6 the probability of having at least one duplex connection +is more than 50%. We don't expect the same improvement on mainnet because the +network is much wider and the transaction traffic is not as large.

    Just before the release we squashed two small bugs:

    • issue #4163 - top level integration bug in keep-alive;
    • issue #4177 - a bug in outbound-governor;
    • PR #4165 - a fix cardano-ping support of NodeToNodeV_10.

    Peer Sharing

    We were carrying a review of peer sharing PR.

    DeltaQ

    Neil Davies was invited to give a guest lecture entitled Avoiding System Catastrophes at UCLouvain.

    What have we achieve last sprint

    • issue #4163: we found out that a control message is not passed to the +keep-alive mini-protocol, this results in every demotion executing demotion +timeout rather than a graceful termination. With the fix the node will no longer log:

      { "kind": "PeerStatusChangeFailure"
      , "peerStatusChangeType": "WarmToCold (ConnectionId {localAddress = 192.168.0.10:7000, remoteAddress = 3.129.186.40:3000})"
      , "reason": "TimeoutError"
      }
    • issue #4177: we fixed an assertion failure in the outbound-governor; now +we don't try demoted peers which are being demoted already.

    • PR #4155: we refactored ouroboros-network packages. There's a top level +ouroboros-consensus-diffusion package which integrates network +& consensus code. We also introduced:

      • ouroboros-network-api package which contains the API shared between +network & conensus;
      • ouroboros-network-mock package which contains mock API used for testing +(e.g. a mock chain & chain producer, etc.)
      • ouroboros-network-protocols package which contains implementation of all +(but handshake) mini-protocols, exposes a testlib and contains test +and cddl components.

      This made the dependency tree of network & consensus packages much +cleaner.

    • PR #4169: we described the usage of release branches in CONTRIBUTING.md +doc.

    • PR #4165: we fixed cardano-ping support of NodeToNodeV_10 protocol.

    DeltaQ

    The abstract of the talk:

    An essential step to ensuring that distributed systems are fit for +purpose.

    Distributed systems have become an integral part of our society and +daily lives. We are, both implicitly and explicitly, individually as well as +collectively, placing ever more trust in them.

    Are they worthy of this trust? Our need for them to be ‘fit-for-purpose’ goes +well beyond notions of functional correctness (i.e. never getting the wrong +answer). We need them to deliver the desired outcomes in a timely, robust, +reliable, resilient fashion, at scale and in a sustainable way (both +economically and environmentally).

    This all sounds like a worthy aspiration, but what would be a practical +approach to capturing and reasoning about these issues? How can we ensure that +systems can meet their fit-for-purpose objectives, not just in their design but +as they are deployed, encounter the imperfect world, are scaled to become +economic, and proceed into ongoing maintenance?

    This talk will illustrate how the notions of Outcomes and Quality Attenuation +(as captured by ‘∆Q’) are being used to both frame the necessary notions and +provide a basis for assuring the refinement and reification of such systems, +from initial concept to operational infrastructure.

    You can download the slides from here.

    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + + +
    + + <![CDATA[Crypto Team Update]]> + 2022-11-25-crypto + + 2022-11-25T00:00:00.000Z + + High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team.
    • Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes
    • cardano-base: The VRF and BLS branchs are still open and in progress
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • We redesigned the library so that MuSig2 lib users don't need to be aware of the underlying secp256k1 library PR#31
    • We are introducing a more granular error handling mechanism PR#33
    • We rethought the API and made it more consistent with the underlying secp256k1 library PR#35

    Mithril

    • The mithril crates in general will be published in crates.io, and we adapted the core library's README PR#616
    • We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information PR#620

    cardano-base

    • We've been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) PR#341
    • SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions PR#344
    • Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus PR#266

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation.
    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Hydra Team Update]]> + 2022-11-25-hydra + + 2022-11-25T00:00:00.000Z + + High-level summary

    This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a presentation about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.

    What did the team achieve this week

    What are the goals of next week

    • Monthly report & review meeting
    • Tie up several loose ends / branches.
    • Resolve Tx validity discussions & PRs.
    • Review cicero PR & try it out.
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Ledger Team Update]]> + 2022-11-23-ledger + + 2022-11-23T00:00:00.000Z + + High level summary

    We released CIP-1694, +our proposal for entering the Voltaire phase. +Please come join the discussion, this will be an incredibly exciting transition for +Cardano and we want everyone to participate!

    We now have a sensible way to version all of the serialization schemes used in the ledger. +The draft pull request was polished, reviewed, and merged this week. +This solves many problems that have vexed us since the beginning of the Shelley ledger era.

    Everyone working on the Cardano node is working together to improve our release process, +and the ledger team in particular dedicated one engineer to help with these efforts +for the next release.

    Lower level summary

    The Conway ledger era

    The current proposal in CIP-1694 encompasses two new ledger eras. +The first era will be called Conway, after the English mathematician John Horton Conway. +The community facing aspects of the Conway ledger era will be very minimal, +but it will pave the way for introducing liquid democracy. +The details can be viewed here. +We do not yet have a formal specification for the Conway era. +Our plan is to debut the +formal ledger model. +Briefly, the Conway ledger era will:

    • introduce SPO voting for hard forks (in the spirit of the now abandoned CIP-47)
    • provide an on-chain mechanism for rotating the governance keys
    • re-plumb the ledger rules involving governance to be in line with CIP-1694

    Versioned CBOR

    We now have the ability to easily tie our serialization schemes to the Cardano +major protocol version. +We still aim to preserve backwards compatibility as much as possible, but we now have a principled +plan for resolving problems (see CIP-ledger-cbor). +In particular, we can now address several long standing issues, such as +issue-2444, issue-2965, and issue-3003.

    The final (and massive!) pull request which brought us the versioning is pull-3138.

    Deposit tracking

    The draft pull request which was exploring how best to track individual deposits +is much closer now to being ready to take out of draft (pull-3127). +For background on the issue, see issue-3113. +This is quite an invasive change which effects many of our tests, which we are now addressing.

    Technical debt

    As always, we keep working on technical debt. +We have deduplicated a some things: pull-3129, pull-3162. +We have memoized a problematic computation (though more due diligence is needed before we can +merge): pull-3141.

    Node release

    We have been helping with the node release efforts. See pull-4608.

    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Hydra Team Update]]> + 2022-11-18-hydra + + 2022-11-18T00:00:00.000Z + + High-level summary

    This week, the Hydra team released version 0.8.1, which includes several fixes and a user-wished extension of the persistence introduced by 0.8.0 of replaying server outputs to make clients like the hydra-tui be aware of the latest hydra-node state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from hydra-poc to hydra!

    What did the team achieve this week

    • Implemented replaying of server outputs to address #580
    • Released version 0.8.1 containing this and other fixes Release notes
    • Worked on the bounded tx validity as one of the on-chain script fixes, but couldnt finish it just yet #615
    • Collaborated with the education team on a Hydra tutorial.
    • Discovered and discussed issues with the seen ledger.
    • Renamed the Hydra repository hydra-poc -> hydra

    What are the goals of next week

    • Create and discuss an ADR about handling tx validity correctly.
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
    • Have a team workshop / hackathon after the summit:
      • Retrospective
      • Roadmapping session
      • Hack on something complex or useful
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Mithril Team Update]]> + 2022-11-18-mithril + + 2022-11-18T00:00:00.000Z + + High level overview

    The Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks.

    Finally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer.

    Low level overview

    • Released a new Mithril distribution 2246.1
    • Completed the first stage of the store migrations process #562
    • Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes #565
    • Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage #576
    • Prepared a Daedalus synchronization benchmark video with/without Mithril #606
    • Upgraded the Cardano nodes of the testing Mithril networks to 1.35.4 #594
    • Worked on implementing SPO tests nodes on testing Mithril networks #563
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #588
    • Worked on the refactorizaton of the aggregator multi signer engine #398
    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Consensus Team Update]]> + 2022-11-16-consensus + + 2022-11-16T00:00:00.000Z + + High-level summary

    During the past two weeks, the consensus team started documenting the +implementation of the UTxO HD feature and continued developing tests for it. As +part of our work on UTxO HD, we improved the Haskell support for LMDB. We also +spent time working on the LSM tree prototype, and designed a parameter tuning +algorithm for it. Regarding our work on Genesis, our investigation of the +"plateaus" pointed at the TICKF slowdown on era boundaries as culprit. This +led us to developing a caching strategy that will not only remove the +aforementioned "plateaus", but can help alleviating the growing block production +delay on epoch switch. We also helped reviewing the block forge credential +hotswap feature, which is intended for use in the adoption of P2P.

    We also worked on paying technical debt and fostering collaboration. In +particular, we improved the io-sim framework, which is crucial for testing and +simulating Cardano components. We also removed thunks that appeared on era +translations, and improved our diffusion pipelining feature. We are working on a +presentation for explaining Praos and Genesis.

    High-level status report

    • Finish the UTxO HD prototype: in progress.
      • We added documentation for this feature.
      • We developed the second version of the mempool tests.
      • We fixed benchmarks that were inflating the speedup we observed in the +anti-diff implementation of sequences of differences. Speedups are now in the +range of [3.33, 4.75], which remain significant.
      • We continued improving Haskell LMDB support.
      • We finished implementing a "parameter tuning algorithm" for the LSM tree +prototype. This enables us to run experiments to check the correctness of +the algorithm.
    • Genesis: in progress.
      • Work investigating the "plateaus" in the ChainSync jumping prototype +pointed to the TICKF slowdown on era boundaries as culprit.
    • Tech debt:
      • We improved the capabilities of our io-sim library, which is crucial for +testing and simulating Cardano components.
      • We removed thunks from epoch translations in the ledger.
      • We added Linux CI support for lmdb-simple.
      • We got pending diffusion pipelining improvements merged.
    • Fostering collaboration:
      • We are working on a explanation of Praos and Genesis protocols.
    • Support:
      • Investigation of CSJ "plateaus" led us to developing a caching strategy for +TICKF that will not only remove these "plateaus", but can help alleviating +the growing block production delay on epoch switch.
      • We reviewed the block forge credential hotswapping feature which is intended +for use in the adoption of P2P.

    Workstreams

    Finish the UTxO HD prototype

    We merged PR #4060, which adds a report documenting the UTxO HD +feature, and puts emphasis in explaining how the mempool works in combination +with UTxO HD.

    We opened a draft PR with the second iteration of the property tests for the +mempool (#4076).

    We fixed the Arbitrary instances for keys and values in DiffSeq benchmarks +(#4143). The problem was that we were testing with mostly small +values, which artificially boosted the performance gains we saw on benhcmarks. +Speedups are now in the range of [3.33, 4.75] across the different +configurations.

    Backing store property tests

    We focused on incorporating feedback on the monadic cursor API PR (#1). +This required us to make small tweaks to quickcheck-lockstep to test the new +API. We also updated the backing store property tests to use the new version of +the monadic cursor API.

    LSM tree implementation

    We worked on the LSM tree prototype. In particular: finished implementing a +"parameter tuning algorithm" that adapts the LSM tree design based on factors +like:

    • workload
    • machine specs,
    • and characteristics of the data being stored.

    We are now running experiments to gather results and cross-reference them with +existing experimental results from the LSM tree paper to see if the algorithm is +working correctly.

    Benchmarking the CSJ prototype

    We focused on investigating the "plateaus" in the ChainSync tip, which turned +out to be due to the TICKF bug which we previously were only aware of in the +context of the long forging times near epoch boundaries. For the most drastic +patch by @nfrisby to speed up TICKF, full sync is speeding up by 7%.

    The following plot shows that by caching the TICKF the ChainSync tip and the +VolatileDB tip progress at the same rate.

    The plot below shows the speedup observed by caching the TICKF rule wrt the +baseline.

    Technical debt

    After addressing the PR comments, we merged PR #16, which implements +the MonadCatch instance for STM. This extends the capability of our io-sim +library, which is crucial for testing and simulating Cardano components PR #16 +closed #1461. This new feature was published as version 0.4.0.0 +of io-sim.

    We continued with our work fixing the NoThunk errors required for enabling +nightly tests, with the help of TVarInvariant checks in strict-stm and +nothunks libraries. We proposed fixes in cardano-ledger that took care of +thunks that appeared in era translations (#3143). The fixes will be +integrated back into consensus when cardano-ledger approves and publish the +changes introduced in #3143.

    We added CI support for lmdb-simple (#2). We currently test the build on +a Linux environment only.

    We got pending diffusion pipelining PRs (#3857, #3860, +#3856) merged, after rebasing and addressing feedback.

    Fostering collaboration

    @nfrisby finished a visualisation tool and outlined scripts for the Praos and +Genesis explanation presentations. The idea is to produce a video that gives an +overview of these protocols.

    Support

    We started working on caching the computation of the TICKF rule +(#4054), since this was blocking our benchmarking work for +Genesis. In addition, this issue has the Cardano community quite +concerned, so we are hoping the work done in caching the +computation of the TICKF rule can help alleviating the growing block +production delay on epoch switch.

    We reviewed the block forge credential hotswapping PR #3800 from the +networking team, which is intended for use in the adoption of P2P.

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2022-11-16-node-cli-api + + 2022-11-16T00:00:00.000Z + + 2022-11-16 - 2022-11-29

    High level summary

    Completed

    docs

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[Performance & tracing update]]> + 2022-11-16-performance-and-tracing + + 2022-11-16T00:00:00.000Z + + High level summary
    1. P2P performance investigation is ongoing, in support of the networking team.
    2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.
    3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.
    4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.
    5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.

    Performance

    We are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.

    Tracing

    We ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.

    Infrastructure

    The first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.

    We designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.

    A number of smaller workbench, data analysis & reporting improvements have been made.

    ]]>
    + + Serge Kosyrev + https://github.com/deepfire + + +
    + + <![CDATA[Crypto Team Update]]> + 2022-11-11-crypto + + 2022-11-11T00:00:00.000Z + + High level overview

    The SECP primitives AC has been met, and the test-vectors PR has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool PR has been merged, and we've adapted the KES secure PR to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (PR#). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork.

    Low level overview

    • With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation.
    • We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool.
    • In parallel, we keep progressing on the KES agent
    • VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification.
    • Our libsodium fork now links directly to upstream libsodium.
    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Hydra Team Update]]> + 2022-11-11-hydra + + 2022-11-11T00:00:00.000Z + + High-level summary

    This week, the Hydra team published together with Obsidian Systems a light paper +on our "Hydra for Payments" project (Link). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of hydra-node processes.

    What did the team achieve this week

    • Published Hydra for Payments light paper (Link)
    • Have a draft RFP ready for a first review internally
    • Answered the internal auditors questions
    • Fixed a bug with following the chain when starting with persistence (#599)
    • Minor improvements to logging for better observability (#598, #600)
    • Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look (#590)

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Close more gaps #452
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Ledger Team Update]]> + 2022-11-11-ledger + + 2022-11-11T00:00:00.000Z + + High level summary

    I am extremely excited to say that we now have a pull request up which introduces our new versioned +CBOR serialization. This was an enormous effort, but it will solve a host of problems that we have +had since the Shelley phase. It will take time to properly review it, and we will +need to put in a lot of effort to integrate it with the downstream components, but this is a huge +milestone. Additionally, we have a new CIP proposing a deprecation cycle for the transaction +serialization schemes.

    We also have a draft pull request that reworks how deposits are tracked. Users of the system will +not notice any difference, but it is a necessary change needed to prepare the way for +decentralizing the governance of Cardano.

    Finally, we continued to address technical debt. In particular, we continued to make progress on +bringing coherency and consistency to the code base with a common naming convention, and +improving some error messages.

    Lower level summary

    • We have a pull request up for our new versioned CBOR serialization. +When we encounter a problem with our deserializers, it can be very difficult to implement a fix. +It is difficult because we can only fix such issues during a hard fork, and leading up to the +hard fork we must maintain two serializations for the same type in order to not cause unintended +network splitting (the problematic version must be used before the hard fork, +and the fixed version is used afterwards). +This can be especially tricky with the FromCBOR typeclass, since it is not always easy to +search for where all the problematic uses are located. +The new versioned CBOR serialization allows us to gracefully handle this transition. +See [pull-3138].
    • We proposed a CIP for backwards compatibility of the transaction serialization schemes. +See [pull-372].
    • We have draft for the new deposit tracking. +This draft is not as memory efficient as the final version will be, +but it is a sufficient proof of concept that we can write property tests against, ensuring +that we have not changed the semantics. +We will optimize after we are sure of the correctness. +See [pull-3127].
    • We now provide better support for debugging failed Plutus scripts in an important helper +function, named evaluateTransactionExecutionUnits. +In particular, it now returns all the information needed to rerun the script with exactly the +same arguments. This feature will end up appearing in the CLI and other tools from the Plutus +tools team. +See [pull-3135].
    • We did a lot more renaming to bring coherency and consistency to the code base. +See [pull-3126], [pull-3120], [pull-3118], and [pull-3116].
    • We have added a few things to the ledger repository to make it conform to the +Cardano Engineering Handbook +See [pull-3139].
    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Network Team Update]]> + 2022-11-11-network + + 2022-11-11T00:00:00.000Z + + High-level summary

    In last sprint we got a performance report of P2P performance testing cluster +(which consists of 50 nodes). There is a performance regression in the header +notification metric. The P2P cluster is constructed with the same +topology as the non-p2p reference one this indicates some regression which +needs to be further investigated. This poses a risk for releasing P2P.

    We also continued to work on peer sharing: pull #4019.

    We continued working on dynamic block production which is required for P2P +release for BP nodes: pull #3159.

    We simplified the P2P topology format: issue #4559, pull #3888.

    We added a new trace point for asynchronous demotions of local peers with +Warning severity. This trace is important for SPOs.

    Detail description

    Performance regression

    Below we include a graph which shows the performance regression of the P2P code base vs non P2P.

    On the x axis is time in seconds which measures the delay from the start of +the slot to when a header was received. The y axis is the percentile of nodes +that received a header. We are currently investigating possible causes of the +regression.

    New P2P topology form

    The new topology file format is described in this issue #4559.

    Tracing improvements

    • We improved a handshake error reporting, pull #4136
    • We added TraceDemoteLocalAsynchronous rendered as DemoteLocalAsynchronous +in json format, pull #4127. Such demotions should be investigated by the +pool operator. They can indicate a problem in the deployed system, but also +they could indicate a remote problem in arranged connections with other SPOs.

    Open Source Improvements

    We improved documentation of io-sim and typed-protocols for open-source +contributors and/or maintenance tasks: pull #22, pull #45, pull #48.

    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + + <![CDATA[Hydra Team Update]]> + 2022-11-04-hydra + + 2022-11-04T00:00:00.000Z + + High level summary

    This week, the hydra team first re-deployed the latest Hydra scripts to the re-spun preview network, see 0.8.0 release notes. They also completed implementation of ADR18 and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates #195 and alignment of the specification document with auditors.

    What did the team achieve this week

    • Complete and merge ADR18 #579
    • Re-deploy hydra scripts to respun preview network, see 0.8.0 release notes #595
    • Have first gap of #452 in review.
    • Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.
    • Engineering meeting to discuss hard forks and protocol parameter updates #195
    • Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.
    • Drafted project scope for an external audit RFP.

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Answer the internal auditors questions
    • Have a draft RFP ready for a first review internally
    • Close some gaps #452
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Mithril Team Update]]> + 2022-11-04-mithril + + 2022-11-04T00:00:00.000Z + + This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.

    Low level overview

    • We have been moving forward on the implementation of the release process #500:
      • Setup of the new hosted environments for testing-preview, pre-release-preview and release-preprod with their terraform and GitHub environments #542
      • Adapted the CI workflows to work with the new release process #543
      • Publication of an ADR3
      • Publication of a dev blog post about Mithril networks evolution
      • Releasing our first Mithril distribution 2244.0
    • Worked on the API versioning mechanism #565
    • Worked on the implementation of the stores migration process for the signer and aggregator nodes #562
    • Prepared a Mithril devnet video demo #526
    • Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably #484
    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Open-Source Team]]> + 2022-10-31-open-source + + 2022-11-04T00:00:00.000Z + + High Level Summary
    • We've been working toward publishing Cardano Backlog, currently its in +review by the IOG communication team.
    • We identified a number of libraries which can be published.
    • We setup and enhanced cardano-updates.

    Detailed description

    I am glad to announce that I was given the role of open-source advocate for +cardano project. In last few weeks we were making steps towards publishing our +backlog. It's currently under review by the communication team, although most +of the issues are already visible across various repositories.

    The open-source initiatives have their own +project. It is set up +to help us track our major open-source activities. Right now there are two +work streams:

    We identifies a number of libraries across all the teams which contribute to +Cardano which we would like publish to publish, see the following +link. Arnauld Bailly recently published +quickcheck-dynamic +library on Hackage. The networking team is slowly progressing towards +publishing io-sim and related packages, checkout the progress +here.

    Thanks to Arnaud Bailly our Cardano Updates website has +a new look & feel! It's using docusaurus.io.

    Christian Taylor carried recently a detailed analysis of our open-source +repositories. He collected many interesting metrics, which allows us to see +where we need to improve as an open-source project to make the Cardano project +and many smaller related libraries which we maintain be more open and available +for open-source contributors.

    The graph below shows which documents the 55 most important Cardano +repositories are missing the most: +Documentation Adoption +You can expect we will improve in these metrics in the coming weeks.

    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + + <![CDATA[Embedding Quality Workstream]]> + 2022-11-03-embedding-quality + + 2022-11-03T00:00:00.000Z + + High level summary

    We made good progress on most of the Action Items we agreed on Lisbon, like:

    • Cardano System Tests was fully open to public (tools, tests, results) +See cardano-node-tests webpage
    • We defined an user-facing-functionality template that is used with the cardano-cli team
      • this includes acceptance criteria & user stories, and definition of done
    • We are in the process of running the cardano-node-tests at commit & PR level in cardano-node (we are affected by the Cicero migration right now but we did most of the work already)
    • We started to apply a labelling convention on cardano-node issues that will be used to generate some visual dashboards with some metrics [TBD]
    • Ziyand Liu started an End-to-End Development and Testing Process for Plutus Features
    ]]>
    + + Dorin Solomon + https://github.com/dorin100 + + +
    + + <![CDATA[Consensus Team Update]]> + 2022-10-02-consensus + + 2022-11-02T00:00:00.000Z + + High-level summary

    During the past two weeks, the consensus team continued its work on testing the +UTxO HD prototype. We completed the era-transition and backing store tests, and +the mempool tests are advancing at a steady pace. Regarding our work in the +Genesis design, we continued our collaboration with the research and networking +teams, and we continue investigating strategies for making the chain-sync +jumping prototype faster.

    High-level status report

    • Finish the UTxO HD prototype: on track.
      • We worked on state-machine tests for the mempool, and spotted potential bugs +in the implementation. Investigation is ongoing.
      • We have a set of property tests for the backing store. We still need to +incorporate the improvements to the LMDB cursor API that these tests +made possible.
      • We merged the era-transition tests PR.
    • Genesis: on track.
      • Design work around Genesis continues in collaboration with researchers and +the networking team.
      • We continued trying to improve the performance of the chain-sync jumping +prototype. We gained additional insight on which parameters to tweak next. +In spite of the baseline still being faster, the current prototype already +achieves a significant speedup when compared to the naive approach of simply +running full chain-sync with all peers.
    • Tech debt: on track.
      • We clarified a common source of confusion around VRF tie-breaking and +cross-era chain selection.

    Workstreams

    Finish the UTxO HD prototype

    We continued working on property-tests for the UTxO HD prototype. In particular +we merged the era-transition tests +PR.

    Backing store property tests

    The backing store property tests +PR has been +reviewed. The next steps are:

    • Improve error handling and command generation.
    • Add coverage testing to check that we are not failing to cover interesting +test cases.

    The monadic cursor API +went through its first review round. The API is in a relatively stable state. +This PR also unifies the cborg and serialise-based interfaces to LMDB +operations. The next steps are:

    • Write +quickcheck-dynamic +state-machine tests for this API.
    • Adapt the changes in the serialisation interface in the backing store property +tests. This will involve adding boilerplate code in consensus to make up for +the removal of the cborg-based interface.

    LSM tree implementation

    We worked on the LSM tree +prototype. In +particular, we focused on tuning the LSM tree design to the different workloads +that consensus has (eg syncing, normal node operation, etc).

    Benchmarking the CSJ prototype

    Work on improving the chain-sync jumping performance is ongoing. In particular +we compared the performance of different jump intervals, which, somewhat +surprisingly, do not make a significant difference. In particular, we are seeing +periodic "plateaus" where the chain-sync tip does not progress, but they are +much longer for the prototype. Our hypothesis is that this seem to be due to a +combination of the garbage collector (GC) pauses, and the actual time it takes +the non-dynamo chain-sync peers to jump to the tip of the slot of the dynamo +fragment.

    In the coming weeks we will try to shorten these plateaus via a combination of +tweaking GC options and less synchronisation in the CSJ governor.

    The following plot shows the performance of the chain-sync jumping prototype +using different jumping intervals. It compares the syncing progress by plotting +the slots of adopted blocks against time. The baseline is still faster, however +it is worth noting that the current prototype already achieves a significant +speedup when compared to the naive approach of simply running full chain-sync +with all peers.

    The second plot shows the syncing progress sliced to a chosen ~5min interval, +and includes, in addition to the slots of adopted blocks, the slots of the tip +of the ChainSync fragment. This allows us to see how far ahead of the selected +tip the CS dynamo is, i.e. how much room we have for BlockFetch not to get +stalled. It shows periodic behaviour (due to the forecasting limit), and shows +that the CS fragment tip is not progressing for significant periods +("plateaus").

    Technical debt

    We clarified a +common source of confusion around VRF tie-breaking and cross-era chain +selection. This PR involved correcting potentially misleading names of +VRF-related functions, and providing context for a particular VRF value is +used for tie-breaking.

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Ledger Team Update]]> + 2022-11-02-ledger + + 2022-11-02T00:00:00.000Z + + High level summary

    We have made the decision to use the +formal ledger repository +in place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure +to the model. In particular, we now have a lot of support for axiomatic set theory. +While the next ledger era is still in the design phase, most of the team remains working +on technical debt. +In particular, we have moved a lot more code out of the Shelley specific modules and into +a ledger core module, we have finished up our benchmarking around the problematic TICKF +ledger transition (while improving the performance), made conveniences to the development +environment, cleaned up all the recent changes to the cost model, added a lot of documentation, +fixed some flaky tests, and deleted some dead code.

    Lower level summary

    Axiomatic Set Theory

    The formal ledger model now has support for much of the set theory that we make use of in +the formal ledger specifications. See [pull-20].

    Completed Technical Debt

    • We have addressed issues with two of our most problematic and flaky tests. +See [pull-3039] and [pull-3093].
    • We have added more documentation and tests to the Twiddler module. This is a module which +makes our CBOR serialization round-trip tests much more robust, and will also hopefully +help enforce the mandate for downstream libraries to never re-serialize data that needs +to be hashed. See [pull-3073] and [pull-3095] +(we cannot merge 3095 just yet, due to a preference for merging other features).
    • We have finished our long analysis of the problematic TICKF transition. +We now have a lot of benchmarks surrounding this code, and have added performance improvements. +See [pull-3068] and [issue-3035].
    • We have restored support for +ghcid +in our repository. This is a tool for developing with Haskell that many of us find greatly +improves our productivity by providing us with constant feedback from the type checker. +See [pull-3112].
    • After much activity on the cost model, we have done some final clean up of the code. +See [pull-3075] and [pull-3101].
    • We moved a lot of the existing user facing documentation regarding native tokens into the +ledger repository, and cleaned it up +(most of the heavy lifting was done by our amazing technical writers). +See [pull-3091].
    • We removed dead code. See [pull-3089].
    • We moved a lot of code from the Shelley specific libraries to the ledger core library. +See [pull-3109] and [pull-3110].
    • We've removed more of the awkward legacy template Haskell names. +See [pull-3108].
    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2022-11-02-node-cli-api + + 2022-11-02T00:00:00.000Z + + 2022-11-02 - 2022-11-15

    High level summary

    • Documentation improvments
    • Merged community contributions
    • Exposing types from cardano-api requested by the community/other teamss
    • Test output has been improved so diagnosing failures is now easier
    • Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)
    • Refactoring of cardano-testnet making it more useable as a library (ongoing)
    • Release 1.35.4 was merged & released

    Completed

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[Node Release Team Update]]> + 2022-11-02-release + + 2022-11-02T00:00:00.000Z + + Node Reelease Update

    2022-10-19 - 2022-11-02

    Executive Summary

    The team is formalizing the new release process and team structure. Both preview/preprod environments have been reset, +a temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8.

    1.35.4 release candidates have been created and are being tested internally and externally.

    Completed

    In Progress

    ]]>
    + + Samuel Leathers + https://github.com/disassembler + + +
    + + <![CDATA[System Test Team Update]]> + 2022-11-02-system-test + + 2022-11-02T00:00:00.000Z + + High level summary

    We have been focused on:

    • Fully opening our test results (on top of the existing tests & tools):
      See cardano-node-tests webpage.
    • Started to test and automate the new functionalities added in the 1.35.4-rc1 node tag
      See test results tracking page.
    • Made some improvements to the automated db-sync sync tests
      See db-sync tests.
    • Multiple cleanups and updates to the cardano-node-tests framework
    • Updated the nightly pipelines for the cardano-node-tests after the Babbage HF
    ]]>
    + + Dorin Solomon + https://github.com/dorin100 + + +
    + + <![CDATA[DB Sync Team Update]]> + 2022-11-01-db-sync + + 2022-11-01T00:00:00.000Z + + High level summary

    The DBSync team is preparing a release which introduces schema simplifications, removes indexes, +unique and foreign keys. It also provides a way to fix older values and migrates without the need to +resync from genesis.

    Lower level summary

    Schema simplifications

    Indexes, Unique and Foreign keys are removed in order to speedup syncing +#1295 +The same pr also introduces a different way to rollback, which doesn't rely on foreign keys and +indexes.

    Performance

    The DBSync team ran a big number of benchmarks and investigated ways to speedup syncing. A +conservative number of these will be included in the next release and the rest can be found in +performance view.

    Migrations and resyncing

    The next release will be 13.1.0, it will enable a migration without the need to resync. It will also +introduce a procedure that fixes bytes values of Datum and RedeemerData in existing databases +#1294

    Release

    The release has been mostly cherry-picked from master +#1294 and its scope can be seen +release view

    ]]>
    + + Kostas Dermentzis + https://github.com/kderme + + +
    + + <![CDATA[Hydra Team Update]]> + 2022-10-28-hydra + + 2022-10-28T00:00:00.000Z + + High level summary

    This week, the hydra team completed several user experience improvements to the +hydra-tui and hydra-node, and delivered a first version of persisted head +states by publishing release version +0.8.0. +Besides this, they met with researchers on topic of the HeadV1 specification and +kicked-off work on the RFP for an external audit of the Hydra Head protocol and implementation.

    What did the team achieve this week

    • Completed the UX improvements on the hydra-tui
    • Released version 0.8.0, which delivers a first version of persisted head states
    • Met with researchers on the HeadV1 specification
    • Started work on the RFP for our external audit

    What are the goals of next week

    • Complete ADR18 implementation and get it merged
    • Start work on event-sourced persistence #580
    • Have a first plutus script gap closed #452
    • Revamp CI to use flakes and build macos artifacts (stretch goal: migrate to cicero for nix builds)
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Network Team Update]]> + 2022-10-28-network + + 2022-10-28T00:00:00.000Z + + High-level summary

    The team has focused on debuging & fixing bugs for the P2P single relay release, which included

    • diagnosing, fixing and writing tests for a bug in peer-state-actions which +fortunately hasn't been released;
    • diagnosing & preventing misconfiguration of DNS

    We also focused on developing peer sharing. We also held a session with +the scientists on eclipse evasion.

    Detailed description

    P2P Network Stack

    During the past two weeks the team focused on p2p single relay release and peer +sharing. We found and fixed an important bug recently introduced in one of the +components of p2p networking stack (fortunately never released). Together with +a fix, we designed a unit test diffusion simulation as well as quickcheck +property test (both could reproduce it). We also changed the code in a way that +if such a bug is reintroduced in the future, it will be obvious to diagnose. +For more see:

    Initial benchmarking run of the P2P code was executed. The results where +unlike what we see on the mainnet. We found a possible misconfiguration of the +cluster (caused by 0 TTL on domain names), which could be the direct cause of +it. We wrote a PR which rules out such misconfiguration. We are awaiting on +the next benchmarking results. See more at:

    ouroboros-network#4106

    We also started working on P2P single relay release. The PR +ouroboros-network#4120 +includes 108 patches cherry-picked from the master branch. We started +working toward integration these changes against the release branch of +cardano-node. Early next week we ought to be able to have an early version +of cardano-node with non experimental P2P support!

    For more detailed release plan please see P2P - Single +Relay +issue.

    Consensus

    We identified and fixed missing error reporting in consensus +initialisation phase. See more at +ouroboros-network#4015

    Cardano Node

    We also made changes in cardano-node in order to give better experience for +node operators. This includes updating severities of some of the traces as +well as implementing new format of the p2p topology file. For more see:

    Peer Sharing

    We continued working on implementation of peer sharing. We have an early +implementation which will be reviewed and analysed in next weeks. We started +working on cardano-node integration. We need +PR #4392 to be merged +before such integration will be able to land in cardano-node, although this +is not blocking us currently. See more at:

    Eclipse Evasion

    We held a session which included Alexander Russel, Sandro Coretti-Drayton and +Nick Frisby from the consensus team. We discussed high lever design of the +eclipse evasion scheme, which is important for the design and implementation of +ouroboros-genesis. We got a positive feedback from the researchers.

    IO-Sim

    In this period we made little progress towards releasing IO-Sim on Hackage. +A single PR which added +a few missing instances of the STM monad.

    Open Source

    We made sure the CI runs for PRs which comes from forks (which is important to +accept contributions from 3rd parties).

    Mithril Cardano Integration

    We held initial discussions with Arnaud Bailly about possible path to integrate +mithril to cardano-node and take advantage of the ouroboros-network +diffusion layer.

    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + + <![CDATA[Performance & Tracing Team Update]]> + 2022-10-28-performance-and-tracing + + 2022-10-28T00:00:00.000Z + + High level summary

    On the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline.

    On the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario.

    Executive summary

    • The new tracing system public release is getting closer, as we're resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale.
    • The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment.
    • The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE.
    ]]>
    + + Serge Kosyrev + https://github.com/deepfire + + +
    + + <![CDATA[SRE Team Update]]> + 2022-08-12-sre + + 2022-10-28T00:00:00.000Z + + High level summary

    The SRE team is heavily working on the Equinix Metal migration, replacing Hydra +with Cicero, and a new version of Spongix.

    Lower level summary

    OpenZiti

    • Work is ongoing on our OpenZiti integration into Bitte in [bitte-zt].
    • CI-World deployment of Darwin CI Ziti service in [ci-world-commit-d40f4d].
    • Multiple issues filed, and a lot of discussion with the OpenZiti developers, +we're making pretty rapid progress thanks to them.
    • Work on getting Equinix baremetal machines integrated into AWS World Bitte +clusters utilizing a Ziti ZTNA network overlay to bridge the networking of +the two environments and get IAM extension to Equinix machine for Nomad +client onboarding.
    • A Nix Flake for most of our OpenZiti dependencies including the Console, +Controller, Edge Tunnel, and Router is now at [openziti-bins].
    • The Flake also includes a WiP NixOS modules for these components.
    • Tested Ziti Desktop Edge official app for Darwin x86_64 w/ GUI -- works with +no issues seen so far
    • Moved the console to traefik routing service (zac.$DOMAIN) and +controller/edge router stay at zt.$DOMAIN, but have registered consul +services

    Cicero & Tullia Integrations

    Cicero & Tullia Features

    • Improvements to Tullia task aggregation to make [cardano-addresses] build +correctly.
    • Better tullia CUE lib default for tags [tullia-commit-4df3c5d].
    • Put cache.nixos.org back in cache.iog.io's upstreams. This is now +considered a public cache again, and without it some Cicero evaluations had +to build huge packages.
    • Started working on a flake-parts module for Tullia.
    • Started working on cutting down Tullia task build time by putting facts in +JSON files.
    • Fixed running into kernel arg limit by reading tullia's DAG from a file
    • Merged [tullia-pull-9] that fixes several issues related to error reporting. +and escaping.
    • Added Mac builders in Cicero on CI-World.
    • Started work on Tullia invocation caching.

    Spongix

    • A lot of progress on an SQlite backed version of Spongix, it already supports +the full HTTP binary cache protocol but still lacks comprehensive testing and +some tuning, as well as recursive lookups.
    • First steps in the implementation of the nix-daemon ssh-ng protocol so +Spongix can be used via SSH and we can get rid of basic auth.

    Bugs

    • Discovered Cicero bug where Nomad reschedules cause the Github commit status +to get stuck in pending
    • Discovered Cicero race condition bug around concurrent transactions for +codependent actions.
    • Fixed tullia task order bug in [cardano-addresses]
    • Diagnose Cicero action not triggered in [abcirdc]
    • Fixed meta/description of the Tullia package in [tullia-pull-7]
    • Add Vault token loop alerts in [bitte-cells-pull-40]
    • Ongoing investigation on recurring Patroni and nomad-follower issues related +to token rotation.
    ]]>
    + + Michael Fellinger + https://github.com/manveru + + +
    + + <![CDATA[Crypto Team Update]]> + 2022-10-27-crypto + + 2022-10-27T00:00:00.000Z + + High level overview

    The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to +meeting the acceptance criteria in cardano-base, +which lacks some editorial comments on the style of dQuandrant's PR, the inclusion of one additional test, and +we are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution, +but also progressing on the implementation.

    Low level overview

    SECP built-ins

    • (missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in PR 313
    • CIP-0049 was addressed in the editors meeting, and PR 250 was merged
    • The unit-tests PR 320 is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.

    KES agent

    • We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them.
    • We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s).
    ]]>
    + + Iñigo Querejeta Azurmendi + https://github.com/iquerejeta + + +
    + + <![CDATA[Hydra Team Update]]> + 2022-10-21-hydra + + 2022-10-21T00:00:00.000Z + + High level summary

    This week, the hydra team reviewed and addressed several open comments on the +new HeadV1 specification, completing a list the of identified gaps between +specification and implementation while doing so. In the wake of the recent +demonstration of SundaeSwap running their DEX in a Hydra Head, they met with +them to capture feature ideas & incorporate their feedback on the roadmap, as +well as potential research avenues.

    What did the team achieve this week

    What are the goals of next week

    • Complete the last two items required for a version 0.8.0.
    • Cut the next release, version 0.8.0
    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Have the CI build macos artifacts
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2022-10-19-node-cli-api + + 2022-10-19T00:00:00.000Z + + 2022-10-19 - 2022-11-01

    High level summary

    This sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node's mempool for the following information:

    • Ask the node about the current mempool's capacity and sizes
    • Request the next transaction from the mempool's current list
    • Query if a particular transaction exists in the mempool

    Outside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric tx_submit_fail_count has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:

    • Documentation improvments
    • Release 1.35.4 was merged & released
    • Exported various types from cardano-api that were requested by community members

    Completed

    cardano-cli

    cardano-api

    cardano-submit-api

    cardano-node

    cardano-testnet

    • None

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[Consensus Team Update]]> + 2022-10-18-consensus + + 2022-10-18T00:00:00.000Z + + High-level summary

    During the past two weeks, the consensus team worked on adding property test for +different aspects of the UTxO HD prototype: era transitions, mempool, and +backing store. Thanks to these tests we were able to uncover a bug in the +prototype. On the Genesis front, we benchmarked a different version of the +ChainSync jumping prototype to try to improve its performance, but this did not +result in any noticeable speedup.

    High-level status report

    • Finish the UTxO HD prototype: on track.
      • We focused on increasing test coverage for the UTxO-HD prototype:
        • We started implementing Cadano-eras transition property-tests.
        • We started implementing state-machine property-tests for the mempool.
        • We merged the mempool rewrite.
        • We started working on state-machine tests for the backing store. This +uncovered a bug in the range-read implementation of the LMDB backing +store.
    • Genesis: on track.
      • We benchmarked a version of the Genesis ChainSync Jumping prototype that +spreads out the ChainSync updates over a longer period of time. This did not +result in any noticeable speedup.
      • We investigated the overhead introduced by non-ChainSync components, but no +conclusions could be drawn from the benchmarks we ran.

    Workstreams

    Finish the UTxO HD prototype

    We focused on increasing test coverage for the UTxO HD prototype. We also merged +the mempool +rewrite.

    Era transition property tests

    We started implementing Cardano era transition property +tests, +which are needed for making sure that the ledger tables get updated in the +right way when we move from one era to the next. There are at the moment two +important transitions.

    • Byron to Shelley: where all the UTxO is transferred from in-memory Byron +state (which has no tables) to the ledger tables of the Shelley state.
    • Shelley to Allegra: where the AVVM addresses must be deleted.

    We have tests for the Byron to Shelley transitions. We are working on adding +the remaining ones.

    Mempool state-machine tests

    We started implementing state-machine property tests for the +mempool. +The mempool is currently tested via pure property tests, and use a ledger +state without tables. With the introduction of UTxO HD, testing the concurrent +behavior of the mempool became of crucial importance (eg now we have to +acquire locks to flush the backing store). In addition, we need to test a +ledger state with tables. These needs led to the creation of a new set of +property tests. In particular we aim to run parallel state-machine tests that +exercise the mempool in a way similar to how the node would make use of it.

    Backing store property tests

    We started working on state-machine tests for the backing +store that UTxO +HD uses. The property tests uncovered errors in the range-reads implementation +of the LMDB backing store. To facilitate fixing this bug, we made +changes to the Haskell +LMDB bindings.

    Benchmarking the CSJ prototype

    Prompted by previous benchmarks showing significant improvements in sync time by +using more capabilities, we implemented a way to spread out the ChainSync +updates over a larger period instead of firing them all at the same time. This +didn't result in a noticeable speedup.

    We also benchmarked the prototype with CSJ disabled (such that just the dynamo +peer is running ChainSync, but e.g. BlockFetch still sees all peers) to rule +out/confirm overhead by non-ChainSync (mainly BlockFetch) related components. +This results in era-specific behavior (speed is like the prototype in Byron, but +like the baseline in Shelley). This deserves a closer look in the future.

    This diagram shows the respective syncing progress, starting at Genesis and +continuing a good part into Shelley (with the dashed line indicating the +Byron-to-Shelley transition).

    • Red: baseline
    • Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps.
    • Blue: like Green, jumps are spread out.
    • Orange: variant with no jumping, to measure unrelated overhead.

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Hydra Team Update]]> + 2022-10-14-hydra + + 2022-10-14T00:00:00.000Z + + High level summary

    This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the hydra-node over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks "past the opening of a Head". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.

    What did the team achieve this week

    • Last week we thought we were done with ADR18, but were not ...
    • ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.
    • Implemented a first version for persistence #187 in response.
    • Enhanced CI to publish test results on our website
    • Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!
    • Pulled static executable feature #200 into scope, implemented it and merged it!
    • Received and read through a project proposal by a vendor (building a Hydra platform).

    What are the goals of next week

    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Cut the next release, version 0.8.0
    • Address open comments on specification document & complete the list of identified gaps between specification and implementation #452
    • Have the CI build macos artifacts
    ]]>
    + + Sebastian Nagel + https://github.com/ch1bo + + +
    + + <![CDATA[Ledger Team Update]]> + 2022-10-14-ledger + + 2022-10-14T00:00:00.000Z + + High level summary

    The ledger team is still primarily focused on addressing +technical +debt. +We now have the infrastructure for versioning our serialization schemes, +which we continue to put into action. +We have made first steps towards getting proper support for the +formal ledger repository +(in particular, we've added nix builds and +continuous integration support). +We are wrapping up an investigation of the performance of a critical +function used by the consensus layer for leader checks. +Finally, we are improving the packaging and versioning of our code.

    Lower level summary

    Completed Technical Debt

    • Because the Shelley ledger era was a complete re-write of the Byron ledger era, a lot of +our code lives in the cardano-ledger-shelley package, though with hindsight we can say that +much of it should live in cardano-ledger-core. +We continue to move things to cardano-ledger-core, and have much more to come. [pull-3059]
    • We now have the infrastructure to support versioned serialization schemes. +The inability to do this has caused us a lot difficulties, +such as [issue-3003], [issue-2965] and [issue-2444]. +We are still in the process of switching to the versioned serialization scheme +(such as [pull-3078]), +but the infrastructure was completed in [pull-3063].
    • We now have proper nix and CI support for the formal ledger project. [pull-19]
    • A separate team is helping bring support for +CHaP +to all the cardano-node repositories. +We have been helping out with this effort.
    • A separate team continues working on upgrading all the +cardano-node repositories to work with ghc 9.2.4. +We have been helping out with this effort.

    In-progress Technical Debt

    We also have several fairly large pull-requests in review +that we are working on.

    • In an on-going attempt to build out a more user-friendly API, +we continue to remove HasField instances in place of using micro-lenses. +The protocol parameters, in particular, are being worked on. [pull-3045]
    • We are also renaming record fields to be consistent across the repository. [pull-3062]
    • We are now cleaning up all the work we did to understand the performance +of the TICKF transition. We have some improvements to the computatation +as well. [pull-3068]
    • We are adding more documentation, in particular to our Twiddler functionality. [pull-3073]
    • The formal ledger is adding support for finite set theory. [pull-20]
    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Consensus Team Update]]> + 2022-10-05-consensus + + 2022-10-05T00:00:00.000Z + + High level summary

    During the past two weeks, the consensus team worked on improving the +performance of the ChainSync jumping logic, which is needed for Genesis. We also +rewrote the implementation of the mempool in the UTxO HD prototype which solved +the issues that prevented us from running system level benchmarks. Also on the +UTxO HD front, we have an improved implementation of the sequence-of-differences +(a crucial piece of UTxO HD), and we also elaborated a test sign-off list for +the UTxO HD feature.

    Executive summary

    • With the latest implementation of ChainSync jumping we are closer to the +baseline performance. In particular, the prototype seems to benefit from the +extra concurrency provided by additional capabilities.
    • We rewrote the implementation of the mempool in the UTxO HD prototype. This +rewrite was required due to performance problems we observed when running the +workbench. +These performance problems prevented us from running system level benchmarks. +The rewrite solved these issues. After the UTxO-HD: mempool +rewrite PR is +merged, we will contact the Benchmarking team so that they run the system +level benchmarks.
    • The implementation of sequences of differences based on anti-diffs was +integrated into the UTxO HD prototype. It is pending +review and +we also need to run replay and syncing benchmarks to confirm that this will +deliver a performance improvement, as observed in our micro-benchmarks.
    • The UTxO HD prototype +inspection +resulted in a list of +tests +needed for consensus to consider the UTxO HD prototype as fully tested.

    Additional information

    Genesis

    Benchmarking setup: 50MBit/s, 50ms latency

    • Red: baseline
    • Green: Current CSJ prototype, 10 peers, jumps every 3000/f slots.

    As ChainSync Jumping involves many concurrent network operations at every jump, +we tried to run the node with 6 instead of the default 2 capabilties.

    • Orange: baseline with 6 capabilities
    • Blue: CSJ prototype with 6 capabilities

    This diagram shows the respective syncing progress, starting at Genesis and +continuing a good part into Shelley (with the dashed line indicating the +Byron-to-Shelley transition).

    Further work includes whether we can tune the prototype to better handle few +capabilities, or to adapt the default number of capabilities (potentially just +while syncing).

    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[DB Sync Team Update]]> + 2022-10-04-db-sync + + 2022-10-04T00:00:00.000Z + + DBSync Update

    Fast restarts

    We fixed a long overdue issue in db-sync which caused long delays on restarts +1266. This has been +one of db-sync main objectives for this period. Restarts are now very fast, +because db-sync deletes almost nothing from the db, it just replays the ledger rules until it +reaches the tip of the db. The fix also improves reconnection speed, in cases where the node +restarts or the connection is temporarily lost. It also speeds up even more in cases where due to a +deployment mess up a very old snapshot or no snapshot at all is used.

    Property based testing

    We added stateful property based testing, using quickcheck-state-machine +1269. These tests use empty or +almost empty blocks to test the new behaviour of restarts and rollbacks.

    These tests generate arbitrarily a list of symbolic commands from these:

    RollForward Int
    RollBack BlockNo
    StopDBSync
    StartDBSync
    RestartNode
    AssertBlockNo BlockNo

    The commands are translated into real commands. For example RollForward Int will forge a new block +that fits on the current chain. These real commands are executed against db-sync using the mock +chain-sync server. The symbolic commands are executed against a vesy simplistic Model of db-sync +which looks like this:

      Model
    { serverTip :: BlockNo
    , dbSyncTip :: BlockNo
    , dbSynsIsOn :: Bool
    , dbSynsHasSynced :: Bool
    }

    Finally a number of postconditions are checked, related to the eventual block number of db-sync.

    Tech Debt

    We handled a number of tech debt in +1275 +This improves the code format of db-sync, deletes many queries that were never used and groups the +others. This tech debt resolution not only improves the experience of working in db-sync, but can +facilitate some of our other objectives, as it makes it very explicit which queries are used +during syncing and which indexes are necessary.

    Smash

    We worked on fixing an issue related to fetching pool metadata +1276. +The issue which is described in +1270

    ]]>
    + + Kostas Dermentzis + https://github.com/kderme + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2022-10-04-node-cli-api + + 2022-10-04T00:00:00.000Z + + Node-Api-Cli Update

    2022-10-04 - 2022-10-18

    Executive Summary

    The majority of the team's time was spent between getting 1.34.4 ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to cardano-cli.

    Completed

    cardano-cli

    cardano-api

    cardano-node

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    + + <![CDATA[Ledger Team Update]]> + 2022-09-30-ledger + + 2022-09-30T00:00:00.000Z + + Ledger Update

    We have continued focusing nearly entirely on addressing technical debt. +A lot of design work has begun for the next ledger era, +but we do not yet have anything concrete to share.

    Technical debt issues completed

    • [issue-1676][pull-2992] We have finally removed the ledger dependency on the +cardano-prelude package. It was barely used in the ledger repository, and it added a dependency +that we did not want to maintain. It was a bit difficult to remove, and we had +to coordinate removing it from cardano-base. +A lot ended up going into pull-2992, due to the coordination effort, and we ended +up updating Plutus as well. +This means that we've now also made a lot of progress on the problematic cost model serialization +issues described in issue-2902. +In particular, after we resolve issue-3014, we will not have to wait an epoch before +releasing a cost model for a new version of Plutus, as we had to do for the Vasil HF.
    • [issue-3046][pull-3055] We moved a module that is now only used in Byron to a Byron package.
    • [issue-3047][pull-3054] We improved the interface to the Value (multi-asset) type.
    • [pull-3044] We debugged and fixed a tricky compilation issue. Certain kinds of field updates +were adding approximately 20 minutes to our compile time!
    • [issue-2932][pull-3036] As a part of our ongoing re-organization of the codebase, we +have added a Cardano.Ledger.[Era].Core module to each ledger era that has a TxBody class. +Most classes defined in the era should go in this new module. +We also re-export the Cardno.Ledger.Core module and the previous Cardano.Ledger.[Era].Core +modules from each era.

    Technical debt in progress

    • [issue-3034][issue-3035][node-issue-4421] We are continuing to write benchmarks to understand exactly where +all the time is being spent on executing the TICKF transition. +The consolidation of the per-stake-credential stake distribution to the per-stake-pool +distribution does seem to account for a large amount of time (near a second as written, which we +have down to about half a second with some optimizations), +but this does not account for everything. +Applying the reward update may also be a big contributing factor.
    • [pull-3033][pull-3038][pull-3041] A separate team is working on upgrading all the +cardano-node repositories to work with ghc 9.2.4. We have been helping out with this effort.
    • The nix scripts used to build our new +formal ledger model +do not work consistently for everyone, and we have been working on fixing these issues.
    • [issue-3014] We are still working on adding a versioning scheme to all of the ledger +serializers.
    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Network Team Update]]> + 2022-09-27-network + + 2022-09-27T00:00:00.000Z + + Network Update

    Ouroboros Network

    Ouroboros Consensus

    • Recently we found out that the consensus does not log exceptions thrown during +intiialisation. This was fixed in +PR input-output-hk/ouroboros-network#4015 +As part of this pull request we also changed that all exceptions rethrown by +the connection handler thread are wrapped in ExceptionInHandler.

    Some older items, which were not announced

    • We identified and fixed an issue related to socket activation (socket options +where not set for sockets passed through socket activation). +PR input-output-hk/cardano-node#3979 +This fix will be released in the next cardano-node release.

    Cardano Node

    • We extended the NixOs service module so that one can modify socketPath, +runtimeDir, databasePath, traceSocketPathAccept, +traceSocketPathConnect and stateDir options. +PR input-output-hk/cardano-node#4196

    IO-Sim

    We resolved a number of issues before release of io-sim on hackage:

    See PR #24.

    We also improved experience for contributors of io-sim and typed-protocols by adding issue templates:

    Typed Protocols

    Input Endorsers Simulation

    New features include:

    • Histograms of block arrival frequency, for both network (inbound) and CPU +(block validation). This is interesting to check that we're not overloading +the CPU block validation capacity, or network link capacity. Or alternatively +to observe the behaviour in an overload situation if we set the block +generation rate high enough.

    • Pie chart of utilisation of TCP links. This shows how small a fraction of +links are being used at any one time, and shows that once the system "warms +up" and is operating stably, most block delivery is ballistic.

    • Showing off the new screen layout combinators, that let us put multiple +charts, titles etc on screen at once and scale them to whatever screen or +video resolution we like without having to tweak numbers (this example is +scaled to fit 1080HD video resolution).

    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + + <![CDATA[Consensus Team Update]]> + 2022-09-20-consensus + + 2022-09-20T00:00:00.000Z + +
  • We proposed a fix for the performance degradation observed when running +distributed multi-node benchmarks in the UTxO HD feature branch. While this +fixed the problems observed when running local benchmarks, it broke the +ThreadNet tests due to concurrency issues. Therefore, we think it is wise to +start redesigning the UTxO HD mempool integration.
  • We did several rounds of code review on the alternative implementation of +diff-sequences required by the UTxO HD feature based on the idea of +anti-diffs. This alternative implementation is close to being merged, and the +next step is to integrate this to the UTxO HD branch, so that we can run +ad-hoc replaying and syncing from scratch benchmarks and compare these with +the baseline. The micro-benchmarks we elaborated for the alternative +implementation show speedups of up to 4x, so we are optimistic about the +performance of replaying and syncing from scratch benchmarks, however it is +important to notice that due to the nature of UTxO HD we will still be +slower than the baseline.
  • The final draft of the Genesis implementation specification is ready for +review.
  • We implemented a prototype for the happy path of Genesis' ChainSync Jumping +(CSJ). The prototype is slower than the baseline, however it is not the latest +version of the prototype and the jump interval is very small.
  • Work on integrating Conway has stopped since +priorities have changed.
  • We started work on benchmarking epoch-boundaries and epoch overhead +pr-4014. To this end, we made use of a modified version of our +db-analyser tool. We ran the new benchmarking setup using the Cardano +mainnet chain, and we can see that block tick and application take +substantially longer at epoch boundaries, although there are a couple of slots +during an epoch in which these computations take more than normal. We notified +the ledger team about these findings. We will use this modified version of +db-analyser to investigate the epoch overhead.
  • Workstreams

    UTxO HD

    • Spent quite some time investigating the root cause of the degradation in +performance observed in the benchmarks. We run the make forge-stress +benchmarks locally in order to debug this behavior.

      • Transaction batching doesn't make a notable difference in the outcome +(considering we are using the in-memory backend).

      • The mempool batching implementation required asynchronous transaction +validation which is a violation of the LocalTxSubmission protocol +contract and therefore if we continued on that route, the impact would +have been quite big.

      • The STM logic we implemented by using a TMVar for the mempool internal +state was buggy and under certain circumstances it seemed to lock. +Reverting the mempool internal state to be stored in a TVar seems to +solve this problem.

      • The results we get after this change look almost identical to the ones +from the baseline.

    • The anti-diff prototype (PR +#3997) has +been reviewed and is close to being merged.

      • A follow-up issue (issue +#4010) +to integrate the anti-diff prototype in the various consensus packages +was created. A first version of the integration exists, and all tests +pass. A next step is to get some indication of the "real" performance gain +by profiling db-analyser (or cardano-node).

    Genesis

    • Final draft of the Genesis implementation specification, now up for review.

    • Local benchmark setup for parameter tuning via the happy path ChainSync +Jumping (CSJ) prototype (Issue 3987).

      • Context: Our Genesis design requires us to check in with a large (~20) +number of servers periodically while syncing. These servers are offered +jump requests via the ChainSync protocol (hence the name), which they can +accept or decline. If a peer declines, the Genesis rule allows us to +determine whether a node actually has a better chain.

      • The "happy path" is when no peer declines a jump. We want this to have +close to no overhead compared to status quo, i.e. syncing without Genesis.

      • We implemented a prototype for this happy path, and are now starting to +test in various configurations (number of peers, latency, bandwidth) to +tune the performance of ChainSync jumping, i.e. how complicated our logic +of choosing when to jump needs to be.

        Example:

      • Simulated connection: 50 MBit/s, 50ms latency

      • Jump interval: 3000 slots (on the low end, could be increased to up to +3k/f)

      • Red: baseline (1.35.3), one peer in topology file

      • Blue: Preliminary version of our prototype, with 10 peers.

        It is slower by about ~30%, but it is not the latest version of the +prototype, and the jump interval is very small, making CSJ more of a +bottleneck.

    Technical debt

    • Fix flakiness in ChainDB QSM tests (PR 3990).
    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[DB Sync Team Update]]> + 2022-09-19-db-sync + + 2022-09-19T00:00:00.000Z + + DBSync Update

    New Tag

    We created a new db-sync tag 13.0.5 which addresses shortcomings of the last +release 13.0.4. It is currently under testing. +The Changelog is +here and in more details:

    • We fixed fees for tx with phase 2 failure that didn't include a total collateral field. +1248

    • We fixed an issue that could cause db-sync to crash if a specific rollback occured. +1247

    • DBSync will now avoid reserialising data, especially Datums, which not only slows down db-sync but +could result in the wrong CBOR encoding being inserted. +1217

    • All the fixes above come with unit tests which validates the fix.

    • Added support for preprod and preview from docker. DBSync no longer needs to include the configs +for different networks, these are directly fetched from the cardano world. +1254

    • We added better support from docker for the new disable options and the overall documentation. +1260

    All the above were also backported to the master branch

    Open source

    We made the db-sync board public, so +everyone can have access on the issues we prioritise. +We also added new tasks to the board, some of them could be approachable to newcomers or people who +want to contribute.

    Progress on tech debt and new features

    • 1223 was merged, which removes the +foreign keys from the db schema. This opens the road to a number of optimizations.

    • An additional fix on top of the previous work was added +1250

    • An initial version where DBSync does not rollback on restart is done here +1266. +This allows db-sync to restart much faster, without the need to delete data and reinsert them. In +the future it can also facilitate migrations in cases where the ledger snapshots have a breaking +change, without the need to resync everything from genesis.

    ]]>
    + + Kostas Dermentzis + https://github.com/kderme + + +
    + + <![CDATA[Ledger Team Update]]> + 2022-09-16-ledger + + 2022-09-16T00:00:00.000Z + + Ledger Update

    We have been focused nearly entirely on addressing technical debt.

    • We introduced more consistent naming across eras, this time for the auxiliary data. +See 3032.
    • We made clear how the consumed functions differs between eras (which was a previous source of +confusion), and added some related support to the fledgling ledger API. +See 3016.
    • We added clarity and organizational consistency to the main ledger era type synonyms. +See 3017.
    • We removed code duplication related to the input data hashes. +See 3018.
    • We split up a large module into smaller components. The large module was actually causing our +CI to time out. +See 3020.
    • We cleaned up stale information in our cabal files, and upgraded cabal 3.8. +See 3023, +3031, +and 3028.
    • We made consistent, standalone TxOut (transaction output) modules for every era. +See 3024.
    • We brought consistency to a maddening inconsistent use of type variables indicating the specific +choice of cryptographic primitives. In particular, all uses of crypto have been renamed to c. +See 3027.
    • We did a clean up of the types in the Alonzo era. In particular, we switched to more parametric +types that will compose better in the future and which simplifies the constraints. +See 3029.
    • We consolidated some existing fragmented logic regarding how we gather the scripts needed for a +given transaction. This is a much needed cleanup to prevent future mistakes. +See 3019.
    • We fixed a problem with our generators that was causing a fair number of our property tests to +fail in CI. +See 3039.
    • We have started the work to update Plutus. This will bring support for SECP in the next major +protocol version, and also address a +problem +that we current have evolving the cost models. +See 3030.
    • We addressed a small issue that came up when integrating the conway era downstream, namely +the lack of some serialization instances. +See 3022.
    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Ledger Team Update]]> + 2022-09-01-ledger + + 2022-09-01T00:00:00.000Z + + Ledger Update

    Since finishing up support for the Vasil Hardfork, the ledger team has been +focused on two main things: a new ledger era and technical debt.

    New minimal ledger era

    We have implemented a new ledger era named conway which is nearly identical +to the babbage era. This has been the first time that we have been able to see +what a minimal ledger era looks like. We have finished this task, modulo any +integration issues that might come up. The only thing that the conway era +does differently from the babbage era is provide support for rotating +the master keys using the hardfork combinator's state translation. +We may end up adding features to the conway era, but it is a nice exercise +seeing what it looks like to get a minimal ledger era supported in all the +downstream components.

    Addressing technical debt

    We have been addressing technical debt, mostly in an effort to make the +repository a more friendly code base to work in.

    • We have begun work on a ledger API, called cardano-ledger-api.
    • We have done a big re-design of the major type classes used in the ledger. +With hindsight on our side, we now have something much more organized and +easier to use.
    • We have done a lot of re-naming. The names across eras are now much more +uniform, avoid certain confusions that plagued us, and are clearer in where +they are from.
    • We have reduced a lot of code duplication that could lead to bugs if you +do not have the whole code base in your head.
    • We have added a handful of performance improvements.
    • We added type safety in a number of locations. In particular, the type of +values that can be minted in a transaction no longer allow for Lovelace +in the type, and some functions which used to handle both timelock scripts +and plutus script now correctly enoforce at the type level that only one of +them can be used.
    • We made our generators so that they now produce a much richer set of +valid serializations. There is room within CBOR to serialize the same +data structure in multiple ways, and it is helpful to have the generators +use a wide variety.
    • We have begun re-organizing our test suites.
    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Consensus Team Update]]> + 2022-08-31-consensus + + 2022-08-31T00:00:00.000Z + + Executive summary
    • We did most of the heavy lifting required to integrate the Conway era.
    • We have property tests for the UTxO HD backing store API implementations. A +possible bug was identified. Work is ongoing to make sure the property-tests +cover all the relevant cases.
    • We implemented and benchmarked the "anti-diff" prototype to speed up the UTxO +HD functionality. Results show a rough speedup of 4x to 5.5x across +several scenarios. Note that: "Data reported by tasty-bench is only of +indicative and comparative significance.". +We are investigating additional performance improvements. The "anti-diff" +prototype and benchmarks are still pending code review.
    • We elaborated a draft specification for the Genesis implementation and +ChainSync jumping optimization.

    Workstreams

    Conway

    • Integration PR of the minimal Conway era (Issue #3963, PR +#3971).
    • Discussions with Ledger revealed possible sources of confusion about which +data should be changed in the Conway era. As a result, a new technical debt +issue was raised, which does not block the integration of the Conway era +(Issue #3976).

    UTxO HD

    • Issue #3954, branch: The functionality of a +backing store, which is the interface to the on-disk part of ledger state in +UTxO-HD, is tested at a high level through the OnDisk tests. However, some +functionalities remain untested, e.g., reads of ranges of keys. As such, we +have implemented quickcheck-state-machine tests that exercise backing stores +directly. The tests are reusable for different backing store implementations +because the tests are implementation-agnostic: Any backing store that conforms +to the backing store interface can be plugged into the tests. Work is still +ongoing to label/monitor the tests, such that we can verify that interesting +cases are being tested. Furthermore, a possible bug has been identified in the +LMDB backing store with respect to range reads, though the bug has not been +resolved yet.

    • Issue #3946, branch, PR #3882: The +"anti-diff" prototype proposes an alternative approach to keeping track of +sequences (more specifically, FingerTrees) of diffs. These diff sequences +are a component of the in-memory parts of the ledger state in UTxO-HD. Since +the consensus code often requires the cumulative diff of a sequence of diffs, +the current implementation "caches" cumulative diffs of each subtree in the +diff sequence. This caching allows relatively fast reconstruction of the total +cumulative diff, but this caching proved to incur a non-negligible cost: when +we manipulate diff sequences through splits and appends, we force re-computing +a logarithmic number of caches. This is problematic, since we often split and +append in consensus: we split when we flush diffs to a backing store or when +we roll back blocks, and we append when pushing blocks. The new approach +should reduce the overhead of this caching.

      We implemented micro-benchmarks for the "anti-diff" prototype: we +first generate a sequence of commands (Forward, Push, Flush, or +Rollback) through a simulation, after which we measure the performance of +applying the commands to a diff sequence. In this context, Forward means +forwarding of values through a diff, whereas Rollback means switching to +a different fork by rolling back diffs/blocks and pushing new ones. +Moreover, we compare the performance for the two implementations: the +"legacy" approach, and the anti-diff approach.

      Some preliminary results were positive, but we needed to revisit the +benchmark's configuration to obtain more definitive results. After a +discussion with @dcoutts and the consensus team about this configuration +(e.g., number of commands generated, choice of the security parameter k), +the benchmarks should now be closer to the realistic setting. The following +configuration specifies the default configuration that is used in the +benchmarking code:

      • Number of commands generated: 10_000
      • Security parameter k: 2160
      • Number of initial backing values: 100
      • Number of key-value pairs deleted by a push: 50
      • Number of key-value pairs inserted by a push: 50
      • Number of key-value pairs forwarded by a forward: 50
      • Probability of a large (in the range [1000, 2000]) rollback: 0.05
      • Probability of a small (in the range [1, 10]) rollback: 0.95
      • Order of commands:
        • An equal number of forward and pushes.
        • 1 flush every 10 pushes.
        • 1 rollback every 100 pushes

      Moreover, we run four benchmark scenarios:

      • Default configuration
      • Without rollbacks
      • With only small rollbacks
      • Without rollbacks, larger flushes (1 flush every 100 pushes)

      How to read results

      Note: this section uses documentation from the +tasty-bench package to +explain how to read the results of running our benchmarks.

      Running a benchmark scenario gives us the following (curated) output:

      ...
      AntiDiff: OK (18.27s)
      2.527 s ± 47 ms, 2.1 GB allocated, 544 MB copied, 2.2 GB peak memory, 0.23x
      LegacyDiff: OK (32.73s)
      10.829 s ± 148 ms, 6.8 GB allocated, 2.3 GB copied, 2.2 GB peak memory
      ...

      The output says that the first benchmark, which exercises the anti-diff +prototype, was repeatedly executed for 18.27 seconds (wall-clock time), +its predicted mean CPU time was 2.527 seconds and means of individual +samples do not often diverge from it further than ± 47 milliseconds +(double standard deviation). We also configure the RTS to collect GC +statistics, which enables tasty-bench to estimate and report memory usage. +This data is reported as per RTSStats fields: allocated_bytes, +copied_bytes and max_mem_in_use_bytes. So, the output of the first +benchmark says that a total of 2.1 GB of memory was allocated, that a +total of 544 MB of memory were copied, and that the peak memory in usage +was 2.2 GB. We read the output for the second benchmark in the same way.

      Furthermore, the benchmark compares the mean CPU times for +both the anti-diff and legacy approaches: In this case, the mean CPU time +for the anti-diff approach is ~0.23x the mean CPU time for the legacy +approach. Conversely, the mean CPU time for the legacy approach is +1 / 0.23 ~= 4.35x the mean CPU time for the anti-diff approach. We will +call 0.23x the improvement factor. We will call 4.35x the speedup.

      Note that these improvement factors (and reported results) are subject to +noise, randomness, the specific configuration parameters, and the whims +of statistics. Data reported by tasty-bench is only of indicative and +comparative significance.

      Results

      For each of the 4 scenarios, we list the results of running the anti-diff and +legacy approaches 5 times. We run the benchmarks 5 times to get an indication +of whether the results are similar across multiple runs. Furthermore, we +calculate the accompanying ranges (if applicable) of improvement factors and +speedups.

      Note also the decrease in total bytes allocated and total bytes copied for +the anti-diff approach compared to the legacy approach.

      Default configuration

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff2.533 s (0.23x)4.7 ms2.1 GB557 MB2.4 GB
      Run 1: LegacyDiff10.792 s162 ms6.8 GB2.3 GB2.4 GB
      Run 2: AntiDiff2.508 s (0.23x)245 ms2.1 GB515 MB2.2 GB
      Run 2: LegacyDiff10.850 s30 ms6.9 GB2.3 GB2.2 GB
      Run 3: AntiDiff2.562 s (0.23x)5.0 ms2.1 GB552 MB2.2 GB
      Run 3: LegacyDiff10.993 s149 ms6.9 GB2.3 GB2.2 GB
      Run 4: AntiDiff2.168 s (0.22x)5.3 ms1.8 GB434 MB2.0 GB
      Run 4: LegacyDiff9.976 s39 ms6.3 GB2.0 GB2.0 GB
      Run 5: AntiDiff2.527 s (0.23x)47 ms2.1 GB544 MB2.2 GB
      Run 5: LegacyDiff10.829 s148 ms6.8 GB2.3 GB2.2 GB
      • Improvement factor: [0.22, 0.23]
      • Speedup : [1 / 0.23 ~= 4.35, 1 / 0.22 ~= 4.55]

      No rollbacks

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff1.638 s (0.19x)36 ms1.4 GB181 MB2.4 GB
      Run 1: LegacyDiff8.656 s207 ms5.7 GB1.5 GB2.4 GB
      Run 2: AntiDiff1.638 s (0.19x)75 ms1.4 GB181 MB2.2 GB
      Run 2: LegacyDiff8.654 s322 ms5.7 GB1.5 GB2.2 GB
      Run 3: AntiDiff1.663 s (0.19x)74 ms1.4 GB181 MB2.2 GB
      Run 3: LegacyDiff8.799 s216 ms5.7 GB1.5 GB2.2 GB
      Run 4: AntiDiff1.645 s (0.19x)51 ms1.4 GB181 MB2.0 GB
      Run 4: LegacyDiff8.732 s261 ms5.7 GB1.5 GB2.0 GB
      Run 5: AntiDiff1.639 s (0.19x)19 ms1.4 GB181 MB2.2 GB
      Run 5: LegacyDiff8.653 s234 ms5.7 GB1.5 GB2.2 GB
      • Improvement factor: 0.19
      • Speedup : 1 / 0.19 ~= 5.25

    Only small rollbacks

    NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
    Run 1: AntiDiff1.833 s (0.18x)36 ms1.5 GB185 MB2.4 GB
    Run 1: LegacyDiff10.362 s867 ms5.8 GB1.6 GB2.4 GB
    Run 2: AntiDiff1.696 s (0.19x)30 ms1.5 GB185 MB2.2 GB
    Run 2: LegacyDiff8.822 s106 ms5.8 GB1.5 GB2.2 GB
    Run 3: AntiDiff1.702 s (0.19x)44 ms1.5 GB186 MB2.2 GB
    Run 3: LegacyDiff8.906 s147 ms5.8 GB1.5 GB2.2 GB
    Run 4: AntiDiff1.701 s (0.19x)47 ms1.5 GB185 MB2.0 GB
    Run 4: LegacyDiff8.949 s197 ms5.8 GB1.5 GB2.0 GB
    Run 5: AntiDiff1.677 s (0.19x)55 ms1.5 GB186 MB2.2 GB
    Run 5: LegacyDiff8.856 s177 ms5.8 GB1.5 GB2.2 GB
    • Improvement factor: [0.18, 0.19]

    • Speedup : [1 / 0.19 ~= 5.25, 1 / 0.18 ~= 5.55]

      No rollbacks, larger flushes (every 100 pushes)

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff1.643 s (0.25x)21 ms1.5 GB196 MB2.4 GB
      Run 1: LegacyDiff6.591 s351 ms4.0 GB1.4 GB2.4 GB
      Run 2: AntiDiff1.616 s (0.25x)47 ms1.5 GB196 MB2.2 GB
      Run 2: LegacyDiff6.520 s232 ms4.0 GB1.4 GB2.2 GB
      Run 3: AntiDiff1.640 s (0.25x)34 ms1.5 GB196 MB2.2 GB
      Run 3: LegacyDiff6.540 s150 ms4.0 GB1.4 GB2.2 GB
      Run 4: AntiDiff1.635 s (0.25x)76 ms1.5 GB196 MB2.0 GB
      Run 4: LegacyDiff6.589 s131 ms4.0 GB1.4 GB2.0 GB
      Run 5: AntiDiff1.628 s (0.25x)19 ms1.5 GB196 MB2.2 GB
      Run 5: LegacyDiff6.490 s5.9 ms4.0 GB1.4 GB2.2 GB
    • Improvement factor: 0.25

    • Speedup : 1 / 0.25 ~= 4

    Genesis

    • We elaborated a draft of the specification of the Genesis implementation and +the ChainSync Jumping optimization. In particular, this includes a proof +sketch that the latter preserves liveness and safety in all cases (Issue +3964).
      • @nfrisby's main realization during this sprint was that he had been +focusing so far on the case where the selected chain is an extension of +the intersection of our peers' ChainSync candidates.
      • This is the main case, ie an "absorbing" state, but it's not the only +case.
      • The new proof sketch begins by case splitting on that predicate, and +that made the sketch quite a bit easier to follow.
    • We continued working on the "happy path" ChainSync Jumping prototype (Issue +3960).

    Technical debt

    • We started working on the issues required to re-enable nightly CI runs.. +Nightly CI runs have far more lax time constraints, which gives the option to +run significantly more property tests than in our regular CI. To this end, we +merged a PR to easily adapt the number of tests globally (PR +#3947).
    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Network Team Update]]> + 2022-08-12-network + + 2022-08-12T00:00:00.000Z + + The networking team took an active part in the project iteration (PI) planning +session, see cardano-node backlog for detailed +outcomes.

    • We started working on a detailed design / implementation plan for gossip.

    • We merged input-output-hk/ouroboros-network#3859 which +sets the ouroboros-network repository for the single relay release.

    • We identified a bug in the network simulator, which is fixed in the +input-output-hk/ouroboros-network#3852. +The above PR was reviewed.

    • We set the tracing configuration for nodes which we deploy and fixed and +identified some deployment hiccups. We identified some bugs in the RT view +which were registered by the maintainers. +input-output-hk/ouroboros-network-ops#4

    • We fixed typos in network-mux library: +input-output-hk/ouroboros-network#3921

    • For easy of debugging we renamed a trace point: +input-output-hk/ouroboros-network#3922

    • Duncan iterated on his simulation / visualisation. He also was able to +identify and fix a bug in the simulator. The simulation contains 50 nodes. +Dashed lines indicate and established connection, while solid lines indicate +a TCP connection with fully open TCP window.

    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + \ No newline at end of file diff --git a/docs/category/tutorial---basics/index.html b/docs/category/tutorial---basics/index.html new file mode 100644 index 0000000000..aae73083c8 --- /dev/null +++ b/docs/category/tutorial---basics/index.html @@ -0,0 +1,26 @@ + + + + + +Tutorial - Basics | Cardano Development Updates + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/category/tutorial---extras/index.html b/docs/category/tutorial---extras/index.html new file mode 100644 index 0000000000..0341b0f8eb --- /dev/null +++ b/docs/category/tutorial---extras/index.html @@ -0,0 +1,26 @@ + + + + + +Tutorial - Extras | Cardano Development Updates + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/intro/index.html b/docs/intro/index.html new file mode 100644 index 0000000000..e324222c3a --- /dev/null +++ b/docs/intro/index.html @@ -0,0 +1,26 @@ + + + + + +Tutorial Intro | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Tutorial Intro

    Let's discover Docusaurus in less than 5 minutes.

    Getting Started

    Get started by creating a new site.

    Or try Docusaurus immediately with docusaurus.new.

    What you'll need

    • Node.js version 16.14 or above:
      • When installing Node.js, you are recommended to check all checkboxes related to dependencies.

    Generate a new site

    Generate a new Docusaurus site using the classic template.

    The classic template will automatically be added to your project after you run the command:

    npm init docusaurus@latest my-website classic

    You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor.

    The command also installs all necessary dependencies you need to run Docusaurus.

    Start your site

    Run the development server:

    cd my-website
    npm run start

    The cd command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there.

    The npm run start command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/.

    Open docs/intro.md (this page) and edit some lines: the site reloads automatically and displays your changes.

    + + + + \ No newline at end of file diff --git a/docs/tutorial-basics/congratulations/index.html b/docs/tutorial-basics/congratulations/index.html new file mode 100644 index 0000000000..af6eba9cc5 --- /dev/null +++ b/docs/tutorial-basics/congratulations/index.html @@ -0,0 +1,26 @@ + + + + + +Congratulations! | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Congratulations!

    You have just learned the basics of Docusaurus and made some changes to the initial template.

    Docusaurus has much more to offer!

    Have 5 more minutes? Take a look at versioning and i18n.

    Anything unclear or buggy in this tutorial? Please report it!

    What's next?

    + + + + \ No newline at end of file diff --git a/docs/tutorial-basics/create-a-blog-post/index.html b/docs/tutorial-basics/create-a-blog-post/index.html new file mode 100644 index 0000000000..0326670cf7 --- /dev/null +++ b/docs/tutorial-basics/create-a-blog-post/index.html @@ -0,0 +1,26 @@ + + + + + +Create a Blog Post | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Create a Blog Post

    Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...

    Create your first Post

    Create a file at blog/2021-02-28-greetings.md:

    blog/2021-02-28-greetings.md
    ---
    slug: greetings
    title: Greetings!
    authors:
    - name: Joel Marcey
    title: Co-creator of Docusaurus 1
    url: https://github.com/JoelMarcey
    image_url: https://github.com/JoelMarcey.png
    - name: Sébastien Lorber
    title: Docusaurus maintainer
    url: https://sebastienlorber.com
    image_url: https://github.com/slorber.png
    tags: [greetings]
    ---

    Congratulations, you have made your first post!

    Feel free to play around and edit this post as much you like.

    A new blog post is now available at http://localhost:3000/blog/greetings.

    + + + + \ No newline at end of file diff --git a/docs/tutorial-basics/create-a-document/index.html b/docs/tutorial-basics/create-a-document/index.html new file mode 100644 index 0000000000..13b8707942 --- /dev/null +++ b/docs/tutorial-basics/create-a-document/index.html @@ -0,0 +1,26 @@ + + + + + +Create a Document | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Create a Document

    Documents are groups of pages connected through:

    • a sidebar
    • previous/next navigation
    • versioning

    Create your first Doc

    Create a Markdown file at docs/hello.md:

    docs/hello.md
    # Hello

    This is my **first Docusaurus document**!

    A new document is now available at http://localhost:3000/docs/hello.

    Configure the Sidebar

    Docusaurus automatically creates a sidebar from the docs folder.

    Add metadata to customize the sidebar label and position:

    docs/hello.md
    ---
    sidebar_label: 'Hi!'
    sidebar_position: 3
    ---

    # Hello

    This is my **first Docusaurus document**!

    It is also possible to create your sidebar explicitly in sidebars.js:

    sidebars.js
    module.exports = {
    tutorialSidebar: [
    'intro',
    'hello',
    {
    type: 'category',
    label: 'Tutorial',
    items: ['tutorial-basics/create-a-document'],
    },
    ],
    };
    + + + + \ No newline at end of file diff --git a/docs/tutorial-basics/create-a-page/index.html b/docs/tutorial-basics/create-a-page/index.html new file mode 100644 index 0000000000..ec21ea6841 --- /dev/null +++ b/docs/tutorial-basics/create-a-page/index.html @@ -0,0 +1,26 @@ + + + + + +Create a Page | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Create a Page

    Add Markdown or React files to src/pages to create a standalone page:

    • src/pages/index.jslocalhost:3000/
    • src/pages/foo.mdlocalhost:3000/foo
    • src/pages/foo/bar.jslocalhost:3000/foo/bar

    Create your first React Page

    Create a file at src/pages/my-react-page.js:

    src/pages/my-react-page.js
    import React from 'react';
    import Layout from '@theme/Layout';

    export default function MyReactPage() {
    return (
    <Layout>
    <h1>My React page</h1>
    <p>This is a React page</p>
    </Layout>
    );
    }

    A new page is now available at http://localhost:3000/my-react-page.

    Create your first Markdown Page

    Create a file at src/pages/my-markdown-page.md:

    src/pages/my-markdown-page.md
    # My Markdown page

    This is a Markdown page

    A new page is now available at http://localhost:3000/my-markdown-page.

    + + + + \ No newline at end of file diff --git a/docs/tutorial-basics/deploy-your-site/index.html b/docs/tutorial-basics/deploy-your-site/index.html new file mode 100644 index 0000000000..a03e996e77 --- /dev/null +++ b/docs/tutorial-basics/deploy-your-site/index.html @@ -0,0 +1,26 @@ + + + + + +Deploy your site | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Deploy your site

    Docusaurus is a static-site-generator (also called Jamstack).

    It builds your site as simple static HTML, JavaScript and CSS files.

    Build your site

    Build your site for production:

    npm run build

    The static files are generated in the build folder.

    Deploy your site

    Test your production build locally:

    npm run serve

    The build folder is now served at http://localhost:3000/.

    You can now deploy the build folder almost anywhere easily, for free or very small cost (read the Deployment Guide).

    + + + + \ No newline at end of file diff --git a/docs/tutorial-basics/markdown-features/index.html b/docs/tutorial-basics/markdown-features/index.html new file mode 100644 index 0000000000..8f48bbd585 --- /dev/null +++ b/docs/tutorial-basics/markdown-features/index.html @@ -0,0 +1,26 @@ + + + + + +Markdown Features | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Markdown Features

    Docusaurus supports Markdown and a few additional features.

    Front Matter

    Markdown documents have metadata at the top called Front Matter:

    my-doc.md
    ---
    id: my-doc-id
    title: My document title
    description: My document description
    slug: /my-custom-url
    ---

    ## Markdown heading

    Markdown text with [links](./hello.md)

    Regular Markdown links are supported, using url paths or relative file paths.

    Let's see how to [Create a page](/create-a-page).
    Let's see how to [Create a page](./create-a-page.md).

    Result: Let's see how to Create a page.

    Images

    Regular Markdown images are supported.

    You can use absolute paths to reference images in the static directory (static/img/docusaurus.png):

    ![Docusaurus logo](/img/docusaurus.png)

    Docusaurus logo

    You can reference images relative to the current file as well, as shown in the extra guides.

    Code Blocks

    Markdown code blocks are supported with Syntax highlighting.

    ```jsx title="src/components/HelloDocusaurus.js"
    function HelloDocusaurus() {
    return (
    <h1>Hello, Docusaurus!</h1>
    )
    }
    ```
    src/components/HelloDocusaurus.js
    function HelloDocusaurus() {
    return <h1>Hello, Docusaurus!</h1>;
    }

    Admonitions

    Docusaurus has a special syntax to create admonitions and callouts:

    :::tip My tip

    Use this awesome feature option

    :::

    :::danger Take care

    This action is dangerous

    :::
    My tip

    Use this awesome feature option

    Take care

    This action is dangerous

    MDX and React Components

    MDX can make your documentation more interactive and allows using any React components inside Markdown:

    export const Highlight = ({children, color}) => (
    <span
    style={{
    backgroundColor: color,
    borderRadius: '20px',
    color: '#fff',
    padding: '10px',
    cursor: 'pointer',
    }}
    onClick={() => {
    alert(`You clicked the color ${color} with label ${children}`)
    }}>
    {children}
    </span>
    );

    This is <Highlight color="#25c2a0">Docusaurus green</Highlight> !

    This is <Highlight color="#1877F2">Facebook blue</Highlight> !

    This is Docusaurus green !

    This is Facebook blue !

    + + + + \ No newline at end of file diff --git a/docs/tutorial-extras/manage-docs-versions/index.html b/docs/tutorial-extras/manage-docs-versions/index.html new file mode 100644 index 0000000000..7dcbe78795 --- /dev/null +++ b/docs/tutorial-extras/manage-docs-versions/index.html @@ -0,0 +1,26 @@ + + + + + +Manage Docs Versions | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Manage Docs Versions

    Docusaurus can manage multiple versions of your docs.

    Create a docs version

    Release a version 1.0 of your project:

    npm run docusaurus docs:version 1.0

    The docs folder is copied into versioned_docs/version-1.0 and versions.json is created.

    Your docs now have 2 versions:

    • 1.0 at http://localhost:3000/docs/ for the version 1.0 docs
    • current at http://localhost:3000/docs/next/ for the upcoming, unreleased docs

    Add a Version Dropdown

    To navigate seamlessly across versions, add a version dropdown.

    Modify the docusaurus.config.js file:

    docusaurus.config.js
    module.exports = {
    themeConfig: {
    navbar: {
    items: [
    {
    type: 'docsVersionDropdown',
    },
    ],
    },
    },
    };

    The docs version dropdown appears in your navbar:

    Docs Version Dropdown

    Update an existing version

    It is possible to edit versioned docs in their respective folder:

    • versioned_docs/version-1.0/hello.md updates http://localhost:3000/docs/hello
    • docs/hello.md updates http://localhost:3000/docs/next/hello
    + + + + \ No newline at end of file diff --git a/docs/tutorial-extras/translate-your-site/index.html b/docs/tutorial-extras/translate-your-site/index.html new file mode 100644 index 0000000000..122ebaf9af --- /dev/null +++ b/docs/tutorial-extras/translate-your-site/index.html @@ -0,0 +1,26 @@ + + + + + +Translate your site | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Translate your site

    Let's translate docs/intro.md to French.

    Configure i18n

    Modify docusaurus.config.js to add support for the fr locale:

    docusaurus.config.js
    module.exports = {
    i18n: {
    defaultLocale: 'en',
    locales: ['en', 'fr'],
    },
    };

    Translate a doc

    Copy the docs/intro.md file to the i18n/fr folder:

    mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/

    cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md

    Translate i18n/fr/docusaurus-plugin-content-docs/current/intro.md in French.

    Start your localized site

    Start your site on the French locale:

    npm run start -- --locale fr

    Your localized site is accessible at http://localhost:3000/fr/ and the Getting Started page is translated.

    caution

    In development, you can only use one locale at a same time.

    Add a Locale Dropdown

    To navigate seamlessly across languages, add a locale dropdown.

    Modify the docusaurus.config.js file:

    docusaurus.config.js
    module.exports = {
    themeConfig: {
    navbar: {
    items: [
    {
    type: 'localeDropdown',
    },
    ],
    },
    },
    };

    The locale dropdown now appears in your navbar:

    Locale Dropdown

    Build your localized site

    Build your site for a specific locale:

    npm run build -- --locale fr

    Or build your site to include all the locales at once:

    npm run build
    + + + + \ No newline at end of file diff --git a/feed.json b/feed.json new file mode 100644 index 0000000000..b050ed3958 --- /dev/null +++ b/feed.json @@ -0,0 +1,6555 @@ +{ + "version": "https://jsonfeed.org/version/1", + "title": "Cardano Updates Feed", + "home_page_url": "https://updates.cardano.intersectmbo.org/", + "description": "Regular updates from Cardano Development Teams", + "items": [ + { + "id": "2024-07-17-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team made significant progress on incremental decommits\nby closing the last gaps and cleaning up the specification. They collected\nscenarios and prepared for incremental commits, updated dependencies for\ncompatibility with cardano-node 9.0.0, and continued tidying up documentation.\nWork continued on an easy spin-up of the getting-started demo via\nprocess-compose. Additionally, the team onboarded a new contributor and held\nan early design meeting about payment channels and Blockfrost. They also\nrefined the SDK wallet idea.

    What did the team achieve?

    • Incremental decommit progress: closed last gaps, cleanup specification #1483
    • Collected scenarios and preparing for incremental commit #1484
    • Updated dependencies, compatibility cardano-node 9.0.0 #1481
    • Continued documentation tidyups
    • WIP easy spin-up of the getting-started demo via process-compose #1503
    • Onboarded new contributor
    • Early design meeting about payment channels and Blockfrost #1305
    • SDK wallet idea refinement #1509

    What's next?

    • Merge and release incremental decommit
    • Continued work on incremental commit
    • Support Hydra demo at Rare Evo
    • Have a Head open on preview to see it working through the upcoming hard fork
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-07-17-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2024-07-17T00:00:00.000Z", + "author": { + "name": "Noon van der Silk", + "url": "https://github.com/noonio" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-07-17-mithril", + "content_html": "

    High level overview

    This week, the Mithril team released the new distribution 2428.0, which includes support for Cardano node version 9.0.0, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks by calibrating the signature parameters for mainnet, fixing a bug preventing the signature of the last block advertised as certified, optimizing a part of the artifact production that was blocking the certification, and starting removing the code reading transactions from the immutable files.

    Finally, the team started working on the certification of the Cardano stake distribution and continued redacting a CIP for the diffusion of Mithril signatures through the Cardano network.

    Low level overview

    • Released the new distribution 2428.0
    • Completed the issue Release 2428 distribution #1810
    • Completed the issue Calibrate Cardano transaction signature parameters #1814
    • Completed the issue Non blocking artifact production in aggregator #1792
    • Completed the issue Cardano transaction importer does not import the last block advertised as certified #1785
    • Completed the issue A recorded but non certified Cardano transaction creates an error in prover #1819
    • Completed the issue Signer make test command fails #1816
    • Completed the issue Document Prometheus metrics and Grafana Dahsboard for signer #1834
    • Completed the issue Explorer keeps previous Cardano transaction error #1818
    • Worked on the issue Implement signable and artifacts builders for Cardano Stake Distribution #1832
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Cleanup Immutable File in Cardano transaction #1825
    • Worked on the issue Upgrade testing-sanchonet for respin with Cardano 9.0.0 #1822
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-07-17-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-07-17T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-07-10-consensus", + "content_html": "

    High level summary

    • Assisted with Node release 9.0:
      • Performed security audits, engaged with other teams, implemented improvements, and released Consensus packages.
    • We are now running additional NoThunks tests, which help us safeguard against memory leaks in the node.
    • Reviewed Milestone 13 of Genesis, which improves the code documentation of Genesis, and implements some fixes and optimizations.
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-07-10-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2024-07-10T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2024-07-10-mithril", + "content_html": "

    High level overview

    This week, the Mithril team worked on supporting Cardano node version 9.0.0 and started working on a new Mithril distribution. They also continued implementing the certification of Cardano transactions in Mithril networks. They fixed some bugs blocking the REST API during transactions import, causing resource exhaustion on the aggregator Cardano node, and creating some exceptions in the explorer. They also kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

    Finally, the team worked on enhancing the artifact production in the aggregator to avoid blocking the certification and finalized enforcing the linting of all the files in the repository with the CI.

    Low level overview

    • Completed the issue Upgrade Cardano node 9.0.0 #1787
    • Completed the issue Aggregator/Signer preload transactions when Cardano transactions certification is not activated #1782
    • Completed the issue Explorer does not handle invalid transaction hashes #1784
    • Completed the issue Cardano transactions import blocks aggregator and signer #1797
    • Completed the issue Resource exhausted on Cardano node socket #1803
    • Completed the issue Certificate pending route overwhelms the Cardano node in aggregator #1804
    • Completed the issue Optimize Cardano transaction prover performances with parallelization #1756
    • Completed the issue Lint Markdown/JavaScript files in repository #1754
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Release 2428 distribution #1810
    • Worked on the issue Non blocking artifact production in aggregator #1792
    • Worked on the issue Cardano transaction importer does not import the last block advertised as certified #1785
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-07-10-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-07-10T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-07-08-network", + "content_html": "

    High-level overview of sprint 65

    Karl Knutsson (CF) fixed a bug which prevented a node using bootstrap peers\nto sync using them, for a more detailed description see ouroboros-network#4899.

    Earlier this year we fixed bugs in IOSimPOR which prevent us from using it in\nouroboros-network (io-sim#153, io-sim#159); since\nouroboros-network#4872 was merged we have a large number of tests that are\nusing IOSimPOR's schedule exploration. In the last sprint we fixed\nsome bugs discovered by IOSimPOR in ouroboros-network:

    We continued working on new tx-submission logic: ouroboros-network#3311 as\nwell as on Genesis. The work on Genesis is split in a few PRs which are\ncurrently in review process:

    • Big Ledger Peer Targets for Genesis - ouroboros-network#4832
    • Feed peer selection governor with big ledger peers obtained from a snapshot - ouroboros-network#4850
    • Introduction of serialization instances in support of ledger peer snapshot - ouroboros-network#4851
    • Verification of big ledger peer snapshot file - [ouroboros-network#4888]

    High-level overview of sprint 64

    Karl Knutsson (CF) modified peer sharing behaviour to not share peers whith\nwhich connections failed, see ouroboros-network#4883 for more details.

    We fixed inbound governor counters tracer, see ouroboros-network#4885.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-07-08-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 65", + "date_modified": "2024-07-08T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2024-07-05-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general\nenvironment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 9.0.0 is now deployed to mainnet, preprod, preview, private and\nshelley-qa environments. The last several weeks have been very busy with\npre-release and release activity and environment upgrades involving\ncardano-node versions 8.9.3, 8.9.4, 8.12.0-pre, 8.12.1, 8.12.2 and\nnow 9.0.0 as of this update.

    • Sanchonet environment remains pinned at cardano-node version 8.11.0-pre until\nthe next respin which will support 9.0.0 or greater.

    • Ogmios service and package options were added to cardano-parts.

    • Four documents were added to cardano-playground to better explain some\noperational procedures: debugging of peer-to-peer connections; governance\nvoting with the playground stakepools; faucet setup; faucet pool\nde-delegation. Found at:\ndocs/explain

    • One document was added to cardano-mainnet to explain cardano-snapshot\noperations. Found at:\ndocs/explain

    • Private chain was stopped and re-spun with 2 hr epochs for testing.

    • Hydra and performance cluster machines had their configuration updated to be\nmore robust to transient nix store caches outages which may re-occur in the\nfuture.

    • All machines in cardano-playground and cardano-mainnet clusters were updated\nto nixpkgs 24.05.

    Lower level summary

    Cardano-mainnet

    • Sets cardano-node to 8.12.2 as well as usage of a custom gc delay parameter\nbranch for bootstrap nodes. Updates all machines to nixpkgs to 24.05 with\nopenssh 9.8p1. Adds one new explainer readme document, new alerts and various\nscript, recipe, and other improvements. See the PR description for more\ndetails:\ncardano-mainnet-pull-16

    Cardano-ops

    • Bumps to cardano-node 9.0.0, adds coredump metrics, adds OOM/coredump\nalerting, adjusts systemd stop timeout to avoid some unneccesary chain\nreplays:\ncardano-ops-compare

    Cardano-parts

    • Sets cardano-node (release) and cardano-node-ng (pre-release) versions to\n8.12.2 and cardano-db-sync-ng to sancho-5-0-0. Updates nixpkgs to\n24.05. Includes nixosModule, dashboard, metric, alert and recipe\nimprovements and new features. More detail is available in the PR\ndescription:\ncardano-parts-pull-43

    Cardano-perf

    • Adjusts nix config to avoid R2 500 errors on transient cache problems and\nadds explorer to perf class:\ncardano-perf-compare

    Cardano-playground

    • Sets cardano-node (release) and cardano-node-ng (pre-release) versions to\n8.12.2 and cardano-db-sync-ng to sancho-5-0-0. Updates all machines to\nnixpkgs to 24.05 with openssh 9.8p1. Respins private chain and KES\nrotates multiple chains. Adds four new explainer readme documents, new alerts\nand various script, recipe, and other improvements. See the PR description\nfor more details:\ncardano-playground-pull-27

    Iohk-nix

    Ops-lib

    • Updates deployers with recent nixpkgs, nix, refactors to preserve legacy\nnixops usage, adds starship and fzf:\nops-lib-pull-134

    • Bumps openssh to 9.8p1\nops-lib-pull-135

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-07-05-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2024-07-05T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2024-07-03-ledger", + "content_html": "

    High level summary

    This period we added some last minute changes that were necessary for improving resilience\nand safety of Conway implementation:

    • Authorization of hot credentials for constitutional committee members is now only possible\nfor cold credentials that are present in the ledger state, either in the current committee\nor in one of the proposals.
    • Voting is restricted to entities that are present in the ledger state
    • DRep votes will be removed whenever DRep unregisters
    • Pricing model for the size of reference scripts was changed from linear to\nexponential. Moreover, extra limits on the total size of reference scripts being used\nhave been put in place.

    Low level summary

    Conway

    • pull-4430 - CostModel json parsing
    • pull-4438 - Fix UTXOW era in diagrams for Conway
    • pull-4443 - Make reference scripts fee grow exponentially with size
    • pull-4436 - Authorize known cc members only
    • pull-4433 - Improve resilience of future PParams
    • pull-4453 - Tx refscript size check
    • pull-4452 - Prevent votes for non existent entities
    • pull-4450 - BBODY refscript size check

    Testing

    • pull-4417 - constrained-generators: use consistent warning pragma
    • pull-4431 - constrained-generators: fix flakyness in set generator
    • pull-4312 - Convert AlonzoValidTxUTXOW to ImpTest (Part 1)
    • pull-4386 - Increase the size of the committee for testing
    • pull-4425 - Conformance test plumbing: EPOCH
    • pull-4442 - Update executable-spec SRP
    • pull-4405 - Add more scripts to alonzo utxosspec
    • pull-4445 - Conformance tests plumbing: NEWEPOCH
    • pull-4460 - Remove unnecessary allocation in non-integral reference code
    • pull-4457 - Conformance: POOL: Translate and adjust

    Infrastructure and releasing

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-07-03-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-07-03T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-07-03-mithril", + "content_html": "

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They completed the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas and worked on fixing some bugs occurring during the warmup phase of the signer and aggregator. They also worked on supporting the new Cardano node version 8.12 and kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

    Finally, the team fixed a bug that prevented the parsing of some blocks in the SanchoNet network and made some optimizations on the databases of the signer and aggregator.

    Low level overview

    • Completed the issue Import Cardano transactions with ChainReader #1705
    • Completed the issue Cardano signatures are not produced on testing-sanchonet #1750
    • Completed the issue SQLite WAL files are not truncated in signer and aggregator #1707
    • Completed the issue Conditional embedding of Cardano CLI in Docker images #1725
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Optimize Cardano transaction prover performances with parallelization #1756
    • Worked on the issue Upgrade Cardano node 8.12.2 #1787
    • Worked on the issue Aggregator/Signer preload transactions when Cardano transactions certification is not activated #1782
    • Worked on the issue Cardano transaction importer does not import the last block advertised as certified #1785
    • Worked on the issue Lint Markdown/JavaScript files in repository #1754
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-07-03-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-07-03T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-06-26-consensus", + "content_html": "

    High level summary

    • Supported debugging activities related to bootstrap nodes.
    • Merged various improvements to the db-X tools; in particular, db-truncater (which is used regularly by community members on sanchonet) got much faster.
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-06-26-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2024-06-26T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2024-06-26-mithril", + "content_html": "

    High level overview

    This week, the Mithril team released the threat modeling explainer for the documentation website. They also continued implementing the certification of Cardano transactions in Mithril networks and the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas. Additionally, the team started redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

    Finally, they fixed a bug that prevented the verification of the transactions included in the last certified block and improved the WASM client's documentation.

    Low level overview

    • Completed the issue Threat modeling and risk analysis #1350
    • Completed the issue Implement database connection pooling for Cardano transaction repository #1760
    • Completed the issue Import Cardano transactions by sequences of block ranges #1766
    • Completed the issue Limit Cardano transactions prover input #1757
    • Completed the issue Transactions of the block number in the artifact are never certified by the prover #1762
    • Completed the issue Add missing pre-requisite to build WASM client #1753
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Optimize Cardano transaction prover performances with parallelization #1756
    • Worked on the issue Cardano signatures are not produced on testing-sanchonet #1750
    • Worked on the issue Lint Markdown/JavaScript files in repository #1754
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-06-26-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-06-26T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-06-25-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: Release benchmarks for Node 8.12.0; DRep benchmarks with 100k DReps.
    • Development: Merged a performance fix on 8.11; kicked off development of governance action workload.
    • Workbench: Adjusted automations to latest 8.12 Conway features and Plutus cost model; implementation of CIP-69 and CIP-117 for our tooling is in validation phase.
    • Tracing: Work on metrics naming ongoing. Factoring out RTView component is completed and has entered testing.
    • IOI Tech Meetup: Our team contributed two presentations at the meetup in Zurich; worked on community report of UTxO scaling benchmarks.

    Low level overview

    Benchmarking

    We've run and analyzed a full set of release benchmarks for Node versions 8.12.0. In comparison with the latest mainnet release 8.9.3, we could not observe any regressions. In fact, 8.12.0 was able to deliver equal network\nperformance at a slightly reduced resource cost - both for CPU and memory.

    Another benchmark of the Conway ledger with large amounts of DReps has been performed. This time, 100000 DReps were chosen - this amount aims to simulate a scenario where lots of self-delegation takes place. While a performance\nimpact is observable in this instance, we can still see that the number of DReps scales well overall, and poses no concern for network peformance.

    Development

    We have contributed and merged a performance fix on 8.11 which adresses a regressing metric in the forging loop. The regression was only observable under specific conditions. Benchmarks on 8.12\nhave already confirmed the fix to be successful.

    We've kicked off governance action workloads for benchmarking. This will be an entirely new workload type for Conway era, targeting performance measurements of its decentralized decision making process. The workload will feature\nregistering proposals, acting as multiple DReps to vote on active proposals, vote tallying and proposal enactment. We're very grateful for the Ledger team's helpful support so far in creating a workload design for benchmarking - one that evenly stresses\nthe network over extended periods of time.

    Workbench

    The workbench automations have been upgraded to handle Node 8.12 and the corresponding integrations of Cardano API and CLI.

    Furthermore, we've updated to the latest PlutusV3 costmodel in our benchmarks - as well as implemented CIP-69 and CIP-117 for all our PlutusV3 benchmarking scripts, pending validation by the Plutus team.

    Tracing

    The work on aligning of metrics naming and semantics of new and legacy tracing is ongoing. Additionally, we're adding a handful of metrics to the new tracing system which currently exist in legacy tracing only.

    Factoring out the RTView (\"real-time view\") component of cardano-tracer in the new tracing system has finished. This includes a considerable refactoring of cardano-tracer's codebase, so that we're currently running test on the new codebase. Isolating\nRTView is due to its being in prototype stage for too long, and the design decisions taken. In the short term, this will make several package dependencies optional, which have become troublesome for CI, as well as making cardano-tracer more lightweight.\nRTView remains as an opt-in.

    IOI Tech Meetup

    Our entire team traveled to Zurich, Switzerland to attend ZuriHac'24 and the IOI Tech Meetup. It was fantastic to meet everyone in person, and we all had an amazing and very productive time. A big Thank You to everyone involved in making that happen, and making it a success.

    We contributed two presentations for the meetup: a thourough introduction of the new tracing system aimed at developers - as it's not tailored exclusively to cardano-node, but can be used in other (Haskell) services as well. And secondly,\nan overview over the benchmarking framework based on Quantitative Timeliness Agreements which we're building - as well as a show-and-tell of our prototype, implementing part of said framework. We're grateful for the great interest and feedback from all\nthe participants.

    Last not least, we worked on creating a community report of the UTxO scaling benchmarks performed during March and April - to be released soon.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-06-25-performance-and-tracing", + "title": "Performance & Tracing Update", + "summary": "High level summary", + "date_modified": "2024-06-25T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2024-06-19-ledger", + "content_html": "

    High level summary

    Major milestone was reached this period. We've implemented\nCIP-0069 that improves\nPlutusV3 functionality by making spending datums optional and enforcing all scripts to\nhave exactly one argument. This feature allows for spending scripts to be usable for other\npurposes, like minting for example.

    Couple of important bugs have been fixed:

    • Script execution for certificates with the same plutus script did not execute correctly.
    • Prevent delegation to a non-existent pool.

    With this feature complete and a few bug fixes we were also able to mark Conway era and\nCIP-1694 as feature\ncomplete and ready for release. Naturally, testing of Conway era will continue all the way\ninto the hard fork.

    Low level summary

    Conway

    • pull-4374 - CIP-0069
    • pull-4394 - Fix Certifying Redeemer issue
    • pull-4400 - Check that the pool being delegated to exists for ConwayDelegCert
    • pull-4409 - Update to plutus-ledger-api-1.30

    Testing

    • pull-4384 - Re-enabled Full NewEpochstate test
    • pull-4397 - Add a lens to HasSubState
    • pull-4399 - New simple examples for maps
    • pull-4403 - constrained-generators: Add lookup_ for maps
    • pull-4414 - constrained-generators: Hotfix failing test
    • pull-4411 - constrained-generators: introduce a hook for naming variables

    Infrastructure and releasing

    • pull-4424 - GHA: Downgrade the version of actions/upload-artifact
    • pull-4426 - Take care of all compiler warnings for GHC-9.8
    • pull-4407 - Change the default ghc version to 9.6.5
    • pull-4416 - Bump urllib3 from 1.26.18 to 1.26.19 in /doc
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-06-19-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-06-19T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-06-19-mithril", + "content_html": "

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They implemented a warmup strategy for the signer and aggregator to begin importing transactions as early as possible, thus minimizing the impact of network activation on certification. They also significantly improved the throughput of the prover route of the aggregator by addressing database access bottlenecks. Additionally, the team made progress on low-latency certification by completing the handling of chain rollbacks and nearly completing the retrieval of transactions using the chain sync mini-protocol and Pallas.

    Finally, they made final modifications to the threat modeling explainer for the documentation website, which will be released shortly, and worked on a bug that occurs when parsing some blocks of the SanchoNet network.

    Low level overview

    • Completed the issue Handle rollbacks in Cardano transactions #1724
    • Completed the issue Pooled resources should be reset when given back #1743
    • Completed the issue Lock signature of signed entity types during warm-up #1693
    • Completed the issue Warmup import Cardano transactions at node startup #1692
    • Completed the issue Build, test and package arm64 binaries in CI #1751
    • Worked on the issue Threat modeling and risk analysis #1350
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue Import Cardano transactions by sequences of block ranges #1766
    • Worked on the issue Implement database connection pooling for Cardano transaction repository #1760
    • Worked on the issue Cardano signatures are not produced on testing-sanchonet #1750
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-06-19-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-06-19T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-06-12-mithril", + "content_html": "

    High level overview

    This week, the Mithril team released the new distribution 2423.0, which includes the removal of the snaphot command of the client CLI, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks and improved the throughput of the prover route of the aggregator by fixing some bottlenecks in the Merkle proof computation. Additionally, the team made progress on low-latency certification by working on the retrieval of the transactions with the chain sync mini-protocol and Pallas, as well as the handling of rollbacks of the chain.

    Finally, they kept working on the threat modeling explainer for the documentation website and provided support for multiple TLS implementations in the client library thanks to a community contribution.

    Low level overview

    • Released the new distribution 2423.0
    • Publication of a dev blog post about the removed Mithril client CLI 'snapshot' command
    • Completed the issue Client verification fails with an already stored but non certified yet transaction #1719
    • Completed the issue Computation of Merkle proof has bottleneck with multiple transactions #1730
    • Completed the issue Automatic rollback on SQL transactions #1741
    • Completed the issue Allow the underlying TLS implementation to be selectable when using a library. #1737
    • Completed the issue Release 2423 distribution #1695
    • Completed the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    • Worked on the issue Handle rollbacks in Cardano transactions #1724
    • Worked on the issue Pooled resources should be reset when given back #1743
    • Worked on the issue Threat modeling and risk analysis #1350
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-06-12-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-06-12T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-06-10-hydra", + "content_html": "

    High-level Summary

    This sprint, the Hydra team updated the node to be compatible with cardano-node 8.11-pre. We continued work on increment decommits, investigating adversarial attacks on the smart contract and preparing it to be merged. We also discussed options for the incremental commit work, including designs for a hydra-ledger.

    Next sprint we aim to merge incremental decommits and make further progress on the incremental commit design.

    What did the team achieve this sprint?

    • Update to cardano-node 8.11-pre #1439
    • Allow committing internal wallet utxos #1442
    • Rewrite introduction section and fknown issues section. #1451
    • Make specification editing in markdown possible #1187
    • Fix ignored hydra-plutus tests #1458
    • Re-open internal head with blueprint commits.

    What are the goals of the next sprint?

    • Incremental decommit #1057
    • Make progress on the design for incremental commit #199
    • Test combinations of decrement/close/fanout #1390
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-06-10-hydra", + "title": "Hydra Team Update", + "summary": "High-level Summary", + "date_modified": "2024-06-10T00:00:00.000Z", + "author": { + "name": "Daniel Firth", + "url": "https://github.com/locallycompact" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-06-05-ledger", + "content_html": "

    High level summary

    This time around we continued on testing the Conway era and improving our conformance\ntests. Thanks to this extensive testing we found and fixed a few more bugs in the Conway\nimplementation. We fixed bugs related to DRep expiry and the choice of correct threshold for\nthe committee voting. One important feature that was implemented is ignoring the\nminimun committee size during the bootstrap phase, in order to avoid a deadlock situation in\ncase that enough committeee members were to resign. We've also improved the correctness of\nour CDDL specification and improved the safety by restricting some of the types of\nprotocol parameters.

    Low level summary

    Conway

    • pull-4350 - Add identity instance for Inject
    • pull-4361 - Fixed a bug in RATIFY
    • pull-4358 - DRep expiry update with number of dormant epochs
    • pull-4365 - Create pool stake distribution query for voting
    • pull-4376 - Ignore ppCommitteeMinSize during bootstrap
    • pull-4364 - DRep state query and related tests
    • pull-4357 - Specify numeric ranges explicitly in conway cddl files

    Testing and formal spec

    • pull-4339 - constrained-generators: introduce tools for controlling test case distribution
    • pull-4348 - Conformance: GOVCERT
    • pull-4213 - Utxow Predicate failure tests
    • pull-4351 - Enable retrying flaky tests in nightly CI
    • pull-4345 - constrained-generators: Add explanation :: [String] -&gt; Pred fn -&gt; Pred fn
    • pull-4362 - Threshold translation in conformance testing
    • pull-4369 - constrained-generators: Add flip_ to avoid having to add new native functions
    • pull-4377 - constrained-generators: propagate information backwards in the solver
    • pull-4389 - Fixed issue #4340. Problem with futurePParams not adequate in Conway.
    • pull-4378 - Conformance: POOL
    • pull-4388 - Improved the translation of PParamUpdate in conformance
    • pull-4355 - Fix order of arguments to verifyVrf

    Infrastructure and releasing

    • pull-4352 - Remove dependency on deprecated ansi-wl-print package
    • pull-4344 - constrained-generators: identify and fix an issue with big bodies to ifElse
    • pull-4338 - Add conformance testing for ENACT
    • pull-4354 - Added conformance test for DELEG
    • pull-4367 - Fixed 8.10 not building
    • pull-4368 - Ensure GitHub CI fails when tests are skipped due to a build failure
    • pull-4373 - Add -rtsopts to all test suites
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-06-05-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-06-05T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-06-05-mithril", + "content_html": "

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They improved the throughput of the prover route of the aggregator by using resource pooling and made progress on low-latency certification by transitioning to a chain point-based beacon, which allows for faster transaction signing. They also kept investigating prover performance bottlenecks, worked on fixing a bug that caused unsigned transactions to appear as signed, and continued implementing the import of transactions with the ChainSync mini-protocol and Pallas.

    Additionally, the team started preparing the threat modeling explainer for the documentation website and kept investigating some Cardano node error messages that could be caused by how the Pallas client handles connections to mini-protocols.

    Low level overview

    • Completed the issue Implement Resource Pooling for Block Range Merkle maps #1698
    • Completed the issue Sign Cardano transactions with ChainPoint based beacon #1697
    • Completed the issue Cardano transactions prover performances drop with more than 5 transactions #1722
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue Client verification fails with an already stored but non certified yet transaction #1719
    • Worked on the issue Computation of Merkle proof has bottleneck with multiple transactions #1730
    • Worked on the issue Threat modeling and risk analysis #1350
    • Worked on the issue Release 2423 distribution #1695
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-06-05-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-06-05T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-06-05-node-cli-api", + "content_html": "

    2024-05-13 - 2024-06-05

    High level summary

    CARDANO NODE

    • In order to avoid an accidental hardfork, when \"ConwayGenesisFile\" is not set in the node configuration file, by default the node can only understand protocol version 8 (Babbage era).

    CARDANO CLI

    • query protocol-parameters now shows Conway era protocol parameters when in Conway.
    • transaction view now shows proposales and votes inside a transaction body.
    • Release of cardano-cli 8.23.1.0
    • We now publish pre-compiled binaries of each release together with the corresponding SHA256Sum.

    CARDANO-API

    • Release of 8.46.0.0

    Details

    cardano-cli

    cardano-api

    • Release cardano-api-8.46.0.0
      • Updated cardano-ledger, ouroboros-consensus and plutus packages.
      • Added FailT dependency.
      • Updated conwayGenesisDefaults and alonzoGenesisDefaults.
      • Changed CostModel to use Int64 instead of Integer.
      • Fixed ProtocolParameters golden test to account for the Integer -> Int64 change in the CostModel. (breaking, test) PR 523

    cardano-node

    cardano-testnet

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-06-05-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2024-06-05T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2024-05-29-consensus", + "content_html": "

    High level summary

    • Updated UTXO-HD to use simple diffs which drastically improved the mempool benchmarks (#1114).
    • Helped quickcheck-state-machine to release version 0.10.0 (#48). We rely on this library for our high-assurance property-tests.
    • Rebased UTXO-HD on top of node 8.11 (#1121). A replay with the in-memory backend took 5:05 hours up to slot 124M.
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-29-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2024-05-29T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2024-05-29-mithril", + "content_html": "

    High level overview

    This week, the Mithril team released a new Mithril protocol insights dashboard and a new explorer page displaying active and deregistered SPOs for the latest Cardano epochs. They also continued implementing the certification of Cardano transactions in Mithril networks by improving the throughput of the prover route of the aggregator and making progress on low-latency certification by completing the implementation of a chain block reader from the Cardano mini-protocol with Pallas.

    Additionally, the team started working on a new beacon for signing Cardano transactions based on the chain point. Finally, they refactored the persistence library, enhanced their testing tools for Cardano transactions, and fixed a block parsing problem that prevented the signature of Cardano transactions in the test networks.

    Low level overview

    • Released the Mithril Protocol Insights Dashboard
    • Completed the issue Prototype optimizations for increasing Cardano transactions proof generation throughput #1687
    • Completed the issue Retrieve Cardano blocks with chainsync in pallas PoC #1590
    • Completed the issue Explorer display in/out SPOs in registered signers page #1686
    • Completed the issue Create a test Cardano transactions builder #1667
    • Completed the issue Cardano signatures are not produced on testing-sanchonet and testing-mainnet #1681
    • Completed the issue Remove snapshot command in client CLI #1690
    • Completed the issue Block Streamer returns ChainScannedBlocks #1704
    • Completed the issue Remove connections coupling with providers in database #1711
    • Worked on the issue Implement Resource Pooling for Block Range Merkle maps #1698
    • Worked on the issue Sign Cardano transactions with ChainPoint based beacon #1697
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-29-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-05-29T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-05-27-hydra", + "content_html": "

    High-level Summary

    This sprint, the Hydra team released version 0.17.0 of the hydra-node, containing the new blueprint commit transaction mechanism and upgrades to the networking protocol incorporated over the last several weeks. We also completed several documentation upgrades.

    Next sprint, we aim to focus the outstanding increment decommit work, completing the model tests for it as well as investigating adversarial attacks on the smart contract.

    What did the team achieve this sprint?

    • Combine blueprint and commit tx metadata #1409
    • Diagnose currently stuck head. #1415
    • Document offline mode #1414
    • Document writing an Event Sink and Source #1413
    • Streaming Plugins #1325
    • Ensure -Werror is running in CI. #1426
    • Release hydra-node-0.17.0

    What are the goal of the next sprint?

    • Update to cardano-node 8.11-pre #1439
    • Incremental decommit #1057
    • Make progress on the design for incremental commit #199
    • Reopen a head to test blueprint commits.
    • Test combinations of decrement/close/fanout #1390
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-27-hydra", + "title": "Hydra Team Update", + "summary": "High-level Summary", + "date_modified": "2024-05-27T00:00:00.000Z", + "author": { + "name": "Daniel Firth", + "url": "https://github.com/locallycompact" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-05-24-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: Node versions 8.9.3 and 8.11.0; new PlutusV3 plus addtional DRep benchmarks; re-evaluation of network latency.
    • Development: BLST workload for PlutusV3 was implemented; improved error/shutdown behaviour for tx-generator is in testing phase.
    • Workbench: UTxO-HD tracer configs harmonized. New plutusv3 profiles supporting experimental budgets. Work on Haskell profile definition is in validation phase.
    • Tracing: New metrics and handle registry feature merged to master. Work on metrics naming ongoing. Factoring out RTView component has begun.

    Low level overview

    Benchmarking

    Runs and analyses of full sets of release benchmarks have been performed for Node versions 8.9.3 and 8.11.0.

    For comparison of how the Conway ledger performs when injecting large amounts of DReps and delegations versus one with zero DReps we've run additional configurations with existing workloads from release benchmarking. So far we've found\nthat the number of DReps in ledger scales well and does not lead to notable performance penalties.

    Additionally, we've successfully run the baseline for the upcoming PlutusV3 benchmarks on our Nomad cluster. Those will, given the new V3 cost model, serve to determine headroom, or constraint, regarding resource usage and network metrics when\noperating under various execution budgets.

    Last not least, with much appreciated support and feedback from the network team, we performed a re-evaluation of the network the latency matrix for our benchmarking cluster. The cluster stretches over three regions globally. Due to unknown changes in the underlying\nhardware infrastructure, a slight delay between Europe and Asia/Pacific regions could be measured. We needed to adjust some existing baselines accordingly - otherwise, this delay could be falsely attributed to a software regression.

    Development

    We have implemented a benchmarking workload using PlutusV3's new BLST internals. As those do little memory allocation, but require more CPU steps, this workload will allow us to focus on that particular aspect of block and transaction budgets.

    The tx-generator service will now label each submission thread with its submission target. Additionally, it has been equipped with custom signal handlers. This will improve both how gracefully shutdowns can be performed, and how\nprecise error reporting is done when losing connection to a submission target. Last not least, the service now supports a configurable KeepAlive timeout for the NodeToNode mini-protocol - accounting for very long major GC pauses on\nsubmission targets under very specific benchmarking workloads. Those features have entered testing phase.

    Workbench

    Thanks to feedback from the consensus team, we've harmonized tracing configurations for our benchmarks between regular and UTxO-HD node. As the latter is more verbose by default, this is a confounding factor for our metrics: We're analysing north\nof 90 traces per second per cluster node, so all node flavours are required to be equally verbose.

    The benchmarks based on the BLST workload now additionally support scaling budget components up or down at will. This means we can run a given cost model against custom execution budgets, controlling the point where the workload will exhaust it. This enables comparison\nof performance impact of potential changes to those budgets.

    Porting our performance workbench's profile definitions to Haskell has been nearly completed, and an adequate test suite been implemented. This new component has now entered validation phase to make sure it correctly replicates all existing profile content.

    Tracing

    Two new metrics for cardano-node have landed in master - both for new and legacy tracing systems. They provide detailed build info, and indicate wether the node is a block producer or not.

    We're now working on closing the gap in the metric naming schema between new and legacy tracing. The aim is to allow for a seamless interchange, without additional configuration required, so that all existing monitoring services can rely on identical metric\nnames with identical semantics.

    Furthermore, work has begun to factor out the RTView (\"real-time view\") component of cardano-tracer in the new tracing system. Unfortunately, the component has remained in prototype stage for over a year, and has revealed some design shortcomings. It's aim\nis to provide an interactive, real-time dashboard based on metrics from all nodes connected to cardano-tracer. The current design has all front-end side code baked into the backend service, requiring to rebuild the entire service in Haskell even for simple changes in the\ndashboard. We decided to isolate the component in the current code base, which still allows for optionally enabling it for a build. The long term goal however is to convert it into a downstream service: It will ingest metrics by reforwarding, or querying a REST API, and will provide\na clear separation of frontend facing code. Thus we, and anybody, can use their favourite web technology for visualization of metrics.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-24-performance-and-tracing", + "title": "Performance & Tracing Update", + "summary": "High level summary", + "date_modified": "2024-05-24T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2024-05-24-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general\nenvironment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet was respun for cardano-node 8.11.0-pre

    • Private chain was respun twice for pre-sancho respin testing and short epoch\ntesting with cardano-node 8.11.0-pre

    • Shelley-qa, two-thirds of preview and one-third of preprod networks were\ndeployed to cardano-node 8.11.0-pre

    • Sanchonet, private chain and shelley-qa networks had dbsync sancho-4-3-0\ndeployed

    • A dbsync show_current_forging prepared statement was added to the\ncardano-parts profile-cardano-postgres nixosModule to aid with debugging\nchain quality issues

    • Three documents were added to cardano-playground to better explain some\noperations procedures: KES rotation, chain quality debugging and new network\ncreation. Found at:\ndocs/explain

    • A new mithril dashboard template is available in cardano-parts

    Lower level summary

    Capkgs:

    • Avoid git API rate limit errors on update github action via netrc usage and\ncorresponding secret:\ncapkgs-commit

    Cardano-parts

    • Sets cardano-node-ng to 8.11.0-pre and cardano-db-sync-ng to sancho-4-3-0.\nAdds a dbsync prepared statement, mithril dashboard template, updates the\nnode application dashboard template, improves justfile recipe templates and\ntunes some systemd dependencies. Iohk-nix-ng was updated for sanchonet and\nprivate chain respins. More detail is available in the PR description:\ncardano-parts-pull-41

    Cardano-mainnet

    • Rotates KES, pins iogp4 as -ng, adds a mithril dashboard, updates the node\napplication dashboard, improves justfile recipes and tunes systemd node and\nmithril services to avoid some edge case errors. See the PR description for\nmore details:\ncardano-mainnet-pull-15

    Cardano-ogmios

    Cardano-playground

    • Respins sancho and private chains and deploys cardano-node 8.11.0-pre and\ncardano-db-sync sancho-4-3-0 to appropriate envs and machines. Adds a mithril\ndashboard template, updates the node application dashboard template, improves\njustfile recipe templates. Adds three new explainer readme documents. See the\nPR description for more details:\ncardano-playground-pull-24
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-24-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2024-05-24T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2024-05-22-ledger", + "content_html": "

    High level summary

    Most of the focus was on the conformance testing this time around. We had completed\nconformance tests for CERT and RATIFY rules and progressed on some of the others. This\nalso resulted in some improvements to the constraint-generators framework. Besides that\nwe've also fixed Stake Pool Operator stake distribution calculation that is used for\nvoting by including proposal deposits that are currently locked in the system. One of the\nLedger team members was also performing duties of a release engineer, so we also\nfacilitated the latest cardano-node-8.11 release.

    Low level summary

    Features and fixes

    • pull-4324 - Proposal deposits in SPO voting stake
    • pull-4316 - Complete EraScript hierarchy with missing classes
    • pull-4287 - Fix various minor issues in the Shelley & Babbage specs

    Testing

    • pull-4320 - CERT conformance
    • pull-4334 - RATIFY conformance
    • pull-4337 - Fix RATIFY conformance
    • pull-4325 - constrained-generators: soundness tests and bugfixes
    • pull-4323 - constrained-generators: clean up interface
    • pull-4336 - constrained-generators: Introduce fromList_ :: (HasSpec fn a, Ord a) =&gt; Term fn [a] -&gt; Term fn (Set a)

    Infrastructure and releasing

    • pull-4333 - Fix babbage-test and conway-test versions
    • pull-4332 - Update CHANGELOGs
    • pull-4343 - Bump requests from 2.31.0 to 2.32.0 in /doc
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-22-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-05-22T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-05-22-mithril", + "content_html": "

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling proof generation for mainnet by prototyping optimizations and benchmarking performance improvements. They also made progress on low-latency certification by completing the retrieval of the chain tip and importing transactions from the Cardano mini-protocol with Pallas. Additionally, they worked on a new explorer page to display in/out SPOs for the latest Cardano epochs.

    Finally, the team upgraded the testing-sanchonet network following the SanchoNet network respin, created a module for building test transactions, and began removing the deprecated snapshot command from the client CLI.

    Low level overview

    • Completed the issue Aggregator stress test crashes during signer registration #1676
    • Completed the issue Prune Cardano transactions stored on signer #1645
    • Completed the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Completed the issue Prepare testing-sanchonet for respin with Cardano 8.11-pre #1694
    • Completed the issue MacOS Rust tests are flaky in CI #1556
    • Worked on the issue Prototype optimizations for increasing Cardano transactions proof generation throughput #1687
    • Worked on the issue Retrieve Cardano blocks with chainsync in pallas PoC #1590
    • Worked on the issue Explorer display in/out SPOs in registered signers page #1686
    • Worked on the issue Create a test Cardano transactions builder #1667
    • Worked on the issue Cardano signatures are not produced on testing-sanchonet and testing-mainnet #1681
    • Worked on the issue Remove snapshot command in client CLI #1690
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-22-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-05-22T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-05-15-consensus", + "content_html": "

    High level summary

    • Released Consensus for Node 8.11 (#1101)
    • Improved the Praos chain order:
      • Restricted VRF tiebreaker based on slot distance (#1047)
      • Small tweak to the issue number tiebreaker (#1086)
    • Wrote overview on the statistics on the leader schedule (#1096)
    • Integrated robustness refinement for concluding that a node is caught up in the context of bootstrap peers (#1031)
    • The P&T team managed to complete the UTXO-HD benchmarks using the LMDB backend and the results are promising.
    • We're working on setting up the Consensus Technical Working Group within Intersect, so if you'd like to participate please reach out to Damian Nadales.
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-15-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2024-05-15T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2024-05-15-mithril", + "content_html": "

    High level overview

    This week, the Mithril team released the new distribution 2418.1, which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes aimed at preventing memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet. Specifically, they completed the implementation of compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges and initiated testing and assessing performance on mainnet in a test Mithril network. Additionally, they started working on minimizing the extra disk space requirements for the signer on the SPO infrastructure.

    Finally, the team implemented some optimizations for the aggregator, fixed some bugs on the client, and introduced new documentation for compiling the Mithril relay from source.

    Low level overview

    • Released the new distribution 2418.1
    • Completed the issue Use Block Range Merkle roots to sign Cardano transactions #1634
    • Completed the issue Use Block Range Merkle roots to prove Cardano transactions #1635
    • Completed the issue Deploy Cardano transactions to testing-mainnet #1647
    • Completed the issue Consistent sorting of transactions from GetCardanoTransactionProvider in signer and aggregator #1657
    • Completed the issue Use SQLite transactions when inserting Cardano Transactions and Block Range Roots #1656
    • Completed the issue Implement Ord on SignedEntityTypeDiscriminants #1648
    • Completed the issue Merkle roots don't have fixed size in the block_range_root table #1668
    • Completed the issue Refactor Cardano transactions database layer in persistence for signer and aggregator #1677
    • Completed the issue Some timing tests fail on ARM #1466
    • Completed the issue Add Mithril networks configurations in networks.json #1638
    • Completed the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Aggregator stress test crashes during signer registration #1676
    • Worked on the issue Prune Cardano transactions stored on signer #1645
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Retrieves Cardano blocks with chainsync in pallas PoC #1590
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-15-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-05-15T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-05-13-node-cli-api", + "content_html": "

    2024-04-27 - 2024-05-13

    High level summary

    Enhancements to the CLI encompass several noteworthy additions. These include the introduction of a new hardfork initiation command, rendering --prev-governance-action-tx-id optional for create-no-confidence actions, addressing scenarios where the committee is defined in the Conway Genesis file, and refining help texts. Additionally, there have been updates to the description fields in governance action files.

    Adjust maximum understood protocol version from 9 to 10 when the experimental hardforks flag is enabled. This allows us to bypass Conway's bootstrap phase in testing

    Continued work in testing implementation of CIP1694 with cardano-testnet.

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-13-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2024-05-13T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2024-05-10-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team upgraded the hydra-node networking layer to use a versioned handshake protocol, as well as extensive documentation restructuring and bug fixes to the hydra-tui.

    What did the team achieve this week

    • Use versioned hadshake when connecting hydra-nodes.
    • Restructure documentation.
    • Fixed the transaction envelope type parsing in order to be compatible with cardano-cli and update our docs.
    • Show the contestations in the hydra-tui
    • Experiment with removing persistence in the reliability layer and adding custom command to Reset the head state to the last confirmed snapshot

    What are the goals of next week

    • Provide aarch64-linux docker images for hydra-node.
    • Release hydra-node 0.17.0
    • Finish new model spec changes related to decommit testing
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-10-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2024-05-10T00:00:00.000Z", + "author": { + "name": "Daniel Firth", + "url": "https://github.com/locallycompact" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-05-10-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general\nenvironment maintenance.

    Some notable recent changes, updates or improvements include:

    • A preview of the new cardano tracing system is available by using the\nprofile-cardano-node-new-tracing new nixosModule from cardano-parts and is\ncomplemented with new tracing system dashboards and alerts

    • Custom cardano metrics can be pushed to a statsd server and then scraped to a\nmonitoring solution using the profile-cardano-custom-metrics new\nnixosModule from cardano-parts

    • A new cardano-parts job for spinning up clusters using a recent cardano-cli\ncommand, create-testnet-data, was implemented: .#job-gen-custom-node-config-data

    Lower level summary

    Cardano-faucet

    Cardano-parts

    • Sets cardano-faucet-ng to 8.10, and mithril[-ng] to 2418-1. A preview\nnixosModule for cardano-node's new tracing system has been added as well as a\ncardano custom-metrics module. Dashboards have been added for the new tracing\nsystem. Cardano-node alerts have been refactored into several rulesets which\ninclude some new alerts as well as new tracing system alerts. A job for\nspinning a cardano cluster up using a new underlying cardano-cli mechanism,\ncreate-testnet-data, was added. More detail is available in the PR description:\ncardano-parts-pull-40

    Cardano-mainnet

    • Sets mithril to 2418-1. Cardano-node alerts have been refactored into\nseveral rulesets which include some new alerts as well as new tracing system\nalerts. See the PR description for more details:\ncardano-mainnet-pull-14

    Cardano-perf

    Cardano-playground

    • Sets cardano-faucet-ng to 8.10 which fixes a sanchonet faucet instability, and\nmithril[-ng] to 2418-1. Adds a new cardano-node tracing system preview to some\nmachines with corresponding dashboards. Cardano-node alerts have been\nrefactored into several rulesets which include some new alerts as well as new\ntracing system alerts. A job for spinning a cardano cluster up using a new\nunderlying cardano-cli mechanism, create-testnet-data, was added and integrated\nwith the Justfile start-demo recipe. Includes other misc tuning and\nimprovements. See the PR description for more details:\ncardano-playground-pull-23
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-10-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2024-05-10T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2024-05-08-ledger", + "content_html": "

    High level summary

    Some of the most important and final Conway features were implemented since the last report:

    • Bootstrap phase is fully implemented
    • HardForkInitiaztion governance action will now correctly take us into the next era\nthat will follow the Conway era.
    • DRep stake distribution now also includes the amount in the reward account and deposits\nthat were left for the governance proposals.
    • CostModels updates for plutus scripts made more flexible, which will allow us adding\nnew primitives for all plutus versions starting with the Conway era.

    As always, besides new features, we also wrote a lot of testing functionality. We now have\nour first and fully functional conformance test for a GOV rule, with a few more in the\nworks. Many improvements and bugfixes to constraint based generating functionality. Last,\nbut not least, we did a major and long awaited improvement to our CI setup that makes it\nmuch easier to spot failing tests and deal with potential flakiness.

    Low level summary

    Conway

    • pull-4275 - Restrict gov actions during bootstrap
    • pull-4253 - Hardfork Initiation into a new era
    • pull-4273 - DRepDistr: Iterate over the DRep delegations in UMap
    • pull-4309 - Add proposal deposits to DRep active voting stake.
    • pull-4284 - Flexible costmodel params
    • pull-4328 - Disable drep thresholds in bootstrap

    Testing

    • pull-4295 - Improve generator in ImpTestsState
    • pull-4292 - constrained-generators: add genHint for maps
    • pull-4298 - constrained-generators: utility function for asserting over a reified value
    • pull-4300 - constrained-generators: hotfix of latest derp...
    • pull-4297 - constrained-generators: Fix ifElse dependencies
    • pull-4301 - constrained-generators: Add monitoring capability to get a handle on test case distribution
    • pull-4315 - constrained-generators: Improve error messages and make the tree generator reasonably sized
    • pull-4317 - constrained-generators: Fix bug in reifies
    • pull-4299 - Fix strange CI failure.
    • pull-4285 - Start Conway Imp tests with an initial committee and constitution
    • pull-4303 - Fix test caused by erroneous merge
    • pull-4310 - Fix OMap.assocList
    • pull-4268 - Enable conformance tests for GOV rule

    Infrastructure and releasing

    • pull-4276 - Use a separate job for each test suite in GitHub CI
    • pull-4304 - Ensure the CI complete step fails when tests fail
    • pull-4308 - Add a CI status check to prevent merging PRs that contain merges
    • pull-4305 - Use the correct iohk action for installing Haskell in GitHub CI
    • pull-4322 - Bump jinja2 from 3.1.3 to 3.1.4 in /doc
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-08-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-05-08T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-05-07-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: We've performed and analysed benchmarks in the Conway era, with DReps injected.
    • Development: Tracing DRep data has been implemented; improved error reporting in tx-generator and analysis quick queries are ongoing work.
    • Workbench: We now fully supports the new CLI create-testnet-data command and DRep injection into Conway genesis. Haskell profile definition work is ongoing.
    • Tracing: Various additions to Node metrics are being worked on, such as build info and block producer role. Metrics naming will be further harmonized.
    • UTxO Growth: We've finalized analysis and reports of all benchmarks targeting UTxO scaling scenarios.
    • UTxO-HD / LMDB: We've performed multiple runs benchmarking the LMDB (on-disk) backend of UTxO-HD.

    Low level overview

    Benchmarking

    We've run and analyzed a full set of benchmarks comparing the Conway ledger against the Babbage one, on Node 8.10.1-pre. For Conway, our additional goal was to measure a vanilla ledger state against one with a large amount of DReps - and delegations to those DReps - present. The\nbenchmarks used our existing value and Plutus workloads to remain comparable to each other.

    Development

    Additional ledger queries for the tracing system have been implemented and merged to master. Those capture the amount of, and the number\nof existing delegations to, DReps as trace output - and thus enable creating a metric on top of it, which can then be monitored.

    The (in our case) non-deterministic nature of shutting down different cluster setups - both local and cloud-based - carries the possibility\nthat our transaction generation service occasionally misclassifies a regular shutdown as an error. Furthermore, in the case of network malfunctions, the service's errors are too unspecific. By implementing thread labels for submission threads, corresponding to each\nsubmission target, and by adding custom smart signal handlers, we'll improve the generator's error reporting significantly.

    The initial tests for quick queries are being developed further. We're moving towards a principled, and generalized, syntax that supports both\nprepared, parametrizable queries from the application code, as well as ad-hoc queries stated e.g. on the command line.

    Workbench

    The performance workbench now fully supports the new cardano-cli command create-test-data. We use it to inject both stake\ndelegated to stake pools into genesis, and - recently added - stake delegated to DReps as well. It has been proven very useful\nand versatile so far, and will eventually replace the current create-staked command.

    Work on porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is still ongoing; currently, we're integrating all new profile families that came out of the UTxO growth scenarios.

    Tracing

    New metrics are being implemented for the tracing system. They will also be part of Prometheus output and as such accessible to\nmonitoring services. There'll be cardano-node's detailed build info, as well as a node's block producer status, meaning the presence of forger credentials. Those new metrics are being backported to the legacy tracing system, too.

    Furthermore, we've determined the need to revisit metrics naming. There's still a divergence between naming in the legacy\nand the new system. While this could be mitigated by passing in extra config options, we think that a transition to the new system\nshould not impose any unnecessary effort for node operators. A design to fully harmonize the existing naming schemata is currently being\nset up.

    UTxO Growth

    The UTxO Growth benchmarking series has been finalized. We've finished analyses and reports for all scenarios that\nwere tested and explored.

    The overarching questions were, given a network of 32GB host systems, how large can the UTxO set grow in general,\nhow large can it grow before the nodes have to operate close to the RAM limit over extended periods of time, and how does scaling the UTxO set size affect network metrics, such as block diffusion.

    A dedicated \"UTxO Scaling Squad\" was set up, who was driving the entire process, and we enjoyed a very focused and productive collaboration with them.

    UTxO-HD / LMDB

    Last not least, we were able to benchmark UTxO-HD's on-disk backend on a network of block producing nodes, on a recent 8.9.1 version\nof cardano-node. The setup allowed of using a direct access SSD device for performance critical disk I/O, whereas the bulk of ChainDB and ledger snapshots remained on a standard AWS EBS volume.

    The benchmarks comprised both optimistic and pessimistic RAM assumptions for the host OS to further optimize I/O via page cache, as well as medium and large UTxO set sizes - the latter almost tripling current mainnet's size. The results were promising; the LMDB backend has proven to be able to accomodate large UTxO sets using significantly less RAM than the default all-in-memory node - and with a more than reasonable trade-off performance-wise. Furthermore, running with pessimistic assumptions, the performance impact on LMDB was very moderate only.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-07-performance-and-tracing", + "title": "Performance & Tracing Update", + "summary": "High level summary", + "date_modified": "2024-05-07T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2024-05-06-network", + "content_html": "

    High-level overview of sprint 60

    Edited on 8th of May: new EGK counters will be included in `cardano-node-8.9.3`, added links to `cardano-node-8.9.3` PR and `ouroboros-network-0.15` release.

    Peer-Sharing Improvements

    We continued working on improving peer sharing. As part of this work light\npeer sharing (e.g. including inbound peers to the known set of outbound\ngovernor), was restructured. Now, sending more peers than what was requested by\nthe peer-sharing client is a protocol error, and the connection will be terminated;\nThis hasn't been a resource attack vector since we always limited the number of\npeers taken by the outbound-governor and the number of peers has always been\nlimited by the size of the mux ingress queue reserved for peer-sharing\nmini-protocol. These changes will be released in cardano-node-8.9.3. See\nouroboros-network#4868

    We also merged the work on outbound governor counters, which initially started\nas just an extension for peer-sharing counters but turned into a larger\nrefactorisation. We announced it in the previous report. These changes will\nbe included in 8.9.3. See ouroboros-network#4845,\nouroboros-network#4861.

    Light peer sharing (inbound peers) refactorisation allowed us to refactor the\ninbound governor loop: we restructured it so that the internal state is kept\npure (and thus not shared with other threads), while the public part is\ncomputed incrementally (with good amortised costs and thus leading to good performance) and exposed to other\ncomponents (e.g. the outbound-governor), see ouroboros-network#4871 (which\nis built on top of ouroboros-network#4868).

    The PR [cardano-nod#5831] integrates ouroboros-network-0.15 with\ncardano-node-8.9.x branch. All included PRs / issues in\nouroboros-network-0.15 are listed here.

    Genesis

    We implemented the API needed by the consensus layer for Genesis; see\nouroboros-network#4815, ouroboros-network#4846.

    We continued working on outbound governor changes to support Genesis:

    Bootstrap Peers

    Karl Knutsson ([CF]) found and fixed some problems related to big-ledger and\npublic root peers. Here's an excerpt from the changelog file:

    • updated the big-ledger retry state in case of an exception;
    • reset public root retry state when transitioning between LedgerStateJudgements;
    • reduced public root retry timer;
    • don't classify a config file with public-root/bootstrap-peers IP addresses only\nas a DNS error.\nSee ouroboros-network#4867.

    Churn

    We merged a refactorisation which synchronises churn with the outbound\ngovernor, see ouroboros-network#4617.

    Minor Improvements

    A few other minor improvements were merged:

    Testing

    We added quickcheck-monoids package and also submitted an upstream patch to\nQuickCheck to include a version of the standard All / Any monoids, which\nare helpful when writing more complex properties. We will use\nquickcheck-monoids until the upstream PR will be released. It will be\navailable from CHaP. See quickcheck#397.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-06-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 60", + "date_modified": "2024-05-06T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2024-05-03-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team has been working on refactoring and detecting network protocol version mismatches. They have also merged the /commit endpoint changes including a follow-up fix about fee calculation. Besides this, they applied minor workflow fixes by adding docker images to nix checks and disabling mithril integration testing on preview (until mithril 2418 is released).

    What did the team achieve this week

    • Refactor connectivity and detect network protocol version mismatches #1381
    • Merged and completed #1350, including a follow-up fix about fee calculation
    • Add docker images to nix checks
    • Disable mithril-client testing on Preview

    What are the goals of next week

    • Restructure documentation including a how to about streaming plugins #1325
    • Add arm64 docker images as requested in #1404
    • Release 0.17.0
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-03-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2024-05-03T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-05-01-consensus", + "content_html": "

    High level summary

    • Reworked the argument for the different databases used in Consensus, in preparation for UTxO-HD (#1059).
    • Helped review the first Peras Innovation draft report.
    • Continued working on VRF restriction based on slot distance. The corresponding PR (#1047) went through its first round of reviews.
    • Provided support to the Networking team to review their work on querying big ledger peers (#1067).
    • Continued working on open-sourcing fs-api and fs-sim.
    • Performed other minor refactorings in the codebase (#1073 and #1070).
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-05-01-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2024-05-01T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2024-04-30-mithril", + "content_html": "

    High level overview

    This week, the Mithril team prepared a new pre-release distribution 2418.1-pre, which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes to prevent memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet by leveraging the compression of the transaction Merkle tree using sub-Merkle trees based on transaction block ranges during signature and proving. Additionally, they implemented a stream mechanism for importing transactions into the signer and aggregator stores.

    Finally, the team started implementing a global Mithril networks configuration file and continued investigating some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.

    Low level overview

    • Created a pre-release for the new distribution 2418.1-pre
    • Completed the issue Store Block Range Merkle roots in signer and aggregator databases #1633
    • Completed the issue Stream import of Cardano transactions #1646
    • Completed the issue Memory leak in Cardano transactions signature/proof #1629
    • Completed the issue Handle unparsed blocks in Cardano transactions parser #1567
    • Worked on the issue Use Block Range Merkle roots to sign Cardano transactions #1634
    • Worked on the issue Use Block Range Merkle roots to prove Cardano transactions #1635
    • Worked on the issue Use SQLite transactions when inserting Cardano Transactions and Block Range Roots #1656
    • Worked on the issue Add Mithril networks configurations in networks.json #1638
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-30-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-04-30T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-04-27-node-cli-api", + "content_html": "

    2024-04-16 - 2024-04-26

    High level summary

    8.10.1-pre was released to SanchoNet.

    The team continues focused on implementing tests for the Conway era on the cardano-node repository. This sprint the team made various improvements to\nCI pipelines on cardano-cli.

    • Cardano-cli: implemented build-estimate to facilitate automatic transaction balancing without access to a live node; and added minFeeRefScriptCostPerByte as an option to create-protocol-parameters-update command.

    cardano-node

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-27-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2024-04-26T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2024-04-26-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general\nenvironment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.9.2 is now deployed to mainnet, preprod, preview and\nshelley-qa environments.

    • Cardano-node 8.10.1-pre is now deployed to sanchonet and also to one-third of\nIOGs preprod environment nodes and two-thirds of IOGs preview environment\nnodes.

    • Private chain for Voltaire team was paused with plans for a future respin.

    • The network team's ouroboros-network-ops machine cluster was re-written using\nthe cardano-parts stack to upgrade from the nixops/terraform/niv stack it was\npreviously using.

    Lower level summary

    Cardano-parts

    • Sets cardano-node to 8.9.2, dbsync-ng to sancho-4.2.0; mithril to 2412.0,\niohk-nix to include new peerSharing defaults and introduce a new block\nproducer config. Adds a new truncate-chain recipe and improves mithril\nrelated services. More detail is available in the PR description:\ncardano-parts-pull-38

    • Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2; mithril pre (-ng)\nto unstable, iohk-nix and iohk-nix-ng pin includes new Cardano Foundation\nbootstrap relays. Adds new aws machine management and other recipes, metadata\njob support for pool creation, misc fixes and improvements. More detail is\navailable in the PR description:\ncardano-parts-pull-39

    Cardano-mainnet

    • Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new\npeerSharing defaults and colmena.nix cluster refactor for peerSharing\nadjustments and implements all updates in cardano-parts PR#38. See the PR\ndescription for more details:\ncardano-mainnet-pull-12

    • Sets dbsync to 13.2.0.2, iohk-nix and iohk-nix-ng to include new CF relays,\nadds new aws machine management recipes and implements all updates in\ncardano-parts PR#39. See the PR description for more details:\ncardano-mainnet-pull-13

    Cardano-node

    • Default peerSharing true and add block producer config to release binaries.\nSee the PR description for more details:\ncardano-node-pull-5789

    Cardano-ops

    Cardano-perf

    • Adds a caddy webserver for run reviews and tunes the NVME FS mounts for performance:\ncardano-perf-compare

    Cardano-playground

    • Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new\npeerSharing defaults, refactors mdbook out of docs dir, adds example chain\nmanipulation doc and implements all updates in cardano-parts PR#38. See the\nPR description for more details:\ncardano-playground-pull-21

    • Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2, mithril pre (-ng)\nto unstable, iohk-nix and iohk-nix-ng to include new CF relays, adds a public\nTLS dbsync user connection option, stops private chain cluster and implements\nall updates in cardano-parts PR#39. See the PR description for more details:\ncardano-playground-pull-22

    Iohk-nix

    • Creates block producer configurations to accomodate PeerSharing set true by default:\niohk-nix-pull-575

    • Adds Cardano Foundation mainnet bootstrap peers:\niohk-nix-pull-578

    Ouroboros-network-ops

    Sanchonet

    Sanchonet-demo

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-26-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2024-04-26T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2024-04-24-ledger", + "content_html": "

    High level summary

    Ability to specify CostModel for PlutusV3 in the genesis file was implemented, which\nwill allow us to execute PlutusV3 as soon as we enter Conway era, which is essential\nfor guardrails script. Important bugs that have been fixed:

    • Invalid reporting of InsufficientCollateral and ValueNotConservedUTxO predicate\nfailures. In case of validation failure a confusing deserialization was reported instead\nof those predicate failures.
    • Calculation of votes for Constitutional Committee Members did not consider expired\nmembers correctly.
    • Useful function redeemerPointer was deprecated without good justification.

    Besides bugfixes there was a lot of work done on the testing side. Constraint based data\ngeneration is receiving continuous improvements. More unit and property tests for Conway\nera functionality.

    Low level summary

    Conway

    • pull-4259 - Undeprecate redeemerPointer and expose it in cardano-ledger-api
    • pull-4252 - Add PlutusV3 CostModel to UpgradeConwayPParams
    • pull-4247 - Change the balance in InsufficientCollateral to DeltaCoin
    • pull-4267 - Expand TxAuxData interface
    • pull-4265 - Inline UTxO and UTxOW PredFailure for Conway
    • pull-4281 - Discount expired CC from CC-size calculation
    • pull-4290 - Add NoThunks instance for UTxO pred failures
    • pull-4288 - Fix burning tokens predicate failure

    Testing

    • pull-4241 - Add fixup combinators to ImpTest framework
    • pull-4229 - Shrinking for constrained-generators
    • pull-4244 - Imptests: CommitteeMinSize affects in-flight props
    • pull-4269 - Fix generation bug for sums of positive member spec
    • pull-4266 - Add imptest to propose and enact unknown costmodels
    • pull-4261 - constrained-generators cleanup for hackage
    • pull-4279 - constrained-generators: Fix bug in toPreds for maps + add additional tests
    • pull-4272 - simplify foldMap interface to higher order syntax
    • pull-4283 - constrained-generators: add new test to test suite
    • pull-4286 - constrained-generators: refactor reify to reduce the number of binding sites + delay simplification more to avoid variable capture in higher order syntax

    Infrastructure and releasing

    • pull-4260 - Bump idna from 3.3 to 3.7 in /doc
    • pull-4277 - Fixed formatting in HowToProfileLedger.md
    • pull-4282 - Bump plutus deps to 1.26
    • pull-4294 - Avoid cancelling scheduled CI when a new merge happens on master
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-24-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-04-24T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-04-24-mithril", + "content_html": "

    High level overview

    This week, most of the Mithril team attended the Cardano Buidler Fest #1 in Toulouse, France. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet by compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges. The team identified the source of an issue preventing proper memory release during the signing/proving of a large set of transactions and developed a fix for it. Additionally, they completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network.

    Finally, the team implemented a configurable feature for test networks to log unparsable blocks instead of panicking and investigated some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.

    Low level overview

    • Completed the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue Store Block Range Merkle roots in signer and aggregator databases #1633
    • Worked on the issue Stream import of Cardano transactions #1646
    • Worked on the issue Memory leak in Cardano transactions signature/proof #1629
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-24-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-04-24T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-04-19-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team refactored the heartbeat logic to prepare for the versioned network protocol. They have also switched http://explorer.hydra.family to run on the preview network. Additionally, the team has added property tests to the /commit endpoint changes.

    What did the team achieve this week

    • Refactor heartbeat logic to prepare for versioned network protocol.
    • Switch http://explorer.hydra.family to run on preview network.
    • Add property tests to /commit endpoint changes

    What are the goals of next week

    • Attend and connect with community on Cardano Builder Fest
    • Merge new /commit endpoint changes
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-19-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2024-04-19T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-04-19-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: We've performed benchmarks and analyses for Node versions 8.9.2 and 8.10.0.
    • Development: Design phase for implementing quick queries in the analysis pipeline has begun.
    • Workbench: We're finishing up the new features for the reporting pipeline; Haskell profile definition work is ongoing.
    • Tracing: Improving the Prometheus output is ongoing; the node's build info will be accessible as a Prometheus label.
    • UTxO Growth: Our tooling has been augmented to support benchmarks starting with a non-empty chain.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.9.2. Comparing with release 8.9.1, we could not detect any performance risks for that version.

    The benchmarks for 8.10.0 have shown a slight improvement in the time the block forging loop needs to evaluate, whilst additionally, resource usage of the cardano-node process was also slightly reduced - a nice performance improvement.

    Development

    Our analysis pipeline is based on batch analysis of data from over 50 cluster nodes; it consumes very large amounts of trace output ex post facto, when the actual benchmark has terminated.\nThis is very time-intensive, and not viable for obeserving an additional metric that you later on determine might need consideration.

    We're planning to add quick queries into a benchmarking run's trace data to our analysis pipeline. These will be structured such that parameterizable, ad-hoc querying is supported. Initial tests showed that evaluation speed\nof such queries is fast enough to merit designing a principled, and generalized, syntax for them - and a subsequent implementation.

    Workbench

    The reporting pipeline has been augmented with direct support for customizable, and stylable, TeX rendering - currently receiving final touches.

    Porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is ongoing work. It is our goal to both increase reliable profile definition and validation, and\nfacilitate usage by engineers less familiar with the workbench.

    Tracing

    The work to improve system metrics as presented to Prometheus is still ongoing. Type annotations, as well as introducing Prometheus labels for certain metrics to convey (like e.g. build information), will make that interface\nmore versatile. It also facilitates configuration of monitoring or dashboards like Grafana on top of those Prometheus metrics.

    UTxO Growth

    For the UTxO scaling benchmarks, we've augmented the workbench with the capability to support injection of a custom synthesized chain into the deployment, and start a benchmark only after replaying that chain - whereas\nour benchmarks usually start just with a genesis block.

    To achieve that, different components of our tooling needed addition of features: distributing that chain to the node cluster, having analysis work without necessarily providing trace evidence of each block in the chain being forged by a benchmarking node. Cluster timing had to be adjusted to account for the gap between genesis start time and the chain tip. However, this entire mechanism opens up the possibility of having a very distinct ledger state at hand for a benchmark - one, that's been particularly crafted via a series of\npre-defined transactions constituting the blocks during creation of the synthesized chain.

    In the future, we plan to flesh out a more general design of that mechanism, which currently is tied to a very specific use case only.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-19-performance-and-tracing", + "title": "Performance & Tracing Update", + "summary": "High level summary", + "date_modified": "2024-04-19T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2024-04-15-network", + "content_html": "

    High-level overview of sprint 58 and sprint 59

    Releases

    We released cardano-node-8.9.1, and we tagged a soon to be released\ncardano-node-8.9.2\nThe 8.9.2 release will have a fixed peer sharing support, which we\nincidentally broke in 8.9.1. We expanded our test suite to cover discovered\nbugs (see below for more details). Please also see the release\ntab in our project to see which PRs / issues were\nincluded in a given release, the following mapping might also be useful:

    • ouroboros-network-0.13.1.0 -> cardano-node-8.9.1
    • ouroboros-entwork-0.14.0.0 -> cardano-node-8.9.2

    Genesis

    We continued working on network Genesis support:

    • ouroboros-network#3396 - churn policy for Genesis;
    • ouroboros-network#4813 - outbound governor support for Genesis;
    • support for cardano-cli to write a big ledger peers snapshot to disk and\nfor cardano-node to pass it to ouroboros-network.

    As well as a feature required by consensus:

    TxSubmission

    Only a little progress was made due to one of us being on vacation.

    Churn and EKG metrics

    While working on ouroboros-network#4815, we addressed technical debt\nin churn. The PR removes implicit synchronisation (in terms of delays) in\nfavour of explicit synchronisation with the outbound governor. The PR extends\nEKG counters traced by the node. See below for some graphs.

    Documentation

    We updated the documentation on peer sharing, see\ncardano-node-wiki#44.

    Low level details

    Peer Sharing Testing

    We wrote a testing scenario for peer sharing, which simulates a node setup:\nA -> B <- C, where neither of the nodes B and C have any local roots; they only learn about other nodes through (light) peer sharing. B learns\nabout A and C because they connect to it, while C should learn about A\nthrough peer sharing. This test scenario should prevent us from breaking peer sharing in the\nfuture in some obvious ways. In the future, we will also work on extending our\ntest suite with peer sharing in mind. See ouroboros-network#4839,\nouroboros-network#4841.

    EKG / Prometheus Counters

    Note that this is in progress, so some things might still change.

    We will provide counters for active (also known as hot) peers,\nestablished (e.g. hot & warm) peers and known (e.g. hot, warm and\ncold) peers. This is the same way one specifies targets in the node's\nconfiguration. In addition, the three groups are split into five categories:

    • ledger peers
    • big ledger peers
    • local root peers
    • bootstrap peers
    • shared peers

    In addition, we also provide a counter for root peers, which counts ledger peers,\nbig ledger peers, local roots and bootstrap peers, which correspond to the\nroot peers target TargetNumberOfRootPeers in the configuration.

    We also provide counters for ongoing promotions and demotions.

    Ledger peers are affected by TargetNumberOf{Known,Established,Active}Peers and TargetNumberOfRootPeers.\nThe gap between TargetNumberOfRootPeers and TargetNumberOfKnownPeers will\nbe filled either with ledger peers or peers, which the node discovered through\npeer sharing.\nBig ledger peers are affected by TargetNumberOf{Known,Established,Active}BigLedgerPeers.

    Below are some Grafana graphs from an experimental cardano-node branch:

    Deprecation policy

    The previous hot, warm / cold EKG counters will also be available,\nalthough deprecated after the new ones are released. Sometime in the future\nthey will be removed.

    Grafana graphs

    The screenshots are from a node, which is configured without any bootstrap\npeers, which is why all bootstrap metrics are 0. The node is configured with the following targets:

      \"TargetNumberOfRootPeers\": 60,
    \"TargetNumberOfKnownPeers\": 100,
    \"TargetNumberOfEstablishedPeers\": 40,
    \"TargetNumberOfActivePeers\": 15,
    \"TargetNumberOfKnownBigLedgerPeers\": 15,
    \"TargetNumberOfEstablishedBigLedgerPeers\": 10,
    \"TargetNumberOfActiveBigLedgerPeers\": 5,

    and has a small number of local root peers and one peer in its publicRoots\nconfiguration.

    Active Peers Metrics

    \"P2P

    Established Peers Metrics

    \"P2P

    Known Peers Metrics

    \"P2P

    Churn Metrics

    \"P2P

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-15-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 58 and sprint 59", + "date_modified": "2024-04-18T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2024-04-17-consensus", + "content_html": "

    High level summary

    • Implemented the new diffusion pipelining criterion.
    • Presented, reviewed and merged the March milestone for Genesis.
    • Integrated latest changes into Node version 8.10.
    • Regarding the UTXO-HD feature we:
      • Completed fixes in test-suites from cardano-node, cardano-api, and ouroboros-consensus. All tests are passing in latest prototype.
      • Prepared UTXO-HD prototype for LMDB benchmarking.
      • Fixed tracing in cardano-node.
      • Started merging code from the UTXO-HD branch into main (1053, 1052, and 1054).
    • We're currently working on getting rid of NoThunks errors in Consensus, so that we can enable these tests in CI, for extra assurance.
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-17-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2024-04-17T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2024-04-17-db-sync", + "content_html": "

    High level summary

    The DBSync team has released 1 version for mainnet 13.2.0.1 and 3 pre-releases for sanchonet\n4.0.0, 4.1.0, 4.2.0. We have continued the integration of Conway (CIP-1694) and the support\nof off-chain data (CIP-100)

    Lower level summary

    • CI build and docker fixes\n#1670\n#1668\n#1667\n#1662

    • Improved committee representation\n#1662\n#1571\n#1633

    • Offchain metadata partial support\n#1654

    • Refactoring and tech-debt\n#1635

    • Fixing epoch_stake_progress\n#1620

    • Config and modulatirty improvements\n#1653\n#1652

    • Updating to node-8.10-pre. Better support for deposits, refunds and proposal state\n#1673

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-17-db-sync", + "title": "DB Sync Team Update", + "summary": "High level summary", + "date_modified": "2024-04-17T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2024-04-17-mithril", + "content_html": "

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling the signature and proof generation for mainnet with the compression of the transaction Merkle tree by using sub-Merkle trees of transactions by block ranges. They also made progress in designing low latency certification, investigated a memory leak in the signature/proof process, and worked on retrieving the tip of the chain with the Pallas chain observer. The team almost completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they completed the refactoring of the database providers of the aggregator and re-span the testing-sanchonet network following the release of Cardano node 8.10.0-pre.

    Finally, the team made some optimizations on the compilation of their pre-built binaries to fix panics occurring on CPUs without ADX instructions, and created a network configuration file on the repository to facilitate automatic compatibility checks.

    Low level overview

    • Completed the issue Create file with Cardano minimum versions in repository #1615
    • Completed the issue Deploy testing-mainnet network #1617
    • Completed the issue Refactor database module in aggregator #1583
    • Completed the issue Client deprecation notice should be written in JSON when --json option is used #1616
    • Completed the issue Activate portable feature in mithril-stm by default #1613
    • Completed the issue Prepare testing-sanchonet for respin with Cardano 8.10 #1618
    • Worked on the issue Store Block Range Merkle roots in signer and aggregator databases #1633
    • Worked on the issue Memory leak in Cardano transactions signature/proof #1629
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-17-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-04-17T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-04-15-node-cli-api", + "content_html": "

    2024-04-01 - 2024-04-15

    High level summary

    Adding support for script based committee members certificates: authorization and resignation. It is now possible to convert extended signing Drep and Committee keys to a Shelley-format key. Improvements to Conway era tests. Use threshold instead of quorum for committee members.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-15-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2024-04-15T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2024-04-12-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team fixed a bug in the smoke test and refactored to allow network functions to distinguish between inbound and outbound. The team also prepared a cardano-api 8.44 branch for cardano-node 8.10 once it gets released. They also contributed to the cardano-ledger-api by undeprecating and exposing redeemerPointer.

    What did the team achieve this week

    • Fix FaucetFailedToBuildTx in smoke test #1384
    • Refactoring to allow network functions to distinguish between inbound and outbound
    • Prepared a cardano-api 8.44 branch, but got blocked 👇
    • Undeprecate redeemerPointer and expose it in cardano-ledger-api cardano-ledger#4259

    What are the goals of next week

    • Complete new /commit endpoint interface #1350
    • Refactor to allow NodeLogic to pass through connection messages, to unblock 👇
    • Use versioned handshake when connecting hydra-nodes #1010
    • Test all combinations of decrement/close/fanout for #1057
    • Meet with tech writers about the landing page
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-12-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2024-04-12T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-04-12-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general\nenvironment maintenance.

    Some notable recent changes, updates or improvements include:

    • Private chain for Voltaire team was respun for cardano-node 8.10.0-pre\npre-release and re-hard forked into Conway era.

    • Sanchonet was respun for cardano-node 8.10.0-pre pre-release and re-hard\nforked into Conway era.

    • Cardano-node 8.10.0-pre was also deployed to one-third of IOGs preprod\nenvironment nodes and two-thirds of IOGs preview environment nodes.

    Lower level summary

    Cardano-parts

    • Sets cardano-node|cli-ng to 8.10.0-pre, dbsync-ng to sancho-4.1.0; bumps\nnixpkgs (23.11) and nixpkgs-unstable; improves, adds new and fixes a number\nof just recipes; allows repo custom recipes to be kept as a separate import\nfor easy justfile maintenance; refactors ip module checking into its own\nnixosModule and adds an extra abort option for safety. Much more detail is\navailable in the PR description:\ncardano-parts-pull-36

    Cardano-mainnet

    • Bumps cardano-parts for a number of recipe additions, improvements, fixes.\nFixes blockperf dnsmasq looksups and adjusts colmena topology code to account\nfor intra-cluster localRoots now defaulting to trustable true and implements\nall updates in cardano-parts PR#36. See the PR description for more details:\ncardano-mainnet-pull-11

    Cardano-perf

    • Add a new perf-ssd machine class and deployment for ssd related performance\ntesting and benchmarking. Add new just recipes and cluster resource tagging.\ncardano-perf-compare

    Cardano-playground

    • Bumps cardano-parts for a number of recipe additions, improvements, fixes,\nand node 8.10.0-pre. Respins private chain and sanchonet for node 8.10.0-pre\nwith corresponding book updates and implements all updates in cardano-parts\nPR#36. See the PR description for more details:\ncardano-playground-pull-20

    Iohk-nix

    • WIP: Prepares block producer configurations to accomodate upcoming peerSharing default change:\niohk-nix-pull-575

    • Provides iohk-nix updates for node 8.10:\niohk-nix-pull-576

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-12-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2024-04-12T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2024-04-10-ledger", + "content_html": "

    High level summary

    Most notable progress is on testing. In particular data generation for conformance test\nhas been improved and the implementation organized. Addition of various Conway related\nunit and property tests.

    Conway

    • pull-4236 - Fix typo in ToJSON of ConwayGovState
    • pull-4250 - Add some ToJSON instances needed by cardano-node

    Testing

    • pull-4221 - Fix a NoThunks test failure on nightly builds
    • pull-4214 - Fix estimateMinFeeTx w/ bootstrap test
    • pull-4189 - Imptests - treasury withdrawals
    • pull-4207 - Added tests from a bug report
    • pull-4238 - Imptests: ParameterChange affects ratification for in-flight proposals
    • pull-4243 - Convert small-steps testsuite to Hspec
    • pull-4248 - Fix withdrawals test data generation in EnactSpec
    • pull-4212 - Update and reorganize conformance tests
    • pull-4242 - Added UnitTestTools and IncrementalStakeTest

    Infrastructure and releasing

    Low level summary

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-10-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-04-10T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-04-10-mithril", + "content_html": "

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed the incremental storage of transactions, activated the signature of the transactions on the testing-preview network, and prepared a new network to test the scaling on mainnet data. The team also made progress on a prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they worked on refactoring the database providers of the aggregator.

    Finally, the team delivered a community requested feature that displays the minimum versions of the Cardano node that the signer supports in a machine-readable format. They also provided a manual setup guide for the relay in the SPO user guide.

    Low level overview

    • Completed the issue Implement incremental storage of Cardano transactions in signer/aggregator #1591
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue Refactor database module in aggregator #1583
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Create file with Cardano minimum versions in repository #1615
    • Worked on the issue Deploy testing-mainnet network #1617
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Completed the issue Signer metrics server displays confusing log message #1620
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-10-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-04-10T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-04-05-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team released hydra 0.16.0, which supports cardano-node 8.9.0\nand can interpret conway blocks on the cardano-node. We have also updated some hydra\nclients to be compatible with the new hydra api format, including hydraw and kupo.

    What did the team achieve this week

    • Update our head and hydraw instance to master (a release candidate)
    • Release 0.16.0 (without incremental decommits)
    • Reproduce close > contest > contest scenarios using stateful testing
    • Have end-to-end scenarios working for the improved /commit endpoint

    What are the goals of next week

    • Complete the improved /commit endpoint to unblock users
    • Potentially release 0.17.0 (with improved /commit endpoint)
    • Wrap up the incremental decommit work including the decommit action into the new TxTrace tests
    • Use Versioned Ouroboros protocol for handshaking between nodes.
    • Update to cardano-api-8.44.
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-05-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2024-04-05T00:00:00.000Z", + "author": { + "name": "Daniel Firth", + "url": "https://github.com/locallycompact" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-04-03-consensus", + "content_html": "

    High level summary

    • Made the LocalTxMonitor HasTx cross-era behavior less surprising.
    • Finalized the tests in ouroboros-consensus for the UTXO-HD branch, except the mempool-parallel test which is still failing sometimes.
    • Fixed an upstream complication in quickcheck-state-machine related to Parallel state machines which should allow us for an easier and more understandable setup of the parallel mempool tests.
    • Drafted parallel state machine testing infrastructure for quickcheck-dynamic. Eventually could be used to replace the QSM infra for mempool parallel tests.
    • Cleaned up the Cardano.API.LedgerState module, required for UTXO-HD integration.
    • We have been working on Node release 8.10. The changes upstream are integrated all the way to Node. Tests and benchmarks are pending. The versions of Consensus, Ledger, and Networking are released, and we will focus next on releasing CLI, API, and finally Node.
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-03-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2024-04-03T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2024-04-03-mithril", + "content_html": "

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed the implementation of a more versatile beaconing mechanism, worked on implementing incremental storage of transactions, and fixed the bug in the block parser that prevented some Conway transactions from being signed. Additionally, they continued working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.

    Finally, they enhanced the internal storage of data on the test aggregator server and addressed a source of flakiness in the CI end-to-end test.

    Low level overview

    • Worked on the issue Implement incremental storage of Cardano transactions in signer/aggregator #1591
    • Completed the issue Support multiple beacon types in signer/aggregator #1562
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Completed the issue Provide fake aggregator data in an aggregated form #1594
    • Completed the issue Some transactions are not signed in testing-sanchonet #1577
    • Completed the issue End to end tests are flaky in CI #1558
    • Completed the issue npm publication fails in the release workflow #1595
    • Completed the issue Add indexes on foreign keys of SQLite stores #1603
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-04-03-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-04-03T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-03-30-node-cli-api", + "content_html": "

    2024-03-16 - 2024-03-30

    High level summary

    Adding support for script based committee and dreps. This includes queries and using script as arguments instead of keys on various command.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-30-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2024-03-30T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2024-03-29-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general\nenvironment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.9.1 is now deployed to all environments.

    • The legacy IOG mainnet metadata server has been retired with CF now providing\nmetadata server services going forward.

    • Cardano-parts PR#35, merged and linked below, offers ip information\nintegration into nixosConfiguration modules as well as template-diff and\ntemplate-patch recipes for easier upgrades going forward.

    Lower level summary

    Capkgs

    • Adds a shortRev suffix to package names, fixes an rclone recipe, fixes a CI\npush action, defaults to recursively dereferenced object hashes, cleans up\nreference patterns. See the PR description for more details:\ncapkgs-pull-2

    Cardano-mainnet

    • Bumps to cardano-node 8.9.1 and deploys all machines, makes ip information\navailable in nixosCfgs, adds new expected machine alerts, tunes snapshot\nalerts and implements all updates in cardano-parts PR#35. See the PR\ndescription for more details:\ncardano-mainnet-pull-10

    Cardano-ops

    Cardano-parts

    • Upgrades cardano-node to 8.9.1 for both release and pre-release, integrates\nmachine ip information into nixosConfigurations, enables /etc/hosts file\nusage in cardano-node topology, enhances cardano-node topology producer\ngeneration with customizable address types, introduces template patching\nrecipes for easier cardano-parts updates to existing clusters. Much more\ndetail is available in the PR description:\ncardano-parts-pull-35

    Cardano-playground

    • Bumps to cardano-node 8.9.1 and deploys all envs, rotates KES keys in most\nenvs, makes ip information available in nixosCfgs and implements all updates\nin cardano-parts PR#35. See the PR description for more details:\ncardano-playground-pull-18
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-29-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2024-03-29T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2024-03-28-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team conducted the monthly review meeting and investigated\na broken head situation. The team slightly improved conway forward compatibility\nin explorer / hydra-node, enhanced hydra-cluster --devnet which allows e2e\ntesting of kupo, extended smoke test to also include committing ADA into the\nhead, documented the anticipated behavior of incremental decommits, and added\ndecommits to the tutorial.

    What did the team achieve this week

    • Conducted the monthly review meeting (link to recording already?)
    • Investigated a broken head situation #1374
    • Slightly improved conway forward compatibility in explorer / hydra-node #1373
    • Busy hydra-cluster --devnet sandbox which allows e2e testing of kupo #1378
    • Extended smoke test to also include committing ADA into the head #1377
    • Documented the anticipated behavior of incremental decommits and added decommits to tutorial
    • Another write-up of how the incremental commit/decommit could work (without needing merkle trees or L2/L1 interleaving) on this issue

    What are the goals of next week

    • Complete the written monthly report
    • Update our head and hydraw instance to master (a release candidate)
    • Complete the improved /commit endpoint to unblock users
    • Release 0.16.0 (likely without incremental decommits)
    • Reproduce close > contest > contest scenarios using stateful testing
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-28-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2024-03-28T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-03-27-ledger", + "content_html": "

    High level summary

    We continued focusing on adding tests and improving the test frameworks, including the quality of the generated data used in tests.

    Low level summary

    Conway

    • pull-4205 - Disable CC ratification when number of members is below ppCommitteeMinSize
    • pull-4169 - Add GovInfoEvent and add event testing capabilities to ImpTest
    • pull-4208 - Remove missingScriptsSymmetricDifference

    Testing

    • pull-4121 - Newconstraints phase3, Add newtypes: Size, SizeSpec and class Sized.
    • pull-4197 - add unsafeMkProposals to be used for testing
    • pull-4200 - Fix prop_GOV so that it runs again
    • pull-4216 - improve the GOV generator to generate more interesting signals

    Improvements

    Releasing

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-27-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-03-27T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-03-27-mithril", + "content_html": "

    High level overview

    This week, the Mithril team released a new Mithril distribution 2412.0. This release includes several critical updates and enhancements, such as support for the Prometheus metrics endpoint in signer, deprecation of the snapshot command in the client CLI, full Pallas-based implementation of the chain observer, and support for Cardano node v.8.9.0.

    The team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, kept implementing a more versatile beaconing mechanism, reducing the latency of transactions signature, and continued investigating a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they started working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.

    Finally, the team completed the implementation of some community-requested features to verify the output folder structure made by the client, and kept investigating a source of flakiness in the CI end-to-end test.

    Low level overview

    • Released the new distribution 2412.0
    • Publication of a dev blog post about the Mithril signer Prometheus endpoint release
    • Publication of a dev blog post about the Mithril client CLI snapshot command deprecation
    • Completed the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Completed the issue Do not require the mithril client to create the DB directory #1572
    • Worked on the issue Support multiple beacon types in signer/aggregator #1562
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue Provide fake aggregator data in an aggregated form #1594
    • Worked on the issue Some transactions are not signed in testing-sanchonet #1577
    • Worked on the issue End to end tests are flaky in CI #1558
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-27-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-03-27T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-03-27-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: Release benchmarks for 8.9.1 have been performed and analysed.
    • Development: We've implemented a benchmarking setup for UTxO-HD's LMDB (on-disk) backend.
    • Workbench: The now modular, nix-based genesis creation has been merged to master; DRep delegation and integration of a new cardano-cli command are ongoing.
    • Tracing: Benchmarking the new handle registry feature in cardano-tracer is complete; quality-of-life improvements to Prometheus output.
    • UTxO Growth: We've adjusted our framework to support running UTxO scaling benchmarks on both a single node and a cluster.
    • Nomad cluster: new multi-cluster support with the capability to quickly adjust to changes in deployed hardware

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.9.1. Comparing with release 8.9.0, we could not detect any performance risks for that version.

    Development

    In context of UTxO scaling, we want to assess the feasability of the current on-disk solution (which is LMDB) of a UTxO-HD enabled node. Using that, the UTxO set will be kept\nin live tables and snapshots on disk, significantly reducing memory requirements.

    We've implemented a benchmark setting, and a node service configuration, supporting direct disk access to a dedicated device which can be initialized with optimized\nfile system and mount settings. It's purpose is to serve as storage for the highly performance-critical disk I/O of the LMDB component.

    Workbench

    Our automation for creating all flavours of geneses has seen cleanup and refactoring - which has been merged to master. It can now use a more principled, and rigorously checked, modular approach\nto define, create and cache the desired genesis files.

    Working on integrating new cardano-cli functionality in our automation is ongoing. The performance workbench will support a different, and updated, CLI command which will allow injection of DRep delegations into genesis.

    Tracing

    Benchmarking cardano-tracer's new handle registry feature has been performed and evaluated. We're satisfied with seeing clear performance improvements along with cleaner code, and much better test coverage.\nEspecially allocation rate and number of garbage collections (GC) could be significantly reduced, along with the CPU time required for performing GCs. This will allow for higher trace message throughput given\nidentiacal system resources - plus less system calls issued to the OS in the process.

    Furthermore, the new tracing system is getting improvements for its Prometheus output - like providing version numbers as metrics, or annotating metrics with their type - enhancing the output's overall utility.

    UTxO Growth

    The performance workbench now supports profiles aimed at simulating UTxO growth both for a single node and an entire cluster. Additionally, simulating different\nRAM sizes in combination with specific UTxO set sizes is supported. For a single block producing node, the focus is on quick turnaround when running\na benchmark, gaining insight into the node's RAM usage and possible impact on the forging loop.

    The cluster profiles enable capturing block diffusion metrics as well, however they require a much longer runtime. We can now successfully benchmark the node's behaviour\nwhen dealing with UTxO set sizes 4x - 5x of current mainnet, as well as a possible change in behaviour when operating close to phsyical RAM limit due to that.

    Nomad cluster

    Our backend now supports allocating and deploying Nomad jobs for multiple clusters simultaneously - all while keeping existing automations operational. We've taken special precautions\na cluster, as seen by the backend, can be efficiently and easily modified to reflect newly deployed, or changed, hardware. Additionally, we've added support for host volumes inside a Nomad\nallocation - which will be needed for benchmarking UTxO-HD's on-disk solution.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-27-performance-and-tracing", + "title": "Performance & Tracing Update", + "summary": "High level summary", + "date_modified": "2024-03-27T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2024-03-22-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team restored test compatibility with all networks, reviewed and merged streaming plugins contributed by SundaeLabs. The team also fixed tutorial instructions for downloading the latest cardano-node, fixed the observed contesters bug, prepared a PRs for downstream clients to use the new API format for transactions (preparing the release with this breaking change). Finally, they also recorded a walkthrough video on how the hydra project is run: https://www.youtube.com/watch?v=JGUeO7A6mMU

    What did the team achieve this week

    • Restored compatibility with all networks #1355.
    • Reviewed and merged streaming plugins (only missing a how-to) #1325.
    • Fixed tutorial instructions for downloading cardano-node 8.9.0 #1367.
    • Fixed the observed contesters bug #1266.
    • Prepared a PR for Kupo using new Hydra transaction format kupo#166.
    • Recorded a walkthrough on how the hydra project is run (uncut) https://www.youtube.com/watch?v=JGUeO7A6mMU.

    What are the goals of next week

    • Conduct the monthly review meeting
    • Improve the /commit endpoint to unblock users
    • Stateful testing of transaction traces to verify corner cases for\nincremental decommit
    • Release 0.16.0
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-22-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2024-03-22T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-03-20-consensus", + "content_html": "

    High level summary

    • Merged the alternative fs-api interface for I/O using user-supplied buffers. This feature is important because it defines lower-level primitives for the filesystem API, which opens op avenues for more use cases and more efficient I/O operations (for instance when implementing lsm-tree, which is part of our efforts to move the ledger state to disk). This feature has not been released yet.
    • Implemented new diffusion pipelining criterion .
    • Released Consensus packages containing backports for Node 8.9.1.
    • Focused on fixing the tests for ouroboros-consensus in the UTXO-HD branch. Work is ongoing.
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-20-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2024-03-20T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2024-03-20-mithril", + "content_html": "

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed UI improvements for the explorer, provided metadata about the point of the chain used during the verification process, and investigated a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they began prototyping the implementation of a more versatile beaconing mechanism to sign transactions with low latency.

    Finally, the team started implementing some community-requested features to verify the output folder structure made by the client, and fixed a source of flakiness in the CI end-to-end test.

    Low level overview

    • Completed the issue Upgrade Cardano node to 8.9.0 #1570
    • Completed the issue Explorer improvements for Cardano transactions #1554
    • Completed the issue Refactor the Cardano transactions parser with pallas-hardano #1557
    • Completed the issue Provide latest immutable file number with certified transactions in client #1536
    • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Worked on the issue Support multiple beacon types in signer/aggregator #1562
    • Worked on the issue Do not require the mithril client to create the DB directory #1572
    • Worked on the issue Some transactions are not signed in testing-sanchonet #1577
    • Worked on the issue End to end tests are flaky in CI #1558
    • Worked on the issue P2P threat modeling and risk analysis #1350
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-20-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-03-20T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-03-18-network", + "content_html": "

    High-level overview of sprint 57

    We released cardano-node-8.9.0 (which includes\nouroboros-newtork-0.12.0.0). This release contains the following network\nupgrades:

    Soon we will release [cardano-node-8.9.1] (which includes\nouroboros-network-0.12.0.0). This release will contain:

    • Peer sharing improvements & fixes. Contributed and tested by Karl Knutsson CF.
    • cardano-ping updates to support NodeToNode_V13 & peer sharing.
    • Some smaller maintenance changes.

    The list of network features included in ouroboros-network-0.12.0.0 and\nouroboros-network-0.13.0.0 can be found here.

    We also continued working on tx-submission, ouroboros-network#3311. Mostly\nworking on the pure internal API for decision-making and testing it with\nproperty-based tests. The next step is to get all the information needed to run\nthe decision logic in an efficient way and later write a mini-protocol client\nwhich is using the new API and testing it.

    We also started working on thing to finalise the Genesis support from the\nnetwork. We have a PR under review, ouroboros-network#4832. We also started\nto investigate how to support big ledger peer snapshots. This requires changes\nin the topology file as well as cardano-node & ouroboros-network to\nunderstand the snapshots; and on the other hand creation of such snapshots by\ncardano-cli.

    Low-level summary

    This time everything was high-level, 😉.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-18-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 57", + "date_modified": "2024-03-18T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2024-03-15-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team worked on aligning the specification with the current\nincremental decommit implementation, added decommit to model-based tests and\nalso discussed the incremental commit protocol extension with researchers. The\nteam also updated to cardano-api 8.40 and tests against cardano-node 8.9.0,\nwhich unblocked a possible release and re-enabled smoke tests on public\nnetworks. They also groomed a new /commit endpoint interface from a user\ndiscussion and discussed restructuring of the Hydra documentation. The team also\nprepared a Conway-supporting hydra-node on branch lc/conway-support for\nearly adopters (Hi @Juantxu and @ash 👋). Some internal refactoring prepared for\nupcoming streaming plugins by SundaeLabs and minor fixes to the TUI and\nhydra-explorer rounded off the week.

    What did the team achieve this week

    • Aligned specification with current incremental decommit implementation and added Decommit to model based tests.
    • Discussed and explored further on incremental commits with researchers.
    • Refactored Event -> Input #1348 to prepare for streaming plugins #1325.
    • Minor fixes to the TUI and hydra-explorer clients.
    • Updated to cardano-node 8.9.0 and cardano-api 8.40 - this unblocked a possible release and re-enabled smoke tests on public networks.
    • Groomed new /commit endpoint interface #1350 from a user discussion #1337.
    • Discussed restructuring of the Hydra documentation #1349.
    • Prepared a Conway-supporting hydra-node on branch lc/conway-support #1178 (will be merged only after the hard-fork).

    What are the goals of next week

    • Prepare a PR for Kupo using new Hydra transaction format (to prepare for 0.16.0 release)
    • Review and merge streaming plugins #1325
    • Improve the /commit endpoint to unblock users
    • Test corner cases of incremental decommit transaction traces
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-15-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2024-03-15T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-03-15-node-cli-api", + "content_html": "

    2024-03-01 - 2024-03-15

    High level summary

    • cardano-cli: Focus is on testing Conway features. Several improvements to create-testnet-data command, useful for creating/deploying local clusters for testing. Enable parallel execution of tests.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-15-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2024-03-15T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2024-03-15-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general\nenvironment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.9.0 is now deployed to all environments.

    • A new profile-cardano-db-sync-snapshots nixosModule is available for\nsnapshotting dbsync state.

    Lower level summary

    Cardano-mainnet

    • Updates cardano node and cli pre-release (-ng) to 8.9.0. Adds a new\ncardano-db-sync snapshots server. Bumps mithril and enhances mithril\nusability with IOG trusted pool signature verification for clients and\nmithril verifier service for signers. Adds miscellaneous other small\nimprovements, bug fixes and tuning. See the pull request description for\nmore details:\ncardano-mainnet-pull-8

    Cardano-node

    • Adds nixos service and topology updates related to cardano-node 8.9.0\nrelease:\ncardano-node-compare

    Cardano-ops

    • Bumps to cardano-node 8.9.0, fixes metadata server module, removes the legacy\nsnapshots server:\ncardano-ops-compare

    Cardano-parts

    • Updates cardano node and cli pre-release (-ng) to 8.9.0 and enables new\nbootstrapPeers features and compatibility in the topology functions. Bumps\nmithril and enhances mithril usability with IOG trusted pool signature\nverification for clients, mithril verifier service for signers, mithril\ncapability for process-compose and node entrypoint jobs. Adds miscellaneous\nother small improvements, bug fixes and tuning. See the pull request\ndescription for more details:\ncardano-parts-pull-34

    Cardano-playground

    • Updates cardano node and cli pre-release (-ng) to 8.9.0. Bumps mithril and\nenhances mithril usability with IOG trusted pool signature verification for\nclients, mithril verifier service for signers, mithril capability for\nprocess-compose and node entrypoint jobs. Adds miscellaneous other small\nimprovements, bug fixes and tuning. See the pull request description for\nmore details:\ncardano-playground-pull-18

    Govtool

    • Fixes a coalesce function sql query bug in the govtool backend:\ngovtool-commit

    Iohk-nix

    • Adds support for bootstrap peers and sanchonet mithril configuration:\niohk-nix-pull-574

    Sanchonet-demo

    • Bumps cardano-parts for cardano-node 8.9.0 and brings the justfile demo\nrecipes up to 8.9.0 compatibility:\nsanchonet-demo-compare
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-15-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2024-03-15T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2024-03-13-ledger", + "content_html": "

    High level summary

    Focus has been on testing: adding tests and improving our testing framework to make it easier to write tests for various Conway features.\nWe also did some cleanup and reorganisation of code, to make it more manageable and easier to release.\nWe have started work on Hardfork Initiation: support for intra-era hardfork initiation and necessary updates the SPO stake distribution calculation.

    Low level summary

    Conway

    • pull-4140 - Intra era hardfork initiation
    • pull-4154 - SPO stake distr calc for HardForkInitiation
    • pull-4150 - Add ConwayUtxosPredFailure
    • pull-4162 - Add ConwayDRepIncorrectRefund and tests for GovCert
    • pull-4112 - Fail when conway features are present in transactions that use Plutus v1/v2
    • pull-4164 - Change hot credential representation in CommitteeState
    • pull-4178 - Remove code repetition in Conway era CDDL

    Testing

    • pull-4096 - Add a collection of test Plutus scripts for use in ImpTests
    • pull-4144 - Add imptests for delaying actions enactment
    • pull-4104 - Governance policy tests
    • pull-4123 - Add the ability to do constraints over trees in constrained-generators
    • pull-4163 - Reorganise GovSpec, add GovCertSpec
    • pull-4152 - Add extra type-safety to ensure that all predicate failures have roundtrip tests
    • pull-4172 - Add imptests for some more GOV predicate failures
    • pull-4139 - Add extra time from 1 sec to 2 sec for prop_soundness test.
    • pull-4173 - Update profiling instructions
    • pull-4177 - Plutusv3 initialization tests
    • pull-4155 - Fix nightly build failures

    Improvements

    • pull-4141 - Add boom placeholder
    • pull-4157 - Split Conway governance
    • pull-4188 - Simplify implementation of ToJSON1 of ListMap
    • pull-4129 - Modify PParams to use similar naming to ProtocolParams in cardano-api
    • pull-4160 - Make shelley TxWits consistent with other eras
    • pull-4168 - Add missing InjectFailure instances for ConwayUtxosPredFailure
    • pull-4086 - Change applySTS to return NonEmpty (PredicateFailure s)
    • pull-4176 - Add CARDANO_MAINNET_MIRROR to Nix shell
    • pull-4174 - Convert small-steps-test into a sublibrary
    • pull-4159 - Shelley rules cleanup

    Specification

    • pull-4042 - Fix the prose being inconsistent with the figure
    • pull-4151 - Fix an issue with txinfo and unusual notation in Babbage UTXO rule

    Releasing

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-13-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-03-13T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-03-13-mithril", + "content_html": "

    High level overview

    This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the adaptation of the Mithril explorer to support Cardano transaction verification, kept improving its UI, fixed the bug that prevented the signature of some Conway era transactions, implemented a more robust transactions parser, and started providing metadata about the point of the chain used during the verification process. Additionally, they have completed the optimization of the communications of the Mithril nodes and the Cardano node with the finalization of the Pallas chain observer.

    Finally, the team enhanced the handling of logs in the CLI of the Mithril nodes and investigated some remaining flakiness in the end-to-end test in the CI.

    Low level overview

    • Completed the issue Output CLIs logs to stderr #1515
    • Completed the issue Implement Cardano Transactions in explorer #1497
    • Completed the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue npm publish fails on latest when next exists #1531
    • Completed the issue Cardano transactions are not all signed in testing-sanchonet #1537
    • Completed the issue Enhance www demonstration in mithril-client-wasm #1552
    • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Worked on the issue Provide latest immutable file number with certified Cardano transactions in client #1536
    • Worked on the issue Explorer improvements Cardano transactions #1554
    • Worked on the issue Refactor the Cardano transactions parser with pallas-hardano #1557
    • Worked on the issue End to end tests are flaky in CI #1558
    • Worked on the issue P2P threat modeling and risk analysis #1350
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-13-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-03-13T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-03-08-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team has been working on a new library cardano-api-classy containing type class instances for era witnesses and also switched nix code to use flake-parts. They also further improved the Hydra Head [explorer](http://explorer.hydra.family) UI. The team also improved error reporting on integration tests and refactored the outcome algebra in the hydra-node protocol logic. Finally, they reviewed the incremental decommit specification with researchers. Meanwhile, SundeaLabs already implemented first UDP and Kinesis event sinks based on the EventSource / EventSink refactoring.

    What did the team achieve this week

    • New library cardano-api-classy containing type class instances for era witnesses.
    • Switched the nix code to use flake-parts.
    • Completed another increment on the head explorer UI #1333.
    • Improved error reporting on integration tests #1335.
    • Refactored the outcome algebra in the hydra-node protocol logic #1340.
    • Reviewed incremental decommit specification with researchers.
    • SundaeLabs implemented first UDP and Kinesis event sinks based on #1267.

    What are the goals of next week

    • Prepare #1178 on a branch for users to try out Conway on hydra.
    • Align specification with incremental decommit implementation
    • Improve MTB in terms of new Decommit input
    • Prepare a PR for Kupo using new Hydra transaction format
    • Spike on literate Agda specification pdf
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-08-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2024-03-08T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-03-08-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: We've performed release benchmarks for Node 8.9.0. Additionally, we benchmarked different GC settings for cardano-node.
    • Development: Ongoing work on the reporting pipeline and high-level profile definitions.
    • Workbench: In conjunction with DRep delegations in genesis, we're working on adjustments to a new cardano-cli command.
    • Tracing: Test coverage for the new handle registry feature in cardano-tracer is complete.
    • UTxO Growth: Currently, we're developing a series of benchmarks targeting performance implications of increased UTxO set size.
    • Nomad cluster: Disk storage safety net; better admin access to Nomad nodes; basic backend support for more than 1 cluster; new latency service.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.9.0. Initially, we identified a performance regression in connection to ledger snapshots. This has been addressed very swiftly.\nHaving re-run the fixed version, we could detect no performance risks in comparison with 8.7.2 / 8.7.3.

    In an additional set of benchmarks, we targeted the garbage collector (GC) settings that cardano-node is built with by default. Specifically, we compared these (copying, sequential GC) as a baseline\nto using the parallel GC, the compacting GC and the non-moving GC - all of which are supported by GHC's runtime system. As GC always is a trade-off between space and time (and as a consequence, responsiveness);\nwe could measure the parallel GC offering a slight increase in responsiveness at the cost of delaying some evaluations - which is suboptimal for a block forger. The compacting GC could clearly\nachieve a smaller RAM footprint, but only at the cost of increased CPU usage - and clearly worsened responsiveness. The non-moving GC could greatly enhance responsiveness - but increased the RAM footprint tremendously, as\nwell as introduced delays in the forging loop. In conclusion: the existing default is still the best choice by far for cardano-node - validated both on GHC8.10.7 and GHC9.6.3.

    Development

    The work on moving benchmark profile, and genesis, definitions out of the bash scripting / JSON data transformation space is still ongoing. Type safety and a test suite for those tasks\nwill allow for a much more principled approach.

    The implementation of additional rendering formats and report templates for our reporting pipeline has been completed; it is currently in testing and validation phase.

    Workbench

    We're working on integrating new cardano-cli functionality in our automations. Injecting DRep delegations into genesis - for Conway ledger benchmarks - will require us\nto use a new CLI command, which differs in in output structure and options provided from the one we're using to inject stake pool delegations. This requires us to\nimplement and additional post-processing step for backends to find everything as expected.

    Furthermore, a PR has been merged which refactors and cleans up benchmarking profiles, with a focus on fine-tuning solo-node benchmarks which scrutinize a single cardano-node process.

    Tracing

    The test suite for cardano-tracer's new handle registry feature is complete, and the new feature passes all tests. At the moment, we're\npreparing it for merging into master.

    UTxO Growth

    We're developing a series of benchmarks that will provide insight into possible changes to the Node's performance characteristics given different UTxO set sizes and numbers of delegated wallets.\nWhat we aim to capture in these benchmarks is the system's capability to scale with UTxO growth - while simultaneously evaluating hardware requirements. The workloads will be based on existing release benchmarks, but allow for flexibility regarding UTxO set and delegations. They will target the existing in-memory solution, and at the same time permit feasability testing UTxO-HD's on-disk\nflavour - which does not keep the entire UTxO set in RAM permanently.

    Nomad cluster

    Implementation of cluster machine disk space checking and garbage collection is complete. A requirement was that no\nmonitoring process interferes with a running benchmark, so a non-synchronous approach was chosen to guarantee enough disk space. This prevents failing\nruns, and thus the necessity to repeat them.

    In the process, the workbench backend was equipped with a wider range of cluster commands and abstractions, which makes administrating cluster\nmachines more flexible. This includes a new service to create a network latency matrix for deployed cluster hardware - generalizing the approach\nchosen during the Nomad cluster's initial validation phase. This can guarantee the validity of existing baselines in case of hardware reboots, or changes\nin topology.

    Last not least, the backend is currently receiving an additional feature: supporting more than 1 hardware cluster. This will enable us,\nin the future, to benchmark on ephemeral clusters - without interfering with the hard requirements, or the schedule, of release benchmarking\non our default deployment. The motivation is being able to benchmark different hardware configurations, along with varying cardano-node options and\ninitial ledger states on a parallel schedule - also, without having to keep those clusters running at all times.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-08-performance-and-tracing", + "title": "Performance & Tracing Update", + "summary": "High level summary", + "date_modified": "2024-03-08T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2024-03-06-consensus", + "content_html": "

    High level summary

    • Completed the rebase of the production libraries for UTXO-HD on 8.9, both in ouroboros-consensus, cardano-api and cardano-node.
    • Measured sync and replay times and memory in UTXO-HD. The latest result are reported here.
    • Bugfixed the snapshot interval.
    • Added an extra case to isIncorrectClaimedFlag for Babbage and Conway eras.
    • Added a db-analyser analysis to get the UTXO size per slot. The result of the analysis is illustrated here.
    • Started integration work for Node release 8.10.
    • Reviewed the Genesis pull-requests submitted by Tweag. They are pending a final round of review.
    • Helped the current release engineer prepare the 8.9 release candidate.
    • The Consensus Team has also been helping troubleshoot known issues with 8.9 (eg snapshots causing missed leadership schedules, unexpected snapshot interval, integration tests, etc).
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-06-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2024-03-06T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2024-03-06-mithril", + "content_html": "

    High level overview

    This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they worked on adapting the Mithril explorer to support Cardano transaction verification, started implementing a more efficient transaction signing scheme, stabilized the type names in the API, and kept investigating a bug that prevents the signature of some Conway era transactions. Additionally, they have completed the first version of the Prometheus monitoring endpoint for the signer.

    Finally, the team fixed a bug occuring in the publication of the npm packages of the client, enhanced the HTTP tests of the aggregator, and kept working on the KES period computation in the Pallas chain observer.

    Low level overview

    • Completed the issue Expose Prometheus metrics for Mithril signer #1096
    • Completed the issue Make HTTP server tests more robust #1524
    • Completed the issue Stabilize namings in Cardano Transactions API #1535
    • Completed the issue Reorganize crates in the repository #1528
    • Worked on the issue Implement Cardano Transactions in explorer #1497
    • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Worked on the issue Output CLIs logs to stderr #1515
    • Worked on the issue npm publish fails on latest when next exists #1531
    • Worked on the issue Cardano transactions are not all signed in testing-sanchonet #1537
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue P2P threat modeling and risk analysis #1350
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-06-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-03-06T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-03-04-network", + "content_html": "

    High-level overview of sprint 56

    Cardano-Node, Cardano-API, Cardano-CLI

    In the last sprint, the network team was designated to take the Release\nEngineering Role, as the coming release contains mostly network advances.\nArmando Santos has been making progress on it. The following packages were\npublished to CHaP:

    and other ouroboros-network packages with minor changes. The following\npackages were also published:

    The work on cardano-node is in progress, see cardano-node#5485

    We would like to thank Karl Knutsson (CF) for helping us to test the upcoming\ncardano-node release.

    Ouroboros-Network

    We continued working on tx-submission, ouroboros-network#3311

    We started to execute an idea to put all configuration values used by the\ndiffusion layer Ouroboros.Network.Diffusion.Configuration module. Currently,\ndefault values are spread in different repositories (e.g. cardano-node,\nouroboros-consensus). See ouroboros-network#4805.

    We restored how syncing works in bootstrap mode to get the same performance\ncharacteristics, see ouroboros-network#4809, ouroboros-network#4810.

    We started working on Outbound-Governor Genesis mode, see\nouroboros-network#4813.

    Ouroboros-Consensus

    We requested to modify how bulk-sync mode works to make it use the same\nmechanism that the newly added LedgerStateJudgement. See\nouroboros-consensus#958.

    Low-level summary

    We also addressed a minor issue regarding tracing LedgerStateJudgement\nchanges, see ouroboros-network#4816.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-04-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 56", + "date_modified": "2024-03-04T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2024-03-01-hydra", + "content_html": "

    High-level Summary

    This week the Hydra team, in addition to the usual maintenance and bug fixing, has been working on the preparation for the switch to Conway making the codebase less babbage specific. The team also conducted the monthly review meeting and published the monthly report on a new website (to keep those reports separate of main repository). They also added a basic UI to the Hydra explorer, switched to aggregating sanchonet data and also fixed the smoke tests to work on sanchonet. Finally, they continued progress the off-chain incremental commit protocol changes.

    What did the team achieve this week

    What are the goals of next week

    • Complete preparation for #1178 to switch to Conway (by \"flipping\" a switch)
    • Complete off-chain incremental commit protocol changes #199 (and focus on the on-chain part after).
    • Re-align with SundaeLabs on EventSource and EventSink refactoring.
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-01-hydra", + "title": "Hydra Team Update", + "summary": "High-level Summary", + "date_modified": "2024-03-01T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-03-01-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general\nenvironment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.8.1-pre is now deployed to sanchonet, two-thirds of preprod,\none-third of preview and also voltaire private chain networks.

    • Catalyst Voltaire private chain was respun and an updated db-sync and govtool\nbackend deployed after hard fork to Conway era.

    • IOG sanchonet pool block producers are now also signing mithril\ncertificates.

    • A mithril-signer-verifier service now runs on all IOG SRE mithril signers and\ngenerates alerts if no recent mithril certificates have been signed.

    • All cardano-parts mithril clients, whether via nixosConfiguration,\nprocess-compose jobs or the nix cardano-node entrypoint, will now\nautomatically verify that a trusted IOG pool has signed a mithril certificate\nprior to using the associated mithril state. If no trusted IOG pool has\nsigned a recent mithril certificate, mithril state usage with be skipped and\na classic sync from genesis to tip will be performed.

    • A significant amount of effort was applied towards the upcoming cardano-node\n8.9.x-pre release in order to align nixos service module code between\ncardano-node nixos services, iohk-nix topology generation, cardano-ops legacy\ncode, and cardano-parts module compatibility.

    Lower level summary

    Work in progress

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-03-01-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2024-03-01T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2024-02-29-node-cli-api", + "content_html": "

    2024-02-16 - 2024-02-29

    High level summary

    • cardano-cli: Release cardano-cli-8.20.3.0; Integrate with most recent ouroboros network, consensus and api. Enhancements to various queries. Continue working on implementing tests for Conway era.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-29-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2024-02-29T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2024-02-28-ledger", + "content_html": "

    High level summary

    Quite a useful and desired feature described in\nCIP-0110 of allowing reference\nscripts for PlutusV1 has been implemented for Conway.

    For the most part we are now spending time on writing tests and enhancing out tooling that\nwe use for testing. This is paying out dividends since we are finding and fixing important\nConway related bugs. Notable bugs that were squashed this time around are related to using\nincorrect stake distribution for both DReps and Stake Pools.

    Low level summary

    Conway

    • pull-4059 - Enable Plutus v1 reference scripts in Conway
    • pull-4088 - Committee query improvements
    • pull-4115 - Switch to using the correct stake pool distribution for voting
    • pull-4116 - Fix Drep stake distribution

    Testing

    • pull-4100 - PPU wellformedness tests
    • pull-4097 - Test that unwithdrawn rewards contribute to voting power
    • pull-4102 - fix prop_DELEG in STS tests
    • pull-4106 - Imp script fixes
    • pull-4118 - Add test for maps with small domains
    • pull-4119 - NewConstraints phase1. Add BoolFn And and Or and tests
    • pull-4120 - Newconstaints phase2 rename IsUniverse (BaseUniverse), Fn (BaseFn)
    • pull-4130 - Added tests for checking proposal network IDs
    • pull-4114 - Imp Bootstrap address support

    Improvements

    Specification

    Releasing

    • pull-4105 - Update RELEASING with revisioning instructions
    • pull-4117 - Use plutus-ledger-api 1.22.1
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-28-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-02-28T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-02-28-mithril", + "content_html": "

    High level overview

    This week the Mithril team announced the release of a new Mithril distribution 2408.0. This release includes several critical updates and enhancements, such as improved support for stake distribution, Mithril era markers retrieval in the Pallas chain observer, enhanced support for the Conway era and Sanchonet network, as well as various bug fixes and performance improvements.\nIn addition, the team has made changes to the Mithril client CLI, changing the log output from stdout to stderr from v0.7.0. This announcement was made in the developer blog post.

    The team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the support for the verification in the browser with the WASM client, they worked on enhancing the associated client CLI API, and implemented smoke tests. Additionally, the team has activated the signature of Cardano transactions on the testing-sanchonet network, and they have investigated a bug that prevents the signature of some transactions on this network.

    Finally, the team worked on reorganizing the repository structure, fixed an issue with test folder generation on MacOS, and worked on some documentation improvements.

    Low level overview

    • Released the new distribution 2408.0
    • Publication of a dev blog post about the Mithril SanchoNet network release.
    • Publication of a dev blog post about a breaking change in the Mithril client CLI.
    • Completed the issue Implement Cardano Transactions commands in the client binary #1469
    • Completed the issue Implement Cardano Transactions verification in the WASM client #1470
    • Completed the issue Some end to end tests are flaky in the CI #1147
    • Completed the issue Release 2408 distribution #1500
    • Completed the issue Unify test folder generation #1508
    • Completed the issue Adapt Mithril Client multi-platform test for Cardano Transactions #1510
    • Completed the issue Document Mithril signer footprint #1519
    • Completed the issue Add a runbook for running Client multi-platform tests #1530
    • Completed the issue Update workflow github actions to node-20 #1520
    • Worked on the issue Cardano transactions are not all signed in testing-sanchonet #1537
    • Worked on the issue Make HTTP server tests more robust #1524
    • Worked on the issue Stabilize namings in Cardano Transactions API #1535
    • Worked on the issue Reorganize crates in the repository #1528
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue P2P threat modeling and risk analysis #1350
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-28-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-02-28T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-02-23-hydra", + "content_html": "

    High-level Summary

    This week, the Hydra team successfully fixed the fanout after contest bug using their significantly improved model-based test suite. Additionally, they transitioned to cardano-api version 8.38 and started testing against cardano-node version 8.8. Furthermore, they enhanced fee estimation within the hydra-node internal wallet resulting in cheaper head opening / closing transactions and added transaction metadata to help identifying Hydra protocol transactions.

    What did the team achieve this week

    • Fixed the fanout after contest bug using our signifcantly improved model-based test suite #1260
    • Switched to cardano-api 8.38 and run tests against cardano-node 8.8 #1297
    • Improved fee estimation in hydra-node internal wallet #1315
    • Added transaction metadata to identify Hydra protocol transactions (on L1) #1311

    What are the goals of next week

    • Have the monthly review meeting + write a report
    • Explorer targeting and showing data of the latest released hydra version
    • Implement off-chain incremental commit protocol changes
    • Review EventSource and EventSink refactor done by SundaeLabs
    • See smoke tests passing consistently on Sanchonet
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-23-hydra", + "title": "Hydra Team Update", + "summary": "High-level Summary", + "date_modified": "2024-02-23T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-02-21-consensus", + "content_html": "

    High level summary

    • Triaged an issue where blocks were unnecessarily downloaded, and coded a prototype for a partial solution.
    • Discovered an io-sim bug while developing the Genesis state machine tests. The bug was already fixed upstream.
    • Added support for making the number of ledger state snapshots to be kept configurable. This needs to be integrated in the node.
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-21-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2024-02-21T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2024-02-21-mithril", + "content_html": "

    High level overview

    This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They worked on enhancing the client CLI output and almost completed the support for the verification of Cardano transactions in the browser with the WASM client. The team also worked on a new feature of the Pallas chain observer to support stake distribution retrieval, and fixed the majority of the flakiness occurring in the CI end-to-end tests. Additionally, they have deployed the new Mithril network running on SanchoNet.

    Finally, the team created a new example crate for using the client library to verify Cardano transactions, kept working on the threat modeling and risk analysis for the Mithril network, and completed their new tool for automatic documentation generation for the CLIs.

    Low level overview

    • Worked on the issue Implement Cardano Transactions commands in the client binary #1469
    • Worked on the issue Implement Cardano Transactions verification in the WASM client #1470
    • Worked on the issue Some end to end tests are flaky in the CI #1147
    • Completed the issue Re-spin Sanchonet network #1503
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue Add signing capabilities to the root route of the aggregator #1496
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Completed the issue Add an example crate for the CardanoTransactions type #1495
    • Worked on the issue Unify test folder generation #1508
    • Completed the issue Generate automatic documentation for CLIs #1471
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-21-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-02-21T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-02-19-network", + "content_html": "

    High-level overview of sprint 55

    This sprint the networking was nominated for the Cardano Release Engineer role and\nwe've been working on the integration of bootstrap peers with cardano-node. This\nis a work in progress: cardano-node-5485. cardano-node-8.9 will be the first\nnode which supports the bootstrap peers feature, but we anticipate additional\nimprovements needed before this is used at scale.

    We disabled mean reward for new peers in the churn mechanism which was hurting\nconnection in remote destinations. Thanks to Karl Knutsson (CF) for\nproviding evidence and a patch. In future, this mechanism will be further\nchanged, but this requires more analysis. ouroboros-network#4800

    We continued working on tx-submission, ouroboros-network#3311

    We welcome Marcin Wójtowicz as part of the Networking\nTeam of Cardano Core Tech. He reviewed our documentation as part of his\nonboarding process: ouroboros-network#4802.

    Andrew Westberg (DripDropz) corrected documentation regarding which\nnode-to-node protocol version introduced P2P.

    Low-level summary

    Open Source Contributions

    IOSim

    We released io-sim-1.4.1.0 with some new features & improvements:

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-19-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 55", + "date_modified": "2024-02-19T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2024-02-16-hydra", + "content_html": "

    High-level Summary

    This week, the team made finally progress on the model based testing framework (and reproducing a bug) by fixing issues related to fully validating Cardano transactions. They also enabled continuous deployment of hydra-explorer to http://explorer.hydra.family/heads, facilitating easier access for users. Furthermore, they improved code quality by incorporating Haskell linting into their CI workflow and addeda user-ished conversion of HeadId to CurrencySymbol.

    What did the team achieve this week

    • Fixed model based testing framework to fully validate Cardano transactions
    • Enabled continuous deployment of hydra-explorer to http://explorer.hydra.family/heads
    • Identified need for cardano-node 8.8 and cardano-api 8.38 (breaking changes) to continue integration with Conway networks
    • Added Haskell linting to our CI workflow - Minor addition to convert HeadId into CurrencySymbol #919
    • Reviewed a small refactor PR on our model-based test runner #1300

    What are the goals of next week

    • Fix the fanout after contest bug
    • Bite the bullet and have a non-mainnet compatible master to complete smoke tests on sanchonet
    • Specify the on-chain validators for incremental decommits
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-16-hydra", + "title": "Hydra Team Update", + "summary": "High-level Summary", + "date_modified": "2024-02-16T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-02-16-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: Release benchmarks for 8.8.0 have been performed; we created a local repro for a residual issue.
    • Performance: We've implemented and benchmarked two candidates investigating residual issues with GHC9.6.
    • Development: Work on the reporting pipeline is ongoing; integration of DReps into benchmarking workloads has begun.
    • Workbench: Implementation of high-level profile definition is ongoing.
    • Tracing: The handle registry feature for cardano-tracer is completed; currently in testing.
    • Nomad cluster: Increased robustness of deployment and run monitoring has been merged; work on garbage collection has started.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.8.0-pre. Comparing with release 8.7.2, we could\nnot detect any performance risks for that version. We even saw a slight improvement in block fetch related metrics, which led to slightly improved block diffusion times.

    Furthermore, we've managed to boil down a complex residual performance issue measured on the cluster to a local reproduction. This enables our DevX team, with highly specialized knowledge of GHC's compiler internals, to\ninvestigate each step in code generation and optimzation, and independently observe the effects of code changes to the affected component.

    Performance

    Work on the remaining performance issue with GHC9.6 led us to produce two candidates based on Node 8.7.2, benchmarking\nthe implacations local small changes have for GHC9.6's optimizer. Though those candidates did not uncover the\nissue's root cause, they were able to disprove a hypothesis as to its nature, and quantify the performance impact of said small changes.

    Development

    Node 8.8.0 comes with capabilities to inject DReps and DRep delegations into Conway genesis. We've started work\non integrating those into our automations, and setting sensible values for benchmarking. The aforementioned\ndelegations representing a new data structure in the Conway ledger, we aim to run\nexisting workflows extended with varying sizes of that new structure, measuring their pressure on ledger queries and operations.

    Workbench

    The performance workbench relies heavily on shell scripting and manipulating JSON data for a great part of its features. This approach\nis very effective for quick experimentation, but lacks in verifiable properties as well as accessibility for new users of workbench.

    After the successful Haskell port of cluster topology creation, and verification, we're currently applying\nthe same model in porting the entirety of benchmarking profiles to Haskell. The obvious gains are widening workbench's\naudience both for users and developers, as well as implementing a principled approach to all workbench data structures and transformations.

    At the same time, we're porting workbench's many options to create fine-tuned geneses, following the same approach.

    Tracing

    We've outfitted cardano-tracer with a handle registry feature that lets the service work on file handles internally, rather than opening and closing files for each operation. The feature is completed; at the moment we're adding\nappropriate test cases to the service's test suite for validation of its behaviour, and for safeguarding future development.

    Nomad backend

    Several improvements for our cluster backend have been merged to master, increasing its overall robustness. We can now safely handle some corner cases where Nomad processes unexpectedly exited, or deployments errored out. Furthermore, an ongoing\nrun can now reliably survive a temporary loss of heartbeat connection between Nomad client and server, without\nthe benchmarking metrics being affected.

    Currently, we're working on a reliable automation of garbage collecting old nix store entries on the cluster machines, as they fill up disk space. The design has to consider both not interfering with ongoing benchmarks, and\navoiding deployment overhead caused by cleaning the store too frequently.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-16-performance-and-tracing", + "title": "Performance & Tracing Update", + "summary": "High level summary", + "date_modified": "2024-02-16T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2024-02-16-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general\nenvironment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet state was respun from slot 14255995 for cardano-node 8.8.0-pre
    • Cardano node 8.8.0-pre is now deployed to sanchonet, shelley-qa, two-thirds\nof preprod and one-third of preview networks
    • IOG pool block producers are now signing mithril certificates for preview,\npreprod and mainnet networks
    • A cardano performance dashboard is now available for both playground and\ncardano-mainnet deployments

    Lower level summary

    Cardano-mainnet

    • Adds mithril signers and perf dashboard to the mainnet cluster; improves\nnetwork docs, tunes alerts, plus misc fixes:\ncardano-mainnet-pull-8

    Cardano-parts

    • Adds mithril signer capability to role-block-producer nixosModule, adds a\nprofile-mithril-relay nixosModule and includes misc other improvements and\nfixes:\ncardano-parts-pull-31

    • Updates packages for sanchonet respin, adds a node performance dashboard\ntemplate and fixes misc issues:\ncardano-parts-pull-32

    Cardano-parts

    • Adds mithril signers and mithril relays to preview and preprod networks and\nincludes misc other improvements and fixes:\ncardano-playground-pull-15

    • Updates machines and pin for sanchonet respin, adds a node performance\ndashboard and fixes misc issues:\ncardano-playground-pull-16

    Iohk-nix

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-16-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2024-02-16T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2024-02-15-node-cli-api", + "content_html": "

    2024-02-01 - 2024-02-15

    High level summary

    • cardano-cli: Added the 'immutable' tip parameter to conway queries that allow the user to query either the current volatile tip (default) or the immutable tip. The committee keys can now sign transactions, required to submit votes.

    • cardano-api: Fix Conway PlutusV3 script hash mismatch. Make committee hash prefixes CIP-5 compliant.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-15-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2024-02-15T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2024-02-14-ledger", + "content_html": "

    High level summary

    Last few weeks were spent mostly on implementing various fixes, writing tests and\nimproving capabilities of our testing frameworks. Important bug fixes are:

    • Retention of Anchor for proposal procedures in the ledger state in order for users to be\nable to query the node for those anchors
    • JSON serialization of rational numbers in protocol parameters and governance procedures\nare encoded without loss of precision

    Feature wise, we've added a new protocol parameter that controls the contribution of\nreference scripts sizes in the transaction fee calculation formula.

    Major achievement that is worth announcing is a Haskell package named\ncuddle that we developed over the last few\nmonths. Soon we will be transitioning to specifying CDDL in Haskell for all eras using\nthat package. It will be used to compile the CDDL specification that developers in the\ncommunity rely on so much. There are enormous benefits in using this tool, when compared\nto writing CDDL specification manually. Namely it allows us to reduce duplication and\nreuse common and unchanged specification from previous eras. It also improves safety and\ncorrectness of our specification and decoders, because it ensures that the specification\nis well typed and it uses QuickCheck to generate random data for validating that our\ndecoders are implemented according to the spec.

    Low level summary

    Conway

    • pull-4031 - Further proposals improvements. Take 2
    • pull-3996 - Index aware PlutusPurpose
    • pull-3983 - Include reference scripts size in min fee calculation
    • pull-4040 - Redeemers serialization fixes
    • pull-4033 - Make Conway-specific queries only available in Conway
    • pull-4028 - Embed ProposalProcedure in GovActionState
    • pull-4056 - Reduce duplication in Conway UTXOW rule
    • pull-4055 - Update MinFeeRefScriptCoinsPerByte.
    • pull-4053 - Rename committeeQuorum to committeeThreshold
    • pull-4058 - Fix ToJSON instance of BoundedRatio to avoid precision loss
    • pull-4070 - Rename AsIndex to AsIx
    • pull-4065 - Remove ConwayPool rule definition

    Improvements

    • pull-4037 - Add capability to hash Plutus scripts directly
    • pull-4030 - Report Plutus ScriptHash upon execution failure

    Testing

    • pull-3895 - Constrained v2
    • pull-3981 - Test proposals rewrite
    • pull-4051 - Full support of random and quickcheck-transformers in impTest
    • pull-4050 - Fixed the \"All Tx are valid on traces of length 150\" intermittent bug
    • pull-4049 - Support for Plutus scripts in ImpTest
    • pull-4075 - Discontinue the mingw target in the nix build
    • pull-4072 - Fix ouroborus-consensus serialization roundtrip test
    • pull-4080 - Test that a resigned CC cannot be reelected without removal
    • pull-4083 - Fix flakyness at the cost of turning test on during development
    • pull-4084 - Fix intermittent test failures in leader-proportion test

    Specification

    • pull-4015 - Shelley ledger spec: amend erratum on nonce stabilization window
    • pull-4064 - Fix wrong prose for new epoch environment
    • pull-4081 - Fix MIR rule using wrong values for treasury and reserves

    Releasing

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-14-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-02-14T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-02-14-mithril", + "content_html": "

    High level overview

    This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the upgrade of the client library and the CLI to support the verification of Cardano transactions. They also released the new Mithril network running on SanchoNet. Additionally, the team rolled out a new feature of the Pallas chain observer (that now supports the retrieval of Mithril era markers), and kept investigating some flakiness occurring in the CI end-to-end tests.

    Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and updated the Mithril network architecture documentation.

    Low level overview

    • Published a development blog post Mithril SanchoNet network released
    • Completed the issue Implement transactions verification in client library #1468
    • Completed the issue Implement Cardano Transactions commands in the client binary #1469
    • Completed the issue Create a test network on SanchoNet #1173
    • Completed the issue Update Mithril network architecture documentation #1488
    • Completed the issue Upgrade http dependency #1474
    • Completed the issue Extract database feature from common crate #1492
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue Some end to end tests are flaky in the CI #1147
    • Worked on the issue Add an example crate for the CardanoTransactions type #1495
    • Worked on the issue Generate automatic documentation for CLIs #1471
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-14-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-02-14T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-02-09-hydra", + "content_html": "

    High-level Summary

    This week, the Hydra team worked on forward compatibility for Conway support, deployed the hydra explorer tool, and improved the model based testing to support more actions (Fanout and Rollbacks).

    What did the team achieve this week

    • Addressed flakyness in two types of integration tests
    • Fixed our tooling (HLS 2.6 on GHC 9.6.4)
    • Fixed configuration of running head in preview
    • Added Fanout and Rollbacks to our Model basd test suite #1296
    • Deployed the hydra explorer to http://explorer.hydra.family:9090/heads (url will change a bit more)
    • Updated smoke test to run sanchonet

    What are the goals of next week

    • Fix the fanout after contest bug
    • Specify the on-chain validators for incremental decommits
    • Complete smoke tests on sanchonet
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-09-hydra", + "title": "Hydra Team Update", + "summary": "High-level Summary", + "date_modified": "2024-02-09T00:00:00.000Z", + "author": { + "name": "Daniel Firth", + "url": "https://github.com/locallycompact" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-02-07-consensus", + "content_html": "

    High level summary

    This week we managed to integrate in the node the Consensus version of the UTxO-HD prototype that features the second version of the Ledger DB API.\nWe also changed the epoch structure for Conway, made progress towards the Bootstrap State Machine and Peras planning.\nOn the support front, we are investigating the impact of snapshots on missed leadership checks.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-07-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2024-02-07T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2024-02-07-mithril", + "content_html": "

    High level overview

    This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the aggregator routes responsible for generating proofs of membership for a list of Cardano transactions and for listing produced artifacts. Additionally, they worked on extending the Mithril client library to support the verification of Cardano transactions, and on the creation of the new Mithril network running on SanchoNet.

    Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and investigated some flakiness occurring in the end-to-end tests in the CI.

    Low level overview

    • Completed the issue Implement proof generation route in the aggregator #1467
    • Completed the issue Implement artifact routes in the aggregator #1478
    • Completed the issue Enhance ImmutableFile list computation resilience #1450
    • Completed the issue Add WASM client step in Mithril Client multi-platform test #1408
    • Completed the issue Enhance end to end test for Cardano hard forks #1464
    • Worked on the issue Implement transactions verification in client library #1468
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue Some end to end tests are flaky in the CI #1147
    • Worked on the issue Handle cancellation of certificate verification in WASM client #1480
    • Worked on the issue Upgrade http dependency #1474
    • Worked on the issue Generate automatic documentation for CLIs #1471
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-07-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-02-07T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-02-05-network", + "content_html": "

    High-level overview of sprint 54

    In this sprint, we merged the bootstrap peers (aka weak genesis) changes to\nthe ouroboros-network repository (ouroboros-network#4615). We continued\nworking on integration & testing it using an early development version of\ncardano-node (cardano-node#5485).

    Andrew Westberg (DripDropz) noticed and fixed a mistake in the cddl spec which resulted in\nmisleading documentation; ouroboros-network#4790. The Handshake protocol flag\nshould be called initiatorOnlyDiffusionMode. Library authors providing\nconnectivity with other nodes via the node-to-node protocol are advised to review\ntheir implementation.

    We continued working on the tx-submission decision logic;\nouroboros-network#3311.

    Karl Knutsson (CF) implemented:

    Open Source Contributions

    IOSim

    We released a new version of io-sim to Hackage:

    NoThunks

    We released a new version of nothunks to Hackage:

    Low-level summary

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-05-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 54", + "date_modified": "2024-02-05T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2024-02-02-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general\nenvironment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano explorer is being sunset and will soon be replaced by a new Cardano\nFoundation explorer
    • IOG mainnet pools are now participating in propagation time reporting using\nCardano Foundation's blockperf\ntool
    • Cardano-parts node nixosConfigurations, node entrypoint and process-compose\nnode jobs now utilize mithril\nclient automatically on preview and preprod networks for faster\nsynchronization of first start up. Mainnet mithril client use as well as\nsigner modules will be available soon.

    Lower level summary

    Cardano-mainnet

    Cardano-parts

    • Adds a block performance module which utilizes cardano-foundation's blockperf\nfor aggregate block propagation reporting:\ncardano-parts-pull-29
    • Adds a mithril client for nixosConfigurations, process-compose cardano-node\nprocesses and cardano-node entrypoint:\ncardano-parts-pull-30

    Iohk-nix

    • Adds required mithril client environment information for preview, preprod,\nmainnet:\niohk-nix-pull-570

    Cardano-world

    Upstream Contributions

    Blockperf

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-02-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2024-02-02T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2024-02-02-hydra", + "content_html": "

    High-level Summary

    This week, the Hydra team authored and published the monthly report for January 2024, enhanced user feedback for failed commands, updated cardano-api dependency and GHC to newer versions, re-opened their persistent head in preparation for the hard-fork, extended the model-based testing suite to cover the closing of heads, fixed a bug in io-sim, and contributed to cardano-node.

    What did the team achieve this week

    What are the goals of next week

    • Fix the fanout after contest bug #1260
    • Run Hydra smoke tests on sanchonet #1257
    • Specify the on-chain validators for incremental decommits #1057
    • Have the explorer hosted #696
    • Prepare PRs for dropped JSON instances from API #1213
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-02-02-hydra", + "title": "Hydra Team Update", + "summary": "High-level Summary", + "date_modified": "2024-02-02T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-01-31-ledger", + "content_html": "

    High level summary

    One very important Conway feature that became available since last report is the ability\nfor Stake Pool Operators to vote on some of the security relevant protocol parameter\nupdates. We organized proposal hierarchy into a cohesive implementation, which together\nwith good tests gives us confidence in its correctness.

    We also fixed a few important bugs:

    • Preventing Constitutional Committee Members from voting on governance actions that they\nshould not be allowed to vote on.
    • Prevent deposits from appearing in orphaned reward accounts after the staking credential\nhas been unregistered, but before the proposal procedure deposit has been returned.
    • Ensure Sets are encoded in CBOR with tag 258 by default

    Further improvements in testing tools and addition of more tests.

    Low level summary

    Conway

    • pull-3982 - Added SPO voting thresholds for security relevant parameters
    • pull-3978 - Proposals pruning rewrite
    • pull-4003 - Prefix Set encoding with tag 258
    • pull-3999 - Add PParamUpdates to the plutus context, by transforming them to Plutus Data
    • pull-4008 - Fixed a bug in GOV rule
    • pull-4013 - Remove EnactState from ConwayGovState
    • pull-4025 - Further improvements to Proposals
    • pull-4021 - Move unclaimed rewards from proposals to treasury

    Testing

    • pull-3997 - Added DRep delegation injections to Conway
    • pull-4023 - Add a function registerInState to EraTransition
    • pull-4005 - Fixes in Shelley Imp framework and other small things
    • pull-4004 - Verify that enacted gov action is removed
    • pull-4016 - Fix Arbitrary instance and invariant checking for Proposals

    Improvements

    Releasing

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-31-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-01-31T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-01-31-mithril", + "content_html": "

    High level overview

    This week, the Mithril team continued implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the signature of the transactions set and implemented the aggregator route, responsible for generating proofs of membership for a list of Cardano transactions. Additionally, they finalized the manual workflow to test the NPM client package in the CI and enhanced the resilience of computing the list of immutable files in a Cardano node database. The team also expanded the coverage of end-to-end tests in the CI to accommodate multiple versions of the Cardano node and various hard fork scenarios.

    Finally, they completed the enhanced node communications between Mithril and Cardano for retrieving UTXOs and kept working on the threat modeling and risk analysis for P2P networking.

    Low level overview

    • Completed the issue Light Wallet: Compute message to sign for CardanoTransactions #1436
    • Completed the issue Light Wallet: Implement proof generation route in the aggregator #1467
    • Completed the issue Enhance ImmutableFile list computation resilience #1450
    • Completed the issue Enhance end to end test for Cardano hard forks #1464
    • Completed the issue Add WASM client step in Mithril Client multi-platform test #1408
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue Generate automatic documentation for CLIs #1471
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-31-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-01-31T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-01-31-node-cli-api", + "content_html": "

    2024-01-16 - 2024-01-31

    High level summary

    • cardano-cli: Adapt the output of the protocol-parameters query to show all parameters in Conway. Improved help on various commands. New command create-testnet-data to eventually replace create-staked.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-31-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2024-01-31T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2024-01-31-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: GHC 9.6.3 benchmarks for node 8.7.2 have been performed.
    • Development: Additional features for our reporting pipeline, while simultaneously reducing dependency footprint.
    • Tracing: Implementation for cardano-tracer to work on handles instead of files; work on New Tracing Quickstart document has begun.
    • Nomad cluster: We're preparing an upgrade to the latest Nomad version.

    Low level overview

    Benchmarking

    We've performed a full set of GHC 9.6.3 benchmarks for node 8.7.2. For recommending GHC9.6 as a default build platform for cardano-node - from a performance perspective - we observe only one residual issue. As a way to\naddress this, we've decided to create a reproduction benchmark targeting the affected component.

    Development

    Our reporting pipeline will be expanded to support a wider range of rendering formats, as well as report templates. As the pipeline is part of our workbench - and thus gets downloaded and built when entering the workbench shell - it's\ngood practice to keep a small dependency footprint. When reworking the pipeline, we aim to simultaneously reduce dependencies.

    Tracing

    So far, cardano-tracer has internally been using files, or file names, for the purpose of logging trace messages it receives via forwarding. This is simple, but induces quite some overhead at runtime: files have to be opened and closed for each message.\nUsing and managing open file handles inside cardano-tracer does remove that overhead, but unsurprisingly introduces some complexity into the application code. Currently, we're working on implementing that change.

    Furthermore, we're working on a Quickstart document for the new tracing system, with end users as its intended audience. It will contain recommended production use setup(s), and how to efficiently configure and run them step by step. Additionally, it\nwill provide a brief, but comprehensive overview over the features at the user's disposal.

    Nomad backend

    On the Nomad cluster, we've experienced undesired system behaviour when the heartbeat between the Nomad server and a client is interrupted temporarily - although the Nomad job itself is still 100% functional. A Nomad\nupgrade to the latest version promises to fix that, but it turn comes with other issues. We're currently working on adapting our automation and deployment around those known issues, before we can eventually\napply the upgrade.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-31-performance-and-tracing", + "title": "Performance & Tracing Update", + "summary": "High level summary", + "date_modified": "2024-01-31T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2024-01-30-db-sync", + "content_html": "

    High level summary

    The DBSync team has prepared and tested a new db-sync version for mainnet, we have continued our\nintegration and update for Conway and have extended its modularity.

    Lower level summary

    • We attempt to turn db-sync into a modular project that can run with wither low or high recourses\n#1610\n#1613\n#1590

    • Moving the flags above to a config file\n#1609

    • Optimizations\n#1595\n#1607

    • Conway Support and updates\n#1581\n#1573\n#1570

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-30-db-sync", + "title": "DB Sync Team Update", + "summary": "High level summary", + "date_modified": "2024-01-30T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2024-01-26-hydra", + "content_html": "

    High-level Summary

    This week, the Hydra team conducted yearly roadmapping sessions, introduced a\nbreaking API change to eliminate JSON encoding of transactions (refer to issue\n#1213 for details), completed off-chain logic for incremental decommits through,\nand implemented a hydra-explorer backend.

    What did the team achieve this week

    • Conducted yearly roadmapping sessions
    • Merged a breaking API change to drop JSON encoding of transactions #1213 - contact us if you were relying on this.
    • Completed off-chain logic for incremental decommits #1223
    • Implemented a hydra-explorer backend #1235

    What are the goals of next week

    • Publish the monthly report
    • Prepare PRs for hydra clients to switch to CBOR due to the changed API (see above)
    • Enhance the model testing framework to cover close/contest (needed to fix a bug and incremental decommit development)
    • Fix new bugs (all minors) and finish things before starting new
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-26-hydra", + "title": "Hydra Team Update", + "summary": "High-level Summary", + "date_modified": "2024-01-26T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-01-24-consensus", + "content_html": "

    High level summary

    This week the team continued working on the second iteration of the Ledger DB API for UTxO-HD, as well as on Genesis.\nWe incorporated further improvements to the onboarding documentation, and wrote a document explaining a specific subtlety of our chain orders.\nFor Conway, we integrated DReps and initial delegates injection, which will allow the Performance and Tracing team to run benchmarks for this era.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-24-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2024-01-24T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2024-01-24-mithril", + "content_html": "

    High level overview

    This week, the Mithril team released the initial version of the Mithril client NPM package, enabling developers to integrate core Mithril features into their web applications running in a browser. They also released a new distribution, 2403.1, which includes support for Cardano node version 8.7.3, a new chain observer based on the Pallas library, along with bug fixes and performance improvements.

    The team kept implementing a new entity type for certifying the Cardano transactions set in Mithril networks and made good progress on retrieving transactions and combining them into a Mithril protocol message. Additionally, they finished implementing a mock aggregator and using it in the browser tests for the Mithril client in WASM.

    Finally, they worked on enhancing node communications between Mithril and Cardano and continued working on threat modeling and risk analysis for P2P networking.

    Low level overview

    • Release of the mithril-client npm package library crate
    • Publication of a dev blog post about the released Mithril client npm package
    • Released the new distribution 2403.1
    • Completed the issue Light Wallet: Gather transactions from immutable files and store them in the database #1435
    • Completed the issue Light Wallet: Implement browser tests with fake aggregator #1407
    • Completed the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Light Wallet: Compute message to sign for CardanoTransactions #1436
    • Worked on the issue Enhance ImmutableFile list computation resilience #1450
    • Worked on the issue Add WASM client step in Mithril Client multi-platform test #1408
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue Add warn missing docs in mithril client cli #1439
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-24-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-01-24T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-01-22-network", + "content_html": "

    High level overview of sprint 53

    We integrated bootstrap peers with cardano-node in an experimental branch\n([cardano-node-5485], ouroboros-network-4615). We continued working on\ntx-submission: ouroboros-network-3311.

    Karl Knutsson (CF) worked on peer sharing improvements: ouroboros-network-4778.

    Erik de Castro Lopo made ouroboros-network packages compile with GHC-9.8:\nouroboros-network-4727.

    Nick Frisby (Tweag, Consensus Team), modified local-state-query mini-protocol\nso that one can acquire the immutable tip and thus get information which is not\nsubject to rollbacks: ouroboros-network-4765.

    Low level summary

    Other, less significant changes / improvements include:

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-22-network", + "title": "Network Team Update", + "summary": "High level overview of sprint 53", + "date_modified": "2024-01-22T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2024-01-19-hydra", + "content_html": "

    High-level Summary

    The team made good progress this week, with the release of version\n0.15.0 marking a milestone, along with the monthly review including\nboth Mithril and Hydra work. We addressed issues in smoke tests and\nwebsite publishing workflows, ensuring a more robust development\nenvironment, and along the way included more \"dogfooding\" through the\nuse of Mithril to synchronize nodes in smoke tests.

    What did the team achieve this week

    • Release of Version\n0.15.0. This\nrelease enhances the overall stability and functionality of our\nproduct.
    • Monthly Review and Community Demos
    • Smoke Tests and Website Publishing Workflow Fixes: #1246
      • Resolved glitches in the website publishing workflows, enhancing\nthe efficiency of our deployment processes.
    • Integration of Mithril for Smoke Test Synchronization: #1252
    • Polishing of Hydra-Chess v0.1.0: #1237
      • Worked on polishing hydra-chess v0.1.0, treating it as an example\napplication running on Hydra. This not only demonstrates the\ncapabilities of our platform but also aims at providing a reference for future Hydra\ndevelopers.

    What are the goals of next week

    • Merge Off-Chain Protocol Logic for incremental decommits
    • Initiate work on the on-chain portion of incremental decommits
    • Merge CBOR API Change #1240
    • Troubleshoot Dangling Fanout Issue #1260
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-19-hydra", + "title": "Hydra Team Update", + "summary": "High-level Summary", + "date_modified": "2024-01-19T00:00:00.000Z", + "author": { + "name": "Arnaud Bailly", + "url": "https://github.com/abailly" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-01-19-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general\nenvironment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.7.3 is now generally deployed to all testnet and mainnet environments\nmanaged by coretech SRE

    • Dbsync and node stack process-compose jobs are now available from\ncardano-parts for users running nix >= 2.17.0 and nix experimental-features\n= nix-command flakes fetch-closure

    • These can be run with:

       nix run github:input-output-hk/cardano-parts#run-process-compose-node-stack
      nix run github:input-output-hk/cardano-parts#run-process-compose-dbsync-$NETWORK
    • For more details, see the merged cardano-parts process-compose\nPR

    Lower level summary

    Cardano-monitoring

    Cardano-mainnet

    • Adds a readme, switches to nonmoving gc for producers, plus misc improvements\nfrom cardano-parts:\ncardano-mainnet-pull-6

    Cardano-ops

    • Merged a long standing branch converting legacy mainnet relays to p2p, node ->\n8.7.2, db-sync snapshots -> 13.1.1.3, and other improvements:\ncardano-ops-pull-417

    Cardano-parts

    • Adds a readme, provides misc improvements, service optimizations, alert tuning,\nsql pool performance analysis fix, package updates:\ncardano-parts-pull-27
    • Adds process-compose dbsync and node stacks:\ncardano-parts-pull-28

    Cardano-playground

    Upstream Contributions

    • Contributions to upstream process-compose related repos were made in order to\ncomplete the process-compose dbsync and node stacks in cardano-parts,\nincluding the following:

    Process-compose-flake

    Services-flake

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-19-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2024-01-19T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2024-01-17-ledger", + "content_html": "

    High level summary

    Last week's achievement was that we finished PlutusV3 integration, which a massive piece of work.

    Low level summary

    Conway

    Testing

    • pull-3989 - Fix too many discards.
    • pull-3986 - Remove libs/cardano-ledger-pretty
    • pull-3991 - Imp native script support
    • pull-3993 - Change Test.Cardano.Ledger.Generic.Proof so that there is no more Crypto Evidence.

    Releasing

    • pull-3988 - Bump jinja2 from 3.1.2 to 3.1.3 in /doc
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-17-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-01-17T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-01-17-mithril", + "content_html": "

    High level overview

    This week, the Mithril team completed the implementation of the client in the explorer, enabling direct certificate verification from the browser. They initiated the implementation of a new entity type for signing to certify the Cardano transactions set in Mithril networks. The team also upgraded the devnet to support the Conway era and activated the Mithril era marker reader on the Cardano chain in the end-to-end test. Additionally, they kept implementing a mock aggregator to strengthen Mithril client tests in WASM and continued working on threat modeling and risk analysis for P2P networking.

    Finally, they worked on enhancing node communications between Mithril and Cardano, and they started rolling out the Cardano node in the infrastructure to version 8.7.3.

    Low level overview

    • Completed the issue Light Wallet: Create new signed entity type for CardanoTransactions #1434
    • Completed the issue Implement the mithril client WASM package in the explorer #1409
    • Completed the issue Activate babbage/conway eras on devnet #1425
    • Completed the issue Transition Mithril Era Reader adapter to CardanoChain in devnet #1428
    • Completed the issue Upgrade Cardano node to 8.7.3 #1410
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-17-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-01-17T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-01-15-node-cli-api", + "content_html": "

    2024-01-01 - 2024-01-15

    High level summary

    • cardano-cli: Improve queries drep and stake pool queries. Code clean-up
    • cardano-api: Added support for drep extended keys
    • cardano-testnet: Update to cardano-cli 8.18.0.0

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-15-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2024-01-15T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2024-01-12-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team improved Github actions workflows, addressed protocol\nparameter schema consistency in hydra-node, and made enhancements to log schema\ntests. They created an Architectural Decision Record (ADR) for Cardano\ntransactions serialization in APIs, moved the hydra-chess project to a dedicated\nrepository, and resolved a bug in quickcheck-dynamic and model tests.

    There will be the monthly review meeting with demos on Hydra, Mithril and\nrelated projects. If this sounds interesting, join us in Google Meet\nhttps://meet.google.com/udc-zgyw-agd next week, January 19 2024 at 17:30 UTC.

    What did the team achieve this week

    • Github actions improvements and small fixes to the smoke tests #1242, #1233
    • Fixed protocol parameter schema consistency around hydra-node #1234
    • Log schema tests improvements and fixes #1244
    • Created ADR about Cardano transactions serialisation in our APIs\n#1215
    • Moved hydra-chess #1237 to a dedicated cardano-scaling organisation repository https://github.com/cardano-scaling/hydra-chess
    • Identified bug on quickcheck-dynamic / our model tests #1239

    What are the goals of next week

    • Monthly review meeting (January 19, 17:30 UTC) including several demos (from team and contributors)
    • Do release 0.15.0
    • Improve quickcheck-dynamic model to be more robust and cover more\nbehaviour.
    • Draft POC about backend for a hydra-explorer that can track all\nheads on-chain.
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-12-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2024-01-12T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-01-10-consensus", + "content_html": "

    High level summary

    For the past two weeks the Consensus team:

    • Resumed work on implementing the initialization and internals of the second iteration of the in-memory ledger database.
    • Resumed work on integrating the new ledger database API for UTxO HD.
    • Simplified query versioning for downstream users (863 and 403).
    • Confirmed the cause of missed leadership checks due to ledger snapshots (868).
    • Derived principles for the versioning/declaration of queries, since Conway complicates it (864 and 866).
    • Unblocked the Node Team in the work on rollback-insensitive leadership schedule queries (4765).
    • Drafted the (Pre-Genesis) Bootstrap State Machine (808).
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-10-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2024-01-10T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2024-01-10-ledger", + "content_html": "

    High level summary

    Major Conway related development was the refactoring of how we distinguish Plutus\nlanguage versions in every era, thus drasticly improving the type safety and getting us\nmuch closer to PlutusV3 integration.

    There has also been many bug fixes and improvements since the last update. Some important bug\nfixes are:

    • missing \"protocolVersion\" field in JSON instance for Babbage and Conway protocol parameters
    • requiring witnesses for DRep registration
    • new committee governance action ratification was implemented incorrectly
    • guard against invalid protocol versions in hard fork initiation proposals
    • failures during updates of Plutus CostModels were not retained
    • fixed the types for some protocol parameters in order to prevent values that are too large
    • serialization and CDDL fixes

    A few useful features have been also implemented, like new ledger events, doubling the\nlimit for Url length, consensus query, JSON instances and so on. It was also required\nfor testing to implement a reliable transaction fee estimation function, which is now\navailable not only for testing, but also for cardano-cli.

    Low level summary

    Conway

    • pull-3915 - Utilize Inject type class for Val's inject
    • pull-3899 - Bring Plutus language version to the type level
    • pull-3917 - Ensure DRepRegistration certificate requires a witness
    • pull-3921 - Fix committee validation in Ratify
    • pull-3935 - Fixed a bug in Conway.Rules.Gov
    • pull-3956 - Allow 128 byte Url and DnsNames for decoder version atleast 9.
    • pull-3954 - Fix how we update CostModels
    • pull-3947 - Change the type of some pparam fields to align with how they are represented in Consensus
    • pull-3951 - Conway genesis DRep injection
    • pull-3961 - Switch ContextError to an injective type family from a data family
    • pull-3963 - Abstract getWitsVKeyNeeded
    • pull-3933 - Improve cbor serialization of TxWits in Conway
    • pull-3971 - ToJson instances for context error
    • pull-3977 - Added GetAccountStateQuery
    • pull-3975 - Add policy hash protection to TreasuryWithdrawals and ParameterChange

    Testing

    • pull-3892 - Translate DRep expiry test from ConwayFeatures to Imp GovSpec
    • pull-3913 - Add certs to conformance testing
    • pull-3911 - Add a Preds to generate valid GovActionStates.
    • pull-3929 - Improve comment on unit_interval in cddl
    • pull-3950 - Use discard to avoid bad traces for fixOutput
    • pull-3935 - Add some Imp tests for HardForkInitiation.
    • pull-3964 - Ignore thunks in utxosDeposited
    • pull-3962 - Add estimateMinFeeTx
    • pull-3976 - Introduce accurate min fee calculation function: calcMinFeeTx

    Improvements

    • pull-3930 - Change type of mintedTxBodyL to PolicyID
    • pull-3924 - Split type classes out of eras Core module
    • pull-3934 - Type safety bugfixes
    • pull-3949 - Add FromJSON BabbagePParams instance
    • pull-3953 - Babbage / Conway PParams JSON serialization
    • pull-3946 - Epoch interval instances
    • pull-3932 - Add ledger event TxUTxODiff
    • pull-3969 - Add missing stake key deposit in formal spec
    • pull-3973 - Move functionality of Cardano.Ledger.Pretty to Test.Cardano.Ledger.Generic.PrettyCore

    Releasing

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-10-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2024-01-10T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2024-01-10-mithril", + "content_html": "

    High level overview

    This week, the Mithril team worked on implementing the client in the explorer to enable direct verification of certificates from the browser. They also addressed the configuration issue in the signer node service, which occasionally resulted in signers not registering their keys after a restart. Additionally, the team kept implementing a mock aggregator to strengthen Mithril client tests in WASM, continued working on threat modeling and risk analysis for P2P networking, and progressed with the devnet upgrade to support the Conway era.

    Finally, they worked on enhancing node communications between Mithril and Cardano and completed the upgrade of the Cardano node topology used in the Mithril networks' infrastructure.

    Low level overview

    • Published a development blog post Mithril signer service new configuration
    • Completed the issue Simplify Mithril client CLI download command #1406
    • Completed the issue Make all infra Cardano nodes use P2P topology #1405
    • Completed the issue Implement ChainObserver adapter configuration in aggregator #1396
    • Completed the issue Fix signer node service setup #1404
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Implement the mithril client WASM package in the explorer #1409
    • Worked on the issue Light Wallet: Implement browser tests with fake aggregator #1407
    • Worked on the issue Activate babbage/conway eras on devnet #1425
    • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-10-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2024-01-10T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2024-01-09-network", + "content_html": "

    High-level overview of sprint 52

    Happy New Year!

    In this short sprint we analysed a failure which happened on a new large\ncluster that's run by IOG. The process exhausted all file handles and was left\nwithout any functional connections. The issues apparently is rare, and thus\ndoesn't impose a high risk.

    We also continued working on tx-submission: ouroboros-network-3311.

    Detailed description

    It turned out that the process exhausted the number of file handles leaking\nmultiple /proc/{PID}/stat files open. We suspect that the bug is caused by

    • using lazy IO in iohk-monitoring-framework, and
    • using a recent kernel version

    With lazy IO file handles are read as long as the data is required and they are\nclosed only when EOF is reached. We currently suspect that a new linux kernel\nadded something at the end of the /proc/{PID}/stat which is not parsed by\niohk-monitoring-framework, so whenever the file is read we leak it (it's\nnever closed) and eventually, there are no file handles to be used by the\nnetwork layer: the accept loop doesn't return any inbound connection, neither\nan outbound connection can be created. This issue will be addressed by the\nprofiling team (which owns the logging subsystem).

    The fix will be proposed in the future release, in the meantime we suggest to\nkeep observing file handles used by the node.

    I would like to thank John Lotoski (IOG), Karl Knutsson (CF), Neil Davies\n(PNSol) and Michael Karg (IOG) who all contributed to this analysis.

    While analysing the log we also found a few smaller issues in the outbound\ngovernor which were fixed in [ouroboros-network-#4764].

    The IO error indicating exhausting file handles is not currently visible. It\nis not re-thrown nor logged. This needs to be fixed in a future version. See\nouroboros-network-4769.

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-09-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 52", + "date_modified": "2024-01-09T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2024-01-05-hydra", + "content_html": "

    High-level summary

    In between the end-of-year holidays, the Hydra team completed the implementation\nof the Conway support feature, fixed a minor bug that was hindering tests from\nrunning on MacOS, and addressed a regression in the protocol-parameter formats\nused by the hydra-node. They also worked on off-chain code for incremental\ndecommits, specifically focusing on transaction creation. Furthermore, they\nconducted a spike on implementing a Chess game using Hydra, with an experience\nreport provided.

    What did the team achieve this week

    • Fixed a regression on protocol-parameter formats used by the hydra-node #1226
    • Fixed a minor bug prohibiting tests running on MacOS #1218
    • Complete conway support feature #1227
    • Transaction creation off-chain code for incremental decommits #1218
    • First spike on implementing a Chess game on Hydra report, related to: #1098

    What are the goals of next week

    • Fully resolve protocol parameter misalignment #1234
    • Cut a release 0.15.0 to ship offline-mode and conway support
    • Prepare demo for conway support
    • Complete transaction creation and observation for incremental decommits
    • Backend for a hydra-explorer that can track all heads on-chain
    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-05-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2024-01-05T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2024-01-05-sre", + "content_html": "

    High level summary

    During the lightly staffed holiday period for node SRE, the emphasis was on\nmaintaining environment stability, tuning and resolving any noisey alerts.

    Investigation into and testing around the following two topics also\nstarted during this period:

    • Ledger snapshots causing a small number of missed slots for forgers on mainnet:\nouroboros-consensus-issue-868

    • A cardano-node rare file descriptor leak, with a more detailed description\nhere

    ", + "url": "https://updates.cardano.intersectmbo.org/2024-01-05-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2024-01-05T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-12-30-node-cli-api", + "content_html": "

    2023-12-09 - 2023-12-30

    High level summary

    • Migrated reposotiries to IntersectMBO.
    • Improved era handling on cardano-api. Instead of enumerating every possible era, we use two constructors:\n'CurrentEra' and 'UpcomingEra'. This design simplifies the handling of eras, especially for cardano-api consumers who are primarily concerned with the current mainnet era and the next era for an upcoming hardfork.
    • Cleaning-up the cardano-cli, in particular to the babbage era commands where some Conway options had spilled.

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-30-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-12-30T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-12-22-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team made significant progress, implementing an offline mode with associated refactoring. They enhanced user experience by detecting incompatible eras in hydra-node. Protocol changes were implemented for incremental decommits, addressing off-chain logic. Additionally, the team contributed fixes to cardano-ledger and coordinated with the Eternl team on enabling committing into a head from their wallet.

    What did the team achieve this week

    • Offline mode implementation\n#1118 and\nrefactoring\n#1222
    • Detect incompatible era in hydra-node and provide better UX\n#1216
    • Implemented protocol changes for incremental decommits (off-chain\nlogic) #1057
    • Contributed fixes to cardano-ledger#3949 and\n#3953
    • Synced up with the Eternl team on enabling committing into a head from\ntheir wallet

    What are the goals of next week

    • Maybe cut a release 0.15.0 to ship offline-mode and unsupported era UX
    • Full conway support in hydra-node
    • Transaction creation and observation for incremental decommits
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-22-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-12-22T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-12-22-network", + "content_html": "

    High-level overview of sprint 51

    Outbound Governor Bug in cardano-node-8.7.2

    In the current sprint, we received a bunch of reports from SPOs about nodes not\nmaintaining some connection when using cardano-node-8.7.2 (running in P2P\nmode). Such regressions are very important to us since they can lead to lost\nblocks. We were able to reproduce this issue. Every time there's a longer\npause of block production (due to the statistical nature of Ouroboros), there\nis a chance that the bug will be armed. For this reason cardano-node-8.7.2\nneeds to be closely monitored.

    We found the bug and developed a fix, ref. Karl\nKntusson (CF) wasn't able to reproduce the bug with the patched version of\nthe node for long enough (almost two weeks now) for us to belive that the fix\nis correct.

    Advise for SPOs

    We created a release branch for 8.7.3. The advice from\nthe network team is to either downgrade to the previous release, e.g. 8.1.2\nor use the above release branch (note that there were no benchmarks made or Q&A\ntests yet).

    Testing plans

    We were also able to reproduce the bug using IOSim, ouroboros-network#4757.\nHowever, the bug relies on a particular schedule of two threads which are\ninvolved and we needed to artificailly modify IOSim schedule in production\ncode - something that we don't want to commit to the master branch. We also\nexperimented with a randomised scheduler for IOSim, but that did not lead to\nfinding the schedule which arms the bug: the search space grows exponentially\nwith the number of steps in the threads, partial order reduction techniques\nimplemented in IOSimPOR are more appropriate - unfortunatelly the simulation\ntest is too large to be executed in IOSimPOR even with large amounts of\nRAM. To use IOSimPOR we need to implement a test which includes the two\ninteracting components:

    • connection-manager
    • outbound-governor (where the bug was located)

    which communicate through PeerStateActions, without including all the\ndiffusion components as we do in our sim-net tests. More in style of\noutbound-governor tests where there is just a single outbound-governor,\nunlike in the sim-net which runs multiple communicating diffusions.

    Bootstrap peers

    We continued working on bootstrap peers, ouroboros-network#4555

    TxSubmission Decision Logic

    We continued working on tx-submission decision logic, ouroboros-network#3311

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-22-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 51", + "date_modified": "2023-12-22T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-12-22-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • A new repository was created which enables agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: cardano-monitoring
    • The govtool backend swagger interface was nix flake packaged and deployed for Voltaire private chain testing usage
    • Grafana cloud monitoring stacks were migrated to new EC2 cardano-monitoring servers
    • Cardano-db-sync state snapshots now support client range requests, details here
    • In addition to monitoring server centralized grafana metrics, sysstat collected system metrics are now available locally on all cluster machines at high time resolution
    • Code changes required due to repository migrations to IntersectMBO have largely been completed

    Lower level summary

    Auth-keys-hub

    Cardano-monitoring

    • A new repository enabling agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: cardano-monitoring

    Cardano-parts

    • Migrate from grafana cloud monitoring to ec2 monitoring, add resource tagging support, declarative route53 CNAME list, and additional improvements and fixes: cardano-parts-pull-25
    • Improve ssh key handling and edge cases, resolve misc issues, add IOPS and throughput gp3 openTofu support: cardano-parts-pull-26

    Cardano-playground

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-22-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-12-22T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-12-20-mithril", + "content_html": "

    High level overview

    This week, the Mithril team completed aggregator optimizations, enabling the certification of new data types without introducing a new era. They also facilitated the selection of these data types through a simple configuration parameter. Additionally, the team started implementing a mock aggregator to strengthen Mithril client tests in WASM, kept working on threat modeling and risk analysis for P2P networking, and progressed with the implementation of a testing Mithril network for SanchoNet.

    Finally, they worked on some optimizations and refactoring of the Mithril client CLI and started upgrading the Cardano node topology used in the Mithril networks' infrastructure.

    Low level overview

    • Completed the issue Implement open_message timeout in aggregator #1387
    • Completed the issue Implement configurable signed entity types in aggregator #1388
    • Completed the issue Enhance machine readable logs in client #1234
    • Completed the issue Manual publication to npm registry with GitHub action #1411
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Simplify Mithril client CLI download command #1406
    • Worked on the issue Make all infra Cardano nodes use P2P topology #1405
    • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-20-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-12-20T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-12-15-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team identified and resolved issues with a malfunctioning\nhead on mainnet, implementing preventive measures. They edited and merged a new\nArchitectural Decision Record (ADR) proposed by SundaeLabs, upgraded\ncardano-node to version 8.7.2, and improved the TUI user experience.\nPreparations for \"Conway support\" were initiated, and updates were made to logs\nand API schemas. Additionally, initial steps were taken towards incremental\ndecommits.

    What did the team achieve this week

    • Troubleshoot and recover a broken head on mainnet. Opened issue\n#1202 and PR\navoiding this in-flight\n#1211
    • Designed and proposed a new ADR to generalize EventSource and\nEventSinks#1157,\ncontributed by SundaeLabs.
    • Upgrade cardano-node to 8.7.2\n#1199 and\nre-enables e2e nix-shell support on Darwin\n#1203
    • UX enhancement on TUI\n#1201
    • Preparations for \"Conway support\"\n#1177[#1206 &\n#1207]
    • Update logs and api schemas\n#1212
    • First steps on incremental decommits\n#1057:
      • Drafted the e2e workflow\n#1205
      • Added decommit API endpoints\n#1209

    What are the goals of next week

    • Detect incompatible blocks and provide better UX
    • Conway support in hydra-node
    • Off-chain logic for incremental decommits
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-15-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-12-15T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-12-13-mithril", + "content_html": "

    High level overview

    This week, the Mithril team completed the adaptation of the Mithril client library for WASM compilation, providing a JavaScript API for it. They also completed the proof of concept to demonstrate that a subset of Cardano transactions is part of the entire transactions set. The refactoring of the Mithril client CLI with the Mithril client library was also finalized. Additionally, the team kept working on the threat modeling and risk analysis for P2P networking, along with progressing in the implementation of a testing Mithril network for SanchoNet.

    Finally, they started implementing an expiration mechanism for the open messages in the aggregator, and they completed the upgrade of Rust dependencies with breaking changes.

    Low level overview

    • Completed the issue Light Wallet: Implement mithril-client WASM library #1336
    • Completed the issue Light Wallet: Certify Cardano UTXO/transactions set PoC #1393
    • Completed the issue Refactor mithril-client-cli with mithril-client library #1335
    • Worked on the issue Implement open_message timeout in aggregator #1387
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Enhance machine readable logs in client #1234
    • Worked on the issue Create a test network on SanchoNet #1173
    • Completed the issue Upgrade breaking changes crates #1357
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-13-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-12-13T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-12-11-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: Release benchmarking for node 8.7.2, as well as P2P benchmarks - the latter being a premiere for the Nomad cluster.
    • Development: Work on automating the submission of Conway transactions for registration of and stake delegation to DReps is ongoing.
    • Infrastructure: We're preparing to safely retire our current benchmarking cluster.
    • Tracing: The documentation for the new tracing system is being reworked. Additionally, we've added a feature to cardano-tracer to capture performance over a long runtime.
    • Nomad cluster: The Nomad backend has been successfully equipped with support for up-to-date P2P topology, as well as deployment for Plutus script data.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for node 8.7.2. From a performance perspective, it has been greenlit for mainnet release. Starting with this version, our team will publish observations alongside the original comparative analysis of benchmarks, providing insight into key metrics and resource usage. Hence, for the post on version 8.7.2, see here.

    Additionally, we're running P2P versus no-P2P benchmarks on the same version. We intend to establish future baseline runs using P2P topology as the default setting. All our cluster nodes being block producers, it is crucial to establish the P2P stack does not exhibit any regression regarding block forging. Furthermore, the evidence gathered from those benchmarks forms the base for a recommended setting for P2P on mainnet block producers.

    It deserves special mention that those P2P benchmarks are our first production runs with the Nomad cluster - and using the new tracing system exclusively. Having finalized all optimization rounds of the latter, and having meticulously eliminated all confounding factors from the Nomad infrastructure, we're confident in the measurements being subject to extremely low variance - which we made sure of in many past validation runs on Nomad.

    Development

    Orchestrating DRep actions into benchmarking workflows has opened up a fairly large design space. Currently, we're focusing on having stake delegated to DReps, in order to trigger ledger pulses for calculations particular to DRep actions. We can benchmark a possible\nperformance impact of those pulses - even if there are no actions ongoing - as a first step.

    The contributing factors to the cost of those pulses are both the number of DReps registered, and the number of delegations to them. It is still under debate which values represent a probable model for mainnet, and whether we can achieve stake delegation programmatically (i.e. by submitting transactions), or if, for large numbers, we need means to inject those delegations into genesis.

    Infrastructure

    With the switch of all production benchmarks to the Nomad cluster, we will retire the legacy cardano-ops cluster very shortly. Currently, we're making sure that when all its resources are released, we keep an archive for all runs performed, including all raw log data - with the oldest runs dating back as far as December 2019.

    Tracing

    We've outfitted the cardano-tracer service with the same kind of resource tracing machinery that's used by cardano-node - as well as created a dedicated benchmarking profile for it. It puts very little pressure on the node; instead it causes 6 nodes to emit traces at a rate of >35 messages per second, putting pressure on cardano-tracer via trace forwarding at >200 messages per second for an extended period of time. Analysis of these traces will form the ground for various optimizations of cardano-tracer that are currently being worked on.

    As we aim for early 2024 to be able to recommend the new tracing system as default in production use, we're currently also reworking the comprehensive documentation to reflect all changes made over the last months.

    Nomad backend

    In addition to being able to deploy Plutus script data and redeemers seperately (instead of inlining them as the legacy cluster did), the Nomad cluster now supports being set up with recent P2P topology. No-P2P topology format will still be supported\nfor occasional regression benchmarking of the P2P stack, when desired. Furthermore, we've completed porting all benchmarking profiles from the legacy cluster to Nomad.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-11-performance-and-tracing", + "title": "Performance & Tracing Update", + "summary": "High level summary", + "date_modified": "2023-12-11T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-12-08-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    The team is currently formalising mini protocols, working on a\nperformance modelling paper and working on a performance modelling\nprototype tool

    Details

    • completing work on chain sync mini-protocol

    • proof sketch of conformance property of chain sync mini-protocol

    • new content for JLAMP paper

    • NWPT talk

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-08-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-12-08T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-12-08-network", + "content_html": "

    High-level overview of sprint 49 & sprint 50

    Fixed PeerSelection bug

    Karl Knutsson (Cardano Foundation (CF)) found a bug in\nthe cardano-node-8.7.0 version used on the Sancho Net which was fixed in 8.7.1.\nIt resulted in a node not being able to reconnect to an upstream peer once it\nwas demoted by an asynchronous exception. This bug would be caught by Q&A in\na mainet release, but for testnet releases, Q&A test suite is not used. We also\ndeveloped a test which covers the bug in the ouroboros-network, we also identified\na missing PeerSelection test which we need to port to our simulation network.\nSee ouroboros-network#4734, ouroboros-network#4665.

    Bootstrap Peers

    Still under review, ouroboros-network#4555. The consensus team is now\nimplementing the API we need for bootstrap peers. Once consensus API is implemented we will integrate changes in an experimental branch of\ncardano-node.

    Tx-Submission

    We started working on a new implementation of the tx-submission application. No\ntx-submission protocol changes are foreseen, but we want to be able to\ndownload each tx from just one upstream peer and share the results between\ndifferent connections. We want to distribute the bandwidth between multiple\nclients. We also think that this work will prepare us for the future\nOuroboros-Leios changes, which will contain various versions of tx-submission\nlike mini-protocols. See ouroboros-network#4701.

    Peer Sharing

    Various fixes and improvements were implemented:

    • ouroboros-network#4725

      • disabled peer sharing with initiator-only nodes: currently it's not\npossible to get peers from initiator-only nodes (edge nodes, e.g.\nwallets). In the future, we might change this, which will require running\na server-side of the peer-sharing protocol by such nodes. See\nouroboros-network#4726.
      • fixed peer-sharing codec
      • fixed a handshake bug which returned a wrong peer-sharing option
    • ouroboros-network#4728

      • disabled peer-sharing for NodeToNodeV_11 and NodeToNodeV_12
    • Karl Knutsson (CF) has been working on additional improvements, e.g. ouroboros-network#4735

    With these fixes, Karl Knutsson (CF) was able to see that two peers on the mainnet\ncan discover themselves through peer-sharing and keep being mutually useful\nand thus the connection surviving outbound-governor churn events.

    IOSim

    We improved the memory footprint of IOSim in io-sim#126, see\nouroboros-network#4721 for heap profile improvements on large test cases.

    We are working on optimising the memory footprint of IOSimPOR. We are\nreimplementing VectorClocks using a trie, instead of a map which leads to\nsignificant improvements.

    Cardano-Ping

    cardano-node-0.2.0.10 was released to CHaP, ouroboros-network#4746. This\nversion exports more APIs which turned out to be useful in cardano-node test\nsuite, see cardano-node#5536.

    Technical Debt

    We addressed some small tech-debt issues in ouroboros-network#4722:

    • fixed some typos
    • using bracket instead of onException in withSnocket
    • improved haddocks
    • organised TracePeerSelection constructors

    We improved the memory footprint of some of our tests in ouroboros-network#4721.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-08-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 49 & sprint 50", + "date_modified": "2023-12-08T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-12-08-node-cli-api", + "content_html": "

    2023-11-15 - 2023-12-08

    High level summary

    This is sprint was mostly about bug fixing, code clean-ups and optimizations in preparation for a mainnet suitable release.

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-08-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-12-08T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-12-08-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet was respun to cardano-node 8.7.0-pre, and upgraded to cardano-node 8.7.1-pre shortly afterwards
    • Cardano-node 8.7.2 was released and all environments were then upgraded to 8.7.2
    • Cardano-parts deployed machines were upgraded to nixpkgs 23.11 and nix 2.19.3
    • Cardano-parts resource deployed environments were switched from the use of Terraform to OpenTofu

    Lower level summary

    Capkgs

    • Updated for cardano-node 8.7.2 and process-compose packages: capkgs-compare

    Cardano-parts

    Cardano-ops

    Cardano-playground

    Cardano-world

    • Sanchonet update PR: cardano-world-pull-111
      • Merge the long running sanchonet-updated branch
      • Migrate explorers from ziti to wireguard tunnel usage
      • Remove remaining ziti code and provisioned resources
      • Retire remaining nomad jobs in preference of the cardano-playground environments
      • Downsize the cluster in preference of the cardano-playground environments

    Iohk-nix

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-08-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-12-08T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-12-08-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team made progress by releasing version\n0.14.0,\nincorporating updates and improvements. They also updated dependencies\nin preparation for Conway support, addressing\n#1114.\nAdditionally, the team completed substantial refactoring in hydra-node\nusing stateless observation, aiming to enhance system efficiency and\nperformance\n#1096. Lastly,\nthey investigated regressions related to JSON serialized transactions\nand consider dropping this in favor of CBOR only submission.

    What did the team achieve this week

    • Released version\n0.14.0
    • Updated dependencies to prepare for Conway support\n#1114
    • Completed substantial refactoring in hydra-node using stateless\nobservation\n#1096
    • Investigated regressions about JSON serialized transactions

    What are the goals of next week

    • Analysed our mainnet head and why some transactions were invalid
    • Detect incompatible blocks and provide better UX
    • Update to newer cardano-node and Conway support in hydra-node
    • Draft the end-to-end workflow for incremental decommits
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-08-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-12-08T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-12-06-ledger", + "content_html": "

    High level summary

    This period we reached a major milestone, namely we now have an initial version of Conway\nconformance testing working. We are now able to generate random valid data with the help\nof constraint based testing framework, apply that data to Conway Ledger rules and verify\nthat the output matches to the one produced by the executable version of the Formal Ledger\nSpecification, when it is applied to the same random data.

    We also had a couple of Conway bugs fixed and a few new predicate check implemented. Get\nConstitutional Committee query is complete and tested. Various improvements to the\ntesting tools. Addition of more test cases.

    Low level summary

    Conway

    • pull-3888 - Add checks for valid ProtVer when a proposal is a HardFork
    • pull-3902 - Fix pvCanFollow usage in Conway and improve clarity in Shelley
    • pull-3855 - Remove unreachable proposals
    • pull-3903 - Add lenient decoder for Addr
    • pull-3878 - Committee query - implement next epoch change

    Testing

    • pull-3893 - Move tree-diff dependency to tests together with all instances
    • pull-3896 - Fix Brute force failure
    • pull-3904 - New ListWhere Pred added to the Constrained Solver.
    • pull-3907 - cardano-ledger-conformance: Remove CHANGELOG.md from cabal file
    • pull-3883 - Committee QuerySpec Imp Test
    • pull-3909 - Make impAnn a bit more useful, by making the logs scoped by impAnn
    • pull-3908 - Use upstream testing instances for very basic types
    • pull-3912 - Removed call to tail, and the 'watchPulser' test
    • pull-3852 - Added constrained generators to conformance tests - Part 1

    Improvements and releasing

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-06-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-12-06T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-12-06-mithril", + "content_html": "

    High level overview

    This week, the Mithril team made progress in adapting the Mithril client library for WASM compilation and providing a JavaScript API for it. They also completed the optimization of the aggregator's performance. Additionally, the team initiated the implementation of a testing Mithril network for SanchoNet and conducted threat modeling and risk analysis for P2P networking.

    Finally, they enhanced the developer experience of the Mithril client library by providing ready-to-run examples in the repository and implemented a workflow to manually publish libraries on crates.io.

    Low level overview

    • Worked on the issue Light Wallet: Release mithril-client WASM library #1336
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on Sanchonet #1173
    • Worked on the issue Upgrade breaking changes crates #1357
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue Enhance aggregator REST API performances #1327
    • Completed the issue Signer runtime is stuck for some SPO #1312
    • Completed the issue Make mithril-client examples full crates #1385
    • Completed the issue Manual publication to crates.io with GitHub action #1380
    • Completed the issue Remove sqlite dependency from mithril-client crate #1390
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-06-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-12-06T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-12-04-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: Release benchmarking for node 8.7.0. Also, we performed the first-ever Conway benchmarks.
    • Development: Conway capability of our workload generator has been implemented and merged to master.
    • Infrastructure: Changes to our workbench facilitating easy access and archiving of raw benchmarking data.
    • Tracing: Quality-of-life improvements to tracing output and addition of a test suite.
    • Nomad cluster: Expand the list of benchmarking profiles that can be run on Nomad; generalize cluster topology generation.

    Low level overview

    Benchmarking

    A full set of benchmarks for node 8.7.0 has been performed, with the focus of enabling the next mainnet release. We've measured slight performance improvements of 8.7.0 over 8.6.0, and can confirm no regressions have been introduced.

    Furthermore, we've run system integration level benchmarks in the Conway era for the first time, on the same node version.\nOnly Babbage-compatible workloads have entered comparison as to ascertain performance consequences of only changing the ledger version, and nothing else. The results are very promising, as we could show that switching ledger versions for existing workloads does not come with a performance penalty.

    Development

    Our transaction generator has been extended to be able to submit all present benchmarking workflows in the Conway era.\nCurrently, we're looking into adding Conway-exclusive features, such as DRep registration. Those would be submitted at the very beginning of a run, as we're interested in seeing potential performance implications of maintaining DRep sets of varying size in ledger. Furthermore, this will serve as the basis for future development Conway-exclusive workloads, such as governance actions or vote tallying.

    Infrastructure

    As our workbench will be pivotal in orchestrating and organizing benchmarking runs on the Nomad cloud backend, we've\nimproved how raw benchmark data is tagged, which metadata is documented in an automated manner. This enhances both access to existing run sets, as well as maintaining an archive for benchmarking data.

    Tracing

    The new tracing system is currently receiving usability improvements as we're reworking the output of several trace messages.\nAdditionally, we're setting up a rigorous test suite to provide safety for future development of and component integration inte the system.

    Nomad backend

    We've been working on adapting various benchmarking workloads, which are defined by our workbench's profiles, to running on the new infrastructure. This mainly concerns a workload utilizing Plutus, as well as peer-to-peer flavoured workloads. Furthermore, we're implementing a solution to create all possible cluster topologies algorithmically, instead of still using fixed literal definitions for some cases.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-04-performance-and-tracing", + "title": "Performance & Tracing Update", + "summary": "High level summary", + "date_modified": "2023-12-04T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-12-01-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team conducted a packed Monthly Review meeting,\nfeaturing demonstrations and the preparation of the monthly report. They\naddressed flakiness in tests and enhanced the logs json schema,\nimproving overall test reliability. Additionally, the team successfully\nbuilt MacOS ARM64 (aarch64-darwin) binaries in CI, expanding platform\nsupport. They further improved the network configuration by detecting\nincompatible persisted states, contributing to overall system\nrobustness. Finally, the team released version 0.14.0, highlighting\ntheir commitment to delivering regular updates and improvements.

    What did the team achieve this week

    • Monthly Review\nmeeting\npacked with demonstrations and prepared monthly report\n#1189
    • Fixed several flaky tests and improved the logs json schema\n#1188#1190#1192
    • Built MacOS ARM64 (aarch64-darwin) binaries in CI\n#1182
    • Improved network configuration by detecting incompatible persisted\nstates #1174
    • Released version 0.14.0

    What are the goals of next week

    • Start work on incremental decommit
    • Continue shepherding contributed PRs to completion
    • Finish stateless-observation work
    • Open a head on a Conway network
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-12-01-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-12-01T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-11-29-consensus", + "content_html": "

    High level summary

    The Consensus team implemented and tested a patch that does not propagate future headers.\nIt is under review, and we expect it can be released in the next Cardano node version.\nOn the UTxO-HD front, we finished prototyping the LedgerDB and BackingStore redesign, which is required for the LSM-tree integration and might help us implement a more resource efficient in-memory backend.\nWith this prototype finished we can start integrating the rest of the code.\nWe investigated the unexpected performance degradation observed when acquiring the block context.\nWe also released Cardano node 8.7.0 and moved tree-diff outside cardano-ledger libraries.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-29-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-11-29T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-11-29-mithril", + "content_html": "

    High level overview

    This week, the Mithril team released the initial version of the Mithril client library, enabling developers to integrate core Mithril features into their applications. They also released a new distribution, 2347.0, which includes support for slim certificate production by the aggregator, along with bug fixes and performance improvements.

    The team also introduced the initial version of Cardano/Mithril node communication enhancements, implemented by TxPipe as part of the Catalyst project. They made progress in decentralizing Mithril networks, including testing the Mithril peer-to-peer (P2P) relay on a test network and conducting threat modeling and risk analysis for P2P networking. Additionally, they started working on adapting the Mithril client library for WASM compilation and made progress in optimizing aggregator performance.

    Finally, they fixed inaccuracies in the verbosity level of logs across most nodes and worked on troubleshooting for some users.

    Low level overview

    • Release of the mithril-client library crate
    • Publication of a dev blog post about the released Mithril library
    • Released the new distribution 2347.0
    • Worked on the issue Light Wallet: Release mithril-client WASM library #1336
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Enhance aggregator REST API performances #1327
    • Worked on the issue Signer runtime is stuck for some SPO #1312
    • Completed the issue Support P2P relay in infrastructure #1361
    • Completed the issue Make Cardano node version custom in CI/CD #1355
    • Completed the issue Manually deploy a test Mithril network #1356
    • Completed the issue mithril-client verbosity not following usage menu #1325
    • Completed the issue Error message for mithril-client snapshot download #1375
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-29-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-11-29T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-11-24-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    The team is currently formalising mini protocols and working on a\nperformance modelling paper

    Details

    • completing work on chain sync mini-protocol

    • proof sketch of conformance property of chain sync mini-protocol

    • onboarding new performance modelling intern

    • new content for JLAMP paper

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-24-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-11-24T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-11-24-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team spent significant time opening a head among\nthemselves on mainnet using the release candidate, revealing and\naddressing lurking bugs such as\n#1174. Also\nrequired was this change to dynamically calculate the min utxo value\n#1176, a\nnecessary adjustment following the switch to inline datums. The team\nengaged with cardano-cli / cardano-api maintainers to discuss recent\nchanges and collaborated on drafting feature ideas, including providing\nConway support\nfor the Hydra roadmap. As part of ongoing improvements, they\nexperimented with writing the specification in markdown instead of\nLaTex.

    What did the team achieve this week

    • Opened head among us on mainnet and uncovered a few lurking bugs like\n#1174 in the\nrelease candidate
    • Calculate the min utxo value instead of hard-coding it\n#1176, which is\nneeded since we switched to inline datums.
    • Met with the cardano-cli / cardano-api maintainers to discuss\nrecent changes and way forward
    • Drafted features ideas to provide Conway\nsupport on the\nHydra roadmap
    • Experimented in writing the specification in markdown instead of LaTex

    What are the goals of next week

    • Have the Monthly review meeting with several demos
    • Release version 0.14.0 with this\nscope
    • Complete tidying up chain layer via stateless observation changes in\nhydra-node\n#1096
    • Update dependencies to prepare for Conway\n#1114
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-24-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-11-24T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-11-24-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • The cardano-node nixos service now supports SIGHUP p2p topology reloading when the useSystemdReload option is enabled

    Lower level summary

    Capkgs

    • Update cardano-db-sync and offchain-metadata-tools package paths and/or references: capkgs-compare

    Cardano-node

    • Optionally have cardano-node nixos service utilize SIGHUP p2p topology reload: cardano-node-pull-5537
      • Creates a useSystemdReload bool option for the cardano-node nixos service
      • This will move the topology file(s) to /etc/cardano-node/topology-$i.yaml and inject systemd reload hooks for p2p configured cardano-node instances
      • Moving topology files to /etc also allows for manual topology updates when a quick test is needed and full service re-deployment isn't desired

    Cardano-parts

    • Adds a metadata server profile and a number of other features and improvements: cardano-parts-pull-20
      • Adds a new metadata-service profile
      • Adds metadata service and pkg configuration options for cardano-groups to utilize the metadata-server profile
      • Adds a cardano-webserver profile for multiple virtualHosts and TLS ACME server aliases for a cluster's static needs, with each cached behind varnish
      • Adds extra node list producers and public producers for cardano-node-topology profile
      • Adds delegation amounts to cardano-postgres psql prepared query show_pools_block_history_in_epoch
      • Adds select systemd metrics reporting to grafana-agent profile
      • Adds a bookRelay multivalue DNS option to disambiguate with groupRelay multivalue DNS
      • Adds an opsLib library to the cardano-parts lib flakeModule and refactors some common code into it
      • Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo
      • Adds job-gen-env-config for both release and pre-release configuration files to support configuration book generation
      • Adds support for grafana recording rules in the template files
      • Improves cardano-group profile handling of producers with respect to multiple instance nodes
      • Improves grafana-agent profile metrics handling for multi-instance cardano-node servers
      • Improves smash service preStart handling while waiting for a node socket
      • Updates Justfile for ERA_CMD demo support
      • Migrates default grafana cloud node exporter, varnish alert and recording rules to grafana alert and recording rule templates
      • Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile
      • Defaults cardano-postgres profile psqlrc use to false

    Cardano-playground

    • Adds a new testnet metadata server, cluster webserver, and other improvements: cardano-playground-pull-6
      • Adds a new metadata server
      • Adds a new webserver for the cluster's static virtualhost needs
      • Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo
      • Adds systemd metrics monitoring to the cluster
      • Resizes sanchonet machines to support the growing chain
      • Completes migration of preprod from world
      • Updates groups to utilize both bookRelay and groupRelay multivalue DNS attributes
      • Updates Justfile for ERA_CMD demo support
      • Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile
      • Migrates book static code to playground from world, with refactor, cleanup and updates
      • Migrates default grafana cloud node exporter, varnish alert and recording rules to declarative grafana alert and recording rules

    Offchain-metadata-tools

    • Adds db password option with obfuscation plus misc improvements: offchain-metadata-tools-pull-61
      • Adds db password connection option and obfuscates passwords in output for metadata server, sync, webhook services
      • Updates the nixos service for metadata-webhook service to optionally use an environmentFile for secrets: cfg.environmentFile
      • Moves from std use in the nix flake to standard flake schema
      • Fixes hydra CI failures
      • Builds update-docs in hydra to avoid long local build times
      • Removes deprecated tullia
      • Removes deprecated check-hydra from pkgs
      • Removes deprecated bors files and references
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-24-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-11-24T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-11-22-ledger", + "content_html": "

    High level summary

    Last two weeks progress was mainly on testing, bug fixes and improvements to clarity of\nCDDL specification. Important bugfixes include:

    • Fix deserialization of ValueNotConservedUTxO predicate failure that could not\npreviously report zero ADA.
    • Fix deserialization of CostModels in the PParamsUpdate. Invalid CostModels are no\nlonger allowed, only CostModels for unrecognized Plutus versions are allowed starting\nwith Conway
    • Fix returning of Deposits for ProposalProcedures

    Testing tooling has been improved and new tests have been implemented for Conway era.

    Low level summary

    Conway

    • pull-3858 - Restructure computing Refunds and Deposits in a TxBody across all eras
    • pull-3860 - Removed mock/crypto.cddl, added optional tag to sets
    • pull-3864 - Fix Proposal deposits and add deposit tests to imp tests
    • pull-3859 - Rename ProposalsSnapshot to Proposals
    • pull-3867 - MaryValue fixes
    • pull-3869 - Indicate that tag 258 is optional for OSet. Fix rational CDDL
    • pull-3863 - Improve deposits refunds re-usability
    • pull-3861 - Fail PParamsUpdate deserialization for invalid costmodels in Conway
    • pull-3875 - Fix cddl spec for CostModels in Conway
    • pull-3876 - Change 4 PParam fields from EpochNo to EpochInterval
    • pull-3884 - Relax requirement on the Set tag 258 to be enforced in the next era

    Testing

    • pull-3868 - Improvements to support property tests on Traces with simple Tx with DRep related Certs
    • pull-3792 - RATIFY and GOV constraint tests
    • pull-3885 - Added a test for genTxAndNewEpoch
    • pull-3886 - QuickCheck Imp integration

    Improvements and releasing

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-22-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-11-22T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-11-22-mithril", + "content_html": "

    High level overview

    This week, the Mithril team made progress in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, completing the first prototype implementation of the Mithril relay, which enables P2P signature broadcasting. They also made progress in optimizing the performance of the aggregator. Additionally, the team completed some enhancements on the CI/CD that will help manually deploy experimental Mithril networks for SanchoNet, as well as for the new P2P network layer.

    Finally, they investigated occasional runtime issues causing delays for certain SPOs and started preparing for the next distribution release.

    Low level overview

    • Completed the issue Prototype a P2P relay with libp2p #1326
    • Worked on the issue Enhance aggregator REST API performances #1327
    • Worked on the issue Signer runtime is stuck for some SPO #1312
    • Completed the issue Manually deploy a test Mithril network #1356
    • Completed the issue Make Cardano node version custom in CI/CD #1355
    • Worked on the issue Support P2P relay in infrastructure #1361
    • Completed the issue mithril-client fails to extract archive #1352
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-22-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-11-22T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-11-20-cip1694", + "content_html": "

    High level summary

    We have undertaken an initial high-level security analysis of the CIP-1694 design. We summarise the analysis and our responses here.

    Initial CIP-1694 Security Analysis and Responses

    Section: The constitutional committee


    • “For example, if we consider the hypothetical Constitution rule \"The Cardano network must always be able to produce new blocks\" - In this example, if the governance action to reduce block size to 0 is passed, then there will be no way of passing or enacting further proposals. That is, this governance action is completely non-reversable. Suggestion: Instating a built-in mechanism that checks (and perhaps enforces) that the proposed governance actions, if passed, can be reverted in the future.

    There is a 'guardrails document' in preparation which captures issues such as these. Some of them may be automatable, as suggested; others will need to be evaluated by humans.


    Section: Size of the constitutional committee


    • A possible issue with very large committee sizes (or large number of proposals/voters in general) is that it may take longer to have votes appear on-chain, which in extreme cases may require longer voting periods.

    Thanks. Yes, we’ve been thinking about this issue for a long time, see for example the section ‘Final safety measure, post bootstrapping’. We don’t consider this as an issue for the CC since they need to be elected while DReps can just register, so we expect the number of CC members to be much less than the number of DReps


    Section: Terms


    • The following sentence is a bit awkward to read: “For example, a committee of size five with a threshold of 3/5 a minimum size of three and two expired members can still pass governance actions if two non-expired members vote Yes.” —> Suggestion: “For example, if we have a committee of size five with a threshold of 3/5, then a committee of three non-expired and two expired members can still pass governance actions if two non-expired members vote Yes.”

    Thanks. Yes, that suggestion is a bit easier to read.


    Section: Registered DReps


    • “Additionally, registered DReps will need to vote regularly to still be considered active.” - There is a minor issue with requiring “voting regularly”. That is, if there are no proposals to vote on for a long time, this means that no DRep can vote regularly (or they have to issue bogus proposals just to vote on them).

    Thanks. We’ve added a mechanism to prevent that issue in the spec/code where if there’s nothing to vote on for an entire epoch, we increment the epoch that each DRep expires.


    Section: Ratification


    • It is a bit unclear why protocol changes: network group and technical group are two separate groups.

    These correspond exactly to the groups that are administered by the Parameter Committee.


    • I didn’t understand the rationale for requiring 100% “Yes” votes to pass “Info” type governance actions? It seems they have the least potential to harm the system.

    Yes, it’s not about harming the system, since Info\nactions have no direct effect on the operation of Cardano. The motivation is simply to record the actual level of support for the action.

    Once an action is enacted it’s no longer possible to vote on it. So if there was e.g. a threshold of 50%, then there is no way of telling whether the support for it might eventually have reached 90% or higher if it was not immediately enacted when the threshold was reached.


    Section: Content


    • For Hard-fork initiation, the changed parameters should probably also be required as part of Additional data.

    Protocol parameters can be changed in arbitrary ways by the hard fork and new ones might be introduced, so anything this action pins down might not actually be the value that will be present after the hard fork.


    Section: Protocol Parameter groups


    • It is a bit unclear to the reader what some of these parameters mean, for example: monetary expansion (rho) and treasury expansion (tau). Suggestion: Include brief explanations for the non-obvious parameters.

    These are existing protocol parameters, described in e.g. https://cips.cardano.org/cips/cip9/9 or The Cardano Protocol Parameters Guide.


    • With the current set of governance actions, it seems that it is not possible to add new types of protocol parameters, or categories of governance voting thresholds. Suggestion: Consider possibility of incorporating governance actions that allow addition of new protocol parameters, deletion of defunct protocol parameters, or modification of governance voting threshold categories.

    All of this needs to be done via a hard fork. If we had an action that added a parameter then there is no way of giving it semantics anyway, since that must be done by logic in the code.


    Section: Votes


    • Is a constitutional committee member also a DRep? If so, do they vote twice, once as a committee member and once as a DRep?

    They may or may not be (and they could also be an SPO). Note that this is fine, since these are completely separate tallies. This is also not preventable, since we don’t have an on-chain mechanism for identity. And yes, each credential gets to vote on each action for all roles in the governance system it has.


    Section: Separation of Hard Fork Initiation from Standard Protocol Parameter Changes


    • It is unclear whether there would be automated checks for whether a proposal is indeed a soft fork or hard fork, which would reduce human error in categorising proposals.

    There is no on-chain mechanism that could enforce this, the best we could do is some kind of certificate. However, this may not be trustworthy, of course. We will consider this in future versions of Voltaire.


    Section: Changes post Edinburgh workshop (July 2023)


    • “All governance actions are enacted one epoch after they are ratified.” - I’m not sure if this line is currently in the main body of the CIP?

    It is, but it is phrased differently: ‘All governance actions are enacted on the epoch boundary after their ratification.’


    Section: Reduced deposits for some government actions


    • Another downside of requiring endorsement from the constitutional committee is that this likely does not apply to constitutional committee-related proposals, such as no-confidence votes.

    Indeed. We have no plans for this at the moment.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-20-cip1694", + "title": "Initial CIP 1694 Security Analysis and Responses", + "summary": "High level summary", + "date_modified": "2023-11-20T00:00:00.000Z", + "author": { + "name": "Kevin Hammond", + "url": "https://github.com/kevinhammond" + }, + "tags": [ + "ledger", + "cip1694", + "security" + ] + }, + { + "id": "2023-11-17-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team made several impactful updates. They addressed\nmisleading errors regarding collect com transactions, resolved a security\nadvisory (CVE-2023-42806), and simplified the Hydra Head protocol by using\ninline datums. The team also tackled minor inconsistencies in specifications and\nimplementation, documented reasons for potentially dropped close transactions by\nthe cardano-node, and collaborated with SundaeLabs on an offline mode for\nhydra-node. Additionally, they engaged in discussions with researchers about\nincremental de-/commits.

    What did the team achieve this week

    • Removed misleading errors about collect com transactions #839
    • Addressed security advisory CVE-2023-42806 in PR #1161
    • Changed the head protocol to use inline datums, simplifying things in the hydra-node #1162
    • Addressed minor inconsistencies in spec and implementation #1104
    • Documented why close transacations might be dropped by the cardano-node (cant fix) #1039
    • Tidy up a few things here and there
    • Worked with SundaeLabs on the offline mode for hydra-node
    • Discussed incremental de-/commits with researchers

    What are the goals of next week

    • Start work on incremental decommits protocol specification #1057
    • Provide support to Hypix
    • Address all open bugs
    • Release version 0.14.0 with this scope
    • Update dependencies to prepare for Conway #1114
    • Shepherd off-line mode PR over the finish line
    • Complete tidying up chain layer via stateless observation changes in hydra-node #1096
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-17-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-11-17T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-11-17-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: Release benchmarking for node 8.6.0 as well as benchmarks scrutinizing GHC versions and the new tracing system.
    • Development: PlutusV3 capability of our workload generator has been implemented.
    • Tracing: First round of optimization of the cardano-tracer service has completed, awaiting validation.
    • Nomad backend: A significant PR has landed addressing automation features and debugging capabilites.
    • Workbench: Configurable remote environments and improvements to run documentation have been merged to master.

    Low level overview

    Benchmarking

    We've performed and analyzed a full set of benchmarks for node 8.6.0, both in comparison to recent release tags\nand mainnet version 8.1.2. A lot of development work has entered the system since then, so it is crucial\nwe can rule out any potential performance risks for the next mainnet release.

    Additionally, we've been benchmarking GHC9.6.3 builds of cardano-node. Overall, we've observed reliable optimization behaviour by that compiler version - which is much more in line with expectations than what we've seen on GHC9.2.7. Getting evidence on how predictable (and malleable, by code annotations) performance is when building with a certain compiler version is essential for settling on a version as supported release platform.

    A last set of benchmarks was dedicated to the new tracing system with node 8.6.0. We were able to show that\nthere is no performance risk to enabling the new system, even when forwarding all trace messages to a cardano-tracer\nservice on the receiving end. Key metrics for block forging, as well as block diffusion, did not exhibit any regression.

    Development

    For future benchmarks to be built around PlutusV3, we've equipped our transaction generator with basic integration and tests for the upcoming Plutus version. This enables us to target the new cost model and potential changes\nto the execution budgets by developing specialized workloads.

    Tracing

    The cardano-tracer service has received its first batch of optimizations. Profiling output is promising; to measure\nperformance for a long service run time, we're currently equipping the service binary with the same capability to\nemit regular resource traces as cardano-node. Analysis of those will be the basis for validating this and possible future optimization efforts.

    Nomad backend

    Many improvements for the nomad backend have been implemented and merged to master. This encompasses a unified naming schema for all nomad profiles, improved internal management of cluster topology, a more fine-grained healthcheck service,\nmore detailed automated documentation of underlying hardware, as well as lazy resource release. The latter enables\nour team to investigate and debug interrupted runs for the exact moment and in the exact cluster state a potential failure occurred.

    Workbench

    Our performance workbench has seen upgrades in documenting and reporting cardano-node builds. This ranges from capturing package versions and commit ids of key dependencies, to querying a deployed node for its build compiler.\nWhen alternating between compiler versions and benchmarking custom built branches, automating such documentation is essential.

    Furthermore, the workbench is now able to access several remote deployments on all active clusters. This allows for fetching data, analyzing, comparing and reporting on all benchmarks from just one centralized workbench instance.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-17-performance-and-tracing", + "title": "Performance & Tracing Update", + "summary": "High level summary", + "date_modified": "2023-11-17T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-11-16-network", + "content_html": "

    High-level overview of sprint 48

    Bootstrap Peers

    We continued reviewing bootstrap peers, ouroboros-network#4555.

    IOClasses / IOSim

    We prepared slides for a Haskell meetup were we presented a talk on IOSimPOR.\nThe recording will be availble on YouTube.

    We also used the opportunity to do some refactoring of the IOSim code base: io-sim#117.\nWe released io-sim-1.3.0.0 on Hackage: io-sim#119.

    We also added forkFinally to MonadFork (not included in 1.3.0.0 release): io-sim#123.

    Tech debt

    We refactored Resource used by the DNS subsystem: ouroboros-network#4707.\nWe continued reviewing the ouroboros-network#4625 PR, which refactors\nRootPeersDNS module.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-16-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 48", + "date_modified": "2023-11-16T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-11-15-consensus", + "content_html": "

    High level summary

    Over the last two weeks, we managed to run a UTxO-HD capable node in legacy mode, which maintains the baseline memory usage while keeping all the ledger state in memory (as the current node does).\nThis legacy mode could provide an alternative for releasing a UTxO-HD capable node where people can choose whether to store the large part of the UTxO set on disk or not.\nHowever, legacy mode involves code duplication, requires several weeks of work before it is production ready (more integration and testing). Moreover, we will not release UTxO-HD before Conway to avoid the risk of delaying the latter.\nOn the other hand, to integrate the LSM-tree backend for UTxO-HD we need to redesign the Consensus storage layer, and this new design might enable us to implement an alternative in-memory backing store that will have a very similar performance and resource requirements as the current Cardano node.\nTherefore, during the coming months we will focus our efforts on the redesign of the storage layer and the LSM-tree backend.

    On the Genesis front, we reviewed the peer simulator for Genesis tests, which was implemented by Tweag and was signed-off by the Consensus team.

    We also continued our work on improving the handling of blocks from the future. We presented possible approaches to handling blocks from the future in the Chief Scientist Meeting at IOG, which was very well-received. The discussion with the IOG scientists touched upon the relationship of this approach to Ouroboros Chronos.

    Javier Sagredo continues his cycle as release engineer, and he is working on version 8.7 of Cardano node.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-15-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-11-15T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-11-15-mithril", + "content_html": "

    High level overview

    This week, the Mithril team completed the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof-of-concept, achieving the implementation of P2P signatures broadcast with the relay in the end-to-end tests. Additionally, the team completed the proof-of-concept for the deterministic computation of the UTXO/transactions set from the immutable files.

    Finally, they continued addressing some performance issue associated with the 'release-mainnet' aggregator, and fixed a bug with the tool used to process batch certificate hash re-computation.

    Low level overview

    • Worked on the issue Prototype a P2P relay with libp2p #1300
    • Completed the issue Light Wallet: Release mithril-client library #1311
    • Completed the issue Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283
    • Completed the issue release-mainnet aggregator is unreachable #1310
    • Completed the issue Fix certificate hashes re-computation in aggregator #1343
    • Completed the issue Remove unstable tag in unstable release #1235
    • Worked on the issue Enhance aggregator REST API performances #1327
    • Worked on the issue Signer runtime is stuck for some SPO #1312
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-15-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-11-15T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-11-14-node-cli-api", + "content_html": "

    2023-11-01 - 2023-11-14

    High level summary

    CARDANO-NODE

    CARDANO-CLI

    • Improve golden tests
    • Clean-up of conway era commands

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-14-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-11-14T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-11-10-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    The team is currently formalising mini protocols and working on a\nperformance modelling paper

    Details

    • completing work on chain sync mini-protocol

    • specifying correctness property of chain sync mini-protocol

    • creating diagrams for JLAMP paper

    • finalising structure of JLAMP paper

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-10-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-11-10T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-11-10-hydra", + "content_html": "

    High-level summary

    The last two weeks, the Hydra team achieved several milestones. They published\nthe monthly report for October, providing updates on project developments. The\nteam delivered a presentation and workshop at the Cardano Summit, contributing\nto community engagement. They implemented a \\\"dirt road\\\" solution for the\n\\\"Ignored init tx\\\" notification and moved the hydra-poll example project to a\ndedicated repository. Additionally, the team built a hydra-chain-observer tool\nfor Hydra Heads, updated the toolchain to GHC 9.6.3, and made various\nimprovements to tooling and code formatting. They addressed specific issues,\nsuch as fixing the gen-hydra-keys command and resolving concerns with the\nrewritten hydra-tui. The team also enhanced the hydra-cluster smoke test\nsuite by fetching network configurations dynamically. Lastly, they actively\nreviewed pull requests and architectural decision records from the community,\nincluding contributions from SundaeSwap. An experiment, the Hydra tally, was\ncompleted and successfully deployed to the mainnet by the Cardano Foundation.

    What did the team achieve this week

    • Published the monthly report for\noctober
    • Given a presentation / workshop at the Cardano summit\n#1109
    • Dirt road implementation for \\\"Ignored init tx\\\" notification\n#529 (without\nstateless observation)
    • Completed and moved hydra-poll example project into a\ndedicated\nrepository
    • Built a first version of a chain observation tool for Hydra Heads\n#1096
    • Switched toolchain to GHC 9.6.3 and various improvements on tooling\nand code formatting\n#1135#1152#1151#1154
    • Fix gen-hydra-keys command to not overwrite existing\nkeys #1136
    • Fixed the rewritten hydra-tui#1113#1137
    • Fetch network configurations instead of packaging them into\nhydra-cluster (smoke) test suite\n#1156
    • Reviewing PRs and ADRs from the community (SundaeSwap)\n#1118#1157
    • Hydra tally experiment (Cardano Foundation) deployed to mainnet

    What are the goals of next week

    • Tackle reported bugs
    • Shepherd contributed off-line mode PR to the main codeline
    • Improve chain observation tool to include more data and refactor\nexisting code towards more stateless observation
    • Start work on incremental decommits
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-10-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-11-10T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-11-10-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-world testnets of preprod, preview, sanchonet and some private test chains have largely completed their migration to the cardano-playground stack

    Lower level summary

    Capkgs

    Cardano-parts

    • General migration support PR for cardano-world to cardano-playground cardano-parts-pull-18
      • Iohk-nix and iohk-nix-ng were updated support the migration of cardano-world networks to cardano-playground
      • Sops-secrets dependent systemd services were fixed to ensure restart upon sops secrets changes
      • Db chain utilities (db-{analyser,synthesizer,truncater}) had -ng variants created to operate on both release and pre-release network chains
      • The profile-cardano-postgres nixos module received preset variables and prepared statements via pgsqlrc for faster and easier analysis of network state
      • The flakeModule jobs now has support for the cardano-cli era command in each of the job scripts by passing the $ERA_CMD variable
      • Default cardano-node-ng package is now 8.6.0-pre, dbsync on sanchonet is now sancho-2-2-0
      • For scripts using a nix-shell shebang, the cardano-parts devShell menu can be disabled from injecting itself into stdout by passing NOMENU=true
      • Template updates include:
        • Adds optional TF AZ declaration on ec2 resources
        • Adds a cardano node p2p dashboard to the grafana cloud stack
        • Adds a dbsync pool performance analysis query
        • Updates python distribute and delegation scripts from world for playground compatibility
        • Starts a python script lib to reduce shared code among the python scripts
        • Several justfile improvements and new recipes
      • More detail is available in the PR description
    • Update submit action script for 8.6 cardano-parts-pull-19
    • Update scripts for 8.6.0-pre cardano-parts-pull-21
      • Fixes subcommand names based on ERA_CMD
      • Adds deposits to some commands
      • Separates CC cold/hot key generation as host authorization has to occur after action is approved
      • CC voting enabled in vote job

    Cardano-playground

    • Migration PR to largely complete the network migration from cardano-world to cardano-playground: cardano-playground-pull-5
      • Adds re-spun private chain network
      • Migrates shelley-qa chain network from world
      • Justfile improvements and new recipes
      • Improve concurrent environment chain support
      • More detail is available in the PR description

    Iohk-nix

    • Migration to play: iohk-nix-pull-561
      • Migrate cardano-lib networks from world.dev.cardano.org to play.dev.cardano.org
      • Remove deprecated cardano-lib p2p network environment
      • Update sanchonet chain with respin changes
      • Update private chain with respin changes
      • Bump private and shelley-qa chains to sanchonet equivalent conway genesis
      • Bump preview, preprod chains to sanchonet equivalent conway genesis for node 8.6.0-pre pre-release testing

    Sanchonet-demo

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-10-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-11-10T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-11-09-db-sync", + "content_html": "

    High level summary

    We have created new tag sancho-2-2-0, which integrates missing Conway feautures and some minor fix\ntags sancho-2-1-0, sancho-2-0-1.\nWe have completed the initial implementation for the bootstrap instance objective.

    Lower level summary

    • Add a new --disable-gov flag which disabled Conway ferautures\n#1558
    • Fix of the committee key size\n#1544
    • Workaround a ledger issue with unregistered pools\n#1542
    • Implemented a mechanism that loads the UTxO from the ledger resulting is way faster syncs\n#1539
    • Rename offline to offchain\n#1533
    • Transfer existing tests to Conway era\n#1529#1547
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-09-db-sync", + "title": "DB-sync Team Update", + "summary": "High level summary", + "date_modified": "2023-11-09T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2023-11-08-ledger", + "content_html": "

    High level summary

    This update contains mostly improvements to quality of Conway era implementation and\ntooling that we use for testing Ledger. Major Conway bugs that were discovered and\nsquashed are:

    • PParamsUpdate proposals will now correctly use DRep thresholds for ratification
    • Treasury withdrawals are now properly enacted.
    • Corrected snapshotting and DRep Stake Distribution Pulser initialization
    • Delegation to non-existent Stake pool is no longer possible

    Other important quality of life improvements are addition of reusable interfaces for an\nordered set OSet and ordered map OMap. Which allowed us to disable duplicate\ncertificates and proposals in a transaction. As a precursor to PlutusV3 integration, a\nserious reorganization of Plutus related functionality was performed.

    Conway related additions that are noteworthy: Conway Ledger events, disallowing voting on\nexpired proposals, addition of Anchor to Constitutional Committee resignation proposals.

    Significant improvements have been made to a specialized \"Imp\" test library that allows us\nwriting concise stateful unit tests for verifying the Ledger logic. Serious progress has\nbeen made on the conformance testing, where we can now interface with Haskell generated\ncode from the Agda specification. Serialization testing has been extended to increase\nbinary conformance coverage.

    Low level summary

    Conway

    • pull-3808 - Enhance CommitteeMembersState query to return quorum and NoConfidence
    • pull-3801 - Fix epoch rule and tests
    • pull-3803 - Fix delegation validation
    • pull-3759 - Reshuffle things to the DRepPulser incorporates some snap shot things
    • pull-3779 - Prevent duplicate certs and proposals
    • pull-3794 - Added anchor to resign certs
    • pull-3797 - Cleanup JSON instances for Conway governance
    • pull-3848 - Plutus modules restructure
    • pull-3840 - Fix anomalies in Deposits in the Conway Era
    • pull-3856 - Add governance related ledger events
    • pull-3825 - Prevent voting on expired GovActions
    • pull-3831 - Treasury withdrawal fix
    • pull-3791 - Use a Data.OMap.Strict to replace ProposalsSnapshot
    • pull-3836 - PParamsUpdate enactment fix
    • pull-3846 - Revert argument order swap.

    Testing

    • pull-3782 - Move ImpTest to Shelley testlib
    • pull-3842 - Imp improvements
    • pull-3844 - Add mappings to Agda types
    • pull-3853 - Fix strange assertion failure, which hides real Block too big problem.
    • pull-3809 - CDDL roundtrip testing
    • pull-3832 - Treasury withdrawals tests
    • pull-3839 - Added cardano-ledger-conformance
    • pull-3841 - Add sha256 to cardano-ledger-executable-spec

    Improvements and releasing

    • pull-3843 - Add ...WithLogs versions of evalScripts and friends
    • pull-3795 - Bump plutus to 1.15
    • pull-3798 - Bump urllib3 from 1.26.17 to 1.26.18 in /doc
    • pull-3799 - Changes needed for 8.6 release
    • pull-3807 - Add invalidBeforeL and invalidHereAfterL functions
    • pull-3819 - Fixups needed for a release
    • pull-3829 - Post release CHANGELOG version bumps
    • pull-3830 - Bump aeson to 2.2
    • pull-3833 - Backport release cardano-ledger-conway-1.10.1.0
    • pull-3828 - Add changelog for node release 8.6
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-08-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-11-08T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-11-08-mithril", + "content_html": "

    High level overview

    This week, the Mithril team continued working on completing the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, achieving the implementation of a very basic working demo with a peer-to-peer publish-subscribe (pub-sub) mechanism. Additionally, the team continued working on the deterministic computation of the UTXO/transactions set from the immutable files.

    Finally, they resolved the naming issue of the Docker package responsible for storing images of the new Mithril client CLI, and continued addressing a performance issue associated with the 'release-mainnet' aggregator.

    Low level overview

    • Worked on the issue Prototype a P2P relay with libp2p #1300
    • Worked on the issue Light Wallet: Release mithril-client library #1311
    • Worked on the issue Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283
    • Worked on the issue release-mainnet aggregator is unreachable #1310
    • Completed the issue Client Docker package is incorrect #1322
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-08-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-11-08T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-11-01-consensus", + "content_html": "

    High level summary

    This week the Consensus team made progress on two fronts: the question of survivable eclipse duration, which is part of our work supporting Genesis delivery, and how to improve the handling of blocks from the future.\nRegarding the UTxO-HD branch, we managed to run a node with legacy blocks, which is syncing with mainnet, up to including Alonzo.\nWe also investigated a regression in mempool snapshotting, which was ultimately solved by a Ledger update, and will be fixed in the upcoming Node 8.6 release.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-01-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-11-01T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-11-01-mithril", + "content_html": "

    High level overview

    This week, the Mithril team kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept. They progressed with the adaptation of the Mithril client as a library, and worked on its full WASM compatibility in a proof of concept. The team kept working on the deterministic computation of the transactions from the immutable files, and fixed some unreachability issue on the release-mainnet aggregator.

    Finally, they implemented new Docker images that build the Mithril nodes on the 'devnet' faster and fixed some regressions in the Mithril client CLI.

    Low level overview

    • Worked on the issue P2P Networking - Proof of Concept #1300
    • Completed the issue Build mithril-common and mithril-client in WASM PoC #1284
    • Completed the issue Fix devnet Mithril Docker images [#1272](https://github.com/input-output-hk/mithril/issues/1272
    • Worked on the issue Light Wallet: Release mithril-client library #1311
    • Worked on the issue Compute deterministic Cardano UTxO set PoC #1283
    • Worked on the issue release-mainnet aggregator is unreachable #1310
    • Completed the issue Client regressions in snapshot list and download #1321
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-11-01-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-11-01T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-10-27-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    The team is currently formalising mini protocols and writing a paper\non performance modelling

    Details

    • completing work on chain sync mini-protocol

    • outline for JLAMP journal paper submission

    • analysing timeouts

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-27-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-10-27T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-10-27-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team fixed the gen-hydra-keys command to avoid\noverwriting existing keys, and resolved issues related to the rewritten\nhydra-tui. They also worked on a \\\"dirt road\\\" implementation for the\n\\\"Ignored init tx\\\" notification, improving the robustness of the system.

    The team finalized preparations for the Cardano Summit presentation, including\nimplementation of the hydra-poll example DApp.

    If you happen to read this and attend the Summit in Dubai, make sure to check\nout our Masterclass about \\\"Developing Hydra + Mithril for Scaling Cardano\\\" on\nFriday, November 3 at 14:00-15:30 local time in the \\\"Al Dar\\\" room!

    What did the team achieve this week

    • Fix gen-hydra-keys command to not overwrite existing keys\n#1136
    • Fixed the rewritten hydra-tui#1113#1137
    • Finalized cardano summit preparation\n#1109
    • Implemented the hydra-poll example DApp link to\nrepository
    • Dirt road implementation for \\\"Ignored init tx\\\" notification\n#529

    What are the goals of next week

    • Attend cardano summit and deliver presentation
    • Clarify / close user created issues
    • Build aarch64-darwin binaries in CI
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-27-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-10-27T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-10-27-network", + "content_html": "

    High-level overview of sprint 47

    Bootstrap Peers

    We continued to review the process of bootstrap peers, see ouroboros-network#4555

    CI / Tests

    We investigated our CI issues. We found a memory leak in typed-protocols\nfunction used for testing codecs which triggered out of memory manager (OOM) on\nsome platforms (typed-protocols#43); we also found a bug in the connection manager which resulted in CI\ntimeouts (see connection-manager-fix).

    KeepAlive client

    We found two small issues with the keep-alive client, which were addressed\nby Karl Knutsson (Cardano Foundation), ouroboros-network#4689.

    Galois

    We merged two large PRs prepared by Galois:

    Cardano Network Service Assurance (CNSA)

    Galois made the following progress on CNSA:

    • a simple [InfuxDB] database backend has been added;
    • the documentation has been updated;
    • internal improvements to the code;
    • progress on a new \"CSNA analysis\" that provides, for each sampler node, the\nblock download throughput in bytes over time.

    New CHaP Release

    We cut a new release of ouroboros-netowrk packages to CHaP: chap#547

    More details

    CI / Tests

    We improved the memory footprint of some of our tests by analysing a stream of\nIOSim traces without retaining them, see ouroboros-network#4696

    As a safety measure, we introduced an upper bound for heap memory used by test\nartefacts in our nix tests. We use 200MB limit for all tests except for\nnetwork-mux tests which use 350MB limit, see ouroboros-network#4702.

    We refactored one of our tests to use ephemeral ports thus allowing it to\nrun concurrently, see ouroboros-network#4702.

    We merged ouroboros-network#4623 which fixes a bunch of test failures.

    All of them were due to a bug in test logic rather than a bug in production\ncode.

    Release Process

    We updated our release process & associated scripts, see\nouroboros-network#4705.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-27-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 47", + "date_modified": "2023-10-27T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-10-27-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-world testnets of preprod, preview, sanchonet and some private test chains are in the process of being migrated to the cardano-playground stack

    Lower level summary

    Capkgs

    • Adds offchain-metadata-tools, dbsync sanchonet updates: capkgs-compare

    Cardano-parts

    • General package updates, modules improvements and template recipes to support network migration from world to playground cardano-parts-pull-17
      • Bumps cardano-db-sync-ng to sancho-2-0-0 tag
      • Bumps iohk-nix-ng to mig-sancho branch for sanchonet pool migration from world to play
      • Adds more machine system bins and devShell bins for scripting and debug purposes
      • Adds cardano-show-kes-period alias on any node machine importing profile-cardano-node-group module
      • Adds profile-cardano-node-topology module for a simplified interface to most common topology needs
      • Adds a job-delegate-rewards-stake-key job as an optional follow on to pool creation and registration jobs
      • Adds a topology function to filter self from group machines with an allowList for matching infixes
      • Adds metadata-server and related offchain-metadata-tools bins from capkgs
      • Updates justfile template with:
        • a new query-all recipe for getting status of multiple concurrent running environments
        • a new set-default-cardano-env recipe for fast switching between environments
        • a new start-demo recipe for forking a custom env into conway
        • a new start-node recipe for generic environment start
        • a new stop-node recipe for generic environment stop
        • updated list-machines recipe for handling of empty nixos machine config and empty ssh_config conditions
        • updated query-tip recipe to a generic query tip compatible with each environment

    Cardano-playground

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-27-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-10-27T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-10-25-mithril", + "content_html": "

    High level overview

    This week, the Mithril team released a new distribution 2342.0. This release includes support for SPO tickers displayed in the Mithril explorer and the ability to produce slim Docker images for Mithril nodes.

    They also kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, progressed with the adaptation of the Mithril client as a library, and worked on the deterministic computation of the UTXO set from the immutable files.

    Finally, they fixed the bottleneck of the key registration in the aggregator, investigated some unreachability on the release-mainnet aggregator, and enhanced the Mithril explorer UI.

    Low level overview

    • Worked on the issue P2P Networking - Proof of Concept #1300
    • Completed the issue Make mithril-client crate a library #1141
    • Worked on the issue Compute deterministic Cardano UTxO set PoC #1283
    • Completed the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
    • Worked on the issue Fix devnet Mithril Docker images #1272
    • Worked on the issue release-mainnet aggregator is unreachable #1310
    • Worked on the issue Build mithril-common and mithril-client in WASM PoC #1284
    • Completed the issue Display a summary of signers before the full list in explorer #1133
    • Completed the issue Add certificates list in explorer #1184
    • Completed the issue CoreVerifier setup does not compute total_stake correctly #1306
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-25-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-10-25T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-10-24-node-cli-api", + "content_html": "

    2023-10-11 - 2023-10-24

    High level summary

    CARDANO-CLI

    • Disambiguate cardano-cli stake credential related flags on treasury withdrawal governance actions making it easy to identify which is used for the deposit refund and which for the destination of the funds from the treasury if the action is ratified.
    • stake-address-info now shows deposits balance.
    • Added conway governance action view to allow to inspect governance action files before submitting them on a transaction.
    • build-raw support for --vote-file and --proposal-file

    CARDANO-API

    • Support DRep extended keys
    • Support Plutus V1 in Conway

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-24-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-10-24T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-10-20-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team mainly focused on preparing a masterclass and workshop for #CardanoSummit2023.

    In addition, they improved the Hydra node API's submit-transaction endpoint to accept three different encoding types: Base16 encoded CBOR string, TextEnvelope type, and JSON.\nThis improvement offers users greater flexibility and ease of interaction with the API.

    Finally, the team has followed up on the TUI brick upgrade to version 1.10.\nThis effort has resulted in addressing minor details and enhancing the overall user experience with the TUI.

    What did the team achieve this week

    • Prepare presentation and workshop for Cardano Summit.
    • More TUI fixes and improvements.
    • Upgrade GHC from 9.2.8 -> 9.6.2 #1105
    • Solved user issue related to submitting transactions in cbor format #1111.
    • Fix hydraw connection issue making it more stable #1121.

    What are the goals of next week

    • Work on hydra-poll dApp for Cardano summit.
    • Start the work on packaging hydra-node and related services.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-20-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-10-20T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-10-18-consensus", + "content_html": "

    High level summary

    During the past two weeks the Consensus team received additional benchmark results for the UTxO-HD feature that show the resource usage for the in-memory backend is not satisfactory for a mainnet release, and we need to wait on the implementation of a new infrastructure to benchmark the LMDB backend (not likely to happen before next year). While we wait on this, we are evaluating the feasibility of making the UTxO-HD feature switchable, which will enable us to release it as an experimental feature. On the Genesis front we produced the first draft for a Survivable Eclipse Duration Model. We released version 8.5.0 of Cardano node, resumed work on subpar handling of blocks from the future, and improved our tracing system to assist problem troubleshooting in the node.

    UTxO-HD

    • The Plutus workload benchmark for the in-memory backend showed no regressions for the metrics of interest, but it does show an increase in resource usage.
    • We got additional ad-hoc measurements on memory UTxO-HD consumption. The memory usage of the in-memory backend is not satisfactory for a release. The memory usage of the LMDB backend is considerably lower, but we need to see how much lower we can bring it by running a node whose memory is constrained to 8GB.
    • We resumed work on an alternative solution that will make the UTxO-HD switchable. This will enable us to keep the baseline performance by totally disabling UTxO-HD, while allowing users to experiment with the feature if they wish to do so.

    Genesis

    • We produced the first draft for a Survivable Eclipse Duration Model (422).

    Support

    • Esgen finished his cycle as release engineer. Node 8.5.0 has been released.
    • We resumed work on the subpar handling of block from the future (4251).
    • We prepared the integration of new tracing events for the next node release. These tracing events will help debugging potential issues in the node (such as the previously mentioned issue).
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-18-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-10-18T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-10-18-mithril", + "content_html": "

    High level overview

    This week, the Mithril team started working on the decentralization of the Mithril networks with a proof of concept of peer-to-peer (P2P) networking between nodes. The team kept working on the adaptation of the Mithril client as a library, on the deterministic computation of the transaction history of an address from the immutable files, and on the refactoring that will fix the bottleneck of the key registration in the aggregator. Additionally, they published a security advisory for the Mithril relay.

    Finally, they enhanced the CI/CD to publish multiple packages to crates.io and started improving the developer experience with the Mithril devnet.

    Low level overview

    • Published the security advisory Mithril relay could expose Cardano block producer internal IP when updated #GHSA-9m3h-72xj-x2gq
    • Worked on the issue P2P Networking - Proof of Concept #1300
    • Worked on the issue Make mithril-client crate a library #1141
    • Worked on the issue Compute deterministic Cardano transactions history PoC #1283
    • Worked on the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
    • Completed the issue Publish multiple packages to crates.io #1298
    • Completed the issue Rename public key published in releases #1292
    • Completed the issue Mithril networks infrastructure maintenance #1218
    • Worked on the issue Fix devnet Mithril Docker images #1272
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-18-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-10-18T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-10-15-network", + "content_html": "

    High-level overview of sprint 46

    Bootstrap Peers

    We continued reviewing of bootstrap peers, see ouroboros-network#4555.

    Towards Typed Protocols 0.2.0.0

    We diagnosed the performance regression of the new design. The work on\ntyped-protocols will be postponed. For more details see the\ntyped-protocols#3. As an outcome of the performance debugging we prepared\nPR which updates the demo-ping-pong and\ndemo-chain-sync applications.

    Peer Sharing

    We made progress in review of ouroboros-network#4644, which simplifies the\npeer sharing and fixes the ouroboros-network#4642 issue.

    Tech Debt

    We reviewed the ouroboros-network#3836 PR which inspects all the uses of\nerror in ouroboros-network. The PR was prepared by Galois.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-15-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 46", + "date_modified": "2023-10-15T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-10-13-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    The team is currently formalising mini protocols and testing the\nperformance analysis tool

    Details

    • extending thorn-calculus to support synchronous channels

    • extending mini-protocol framework to support communication with the\nenvironment

    • working on chain sync mini-protocol

    • planning for JLAMP journal paper submission

    • analysying any-to-finish

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-13-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-10-13T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-10-13-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team's primary focus was on finalizing the new network resilience layer. This involved adding persistency to ensure data integrity.

    They also completed the exploration of potentially moving the Plutus validator scripts to Aiken.

    Additionally, the team dedicated some attention to our TUI by upgrading the Brick framework. They also undertook a comprehensive refactoring of the project's structure and addressed various bug fixes. These efforts are aimed at enhancing the overall user experience of our project.

    What did the team achieve this week

    • Network Resilience Persistence (#1101)[https://github.com/input-output-hk/hydra/pull/1101].
    • Upgrade brick on TUI (#1103)[https://github.com/input-output-hk/hydra/pull/1103].
    • Aiken commit validator translation (#1072)[https://github.com/input-output-hk/hydra/pull/1072].
    • Fixed some bugs in our TUI client.

    What are the goals of next week

    • Prepare presentation and workshop for Cardano Summit.
    • Work on hydra-poll dApp for Cardano summit.
    • Start the work on packaging hydra-node and related services.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-13-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-10-13T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-10-13-ledger", + "content_html": "

    High level summary

    The Ledger team has been shifting focus from implementing Conway related features to\ntesting. For this reason there is a very little amount features that are reported this\ntime aorund. Notable Conway related changes are a specialized ledger query for getting\nConstitutional Committee state and prevention of submitting proposal procedures that have\nno valid path to enactment.

    Testing related work was mainly on a constraint base system as well as on roundtrip\nserialization. As a result of this extra testing a bug in Conway Genesis serialization\nwas eliminated.

    Low level summary

    Conway era

    Integration and releasing

    Testing

    • pull-3769 - Add roundtrip testing by validating FlatTerm
    • pull-3783 - Update TranslationInstance.hs
    • pull-3775 - Refactor and improve constraint based STS tests
    • pull-3793 - Fix sums with negative RHS.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-13-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-10-13T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-10-13-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet environment was updated to 8.5.0-pre.
    • Cardano-parts now supports cardano-db-sync, cardano-smash, cardano-faucet and grafana cloud monitoring

    Lower level summary

    Capkgs

    • Various improvements and fixes including:
      • Add GHA cron schedule
      • Add nix auto-gc to avoid running out of storage during large package set builds
      • Add new packages to capkgs
      • Reduce runner storage requirement leaving more room for builds
      • Restructure capkgs attribute names to avoid package name collisions
      • Return to non-musl builds for cardano packages to retain journald compatability
      • Update cache usage to from file level to folder level to reduce network and latency overhead
      • Commit diff: capkgs-compare

    Cardano-parts

    • Updates cardano-node-ng to 8.5.0-pre and adds a Conway era automation job: cardano-parts-pull-16
    • Dbsync, smash, faucet and more: cardano-parts-pull-15
      • Adds cardano-db-sync, cardano-faucet, cardano-postgres, cardano-smash, profiles and/or services and related changes
      • Adds nginx vhost metrics exporter profile
      • Adds smash registered-relay-dump service and exporter for use until legacy relay nodes are scaled down
      • Adds bash *-ng autocompletion compatible wrappers
      • Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview
      • Adds downstream grafana cloud dashboard as templates
      • Adds downstream grafana cloud alerts as templates
      • Updates grafana-agent profile with new exporter scrape hooks: cardano-db-sync, cardano-faucet, nginx-vts, varnish
      • Updates the basic profile with IOG cache and commonly used bins
      • Updates the pre-release profile to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning
      • Updates flakeModule jobs with new conway era automation and additional IO encryption shimming and file type checks
      • Updates .sops.yaml template for supporting faucet secrets, workbench secrets, state-demo secrets
      • Updates the Justfile template with terraform fixes for workspace switching and provider auto-reconfiguration
      • Updates the cloudFormation terraformState template with stack modifications to preserve all resources in case of deletion
      • Updates the colmena template with dbsync, smash, faucet machines profiles and roles
      • Improves prior cardano-postgres modules to now automatically tune pg parameters based on machine cpuCount, memMiB and desired conns
      • Bumps capkgs node-ng to 8.5.0-pre

    Cardano-playground

    • Dbsync, smash, faucet and more: cardano-playground-pull-3
      • Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview
      • Adds dbsync, smash, faucet machines and corresponding metrics exporters, dashboards and alerts
      • Moves the flake.cardano-parts.cluster.group attrSet name to groups to accurately reflect the plurality and the upstream corresponding change
      • Optimizes machine sizes
      • Updates .sops.yaml for supporting faucet secrets, workbench secrets, state-demo secrets
      • Updates the cloudFormation terraformState file with stack modifications to preserve all resources in case of deletion
      • Updates the cluster isNg definition to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning
      • Updates the Justfile with terraform fixes for workspace switching and provider auto-reconfiguration

    Cardano-world

    Sanchonet-demo

    • Update for cardano-node 8.5.0, conway job recipes and cardano-parts interface changes: sanchonet-demo-commit
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-13-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-10-13T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-10-11-mithril", + "content_html": "

    High level overview

    This week, the Mithril team worked on the distribution of the Mithril client as a library that will be distributed on crates.io, the Rust dependencies repository. The team also worked on the deterministic computation of the transaction history of an address from the immutable files and started fixing a bottleneck in the aggregator that limits the ingestion of signatures.

    Finally, they kept working on the activation of Cloudflare on the infrastructure and fixed some bugs in the Nix CI.

    Low level overview

    • Worked on the issue Make mithril-client crate a library #1141
    • Worked on the issue Compute deterministic Cardano transactions history PoC #1283
    • Worked on the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
    • Completed the issue Update Rust compiler in nix CI #1282
    • Worked on the issue Mithril networks infrastructure maintenance #1218
    • Worked on the issue Activate Cloudflare protection of infrastructure #1230
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-11-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-10-11T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-10-10-node-cli-api", + "content_html": "

    2023-09-27 - 2023-10-10

    High level summary

    CARDANO-NODE

    CARDANO-CLI

    • Depracated governance query commands and moved all governance related queries to cardano-cli <era> query
    • Drep registration certificates now allow to include an anchor
    • Integrated Drep retirement ceriticates
    • clean up of Drep registration certificates.

    CARDANO-API

    • Add support for committee hot key witnesses
    • Require conway onwards for voting
    • Conway drep registration: expose ledger anchor parameter
    • Add certs to txbody of Conway transactions

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-10-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-10-10T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-10-06-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team released version 0.13.0, which includes fixes and extensions for state persistency and the ability to draft a commit transaction using inline datums.

    The team also delivered the first version of the network resilience layer, significantly increasing head availability.

    Additionally, they have been providing support to several funded Catalyst projects that want to build on Hydra.

    Last but not least, they updated and published security policy and vulnerability disclosure policy reports on how to handle security vulnerabilities within Hydra.

    What did the team achieve this week

    • Release 0.13.0
    • Published vulnerability reports #1088
    • Merged network resilience work part I #1074
    • Planning for Cardano Summit participation
    • Discussions with funded Catalyst projects wanting to build on Hydra for support
    • Merged typos fix PR from @omahs #1095

    What are the goals of next week

    • Complete Aiken commit validator script #1072
    • Complete Kupo integration #1078
    • Brick upgrade on TUI #1103
    • Clean backlog
    • Prepare and rehearse demo and talk for Cardano Summit
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-06-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-10-06T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-10-06-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: Continued benchmarking of UTxO-HD and performed benchmarks for the new tracing system.
    • Consensus QTAs: Our protoype approach is applied to potential regression fixes with GHC 9.2.7.
    • Development: We've developed strategies for future benchmarks of PlutusV3 and UTxO-HD's on-disk backing store.
    • Tracing: The machine-readable tracer configuration has been merged. Optimization of cardano-tracer started.
    • Nomad backend: Ongoing variance analysis and refined cluster topology.

    Low level overview

    Benchmarking

    Performing and analyzing benchmarks for the UTxO-HD feature is an ongoing effort; we can reliably assess the\nperformance of the in-memory backing store and evaluate possible optimizations (or regressions) for it.

    Furthermore, benchmarks of our new tracing system after several rounds of optimization have been performed. The results\nshow all key metrics now being unaffected by the choice of tracing system (legacy or new) - with the new system being able to provide more features and flexibility in comparison. The benchmarks also highlighted further points for optimization, with the focus now on the cardano-tracer service.

    Consensus QTAs

    The Quantitative Timeliness Agreements (QTA) prototype is being used in coordination with Consensus and DevX to validate a series of patches that address optmization opportunities which GHC8.10 seizes, but GHC9.2 misses. The\nfeedback from this approach is much more immediate than running benchmarks at system integration level. But once we eventually do, we expect to reproduce the relevant observations - which would mean a big step towards maturing the prototype.

    Development

    Benchmarking UTxO-HD's on-disk backing store needs special attention: in virtualized environments, disk I/O is not a reliable metric as it passes several layers of indirection. As this is the very metric which will influence overall performance of this UTxO-HD flavour, we developed a plan to monitor such nodes, connected to a running network, on dedicated hardware - having direct SSD access. Replicating this setup for an entire benchmarking cluster of such nodes will be a future effort.

    PlutusV3 will come with new builtins and a new cost model. It will take a specialized benchmark to ascertain the soundness of that model running a full cluster of nodes, possibly stressing expensive builtins. At the same time,\nwe'd like to validate the many improvements that have gone into the Plutus evaluator.

    Tracing

    The focus for further optimization of the new tracing system has shifted to cardano-tracer - the service\nreceiving and processing traces from one (or more) nodes. Whilst undisputed that the code living in cardano-node is\nmore performance critical, the receiving service must still minimize its resource footprint. Moreover, it can\ngenerate load for a running node when querying data points from it - which calls for tight control of that mechanism and its possible configurations.

    Nomad backend

    Variance analysis of new nomad backend has revealed a necessary adjustment of the cluster's topology. We repeated\nthe same analysis and now see even better confidence in the measurements taken with nomad. This concludes the work on the backend proper for the time being. The last steps before production use will focus on the interface between backend and our workbench, which provides all high-level benchmark definitions and analysis machinery.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-06-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2023-10-06T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-10-04-consensus", + "content_html": "

    High level summary

    The value-only workload benchmarks showed that the mempool forging regression observed in the UTxO-HD branch was fixed by the latest patch. In spite of the higher resource demands, for the metrics of interest (forging, peer-propagation, end-to-end propagation) we see no regression when using the UTxO-HD version of Cardano node, with the in-memory backend.

    On the Genesis front the Researchers continue reviewing different aspects of the design, in particular the argument that the Genesis rule will select the Cardano historical chain.\nWe also merged a fix for the Babbage to Conway transition, and released a new version of Consensus.

    Genesis

    • We elicited review from the Researchers on a final draft of the argument that the Genesis rule will select the Cardano historical chain (392).

    Support

    • We merged a minimal patch that fixes parameter update bug during the Babbage to Conway transition (366).
    • We enabled richer tracers in cardano-node that can be useful in future debugging (384).
    • Esgen continues with his release engineer activities, and created a new Consensus release.

    Fostering collaboration

    • We merged a new section into our documentation that explains the existing hard-fork combinator (HFC) interface and its complexities, which are relate do why the Babagge to Conway transition surprised us in this way. This explanation is step one towards improving the HFC interface (369).
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-04-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-10-04T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-10-04-mithril", + "content_html": "

    High level overview

    This week, the Mithril team updated a proposal for implementing Mithril in a light wallet and created a discussion on implementing Mithril in a light wallet to receive feedback and contributions from the community.

    They also completed a proof of concept to run a Mithril client in a browser with WASM and worked on enhancing the explorer UI with SPO tickers displayed next to the pool IDs. Additionally, the team finalized a tool for benchmarking aggregator performance over a range of signer and client loads and for visualizing the results of these benchmarks.

    Finally, the team added a root page to the aggregator endpoint, created a status page for the Mithril networks, and added a section about KES key rotation in the signer documentation for SPOs.

    Low level overview

    • Created the discussion Implement Mithril in a light wallet #1273
    • Completed the issue Run client in browser WASM PoC #1254
    • Completed the issue Benchmark aggregator performances #1220
    • Worked on the issue Add SPO tickers in explorer #1185
    • Completed the issue Add a non 404 status code on the aggregator endpoint #1103
    • Completed the issue Use source attribute in errors #1265
    • Completed the issue Create a SPO checklist for KES keys update #1267
    • Completed the issue Configure status page and alerting #1277
    • Completed the issue Upgrade dependencies #1274
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-04-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-10-04T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-10-02-network", + "content_html": "

    High-level overview of sprint 45

    Bootstrap Peers

    We started reviewing the bootstrap peers PR, ouroboros-network#4615.

    Towards Typed Protocols 0.2.0.0

    We discovered a performance regression when using typed-protocols-0.2.0.0, and we\nstarted investigating where it comes from. Currently, we see that\ntyped-protocols-0.2.0.0 can outperform typed-protocols-0.1.0.0 when running\nin isolation with a simple ping-pong protocol, so the regression might be in\nthe new block fetch implementation which comes with typed-protocols-0.2.0.0\nSee typed-protocols#3.

    Tech Debt

    We merged two PRs written by Galois engineers:

    • a pull request which refactors the main entry function for P2P, see ouroboros-network#3834;
    • a pull request which reviews usage of unsafe function in the network code based.

    Galois also made progress with the following two issues:

    IO-Sim

    IOSimPOR

    We found and fixed a bug in IOSimPOR. We'd like to thank Prof. John Hughes\n(Quviq AB) for helping us with debugging the issue.

    We also provided a more uniform API for IOSimPOR, and added ways to make the\ndebugging similar problems in the future easier.

    Technical Details on IOSim refactoring
    We removed the usage of `unsafePerformIO` from `IOSimPOR`, which also means removing parallel evaluation of discovered races. We found out that it gives only 25% better performance. In the future QuickCheck will offer running different cases in parallel which should provide better performance as there are no dependencies between the evaluation of different test cases, while schedules are discovered while running which limits the possible gains from running them concurrently. The performance was not the only factor though. When using parallelism in the lazy `ST` monad we'd need to rely on memory guarantees of `STRefs`. In `GHC-9.6` they share the implementation with `IORef`s, but it might not be the case in the future.

    IOSim

    To prepare for the next release, we consolidate packages taking advantage of\nthe public sublibraries supported now both by cabal and Hackage. This is\na work in progress, io-sim#114.

    Cardano Newtork Service Assurance

    Galois made the following progress:

    • A test run of spinning up a CNSA instance was done, as a result documentation\nwas updated.
    • Based on the IOG code review of the CNSA code, updates to the CNSA code were\nmade.
    • Galois has started the design for adding a CNSA analysis for \"fetched bytes\nover time while node is syncing\".

    P2P adoption

    In the last two weeks, we've seen increase in P2P adoption.\n\"P2P

    The following graphs show several different versions of relays running on the mainnet. The\ngreen line NodeToNodeVersionV10.True denotes P2P relays.\n\"node

    Open Source

    We upstreamed our FFI bindings to Windows named pipes to Win32 package, the\nPR was accepted and merged.

    We also received an external contribution which enhanced our documentation, see\nouroboros-network#4676.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-10-02-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 45", + "date_modified": "2023-10-02T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-09-29-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    The team is currently formalising mini protocols and testing the\nperformance analysis tool

    Details

    • drafting processs calculus semantics of mini protocol programs

    • testing the new performance modelling tool

    • further work on specification of mini protocols

    • extension of mini protocol framework to support communication of\nprograms with local environments via synchronous channels

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-29-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-09-29T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-09-29-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team mainly focused on having a working new reliability\nnetwork layer; and specified its expected behavior in a new ADR.

    They also revisited the security policy and vulnerability disclosure policy on\nhow to handle security vulnerability within Hydra, and in particular how to\nhandle so-called \"Silent fixes\".

    What did the team achieve this week

    • Updated security policy and vulnerability disclosure policy #1088
    • Adr/network reliability #1082

    What are the goals of next week

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-29-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-09-29T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-09-29-ledger", + "content_html": "

    High level summary

    Few important Conway related features were completed in this two week period:

    • Constitutional Committee was the last missing Conway related entity that has now been\nfully implemented.
    • Treasury withdrawals governance actions have been fixed and now behave as expected.
    • Current treasury amount supplied in the transaction is now enforced by the rules.
    • DRep's expiry is prevented by delaying the expiry for all DReps whenever there are no\nproposals to vote on.
    • Semantics of how CostModels are updated with Protocol Parameters have been changed to\nallow for individual Plutus language version updates, rather than requiring a complete\nreplacement of all CostModels

    Besides the new features there were also important performance and testing improvements:

    • In particular stake distribution computation and native script handling received some\noptimizations.
    • New testing DSL has been implemented that drastically simplifies writing unit tests for\nledger rules.
    • Integration tests and benchmarks are now possible for Conway era because of the overhaul\nof functionality for initial funds and staking injection whenever node starts up in\nConway, while bypassing all previous eras.

    Low level summary

    Conway era

    • pull-3729 - DRep expiry update after a contiguous set of epochs with no proposals to vote on
    • pull-3739 - Rename some PParams to be consistent with Agda specification
    • pull-3743 - Move DRepDistr from VState to ConwayGovState
    • pull-3746 - Implement tcTranslationContextL for Shelley
    • pull-3737 - Implement EraTransition
    • pull-3749 - Add predicate failure: current treasury value mismatch in LEDGER
    • pull-3748 - Apply enacted treasury withdrawals
    • pull-3745 - Constitutional Committee Ratification
    • pull-3763 - Plutus interface improvements
    • pull-3771 - Changed how costmodel updates are applied
    • pull-3766 - Prevent updating protocol version with PParamUpdate

    Performance

    • pull-3765 - Improve native script handling
    • pull-3747 - Use (CompactForm Coin) in IncrementalStake, DRepDistr (and other places) instead of Coin
    • pull-3758 - Cardano-Perf regression: UMap.size regression fix
    • pull-3754 - Use Alonzo-style TxOut encoder when possible

    Releasing

    • pull-3742 - Update fourmolu, ghcid and hls. Update haskellNix and iohkNix flakes
    • pull-3744 - Changelog 8.4
    • pull-3752 - Patch release of cardano ledger conway 1.8.1.0
    • pull-3753 - Minor cleanup and changelog entries
    • pull-3760 - Fixup issues for release
    • pull-3764 - Bump plutus deps to 1.13

    Testing

    • pull-3734 - Removed Shaped instance for Rep
    • pull-3735 - Simplify the implementations of hasOrd and hasEq
    • pull-3728 - STS tests based on constraints
    • pull-3714 - Implement the remaining upgradable families
    • pull-3733 - Add some unit tests for Conway features
    • pull-3762 - Update CDDL for praos headers.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-29-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-09-29T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-09-29-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet environment was re-spun starting from slot 7171200 and updated to cardano-node 8.4.0-pre.
    • The use of cardano-node docker hub will be deprecated in preference of GHCR

    Lower level summary

    Capkgs

    • Refactor parsing scripts, add github action automation, various bugfixes and cleanup: capkgs-compare

    Cardano-parts

    • Updates secrets layout scheme, adds sops enc/dec for jobs, adds cloud monitoring profile, updates flake templates and other improvements/fixes: cardano-parts-pull-8

    Cardano-playground

    • Updates for new cardano-parts secrets handling and layout, TF workspace handling, group multivalue DNS support, grafana cloud monitoring and other improvements: cardano-playground

    Cardano-world

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-29-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-09-29T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-09-27-mithril", + "content_html": "

    High level overview

    The Mithril team has released a new distribution 2337.0, which includes the following enhancements: support for zstandard compression of snapshot archives, support for the Cardano node version in snapshot metadata, and support for recording snapshot download statistics in the aggregator.

    They also completed the refactoring and standardization of the errors in the Mithril nodes and published an Architectural decision record on the documentation website. Additionally, they kept working on adding Cloudflare protection to the infrastructure.

    Finally, the team fixed a performance issue on the stress test tool for the aggregator and made some improvements to the documentation for SPOs.

    Low level overview

    • Completed the issue Release new 2337 distribution #1219
    • Completed the issue Errors refactoring #798
    • Completed the issue Client traffic creates performance bottleneck in aggregator #1207
    • Completed the issue Record statistics about the downloaded snapshot in the aggregator #1127
    • Completed the issue Create a SPO checklist for KES keys update #1267
    • Worked on the issue Spike: Run client in browser WASM PoC #1254
    • Worked on the issue Benchmark aggregator performances #1220
    • Worked on the issue Activate Cloudflare protection of infrastructure #1230
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-27-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-09-27T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-09-26-node-cli-api", + "content_html": "

    2023-09-13 - 2023-09-26

    High level summary

    • cardano-node 8.4.0-pre release suitable for SanchoNet.
    • CLI continues making progress integrating governance features. During this sprint we integrated the info and new-committee governance actions.
    • The team continued moving to the ERA top-level commands structure. Removed --conway-era flag from the legacy commands making conway era commands only accessible via cardano-cli conway.
    • stake-pool command is now under the ERA top level structure.
    • API continues integration with governance features, it is worth to higlight that now ProposeNewCommitee uses the right key type (cc-cold)

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-26-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-09-26T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-09-22-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team conducted the monthly review meeting in\ncollaboration with Mithril, enhancing project coordination.

    The team improved the gen-hydra-key node command for smoother usability\nand identified concrete steps to enhance network resiliency in feature\nitems #188,\n#1080, and\n#1079.\nAdditionally, they contributed the aiken-mode editor integration to the\naiken-lang organization, updated dependencies to utilize cardano-api\n8.20, and published the Hydra security advisory CVE-2023-42806 with a\nworkaround available for users.

    These efforts demonstrate the team\\'s commitment to project improvement,\nsecurity, and open-source community collaboration.

    What did the team achieve this week

    • Conducted the monthly review meeting together with Mithril
    • Improved gen-hydra-key node command\n#1077
    • Established a clear plan to improve resiliency of network and manifested\nfeature items #188,\n#1080 and\n#1079
    • Moved aiken-mode (created by SN)\nto aiken-lang organization
    • Updated dependencies to using cardano-api 8.20\n#1075
    • Published security advisory\nCVE-2023-42806\n(workaround available)

    What are the goals of next week

    • Write-up the monthly report for September
    • Finish \"network resilience to disconnects\"\n#188
    • Finish kupo integration with hydra\n#1078
    • Discuss and decide on using aiken or not
    • Address the published security advisory\nCVE-2023-42806\n(to not require workaround)
    • Ideally, release 0.13.0
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-22-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-09-22T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-09-22-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: We've performed both low-level network and high-level variance analysis of our benchmarking clusters.
    • Infrastructure: Our reporting pipeline was adjusted to classify various workloads easily reducing rework time.
    • Tracing: Work on machine-readable tracing of tracer configuration is ongoing.
    • Nomad backend: We've been able to eliminate several possible confounders on the nomad cluster.
    • Team: We're currently onboarding a new team member: Welcome to Cardano Performance & Tracing, Baldur Blöndal!

    Low level overview

    Benchmarking

    As part of the effort to bring the Nomad backend into production use, we've been equipping both that and the existing benchmarking\nbackend with means to measure and document network latency for each run. Furthermore we've implemented means to\ncapture TCP packets for a limited time window during a benchmarking run - which will allow us to spot differences\nin the behaviour of the underlying networking stack at OS level.

    Additionally, we're running variance analysis in parallel on both backends to ascertain confidence in metrics originating from either. We've concluded that baseline profile runs aren't directly comparable between the two, so we decided\nto compare standard deviations instead to validate the measurements from nomad.

    Infrastructure

    Reporting on benchmarks does require human time and effort to rework the final document. Improvements to the reporting pipeline\nhave been merged to master. They reduce the time necessary to do so by various changes to the template and the workload classification logic in analysis.

    Beyond that, we've looked into issues where services would quit with an unjustified exit failure upon shutdown - under rare circumstances. By reworking shutdown logic for trace-dispatcher and tx-generator we were able to address those issues.

    Tracing

    After various steps in constructing a configuration upon node startup, it is vital to document\nwhich runtime configuration the node arrived eventually. We're working on providing a machine-readable JSON/YAML\ntrace message for that purpose.

    This will facilitate hot-reloading a node's tracer configuration in the future: users will be able to take such a trace message, apply their intended change and hot-reload it immediately into the node.

    Nomad backend

    As with the existing benchmarking cluster, nomad is currently under scrutiny with regard to the reliability of metrics it\nproduces, as well as the behaviour of its OS-level network stack. For instance, differing kernel versions can have an\nimpact on our measurements, as we'd be basically using two different instruments to take them.

    Along the way we've already been successful in eliminating some possible confounders that had been introduced by the nomad service\nor the slightly different system architecture of the new cluster.

    New team member

    Baldur Blöndal is an extremely capable and experienced Haskell developer. Also, he's an excellent fit for our existing team.\nSo I'm very pleased to welcome him onboard with IOG, and with Performance & Tracing. He will be working on cardano-tracer, the component receiving, processing and making available node traces and metrics.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-22-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2023-09-22T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-09-20-consensus", + "content_html": "

    High level summary

    We have a proposed fix for the mempool forging regression observed in the UTxO-HD branch. We need to confirm this by running system level benchmarks.\nWe are still working on a fall back mechanism for keeping the baseline performance of Cardano node, if the performance of the UTxO-HD is not enough.\nOn the Genesis front, we confirmed with the researchers that the proposed Genesis design is satisfactory for the historical Cardano chain.\nWe also have a proposed fix for the wrong protocol version bug, found in the Sanchonet, after transitioning to Conway.

    UTxO-HD

    • We optimized the mempool revalidation process, which in turn ought to solve the regression observed during system-level benchmarks in the in-memory version (349). System level benchmark results are pending.
    • Regarding the workaround to keep the node's baseline performance if that of the in-memory backend turns out not to be enough for our stakeholders (344), we are still expanding the legacy block package such that we could at some point run the node with a legacy Cardano block. There are some loose ends to wrap up before we can begin the first test run.
    • We also brought the UTxO-HD branch up to date with node version 8.4.0.

    Genesis

    • We finished the discussion with the Researchers on how to argue that the proposed Genesis design is satisfactory for the existing historical Cardano chain.\nWe are now drafting the final self-contained argument. (4157)

    Support

    • We debugged a bad parameter update on the Babbage to Conway transition in the SanchoNet testnet (339).\nA superficial patch is within reach and we are in the process of reviewing the PRs related to this fix (340, 354, and 355)\nHowever we are investigating a more principled redesign of the epoch transition logic, which required us to revisit the existing interfaces of the ConsensusProtocol type class and the HardForkBlock combinator (345 and 346). This is important to prevent these kind of errors in the future. This is an overdue step in the process of taking full ownership of the HFC: reconsidering original HFC design decisions for which we now have much more context, a few years later.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-20-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-09-20T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-09-20-mithril", + "content_html": "

    High level overview

    This week, the Mithril team has completed the refactoring of the terraform deployment workflows in GitHub actions, and the implementation of snapshot compression parameters in the deployments. They kept working on the refactoring and standardization of the errors in the Mithril nodes. The team also completed the implementation of Cloudflare protection for the aggregator infrastructure and started working on its deployment and activation in the Mithril networks. Additionally, they worked on recording download statistics on the aggregator which will be used to produce usage reports.

    Finally, they kept working on the aggregator performance bottleneck that occurs with high client traffic and started creating a new distribution.

    Low level overview

    • Completed the issue Add snapshot compression parameters in infrastructure deployments #1200
    • Completed the issue Add Cloudflare protection of infrastructure #986
    • Worked on the issue Record statistics about the downloaded snapshot in the aggregator #1127
    • Worked on the issue Error refactoring #798
    • Worked on the issue Activate Cloudflare protection of infrastructure #1230
    • Worked on the issue Release new 2337 distribution #1219
    • Completed the issue Upgrade dependencies #1238
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-20-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-09-20T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-09-15-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    The team is currently formalising mini protocols and also further\ndeveloping the performance modelling prototype.

    Details

    • working on collating and open sourcing performance analysis prototype

    • improvements to Ouroboros Praos specification in Isabelle

    • working on formalising chain sync mini-protocol

    • reviewing an alternatice semantics for DeltaQ

    • Seminar talk at U. Bergen on algebraic properties of timeliness

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-15-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-09-15T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-09-15-hydra", + "content_html": "

    High-level summary

    This week, most of the Hydra team was attending a cardano scaling workshop in\nNantes, France. They used this oportunity to meet fellow mithril team and spend\nsome time together to hack on some code and, as always, reflect on the past work\nand find optimal path forward for both projects. They also fixed a bug that\ncaused hydra-node to crash when querying L1, worked on a new network resillience\nproof-of-concept and accepted a new ADR related to stateless transaction\nobservation.

    What did the team achieve this week

    • Cardano scaling workshop with members of hydra and mithril teams
    • Accepted user contribution for possible new use-case #1048
    • Fix for the hydra-node crash related to internal wallet query #1053
    • Collected experimental CI findings #1070
    • Propose first POC for the network resilience #1074

    What are the goals of next week

    • Monthly review meeting & report including updates from Mithril
    • Review POC and discuss our options for the network resilience
    • Update cardano-api to version 8.20
    • Address TODOs on aiken commit validator #1072
    • Complete hydra-support in kupo kupo#117
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-15-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-09-15T00:00:00.000Z", + "author": { + "name": "Sasha Bogicevic", + "url": "https://github.com/v0d1ch" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-09-15-ledger", + "content_html": "

    High level summary

    The Ledger team's focus is still mainly on the Conway era implementation.

    We were able to add ability to specify initial Constitutional Comittee and the initial\nversion of Constitution. Priority in which Governance Action are now enacted matches the\nspecification. DRep's deposits are now properly accounted for. Governance actions that are\nnot allowed to be voted on by Stake Pool operators and Constitutional Committee members\nare prevented by transaction submission failure, rather than simply being ignored. There\nwas a few important CDDL fixes as well as a lot of new round trip serialization\ntests. Constraint based testing framework has also received a lot of improvements.

    Low level summary

    Conway era

    • pull-3681 - Conway Genesis additions
    • pull-3690 - Preserve the order of ProposalProcedures
    • pull-3705 - Removed ProtVer from EnactState
    • pull-3700 - Add conway-specific certs to deposit/refunds
    • pull-3704 - Add comments on deprecating certs to Conway CDDL
    • pull-3698 - Reordering of governance actions
    • pull-3712 - Disallow empty fields in ConwayTxBodyRaw
    • pull-3716 - Abstract threshold calculation
    • pull-3725 - Fix mistaken use of dollar sign in cddl files
    • pull-3718 - Predicate failure for mismatched Voter GovAction
    • pull-3721 - Committee expiration, validation and modification

    Improvements and releasing

    Testing

    • pull-3730 - Implement Show instance for Rep using IsTypeable
    • pull-3697 - Rewrite testEql using Typeable to make it impossible to forget cases
    • pull-3709 - Add many new features to the Constrained modues in cardano-ledger-test
    • pull-3726 - Conway and other eras serialization roundtrip tests
    • pull-3713 - Improve CI resiliency against GitHub issues
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-15-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-09-15T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-09-15-network", + "content_html": "

    High-level overview of sprint 44

    Bootstrap Peers

    In this sprint, we focused on developing bootstrap peers.

    Thanks to the input from Samuel Leathers (IOG) and John Lotoski (IOG), we\nidentified a possible improvement to bootstrap peers. A more detailed\ndescription is available here.

    Cardano-Node-8.4.0 Release

    We also were responsible for the cardano-node-8.4.0-pre release. A final\nintegration PR is currently being merged. We published\nnew versions of ouroboros-consensus, cardano-api and cardano-cli.

    Towards Typed Protocols 0.2.0.0

    We also updated the future typed-protocols-0.2.0.0 and its integration with\ncardano-node. This is towards our goal which we planned for the next\nquarter. The identified tasks are to fix breaking tests, and then measure and\naddress possible performance regressions.

    Tech Debt

    Mark Tullsen (Galois) submitted two more PRs: ouroboros-network-#4663,\nouroboros-network-#4664. We provided feedback on their other pull requests: ouroboros-network-#4661 and\nouroboros-network-#4660.

    P2P adoption

    In the last two weeks, there was a regression in P2P adoption concerning\nthe number of SPOs or stakes, although the number of overall P2P relays has\nincreased. Karl Knutsson (Cardano Foundation) is investigating\nthis issue.\n\"P2P

    The following graphs show several different versions of relays running on the mainnet. The\ngreen line NodeToNodeVersionV10.True denotes P2P relays, which slowly\nincrease over time. The V9 and earlier versions of the node-to-node\nthe protocol indicates nodes version 1.35.x or earlier.\n\"node

    Data has been kindly provided by Cardano Foundation and their mainnet\nmonitoring infrastructure.

    Open Source

    We are in the process of upstreaming our ffi to Windows Named Pipes API to the Win32 package, see [win32-220].

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-15-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 44", + "date_modified": "2023-09-15T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-09-15-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Sanchonet environment was updated to 8.3.0-pre.
    • Cardano-parts now enables downstream consumers to spin up multiple cardano-networks per repository, an example of which is here.

    Lower level summary

    Capkgs

    • Add a readme, optimize flake inputs, improve nu and ruby parsing scripts: capkgs-compare

    Cardano-ops

    Cardano-parts

    • Utilize content addressed binaries to significantly improve eval, build and devShell performance: cardano-parts-pull-8
    • Add an aws flakeModule for obtaining ec2 specs, fix node.socket devShell error: cardano-parts-pull-10
    • Fix warns thrown during some builds and devShell usage: cardano-parts-pull-11
    • Add flakeModules and nixosModules in preparation for cardano-node grouped deployments: cardano-parts-pull-12
    • Enable group deployments by: adding several module, profile and role nixosModules; updating flakeModules; adding sops age secrets handling: cardano-parts-pull-13

    Cardano-perf

    • Modify the wireguard network from mesh to star, enable ICMP, enable Nomad raw_exec and add hydraJobs: cardano-perf-compare

    Cardano-playground

    Cardano-world

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-15-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-09-15T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-09-14-db-sync", + "content_html": "

    High level summary

    We have created a DBSync tag sancho-1-1-0 which can follow sanchonet. Also\nthe team has ran a number of benchmarks and tests for the new options/flavours of DBSync\nand prepared a blogpost which summorises them, for downstream components.

    Lower level summary

    • Integration of node-8.3.x and support for Sanchonet on Conway\n#1498
    • Simplifications of new feautures\n#1496
    • Makes it impossible to restart DBSync with different schema options and adds\ntests for them\n#1466
    • CI fixes\n#1494#1491
    • Prepared a blogpost about different DBSync options\nblog
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-14-db-sync", + "title": "DB-sync Team Update", + "summary": "High level summary", + "date_modified": "2023-09-14T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2023-09-12-node-cli-api", + "content_html": "

    2023-08-30 - 2023-09-12

    High level summary

    Release of Cardano-node 8.3.0-pre for SanchoNet. Adds DReps to the Conway governance rules. Allows registration of DReps, delegation to DReps and voting on constitution action with DReps and SPOs.\nThis release completes phase 2 of SanchoNet feature roll out plan

    CLI continues on its migration to a era-based top-level commands. This sprint we moved text-view, key, query, genesis, node, stake-address, transaction and address into this new command structure. This is the initial migration, there is still some clean-up to do on future sprints.

    We are moving the drep delegation-certificate to the stake-address command so delegating to a drep is done via stake-addres vote-delegation-certificate. Along the same lines, we are renaming\nstake-address delegation-certificate (delagating to a stake pool) to stake-address stake-delegation-certificate to distinguish between stake delegation to a pool and votes delegation to a drep. On top\nof that, there is a new type of delegation certificate to delegate (stake) to a stake pool and (votes) to a drep simultaneosuly stake-address stake-and-vote-delegation-certificate. Note that change is not included on 8.3 but will come on 8.4.\nRemoving --conway-era flag from all the transaction sub-commands.

    Update description fields in delegation certificates from Stake Address Delegation Certificate to respectively (Conway onwards):

    • Stake Delegation Certificate
    • Vote Delegation Certificate
    • Stake and Vote Delegation Certificate

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-12-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-09-12T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-09-08-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team improved the commit process with support for inline\ndatums. They simplified the chain layer by refactoring how the chain state is\npersisted. Updates to the Hydra tutorial were completed, including CI workflows\nto keep it up-to-date. The team engaged in discussions with researchers about\nincremental commits & decommits, and drafted an architectural decision record\nfor a resource-based API. They also explored simpler solutions for the upcoming\nnetwork resilience feature.

    What did the team achieve this week

    • Support InlineScriptDatum in commit\n#1043
    • Refactored chain state persistency\n#1049
    • Completed tutorial updates (by adding CI and some cleanup)\n#997
    • Intersect Open Source committee meeting
    • Experimented with various models to better express the \\\"Network\nresilience problem\\\" to find a KISS solution for\n#188
    • Drafted and discussed incremental de-/commit features within team\nand with researchers\n#199 and\n#1057
    • Created ADR for a resource based overhaul of the API\n#1028

    What are the goals of next week

    • Meetup of Hydra & Mithril contributors in Nantes, France
    • Integrated cardano-api 8.15 to have GHC 9.6 support
    • A clear design for incremental commits (decommits are already\nunderstood)
    • An ADR for improving tx construction & observation to not need chain\nstate
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-08-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-09-08T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-09-07-mithril", + "content_html": "

    High level overview

    The Mithril team has released a new distribution 2335.0 which brings enhancements to the client: support for simultaneous downloading and unpacking of the snapshot archives, support for one line command restoration of the latest snapshot, and availability of machine readable progress information.

    They have also worked on snapshots enhancements: implementation of the zstandard compression to produce smaller archives, and providing the version of the Cardano node used to create the archive in the snapshot artifacts. They have completed the second phase of the implementation of the stress test tool to benchamrk the aggregator. Additionally, they have kept working on refactoring and standardizing errors in the Mithril nodes.

    Finally, they have worked on adding Cloudflare protection to the infrastructure, and they have fixed some bugs that occurred during restoration of a snapshot by a client.

    Low level overview

    • Completed the issue Use 'zstandard' compression for snapshot archives #876
    • Completed the issue Design & implement stress test tool for aggregator - phase 2 #1155
    • Completed the issue Provide progress information with '--json' option in Client #1095
    • Completed the issue Make client download and extract the archive simultaneously #1115
    • Completed the issue Add aggregator Cardano node version in snapshot artifact #948
    • Completed the issue Make Cardano node version part of the Mithril network configuration #947
    • Completed the issue Post deployment 'mainnet' infrastructure #1091
    • Worked on the issue Errors refactoring #798
    • Worked on the issue Add Cloudflare protection of infrastructure #986
    • Completed the issue Failed to restore recent snapshot with strange error #1160
    • Completed the issue Update 'ed25519-dalek' to '2.0.0' #1188
    • Completed the issue Add target networks blocks in release notes #1151
    • Completed the issue Fix end to end 'wait_for_the_expected_time' test #1191
    • Completed the issue Fix docs 'git checkout' command #1174
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-07-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-09-07T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-09-07-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: We've performed and analysed feature benchmarks for both UTxO-HD and the current P2P stack.
    • Infrastructure: Various improvements of our analysis pipeline have been merged to master, supporting safe log truncation.
    • Tracing: Namespace consistency checks have been merged to master along with a curated configuration for benchmarking.
    • Nomad backend: We're productively using the new backend to measure new vs. legacy tracing system, adding many quality-of-life improvements.

    Low level overview

    Benchmarking

    We've completed various runs and analyses targeting two distinct features of the node: UTxO-HD and Peer2Peer.

    With our UTxO-HD benchmark we could clearly localize one point where this new way of maintaining ledger state is still costly, but at the same time confirm that in basically all other aspects UTxO-HD makes no difference in performance.

    The Peer2Peer benchmarks focused on the effects that enabling this feature on a block producing node has on propagation times, as well as scrutinized a proposed change to the Peer2Peer network stack.

    Infrastructure

    As a result of optimizing in-memory representation of log objects, which are constructed from a node's traces, we can now analyse runs that last longer in total. For runs that exceed their expected duration, analysis now supports a truncation\noperation that keeps the interdependencies of block events intact.

    Truncation might happen at a slightly different point\nin time - and therefore in its log object stream - for each node in the cluster. An additional step validating the block hash timeline of the cluster has been implemented for the pipeline. It provides early feedback on whether a specific truncation will lead to a valid full analysis, which requires much more time.

    Tracing

    Consistency checking of namespace implementation and configuration when using the new system has been completed.\nThis feature enables feedback on when tracer implementation details in some component might have changed. It's also able to detect when a configuration used for operating a cardano-node shows inconsistencies with the namespaces the system provides - and hence needs attention.

    Furthermore, we've created a fine-grained configuration of the new system that caters to benchmarking's need of very many\ndetailed trace messages. It's aimed at mirroring the same amount of trace messages, and information, we're seeing from our usage of the legacy system; an important step in making benchmarks between systems comparable.

    Nomad backend

    The new backend is currently being used for further validation with regard to the existing cluster. Additionally, we're using it in production mode to comparatively benchmark both tracing systems after merging past month's optimizations - which is the\nfirst real-life application of the nomad cluster. Hands-on experience in that phase translates into many small improvements which can be immediately applied to enhance user experience for the new backend.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-07-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2023-09-07T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-09-06-consensus", + "content_html": "

    High level summary

    We were able to successfully run the system-level benchmarks for the UTxO-HD implementation, for the first time. There was an important regression in block forging performance that will have to be addressed before UTxO-HD is released. We also revisited the implementation of our query processing logic, which was needed to address the performance regression found in the query-by-address command. The preliminary performance results show that now the performance of this query is on-par with the Cardano baseline version, but we need further confirmation.\nOn the Genesis front, we presented the grinding-aware safety argument for the proposed historical Cardano Genesis windows to the IOG Researchers.\nThe Consensus release engineer finished his rotation: version 8.3.0-pre of cardano-node is releasing 2023 September 5.

    UTxO-HD

    • We ran the first successful system-level benchmarks for UTxO-HD (see #203) using the in-memory backend.
      • We observed a factor 12 regression in the forging performance, which we will have to address. There are strong indications that the regression is due to the backing store accesses that take place when taking a mempool snapshot.
      • After the mempool regression is fixed the benchmarks need to be ran again.
      • System-level UTxO-HD benchmarks with the LMDB are still pending.
    • UTxO-HD will eventually be necessary due to the growth of the UTxO set and other ledger state structures that live in memory at the moment. However, we are trying a strategy by which we could preserve the baseline performance of the node, in case SPOs and other node users are not ready to migrate yet (see #344).
    • We implemented a new way of processing queries at the hard-fork block level, which resolves the performance regression observed in GetUTxOByAddress (see this comment). Preliminary results are promising.
    • Regarding the roll out plan, UTxO-HD requires a significant change in the Consensus codebase. Even though we might be able to hide any potential performance impact in the node by keeping all data in memory (#344), the Consensus component was significantly changed, so we might have to postpone releasing this feature to mitigate any risks of conflicting with the implementation of CIP-1694 and release of Conway.

    Tech debt

    • We added tests that Consensus emits valid CBOR (#3099). This helped us detect a couple of serialization bugs. The tests still need to be merged into the main branch (#323).

    Support

    • Nick Frisby finished his release engineer rotation; cardano-node 8.3.0-pre is releasing 2023 September 5.
    • We helped to investigate a protocol version bug in Sanchonet (see #3491).
    • We started to implement the Network interface for bootstrap peer functionality, from which Genesis will benefit as well (see #91.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-06-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-09-06T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-09-01-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    The team is currently formalising mini protocols and also further\ndeveloping the performance modelling prototype.

    Details

    • finalising a presenting performance analysis internship work to the\nformal methods team

    • developed a new Isabelle mini-protocol framework and examples

    • planning an extended version of the ICE DeltaQ paper

    • working on algebraic rules for properisation of any-to-finish

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-01-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-09-01T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-09-01-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team focused primarily on changes needed in the network\nlayer and have the first draft document related to needed design. They also\nimproved the user experience by allowing a commit using inline datums.\nDiscussed the off-chain governance with researchers and improved internal model\ntests.

    What did the team achieve this week

    • Monthly report published
    • Small changes to hydraw and tutorial in light of the Masterclass
    • Investigated a bug and saw it was solved by recent developments
    • Improved the model tests by fully validating L1 transactions
    • Enhanced the /commit API to also allow commit from scripts with inline datums (user request)
    • Discussed off-chain governance with IOG and CF researchers
    • Drafted a first network specification document in the context of Network resilience

    What are the goals of next week

    • Have a clear understanding of the changes we need for the \"Improve network resiliency\" feature
    • Groomed and agreed plan on incremental commits/decommits
    • Updated tutorials including CI workflows to check consistency
    • Update to GHC 9.6 and latest cardano dependencies (ledger/plutus)
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-01-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-09-01T00:00:00.000Z", + "author": { + "name": "Sasha Bogicevic", + "url": "https://github.com/v0d1ch" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-09-01-ledger", + "content_html": "

    High level summary

    Broadly speaking the Ledger team focused on a few main areas of Conway era:

    • Creation of voting state snapshots in order to correctly delay ratification for one epoch
    • Validation of the Governance Actions sequencing and ordering
    • Proper expiry of DReps and Proposal Procedures
    • Expanding Conway Genesis functionality
    • Utilization of some of the new Protocol Parameters in ledger validation rules

    Low level summary

    Conway era

    • pull-3659 - Validate Network for ProposalProcedure and TreasuryWithdrawal
    • pull-3637 - Avoid using sequence of tuples, by adding GovActionId to GovActionState
    • pull-3651 - Inactive DReps
    • pull-3664 - Track proposal expiry
    • pull-3668 - Add min committee size predicate to NewCommittee
    • pull-3669 - Add Proposal deposit check against PParam
    • pull-3676 - Fix inactive PoolStake not counting as Drep Stake
    • pull-3635 - Make snapshots of GovActionsState
    • pull-3670 - Validate previously enacted govAction
    • pull-3694 - Improve error reporting on the positive coin decoder
    • pull-3674 - Added RATIFY thresholds
    • pull-3684 - Add proposal delaying, remove predicate failure from ENACT
    • pull-3688 - DRep Refunds and update evalTransactionBalance

    Improvements and releasing

    • pull-3677 - Minor patch that fixes the DRep distribution computation
    • pull-3686 - Post patch release fixup
    • pull-3695 - Changelog for cardano-node-8.3 release
    • pull-3683 - Add two new bench mark programs

    Testing

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-01-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-09-01T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-09-01-network", + "content_html": "

    High-level overview of sprint 43

    In this sprint, we received contributions from CF & Galois. Karl Knutsson\n(CF) has addressed various issues regarding peer churning in P2P, timeouts\nand our WireShark dissector. While the Galois developers focused on\naddressing issues from their review last year. See below for more details.

    We continued working on bootstrap peers ouroboros-network-#4661.

    We refactored our test suites: they are split into io-tests which require to\nbe run natively on all platforms (these tests mostly contain tests that\nrequire IO system calls) and sim-tests which are platform independent. We\nrun io-tests on all supported platforms (e.g. x86_64-linux,\nx86-64-darwin, aarch64-darwin and x86_64-w64-mingw32 (Windows)) natively.\nThe sim-tests are not executed on Windows due to memory limitations on\nGitHub Actions runners. ouroboros-network-#4653

    We also started rebasing typed-protocols refactoring branches.

    Marcin was appointed as the cardano-node release engineer for the 8.4.0-pre\nversion. So far he integrated cardano-ledger-conway-1.8 and\nouroboros-network-0.9.1.0 to ouroboros-consensus, cardano-cli and\ncardano-api. Once we will have an integration branch for cardano-node,\ncardano-ledger-conway-1.8 and ouroboros-consensus packages can be released\nto CHaP and PRs can be merged once they go through review & CI.

    We also fixed some smaller issues regarding peer sharing (both were discovered\nby Karl from CF). More details are included below.

    Progress on P2P addoption

    SPO relays

    There are currently ~2000 relays running P2P\nenabled nodes that belong to 557 pools with a combined stake of 7900Mil Ada. On\n16th of August it was ~1700 relays, 531 pools with a combined stake of 7700Mil\nAda.

    \"P2P

    The following graphs show several different versions of relays running on the mainnet. The\ngreen line NodeToNodeVersionV10.True denotes P2P relays, which slowly\nincrease over time. The V9 and earlier versions of the node-to-node\nthe protocol indicates nodes version 1.35.x or earlier.\n\"node

    Data has been kindly provided by CF and their mainnet monitoring\ninfrastructure.

    IOG relays

    As of this week, 90% of IOG relays are running a P2P setup. In the next sprint all\nIOG relays will be running P2P.

    Detailed description

    In this sprint, we got a few contributions from CF:

    • Karl made peer churning mechanism less aggressive ouroboros-network-#4656; and
    • he added timeouts for idle states in ChainSync & KeepAlive\nminiprotocols. These timeouts help a node remove idle connections from the\nresponder (server) side ouroboros-network-#4648.
    • he improved the WireShark dissector by adding support for the peer-sharing mini-protocol ouroboros-network-#4656.

    Galois has been making progress in addressing some of the issues they raised in their review (last year):

    Peer Sharing

    • Light peer sharing is only enabled when peer sharing is turned on ouroboros-network-#4652;
    • Handshake incorrectly reports peer sharing value. It's supposed to relay the\nremote value, but instead, it returns the local value. ouroboros-network-#4642 (in review).

    Async Demotion Test Fix

    • We fixed an async demotion test failure which turned out to be a weakness of\nthe test itself rather than a bug in the connection manager. ouroboros-network-#4655
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-01-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 43", + "date_modified": "2023-09-01T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-09-01-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Work on cardano-parts repo continues and was utilized by the sanchonet-demo repository for demonstration purposes
    • Work on a new capkgs repository started -- \"Content Addressed Packages\"
      • This repository provides common Cardano release and pre-release binaries in a pure content addressed nix package type via flake output
      • These packages don't have the associated IFD, long eval times and large source dependencies that the originating source repositories often do
      • Consumers of such packages, such as devShells or nixos machines, can benefit from the improved performance this offers

    Lower level summary

    Capkgs

    • Content addressed packages -- new repo: capkgs

    Cardano-ops

    • Cardano p2p relay updates, dbSync snapshots server update, monitoring adjustments: cardano-ops-compare

    Cardano-parts

    Cardano-perf

    Cardano-world

    Sanchonet-demo

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-09-01-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-09-01T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-08-29-node-cli-api", + "content_html": "

    2023-08-16 - 2023-08-29

    High level summary

    CLI is making progress towards phases 3 and 4 of SanchoNet.

    • Ability to create info, no-confidence and new committee governance actions.

    • Voting as DREP is possible now on the CLI

    • API is now using Ledger's PParams and VotingProcedures

    • Expose following queries from consensus:

      - GetGovState
      - GetDRepState
      - GetDRepStakeDistr
      - GetCommitteeState
      - GetConstitution

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-29-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-08-29T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-08-28-mithril", + "content_html": "

    High level overview

    The Mithril team created an explorer page with the registered signers to give recognition to the SPOs already running on mainnet. They also worked on refactoring and standardizing errors in the Mithril nodes, and they enhanced the clarity and reduced verbosity of the logs for the signer and aggregator nodes. Additionally, they started working on the implementation of zstandard compression of the snapshot archive, and streaming its download and decompression in the client.

    Finally, they implemented machine readable progress information in the client, and streamlined the process of verifying the registration status of a signer.

    Low level overview

    • Completed the issue Create explorer page with registered signers #1097
    • Completed the issue Simplify logs on the Signer/Aggregator #1106
    • Completed the issue Refactor (de)serialization of crypto entities #668
    • Completed the issue Mithril client last snapshot download #1078
    • Completed the issue Use the '/signers/registered' route to verify if a signer is registered #1152
    • Worked on the issue Provide progress information with '--json' option in Client #1095
    • Worked on the issue Use 'zstandard' compression for snapshot archives #876
    • Worked on the issue Make client download and extract the archive simultaneously #1115
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-28-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-08-28T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-08-25-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team conducted the monthly review meeting for Agust,which\ncontinously ensures transparent communication and project evaluation.

    In terms of community engagement, the Hydra team gave a Hydra master-class at\nRareEvo workshop as an educational initiative for the community.\nAdditionally, the team updated the Hydra demo and tutorial to include Mithril\nand latest release changes.

    They also focused on exploring the Hydra network resiliance in order to improve\nhydra-node availability, as it becomes stuck very easily and that leads to a\nbad user experience.

    What did the team achieve this week

    • Hydra master-class at RareEvo workshop!
    • Monthly report & review meeting
    • Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff
    • Groomed network resilience and explorer features #188
    • New ADR for “Resourced based API” #1028

    What are the goals of next week

    • Have a poc on network resilience working #188
    • Fix issue #931: “Chain state in head state not updated on replayed observation”
    • Fix issue #1039: \"Close transaction dropped from cardano-node\"
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-25-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-08-25T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-08-24-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: Benchmarking node version 8.2.1 has concluded. Additionally we're developing benchmarking setups for GHC9.6 and UTxO-HD.
    • Infrastructure: Our analysis pipeline has received improvements reducing memory footprint.
    • Tracing: Another batch of optimizations for the new tracing system has been merged; work on namespace consistency guarantees is ongoing.
    • Nomad backend: We're performing and analysing various runs for validation purposes on the new hardware cluster.

    Low level overview

    Benchmarking

    We've performed and analysed the benchmarks for the 8.2.1 version of cardano-node as part of our release benchmarking cycle.

    Setting up cluster benchmarks requires completing full system integration. This applies to both supporting a new build platform, as is GHC9.6, as well as targeting a specific feature, like a UTxO-HD enabled node. Currently, we're working on respective integrations on both those paths.

    Infrastructure

    As cluster runs increase in duration, more and more data is accumulated for analysis. Batch analysis mode needs all data to be held\nin memory, which wouldn't fit anymore even on a 64GB RAM machine. Changes to the in-memory data representation improving on compactness were able to reduce the RAM requirements of our analysis pipeline.

    Tracing

    The next portion of optimizations has been completed and merged to master, getting rid of Haskell's native String representation on critical code paths. This concludes the optimization phase of the new tracing system for all its components used by cardano-node.

    The implementation for validation of consistent naming and configuration is ongoing. We're splitting out everything that's verifiable at compile time into a seperate test case which we hope to integrate into CI - leaving only configuration constraints to be verified at or before node startup.

    Nomad backend

    The verification phase of the nomad cloud backend is ongoing. We're able to perform full runs on the new hardware cluster\nand porting profiles and configurations from the legacy one. The goal is to reproduce with confidence known regressions, or improvements, between runs performed on the legacy cluster and runs performed with the new backend.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-24-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2023-08-24T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-08-23-consensus", + "content_html": "

    High level summary

    On the UTxO-HD front we reached another important milestone, where we handed over the implementation for benchmarking and testing. We are working on addressing the first issues that were found during the integration tests.\nOn the Genesis front we are finalizing the argument that a checkpoint is not necessary for the initial release, including supporting to support said argument. We are also working on the new node release, and several improvements to our code-base.

    UTxO-HD

    • We addressed the issues that came from the benchmarking and testing phase (see #314).
      • We fixed the operational-certificate update exception (#305).

    Tech debt

    • We elaborated an inventory of the symbols used by downstream clients in an effort to clearly define the Consensus API, which will help managing changes and their impact to the downstream clients (see this branch).
    • We extracted the SOP modules to a separate package as part of our effort to reduce the Consensus API surface area (see this branch).
    • We took the first step towards improving how the Cardano hard-fork block is instantiated when running a node (see #275).
    • We decreased the flakiness for our test suite (#284).
    • We incorporated and merged the pull-request on query versioning (#273).
    • We started working on new performance-based regression tests for mempool operations.

    Support

    • Nick Frisby continues with his engineer responsibilities. Notably getting the Consensus release out for node pre-release 8.3. Nick also began integrating it into downstream branches (cardano{-api,-cli,-node}). The Node team has now taken over, since Nick had progressed up to the point where they needed to start making new design decisions. Related PRs:
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-23-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-08-23T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-08-18-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    The team is currently formalising mini protocols and also further\ndeveloping the performance modelling prototype.

    Details

    • Development of an automated prover for showing conformance of\nprograms to state machines (as part of the mini-protocol framework)

    • Completion of the documentation of the (current state of the)\nmini-protocol framework

    • Discussion about two DeltaQ lectures with two practical sessions as part\nof 4th year masters course on distributed systemsby colleagues at UC\nLouvain in the Autumn

    • Discussion about four DeltaQ lectures by colleagues at U. Bergen as part\nof a 5th year Masters course in the Autumn

    • Adapted original DeltaQ implementation to the new typeclasses and\nwrote property tests for its algebraic laws

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-18-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-08-18T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-08-18-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team released version 0.12.0, a significant update that\nbrings support for cardano-node 8.1.2, along with performance enhancements and\nvarious API improvements. Additionally, the team successfully onboarded a new\ncontributor who is now actively participating in operating a Hydra Head. They\ntook part in a meeting of the Intersect open source committee and prepared the\nHydra master-class for RareEvo, an educational initiative for the community.

    If you happen to be at RareEvo, register for the Hydra master-class using this\nform.\nWe hope to make it possible to follow along on-line as well and will announce\ndetails on the Hydra announcements channel on the IOG discord\nserver.

    What did the team achieve this week

    • Released version 0.12.0 which adds support for cardano-node 8.1.2, performance\nand several API improvements. Release notes
    • Replaced commit via websocket with external draft + submit. #954
    • Onboarded new contributor to the point where he actively participates in operating a Head now.
    • Joined a first meeting of the Intersect open source committee
    • Prepared the Hydra master-class for RareEvo.

    What are the goals of next week

    • Monthly review meeting
    • Run the Hydra master-class at RareEvo!
    • Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff
    • Clear out red bin items (technical debt)
    • Groom network resilience and explorer features
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-18-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-08-18T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-08-18-ledger", + "content_html": "

    High level summary

    The ledger team made great progress in advancing Conway era forward. In particular, voting\nfor DRep and Stake Pool Operators is now at the state that can be used by downstream\ncomponents. Addition of new ledger state queries makes it possible to verify changes to\nthe governance state, such as placement of votes, submission of governance proposals,\ninspecting DRep stake distribution and more. Addition of treasury withdrawals concludes the\nability to enact all of the governance actions, except for the hard fork initiation.

    Low level summary

    Conway progress

    • pull-3577 - Move PParams to GovState
    • pull-3609 - Adjust thresholds for sanchonet
    • pull-3604 - README: update CIP-1694 link
    • pull-3616 - Switch TreasuryWithdrawals to use RewardAcnt
    • pull-3599 - Add governance action well-formedness check
    • pull-3607 - Rename governance to gov
    • pull-3601 - Added DRep anchors
    • pull-3615 - Add optional previous GovActionId in some ProposalProcedures
    • pull-3596 - Upgradeable families
    • pull-3625 - Change constitution to use Anchor
    • pull-3592 - Added pulsing incremental computation of the DRep distribution
    • pull-3523 - Treasury donations
    • pull-3633 - Prevent state changes on phase2 failure
    • pull-3634 - Disable serialization of protocolVersion param update
    • pull-3630 - Implemented DRep refreshing
    • pull-3640 - Remove crypto parameterization from AnchorData
    • pull-3636 - Implement DRep ratification with an \"always passing\"; threshold
    • pull-3648 - Governance queries
    • pull-3650 - Change environment for ShelleyPOOLREAP rule
    • pull-3658 - Set DRep ratify threshold to 51%
    • pull-3628 - DELEG, POOL, GOVCERT conformance with Spec v0.8

    Testing

    Improvements and releasing

    • pull-3660 - Fix bounds and versions
    • pull-3661 - Adjust versions, bounds and CHANGELOGs to account for the latest release
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-18-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-08-18T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-08-18-network", + "content_html": "

    High-level overview of sprint 42

    Eclipse Evasion

    We merged and released a new version of the ouroboros-network package (version\n0.9.0.0) which includes big ledger peers feature.\nThis is the primary peer selection mechanism to defend against eclipses. We\nalso prepared a PR to updated ouroboros-cosnensus\nand ekg-forward packages.

    CDDL specs for protocol codecs

    We made the cddl spec for network codec more inline with the implementation\nwhich is highly polymorphic. cddl doesn't have the notion of polymorphism,\nbut has any which can generate any valid cbor term. We matched it with an\nAny type on the Haskell side and made all remaining tests & specs use it.\nThis simplified the specifications and made it easier to understand which parts\nare defined in the spec, and which parts are left unspecified. See\nouroboros-network#4595.

    Ouroboros-Network-Framework API changes

    We also released ouroboros-network-framework and other network components.\nThe ouroboros-network-framework package contains a redesign of API exposed to\nouroboros-consensus. We consolidated, cleaned it and made it easier to\nextend in the future if there will be new arguments that need to be passed to\nmini-protocol initiator and responders which comes from the low-level network\nlayer.

    Nix setup (CI)

    We also made a major review of our nix setup. With help from our DevX team\nwe ended up with a clean flake.nix file which can:

    • compile & test the code on x86_64-linux, x86_64-darwin and aarch64-darwin
    • cross-compile to Windows on x86_64-linux

    And provides a shell which contains all the build tools, including ghc-9.6,\nhls, cddl, and more. See ouroboros-network#4640,\nouroboros-network#4643.

    Other contributions

    Cardano Network Service Assurance

    • The work and writeup in finishing up the CNSA, first stage (first\ncontract).
    • Getting Sam Cowger (Galois Inc) up to speed.
    • The IOG Networking team carried a reivew of CNSA project progress: a limitted\ncode & design review.

    Galois Review

    Sam Cowger and Mark Tullsen (Galois Inc) have made some progress on each of the tech debt issues

    scoping, requirements, and getting started.

    CI

    We added a nightly run for GitHub actions and made the GitHub actions test be\nexecuted with extra concurrency ouroboros-network#4637, ouroboros-network#4649.

    We also added GitHub's dependabot ouroboros-network#4650.

    Bootstrap Peers

    We settled on implementation design of bootstrap peers which is being\nimplemented, ouroboros-network#4615.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-18-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 42", + "date_modified": "2023-08-18T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-08-18-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Sanchonet and shelley-qa environments were updated to 8.2.1-pre.
    • Work on two new repos utilizing flake parts for cardano cluster generation, automation and operation.

    Lower level summary

    Cardano-ops

    Cardano-parts

    Cardano-perf

    Cardano-playground

    Cardano-world

    Inputs-check

    • A flake parts module to check input closure sizes recursively for optimization considerations: inputs-check
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-18-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-08-18T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-08-17-crypto", + "content_html": "

    High level summary

    The open fronts that the crypto team is working on are:

    • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
    • mithril: Full node verifier
    • musig2: Include MuSig2 description in cryptography handbook
    • kes_agent: Finilising test and CI. Working on KES binary

    Low level summary

    Mithril

    • Full Node Verifier merged #939.

    MuSig2

    • Started describing MuSig2 to include it as part of the cryptography handbook

    Sidechains

    • Analysis of Halo2 verifier with the goal of implementing SNARK verifier in Plutus. Implemented ad-hoc IPA verifier. Work progress in this fork.

    KES agent

    • KES agent is ready:
      • CI ready #19
      • Receipt confirmation message #20
      • KES agent binary ready #21
      • Control client implemented #11
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-17-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2023-08-17T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2023-08-17-db-sync", + "content_html": "

    High level summary

    We have integrated many new Conway feutures and allow db-sync to sync sanchonet.\nWe also continued testing and improving the new db-sync options.

    Lower level summary

    • Conway integration\n#1484
    • Support for Sanchonet\n#1476
    • Stake distribution is computed earlier\n#1484
    • Deposit ledger events are now used. This reduces the db queries and makes syncing faster\n#1484
    • Testing new db-sync options\n#1466
    • Added support for ghc-9.6\n#1479
    • Tech debt: improve exceptions\n#1471
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-17-db-sync", + "title": "DB-sync Team Update", + "summary": "High level summary", + "date_modified": "2023-08-17T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2023-08-17-secp-issue", + "content_html": "

    Security Issue Report: SECP256k1 bug

    Date Occurred: July 15, 2022\nSeverity: Potentially Very High if exploited on Mainnet\nAuthors: Iñigo Querejeta Azurmendi

    Date of Report: August 17, 2023

    Summary of Issue

    Criticality Level

    Actually low (since the issue was detected prior to deployment) but potentially very high if it had been deployed to mainnet\nContext

    New SECP256k1 Plutus bindings were being introduced in order to support interoperability with other major chains, such as Bitcoin and Ethereum. The intention was to deploy these as part of the Vasil hard-fork. The bindings were considered to be a low-security risk since the underlying library functions were well tested and had been deployed on other blockchains.\nHow was the Issue Detected

    The issue was detected via specific End-to-End tests that had been commissioned. It was (accidentally) triggered on the Cardano Testnet before a fix could be deployed there.

    What Action was Taken

    The Cardano Testnet was permanently halted, and new test environments were deployed (Preview and Pre-Prod).\nFixes were applied to prevent the use of the primitives.\nA full security audit was carried out on the bindings.\nThe rollout of the primitives was postponed to a new hard fork (Valentine)

    Potential Effect

    The potential effect was that an adversary might be able to craft invalid Plutus transactions to crash any node, requiring execution of the Cardano disaster recovery plan to revert to a safe state and bypass the transaction.

    Actual Effect

    • Delay to the Vasil hard-fork
    • Temporary removal of SECP256k1 primitives
    • Additional hard-fork to introduce SECP256k1 primitives

    Ongoing Mitigations Needed, if any

    None

    Responsibility for Mitigations

    Core team

    Detailed description of Incident

    New Plutus secp256k1 cryptographic primitives for Plutus v2 failed to apply the necessary validity checks on the input data, meaning that the primitives could theoretically be used in an unsafe environment. The vulnerability was present in recent node versions (1.35.0 onwards), including ones deployed to Cardano Testnet.

    The problem was not in the deserialization functions of the underlying library (Bitcoin's library) but rather that the Haskell functions that implemented the Plutus builtins were not calling them correctly. In particular, the library functions were designed to take structured data as input. However, the Haskell FFI implementation that was produced for the Plutus builtins allowed a caller to pass in (possibly) unstructured data. There were no checks that these data were structured in the correct way. This issue was detected during End-to-End testing.

    • This is the ECDSA signature verification algorithm that was used. It takes a SECP256k1_pubkey as input. That type is an opaque type with an expected structure: a parsed and valid public key. It was not immediately obvious that structured data needed to be passed to allow the function to be used safely.
    • The same happened with the Schnorr verification function. It takes as input a SECP256k1_xonly_pubkey, which is again an opaque structure that holds a parsed and valid public key.

    The FFI skipped checks over these structured keys and directly passed the raw bytes that were given as arguments. If an adversary were to pass in data that was not properly structured, then it could result in unexpected behavior of the library. This could perhaps translate into an adversary being able to crash the nodes that ran these functions. All nodes in the network could be crashed by a single transaction that would then be executed repeatedly, so stalling the network until the disaster recovery process was initiated.

    The fix was addressed in this PR. It consisted of using the external representation that the deserialization function expects and running the deserialization prior to signature verification. This was audited by security experts.

    Recommendations

    • Check all new Plutus bindings for correct use.
    • Audit all new Plutus built-in bindings.
    • Continue to develop specific End-to-End tests for all new Plutus features.
    • Do not assume that any existing library functions are \"safe\". Treat all external calls circumspectly.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-17-secp-issue", + "title": "SECP bindings Security Issue Report", + "summary": "Security Issue Report: SECP256k1 bug", + "date_modified": "2023-08-17T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto", + "incident" + ] + }, + { + "id": "2023-08-15-node-cli-api", + "content_html": "

    2023-08-02 - 2023-08-15

    High level summary

    • cardano-node 8.2.1 (pre-release) to SanchoNet
    • Continue moving CLI into era-based top level command structure
    • Wire-up DREP key generation,
    • Fix DREP deregistration certificates
    • Implement Constitutional Committee Key generation on the CLI
    • Introducing era-based protocol parameters on the API
    • Removing depracated functions and types on the API

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    Fix broken links in docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-15-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-08-15T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-08-11-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team updated hydra-node to support cardano-node version\n8.1.2, ensuring compatibility with the latest mainnet release. The team also\nparticipated in discussions about a \"cardanonical\" JSON schema and added it as a\nsubmodule to the project, contributing to improved data modeling and\ninteroperability.

    In terms of community engagement, the team successfully onboarded a new\ncontributor, also participated in a RareEvo Twitter space, and continued\npreparations for the Hydra master-class.

    What did the team achieve this week

    • Updated dependencies to support cardano-node 8.1.2 #1007
    • Engaged in discussions about a cardanonical json schema and\nadd it as submodule to the project\n#1013
    • Onboarded a new contributor to the hydra project (@locallycompact)
    • Joined RareEvo twitter space and continued preparation of hydra master-class

    What are the goals of next week

    • Update & streamline tutorial to work with latest version of hydra-node
    • Remove the internal commit functionality #954
    • Release 0.12.0
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-11-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-08-11T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-08-11-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: We've concluded benchmarking node version 8.2.0.
    • Tracing: Optimization of the new tracing system has been merged; we're currently working on self-documenting tracing configuration.
    • Nomad backend: A PR that makes our backend take advantage of added flexibility of the new hardware cluster has been merged.

    Low level overview

    Benchmarking

    As part of our release benchmarking cycle, we've completed and analysed the runs for the 8.2.0 version of cardano-node. In addition to the adjustment of sanity checks in our automation, we had to implement small changes in the analysis pipeline as well to accomodate the new version.

    Tracing

    A significant amount of optimizations for the new tracing system has finally been merged to master. At the moment,\nwe're working on having a trace message self-document the final tracing configuration of a running node. Apart from adding\ninsight into the system, this feature also aims at making future hot reloading of tracing configuration explicit and straightforward.

    Furthermore, we're setting up a final round of system integration level benchmarks comparing new against legacy tracing.

    Nomad backend

    The new hardware cluster permits greater flexibility as far as SSH access is concerned. By using nomad for a consistent\nand reliable deployment, but taking advantage of direct connections for healthchecks and data transfer we believe we were\nable to reduce overall network latency in the nomad cluster. This improves confidence when capturing all network related measurements during our benchmarks.

    A PR that adds these capabalities to our nomad backend - along with very many quality-of-life improvements - has been merged to master.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-11-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2023-08-11T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-08-10-mithril", + "content_html": "

    High level overview

    The Mithril team completed the Mithril protocol’s mainnet beta launch: the release-mainnet network is now consistently producing new certificates and snapshots! The team has released a new distribution 2331.1 which includes some optimizations and bug fixes: the bootstrap time of a Cardano node restored from a Mithril snapshot has been significantly reduced, and a bug that made the aggregator produce corrupted archives has been fixed. They also kept working on the implementation of the stress test tool for benchmarking the aggregator: the first phase has been implemented, as well as a monitoring feature. Additionally, they kept implementing the refactoring of the serialization/deserialization of the entities of the cryptographic library, and working on the post deployment of the mainnet infrastructure.

    Finally, they completed the rewriting and enhancements of the documentation website, and they completed the runbook for operating a production Mithril network.

    Low level overview

    • Released the new distribution 2331.1
    • Completed the epic Release 'mainnet' Mithril network #918
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Completed the issue Design & implement basic stress test tool for aggregator - phase 1 #991
    • Worked on the epic Post deployment 'mainnet' infrastructure #1091:
      • Completed the issue Create Production Infrastructure Runbook #1085
      • Completed the issue Ingest 'mainnet' metrics/logs in Grafana #1122
    • Worked on optimizations:
      • Completed the issue Add a 'clean' file to extracted database in client #1131
      • Worked on the issue Create explorer page with registered signers #1097
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on bugs:
      • Completed the issue Client fails to unpack some snapshot archive #1137
      • Completed the issue The 'release-preprod' network stopped producing certificates #1114
      • Completed the issue The 'release-mainnet' network does not show up in the explorer #1111
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.2' #1090
    • Worked on troubleshooting:
      • Completed the issue Signer can't sign with 'Invalid signature for party' error #1125
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-10-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-08-10T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-08-09-consensus", + "content_html": "

    High level summary

    This week the Consensus team worked on integrating the latest node release into the UTxO HD branch. Our ad-hoc benchmarks in which we sync a node from scratch showed that the LMDB backend uses around 8GB of memory. We also released new versions of fs-sim and fs-api, and released strict-checked-vars.

    UTxO-HD

    • Rebased UTxO-HD on top of node 8.2 (issue)
    • Address new Maybe translations for UTxOs in Conway 1.6. (PR).
    • Performed ad-hoc benchmarking syncs with both implementations. The LMDB backend uses around 8GB of memory.
    • Fixed an infinite loop on the mempool tracing code that was preventing the node from shutting down gracefully.
    • Fixed an infinite loop on the ledger state query for traversing queries that prevented the node from running QueryUTxOByAddress (PR).
    • Measured the speed of QueryUTxOByAddress under different queryBatchSize values. There is a significant performance degradation for these queries when using the UTxO-HD version. Using the mainnet UTxO set at slot 90 million, querying an address took 40 seconds using the in-memory backend and 90 seconds using the LMDB backend, whereas the baseline took 7 seconds. We need to investigate if we can improve this situation or whether an external service that runs alongside the node is a better solution.
    • Refactored and implemented ledgertable-related classes for the general HardforkBlock.

    Genesis

    • Frisby and Esgen continue to engage with the Researchers on grinding against the Genesis design.

    Fostering collaboration

    • Drafted a document explaining versioning of local state queries #273.

    Support

    • Frisby is the release engineer this cycle.
    • Successfully created work-in-progress ouroboros-consensus and cardano-api commits that integrate the 2023 Aug 7 tip of cardano-ledger. This will require a release of ouroboros-consensus, which hasn't happened yet.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-09-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-08-09T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-08-04-crypto", + "content_html": "

    High level summary

    The open fronts that the crypto team is working on are:

    • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
    • mithril: Full node verifier
    • musig2: Finalised the missing fuzz tests
    • kes_agent: engineer on PTO. Work halted

    Low level summary

    Mithril

    • Work on a mithril flaky test #1105
    • Keep working on Full Node Verifier #939.\nShould be merged in the coming week.

    MuSig2

    • Finalised the fuzz tests #43

    Sidechains

    • Analysis of Halo2 verifier. Necessary for a future implementation of a plutus verifier.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-04-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2023-08-04T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2023-08-04-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    The team is formalising mini protocols and also further developing the\nperformance modelling prototype.

    Details

    • Developing new framework for specification and verification of\nmini-protocols which is closer to the Haskell implementation.

    • Developed a new internal representation for the DeltaQ algebra that\nallows for more modularity in backend implementations

    • Discussions regarding the Cardano networking specification

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-04-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-08-04T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-08-04-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team achieved notable progress in various aspects of the\nproject. The team updated the use case section for auctions on the /unstable\nbranch of the website, improving the understanding of Hydras applicability.

    From the development side, the team successfully completed event-sourced\npersistence, a key enhancement in the projects architecture which improves\noff-chain transaction processing performance. They also added a\nsubmit-transaction endpoint to the API.

    In addition to project-related progress, the team actively engaged in community\nreviews for several catalyst proposals related to Hydra and Mithril,\ncontributing to the wider Cardano ecosystem.

    Finally, the full report for the month of July was also published here.

    What did the team achieve this week

    • Published the monthly report for July
    • Updated the use case section for auctions (published on /unstable branch)
    • Completed event sourced persistence #913
    • Added a submit-transaction endpoint to the API #966
    • Community reviews for several catalyst proposals related to Hydra and Mithril
    • Created a network testing tool (hydra-net) #1006

    What are the goals of next week

    • Update hydra-node to work with cardano-node version 8.x
    • Remove the internal commit functionality
    • Release version 0.12.0
    • Update & streamline tutorial to work with latest version of hydra-node
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-04-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-08-04T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-08-04-ledger", + "content_html": "

    High level summary

    The ledger team was working almost exclusively on the Conway era implementation. In\nparticular, the main focus was directed towards solidifying transaction related types and\ntheir binary representation. We also directed some effort into unblocking Plutus team with\nrespect to PlutusV3 integration.

    Low level summary

    Conway progress

    • pull-3552 - Allow Constitutional Committee Hot Key to be ScriptHash
    • pull-3581 - Make Constitutional Committee Cold Key to be ScriptHash
    • pull-3571 - Implement a portion of the TICKF rule.
    • pull-3556 - Add Script to Constitution
    • pull-3576 - Add optional Anchor to ConwayRegDRep certificate
    • pull-3495 - Implement refund logic for Proposal deposits
    • pull-3579 - Change voting procedure in the transaction to a nested Map
    • pull-3585 - Rename CommitteeCert into a GovCert
    • pull-3587 - Remove DelegStakeTxCert from the COMPLETE pragma for TxCert
    • pull-3586 - Add CurrentTreasuryValue to TxBody
    • pull-3588 - Rename key roles
    • pull-3557 - Update NewCommittee action to use RewardAcnt and add more info
    • pull-3595 - Add ConwayUpdateDRep constructor to ConwayTxCertGov type
    • pull-3600 - Filter out zero TxOuts on Byron/Shelley boundary instead of Babbage/Conway
    • pull-3597 - Update ProposalProcedure return address to be a RewardAcnt

    Testing

    • pull-3374 - New features for generation subject to constraints
    • pull-3519 - Basic Conway features test

    Bugfixes

    Plutus integration

    • issue-3538 - A fairly complete specification was created for the PlutusV3 context
    • pull-3593 - Conway TxInfo for PlutusV3 is now compatible with all pre-Conway functionality

    Improvements and releasing

    • pull-3574 - Improve clarity and performance of collateral Non-ADA validation:
    • pull-3573 - Update top-level CHANGELOG.md with cardano-node relevant changes
    • pull-3555 - Bump pygments from 2.12.0 to 2.15.0 in /doc
    • pull-3575 - Bump certifi from 2022.12.7 to 2023.7.22 in /doc
    • pull-3567 - Backport mint field translation bugfix
    • pull-3568 - Fixed typo in byron ledger spec
    • pull-3572 - Release/backport tickf bugfix
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-04-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-08-04T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-08-04-network", + "content_html": "

    High-level overview of sprint 41

    24th July - 6th August 2023

    We started the implementation of bootstrap peers. Bootstrap peers are designed\nto provide a safety guarantee for nodes joining the network while still taking\nadvantage of the distributed network for nodes that are synced. This will be\nan intermediate step before Genesis which will allow for further distribute the\nsystem. The bootstrap peers will be run by some trusted partners like CF,\nEmurgo or IOG. They are primarily designed for leaf nodes (e.g. full node\nwallets), which often end up syncing and require access to the honest chain. See\nouroboros-network#4615 for a more detailed implementation plan.

    Other contributions

    We started to use nothunks library to discover if we have any unevaluated\nthunks which can lead to memory leaks ouroboros-network#4633. We found\na small one in the peer metric component of the P2P networking stack. Fixing\nit put us on a small detour of fixing the API of the strict-checked-vars\npackage: cardano-base#431, cardano-base#432, as well as adding NFData\ninstance to io-classes. We also improved nothunks\nlibrary to make debugging easier and we provided a NoThunks instance for\nThreadId which we will need in the future (see nothunks#33).

    We released a new version of io-classes (version 1.2.0.0) and related\npackages to Hackage.

    We addressed all review comments on the eclipse evasion PR which introduces big\nledger peers, ouroboros-network#3886.

    We fixed how SIGHUP signal handlers are registered, so it's not possible to\nshutdown a node which was starting while trying to update network topology,\nsee cardano-node#5421.

    I didn't mention that in the previous update, so here it goes: in the previous\nsprint we released ouroboros-network-0.8.2.0 and\nouroboros-network-framework-0.7.0.0.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-04-network", + "title": "Network Team Update", + "summary": "High-level overview of sprint 41", + "date_modified": "2023-08-04T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-08-04-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: We're adjusting the benchmarking cluster to handle runs for node version 8.2.0.
    • Tracing: We've finished optimization of the new tracing system and added extra robustness with regard to namespacing.
    • Infrastructure: We've been working on making all benchmarking code compliant with the latest GHC9.6.
    • Nomad backend: The new backend has seen adjustments due to a change of underlying hardware. Additionally, we've successfully performed various benchmarking runs on it.

    Low level overview

    Benchmarking

    The 8.2.0 version of cardano-node required adjustment of some of the sanity checks that are part of our benchmarking\ncluster automation. We've pinpointed the necessary changes and are currently setting up the cluster for the new node version.

    Tracing

    The optimization efforts for the new tracing system have been completed and have significantly reduced the resource footprint\nwhen using it as default for a running node.

    A linchpin of the new system is the organization of traces into a namespace hierarchy. This affects configuration, self-documentation as well as rendering of desired trace messages. The new system is now equipped to detect any\ninconsistency in the whole set of tracers, defined across all components, even if they are never turned on in a running node.\nThis feature adds another layer of robustness to the whole system.

    Infrastructure

    A potential switch to GHC9.6 (or higher) required some work on our code bases to make it compliant with recent compiler\nversions. We've future-proofed our benchmarking code.

    Nomad backend

    The hardware cluster that our nomad backend was accessing has been changed, and we were able to adjust our backend\naccordingly without touching its higher level abstractions and functionality. Moreover, with the new hardware and cluster setup, certain tasks such as retrieving run artifacts or healthcheck monitoring have become more performant.

    The validation phase is ongoing. We were able to perform successful runs and analyses for various 8.x node versions, including 8.2.0-pre. With parallel runs on the current cluster, we hope to measure the same effects we've observed with the\nnomad backend - which will be a big step towards production use.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-04-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2023-08-04T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-08-04-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Preprod and preview envionments were updated to 8.1.2.
    • Sanchonet and shelley-qa environments were updated to 8.2.0-pre.
    • Work on a new cardano performance repo which utilizes a lightweight Cloudformation/Rain to Terraform infra bootstrap and Nomad environment has begun.

    Lower level summary

    Cardano-ops

    Cardano-perf

    Cardano-world

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-04-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-08-04T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-08-01-node-cli-api", + "content_html": "

    2023-07-19 - 2023-08-01

    High level summary

    • Release of Node 8.2.0
      • Updates to the ledger packages extend progress on the Conway ledger era to support new governance features via CIP-1694.
      • This release is phase 1 of the SanchoNet roll out
      • Allows SPOs to vote on changes to the on-chain constitution.
      • Ability to start the node in block production mode with no secrets loaded using the --non-producing-node flag.
      • Updates to the networking packages prepare the road for peer sharing.
    • cardano-cli and cardano-api continue to integrate Conway era features
    • Continue refactoring of cardano-testnet

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-08-01-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-08-01T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-07-31-network", + "content_html": "

    Network Update (Sprints 39 & 40)

    The network updates got distracted. Mostly because of me leaving for the meeting in Edinburgh, Scotland and the being away.\nIt was great to see and talk to so many of the community members.

    Sprint 39 (Jun 26 - Jul 09)

    Major changes

    Now the following list of traces will be turned on by default:

    node-to-client protocol
    • LocalConnectionManagerTracer
    • LocalInboundGovernor
    • LocalHandshake
    • LocalServer
    node-to-node protocol
    • Server

    See cardano-node#5353. This will be released in node-8.2.0.

    We made sure that cardano-client-0.1.0.x library (which is db-sync) is not using the experimental node-to-client protocol.\nThe cardano-client-0.2.0.0 was not affected.\nSee ouroboros-network#4612.

    We merged the dynamic block production feature to ouroboros-consensus (also available in the cardano-node-8.2.0 release).\nDynamic block production enables hot-swap p2p nodes, which are important for the p2p deployment of block-producing nodes.\nSee ouroboros-network#3159, [ouroboros-consensu#140].

    We continued to review the implementation of big ledger peers for eclipse evasion, see ouroboros-network#4462.

    Minor changes

    Sprint 40 (Jul 09 - Jul 23)

    Major changes

    We integrated ouroboros-network-0.8.2.0 with the master branch of cardano-node for the 8.2.0 release (the version match between ouroboros-network and cardano-node is purely accidental).\nThis includes:

    • integration with dynamic block production feature.\nThis feature is documented in the following PR.
    • Warm valency for local root peers (see below).

    For the full list of features included in the 8.2.0 release from the network side, please take a look at the pre-release nodes.

    We improved the memory footprint of peer metrics measured by the P2P stack.\nPeer metrics are used to decide which peers to demote every churn interval (roughly every hour with some probabilistic fluctuation).\nSee ouroboros-network#4620.\nThe improvement will be available in cardano-node-8.2.0.

    We added an optional explicit warm valency to local root peers of the P2P topology file.\nPreviously we used an implicit valency, e.g. the node keeps connections to all of the local roots; with local warm valency the node will pick only that many peers from the local root peers group to connect to.\nThe hot valency (previously known simply as valency) hasn't changed, but it must be smaller than the warm valency as hot peers are selected from warm ones.\nWarm valency is a useful feature to limit resource consumption if one of the domain names in the local root peer group resolves to many IP addresses.\nSee ouroboros-network#4575, cardano-node#5409.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-31-network", + "title": "Network Team Update", + "summary": "Network Update (Sprints 39 & 40)", + "date_modified": "2023-07-31T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-07-28-hydra", + "content_html": "

    High-level summary

    During this week, the Hydra team achieved significant progress in various areas.\nThey conducted the monthly review meeting for July, which continously ensures\ntransparent communication and project evaluation. The team migrated the core\nlogic of the node to an event-sourced architecture and incremental writes of\nevents to persistence, enhancing the projects performance and maintainability.\nFurthermore, the team added the ability to read protocol parameters via the API\nand fixed the CI workflows to support pull requests from forks of external\ncontributors, streamlining the development process for community involvement.

    What did the team achieve this week

    • Held the monthly review meeting for July (recording)
    • Migrate the core logic of the node to an event-sourced architecture #999
    • Updated persistence to faster incremental writes of events #1000
    • Added ability to read protocol parameters via API #735
    • Fix CI workflows to support pull requests from forks of external contributors #993
    • Updated to GHC 9.2.8 #1005
    • Prepared an updated use cases section on https://hydra.family (published with next release)

    What are the goals of next week

    • Publish monthly report
    • Complete user transaction submission work #966
    • Remove commit from internal wallet (deprecated) #954
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-28-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-07-28T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-07-27-mithril", + "content_html": "

    High level overview

    The Mithril team launched Mithril protocol’s mainnet beta: the release-mainnet network is now open for signer registrations, and its genesis certificate has been created. The team is monitoring the network, and expects it to start producing certificates during the next Cardano epoch.

    They have released a new distribution 2329.0, which is running on the release-mainnet network. They also kept working on the implementation of the stress test tool for benchmarking the aggregator. The team kept working on the refactoring of the serialization/deserialization of the entities of the cryptographic library. Additionally, they completed the cleanup of the legacy store adapters in the aggregator.

    Finally, they have worked on enhancing the documentation for onboarding SPOs and setting up a Mithril signer, and fixing installation bugs of the binary artifacts produced in the CI.

    Low level overview

    • Created the dev blog post Mithril Protocol’s Mainnet Beta Launch
    • Released the new distribution 2329.0
    • Closed the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Deploy 'mainnet' infrastructure #988
      • Completed the issue Handle Secrets management #989
    • Worked on the epic Release 'mainnet' Mithril network #918
      • Completed the issue Prepare SPO on-boarding guide #1049
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on optimizations:
      • Completed the issue Enhance the configuration of Mithril relay #1080
      • Completed the issue Remove legacy store adapters from aggregator #1053
      • Completed the issue Add a 'sign' sub-command to 'genesis' command in aggregator #1081
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on documentation:
      • Completed the issue Enhance 'Run a Mithril Signer node (SPO)' guide #1055
    • Worked on bugs:
      • Completed the issue Shared library error in CI binaries #1073
      • Completed the issue Debian package does not install cleanly on older ubuntu versions #834
      • Completed the issue Aggregator panics with new (de)serialization of 'ProtocolVerificationKey' #1083
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-27-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-07-27T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-07-26-consensus", + "content_html": "

    High level summary

    The db-sync team confirmed that the adaptor module the Consensus team provided for UTxO-HD integration, shows no performance degradation. Other clients who wish to integrate with UTxO-HD without using a on-disk storage could use that same approach for now.\nWe also focused on completing tracing support for UTxO-HD in cardano-node.\nCurrently we are working on UTxO-HD documentation, both for downstream consumers and for the general public; and generalizing the implementation further.

    The team working on Genesis decided on a Genesis-motivated change of the epoch structure with the researchers, wrote a self-contained description of the statistical model for historical Genesis windows and eclipse durations, and merged two small improvements to the ChainSync client as part of the onboarding efforts for the team that will implement Genesis.

    The Consensus team also investigated an issue on sanchonet (the Conway testnet) manifesting in long syncing pauses; identified a ledger bug which was promptly fixed by the Ledger team.

    Genesis liaising

    Improvements to the ChainSync client:

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-26-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-07-26T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-07-21-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team updated the specification to align with recent\noff-chain protocol changes, completed refactoring the snapshot emission\nin preparation for event-sourced protocol logic, and updated to GHC\n9.2.7, resulting in improved compile times and slightly smaller Plutus\nscripts.

    What did the team achieve this week

    • Updated the specification to match the recent off-chain protocol\nchanges to complete\n#728
    • Refactored the snapshot emission logic in preparation for event\nsourced protocol logic.
    • Updated to GHC 9.2.7, which led to improved compile times and\nslightly smaller plutus scripts.

    What are the goals of next week

    • Monthly review meeting next wednesday and July report
    • Reflect latest information onto our roadmap.
    • Actual implemention of event-sourced persistence\n#913.
    • Update the use cases section on https://hydra.family
    • Remove deprecated internal commit\n#954.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-21-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-07-21T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-07-21-ledger", + "content_html": "

    High level summary

    Our focus was on planning and implementing Conway features that we would like to see deployed and running on Sanchonet.\nAll members of the ledger team participated in the CIP-1694 workshop and had an in-person meeting, where we discussed plans forward for the Conway era.\nWe also investigated some transaction validation issues that occurred on preview with the latest node (for 8.2 release).\nAdditionally, we did some preparatory work that will help us define the types we need for Plutus V3 and integrate with the new version when it will become available.\nWe also made progress on the constraint-based generators, which can now generate valid transactions and ledger states.

    What we achieved

    • [pull-3521] [pull-3554] Improved Governance model (GovernanceProcedures, ProposalProcedure)
    • [pull-3520] Improved Governance-related naming (Renamed Tally to Gov and VDel to GovCert )
    • [pull-3531] Refactored and simplified code interacting with Plutus
    • [pull-3558] Fixed a bug that was breaking validation on preview, related to refernce inputs witnesses. We backported and released the fix.
    • [pull-3550] For Conway to run on Sanchonet, we updated the era Translation to remove zero-ADA outputs. This was necessary because such outputs exist on mainnet, but in Conway they are not allowed.
    • [pull-3551] [pull-3546] [pull-3472] Updated tools and added some small improvements
    • [issue-3146] [pull-3498] Introduced Conway protocol parameters
    • [issue-2948] [pull-3499] Implemented ConwayGenesis with the new protocol parameters

    What is currently in progress

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-21-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-07-21T00:00:00.000Z", + "author": { + "name": "Alexey Kuleshevich", + "url": "https://github.com/lehins" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-07-21-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent improvements include:

    • Re-spin sanchonet for testing a new node version followed by fork to Conway
    • Deploying a sanchonet compatible faucet to sanchonet
    • Migrate shelley qa legacy environment to cardano-world

    Lower level summary

    Cardano-node

    Cardano-ops

    • Mainnet relays are 50% migrated to p2p topology and 1 relay per region dedicated for ledger peers: cardano-ops-compare

    Cardano-world

    Iohk-nix

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-21-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-07-21T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-07-20-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    The team is working on formalising mini protocols, the performance\nmodelling prototype and also finishing off their ICE papers.

    Details

    • Formalization of the chain synchronization mini-protocol in the\nthorn calculus

    • Final pre-publication steps for ICE 2023 papers

    • Developing approach for specification and verification of\nmini-protocols

    • Started work on porting the DeltaQ framework to a new, more concrete\nbackend based on piecewise-polynomials

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-20-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-07-20T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-07-18-node-cli-api", + "content_html": "

    2023-07-05 - 2023-07-18

    High level summary

    • Integrate Conway certificates in cardano-api
    • Prepare cardano-cli and cardano-api for cardano-node 8.1.2
    • Tagged cardano-cli 8.3.0.0
      • Query for the hash of the constitution (Conway)
      • Ability to create votes and governance actions
    • Tagged cardano-cli 8.3.1.0
      • Make it build with ghc-9.6
    • Upgrade to optparse-applicative-fork-0.18.1.0 for parsing command line options

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-18-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-07-18T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-07-14-hydra", + "content_html": "

    High-level summary

    This week the team focused on exploring the event sourced persistence in order\nto improve hydra-node performance. Because of this work the team noticed we\nneed to refactor the emit snapshot emission logic and update the spec in the\nlight of new changes. They also took the time to revisit their goals and product\nplans for the next quarter as well as doing some security fixes related to\nmultisignatures.

    What did the team achieve this week

    • Finished spike about performance improvements of event sourced persistence #963.
    • Refactor snapshot emission in protocol logic.
    • Revisited our roadmap and goals.
    • Prepared and conducated a learning session on lean-waste.
    • Improve security of multi-signature checks, see this Github security advisory.
    • Implemented a cache friendly way to version our binaries #962.

    What are the goals of next week

    • Implement Event sourced persistence #913.
    • Remove deprecated internal commit #954 and close #728.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-14-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-07-14T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-07-13-mithril", + "content_html": "

    High level overview

    The Mithril team created a new 2327.0 distribution. They focused on preparing the beta launch on the mainnet: they tested the new production signer deployment model with the pioneer SPOs, they prepared an SPO on-boarding guide, and they kept working on the deployment and monitoring of the mainnet infrastructure. The team also worked on the implementation of a simple stress test tool for benchmarking the aggregator. Additionally, they completed the refactoring of the interface to the cryptographic library.

    Finally, they fixed a bug that sporadically prevented the latest signer registration of a SPO to be used in the associated signing epoch, they fixed a bug in the epoch gap detection of the certificate chain in the aggregator, and worked on multiple other optimizations and bugs.

    Low level overview

    • Released the new distribution 2327.0
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Add infrastructure monitoring #987
      • Worked on the issue Deploy 'mainnet' infrastructure #988
      • Worked on the issue Handle Secrets management #989
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on optimizations:
      • Completed the issue Remove certificate hash from Artifact #932
      • Completed the issue Check vulnerabilities in CI #1037
      • Completed the issue Add 'created_at' in Mithril Stake Distribution messages #1030
      • Completed the issue Add a 'run-only' option in end to end test #1048
    • Worked on refactoring:
      • Completed the issue Factorize protocol crypto operations #669
      • Completed the issue Refactor aggregator dependency injection and services #1058
      • Completed the issue Build static binaries in CI #874
    • Worked on documentation:
      • Completed the issue Prepare SPO on-boarding guide #1049
      • Completed the issue Add instructions to set firewall using iptables #1040
      • Completed the issue Update ufw command to set firewall on Mithril Signer installation instructions #1041
    • Worked on bugs:
      • Completed the issue Aggregator does not detect certificate chain epoch gap #952
      • Completed the issue 'testing-preview' network does not create certificates #1015
      • Completed the issue SQLite compatibility in aggregator #837
      • Completed the issue Q&A followup fixes #1035
      • Completed the issue E2E tests are flaky in CI #1023
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-13-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-07-13T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-07-12-consensus", + "content_html": "

    High level summary

    This week the team working on UTxO-HD discovered a space leak in the peer metrics code. This was communicated to the Networking team who has a proposed fix. The ad-hoc benchmarks that the team ran using a local immutable DB server showed good memory and time performance. We still have to check the performance on a memory constrained machine.

    The team working on the Genesis design started onboarding the team of engineers that will implement the new Genesis protocol. This team is also finalizing the statistical model for historical Genesis feasibility.

    On the support front, the team drafted an information exchange requirement (IER) for the Networking team to safely and efficiently control peer load.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-12-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-07-12T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-07-12-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: The peformance investigation into the compiler switch to GHC9 is ongoing. Additionally, a roadmap for implementing Consensus QTAs has been developed.
    • Infrastructure: Our workbench has undergone some refactoring to seamlessly integrate its profiles into all available backends.
    • Tracing: Optimization of the new tracing system is ongoing and yielding good performance results.
    • Nomad backend: We developed a new feature for the nomad backend which allows pinning deployments to specific machines.

    Low level overview

    Benchmarking

    Our analysis of the GHC9 build of cardano-node has produced several locations in the code base where the new compiler seems to miss opportunities for optimization. Our hypothesis is, that those can account for the difference in resource usage we observe when benchmarking with a full cluster run. Instructing the compiler on how to perform the optimizations which GHC8 apparently applied out of the box requires further investigation.

    In an effort to define Quantitative Timeliness Agreements (QTAs) on a per-component basis, we have coordinated with the Consensus team and developed a roadmap for providing those on consensus level. Making use of the insight that system-level benchmarks allow, we intend to set up and calibrate a benchmark that can reliably predict a regression or optimization for select metrics before needing full integration into cardano-node. This will help tremendously in various ways: catching regressions much earlier, localizing them much easier, avoiding repeated component integration and much shorter feedback cycle.

    Infrastructure

    We have worked on seamless integration of our benchmarking profiles into the many available backends that the workbench provides. The goal was to be backend-agnostic, to guarantee that all benchmarking run artifacts be structurally identical as far as their file name, format and location are concerned. This lead to refactoring work and has already landed in master.

    Tracing

    Much effort went into further optimization of the new tracing system. After working on configuration to align both new and legacy tracing system with regard to their trace frequencies, we could uncover some increase in resource usage. This occurred for corner cases under very heavy load. These cases have been addressed already, and do now surpass the legacy tracing system in terms of performance.

    Nomad backend

    For reliable benchmarking results it is vital to introduce as few confounding factors as possible when performing runs. This includes hardware and network topology. The nomad backend has been outfitted with a mechanism to pin the nomad job for some node in our benhcmarking cluster to a specific machine instance. This greatly increases confidence in the metrics observed from a run.

    Furthermore this feature will detect any change in the underlying hardware or topology so it can be taken into account. The new feature has been merged to master.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-12-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2023-07-12T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-07-07-crypto", + "content_html": "

    High level summary

    The open fronts that the crypto team is working on are:

    • Sidechains: First version of snark-based ATMS
    • mithril: Full node verifier
    • kes_agent: Keep progress, and prepare CIP and CPS
    • CIPs and community: Finishing BLS12-381 CIP and working on a KECCAK CIP

    Low level summary

    kes_agent

    Mithril

    • Final review of the implementation of Full Node Verifier #939.\nIncluded benchmarks and further tests.

    Sidechains

    • Schnorr signature implemented
    • ATMS signature implemented
    • First benchmarks show that for the committe size we expect, we need 2^21 constraints.

    CIPs and community

    • Addressed some review comments in #PR506
    • Worked with the communityt on #PR524 to include Keccak as part of the next Plutus release.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-07-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2023-07-07T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2023-07-07-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    This sprint the teams have been working on finalising their ICE papers\nfor publication in EPTCS, formalising concensus, and investigating chain\nsync.

    Details

    • Preparing final versions of ICE papers

    • Reviewing the chain sync design and documentation

    • Refactoring the thorn calculus

    • First draft of Praos specification

    • Developing bounding factors on timeouts

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-07-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-07-07T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-07-07-hydra", + "content_html": "

    High-level summary

    This week the Hydra team accomplished some nice progress. They secured the\nnetwork layer further by implementing authentication of the messages between the\npeers in the Head protocol. In the process they also managed to separate\nHeartBeat messages from the protocol ones which somewhat improved the quality of\ncode in Hydra. The team also finished work related to sending only transaction\nids in ReqSn messages, fixed an issue in the smoke tests, and improved benchmark\npublishing on the website.

    What did the team achieve this week

    What are the goals of next week

    • Spike on performance improvements of event sourced persistence #913
    • Add new endpoint for submitting client transactions
    • Remove commit from internal wallet
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-07-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-07-07T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-07-07-sre", + "content_html": "

    High level summary

    The SRE team continues work on cardano environment improvements, supporting CI improvements, and general environment maintenance.

    Some notable recent improvements include:

    • Improved cardano-node entrypoint handling to allow for clean restarts in the Nomad environment
    • Explorer component updates
    • Spongix caching server rewrite for R2 Cloudflare support and various performance improvements

    Lower level summary

    Cardano-node

    Cardano-ogmios

    Cardano-ops

    • Improve storage resize script, workaround systemd node signal handling, rescale p2p relays: cardano-ops-compare

    Cardano-rosetta

    Cardano-world

    Spongix

    • Spongix caching server rewrite for Cloudflare R2 backend support plus misc improvements: spongix-simple-branch
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-07-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-07-07T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-07-06-developer-experience", + "content_html": "

    High level summary

    The Developer Experience team has been dealing with day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, CI migration from Cicero to Hydra, and Buildkite to GitHub Actions. iohk-nix, haskell.nix, and devx have seen improvements.

    Lower level summary

    build support & maintainance

    The DevX team has helped troubleshoot a few CI issues, and focused on helping to migrate from Cicero to Hydra, as well as from Buildkite to GitHub Actions.

    compiler upgrades

    Compatibility with 9.6 has been continued and most of our libraries are not 9.6 compatible. Only a few are not, we hope to have this done by the end of the month. We've also started preliminarily adding GHC 9.8 to our infrastructure for early compiler regression tests.

    Hydra Tools

    Our repository, input-output-hk/actions, has seen quite some improvements to facility the hydra <-> github integration.

    haskell.nix

    Haskell.nix has been maintained and updated with the addition of preliminary GHC 9.8 support.

    devx

    The devx repository has seen significant improvements, including the addition of GitHub Codespaces, and DevContainers. Integrated with our actions/devx GitHub Actions, we have a consistent set of tooling for

    • nix develop shells
    • GitHub CodeSpaces integration
    • VSCode DevContainer support
    • GitHub Actions integration

    upstream tooling

    Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-06-developer-experience", + "title": "Developer Experience Update", + "summary": "High level summary", + "date_modified": "2023-07-06T00:00:00.000Z", + "author": { + "name": "Moritz Angermann", + "url": "https://github.com/angerman" + }, + "tags": [ + "devx" + ] + }, + { + "id": "2023-07-04-db-sync", + "content_html": "

    High level summary

    We've made progress in all high level objectives

    • CIP-1694 integration design
    • UTxO-HD integration proof of concept
    • schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2 and tested
    • Many devx issues resolved

    Lower level summary

    • We have improved and validated the design for the Conway integration in db-sync
    • Improved the initial integration of the UTxO-HD feauture branches which are under test
    • Prepared a new release 13.1.1.3 which supports node 8.1.1\n#1455.
    • This also fixes a bug\n#1451
    • Added new tests to the new tx_out options\n#1429
    • Fixed a chronic issue in db-sync related to exception handling and concurrency\nThis fixes many other issues and simplifies the logic in db-sync\n#1447
    • A number of fixes and improvements in ci, docker, devx, docs\n#1436#1442#1448#1452
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-04-db-sync", + "title": "DB-sync Team Update", + "summary": "High level summary", + "date_modified": "2023-07-04T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2023-07-04-node-cli-api", + "content_html": "

    2023-06-21 - 2023-07-04

    High level summary

    • Started integration of conway era into the cardano-api,
    • Pre-release of cardano-cli 8.2.1 which enables creating goveranance \"Update constitution\" governance actionsas well as voting. Both only as SPO. DREP and CC will come in future releases.
    • Cardano-cli is moving to a top-level era command structure (i.e. cardano-cli conway, cardano-cli babbage, etc to accomodate for different fucntionalities available in diferent eras. In particular between Babbage and Conway governance-related functionalities.
    • Continue refactoring cardano-testnet
    • CI and docs house keeping on the new cardnao-cli and cardano-api repositories

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-07-04-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-07-04T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-06-30-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team wrote and published the monthly report for June,\nimplemented the end-to-end functionality for external commits, and tested it on\nthe preview environment. They also listed Hydra as a tool on the Cardano\ndeveloper portal, providing more visibility for the project. The team clarified\nthe path forward for L2 protocol improvements and explored an alternative CI\napproach using cabal instead of nix. Additionally, they released version 0.11.0,\nmarking another milestone in the projects development.

    What did the team achieve this week

    • Written and published the monthly report for June
    • Implemented external commits end-to-end incl. tested it on preview #215
    • Listed Hydra as a tool on cardano developer portal
    • Cleared up path forward on L2 protocol improvements #728
    • Established an alternative CI using more cabal tools #923
    • Release version 0.11.0

    What are the goals of next week

    • Spike on performance improvements of event sourced persistence #913
    • Complete ReqSn only sends transaction ids #728
    • Groom and plan last items for 0.12.0 (remove internal commit)
    • Improve reliability of benchmarks
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-30-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-06-30T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-06-29-mithril", + "content_html": "

    High level overview

    The Mithril team completed the design of the signer deployment model for the SPOs to run Mithril on their Cardano mainnet infrastructure, and implemented the associated Mithril Relay in the Mithril networks. They started working on the design and implementation of a stress test tool for benchmarking the aggregator performances. They worked on the refactoring of the Mithril Stake Distribution entity and the uniformization of the date types in the nodes. They also worked on implementing a new tool command in the aggregator and its first sub-command that helps avoiding re-genesis of the certificate chain when the structure of the certificate is updated. Additionally, they worked on implementing some monitoring for the Mithril infrastructure, and worked on a retry mechanism for the artifact creation of the aggregator.

    Finally, they fixed some bugs, and they completed the upgrade of the Mithril networks to Cardano node v.8.1.1.

    Low level overview

    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Add infrastructure monitoring #987
    • Completed the epic Prepare Mithril Signer deployment model for SPO #862:
      • Completed the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
      • Completed the issue Adapt infrastructure to use Mithril Relay #1018
      • Completed the issue Announce the new signer deployment model in a dev blog post #1017
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on bugs:
      • Completed the issue Aggregator does not exit on critical error #993
      • Completed the issue Computation of master certificate of an epoch is incorrect #1006
      • Completed the issue End to end tests are flaky #954
      • Worked on the issue 'testing-preview' network does not create certificates #1015
    • Worked on optimizations:
      • Completed the issue Dates format is not standardized #946
      • Completed the issue Add 'recompute-certificates-hash' command to aggregator #1001
      • Completed the issue Add a retry mechanism for artifact creation in aggregator #984
      • Completed the issue Log node version at startup in Aggregator/Signer #944
      • Completed the issue Reactivate Publish Results job in CI #978
      • Completed the issue Clean 'pending_snapshot' directory of aggregator #983
      • Completed the issue Update OpenAPI spec examples #1000
    • Worked on refactoring:
      • Completed the issue Refactor 'MithrilStakeDistribution' entity #967
      • Completed the issue Refactoring client #982
      • Completed the issue Refactor download code in client #1010
      • Worked on the issue Factorize protocol crypto operations #669
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.1' #973
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-29-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-06-29T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-06-28-consensus", + "content_html": "

    High level summary

    During the past two weeks the team working on the Genesis implementation continued to engage with the researchers, which resulted in various simplifications of the correctness argument for the historical Genesis window. They also decided on an approach for a syncing node to decide that it is (no longer) caught up. This functionality was requested by the networking team.

    The team working on the UTxO-HD implementation ran ad-hoc benchmarks that showed performance issues, which are being investigated. They also merged several improvements required for the first UTxO-HD release, and added a package for easing integration with other downstream components.

    Regarding our support activities, we integrated the latest Ledger changes into Consensus in preparation for release 8.2 of node.

    Genesis

    • We continued to engage with the researchers on our probabilistic model for historical Genesis window, resulting in various simplifications that make the correctness argument more clear while not being excessively conservative.

    • We decided on an approach of how to implement functionality requested by the Networking team; namely, how a syncing node can safely conclude that it is (no longer) caught up. Certain parameters are still subject to discussion with the researchers, and we have still have to agree on a concrete API for this functionality with the Networking team.

    UTxO-HD

    • We merged the last of the PRs that were part of UTxO-HD improvements for version 0.1: expose UTxO-HD configuration options in the node, refactor ledger tables, and expose a method of computing the UTxO set size.
    • We added a new \"legacy\" cardano block in a new ouroboros-consensus-cardano-legacy-block package that should ease the transition for some downstream packages to UTxO-HD, like db-sync. This is really only useful for downstream packages that use the parts of consensus that don't involve the storage components, in which case we can largely ignore ledger tables. Ignoring ledger tables could also make functionality like block (re-)application more performant for the legacy Cardano block as compared to the actual (UTxO-HD compatible) Cardano block.
    • We performed ad-hoc benchmarks of the UTxO-HD implementation, observing a regression in sync speed in the LMDB implementation as well as a regression in memory usage on the in-memory implementation. We are investigating this.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-28-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-06-28T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-06-28-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: We've performed several new benchmarks and a performance investigation in preparation of switching the default compiler to GHC9.
    • Infrastructure: The first batch of refactoring and documentation for our tx-generator has been merged to master.
    • Tracing: We've looked into an issue where the tracing system's concurrency could prevent a graceful node shutdown.
    • Nomad backend: Our new cloud backend has seen various improvements regarding deployment and monitoring; validation runs for the backend are ongoing.

    Low level overview

    Benchmarking

    The compiler switch to GHC9 as the default build platform for cardano-node and its components still has noticeable effects on system-wide performance metrics. An investigation into the different resource usage profiles of compiler versions does seem to indicate GHC9's significantly different inlining behaviour may produce those effects. We're currently locating the specific places in component code that have the most extensive effect in that regard.

    Using the forge-stress approximation we set up, we could determine that above effect is not due to a range of RTS parameters, as for example the number of capabilites used by the node.

    Infrastructure

    The tx-generator is a crucial part of our tooling responsible for producing very specific workloads for our benchmarking cluster. In an effort to flesh out an API to make it reusable for more general use cases, a first set of refactorings has been merged to master. Additionally, this merge contained systematic documentation both for internal and for exposed areas of the code base.

    Tracing

    The tracing system's concurrency could under certain conditions prevent a graceful shutdown of the node. This issue did occur only after adding specific new traces on a development branch. We could localize and address that issue.

    Nomad backend

    With the data gathered from running the new nomad cloud backend, we've been able to address many, many small and medium-sized improvements. The deployment process has been restructured for better efficiency, and the healthcheck system could be fine-tuned to recognize severity of various conditions that might occur. Optimization of fetching all run data from the cloud for evaluation is in progress.

    Additionally, we're continuing the new backend's validation by setting up test runs and looking into comparative analyses with metrics gathered from the current cluster backend.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-28-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2023-06-28T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-06-23-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    This sprint the teams presented two papers at ICE 2023.

    Details

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-23-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-06-23T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-06-23-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team shared progress updates during the monthly review\nmeeting (monthly report and video recording available soon) and started\nexperimenting on preview network with the new commit from external wallet\nfeature.

    What did the team achieve this week

    • Monthly report & review meeting, demonstrating commit from external\nwallet
    • Published regular benchmarks for\nHydra
    • Moved forward the journey for external commits using multiple script UTxOs\n#903
    • Changed the API to only put transaction id in snapshots, instead of the full\ntransactions #922 -> this\nis now evolved into fully addressing #728
    • Fuel marking is now optional as one can now commit from an external wallet\n#924
    • Add flag option to display node version on tui\n#934

    What are the goals of next week

    • Complete external commits using multiple script UTxOs #903
    • New release 0.11.0
    • Dirtroad solution of improved persistence performance #913
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-23-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-06-23T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-06-23-network", + "content_html": "

    Network Update

    Key contributions

    We held a series of session to review the implementation of big ledger peers\n(eclipse evasion). See #4462.

    We get a request from a 3rd party to clarify an inconsistency between CDDL spec\nand protocol implementation. We worked out a nice solution which takes\nadvantage of the any notion available in CDDL. On the Haskell side we\nprovide Any type which gen generate almost any CBOR term (some are excluded\nonly because they are not decoded back to the same form, and we relay on that\nproperty). See #4580.

    We fixed a bunch of problems of the cardano-cli ping command. It also now has\na limited support of node-to-client mini-protocol (the -c option is\nignored, as it cannot be supported by node-to-client protocol). Note that\nthe format of messages has changed, timestamps are printed in ISO8601 format.\nSee #4601, #5326, #5313, #30

    In order to provide a new flag in the topology file which enables ledger peers\nwhen the chain is close to the tip, we continued to work on #4530. This is\ncurrently in review, the consensus team will need to provide us with the new\napi. This feature is useful for two reasons: makes it easier to maintain\na topology file, it will also limit the traffic on public roots generated by\nfor example full node wallets and distribute it to ledger peers.

    We also continued to work on a blog post which describes the journey of design\n& implementation of the dynamic P2P network layer. Too be announced soon :).

    Other smaller changes

    We limit the concurrency of resolving dns names. Up to 8 root peers or ledger\npeers DNS names are resolved concurrently, and at most 2 local root peer DNS\nnames. See #4596.

    We fixed handshake query timeout in #4603.

    We renamed one of the block-fetch decision constructors as requested by the\nconsensus team, see #4608.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-23-network", + "title": "Network Team Update", + "summary": "Network Update", + "date_modified": "2023-06-23T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-06-23-sre", + "content_html": "

    High level summary

    The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include:

    • A devx-ci cluster containing a Hydra build server and Linux build farm was stood up and is intended to replace Cicero functionality
    • Cardano Sanchonet environment was stood up to test Conway era functionality
    • Cardano-node nixos service was updated to support the latest p2p topology format and non-systemd socket activation use case
    • Cardano-node 8.1.1 was deployed to preview, preprod and mainnet environments

    Lower level summary

    Cardano-node

    • Update cardano-node nixos service for updated p2p topology and non-systemd socket activation: cardano-node-pull-5318

    Cardano-ops

    Cardano-world

    Ci-ops

    Ci-world

    • Add devx-ci cluster integration for caching, monitoring during cicero to devx-ci transition: ci-world-compare

    Devx-ci

    • A CI cluster with a hydra build server was stood up and is intended to replace usage of Cicero: devx-ci-repo

    Iohk-nix

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-23-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-06-23T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-06-16-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team focused their efforts on continuing to investigate and\nexperiment operating a head on mainnet. They collected several bugs and issues\nand worked on fixing them. Now the team is soon to release a new version,\n0.11.0, which comes with a lot of improvements and bug fixes.

    What did the team achieve this week

    • Restored and fixed a bug which stalled our head on mainnet #927
    • Solved one user issue #914
    • Reduced significantly local state size and logs by removing the full scripts from it #928
    • (pending review) Reduced snapshot size in the API, by only including tx ids #922

    What are the goals of next week

    • New release 0.11.0
    • Monthly report & review meeting.
    • Fix some minor bugs discovered when operating our head on mainnet
    • Complete journey for external commits using multiple script UTxOs #903
    • Publish benchmarks and provide regular benchmarks for Hydra #186
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-16-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-06-16T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-06-15-mithril", + "content_html": "

    High level overview

    The Mithril team completed the implementation of the new sub-command for restoring a Mithril stake distribution in the client. They also updated the client’s developer documentation and architecture documentation, and did some refactoring on the client and its dependency injection mechanism. Additionally, they completed and deployed infrastructure enhancements on the test Mithril networks. They also completed the performance tests of the new stake distribution computation on the Cardano mainnet.

    Finally, the team worked on fixing a bug on the client multi-platform test, a bug on the aggregator state machine, and some flakiness on the CI.

    Low level overview

    • Completed on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the issue Create the sub-command for 'Mithril Stake Distribution' in client #896
      • Completed the issue Adapt end to end tests to handle new types of data #899
      • Completed the issue Update client documentation #897
      • Completed the issue Update architecture documentations for new types of data #898
      • Completed the issue Refactoring client #960
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Enhance terraform infrastructure #930
    • Completed the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the issue Check performance impact of new stake distribution command on the 'mainnet' #962
    • Worked on the epic Prepare Mithril Signer deployment model for SPO #862:
      • Worked on the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
    • Worked on bugs and optimizations:
      • Completed the issue Aggregator does not always detect new immutable file #953
      • Completed the issue CI tests fail with Rust '1.70.0' #958
      • Worked on the issue End to end tests are flaky #954
      • Worked on the issue Certificate dates in metadata are not on the same timezone #946
      • Worked on the issue Refactor 'MithrilStakeDistribution' entity #967
      • Completed the issue Fix 'Mithril Client multi-platform test' with new client interface #956
      • Completed the issue Enhance 'ImmutableDigesterError::NotEnoughImmutable' error #969
      • Completed the issue Client 'snapshot download' command fails with option '--download-dir' #979
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-15-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-06-15T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-06-14-consensus", + "content_html": "

    High level summary

    The Consensus team had a very productive meeting with IOG Researchers. We now seem to be in alignment in regards to a strong argument that the Byron and TPraos eras do not need to be checkpointed for an MVP.\nThere is one remaining question (which applies also to the Praos era): how to assess the threat that short forks pose against historical windows that underperformed? We are currently collaborating on that. We also drafted an argument that the updated \"Limit on Patience\" timeout sufficiently bounds how long the adversary can inflate a victim's overall sync time.

    On the UTxO-HD front, the prototype branch was rebased on top of the latest ouroboros-consensus main branch and integrated on top of cardano-node 8.1.1-pre. As a result, the mempool fairness fix that was released recently is now integrated into UTxO-HD.\nWe managed to run a node again with UTxO-HD enabled.\nWe also identified a race condition in the UTxO-HD prototype and fixed it. In addition, we started performing UTxO-HD ad-hoc benchmarks for cardano-node, which uncovered a performance regression on the Network component when using GHC-9.2/9.4. This is being addressed.

    Regarding our support activities, we Released fs-sim-0.2.0.0 and are in the process of preparing the 8.2 release of cardano-node. We also identified and started fixing incorrectly-unevaluated thunks in preparation for enabling CI NoThunks tests.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-14-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-06-14T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-06-14-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: We've continued release benchmarking and established a new baseline for 8.0.0.
    • New tracing: Our benchmarking profile for measuring new vs. legacy tracing performance has been refined.
    • Nomad backend: The healthcheck system for the the nomad cloud has been completed. We've performed the first full runs on the new backend.

    Low level overview

    Benchmarking

    In our release benchmarking cycle, we established a new performance baseline for 8.0.0. Additionally, we've measured\nperformance under various workloads for 8.1.1-pre; the results look promising and validate the optimization efforts\ndone on several system components.

    In the meantime, we've finalized a build plan with GHC9.2 that matches the current one with GHC8.10; a requirement for\nbenchmarking as a large amount of differences in the dependency graph can confound the results for the application code proper.

    Tracing

    The legacy and the new tracing system differ fundamentally in design, implementation and handling. So for metrics to be\nmeaningful in a comparison, benchmarking profiles have to be tuned such that not only log line frequency but frequency of specific\ntrace messages are closely aligned. We've found that higher granularity in this regard was necessary, and done additional work on our dedicated profiles.

    Additionally, we've had a first glance of what additional traces could be valuable in the context of benchmarking UTxO-HD.

    Nomad backend

    As the new backend's healthcheck system in its first iteration can now serve as a guardrail to ensure sanity of a full-length run, we've performed our first 52-node cluster runs on nomad cloud. We're currently smoothing the edges around cluster deployment, and analysing the metrics gathered from those runs.

    This means the backend is entering validation phase, where we systematically compare all metrics taken from the new\ninfrastructure to the existing ones, including determining reproducibility and variance.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-14-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2023-06-14T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-06-12-network", + "content_html": "

    Network Update

    Key contributions and advances

    We merged light peer sharing feature, which allows to include inbound peers\ninto outbound governor known peers. This is the primary way for new\nunregistered nodes to enter the network, which then can be shared using peer\nsharing. Note that peer sharing is an experimental feature which is disabled\nuntil genesis & eclipse evasion as fully implemented. See #3596.

    We are making progress reviewing eclipse evasion, #3886.

    We fixed another bug in local root peers. We found out that if the local roots\nwhere ignored until the first domain name was resolved, see #4583. The bug\nfix was backported and released in ouroboros-network-0.8.1.1.

    We re-started working on dynamically enabling block forging to address issue\n#3159, which will enable us to release P2P on block producing nodes. See #140.

    New cardano-ping / cardano-cli ping release

    We prepared a new release of cardano-ping library which supports the new\nquery feature (query supported versions). See #4589, #4593 and #5313.\nThe new version of cardano-cli ping will use ISO8601 formatted\ntimestamps; also the formatting of ping results is slightly improved, and it\nwill introduce the new --query-versions (-Q) switch. If the remote site\nsupports the query parameter, the command will print:

    redacted-ip:port network rtt: 0.064
    redacted-ip:port handshake rtt: 0.064010896s
    redacted-ip:port Queried versions [NodeToNodeVersionV11 764824073 InitiatorAndResponder,NodeToNodeVersionV10 764824073 InitiatorAndResponder,NodeToNodeVersionV9 764824073 Initiat
    orAndResponder,NodeToNodeVersionV8 764824073 InitiatorAndResponder,NodeToNodeVersionV7 764824073 InitiatorAndResponder]

    otherwise it will print the negotiation results

    redacted-ip:port network rtt: 0.045
    redacted-ip:port handshake rtt: 0.101867615s
    redacted-ip:port Negotiated version NodeToNodeVersionV10 764824073 InitiatorAndResponder

    Note that in that case cardano-cli ping offers InitiatorAndResponder, which\nallows us to detect whether the remote side is an InitiatorOnly or\nInitiatorAndResponder. Also cardano-cli ping will no longer announce\nitself as InitiatorAndResponder, except for the case mentioned above.

    Other smaller contributions

    On a request from the Marlow Team, we published haddocks of typed-protocols,\nwhich are now available here (#40, #41).

    We made a new release of strict-stm-1.1.0.1 on Hackage, which fixed a bug in\npackage description file, #101 .

    We also helped to debug a deadlock when using named pipes on Windows in the new\nRawBearer API. The API is being used to store secret keys only in memory.\nThe PR #4395 is under review.

    We also have two more PRs which are under review:

    • #4530: enabling ledger peers on a fixed number of slots before the tip of the chain;
    • #4580: a PR which fixes inconsistencies in one of our cddl specs.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-12-network", + "title": "Network Team Update", + "summary": "Network Update", + "date_modified": "2023-06-12T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-06-09-crypto", + "content_html": "

    High level summary

    The open fronts that the crypto team is working on are:

    • cardano-base: E2E tests for BLS bindings and KES agent
    • Sidechains: Implement ECC chip and Rescue hash primitives for ATMS
    • mithril: Full node verifier

    Low level summary

    cardano-base

    • RawBearer API in ouroboros-network-framework (https://github.com/input-output-hk/ouroboros-network/pull/4395); blocked due to issue with windows' localSnocket. Trying to resolve.
    • Adapting cardano-base for direct memory transfers between mlocked RAM and file descriptors #317.
    • Above, blocked by the simplification of typeclasses #404.
    • Provided e2e test cases to the testing team with aggregated signatures and schnorr signatures for the BLS bindings

    Mithril

    • Implementation of Full Node Verifier #939

    Sidechains

    • ECC chip implemented for JubJub over BLS12-381
    • Rescue chip implemented for hashing.
    • Currently working on Schnorr signature (which uses the above constraints)
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-09-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2023-06-09T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2023-06-09-developer-experience", + "content_html": "

    High level summary

    The Developer Experience team has been devoted to day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, the maintaince of our cardano-haskell-packages (CHaP), and infrastructure like GitHub Actions, iohk-nix, haskell.nix, and devx. Furthermore, we have also contributed to upstream tooling improvements.

    Lower level summary

    build support & maintainance

    Our DevX team has been instrumental in troubleshooting and fixing a wide range of issues, from broken windows builds and obscure LoadDLL errors to blst integration across Nix and Github CI. We've also initiated automatic uploads for release assets. Our efforts in streamlining complex CI setups have paid off, with some repositories like cardano-base experiencing significant reductions in CI complexity.

    compiler upgrades

    After the support for 9.2 across our libraries, we have started working on 9.6 compabilitiy as well. This move brings us closer to the upstream compiler, facilitating the contribution of patches and enabling early detection of regressions. In addition, we're prioritizing compaining even stronger for better backwards compatibility.

    CHaP (cardano-haskell-packages)

    We relocated the underlying tooling, (foliage), for CHaP into the IOG organization. Furthermore, we have introduced improved tooling to quickly add constraints to packages, better error reporting for add-revision and better hackage url compatibility to facilitate easer usage of CHaP.

    GitHub Actions

    Our repository, input-output-hk/actions, now houses the necessary actions for installing pre-requisites to build Cardano projects using GitHub Actions. Leveraging the base and haskell install actions has allowed us to simplify workflows in the repos, focusing primarily on invoking cabal.

    iohk-nix

    The iohk-nix repository has undergone a major revamp and now provides pre-built packages of the cryptographic libraries IOG utilizes for GitHub Runners. The key components we use, sodium, blst, and secp256k1, are also fixed to certain revisions within the iohk-nix repository.

    haskell.nix

    Haskell.nix has been maintained and updated with the addition of GHC 9.6.2 and GHC 8.2.8. After discovering performance regression in the native bignum backend, we switched the default bignum backend to gmp.

    devx

    The relatively new devx repository is where we experiment with a single nix development shell that aims to suffice for most use-cases at IOG. This initiative is expected to eliminate a number of CI failures related to project-build and shell interaction problems. The devx repository's readme has been updated to reflect its purpose and usage guidelines.

    upstream tooling

    Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-09-developer-experience", + "title": "Developer Experience Update", + "summary": "High level summary", + "date_modified": "2023-06-09T00:00:00.000Z", + "author": { + "name": "Moritz Angermann", + "url": "https://github.com/angerman" + }, + "tags": [ + "devx" + ] + }, + { + "id": "2023-06-09-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team worked on multiple fronts. They finished the\ninvestigation about the broken head on mainnet and re-opened their persistent\nhead instance. The team also fixed the monthly report publication on their\nwebsite and started sketching ideas and further improvements. Also, they are on\nthe last mile to deliver a new feature which will allow parties to commit funds\nfrom extern wallets. Finally the team started to work on optimizing the\nperformance on their benchmarks.

    What did the team achieve this week

    • Finished investigation on broken head on mainnet #897 and re-opened it.
    • Added support for externally committing regular utxo #887
    • Fix monthly report publication on docs website and published the monthly report. Odd problems when publishing monthly report:
      • Make us think about if we should change something about the website #908
      • Open issue to docusaurus #9036
    • Fixed a bug in the benchmark process #910
    • Explored performance of the hydra-node{.verbatim} and identified a\nbottleneck.
    • Timed transaction feature is being used by the auction project 🎉

    What are the goals of next week

    • Complete performance analysis and start/plan improvements and provide\nregular benchmarks for Hydra #186
    • Add hydra as tool to developer platform #872.
    • Authenticate network messages #727.
    • Complete journey for external commits using multiple script UTxOs #903
    • Start implementing Option B for external commits #215.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-09-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-06-09T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-06-08-db-sync", + "content_html": "

    High level summary

    We've made progress in all high level objectives

    • CIP-1694 integration design
    • UTxO-HD integration proof of concept
    • schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2
    • A new hire will help us with devx issues.

    Lower level summary

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-08-db-sync", + "title": "DB-sync Team Update", + "summary": "High level summary", + "date_modified": "2023-06-08T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2023-06-08-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    This sprint the team has been working on giving and preparing public\ntalks, also on preparing final versions of their ICE 2023 papers, and\non analysing chain selection.

    This sprint the team has been working on final revisions for the\npre-proceedings versions of two ICE 2023 papers.

    Details

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-08-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-06-08T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-06-08-sre", + "content_html": "

    High level summary

    The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include: expanding the darwin CI cluster and providing new aarch64 builder support; adding bare metal bitte cluster capability with network overlay for high IOPS workload performance, such as explorer.

    Lower level summary

    Bitte

    • Equinix bare metal capability was added to bitte: bitte-pull-194
    • Update bitte nixpkgs, nix version, nomad driver, equinix lifecycle, misc bug fixes: bitte-pull-201

    Bitte-cells

    Cardano-graphql

    Cardano-node

    Cardano-ops

    Cardano-world

    Ci-ops

    • Update legacy darwin builders and buildkite agent for ci-world network overlay and monitoring: ci-ops-pull-108

    Ci-world

    Cicero

    • Implement a cicero webhook backoff with exponential decay plus jitter: cicero-pull-79

    Iohk-nix

    Openziti

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-08-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-06-08T00:00:00.000Z", + "author": { + "name": "John Lotoski", + "url": "https://github.com/johnalotoski" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-06-08-system-test", + "content_html": "

    High level summary

    Since the last update (2023-03-26) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.7 and 8.0.0 releases.

    Workstreams

    Full list of closed PRs

    Framework improvements:

    • Make cardano-submit-api REST API service available and run corresponding regression tests by default
    • Update cabal build testing for 8.0.0
    • Add support for testing governance SPO poll
    • Use Poetry for Python dependency management
    • Check status of known GH issues during tests runtime and finish the test accordingly
    • Generate topology files with both IP addresses and DNS names
    • Log issues like failure to start a cluster instance and report errors during tests runtime

    Testing improvements

    • Add rollback testing:
      1. global consensus is reached after rollback, in situation where less than securityParam blocks were produced since cluster split
      2. global consensus is not reached when more than securityParam blocks were produced, and the result is permanent fork
    • Add tests to governance SPO poll commands

    Node:

    DB-Sync:

    • improvements in db-sync sync tests
    • improvements in db-sync functional tests
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-08-system-test", + "title": "System Test Team Update", + "summary": "High level summary", + "date_modified": "2023-06-08T00:00:00.000Z", + "author": { + "name": "Martin Kourim", + "url": "https://github.com/mkoura" + }, + "tags": [ + "system-test" + ] + }, + { + "id": "2023-06-07-node-cli-api", + "content_html": "

    2023-06-07 - 2023-06-20

    High level summary

    • Completed cardano-cli migration to input-output-hk/cardano-cli
    • cardano-cli ping now uses cardano-ping-0.2.0.5
    • New queries on API:
      • queryCurrentEpochState
      • queryDebugLedgerState
      • queryGenesisParameters
      • queryPoolDistribution
      • queryPoolState
      • queryProtocolParameters
      • queryProtocolParametersUpdate
      • queryProtocolState
      • queryStakeAddresses
      • queryStakeDistribution
      • queryStakePoolParameters
      • queryStakeSnapshot
    • Deprecate:
      • queryPparams
    • Export query API as functions
      • genFeatureValueInEra
      • featureInShelleyBasedEra
      • isFeatureValue
      • valueOrDefault
      • asFeatureValue
      • asFeatureValueInShelleyBasedEra
      • queryEpoch
      • requireShelleyBasedEra
    • Restructure cardano-testnet (WIP)

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-07-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-06-07T00:00:00.000Z", + "author": { + "name": "Carlos LopezDeLara", + "url": "https://github.com/CarlosLopezDeLara" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-06-02-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team has put their effort on finding solutions on many\ndifferent problems, such as our broken head on mainnet\n#897, our fragile monthly\nreport publications on the website and implementing Option A for\nexternal commits #215.\nAlthough most of these items are still open, huge progress has been made. To\naccelerate the investigation, they improved their logging to give more precise\nerrors when a transition requirement fails, and to reduce duplication on effets\nlogged content. Last but not least, the team is exploring formal methods and\nattended a workshop on formalizing cryptographic protocols in Agda.

    What did the team achieve this week

    • Continued investigating broken head and opened an issue to keep track #897.

      As part of this issue, improvements were made to the node logs:

      • Give a precise error when a transition requirement fails #895.

      • Reduce duplication for effects logged content by using sequential eventId and effectId pair #896.

    • Fixed references in the hydra specification #893.

    • Attended a workshop on formal methods and crypto in Agda.

    What are the goals of next week

    • Investigate and re-open our team-internal head on mainnet.
    • Improve and provide regular benchmarks for Hydra #186.
    • Complete journey for external commits implementing Option A and start implementing Option B #215.
    • Authenticate network messages #727.
    • Add hydra as tool to developr platform #872.
    • Fix monthly report publication on docs website.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-02-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-06-02T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-06-01-mithril", + "content_html": "

    High level overview

    The Mithril team released a new 2321.1 distribution that fully implements the mechanism developed to sign generic data. They completed the upgrade of the Cardano node in the Mithril networks to v.8.0.0 and the implementation of the new computation of the stake distribution. They refactored the state machines of the signer and aggregator, and the signed entity service of the aggregator. Additionally, they worked on adapting the client and implementing a new sub-command for restoring the Cardano immutable file snapshots.

    Finally, the team worked on adding a new certificate list route in the aggregator REST API, and started enhancing the infrastructure of the Mithril networks.

    Low level overview

    • Released the new distribution 2321.1
    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the issue Enhance MessageAdapter for Artifact in aggregator REST API #925
      • Completed the issue Create the sub-command for 'Cardano Immutable Files Full' in client #895
      • Completed the issue Enhance state machines Aggregator/Signer #933
      • Completed the issue Adapt the aggregator REST API to list certificates #892
      • Worked on the issue Adapt end to end tests to handle new types of data #899
      • Worked on the issue Update client documentation #897
      • Worked on the issue Update architecture documentations for new types of data #898
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Enhance terraform infrastructure #930
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the issue Upgrade Cardano node to '8.0.0' #920
    • Completed the issue Add export path in Client CLI #512
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-06-01-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-06-01T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-05-31-consensus", + "content_html": "

    High level summary

    During the Past two weeks we drafted an implementation path for concluding that a node is caught up, which will also be used to back Network's ledger-peer selection (see this issue). We also carried a thorough investigation into the exact feasibility of applying the Genesis rule to certain historical parts of the chain.

    On the UTxO-HD front, we are working on improving the ledger tables design and wrapping up the improved DB locking mechanism. We also released packages that are required not only by UTxO-HD but are already used in cardano.

    UTxO-HD

    • We have a plan for making the ledger tables in UTxO-HD more ergonomic by mimicking SOP classes like HPure and HAp . In short, we implement generalised versions of important classes like Applicative and Traversable.

    Support

    • fs-sim-0.1.0.2 and fs-api-0.1.0.2 were released, which makes them now compatible with GHC up to 9.6.
    • ouroboros-consensus-0.7.0.0 was released for cardano-node 8.1, including query serialization fixes for backwards compatibility.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-31-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-05-31T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-05-31-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: We've performed and analysed first benchmarks with GHC9.2 builds. Additionally we have developed an early indicator for how build config changes might reflect on metrics from our model cluster.
    • New tracing: Collaboration with Galois led to the new tracing system to be equipped with a re-forwarding mechanism.
    • Nomad backend: Porting the 52 node model cluster to nomad cloud is ongoing, with the focus on deployment and health checks.

    Low level overview

    Benchmarking

    The first set of runs with GHC9.2 as a build platform are in. We've discovered a significant difference in resource profile usage compared to GHC8.10. Further investigation uncovered the need for benchmarking another parameter change in the build\nconfiguration: As it stands, the ghc-bignum package is using the Haskell native-backend as a default. We strive\nto benchmark a build with the gmp-backend next.

    A variant of our forge-stress local benchmark has been set up to serve as an early indicator for the resource usage profile\nwe'd expect to observe on the model cluster. This provides us with a much tighter feedback loop, as local run duration is way\nshorter. This indicator is specific to changes in the configuration of build and the runtime systems, and will be of great\nsupport when evaluating different compiler versions or RTS flags incrementally.

    Tracing

    The hub of the new tracing system cardano-tracer is designed with a fixed output behaviour, which is limited to various\nlogging options. Thanks to the contribution from Galois, that design is now extended to be able to re-forward all, or a pre-filtered portion, of traces from the node in a configurable manner. This will enable downstream applications to\ndirectly receive the set of trace values relevant to their logic, without any additional cost for the node itself at all.

    Nomad backend

    We're currently working out the details of efficiently deploying and monitoring a fleet of 50+ nodes, along with\njob definitions for tracing and transaction generation. Scaling up to those many instances, and monitoring an ongoing\nbenchmarking run required us to fine-tune communications with the nomad server.

    Related to that, the new cloud backend will provide a monitoring and health-checking mechanism which is far more flexible\nand offers more detailed insight than the previous iteration in cardano-ops. The backend will enable you to formulate\nvery specific conditions for an ongoing run to be considered healthy, and offer automation of certain actions should these conditions not be met.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-31-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2023-05-31T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-05-26-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    This sprint the team has been working on final revisions for the\npre-proceedings versions of two ICE 2023 papers.

    Details

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-26-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-05-26T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-05-26-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team accomplished several important tasks. They held their\nmonthly review meeting and drafted the report for May. They made progress on\nimplementing the first end-to-end journey for external commits using \"Option A\"\nfor normal UTxOs, while still considering \"Option B\". The team also integrated a\nSpanish translation contributed by the community, created micro-benchmarks for\ntransaction validation and deserialization, and made improvements to\nhydra-node's version reporting. Last but not least, they implemented the ability\nto commit multiple UTxOs to a head at once.

    What did the team achieve this week

    • Held the monthly review meeting (recording + slides) & drafted the report for May.
    • Have a first end-to-end journey for external commits implementing Option A\nfor normal UTxOs #887 (still considering Option B).
    • Integrated the spanish translation #866.
    • Created micro-benchmarks for transaction validation and deserialization #884.
    • Improve hydra-node version reporting on non-released builds #849
    • Some minor CI improvements following up last weeks changes.
    • Allow commit transactions with multiple UTxO #774.

    What are the goals of next week

    • Investigate and re-open our team-internal head on mainnet.
    • Improve and provide regular benchmarks for Hydra #186.
    • Complete external commits with script UTxOs #215.
    • Authenticate network messages #727.
    • Add hydra as tool to developr platform #872.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-26-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-05-26T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-05-26-ledger", + "content_html": "

    High level summary

    The ledger team made progress on the conway ledger era. In particular, the design and implementation\nof the new certificates is near complete, we refactored some of our data structures\nto be able to support DReps, we cleaned up the serialization format, and renamed things to make\nclearer the differences with Shelley.

    The team also completed integration work for the next node release, namely 8.1.0.\nAnd, as always, we continue to address technical debt.

    Low level summary

    Conway progress

    • pull-3408 - Improve conway delegation certificates
    • pull-3428 - Get rid of Constitutional in favor of Genesis and Committee
    • pull-3426 - Add DRep to internal data struture (UMap)
    • pull-3425 - Improve witness logic needed for conway
    • pull-3423 - Rename ShelleyDelegCerts constructors to distinguish them from Conway
    • pull-3421 - Rename DCert -> TxCert
    • pull-3454 - conway CDDL minor fixes

    Improve testing

    • pull-3403 - Add Plutus script context golden tests

    Integration work

    • pull-3410 - Update chaps index
    • pull-3416 - Bump cardano-ledger-alonzo-test version
    • pull-3414 - Bump cardano-ledger-shelley-test minor version
    • pull-3420 - Bump cardano-ledger-shelley-ma-test version
    • pull-3441 - Release cardano-ledger-[alonzo|babbage]-1.2.1

    Technical debt

    • pull-3409 - Unit test - no such thing as a reference datum
    • pull-3407 - Fixup release process documentation
    • pull-3404 - Create TotalDeposits events during all eras
    • pull-3402 - Fix broken references in the Shelley spec
    • pull-3424 - Remove no longer used cardano-ledger-shelley-ma package
    • pull-3432 - Add an example on how to bump up versions in the changelog
    • pull-3440 - Revert back to the group serialization for ProtVer for PParams
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-26-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-05-26T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-05-26-network", + "content_html": "

    High level summary

    We continued working on eclipse-evasion. We also analysed and fixed a bug\nwhen using DNS names in local root peers. We continued working on engineering\nblog post about P2P. We released a new version of packages for\ncardano-node-8.1.0 release.

    We improved our CI, removed obsolete scripts add extra validation which checks\nif CHANGELOG.md files were updated.

    We also improved release scripts.

    Detailed summary

    • Eclipse evasion: #4462
    • Local root peers bug fix: #4559
    • Release to CHaP: #4573
    • CI improvements: #4572
    • Release script improvements: #4573
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-26-network", + "title": "Network Team Update", + "summary": "High level summary", + "date_modified": "2023-05-26T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-05-24-node-cli-api", + "content_html": "

    2023-05-24 - 2023-06-06

    High level summary

    • The last sprint focused on removing cardano-cli and cardano-api from the cardano-node repository. We have successfully moved cardano-api to its own repository and will do the same for cardano-cli after the 8.1 node is released.
    • We provided assitance where needed in the release
    • An integration repository https://github.com/input-output-hk/fusion-flamingo was created to enable my team to more easily work on cardano-cli and cardano-api

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-24-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-05-24T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-05-19-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team has worked on several fronts, including improvements of their CI speed, logs, documentation pages and adding the support for timed transactions. They also updated the \"Coding Standards\" for the project, improved the troubleshooting page on their website and wrote a section about how to operate a hydra node. Finally the team completed a feature request that allows clients to submit and validate transactions to their hydra nodes using time validity ranges, ensuring isomorphism with L1.

    What did the team achieve this week

    • Complete validation of timed transactions feature #196.
    • Write ops instructions and troubleshooting #569 and improve logs.
    • Remove --ledger-genesis argument to hydra-node options #863.
    • Fix issue with garbage collected caches by using a new cardano-scaling.cachix in more workflows #877.
    • Use nix to build test binaries to increase CI speed #867.
    • Updated our Coding Standards.

    What are the goals of next week

    • Monthly report & review meeting.
    • Have a first end-to-end journey for external commits implementing \"Option A\" #215.
    • Integrate spanish translation #866.
    • Improve and provide regular benchmarks for Hydra #186.
    • Allow commit transactions with multiple UTxO #774.
    • Explored stateless observation and refined hydra explorer ticket #696.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-19-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-05-19T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-05-17-consensus", + "content_html": "

    High level summary

    During the past two weeks we brought further improvements into the Genesis design in collaboration with the IO Research and Networking teams. These improvements concern the Genesis selection rule, candidate rule, and root peers usage. See the [Genesis][#genesis] section for more details.

    Regarding our UTxO-HD prototype, during the past two weeks we put together a pull-request that improves the DB locking mechanism, started porting the mempool fairness improvements from our main branch, and integrated a new open source library (that implements cancellative monoids) that allowed us to simplify our code and get a small performance gain.

    We improved our tooling by releasing an immutable DB server, which can be used for testing and benchmarking purposes, and a db-truncater program, which can be used in disaster recovery and benchmarking scenarios.

    Genesis

    The consensus team working on Genesis:

    • Improved the genesis selection rule as a result of our interaction with IO Research.
    • Studied how the hard-fork combinator handles forecasting at era transitions, and improved our documentation.
    • Determined that the simplest candidate rule we had considered will work for the Genesis window at era transitions, at least for the MVP.
    • Elaborated concrete proposal for the Genesis State Machine.
    • Met with the Networking Team and advised/co-designed how to implement the stop gap usage of public trusted root peers before Genesis is released (it's similar to the Genesis State Machine).

    The team is currently re-analyzing the Limit on Patience, which can be less aggressive now that we've re-introduced the Genesis State Machine.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-17-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-05-17T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-05-17-mithril", + "content_html": "

    High level overview

    The Mithril team released a new 2318.0 distribution that implements the last migration phase of the aggregator stores and embeds a bug fix for the signer registration. They also completed the implementation of the interfaces defined to provide certification for the immutable full snapshot of Cardano files and Mithril stake distribution. They finalized the implementation of the framework to sign generic types of data in the aggregator and the signer nodes. They also updated the runtime of the aggregator to handle open messages associated with the available types, and evolved the REST API of the aggregator to deliver the artifacts for these types. Additionally, they have upgraded the network explorer in order to display the artifacts and certificates for these different types.

    Finally, the team started designing an on-chain decentralized signer registration process, and started implementing the new stake distribution computation available from Cardano node 8.0.0 (along with the backward compatibility for previous 1.35.x versions).

    Low level overview

    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the handling of multiple types of signed entity in the aggregator runtime #907
      • Completed the adaptation of the signer runtime to use the signable builder service #854
      • Completed the adaptation of the aggregator runtime to use the artifact builder service #869
      • Completed the appending of the next AVK to all protocol messages #888
      • Completed the adaptation of the aggregator REST API to retrieve the list/details of the artifacts produced #893
      • Completed the adaptation of the explorer to handle new artifact routes of the aggregator #927
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the implementation of the new stake distribution computation in the chain observer #919
      • Worked on upgrading the Cardano node to 8.0.0 #920
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-17-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-05-17T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-05-17-performance-and-tracing", + "content_html": "

    High level summary

    • Benchmarking: We're preparing our model cluster to perform GHC9.2 benchmarks, as well as experimenting with increased dataset sizes.
    • New tracing: After optimization work on the new tracing system, another cycle of validation and documentation is due.
    • Analysis pipeline: First steps on implementing incremental analysis have been untertaken.
    • Open Sourcing: Exhaustive dataflow charts for both our analysis tool locli and our workbanch have been merged to master
    • Nomad backend: The first set of CI-centric workbench profiles have been adjusted and run on the nomad backend; currently we're porting the definition of our model cluster.
    • P&T Meetup: We had a very productive personal meetup in Lugano, Switzerland.
    • Offboarding: Sadly, we have to say goodbye to our team lead. Currently, we're busy with the handover.

    Low level overview

    Benchmarking

    As a compiler switch to GHC 9.2.7 for cardano-node's default build environment is around the corner, we're setting up our benchmarking cluster to\nhandle the new version. Special attention is given to the fact that we might need more flexibility in switching compiler versions in the future. This\nalso involves choosing a reliable baseline as reference point for inter-version comparisons.

    Additionally we've been working on refining our model cluster: by increasing UTxO and delegation map sizes to closer match those of current mainnet,\nwe strive to have a more accurate model - and thus be able to make more detailed predictions regarding performance. However, this still needs to\nbe balanced against resource demand for all our cluster's nodes.

    Tracing

    For our new tracing system, we're currently validating the behaviour of the system after optimizations have been applied. Furthermore, some\nquality-of-life details that have changed required us to revision the system documentation.

    Analysis

    As a mid-term goal, we aim to provide incremental analysis of our benchmarking metrics. While currently, we can only reliably process runs that have been\nnormally (or abnormally) terminated, we see the possibility of incrementally analysing ongoing runs, or any data source yielding our key metrics, as a\nhuge opportunity to increase our operational flexibility. All in all, this approach entails building completely new features for our pipeline. A first effort to accomodate incrementally incoming data points has been undertaken.

    Open Sourcing

    A very involved and exhaustive documentation and visualization effort has been undertaken to make the data flow through our key benchmarking\ncopmonents more accessible. As a result, detailed charts for both our LogObject CLI locli and our workbench have been merged to master.

    Nomad backend

    While our Nomad backend is reaching completion, and hardware setup is being implemented in collaboration with SRE, we've been adjusting\nthose profiles of our workbench that target CI-oriented workloads to the new backend. Those profiles should demonstrate the full functionality\nof the nomad cloud backend.

    Additionally, we're porting a first deployable version of our model cluster to nomad cloud, which will form the basis for validation of our actual key metrics with regard to those from the existing cluster.

    Performance & Tracing Meetup

    We held a personal team meetup in Lugano, Switzerland. In an amazing location, and with a great seminar room to focus, we had 2 very productive\ndays together. Being able to discuss live and in colour, we could effectively synchronize on where the team is at, and how we want to develop in the future.\nAlso, it was a great opportunity to finally meet in person.

    Offboarding

    Last not least we regret that our team lead is leaving at the end of May. Currently, he's handing over all his obligations, which requires reorganisation\nof team structure, and responsabilities of team members for specific tasks. Serge, we all want to thank you for your excellent and reliable lead; we very much enjoyed the time with you, and wish you all the best for your future endeavours!

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-17-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2023-05-17T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-05-12-crypto", + "content_html": "

    High level summary

    The open fronts that the crypto team is working on are:

    • cardano-base: Include final tests for BLS signature. Further adaptations for KES agent.
    • Sidechains: Implement BLS and JubJub using upstream's macros to merge these curves in halo2curves.

    Low level summary

    cardano-base

    Sidechains

    • Opened PR in halo2curves to include BLS12-381 and JubJub, #38
    • Addition constraint over JubJub merged #10
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-12-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2023-05-12T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2023-05-12-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    This sprint the team had two paper accepted for ICE 2023\n(https://www.discotec.org/2023/ice). The event will be held in Lisbon\non 19th June 2023. The papers will be published in EPTCS.

    Details

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-12-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-05-12T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-05-12-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team achieved a number of milestones, including the release\nof the first mainnet compatible version. Besides this they also addressed\ninconsistencies in rollback handling, added an architecture page to the website,\nreducing the size of logs using event IDs. They also had productive discussions\nwith researchers on plans for incremental commits/decommits and had a whiteboard\nsession on DeFi and lending protocols. The goals for next week include\ncompleting the validation of the timed transactions feature, exploring stateless\nobservation, refining the Hydra explorer ticket, writing ops instructions and\ntroubleshooting, and implementing the first end-to-end journey for external\ncommits.

    What did the team achieve this week

    • Released first mainnnet compatible version 0.10.0
    • Addressed inconsist handling of rollbacks #784
    • Added architecture page and fixed haddock links on our website #838
    • Opened a new hydra head on mainnet
    • Talked with researchers on initial plan for incremental commits/decommits
    • Had a Whiteboard session on DeFi and lending protocols
    • Reduced size of logs using event ids #859
    • Published the monthly report for April

    What are the goals of next week

    • Complete validation of timed transactions feature #196
    • Explored stateless observation and refined hydra explorer ticket #696
    • Write ops instructions and troubleshooting #569 and improve logs
    • Have a first end-to-end journey for external commits implemented #215
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-12-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-05-12T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-05-12-network", + "content_html": "

    High level summary

    We started working on a new way to switch between root & ledger peers (see\nbelow). We continued to work on eclipse-evasion. We merged changes to\nHandshake contributed by Galois Inc. We made improvements to our tests (fixed\na flaky test, added cddl specs for NodeToNodeVersionData and\nNodeToClientVersionData). We improved our CI and automated the process of\nreleasing new package version to CHaP.

    Detailed summary

    We continued to work on testing eclipse-evasion.

    We came up with an idea to limit how full node wallets relay on root peers\n(currently operated by IOG, in future also CF and Emurgo). We designed\na switch to use ledger peers if the node tip is close enough to the current\ntime. For more details see #4530.

    We merged changes to the handshake mini-protocol which allow one to query\nserver's node-to-node / node-to-client parameters. We are grateful to\nGalois Inc. for implementing it, #4256 and #4538. We published new version\nof packages to CHaP chap-#253.

    We added DiffusionError wrapper. Thanks to it, ouroboros-consensus will\nnot duplicate diffusion errors messages in the log, #4537.

    We fixed an issue which caused one of our tests to be flaky, #4515.

    We added cddl tests for NodeToNodeVersionData and NodeToClientVersionData:\n#4540, #4544 (in review).

    We wrote scripts which will help us release packages as well as verify that we\nreleased all the package necessary to build the newest set of packages,\n#4542.

    We renamed the consensus startup tracer and make sure it doesn't log\nExitSuccess exceptions, consensus-#71.

    We reviewed PR which adds RawBearer API, #4395.

    We made series of improvements to our CI:

    • #4539: we don't need to install cryptographic libraries in CI;
    • #4545: Javier Sagredo (consensus) cleaned up CI after consensus moved\nto a new repo;
    • #4546: we switched to use GitHub merge queues;
    • #4549: we made it possible to trigger building haddocks manually;
    • #4553: we fixed and enhanced caching of building dependencies.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-12-network", + "title": "Network Team Update", + "summary": "High level summary", + "date_modified": "2023-05-12T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-05-05-ledger", + "content_html": "

    High level summary

    The ledger team focused mainly on the conway ledger era and node integration.\nFor conway, we completed a large structural change that now allows\nfor delegation certificates to be parameterized by era, and introducing\nnew certificates for the first time since Shelley.\nWe also continue to build out our contraint based generators that we will\nuse to property test the conway era.\nIn particular, we can now generate an entire ledger state and a\ntransaction which is balanced with respect to the ledger state.

    Low level summary

    Conway certificates

    Certificiates are now abstracted as a type family in the ledger codebase.\nMoreover, there are new certificates in the Conway era to support CIP-1694,\nand MIR certificates have been removed.

    Constraint based testing

    Our plan for property testing in the conway era is to no longer use the trace generators,\nbut instead generate ledger states and transactions based on constraints.\nWe hit a milestone this week, namely the ability to generate a balanced transaction in the context\nof a ledger state, all based on our ever growing constaint language.

    Integration work

    Technical debt

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-05-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-05-05T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-05-05-node-cli-api", + "content_html": "

    2023-05-05 - 2023-05-23

    High level summary

    • Golden tests for cardano-cli command help output were added.
    • Documentation was updated with new libsodium installation instructions.
    • There were several updates for the cardano-cli:
      • Deletion of the deprecated shelley command group.
      • Addition of golden tests for CLI help.
      • An improvement to avoid bare IO in tests, allowing better error reporting in failed tests.
      • Generation of UTCTime test values without leap seconds (avoids erroneous test failures)
      • Support for signing transactions with GenesisDelegateSigningKey_ed25519_bip32.
    • The cardano-api underwent multiple refinements:
      • Implementing deposit handling when balancing transactions (necessary for Conway)
      • Cleaning up socket file path code.
    • Several changes were made to the cardano-testnet:
      • Adding golden tests for cardano-testnet help.
      • Removing all hardcoded yaml files in cardano-testnet
      • Improving cardano-testnet help output.
      • Parameterizing default yaml configuration value, allowing for easier hardforking to the era of choice.

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-05-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-05-05T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-05-04-mithril", + "content_html": "

    High level overview

    The Mithril team completed the implementation of the new certifier service of the aggregator, which is in charge of producing certificates for multi-signatures. They also finished implementing the interfaces defined to provide certification for the full immutable Cardano files snapshot and the Mithril stake distribution. Additionally, they have completed the refactoring of the multi-signer in the aggregator. The team also fixed the bug in the signer registration that was responsible for gaps during the signature phase for some signers, and they upgraded the Cardano node used in the Mithril testnets and devnet to version 1.35.7.

    Finally, they have worked on designing a decentralized registration for the signers that takes place on the Cardano chain.

    Low level overview

    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the implementation of the Certifier service in the aggregator #850
      • Completed the implementation of the signable builder for the Mithril Stake Distribution #851
      • Completed the implementation of the artifact builder for the Mithril Stake Distribution #870
      • Completed the implementation of the signable builder for the Full Immutables Snapshot #852
      • Completed the implementation of the artifact builder for the Full Immutables Snapshot #871
      • Completed the adaptation of the aggregator runtime to use the signable builder service #853
      • Worked on the adaptation of the signer runtime to use the signable builder service #854
      • Completed the definition of the entity service interface for verification/restoration #868
      • Completed the refactoring of the OpenMessage type #878
    • Completed the epic that simplifies the multi-signer in the aggregator #398:
      • Completed the extraction of the single signature registration from the multi-signer #643
    • Completed the upgrade of the Cardano node to version 1.35.7 #881
    • Fixed the bug that created a discrepancy of the signer verification keys between signers and aggregators #873
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-04-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-05-04T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-05-03-consensus", + "content_html": "

    High level summary

    During the past two weeks we made some important progress in the Genesis design.\nIt seems the BlockFetch logic need not be modified for Genesis, although this\nneeds to be confirmed. We started a DoS mitigation handbook and updated our\nconceptual component diagram to guide the Genesis design. We engaged with the\nIOG researchers to work on the Limit on Patience attack vector, work in this\narea is still ongoing. We sketched a design to decouple the CPU load of the node\nfrom its responsiveness to the socket. Finally, we discussed with Networking our\napproach to lower the performance impact of the BlockFetch decision logic, and\ngot green light from them.

    We migrated the consensus code to a new\nrepository, splitting\nit from the ouroboros-network repository, and released version 0.6 of\nConsensus.

    We also merged the mempool fairness improvement to main branch.

    Another significant enhancement to our documentation was the addition of an\nexplanation of the hardfork combinator forecast horizon.

    See the sections below for more details.

    Genesis

    We reviewed the BlockFetch design documentation, and added some source-code\ncomments that emphasize certain properties of the decisions the BlockFetch\nlogic makes that are helping us confirm that Genesis does not require any\nchanges to BlockFetch. We are waiting on input from our former system\narchitect to verify this.

    We migrated and updated the conceptual component diagram in the ouroboros-consensus\nrepository which helps us situate the Genesis design and argument.

    We engaged with the IOG researchers about the Genesis design. We sketched out a\nway to address the concern that the Limit on Patiente (LoP) attack vector duty\ncycle is indeed low, but it's still non-trivial to ultimately conclude it's\nsufficiently low.

    We also sketched a design to decouple the CPU load of the node from its\nresponsiveness to the socket, since the LoP is a relatively tight timeout, and\nnode performance bugs inducing seconds-worth of latency are unfortunately\nfamiliar phenomena.

    Fostering collaboration

    We added an\nexplanation of\na question that we had to explain many times about the exact behavior of the\nhardfork combinator forecast horizon.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-03-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-05-03T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-05-03-performance-and-tracing", + "content_html": "
    • Benchmarking: The benchmarks and performance investigations for the new 8.0 release branch are ongoing.
    • New tracing: Performance optimization of the new tracing system is paying off and we could notably shrink its resource footprint.
    • Analysis pipeline: An exhaustive documentation and dataflow diagram for our analyses is being worked on.
    • Infrastructure: The plutus-apps flake input for cardano-node has finally been removed.
    • Nomad backend: A PR implementing placement of benchmarking clusters has been merged.

    Benchmarking

    The performance investigations on the 8.0 release branch have lead to pinpointing and addressing incosistent behaviour. For that,\nwe created yet another local reproduction with the workbench's forge-stress benchmark.

    Currently we're working on scaling up the dataset size (UTxO and delegations) on the AWS cluster to gain further insight into 8.0 and\nsubsequent releases.

    Additionally, we've refined the trace-bench family of profiles that target benchmarking our own new tracing system.

    Tracing

    Optimization of the tracing system has identified several locations where inefficient serializations were used; those were not originally\nintended to run on a performance-critical codepath. We've worked on improving those, as well as eliminating cases of redundant\nconversion between different serialization formats. This has brought down both memory and CPU impact of the tracing system.

    Infrastructure & Analysis

    Dataflow documentation

    The LogObject CLI locli is at the heart of our analysis and reporting pipeline. To increase its accessibility and facilitate\nfurther development, we're creating a detailed and illustrated documentation of all dataflows that happen during analysis and reporting.

    Remove redundant Plutus flake input

    This step is the conclusion of porting Plutus benchmarking scripts to our own library. By finally removing the now unnecessary flake input,\nwe simplify the dependency graph for cardano-node, as well as enable immediate feedback when developing Plutus benchmarks.

    Nomad backend

    Sophisticated placement of nodes across various regions of the globe is a cornerstone of the model cluster we use for benchmarking.\nThis capability has now been added to the Nomad backend and can be controlled with Nomad job descriptions. A PR with this, along\nwith various quality-of-life improvements, has been merged to master.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-03-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "* Benchmarking: The benchmarks and performance investigations for the new 8.0 release branch are ongoing.", + "date_modified": "2023-05-03T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-05-01-db-sync", + "content_html": "

    High level summary

    Lower level summary

    • Prepared a schema change which is expected to speed up queries and help clients\n#1389.
    • Ran a big number of benchmarks on the above to evaluate if this change is reasonable.
    • Performance optimization related to rewards\n#1382
    • Using the cache in more places to reduce recourses usage\n#1380
    • Evaluated risks related to UTXO-HD integration
    • Worked on a feauture request to split the tx_out to an address table\n#1396
    • Worked on another feauture request to prune the consumed entries from the tx_out table\n#1398
    • Prepared for CIP-1694 integration
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-05-01-db-sync", + "title": "DB-sync Team Update", + "summary": "High level summary", + "date_modified": "2023-05-01T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2023-04-28-crypto", + "content_html": "

    High level summary

    The open fronts that the crypto team is working on are:

    • cardano-base: New KES structure finally merged. Included additional tests to BLS, and including test vectors created with zkcrypto's library.
    • KES agent: Reaching state of MVP. Rewriting KES agent networking code to use the Snockets abstraction.
    • Sidechains: Started implementing ECC chip of JubJub over BLS12-381.

    Low level summary

    cardano-base

    • #255 finally merged 🎉
    • Additional tests for BLS bindings #384
    • Open PR for including test vectors created with zkscrypto's library, PR#397

    KES agent

    • Introducing the SignKeyWithPeriodKES wrapper type, which bundles a KES key with its corresponding KES period PR#389.
    • Introducing the DirectSerialise API into cardano-base, which allows us to write mlocked memory directly to a file descriptor, without going through intermediate encodings stored on the GHC heap (which is a no-no due to secure forgetting requirements) #317.
    • Figuring out how to generalize the KES, DSIGN, and mlocking code in cardano-base such that it can run in IOSim
    • Rewriting KES agent networking code to use the Snockets abstraction, which gives us a platform-independent sockets layer (i.e., it will also work on Windows), and also allows us to run networked code in IOSim for testing purposes
    • Refactor MonadSodium into MonadMLock PR#388.

    Sidechains

    • Started working on ECC chip for JubJub over BLS (problems still with the multiplication constraint)
    • Use macros used by PSE library to try and merge our fork of halo2curves into PSE's repo
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-28-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2023-04-28T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2023-04-28-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    The team is working on porting an existing formalisation of Ouroboros\nPraos to a newer foundation.

    Details

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-28-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-04-28T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-04-28-network", + "content_html": "

    High level summary

    The networking team has released the following packages to Hackage:

    We published an announcement blog post. We made progress\nalso on another blog post which will describes the design of the P2P networking\nlayer.

    After moving ouroboros-consensus to its own repository, we made\nouroboros-network compatible with GHC 9.4 and 9.6.

    We made cardano-client library independent of\nouroboros-consensus-diffusion.

    We prepared release of network packages for cardano-node-8.0.

    Detailed log

    Ouroboros-Network

    IO-Sim

    • io-classes-1.0.0.0, and following up releases: 1.0.0.1 (ghc-9.6\nsupport), 1.1.0.0 (documentation fix).
    • Fixed timeouts and delays in io-sim in a series of PRs: io-sim#81,\nio-sim#82, io-sim#86, io-sim#87.
    • Renamed a module: io-sim#88.
    • Fixed a failing registerDelayCancellable test: [io-sim#80].
    • Use GitHub merge queue in io-sim repository.
    • CI: download stylish-haskell: io-sim#83.

    Typed Protocols

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-28-network", + "title": "Network Team Update", + "summary": "High level summary", + "date_modified": "2023-04-28T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-04-27-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team held their Monthly review meeting and drafted the\nreport which likely is published next week. They put the spec into the\nrepository and website, addressed a user issue and fixed the TUI peer list.\nFurthermore, they updated dependencies, conducted a Twitter space on Auctions\nuse cases, covered the rollback bug with tests and implemented a solution.\nLooking ahead, their goals for next week include releasing 0.10.0, implementing\ntimed transactions support, writing a Query API ADR, and grooming work items\nlike off-chain benchmarks.

    What did the team achieve this week

    • Held the Monthly review meeting and drafted the report (to be published next week)
    • Added the spec into the repository\n#693 and published on\nthe\nwebsite
    • Groom and addressed user issue #823
    • Covered the rollback bug with tests and implemented a solution (to be reviewed) #784
    • Fixed the TUI peer list
    • Updated dependencies to match cardano-node master
    • Conducted a twitter space on Auctions use cases

    What are the goals of next week

    • Release 0.10.0
    • Support timed transactions solution drafted and validated API with users
    • Write Query API ADR and groom a concrete step
    • Groom and solve PostTxOnChainFailed UX problem #832
    • Groom off-chain benchmarks idea #186 and turn it into a feature
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-27-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-04-27T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-04-21-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team worked on several fronts, including fixing state\nmachine continuity on-chain, discussing voting project solutions, exploring\nadding Hydra support to kupo, and improving API navigation with a sidebar. The\nteam also updated dependencies and fixed issues in their test suites. Moving\nforward, the team plans to hold the next monthly review meeting, address a user\nissue, prepare for the 0.10.0 release, and work on a dirt road fix for the\nrollbacks issue with proper test coverage.

    What did the team achieve this week

    • Fixed scripts to enforce state machine continuity on-chain #777.
    • Took part in a twitter space on Scaling Cardano.
    • Joined a CBIA meeting to discuss Cardano network protocols & how to specify them.
    • Discussed potential solutions of ensuring vote uniqueness in the voting project.
    • Updated dependencies to match cardano-node master to prepare for upcoming releases and hard-forks
    • Explored adding Hydra support to kupo, a lightweight Cardano chain indexer - some more work required.
    • Improved navigation of the API Reference with a sidebar, see unstable API version.
    • Fixed two things in our test suites (random port conflicts and an arithmetic underflow in smoke test)

    What are the goals of next week

    • Monthly review meeting (join via Discord or AddEvent) & report
    • Dirt road fix for rollbacks #784 properly covered by a test.
    • Groom and ideally address user issue #823.
    • Put the spec into the repo #693 and prepare release 0.10.0.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-21-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-04-21T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-04-21-ledger", + "content_html": "

    High level summary

    We continued to make progress on CIP-1694 and the conway ledger era.\nIn particular, the conway era now supports Plutus V3.\nFinally, we made small improvements to the ledger API and now host\nour Haskell code documentation (haddocks) on github pages.

    Low level summary

    Conway ledger era

    Haddocks hosted on github pages

    Small improvements to the API

    Technical Debt

    • [pull-3367] Fix cost model json instances.
    • [pull-3371] UMap cleanup.
    • [pull-3373] Upgrade to ghc 9.2.7 and cabal 3.10.1.
    • [pull-3375] Sadly, we had to revert the TICKF optimizations. There was a regression we do not yet understand.
    • [pull-3377] Fix cabal warnings.
    • [pull-3383] Fix multi-asset test.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-21-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-04-21T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-04-20-mithril", + "content_html": "

    High level overview

    The Mithril team released a new 2315.0 distribution that implements the first part of the migration of the aggregator stores along with minor improvements and bug fixes. They finished the migration of the aggregator stores to a relational design by completing the adaptation and migration of the signed entity, signer and single signature stores. They also created a new tick service that provides beacons to other services of the aggregator. Additionally, they started implementing the new new certifier service of the aggregator that is in charge of producing certificates for multi-signatures.

    Finally, they completed the design and definition of the interfaces that must be implemented to provide certification for a new type of data in a Mithril network.

    Low level overview

    • Released the new distribution 2315.0
    • Completed the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the signed_entity table #816
      • Completed the creation of the signer table #814
      • Completed the migration/adaptation of the single_signature table #829
    • Worked on the epic that designs and implement generic signing/verification of entity services #780:
      • Completed the definition of the interface of the generic entity service for signing #847
      • Worked on the implementation of the Certifier service in the aggregator #850
      • Completed the extension of the SignedEntityType type #848
      • Completed the implementation of the Tick service in the aggregator #849
      • Worked on implementing the signable builder for the Mithril Stake Distribution #851
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-20-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-04-20T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-04-20-node-cli-api", + "content_html": "

    2023-04-20 - 2023-05-04

    High level summary

    • Various fixes and improvements

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-20-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-04-20T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-04-19-consensus", + "content_html": "

    High level summary

    This week the consensus team continued working on the improved DB lock mechanism\nfor UTxO-HD, and modifications to the mempool benchmarks that this prototype\nrequires.

    On the Genesis front we validated that the fragment size calculation in\nBlockFetch is a major performance sink for ChainSync Jumping. By removing it\nwe will get performance that is acceptably close to that of the baseline. We\nalso started investigating a performance fix that does not alter the existing\nbaseline behavior too much. In addition we reviewed our Genesis attack vector\ncalculations.

    On the support front we released Consensus 0.4, and we are working on improving\nour release process, to support the Cardano-wide efforts in this area. We also\nperformed an analysis on the number of file descriptors that consensus use. This\ninformation can be used by the node operators to check if the number of file\ndescriptors they want to support are enough.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-19-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-04-19T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-04-19-performance-and-tracing", + "content_html": "
    • Benchmarking: We performed a series of benchmarks aimed at the new 8.0 release branch and built a timeline from the 1.35 releases to that branch.
    • New tracing: Work on safeguarding the new tracing system performance-wise is ongoing. A practical use case for data points is being tackled with Galois.
    • Analysis pipeline: We're working on automatically obtaining a detailed manifest for each run.
    • Infrastructure: The library for benchmarking Plutus scripts has been merged. Also, we've laid the ground for including GHC profiling data into our workbench.
    • Nomad backend: The first iteration of a distributed / multi-client Nomad cluster has been merged.

    Benchmarking

    We have performed various cluster runs targeting the 8.0 release branch. That way we were able to catch an inconsistency in behaviour early on. This led to the creation of a specialized workbench profile epoch-transition for local reproduction of what we observed on the benchmarking cluster.

    Furthermore, we bridged the gap between the run data from the 1.35.x releases to the the new 8.0.x release branch. This included walking the\nmaster branch backwards and pinpointing the order, as well as the dates and commits of all relevant component bumps. This timeline is absolutely crucial\nin locating possible regressions for the new release branch, as it provides the exact points in history we would need to target with a comprehensive set of\nbenchmarks.

    Tracing

    In-depth performance analysis of the new tracing system has already yielded results and helped us smoothing some rough edges. However, this work is still\nongoing.

    In coordination with Galois, who are developing a system assurance service by observing a number of cardano-nodes, we're working with the implementation\nof data points which the node provides during runtime. While making the view on data points expressive enough for the external service, the computational\nburden inside the node needs to be kept to an absolute minimum. We're currently in ideation about whether cardano-tracer could be extended with a richer\nfeature set to that end.

    Infrastructure & Analysis

    Detailed manifest

    A run manifest documents, among other things, the component dependencies that were used for a specific build the run has been performed with.\nThese dependencies come from different package sources, have different versioning policies, and an identical package version might provide different\nperformance characteristics depending on the exact commit used for the build. This manifest will greatly increase insight into where changes in measured behaviour might have originated\nby making all component bumps visible and accessible.

    GHC profiling inside workbench

    The workbench has been equipped with a new -profnix profile flavour. This enforces a -fprof-auto build for all node-related packages. The type of\nprofiling data generated by the GHC runtime can be customized and will enter statistical analysis. The relevant PR for this new feature has already\nbeen merged to master.

    Nomad backend

    The added feature for a multi-client Nomad cluster greatly enhances how jobs are organized by the backend and mapped within specific instances.\nThis results in great maintainability while not giving up on flexibility. However, work on that feature is still ongoing.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-19-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "* Benchmarking: We performed a series of benchmarks aimed at the new 8.0 release branch and built a timeline from the 1.35 releases to that branch.", + "date_modified": "2023-04-19T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-04-17-ledger", + "content_html": "

    Cardano block production temporary outage

    On Sunday, January 22, 2023, an incident occurred resulting in block production pausing for a brief period of time (approximately two minutes, similar to the usual pause at an epoch boundary). Around 50% of block-producing nodes and relays restarted during this period. Having restarted, nodes continued to produce blocks without failure. While the network continued to operate, the issue did have the potential to affect network integrity, so was flagged as a ‘critical’ incident, thus warranting immediate response and investigation by IOG engineers.\nThe investigation (with SPO & Cardano Foundation collaboration) quickly revealed the cause of the issue – a complex bug in data structure handling code related to the precise order of insertion/deletion of multi-asset tokens into the internal ledger record. Input Output Global (IOG) engineers, along with SPOs and DApp developers, collectively identified how to reproduce the issue as a unit test that could be included in the standard Cardano node test suite.\nFollowing successful testing, this led to a bug fix being implemented, tested, benchmarked, and deployed as a hotfix in the node v.1.35.5 release on Friday, January 27, 2023. Care was taken not to highlight the exact cause of the bug during this process so that it could not be exploited prior to SPOs deploying this new node version.\nWith the fix deployed, the Cardano SPO and developer community have not seen any further instances of this issue.

    Further Details

    You can read more details on the incident and how it was managed from SundaeSwap’s Pi Lanningham here. Thanks again to all the community for its support in identifying and fixing this bug.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-17-ledger", + "title": "Cardano Block Production Temporary Outage", + "summary": "Cardano block production temporary outage", + "date_modified": "2023-04-17T00:00:00.000Z", + "author": { + "name": "Kevin Hammond", + "url": "https://github.com/kevinhammond" + }, + "tags": [ + "ledger", + "incident" + ] + }, + { + "id": "2023-04-14-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    This sprint the team has submitted two papers for publication, carried\nout consultancy with other teams and has an opening for an intern.

    Details

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-14-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-04-14T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-04-14-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team focused on improving the smoke test, fixing developer\ntooling, and improving the API for voting use cases. They reviewed progress on\nauction, payments, and voting projects and made worked on reproducing a bug with\nhandling rollbacks. Moving forward, the team plans to update dependencies,\nimplement a dirt road fix for the rollbacks bug, and explore adding Hydra\nsupport to kupo.

    What did the team achieve this week

    • Reviewed progress on auction, payments and voting projects
    • Improved smoke tests so they can run on mainnet
    • Fixed a regression in the development environment and updated cardano-node\nused in tests
    • Improved API with more configurability to unblock voting use case
      • Exclude utxo in SnapshotConfirmed outputs #808
      • Addressed a user request by only sending Greetings once #813
    • Reproduced the rollback bug by improving our model-based test suite #784

    What are the goals of next week

    • Update dependencies to match cardano-node master
    • Dirt road fix for rollbacks #784
    • Update Hydraw to maintain state locally
    • Explore adding Hydra support to kupo
    • Put disclaimer texts and closing mainnet compatibility feature #713
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-14-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-04-14T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-04-07-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team published the monthly report for March, created\nseparate links for different versions of documentation, and clarified potential\nsolutions for the Rollbacks bug. The team also discussed Query API requests for\nthe Hydra Voting project and met with community members to answer questions\nabout Hydra. Moving forward, the team plans to integrate the specification into\nthe repository, implement a short-term fix for the Rollbacks issue, and draft a\nQuery API ADR.

    What did the team achieve this week

    • Published monthly reports on website
    • Separate last released and latest versions of docs (e.g. normal released vs. /unstable)
    • Discussed Query API concerns from Hydra Voting project (link)
    • Clarified rollbacks bug and defined possible solutions (short and long term) #784
    • Met with community members to answer questions about Hydra

    What are the goals of next week

    • Finally get the docs integrated into the repository #693
    • Dirt road fix for rollbacks #784
    • Disclaimer text and detail known issues about mainnet compatibility\n#713
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-07-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-04-07T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-04-06-mithril", + "content_html": "

    High level overview

    The Mithril team released a new 2313.0 distribution that implements minor improvements and bug fixes. They continued implementing the migration of the aggregator stores to a relational design. They finished adaptating and migrating the certificate, epoch settings, signed entity type, signer registration and open message stores. Additionally, they completed the refactoring of the dependency injector of the aggregator and simplified its multi-signer in order for it to sign multiple concurrent messages.

    Finally, the team has worked on designing the new architecture of the network to support signing multiple types of data and upgraded the version of the Cardano node used in the Mithril testnets and devnet to 1.35.6.

    Low level overview

    • Released the new distribution 2313.0
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the epoch_settings table #813
      • Completed the migration/adaptation of the signed-entity-type table #815
      • Completed the migration/adaptation of the certificate table #817
      • Completed the migration/adaptation of the open_message table #827
      • Completed the migration/adaptation of the signer_registration table #828
    • Completed the refactoring of the dependency injection of the aggregator #823
    • Completed the cleanup of the multi-signer of the aggregator #824
    • Completed the upgrade of the Cardano node to 1.35.6 #843
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-06-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-04-06T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-04-05-consensus", + "content_html": "

    High level summary

    This week the consensus team finished the UTxO-HD prototype refactoring. We are\nnow working on improving the DB lock mechanism to improve performance. We also\nintroduced several improvements to the file system abstraction and simulation\nlayer (fs-sim), which culminated in the release of fs-sim-0.1.0.0 and\nfs-api-0.1.0.0 to CHaP.

    On the Genesis front we distributed the updated Genesis design document,\nsoliciting feedback from Networking Team and IOG Researchers. We also opened up\na PR for the adversarial leader schedule QuickCheck generator, which is being\nreviewed.

    On the support front, we got a new Consensus version that can use different\nfundamental VRF crypto primitives for Babbage and Conway eras.

    On the tech debt front we fixed an bug in the followers logic, which was\ndiscovered by our QuickCheck property tests.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-05-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-04-05T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-04-05-node-cli-api", + "content_html": "

    2023-04-05 - 2023-04-19

    High level summary

    • Introduce new governance commands create, answer and verify. This allows us to have onchain polls.
    • Begin making changes in cardano-api to accomodate for CIP-1694
    • Rename TestEnableDevelopmentHardForkEras to ExperimentalHardForksEnabled and TestEnableDevelopmentNetworkProtocols to ExperimentalProtocolsEnabled
    • Various bug fixes and improvements

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-05-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-04-05T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-04-05-performance-and-tracing", + "content_html": "
    • Benchmarking: We worked on adjusting our infrastructure to the new 8.0 release branch and performed a (very) early run.
    • New tracing: We're profiling the new tracing system for minimizing its resource footprint and guarantee high throughput.
    • Analysis pipeline: Variance analysis both for reporting and for serving as a point of comparison has been merged.
    • Infrastructure: A library for Plutus scripts will be integrated in our tooling and benchmarking profiles. Also, a profile family aimed at the tracing systems has been added.
    • Nomad backend: Various specializations of the backend are currently being implemented, along with streamlining credentials management.

    Benchmarking

    We have adapted our benchmarking cluster to the requirements of the 8.0 release branch. Testing runs of a very early feature branch for 8.0\nhelped us localize an important issue in collaboration with the other teams. We look forward to gathering preliminary metrics for 8.0 soon.

    Tracing

    Analysis of resource usage profiles of both the legacy and new tracing system, with and without trace forwarding, have lead us to gather very\ndetailed profiling data for each possible setup. This is to ensure we keep resource usage within the node to an absolute minimum, while still providing\nthe highest possible throughput of data for forwarding to cardano-tracer.

    Additionally, we've worked on a very practically-oriented document targeted at end users of the new tracing system. It provides tested step-by-step instructions\nfor tunneling trace forwarding from a node to cardano-tracer via an easy to manage system service, which will match the production setup of most users.

    Infrastructure & Analysis

    General

    Variance analysis as a full-fledged entity in our tooling has been merged. Not only is this type of analysis now part of our reporting pipeline - variance\nanalysis can be fed back and serve as an additional point of comparison.

    Furthermore, we've created a profile family for the workbench that's specifically aimed at measuring and comparing tracing system configurations.

    Plutus library

    We opened a PR containing a new package for benchmarking - an extendable library that holds all Plutus scripts we use in our benchmarking profiles.\nThis will enable us in the future to iteratively work on customizing any given script, and the way is called in the context of a specific profile.\nIt is a refinement of current affairs, where we have additional build inputs solely to generate a static script file tied to an external commit.

    Nomad backend

    The nomad backend is being specialized in three ways: using a podman driver locally, using nomad agents supporting nix installables, and using nomad cloud agents. This supports having a common surface independent of the actual backend driver being used. In addition, vault retrieval and management of cloud access credentials is\nbeing improved to minimize any friction for the backend user.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-04-05-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "* Benchmarking: We worked on adjusting our infrastructure to the new 8.0 release branch and performed a (very) early run.", + "date_modified": "2023-04-05T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-03-31-crypto", + "content_html": "

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Started looking into full-node verifier
    • cardano-base: BLS12-381's PR merged. Creating test-vectors for verifying basic pairing properties.
    • KES agent: Blockers overcome. Reaching a first MVP level of the KES-agent.
    • Sidechains: Included BLS12-381 & JubJub to halo2curves
    • MuSig2: Final modifs to C version.

    Low level summary

    Mithril

    • Started designing how a full-node verifier would work. Issue comming in the next couple of weeks.

    cardano-base

    • BLS12-381 branch merged PR#266.
    • Testing strategy for BLS bindings:
      • Test-vectors for Groth16, and simple BLS signatures ready.
      • Test-vectors with different library, and created by different engineer.

    KES agent

    • Resolved issues of circular dependency
    • Got rid of separate DSIGN and DSIGNM, we now have DSIGN over mlocked keys, but the phantom type is the same.
    • Opened a PR for raw bearer branch in ouroboros network PR4395
    • Resolved a bug where the agent node did not properly closed connections
    • Updated version of IOSim allowed us to finish a first version of KES agent.

    Sidechains

    • Included BLS12-381 curve to our branch of halo2curves
    • Included JubJub to our branch of halo2curves

    MuSig2

    • Minor reorg PR#42
    • Started including fuzz testing for deserialisation PR#
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-31-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2023-03-31T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2023-03-31-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    This sprint the team has been working on final drafts of two papers\nfor internal review and planning next steps of analysis of consensus\ndesign refiniments.

    Details

    • Preparing final draft of DeltaQSD algebra paper for internal review

    • Preparing final draft of verifying design refinements for\ndistributed system design for internal review

    • Planning next phase of consensus design refinement analysis

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-31-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-03-31T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-03-31-hydra", + "content_html": "

    High-level summary

    This week, the Hydra continued work on finishing mainnet compatibility. The\nsemi-automated smoke tests and some missing documentation is still preventing\nfrom calling that fully done. They fixed smaller issues and made a step in the\nHead protocol more robust. Besides development, they met with interested people\nfrom the community who want to get started collaborating on communication and\nmarketing materials.

    What did the team achieve this week

    • Groomed and followed-up on GetUTxO user request discussion #797
    • Fixed hydra-node crashes after forks #560
    • Made collectCom more robust and aligned with spec #786
    • Completed configurable API feature #380
    • Met potential contributors about Hydra communication and marketing materials
    • Versioned documentation: we have a unstable bleeding edge version available as well now, seperate from the last released version

    What are the goals of next week

    • Follow-up backlog and roadmap clean-up
    • Complete mainnet compatibility feature #713 (documentation updates)
    • Integrate Hydra specification into repository #693
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-31-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-03-31T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-03-31-ledger", + "content_html": "

    High level summary

    We are still heavily involved in work related to preparing the next release.\nThe other main thing we have worked on is experimentation about how we will\nhandle the DRep stake distribution for CIP-1694 in the conway ledger era.\nLastly, we merged a fix for\nnode-4826\ninto our main branch (there will be a post-mortem shortly).

    Low level summary

    Support for the next release

    • pull-3363 - Fix problems relating to Arbitrary instances used by consensus.
    • pull-3361 - Remove the alonze genesis from the conway genesis.
    • pull-3360 - Translate bad pointer addresses to valid ones in conway.
    • pull-3357 - Fix a bug relating to zero valued ADA in the script context.
    • pull-3356 - Added needed instances (Arbitrary and Serialization) for conway integration.
    • pull-3345 - Added helper functions for the CLI.
    • pull-3342 - Fix a bug with a CLI helper function (having to do with deposit tracking).

    Experiments for DRep stake distribution

    Adding another stake distribution to the ledger state presents some new challenges.\nWe would like to be able to use the current stake distribution at the epoch boundary\nfor DRep voting so that people can always vote themselves in time for any proposal.\nTo this end, we have a prototype of an incremental computation based on the incremental\nlambda calculus, together with tests and benchmarks (which are very promising).\nSee pull-3344.

    Additionally, more of the ledger state is going to need to be rearranged to accomodate\nthe new incremental computations.\nWe have two draft PRs up for possibles solution.\nSee pull-3353 and pull-3364.

    Technical debt and bug fixes

    Documentation changes

    • pull-3354 - Rename \"optional datums\" with \"supplemental datums\" in the alonzo spec.
    • pull-3352 - Add a section to the Shelly errata about the individual deposit tracking.
    • pull-3351 - Further clarify the details regarding the script integrity hash.
    • pull-3350 - Some cleanup of the Babbage spec.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-31-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-03-31T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-03-27-system-test", + "content_html": "

    High level summary

    Since the last update (2023-1-13) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.5 and 1.35.6 releases (and their predecessing release candidates) and ran tests on branch with the UTxO-HD functionality.

    Workstreams

    Framework improvements:

    • improvements in searching for unexpected error messages in log files during test run
    • added support for UTxO-HD testing
    • added support for the new P2P topology format
    • added local cluster variant that has the same properties as mainnet (epoch length, fees, etc.)
    • added preliminary support for the Conway era
    • added support for running tests on the Preview testnet

    Full list of closed PRs

    Node:

    • ran tests on node branch with the UTxO-HD functionality
    • tested the 1.35.5 release
    • tested the 1.35.6 release

    DB-Sync:

    • improvements in db-sync sync tests
    • improvements in db-sync functional tests
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-27-system-test", + "title": "System Test Team Update", + "summary": "High level summary", + "date_modified": "2023-03-27T00:00:00.000Z", + "author": { + "name": "Martin Kourim", + "url": "https://github.com/mkoura" + }, + "tags": [ + "system-test" + ] + }, + { + "id": "2023-03-24-hydra", + "content_html": "

    High-level summary

    This week, the Hydra had a team workshop and conducted the monthly review\nmeeting for March. They demonstrated a Hydra Head on mainnet, which was running\nthe hydraw demo application. While this marks an important milestone, they also\nemphasized that more features are still to be added as needed for applications\nto run on Hydra. Besides this, the roadmap is getting cleaned up to encourage\ndiscussions and provide more space for user requests.

    What did the team achieve this week

    • Monthly review meeting slides/recording, full report of March next week
      • Opened a head on mainnet with hydraw demonstration
      • Hydra pay updates
    • Team workshop in Austria
      • Hydra presentation at the Cardano Foundation in Zurich
      • In-person grooming session, marked many items as candidates to be rather :idea: dicussions
      • Improved head protocol #786 and investigated a potential bug in rollback handling #784
      • Team building and retrospective

    What are the goals of next week

    • Follow-up on backlog and roadmap clean-up
    • Complete mainnet compatibility feature (documentation updates)
    • Make API more configurable #380
    • Integrate Hydra specification into repository #693
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-24-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-03-24T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-03-23-db-sync", + "content_html": "

    High level summary

    The DBSync team worked in performance enhancements issues, on providing new db-sync options and on\ntechnical debt and bug fixing. The DBSync team also on boarded a new member.

    Low level summary

    • Worked on an issue which causes ada_pots tables to include the values related not only to an\nepoch, but also the first epoch of the last epoch.\n#1367
    • Fixed an issue where the epoch table didn't rollback and caused wrong values\n#1370
    • Fixed an issue were users with disable-ledger option had to provide the state dir option, even\nthough it was never used. Also refactored the no ledger part of the codebase.\n#1378
    • Improved the perforance by using the cache more. Also provided many new options which enables or\ndisables parts of db-sync. In addition a new --turbo mode is enables which allows db-sync to sync\nmainnet in hours.\n#1379
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-23-db-sync", + "title": "DB-sync Team Update", + "summary": "High level summary", + "date_modified": "2023-03-23T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2023-03-23-mithril", + "content_html": "

    High level overview

    The Mithril team released a new 2310.0 distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images.

    Finally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano mainnet and they have fixed some bugs.

    Low level overview

    • Completed the epic that implements eras behavior switch #707:
      • Completed handling the API version switch at era transition #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed on the migration/adaptation of the stake_pool table #787
      • Worked on the migration/adaptation of the epoch_settings table #813
      • Worked on the migration/adaptation of the signed-entity-type table #815
      • Completed the creation of a stake distribution service #799
    • Completed the testing of Mithril with Cardano mainnet network #777
    • Completed qualifying the computation of the stake distribution #810
    • Completed the testing of the Docker client in the Mithril Client multi-platform test workflow #794
    • Worked on bugs and optimizations:
      • Fixed a bug that made computation of the stake distribution occur multiple times during an epoch #804
      • Fixed a bug that created deadlocks on the SQLite connection #807
      • Optimized the error message and the behavior of the signer node when KES keys have expired #820
      • Upgraded the infrastructure of the testing-preview and pre-release-preview networks #801
      • Re-genesis of the testing-preview network #803
      • Re-genesis of the pre-release-preview network #818
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-23-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-03-23T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-03-22-consensus", + "content_html": "

    High level summary

    This week the consensus team continued working on the refactoring of the UTxO HD\nprototype, and design and testing of Genesis. We also extracted the fs-sim\npackage, which provides a file-system abstraction layer that can be used for\ntesting and simulation. This makes the Consensus code base smaller, while\nproviding a package that the community can reuse and contribute to. We also\nfixed a failing property test related to iterators. We are also working on\nmempool and VRF improvements.

    Low-level details

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-22-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-03-22T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-03-22-node-cli-api", + "content_html": "

    2023-03-22 - 2023-04-05

    High level summary

    • Added new cardano-cli ping command which allows users to ping remote cardano-nodes.
    • The transaction build command now can automatically balance multiassets
    • New combinators for constructing transaction bodies. This allows us to construct transaction bodies in a composable manner.

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-22-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-03-22T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-03-22-performance-and-tracing", + "content_html": "
    • Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.
    • New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we're currently improving documentation and creating setup guidelines for end users.
    • Analysis pipeline: Our refined metrics PR has been merged. We're working on including variance analysis to our reporting machinery.
    • Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we're laying the groundwork for enabling GHC 9.2 in our benchmarks.
    • Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing.
    • Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.

    Performance

    New tracing

    The new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe\na slight shift in the resource usage profile from memory to CPU, but no regressions in block propagation metrics. Variance was observed to be notably smaller, which gives the new system a much better predictability. From this angle, we consider the new system fit for production use.

    GHC RTS parametrization

    We're currently prerforming various runs on the cluster to explore the space of different GHC RTS settings for running nodes. The main focus lies\non different configurations for the garbage collector, as well as increasing the number of CPU cores the node may use.

    Open Sourcing

    Our API demo has reached prototype stage, and operates on live data from the production database. Making use of the experience gained, we're refining version 1 of the API to provide optimized usability, and creating documentation that both is descriptive of the API endpoints, and focuses on practical, exemplary use cases.

    Tracing

    For the new tracing system we're currently undertaking an effort to multi-layered documentation: a condensed version, as well\nas a setup guide with pragmatical focus, will be provided alongside the in-depth documentation. This effort should cater to different audiences, and provide distinct entry points\nfor users of the new system, depending on their wants and needs.

    Infrastructure & Analysis

    General

    Having included Conway genesis in the workbench, as a next step in future-proofing out benchmarking infrastructure, we're laying the foundation for a switch in compiler version to GHC 9.2. Additionally, we considered variance analysis of our runs to merit inclusion into our reporting pipeling - which will\nincrease confidence in specific metrics.

    Nomad backend

    We have implemented an appropriate mechanism for genesis distribution: Only after a benchmarking cluster has been deployed successfully, genesis\nis patched and uploaded to an AWS S3 bucket for the nodes to retrieve - as a final step before initiating the actual run. We're confident that this deferred approach will provide clearer evidence for genesis patches, as well as minimize startup time for all runs by factoring in deployment re-tries.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-22-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "* Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.", + "date_modified": "2023-03-22T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-03-21-network", + "content_html": "

    High level summary

    In the last spring we released cardano-node-1.35.6 with dynamic P2P\nfunctionality.

    We received reports from some SPOs who encountered problems with their non\nP2P block producing nodes not being able to connect to their P2P relay. Karl\nKnutsson (from Cardano Foundation) reproduced this issue between two nodes (a\nnon P2P and a P2P one) on mainnet. Karl and the IOG Networking Team analysed\nit and found a bug in the legacy non p2p code. The bug is only possible to\ntrigger with a P2P node which is binding its outbound connection port to\na fixed IP address and port (default in p2p). A possible solution was found.\nFor more information see #4465.

    We released cardano-ping-0.1.0.0 package to CHaP. cardano-ping is no\nlonger available as a standalone binary, but instead it will become part of\ncardano-cli (see #4664)

    We are testing cardano-node with peer sharing functionality (#4019).

    We are working on eclipse evasion. We added new class of peers: big ledger\npeers to the outbound governor, implemented tests and fixed found issues\n(#4462). We also made the information if a given peer plays the role of\na big ledger peer to the mini-protocols. This will allow to modify\nmini-protocol applications for such peers. As part of this functionality we\nrefactored some core types in the network code which simplifies exposed API.

    Together with Moritz Angerman we started to update io-sim to ghc-9.6.1 (see\n#73).

    We merged a fix of configuration of accepted connections limit in\ncardano-node (see #4902).

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-21-network", + "title": "Network Team Update", + "summary": "High level summary", + "date_modified": "2023-03-21T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-03-17-crypto", + "content_html": "

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: RFP finished. Code ready for audit.
    • cardano-base: BLS12-381's PR approved, only blocker is Windows' CI. Preparing extensive testing strategy together with Plutus and Testing teams.
    • KES agent: Working on a desing on how to use IO sim in order to allow for proper network simulation testing.
    • Sidechains: Preparing proving system to use the curves needed for main-net PoC.

    Low level summary

    Mithril

    • Merged PR#783
    • RFP for crypto audit ready.

    cardano-base

    • BLS12-381 branch approved PR#266. Blocker is Windown's CI. Working on it
    • Testing strategy for BLS bindings:
      • Preparing test-vectors for Groth16, and simple BLS signatures
      • Finding community projects to help write their use cases
      • Designing AC, and expected tests for higher levels of development (Plutus team, E2E tests, etc)
    • Wrote blogpost on how using the same key for ed25519 and VRF completely breaks the security of both systems

    KES agent

    • Started integration of sockets interface used in consensus
    • Use that for de/ser
    • Resolving problems with block memory in IOSim. Can't use withForeignPtr in IOSim
    • Results in having to parametrise for IOSim in KES and DSIGN for testing

    Sidechains

    • Prepared an API for proof generation in sidechains, with it's C API for integration with JVM languages.
    • Design document and start interacting with researchers for concrete instantiation of SNARK-based ATMS.
    • EdDSA over JubJub ready
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-17-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2023-03-17T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2023-03-17-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team has continued work on the mainnet compatibility of the\nhydra-node. They added a golden test suite for hydra-plutus scripts, added\nsome detection of hydra-node misconfiguration, established a limit of 100 ADA\nper commit and other smaller tasks to prepare for a mainnet beta release.

    Next week there will be a small team workshop to push for demonstrating a Hydra\nHead on the Cardano mainnet, ideally just in time for the monthly review\nmeeting. See the hydra channels on the IOG Technical Community discord server\nfor details.

    What did the team achieve this week

    • Implement a 100 ADA hard-coded commit limit in the hydra-node\n#763
    • Pay back funds to faucet after smoke-test run\n#773
    • Setup custom github runner for smoke-tests on mainnet\n#775
    • Created golden tests to assure the script hash stays the same between\nchanges #772
    • Removed hardcoded error codes in plutus scripts\n#768
    • Detect misconfiguration of a hydra-node given persistent state\n#767
    • Met with potential users for hydra-pay
    • Prepared hydra workshop

    What are the goals of next week

    • Hydra monthly meeting
    • Open a multi-party head on mainnet
    • Complete mainnet compatibility feature
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-17-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-03-17T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-03-17-ledger", + "content_html": "

    High level summary

    We made further progress on the conway ledger era.\nIn particular, we expanded the ledger API significantly, including lots of governance features.\nWe also made progress on the specification and corresponding work in the Haskell implementation.

    We also continued to integrate the latest ledger packages into cardano node and addressed\ntechnical debt.

    Low level summary

    Expanded ledger API

    The ledger API was significantly expanded to include:

    • a lot of protocol parameter support
    • versioning support (type level ledger eras and protocol versions)
    • auxiliary data support
    • many new lenses
    • support for witnesses
    • support for conway governance

    See pull-3328.

    Conway ledger rules

    We have made progress on the formal ledger specification for the Conway era.\nMoreover, the corresponding Haskell updates were also completed:

    Incremental SPO/DRep stake distribution computation

    We have a working (and correct) proof of concept for how to use the incremental lambda calculus\nto maintain several of the stake distributions incrementally.\nFor the per-SPO distribution, this is a performance improvement.\nFor the (conway) per-DRep distribution, this is will allow those who have delegated their votes\nto a DRep to have time to react to any votes that they disapprove of.\n(Sorry, no code to share just yet, more to come.)

    Technical debt

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-17-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-03-17T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-03-16-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    This sprint the team has been working on drafts of two papers\nimproving the deltaQ tutorial, consulting on performance design, and\nthe final version of the Djed paper.

    Details

    • Preparing draft of DeltaQSD algebra paper for ICE 2023

    • Successful outcome of Marlowe consultancy leading to substantial\nimprovement in performance

    • Preparing sections on the communication language and bisimulation\nproofs for draft paper about verifying design refinements for\ndistributed system design

    • Camera ready version of Djed paper under preparation

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-16-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-03-16T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-03-10-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team addressed issues with committing complex UTxOs into a\nHydra Head, prepared the hydra-node to be run on mainnet (soon) and improved\nthe test suite of the hydra-plutus scripts. The specification is constantly\ngetting improved upon reviewer feedback on overleaf - this week the graphical\nnotation was refined to be more transaction-focused.

    What did the team achieve this week

    • Clarified bug of committing UTxOs with reference scripts to a Hydra head #737
    • Prepare usage of hydra-node on mainnet by updating command line options #715
    • Improved our mutation test suite to all expected errors #705
    • Re-opened our persistent hydraw demo head on preprod using version 0.9.0
    • Updated on-chain graphs to be more transaction-focused in the specification

    What are the goals of next week

    • Complete mainnet compatibility feature
    • Prepare the Hydra workshop
    • Address all todo’s in the Hydra specification
    • Unblock the auctions project with commit from script a solution
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-10-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-03-10T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-03-09-mithril", + "content_html": "

    High level overview

    The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano mainnet and computes the stake distribution with the optimized unreleased Cardano CLI command.

    Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.

    Low level overview

    • Worked on the epic that implements eras behavior switch #707:
      • Completed the deployment of the era behavior switch to the test networks #752
      • Completed the enhancement of datum generation for era markers #786
      • Worked on handling the API version with an era switch #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Worked on the migration/adaptation of the stake_pool table #787
    • Completed the refactoring of errors in the signer and aggregator state machines #665
    • Worked on testing Mithril with a mainnet Cardano network #777
    • Worked on fixing bugs with the Docker client image:
      • Fixed a bug that made the Docker client container crash at startup #769
      • Fixed a bug that prevented the restoration of a snapshot with a Docker client #791
      • Worked on testing the Docker client in the Mithril Client multi-platform test workflow #794
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-09-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-03-09T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-03-08-consensus", + "content_html": "

    High level summary

    The Consensus team continued working on refactoring and improving the UTxO-HD\nprototype, and introducing improvements to the lmdb related packages. In\nparticular we identified an opportunity to gain performance by handling locks in\na more optimal way.

    On the Genesis front, we sketched a mitigation for an issue that PNSol and\nResearchers caught. We also came op with a road map for not only testing the\nGenesis prototypes, but also for enriching the tests we already have.

    Regarding technical debt, next to some minor improvements, we created\ncomponent-level micro-benchmarks for adding transactions to the mempool. The\nresults of these benchmarks will be published in the ouroboros-consensus web\npage.

    We also finished moving the Consensus documentation to the ouroboros-consensus\nrepository, released ouroboros-consensus 0.3.0.0, and reduced the time\nGitHub actions take in ouroboros-network.

    Workstreams

    UTxO HD Prototype

    We continued working on refactoring and improving the UTxO-HD prototype. As a\nresult of the first round of sytem-level benchmarks, we identified an\nopportunity to optimise the way we handle locks to improve performance\n(#4393).

    Also, we introduced several improvements to the lmdb related packages:

    Genesis

    We sketched out a mitigation of the issue that PNSol and Researchers caught in\nthe Genesis design.

    We came up with a road map for testing the Genesis prototypes, including early\nmilestones that are applicable to today's master branch, ie tests that are\nuseful before Genesis, and that will be nicely enriched when we do add Genesis.

    We developed the aforementioned tests, specifically a QuickCheck generator for\nthe Honest leader schedule and one as-aggressive-as-possible Adversarial\nleader schedule that together satisfy the Praos properties that the Consensus\ndesign takes as invariants.

    We investigated why the improved ChainDB queueing implementation behaves\ndifferently in the baseline compared to the prototype, and we are close to\nhaving a full picture of how the Consensus components interact during bulk sync.

    Technical debt

    We created component-level micro-benchmarks for adding transactions\nto the mempool. We plan on extending this to more mempool actions and different\ntypes of blocks. We store the benchmark data to make it available\nto the GitHub action that publishes the benchmarks results.

    Other minor improvements include:

    • Removal of Test.Util.Classify in favour of Test.StateMachine.Labelling.
    • Addition of -Wunused-packages to the default ghc-options for Consensus\npackages.

    Fostering collaboration

    We finished moving the Consensus documentation from\nouroboros-network to ouroboros-consensus, in preparation for\nmigrating the code to the latter repository.

    Support

    We released ouroboros-consensus 0.3.0.0.

    We reduced the load in the ouroboros-network GitHub actions,\nthereby reducing the time CI jobs take.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-08-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-03-08T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-03-08-node-cli-api", + "content_html": "

    2023-03-08 - 2023-03-21

    High level summary

    General bug fixes and some refactoring

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-08-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-03-08T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-03-08-performance-and-tracing", + "content_html": "
    • Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.
    • New tracing: Backwards compatibility with legacy tracer nomenclature is being implemented to smoothe the transition for end users.
    • Analysis pipeline: A major refinement of benchmarking metrics has been realized, along with a structural improvementents regarding metrics denomination.
    • Open Sourcing: Work on going live with our benchmarking data has begun, as well as creating an API demo and documentation.
    • Nomad backend: The backend was adapted to a major refactoring in workbench and is being equipped with a nomad-exec based task driver.

    Performance

    1.35.6 release

    Benchmarking the second release candidate for 1.35.6 could again attest to a perfectly clean bill of health.

    Analysis pipeline

    Our analysis pipeline has seen an introduction of additional metrics, especially when focusing on the block producing node. They allow us to better\ndifferentiate the timing of ledger ticking and mempool snapshotting in the forging loop - a feature that promises much deeper insight into UTxO-HD performance.\nAdditionally, a restructuring of metrics names has been undertaken along with improvements in their data dictionary; a measure that will make benchmarking\ndata more easily accessible.

    Open Sourcing

    As a prerequisite for going live with our benchmarking data, we're currently working on consolidation of existing analyses, such as to provide a common foundation when accessing them externally. Additionally, we've begun working on a small visualization demo and interactive API documentation. Those will enable\nthird parties to make use of that data much more easily, by having reliable guidelines and a working example.

    Tracing

    The new tracing system is being outfitted with a comprehensive mapping of its structure to the legacy tracer nomenclature. This feature will make\nthe switch to the new system as smooth as possible for end users, allowing them to gradually adapt their tooling without breaking any functionality in the process.

    Infrastructure

    Nomad backend

    The Nomad backend was adapted to the latest major refactoring in workbench. Work was done on making stateful Nomad clients more autonomous, which will greatly facilitate any automation building on that backend. A task driver based on nomad-exec is currently being implemented.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-08-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "* Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.", + "date_modified": "2023-03-08T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-03-03-crypto", + "content_html": "

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.
    • cardano-base: BLS branch is now ready for review. We are workign forward its merge.
    • KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.
    • Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs

    Low level summary

    Mithril

    • Bumped to version 0.2.0 the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using mlock.
    • Opened PR#783 to update dependency
    • Improved testing for batch opening of mtree, PR#773
    • Improved testing for batch verification of STM sigs PR#774
    • RFP for crypto audit almost ready.

    cardano-base

    • BLS12-381 branch finally ready for review PR#266

    KES agent

    Team off for one week. Other progress:

    • Learning about raw direct-bearer abstraction. An interface for sockets in consensus.
    • use that for direct ser/deser
    • written those syntaxes for ouroboros (coming PR)
    • the kes agent will depend on that. \t

    Sidechains

    Progress with familiarisation of Halo2 library to write circuits.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-03-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2023-03-03T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2023-03-03-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    This sprint the team has been working on drafts of two papers and one\ntechnical report, improving the deltaQ tutorial, consulting on\nperformance design, and the Djed paper has been accepted for\npublication.

    Details

    • Preparing draft of DeltaQSD algebra paper for FORTE 2023

    • Extending the technical report on which the above paper is based

    • Consulting with an external company on performance engineering of Plutus contracts

    • Planning improvements and collecting material for the deltaQ\ntutorial based on experience with systems that manage risk at\nmultiple timescales

    • Preparing sections on the communication language and idempontency\nlaws for draft paper about verifying design refinements for\ndistributed system design

    • Studying Cardano chain sync protocol

    • \"Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin\nProtocol\" has been accepted for publication at IEEE ICBC 2023

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-03-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-03-03T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-03-03-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team released version\n0.9.0 - a version\nof the hydra-node with fully specified behavior of on-chain scripts and\noff-chain head-logic, decreased costs for opening/closing a Head and scalable\ncontestation deadline semantics. Check out the full release notes for details.

    Furthermore, they published the monthly\nreport of the Hydra project\nand conducted a review meeting with an increasingly wider audience. The team\nplans to extend invitations through the new Hydra\n#announcements discord channel for the next\nmonths, stay tuned!

    What did the team achieve this week

    • Monthly review meeting with report published on website
    • Fixed smoke tests #726
    • Reduced the cost of opening/closing a Head (error codes #748 + head reference script #701)
    • Released version 0.9.0
    • Conducted a first experiment on mainnet compatibility #713
    • New discord category with #announcements channel
    • Received a demo about the Hydra for Voting project
    • Lightning talk on mutation-based testing (to be shared)
    • New themes view in on our roadmap and some rearranging as we align it with high-level objectives
    • Clarified things with researchers, but mostly identified action items for them

    What are the goals of next week

    • Redraw transaction graphs and address TODOs specification
    • Run hydraw with 0.9.0 on preprod
    • Make smoke tests on mainnet possible
    • Groom the explorer item
    • Unblock the auctions projecth with commit from script a solution
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-03-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-03-03T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-03-03-ledger", + "content_html": "

    High level summary

    We have focused the last two weeks on CIP-1694, integration of the last several months of ledger\nwork into consensus and node, and testing infrastrutcture that we will use in the conway ledger era.

    Low level summary

    Conway rules

    We made a major update to the conway era so that the implementation is now in sync with the spec\nwith respect to the ratification and enactment logic.

    See the notes in pull-3291 for more details.

    Constraint based generators

    This week we hit a major milestone in our efforts to build out better property based testing\nsupport for the main ledger properties.\nThe new constraint based generators can now generate full ledger states with what is probably\nvery close to the real constraints (if anything, it is under constrained).\nNext we will work on generating a transaction in the context of a ledger state, which would allow\nus to actually start using these generators for real tests.

    See pull-3219.

    Preparing a release, now with proper versioning

    After quite some time, we are ready to release a version of ledger that will work with a new\nversion of consensus, using CHaPs.

    See pull-3308.

    Technical debt

    • We cleaned up the redeemer serialization code (to prevent future mistakes). See pull-3269.
    • We added a note to the Alonzo spec, specifying that the transaction inputs are\nlexicographically ordered in the Plutus script context. See pull-3306.
    • We fixed a problem with the address deserialiazation\n(we mistakenly fixed a bug in the Babbage era which cannot be fixed until Conway).\nSee pull-3307.
    • We fixed a problem with our nix build. See pull-3311.
    • We fixed a problem with our NoThunks tests. See pull-3310.
    • We improved our nightly tests. See pull-3316.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-03-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-03-03T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-03-02-network", + "content_html": "

    High level summary

    In the current sprint the networking team focused on fixing bugs and pushing\nforward implementation of eclipse evasion. We also found a bug in our\nsimulation testing setup (in integration of test node). We also overviewed the\nwork on extending handshake protocol which is delivered by Galois Inc.

    We published ouroboros-network-0.4.0.1 and\nouroboros-network-protocols-0.3.0.0 to CHaP.

    We also fixed a bug in cardano-node which results in not being able to\nconfigure inbound connection limits, see PR #4902.

    Together with Karl Knutsson (CF) we realised an issue in cardano-cli: it's\nvalidation of DNS names, IP address & ports when registering a stake pool\nshould be more strict to protect against common mistakes which we identified on\nthe chain. See issue #4929.

    Detailed work log

    In PR #4385 we fixed two bugs in peer state actions. First one results in\na busy loop if demotion from hot to warm times outs. This busy loop is\neventually exited when mux exits (we reported this in our previous report).\nThis fix made it to 1.35.6 release as well.

    In addition the PR #4385 also fixes another bug which results in hot -> warm\n-> hot demotion / promotion busy loop.

    The PR #4385 also fixed a bug in a node only used in simulation which\nresulted in not using chain-sync or block-fetch mini-protocols. In the\nreview process, we realised that the header-body split in the simulated node\nrequires further work (see PR #4419, which is under review).

    The PR #4385 also extend our generators, which together with the above fix,\ncover the hot -> warm -> hot demotion / promotion busy loop.

    In PR #4419 we introduce a ChainDB for our simulation node, which plays\nsimilar role to ChainDB in the ouroboros-consensus: a persistent (across\nsimulated restarts) store of blocks which does chain selection. This ensures\nthat the simulated node is using block-fetch to download blocks announced by\nchain-sync mini-protocol.

    We also made progress with reviewing PR #4019 - peer sharing.

    We also fixed issue #4370 - a connection manager test failure, see PR #4384.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-03-02-network", + "title": "Network Team Update", + "summary": "High level summary", + "date_modified": "2023-03-02T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-02-24-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team continue closing many gaps and aligning the\nimplementation with the specification. More over, they have groomed a plan to\nmake Hydra Mainnet compatible. Also, they continue moving forward with the\ninternal auditing and have published some auditing guidelines to receive\ncontributions from the community.

    What did the team achieve this week

    • Completed #452 (what is\nremaining in there)
    • Aligned the Head protocol logic implementation with the specification
    • Completed full minting policy implementation and spec\n#720
    • Clarified message authentication with researchers
    • Groomed what is left to do for Mainnet compatibility\n#713 and drafted a\n0.10.0 version
    • Added a tutorial by @perturbing to the\nwebsite LINK
    • Published auditing guidelines\nLINK
    • Made hydra-node work for macos\n#746 and added support\nfor building on aarch64\n#673
    • Met with a potential customer of Hydra for Payments

    What are the goals of next week

    • Have the monthly review meeting incl. the report
    • Have smoke tests fixed and running regularly
    • Release 0.9.0 with updated scripts
    • Redraw transaction graphs for specification
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-24-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-02-24T00:00:00.000Z", + "author": { + "name": "Franco Testagrossa", + "url": "https://github.com/ffakenz" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-02-23-mithril", + "content_html": "

    High level overview

    The Mithril team released a new 2306.0 distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes’ CLI that allows generating and signing an era marker’s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.

    Low level overview

    • Released the new distribution 2306.0
    • Completed the epic that implements signer versions deployment monitoring #718:
      • Completed the implementation an event producer/consumer via channel #738
      • Completed the creation of a database and its configuration to save the events on the consumer side #740
      • Completed the creation of events and sending them on the channel on the producer side #741
      • Completed the creation of the signer registration event #742
      • Completed the creation a query to extract the node versions stakes distribution #743
    • Worked on the epic that implements eras behavior switch #707:
      • Completed the loading of era reader adapters from config in the signer and the aggregator #732
      • Completed the implementation of an era cli command in the aggregator #755
      • Completed the implementation of a dynamic matrix of cases in CI end to end tests #760
    • Fixed some bugs:
      • Fixed the unsupported unixepoch() function #757
      • Fixed the problem that prevented some signers from signing on the testing-preview network #730
      • Update SQLite version to 3.40 in aggregator infrastructure #765
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-23-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-02-23T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-02-23-performance-and-tracing", + "content_html": "
    • SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.
    • Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.
    • UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.
    • New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.
    • Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.
    • Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.

    Performance

    SECP

    1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.
    2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.
    3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking.

    UTxO-HD

    1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.
    2. We're currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.

    1.35.6 release

    Benchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.

    Tracing

    Work on the new tracing system's introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.

    Infrastructure

    Nomad backend

    1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.
    2. Locality assumptions were removed and job monitoring was refactored.
    3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.
    4. We're currently evaluating different options for genesis distribution in said cluster.

    NixOps backend

    The NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-23-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "* SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.", + "date_modified": "2023-02-23T00:00:00.000Z", + "author": { + "name": "Michael Karg", + "url": "https://github.com/mgmeier" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-02-22-consensus", + "content_html": "

    High level summary

    During the past two weeks we got the results from the system level benchmarks\nfor UTxO HD. They showed a substantial performance regression, so we spent some\ntime analyzing the results. We found out the frequency at which ledger snapshots\nwere taken was too high, so we requested the benchmarking team a new run with a\nmore realistic snapshotting policy. We continued refactoring and improving the\nprototype, and we released UTxO-HD related packages to CHaP.

    We met with IOG researchers and networking specialists to discuss the Genesis\ndesign, which was well received. We continued working on testing and\nbenchmarking different Genesis prototypes.

    We are also working on solving a test failure related to iterators. This work\nderived in several improvements such as better documentation, a framework for\nwriting unit (and regression) tests, and the possibility of debugging\nQuickCheck counter examples in the REPL.

    Finally, we released ouroboros-consensus 0.2.0.0 and\nouroboros-consensus-cardano 0.3.0.0 to CHaP

    Workstreams

    UTxO HD Prototype

    We got the results of the first system level benchmarks for UTxO HD. They seemed\nto indicate a significant regression in performance. After looking into the\nbenchmark logs we found that the benchmark runs took ledger state snapshots too\noften, due to the default snapshotting policy depending on k, and k being so\nsmall in the benchmark runs. Therefore, the next step is to re-run the\nbenchmarks with a snapshotting policy that more closely resembles the one from\nmainnet.

    At the same time, we continued refactoring and cleaning up the prototype.

    Also, we prepared the anti-diff packages (fingertree-rm, diff-containers,\nsimple-semigroupoids) and the lmdb related packages (cardano-lmdb and\ncardano-lmdb-simple) to CHaP.

    Genesis

    The Genesis design was presented to the IOG researchers and Peter Thompson from\nNSol. It was well received. They pointed out one blindspot, but we think it'll\nbe relatively simple to mitigate.

    In parallel, we continued developing test and benchmarks for the Genesis\nprototypes. I particular we tested and implemented a potential fix for\nincreased ChainDB dequeue timings, which partly\nbehaved as we expected, but still needs further investigation. Also we obtained\nnew benchmarking data for the prototype.

    Technical debt

    Related to #4183, we developed a DSL for specifying\nChainDB unit tests. This will allow us to better understand the\ncounter-examples returned by QuickCheck tests, and to write regression\ntests for them. Also, we added a module to enable\nQuickCheck counter-examples to be run on the REPL, allowing for faster debugging\nfeedback. Also, we improved the documentation related to followers\n(#4372).

    We are also working on a design for optimizing the way we handle blocks from the\nfuture.

    Support

    We released ouroboros-consensus 0.2.0.0 and ouroboros-consensus-cardano\n0.3.0.0 to CHaP. Remember that we decided to split the packages related to\nConsensus into two bundles, one with the core functionality, Cardano-agnostic\ncode, and another bundle with instantiations specific to Cardano.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-22-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-02-22T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-02-22-node-cli-api", + "content_html": "

    2023-02-22 - 2023-03-07

    High level summary

    General bug fixes

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    Documentation

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-22-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-02-22T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-02-21-db-sync", + "content_html": "

    High level summary

    The db-sync team created a new tag 13.1.0.2 which is ready to release.\nWe also investigated and had the first working UTxO-HD integration which is one\nof the potential future risks for db-sync.

    Low level summary

    • Integrated the UTxO-HD feauture branch in kderme/utxo-hd-1. This doesn't\nuse the full on disk storage but keeps things in memory and the plan is to keep\nit this way for the first iteration. The integration still has some performance\nissues which we investigate
    • Created tag 13.1.0.2 which upgrades the dependencies of db-sync
    • Fixed an issue related to errors appearing in SMASH\n#1353
    • Continued with ghc-9.2 integration\n#1339
    • Worked on an new fixing procedure for\n#1348.\nWe try to make these procedures work also on older schema version, without the\nneed to migrate to newer schema, which can be very useful for fixing existing\nsnapshots.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-21-db-sync", + "title": "DB-sync Team Update", + "summary": "High level summary", + "date_modified": "2023-02-21T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2023-02-17-crypto", + "content_html": "

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril's core library (decided to add audit of KES). Design proposal for viable registration.
    • cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: started implementation in rust.

    Low level summary

    Mithril

    • Transmute helpers merged PR#722
    • We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope.
    • We are working in a modification of KES to require caller to allocate the secret key buffer.
    • Proposed a solution for signer registration of Mithril.

    cardano-base

    • Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 proof.
      • Results are promising, with using only 23% of the execution budget to verify a realistic proof.
      • Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril.
    • KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this.
    • Conversion finally merged PR#344.

    KES agent

    • Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation
    • Figuring out how to go from fake file descriptor to write the raw bytes

    MuSig2

    • Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-17-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2023-02-17T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2023-02-17-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    This sprint the team has been working on drafts of two papers and one\ntechnical report, distributivity properties of deltaQ, and consulting\non performance design with the Marlowe team.

    Details

    • Processing reviews on performance engineering paper and planning\npaper revisions accordingly

    • Investigating distributivity properties of DeltaQ

    • Preparing sections on the thorn calculus and idempotency laws for\ndraft paper about verifying design refinements for distributed\nsystem design

    • Consulting on performance design with Marlowe team

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-17-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-02-17T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-02-17-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team completed work on dealing differently with contests\nduring the contestation period. These will now always push out the deadline and\nhence contestation periods are easier to pick (depending on the network a Head\nruns on). Furthermore, they added an important acceptance test and completed\ninternal refactoring of the protocol logic making future changes easier.

    What did the team achieve this week

    • Push contestation deadline on each contest #716
    • Wrote an acceptance (property) test can always close/fanout when collect is successful
    • Internal refactoring of our HeadLogic
    • Groomed remaining things from #452 into dedicated features

    What are the goals of next week

    • Complete full minting policy #720
    • Release 0.9.0 with updated scripts
    • Plan mainnet milestone and a 0.10.0 version
    • Redraw transaction graphs for specification (upon feedback)
    • Have smoke tests fixed and running regularly
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-17-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-02-17T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-02-17-ledger", + "content_html": "

    High level summary

    This past two weeks saw many months worth of ledger changes integrated with the cardano-base\nand ouroboros-network repositories.\nThe vast majority of the effort involved all the changes to the ledger serialization libraries\n(and the interplay with cardano-base) which now support proper versioning.\nSupporting the conway ledger era, and in particular allowing the ledger state to transition\nto a whole new system of governance, also played a noticeable part in the integration.

    Besides the integration work, the team continues to address technical debt, improve the\ndocumentation, make our testing infrastructure better (such as experimenting with better\nnightly tests), and formally specifying more parts of CIP-1694.

    Lower level summary

    Integration work

    Below is all the integration work completed, which will enable a release to node from\nthe current ledger master. Many thanks to\nAlexey for this colossal undertaking!

    Technical debt

    Starting in major protocol version 9, zero-valued multi-assets will no longer be permitted\nin the CBOR specification. See pull-3241.

    We now have our .cabal files being checked for a consistent formatting given by\ncabal format in our CI. See pull-3286.

    We are still experimenting with better nightly tests for our long running\nproperty based tests. See pull-3276 and pull-3296.

    Small documentation improvements

    The hand proofs of the preservation ADA property have been added back to the\nShelley ledger specification. See pull-3295.

    We have clarified how the script integrity hash is computed in the CDDL description.\nSee pull-3290.

    Specifying CIP-1694

    Our new formal specifications backed by Agda have seen a lot of progress!\nUpgrading to Agda 2.6.3 fixed our main build infrastructure problems,\nand we no longer have to rely on our custom fork. See pull-50.

    Our progress on formally specifying CIP-1694 can be followed here:

    Constraint based testing

    We are still actively working on our new constraint based property testing framework.\nWe have nearly all of the constraints for an entire ledger state\nhooked into generators, and tests that the generators do indeed obey the constraints.\nThe variable count in the constraints is over 100!\nThere is still much work to do on shrinking, making the generators faster,\nand writing actual property tests for the ledger, but the approach still seems viable and\nwe are hopeful that it could replace our trace generators.\nThe WIP can be followed here: pull-3219.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-17-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-02-17T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-02-17-network", + "content_html": "

    High level summary

    Recently QA found a bug in P2P code, which results in busy loops. We added one\nfix to 1.35.6 release, another one will likely be part of next release. The\nfirst one is already included in ouroboros-network-0.3.0.1 release. These\nbugs could only affect nodes which are out of sync and thus should not impose\nrisk on well maintained nodes on mainnet. We also advertise to deploy at most\none of the relays as a P2P node, which shields from possible consequences.

    We recently finished design phase of eclipse evasion and we started\nimplementing it (see issue #3886 for progress).

    Galois finished implementing Handshake extension which will allow to query\nnetwork protocol versions (see pr #4256).

    We also recently released a newer set of network packages to be integrated with\ncardano-node master branch, this includes:

    * monoidal-synchronisation-0.1.0.2
    * cardano-client-0.1.0.2
    * network-mux-0.3.0.0
    * ouroboros-network-api-0.1.0.0
    * ouroboros-network-protocols-0.2.0.0
    * ouroboros-network-testing-0.2.0.1
    * ouroboros-network-mock-0.1.0.0
    * ouroboros-network-framework-0.3.0.0
    * ouroboros-network-0.4.0.0 (it doesn't not yet include the fix we included
    in `0.3.0.1`)
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-17-network", + "title": "Network Team Update", + "summary": "High level summary", + "date_modified": "2023-02-17T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2023-02-10-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team closed several gaps to align the Hydra scripts\nimplementation further with the specification. This also resulted in a slight\nimprovement on Hydra script size and costs. They consequently analysed the\nasymptotic complexity of collect and fanout and how they relate. Also plutus-tx\nprofiling toolchain was evaluated and set up for future improvements on Hydra\non-chain performance. In discussions with researchers and internal auditors,\nthey also uncovered next steps on further securing the Head protocl using a\n\"full\" minting policy.

    What did the team achieve this week

    • Closed several gaps to align script implementation with specification #452
      • Allow contest only once #680
      • Optimization through head output at index 0 #700
      • Value is preserved #702 + optimized exact value equality #709
    • Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to #721
    • Fixed our tooling around the Haskell language server
    • Discussed full minting policy with researchers
    • Started grooming “what we need for mainnet” on this idea ticket and milestone

    What are the goals of next week

    • Implement full minting policy
    • All remaining protocol discrepancies are implemented or groomed as individual features
    • Ideally release 0.9.0 with updated scripts
    • Discuss what we need for mainnet (milestone planning)
    • Redraw transaction graphs for specification (upon feedback)
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-10-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-02-10T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-02-09-mithril", + "content_html": "

    High level overview

    The Mithril team released a new 2304.1 distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.

    Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version 1.35.5 on their devnet and infrastructure.

    Low level overview

    • Released the new distribution 2304.1
    • Fixed a bug that prevented some signers to sign with 2304.0-prerelease #716
    • Completed the implementation of an EraChecker that checks if an era is active #708
    • Completed the implementation of an EraReader that gathers era activation data #709
    • Completed the implementation of an EraReader adapter with on chain transaction as source #710
    • Completed the relational design of the aggregator store #476
    • Completed adding a new SPO on the testing-preview network #729
    • Completed the upgrade of the Cardano node to 1.35.5 #725
    • Fixed flakiness in the CI #734
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-09-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-02-09T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-02-08-consensus", + "content_html": "

    High level summary

    We continue refactoring the UTxO HD prototype while we wait for the system level\nbenchmarks. We have created a new repository that contains the anti-diff\npackages used in this prototype.

    On the Genesis front, we are preparing another meeting with the researchers to\naudit the implementation design, and we continued working on basic tests and\nsimplifications.

    During the past two weeks we also introduced two new tools. One for dumping CBOR\nencoded blocks to JSON, and another to serve a local immutable DB.

    Workstreams

    UTxO HD Prototype

    We are in the process of refactoring the UTxO HD prototype, while we wait for\nthe system level benchmarks to confirm if the performance of the prototype is\nsatisfactory.

    We also set up a repository for the anti-diff package, which\nrequired us to refactor the code, write documentation, and prepare a release to\nCHaP.

    Genesis

    We worked on basic tests for the Limit on Eagerness property of\nGenesis. We also introduced further robustness and simplifications in the\nGenesis Density governor. Finally, we developed a presentation to engage again\nwith the researchers on our Genesis implementation design.

    Technical debt

    Fostering collaboration

    We are in the process of polishing the ouroboros-consensus\ndocumentation site, which we will use a the entry point for Consensus related\ndocumentation. The first version will not be complete, but we plan on\nsystematically improving it.

    Support

    We added a tool to ouroboros-consensus-cardano-tools which allows\nto dump the Chain DB blocks or any given CBOR encoded blocks as JSON.

    We also added another tool that serves an existing immutable DB via\nBlockFetch and ChainSync. This tool can help in assisting our local benchmarking\nefforts (for instance Genesis' ChainSync jumping prototype).

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-08-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-02-08T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-02-08-node-cli-api", + "content_html": "

    2023-02-08 - 2023-02-21

    High level summary

    More maintenance and resolving raised issues.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-08-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-02-08T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-02-08-performance-and-tracing", + "content_html": "

    High level summary

    1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we're currently running what we consider the final benchmark, to validate the underlying assumptions.
    2. Release benchmarking: we've performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.
    3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.
    4. New tracing: before going live, we're performing the documentation update, as well as reworking the end user migration guide.
    5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.
    6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.
    7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.

    Performance

    We are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:

    • we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,
    • after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,
    • finally, we're redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.

    In addition, we started benchmarks of the 1.35.6 release.

    Tracing

    A rework of the new tracing system's internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.

    Specifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.

    Infrastructure

    On the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we'll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.

    The work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.

    The Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-08-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2023-02-08T00:00:00.000Z", + "author": { + "name": "Serge Kosyrev", + "url": "https://github.com/deepfire" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-02-03-crypto", + "content_html": "

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril.
    • cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.

    Low level summary

    Mithril

    • Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing PR#722
    • We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.
    • We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.

    cardano-base

    • There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381.
    • The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.
    • The update VRF PR#341 is finally merged, and we are ready to merge PR#344, which implements conversion functions from the compatible types between Praos and PraosBatchCompat.

    KES agent

    • Use of snockets to send the data directly from the socket to secure memory.
    • We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives
    • Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.

    MuSig2

    The GitHub Action linelint is used to check the files.

    • A new job for linting is added to the file /.github/workflows/ci.yml. The rules are configured in the file /.github/workflows/.linelint.yml. Some files from the configuration of libsecp were failing, so in the rules in .linelint.yml the failing files are denoted to be ignored by the linter.
    • Folders are reorganized. We created a folder to handle the example. This folder includes the examplemusig2.c, a distinct config.h, and helper.c. The example is enhanced by implementing the functions in the helper for the configuration given in config.h. The number of messages is different than the tests. The example is made more generic to run with a loop.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-03-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2023-02-03T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2023-02-03-goedel", + "content_html": "

    The team works on applied research and consulting in formal methods\nthat is directly applicable to evidence based engineering in Core Tech\nand beyond.

    High level summary

    This sprint the team has been preparing several papers for peer review\nand knowledge sharing and consulting within IO and the community.

    Details

    • R&D Seminar on experience participating in a member based organisation
    • Full day tutorial on performance engineering presented at HiPEAC\n2023 conference
    • Finished preparing and submitted a paper on performance engineering\nto an ACM workshop
    • Preparing a draft paper for future submission about verifying design\nrefinements for distributed system design
    • Consulting on performance design of other IO projects
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-03-goedel", + "title": "Goedel Team Update", + "summary": "The team works on applied research and consulting in formal methods", + "date_modified": "2023-02-03T00:00:00.000Z", + "author": { + "name": "James Chapman", + "url": "https://github.com/jmchapman" + }, + "tags": [ + "goedel" + ] + }, + { + "id": "2023-02-03-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team completed the Hydra specification with a section about\nrollbacks and updated graphs\n(#448). In a next step,\nthe specification will be made more approachable and an open standard. They\nimproved their hydra-cluster tool to launch a local --devnet sandbox\nenvironment and continued aligning the hydra-plutus scripts with the\nspecification by hardening the checks on close and contest transactions.

    What did the team achieve this week

    • Completed the specification with a section about rollbacks and updated graphs\n#448, with a follow-up on making it more approachable and an open standard.
    • Continued spec review with internal auditor and incorporated changes.
    • Talked to TxPipe about how Demeter and Hydra could work together
    • The hydra-cluster executable can be used to launch a local --devnet sandbox environment.
    • Reproduced the “head being stuck on network outage” bug
      • relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed.
    • Progressed with higher velocity by addressing more and more gaps #677

    What are the goals of next week

    • Upstream our JSON instances to the ledger
    • Close all transaction security related on-chain gaps
    • Ideally release 0.9.0 with updated scripts
    • Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-03-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-02-03T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-02-02-ledger", + "content_html": "

    High level summary

    Much of the work the past two weeks involved integration efforts,\ncleaning up and debugging some serialization issues,\nadding tests, and work on large projects that are still ongoing.\nWe also released a CIP this week that aims to make the ledger\na registered CIP category.

    Lower level summary

    Ledger evolution CIP

    We published a\nCIP\nthat will make the Cardano ledger a registered category of the CIP process.

    Serialization issues

    We had previously thought that we had found a serialization problem with the redeemers,\nbut it turned out to just be particularly confusing code.\nWe have now clarified the issue for the future.

    See pull-3263, pull-3269, and pull-3268.

    Starting in protocol version 9, we will no longer accept duplicate keys in CBOR maps.

    See pull-3277.

    New tests

    We added a new property test suite for some of our custom containers.

    See pull-3270.

    Progress on a better cost model serialization situation.

    We are still working our way through issue-2902.\nTowards this end, we are now properly gating the new flexible encoders\nuntil version 9.

    See pull-3274.

    Nightly tests

    We are still experimenting with moving more CI actions to GitHub actions.

    See pull-3276.

    Constraint based generators

    We continue to add to our proof of concept for constraint based generators.\nSee the previous ledger update for more information about this project.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-02-02-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-02-02T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-01-27-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team had a monthly review meeting with their stakeholders,\ncontributors and interested people from the community. The monthly repot for\nJanuary 2023 is a digest\nof the things presented and also includes a summary of the meeting. The Hydra\nspecification was getting discussed and the team is incorporating suggested\nchanges of reviewers. Last but not least, they compute and publish script\ninformation on every PR and also on the\nwebsite\nnow.

    What did the team achieve this week

    • Had the monthly review meeting with a broader audience
    • Published the monthly report for January 2023
    • Reviewed the spec and discussed individual aborts with researchers
    • Compute and publish script information along benchmarks on every PR and website

    What are the goals of next week

    • Add rollback section to Hydra spec, update pictures and publish it as part of repository
    • Discuss bigger spec findings (full minting policy, individual aborts, split fanout) as change/pull requests on the spec in the repository.
    • Groom & plan actions required for a maintainable Head explorer + break down align gaps feature.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-27-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-01-27T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-01-26-mithril", + "content_html": "

    High level overview

    The Mithril team released a new 2302.0 distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.

    Finally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.

    Low level overview

    • Released the new distribution 2302.0
    • Implemented a backward/forward compatibility mechanism for API messages #688:
      • Implement the mechanism for the signer registration #689
      • Implement the mechanism for the signature registration #693
      • Implement the mechanism for epoch settings #695
      • Implement the mechanism for certificate pending #696
      • Implement the mechanism for certificate #697
      • Implement the mechanism for snapshots list #698
      • Implement the mechanism for snapshot #699
      • Update enforcement of API version with Semver #705
    • Completed the PoC implementation of backward compatibility with protobuf #677
    • Completed the PoC implementation of backward compatibility with avro #678
    • Completed the PoC to Read/Write transaction on chain for Era activations #672
    • Completed the upgrade Cardano devnet to 1.35.4 #523
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-26-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-01-26T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-01-25-consensus", + "content_html": "

    High level summary

    During the past two weeks, the consensus team finished the testing activities\naround the UTxO-HD prototype. This is a very important milestone which will\nenable us to run system-level tests and benchmarks, as well as start refactoring\nand cleaning the prototype. Regarding our Genesis workstream, we elaborated a\nroadmap that gives an indication of the remaining work. We also continued our\nwork on benchmarking chain-sync-jumping. We also continued working on improving\nthe way we handle blocks from the future, and advancing the integration of the\nnew VRF and KES crypto.

    Workstreams

    UTxO HD Prototype

    As the prototype is nearing its completion, it was important to have enough\nconfidence that we will be able to move additional parts of the ledger state\nonto disk. We worked together with the Ledger team to elaborate a\nsketch on how the UTxO-HD design would accommodate the migration of\nadditional data from memory to disk. This gave us enough confidence that the\ncurrent architecture will be extensible in the future.

    On the testing front, we added property-based tests for the UTxO-HD\ntype classes.

    We also enabled disabled components, and addressed several\ntechnical debt issues:

    • Implement splitSized anti-diff split (#4269), and integrate it\ninto consensus (#4273).
    • Renaming of peekVal to peekMDBVal (#7).

    We ran ad-hoc benchmarks for syncing a chain from scratch and replaying. We\nfound a race condition in the LMDB backing store, which we fixed.\nAfter the fix we were able to successfully run these benchmarks. The results\nwere published by this pull request.

    We used our db-analyser tool to benchmark the cost of reading keys and\nflushing values to disk. The following plot shows the duration of these disk\noperation in relation to the main ledger operations, where we can see that the\ncost of the former are comparatively low. The spike at the beginning of the\ngraph is when, at the start of the Shelley era, the entire UTxO set is flushed\nto disk.

    \"UTxO-HD

    After months of hard work adding tests for the prototype, we are ready to run\nend-to-end tests on the node, and system level benchmarks. This signals a very\nimportant milestone for the UTxO-HD workstream 🎉.

    Genesis

    We elaborated a high-level decomposition of the remaining\nwork for Genesis. We also continued benchmarking the chain-sync-jumping\nhappy-path.

    Technical debt

    We continued working on improving the way we handle blocks from the future.

    Support

    We completed the mapping of Crypto to HeaderCrypto and body Crypto.\nHeaderCrypto is moved to cardano-protocol-tpraos. We created a draft pull\nrequest to facilitate compiling consensus.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-25-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-01-25T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-01-25-node-cli-api", + "content_html": "

    2023-01-25 - 2023-02-07

    High level summary

    General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the cardano-cli query stake-snapshot command.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-25-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2023-01-25T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2023-01-20-crypto", + "content_html": "

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We explored whether some uses of transmute could be removed, but it resulted in considerable regression.
    • cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision.
    • KES agent: An inconsistency between contra-tracer available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the contra-tracer used by consensus.

    Low level summary

    Mithril

    • We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average PR#675. We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing.
    • We are writing a RFP for the audit of the core library.

    cardano-base

    • A problem with Nix is blocking merge of PR#341
    • Plutus team ran benchmarks of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution.
    • Team is fully digesting the Plonk paper.
    • There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used.

    KES agent

    • A little unforseen delay has been caused by a mismatch in the use of contra-tracer. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are doing the change, but still the CI is not happy.
    • The same was needed for the KES agents prerequisites PR#317.
    • We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-20-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2023-01-20T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2023-01-20-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team has been focusing on the write-up of the Hydra HeadV1\nspecification. Of which a first version has been aggregated and is currently\nunder review. They aligned the on-chain scripts of reimbursing funds on abort\nlike defined in the specification, improved the mutation test framework to have\nmore control when testing plutus scripts. The added HeadId in the API and the\nTUI example client make hydra-node easier to use and a first experiment of a\nHydra Head explorer was showing the utility of this - see what Heads exist on\nthe preview network here.

    What did the team achieve this week

    • HeadId to API and display in the TUI #678
    • Experiment of creating a hydra explorer, first result hosted here
    • Improved mutation framework allowing to fail for the right reason #679
    • Correctly reimburse funds in abort (matching the spec) #670
    • Finished a first write-up of the Hydra HeadV1 spec: Read it on overleaf (Communication channels for feedback)

    What are the goals of next week

    • Monthly review meeting with a broader audience
    • Groom & plan actions required for a maintainable Head explorer
    • Break “align gaps” feature into smaller chunks (at least on- /off-chain) and groom it
    • Review the spec & discuss individual aborts with researchers (a bigger open question)
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-20-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-01-20T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-01-20-network", + "content_html": "

    High level summary

    We have been working towards cardano-node-1.35.5 release. QA & benchmarking\nteams gave a green light for the release, and we made decent progress with some\nCI problem which we encountered on the way (PR #4612). We are also working on\npeer sharing, making improvements in our testing infrastructure, reducing\ntechnical debt and making progress towards io-sim-1.0.0.0. Galois is making\nprogress on Handshake improvements.

    Low level summary

    Our diffusion simulation network now includes a mixed network of initiator\nonly and initiator and responder nodes. issue #4222

    We are now reviewing the peer sharing pull request.

    We are also reviewing pull request which introduces handshake query flag. PR #4256

    We fixed a bug in our network simulator. The bug was triggered when a node\ndied when performing a simultaneous TCP open (a corner case of a corner case!). PR #4265

    We also refactored Snocket interface and removed the bearer construction from\nits methods. PR #4260

    We are working towards releasing io-sim-1.0.0.0 on Hackage, which includes\nreviewing two PRs: PR #57 and PR #60 as well as writing an announcement\nblog post.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-20-network", + "title": "Network Team Update", + "summary": "High level summary", + "date_modified": "2023-01-20T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network", + "release" + ] + }, + { + "id": "2023-01-20-sre", + "content_html": "

    High level summary

    The SRE team continues work on Cicero, Tullia, and Bitte, as well as providing\nsupport for cardano-world.

    Lower level summary

    Cicero

    • Fixed various race conditions around transformers.
    • Brought our CI up to date.
    • Migrated to the Nomad exec driver with Nix support for many actions.
    • Moved Nix builds to the Nomad clients for much better cache locality.
    • Ongoing work on vastly improving the action matching and evaluation speed.

    Tullia

    • Made it easier to support cloning from a PR's fork
    • Update to latest std
    • Add workaround for cgroup issue: nomad#12877
    • github preset: add github.ci.remote and (read|get)Repository functions
    • Fix various issues around CUE handling

    Bitte

    • Upgrade to NixOS 22.11
    • Prototype usage of Colmena for deploys instead of deploy-rs
    • Finalized work on Equinix Metal support
    • Prototype better secrets management with ragenix instead of sops-nix
    • Improve CI and bring it up to date

    cardano-world

    • Fixd various OOM issues on preview and preprod
    • Rotated KES keys on preview and preprod
    • Optimize mainnet db-sync to cope with higher load
    • Fix an issue where PostgreSQL would fail after a reboot

    bitte-world

    • Updated to NixOS 22.11

    ci-world

    • Updated to NixOS 22.11
    • Added Equnix cluster
    • Improve caching of Nix builds
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-20-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2023-01-20T00:00:00.000Z", + "author": { + "name": "Michael Fellinger", + "url": "https://github.com/manveru" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2023-01-19-ledger", + "content_html": "

    High level summary

    The ledger team completed some preliminary ground work in preparation for CIP-1694\n(restructuring the ledger state),\nfixed the PDF hosting problem (mostly the formal specs),\nbuilt out more of the new user-friendly ledger API,\nfinished a proof of concept for constraint-based generators for property tests\n(with the hopes of being able to replace our trace generators one day),\nand addressed technical debt.

    Lower level summary

    Restructuring the ledger state

    The existing governance structures will be replace in the conway ledger era,\nas described in CIP-1694.\nIn particular, the ledger rules will be restructured as follows:

       BBODY
    |
    |-------------------------------|
    v v
    TICK LEDGERS
    | |
    |---------| |
    v v v
    RUPD ~NEWEPOCH~ ~LEDGER~
    | |
    |----------| |--------|-------------------|-----------|
    v v v v v
    ~EPOCH~ +ENACTMENT+ DELEGS UTXOW +TALLY+
    | | |
    |---------|------------| v |
    v v v DELPL v
    SNAP POOLREAP -UPEC- | UTXO
    |--------| |
    v v v
    POOL DELEG ~UTXOS~

    -..- Removed
    +..+ Added
    ~..~ Modified

    Moreover, the ledger state will also be restructured in accordance with the new rules.\nIn the conway code, we have now removed UPEC, added TALLY, and stubbed ENACTMENT.\nWe have also adapted all the data structures in the ledger state.

    See:

    PDF hosting

    We now build all of our PDFs using a GitHub action which is triggered by pushing a tag\nwith a specific form, cardano-ledger-spec-YYYY-MM-DD.\nThe action creates a GitHub release containing the PDFs.\nThe links in the main ledger README now point to the PDFs in the latest release.

    See:

    Powering the new ledger API

    We have now removed all the HasField instances from the protocol parameter data types,\nand replaced them with lenses.\nThis is probably the last major restructuring that the ledger team will do on the code base\nfor the API for a while\n(the Plutus tools team will be working on it next, see here).\nWe also added a new helpful function ensureMinCoinTxOut.

    See:

    Constraint-based generators

    Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks\nwhich span several epochs, mimicking a real network.\nThese tests are, in theory, excellent for checking properties.\nThey are, however, very difficult to maintain and are not as random as we would like\n(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We would like to switch to tests which instead generate a random ledger state representative\nof not just an initial state, generate a single random valid block, and then test our properties.\nThe hope is that these will be much more random and easier to maintain.

    We have finished a proof of concept are encouraged that this approach could work!

    See:

    Technical debt

    • pull-3244 massive CI speedup
    • pull-3249 better types for fees in the protocol parameters
    • pull-3264 move our annotator code to the cardano-ledger-binary package where it belongs
    • pull-3239 move the Wdrls type to the Core module.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-19-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-01-19T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2023-01-14-db-sync", + "content_html": "

    High level summary

    After spending the last months on improving DBSync and releasing 13.1.0.0 the DBSync team focused\nthe last weeks on integrating upstream changes and tech debt. This includes integrating CHaP, the\nnew leger core and ghc-9.2.4

    Lower level summary

    • Integrate CHaP\n#1331
    • Integrate new ledger core 0.1.1.1 and ghc-9.2\n#1332
    • Technical debt: Add code formatter fourmolu\n#1334
    • Preparing and tracking Conway and UTxO integration
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-14-db-sync", + "title": "DB-sync Team Update", + "summary": "High level summary", + "date_modified": "2023-01-14T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2023-01-13-hydra", + "content_html": "

    High-level summary

    Since last weekly update before christmas, the Hydra team worked on the\ntechnical specification, closed gaps in hydra-plutus scripts, made the unique\nheadId available to Hydra clients through the API, allow the hydra-node to\nexplicitly synchronize from genesis (if configured), and fixed smaller log and\nbuild issues reported by new users.

    Besides this, a retrospective blog\npost\nwas published by Matthias Benkort (CF) on Hydra, summarizing our progress made\nin 2022 also an outlook where Hydra is headed for in 2023. Also, the team had\nsome first sessions on the voting project with Catalyst and the CF.

    A full digest monthly digest for December 2022 can be found on the hydra\nwebsite.

    What did the team achieve this week

    • Had some first sessions on the voting project with Catalyst and CF
    • Published retrospective blog\npost\nby Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also\nan outlook where Hydra is headed for in 2023.
    • Worked on the LaTeX spec for HydraHeadV1, not final or published yet - latest\nversion in this repository.
    • Add unique headId to API and hence make it available to clients.
    • Allow hydra-node to explicitly synchronize from genesis using --start-chain-from 0.
    • Closed gaps in hydra-plutus scripts
      • bounded transaction validity (ADR21)
      • enforcing contract continuity via state token in output
    • Fixed JSON for some logs and smaller build issues reported by new users.

    What are the goals of next week

    • Reach out to have hydra-tutorial integrated.
    • Plan the next couple of months.
    • Complete checking reimbursing of commits in head validator.
    • Align plutus scripts to spec and simplify them (identified some simplifications)
    • Improve mutation framework to be sure we fail tests for the right reasons
    • Complete the spec except the open points (<5) and also discuss them with researchers.
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-13-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2023-01-13T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2023-01-13-release", + "content_html": "

    Node Reelease Update

    2022-11-02 - 2023-01-13

    Executive Summary

    A 1.35.5 release for single relay P2P is nearly completed and should be released this month. This release is based on\nrelease/1.35 branch and does not bump cardano-ledger.

    The team successfully integrated an interim release bump of ledger and consensus into cardano-node master.\nThis work will not be released in a node version, but will be continued by the current dependency bump in progress.

    We anticipate once this dependency bump is completed, regular 2 week releases will be feasible again.

    The 1.35.4 release is being ran by more than 70% of stake pools. Planning for the mainnet hard fork date is in progress.

    Completed

    In Progress

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-13-release", + "title": "Node Release Team Update", + "summary": "Node Reelease Update", + "date_modified": "2023-01-13T00:00:00.000Z", + "author": { + "name": "Samuel Leathers", + "url": "https://github.com/disassembler" + }, + "tags": [ + "release" + ] + }, + { + "id": "2023-01-13-system-test", + "content_html": "

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the P2P Single\nRelay functionality.

    We also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level.

    Workstreams

    Framework improvements:

    • extended the cardano-node-tests with the ability for anybody to fork the repo and run all our System Tests on GitHub Actions
    • added 2 new nightly pipelines - nightly-mixed and nightly-p2p - details here
    • some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;

    === 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) ===\n to\n === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===

    Node:

    • ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled
    • started the preparations for testing the next tag - details here

    DB-Sync:

    • some improvements on db-sync sync tests
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-13-system-test", + "title": "System Test Team Update", + "summary": "High level summary", + "date_modified": "2023-01-13T00:00:00.000Z", + "author": { + "name": "Dorin Solomon", + "url": "https://github.com/dorin100" + }, + "tags": [ + "system-test" + ] + }, + { + "id": "2023-01-12-mithril", + "content_html": "

    High level overview

    The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ADR. They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.

    Finally, they have worked on upgrading the devnet and fixing some flakiness in the end to end tests of the CI.

    Low level overview

    • Implemented the redaction of an ADR for handling graceful updates of the Mithril Network #671
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with protobuf #677
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with avro #678
    • Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction #672
    • Worked on upgrading the Cardano node of the Mithril devnet, as well as fixing flakiness of the CI #523
    • Prepared and tested the new 2302 distribution pre-release 2302.0-prerelease
    • Updated the documentation for SPO to build a signer node in order to better reflect the new release process #681
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-12-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2023-01-12T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2023-01-11-consensus", + "content_html": "

    High level summary

    The consensus team is resuming its activities after the Christmas break. During\nthese weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and\ndiscussing with the Ledger team the changes that might be required for the next\niterations. The pull request that adds the Conway era is waiting for a second\nreview round and we hope to merge it soon. On the technical debt side we are\nlooking into a property-test failure found in the iterators. We are\ninvestigating if this is an error in the model or in the implementation. We also\nimproved the documentation of our testing code.

    Workstreams

    UTxO HD Prototype

    We worked with the Ledger team to start preparing the next versions of UTxO-HD.\nThe Ledger team is concerned that for the remaining maps we might need the full\nledger state on epoch boundaries. Since the main consumer of the ledger rules is\nConsensus, the code that requires access to a full state could be moved from the\nledger to some Ledger-Consensus bridge. Eg. the traversal of rewards could take\nplace in such bridge, instead of querying the ledger for the values that are\nrequired in the epoch-transition computations.

    We relocated some UTxO-HD definitions, in preparation for merging\nthe prototype into master.

    We also completed updated local benchmarks comparing the replay time and memory\nconsumption of:

    • the baseline node (f2fc76ef45647275c98634da1718290b976ff364)
    • the UTxO-HD node with the in-memory backend
    • the UTxO-HD node with the LMDB backend

    The following plot shows the results: we can see that the LMDB node barely\nreaches 8GB of memory, but it takes 1.78 times longer to replay the chain. The\nin-memory backend is about 30 minutes faster, but still slower than the baseline\nversion. We are aware of this phenomenon and it is inherent to the problem of\nmaintaining sequences of differences of the last k ledger states that allows\nus to perform rollback and roll-forward. We are in the process of measuring\nsyncing from scratch times.

    We also added StaticEither accessors that helped us to simplify\nthe UTxO-HD prototype.

    New Conway era

    We incorporated the feedback of the pull request, and rebased this\nbranch on top of master. The PR is pending a second review round and we hope\nto merge this soon.

    Technical debt

    We are investigating a property-testing failure involving\niterators. Solving this requires understanding the expected behavior of\niterators in the counterexample found by QuickCheck to determine if the error\nis in the model or in the implementation.

    Fostering collaboration

    We moved the contents of docs/Testing.md closer to the code, so that the\nexplanations about the tests are easier to find in the relevant modules, and the\ndocumentation is easier to keep up to date.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-11-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2023-01-11T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2023-01-11-performance-and-tracing", + "content_html": "

    High level summary

    Since our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:

    1. SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress.
    2. The new tracing system: the improved API of the new tracing system was implemented, and we're now porting the tracing integration layer over.
    3. Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks.
    4. New benchmark deployment infrastructure: we've made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs.
    5. Legacy benchmarking: we've started merging the legacy benchmark deployment infrastructure into the workbench.
    6. Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.

    Performance

    The AWS cluster infrastructure necessary for SECP benchmarking is still being worked on.

    Tracing

    The improved tracing internals were implemented, and we're now into the phase of updating the tracing integration, which is also mostly done.

    Infrastructure

    Thanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components.

    On the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters.\nWe now have a very clear and granular method to keep track of protocol parameter evolution -- e.g. the mainnet history changes are now tracked at epoch granularity, while also allowing for systematically described change overlays. This makes the benchmark profile definition much more clear and robust against mistakes.

    We also started a merge of the legacy benchmarking environment (based on cardano-ops) into the workbench. The separation between environments was too costly, causing us to reimplement any benchmarking change twice -- first, during development, in the workbench, then in cardano-ops. In addition, maintenance of compatibility code was incurring additional costs, slowing benchmark data analysis development.\nOnce this merge is complete, this will allow us to sharply cut the benchmark development cycle and overheads.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-11-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2023-01-11T00:00:00.000Z", + "author": { + "name": "Serge Kosyrev", + "url": "https://github.com/deepfire" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2023-01-06-crypto", + "content_html": "

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: The API features (error handling) has been merged.
    • Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI.
    • KES agent: We keep progressing with KES secure forgetting implementation.

    We also started working in the cryptography engineering handbook, which will be a cross team effort.

    Low level summary

    MuSig2

    • Merged the more granular error handling mechanism PR#33

    Mithril

    • Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in Version 0.1.1, which was published in crates.io.
    • Updated new KES format to mithril library PR 674
    • We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync PR 531
    • We keep progressing on reducing the use of transmute in mithril-stm.

    cardano-base

    • Nothing new to report. Still working in merging these PRs. We are only missing nix merge of PR#520 and the updates on VRF will be merged.

    KES agent

    • We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests PR#255.

    Cryptography handbook

    We have made available the (temporary) cryptography handbook https://input-output-hk.github.io/cryptography_spec/, and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives.

    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-06-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2023-01-06T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2023-01-05-ledger", + "content_html": "

    High level summary

    The ledger team finished up the remaining work for tracking individual depots,\nbuilt out the new Conway era transaction body (in line with CIP-1694),\ngreatly reduce some problematically large calculations on the epoch boundary,\nand addressed technical debt.

    Lower level summary

    Finishing the deposit tracking

    The initial work on the individual deposit tracking project focused only on correctness.\nAs this is a large data structure\n(since its size is linear with respect to the number of registered stake credentials),\nit is very important that we also reduce the memory overhead as much as possible.\nFortunately, we were able to add very little overhead for the deposits by using existing\nefficient data structures. The extra tracking now only incurs one word (8 bytes)\nper registered stake credential.

    See:

    New Conway era transaction

    We implemented the Conway era transaction body, which is in line with CIP-1694.\nNote that the Conway era implements, losing speaking, the parts of CIP-1694 that are not\nrelated to the liquid democracy (the \"DReps\").\nThe new transaction body adds the new governance actions and votes,\nwhile also deprecating the old governance structures\n(i.e. the old protocol parameter updates and MIR certificates).

    We also now have the wire specification (CDDL file) and serialization code in place.\nThe wire specification is still subject to change while we work on the Conway era,\nbut it is now usable and has proper testing support\n(so that, for example, the serialization round-trips, etc).

    See:

    Optimizing the TICKF transition

    Every since the release of the Shelley era, we have been working to reduce the computational load\nplaced on the node by the ledger at the epoch boundary.\nWhile still not perfect, we believe that we have removed one of the final problematically long\nepoch boundary computations that exacerbate situations like\nthis.\nIn particular, the problem involved the way in which the consensus layer obtains a view of the\nledger for the purposes of checking the leadership schedule in a new epoch.\nWe implemented a stopgap measure which now only incurs a single multi-second cost once per epoch\ninstead of potentially several multi-second costs while the networks waits for the first block\nof a new epoch to be minted.

    See:

    Technical debt

    We closed the year out with a lot of reduction to the technical debt!

    Improved ledger event

    • pull-3212 - The ledger events are not guaranteed to appear in any given order within a block.\nFor this reason, motivated by the use case in db-sync, the TotalDeposits event now\nincludes a transaction ID and emits the change in deposits instead of the value.

    Improved type saftey

    • pull-3208 - We replaced NominalDiffTime with a newtype wrapper. The problem was that our CBOR\nencoders and decoders were using the wrong level of precision, having to due with with\nthe Shelley genesis file. We removed the potential problem with a newtype wrapper.
    • pull-3167 - We now use a GADT to ensure consistency of the Plutus language in the types\nfor TransactionScriptFailure and PlutusDebug.

    Code/Module organization

    • pull-3175 - The Allegra and Mary eras had an unusual relationship in our codebase,\ndue to the uncertainly of release dates while we were implementing them.\nIn particular, they were coupled in way that is different from the rest of the code base.\nWith hindsight on our side, we split the combined shelley-ma Haskell package into two\nseparate ledger era packages, which is now consistent with the rest of the repository\nand module structure.
    • pull-3184 - We created a core test sub-library, cleaning up a lot of our property test\ngenerator code.
    • pull-3210 - We moved the KeyPair type to the test library. Outside of testing,\nthe ledger does not need to deal with signing keys, and since this is a topic that\ndeserves the utmost care, it is best to make it clear that our use of signing keys\nis only for testing.
    • pull-3229 - We split the Cardano.Ledger.Alonzo.Data module, which is more consistent with the rest\nof the codebase.

    Revert pointer address deprecation

    Thanks to one of our excellent internal auditors,\n@jmhrpr,\nwe now have a better plan for deprecating pointer addresses.\nThis meant that we had to revert the previous work to deprecate them.

    See:

    Miscellaneous

    • pull-3205 - We removed deprecated type synonyms.
    • pull-3218 - We cleaned up the address deserialization.
    • pull-3223 - We fixed faulty address deserialization tests.
    • pull-3222 - We switched to a general type family TxOut from concrete ones,\nreducing many constraints.
    • pull-3224 - ShelleyGenesis is now parameterized by crypto instead of by era.
    • pull-3170 - We set the cabal-version to 3.0 in our projects.
    • pull-3172 - We removed the now useless EncodeMint/DecodeMint classes.
    • pull-3225 - We switch from ormolu to\nfourmolu.\nThe reason was to be able to finally have more diff friendly code!
    ", + "url": "https://updates.cardano.intersectmbo.org/2023-01-05-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2023-01-05T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2022-12-28-node-cli-api", + "content_html": "

    2022-12-28 - 2023-01-10

    High level summary

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-28-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2022-12-28T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2022-12-16-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on the website and reduced the cost for commit transactions by ~30% with the help of reference scripts.

    The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.

    What did the team achieve this week

    • Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.
    • Reduce commit transaction costs by ~30% with reference scripts.
    • Prepared an RFP for external audit of the Hydra Head solution.
    • Fixed transaction cost benchmarks for abort tx #631.
    • Recorded decision to use model-based testing (ADR22) and improved Model documentation.
      • Concluding the first increment on Validate coordinated Head protocol #194.
      • Formulated next step / follow-up on testing the Soundness property of our protocol #656.
    • Switched to using nix flakes for development setup and CI build #646.

    What are the goals of next week

    • Push ADR21 & tx validity gap over the finish line (smoke tests missing).
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Close & recap on the year with another monthly report (+ blog post).
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-16-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2022-12-16T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2022-12-15-mithril", + "content_html": "

    High level overview

    The Mithril team has released the new distribution 2248.1 of their nodes. They have published the first version of the Mithril cryptographic library on crates.io, the Rust community’s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.

    Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities.

    Low level overview

    • Implemented removing verification key and stake from single signatures #619
    • Completed the extraction of the signer registration from the multi-signer #642
    • Completed the extraction of the certificate creation from the multi-signer #638
    • Implemented a workflow to test client binaries (Linux / MacOS / Windows) #601
    • Completed the signature of the artifacts produced by the CI #587
    • Fixed the protocol parameters transition #627
    • Worked on optimizing the snapshot digest computation #510
    • Worked on enforcing the API protocol versions in the client and signer #633
    • Worked on deactivating the non certified signer registration mode #621
    • Worked on the re-genesis of the test networks #651
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-15-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2022-12-15T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2022-12-14-consensus", + "content_html": "

    High level summary

    During the past two weeks, the Consensus team finalized the QSM tests for the\nbacking store and Mempool on the UTxO-HD branch with important discoveries\nregarding parallel QSM testing. We also worked with the Ledger team to envisage\nthe modifications that are required in Ledger and Consensus to accommodate the\nchanges in the crypto VRF and KES. The db-analyser now supports bechmarking\nthe ledger operations, which will allow us to identify, debug, and profile\npotential performance problems. We drafted a document that defines how to manage\nthe versions of Consensus-related packages. The top level documentation of\nouroboros-network now features a description of the consensus components and\nprovides a hyperlinked map to the modules documentation.

    Workstreams

    UTxO HD prototype

    Whereas we had passing sequential state-machine tests for the mempool, the\nparallel case proved to be more challenging than we thought. The operation of\nadding a list of transactions to the mempool is not atomic and, as a result,\nwhen adding a list of transactions, transactions from other processes can be\nadded in between. The mempool implementation handles this correctly, however\nthis required us to redesign the parallel model we had to take\nthe lack of atomicity into account.

    Backing store property tests

    We finished refactoring the backing store property tests. The second review\nround is ongoing.

    LSM tree implementation

    We are working on benchmarking (in terms of time and number of IO operations)\nfetching/looking up data from disk.

    Genesis

    We worked on the design of a mechanism to prevent a DoS attack on our Genesis\ndesign related to rollbacks. This was arguably the biggest outstanding question.

    During the discussions around Genesis, we noticed a design boundary that nicely\ndelineates a fundamental component. We almost have a full Haskell prototype of\nit. It will be very nicely self-contained, perhaps even usable in the ultimate\nimplementation!

    New VRF and KES crypto integration

    We collaborated with the Ledger team on preparing the ledger state and crypto\ntypes to avoid huge allocation on the epoch boundary when changing aspects of\nthe crypto that will only manifest in headers, not in the ledger states.

    Technical debt

    We merged the pull-request that adds a support to db-analyser for\nbenchmarking ledger operations. This will allow us to identify, debug, and\nprofile potential performance problems. The benchmark focus on the main 5 ledger\noperations that are involved in chain syncing, block forging, and block\nvalidation, namely:

    1. Forecast.
    2. Header tick.
    3. Header application.
    4. Block tick.
    5. Block application.

    The following figure shows a plot of the benchmarking results for the first 65\nmillion blocks (approximately) of the Cardano chain. The thin yellow lines under\nthe x-axis show the epoch boundaries, whereas the thick yellow lines correspond\nto the era transitions.

    As we can see in this figure, era and epoch boundaries require more computation\ntime. The ledger team are aware of this problem, and we are working to improve\nthis situation.

    Fostering collaboration

    We drafted a document motivating and defining how Consensus (and\npossibly other core teams) will/should manage our package versions. This\npull-request garnered many great discussions from our team members and other\nteams too: Sebastian Nagel, Arnaud Bailly, Michael Peyton-Jones, Ziyang Liu, et\nal. We want to thank you all for your input, and we found this discussion very\nenlightening!

    We merged the pull request that adds an overview of consensus to\nthe top level\ndocumentation of\nouroboros-network. This overview describes the consensus components and adds a\nhyperlinked map to the modules documentation.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-14-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2022-12-14T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2022-12-14-db-sync", + "content_html": "

    High level summary

    The DBSync team continued testing release 13.1.0.0. The QA team has reported that no issues have\nbeen found. The DBSync team also worked on cherry-picks back to master and on fixing bugs.

    Lower level summary

    • Release is cherry-picked back to master, which uses the new rollback mechanism which uses\nreverse indexes, same as the release\n#1320\nThis also fixes a bug number of issues on master.
    • Depenencies upgrade and CHaP integration\n#1324
    • AdaPots fix #1323. This\nfixes an issue where the per epoch AdaPots didn't match the epoch boundary, but\nthey also included changes from the first block of the epoch.
    • Deposits Event fix #3212. This pr\nadjusts the Deposits ledger events, so that it can be better used by db-sync. This can reduce the\nnumber of queries that db-sync does during syncing an make syncing faster.
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-14-db-sync", + "title": "DB-sync Team Update", + "summary": "High level summary", + "date_modified": "2022-12-14T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2022-12-14-node-cli-api", + "content_html": "

    2022-12-14 - 2022-12-27

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-14-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2022-12-14T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2022-12-14-performance-and-tracing", + "content_html": "

    High level summary

    1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.
    2. A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery.
    3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals.
    4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.
    5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.

    Performance

    The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload.

    We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.

    Tracing

    After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.

    To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:

    1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.
    2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.

    All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further.

    In addition, we're still pursuing our performance-enhancing rework of the new tracing internals.

    Infrastructure

    After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.

    Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it.\nThis means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis.\nThis will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports.

    A new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches.\nPreviously we only had automation for two aspects separately, so we only could either:

    • compare individual runs (used for different node configurations / versions)
    • collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version)\nNaturally, combining these two capabilities was a long-desired feature of our analysis pipeline.
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-14-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2022-12-14T00:00:00.000Z", + "author": { + "name": "Serge Kosyrev", + "url": "https://github.com/deepfire" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2022-12-12-network", + "content_html": "

    High level summary

    In last sprint the team focused on preparations for the conference talk at\nOPODIS 2022. We also worked on preparations to publish io-sim and related\npackages on Hackage (PR #57, PR #60).

    We also started reviewing:

    • ouroboros-network
    • cardano-node
    • cardano-ledger\nrepositories for open-source readiness (PR #4128).

    We prepared a PR which changes how node-to-node and node-to-client protocol\nversiones are serialised in cardano-node log (PR #4691).

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-12-network", + "title": "Network Team Update", + "summary": "High level summary", + "date_modified": "2022-12-12T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network", + "release" + ] + }, + { + "id": "2022-12-09-crypto", + "content_html": "

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency.
    • Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack.
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • [Still in progress] We are introducing a more granular error handling mechanism PR#33
    • We merged the API redesig PR#35
    • We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future PR#36

    Mithril

    • We merged the individual signature PR#620
    • We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (kes repo)

    cardano-base

    • Nothing new to report. Still working in merging these PRs.
    • We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a bug in GHC

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Fixed a 'use-after-free' bug in the KES agent.
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-09-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2022-12-09T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2022-12-09-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team has worked on completing to \"Validate coordinated head protocol against formal model\", this is a huge step to verify the implementation is secure. They also worked on implementing ADR21 related to bounded tx validity which is now under review. HydraPay project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of issues they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.

    What did the team achieve this week

    • Document model based testing #194 & #641
    • Got ADR21, reducing gaps between implementation and specification, under review.
    • Complete review on hydra-tutorial.
    • Complete first round of review on HydraPay work #634
    • Meeting with Director of CyberSecurity frio IOG to unblock \"the RFP prepared for the external audit\" #606
    • Remove vasil-dev and testnet from smoke-test because they were not working #630
    • Fix flaky plutus-merkle-tree test #642
    • Refactor NetworkSpec to improve legilibility.
    • Fix benchmark cost for abortTx #631
    • Adapt nix.conf to the recent hydra-ci nix cache migration.

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation.
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Get Cicero (new CI) working.
    • Use reference inputs to reduce the cost of the commitTx.
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-09-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2022-12-09T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2022-12-09-ledger", + "content_html": "

    High level summary

    The Plutus tools team at IOG has started helping the ledger team to build out a user friendly\ncardano-ledger-api package!\nA GitHub project\nwill be filled out in the days ahead,\npeople interested in the API can use it to follow along and join in on the conversations.

    The ledger team has started using\narchitectural decision records\nto leave a record of important decisions that the team makes.\nWe will retroactively go back through past decisions and make ADRs for them.

    The logic to track individual deposits is now nearly in place.\nWe are prioritizing correctness with our first pull request, and will follow up with\nperformance optimizations and general cleanup next.

    Pointer addresses are being deprecated with the Cardano major protocol version 8.\nSee CPS-0002\nfor more context.

    Lower level summary

    Cardano ledger API

    The Plutus tools team has taken our minimal cardano-ledger-api package and started filling it\nout and adding much needed documentation.\nThey have also added doctests!\nIn the days to come, the Plutus tools team will map out a lot more work for the API and record\nit in this\nGitHub project.

    See

    Architectural Decision Records (ADRs)

    We are now providing more context and leaving a record of important decisions that are made\nin the ledger. The first ADR explains the very lightweight process.

    See

    Tracking individual deposits

    See ADR-3\nfor background.\nWe now have the logic in place to track individual deposits, and a host of property tests\nto make sure that the logic is correct.\nThe current implementation uses more memory than it needs to, and we will address that next,\nwith our hope being to only use one word (8 bytes) per registered stake credential.\nThere is a fair amount of other cleanup needed for general maintainability.

    See

    Removing pointer addresses

    Pointer addresses, which have never seen any real use\n(there are something like eleven on mainnet), are being deprecated starting at Cardano major\nversion 9.\nCPS-0002 gives the context.\nWe are disabling them by first preventing transaction outputs containing them\nfrom being serialized by the node at the moment we switch to version 9.\nAt the hard fork after that, we will translate the existing few pointer addresses\nto enterprise addresses.

    See

    Technical debt

    • pull-3162 - Sometimes we have to put safeguards in place for hard forks which may never\nbe exercised. After we have passed the given hardfork, we are able to clean up the code\nand simplify our logic. We removed all of the ones that we are currently easily able to.
    • pull-3165 - We improved the type safety of our code while also discovering and fixing\na serialization bug.
    • pull-3172 - We removed dead code.
    • pull-3175 - The Allegra and the Mary code used to be coupled in a particular way the we grew to\ndislike. We made these two ledger eras now uniform with the rest of our code base.
    • pull-3184 - We organized our property testing code.
    • pull-3200 - The Plutus tools teams fixed an outstanding bug in the translation from the\nledger state to the Plutus script context.
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-09-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2022-12-09T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2022-12-02-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team has worked on cleaning up several things in progress\nafter last week's summit. They have extended their model-based testing (MBT)\napproach with transaction creation & observation\n#410, solved\nAcquirePointTooOld problems of the hydra-node with by changing the wallet\ninitialization #439.\nAlso, the Hydra researchers updated the security proofs of the Coordinated Hydra\nHead, which are bound to be included in the Hydra HeadV1 specification.

    What did the team achieve this week

    • Monthly review & report - will also be published on our website #644
    • Extended the model-based testing (MBT) with transaction creation/observation #410
    • Solve AcquirePointTooOld problems with new wallet initialization #439
    • Fixed our hydraw deployments (EC2 instances)
    • Created & discussed ADR21 within tx validity work
    • Received & discussed security proofs of Coordinated Hydra Head (requires more work)

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation
    • Complete review & integrate the Hydra tutorial
    • Review latest hydra-pay work
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec
    • Get Cicero (new CI) working
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-02-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2022-12-02T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2022-12-01-db-sync", + "content_html": "

    High level summary

    The DB Sync team prepared a release 13.1.0.0-rc2 which includes many improvements for db-sync,\nit makes rollbacks and syncing much faster, simplifies the schema, fixes bugs and introduces\nmigrations. This release finalises the objectives that were set for db-sync for the previous\n3 months period and part of the syncing speed objective set for the next period\nChangelog

    Lower level summary

    • Branch release/13.1.0.x\nincludes all the improvements related to the release. The release is passing through the testing\nphase and a number of bugs and issues have been fixed, like\n#1312\n#1311.\nAlso many new unit tests have been added.

    • Part of the release branch is cherry-picked back into master, in a way that it respects the new\nrelease and development process, so that it takes into account migrations\nrelease process

    • The DB Sync team has also tagged release 13.0.6 which better supports preview and preprod for\ndocker.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-01-db-sync", + "title": "DB sync Team Update", + "summary": "High level summary", + "date_modified": "2022-12-01T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2022-12-01-mithril", + "content_html": "

    High level overview

    The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes.

    Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.

    Low level overview

    • Implemented custom Mithril SPOs on testing/pre-release networks #563
    • Deprecated Signer Declarative Pool Id registration mode #585
    • Completed the second stage of the store automatic migration process #600
    • Completed the deployment pipelines to crates.io registry #588
    • Completed automatic generation of nodes/libraries versions manifest in releases notes #599
    • Completed CI/CD handling of PR from forks #597
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #586
    • Worked on signing the artifacts released in the distributions by the CI/CD #587
    • Worked on multi-platforms end to end test #601
    • Worked on the refactorizaton of the aggregator multi-signer engine #398
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-01-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2022-12-01T00:00:00.000Z", + "author": { + "name": "Jean-Philippe Raynaud", + "url": "https://github.com/jpraynaud" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2022-12-01-system-test", + "content_html": "

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, planned the testing of the P2P Single\nRelay functionality, and also tested some DB-Sync tags.

    Workstreams

    Framework improvements:

    • moved the System Test CLI Pipelines from BuildKite to Github Actions
    • improved the reporting tools to support the rerun of the failled tests and update of the reports
    • added support for Github API in report-aggregator, so reports will be generated from the GitHub nightly jobs from now on
    • added support for mixed topology - P2P, legacy, mixed topologies
    • planned the P2P Single Relay system test activities
    • added support to start regression tests with PV8 + better selection of tests

    DB-Sync:

    • confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)
    • tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-12-01-system-test", + "title": "System Test Team Update", + "summary": "High level summary", + "date_modified": "2022-12-01T00:00:00.000Z", + "author": { + "name": "Dorin Solomon", + "url": "https://github.com/dorin100" + }, + "tags": [ + "system-test" + ] + }, + { + "id": "2022-11-30-consensus", + "content_html": "

    High level summary

    During the past two weeks, the consensus team merged improvements to the monadic\ncursor API that was needed to implement LMDB range reads, which is in turn\nrequired for the implementation of the UTxO HD feature. We added tables to\nseveral tests in for the UTxO HD feature, which increases our confidence in the\ncorrectness of the prototype. The mempool property tests are close to being\ncompleted. Also, we finished the LSM tree tuning algorithm.

    On the Genesis front we started simplifying the BlockFetch logic with\nCSJ-specific workloads in mind.

    We are also documenting the Block Diffusion Pipelining feature, and added a\nhigh-level overview of consensus to the top level documentation of\nouroboros-network.

    Workstreams

    UTxO HD prototype

    We merged the implementation of a monadic cursor API (#1)) which was\nneeded to solve a bug with LMDB range-reads. After this PR was merged, we focused on\nbridging the gap between the lmdb-simple interface and consensus by facilitating\nusing lmdb-simple's cursor API without Serialise constraints (#3).

    We refactored the backing store property tests to use quickcheck-lockstep\n(#4081).

    We added tables to the mock ledger in the UTxO-HD feature branch\n(#4184). Every test that used to run with SimpleBlocks now uses\ntables. This will enable us to exercise the UTxO HD mempool integration by\nleveraging the existing mempool property-tests. The new state-machine\nproperty-tests are still needed for testing the parallel behaviour of the\nmempool.

    Our work on the mempool state-machine tests revealed the need for improvements\nin the quickcheck-state-machine library. Parallel testing assumed that the\nstate machine did not have access to mutable references. However, the mempool\ntests require the use of such mutable references for mocking the ledger\ninterface. As a result, our parallel tests were failing with rather obscure\nmessages. @Jasagredo submitted a pull request (#12) that allows for\nnew mutable references to be created at each run of the state machine.

    Backing store property tests

    LSM tree implementation

    We finished the LSM Tree tuning algorithm. We are currently tidying up the code\nand gathering results (i.e., plots and their interpretation).

    CSJ prototype

    We started simplifying the BlockFetch logic with CSJ-specific workloads in mind.

    New VRF and KES crypto integration

    Started working on supporting new version of StandardCrypto which uses compact\nKES and batched VRF (#4151).

    Technical debt

    We reviewed the existing state of the Block Diffusion Pipelining document. We\nare now working on the \"Implementation\" section (#4020).

    Fostering collaboration

    We cleared up our understanding of the error dynamics of forecasting\n(#4146 and #4174).

    We submitted a pull request that adds an overview of consensus to the top level\ndocumentation of\nouroboros-network (#4197). This overview describes the consensus components and adds a\nhyperlinked map to the modules documentation.

    https://github.com/input-output-hk/ouroboros-network/pull/4197

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-30-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2022-11-30T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2022-11-30-node-cli-api", + "content_html": "

    2022-11-30 - 2022-12-13

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-30-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2022-11-30T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2022-11-30-performance-and-tracing", + "content_html": "

    High level summary

    1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.
    2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.
    3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.
    4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.
    5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.

    Performance

    We have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don't see any significant performance changes. The component bumps are therefore clear for release.

    Tracing

    For the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them.\nThe idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time.

    To support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics.

    Infrastructure

    Generation support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation.

    In addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model.

    The intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged.\nWe are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration.

    We continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability.

    We are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP.

    As usual, a number of smaller workbench, data analysis & reporting improvements have been made.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-30-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2022-11-30T00:00:00.000Z", + "author": { + "name": "Serge Kosyrev", + "url": "https://github.com/deepfire" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2022-11-28-network", + "content_html": "

    Stake-Driven Data Diffusion Release for Relays

    IOG networking team decided to release the Stake-Driven Data Diffusion with\nRobust Optimised Peer Selection also more commonly known as P2P. In the\nlast update, we informed about a performance regression, but it turns out it\nonly affects block producers, and thus we highly advise against running it on\nsuch nodes. Further investigation is required to find the cause of it.

    On IOG's benchmarking cluster we have seen quite a good performance improvement\non block propagation itself. The cluster is running a static topology with\nvalency 6 (each node is connected to 6 other nodes). In which every of the 50\nnodes are block producers. The setup of this network is the same as mainnet.\nWe've seen 40-50% performance improvement on block propagation comparing to the\nsame cluster deployed with the same topology but using non-P2P nodes. We think\nthis performance improvement is caused by using full duplex connections. Quite\nlikely the transaction traffic floating in both directions on the same TCP\nconnection helps to keep the TCP window open. Note that in a cluster of 50\nnodes with valency 6 the probability of having at least one duplex connection\nis more than 50%. We don't expect the same improvement on mainnet because the\nnetwork is much wider and the transaction traffic is not as large.

    Just before the release we squashed two small bugs:

    • issue #4163 - top level integration bug in keep-alive;
    • issue #4177 - a bug in outbound-governor;
    • PR #4165 - a fix cardano-ping support of NodeToNodeV_10.

    Peer Sharing

    We were carrying a review of peer sharing PR.

    DeltaQ

    Neil Davies was invited to give a guest lecture entitled Avoiding System Catastrophes at UCLouvain.

    What have we achieve last sprint

    • issue #4163: we found out that a control message is not passed to the\nkeep-alive mini-protocol, this results in every demotion executing demotion\ntimeout rather than a graceful termination. With the fix the node will no longer log:

      { \"kind\": \"PeerStatusChangeFailure\"
      , \"peerStatusChangeType\": \"WarmToCold (ConnectionId {localAddress = 192.168.0.10:7000, remoteAddress = 3.129.186.40:3000})\"
      , \"reason\": \"TimeoutError\"
      }
    • issue #4177: we fixed an assertion failure in the outbound-governor; now\nwe don't try demoted peers which are being demoted already.

    • PR #4155: we refactored ouroboros-network packages. There's a top level\nouroboros-consensus-diffusion package which integrates network\n& consensus code. We also introduced:

      • ouroboros-network-api package which contains the API shared between\nnetwork & conensus;
      • ouroboros-network-mock package which contains mock API used for testing\n(e.g. a mock chain & chain producer, etc.)
      • ouroboros-network-protocols package which contains implementation of all\n(but handshake) mini-protocols, exposes a testlib and contains test\nand cddl components.

      This made the dependency tree of network & consensus packages much\ncleaner.

    • PR #4169: we described the usage of release branches in CONTRIBUTING.md\ndoc.

    • PR #4165: we fixed cardano-ping support of NodeToNodeV_10 protocol.

    DeltaQ

    The abstract of the talk:

    An essential step to ensuring that distributed systems are fit for\npurpose.

    Distributed systems have become an integral part of our society and\ndaily lives. We are, both implicitly and explicitly, individually as well as\ncollectively, placing ever more trust in them.

    Are they worthy of this trust? Our need for them to be ‘fit-for-purpose’ goes\nwell beyond notions of functional correctness (i.e. never getting the wrong\nanswer). We need them to deliver the desired outcomes in a timely, robust,\nreliable, resilient fashion, at scale and in a sustainable way (both\neconomically and environmentally).

    This all sounds like a worthy aspiration, but what would be a practical\napproach to capturing and reasoning about these issues? How can we ensure that\nsystems can meet their fit-for-purpose objectives, not just in their design but\nas they are deployed, encounter the imperfect world, are scaled to become\neconomic, and proceed into ongoing maintenance?

    This talk will illustrate how the notions of Outcomes and Quality Attenuation\n(as captured by ‘∆Q’) are being used to both frame the necessary notions and\nprovide a basis for assuring the refinement and reification of such systems,\nfrom initial concept to operational infrastructure.

    You can download the slides from here.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-28-network", + "title": "Network Team Update", + "summary": "Stake-Driven Data Diffusion Release for Relays", + "date_modified": "2022-11-28T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network", + "release" + ] + }, + { + "id": "2022-11-25-crypto", + "content_html": "

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team.
    • Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes
    • cardano-base: The VRF and BLS branchs are still open and in progress
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • We redesigned the library so that MuSig2 lib users don't need to be aware of the underlying secp256k1 library PR#31
    • We are introducing a more granular error handling mechanism PR#33
    • We rethought the API and made it more consistent with the underlying secp256k1 library PR#35

    Mithril

    • The mithril crates in general will be published in crates.io, and we adapted the core library's README PR#616
    • We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information PR#620

    cardano-base

    • We've been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) PR#341
    • SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions PR#344
    • Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus PR#266

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation.
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-25-crypto", + "title": "Crypto Team Update", + "summary": "High level summary", + "date_modified": "2022-11-25T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2022-11-25-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a presentation about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.

    What did the team achieve this week

    What are the goals of next week

    • Monthly report & review meeting
    • Tie up several loose ends / branches.
    • Resolve Tx validity discussions & PRs.
    • Review cicero PR & try it out.
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-25-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2022-11-25T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2022-11-23-ledger", + "content_html": "

    High level summary

    We released CIP-1694,\nour proposal for entering the Voltaire phase.\nPlease come join the discussion, this will be an incredibly exciting transition for\nCardano and we want everyone to participate!

    We now have a sensible way to version all of the serialization schemes used in the ledger.\nThe draft pull request was polished, reviewed, and merged this week.\nThis solves many problems that have vexed us since the beginning of the Shelley ledger era.

    Everyone working on the Cardano node is working together to improve our release process,\nand the ledger team in particular dedicated one engineer to help with these efforts\nfor the next release.

    Lower level summary

    The Conway ledger era

    The current proposal in CIP-1694 encompasses two new ledger eras.\nThe first era will be called Conway, after the English mathematician John Horton Conway.\nThe community facing aspects of the Conway ledger era will be very minimal,\nbut it will pave the way for introducing liquid democracy.\nThe details can be viewed here.\nWe do not yet have a formal specification for the Conway era.\nOur plan is to debut the\nformal ledger model.\nBriefly, the Conway ledger era will:

    • introduce SPO voting for hard forks (in the spirit of the now abandoned CIP-47)
    • provide an on-chain mechanism for rotating the governance keys
    • re-plumb the ledger rules involving governance to be in line with CIP-1694

    Versioned CBOR

    We now have the ability to easily tie our serialization schemes to the Cardano\nmajor protocol version.\nWe still aim to preserve backwards compatibility as much as possible, but we now have a principled\nplan for resolving problems (see CIP-ledger-cbor).\nIn particular, we can now address several long standing issues, such as\nissue-2444, issue-2965, and issue-3003.

    The final (and massive!) pull request which brought us the versioning is pull-3138.

    Deposit tracking

    The draft pull request which was exploring how best to track individual deposits\nis much closer now to being ready to take out of draft (pull-3127).\nFor background on the issue, see issue-3113.\nThis is quite an invasive change which effects many of our tests, which we are now addressing.

    Technical debt

    As always, we keep working on technical debt.\nWe have deduplicated a some things: pull-3129, pull-3162.\nWe have memoized a problematic computation (though more due diligence is needed before we can\nmerge): pull-3141.

    Node release

    We have been helping with the node release efforts. See pull-4608.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-23-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2022-11-23T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2022-11-18-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team released version 0.8.1, which includes several fixes and a user-wished extension of the persistence introduced by 0.8.0 of replaying server outputs to make clients like the hydra-tui be aware of the latest hydra-node state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from hydra-poc to hydra!

    What did the team achieve this week

    • Implemented replaying of server outputs to address #580
    • Released version 0.8.1 containing this and other fixes Release notes
    • Worked on the bounded tx validity as one of the on-chain script fixes, but couldnt finish it just yet #615
    • Collaborated with the education team on a Hydra tutorial.
    • Discovered and discussed issues with the seen ledger.
    • Renamed the Hydra repository hydra-poc -> hydra

    What are the goals of next week

    • Create and discuss an ADR about handling tx validity correctly.
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: \"Developing Hydra\" on Day 2, Nov 21st, 13:50 CET
    • Have a team workshop / hackathon after the summit:
      • Retrospective
      • Roadmapping session
      • Hack on something complex or useful
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-18-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2022-11-18T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2022-11-18-mithril", + "content_html": "

    High level overview

    The Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks.

    Finally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer.

    Low level overview

    • Released a new Mithril distribution 2246.1
    • Completed the first stage of the store migrations process #562
    • Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes #565
    • Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage #576
    • Prepared a Daedalus synchronization benchmark video with/without Mithril #606
    • Upgraded the Cardano nodes of the testing Mithril networks to 1.35.4 #594
    • Worked on implementing SPO tests nodes on testing Mithril networks #563
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #588
    • Worked on the refactorizaton of the aggregator multi signer engine #398
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-18-mithril", + "title": "Mithril Team Update", + "summary": "High level overview", + "date_modified": "2022-11-18T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2022-11-16-consensus", + "content_html": "

    High-level summary

    During the past two weeks, the consensus team started documenting the\nimplementation of the UTxO HD feature and continued developing tests for it. As\npart of our work on UTxO HD, we improved the Haskell support for LMDB. We also\nspent time working on the LSM tree prototype, and designed a parameter tuning\nalgorithm for it. Regarding our work on Genesis, our investigation of the\n\"plateaus\" pointed at the TICKF slowdown on era boundaries as culprit. This\nled us to developing a caching strategy that will not only remove the\naforementioned \"plateaus\", but can help alleviating the growing block production\ndelay on epoch switch. We also helped reviewing the block forge credential\nhotswap feature, which is intended for use in the adoption of P2P.

    We also worked on paying technical debt and fostering collaboration. In\nparticular, we improved the io-sim framework, which is crucial for testing and\nsimulating Cardano components. We also removed thunks that appeared on era\ntranslations, and improved our diffusion pipelining feature. We are working on a\npresentation for explaining Praos and Genesis.

    High-level status report

    • Finish the UTxO HD prototype: in progress.
      • We added documentation for this feature.
      • We developed the second version of the mempool tests.
      • We fixed benchmarks that were inflating the speedup we observed in the\nanti-diff implementation of sequences of differences. Speedups are now in the\nrange of [3.33, 4.75], which remain significant.
      • We continued improving Haskell LMDB support.
      • We finished implementing a \"parameter tuning algorithm\" for the LSM tree\nprototype. This enables us to run experiments to check the correctness of\nthe algorithm.
    • Genesis: in progress.
      • Work investigating the \"plateaus\" in the ChainSync jumping prototype\npointed to the TICKF slowdown on era boundaries as culprit.
    • Tech debt:
      • We improved the capabilities of our io-sim library, which is crucial for\ntesting and simulating Cardano components.
      • We removed thunks from epoch translations in the ledger.
      • We added Linux CI support for lmdb-simple.
      • We got pending diffusion pipelining improvements merged.
    • Fostering collaboration:
      • We are working on a explanation of Praos and Genesis protocols.
    • Support:
      • Investigation of CSJ \"plateaus\" led us to developing a caching strategy for\nTICKF that will not only remove these \"plateaus\", but can help alleviating\nthe growing block production delay on epoch switch.
      • We reviewed the block forge credential hotswapping feature which is intended\nfor use in the adoption of P2P.

    Workstreams

    Finish the UTxO HD prototype

    We merged PR #4060, which adds a report documenting the UTxO HD\nfeature, and puts emphasis in explaining how the mempool works in combination\nwith UTxO HD.

    We opened a draft PR with the second iteration of the property tests for the\nmempool (#4076).

    We fixed the Arbitrary instances for keys and values in DiffSeq benchmarks\n(#4143). The problem was that we were testing with mostly small\nvalues, which artificially boosted the performance gains we saw on benhcmarks.\nSpeedups are now in the range of [3.33, 4.75] across the different\nconfigurations.

    Backing store property tests

    We focused on incorporating feedback on the monadic cursor API PR (#1).\nThis required us to make small tweaks to quickcheck-lockstep to test the new\nAPI. We also updated the backing store property tests to use the new version of\nthe monadic cursor API.

    LSM tree implementation

    We worked on the LSM tree prototype. In particular: finished implementing a\n\"parameter tuning algorithm\" that adapts the LSM tree design based on factors\nlike:

    • workload
    • machine specs,
    • and characteristics of the data being stored.

    We are now running experiments to gather results and cross-reference them with\nexisting experimental results from the LSM tree paper to see if the algorithm is\nworking correctly.

    Benchmarking the CSJ prototype

    We focused on investigating the \"plateaus\" in the ChainSync tip, which turned\nout to be due to the TICKF bug which we previously were only aware of in the\ncontext of the long forging times near epoch boundaries. For the most drastic\npatch by @nfrisby to speed up TICKF, full sync is speeding up by 7%.

    The following plot shows that by caching the TICKF the ChainSync tip and the\nVolatileDB tip progress at the same rate.

    The plot below shows the speedup observed by caching the TICKF rule wrt the\nbaseline.

    Technical debt

    After addressing the PR comments, we merged PR #16, which implements\nthe MonadCatch instance for STM. This extends the capability of our io-sim\nlibrary, which is crucial for testing and simulating Cardano components PR #16\nclosed #1461. This new feature was published as version 0.4.0.0\nof io-sim.

    We continued with our work fixing the NoThunk errors required for enabling\nnightly tests, with the help of TVarInvariant checks in strict-stm and\nnothunks libraries. We proposed fixes in cardano-ledger that took care of\nthunks that appeared in era translations (#3143). The fixes will be\nintegrated back into consensus when cardano-ledger approves and publish the\nchanges introduced in #3143.

    We added CI support for lmdb-simple (#2). We currently test the build on\na Linux environment only.

    We got pending diffusion pipelining PRs (#3857, #3860,\n#3856) merged, after rebasing and addressing feedback.

    Fostering collaboration

    @nfrisby finished a visualisation tool and outlined scripts for the Praos and\nGenesis explanation presentations. The idea is to produce a video that gives an\noverview of these protocols.

    Support

    We started working on caching the computation of the TICKF rule\n(#4054), since this was blocking our benchmarking work for\nGenesis. In addition, this issue has the Cardano community quite\nconcerned, so we are hoping the work done in caching the\ncomputation of the TICKF rule can help alleviating the growing block\nproduction delay on epoch switch.

    We reviewed the block forge credential hotswapping PR #3800 from the\nnetworking team, which is intended for use in the adoption of P2P.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-16-consensus", + "title": "Consensus Team Update", + "summary": "High-level summary", + "date_modified": "2022-11-16T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2022-11-16-node-cli-api", + "content_html": "

    2022-11-16 - 2022-11-29

    High level summary

    Completed

    docs

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-16-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2022-11-16T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2022-11-16-performance-and-tracing", + "content_html": "

    High level summary

    1. P2P performance investigation is ongoing, in support of the networking team.
    2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.
    3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.
    4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.
    5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.

    Performance

    We are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.

    Tracing

    We ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.

    Infrastructure

    The first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.

    We designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.

    A number of smaller workbench, data analysis & reporting improvements have been made.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-16-performance-and-tracing", + "title": "Performance & tracing update", + "summary": "High level summary", + "date_modified": "2022-11-16T00:00:00.000Z", + "author": { + "name": "Serge Kosyrev", + "url": "https://github.com/deepfire" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2022-11-11-crypto", + "content_html": "

    High level overview

    The SECP primitives AC has been met, and the test-vectors PR has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool PR has been merged, and we've adapted the KES secure PR to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (PR#). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork.

    Low level overview

    • With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation.
    • We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool.
    • In parallel, we keep progressing on the KES agent
    • VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification.
    • Our libsodium fork now links directly to upstream libsodium.
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-11-crypto", + "title": "Crypto Team Update", + "summary": "High level overview", + "date_modified": "2022-11-11T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2022-11-11-hydra", + "content_html": "

    High-level summary

    This week, the Hydra team published together with Obsidian Systems a light paper\non our \"Hydra for Payments\" project (Link). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of hydra-node processes.

    What did the team achieve this week

    • Published Hydra for Payments light paper (Link)
    • Have a draft RFP ready for a first review internally
    • Answered the internal auditors questions
    • Fixed a bug with following the chain when starting with persistence (#599)
    • Minor improvements to logging for better observability (#598, #600)
    • Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look (#590)

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Close more gaps #452
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: \"Developing Hydra\" on Day 2, Nov 21st, 13:50 CET
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-11-hydra", + "title": "Hydra Team Update", + "summary": "High-level summary", + "date_modified": "2022-11-11T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2022-11-11-ledger", + "content_html": "

    High level summary

    I am extremely excited to say that we now have a pull request up which introduces our new versioned\nCBOR serialization. This was an enormous effort, but it will solve a host of problems that we have\nhad since the Shelley phase. It will take time to properly review it, and we will\nneed to put in a lot of effort to integrate it with the downstream components, but this is a huge\nmilestone. Additionally, we have a new CIP proposing a deprecation cycle for the transaction\nserialization schemes.

    We also have a draft pull request that reworks how deposits are tracked. Users of the system will\nnot notice any difference, but it is a necessary change needed to prepare the way for\ndecentralizing the governance of Cardano.

    Finally, we continued to address technical debt. In particular, we continued to make progress on\nbringing coherency and consistency to the code base with a common naming convention, and\nimproving some error messages.

    Lower level summary

    • We have a pull request up for our new versioned CBOR serialization.\nWhen we encounter a problem with our deserializers, it can be very difficult to implement a fix.\nIt is difficult because we can only fix such issues during a hard fork, and leading up to the\nhard fork we must maintain two serializations for the same type in order to not cause unintended\nnetwork splitting (the problematic version must be used before the hard fork,\nand the fixed version is used afterwards).\nThis can be especially tricky with the FromCBOR typeclass, since it is not always easy to\nsearch for where all the problematic uses are located.\nThe new versioned CBOR serialization allows us to gracefully handle this transition.\nSee [pull-3138].
    • We proposed a CIP for backwards compatibility of the transaction serialization schemes.\nSee [pull-372].
    • We have draft for the new deposit tracking.\nThis draft is not as memory efficient as the final version will be,\nbut it is a sufficient proof of concept that we can write property tests against, ensuring\nthat we have not changed the semantics.\nWe will optimize after we are sure of the correctness.\nSee [pull-3127].
    • We now provide better support for debugging failed Plutus scripts in an important helper\nfunction, named evaluateTransactionExecutionUnits.\nIn particular, it now returns all the information needed to rerun the script with exactly the\nsame arguments. This feature will end up appearing in the CLI and other tools from the Plutus\ntools team.\nSee [pull-3135].
    • We did a lot more renaming to bring coherency and consistency to the code base.\nSee [pull-3126], [pull-3120], [pull-3118], and [pull-3116].
    • We have added a few things to the ledger repository to make it conform to the\nCardano Engineering Handbook\nSee [pull-3139].
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-11-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2022-11-11T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2022-11-11-network", + "content_html": "

    High-level summary

    In last sprint we got a performance report of P2P performance testing cluster\n(which consists of 50 nodes). There is a performance regression in the header\nnotification metric. The P2P cluster is constructed with the same\ntopology as the non-p2p reference one this indicates some regression which\nneeds to be further investigated. This poses a risk for releasing P2P.

    We also continued to work on peer sharing: pull #4019.

    We continued working on dynamic block production which is required for P2P\nrelease for BP nodes: pull #3159.

    We simplified the P2P topology format: issue #4559, pull #3888.

    We added a new trace point for asynchronous demotions of local peers with\nWarning severity. This trace is important for SPOs.

    Detail description

    Performance regression

    Below we include a graph which shows the performance regression of the P2P code base vs non P2P.

    On the x axis is time in seconds which measures the delay from the start of\nthe slot to when a header was received. The y axis is the percentile of nodes\nthat received a header. We are currently investigating possible causes of the\nregression.

    New P2P topology form

    The new topology file format is described in this issue #4559.

    Tracing improvements

    • We improved a handshake error reporting, pull #4136
    • We added TraceDemoteLocalAsynchronous rendered as DemoteLocalAsynchronous\nin json format, pull #4127. Such demotions should be investigated by the\npool operator. They can indicate a problem in the deployed system, but also\nthey could indicate a remote problem in arranged connections with other SPOs.

    Open Source Improvements

    We improved documentation of io-sim and typed-protocols for open-source\ncontributors and/or maintenance tasks: pull #22, pull #45, pull #48.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-11-network", + "title": "Network Team Update", + "summary": "High-level summary", + "date_modified": "2022-11-11T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2022-11-04-hydra", + "content_html": "

    High level summary

    This week, the hydra team first re-deployed the latest Hydra scripts to the re-spun preview network, see 0.8.0 release notes. They also completed implementation of ADR18 and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates #195 and alignment of the specification document with auditors.

    What did the team achieve this week

    • Complete and merge ADR18 #579
    • Re-deploy hydra scripts to respun preview network, see 0.8.0 release notes #595
    • Have first gap of #452 in review.
    • Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.
    • Engineering meeting to discuss hard forks and protocol parameter updates #195
    • Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.
    • Drafted project scope for an external audit RFP.

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Answer the internal auditors questions
    • Have a draft RFP ready for a first review internally
    • Close some gaps #452
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-04-hydra", + "title": "Hydra Team Update", + "summary": "High level summary", + "date_modified": "2022-11-04T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2022-11-04-mithril", + "content_html": "

    This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.

    Low level overview

    • We have been moving forward on the implementation of the release process #500:
      • Setup of the new hosted environments for testing-preview, pre-release-preview and release-preprod with their terraform and GitHub environments #542
      • Adapted the CI workflows to work with the new release process #543
      • Publication of an ADR3
      • Publication of a dev blog post about Mithril networks evolution
      • Releasing our first Mithril distribution 2244.0
    • Worked on the API versioning mechanism #565
    • Worked on the implementation of the stores migration process for the signer and aggregator nodes #562
    • Prepared a Mithril devnet video demo #526
    • Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably #484
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-04-mithril", + "title": "Mithril Team Update", + "summary": "This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.", + "date_modified": "2022-11-04T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "mithril" + ] + }, + { + "id": "2022-10-31-open-source", + "content_html": "

    High Level Summary

    • We've been working toward publishing Cardano Backlog, currently its in\nreview by the IOG communication team.
    • We identified a number of libraries which can be published.
    • We setup and enhanced cardano-updates.

    Detailed description

    I am glad to announce that I was given the role of open-source advocate for\ncardano project. In last few weeks we were making steps towards publishing our\nbacklog. It's currently under review by the communication team, although most\nof the issues are already visible across various repositories.

    The open-source initiatives have their own\nproject. It is set up\nto help us track our major open-source activities. Right now there are two\nwork streams:

    We identifies a number of libraries across all the teams which contribute to\nCardano which we would like publish to publish, see the following\nlink. Arnauld Bailly recently published\nquickcheck-dynamic\nlibrary on Hackage. The networking team is slowly progressing towards\npublishing io-sim and related packages, checkout the progress\nhere.

    Thanks to Arnaud Bailly our Cardano Updates website has\na new look & feel! It's using docusaurus.io.

    Christian Taylor carried recently a detailed analysis of our open-source\nrepositories. He collected many interesting metrics, which allows us to see\nwhere we need to improve as an open-source project to make the Cardano project\nand many smaller related libraries which we maintain be more open and available\nfor open-source contributors.

    The graph below shows which documents the 55 most important Cardano\nrepositories are missing the most:\n\"Documentation\nYou can expect we will improve in these metrics in the coming weeks.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-31-open-source", + "title": "Open-Source Team", + "summary": "High Level Summary", + "date_modified": "2022-11-04T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "open-source" + ] + }, + { + "id": "2022-11-03-embedding-quality", + "content_html": "

    High level summary

    We made good progress on most of the Action Items we agreed on Lisbon, like:

    • Cardano System Tests was fully open to public (tools, tests, results)\nSee cardano-node-tests webpage
    • We defined an user-facing-functionality template that is used with the cardano-cli team
      • this includes acceptance criteria & user stories, and definition of done
    • We are in the process of running the cardano-node-tests at commit & PR level in cardano-node (we are affected by the Cicero migration right now but we did most of the work already)
    • We started to apply a labelling convention on cardano-node issues that will be used to generate some visual dashboards with some metrics [TBD]
    • Ziyand Liu started an End-to-End Development and Testing Process for Plutus Features
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-03-embedding-quality", + "title": "Embedding Quality Workstream", + "summary": "High level summary", + "date_modified": "2022-11-03T00:00:00.000Z", + "author": { + "name": "Dorin Solomon", + "url": "https://github.com/dorin100" + }, + "tags": [ + "embedding-quality" + ] + }, + { + "id": "2022-10-02-consensus", + "content_html": "

    High-level summary

    During the past two weeks, the consensus team continued its work on testing the\nUTxO HD prototype. We completed the era-transition and backing store tests, and\nthe mempool tests are advancing at a steady pace. Regarding our work in the\nGenesis design, we continued our collaboration with the research and networking\nteams, and we continue investigating strategies for making the chain-sync\njumping prototype faster.

    High-level status report

    • Finish the UTxO HD prototype: on track.
      • We worked on state-machine tests for the mempool, and spotted potential bugs\nin the implementation. Investigation is ongoing.
      • We have a set of property tests for the backing store. We still need to\nincorporate the improvements to the LMDB cursor API that these tests\nmade possible.
      • We merged the era-transition tests PR.
    • Genesis: on track.
      • Design work around Genesis continues in collaboration with researchers and\nthe networking team.
      • We continued trying to improve the performance of the chain-sync jumping\nprototype. We gained additional insight on which parameters to tweak next.\nIn spite of the baseline still being faster, the current prototype already\nachieves a significant speedup when compared to the naive approach of simply\nrunning full chain-sync with all peers.
    • Tech debt: on track.
      • We clarified a common source of confusion around VRF tie-breaking and\ncross-era chain selection.

    Workstreams

    Finish the UTxO HD prototype

    We continued working on property-tests for the UTxO HD prototype. In particular\nwe merged the era-transition tests\nPR.

    Backing store property tests

    The backing store property tests\nPR has been\nreviewed. The next steps are:

    • Improve error handling and command generation.
    • Add coverage testing to check that we are not failing to cover interesting\ntest cases.

    The monadic cursor API\nwent through its first review round. The API is in a relatively stable state.\nThis PR also unifies the cborg and serialise-based interfaces to LMDB\noperations. The next steps are:

    • Write\nquickcheck-dynamic\nstate-machine tests for this API.
    • Adapt the changes in the serialisation interface in the backing store property\ntests. This will involve adding boilerplate code in consensus to make up for\nthe removal of the cborg-based interface.

    LSM tree implementation

    We worked on the LSM tree\nprototype. In\nparticular, we focused on tuning the LSM tree design to the different workloads\nthat consensus has (eg syncing, normal node operation, etc).

    Benchmarking the CSJ prototype

    Work on improving the chain-sync jumping performance is ongoing. In particular\nwe compared the performance of different jump intervals, which, somewhat\nsurprisingly, do not make a significant difference. In particular, we are seeing\nperiodic \"plateaus\" where the chain-sync tip does not progress, but they are\nmuch longer for the prototype. Our hypothesis is that this seem to be due to a\ncombination of the garbage collector (GC) pauses, and the actual time it takes\nthe non-dynamo chain-sync peers to jump to the tip of the slot of the dynamo\nfragment.

    In the coming weeks we will try to shorten these plateaus via a combination of\ntweaking GC options and less synchronisation in the CSJ governor.

    The following plot shows the performance of the chain-sync jumping prototype\nusing different jumping intervals. It compares the syncing progress by plotting\nthe slots of adopted blocks against time. The baseline is still faster, however\nit is worth noting that the current prototype already achieves a significant\nspeedup when compared to the naive approach of simply running full chain-sync\nwith all peers.

    The second plot shows the syncing progress sliced to a chosen ~5min interval,\nand includes, in addition to the slots of adopted blocks, the slots of the tip\nof the ChainSync fragment. This allows us to see how far ahead of the selected\ntip the CS dynamo is, i.e. how much room we have for BlockFetch not to get\nstalled. It shows periodic behaviour (due to the forecasting limit), and shows\nthat the CS fragment tip is not progressing for significant periods\n(\"plateaus\").

    Technical debt

    We clarified a\ncommon source of confusion around VRF tie-breaking and cross-era chain\nselection. This PR involved correcting potentially misleading names of\nVRF-related functions, and providing context for a particular VRF value is\nused for tie-breaking.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-02-consensus", + "title": "Consensus Team Update", + "summary": "High-level summary", + "date_modified": "2022-11-02T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2022-11-02-ledger", + "content_html": "

    High level summary

    We have made the decision to use the\nformal ledger repository\nin place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure\nto the model. In particular, we now have a lot of support for axiomatic set theory.\nWhile the next ledger era is still in the design phase, most of the team remains working\non technical debt.\nIn particular, we have moved a lot more code out of the Shelley specific modules and into\na ledger core module, we have finished up our benchmarking around the problematic TICKF\nledger transition (while improving the performance), made conveniences to the development\nenvironment, cleaned up all the recent changes to the cost model, added a lot of documentation,\nfixed some flaky tests, and deleted some dead code.

    Lower level summary

    Axiomatic Set Theory

    The formal ledger model now has support for much of the set theory that we make use of in\nthe formal ledger specifications. See [pull-20].

    Completed Technical Debt

    • We have addressed issues with two of our most problematic and flaky tests.\nSee [pull-3039] and [pull-3093].
    • We have added more documentation and tests to the Twiddler module. This is a module which\nmakes our CBOR serialization round-trip tests much more robust, and will also hopefully\nhelp enforce the mandate for downstream libraries to never re-serialize data that needs\nto be hashed. See [pull-3073] and [pull-3095]\n(we cannot merge 3095 just yet, due to a preference for merging other features).
    • We have finished our long analysis of the problematic TICKF transition.\nWe now have a lot of benchmarks surrounding this code, and have added performance improvements.\nSee [pull-3068] and [issue-3035].
    • We have restored support for\nghcid\nin our repository. This is a tool for developing with Haskell that many of us find greatly\nimproves our productivity by providing us with constant feedback from the type checker.\nSee [pull-3112].
    • After much activity on the cost model, we have done some final clean up of the code.\nSee [pull-3075] and [pull-3101].
    • We moved a lot of the existing user facing documentation regarding native tokens into the\nledger repository, and cleaned it up\n(most of the heavy lifting was done by our amazing technical writers).\nSee [pull-3091].
    • We removed dead code. See [pull-3089].
    • We moved a lot of code from the Shelley specific libraries to the ledger core library.\nSee [pull-3109] and [pull-3110].
    • We've removed more of the awkward legacy template Haskell names.\nSee [pull-3108].
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-02-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2022-11-02T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2022-11-02-node-cli-api", + "content_html": "

    2022-11-02 - 2022-11-15

    High level summary

    • Documentation improvments
    • Merged community contributions
    • Exposing types from cardano-api requested by the community/other teamss
    • Test output has been improved so diagnosing failures is now easier
    • Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)
    • Refactoring of cardano-testnet making it more useable as a library (ongoing)
    • Release 1.35.4 was merged & released

    Completed

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-02-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2022-11-02T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2022-11-02-release", + "content_html": "

    Node Reelease Update

    2022-10-19 - 2022-11-02

    Executive Summary

    The team is formalizing the new release process and team structure. Both preview/preprod environments have been reset,\na temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8.

    1.35.4 release candidates have been created and are being tested internally and externally.

    Completed

    In Progress

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-02-release", + "title": "Node Release Team Update", + "summary": "Node Reelease Update", + "date_modified": "2022-11-02T00:00:00.000Z", + "author": { + "name": "Samuel Leathers", + "url": "https://github.com/disassembler" + }, + "tags": [ + "release" + ] + }, + { + "id": "2022-11-02-system-test", + "content_html": "

    High level summary

    We have been focused on:

    • Fully opening our test results (on top of the existing tests & tools):
      See cardano-node-tests webpage.
    • Started to test and automate the new functionalities added in the 1.35.4-rc1 node tag
      See test results tracking page.
    • Made some improvements to the automated db-sync sync tests
      See db-sync tests.
    • Multiple cleanups and updates to the cardano-node-tests framework
    • Updated the nightly pipelines for the cardano-node-tests after the Babbage HF
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-02-system-test", + "title": "System Test Team Update", + "summary": "High level summary", + "date_modified": "2022-11-02T00:00:00.000Z", + "author": { + "name": "Dorin Solomon", + "url": "https://github.com/dorin100" + }, + "tags": [ + "system-test" + ] + }, + { + "id": "2022-11-01-db-sync", + "content_html": "

    High level summary

    The DBSync team is preparing a release which introduces schema simplifications, removes indexes,\nunique and foreign keys. It also provides a way to fix older values and migrates without the need to\nresync from genesis.

    Lower level summary

    Schema simplifications

    Indexes, Unique and Foreign keys are removed in order to speedup syncing\n#1295\nThe same pr also introduces a different way to rollback, which doesn't rely on foreign keys and\nindexes.

    Performance

    The DBSync team ran a big number of benchmarks and investigated ways to speedup syncing. A\nconservative number of these will be included in the next release and the rest can be found in\nperformance view.

    Migrations and resyncing

    The next release will be 13.1.0, it will enable a migration without the need to resync. It will also\nintroduce a procedure that fixes bytes values of Datum and RedeemerData in existing databases\n#1294

    Release

    The release has been mostly cherry-picked from master\n#1294 and its scope can be seen\nrelease view

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-11-01-db-sync", + "title": "DB Sync Team Update", + "summary": "High level summary", + "date_modified": "2022-11-01T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2022-10-28-hydra", + "content_html": "

    High level summary

    This week, the hydra team completed several user experience improvements to the\nhydra-tui and hydra-node, and delivered a first version of persisted head\nstates by publishing release version\n0.8.0.\nBesides this, they met with researchers on topic of the HeadV1 specification and\nkicked-off work on the RFP for an external audit of the Hydra Head protocol and implementation.

    What did the team achieve this week

    • Completed the UX improvements on the hydra-tui
    • Released version 0.8.0, which delivers a first version of persisted head states
    • Met with researchers on the HeadV1 specification
    • Started work on the RFP for our external audit

    What are the goals of next week

    • Complete ADR18 implementation and get it merged
    • Start work on event-sourced persistence #580
    • Have a first plutus script gap closed #452
    • Revamp CI to use flakes and build macos artifacts (stretch goal: migrate to cicero for nix builds)
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-28-hydra", + "title": "Hydra Team Update", + "summary": "High level summary", + "date_modified": "2022-10-28T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2022-10-28-network", + "content_html": "

    High-level summary

    The team has focused on debuging & fixing bugs for the P2P single relay release, which included

    • diagnosing, fixing and writing tests for a bug in peer-state-actions which\nfortunately hasn't been released;
    • diagnosing & preventing misconfiguration of DNS

    We also focused on developing peer sharing. We also held a session with\nthe scientists on eclipse evasion.

    Detailed description

    P2P Network Stack

    During the past two weeks the team focused on p2p single relay release and peer\nsharing. We found and fixed an important bug recently introduced in one of the\ncomponents of p2p networking stack (fortunately never released). Together with\na fix, we designed a unit test diffusion simulation as well as quickcheck\nproperty test (both could reproduce it). We also changed the code in a way that\nif such a bug is reintroduced in the future, it will be obvious to diagnose.\nFor more see:

    Initial benchmarking run of the P2P code was executed. The results where\nunlike what we see on the mainnet. We found a possible misconfiguration of the\ncluster (caused by 0 TTL on domain names), which could be the direct cause of\nit. We wrote a PR which rules out such misconfiguration. We are awaiting on\nthe next benchmarking results. See more at:

    ouroboros-network#4106

    We also started working on P2P single relay release. The PR\nouroboros-network#4120\nincludes 108 patches cherry-picked from the master branch. We started\nworking toward integration these changes against the release branch of\ncardano-node. Early next week we ought to be able to have an early version\nof cardano-node with non experimental P2P support!

    For more detailed release plan please see P2P - Single\nRelay\nissue.

    Consensus

    We identified and fixed missing error reporting in consensus\ninitialisation phase. See more at\nouroboros-network#4015

    Cardano Node

    We also made changes in cardano-node in order to give better experience for\nnode operators. This includes updating severities of some of the traces as\nwell as implementing new format of the p2p topology file. For more see:

    Peer Sharing

    We continued working on implementation of peer sharing. We have an early\nimplementation which will be reviewed and analysed in next weeks. We started\nworking on cardano-node integration. We need\nPR #4392 to be merged\nbefore such integration will be able to land in cardano-node, although this\nis not blocking us currently. See more at:

    Eclipse Evasion

    We held a session which included Alexander Russel, Sandro Coretti-Drayton and\nNick Frisby from the consensus team. We discussed high lever design of the\neclipse evasion scheme, which is important for the design and implementation of\nouroboros-genesis. We got a positive feedback from the researchers.

    IO-Sim

    In this period we made little progress towards releasing IO-Sim on Hackage.\nA single PR which added\na few missing instances of the STM monad.

    Open Source

    We made sure the CI runs for PRs which comes from forks (which is important to\naccept contributions from 3rd parties).

    Mithril Cardano Integration

    We held initial discussions with Arnaud Bailly about possible path to integrate\nmithril to cardano-node and take advantage of the ouroboros-network\ndiffusion layer.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-28-network", + "title": "Network Team Update", + "summary": "High-level summary", + "date_modified": "2022-10-28T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2022-10-28-performance-and-tracing", + "content_html": "

    High level summary

    On the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline.

    On the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario.

    Executive summary

    • The new tracing system public release is getting closer, as we're resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale.
    • The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment.
    • The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE.
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-28-performance-and-tracing", + "title": "Performance & Tracing Team Update", + "summary": "High level summary", + "date_modified": "2022-10-28T00:00:00.000Z", + "author": { + "name": "Serge Kosyrev", + "url": "https://github.com/deepfire" + }, + "tags": [ + "performance-tracing" + ] + }, + { + "id": "2022-08-12-sre", + "content_html": "

    High level summary

    The SRE team is heavily working on the Equinix Metal migration, replacing Hydra\nwith Cicero, and a new version of Spongix.

    Lower level summary

    OpenZiti

    • Work is ongoing on our OpenZiti integration into Bitte in [bitte-zt].
    • CI-World deployment of Darwin CI Ziti service in [ci-world-commit-d40f4d].
    • Multiple issues filed, and a lot of discussion with the OpenZiti developers,\nwe're making pretty rapid progress thanks to them.
    • Work on getting Equinix baremetal machines integrated into AWS World Bitte\nclusters utilizing a Ziti ZTNA network overlay to bridge the networking of\nthe two environments and get IAM extension to Equinix machine for Nomad\nclient onboarding.
    • A Nix Flake for most of our OpenZiti dependencies including the Console,\nController, Edge Tunnel, and Router is now at [openziti-bins].
    • The Flake also includes a WiP NixOS modules for these components.
    • Tested Ziti Desktop Edge official app for Darwin x86_64 w/ GUI -- works with\nno issues seen so far
    • Moved the console to traefik routing service (zac.$DOMAIN) and\ncontroller/edge router stay at zt.$DOMAIN, but have registered consul\nservices

    Cicero & Tullia Integrations

    Cicero & Tullia Features

    • Improvements to Tullia task aggregation to make [cardano-addresses] build\ncorrectly.
    • Better tullia CUE lib default for tags [tullia-commit-4df3c5d].
    • Put cache.nixos.org back in cache.iog.io's upstreams. This is now\nconsidered a public cache again, and without it some Cicero evaluations had\nto build huge packages.
    • Started working on a flake-parts module for Tullia.
    • Started working on cutting down Tullia task build time by putting facts in\nJSON files.
    • Fixed running into kernel arg limit by reading tullia's DAG from a file
    • Merged [tullia-pull-9] that fixes several issues related to error reporting.\nand escaping.
    • Added Mac builders in Cicero on CI-World.
    • Started work on Tullia invocation caching.

    Spongix

    • A lot of progress on an SQlite backed version of Spongix, it already supports\nthe full HTTP binary cache protocol but still lacks comprehensive testing and\nsome tuning, as well as recursive lookups.
    • First steps in the implementation of the nix-daemon ssh-ng protocol so\nSpongix can be used via SSH and we can get rid of basic auth.

    Bugs

    • Discovered Cicero bug where Nomad reschedules cause the Github commit status\nto get stuck in pending
    • Discovered Cicero race condition bug around concurrent transactions for\ncodependent actions.
    • Fixed tullia task order bug in [cardano-addresses]
    • Diagnose Cicero action not triggered in [abcirdc]
    • Fixed meta/description of the Tullia package in [tullia-pull-7]
    • Add Vault token loop alerts in [bitte-cells-pull-40]
    • Ongoing investigation on recurring Patroni and nomad-follower issues related\nto token rotation.
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-08-12-sre", + "title": "SRE Team Update", + "summary": "High level summary", + "date_modified": "2022-10-28T00:00:00.000Z", + "author": { + "name": "Michael Fellinger", + "url": "https://github.com/manveru" + }, + "tags": [ + "sre" + ] + }, + { + "id": "2022-10-27-crypto", + "content_html": "

    High level overview

    The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to\nmeeting the acceptance criteria in cardano-base,\nwhich lacks some editorial comments on the style of dQuandrant's PR, the inclusion of one additional test, and\nwe are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution,\nbut also progressing on the implementation.

    Low level overview

    SECP built-ins

    • (missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in PR 313
    • CIP-0049 was addressed in the editors meeting, and PR 250 was merged
    • The unit-tests PR 320 is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.

    KES agent

    • We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them.
    • We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s).
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-27-crypto", + "title": "Crypto Team Update", + "summary": "High level overview", + "date_modified": "2022-10-27T00:00:00.000Z", + "author": { + "name": "Iñigo Querejeta Azurmendi", + "url": "https://github.com/iquerejeta" + }, + "tags": [ + "crypto" + ] + }, + { + "id": "2022-10-21-hydra", + "content_html": "

    High level summary

    This week, the hydra team reviewed and addressed several open comments on the\nnew HeadV1 specification, completing a list the of identified gaps between\nspecification and implementation while doing so. In the wake of the recent\ndemonstration of SundaeSwap running their DEX in a Hydra Head, they met with\nthem to capture feature ideas & incorporate their feedback on the roadmap, as\nwell as potential research avenues.

    What did the team achieve this week

    What are the goals of next week

    • Complete the last two items required for a version 0.8.0.
    • Cut the next release, version 0.8.0
    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Have the CI build macos artifacts
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-21-hydra", + "title": "Hydra Team Update", + "summary": "High level summary", + "date_modified": "2022-10-21T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2022-10-19-node-cli-api", + "content_html": "

    2022-10-19 - 2022-11-01

    High level summary

    This sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node's mempool for the following information:

    • Ask the node about the current mempool's capacity and sizes
    • Request the next transaction from the mempool's current list
    • Query if a particular transaction exists in the mempool

    Outside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric tx_submit_fail_count has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:

    • Documentation improvments
    • Release 1.35.4 was merged & released
    • Exported various types from cardano-api that were requested by community members

    Completed

    cardano-cli

    cardano-api

    cardano-submit-api

    cardano-node

    cardano-testnet

    • None

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-19-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "High level summary", + "date_modified": "2022-10-19T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2022-10-18-consensus", + "content_html": "

    High-level summary

    During the past two weeks, the consensus team worked on adding property test for\ndifferent aspects of the UTxO HD prototype: era transitions, mempool, and\nbacking store. Thanks to these tests we were able to uncover a bug in the\nprototype. On the Genesis front, we benchmarked a different version of the\nChainSync jumping prototype to try to improve its performance, but this did not\nresult in any noticeable speedup.

    High-level status report

    • Finish the UTxO HD prototype: on track.
      • We focused on increasing test coverage for the UTxO-HD prototype:
        • We started implementing Cadano-eras transition property-tests.
        • We started implementing state-machine property-tests for the mempool.
        • We merged the mempool rewrite.
        • We started working on state-machine tests for the backing store. This\nuncovered a bug in the range-read implementation of the LMDB backing\nstore.
    • Genesis: on track.
      • We benchmarked a version of the Genesis ChainSync Jumping prototype that\nspreads out the ChainSync updates over a longer period of time. This did not\nresult in any noticeable speedup.
      • We investigated the overhead introduced by non-ChainSync components, but no\nconclusions could be drawn from the benchmarks we ran.

    Workstreams

    Finish the UTxO HD prototype

    We focused on increasing test coverage for the UTxO HD prototype. We also merged\nthe mempool\nrewrite.

    Era transition property tests

    We started implementing Cardano era transition property\ntests,\nwhich are needed for making sure that the ledger tables get updated in the\nright way when we move from one era to the next. There are at the moment two\nimportant transitions.

    • Byron to Shelley: where all the UTxO is transferred from in-memory Byron\nstate (which has no tables) to the ledger tables of the Shelley state.
    • Shelley to Allegra: where the AVVM addresses must be deleted.

    We have tests for the Byron to Shelley transitions. We are working on adding\nthe remaining ones.

    Mempool state-machine tests

    We started implementing state-machine property tests for the\nmempool.\nThe mempool is currently tested via pure property tests, and use a ledger\nstate without tables. With the introduction of UTxO HD, testing the concurrent\nbehavior of the mempool became of crucial importance (eg now we have to\nacquire locks to flush the backing store). In addition, we need to test a\nledger state with tables. These needs led to the creation of a new set of\nproperty tests. In particular we aim to run parallel state-machine tests that\nexercise the mempool in a way similar to how the node would make use of it.

    Backing store property tests

    We started working on state-machine tests for the backing\nstore that UTxO\nHD uses. The property tests uncovered errors in the range-reads implementation\nof the LMDB backing store. To facilitate fixing this bug, we made\nchanges to the Haskell\nLMDB bindings.

    Benchmarking the CSJ prototype

    Prompted by previous benchmarks showing significant improvements in sync time by\nusing more capabilities, we implemented a way to spread out the ChainSync\nupdates over a larger period instead of firing them all at the same time. This\ndidn't result in a noticeable speedup.

    We also benchmarked the prototype with CSJ disabled (such that just the dynamo\npeer is running ChainSync, but e.g. BlockFetch still sees all peers) to rule\nout/confirm overhead by non-ChainSync (mainly BlockFetch) related components.\nThis results in era-specific behavior (speed is like the prototype in Byron, but\nlike the baseline in Shelley). This deserves a closer look in the future.

    This diagram shows the respective syncing progress, starting at Genesis and\ncontinuing a good part into Shelley (with the dashed line indicating the\nByron-to-Shelley transition).

    • Red: baseline
    • Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps.
    • Blue: like Green, jumps are spread out.
    • Orange: variant with no jumping, to measure unrelated overhead.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-18-consensus", + "title": "Consensus Team Update", + "summary": "High-level summary", + "date_modified": "2022-10-18T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2022-10-14-hydra", + "content_html": "

    High level summary

    This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the hydra-node over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks \"past the opening of a Head\". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.

    What did the team achieve this week

    • Last week we thought we were done with ADR18, but were not ...
    • ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.
    • Implemented a first version for persistence #187 in response.
    • Enhanced CI to publish test results on our website
    • Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!
    • Pulled static executable feature #200 into scope, implemented it and merged it!
    • Received and read through a project proposal by a vendor (building a Hydra platform).

    What are the goals of next week

    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Cut the next release, version 0.8.0
    • Address open comments on specification document & complete the list of identified gaps between specification and implementation #452
    • Have the CI build macos artifacts
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-14-hydra", + "title": "Hydra Team Update", + "summary": "High level summary", + "date_modified": "2022-10-14T00:00:00.000Z", + "author": { + "name": "Sebastian Nagel", + "url": "https://github.com/ch1bo" + }, + "tags": [ + "hydra" + ] + }, + { + "id": "2022-10-14-ledger", + "content_html": "

    High level summary

    The ledger team is still primarily focused on addressing\ntechnical\ndebt.\nWe now have the infrastructure for versioning our serialization schemes,\nwhich we continue to put into action.\nWe have made first steps towards getting proper support for the\nformal ledger repository\n(in particular, we've added nix builds and\ncontinuous integration support).\nWe are wrapping up an investigation of the performance of a critical\nfunction used by the consensus layer for leader checks.\nFinally, we are improving the packaging and versioning of our code.

    Lower level summary

    Completed Technical Debt

    • Because the Shelley ledger era was a complete re-write of the Byron ledger era, a lot of\nour code lives in the cardano-ledger-shelley package, though with hindsight we can say that\nmuch of it should live in cardano-ledger-core.\nWe continue to move things to cardano-ledger-core, and have much more to come. [pull-3059]
    • We now have the infrastructure to support versioned serialization schemes.\nThe inability to do this has caused us a lot difficulties,\nsuch as [issue-3003], [issue-2965] and [issue-2444].\nWe are still in the process of switching to the versioned serialization scheme\n(such as [pull-3078]),\nbut the infrastructure was completed in [pull-3063].
    • We now have proper nix and CI support for the formal ledger project. [pull-19]
    • A separate team is helping bring support for\nCHaP\nto all the cardano-node repositories.\nWe have been helping out with this effort.
    • A separate team continues working on upgrading all the\ncardano-node repositories to work with ghc 9.2.4.\nWe have been helping out with this effort.

    In-progress Technical Debt

    We also have several fairly large pull-requests in review\nthat we are working on.

    • In an on-going attempt to build out a more user-friendly API,\nwe continue to remove HasField instances in place of using micro-lenses.\nThe protocol parameters, in particular, are being worked on. [pull-3045]
    • We are also renaming record fields to be consistent across the repository. [pull-3062]
    • We are now cleaning up all the work we did to understand the performance\nof the TICKF transition. We have some improvements to the computatation\nas well. [pull-3068]
    • We are adding more documentation, in particular to our Twiddler functionality. [pull-3073]
    • The formal ledger is adding support for finite set theory. [pull-20]
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-14-ledger", + "title": "Ledger Team Update", + "summary": "High level summary", + "date_modified": "2022-10-14T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2022-10-05-consensus", + "content_html": "

    High level summary

    During the past two weeks, the consensus team worked on improving the\nperformance of the ChainSync jumping logic, which is needed for Genesis. We also\nrewrote the implementation of the mempool in the UTxO HD prototype which solved\nthe issues that prevented us from running system level benchmarks. Also on the\nUTxO HD front, we have an improved implementation of the sequence-of-differences\n(a crucial piece of UTxO HD), and we also elaborated a test sign-off list for\nthe UTxO HD feature.

    Executive summary

    • With the latest implementation of ChainSync jumping we are closer to the\nbaseline performance. In particular, the prototype seems to benefit from the\nextra concurrency provided by additional capabilities.
    • We rewrote the implementation of the mempool in the UTxO HD prototype. This\nrewrite was required due to performance problems we observed when running the\nworkbench.\nThese performance problems prevented us from running system level benchmarks.\nThe rewrite solved these issues. After the UTxO-HD: mempool\nrewrite PR is\nmerged, we will contact the Benchmarking team so that they run the system\nlevel benchmarks.
    • The implementation of sequences of differences based on anti-diffs was\nintegrated into the UTxO HD prototype. It is pending\nreview and\nwe also need to run replay and syncing benchmarks to confirm that this will\ndeliver a performance improvement, as observed in our micro-benchmarks.
    • The UTxO HD prototype\ninspection\nresulted in a list of\ntests\nneeded for consensus to consider the UTxO HD prototype as fully tested.

    Additional information

    Genesis

    Benchmarking setup: 50MBit/s, 50ms latency

    • Red: baseline
    • Green: Current CSJ prototype, 10 peers, jumps every 3000/f slots.

    As ChainSync Jumping involves many concurrent network operations at every jump,\nwe tried to run the node with 6 instead of the default 2 capabilties.

    • Orange: baseline with 6 capabilities
    • Blue: CSJ prototype with 6 capabilities

    This diagram shows the respective syncing progress, starting at Genesis and\ncontinuing a good part into Shelley (with the dashed line indicating the\nByron-to-Shelley transition).

    Further work includes whether we can tune the prototype to better handle few\ncapabilities, or to adapt the default number of capabilities (potentially just\nwhile syncing).

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-05-consensus", + "title": "Consensus Team Update", + "summary": "High level summary", + "date_modified": "2022-10-05T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2022-10-04-db-sync", + "content_html": "

    DBSync Update

    Fast restarts

    We fixed a long overdue issue in db-sync which caused long delays on restarts\n1266. This has been\none of db-sync main objectives for this period. Restarts are now very fast,\nbecause db-sync deletes almost nothing from the db, it just replays the ledger rules until it\nreaches the tip of the db. The fix also improves reconnection speed, in cases where the node\nrestarts or the connection is temporarily lost. It also speeds up even more in cases where due to a\ndeployment mess up a very old snapshot or no snapshot at all is used.

    Property based testing

    We added stateful property based testing, using quickcheck-state-machine\n1269. These tests use empty or\nalmost empty blocks to test the new behaviour of restarts and rollbacks.

    These tests generate arbitrarily a list of symbolic commands from these:

    RollForward Int
    RollBack BlockNo
    StopDBSync
    StartDBSync
    RestartNode
    AssertBlockNo BlockNo

    The commands are translated into real commands. For example RollForward Int will forge a new block\nthat fits on the current chain. These real commands are executed against db-sync using the mock\nchain-sync server. The symbolic commands are executed against a vesy simplistic Model of db-sync\nwhich looks like this:

      Model
    { serverTip :: BlockNo
    , dbSyncTip :: BlockNo
    , dbSynsIsOn :: Bool
    , dbSynsHasSynced :: Bool
    }

    Finally a number of postconditions are checked, related to the eventual block number of db-sync.

    Tech Debt

    We handled a number of tech debt in\n1275\nThis improves the code format of db-sync, deletes many queries that were never used and groups the\nothers. This tech debt resolution not only improves the experience of working in db-sync, but can\nfacilitate some of our other objectives, as it makes it very explicit which queries are used\nduring syncing and which indexes are necessary.

    Smash

    We worked on fixing an issue related to fetching pool metadata\n1276.\nThe issue which is described in\n1270

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-04-db-sync", + "title": "DB Sync Team Update", + "summary": "DBSync Update", + "date_modified": "2022-10-04T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2022-10-04-node-cli-api", + "content_html": "

    Node-Api-Cli Update

    2022-10-04 - 2022-10-18

    Executive Summary

    The majority of the team's time was spent between getting 1.34.4 ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to cardano-cli.

    Completed

    cardano-cli

    cardano-api

    cardano-node

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-10-04-node-cli-api", + "title": "Node API & CLI Team Update", + "summary": "Node-Api-Cli Update", + "date_modified": "2022-10-04T00:00:00.000Z", + "author": { + "name": "Jordan Millar", + "url": "https://github.com/Jimbo4350" + }, + "tags": [ + "cli-api" + ] + }, + { + "id": "2022-09-30-ledger", + "content_html": "

    Ledger Update

    We have continued focusing nearly entirely on addressing technical debt.\nA lot of design work has begun for the next ledger era,\nbut we do not yet have anything concrete to share.

    Technical debt issues completed

    • [issue-1676][pull-2992] We have finally removed the ledger dependency on the\ncardano-prelude package. It was barely used in the ledger repository, and it added a dependency\nthat we did not want to maintain. It was a bit difficult to remove, and we had\nto coordinate removing it from cardano-base.\nA lot ended up going into pull-2992, due to the coordination effort, and we ended\nup updating Plutus as well.\nThis means that we've now also made a lot of progress on the problematic cost model serialization\nissues described in issue-2902.\nIn particular, after we resolve issue-3014, we will not have to wait an epoch before\nreleasing a cost model for a new version of Plutus, as we had to do for the Vasil HF.
    • [issue-3046][pull-3055] We moved a module that is now only used in Byron to a Byron package.
    • [issue-3047][pull-3054] We improved the interface to the Value (multi-asset) type.
    • [pull-3044] We debugged and fixed a tricky compilation issue. Certain kinds of field updates\nwere adding approximately 20 minutes to our compile time!
    • [issue-2932][pull-3036] As a part of our ongoing re-organization of the codebase, we\nhave added a Cardano.Ledger.[Era].Core module to each ledger era that has a TxBody class.\nMost classes defined in the era should go in this new module.\nWe also re-export the Cardno.Ledger.Core module and the previous Cardano.Ledger.[Era].Core\nmodules from each era.

    Technical debt in progress

    • [issue-3034][issue-3035][node-issue-4421] We are continuing to write benchmarks to understand exactly where\nall the time is being spent on executing the TICKF transition.\nThe consolidation of the per-stake-credential stake distribution to the per-stake-pool\ndistribution does seem to account for a large amount of time (near a second as written, which we\nhave down to about half a second with some optimizations),\nbut this does not account for everything.\nApplying the reward update may also be a big contributing factor.
    • [pull-3033][pull-3038][pull-3041] A separate team is working on upgrading all the\ncardano-node repositories to work with ghc 9.2.4. We have been helping out with this effort.
    • The nix scripts used to build our new\nformal ledger model\ndo not work consistently for everyone, and we have been working on fixing these issues.
    • [issue-3014] We are still working on adding a versioning scheme to all of the ledger\nserializers.
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-09-30-ledger", + "title": "Ledger Team Update", + "summary": "Ledger Update", + "date_modified": "2022-09-30T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2022-09-27-network", + "content_html": "

    Network Update

    Ouroboros Network

    Ouroboros Consensus

    • Recently we found out that the consensus does not log exceptions thrown during\nintiialisation. This was fixed in\nPR input-output-hk/ouroboros-network#4015\nAs part of this pull request we also changed that all exceptions rethrown by\nthe connection handler thread are wrapped in ExceptionInHandler.

    Some older items, which were not announced

    • We identified and fixed an issue related to socket activation (socket options\nwhere not set for sockets passed through socket activation).\nPR input-output-hk/cardano-node#3979\nThis fix will be released in the next cardano-node release.

    Cardano Node

    • We extended the NixOs service module so that one can modify socketPath,\nruntimeDir, databasePath, traceSocketPathAccept,\ntraceSocketPathConnect and stateDir options.\nPR input-output-hk/cardano-node#4196

    IO-Sim

    We resolved a number of issues before release of io-sim on hackage:

    See PR #24.

    We also improved experience for contributors of io-sim and typed-protocols by adding issue templates:

    Typed Protocols

    Input Endorsers Simulation

    New features include:

    • Histograms of block arrival frequency, for both network (inbound) and CPU\n(block validation). This is interesting to check that we're not overloading\nthe CPU block validation capacity, or network link capacity. Or alternatively\nto observe the behaviour in an overload situation if we set the block\ngeneration rate high enough.

    • Pie chart of utilisation of TCP links. This shows how small a fraction of\nlinks are being used at any one time, and shows that once the system \"warms\nup\" and is operating stably, most block delivery is ballistic.

    • Showing off the new screen layout combinators, that let us put multiple\ncharts, titles etc on screen at once and scale them to whatever screen or\nvideo resolution we like without having to tweak numbers (this example is\nscaled to fit 1080HD video resolution).

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-09-27-network", + "title": "Network Team Update", + "summary": "Network Update", + "date_modified": "2022-09-27T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + }, + { + "id": "2022-09-20-consensus", + "content_html": "
    • We proposed a fix for the performance degradation observed when running\ndistributed multi-node benchmarks in the UTxO HD feature branch. While this\nfixed the problems observed when running local benchmarks, it broke the\nThreadNet tests due to concurrency issues. Therefore, we think it is wise to\nstart redesigning the UTxO HD mempool integration.
    • We did several rounds of code review on the alternative implementation of\ndiff-sequences required by the UTxO HD feature based on the idea of\nanti-diffs. This alternative implementation is close to being merged, and the\nnext step is to integrate this to the UTxO HD branch, so that we can run\nad-hoc replaying and syncing from scratch benchmarks and compare these with\nthe baseline. The micro-benchmarks we elaborated for the alternative\nimplementation show speedups of up to 4x, so we are optimistic about the\nperformance of replaying and syncing from scratch benchmarks, however it is\nimportant to notice that due to the nature of UTxO HD we will still be\nslower than the baseline.
    • The final draft of the Genesis implementation specification is ready for\nreview.
    • We implemented a prototype for the happy path of Genesis' ChainSync Jumping\n(CSJ). The prototype is slower than the baseline, however it is not the latest\nversion of the prototype and the jump interval is very small.
    • Work on integrating Conway has stopped since\npriorities have changed.
    • We started work on benchmarking epoch-boundaries and epoch overhead\npr-4014. To this end, we made use of a modified version of our\ndb-analyser tool. We ran the new benchmarking setup using the Cardano\nmainnet chain, and we can see that block tick and application take\nsubstantially longer at epoch boundaries, although there are a couple of slots\nduring an epoch in which these computations take more than normal. We notified\nthe ledger team about these findings. We will use this modified version of\ndb-analyser to investigate the epoch overhead.

    Workstreams

    UTxO HD

    • Spent quite some time investigating the root cause of the degradation in\nperformance observed in the benchmarks. We run the make forge-stress\nbenchmarks locally in order to debug this behavior.

      • Transaction batching doesn't make a notable difference in the outcome\n(considering we are using the in-memory backend).

      • The mempool batching implementation required asynchronous transaction\nvalidation which is a violation of the LocalTxSubmission protocol\ncontract and therefore if we continued on that route, the impact would\nhave been quite big.

      • The STM logic we implemented by using a TMVar for the mempool internal\nstate was buggy and under certain circumstances it seemed to lock.\nReverting the mempool internal state to be stored in a TVar seems to\nsolve this problem.

      • The results we get after this change look almost identical to the ones\nfrom the baseline.

    • The anti-diff prototype (PR\n#3997) has\nbeen reviewed and is close to being merged.

      • A follow-up issue (issue\n#4010)\nto integrate the anti-diff prototype in the various consensus packages\nwas created. A first version of the integration exists, and all tests\npass. A next step is to get some indication of the \"real\" performance gain\nby profiling db-analyser (or cardano-node).

    Genesis

    • Final draft of the Genesis implementation specification, now up for review.

    • Local benchmark setup for parameter tuning via the happy path ChainSync\nJumping (CSJ) prototype (Issue 3987).

      • Context: Our Genesis design requires us to check in with a large (~20)\nnumber of servers periodically while syncing. These servers are offered\njump requests via the ChainSync protocol (hence the name), which they can\naccept or decline. If a peer declines, the Genesis rule allows us to\ndetermine whether a node actually has a better chain.

      • The \"happy path\" is when no peer declines a jump. We want this to have\nclose to no overhead compared to status quo, i.e. syncing without Genesis.

      • We implemented a prototype for this happy path, and are now starting to\ntest in various configurations (number of peers, latency, bandwidth) to\ntune the performance of ChainSync jumping, i.e. how complicated our logic\nof choosing when to jump needs to be.

        Example:

      • Simulated connection: 50 MBit/s, 50ms latency

      • Jump interval: 3000 slots (on the low end, could be increased to up to\n3k/f)

      • Red: baseline (1.35.3), one peer in topology file

      • Blue: Preliminary version of our prototype, with 10 peers.

        It is slower by about ~30%, but it is not the latest version of the\nprototype, and the jump interval is very small, making CSJ more of a\nbottleneck.

    Technical debt

    • Fix flakiness in ChainDB QSM tests (PR 3990).
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-09-20-consensus", + "title": "Consensus Team Update", + "summary": "- We proposed a fix for the performance degradation observed when running", + "date_modified": "2022-09-20T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2022-09-19-db-sync", + "content_html": "

    DBSync Update

    New Tag

    We created a new db-sync tag 13.0.5 which addresses shortcomings of the last\nrelease 13.0.4. It is currently under testing.\nThe Changelog is\nhere and in more details:

    • We fixed fees for tx with phase 2 failure that didn't include a total collateral field.\n1248

    • We fixed an issue that could cause db-sync to crash if a specific rollback occured.\n1247

    • DBSync will now avoid reserialising data, especially Datums, which not only slows down db-sync but\ncould result in the wrong CBOR encoding being inserted.\n1217

    • All the fixes above come with unit tests which validates the fix.

    • Added support for preprod and preview from docker. DBSync no longer needs to include the configs\nfor different networks, these are directly fetched from the cardano world.\n1254

    • We added better support from docker for the new disable options and the overall documentation.\n1260

    All the above were also backported to the master branch

    Open source

    We made the db-sync board public, so\neveryone can have access on the issues we prioritise.\nWe also added new tasks to the board, some of them could be approachable to newcomers or people who\nwant to contribute.

    Progress on tech debt and new features

    • 1223 was merged, which removes the\nforeign keys from the db schema. This opens the road to a number of optimizations.

    • An additional fix on top of the previous work was added\n1250

    • An initial version where DBSync does not rollback on restart is done here\n1266.\nThis allows db-sync to restart much faster, without the need to delete data and reinsert them. In\nthe future it can also facilitate migrations in cases where the ledger snapshots have a breaking\nchange, without the need to resync everything from genesis.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-09-19-db-sync", + "title": "DB Sync Team Update", + "summary": "DBSync Update", + "date_modified": "2022-09-19T00:00:00.000Z", + "author": { + "name": "Kostas Dermentzis", + "url": "https://github.com/kderme" + }, + "tags": [ + "db-sync" + ] + }, + { + "id": "2022-09-16-ledger", + "content_html": "

    Ledger Update

    We have been focused nearly entirely on addressing technical debt.

    • We introduced more consistent naming across eras, this time for the auxiliary data.\nSee 3032.
    • We made clear how the consumed functions differs between eras (which was a previous source of\nconfusion), and added some related support to the fledgling ledger API.\nSee 3016.
    • We added clarity and organizational consistency to the main ledger era type synonyms.\nSee 3017.
    • We removed code duplication related to the input data hashes.\nSee 3018.
    • We split up a large module into smaller components. The large module was actually causing our\nCI to time out.\nSee 3020.
    • We cleaned up stale information in our cabal files, and upgraded cabal 3.8.\nSee 3023,\n3031,\nand 3028.
    • We made consistent, standalone TxOut (transaction output) modules for every era.\nSee 3024.
    • We brought consistency to a maddening inconsistent use of type variables indicating the specific\nchoice of cryptographic primitives. In particular, all uses of crypto have been renamed to c.\nSee 3027.
    • We did a clean up of the types in the Alonzo era. In particular, we switched to more parametric\ntypes that will compose better in the future and which simplifies the constraints.\nSee 3029.
    • We consolidated some existing fragmented logic regarding how we gather the scripts needed for a\ngiven transaction. This is a much needed cleanup to prevent future mistakes.\nSee 3019.
    • We fixed a problem with our generators that was causing a fair number of our property tests to\nfail in CI.\nSee 3039.
    • We have started the work to update Plutus. This will bring support for SECP in the next major\nprotocol version, and also address a\nproblem\nthat we current have evolving the cost models.\nSee 3030.
    • We addressed a small issue that came up when integrating the conway era downstream, namely\nthe lack of some serialization instances.\nSee 3022.
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-09-16-ledger", + "title": "Ledger Team Update", + "summary": "Ledger Update", + "date_modified": "2022-09-16T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2022-09-01-ledger", + "content_html": "

    Ledger Update

    Since finishing up support for the Vasil Hardfork, the ledger team has been\nfocused on two main things: a new ledger era and technical debt.

    New minimal ledger era

    We have implemented a new ledger era named conway which is nearly identical\nto the babbage era. This has been the first time that we have been able to see\nwhat a minimal ledger era looks like. We have finished this task, modulo any\nintegration issues that might come up. The only thing that the conway era\ndoes differently from the babbage era is provide support for rotating\nthe master keys using the hardfork combinator's state translation.\nWe may end up adding features to the conway era, but it is a nice exercise\nseeing what it looks like to get a minimal ledger era supported in all the\ndownstream components.

    Addressing technical debt

    We have been addressing technical debt, mostly in an effort to make the\nrepository a more friendly code base to work in.

    • We have begun work on a ledger API, called cardano-ledger-api.
    • We have done a big re-design of the major type classes used in the ledger.\nWith hindsight on our side, we now have something much more organized and\neasier to use.
    • We have done a lot of re-naming. The names across eras are now much more\nuniform, avoid certain confusions that plagued us, and are clearer in where\nthey are from.
    • We have reduced a lot of code duplication that could lead to bugs if you\ndo not have the whole code base in your head.
    • We have added a handful of performance improvements.
    • We added type safety in a number of locations. In particular, the type of\nvalues that can be minted in a transaction no longer allow for Lovelace\nin the type, and some functions which used to handle both timelock scripts\nand plutus script now correctly enoforce at the type level that only one of\nthem can be used.
    • We made our generators so that they now produce a much richer set of\nvalid serializations. There is room within CBOR to serialize the same\ndata structure in multiple ways, and it is helpful to have the generators\nuse a wide variety.
    • We have begun re-organizing our test suites.
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-09-01-ledger", + "title": "Ledger Team Update", + "summary": "Ledger Update", + "date_modified": "2022-09-01T00:00:00.000Z", + "author": { + "name": "Jared Corduan", + "url": "https://github.com/JaredCorduan" + }, + "tags": [ + "ledger" + ] + }, + { + "id": "2022-08-31-consensus", + "content_html": "

    Executive summary

    • We did most of the heavy lifting required to integrate the Conway era.
    • We have property tests for the UTxO HD backing store API implementations. A\npossible bug was identified. Work is ongoing to make sure the property-tests\ncover all the relevant cases.
    • We implemented and benchmarked the \"anti-diff\" prototype to speed up the UTxO\nHD functionality. Results show a rough speedup of 4x to 5.5x across\nseveral scenarios. Note that: \"Data reported by tasty-bench is only of\nindicative and comparative significance.\".\nWe are investigating additional performance improvements. The \"anti-diff\"\nprototype and benchmarks are still pending code review.
    • We elaborated a draft specification for the Genesis implementation and\nChainSync jumping optimization.

    Workstreams

    Conway

    • Integration PR of the minimal Conway era (Issue #3963, PR\n#3971).
    • Discussions with Ledger revealed possible sources of confusion about which\ndata should be changed in the Conway era. As a result, a new technical debt\nissue was raised, which does not block the integration of the Conway era\n(Issue #3976).

    UTxO HD

    • Issue #3954, branch: The functionality of a\nbacking store, which is the interface to the on-disk part of ledger state in\nUTxO-HD, is tested at a high level through the OnDisk tests. However, some\nfunctionalities remain untested, e.g., reads of ranges of keys. As such, we\nhave implemented quickcheck-state-machine tests that exercise backing stores\ndirectly. The tests are reusable for different backing store implementations\nbecause the tests are implementation-agnostic: Any backing store that conforms\nto the backing store interface can be plugged into the tests. Work is still\nongoing to label/monitor the tests, such that we can verify that interesting\ncases are being tested. Furthermore, a possible bug has been identified in the\nLMDB backing store with respect to range reads, though the bug has not been\nresolved yet.

    • Issue #3946, branch, PR #3882: The\n\"anti-diff\" prototype proposes an alternative approach to keeping track of\nsequences (more specifically, FingerTrees) of diffs. These diff sequences\nare a component of the in-memory parts of the ledger state in UTxO-HD. Since\nthe consensus code often requires the cumulative diff of a sequence of diffs,\nthe current implementation \"caches\" cumulative diffs of each subtree in the\ndiff sequence. This caching allows relatively fast reconstruction of the total\ncumulative diff, but this caching proved to incur a non-negligible cost: when\nwe manipulate diff sequences through splits and appends, we force re-computing\na logarithmic number of caches. This is problematic, since we often split and\nappend in consensus: we split when we flush diffs to a backing store or when\nwe roll back blocks, and we append when pushing blocks. The new approach\nshould reduce the overhead of this caching.

      We implemented micro-benchmarks for the \"anti-diff\" prototype: we\nfirst generate a sequence of commands (Forward, Push, Flush, or\nRollback) through a simulation, after which we measure the performance of\napplying the commands to a diff sequence. In this context, Forward means\nforwarding of values through a diff, whereas Rollback means switching to\na different fork by rolling back diffs/blocks and pushing new ones.\nMoreover, we compare the performance for the two implementations: the\n\"legacy\" approach, and the anti-diff approach.

      Some preliminary results were positive, but we needed to revisit the\nbenchmark's configuration to obtain more definitive results. After a\ndiscussion with @dcoutts and the consensus team about this configuration\n(e.g., number of commands generated, choice of the security parameter k),\nthe benchmarks should now be closer to the realistic setting. The following\nconfiguration specifies the default configuration that is used in the\nbenchmarking code:

      • Number of commands generated: 10_000
      • Security parameter k: 2160
      • Number of initial backing values: 100
      • Number of key-value pairs deleted by a push: 50
      • Number of key-value pairs inserted by a push: 50
      • Number of key-value pairs forwarded by a forward: 50
      • Probability of a large (in the range [1000, 2000]) rollback: 0.05
      • Probability of a small (in the range [1, 10]) rollback: 0.95
      • Order of commands:
        • An equal number of forward and pushes.
        • 1 flush every 10 pushes.
        • 1 rollback every 100 pushes

      Moreover, we run four benchmark scenarios:

      • Default configuration
      • Without rollbacks
      • With only small rollbacks
      • Without rollbacks, larger flushes (1 flush every 100 pushes)

      How to read results

      Note: this section uses documentation from the\ntasty-bench package to\nexplain how to read the results of running our benchmarks.

      Running a benchmark scenario gives us the following (curated) output:

      ...
      AntiDiff: OK (18.27s)
      2.527 s ± 47 ms, 2.1 GB allocated, 544 MB copied, 2.2 GB peak memory, 0.23x
      LegacyDiff: OK (32.73s)
      10.829 s ± 148 ms, 6.8 GB allocated, 2.3 GB copied, 2.2 GB peak memory
      ...

      The output says that the first benchmark, which exercises the anti-diff\nprototype, was repeatedly executed for 18.27 seconds (wall-clock time),\nits predicted mean CPU time was 2.527 seconds and means of individual\nsamples do not often diverge from it further than ± 47 milliseconds\n(double standard deviation). We also configure the RTS to collect GC\nstatistics, which enables tasty-bench to estimate and report memory usage.\nThis data is reported as per RTSStats fields: allocated_bytes,\ncopied_bytes and max_mem_in_use_bytes. So, the output of the first\nbenchmark says that a total of 2.1 GB of memory was allocated, that a\ntotal of 544 MB of memory were copied, and that the peak memory in usage\nwas 2.2 GB. We read the output for the second benchmark in the same way.

      Furthermore, the benchmark compares the mean CPU times for\nboth the anti-diff and legacy approaches: In this case, the mean CPU time\nfor the anti-diff approach is ~0.23x the mean CPU time for the legacy\napproach. Conversely, the mean CPU time for the legacy approach is\n1 / 0.23 ~= 4.35x the mean CPU time for the anti-diff approach. We will\ncall 0.23x the improvement factor. We will call 4.35x the speedup.

      Note that these improvement factors (and reported results) are subject to\nnoise, randomness, the specific configuration parameters, and the whims\nof statistics. Data reported by tasty-bench is only of indicative and\ncomparative significance.

      Results

      For each of the 4 scenarios, we list the results of running the anti-diff and\nlegacy approaches 5 times. We run the benchmarks 5 times to get an indication\nof whether the results are similar across multiple runs. Furthermore, we\ncalculate the accompanying ranges (if applicable) of improvement factors and\nspeedups.

      Note also the decrease in total bytes allocated and total bytes copied for\nthe anti-diff approach compared to the legacy approach.

      Default configuration

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff2.533 s (0.23x)4.7 ms2.1 GB557 MB2.4 GB
      Run 1: LegacyDiff10.792 s162 ms6.8 GB2.3 GB2.4 GB
      Run 2: AntiDiff2.508 s (0.23x)245 ms2.1 GB515 MB2.2 GB
      Run 2: LegacyDiff10.850 s30 ms6.9 GB2.3 GB2.2 GB
      Run 3: AntiDiff2.562 s (0.23x)5.0 ms2.1 GB552 MB2.2 GB
      Run 3: LegacyDiff10.993 s149 ms6.9 GB2.3 GB2.2 GB
      Run 4: AntiDiff2.168 s (0.22x)5.3 ms1.8 GB434 MB2.0 GB
      Run 4: LegacyDiff9.976 s39 ms6.3 GB2.0 GB2.0 GB
      Run 5: AntiDiff2.527 s (0.23x)47 ms2.1 GB544 MB2.2 GB
      Run 5: LegacyDiff10.829 s148 ms6.8 GB2.3 GB2.2 GB
      • Improvement factor: [0.22, 0.23]
      • Speedup : [1 / 0.23 ~= 4.35, 1 / 0.22 ~= 4.55]

      No rollbacks

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff1.638 s (0.19x)36 ms1.4 GB181 MB2.4 GB
      Run 1: LegacyDiff8.656 s207 ms5.7 GB1.5 GB2.4 GB
      Run 2: AntiDiff1.638 s (0.19x)75 ms1.4 GB181 MB2.2 GB
      Run 2: LegacyDiff8.654 s322 ms5.7 GB1.5 GB2.2 GB
      Run 3: AntiDiff1.663 s (0.19x)74 ms1.4 GB181 MB2.2 GB
      Run 3: LegacyDiff8.799 s216 ms5.7 GB1.5 GB2.2 GB
      Run 4: AntiDiff1.645 s (0.19x)51 ms1.4 GB181 MB2.0 GB
      Run 4: LegacyDiff8.732 s261 ms5.7 GB1.5 GB2.0 GB
      Run 5: AntiDiff1.639 s (0.19x)19 ms1.4 GB181 MB2.2 GB
      Run 5: LegacyDiff8.653 s234 ms5.7 GB1.5 GB2.2 GB
      • Improvement factor: 0.19
      • Speedup : 1 / 0.19 ~= 5.25

    Only small rollbacks

    NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
    Run 1: AntiDiff1.833 s (0.18x)36 ms1.5 GB185 MB2.4 GB
    Run 1: LegacyDiff10.362 s867 ms5.8 GB1.6 GB2.4 GB
    Run 2: AntiDiff1.696 s (0.19x)30 ms1.5 GB185 MB2.2 GB
    Run 2: LegacyDiff8.822 s106 ms5.8 GB1.5 GB2.2 GB
    Run 3: AntiDiff1.702 s (0.19x)44 ms1.5 GB186 MB2.2 GB
    Run 3: LegacyDiff8.906 s147 ms5.8 GB1.5 GB2.2 GB
    Run 4: AntiDiff1.701 s (0.19x)47 ms1.5 GB185 MB2.0 GB
    Run 4: LegacyDiff8.949 s197 ms5.8 GB1.5 GB2.0 GB
    Run 5: AntiDiff1.677 s (0.19x)55 ms1.5 GB186 MB2.2 GB
    Run 5: LegacyDiff8.856 s177 ms5.8 GB1.5 GB2.2 GB
    • Improvement factor: [0.18, 0.19]

    • Speedup : [1 / 0.19 ~= 5.25, 1 / 0.18 ~= 5.55]

      No rollbacks, larger flushes (every 100 pushes)

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff1.643 s (0.25x)21 ms1.5 GB196 MB2.4 GB
      Run 1: LegacyDiff6.591 s351 ms4.0 GB1.4 GB2.4 GB
      Run 2: AntiDiff1.616 s (0.25x)47 ms1.5 GB196 MB2.2 GB
      Run 2: LegacyDiff6.520 s232 ms4.0 GB1.4 GB2.2 GB
      Run 3: AntiDiff1.640 s (0.25x)34 ms1.5 GB196 MB2.2 GB
      Run 3: LegacyDiff6.540 s150 ms4.0 GB1.4 GB2.2 GB
      Run 4: AntiDiff1.635 s (0.25x)76 ms1.5 GB196 MB2.0 GB
      Run 4: LegacyDiff6.589 s131 ms4.0 GB1.4 GB2.0 GB
      Run 5: AntiDiff1.628 s (0.25x)19 ms1.5 GB196 MB2.2 GB
      Run 5: LegacyDiff6.490 s5.9 ms4.0 GB1.4 GB2.2 GB
    • Improvement factor: 0.25

    • Speedup : 1 / 0.25 ~= 4

    Genesis

    • We elaborated a draft of the specification of the Genesis implementation and\nthe ChainSync Jumping optimization. In particular, this includes a proof\nsketch that the latter preserves liveness and safety in all cases (Issue\n3964).
      • @nfrisby's main realization during this sprint was that he had been\nfocusing so far on the case where the selected chain is an extension of\nthe intersection of our peers' ChainSync candidates.
      • This is the main case, ie an \"absorbing\" state, but it's not the only\ncase.
      • The new proof sketch begins by case splitting on that predicate, and\nthat made the sketch quite a bit easier to follow.
    • We continued working on the \"happy path\" ChainSync Jumping prototype (Issue\n3960).

    Technical debt

    • We started working on the issues required to re-enable nightly CI runs..\nNightly CI runs have far more lax time constraints, which gives the option to\nrun significantly more property tests than in our regular CI. To this end, we\nmerged a PR to easily adapt the number of tests globally (PR\n#3947).
    ", + "url": "https://updates.cardano.intersectmbo.org/2022-08-31-consensus", + "title": "Consensus Team Update", + "summary": "Executive summary", + "date_modified": "2022-08-31T00:00:00.000Z", + "author": { + "name": "Damian Nadales", + "url": "https://github.com/dnadales" + }, + "tags": [ + "consensus" + ] + }, + { + "id": "2022-08-12-network", + "content_html": "

    The networking team took an active part in the project iteration (PI) planning\nsession, see cardano-node backlog for detailed\noutcomes.

    • We started working on a detailed design / implementation plan for gossip.

    • We merged input-output-hk/ouroboros-network#3859 which\nsets the ouroboros-network repository for the single relay release.

    • We identified a bug in the network simulator, which is fixed in the\ninput-output-hk/ouroboros-network#3852.\nThe above PR was reviewed.

    • We set the tracing configuration for nodes which we deploy and fixed and\nidentified some deployment hiccups. We identified some bugs in the RT view\nwhich were registered by the maintainers.\ninput-output-hk/ouroboros-network-ops#4

    • We fixed typos in network-mux library:\ninput-output-hk/ouroboros-network#3921

    • For easy of debugging we renamed a trace point:\ninput-output-hk/ouroboros-network#3922

    • Duncan iterated on his simulation / visualisation. He also was able to\nidentify and fix a bug in the simulator. The simulation contains 50 nodes.\nDashed lines indicate and established connection, while solid lines indicate\na TCP connection with fully open TCP window.

    ", + "url": "https://updates.cardano.intersectmbo.org/2022-08-12-network", + "title": "Network Team Update", + "summary": "The networking team took an active part in the project iteration (PI) planning", + "date_modified": "2022-08-12T00:00:00.000Z", + "author": { + "name": "Marcin Szamotulski", + "url": "https://github.com/coot" + }, + "tags": [ + "network" + ] + } + ] +} \ No newline at end of file diff --git a/images/consensus/2022-11-02-csj-vs-baseline-sliced.svg b/images/consensus/2022-11-02-csj-vs-baseline-sliced.svg new file mode 100644 index 0000000000..e75d1eaf09 --- /dev/null +++ b/images/consensus/2022-11-02-csj-vs-baseline-sliced.svg @@ -0,0 +1,2041 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.5.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/consensus/2022-11-02-csj-vs-baseline.svg b/images/consensus/2022-11-02-csj-vs-baseline.svg new file mode 100644 index 0000000000..8c8eeb6606 --- /dev/null +++ b/images/consensus/2022-11-02-csj-vs-baseline.svg @@ -0,0 +1,2277 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.5.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/consensus/2022-11-16-comparing-TICKF-batch.png b/images/consensus/2022-11-16-comparing-TICKF-batch.png new file mode 100644 index 0000000000..15e1c6e0b0 Binary files /dev/null and b/images/consensus/2022-11-16-comparing-TICKF-batch.png differ diff --git a/images/consensus/2022-11-16-removed-stuttering.png b/images/consensus/2022-11-16-removed-stuttering.png new file mode 100644 index 0000000000..606656fac3 Binary files /dev/null and b/images/consensus/2022-11-16-removed-stuttering.png differ diff --git a/images/consensus/2022-12-14-ledger-ops-benchmark.png b/images/consensus/2022-12-14-ledger-ops-benchmark.png new file mode 100644 index 0000000000..69a3758ff5 Binary files /dev/null and b/images/consensus/2022-12-14-ledger-ops-benchmark.png differ diff --git a/images/consensus/2023-01-11-utxo-hd-replay-benchmarks.png b/images/consensus/2023-01-11-utxo-hd-replay-benchmarks.png new file mode 100644 index 0000000000..906827f577 Binary files /dev/null and b/images/consensus/2023-01-11-utxo-hd-replay-benchmarks.png differ diff --git a/images/consensus/2023-01-25-consensus-utxo-hd-read-and-flush-benchmarks.png b/images/consensus/2023-01-25-consensus-utxo-hd-read-and-flush-benchmarks.png new file mode 100644 index 0000000000..2e9cbe7de3 Binary files /dev/null and b/images/consensus/2023-01-25-consensus-utxo-hd-read-and-flush-benchmarks.png differ diff --git a/images/consensus/2023-Q2-beacon-graph.png b/images/consensus/2023-Q2-beacon-graph.png new file mode 100644 index 0000000000..32c77ec19f Binary files /dev/null and b/images/consensus/2023-Q2-beacon-graph.png differ diff --git a/images/consensus/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks.png b/images/consensus/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks.png new file mode 100644 index 0000000000..75c58abe23 Binary files /dev/null and b/images/consensus/2023-Q2-utxo-hd-sync-ad-hoc-benchmarks.png differ diff --git a/images/happy-path-csj-prototype-bench-1.svg b/images/happy-path-csj-prototype-bench-1.svg new file mode 100644 index 0000000000..71262d6b9f --- /dev/null +++ b/images/happy-path-csj-prototype-bench-1.svg @@ -0,0 +1,1812 @@ + + + + + + + + 2022-10-05T14:01:43.231609 + image/svg+xml + + + Matplotlib v3.5.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/happy-path-csj-prototype-bench-2.svg b/images/happy-path-csj-prototype-bench-2.svg new file mode 100644 index 0000000000..bdfae76e61 --- /dev/null +++ b/images/happy-path-csj-prototype-bench-2.svg @@ -0,0 +1,1888 @@ + + + + + + + + 2022-10-19T12:30:35.894508 + image/svg+xml + + + Matplotlib v3.5.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/happy-path-csj-prototype-prelim.svg b/images/happy-path-csj-prototype-prelim.svg new file mode 100644 index 0000000000..a35a5935f8 --- /dev/null +++ b/images/happy-path-csj-prototype-prelim.svg @@ -0,0 +1,1424 @@ + + + + + + + + 2022-09-21T14:18:47.635974 + image/svg+xml + + + Matplotlib v3.5.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/haskell-logo.png b/images/haskell-logo.png new file mode 100644 index 0000000000..97c0937482 Binary files /dev/null and b/images/haskell-logo.png differ diff --git a/images/network/2022-11-11-noticed-headers.png b/images/network/2022-11-11-noticed-headers.png new file mode 100644 index 0000000000..98f661897e Binary files /dev/null and b/images/network/2022-11-11-noticed-headers.png differ diff --git a/images/network/2023-07-06-p2p-progress.png b/images/network/2023-07-06-p2p-progress.png new file mode 100644 index 0000000000..59cde79f6a Binary files /dev/null and b/images/network/2023-07-06-p2p-progress.png differ diff --git a/images/network/2023-08-31-p2p-relays.png b/images/network/2023-08-31-p2p-relays.png new file mode 100644 index 0000000000..7298d24bed Binary files /dev/null and b/images/network/2023-08-31-p2p-relays.png differ diff --git a/images/network/2023-08-31-relay-versions.png b/images/network/2023-08-31-relay-versions.png new file mode 100644 index 0000000000..a9721ebe81 Binary files /dev/null and b/images/network/2023-08-31-relay-versions.png differ diff --git a/images/network/2023-09-14-p2p-relays.png b/images/network/2023-09-14-p2p-relays.png new file mode 100644 index 0000000000..8960e26e7e Binary files /dev/null and b/images/network/2023-09-14-p2p-relays.png differ diff --git a/images/network/2023-09-14-relay-versions.png b/images/network/2023-09-14-relay-versions.png new file mode 100644 index 0000000000..b611d86543 Binary files /dev/null and b/images/network/2023-09-14-relay-versions.png differ diff --git a/images/network/2023-10-04-p2p-relays.png b/images/network/2023-10-04-p2p-relays.png new file mode 100644 index 0000000000..76b781b81d Binary files /dev/null and b/images/network/2023-10-04-p2p-relays.png differ diff --git a/images/network/2023-10-04-relay-versions.png b/images/network/2023-10-04-relay-versions.png new file mode 100644 index 0000000000..afcec84876 Binary files /dev/null and b/images/network/2023-10-04-relay-versions.png differ diff --git a/images/network/2024-04-15-active-peers.png b/images/network/2024-04-15-active-peers.png new file mode 100644 index 0000000000..24a283ecba Binary files /dev/null and b/images/network/2024-04-15-active-peers.png differ diff --git a/images/network/2024-04-15-churn.png b/images/network/2024-04-15-churn.png new file mode 100644 index 0000000000..4a9adb715f Binary files /dev/null and b/images/network/2024-04-15-churn.png differ diff --git a/images/network/2024-04-15-established-peers.png b/images/network/2024-04-15-established-peers.png new file mode 100644 index 0000000000..fd0445844e Binary files /dev/null and b/images/network/2024-04-15-established-peers.png differ diff --git a/images/network/2024-04-15-known-peers.png b/images/network/2024-04-15-known-peers.png new file mode 100644 index 0000000000..493a9f3747 Binary files /dev/null and b/images/network/2024-04-15-known-peers.png differ diff --git a/images/p2p-relay-5.mp4 b/images/p2p-relay-5.mp4 new file mode 100644 index 0000000000..79c27bfc39 --- /dev/null +++ b/images/p2p-relay-5.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c47ba3e2aa570664b189bd12139959db071550c4efa3cadfd915193ddd4c39bd +size 86690301 diff --git a/img/doc-adoption.png b/img/doc-adoption.png new file mode 100644 index 0000000000..fe32333d9f Binary files /dev/null and b/img/doc-adoption.png differ diff --git a/img/docusaurus.png b/img/docusaurus.png new file mode 100644 index 0000000000..f458149e3c Binary files /dev/null and b/img/docusaurus.png differ diff --git a/img/favicon.ico b/img/favicon.ico new file mode 100644 index 0000000000..ec9e8ffeb4 Binary files /dev/null and b/img/favicon.ico differ diff --git a/img/logo.png b/img/logo.png new file mode 100644 index 0000000000..98007a2971 Binary files /dev/null and b/img/logo.png differ diff --git a/img/logo.svg b/img/logo.svg new file mode 100644 index 0000000000..c1895147a2 --- /dev/null +++ b/img/logo.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000000..4df95b31ab --- /dev/null +++ b/index.html @@ -0,0 +1,41 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Noon van der Silk

    High-level summary

    This week, the Hydra team made significant progress on incremental decommits +by closing the last gaps and cleaning up the specification. They collected +scenarios and prepared for incremental commits, updated dependencies for +compatibility with cardano-node 9.0.0, and continued tidying up documentation. +Work continued on an easy spin-up of the getting-started demo via +process-compose. Additionally, the team onboarded a new contributor and held +an early design meeting about payment channels and Blockfrost. They also +refined the SDK wallet idea.

    What did the team achieve?

    • Incremental decommit progress: closed last gaps, cleanup specification #1483
    • Collected scenarios and preparing for incremental commit #1484
    • Updated dependencies, compatibility cardano-node 9.0.0 #1481
    • Continued documentation tidyups
    • WIP easy spin-up of the getting-started demo via process-compose #1503
    • Onboarded new contributor
    • Early design meeting about payment channels and Blockfrost #1305
    • SDK wallet idea refinement #1509

    What's next?

    • Merge and release incremental decommit
    • Continued work on incremental commit
    • Support Hydra demo at Rare Evo
    • Have a Head open on preview to see it working through the upcoming hard fork

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released the new distribution 2428.0, which includes support for Cardano node version 9.0.0, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks by calibrating the signature parameters for mainnet, fixing a bug preventing the signature of the last block advertised as certified, optimizing a part of the artifact production that was blocking the certification, and starting removing the code reading transactions from the immutable files.

    Finally, the team started working on the certification of the Cardano stake distribution and continued redacting a CIP for the diffusion of Mithril signatures through the Cardano network.

    Low level overview

    • Released the new distribution 2428.0
    • Completed the issue Release 2428 distribution #1810
    • Completed the issue Calibrate Cardano transaction signature parameters #1814
    • Completed the issue Non blocking artifact production in aggregator #1792
    • Completed the issue Cardano transaction importer does not import the last block advertised as certified #1785
    • Completed the issue A recorded but non certified Cardano transaction creates an error in prover #1819
    • Completed the issue Signer make test command fails #1816
    • Completed the issue Document Prometheus metrics and Grafana Dahsboard for signer #1834
    • Completed the issue Explorer keeps previous Cardano transaction error #1818
    • Worked on the issue Implement signable and artifacts builders for Cardano Stake Distribution #1832
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Cleanup Immutable File in Cardano transaction #1825
    • Worked on the issue Upgrade testing-sanchonet for respin with Cardano 9.0.0 #1822

    · One min read
    Damian Nadales

    High level summary

    • Assisted with Node release 9.0:
      • Performed security audits, engaged with other teams, implemented improvements, and released Consensus packages.
    • We are now running additional NoThunks tests, which help us safeguard against memory leaks in the node.
    • Reviewed Milestone 13 of Genesis, which improves the code documentation of Genesis, and implements some fixes and optimizations.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team worked on supporting Cardano node version 9.0.0 and started working on a new Mithril distribution. They also continued implementing the certification of Cardano transactions in Mithril networks. They fixed some bugs blocking the REST API during transactions import, causing resource exhaustion on the aggregator Cardano node, and creating some exceptions in the explorer. They also kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

    Finally, the team worked on enhancing the artifact production in the aggregator to avoid blocking the certification and finalized enforcing the linting of all the files in the repository with the CI.

    Low level overview

    • Completed the issue Upgrade Cardano node 9.0.0 #1787
    • Completed the issue Aggregator/Signer preload transactions when Cardano transactions certification is not activated #1782
    • Completed the issue Explorer does not handle invalid transaction hashes #1784
    • Completed the issue Cardano transactions import blocks aggregator and signer #1797
    • Completed the issue Resource exhausted on Cardano node socket #1803
    • Completed the issue Certificate pending route overwhelms the Cardano node in aggregator #1804
    • Completed the issue Optimize Cardano transaction prover performances with parallelization #1756
    • Completed the issue Lint Markdown/JavaScript files in repository #1754
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Release 2428 distribution #1810
    • Worked on the issue Non blocking artifact production in aggregator #1792
    • Worked on the issue Cardano transaction importer does not import the last block advertised as certified #1785

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 65

    Karl Knutsson (CF) fixed a bug which prevented a node using bootstrap peers +to sync using them, for a more detailed description see ouroboros-network#4899.

    Earlier this year we fixed bugs in IOSimPOR which prevent us from using it in +ouroboros-network (io-sim#153, io-sim#159); since +ouroboros-network#4872 was merged we have a large number of tests that are +using IOSimPOR's schedule exploration. In the last sprint we fixed +some bugs discovered by IOSimPOR in ouroboros-network:

    We continued working on new tx-submission logic: ouroboros-network#3311 as +well as on Genesis. The work on Genesis is split in a few PRs which are +currently in review process:

    • Big Ledger Peer Targets for Genesis - ouroboros-network#4832
    • Feed peer selection governor with big ledger peers obtained from a snapshot - ouroboros-network#4850
    • Introduction of serialization instances in support of ledger peer snapshot - ouroboros-network#4851
    • Verification of big ledger peer snapshot file - [ouroboros-network#4888]

    High-level overview of sprint 64

    Karl Knutsson (CF) modified peer sharing behaviour to not share peers whith +which connections failed, see ouroboros-network#4883 for more details.

    We fixed inbound governor counters tracer, see ouroboros-network#4885.

    + + + + \ No newline at end of file diff --git a/markdown-page/index.html b/markdown-page/index.html new file mode 100644 index 0000000000..0a06eed9b6 --- /dev/null +++ b/markdown-page/index.html @@ -0,0 +1,26 @@ + + + + + +Markdown page example | Cardano Development Updates + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/p2p-relay3.mp4 b/p2p-relay3.mp4 new file mode 100644 index 0000000000..ea8958a997 --- /dev/null +++ b/p2p-relay3.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fdf115e9488b153cec95afca51015740fc394722e82937d06eec7387d95e058 +size 67109177 diff --git a/page/10/index.html b/page/10/index.html new file mode 100644 index 0000000000..228305a14b --- /dev/null +++ b/page/10/index.html @@ -0,0 +1,50 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling the signature and proof generation for mainnet with the compression of the transaction Merkle tree by using sub-Merkle trees of transactions by block ranges. They also made progress in designing low latency certification, investigated a memory leak in the signature/proof process, and worked on retrieving the tip of the chain with the Pallas chain observer. The team almost completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they completed the refactoring of the database providers of the aggregator and re-span the testing-sanchonet network following the release of Cardano node 8.10.0-pre.

    Finally, the team made some optimizations on the compilation of their pre-built binaries to fix panics occurring on CPUs without ADX instructions, and created a network configuration file on the repository to facilitate automatic compatibility checks.

    Low level overview

    • Completed the issue Create file with Cardano minimum versions in repository #1615
    • Completed the issue Deploy testing-mainnet network #1617
    • Completed the issue Refactor database module in aggregator #1583
    • Completed the issue Client deprecation notice should be written in JSON when --json option is used #1616
    • Completed the issue Activate portable feature in mithril-stm by default #1613
    • Completed the issue Prepare testing-sanchonet for respin with Cardano 8.10 #1618
    • Worked on the issue Store Block Range Merkle roots in signer and aggregator databases #1633
    • Worked on the issue Memory leak in Cardano transactions signature/proof #1629
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632

    · 2 min read
    Carlos LopezDeLara

    2024-04-01 - 2024-04-15

    High level summary

    Adding support for script based committee members certificates: authorization and resignation. It is now possible to convert extended signing Drep and Committee keys to a Shelley-format key. Improvements to Conway era tests. Use threshold instead of quorum for committee members.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team fixed a bug in the smoke test and refactored to allow network functions to distinguish between inbound and outbound. The team also prepared a cardano-api 8.44 branch for cardano-node 8.10 once it gets released. They also contributed to the cardano-ledger-api by undeprecating and exposing redeemerPointer.

    What did the team achieve this week

    • Fix FaucetFailedToBuildTx in smoke test #1384
    • Refactoring to allow network functions to distinguish between inbound and outbound
    • Prepared a cardano-api 8.44 branch, but got blocked 👇
    • Undeprecate redeemerPointer and expose it in cardano-ledger-api cardano-ledger#4259

    What are the goals of next week

    • Complete new /commit endpoint interface #1350
    • Refactor to allow NodeLogic to pass through connection messages, to unblock 👇
    • Use versioned handshake when connecting hydra-nodes #1010
    • Test all combinations of decrement/close/fanout for #1057
    • Meet with tech writers about the landing page

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Private chain for Voltaire team was respun for cardano-node 8.10.0-pre +pre-release and re-hard forked into Conway era.

    • Sanchonet was respun for cardano-node 8.10.0-pre pre-release and re-hard +forked into Conway era.

    • Cardano-node 8.10.0-pre was also deployed to one-third of IOGs preprod +environment nodes and two-thirds of IOGs preview environment nodes.

    Lower level summary

    Cardano-parts

    • Sets cardano-node|cli-ng to 8.10.0-pre, dbsync-ng to sancho-4.1.0; bumps +nixpkgs (23.11) and nixpkgs-unstable; improves, adds new and fixes a number +of just recipes; allows repo custom recipes to be kept as a separate import +for easy justfile maintenance; refactors ip module checking into its own +nixosModule and adds an extra abort option for safety. Much more detail is +available in the PR description: +cardano-parts-pull-36

    Cardano-mainnet

    • Bumps cardano-parts for a number of recipe additions, improvements, fixes. +Fixes blockperf dnsmasq looksups and adjusts colmena topology code to account +for intra-cluster localRoots now defaulting to trustable true and implements +all updates in cardano-parts PR#36. See the PR description for more details: +cardano-mainnet-pull-11

    Cardano-perf

    • Add a new perf-ssd machine class and deployment for ssd related performance +testing and benchmarking. Add new just recipes and cluster resource tagging. +cardano-perf-compare

    Cardano-playground

    • Bumps cardano-parts for a number of recipe additions, improvements, fixes, +and node 8.10.0-pre. Respins private chain and sanchonet for node 8.10.0-pre +with corresponding book updates and implements all updates in cardano-parts +PR#36. See the PR description for more details: +cardano-playground-pull-20

    Iohk-nix

    • WIP: Prepares block producer configurations to accomodate upcoming peerSharing default change: +iohk-nix-pull-575

    • Provides iohk-nix updates for node 8.10: +iohk-nix-pull-576

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Most notable progress is on testing. In particular data generation for conformance test +has been improved and the implementation organized. Addition of various Conway related +unit and property tests.

    Conway

    • pull-4236 - Fix typo in ToJSON of ConwayGovState
    • pull-4250 - Add some ToJSON instances needed by cardano-node

    Testing

    • pull-4221 - Fix a NoThunks test failure on nightly builds
    • pull-4214 - Fix estimateMinFeeTx w/ bootstrap test
    • pull-4189 - Imptests - treasury withdrawals
    • pull-4207 - Added tests from a bug report
    • pull-4238 - Imptests: ParameterChange affects ratification for in-flight proposals
    • pull-4243 - Convert small-steps testsuite to Hspec
    • pull-4248 - Fix withdrawals test data generation in EnactSpec
    • pull-4212 - Update and reorganize conformance tests
    • pull-4242 - Added UnitTestTools and IncrementalStakeTest

    Infrastructure and releasing

    Low level summary

    + + + + \ No newline at end of file diff --git a/page/11/index.html b/page/11/index.html new file mode 100644 index 0000000000..5c89473eb0 --- /dev/null +++ b/page/11/index.html @@ -0,0 +1,28 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed the incremental storage of transactions, activated the signature of the transactions on the testing-preview network, and prepared a new network to test the scaling on mainnet data. The team also made progress on a prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they worked on refactoring the database providers of the aggregator.

    Finally, the team delivered a community requested feature that displays the minimum versions of the Cardano node that the signer supports in a machine-readable format. They also provided a manual setup guide for the relay in the SPO user guide.

    Low level overview

    • Completed the issue Implement incremental storage of Cardano transactions in signer/aggregator #1591
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue Refactor database module in aggregator #1583
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Create file with Cardano minimum versions in repository #1615
    • Worked on the issue Deploy testing-mainnet network #1617
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Completed the issue Signer metrics server displays confusing log message #1620

    · One min read
    Daniel Firth

    High-level summary

    This week, the Hydra team released hydra 0.16.0, which supports cardano-node 8.9.0 +and can interpret conway blocks on the cardano-node. We have also updated some hydra +clients to be compatible with the new hydra api format, including hydraw and kupo.

    What did the team achieve this week

    • Update our head and hydraw instance to master (a release candidate)
    • Release 0.16.0 (without incremental decommits)
    • Reproduce close > contest > contest scenarios using stateful testing
    • Have end-to-end scenarios working for the improved /commit endpoint

    What are the goals of next week

    • Complete the improved /commit endpoint to unblock users
    • Potentially release 0.17.0 (with improved /commit endpoint)
    • Wrap up the incremental decommit work including the decommit action into the new TxTrace tests
    • Use Versioned Ouroboros protocol for handshaking between nodes.
    • Update to cardano-api-8.44.

    · One min read
    Damian Nadales

    High level summary

    • Made the LocalTxMonitor HasTx cross-era behavior less surprising.
    • Finalized the tests in ouroboros-consensus for the UTXO-HD branch, except the mempool-parallel test which is still failing sometimes.
    • Fixed an upstream complication in quickcheck-state-machine related to Parallel state machines which should allow us for an easier and more understandable setup of the parallel mempool tests.
    • Drafted parallel state machine testing infrastructure for quickcheck-dynamic. Eventually could be used to replace the QSM infra for mempool parallel tests.
    • Cleaned up the Cardano.API.LedgerState module, required for UTXO-HD integration.
    • We have been working on Node release 8.10. The changes upstream are integrated all the way to Node. Tests and benchmarks are pending. The versions of Consensus, Ledger, and Networking are released, and we will focus next on releasing CLI, API, and finally Node.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed the implementation of a more versatile beaconing mechanism, worked on implementing incremental storage of transactions, and fixed the bug in the block parser that prevented some Conway transactions from being signed. Additionally, they continued working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.

    Finally, they enhanced the internal storage of data on the test aggregator server and addressed a source of flakiness in the CI end-to-end test.

    Low level overview

    • Worked on the issue Implement incremental storage of Cardano transactions in signer/aggregator #1591
    • Completed the issue Support multiple beacon types in signer/aggregator #1562
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Completed the issue Provide fake aggregator data in an aggregated form #1594
    • Completed the issue Some transactions are not signed in testing-sanchonet #1577
    • Completed the issue End to end tests are flaky in CI #1558
    • Completed the issue npm publication fails in the release workflow #1595
    • Completed the issue Add indexes on foreign keys of SQLite stores #1603

    · 2 min read
    Carlos LopezDeLara

    2024-03-16 - 2024-03-30

    High level summary

    Adding support for script based committee and dreps. This includes queries and using script as arguments instead of keys on various command.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    + + + + \ No newline at end of file diff --git a/page/12/index.html b/page/12/index.html new file mode 100644 index 0000000000..38b5b630ef --- /dev/null +++ b/page/12/index.html @@ -0,0 +1,62 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.9.1 is now deployed to all environments.

    • The legacy IOG mainnet metadata server has been retired with CF now providing +metadata server services going forward.

    • Cardano-parts PR#35, merged and linked below, offers ip information +integration into nixosConfiguration modules as well as template-diff and +template-patch recipes for easier upgrades going forward.

    Lower level summary

    Capkgs

    • Adds a shortRev suffix to package names, fixes an rclone recipe, fixes a CI +push action, defaults to recursively dereferenced object hashes, cleans up +reference patterns. See the PR description for more details: +capkgs-pull-2

    Cardano-mainnet

    • Bumps to cardano-node 8.9.1 and deploys all machines, makes ip information +available in nixosCfgs, adds new expected machine alerts, tunes snapshot +alerts and implements all updates in cardano-parts PR#35. See the PR +description for more details: +cardano-mainnet-pull-10

    Cardano-ops

    Cardano-parts

    • Upgrades cardano-node to 8.9.1 for both release and pre-release, integrates +machine ip information into nixosConfigurations, enables /etc/hosts file +usage in cardano-node topology, enhances cardano-node topology producer +generation with customizable address types, introduces template patching +recipes for easier cardano-parts updates to existing clusters. Much more +detail is available in the PR description: +cardano-parts-pull-35

    Cardano-playground

    • Bumps to cardano-node 8.9.1 and deploys all envs, rotates KES keys in most +envs, makes ip information available in nixosCfgs and implements all updates +in cardano-parts PR#35. See the PR description for more details: +cardano-playground-pull-18

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team conducted the monthly review meeting and investigated +a broken head situation. The team slightly improved conway forward compatibility +in explorer / hydra-node, enhanced hydra-cluster --devnet which allows e2e +testing of kupo, extended smoke test to also include committing ADA into the +head, documented the anticipated behavior of incremental decommits, and added +decommits to the tutorial.

    What did the team achieve this week

    • Conducted the monthly review meeting (link to recording already?)
    • Investigated a broken head situation #1374
    • Slightly improved conway forward compatibility in explorer / hydra-node #1373
    • Busy hydra-cluster --devnet sandbox which allows e2e testing of kupo #1378
    • Extended smoke test to also include committing ADA into the head #1377
    • Documented the anticipated behavior of incremental decommits and added decommits to tutorial
    • Another write-up of how the incremental commit/decommit could work (without needing merkle trees or L2/L1 interleaving) on this issue

    What are the goals of next week

    • Complete the written monthly report
    • Update our head and hydraw instance to master (a release candidate)
    • Complete the improved /commit endpoint to unblock users
    • Release 0.16.0 (likely without incremental decommits)
    • Reproduce close > contest > contest scenarios using stateful testing

    · One min read
    Alexey Kuleshevich

    High level summary

    We continued focusing on adding tests and improving the test frameworks, including the quality of the generated data used in tests.

    Low level summary

    Conway

    • pull-4205 - Disable CC ratification when number of members is below ppCommitteeMinSize
    • pull-4169 - Add GovInfoEvent and add event testing capabilities to ImpTest
    • pull-4208 - Remove missingScriptsSymmetricDifference

    Testing

    • pull-4121 - Newconstraints phase3, Add newtypes: Size, SizeSpec and class Sized.
    • pull-4197 - add unsafeMkProposals to be used for testing
    • pull-4200 - Fix prop_GOV so that it runs again
    • pull-4216 - improve the GOV generator to generate more interesting signals

    Improvements

    Releasing

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released a new Mithril distribution 2412.0. This release includes several critical updates and enhancements, such as support for the Prometheus metrics endpoint in signer, deprecation of the snapshot command in the client CLI, full Pallas-based implementation of the chain observer, and support for Cardano node v.8.9.0.

    The team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, kept implementing a more versatile beaconing mechanism, reducing the latency of transactions signature, and continued investigating a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they started working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.

    Finally, the team completed the implementation of some community-requested features to verify the output folder structure made by the client, and kept investigating a source of flakiness in the CI end-to-end test.

    Low level overview

    • Released the new distribution 2412.0
    • Publication of a dev blog post about the Mithril signer Prometheus endpoint release
    • Publication of a dev blog post about the Mithril client CLI snapshot command deprecation
    • Completed the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Completed the issue Do not require the mithril client to create the DB directory #1572
    • Worked on the issue Support multiple beacon types in signer/aggregator #1562
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue Provide fake aggregator data in an aggregated form #1594
    • Worked on the issue Some transactions are not signed in testing-sanchonet #1577
    • Worked on the issue End to end tests are flaky in CI #1558

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: Release benchmarks for 8.9.1 have been performed and analysed.
    • Development: We've implemented a benchmarking setup for UTxO-HD's LMDB (on-disk) backend.
    • Workbench: The now modular, nix-based genesis creation has been merged to master; DRep delegation and integration of a new cardano-cli command are ongoing.
    • Tracing: Benchmarking the new handle registry feature in cardano-tracer is complete; quality-of-life improvements to Prometheus output.
    • UTxO Growth: We've adjusted our framework to support running UTxO scaling benchmarks on both a single node and a cluster.
    • Nomad cluster: new multi-cluster support with the capability to quickly adjust to changes in deployed hardware

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.9.1. Comparing with release 8.9.0, we could not detect any performance risks for that version.

    Development

    In context of UTxO scaling, we want to assess the feasability of the current on-disk solution (which is LMDB) of a UTxO-HD enabled node. Using that, the UTxO set will be kept +in live tables and snapshots on disk, significantly reducing memory requirements.

    We've implemented a benchmark setting, and a node service configuration, supporting direct disk access to a dedicated device which can be initialized with optimized +file system and mount settings. It's purpose is to serve as storage for the highly performance-critical disk I/O of the LMDB component.

    Workbench

    Our automation for creating all flavours of geneses has seen cleanup and refactoring - which has been merged to master. It can now use a more principled, and rigorously checked, modular approach +to define, create and cache the desired genesis files.

    Working on integrating new cardano-cli functionality in our automation is ongoing. The performance workbench will support a different, and updated, CLI command which will allow injection of DRep delegations into genesis.

    Tracing

    Benchmarking cardano-tracer's new handle registry feature has been performed and evaluated. We're satisfied with seeing clear performance improvements along with cleaner code, and much better test coverage. +Especially allocation rate and number of garbage collections (GC) could be significantly reduced, along with the CPU time required for performing GCs. This will allow for higher trace message throughput given +identiacal system resources - plus less system calls issued to the OS in the process.

    Furthermore, the new tracing system is getting improvements for its Prometheus output - like providing version numbers as metrics, or annotating metrics with their type - enhancing the output's overall utility.

    UTxO Growth

    The performance workbench now supports profiles aimed at simulating UTxO growth both for a single node and an entire cluster. Additionally, simulating different +RAM sizes in combination with specific UTxO set sizes is supported. For a single block producing node, the focus is on quick turnaround when running +a benchmark, gaining insight into the node's RAM usage and possible impact on the forging loop.

    The cluster profiles enable capturing block diffusion metrics as well, however they require a much longer runtime. We can now successfully benchmark the node's behaviour +when dealing with UTxO set sizes 4x - 5x of current mainnet, as well as a possible change in behaviour when operating close to phsyical RAM limit due to that.

    Nomad cluster

    Our backend now supports allocating and deploying Nomad jobs for multiple clusters simultaneously - all while keeping existing automations operational. We've taken special precautions +a cluster, as seen by the backend, can be efficiently and easily modified to reflect newly deployed, or changed, hardware. Additionally, we've added support for host volumes inside a Nomad +allocation - which will be needed for benchmarking UTxO-HD's on-disk solution.

    + + + + \ No newline at end of file diff --git a/page/13/index.html b/page/13/index.html new file mode 100644 index 0000000000..70312f261b --- /dev/null +++ b/page/13/index.html @@ -0,0 +1,51 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team restored test compatibility with all networks, reviewed and merged streaming plugins contributed by SundaeLabs. The team also fixed tutorial instructions for downloading the latest cardano-node, fixed the observed contesters bug, prepared a PRs for downstream clients to use the new API format for transactions (preparing the release with this breaking change). Finally, they also recorded a walkthrough video on how the hydra project is run: https://www.youtube.com/watch?v=JGUeO7A6mMU

    What did the team achieve this week

    • Restored compatibility with all networks #1355.
    • Reviewed and merged streaming plugins (only missing a how-to) #1325.
    • Fixed tutorial instructions for downloading cardano-node 8.9.0 #1367.
    • Fixed the observed contesters bug #1266.
    • Prepared a PR for Kupo using new Hydra transaction format kupo#166.
    • Recorded a walkthrough on how the hydra project is run (uncut) https://www.youtube.com/watch?v=JGUeO7A6mMU.

    What are the goals of next week

    • Conduct the monthly review meeting
    • Improve the /commit endpoint to unblock users
    • Stateful testing of transaction traces to verify corner cases for +incremental decommit
    • Release 0.16.0

    · One min read
    Damian Nadales

    High level summary

    • Merged the alternative fs-api interface for I/O using user-supplied buffers. This feature is important because it defines lower-level primitives for the filesystem API, which opens op avenues for more use cases and more efficient I/O operations (for instance when implementing lsm-tree, which is part of our efforts to move the ledger state to disk). This feature has not been released yet.
    • Implemented new diffusion pipelining criterion .
    • Released Consensus packages containing backports for Node 8.9.1.
    • Focused on fixing the tests for ouroboros-consensus in the UTXO-HD branch. Work is ongoing.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed UI improvements for the explorer, provided metadata about the point of the chain used during the verification process, and investigated a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they began prototyping the implementation of a more versatile beaconing mechanism to sign transactions with low latency.

    Finally, the team started implementing some community-requested features to verify the output folder structure made by the client, and fixed a source of flakiness in the CI end-to-end test.

    Low level overview

    • Completed the issue Upgrade Cardano node to 8.9.0 #1570
    • Completed the issue Explorer improvements for Cardano transactions #1554
    • Completed the issue Refactor the Cardano transactions parser with pallas-hardano #1557
    • Completed the issue Provide latest immutable file number with certified transactions in client #1536
    • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Worked on the issue Support multiple beacon types in signer/aggregator #1562
    • Worked on the issue Do not require the mithril client to create the DB directory #1572
    • Worked on the issue Some transactions are not signed in testing-sanchonet #1577
    • Worked on the issue End to end tests are flaky in CI #1558
    • Worked on the issue P2P threat modeling and risk analysis #1350

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 57

    We released cardano-node-8.9.0 (which includes +ouroboros-newtork-0.12.0.0). This release contains the following network +upgrades:

    Soon we will release [cardano-node-8.9.1] (which includes +ouroboros-network-0.12.0.0). This release will contain:

    • Peer sharing improvements & fixes. Contributed and tested by Karl Knutsson CF.
    • cardano-ping updates to support NodeToNode_V13 & peer sharing.
    • Some smaller maintenance changes.

    The list of network features included in ouroboros-network-0.12.0.0 and +ouroboros-network-0.13.0.0 can be found here.

    We also continued working on tx-submission, ouroboros-network#3311. Mostly +working on the pure internal API for decision-making and testing it with +property-based tests. The next step is to get all the information needed to run +the decision logic in an efficient way and later write a mini-protocol client +which is using the new API and testing it.

    We also started working on thing to finalise the Genesis support from the +network. We have a PR under review, ouroboros-network#4832. We also started +to investigate how to support big ledger peer snapshots. This requires changes +in the topology file as well as cardano-node & ouroboros-network to +understand the snapshots; and on the other hand creation of such snapshots by +cardano-cli.

    Low-level summary

    This time everything was high-level, 😉.

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team worked on aligning the specification with the current +incremental decommit implementation, added decommit to model-based tests and +also discussed the incremental commit protocol extension with researchers. The +team also updated to cardano-api 8.40 and tests against cardano-node 8.9.0, +which unblocked a possible release and re-enabled smoke tests on public +networks. They also groomed a new /commit endpoint interface from a user +discussion and discussed restructuring of the Hydra documentation. The team also +prepared a Conway-supporting hydra-node on branch lc/conway-support for +early adopters (Hi @Juantxu and @ash 👋). Some internal refactoring prepared for +upcoming streaming plugins by SundaeLabs and minor fixes to the TUI and +hydra-explorer rounded off the week.

    What did the team achieve this week

    • Aligned specification with current incremental decommit implementation and added Decommit to model based tests.
    • Discussed and explored further on incremental commits with researchers.
    • Refactored Event -> Input #1348 to prepare for streaming plugins #1325.
    • Minor fixes to the TUI and hydra-explorer clients.
    • Updated to cardano-node 8.9.0 and cardano-api 8.40 - this unblocked a possible release and re-enabled smoke tests on public networks.
    • Groomed new /commit endpoint interface #1350 from a user discussion #1337.
    • Discussed restructuring of the Hydra documentation #1349.
    • Prepared a Conway-supporting hydra-node on branch lc/conway-support #1178 (will be merged only after the hard-fork).

    What are the goals of next week

    • Prepare a PR for Kupo using new Hydra transaction format (to prepare for 0.16.0 release)
    • Review and merge streaming plugins #1325
    • Improve the /commit endpoint to unblock users
    • Test corner cases of incremental decommit transaction traces
    + + + + \ No newline at end of file diff --git a/page/14/index.html b/page/14/index.html new file mode 100644 index 0000000000..3aeab84cd7 --- /dev/null +++ b/page/14/index.html @@ -0,0 +1,57 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Carlos LopezDeLara

    2024-03-01 - 2024-03-15

    High level summary

    • cardano-cli: Focus is on testing Conway features. Several improvements to create-testnet-data command, useful for creating/deploying local clusters for testing. Enable parallel execution of tests.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.9.0 is now deployed to all environments.

    • A new profile-cardano-db-sync-snapshots nixosModule is available for +snapshotting dbsync state.

    Lower level summary

    Cardano-mainnet

    • Updates cardano node and cli pre-release (-ng) to 8.9.0. Adds a new +cardano-db-sync snapshots server. Bumps mithril and enhances mithril +usability with IOG trusted pool signature verification for clients and +mithril verifier service for signers. Adds miscellaneous other small +improvements, bug fixes and tuning. See the pull request description for +more details: +cardano-mainnet-pull-8

    Cardano-node

    • Adds nixos service and topology updates related to cardano-node 8.9.0 +release: +cardano-node-compare

    Cardano-ops

    • Bumps to cardano-node 8.9.0, fixes metadata server module, removes the legacy +snapshots server: +cardano-ops-compare

    Cardano-parts

    • Updates cardano node and cli pre-release (-ng) to 8.9.0 and enables new +bootstrapPeers features and compatibility in the topology functions. Bumps +mithril and enhances mithril usability with IOG trusted pool signature +verification for clients, mithril verifier service for signers, mithril +capability for process-compose and node entrypoint jobs. Adds miscellaneous +other small improvements, bug fixes and tuning. See the pull request +description for more details: +cardano-parts-pull-34

    Cardano-playground

    • Updates cardano node and cli pre-release (-ng) to 8.9.0. Bumps mithril and +enhances mithril usability with IOG trusted pool signature verification for +clients, mithril verifier service for signers, mithril capability for +process-compose and node entrypoint jobs. Adds miscellaneous other small +improvements, bug fixes and tuning. See the pull request description for +more details: +cardano-playground-pull-18

    Govtool

    • Fixes a coalesce function sql query bug in the govtool backend: +govtool-commit

    Iohk-nix

    • Adds support for bootstrap peers and sanchonet mithril configuration: +iohk-nix-pull-574

    Sanchonet-demo

    • Bumps cardano-parts for cardano-node 8.9.0 and brings the justfile demo +recipes up to 8.9.0 compatibility: +sanchonet-demo-compare

    · 3 min read
    Alexey Kuleshevich

    High level summary

    Focus has been on testing: adding tests and improving our testing framework to make it easier to write tests for various Conway features. +We also did some cleanup and reorganisation of code, to make it more manageable and easier to release. +We have started work on Hardfork Initiation: support for intra-era hardfork initiation and necessary updates the SPO stake distribution calculation.

    Low level summary

    Conway

    • pull-4140 - Intra era hardfork initiation
    • pull-4154 - SPO stake distr calc for HardForkInitiation
    • pull-4150 - Add ConwayUtxosPredFailure
    • pull-4162 - Add ConwayDRepIncorrectRefund and tests for GovCert
    • pull-4112 - Fail when conway features are present in transactions that use Plutus v1/v2
    • pull-4164 - Change hot credential representation in CommitteeState
    • pull-4178 - Remove code repetition in Conway era CDDL

    Testing

    • pull-4096 - Add a collection of test Plutus scripts for use in ImpTests
    • pull-4144 - Add imptests for delaying actions enactment
    • pull-4104 - Governance policy tests
    • pull-4123 - Add the ability to do constraints over trees in constrained-generators
    • pull-4163 - Reorganise GovSpec, add GovCertSpec
    • pull-4152 - Add extra type-safety to ensure that all predicate failures have roundtrip tests
    • pull-4172 - Add imptests for some more GOV predicate failures
    • pull-4139 - Add extra time from 1 sec to 2 sec for prop_soundness test.
    • pull-4173 - Update profiling instructions
    • pull-4177 - Plutusv3 initialization tests
    • pull-4155 - Fix nightly build failures

    Improvements

    • pull-4141 - Add boom placeholder
    • pull-4157 - Split Conway governance
    • pull-4188 - Simplify implementation of ToJSON1 of ListMap
    • pull-4129 - Modify PParams to use similar naming to ProtocolParams in cardano-api
    • pull-4160 - Make shelley TxWits consistent with other eras
    • pull-4168 - Add missing InjectFailure instances for ConwayUtxosPredFailure
    • pull-4086 - Change applySTS to return NonEmpty (PredicateFailure s)
    • pull-4176 - Add CARDANO_MAINNET_MIRROR to Nix shell
    • pull-4174 - Convert small-steps-test into a sublibrary
    • pull-4159 - Shelley rules cleanup

    Specification

    • pull-4042 - Fix the prose being inconsistent with the figure
    • pull-4151 - Fix an issue with txinfo and unusual notation in Babbage UTXO rule

    Releasing

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the adaptation of the Mithril explorer to support Cardano transaction verification, kept improving its UI, fixed the bug that prevented the signature of some Conway era transactions, implemented a more robust transactions parser, and started providing metadata about the point of the chain used during the verification process. Additionally, they have completed the optimization of the communications of the Mithril nodes and the Cardano node with the finalization of the Pallas chain observer.

    Finally, the team enhanced the handling of logs in the CLI of the Mithril nodes and investigated some remaining flakiness in the end-to-end test in the CI.

    Low level overview

    • Completed the issue Output CLIs logs to stderr #1515
    • Completed the issue Implement Cardano Transactions in explorer #1497
    • Completed the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue npm publish fails on latest when next exists #1531
    • Completed the issue Cardano transactions are not all signed in testing-sanchonet #1537
    • Completed the issue Enhance www demonstration in mithril-client-wasm #1552
    • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Worked on the issue Provide latest immutable file number with certified Cardano transactions in client #1536
    • Worked on the issue Explorer improvements Cardano transactions #1554
    • Worked on the issue Refactor the Cardano transactions parser with pallas-hardano #1557
    • Worked on the issue End to end tests are flaky in CI #1558
    • Worked on the issue P2P threat modeling and risk analysis #1350

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has been working on a new library cardano-api-classy containing type class instances for era witnesses and also switched nix code to use flake-parts. They also further improved the Hydra Head [explorer](http://explorer.hydra.family) UI. The team also improved error reporting on integration tests and refactored the outcome algebra in the hydra-node protocol logic. Finally, they reviewed the incremental decommit specification with researchers. Meanwhile, SundeaLabs already implemented first UDP and Kinesis event sinks based on the EventSource / EventSink refactoring.

    What did the team achieve this week

    • New library cardano-api-classy containing type class instances for era witnesses.
    • Switched the nix code to use flake-parts.
    • Completed another increment on the head explorer UI #1333.
    • Improved error reporting on integration tests #1335.
    • Refactored the outcome algebra in the hydra-node protocol logic #1340.
    • Reviewed incremental decommit specification with researchers.
    • SundaeLabs implemented first UDP and Kinesis event sinks based on #1267.

    What are the goals of next week

    • Prepare #1178 on a branch for users to try out Conway on hydra.
    • Align specification with incremental decommit implementation
    • Improve MTB in terms of new Decommit input
    • Prepare a PR for Kupo using new Hydra transaction format
    • Spike on literate Agda specification pdf
    + + + + \ No newline at end of file diff --git a/page/15/index.html b/page/15/index.html new file mode 100644 index 0000000000..8cbd92f726 --- /dev/null +++ b/page/15/index.html @@ -0,0 +1,58 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 5 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed release benchmarks for Node 8.9.0. Additionally, we benchmarked different GC settings for cardano-node.
    • Development: Ongoing work on the reporting pipeline and high-level profile definitions.
    • Workbench: In conjunction with DRep delegations in genesis, we're working on adjustments to a new cardano-cli command.
    • Tracing: Test coverage for the new handle registry feature in cardano-tracer is complete.
    • UTxO Growth: Currently, we're developing a series of benchmarks targeting performance implications of increased UTxO set size.
    • Nomad cluster: Disk storage safety net; better admin access to Nomad nodes; basic backend support for more than 1 cluster; new latency service.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.9.0. Initially, we identified a performance regression in connection to ledger snapshots. This has been addressed very swiftly. +Having re-run the fixed version, we could detect no performance risks in comparison with 8.7.2 / 8.7.3.

    In an additional set of benchmarks, we targeted the garbage collector (GC) settings that cardano-node is built with by default. Specifically, we compared these (copying, sequential GC) as a baseline +to using the parallel GC, the compacting GC and the non-moving GC - all of which are supported by GHC's runtime system. As GC always is a trade-off between space and time (and as a consequence, responsiveness); +we could measure the parallel GC offering a slight increase in responsiveness at the cost of delaying some evaluations - which is suboptimal for a block forger. The compacting GC could clearly +achieve a smaller RAM footprint, but only at the cost of increased CPU usage - and clearly worsened responsiveness. The non-moving GC could greatly enhance responsiveness - but increased the RAM footprint tremendously, as +well as introduced delays in the forging loop. In conclusion: the existing default is still the best choice by far for cardano-node - validated both on GHC8.10.7 and GHC9.6.3.

    Development

    The work on moving benchmark profile, and genesis, definitions out of the bash scripting / JSON data transformation space is still ongoing. Type safety and a test suite for those tasks +will allow for a much more principled approach.

    The implementation of additional rendering formats and report templates for our reporting pipeline has been completed; it is currently in testing and validation phase.

    Workbench

    We're working on integrating new cardano-cli functionality in our automations. Injecting DRep delegations into genesis - for Conway ledger benchmarks - will require us +to use a new CLI command, which differs in in output structure and options provided from the one we're using to inject stake pool delegations. This requires us to +implement and additional post-processing step for backends to find everything as expected.

    Furthermore, a PR has been merged which refactors and cleans up benchmarking profiles, with a focus on fine-tuning solo-node benchmarks which scrutinize a single cardano-node process.

    Tracing

    The test suite for cardano-tracer's new handle registry feature is complete, and the new feature passes all tests. At the moment, we're +preparing it for merging into master.

    UTxO Growth

    We're developing a series of benchmarks that will provide insight into possible changes to the Node's performance characteristics given different UTxO set sizes and numbers of delegated wallets. +What we aim to capture in these benchmarks is the system's capability to scale with UTxO growth - while simultaneously evaluating hardware requirements. The workloads will be based on existing release benchmarks, but allow for flexibility regarding UTxO set and delegations. They will target the existing in-memory solution, and at the same time permit feasability testing UTxO-HD's on-disk +flavour - which does not keep the entire UTxO set in RAM permanently.

    Nomad cluster

    Implementation of cluster machine disk space checking and garbage collection is complete. A requirement was that no +monitoring process interferes with a running benchmark, so a non-synchronous approach was chosen to guarantee enough disk space. This prevents failing +runs, and thus the necessity to repeat them.

    In the process, the workbench backend was equipped with a wider range of cluster commands and abstractions, which makes administrating cluster +machines more flexible. This includes a new service to create a network latency matrix for deployed cluster hardware - generalizing the approach +chosen during the Nomad cluster's initial validation phase. This can guarantee the validity of existing baselines in case of hardware reboots, or changes +in topology.

    Last not least, the backend is currently receiving an additional feature: supporting more than 1 hardware cluster. This will enable us, +in the future, to benchmark on ephemeral clusters - without interfering with the hard requirements, or the schedule, of release benchmarking +on our default deployment. The motivation is being able to benchmark different hardware configurations, along with varying cardano-node options and +initial ledger states on a parallel schedule - also, without having to keep those clusters running at all times.

    · One min read
    Damian Nadales

    High level summary

    • Completed the rebase of the production libraries for UTXO-HD on 8.9, both in ouroboros-consensus, cardano-api and cardano-node.
    • Measured sync and replay times and memory in UTXO-HD. The latest result are reported here.
    • Bugfixed the snapshot interval.
    • Added an extra case to isIncorrectClaimedFlag for Babbage and Conway eras.
    • Added a db-analyser analysis to get the UTXO size per slot. The result of the analysis is illustrated here.
    • Started integration work for Node release 8.10.
    • Reviewed the Genesis pull-requests submitted by Tweag. They are pending a final round of review.
    • Helped the current release engineer prepare the 8.9 release candidate.
    • The Consensus Team has also been helping troubleshoot known issues with 8.9 (eg snapshots causing missed leadership schedules, unexpected snapshot interval, integration tests, etc).

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they worked on adapting the Mithril explorer to support Cardano transaction verification, started implementing a more efficient transaction signing scheme, stabilized the type names in the API, and kept investigating a bug that prevents the signature of some Conway era transactions. Additionally, they have completed the first version of the Prometheus monitoring endpoint for the signer.

    Finally, the team fixed a bug occuring in the publication of the npm packages of the client, enhanced the HTTP tests of the aggregator, and kept working on the KES period computation in the Pallas chain observer.

    Low level overview

    • Completed the issue Expose Prometheus metrics for Mithril signer #1096
    • Completed the issue Make HTTP server tests more robust #1524
    • Completed the issue Stabilize namings in Cardano Transactions API #1535
    • Completed the issue Reorganize crates in the repository #1528
    • Worked on the issue Implement Cardano Transactions in explorer #1497
    • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Worked on the issue Output CLIs logs to stderr #1515
    • Worked on the issue npm publish fails on latest when next exists #1531
    • Worked on the issue Cardano transactions are not all signed in testing-sanchonet #1537
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue P2P threat modeling and risk analysis #1350

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 56

    Cardano-Node, Cardano-API, Cardano-CLI

    In the last sprint, the network team was designated to take the Release +Engineering Role, as the coming release contains mostly network advances. +Armando Santos has been making progress on it. The following packages were +published to CHaP:

    and other ouroboros-network packages with minor changes. The following +packages were also published:

    The work on cardano-node is in progress, see cardano-node#5485

    We would like to thank Karl Knutsson (CF) for helping us to test the upcoming +cardano-node release.

    Ouroboros-Network

    We continued working on tx-submission, ouroboros-network#3311

    We started to execute an idea to put all configuration values used by the +diffusion layer Ouroboros.Network.Diffusion.Configuration module. Currently, +default values are spread in different repositories (e.g. cardano-node, +ouroboros-consensus). See ouroboros-network#4805.

    We restored how syncing works in bootstrap mode to get the same performance +characteristics, see ouroboros-network#4809, ouroboros-network#4810.

    We started working on Outbound-Governor Genesis mode, see +ouroboros-network#4813.

    Ouroboros-Consensus

    We requested to modify how bulk-sync mode works to make it use the same +mechanism that the newly added LedgerStateJudgement. See +ouroboros-consensus#958.

    Low-level summary

    We also addressed a minor issue regarding tracing LedgerStateJudgement +changes, see ouroboros-network#4816.

    · 2 min read
    Sebastian Nagel

    High-level Summary

    This week the Hydra team, in addition to the usual maintenance and bug fixing, has been working on the preparation for the switch to Conway making the codebase less babbage specific. The team also conducted the monthly review meeting and published the monthly report on a new website (to keep those reports separate of main repository). They also added a basic UI to the Hydra explorer, switched to aggregating sanchonet data and also fixed the smoke tests to work on sanchonet. Finally, they continued progress the off-chain incremental commit protocol changes.

    What did the team achieve this week

    What are the goals of next week

    • Complete preparation for #1178 to switch to Conway (by "flipping" a switch)
    • Complete off-chain incremental commit protocol changes #199 (and focus on the on-chain part after).
    • Re-align with SundaeLabs on EventSource and EventSink refactoring.
    + + + + \ No newline at end of file diff --git a/page/16/index.html b/page/16/index.html new file mode 100644 index 0000000000..d4eed77dd8 --- /dev/null +++ b/page/16/index.html @@ -0,0 +1,47 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.8.1-pre is now deployed to sanchonet, two-thirds of preprod, +one-third of preview and also voltaire private chain networks.

    • Catalyst Voltaire private chain was respun and an updated db-sync and govtool +backend deployed after hard fork to Conway era.

    • IOG sanchonet pool block producers are now also signing mithril +certificates.

    • A mithril-signer-verifier service now runs on all IOG SRE mithril signers and +generates alerts if no recent mithril certificates have been signed.

    • All cardano-parts mithril clients, whether via nixosConfiguration, +process-compose jobs or the nix cardano-node entrypoint, will now +automatically verify that a trusted IOG pool has signed a mithril certificate +prior to using the associated mithril state. If no trusted IOG pool has +signed a recent mithril certificate, mithril state usage with be skipped and +a classic sync from genesis to tip will be performed.

    • A significant amount of effort was applied towards the upcoming cardano-node +8.9.x-pre release in order to align nixos service module code between +cardano-node nixos services, iohk-nix topology generation, cardano-ops legacy +code, and cardano-parts module compatibility.

    Lower level summary

    Work in progress

    · One min read
    Carlos LopezDeLara

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Quite a useful and desired feature described in +CIP-0110 of allowing reference +scripts for PlutusV1 has been implemented for Conway.

    For the most part we are now spending time on writing tests and enhancing out tooling that +we use for testing. This is paying out dividends since we are finding and fixing important +Conway related bugs. Notable bugs that were squashed this time around are related to using +incorrect stake distribution for both DReps and Stake Pools.

    Low level summary

    Conway

    • pull-4059 - Enable Plutus v1 reference scripts in Conway
    • pull-4088 - Committee query improvements
    • pull-4115 - Switch to using the correct stake pool distribution for voting
    • pull-4116 - Fix Drep stake distribution

    Testing

    • pull-4100 - PPU wellformedness tests
    • pull-4097 - Test that unwithdrawn rewards contribute to voting power
    • pull-4102 - fix prop_DELEG in STS tests
    • pull-4106 - Imp script fixes
    • pull-4118 - Add test for maps with small domains
    • pull-4119 - NewConstraints phase1. Add BoolFn And and Or and tests
    • pull-4120 - Newconstaints phase2 rename IsUniverse (BaseUniverse), Fn (BaseFn)
    • pull-4130 - Added tests for checking proposal network IDs
    • pull-4114 - Imp Bootstrap address support

    Improvements

    Specification

    Releasing

    • pull-4105 - Update RELEASING with revisioning instructions
    • pull-4117 - Use plutus-ledger-api 1.22.1

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week the Mithril team announced the release of a new Mithril distribution 2408.0. This release includes several critical updates and enhancements, such as improved support for stake distribution, Mithril era markers retrieval in the Pallas chain observer, enhanced support for the Conway era and Sanchonet network, as well as various bug fixes and performance improvements. +In addition, the team has made changes to the Mithril client CLI, changing the log output from stdout to stderr from v0.7.0. This announcement was made in the developer blog post.

    The team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the support for the verification in the browser with the WASM client, they worked on enhancing the associated client CLI API, and implemented smoke tests. Additionally, the team has activated the signature of Cardano transactions on the testing-sanchonet network, and they have investigated a bug that prevents the signature of some transactions on this network.

    Finally, the team worked on reorganizing the repository structure, fixed an issue with test folder generation on MacOS, and worked on some documentation improvements.

    Low level overview

    • Released the new distribution 2408.0
    • Publication of a dev blog post about the Mithril SanchoNet network release.
    • Publication of a dev blog post about a breaking change in the Mithril client CLI.
    • Completed the issue Implement Cardano Transactions commands in the client binary #1469
    • Completed the issue Implement Cardano Transactions verification in the WASM client #1470
    • Completed the issue Some end to end tests are flaky in the CI #1147
    • Completed the issue Release 2408 distribution #1500
    • Completed the issue Unify test folder generation #1508
    • Completed the issue Adapt Mithril Client multi-platform test for Cardano Transactions #1510
    • Completed the issue Document Mithril signer footprint #1519
    • Completed the issue Add a runbook for running Client multi-platform tests #1530
    • Completed the issue Update workflow github actions to node-20 #1520
    • Worked on the issue Cardano transactions are not all signed in testing-sanchonet #1537
    • Worked on the issue Make HTTP server tests more robust #1524
    • Worked on the issue Stabilize namings in Cardano Transactions API #1535
    • Worked on the issue Reorganize crates in the repository #1528
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue P2P threat modeling and risk analysis #1350

    · One min read
    Sebastian Nagel

    High-level Summary

    This week, the Hydra team successfully fixed the fanout after contest bug using their significantly improved model-based test suite. Additionally, they transitioned to cardano-api version 8.38 and started testing against cardano-node version 8.8. Furthermore, they enhanced fee estimation within the hydra-node internal wallet resulting in cheaper head opening / closing transactions and added transaction metadata to help identifying Hydra protocol transactions.

    What did the team achieve this week

    • Fixed the fanout after contest bug using our signifcantly improved model-based test suite #1260
    • Switched to cardano-api 8.38 and run tests against cardano-node 8.8 #1297
    • Improved fee estimation in hydra-node internal wallet #1315
    • Added transaction metadata to identify Hydra protocol transactions (on L1) #1311

    What are the goals of next week

    • Have the monthly review meeting + write a report
    • Explorer targeting and showing data of the latest released hydra version
    • Implement off-chain incremental commit protocol changes
    • Review EventSource and EventSink refactor done by SundaeLabs
    • See smoke tests passing consistently on Sanchonet
    + + + + \ No newline at end of file diff --git a/page/17/index.html b/page/17/index.html new file mode 100644 index 0000000000..7ab3e361e1 --- /dev/null +++ b/page/17/index.html @@ -0,0 +1,51 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They worked on enhancing the client CLI output and almost completed the support for the verification of Cardano transactions in the browser with the WASM client. The team also worked on a new feature of the Pallas chain observer to support stake distribution retrieval, and fixed the majority of the flakiness occurring in the CI end-to-end tests. Additionally, they have deployed the new Mithril network running on SanchoNet.

    Finally, the team created a new example crate for using the client library to verify Cardano transactions, kept working on the threat modeling and risk analysis for the Mithril network, and completed their new tool for automatic documentation generation for the CLIs.

    Low level overview

    • Worked on the issue Implement Cardano Transactions commands in the client binary #1469
    • Worked on the issue Implement Cardano Transactions verification in the WASM client #1470
    • Worked on the issue Some end to end tests are flaky in the CI #1147
    • Completed the issue Re-spin Sanchonet network #1503
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue Add signing capabilities to the root route of the aggregator #1496
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Completed the issue Add an example crate for the CardanoTransactions type #1495
    • Worked on the issue Unify test folder generation #1508
    • Completed the issue Generate automatic documentation for CLIs #1471

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 55

    This sprint the networking was nominated for the Cardano Release Engineer role and +we've been working on the integration of bootstrap peers with cardano-node. This +is a work in progress: cardano-node-5485. cardano-node-8.9 will be the first +node which supports the bootstrap peers feature, but we anticipate additional +improvements needed before this is used at scale.

    We disabled mean reward for new peers in the churn mechanism which was hurting +connection in remote destinations. Thanks to Karl Knutsson (CF) for +providing evidence and a patch. In future, this mechanism will be further +changed, but this requires more analysis. ouroboros-network#4800

    We continued working on tx-submission, ouroboros-network#3311

    We welcome Marcin Wójtowicz as part of the Networking +Team of Cardano Core Tech. He reviewed our documentation as part of his +onboarding process: ouroboros-network#4802.

    Andrew Westberg (DripDropz) corrected documentation regarding which +node-to-node protocol version introduced P2P.

    Low-level summary

    Open Source Contributions

    IOSim

    We released io-sim-1.4.1.0 with some new features & improvements:

    · One min read
    Sebastian Nagel

    High-level Summary

    This week, the team made finally progress on the model based testing framework (and reproducing a bug) by fixing issues related to fully validating Cardano transactions. They also enabled continuous deployment of hydra-explorer to http://explorer.hydra.family/heads, facilitating easier access for users. Furthermore, they improved code quality by incorporating Haskell linting into their CI workflow and addeda user-ished conversion of HeadId to CurrencySymbol.

    What did the team achieve this week

    • Fixed model based testing framework to fully validate Cardano transactions
    • Enabled continuous deployment of hydra-explorer to http://explorer.hydra.family/heads
    • Identified need for cardano-node 8.8 and cardano-api 8.38 (breaking changes) to continue integration with Conway networks
    • Added Haskell linting to our CI workflow - Minor addition to convert HeadId into CurrencySymbol #919
    • Reviewed a small refactor PR on our model-based test runner #1300

    What are the goals of next week

    • Fix the fanout after contest bug
    • Bite the bullet and have a non-mainnet compatible master to complete smoke tests on sanchonet
    • Specify the on-chain validators for incremental decommits

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: Release benchmarks for 8.8.0 have been performed; we created a local repro for a residual issue.
    • Performance: We've implemented and benchmarked two candidates investigating residual issues with GHC9.6.
    • Development: Work on the reporting pipeline is ongoing; integration of DReps into benchmarking workloads has begun.
    • Workbench: Implementation of high-level profile definition is ongoing.
    • Tracing: The handle registry feature for cardano-tracer is completed; currently in testing.
    • Nomad cluster: Increased robustness of deployment and run monitoring has been merged; work on garbage collection has started.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.8.0-pre. Comparing with release 8.7.2, we could +not detect any performance risks for that version. We even saw a slight improvement in block fetch related metrics, which led to slightly improved block diffusion times.

    Furthermore, we've managed to boil down a complex residual performance issue measured on the cluster to a local reproduction. This enables our DevX team, with highly specialized knowledge of GHC's compiler internals, to +investigate each step in code generation and optimzation, and independently observe the effects of code changes to the affected component.

    Performance

    Work on the remaining performance issue with GHC9.6 led us to produce two candidates based on Node 8.7.2, benchmarking +the implacations local small changes have for GHC9.6's optimizer. Though those candidates did not uncover the +issue's root cause, they were able to disprove a hypothesis as to its nature, and quantify the performance impact of said small changes.

    Development

    Node 8.8.0 comes with capabilities to inject DReps and DRep delegations into Conway genesis. We've started work +on integrating those into our automations, and setting sensible values for benchmarking. The aforementioned +delegations representing a new data structure in the Conway ledger, we aim to run +existing workflows extended with varying sizes of that new structure, measuring their pressure on ledger queries and operations.

    Workbench

    The performance workbench relies heavily on shell scripting and manipulating JSON data for a great part of its features. This approach +is very effective for quick experimentation, but lacks in verifiable properties as well as accessibility for new users of workbench.

    After the successful Haskell port of cluster topology creation, and verification, we're currently applying +the same model in porting the entirety of benchmarking profiles to Haskell. The obvious gains are widening workbench's +audience both for users and developers, as well as implementing a principled approach to all workbench data structures and transformations.

    At the same time, we're porting workbench's many options to create fine-tuned geneses, following the same approach.

    Tracing

    We've outfitted cardano-tracer with a handle registry feature that lets the service work on file handles internally, rather than opening and closing files for each operation. The feature is completed; at the moment we're adding +appropriate test cases to the service's test suite for validation of its behaviour, and for safeguarding future development.

    Nomad backend

    Several improvements for our cluster backend have been merged to master, increasing its overall robustness. We can now safely handle some corner cases where Nomad processes unexpectedly exited, or deployments errored out. Furthermore, an ongoing +run can now reliably survive a temporary loss of heartbeat connection between Nomad client and server, without +the benchmarking metrics being affected.

    Currently, we're working on a reliable automation of garbage collecting old nix store entries on the cluster machines, as they fill up disk space. The design has to consider both not interfering with ongoing benchmarks, and +avoiding deployment overhead caused by cleaning the store too frequently.

    + + + + \ No newline at end of file diff --git a/page/18/index.html b/page/18/index.html new file mode 100644 index 0000000000..91908f4b21 --- /dev/null +++ b/page/18/index.html @@ -0,0 +1,56 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet state was respun from slot 14255995 for cardano-node 8.8.0-pre
    • Cardano node 8.8.0-pre is now deployed to sanchonet, shelley-qa, two-thirds +of preprod and one-third of preview networks
    • IOG pool block producers are now signing mithril certificates for preview, +preprod and mainnet networks
    • A cardano performance dashboard is now available for both playground and +cardano-mainnet deployments

    Lower level summary

    Cardano-mainnet

    • Adds mithril signers and perf dashboard to the mainnet cluster; improves +network docs, tunes alerts, plus misc fixes: +cardano-mainnet-pull-8

    Cardano-parts

    • Adds mithril signer capability to role-block-producer nixosModule, adds a +profile-mithril-relay nixosModule and includes misc other improvements and +fixes: +cardano-parts-pull-31

    • Updates packages for sanchonet respin, adds a node performance dashboard +template and fixes misc issues: +cardano-parts-pull-32

    Cardano-parts

    • Adds mithril signers and mithril relays to preview and preprod networks and +includes misc other improvements and fixes: +cardano-playground-pull-15

    • Updates machines and pin for sanchonet respin, adds a node performance +dashboard and fixes misc issues: +cardano-playground-pull-16

    Iohk-nix

    · 2 min read
    Carlos LopezDeLara

    · 3 min read
    Alexey Kuleshevich

    High level summary

    Last few weeks were spent mostly on implementing various fixes, writing tests and +improving capabilities of our testing frameworks. Important bug fixes are:

    • Retention of Anchor for proposal procedures in the ledger state in order for users to be +able to query the node for those anchors
    • JSON serialization of rational numbers in protocol parameters and governance procedures +are encoded without loss of precision

    Feature wise, we've added a new protocol parameter that controls the contribution of +reference scripts sizes in the transaction fee calculation formula.

    Major achievement that is worth announcing is a Haskell package named +cuddle that we developed over the last few +months. Soon we will be transitioning to specifying CDDL in Haskell for all eras using +that package. It will be used to compile the CDDL specification that developers in the +community rely on so much. There are enormous benefits in using this tool, when compared +to writing CDDL specification manually. Namely it allows us to reduce duplication and +reuse common and unchanged specification from previous eras. It also improves safety and +correctness of our specification and decoders, because it ensures that the specification +is well typed and it uses QuickCheck to generate random data for validating that our +decoders are implemented according to the spec.

    Low level summary

    Conway

    • pull-4031 - Further proposals improvements. Take 2
    • pull-3996 - Index aware PlutusPurpose
    • pull-3983 - Include reference scripts size in min fee calculation
    • pull-4040 - Redeemers serialization fixes
    • pull-4033 - Make Conway-specific queries only available in Conway
    • pull-4028 - Embed ProposalProcedure in GovActionState
    • pull-4056 - Reduce duplication in Conway UTXOW rule
    • pull-4055 - Update MinFeeRefScriptCoinsPerByte.
    • pull-4053 - Rename committeeQuorum to committeeThreshold
    • pull-4058 - Fix ToJSON instance of BoundedRatio to avoid precision loss
    • pull-4070 - Rename AsIndex to AsIx
    • pull-4065 - Remove ConwayPool rule definition

    Improvements

    • pull-4037 - Add capability to hash Plutus scripts directly
    • pull-4030 - Report Plutus ScriptHash upon execution failure

    Testing

    • pull-3895 - Constrained v2
    • pull-3981 - Test proposals rewrite
    • pull-4051 - Full support of random and quickcheck-transformers in impTest
    • pull-4050 - Fixed the "All Tx are valid on traces of length 150" intermittent bug
    • pull-4049 - Support for Plutus scripts in ImpTest
    • pull-4075 - Discontinue the mingw target in the nix build
    • pull-4072 - Fix ouroborus-consensus serialization roundtrip test
    • pull-4080 - Test that a resigned CC cannot be reelected without removal
    • pull-4083 - Fix flakyness at the cost of turning test on during development
    • pull-4084 - Fix intermittent test failures in leader-proportion test

    Specification

    • pull-4015 - Shelley ledger spec: amend erratum on nonce stabilization window
    • pull-4064 - Fix wrong prose for new epoch environment
    • pull-4081 - Fix MIR rule using wrong values for treasury and reserves

    Releasing

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the upgrade of the client library and the CLI to support the verification of Cardano transactions. They also released the new Mithril network running on SanchoNet. Additionally, the team rolled out a new feature of the Pallas chain observer (that now supports the retrieval of Mithril era markers), and kept investigating some flakiness occurring in the CI end-to-end tests.

    Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and updated the Mithril network architecture documentation.

    Low level overview

    • Published a development blog post Mithril SanchoNet network released
    • Completed the issue Implement transactions verification in client library #1468
    • Completed the issue Implement Cardano Transactions commands in the client binary #1469
    • Completed the issue Create a test network on SanchoNet #1173
    • Completed the issue Update Mithril network architecture documentation #1488
    • Completed the issue Upgrade http dependency #1474
    • Completed the issue Extract database feature from common crate #1492
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue Some end to end tests are flaky in the CI #1147
    • Worked on the issue Add an example crate for the CardanoTransactions type #1495
    • Worked on the issue Generate automatic documentation for CLIs #1471

    · One min read
    Daniel Firth

    High-level Summary

    This week, the Hydra team worked on forward compatibility for Conway support, deployed the hydra explorer tool, and improved the model based testing to support more actions (Fanout and Rollbacks).

    What did the team achieve this week

    • Addressed flakyness in two types of integration tests
    • Fixed our tooling (HLS 2.6 on GHC 9.6.4)
    • Fixed configuration of running head in preview
    • Added Fanout and Rollbacks to our Model basd test suite #1296
    • Deployed the hydra explorer to http://explorer.hydra.family:9090/heads (url will change a bit more)
    • Updated smoke test to run sanchonet

    What are the goals of next week

    • Fix the fanout after contest bug
    • Specify the on-chain validators for incremental decommits
    • Complete smoke tests on sanchonet
    + + + + \ No newline at end of file diff --git a/page/19/index.html b/page/19/index.html new file mode 100644 index 0000000000..1a01bdc8ca --- /dev/null +++ b/page/19/index.html @@ -0,0 +1,58 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Damian Nadales

    High level summary

    This week we managed to integrate in the node the Consensus version of the UTxO-HD prototype that features the second version of the Ledger DB API. +We also changed the epoch structure for Conway, made progress towards the Bootstrap State Machine and Peras planning. +On the support front, we are investigating the impact of snapshots on missed leadership checks.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the aggregator routes responsible for generating proofs of membership for a list of Cardano transactions and for listing produced artifacts. Additionally, they worked on extending the Mithril client library to support the verification of Cardano transactions, and on the creation of the new Mithril network running on SanchoNet.

    Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and investigated some flakiness occurring in the end-to-end tests in the CI.

    Low level overview

    • Completed the issue Implement proof generation route in the aggregator #1467
    • Completed the issue Implement artifact routes in the aggregator #1478
    • Completed the issue Enhance ImmutableFile list computation resilience #1450
    • Completed the issue Add WASM client step in Mithril Client multi-platform test #1408
    • Completed the issue Enhance end to end test for Cardano hard forks #1464
    • Worked on the issue Implement transactions verification in client library #1468
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue Some end to end tests are flaky in the CI #1147
    • Worked on the issue Handle cancellation of certificate verification in WASM client #1480
    • Worked on the issue Upgrade http dependency #1474
    • Worked on the issue Generate automatic documentation for CLIs #1471

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 54

    In this sprint, we merged the bootstrap peers (aka weak genesis) changes to +the ouroboros-network repository (ouroboros-network#4615). We continued +working on integration & testing it using an early development version of +cardano-node (cardano-node#5485).

    Andrew Westberg (DripDropz) noticed and fixed a mistake in the cddl spec which resulted in +misleading documentation; ouroboros-network#4790. The Handshake protocol flag +should be called initiatorOnlyDiffusionMode. Library authors providing +connectivity with other nodes via the node-to-node protocol are advised to review +their implementation.

    We continued working on the tx-submission decision logic; +ouroboros-network#3311.

    Karl Knutsson (CF) implemented:

    Open Source Contributions

    IOSim

    We released a new version of io-sim to Hackage:

    NoThunks

    We released a new version of nothunks to Hackage:

    Low-level summary

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano explorer is being sunset and will soon be replaced by a new Cardano +Foundation explorer
    • IOG mainnet pools are now participating in propagation time reporting using +Cardano Foundation's blockperf +tool
    • Cardano-parts node nixosConfigurations, node entrypoint and process-compose +node jobs now utilize mithril +client automatically on preview and preprod networks for faster +synchronization of first start up. Mainnet mithril client use as well as +signer modules will be available soon.

    Lower level summary

    Cardano-mainnet

    Cardano-parts

    • Adds a block performance module which utilizes cardano-foundation's blockperf +for aggregate block propagation reporting: +cardano-parts-pull-29
    • Adds a mithril client for nixosConfigurations, process-compose cardano-node +processes and cardano-node entrypoint: +cardano-parts-pull-30

    Iohk-nix

    • Adds required mithril client environment information for preview, preprod, +mainnet: +iohk-nix-pull-570

    Cardano-world

    Upstream Contributions

    Blockperf

    · One min read
    Sebastian Nagel

    High-level Summary

    This week, the Hydra team authored and published the monthly report for January 2024, enhanced user feedback for failed commands, updated cardano-api dependency and GHC to newer versions, re-opened their persistent head in preparation for the hard-fork, extended the model-based testing suite to cover the closing of heads, fixed a bug in io-sim, and contributed to cardano-node.

    What did the team achieve this week

    What are the goals of next week

    • Fix the fanout after contest bug #1260
    • Run Hydra smoke tests on sanchonet #1257
    • Specify the on-chain validators for incremental decommits #1057
    • Have the explorer hosted #696
    • Prepare PRs for dropped JSON instances from API #1213
    + + + + \ No newline at end of file diff --git a/page/2/index.html b/page/2/index.html new file mode 100644 index 0000000000..07159b0c63 --- /dev/null +++ b/page/2/index.html @@ -0,0 +1,73 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 9.0.0 is now deployed to mainnet, preprod, preview, private and +shelley-qa environments. The last several weeks have been very busy with +pre-release and release activity and environment upgrades involving +cardano-node versions 8.9.3, 8.9.4, 8.12.0-pre, 8.12.1, 8.12.2 and +now 9.0.0 as of this update.

    • Sanchonet environment remains pinned at cardano-node version 8.11.0-pre until +the next respin which will support 9.0.0 or greater.

    • Ogmios service and package options were added to cardano-parts.

    • Four documents were added to cardano-playground to better explain some +operational procedures: debugging of peer-to-peer connections; governance +voting with the playground stakepools; faucet setup; faucet pool +de-delegation. Found at: +docs/explain

    • One document was added to cardano-mainnet to explain cardano-snapshot +operations. Found at: +docs/explain

    • Private chain was stopped and re-spun with 2 hr epochs for testing.

    • Hydra and performance cluster machines had their configuration updated to be +more robust to transient nix store caches outages which may re-occur in the +future.

    • All machines in cardano-playground and cardano-mainnet clusters were updated +to nixpkgs 24.05.

    Lower level summary

    Cardano-mainnet

    • Sets cardano-node to 8.12.2 as well as usage of a custom gc delay parameter +branch for bootstrap nodes. Updates all machines to nixpkgs to 24.05 with +openssh 9.8p1. Adds one new explainer readme document, new alerts and various +script, recipe, and other improvements. See the PR description for more +details: +cardano-mainnet-pull-16

    Cardano-ops

    • Bumps to cardano-node 9.0.0, adds coredump metrics, adds OOM/coredump +alerting, adjusts systemd stop timeout to avoid some unneccesary chain +replays: +cardano-ops-compare

    Cardano-parts

    • Sets cardano-node (release) and cardano-node-ng (pre-release) versions to +8.12.2 and cardano-db-sync-ng to sancho-5-0-0. Updates nixpkgs to +24.05. Includes nixosModule, dashboard, metric, alert and recipe +improvements and new features. More detail is available in the PR +description: +cardano-parts-pull-43

    Cardano-perf

    • Adjusts nix config to avoid R2 500 errors on transient cache problems and +adds explorer to perf class: +cardano-perf-compare

    Cardano-playground

    • Sets cardano-node (release) and cardano-node-ng (pre-release) versions to +8.12.2 and cardano-db-sync-ng to sancho-5-0-0. Updates all machines to +nixpkgs to 24.05 with openssh 9.8p1. Respins private chain and KES +rotates multiple chains. Adds four new explainer readme documents, new alerts +and various script, recipe, and other improvements. See the PR description +for more details: +cardano-playground-pull-27

    Iohk-nix

    Ops-lib

    • Updates deployers with recent nixpkgs, nix, refactors to preserve legacy +nixops usage, adds starship and fzf: +ops-lib-pull-134

    • Bumps openssh to 9.8p1 +ops-lib-pull-135

    · 2 min read
    Alexey Kuleshevich

    High level summary

    This period we added some last minute changes that were necessary for improving resilience +and safety of Conway implementation:

    • Authorization of hot credentials for constitutional committee members is now only possible +for cold credentials that are present in the ledger state, either in the current committee +or in one of the proposals.
    • Voting is restricted to entities that are present in the ledger state
    • DRep votes will be removed whenever DRep unregisters
    • Pricing model for the size of reference scripts was changed from linear to +exponential. Moreover, extra limits on the total size of reference scripts being used +have been put in place.

    Low level summary

    Conway

    • pull-4430 - CostModel json parsing
    • pull-4438 - Fix UTXOW era in diagrams for Conway
    • pull-4443 - Make reference scripts fee grow exponentially with size
    • pull-4436 - Authorize known cc members only
    • pull-4433 - Improve resilience of future PParams
    • pull-4453 - Tx refscript size check
    • pull-4452 - Prevent votes for non existent entities
    • pull-4450 - BBODY refscript size check

    Testing

    • pull-4417 - constrained-generators: use consistent warning pragma
    • pull-4431 - constrained-generators: fix flakyness in set generator
    • pull-4312 - Convert AlonzoValidTxUTXOW to ImpTest (Part 1)
    • pull-4386 - Increase the size of the committee for testing
    • pull-4425 - Conformance test plumbing: EPOCH
    • pull-4442 - Update executable-spec SRP
    • pull-4405 - Add more scripts to alonzo utxosspec
    • pull-4445 - Conformance tests plumbing: NEWEPOCH
    • pull-4460 - Remove unnecessary allocation in non-integral reference code
    • pull-4457 - Conformance: POOL: Translate and adjust

    Infrastructure and releasing

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They completed the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas and worked on fixing some bugs occurring during the warmup phase of the signer and aggregator. They also worked on supporting the new Cardano node version 8.12 and kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

    Finally, the team fixed a bug that prevented the parsing of some blocks in the SanchoNet network and made some optimizations on the databases of the signer and aggregator.

    Low level overview

    • Completed the issue Import Cardano transactions with ChainReader #1705
    • Completed the issue Cardano signatures are not produced on testing-sanchonet #1750
    • Completed the issue SQLite WAL files are not truncated in signer and aggregator #1707
    • Completed the issue Conditional embedding of Cardano CLI in Docker images #1725
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Optimize Cardano transaction prover performances with parallelization #1756
    • Worked on the issue Upgrade Cardano node 8.12.2 #1787
    • Worked on the issue Aggregator/Signer preload transactions when Cardano transactions certification is not activated #1782
    • Worked on the issue Cardano transaction importer does not import the last block advertised as certified #1785
    • Worked on the issue Lint Markdown/JavaScript files in repository #1754

    · One min read
    Damian Nadales

    High level summary

    • Supported debugging activities related to bootstrap nodes.
    • Merged various improvements to the db-X tools; in particular, db-truncater (which is used regularly by community members on sanchonet) got much faster.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released the threat modeling explainer for the documentation website. They also continued implementing the certification of Cardano transactions in Mithril networks and the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas. Additionally, the team started redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

    Finally, they fixed a bug that prevented the verification of the transactions included in the last certified block and improved the WASM client's documentation.

    Low level overview

    • Completed the issue Threat modeling and risk analysis #1350
    • Completed the issue Implement database connection pooling for Cardano transaction repository #1760
    • Completed the issue Import Cardano transactions by sequences of block ranges #1766
    • Completed the issue Limit Cardano transactions prover input #1757
    • Completed the issue Transactions of the block number in the artifact are never certified by the prover #1762
    • Completed the issue Add missing pre-requisite to build WASM client #1753
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Optimize Cardano transaction prover performances with parallelization #1756
    • Worked on the issue Cardano signatures are not produced on testing-sanchonet #1750
    • Worked on the issue Lint Markdown/JavaScript files in repository #1754
    + + + + \ No newline at end of file diff --git a/page/20/index.html b/page/20/index.html new file mode 100644 index 0000000000..2f1cd2a7fc --- /dev/null +++ b/page/20/index.html @@ -0,0 +1,47 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Alexey Kuleshevich

    High level summary

    One very important Conway feature that became available since last report is the ability +for Stake Pool Operators to vote on some of the security relevant protocol parameter +updates. We organized proposal hierarchy into a cohesive implementation, which together +with good tests gives us confidence in its correctness.

    We also fixed a few important bugs:

    • Preventing Constitutional Committee Members from voting on governance actions that they +should not be allowed to vote on.
    • Prevent deposits from appearing in orphaned reward accounts after the staking credential +has been unregistered, but before the proposal procedure deposit has been returned.
    • Ensure Sets are encoded in CBOR with tag 258 by default

    Further improvements in testing tools and addition of more tests.

    Low level summary

    Conway

    • pull-3982 - Added SPO voting thresholds for security relevant parameters
    • pull-3978 - Proposals pruning rewrite
    • pull-4003 - Prefix Set encoding with tag 258
    • pull-3999 - Add PParamUpdates to the plutus context, by transforming them to Plutus Data
    • pull-4008 - Fixed a bug in GOV rule
    • pull-4013 - Remove EnactState from ConwayGovState
    • pull-4025 - Further improvements to Proposals
    • pull-4021 - Move unclaimed rewards from proposals to treasury

    Testing

    • pull-3997 - Added DRep delegation injections to Conway
    • pull-4023 - Add a function registerInState to EraTransition
    • pull-4005 - Fixes in Shelley Imp framework and other small things
    • pull-4004 - Verify that enacted gov action is removed
    • pull-4016 - Fix Arbitrary instance and invariant checking for Proposals

    Improvements

    Releasing

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the signature of the transactions set and implemented the aggregator route, responsible for generating proofs of membership for a list of Cardano transactions. Additionally, they finalized the manual workflow to test the NPM client package in the CI and enhanced the resilience of computing the list of immutable files in a Cardano node database. The team also expanded the coverage of end-to-end tests in the CI to accommodate multiple versions of the Cardano node and various hard fork scenarios.

    Finally, they completed the enhanced node communications between Mithril and Cardano for retrieving UTXOs and kept working on the threat modeling and risk analysis for P2P networking.

    Low level overview

    • Completed the issue Light Wallet: Compute message to sign for CardanoTransactions #1436
    • Completed the issue Light Wallet: Implement proof generation route in the aggregator #1467
    • Completed the issue Enhance ImmutableFile list computation resilience #1450
    • Completed the issue Enhance end to end test for Cardano hard forks #1464
    • Completed the issue Add WASM client step in Mithril Client multi-platform test #1408
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue Generate automatic documentation for CLIs #1471

    · One min read
    Carlos LopezDeLara

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: GHC 9.6.3 benchmarks for node 8.7.2 have been performed.
    • Development: Additional features for our reporting pipeline, while simultaneously reducing dependency footprint.
    • Tracing: Implementation for cardano-tracer to work on handles instead of files; work on New Tracing Quickstart document has begun.
    • Nomad cluster: We're preparing an upgrade to the latest Nomad version.

    Low level overview

    Benchmarking

    We've performed a full set of GHC 9.6.3 benchmarks for node 8.7.2. For recommending GHC9.6 as a default build platform for cardano-node - from a performance perspective - we observe only one residual issue. As a way to +address this, we've decided to create a reproduction benchmark targeting the affected component.

    Development

    Our reporting pipeline will be expanded to support a wider range of rendering formats, as well as report templates. As the pipeline is part of our workbench - and thus gets downloaded and built when entering the workbench shell - it's +good practice to keep a small dependency footprint. When reworking the pipeline, we aim to simultaneously reduce dependencies.

    Tracing

    So far, cardano-tracer has internally been using files, or file names, for the purpose of logging trace messages it receives via forwarding. This is simple, but induces quite some overhead at runtime: files have to be opened and closed for each message. +Using and managing open file handles inside cardano-tracer does remove that overhead, but unsurprisingly introduces some complexity into the application code. Currently, we're working on implementing that change.

    Furthermore, we're working on a Quickstart document for the new tracing system, with end users as its intended audience. It will contain recommended production use setup(s), and how to efficiently configure and run them step by step. Additionally, it +will provide a brief, but comprehensive overview over the features at the user's disposal.

    Nomad backend

    On the Nomad cluster, we've experienced undesired system behaviour when the heartbeat between the Nomad server and a client is interrupted temporarily - although the Nomad job itself is still 100% functional. A Nomad +upgrade to the latest version promises to fix that, but it turn comes with other issues. We're currently working on adapting our automation and deployment around those known issues, before we can eventually +apply the upgrade.

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team has prepared and tested a new db-sync version for mainnet, we have continued our +integration and update for Conway and have extended its modularity.

    Lower level summary

    • We attempt to turn db-sync into a modular project that can run with wither low or high recourses +#1610 +#1613 +#1590

    • Moving the flags above to a config file +#1609

    • Optimizations +#1595 +#1607

    • Conway Support and updates +#1581 +#1573 +#1570

    + + + + \ No newline at end of file diff --git a/page/21/index.html b/page/21/index.html new file mode 100644 index 0000000000..91a99b0285 --- /dev/null +++ b/page/21/index.html @@ -0,0 +1,54 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Sebastian Nagel

    High-level Summary

    This week, the Hydra team conducted yearly roadmapping sessions, introduced a +breaking API change to eliminate JSON encoding of transactions (refer to issue +#1213 for details), completed off-chain logic for incremental decommits through, +and implemented a hydra-explorer backend.

    What did the team achieve this week

    • Conducted yearly roadmapping sessions
    • Merged a breaking API change to drop JSON encoding of transactions #1213 - contact us if you were relying on this.
    • Completed off-chain logic for incremental decommits #1223
    • Implemented a hydra-explorer backend #1235

    What are the goals of next week

    • Publish the monthly report
    • Prepare PRs for hydra clients to switch to CBOR due to the changed API (see above)
    • Enhance the model testing framework to cover close/contest (needed to fix a bug and incremental decommit development)
    • Fix new bugs (all minors) and finish things before starting new

    · One min read
    Damian Nadales

    High level summary

    This week the team continued working on the second iteration of the Ledger DB API for UTxO-HD, as well as on Genesis. +We incorporated further improvements to the onboarding documentation, and wrote a document explaining a specific subtlety of our chain orders. +For Conway, we integrated DReps and initial delegates injection, which will allow the Performance and Tracing team to run benchmarks for this era.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released the initial version of the Mithril client NPM package, enabling developers to integrate core Mithril features into their web applications running in a browser. They also released a new distribution, 2403.1, which includes support for Cardano node version 8.7.3, a new chain observer based on the Pallas library, along with bug fixes and performance improvements.

    The team kept implementing a new entity type for certifying the Cardano transactions set in Mithril networks and made good progress on retrieving transactions and combining them into a Mithril protocol message. Additionally, they finished implementing a mock aggregator and using it in the browser tests for the Mithril client in WASM.

    Finally, they worked on enhancing node communications between Mithril and Cardano and continued working on threat modeling and risk analysis for P2P networking.

    Low level overview

    • Release of the mithril-client npm package library crate
    • Publication of a dev blog post about the released Mithril client npm package
    • Released the new distribution 2403.1
    • Completed the issue Light Wallet: Gather transactions from immutable files and store them in the database #1435
    • Completed the issue Light Wallet: Implement browser tests with fake aggregator #1407
    • Completed the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Light Wallet: Compute message to sign for CardanoTransactions #1436
    • Worked on the issue Enhance ImmutableFile list computation resilience #1450
    • Worked on the issue Add WASM client step in Mithril Client multi-platform test #1408
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue Add warn missing docs in mithril client cli #1439

    · 2 min read
    Marcin Szamotulski

    High level overview of sprint 53

    We integrated bootstrap peers with cardano-node in an experimental branch +([cardano-node-5485], ouroboros-network-4615). We continued working on +tx-submission: ouroboros-network-3311.

    Karl Knutsson (CF) worked on peer sharing improvements: ouroboros-network-4778.

    Erik de Castro Lopo made ouroboros-network packages compile with GHC-9.8: +ouroboros-network-4727.

    Nick Frisby (Tweag, Consensus Team), modified local-state-query mini-protocol +so that one can acquire the immutable tip and thus get information which is not +subject to rollbacks: ouroboros-network-4765.

    Low level summary

    Other, less significant changes / improvements include:

    · 2 min read
    Arnaud Bailly

    High-level Summary

    The team made good progress this week, with the release of version +0.15.0 marking a milestone, along with the monthly review including +both Mithril and Hydra work. We addressed issues in smoke tests and +website publishing workflows, ensuring a more robust development +environment, and along the way included more "dogfooding" through the +use of Mithril to synchronize nodes in smoke tests.

    What did the team achieve this week

    • Release of Version +0.15.0. This +release enhances the overall stability and functionality of our +product.
    • Monthly Review and Community Demos
    • Smoke Tests and Website Publishing Workflow Fixes: #1246
      • Resolved glitches in the website publishing workflows, enhancing +the efficiency of our deployment processes.
    • Integration of Mithril for Smoke Test Synchronization: #1252
    • Polishing of Hydra-Chess v0.1.0: #1237
      • Worked on polishing hydra-chess v0.1.0, treating it as an example +application running on Hydra. This not only demonstrates the +capabilities of our platform but also aims at providing a reference for future Hydra +developers.

    What are the goals of next week

    • Merge Off-Chain Protocol Logic for incremental decommits
    • Initiate work on the on-chain portion of incremental decommits
    • Merge CBOR API Change #1240
    • Troubleshoot Dangling Fanout Issue #1260
    + + + + \ No newline at end of file diff --git a/page/22/index.html b/page/22/index.html new file mode 100644 index 0000000000..7e62647719 --- /dev/null +++ b/page/22/index.html @@ -0,0 +1,57 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.7.3 is now generally deployed to all testnet and mainnet environments +managed by coretech SRE

    • Dbsync and node stack process-compose jobs are now available from +cardano-parts for users running nix >= 2.17.0 and nix experimental-features += nix-command flakes fetch-closure

    • These can be run with:

       nix run github:input-output-hk/cardano-parts#run-process-compose-node-stack
      nix run github:input-output-hk/cardano-parts#run-process-compose-dbsync-$NETWORK
    • For more details, see the merged cardano-parts process-compose +PR

    Lower level summary

    Cardano-monitoring

    Cardano-mainnet

    • Adds a readme, switches to nonmoving gc for producers, plus misc improvements +from cardano-parts: +cardano-mainnet-pull-6

    Cardano-ops

    • Merged a long standing branch converting legacy mainnet relays to p2p, node -> +8.7.2, db-sync snapshots -> 13.1.1.3, and other improvements: +cardano-ops-pull-417

    Cardano-parts

    • Adds a readme, provides misc improvements, service optimizations, alert tuning, +sql pool performance analysis fix, package updates: +cardano-parts-pull-27
    • Adds process-compose dbsync and node stacks: +cardano-parts-pull-28

    Cardano-playground

    Upstream Contributions

    • Contributions to upstream process-compose related repos were made in order to +complete the process-compose dbsync and node stacks in cardano-parts, +including the following:

    Process-compose-flake

    Services-flake

    · One min read
    Alexey Kuleshevich

    High level summary

    Last week's achievement was that we finished PlutusV3 integration, which a massive piece of work.

    Low level summary

    Conway

    Testing

    • pull-3989 - Fix too many discards.
    • pull-3986 - Remove libs/cardano-ledger-pretty
    • pull-3991 - Imp native script support
    • pull-3993 - Change Test.Cardano.Ledger.Generic.Proof so that there is no more Crypto Evidence.

    Releasing

    • pull-3988 - Bump jinja2 from 3.1.2 to 3.1.3 in /doc

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team completed the implementation of the client in the explorer, enabling direct certificate verification from the browser. They initiated the implementation of a new entity type for signing to certify the Cardano transactions set in Mithril networks. The team also upgraded the devnet to support the Conway era and activated the Mithril era marker reader on the Cardano chain in the end-to-end test. Additionally, they kept implementing a mock aggregator to strengthen Mithril client tests in WASM and continued working on threat modeling and risk analysis for P2P networking.

    Finally, they worked on enhancing node communications between Mithril and Cardano, and they started rolling out the Cardano node in the infrastructure to version 8.7.3.

    Low level overview

    • Completed the issue Light Wallet: Create new signed entity type for CardanoTransactions #1434
    • Completed the issue Implement the mithril client WASM package in the explorer #1409
    • Completed the issue Activate babbage/conway eras on devnet #1425
    • Completed the issue Transition Mithril Era Reader adapter to CardanoChain in devnet #1428
    • Completed the issue Upgrade Cardano node to 8.7.3 #1410
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315

    · One min read
    Carlos LopezDeLara

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team improved Github actions workflows, addressed protocol +parameter schema consistency in hydra-node, and made enhancements to log schema +tests. They created an Architectural Decision Record (ADR) for Cardano +transactions serialization in APIs, moved the hydra-chess project to a dedicated +repository, and resolved a bug in quickcheck-dynamic and model tests.

    There will be the monthly review meeting with demos on Hydra, Mithril and +related projects. If this sounds interesting, join us in Google Meet +https://meet.google.com/udc-zgyw-agd next week, January 19 2024 at 17:30 UTC.

    What did the team achieve this week

    • Github actions improvements and small fixes to the smoke tests #1242, #1233
    • Fixed protocol parameter schema consistency around hydra-node #1234
    • Log schema tests improvements and fixes #1244
    • Created ADR about Cardano transactions serialisation in our APIs +#1215
    • Moved hydra-chess #1237 to a dedicated cardano-scaling organisation repository https://github.com/cardano-scaling/hydra-chess
    • Identified bug on quickcheck-dynamic / our model tests #1239

    What are the goals of next week

    • Monthly review meeting (January 19, 17:30 UTC) including several demos (from team and contributors)
    • Do release 0.15.0
    • Improve quickcheck-dynamic model to be more robust and cover more +behaviour.
    • Draft POC about backend for a hydra-explorer that can track all +heads on-chain.
    + + + + \ No newline at end of file diff --git a/page/23/index.html b/page/23/index.html new file mode 100644 index 0000000000..22b48be133 --- /dev/null +++ b/page/23/index.html @@ -0,0 +1,54 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Damian Nadales

    High level summary

    For the past two weeks the Consensus team:

    • Resumed work on implementing the initialization and internals of the second iteration of the in-memory ledger database.
    • Resumed work on integrating the new ledger database API for UTxO HD.
    • Simplified query versioning for downstream users (863 and 403).
    • Confirmed the cause of missed leadership checks due to ledger snapshots (868).
    • Derived principles for the versioning/declaration of queries, since Conway complicates it (864 and 866).
    • Unblocked the Node Team in the work on rollback-insensitive leadership schedule queries (4765).
    • Drafted the (Pre-Genesis) Bootstrap State Machine (808).

    · 4 min read
    Alexey Kuleshevich

    High level summary

    Major Conway related development was the refactoring of how we distinguish Plutus +language versions in every era, thus drasticly improving the type safety and getting us +much closer to PlutusV3 integration.

    There has also been many bug fixes and improvements since the last update. Some important bug +fixes are:

    • missing "protocolVersion" field in JSON instance for Babbage and Conway protocol parameters
    • requiring witnesses for DRep registration
    • new committee governance action ratification was implemented incorrectly
    • guard against invalid protocol versions in hard fork initiation proposals
    • failures during updates of Plutus CostModels were not retained
    • fixed the types for some protocol parameters in order to prevent values that are too large
    • serialization and CDDL fixes

    A few useful features have been also implemented, like new ledger events, doubling the +limit for Url length, consensus query, JSON instances and so on. It was also required +for testing to implement a reliable transaction fee estimation function, which is now +available not only for testing, but also for cardano-cli.

    Low level summary

    Conway

    • pull-3915 - Utilize Inject type class for Val's inject
    • pull-3899 - Bring Plutus language version to the type level
    • pull-3917 - Ensure DRepRegistration certificate requires a witness
    • pull-3921 - Fix committee validation in Ratify
    • pull-3935 - Fixed a bug in Conway.Rules.Gov
    • pull-3956 - Allow 128 byte Url and DnsNames for decoder version atleast 9.
    • pull-3954 - Fix how we update CostModels
    • pull-3947 - Change the type of some pparam fields to align with how they are represented in Consensus
    • pull-3951 - Conway genesis DRep injection
    • pull-3961 - Switch ContextError to an injective type family from a data family
    • pull-3963 - Abstract getWitsVKeyNeeded
    • pull-3933 - Improve cbor serialization of TxWits in Conway
    • pull-3971 - ToJson instances for context error
    • pull-3977 - Added GetAccountStateQuery
    • pull-3975 - Add policy hash protection to TreasuryWithdrawals and ParameterChange

    Testing

    • pull-3892 - Translate DRep expiry test from ConwayFeatures to Imp GovSpec
    • pull-3913 - Add certs to conformance testing
    • pull-3911 - Add a Preds to generate valid GovActionStates.
    • pull-3929 - Improve comment on unit_interval in cddl
    • pull-3950 - Use discard to avoid bad traces for fixOutput
    • pull-3935 - Add some Imp tests for HardForkInitiation.
    • pull-3964 - Ignore thunks in utxosDeposited
    • pull-3962 - Add estimateMinFeeTx
    • pull-3976 - Introduce accurate min fee calculation function: calcMinFeeTx

    Improvements

    • pull-3930 - Change type of mintedTxBodyL to PolicyID
    • pull-3924 - Split type classes out of eras Core module
    • pull-3934 - Type safety bugfixes
    • pull-3949 - Add FromJSON BabbagePParams instance
    • pull-3953 - Babbage / Conway PParams JSON serialization
    • pull-3946 - Epoch interval instances
    • pull-3932 - Add ledger event TxUTxODiff
    • pull-3969 - Add missing stake key deposit in formal spec
    • pull-3973 - Move functionality of Cardano.Ledger.Pretty to Test.Cardano.Ledger.Generic.PrettyCore

    Releasing

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team worked on implementing the client in the explorer to enable direct verification of certificates from the browser. They also addressed the configuration issue in the signer node service, which occasionally resulted in signers not registering their keys after a restart. Additionally, the team kept implementing a mock aggregator to strengthen Mithril client tests in WASM, continued working on threat modeling and risk analysis for P2P networking, and progressed with the devnet upgrade to support the Conway era.

    Finally, they worked on enhancing node communications between Mithril and Cardano and completed the upgrade of the Cardano node topology used in the Mithril networks' infrastructure.

    Low level overview

    • Published a development blog post Mithril signer service new configuration
    • Completed the issue Simplify Mithril client CLI download command #1406
    • Completed the issue Make all infra Cardano nodes use P2P topology #1405
    • Completed the issue Implement ChainObserver adapter configuration in aggregator #1396
    • Completed the issue Fix signer node service setup #1404
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Implement the mithril client WASM package in the explorer #1409
    • Worked on the issue Light Wallet: Implement browser tests with fake aggregator #1407
    • Worked on the issue Activate babbage/conway eras on devnet #1425
    • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 52

    Happy New Year!

    In this short sprint we analysed a failure which happened on a new large +cluster that's run by IOG. The process exhausted all file handles and was left +without any functional connections. The issues apparently is rare, and thus +doesn't impose a high risk.

    We also continued working on tx-submission: ouroboros-network-3311.

    Detailed description

    It turned out that the process exhausted the number of file handles leaking +multiple /proc/{PID}/stat files open. We suspect that the bug is caused by

    • using lazy IO in iohk-monitoring-framework, and
    • using a recent kernel version

    With lazy IO file handles are read as long as the data is required and they are +closed only when EOF is reached. We currently suspect that a new linux kernel +added something at the end of the /proc/{PID}/stat which is not parsed by +iohk-monitoring-framework, so whenever the file is read we leak it (it's +never closed) and eventually, there are no file handles to be used by the +network layer: the accept loop doesn't return any inbound connection, neither +an outbound connection can be created. This issue will be addressed by the +profiling team (which owns the logging subsystem).

    The fix will be proposed in the future release, in the meantime we suggest to +keep observing file handles used by the node.

    I would like to thank John Lotoski (IOG), Karl Knutsson (CF), Neil Davies +(PNSol) and Michael Karg (IOG) who all contributed to this analysis.

    While analysing the log we also found a few smaller issues in the outbound +governor which were fixed in [ouroboros-network-#4764].

    The IO error indicating exhausting file handles is not currently visible. It +is not re-thrown nor logged. This needs to be fixed in a future version. See +ouroboros-network-4769.

    · One min read
    Sebastian Nagel

    High-level summary

    In between the end-of-year holidays, the Hydra team completed the implementation +of the Conway support feature, fixed a minor bug that was hindering tests from +running on MacOS, and addressed a regression in the protocol-parameter formats +used by the hydra-node. They also worked on off-chain code for incremental +decommits, specifically focusing on transaction creation. Furthermore, they +conducted a spike on implementing a Chess game using Hydra, with an experience +report provided.

    What did the team achieve this week

    • Fixed a regression on protocol-parameter formats used by the hydra-node #1226
    • Fixed a minor bug prohibiting tests running on MacOS #1218
    • Complete conway support feature #1227
    • Transaction creation off-chain code for incremental decommits #1218
    • First spike on implementing a Chess game on Hydra report, related to: #1098

    What are the goals of next week

    • Fully resolve protocol parameter misalignment #1234
    • Cut a release 0.15.0 to ship offline-mode and conway support
    • Prepare demo for conway support
    • Complete transaction creation and observation for incremental decommits
    • Backend for a hydra-explorer that can track all heads on-chain
    + + + + \ No newline at end of file diff --git a/page/24/index.html b/page/24/index.html new file mode 100644 index 0000000000..82de3b523f --- /dev/null +++ b/page/24/index.html @@ -0,0 +1,63 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    John Lotoski

    High level summary

    During the lightly staffed holiday period for node SRE, the emphasis was on +maintaining environment stability, tuning and resolving any noisey alerts.

    Investigation into and testing around the following two topics also +started during this period:

    • Ledger snapshots causing a small number of missed slots for forgers on mainnet: +ouroboros-consensus-issue-868

    • A cardano-node rare file descriptor leak, with a more detailed description +here

    · One min read
    Carlos LopezDeLara

    2023-12-09 - 2023-12-30

    High level summary

    • Migrated reposotiries to IntersectMBO.
    • Improved era handling on cardano-api. Instead of enumerating every possible era, we use two constructors: +'CurrentEra' and 'UpcomingEra'. This design simplifies the handling of eras, especially for cardano-api consumers who are primarily concerned with the current mainnet era and the next era for an upcoming hardfork.
    • Cleaning-up the cardano-cli, in particular to the babbage era commands where some Conway options had spilled.

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team made significant progress, implementing an offline mode with associated refactoring. They enhanced user experience by detecting incompatible eras in hydra-node. Protocol changes were implemented for incremental decommits, addressing off-chain logic. Additionally, the team contributed fixes to cardano-ledger and coordinated with the Eternl team on enabling committing into a head from their wallet.

    What did the team achieve this week

    • Offline mode implementation +#1118 and +refactoring +#1222
    • Detect incompatible era in hydra-node and provide better UX +#1216
    • Implemented protocol changes for incremental decommits (off-chain +logic) #1057
    • Contributed fixes to cardano-ledger#3949 and +#3953
    • Synced up with the Eternl team on enabling committing into a head from +their wallet

    What are the goals of next week

    • Maybe cut a release 0.15.0 to ship offline-mode and unsupported era UX
    • Full conway support in hydra-node
    • Transaction creation and observation for incremental decommits

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 51

    Outbound Governor Bug in cardano-node-8.7.2

    In the current sprint, we received a bunch of reports from SPOs about nodes not +maintaining some connection when using cardano-node-8.7.2 (running in P2P +mode). Such regressions are very important to us since they can lead to lost +blocks. We were able to reproduce this issue. Every time there's a longer +pause of block production (due to the statistical nature of Ouroboros), there +is a chance that the bug will be armed. For this reason cardano-node-8.7.2 +needs to be closely monitored.

    We found the bug and developed a fix, ref. Karl +Kntusson (CF) wasn't able to reproduce the bug with the patched version of +the node for long enough (almost two weeks now) for us to belive that the fix +is correct.

    Advise for SPOs

    We created a release branch for 8.7.3. The advice from +the network team is to either downgrade to the previous release, e.g. 8.1.2 +or use the above release branch (note that there were no benchmarks made or Q&A +tests yet).

    Testing plans

    We were also able to reproduce the bug using IOSim, ouroboros-network#4757. +However, the bug relies on a particular schedule of two threads which are +involved and we needed to artificailly modify IOSim schedule in production +code - something that we don't want to commit to the master branch. We also +experimented with a randomised scheduler for IOSim, but that did not lead to +finding the schedule which arms the bug: the search space grows exponentially +with the number of steps in the threads, partial order reduction techniques +implemented in IOSimPOR are more appropriate - unfortunatelly the simulation +test is too large to be executed in IOSimPOR even with large amounts of +RAM. To use IOSimPOR we need to implement a test which includes the two +interacting components:

    • connection-manager
    • outbound-governor (where the bug was located)

    which communicate through PeerStateActions, without including all the +diffusion components as we do in our sim-net tests. More in style of +outbound-governor tests where there is just a single outbound-governor, +unlike in the sim-net which runs multiple communicating diffusions.

    Bootstrap peers

    We continued working on bootstrap peers, ouroboros-network#4555

    TxSubmission Decision Logic

    We continued working on tx-submission decision logic, ouroboros-network#3311

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • A new repository was created which enables agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: cardano-monitoring
    • The govtool backend swagger interface was nix flake packaged and deployed for Voltaire private chain testing usage
    • Grafana cloud monitoring stacks were migrated to new EC2 cardano-monitoring servers
    • Cardano-db-sync state snapshots now support client range requests, details here
    • In addition to monitoring server centralized grafana metrics, sysstat collected system metrics are now available locally on all cluster machines at high time resolution
    • Code changes required due to repository migrations to IntersectMBO have largely been completed

    Lower level summary

    Auth-keys-hub

    Cardano-monitoring

    • A new repository enabling agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: cardano-monitoring

    Cardano-parts

    • Migrate from grafana cloud monitoring to ec2 monitoring, add resource tagging support, declarative route53 CNAME list, and additional improvements and fixes: cardano-parts-pull-25
    • Improve ssh key handling and edge cases, resolve misc issues, add IOPS and throughput gp3 openTofu support: cardano-parts-pull-26

    Cardano-playground

    + + + + \ No newline at end of file diff --git a/page/25/index.html b/page/25/index.html new file mode 100644 index 0000000000..eb04e03358 --- /dev/null +++ b/page/25/index.html @@ -0,0 +1,53 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team completed aggregator optimizations, enabling the certification of new data types without introducing a new era. They also facilitated the selection of these data types through a simple configuration parameter. Additionally, the team started implementing a mock aggregator to strengthen Mithril client tests in WASM, kept working on threat modeling and risk analysis for P2P networking, and progressed with the implementation of a testing Mithril network for SanchoNet.

    Finally, they worked on some optimizations and refactoring of the Mithril client CLI and started upgrading the Cardano node topology used in the Mithril networks' infrastructure.

    Low level overview

    • Completed the issue Implement open_message timeout in aggregator #1387
    • Completed the issue Implement configurable signed entity types in aggregator #1388
    • Completed the issue Enhance machine readable logs in client #1234
    • Completed the issue Manual publication to npm registry with GitHub action #1411
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Simplify Mithril client CLI download command #1406
    • Worked on the issue Make all infra Cardano nodes use P2P topology #1405
    • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
    • Worked on the issue Enhance Mithril/Cardano node communication #1315

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team identified and resolved issues with a malfunctioning +head on mainnet, implementing preventive measures. They edited and merged a new +Architectural Decision Record (ADR) proposed by SundaeLabs, upgraded +cardano-node to version 8.7.2, and improved the TUI user experience. +Preparations for "Conway support" were initiated, and updates were made to logs +and API schemas. Additionally, initial steps were taken towards incremental +decommits.

    What did the team achieve this week

    • Troubleshoot and recover a broken head on mainnet. Opened issue +#1202 and PR +avoiding this in-flight +#1211
    • Designed and proposed a new ADR to generalize EventSource and +EventSinks#1157, +contributed by SundaeLabs.
    • Upgrade cardano-node to 8.7.2 +#1199 and +re-enables e2e nix-shell support on Darwin +#1203
    • UX enhancement on TUI +#1201
    • Preparations for "Conway support" +#1177[#1206 & +#1207]
    • Update logs and api schemas +#1212
    • First steps on incremental decommits +#1057:
      • Drafted the e2e workflow +#1205
      • Added decommit API endpoints +#1209

    What are the goals of next week

    • Detect incompatible blocks and provide better UX
    • Conway support in hydra-node
    • Off-chain logic for incremental decommits

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team completed the adaptation of the Mithril client library for WASM compilation, providing a JavaScript API for it. They also completed the proof of concept to demonstrate that a subset of Cardano transactions is part of the entire transactions set. The refactoring of the Mithril client CLI with the Mithril client library was also finalized. Additionally, the team kept working on the threat modeling and risk analysis for P2P networking, along with progressing in the implementation of a testing Mithril network for SanchoNet.

    Finally, they started implementing an expiration mechanism for the open messages in the aggregator, and they completed the upgrade of Rust dependencies with breaking changes.

    Low level overview

    • Completed the issue Light Wallet: Implement mithril-client WASM library #1336
    • Completed the issue Light Wallet: Certify Cardano UTXO/transactions set PoC #1393
    • Completed the issue Refactor mithril-client-cli with mithril-client library #1335
    • Worked on the issue Implement open_message timeout in aggregator #1387
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Enhance machine readable logs in client #1234
    • Worked on the issue Create a test network on SanchoNet #1173
    • Completed the issue Upgrade breaking changes crates #1357
    • Worked on the issue Enhance Mithril/Cardano node communication #1315

    · 4 min read
    Michael Karg

    High level summary

    • Benchmarking: Release benchmarking for node 8.7.2, as well as P2P benchmarks - the latter being a premiere for the Nomad cluster.
    • Development: Work on automating the submission of Conway transactions for registration of and stake delegation to DReps is ongoing.
    • Infrastructure: We're preparing to safely retire our current benchmarking cluster.
    • Tracing: The documentation for the new tracing system is being reworked. Additionally, we've added a feature to cardano-tracer to capture performance over a long runtime.
    • Nomad cluster: The Nomad backend has been successfully equipped with support for up-to-date P2P topology, as well as deployment for Plutus script data.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for node 8.7.2. From a performance perspective, it has been greenlit for mainnet release. Starting with this version, our team will publish observations alongside the original comparative analysis of benchmarks, providing insight into key metrics and resource usage. Hence, for the post on version 8.7.2, see here.

    Additionally, we're running P2P versus no-P2P benchmarks on the same version. We intend to establish future baseline runs using P2P topology as the default setting. All our cluster nodes being block producers, it is crucial to establish the P2P stack does not exhibit any regression regarding block forging. Furthermore, the evidence gathered from those benchmarks forms the base for a recommended setting for P2P on mainnet block producers.

    It deserves special mention that those P2P benchmarks are our first production runs with the Nomad cluster - and using the new tracing system exclusively. Having finalized all optimization rounds of the latter, and having meticulously eliminated all confounding factors from the Nomad infrastructure, we're confident in the measurements being subject to extremely low variance - which we made sure of in many past validation runs on Nomad.

    Development

    Orchestrating DRep actions into benchmarking workflows has opened up a fairly large design space. Currently, we're focusing on having stake delegated to DReps, in order to trigger ledger pulses for calculations particular to DRep actions. We can benchmark a possible +performance impact of those pulses - even if there are no actions ongoing - as a first step.

    The contributing factors to the cost of those pulses are both the number of DReps registered, and the number of delegations to them. It is still under debate which values represent a probable model for mainnet, and whether we can achieve stake delegation programmatically (i.e. by submitting transactions), or if, for large numbers, we need means to inject those delegations into genesis.

    Infrastructure

    With the switch of all production benchmarks to the Nomad cluster, we will retire the legacy cardano-ops cluster very shortly. Currently, we're making sure that when all its resources are released, we keep an archive for all runs performed, including all raw log data - with the oldest runs dating back as far as December 2019.

    Tracing

    We've outfitted the cardano-tracer service with the same kind of resource tracing machinery that's used by cardano-node - as well as created a dedicated benchmarking profile for it. It puts very little pressure on the node; instead it causes 6 nodes to emit traces at a rate of >35 messages per second, putting pressure on cardano-tracer via trace forwarding at >200 messages per second for an extended period of time. Analysis of these traces will form the ground for various optimizations of cardano-tracer that are currently being worked on.

    As we aim for early 2024 to be able to recommend the new tracing system as default in production use, we're currently also reworking the comprehensive documentation to reflect all changes made over the last months.

    Nomad backend

    In addition to being able to deploy Plutus script data and redeemers seperately (instead of inlining them as the legacy cluster did), the Nomad cluster now supports being set up with recent P2P topology. No-P2P topology format will still be supported +for occasional regression benchmarking of the P2P stack, when desired. Furthermore, we've completed porting all benchmarking profiles from the legacy cluster to Nomad.

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols, working on a +performance modelling paper and working on a performance modelling +prototype tool

    Details

    • completing work on chain sync mini-protocol

    • proof sketch of conformance property of chain sync mini-protocol

    • new content for JLAMP paper

    • NWPT talk

    + + + + \ No newline at end of file diff --git a/page/26/index.html b/page/26/index.html new file mode 100644 index 0000000000..f0537fd904 --- /dev/null +++ b/page/26/index.html @@ -0,0 +1,72 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Marcin Szamotulski

    High-level overview of sprint 49 & sprint 50

    Fixed PeerSelection bug

    Karl Knutsson (Cardano Foundation (CF)) found a bug in +the cardano-node-8.7.0 version used on the Sancho Net which was fixed in 8.7.1. +It resulted in a node not being able to reconnect to an upstream peer once it +was demoted by an asynchronous exception. This bug would be caught by Q&A in +a mainet release, but for testnet releases, Q&A test suite is not used. We also +developed a test which covers the bug in the ouroboros-network, we also identified +a missing PeerSelection test which we need to port to our simulation network. +See ouroboros-network#4734, ouroboros-network#4665.

    Bootstrap Peers

    Still under review, ouroboros-network#4555. The consensus team is now +implementing the API we need for bootstrap peers. Once consensus API is implemented we will integrate changes in an experimental branch of +cardano-node.

    Tx-Submission

    We started working on a new implementation of the tx-submission application. No +tx-submission protocol changes are foreseen, but we want to be able to +download each tx from just one upstream peer and share the results between +different connections. We want to distribute the bandwidth between multiple +clients. We also think that this work will prepare us for the future +Ouroboros-Leios changes, which will contain various versions of tx-submission +like mini-protocols. See ouroboros-network#4701.

    Peer Sharing

    Various fixes and improvements were implemented:

    • ouroboros-network#4725

      • disabled peer sharing with initiator-only nodes: currently it's not +possible to get peers from initiator-only nodes (edge nodes, e.g. +wallets). In the future, we might change this, which will require running +a server-side of the peer-sharing protocol by such nodes. See +ouroboros-network#4726.
      • fixed peer-sharing codec
      • fixed a handshake bug which returned a wrong peer-sharing option
    • ouroboros-network#4728

      • disabled peer-sharing for NodeToNodeV_11 and NodeToNodeV_12
    • Karl Knutsson (CF) has been working on additional improvements, e.g. ouroboros-network#4735

    With these fixes, Karl Knutsson (CF) was able to see that two peers on the mainnet +can discover themselves through peer-sharing and keep being mutually useful +and thus the connection surviving outbound-governor churn events.

    IOSim

    We improved the memory footprint of IOSim in io-sim#126, see +ouroboros-network#4721 for heap profile improvements on large test cases.

    We are working on optimising the memory footprint of IOSimPOR. We are +reimplementing VectorClocks using a trie, instead of a map which leads to +significant improvements.

    Cardano-Ping

    cardano-node-0.2.0.10 was released to CHaP, ouroboros-network#4746. This +version exports more APIs which turned out to be useful in cardano-node test +suite, see cardano-node#5536.

    Technical Debt

    We addressed some small tech-debt issues in ouroboros-network#4722:

    • fixed some typos
    • using bracket instead of onException in withSnocket
    • improved haddocks
    • organised TracePeerSelection constructors

    We improved the memory footprint of some of our tests in ouroboros-network#4721.

    · 3 min read
    Carlos LopezDeLara

    2023-11-15 - 2023-12-08

    High level summary

    This is sprint was mostly about bug fixing, code clean-ups and optimizations in preparation for a mainnet suitable release.

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet was respun to cardano-node 8.7.0-pre, and upgraded to cardano-node 8.7.1-pre shortly afterwards
    • Cardano-node 8.7.2 was released and all environments were then upgraded to 8.7.2
    • Cardano-parts deployed machines were upgraded to nixpkgs 23.11 and nix 2.19.3
    • Cardano-parts resource deployed environments were switched from the use of Terraform to OpenTofu

    Lower level summary

    Capkgs

    • Updated for cardano-node 8.7.2 and process-compose packages: capkgs-compare

    Cardano-parts

    Cardano-ops

    Cardano-playground

    Cardano-world

    • Sanchonet update PR: cardano-world-pull-111
      • Merge the long running sanchonet-updated branch
      • Migrate explorers from ziti to wireguard tunnel usage
      • Remove remaining ziti code and provisioned resources
      • Retire remaining nomad jobs in preference of the cardano-playground environments
      • Downsize the cluster in preference of the cardano-playground environments

    Iohk-nix

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team made progress by releasing version +0.14.0, +incorporating updates and improvements. They also updated dependencies +in preparation for Conway support, addressing +#1114. +Additionally, the team completed substantial refactoring in hydra-node +using stateless observation, aiming to enhance system efficiency and +performance +#1096. Lastly, +they investigated regressions related to JSON serialized transactions +and consider dropping this in favor of CBOR only submission.

    What did the team achieve this week

    • Released version +0.14.0
    • Updated dependencies to prepare for Conway support +#1114
    • Completed substantial refactoring in hydra-node using stateless +observation +#1096
    • Investigated regressions about JSON serialized transactions

    What are the goals of next week

    • Analysed our mainnet head and why some transactions were invalid
    • Detect incompatible blocks and provide better UX
    • Update to newer cardano-node and Conway support in hydra-node
    • Draft the end-to-end workflow for incremental decommits

    · 2 min read
    Alexey Kuleshevich

    High level summary

    This period we reached a major milestone, namely we now have an initial version of Conway +conformance testing working. We are now able to generate random valid data with the help +of constraint based testing framework, apply that data to Conway Ledger rules and verify +that the output matches to the one produced by the executable version of the Formal Ledger +Specification, when it is applied to the same random data.

    We also had a couple of Conway bugs fixed and a few new predicate check implemented. Get +Constitutional Committee query is complete and tested. Various improvements to the +testing tools. Addition of more test cases.

    Low level summary

    Conway

    • pull-3888 - Add checks for valid ProtVer when a proposal is a HardFork
    • pull-3902 - Fix pvCanFollow usage in Conway and improve clarity in Shelley
    • pull-3855 - Remove unreachable proposals
    • pull-3903 - Add lenient decoder for Addr
    • pull-3878 - Committee query - implement next epoch change

    Testing

    • pull-3893 - Move tree-diff dependency to tests together with all instances
    • pull-3896 - Fix Brute force failure
    • pull-3904 - New ListWhere Pred added to the Constrained Solver.
    • pull-3907 - cardano-ledger-conformance: Remove CHANGELOG.md from cabal file
    • pull-3883 - Committee QuerySpec Imp Test
    • pull-3909 - Make impAnn a bit more useful, by making the logs scoped by impAnn
    • pull-3908 - Use upstream testing instances for very basic types
    • pull-3912 - Removed call to tail, and the 'watchPulser' test
    • pull-3852 - Added constrained generators to conformance tests - Part 1

    Improvements and releasing

    + + + + \ No newline at end of file diff --git a/page/27/index.html b/page/27/index.html new file mode 100644 index 0000000000..b753965072 --- /dev/null +++ b/page/27/index.html @@ -0,0 +1,49 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team made progress in adapting the Mithril client library for WASM compilation and providing a JavaScript API for it. They also completed the optimization of the aggregator's performance. Additionally, the team initiated the implementation of a testing Mithril network for SanchoNet and conducted threat modeling and risk analysis for P2P networking.

    Finally, they enhanced the developer experience of the Mithril client library by providing ready-to-run examples in the repository and implemented a workflow to manually publish libraries on crates.io.

    Low level overview

    • Worked on the issue Light Wallet: Release mithril-client WASM library #1336
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on Sanchonet #1173
    • Worked on the issue Upgrade breaking changes crates #1357
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue Enhance aggregator REST API performances #1327
    • Completed the issue Signer runtime is stuck for some SPO #1312
    • Completed the issue Make mithril-client examples full crates #1385
    • Completed the issue Manual publication to crates.io with GitHub action #1380
    • Completed the issue Remove sqlite dependency from mithril-client crate #1390

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: Release benchmarking for node 8.7.0. Also, we performed the first-ever Conway benchmarks.
    • Development: Conway capability of our workload generator has been implemented and merged to master.
    • Infrastructure: Changes to our workbench facilitating easy access and archiving of raw benchmarking data.
    • Tracing: Quality-of-life improvements to tracing output and addition of a test suite.
    • Nomad cluster: Expand the list of benchmarking profiles that can be run on Nomad; generalize cluster topology generation.

    Low level overview

    Benchmarking

    A full set of benchmarks for node 8.7.0 has been performed, with the focus of enabling the next mainnet release. We've measured slight performance improvements of 8.7.0 over 8.6.0, and can confirm no regressions have been introduced.

    Furthermore, we've run system integration level benchmarks in the Conway era for the first time, on the same node version. +Only Babbage-compatible workloads have entered comparison as to ascertain performance consequences of only changing the ledger version, and nothing else. The results are very promising, as we could show that switching ledger versions for existing workloads does not come with a performance penalty.

    Development

    Our transaction generator has been extended to be able to submit all present benchmarking workflows in the Conway era. +Currently, we're looking into adding Conway-exclusive features, such as DRep registration. Those would be submitted at the very beginning of a run, as we're interested in seeing potential performance implications of maintaining DRep sets of varying size in ledger. Furthermore, this will serve as the basis for future development Conway-exclusive workloads, such as governance actions or vote tallying.

    Infrastructure

    As our workbench will be pivotal in orchestrating and organizing benchmarking runs on the Nomad cloud backend, we've +improved how raw benchmark data is tagged, which metadata is documented in an automated manner. This enhances both access to existing run sets, as well as maintaining an archive for benchmarking data.

    Tracing

    The new tracing system is currently receiving usability improvements as we're reworking the output of several trace messages. +Additionally, we're setting up a rigorous test suite to provide safety for future development of and component integration inte the system.

    Nomad backend

    We've been working on adapting various benchmarking workloads, which are defined by our workbench's profiles, to running on the new infrastructure. This mainly concerns a workload utilizing Plutus, as well as peer-to-peer flavoured workloads. Furthermore, we're implementing a solution to create all possible cluster topologies algorithmically, instead of still using fixed literal definitions for some cases.

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team conducted a packed Monthly Review meeting, +featuring demonstrations and the preparation of the monthly report. They +addressed flakiness in tests and enhanced the logs json schema, +improving overall test reliability. Additionally, the team successfully +built MacOS ARM64 (aarch64-darwin) binaries in CI, expanding platform +support. They further improved the network configuration by detecting +incompatible persisted states, contributing to overall system +robustness. Finally, the team released version 0.14.0, highlighting +their commitment to delivering regular updates and improvements.

    What did the team achieve this week

    • Monthly Review +meeting +packed with demonstrations and prepared monthly report +#1189
    • Fixed several flaky tests and improved the logs json schema +#1188#1190#1192
    • Built MacOS ARM64 (aarch64-darwin) binaries in CI +#1182
    • Improved network configuration by detecting incompatible persisted +states #1174
    • Released version 0.14.0

    What are the goals of next week

    • Start work on incremental decommit
    • Continue shepherding contributed PRs to completion
    • Finish stateless-observation work
    • Open a head on a Conway network

    · One min read
    Damian Nadales

    High level summary

    The Consensus team implemented and tested a patch that does not propagate future headers. +It is under review, and we expect it can be released in the next Cardano node version. +On the UTxO-HD front, we finished prototyping the LedgerDB and BackingStore redesign, which is required for the LSM-tree integration and might help us implement a more resource efficient in-memory backend. +With this prototype finished we can start integrating the rest of the code. +We investigated the unexpected performance degradation observed when acquiring the block context. +We also released Cardano node 8.7.0 and moved tree-diff outside cardano-ledger libraries.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released the initial version of the Mithril client library, enabling developers to integrate core Mithril features into their applications. They also released a new distribution, 2347.0, which includes support for slim certificate production by the aggregator, along with bug fixes and performance improvements.

    The team also introduced the initial version of Cardano/Mithril node communication enhancements, implemented by TxPipe as part of the Catalyst project. They made progress in decentralizing Mithril networks, including testing the Mithril peer-to-peer (P2P) relay on a test network and conducting threat modeling and risk analysis for P2P networking. Additionally, they started working on adapting the Mithril client library for WASM compilation and made progress in optimizing aggregator performance.

    Finally, they fixed inaccuracies in the verbosity level of logs across most nodes and worked on troubleshooting for some users.

    Low level overview

    • Release of the mithril-client library crate
    • Publication of a dev blog post about the released Mithril library
    • Released the new distribution 2347.0
    • Worked on the issue Light Wallet: Release mithril-client WASM library #1336
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Enhance aggregator REST API performances #1327
    • Worked on the issue Signer runtime is stuck for some SPO #1312
    • Completed the issue Support P2P relay in infrastructure #1361
    • Completed the issue Make Cardano node version custom in CI/CD #1355
    • Completed the issue Manually deploy a test Mithril network #1356
    • Completed the issue mithril-client verbosity not following usage menu #1325
    • Completed the issue Error message for mithril-client snapshot download #1375
    + + + + \ No newline at end of file diff --git a/page/28/index.html b/page/28/index.html new file mode 100644 index 0000000000..3d1330eaf9 --- /dev/null +++ b/page/28/index.html @@ -0,0 +1,56 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and working on a +performance modelling paper

    Details

    • completing work on chain sync mini-protocol

    • proof sketch of conformance property of chain sync mini-protocol

    • onboarding new performance modelling intern

    • new content for JLAMP paper

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team spent significant time opening a head among +themselves on mainnet using the release candidate, revealing and +addressing lurking bugs such as +#1174. Also +required was this change to dynamically calculate the min utxo value +#1176, a +necessary adjustment following the switch to inline datums. The team +engaged with cardano-cli / cardano-api maintainers to discuss recent +changes and collaborated on drafting feature ideas, including providing +Conway support +for the Hydra roadmap. As part of ongoing improvements, they +experimented with writing the specification in markdown instead of +LaTex.

    What did the team achieve this week

    • Opened head among us on mainnet and uncovered a few lurking bugs like +#1174 in the +release candidate
    • Calculate the min utxo value instead of hard-coding it +#1176, which is +needed since we switched to inline datums.
    • Met with the cardano-cli / cardano-api maintainers to discuss +recent changes and way forward
    • Drafted features ideas to provide Conway +support on the +Hydra roadmap
    • Experimented in writing the specification in markdown instead of LaTex

    What are the goals of next week

    • Have the Monthly review meeting with several demos
    • Release version 0.14.0 with this +scope
    • Complete tidying up chain layer via stateless observation changes in +hydra-node +#1096
    • Update dependencies to prepare for Conway +#1114

    · 4 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • The cardano-node nixos service now supports SIGHUP p2p topology reloading when the useSystemdReload option is enabled

    Lower level summary

    Capkgs

    • Update cardano-db-sync and offchain-metadata-tools package paths and/or references: capkgs-compare

    Cardano-node

    • Optionally have cardano-node nixos service utilize SIGHUP p2p topology reload: cardano-node-pull-5537
      • Creates a useSystemdReload bool option for the cardano-node nixos service
      • This will move the topology file(s) to /etc/cardano-node/topology-$i.yaml and inject systemd reload hooks for p2p configured cardano-node instances
      • Moving topology files to /etc also allows for manual topology updates when a quick test is needed and full service re-deployment isn't desired

    Cardano-parts

    • Adds a metadata server profile and a number of other features and improvements: cardano-parts-pull-20
      • Adds a new metadata-service profile
      • Adds metadata service and pkg configuration options for cardano-groups to utilize the metadata-server profile
      • Adds a cardano-webserver profile for multiple virtualHosts and TLS ACME server aliases for a cluster's static needs, with each cached behind varnish
      • Adds extra node list producers and public producers for cardano-node-topology profile
      • Adds delegation amounts to cardano-postgres psql prepared query show_pools_block_history_in_epoch
      • Adds select systemd metrics reporting to grafana-agent profile
      • Adds a bookRelay multivalue DNS option to disambiguate with groupRelay multivalue DNS
      • Adds an opsLib library to the cardano-parts lib flakeModule and refactors some common code into it
      • Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo
      • Adds job-gen-env-config for both release and pre-release configuration files to support configuration book generation
      • Adds support for grafana recording rules in the template files
      • Improves cardano-group profile handling of producers with respect to multiple instance nodes
      • Improves grafana-agent profile metrics handling for multi-instance cardano-node servers
      • Improves smash service preStart handling while waiting for a node socket
      • Updates Justfile for ERA_CMD demo support
      • Migrates default grafana cloud node exporter, varnish alert and recording rules to grafana alert and recording rule templates
      • Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile
      • Defaults cardano-postgres profile psqlrc use to false

    Cardano-playground

    • Adds a new testnet metadata server, cluster webserver, and other improvements: cardano-playground-pull-6
      • Adds a new metadata server
      • Adds a new webserver for the cluster's static virtualhost needs
      • Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo
      • Adds systemd metrics monitoring to the cluster
      • Resizes sanchonet machines to support the growing chain
      • Completes migration of preprod from world
      • Updates groups to utilize both bookRelay and groupRelay multivalue DNS attributes
      • Updates Justfile for ERA_CMD demo support
      • Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile
      • Migrates book static code to playground from world, with refactor, cleanup and updates
      • Migrates default grafana cloud node exporter, varnish alert and recording rules to declarative grafana alert and recording rules

    Offchain-metadata-tools

    • Adds db password option with obfuscation plus misc improvements: offchain-metadata-tools-pull-61
      • Adds db password connection option and obfuscates passwords in output for metadata server, sync, webhook services
      • Updates the nixos service for metadata-webhook service to optionally use an environmentFile for secrets: cfg.environmentFile
      • Moves from std use in the nix flake to standard flake schema
      • Fixes hydra CI failures
      • Builds update-docs in hydra to avoid long local build times
      • Removes deprecated tullia
      • Removes deprecated check-hydra from pkgs
      • Removes deprecated bors files and references

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Last two weeks progress was mainly on testing, bug fixes and improvements to clarity of +CDDL specification. Important bugfixes include:

    • Fix deserialization of ValueNotConservedUTxO predicate failure that could not +previously report zero ADA.
    • Fix deserialization of CostModels in the PParamsUpdate. Invalid CostModels are no +longer allowed, only CostModels for unrecognized Plutus versions are allowed starting +with Conway
    • Fix returning of Deposits for ProposalProcedures

    Testing tooling has been improved and new tests have been implemented for Conway era.

    Low level summary

    Conway

    • pull-3858 - Restructure computing Refunds and Deposits in a TxBody across all eras
    • pull-3860 - Removed mock/crypto.cddl, added optional tag to sets
    • pull-3864 - Fix Proposal deposits and add deposit tests to imp tests
    • pull-3859 - Rename ProposalsSnapshot to Proposals
    • pull-3867 - MaryValue fixes
    • pull-3869 - Indicate that tag 258 is optional for OSet. Fix rational CDDL
    • pull-3863 - Improve deposits refunds re-usability
    • pull-3861 - Fail PParamsUpdate deserialization for invalid costmodels in Conway
    • pull-3875 - Fix cddl spec for CostModels in Conway
    • pull-3876 - Change 4 PParam fields from EpochNo to EpochInterval
    • pull-3884 - Relax requirement on the Set tag 258 to be enforced in the next era

    Testing

    • pull-3868 - Improvements to support property tests on Traces with simple Tx with DRep related Certs
    • pull-3792 - RATIFY and GOV constraint tests
    • pull-3885 - Added a test for genTxAndNewEpoch
    • pull-3886 - QuickCheck Imp integration

    Improvements and releasing

    · One min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team made progress in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, completing the first prototype implementation of the Mithril relay, which enables P2P signature broadcasting. They also made progress in optimizing the performance of the aggregator. Additionally, the team completed some enhancements on the CI/CD that will help manually deploy experimental Mithril networks for SanchoNet, as well as for the new P2P network layer.

    Finally, they investigated occasional runtime issues causing delays for certain SPOs and started preparing for the next distribution release.

    Low level overview

    • Completed the issue Prototype a P2P relay with libp2p #1326
    • Worked on the issue Enhance aggregator REST API performances #1327
    • Worked on the issue Signer runtime is stuck for some SPO #1312
    • Completed the issue Manually deploy a test Mithril network #1356
    • Completed the issue Make Cardano node version custom in CI/CD #1355
    • Worked on the issue Support P2P relay in infrastructure #1361
    • Completed the issue mithril-client fails to extract archive #1352
    + + + + \ No newline at end of file diff --git a/page/29/index.html b/page/29/index.html new file mode 100644 index 0000000000..3784b655c1 --- /dev/null +++ b/page/29/index.html @@ -0,0 +1,52 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 6 min read
    Kevin Hammond

    High level summary

    We have undertaken an initial high-level security analysis of the CIP-1694 design. We summarise the analysis and our responses here.

    Initial CIP-1694 Security Analysis and Responses

    Section: The constitutional committee


    • “For example, if we consider the hypothetical Constitution rule "The Cardano network must always be able to produce new blocks" - In this example, if the governance action to reduce block size to 0 is passed, then there will be no way of passing or enacting further proposals. That is, this governance action is completely non-reversable. Suggestion: Instating a built-in mechanism that checks (and perhaps enforces) that the proposed governance actions, if passed, can be reverted in the future.

    There is a 'guardrails document' in preparation which captures issues such as these. Some of them may be automatable, as suggested; others will need to be evaluated by humans.


    Section: Size of the constitutional committee


    • A possible issue with very large committee sizes (or large number of proposals/voters in general) is that it may take longer to have votes appear on-chain, which in extreme cases may require longer voting periods.

    Thanks. Yes, we’ve been thinking about this issue for a long time, see for example the section ‘Final safety measure, post bootstrapping’. We don’t consider this as an issue for the CC since they need to be elected while DReps can just register, so we expect the number of CC members to be much less than the number of DReps


    Section: Terms


    • The following sentence is a bit awkward to read: “For example, a committee of size five with a threshold of 3/5 a minimum size of three and two expired members can still pass governance actions if two non-expired members vote Yes.” —> Suggestion: “For example, if we have a committee of size five with a threshold of 3/5, then a committee of three non-expired and two expired members can still pass governance actions if two non-expired members vote Yes.”

    Thanks. Yes, that suggestion is a bit easier to read.


    Section: Registered DReps


    • “Additionally, registered DReps will need to vote regularly to still be considered active.” - There is a minor issue with requiring “voting regularly”. That is, if there are no proposals to vote on for a long time, this means that no DRep can vote regularly (or they have to issue bogus proposals just to vote on them).

    Thanks. We’ve added a mechanism to prevent that issue in the spec/code where if there’s nothing to vote on for an entire epoch, we increment the epoch that each DRep expires.


    Section: Ratification


    • It is a bit unclear why protocol changes: network group and technical group are two separate groups.

    These correspond exactly to the groups that are administered by the Parameter Committee.


    • I didn’t understand the rationale for requiring 100% “Yes” votes to pass “Info” type governance actions? It seems they have the least potential to harm the system.

    Yes, it’s not about harming the system, since Info +actions have no direct effect on the operation of Cardano. The motivation is simply to record the actual level of support for the action.

    Once an action is enacted it’s no longer possible to vote on it. So if there was e.g. a threshold of 50%, then there is no way of telling whether the support for it might eventually have reached 90% or higher if it was not immediately enacted when the threshold was reached.


    Section: Content


    • For Hard-fork initiation, the changed parameters should probably also be required as part of Additional data.

    Protocol parameters can be changed in arbitrary ways by the hard fork and new ones might be introduced, so anything this action pins down might not actually be the value that will be present after the hard fork.


    Section: Protocol Parameter groups


    • It is a bit unclear to the reader what some of these parameters mean, for example: monetary expansion (rho) and treasury expansion (tau). Suggestion: Include brief explanations for the non-obvious parameters.

    These are existing protocol parameters, described in e.g. https://cips.cardano.org/cips/cip9/9 or The Cardano Protocol Parameters Guide.


    • With the current set of governance actions, it seems that it is not possible to add new types of protocol parameters, or categories of governance voting thresholds. Suggestion: Consider possibility of incorporating governance actions that allow addition of new protocol parameters, deletion of defunct protocol parameters, or modification of governance voting threshold categories.

    All of this needs to be done via a hard fork. If we had an action that added a parameter then there is no way of giving it semantics anyway, since that must be done by logic in the code.


    Section: Votes


    • Is a constitutional committee member also a DRep? If so, do they vote twice, once as a committee member and once as a DRep?

    They may or may not be (and they could also be an SPO). Note that this is fine, since these are completely separate tallies. This is also not preventable, since we don’t have an on-chain mechanism for identity. And yes, each credential gets to vote on each action for all roles in the governance system it has.


    Section: Separation of Hard Fork Initiation from Standard Protocol Parameter Changes


    • It is unclear whether there would be automated checks for whether a proposal is indeed a soft fork or hard fork, which would reduce human error in categorising proposals.

    There is no on-chain mechanism that could enforce this, the best we could do is some kind of certificate. However, this may not be trustworthy, of course. We will consider this in future versions of Voltaire.


    Section: Changes post Edinburgh workshop (July 2023)


    • “All governance actions are enacted one epoch after they are ratified.” - I’m not sure if this line is currently in the main body of the CIP?

    It is, but it is phrased differently: ‘All governance actions are enacted on the epoch boundary after their ratification.’


    Section: Reduced deposits for some government actions


    • Another downside of requiring endorsement from the constitutional committee is that this likely does not apply to constitutional committee-related proposals, such as no-confidence votes.

    Indeed. We have no plans for this at the moment.

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team made several impactful updates. They addressed +misleading errors regarding collect com transactions, resolved a security +advisory (CVE-2023-42806), and simplified the Hydra Head protocol by using +inline datums. The team also tackled minor inconsistencies in specifications and +implementation, documented reasons for potentially dropped close transactions by +the cardano-node, and collaborated with SundaeLabs on an offline mode for +hydra-node. Additionally, they engaged in discussions with researchers about +incremental de-/commits.

    What did the team achieve this week

    • Removed misleading errors about collect com transactions #839
    • Addressed security advisory CVE-2023-42806 in PR #1161
    • Changed the head protocol to use inline datums, simplifying things in the hydra-node #1162
    • Addressed minor inconsistencies in spec and implementation #1104
    • Documented why close transacations might be dropped by the cardano-node (cant fix) #1039
    • Tidy up a few things here and there
    • Worked with SundaeLabs on the offline mode for hydra-node
    • Discussed incremental de-/commits with researchers

    What are the goals of next week

    • Start work on incremental decommits protocol specification #1057
    • Provide support to Hypix
    • Address all open bugs
    • Release version 0.14.0 with this scope
    • Update dependencies to prepare for Conway #1114
    • Shepherd off-line mode PR over the finish line
    • Complete tidying up chain layer via stateless observation changes in hydra-node #1096

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: Release benchmarking for node 8.6.0 as well as benchmarks scrutinizing GHC versions and the new tracing system.
    • Development: PlutusV3 capability of our workload generator has been implemented.
    • Tracing: First round of optimization of the cardano-tracer service has completed, awaiting validation.
    • Nomad backend: A significant PR has landed addressing automation features and debugging capabilites.
    • Workbench: Configurable remote environments and improvements to run documentation have been merged to master.

    Low level overview

    Benchmarking

    We've performed and analyzed a full set of benchmarks for node 8.6.0, both in comparison to recent release tags +and mainnet version 8.1.2. A lot of development work has entered the system since then, so it is crucial +we can rule out any potential performance risks for the next mainnet release.

    Additionally, we've been benchmarking GHC9.6.3 builds of cardano-node. Overall, we've observed reliable optimization behaviour by that compiler version - which is much more in line with expectations than what we've seen on GHC9.2.7. Getting evidence on how predictable (and malleable, by code annotations) performance is when building with a certain compiler version is essential for settling on a version as supported release platform.

    A last set of benchmarks was dedicated to the new tracing system with node 8.6.0. We were able to show that +there is no performance risk to enabling the new system, even when forwarding all trace messages to a cardano-tracer +service on the receiving end. Key metrics for block forging, as well as block diffusion, did not exhibit any regression.

    Development

    For future benchmarks to be built around PlutusV3, we've equipped our transaction generator with basic integration and tests for the upcoming Plutus version. This enables us to target the new cost model and potential changes +to the execution budgets by developing specialized workloads.

    Tracing

    The cardano-tracer service has received its first batch of optimizations. Profiling output is promising; to measure +performance for a long service run time, we're currently equipping the service binary with the same capability to +emit regular resource traces as cardano-node. Analysis of those will be the basis for validating this and possible future optimization efforts.

    Nomad backend

    Many improvements for the nomad backend have been implemented and merged to master. This encompasses a unified naming schema for all nomad profiles, improved internal management of cluster topology, a more fine-grained healthcheck service, +more detailed automated documentation of underlying hardware, as well as lazy resource release. The latter enables +our team to investigate and debug interrupted runs for the exact moment and in the exact cluster state a potential failure occurred.

    Workbench

    Our performance workbench has seen upgrades in documenting and reporting cardano-node builds. This ranges from capturing package versions and commit ids of key dependencies, to querying a deployed node for its build compiler. +When alternating between compiler versions and benchmarking custom built branches, automating such documentation is essential.

    Furthermore, the workbench is now able to access several remote deployments on all active clusters. This allows for fetching data, analyzing, comparing and reporting on all benchmarks from just one centralized workbench instance.

    · One min read
    Marcin Szamotulski

    High-level overview of sprint 48

    Bootstrap Peers

    We continued reviewing bootstrap peers, ouroboros-network#4555.

    IOClasses / IOSim

    We prepared slides for a Haskell meetup were we presented a talk on IOSimPOR. +The recording will be availble on YouTube.

    We also used the opportunity to do some refactoring of the IOSim code base: io-sim#117. +We released io-sim-1.3.0.0 on Hackage: io-sim#119.

    We also added forkFinally to MonadFork (not included in 1.3.0.0 release): io-sim#123.

    Tech debt

    We refactored Resource used by the DNS subsystem: ouroboros-network#4707. +We continued reviewing the ouroboros-network#4625 PR, which refactors +RootPeersDNS module.

    · 2 min read
    Damian Nadales

    High level summary

    Over the last two weeks, we managed to run a UTxO-HD capable node in legacy mode, which maintains the baseline memory usage while keeping all the ledger state in memory (as the current node does). +This legacy mode could provide an alternative for releasing a UTxO-HD capable node where people can choose whether to store the large part of the UTxO set on disk or not. +However, legacy mode involves code duplication, requires several weeks of work before it is production ready (more integration and testing). Moreover, we will not release UTxO-HD before Conway to avoid the risk of delaying the latter. +On the other hand, to integrate the LSM-tree backend for UTxO-HD we need to redesign the Consensus storage layer, and this new design might enable us to implement an alternative in-memory backing store that will have a very similar performance and resource requirements as the current Cardano node. +Therefore, during the coming months we will focus our efforts on the redesign of the storage layer and the LSM-tree backend.

    On the Genesis front, we reviewed the peer simulator for Genesis tests, which was implemented by Tweag and was signed-off by the Consensus team.

    We also continued our work on improving the handling of blocks from the future. We presented possible approaches to handling blocks from the future in the Chief Scientist Meeting at IOG, which was very well-received. The discussion with the IOG scientists touched upon the relationship of this approach to Ouroboros Chronos.

    Javier Sagredo continues his cycle as release engineer, and he is working on version 8.7 of Cardano node.

    + + + + \ No newline at end of file diff --git a/page/3/index.html b/page/3/index.html new file mode 100644 index 0000000000..8ea19e2079 --- /dev/null +++ b/page/3/index.html @@ -0,0 +1,42 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 4 min read
    Michael Karg

    High level summary

    • Benchmarking: Release benchmarks for Node 8.12.0; DRep benchmarks with 100k DReps.
    • Development: Merged a performance fix on 8.11; kicked off development of governance action workload.
    • Workbench: Adjusted automations to latest 8.12 Conway features and Plutus cost model; implementation of CIP-69 and CIP-117 for our tooling is in validation phase.
    • Tracing: Work on metrics naming ongoing. Factoring out RTView component is completed and has entered testing.
    • IOI Tech Meetup: Our team contributed two presentations at the meetup in Zurich; worked on community report of UTxO scaling benchmarks.

    Low level overview

    Benchmarking

    We've run and analyzed a full set of release benchmarks for Node versions 8.12.0. In comparison with the latest mainnet release 8.9.3, we could not observe any regressions. In fact, 8.12.0 was able to deliver equal network +performance at a slightly reduced resource cost - both for CPU and memory.

    Another benchmark of the Conway ledger with large amounts of DReps has been performed. This time, 100000 DReps were chosen - this amount aims to simulate a scenario where lots of self-delegation takes place. While a performance +impact is observable in this instance, we can still see that the number of DReps scales well overall, and poses no concern for network peformance.

    Development

    We have contributed and merged a performance fix on 8.11 which adresses a regressing metric in the forging loop. The regression was only observable under specific conditions. Benchmarks on 8.12 +have already confirmed the fix to be successful.

    We've kicked off governance action workloads for benchmarking. This will be an entirely new workload type for Conway era, targeting performance measurements of its decentralized decision making process. The workload will feature +registering proposals, acting as multiple DReps to vote on active proposals, vote tallying and proposal enactment. We're very grateful for the Ledger team's helpful support so far in creating a workload design for benchmarking - one that evenly stresses +the network over extended periods of time.

    Workbench

    The workbench automations have been upgraded to handle Node 8.12 and the corresponding integrations of Cardano API and CLI.

    Furthermore, we've updated to the latest PlutusV3 costmodel in our benchmarks - as well as implemented CIP-69 and CIP-117 for all our PlutusV3 benchmarking scripts, pending validation by the Plutus team.

    Tracing

    The work on aligning of metrics naming and semantics of new and legacy tracing is ongoing. Additionally, we're adding a handful of metrics to the new tracing system which currently exist in legacy tracing only.

    Factoring out the RTView ("real-time view") component of cardano-tracer in the new tracing system has finished. This includes a considerable refactoring of cardano-tracer's codebase, so that we're currently running test on the new codebase. Isolating +RTView is due to its being in prototype stage for too long, and the design decisions taken. In the short term, this will make several package dependencies optional, which have become troublesome for CI, as well as making cardano-tracer more lightweight. +RTView remains as an opt-in.

    IOI Tech Meetup

    Our entire team traveled to Zurich, Switzerland to attend ZuriHac'24 and the IOI Tech Meetup. It was fantastic to meet everyone in person, and we all had an amazing and very productive time. A big Thank You to everyone involved in making that happen, and making it a success.

    We contributed two presentations for the meetup: a thourough introduction of the new tracing system aimed at developers - as it's not tailored exclusively to cardano-node, but can be used in other (Haskell) services as well. And secondly, +an overview over the benchmarking framework based on Quantitative Timeliness Agreements which we're building - as well as a show-and-tell of our prototype, implementing part of said framework. We're grateful for the great interest and feedback from all +the participants.

    Last not least, we worked on creating a community report of the UTxO scaling benchmarks performed during March and April - to be released soon.

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Major milestone was reached this period. We've implemented +CIP-0069 that improves +PlutusV3 functionality by making spending datums optional and enforcing all scripts to +have exactly one argument. This feature allows for spending scripts to be usable for other +purposes, like minting for example.

    Couple of important bugs have been fixed:

    • Script execution for certificates with the same plutus script did not execute correctly.
    • Prevent delegation to a non-existent pool.

    With this feature complete and a few bug fixes we were also able to mark Conway era and +CIP-1694 as feature +complete and ready for release. Naturally, testing of Conway era will continue all the way +into the hard fork.

    Low level summary

    Conway

    • pull-4374 - CIP-0069
    • pull-4394 - Fix Certifying Redeemer issue
    • pull-4400 - Check that the pool being delegated to exists for ConwayDelegCert
    • pull-4409 - Update to plutus-ledger-api-1.30

    Testing

    • pull-4384 - Re-enabled Full NewEpochstate test
    • pull-4397 - Add a lens to HasSubState
    • pull-4399 - New simple examples for maps
    • pull-4403 - constrained-generators: Add lookup_ for maps
    • pull-4414 - constrained-generators: Hotfix failing test
    • pull-4411 - constrained-generators: introduce a hook for naming variables

    Infrastructure and releasing

    • pull-4424 - GHA: Downgrade the version of actions/upload-artifact
    • pull-4426 - Take care of all compiler warnings for GHC-9.8
    • pull-4407 - Change the default ghc version to 9.6.5
    • pull-4416 - Bump urllib3 from 1.26.18 to 1.26.19 in /doc

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They implemented a warmup strategy for the signer and aggregator to begin importing transactions as early as possible, thus minimizing the impact of network activation on certification. They also significantly improved the throughput of the prover route of the aggregator by addressing database access bottlenecks. Additionally, the team made progress on low-latency certification by completing the handling of chain rollbacks and nearly completing the retrieval of transactions using the chain sync mini-protocol and Pallas.

    Finally, they made final modifications to the threat modeling explainer for the documentation website, which will be released shortly, and worked on a bug that occurs when parsing some blocks of the SanchoNet network.

    Low level overview

    • Completed the issue Handle rollbacks in Cardano transactions #1724
    • Completed the issue Pooled resources should be reset when given back #1743
    • Completed the issue Lock signature of signed entity types during warm-up #1693
    • Completed the issue Warmup import Cardano transactions at node startup #1692
    • Completed the issue Build, test and package arm64 binaries in CI #1751
    • Worked on the issue Threat modeling and risk analysis #1350
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue Import Cardano transactions by sequences of block ranges #1766
    • Worked on the issue Implement database connection pooling for Cardano transaction repository #1760
    • Worked on the issue Cardano signatures are not produced on testing-sanchonet #1750

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released the new distribution 2423.0, which includes the removal of the snaphot command of the client CLI, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks and improved the throughput of the prover route of the aggregator by fixing some bottlenecks in the Merkle proof computation. Additionally, the team made progress on low-latency certification by working on the retrieval of the transactions with the chain sync mini-protocol and Pallas, as well as the handling of rollbacks of the chain.

    Finally, they kept working on the threat modeling explainer for the documentation website and provided support for multiple TLS implementations in the client library thanks to a community contribution.

    Low level overview

    • Released the new distribution 2423.0
    • Publication of a dev blog post about the removed Mithril client CLI 'snapshot' command
    • Completed the issue Client verification fails with an already stored but non certified yet transaction #1719
    • Completed the issue Computation of Merkle proof has bottleneck with multiple transactions #1730
    • Completed the issue Automatic rollback on SQL transactions #1741
    • Completed the issue Allow the underlying TLS implementation to be selectable when using a library. #1737
    • Completed the issue Release 2423 distribution #1695
    • Completed the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    • Worked on the issue Handle rollbacks in Cardano transactions #1724
    • Worked on the issue Pooled resources should be reset when given back #1743
    • Worked on the issue Threat modeling and risk analysis #1350
    • Worked on the issue Import Cardano transactions with ChainReader #1705

    · One min read
    Daniel Firth

    High-level Summary

    This sprint, the Hydra team updated the node to be compatible with cardano-node 8.11-pre. We continued work on increment decommits, investigating adversarial attacks on the smart contract and preparing it to be merged. We also discussed options for the incremental commit work, including designs for a hydra-ledger.

    Next sprint we aim to merge incremental decommits and make further progress on the incremental commit design.

    What did the team achieve this sprint?

    • Update to cardano-node 8.11-pre #1439
    • Allow committing internal wallet utxos #1442
    • Rewrite introduction section and fknown issues section. #1451
    • Make specification editing in markdown possible #1187
    • Fix ignored hydra-plutus tests #1458
    • Re-open internal head with blueprint commits.

    What are the goals of the next sprint?

    • Incremental decommit #1057
    • Make progress on the design for incremental commit #199
    • Test combinations of decrement/close/fanout #1390
    + + + + \ No newline at end of file diff --git a/page/30/index.html b/page/30/index.html new file mode 100644 index 0000000000..5852da99de --- /dev/null +++ b/page/30/index.html @@ -0,0 +1,56 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team completed the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof-of-concept, achieving the implementation of P2P signatures broadcast with the relay in the end-to-end tests. Additionally, the team completed the proof-of-concept for the deterministic computation of the UTXO/transactions set from the immutable files.

    Finally, they continued addressing some performance issue associated with the 'release-mainnet' aggregator, and fixed a bug with the tool used to process batch certificate hash re-computation.

    Low level overview

    • Worked on the issue Prototype a P2P relay with libp2p #1300
    • Completed the issue Light Wallet: Release mithril-client library #1311
    • Completed the issue Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283
    • Completed the issue release-mainnet aggregator is unreachable #1310
    • Completed the issue Fix certificate hashes re-computation in aggregator #1343
    • Completed the issue Remove unstable tag in unstable release #1235
    • Worked on the issue Enhance aggregator REST API performances #1327
    • Worked on the issue Signer runtime is stuck for some SPO #1312

    · 2 min read
    Carlos LopezDeLara

    2023-11-01 - 2023-11-14

    High level summary

    CARDANO-NODE

    CARDANO-CLI

    • Improve golden tests
    • Clean-up of conway era commands

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and working on a +performance modelling paper

    Details

    • completing work on chain sync mini-protocol

    • specifying correctness property of chain sync mini-protocol

    • creating diagrams for JLAMP paper

    • finalising structure of JLAMP paper

    · 2 min read
    Sebastian Nagel

    High-level summary

    The last two weeks, the Hydra team achieved several milestones. They published +the monthly report for October, providing updates on project developments. The +team delivered a presentation and workshop at the Cardano Summit, contributing +to community engagement. They implemented a \"dirt road\" solution for the +\"Ignored init tx\" notification and moved the hydra-poll example project to a +dedicated repository. Additionally, the team built a hydra-chain-observer tool +for Hydra Heads, updated the toolchain to GHC 9.6.3, and made various +improvements to tooling and code formatting. They addressed specific issues, +such as fixing the gen-hydra-keys command and resolving concerns with the +rewritten hydra-tui. The team also enhanced the hydra-cluster smoke test +suite by fetching network configurations dynamically. Lastly, they actively +reviewed pull requests and architectural decision records from the community, +including contributions from SundaeSwap. An experiment, the Hydra tally, was +completed and successfully deployed to the mainnet by the Cardano Foundation.

    What did the team achieve this week

    • Published the monthly report for +october
    • Given a presentation / workshop at the Cardano summit +#1109
    • Dirt road implementation for \"Ignored init tx\" notification +#529 (without +stateless observation)
    • Completed and moved hydra-poll example project into a +dedicated +repository
    • Built a first version of a chain observation tool for Hydra Heads +#1096
    • Switched toolchain to GHC 9.6.3 and various improvements on tooling +and code formatting +#1135#1152#1151#1154
    • Fix gen-hydra-keys command to not overwrite existing +keys #1136
    • Fixed the rewritten hydra-tui#1113#1137
    • Fetch network configurations instead of packaging them into +hydra-cluster (smoke) test suite +#1156
    • Reviewing PRs and ADRs from the community (SundaeSwap) +#1118#1157
    • Hydra tally experiment (Cardano Foundation) deployed to mainnet

    What are the goals of next week

    • Tackle reported bugs
    • Shepherd contributed off-line mode PR to the main codeline
    • Improve chain observation tool to include more data and refactor +existing code towards more stateless observation
    • Start work on incremental decommits

    · 3 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-world testnets of preprod, preview, sanchonet and some private test chains have largely completed their migration to the cardano-playground stack

    Lower level summary

    Capkgs

    Cardano-parts

    • General migration support PR for cardano-world to cardano-playground cardano-parts-pull-18
      • Iohk-nix and iohk-nix-ng were updated support the migration of cardano-world networks to cardano-playground
      • Sops-secrets dependent systemd services were fixed to ensure restart upon sops secrets changes
      • Db chain utilities (db-{analyser,synthesizer,truncater}) had -ng variants created to operate on both release and pre-release network chains
      • The profile-cardano-postgres nixos module received preset variables and prepared statements via pgsqlrc for faster and easier analysis of network state
      • The flakeModule jobs now has support for the cardano-cli era command in each of the job scripts by passing the $ERA_CMD variable
      • Default cardano-node-ng package is now 8.6.0-pre, dbsync on sanchonet is now sancho-2-2-0
      • For scripts using a nix-shell shebang, the cardano-parts devShell menu can be disabled from injecting itself into stdout by passing NOMENU=true
      • Template updates include:
        • Adds optional TF AZ declaration on ec2 resources
        • Adds a cardano node p2p dashboard to the grafana cloud stack
        • Adds a dbsync pool performance analysis query
        • Updates python distribute and delegation scripts from world for playground compatibility
        • Starts a python script lib to reduce shared code among the python scripts
        • Several justfile improvements and new recipes
      • More detail is available in the PR description
    • Update submit action script for 8.6 cardano-parts-pull-19
    • Update scripts for 8.6.0-pre cardano-parts-pull-21
      • Fixes subcommand names based on ERA_CMD
      • Adds deposits to some commands
      • Separates CC cold/hot key generation as host authorization has to occur after action is approved
      • CC voting enabled in vote job

    Cardano-playground

    • Migration PR to largely complete the network migration from cardano-world to cardano-playground: cardano-playground-pull-5
      • Adds re-spun private chain network
      • Migrates shelley-qa chain network from world
      • Justfile improvements and new recipes
      • Improve concurrent environment chain support
      • More detail is available in the PR description

    Iohk-nix

    • Migration to play: iohk-nix-pull-561
      • Migrate cardano-lib networks from world.dev.cardano.org to play.dev.cardano.org
      • Remove deprecated cardano-lib p2p network environment
      • Update sanchonet chain with respin changes
      • Update private chain with respin changes
      • Bump private and shelley-qa chains to sanchonet equivalent conway genesis
      • Bump preview, preprod chains to sanchonet equivalent conway genesis for node 8.6.0-pre pre-release testing

    Sanchonet-demo

    + + + + \ No newline at end of file diff --git a/page/31/index.html b/page/31/index.html new file mode 100644 index 0000000000..dc26697741 --- /dev/null +++ b/page/31/index.html @@ -0,0 +1,46 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Kostas Dermentzis

    High level summary

    We have created new tag sancho-2-2-0, which integrates missing Conway feautures and some minor fix +tags sancho-2-1-0, sancho-2-0-1. +We have completed the initial implementation for the bootstrap instance objective.

    Lower level summary

    • Add a new --disable-gov flag which disabled Conway ferautures +#1558
    • Fix of the committee key size +#1544
    • Workaround a ledger issue with unregistered pools +#1542
    • Implemented a mechanism that loads the UTxO from the ledger resulting is way faster syncs +#1539
    • Rename offline to offchain +#1533
    • Transfer existing tests to Conway era +#1529#1547

    · 3 min read
    Alexey Kuleshevich

    High level summary

    This update contains mostly improvements to quality of Conway era implementation and +tooling that we use for testing Ledger. Major Conway bugs that were discovered and +squashed are:

    • PParamsUpdate proposals will now correctly use DRep thresholds for ratification
    • Treasury withdrawals are now properly enacted.
    • Corrected snapshotting and DRep Stake Distribution Pulser initialization
    • Delegation to non-existent Stake pool is no longer possible

    Other important quality of life improvements are addition of reusable interfaces for an +ordered set OSet and ordered map OMap. Which allowed us to disable duplicate +certificates and proposals in a transaction. As a precursor to PlutusV3 integration, a +serious reorganization of Plutus related functionality was performed.

    Conway related additions that are noteworthy: Conway Ledger events, disallowing voting on +expired proposals, addition of Anchor to Constitutional Committee resignation proposals.

    Significant improvements have been made to a specialized "Imp" test library that allows us +writing concise stateful unit tests for verifying the Ledger logic. Serious progress has +been made on the conformance testing, where we can now interface with Haskell generated +code from the Agda specification. Serialization testing has been extended to increase +binary conformance coverage.

    Low level summary

    Conway

    • pull-3808 - Enhance CommitteeMembersState query to return quorum and NoConfidence
    • pull-3801 - Fix epoch rule and tests
    • pull-3803 - Fix delegation validation
    • pull-3759 - Reshuffle things to the DRepPulser incorporates some snap shot things
    • pull-3779 - Prevent duplicate certs and proposals
    • pull-3794 - Added anchor to resign certs
    • pull-3797 - Cleanup JSON instances for Conway governance
    • pull-3848 - Plutus modules restructure
    • pull-3840 - Fix anomalies in Deposits in the Conway Era
    • pull-3856 - Add governance related ledger events
    • pull-3825 - Prevent voting on expired GovActions
    • pull-3831 - Treasury withdrawal fix
    • pull-3791 - Use a Data.OMap.Strict to replace ProposalsSnapshot
    • pull-3836 - PParamsUpdate enactment fix
    • pull-3846 - Revert argument order swap.

    Testing

    • pull-3782 - Move ImpTest to Shelley testlib
    • pull-3842 - Imp improvements
    • pull-3844 - Add mappings to Agda types
    • pull-3853 - Fix strange assertion failure, which hides real Block too big problem.
    • pull-3809 - CDDL roundtrip testing
    • pull-3832 - Treasury withdrawals tests
    • pull-3839 - Added cardano-ledger-conformance
    • pull-3841 - Add sha256 to cardano-ledger-executable-spec

    Improvements and releasing

    • pull-3843 - Add ...WithLogs versions of evalScripts and friends
    • pull-3795 - Bump plutus to 1.15
    • pull-3798 - Bump urllib3 from 1.26.17 to 1.26.18 in /doc
    • pull-3799 - Changes needed for 8.6 release
    • pull-3807 - Add invalidBeforeL and invalidHereAfterL functions
    • pull-3819 - Fixups needed for a release
    • pull-3829 - Post release CHANGELOG version bumps
    • pull-3830 - Bump aeson to 2.2
    • pull-3833 - Backport release cardano-ledger-conway-1.10.1.0
    • pull-3828 - Add changelog for node release 8.6

    · One min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued working on completing the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, achieving the implementation of a very basic working demo with a peer-to-peer publish-subscribe (pub-sub) mechanism. Additionally, the team continued working on the deterministic computation of the UTXO/transactions set from the immutable files.

    Finally, they resolved the naming issue of the Docker package responsible for storing images of the new Mithril client CLI, and continued addressing a performance issue associated with the 'release-mainnet' aggregator.

    Low level overview

    • Worked on the issue Prototype a P2P relay with libp2p #1300
    • Worked on the issue Light Wallet: Release mithril-client library #1311
    • Worked on the issue Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283
    • Worked on the issue release-mainnet aggregator is unreachable #1310
    • Completed the issue Client Docker package is incorrect #1322

    · One min read
    Damian Nadales

    High level summary

    This week the Consensus team made progress on two fronts: the question of survivable eclipse duration, which is part of our work supporting Genesis delivery, and how to improve the handling of blocks from the future. +Regarding the UTxO-HD branch, we managed to run a node with legacy blocks, which is syncing with mainnet, up to including Alonzo. +We also investigated a regression in mempool snapshotting, which was ultimately solved by a Ledger update, and will be fixed in the upcoming Node 8.6 release.

    · One min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept. They progressed with the adaptation of the Mithril client as a library, and worked on its full WASM compatibility in a proof of concept. The team kept working on the deterministic computation of the transactions from the immutable files, and fixed some unreachability issue on the release-mainnet aggregator.

    Finally, they implemented new Docker images that build the Mithril nodes on the 'devnet' faster and fixed some regressions in the Mithril client CLI.

    Low level overview

    • Worked on the issue P2P Networking - Proof of Concept #1300
    • Completed the issue Build mithril-common and mithril-client in WASM PoC #1284
    • Completed the issue Fix devnet Mithril Docker images [#1272](https://github.com/input-output-hk/mithril/issues/1272
    • Worked on the issue Light Wallet: Release mithril-client library #1311
    • Worked on the issue Compute deterministic Cardano UTxO set PoC #1283
    • Worked on the issue release-mainnet aggregator is unreachable #1310
    • Completed the issue Client regressions in snapshot list and download #1321
    + + + + \ No newline at end of file diff --git a/page/32/index.html b/page/32/index.html new file mode 100644 index 0000000000..749cdf5843 --- /dev/null +++ b/page/32/index.html @@ -0,0 +1,50 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and writing a paper +on performance modelling

    Details

    • completing work on chain sync mini-protocol

    • outline for JLAMP journal paper submission

    • analysing timeouts

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team fixed the gen-hydra-keys command to avoid +overwriting existing keys, and resolved issues related to the rewritten +hydra-tui. They also worked on a \"dirt road\" implementation for the +\"Ignored init tx\" notification, improving the robustness of the system.

    The team finalized preparations for the Cardano Summit presentation, including +implementation of the hydra-poll example DApp.

    If you happen to read this and attend the Summit in Dubai, make sure to check +out our Masterclass about \"Developing Hydra + Mithril for Scaling Cardano\" on +Friday, November 3 at 14:00-15:30 local time in the \"Al Dar\" room!

    What did the team achieve this week

    • Fix gen-hydra-keys command to not overwrite existing keys +#1136
    • Fixed the rewritten hydra-tui#1113#1137
    • Finalized cardano summit preparation +#1109
    • Implemented the hydra-poll example DApp link to +repository
    • Dirt road implementation for \"Ignored init tx\" notification +#529

    What are the goals of next week

    • Attend cardano summit and deliver presentation
    • Clarify / close user created issues
    • Build aarch64-darwin binaries in CI

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 47

    Bootstrap Peers

    We continued to review the process of bootstrap peers, see ouroboros-network#4555

    CI / Tests

    We investigated our CI issues. We found a memory leak in typed-protocols +function used for testing codecs which triggered out of memory manager (OOM) on +some platforms (typed-protocols#43); we also found a bug in the connection manager which resulted in CI +timeouts (see connection-manager-fix).

    KeepAlive client

    We found two small issues with the keep-alive client, which were addressed +by Karl Knutsson (Cardano Foundation), ouroboros-network#4689.

    Galois

    We merged two large PRs prepared by Galois:

    Cardano Network Service Assurance (CNSA)

    Galois made the following progress on CNSA:

    • a simple [InfuxDB] database backend has been added;
    • the documentation has been updated;
    • internal improvements to the code;
    • progress on a new "CSNA analysis" that provides, for each sampler node, the +block download throughput in bytes over time.

    New CHaP Release

    We cut a new release of ouroboros-netowrk packages to CHaP: chap#547

    More details

    CI / Tests

    We improved the memory footprint of some of our tests by analysing a stream of +IOSim traces without retaining them, see ouroboros-network#4696

    As a safety measure, we introduced an upper bound for heap memory used by test +artefacts in our nix tests. We use 200MB limit for all tests except for +network-mux tests which use 350MB limit, see ouroboros-network#4702.

    We refactored one of our tests to use ephemeral ports thus allowing it to +run concurrently, see ouroboros-network#4702.

    We merged ouroboros-network#4623 which fixes a bunch of test failures.

    All of them were due to a bug in test logic rather than a bug in production +code.

    Release Process

    We updated our release process & associated scripts, see +ouroboros-network#4705.

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-world testnets of preprod, preview, sanchonet and some private test chains are in the process of being migrated to the cardano-playground stack

    Lower level summary

    Capkgs

    • Adds offchain-metadata-tools, dbsync sanchonet updates: capkgs-compare

    Cardano-parts

    • General package updates, modules improvements and template recipes to support network migration from world to playground cardano-parts-pull-17
      • Bumps cardano-db-sync-ng to sancho-2-0-0 tag
      • Bumps iohk-nix-ng to mig-sancho branch for sanchonet pool migration from world to play
      • Adds more machine system bins and devShell bins for scripting and debug purposes
      • Adds cardano-show-kes-period alias on any node machine importing profile-cardano-node-group module
      • Adds profile-cardano-node-topology module for a simplified interface to most common topology needs
      • Adds a job-delegate-rewards-stake-key job as an optional follow on to pool creation and registration jobs
      • Adds a topology function to filter self from group machines with an allowList for matching infixes
      • Adds metadata-server and related offchain-metadata-tools bins from capkgs
      • Updates justfile template with:
        • a new query-all recipe for getting status of multiple concurrent running environments
        • a new set-default-cardano-env recipe for fast switching between environments
        • a new start-demo recipe for forking a custom env into conway
        • a new start-node recipe for generic environment start
        • a new stop-node recipe for generic environment stop
        • updated list-machines recipe for handling of empty nixos machine config and empty ssh_config conditions
        • updated query-tip recipe to a generic query tip compatible with each environment

    Cardano-playground

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released a new distribution 2342.0. This release includes support for SPO tickers displayed in the Mithril explorer and the ability to produce slim Docker images for Mithril nodes.

    They also kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, progressed with the adaptation of the Mithril client as a library, and worked on the deterministic computation of the UTXO set from the immutable files.

    Finally, they fixed the bottleneck of the key registration in the aggregator, investigated some unreachability on the release-mainnet aggregator, and enhanced the Mithril explorer UI.

    Low level overview

    • Worked on the issue P2P Networking - Proof of Concept #1300
    • Completed the issue Make mithril-client crate a library #1141
    • Worked on the issue Compute deterministic Cardano UTxO set PoC #1283
    • Completed the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
    • Worked on the issue Fix devnet Mithril Docker images #1272
    • Worked on the issue release-mainnet aggregator is unreachable #1310
    • Worked on the issue Build mithril-common and mithril-client in WASM PoC #1284
    • Completed the issue Display a summary of signers before the full list in explorer #1133
    • Completed the issue Add certificates list in explorer #1184
    • Completed the issue CoreVerifier setup does not compute total_stake correctly #1306
    + + + + \ No newline at end of file diff --git a/page/33/index.html b/page/33/index.html new file mode 100644 index 0000000000..b90bc2758c --- /dev/null +++ b/page/33/index.html @@ -0,0 +1,34 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Carlos LopezDeLara

    2023-10-11 - 2023-10-24

    High level summary

    CARDANO-CLI

    • Disambiguate cardano-cli stake credential related flags on treasury withdrawal governance actions making it easy to identify which is used for the deposit refund and which for the destination of the funds from the treasury if the action is ratified.
    • stake-address-info now shows deposits balance.
    • Added conway governance action view to allow to inspect governance action files before submitting them on a transaction.
    • build-raw support for --vote-file and --proposal-file

    CARDANO-API

    • Support DRep extended keys
    • Support Plutus V1 in Conway

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team mainly focused on preparing a masterclass and workshop for #CardanoSummit2023.

    In addition, they improved the Hydra node API's submit-transaction endpoint to accept three different encoding types: Base16 encoded CBOR string, TextEnvelope type, and JSON. +This improvement offers users greater flexibility and ease of interaction with the API.

    Finally, the team has followed up on the TUI brick upgrade to version 1.10. +This effort has resulted in addressing minor details and enhancing the overall user experience with the TUI.

    What did the team achieve this week

    • Prepare presentation and workshop for Cardano Summit.
    • More TUI fixes and improvements.
    • Upgrade GHC from 9.2.8 -> 9.6.2 #1105
    • Solved user issue related to submitting transactions in cbor format #1111.
    • Fix hydraw connection issue making it more stable #1121.

    What are the goals of next week

    • Work on hydra-poll dApp for Cardano summit.
    • Start the work on packaging hydra-node and related services.

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks the Consensus team received additional benchmark results for the UTxO-HD feature that show the resource usage for the in-memory backend is not satisfactory for a mainnet release, and we need to wait on the implementation of a new infrastructure to benchmark the LMDB backend (not likely to happen before next year). While we wait on this, we are evaluating the feasibility of making the UTxO-HD feature switchable, which will enable us to release it as an experimental feature. On the Genesis front we produced the first draft for a Survivable Eclipse Duration Model. We released version 8.5.0 of Cardano node, resumed work on subpar handling of blocks from the future, and improved our tracing system to assist problem troubleshooting in the node.

    UTxO-HD

    • The Plutus workload benchmark for the in-memory backend showed no regressions for the metrics of interest, but it does show an increase in resource usage.
    • We got additional ad-hoc measurements on memory UTxO-HD consumption. The memory usage of the in-memory backend is not satisfactory for a release. The memory usage of the LMDB backend is considerably lower, but we need to see how much lower we can bring it by running a node whose memory is constrained to 8GB.
    • We resumed work on an alternative solution that will make the UTxO-HD switchable. This will enable us to keep the baseline performance by totally disabling UTxO-HD, while allowing users to experiment with the feature if they wish to do so.

    Genesis

    • We produced the first draft for a Survivable Eclipse Duration Model (422).

    Support

    • Esgen finished his cycle as release engineer. Node 8.5.0 has been released.
    • We resumed work on the subpar handling of block from the future (4251).
    • We prepared the integration of new tracing events for the next node release. These tracing events will help debugging potential issues in the node (such as the previously mentioned issue).

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team started working on the decentralization of the Mithril networks with a proof of concept of peer-to-peer (P2P) networking between nodes. The team kept working on the adaptation of the Mithril client as a library, on the deterministic computation of the transaction history of an address from the immutable files, and on the refactoring that will fix the bottleneck of the key registration in the aggregator. Additionally, they published a security advisory for the Mithril relay.

    Finally, they enhanced the CI/CD to publish multiple packages to crates.io and started improving the developer experience with the Mithril devnet.

    Low level overview

    • Published the security advisory Mithril relay could expose Cardano block producer internal IP when updated #GHSA-9m3h-72xj-x2gq
    • Worked on the issue P2P Networking - Proof of Concept #1300
    • Worked on the issue Make mithril-client crate a library #1141
    • Worked on the issue Compute deterministic Cardano transactions history PoC #1283
    • Worked on the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
    • Completed the issue Publish multiple packages to crates.io #1298
    • Completed the issue Rename public key published in releases #1292
    • Completed the issue Mithril networks infrastructure maintenance #1218
    • Worked on the issue Fix devnet Mithril Docker images #1272

    · One min read
    Marcin Szamotulski

    High-level overview of sprint 46

    Bootstrap Peers

    We continued reviewing of bootstrap peers, see ouroboros-network#4555.

    Towards Typed Protocols 0.2.0.0

    We diagnosed the performance regression of the new design. The work on +typed-protocols will be postponed. For more details see the +typed-protocols#3. As an outcome of the performance debugging we prepared +PR which updates the demo-ping-pong and +demo-chain-sync applications.

    Peer Sharing

    We made progress in review of ouroboros-network#4644, which simplifies the +peer sharing and fixes the ouroboros-network#4642 issue.

    Tech Debt

    We reviewed the ouroboros-network#3836 PR which inspects all the uses of +error in ouroboros-network. The PR was prepared by Galois.

    + + + + \ No newline at end of file diff --git a/page/34/index.html b/page/34/index.html new file mode 100644 index 0000000000..656ccac34a --- /dev/null +++ b/page/34/index.html @@ -0,0 +1,36 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and testing the +performance analysis tool

    Details

    • extending thorn-calculus to support synchronous channels

    • extending mini-protocol framework to support communication with the +environment

    • working on chain sync mini-protocol

    • planning for JLAMP journal paper submission

    • analysying any-to-finish

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team's primary focus was on finalizing the new network resilience layer. This involved adding persistency to ensure data integrity.

    They also completed the exploration of potentially moving the Plutus validator scripts to Aiken.

    Additionally, the team dedicated some attention to our TUI by upgrading the Brick framework. They also undertook a comprehensive refactoring of the project's structure and addressed various bug fixes. These efforts are aimed at enhancing the overall user experience of our project.

    What did the team achieve this week

    • Network Resilience Persistence (#1101)[https://github.com/input-output-hk/hydra/pull/1101].
    • Upgrade brick on TUI (#1103)[https://github.com/input-output-hk/hydra/pull/1103].
    • Aiken commit validator translation (#1072)[https://github.com/input-output-hk/hydra/pull/1072].
    • Fixed some bugs in our TUI client.

    What are the goals of next week

    • Prepare presentation and workshop for Cardano Summit.
    • Work on hydra-poll dApp for Cardano summit.
    • Start the work on packaging hydra-node and related services.

    · One min read
    Alexey Kuleshevich

    High level summary

    The Ledger team has been shifting focus from implementing Conway related features to +testing. For this reason there is a very little amount features that are reported this +time aorund. Notable Conway related changes are a specialized ledger query for getting +Constitutional Committee state and prevention of submitting proposal procedures that have +no valid path to enactment.

    Testing related work was mainly on a constraint base system as well as on roundtrip +serialization. As a result of this extra testing a bug in Conway Genesis serialization +was eliminated.

    Low level summary

    Conway era

    Integration and releasing

    Testing

    • pull-3769 - Add roundtrip testing by validating FlatTerm
    • pull-3783 - Update TranslationInstance.hs
    • pull-3775 - Refactor and improve constraint based STS tests
    • pull-3793 - Fix sums with negative RHS.

    · 3 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet environment was updated to 8.5.0-pre.
    • Cardano-parts now supports cardano-db-sync, cardano-smash, cardano-faucet and grafana cloud monitoring

    Lower level summary

    Capkgs

    • Various improvements and fixes including:
      • Add GHA cron schedule
      • Add nix auto-gc to avoid running out of storage during large package set builds
      • Add new packages to capkgs
      • Reduce runner storage requirement leaving more room for builds
      • Restructure capkgs attribute names to avoid package name collisions
      • Return to non-musl builds for cardano packages to retain journald compatability
      • Update cache usage to from file level to folder level to reduce network and latency overhead
      • Commit diff: capkgs-compare

    Cardano-parts

    • Updates cardano-node-ng to 8.5.0-pre and adds a Conway era automation job: cardano-parts-pull-16
    • Dbsync, smash, faucet and more: cardano-parts-pull-15
      • Adds cardano-db-sync, cardano-faucet, cardano-postgres, cardano-smash, profiles and/or services and related changes
      • Adds nginx vhost metrics exporter profile
      • Adds smash registered-relay-dump service and exporter for use until legacy relay nodes are scaled down
      • Adds bash *-ng autocompletion compatible wrappers
      • Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview
      • Adds downstream grafana cloud dashboard as templates
      • Adds downstream grafana cloud alerts as templates
      • Updates grafana-agent profile with new exporter scrape hooks: cardano-db-sync, cardano-faucet, nginx-vts, varnish
      • Updates the basic profile with IOG cache and commonly used bins
      • Updates the pre-release profile to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning
      • Updates flakeModule jobs with new conway era automation and additional IO encryption shimming and file type checks
      • Updates .sops.yaml template for supporting faucet secrets, workbench secrets, state-demo secrets
      • Updates the Justfile template with terraform fixes for workspace switching and provider auto-reconfiguration
      • Updates the cloudFormation terraformState template with stack modifications to preserve all resources in case of deletion
      • Updates the colmena template with dbsync, smash, faucet machines profiles and roles
      • Improves prior cardano-postgres modules to now automatically tune pg parameters based on machine cpuCount, memMiB and desired conns
      • Bumps capkgs node-ng to 8.5.0-pre

    Cardano-playground

    • Dbsync, smash, faucet and more: cardano-playground-pull-3
      • Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview
      • Adds dbsync, smash, faucet machines and corresponding metrics exporters, dashboards and alerts
      • Moves the flake.cardano-parts.cluster.group attrSet name to groups to accurately reflect the plurality and the upstream corresponding change
      • Optimizes machine sizes
      • Updates .sops.yaml for supporting faucet secrets, workbench secrets, state-demo secrets
      • Updates the cloudFormation terraformState file with stack modifications to preserve all resources in case of deletion
      • Updates the cluster isNg definition to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning
      • Updates the Justfile with terraform fixes for workspace switching and provider auto-reconfiguration

    Cardano-world

    Sanchonet-demo

    • Update for cardano-node 8.5.0, conway job recipes and cardano-parts interface changes: sanchonet-demo-commit

    · One min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team worked on the distribution of the Mithril client as a library that will be distributed on crates.io, the Rust dependencies repository. The team also worked on the deterministic computation of the transaction history of an address from the immutable files and started fixing a bottleneck in the aggregator that limits the ingestion of signatures.

    Finally, they kept working on the activation of Cloudflare on the infrastructure and fixed some bugs in the Nix CI.

    Low level overview

    • Worked on the issue Make mithril-client crate a library #1141
    • Worked on the issue Compute deterministic Cardano transactions history PoC #1283
    • Worked on the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
    • Completed the issue Update Rust compiler in nix CI #1282
    • Worked on the issue Mithril networks infrastructure maintenance #1218
    • Worked on the issue Activate Cloudflare protection of infrastructure #1230
    + + + + \ No newline at end of file diff --git a/page/35/index.html b/page/35/index.html new file mode 100644 index 0000000000..ad75e9d938 --- /dev/null +++ b/page/35/index.html @@ -0,0 +1,35 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Carlos LopezDeLara

    2023-09-27 - 2023-10-10

    High level summary

    CARDANO-NODE

    CARDANO-CLI

    • Depracated governance query commands and moved all governance related queries to cardano-cli <era> query
    • Drep registration certificates now allow to include an anchor
    • Integrated Drep retirement ceriticates
    • clean up of Drep registration certificates.

    CARDANO-API

    • Add support for committee hot key witnesses
    • Require conway onwards for voting
    • Conway drep registration: expose ledger anchor parameter
    • Add certs to txbody of Conway transactions

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team released version 0.13.0, which includes fixes and extensions for state persistency and the ability to draft a commit transaction using inline datums.

    The team also delivered the first version of the network resilience layer, significantly increasing head availability.

    Additionally, they have been providing support to several funded Catalyst projects that want to build on Hydra.

    Last but not least, they updated and published security policy and vulnerability disclosure policy reports on how to handle security vulnerabilities within Hydra.

    What did the team achieve this week

    • Release 0.13.0
    • Published vulnerability reports #1088
    • Merged network resilience work part I #1074
    • Planning for Cardano Summit participation
    • Discussions with funded Catalyst projects wanting to build on Hydra for support
    • Merged typos fix PR from @omahs #1095

    What are the goals of next week

    • Complete Aiken commit validator script #1072
    • Complete Kupo integration #1078
    • Brick upgrade on TUI #1103
    • Clean backlog
    • Prepare and rehearse demo and talk for Cardano Summit

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: Continued benchmarking of UTxO-HD and performed benchmarks for the new tracing system.
    • Consensus QTAs: Our protoype approach is applied to potential regression fixes with GHC 9.2.7.
    • Development: We've developed strategies for future benchmarks of PlutusV3 and UTxO-HD's on-disk backing store.
    • Tracing: The machine-readable tracer configuration has been merged. Optimization of cardano-tracer started.
    • Nomad backend: Ongoing variance analysis and refined cluster topology.

    Low level overview

    Benchmarking

    Performing and analyzing benchmarks for the UTxO-HD feature is an ongoing effort; we can reliably assess the +performance of the in-memory backing store and evaluate possible optimizations (or regressions) for it.

    Furthermore, benchmarks of our new tracing system after several rounds of optimization have been performed. The results +show all key metrics now being unaffected by the choice of tracing system (legacy or new) - with the new system being able to provide more features and flexibility in comparison. The benchmarks also highlighted further points for optimization, with the focus now on the cardano-tracer service.

    Consensus QTAs

    The Quantitative Timeliness Agreements (QTA) prototype is being used in coordination with Consensus and DevX to validate a series of patches that address optmization opportunities which GHC8.10 seizes, but GHC9.2 misses. The +feedback from this approach is much more immediate than running benchmarks at system integration level. But once we eventually do, we expect to reproduce the relevant observations - which would mean a big step towards maturing the prototype.

    Development

    Benchmarking UTxO-HD's on-disk backing store needs special attention: in virtualized environments, disk I/O is not a reliable metric as it passes several layers of indirection. As this is the very metric which will influence overall performance of this UTxO-HD flavour, we developed a plan to monitor such nodes, connected to a running network, on dedicated hardware - having direct SSD access. Replicating this setup for an entire benchmarking cluster of such nodes will be a future effort.

    PlutusV3 will come with new builtins and a new cost model. It will take a specialized benchmark to ascertain the soundness of that model running a full cluster of nodes, possibly stressing expensive builtins. At the same time, +we'd like to validate the many improvements that have gone into the Plutus evaluator.

    Tracing

    The focus for further optimization of the new tracing system has shifted to cardano-tracer - the service +receiving and processing traces from one (or more) nodes. Whilst undisputed that the code living in cardano-node is +more performance critical, the receiving service must still minimize its resource footprint. Moreover, it can +generate load for a running node when querying data points from it - which calls for tight control of that mechanism and its possible configurations.

    Nomad backend

    Variance analysis of new nomad backend has revealed a necessary adjustment of the cluster's topology. We repeated +the same analysis and now see even better confidence in the measurements taken with nomad. This concludes the work on the backend proper for the time being. The last steps before production use will focus on the interface between backend and our workbench, which provides all high-level benchmark definitions and analysis machinery.

    · 2 min read
    Damian Nadales

    High level summary

    The value-only workload benchmarks showed that the mempool forging regression observed in the UTxO-HD branch was fixed by the latest patch. In spite of the higher resource demands, for the metrics of interest (forging, peer-propagation, end-to-end propagation) we see no regression when using the UTxO-HD version of Cardano node, with the in-memory backend.

    On the Genesis front the Researchers continue reviewing different aspects of the design, in particular the argument that the Genesis rule will select the Cardano historical chain. +We also merged a fix for the Babbage to Conway transition, and released a new version of Consensus.

    Genesis

    • We elicited review from the Researchers on a final draft of the argument that the Genesis rule will select the Cardano historical chain (392).

    Support

    • We merged a minimal patch that fixes parameter update bug during the Babbage to Conway transition (366).
    • We enabled richer tracers in cardano-node that can be useful in future debugging (384).
    • Esgen continues with his release engineer activities, and created a new Consensus release.

    Fostering collaboration

    • We merged a new section into our documentation that explains the existing hard-fork combinator (HFC) interface and its complexities, which are relate do why the Babagge to Conway transition surprised us in this way. This explanation is step one towards improving the HFC interface (369).

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team updated a proposal for implementing Mithril in a light wallet and created a discussion on implementing Mithril in a light wallet to receive feedback and contributions from the community.

    They also completed a proof of concept to run a Mithril client in a browser with WASM and worked on enhancing the explorer UI with SPO tickers displayed next to the pool IDs. Additionally, the team finalized a tool for benchmarking aggregator performance over a range of signer and client loads and for visualizing the results of these benchmarks.

    Finally, the team added a root page to the aggregator endpoint, created a status page for the Mithril networks, and added a section about KES key rotation in the signer documentation for SPOs.

    Low level overview

    • Created the discussion Implement Mithril in a light wallet #1273
    • Completed the issue Run client in browser WASM PoC #1254
    • Completed the issue Benchmark aggregator performances #1220
    • Worked on the issue Add SPO tickers in explorer #1185
    • Completed the issue Add a non 404 status code on the aggregator endpoint #1103
    • Completed the issue Use source attribute in errors #1265
    • Completed the issue Create a SPO checklist for KES keys update #1267
    • Completed the issue Configure status page and alerting #1277
    • Completed the issue Upgrade dependencies #1274
    + + + + \ No newline at end of file diff --git a/page/36/index.html b/page/36/index.html new file mode 100644 index 0000000000..a65905a9ca --- /dev/null +++ b/page/36/index.html @@ -0,0 +1,59 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Marcin Szamotulski

    High-level overview of sprint 45

    Bootstrap Peers

    We started reviewing the bootstrap peers PR, ouroboros-network#4615.

    Towards Typed Protocols 0.2.0.0

    We discovered a performance regression when using typed-protocols-0.2.0.0, and we +started investigating where it comes from. Currently, we see that +typed-protocols-0.2.0.0 can outperform typed-protocols-0.1.0.0 when running +in isolation with a simple ping-pong protocol, so the regression might be in +the new block fetch implementation which comes with typed-protocols-0.2.0.0 +See typed-protocols#3.

    Tech Debt

    We merged two PRs written by Galois engineers:

    • a pull request which refactors the main entry function for P2P, see ouroboros-network#3834;
    • a pull request which reviews usage of unsafe function in the network code based.

    Galois also made progress with the following two issues:

    IO-Sim

    IOSimPOR

    We found and fixed a bug in IOSimPOR. We'd like to thank Prof. John Hughes +(Quviq AB) for helping us with debugging the issue.

    We also provided a more uniform API for IOSimPOR, and added ways to make the +debugging similar problems in the future easier.

    Technical Details on IOSim refactoring
    We removed the usage of `unsafePerformIO` from `IOSimPOR`, which also means removing parallel evaluation of discovered races. We found out that it gives only 25% better performance. In the future QuickCheck will offer running different cases in parallel which should provide better performance as there are no dependencies between the evaluation of different test cases, while schedules are discovered while running which limits the possible gains from running them concurrently. The performance was not the only factor though. When using parallelism in the lazy `ST` monad we'd need to rely on memory guarantees of `STRefs`. In `GHC-9.6` they share the implementation with `IORef`s, but it might not be the case in the future.

    IOSim

    To prepare for the next release, we consolidate packages taking advantage of +the public sublibraries supported now both by cabal and Hackage. This is +a work in progress, io-sim#114.

    Cardano Newtork Service Assurance

    Galois made the following progress:

    • A test run of spinning up a CNSA instance was done, as a result documentation +was updated.
    • Based on the IOG code review of the CNSA code, updates to the CNSA code were +made.
    • Galois has started the design for adding a CNSA analysis for "fetched bytes +over time while node is syncing".

    P2P adoption

    In the last two weeks, we've seen increase in P2P adoption. +P2P relays

    The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays. +node versions

    Open Source

    We upstreamed our FFI bindings to Windows named pipes to Win32 package, the +PR was accepted and merged.

    We also received an external contribution which enhanced our documentation, see +ouroboros-network#4676.

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and testing the +performance analysis tool

    Details

    • drafting processs calculus semantics of mini protocol programs

    • testing the new performance modelling tool

    • further work on specification of mini protocols

    • extension of mini protocol framework to support communication of +programs with local environments via synchronous channels

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team mainly focused on having a working new reliability +network layer; and specified its expected behavior in a new ADR.

    They also revisited the security policy and vulnerability disclosure policy on +how to handle security vulnerability within Hydra, and in particular how to +handle so-called "Silent fixes".

    What did the team achieve this week

    • Updated security policy and vulnerability disclosure policy #1088
    • Adr/network reliability #1082

    What are the goals of next week

    · 3 min read
    Alexey Kuleshevich

    High level summary

    Few important Conway related features were completed in this two week period:

    • Constitutional Committee was the last missing Conway related entity that has now been +fully implemented.
    • Treasury withdrawals governance actions have been fixed and now behave as expected.
    • Current treasury amount supplied in the transaction is now enforced by the rules.
    • DRep's expiry is prevented by delaying the expiry for all DReps whenever there are no +proposals to vote on.
    • Semantics of how CostModels are updated with Protocol Parameters have been changed to +allow for individual Plutus language version updates, rather than requiring a complete +replacement of all CostModels

    Besides the new features there were also important performance and testing improvements:

    • In particular stake distribution computation and native script handling received some +optimizations.
    • New testing DSL has been implemented that drastically simplifies writing unit tests for +ledger rules.
    • Integration tests and benchmarks are now possible for Conway era because of the overhaul +of functionality for initial funds and staking injection whenever node starts up in +Conway, while bypassing all previous eras.

    Low level summary

    Conway era

    • pull-3729 - DRep expiry update after a contiguous set of epochs with no proposals to vote on
    • pull-3739 - Rename some PParams to be consistent with Agda specification
    • pull-3743 - Move DRepDistr from VState to ConwayGovState
    • pull-3746 - Implement tcTranslationContextL for Shelley
    • pull-3737 - Implement EraTransition
    • pull-3749 - Add predicate failure: current treasury value mismatch in LEDGER
    • pull-3748 - Apply enacted treasury withdrawals
    • pull-3745 - Constitutional Committee Ratification
    • pull-3763 - Plutus interface improvements
    • pull-3771 - Changed how costmodel updates are applied
    • pull-3766 - Prevent updating protocol version with PParamUpdate

    Performance

    • pull-3765 - Improve native script handling
    • pull-3747 - Use (CompactForm Coin) in IncrementalStake, DRepDistr (and other places) instead of Coin
    • pull-3758 - Cardano-Perf regression: UMap.size regression fix
    • pull-3754 - Use Alonzo-style TxOut encoder when possible

    Releasing

    • pull-3742 - Update fourmolu, ghcid and hls. Update haskellNix and iohkNix flakes
    • pull-3744 - Changelog 8.4
    • pull-3752 - Patch release of cardano ledger conway 1.8.1.0
    • pull-3753 - Minor cleanup and changelog entries
    • pull-3760 - Fixup issues for release
    • pull-3764 - Bump plutus deps to 1.13

    Testing

    • pull-3734 - Removed Shaped instance for Rep
    • pull-3735 - Simplify the implementations of hasOrd and hasEq
    • pull-3728 - STS tests based on constraints
    • pull-3714 - Implement the remaining upgradable families
    • pull-3733 - Add some unit tests for Conway features
    • pull-3762 - Update CDDL for praos headers.

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet environment was re-spun starting from slot 7171200 and updated to cardano-node 8.4.0-pre.
    • The use of cardano-node docker hub will be deprecated in preference of GHCR

    Lower level summary

    Capkgs

    • Refactor parsing scripts, add github action automation, various bugfixes and cleanup: capkgs-compare

    Cardano-parts

    • Updates secrets layout scheme, adds sops enc/dec for jobs, adds cloud monitoring profile, updates flake templates and other improvements/fixes: cardano-parts-pull-8

    Cardano-playground

    • Updates for new cardano-parts secrets handling and layout, TF workspace handling, group multivalue DNS support, grafana cloud monitoring and other improvements: cardano-playground

    Cardano-world

    + + + + \ No newline at end of file diff --git a/page/37/index.html b/page/37/index.html new file mode 100644 index 0000000000..98663669ec --- /dev/null +++ b/page/37/index.html @@ -0,0 +1,65 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released a new distribution 2337.0, which includes the following enhancements: support for zstandard compression of snapshot archives, support for the Cardano node version in snapshot metadata, and support for recording snapshot download statistics in the aggregator.

    They also completed the refactoring and standardization of the errors in the Mithril nodes and published an Architectural decision record on the documentation website. Additionally, they kept working on adding Cloudflare protection to the infrastructure.

    Finally, the team fixed a performance issue on the stress test tool for the aggregator and made some improvements to the documentation for SPOs.

    Low level overview

    • Completed the issue Release new 2337 distribution #1219
    • Completed the issue Errors refactoring #798
    • Completed the issue Client traffic creates performance bottleneck in aggregator #1207
    • Completed the issue Record statistics about the downloaded snapshot in the aggregator #1127
    • Completed the issue Create a SPO checklist for KES keys update #1267
    • Worked on the issue Spike: Run client in browser WASM PoC #1254
    • Worked on the issue Benchmark aggregator performances #1220
    • Worked on the issue Activate Cloudflare protection of infrastructure #1230

    · 2 min read
    Carlos LopezDeLara

    2023-09-13 - 2023-09-26

    High level summary

    • cardano-node 8.4.0-pre release suitable for SanchoNet.
    • CLI continues making progress integrating governance features. During this sprint we integrated the info and new-committee governance actions.
    • The team continued moving to the ERA top-level commands structure. Removed --conway-era flag from the legacy commands making conway era commands only accessible via cardano-cli conway.
    • stake-pool command is now under the ERA top level structure.
    • API continues integration with governance features, it is worth to higlight that now ProposeNewCommitee uses the right key type (cc-cold)

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team conducted the monthly review meeting in +collaboration with Mithril, enhancing project coordination.

    The team improved the gen-hydra-key node command for smoother usability +and identified concrete steps to enhance network resiliency in feature +items #188, +#1080, and +#1079. +Additionally, they contributed the aiken-mode editor integration to the +aiken-lang organization, updated dependencies to utilize cardano-api +8.20, and published the Hydra security advisory CVE-2023-42806 with a +workaround available for users.

    These efforts demonstrate the team\'s commitment to project improvement, +security, and open-source community collaboration.

    What did the team achieve this week

    • Conducted the monthly review meeting together with Mithril
    • Improved gen-hydra-key node command +#1077
    • Established a clear plan to improve resiliency of network and manifested +feature items #188, +#1080 and +#1079
    • Moved aiken-mode (created by SN) +to aiken-lang organization
    • Updated dependencies to using cardano-api 8.20 +#1075
    • Published security advisory +CVE-2023-42806 +(workaround available)

    What are the goals of next week

    • Write-up the monthly report for September
    • Finish "network resilience to disconnects" +#188
    • Finish kupo integration with hydra +#1078
    • Discuss and decide on using aiken or not
    • Address the published security advisory +CVE-2023-42806 +(to not require workaround)
    • Ideally, release 0.13.0

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed both low-level network and high-level variance analysis of our benchmarking clusters.
    • Infrastructure: Our reporting pipeline was adjusted to classify various workloads easily reducing rework time.
    • Tracing: Work on machine-readable tracing of tracer configuration is ongoing.
    • Nomad backend: We've been able to eliminate several possible confounders on the nomad cluster.
    • Team: We're currently onboarding a new team member: Welcome to Cardano Performance & Tracing, Baldur Blöndal!

    Low level overview

    Benchmarking

    As part of the effort to bring the Nomad backend into production use, we've been equipping both that and the existing benchmarking +backend with means to measure and document network latency for each run. Furthermore we've implemented means to +capture TCP packets for a limited time window during a benchmarking run - which will allow us to spot differences +in the behaviour of the underlying networking stack at OS level.

    Additionally, we're running variance analysis in parallel on both backends to ascertain confidence in metrics originating from either. We've concluded that baseline profile runs aren't directly comparable between the two, so we decided +to compare standard deviations instead to validate the measurements from nomad.

    Infrastructure

    Reporting on benchmarks does require human time and effort to rework the final document. Improvements to the reporting pipeline +have been merged to master. They reduce the time necessary to do so by various changes to the template and the workload classification logic in analysis.

    Beyond that, we've looked into issues where services would quit with an unjustified exit failure upon shutdown - under rare circumstances. By reworking shutdown logic for trace-dispatcher and tx-generator we were able to address those issues.

    Tracing

    After various steps in constructing a configuration upon node startup, it is vital to document +which runtime configuration the node arrived eventually. We're working on providing a machine-readable JSON/YAML +trace message for that purpose.

    This will facilitate hot-reloading a node's tracer configuration in the future: users will be able to take such a trace message, apply their intended change and hot-reload it immediately into the node.

    Nomad backend

    As with the existing benchmarking cluster, nomad is currently under scrutiny with regard to the reliability of metrics it +produces, as well as the behaviour of its OS-level network stack. For instance, differing kernel versions can have an +impact on our measurements, as we'd be basically using two different instruments to take them.

    Along the way we've already been successful in eliminating some possible confounders that had been introduced by the nomad service +or the slightly different system architecture of the new cluster.

    New team member

    Baldur Blöndal is an extremely capable and experienced Haskell developer. Also, he's an excellent fit for our existing team. +So I'm very pleased to welcome him onboard with IOG, and with Performance & Tracing. He will be working on cardano-tracer, the component receiving, processing and making available node traces and metrics.

    · 2 min read
    Damian Nadales

    High level summary

    We have a proposed fix for the mempool forging regression observed in the UTxO-HD branch. We need to confirm this by running system level benchmarks. +We are still working on a fall back mechanism for keeping the baseline performance of Cardano node, if the performance of the UTxO-HD is not enough. +On the Genesis front, we confirmed with the researchers that the proposed Genesis design is satisfactory for the historical Cardano chain. +We also have a proposed fix for the wrong protocol version bug, found in the Sanchonet, after transitioning to Conway.

    UTxO-HD

    • We optimized the mempool revalidation process, which in turn ought to solve the regression observed during system-level benchmarks in the in-memory version (349). System level benchmark results are pending.
    • Regarding the workaround to keep the node's baseline performance if that of the in-memory backend turns out not to be enough for our stakeholders (344), we are still expanding the legacy block package such that we could at some point run the node with a legacy Cardano block. There are some loose ends to wrap up before we can begin the first test run.
    • We also brought the UTxO-HD branch up to date with node version 8.4.0.

    Genesis

    • We finished the discussion with the Researchers on how to argue that the proposed Genesis design is satisfactory for the existing historical Cardano chain. +We are now drafting the final self-contained argument. (4157)

    Support

    • We debugged a bad parameter update on the Babbage to Conway transition in the SanchoNet testnet (339). +A superficial patch is within reach and we are in the process of reviewing the PRs related to this fix (340, 354, and 355) +However we are investigating a more principled redesign of the epoch transition logic, which required us to revisit the existing interfaces of the ConsensusProtocol type class and the HardForkBlock combinator (345 and 346). This is important to prevent these kind of errors in the future. This is an overdue step in the process of taking full ownership of the HFC: reconsidering original HFC design decisions for which we now have much more context, a few years later.
    + + + + \ No newline at end of file diff --git a/page/38/index.html b/page/38/index.html new file mode 100644 index 0000000000..b48607c053 --- /dev/null +++ b/page/38/index.html @@ -0,0 +1,59 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team has completed the refactoring of the terraform deployment workflows in GitHub actions, and the implementation of snapshot compression parameters in the deployments. They kept working on the refactoring and standardization of the errors in the Mithril nodes. The team also completed the implementation of Cloudflare protection for the aggregator infrastructure and started working on its deployment and activation in the Mithril networks. Additionally, they worked on recording download statistics on the aggregator which will be used to produce usage reports.

    Finally, they kept working on the aggregator performance bottleneck that occurs with high client traffic and started creating a new distribution.

    Low level overview

    • Completed the issue Add snapshot compression parameters in infrastructure deployments #1200
    • Completed the issue Add Cloudflare protection of infrastructure #986
    • Worked on the issue Record statistics about the downloaded snapshot in the aggregator #1127
    • Worked on the issue Error refactoring #798
    • Worked on the issue Activate Cloudflare protection of infrastructure #1230
    • Worked on the issue Release new 2337 distribution #1219
    • Completed the issue Upgrade dependencies #1238

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

    Details

    • working on collating and open sourcing performance analysis prototype

    • improvements to Ouroboros Praos specification in Isabelle

    • working on formalising chain sync mini-protocol

    • reviewing an alternatice semantics for DeltaQ

    • Seminar talk at U. Bergen on algebraic properties of timeliness

    · One min read
    Sasha Bogicevic
    Sebastian Nagel

    High-level summary

    This week, most of the Hydra team was attending a cardano scaling workshop in +Nantes, France. They used this oportunity to meet fellow mithril team and spend +some time together to hack on some code and, as always, reflect on the past work +and find optimal path forward for both projects. They also fixed a bug that +caused hydra-node to crash when querying L1, worked on a new network resillience +proof-of-concept and accepted a new ADR related to stateless transaction +observation.

    What did the team achieve this week

    • Cardano scaling workshop with members of hydra and mithril teams
    • Accepted user contribution for possible new use-case #1048
    • Fix for the hydra-node crash related to internal wallet query #1053
    • Collected experimental CI findings #1070
    • Propose first POC for the network resilience #1074

    What are the goals of next week

    • Monthly review meeting & report including updates from Mithril
    • Review POC and discuss our options for the network resilience
    • Update cardano-api to version 8.20
    • Address TODOs on aiken commit validator #1072
    • Complete hydra-support in kupo kupo#117

    · 2 min read
    Alexey Kuleshevich

    High level summary

    The Ledger team's focus is still mainly on the Conway era implementation.

    We were able to add ability to specify initial Constitutional Comittee and the initial +version of Constitution. Priority in which Governance Action are now enacted matches the +specification. DRep's deposits are now properly accounted for. Governance actions that are +not allowed to be voted on by Stake Pool operators and Constitutional Committee members +are prevented by transaction submission failure, rather than simply being ignored. There +was a few important CDDL fixes as well as a lot of new round trip serialization +tests. Constraint based testing framework has also received a lot of improvements.

    Low level summary

    Conway era

    • pull-3681 - Conway Genesis additions
    • pull-3690 - Preserve the order of ProposalProcedures
    • pull-3705 - Removed ProtVer from EnactState
    • pull-3700 - Add conway-specific certs to deposit/refunds
    • pull-3704 - Add comments on deprecating certs to Conway CDDL
    • pull-3698 - Reordering of governance actions
    • pull-3712 - Disallow empty fields in ConwayTxBodyRaw
    • pull-3716 - Abstract threshold calculation
    • pull-3725 - Fix mistaken use of dollar sign in cddl files
    • pull-3718 - Predicate failure for mismatched Voter GovAction
    • pull-3721 - Committee expiration, validation and modification

    Improvements and releasing

    Testing

    • pull-3730 - Implement Show instance for Rep using IsTypeable
    • pull-3697 - Rewrite testEql using Typeable to make it impossible to forget cases
    • pull-3709 - Add many new features to the Constrained modues in cardano-ledger-test
    • pull-3726 - Conway and other eras serialization roundtrip tests
    • pull-3713 - Improve CI resiliency against GitHub issues

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 44

    Bootstrap Peers

    In this sprint, we focused on developing bootstrap peers.

    Thanks to the input from Samuel Leathers (IOG) and John Lotoski (IOG), we +identified a possible improvement to bootstrap peers. A more detailed +description is available here.

    Cardano-Node-8.4.0 Release

    We also were responsible for the cardano-node-8.4.0-pre release. A final +integration PR is currently being merged. We published +new versions of ouroboros-consensus, cardano-api and cardano-cli.

    Towards Typed Protocols 0.2.0.0

    We also updated the future typed-protocols-0.2.0.0 and its integration with +cardano-node. This is towards our goal which we planned for the next +quarter. The identified tasks are to fix breaking tests, and then measure and +address possible performance regressions.

    Tech Debt

    Mark Tullsen (Galois) submitted two more PRs: ouroboros-network-#4663, +ouroboros-network-#4664. We provided feedback on their other pull requests: ouroboros-network-#4661 and +ouroboros-network-#4660.

    P2P adoption

    In the last two weeks, there was a regression in P2P adoption concerning +the number of SPOs or stakes, although the number of overall P2P relays has +increased. Karl Knutsson (Cardano Foundation) is investigating +this issue. +P2P relays

    The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays, which slowly +increase over time. The V9 and earlier versions of the node-to-node +the protocol indicates nodes version 1.35.x or earlier. +node versions

    Data has been kindly provided by Cardano Foundation and their mainnet +monitoring infrastructure.

    Open Source

    We are in the process of upstreaming our ffi to Windows Named Pipes API to the Win32 package, see [win32-220].

    + + + + \ No newline at end of file diff --git a/page/39/index.html b/page/39/index.html new file mode 100644 index 0000000000..d23ee1489f --- /dev/null +++ b/page/39/index.html @@ -0,0 +1,55 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Sanchonet environment was updated to 8.3.0-pre.
    • Cardano-parts now enables downstream consumers to spin up multiple cardano-networks per repository, an example of which is here.

    Lower level summary

    Capkgs

    • Add a readme, optimize flake inputs, improve nu and ruby parsing scripts: capkgs-compare

    Cardano-ops

    Cardano-parts

    • Utilize content addressed binaries to significantly improve eval, build and devShell performance: cardano-parts-pull-8
    • Add an aws flakeModule for obtaining ec2 specs, fix node.socket devShell error: cardano-parts-pull-10
    • Fix warns thrown during some builds and devShell usage: cardano-parts-pull-11
    • Add flakeModules and nixosModules in preparation for cardano-node grouped deployments: cardano-parts-pull-12
    • Enable group deployments by: adding several module, profile and role nixosModules; updating flakeModules; adding sops age secrets handling: cardano-parts-pull-13

    Cardano-perf

    • Modify the wireguard network from mesh to star, enable ICMP, enable Nomad raw_exec and add hydraJobs: cardano-perf-compare

    Cardano-playground

    Cardano-world

    · One min read
    Kostas Dermentzis

    High level summary

    We have created a DBSync tag sancho-1-1-0 which can follow sanchonet. Also +the team has ran a number of benchmarks and tests for the new options/flavours of DBSync +and prepared a blogpost which summorises them, for downstream components.

    Lower level summary

    • Integration of node-8.3.x and support for Sanchonet on Conway +#1498
    • Simplifications of new feautures +#1496
    • Makes it impossible to restart DBSync with different schema options and adds +tests for them +#1466
    • CI fixes +#1494#1491
    • Prepared a blogpost about different DBSync options +blog

    · 3 min read
    Carlos LopezDeLara

    2023-08-30 - 2023-09-12

    High level summary

    Release of Cardano-node 8.3.0-pre for SanchoNet. Adds DReps to the Conway governance rules. Allows registration of DReps, delegation to DReps and voting on constitution action with DReps and SPOs. +This release completes phase 2 of SanchoNet feature roll out plan

    CLI continues on its migration to a era-based top-level commands. This sprint we moved text-view, key, query, genesis, node, stake-address, transaction and address into this new command structure. This is the initial migration, there is still some clean-up to do on future sprints.

    We are moving the drep delegation-certificate to the stake-address command so delegating to a drep is done via stake-addres vote-delegation-certificate. Along the same lines, we are renaming +stake-address delegation-certificate (delagating to a stake pool) to stake-address stake-delegation-certificate to distinguish between stake delegation to a pool and votes delegation to a drep. On top +of that, there is a new type of delegation certificate to delegate (stake) to a stake pool and (votes) to a drep simultaneosuly stake-address stake-and-vote-delegation-certificate. Note that change is not included on 8.3 but will come on 8.4. +Removing --conway-era flag from all the transaction sub-commands.

    Update description fields in delegation certificates from Stake Address Delegation Certificate to respectively (Conway onwards):

    • Stake Delegation Certificate
    • Vote Delegation Certificate
    • Stake and Vote Delegation Certificate

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team improved the commit process with support for inline +datums. They simplified the chain layer by refactoring how the chain state is +persisted. Updates to the Hydra tutorial were completed, including CI workflows +to keep it up-to-date. The team engaged in discussions with researchers about +incremental commits & decommits, and drafted an architectural decision record +for a resource-based API. They also explored simpler solutions for the upcoming +network resilience feature.

    What did the team achieve this week

    • Support InlineScriptDatum in commit +#1043
    • Refactored chain state persistency +#1049
    • Completed tutorial updates (by adding CI and some cleanup) +#997
    • Intersect Open Source committee meeting
    • Experimented with various models to better express the \"Network +resilience problem\" to find a KISS solution for +#188
    • Drafted and discussed incremental de-/commit features within team +and with researchers +#199 and +#1057
    • Created ADR for a resource based overhaul of the API +#1028

    What are the goals of next week

    • Meetup of Hydra & Mithril contributors in Nantes, France
    • Integrated cardano-api 8.15 to have GHC 9.6 support
    • A clear design for incremental commits (decommits are already +understood)
    • An ADR for improving tx construction & observation to not need chain +state

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released a new distribution 2335.0 which brings enhancements to the client: support for simultaneous downloading and unpacking of the snapshot archives, support for one line command restoration of the latest snapshot, and availability of machine readable progress information.

    They have also worked on snapshots enhancements: implementation of the zstandard compression to produce smaller archives, and providing the version of the Cardano node used to create the archive in the snapshot artifacts. They have completed the second phase of the implementation of the stress test tool to benchamrk the aggregator. Additionally, they have kept working on refactoring and standardizing errors in the Mithril nodes.

    Finally, they have worked on adding Cloudflare protection to the infrastructure, and they have fixed some bugs that occurred during restoration of a snapshot by a client.

    Low level overview

    • Completed the issue Use 'zstandard' compression for snapshot archives #876
    • Completed the issue Design & implement stress test tool for aggregator - phase 2 #1155
    • Completed the issue Provide progress information with '--json' option in Client #1095
    • Completed the issue Make client download and extract the archive simultaneously #1115
    • Completed the issue Add aggregator Cardano node version in snapshot artifact #948
    • Completed the issue Make Cardano node version part of the Mithril network configuration #947
    • Completed the issue Post deployment 'mainnet' infrastructure #1091
    • Worked on the issue Errors refactoring #798
    • Worked on the issue Add Cloudflare protection of infrastructure #986
    • Completed the issue Failed to restore recent snapshot with strange error #1160
    • Completed the issue Update 'ed25519-dalek' to '2.0.0' #1188
    • Completed the issue Add target networks blocks in release notes #1151
    • Completed the issue Fix end to end 'wait_for_the_expected_time' test #1191
    • Completed the issue Fix docs 'git checkout' command #1174
    + + + + \ No newline at end of file diff --git a/page/4/index.html b/page/4/index.html new file mode 100644 index 0000000000..8c51e64465 --- /dev/null +++ b/page/4/index.html @@ -0,0 +1,33 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Alexey Kuleshevich

    High level summary

    This time around we continued on testing the Conway era and improving our conformance +tests. Thanks to this extensive testing we found and fixed a few more bugs in the Conway +implementation. We fixed bugs related to DRep expiry and the choice of correct threshold for +the committee voting. One important feature that was implemented is ignoring the +minimun committee size during the bootstrap phase, in order to avoid a deadlock situation in +case that enough committeee members were to resign. We've also improved the correctness of +our CDDL specification and improved the safety by restricting some of the types of +protocol parameters.

    Low level summary

    Conway

    • pull-4350 - Add identity instance for Inject
    • pull-4361 - Fixed a bug in RATIFY
    • pull-4358 - DRep expiry update with number of dormant epochs
    • pull-4365 - Create pool stake distribution query for voting
    • pull-4376 - Ignore ppCommitteeMinSize during bootstrap
    • pull-4364 - DRep state query and related tests
    • pull-4357 - Specify numeric ranges explicitly in conway cddl files

    Testing and formal spec

    • pull-4339 - constrained-generators: introduce tools for controlling test case distribution
    • pull-4348 - Conformance: GOVCERT
    • pull-4213 - Utxow Predicate failure tests
    • pull-4351 - Enable retrying flaky tests in nightly CI
    • pull-4345 - constrained-generators: Add explanation :: [String] -&gt; Pred fn -&gt; Pred fn
    • pull-4362 - Threshold translation in conformance testing
    • pull-4369 - constrained-generators: Add flip_ to avoid having to add new native functions
    • pull-4377 - constrained-generators: propagate information backwards in the solver
    • pull-4389 - Fixed issue #4340. Problem with futurePParams not adequate in Conway.
    • pull-4378 - Conformance: POOL
    • pull-4388 - Improved the translation of PParamUpdate in conformance
    • pull-4355 - Fix order of arguments to verifyVrf

    Infrastructure and releasing

    • pull-4352 - Remove dependency on deprecated ansi-wl-print package
    • pull-4344 - constrained-generators: identify and fix an issue with big bodies to ifElse
    • pull-4338 - Add conformance testing for ENACT
    • pull-4354 - Added conformance test for DELEG
    • pull-4367 - Fixed 8.10 not building
    • pull-4368 - Ensure GitHub CI fails when tests are skipped due to a build failure
    • pull-4373 - Add -rtsopts to all test suites

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They improved the throughput of the prover route of the aggregator by using resource pooling and made progress on low-latency certification by transitioning to a chain point-based beacon, which allows for faster transaction signing. They also kept investigating prover performance bottlenecks, worked on fixing a bug that caused unsigned transactions to appear as signed, and continued implementing the import of transactions with the ChainSync mini-protocol and Pallas.

    Additionally, the team started preparing the threat modeling explainer for the documentation website and kept investigating some Cardano node error messages that could be caused by how the Pallas client handles connections to mini-protocols.

    Low level overview

    • Completed the issue Implement Resource Pooling for Block Range Merkle maps #1698
    • Completed the issue Sign Cardano transactions with ChainPoint based beacon #1697
    • Completed the issue Cardano transactions prover performances drop with more than 5 transactions #1722
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue Client verification fails with an already stored but non certified yet transaction #1719
    • Worked on the issue Computation of Merkle proof has bottleneck with multiple transactions #1730
    • Worked on the issue Threat modeling and risk analysis #1350
    • Worked on the issue Release 2423 distribution #1695
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632

    · 2 min read
    Carlos LopezDeLara

    2024-05-13 - 2024-06-05

    High level summary

    CARDANO NODE

    • In order to avoid an accidental hardfork, when "ConwayGenesisFile" is not set in the node configuration file, by default the node can only understand protocol version 8 (Babbage era).

    CARDANO CLI

    • query protocol-parameters now shows Conway era protocol parameters when in Conway.
    • transaction view now shows proposales and votes inside a transaction body.
    • Release of cardano-cli 8.23.1.0
    • We now publish pre-compiled binaries of each release together with the corresponding SHA256Sum.

    CARDANO-API

    • Release of 8.46.0.0

    Details

    cardano-cli

    cardano-api

    • Release cardano-api-8.46.0.0
      • Updated cardano-ledger, ouroboros-consensus and plutus packages.
      • Added FailT dependency.
      • Updated conwayGenesisDefaults and alonzoGenesisDefaults.
      • Changed CostModel to use Int64 instead of Integer.
      • Fixed ProtocolParameters golden test to account for the Integer -> Int64 change in the CostModel. (breaking, test) PR 523

    cardano-node

    cardano-testnet

    · One min read
    Damian Nadales

    High level summary

    • Updated UTXO-HD to use simple diffs which drastically improved the mempool benchmarks (#1114).
    • Helped quickcheck-state-machine to release version 0.10.0 (#48). We rely on this library for our high-assurance property-tests.
    • Rebased UTXO-HD on top of node 8.11 (#1121). A replay with the in-memory backend took 5:05 hours up to slot 124M.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released a new Mithril protocol insights dashboard and a new explorer page displaying active and deregistered SPOs for the latest Cardano epochs. They also continued implementing the certification of Cardano transactions in Mithril networks by improving the throughput of the prover route of the aggregator and making progress on low-latency certification by completing the implementation of a chain block reader from the Cardano mini-protocol with Pallas.

    Additionally, the team started working on a new beacon for signing Cardano transactions based on the chain point. Finally, they refactored the persistence library, enhanced their testing tools for Cardano transactions, and fixed a block parsing problem that prevented the signature of Cardano transactions in the test networks.

    Low level overview

    • Released the Mithril Protocol Insights Dashboard
    • Completed the issue Prototype optimizations for increasing Cardano transactions proof generation throughput #1687
    • Completed the issue Retrieve Cardano blocks with chainsync in pallas PoC #1590
    • Completed the issue Explorer display in/out SPOs in registered signers page #1686
    • Completed the issue Create a test Cardano transactions builder #1667
    • Completed the issue Cardano signatures are not produced on testing-sanchonet and testing-mainnet #1681
    • Completed the issue Remove snapshot command in client CLI #1690
    • Completed the issue Block Streamer returns ChainScannedBlocks #1704
    • Completed the issue Remove connections coupling with providers in database #1711
    • Worked on the issue Implement Resource Pooling for Block Range Merkle maps #1698
    • Worked on the issue Sign Cardano transactions with ChainPoint based beacon #1697
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    + + + + \ No newline at end of file diff --git a/page/40/index.html b/page/40/index.html new file mode 100644 index 0000000000..aa4586a94b --- /dev/null +++ b/page/40/index.html @@ -0,0 +1,41 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed and analysed feature benchmarks for both UTxO-HD and the current P2P stack.
    • Infrastructure: Various improvements of our analysis pipeline have been merged to master, supporting safe log truncation.
    • Tracing: Namespace consistency checks have been merged to master along with a curated configuration for benchmarking.
    • Nomad backend: We're productively using the new backend to measure new vs. legacy tracing system, adding many quality-of-life improvements.

    Low level overview

    Benchmarking

    We've completed various runs and analyses targeting two distinct features of the node: UTxO-HD and Peer2Peer.

    With our UTxO-HD benchmark we could clearly localize one point where this new way of maintaining ledger state is still costly, but at the same time confirm that in basically all other aspects UTxO-HD makes no difference in performance.

    The Peer2Peer benchmarks focused on the effects that enabling this feature on a block producing node has on propagation times, as well as scrutinized a proposed change to the Peer2Peer network stack.

    Infrastructure

    As a result of optimizing in-memory representation of log objects, which are constructed from a node's traces, we can now analyse runs that last longer in total. For runs that exceed their expected duration, analysis now supports a truncation +operation that keeps the interdependencies of block events intact.

    Truncation might happen at a slightly different point +in time - and therefore in its log object stream - for each node in the cluster. An additional step validating the block hash timeline of the cluster has been implemented for the pipeline. It provides early feedback on whether a specific truncation will lead to a valid full analysis, which requires much more time.

    Tracing

    Consistency checking of namespace implementation and configuration when using the new system has been completed. +This feature enables feedback on when tracer implementation details in some component might have changed. It's also able to detect when a configuration used for operating a cardano-node shows inconsistencies with the namespaces the system provides - and hence needs attention.

    Furthermore, we've created a fine-grained configuration of the new system that caters to benchmarking's need of very many +detailed trace messages. It's aimed at mirroring the same amount of trace messages, and information, we're seeing from our usage of the legacy system; an important step in making benchmarks between systems comparable.

    Nomad backend

    The new backend is currently being used for further validation with regard to the existing cluster. Additionally, we're using it in production mode to comparatively benchmark both tracing systems after merging past month's optimizations - which is the +first real-life application of the nomad cluster. Hands-on experience in that phase translates into many small improvements which can be immediately applied to enhance user experience for the new backend.

    · 3 min read
    Damian Nadales

    High level summary

    We were able to successfully run the system-level benchmarks for the UTxO-HD implementation, for the first time. There was an important regression in block forging performance that will have to be addressed before UTxO-HD is released. We also revisited the implementation of our query processing logic, which was needed to address the performance regression found in the query-by-address command. The preliminary performance results show that now the performance of this query is on-par with the Cardano baseline version, but we need further confirmation. +On the Genesis front, we presented the grinding-aware safety argument for the proposed historical Cardano Genesis windows to the IOG Researchers. +The Consensus release engineer finished his rotation: version 8.3.0-pre of cardano-node is releasing 2023 September 5.

    UTxO-HD

    • We ran the first successful system-level benchmarks for UTxO-HD (see #203) using the in-memory backend.
      • We observed a factor 12 regression in the forging performance, which we will have to address. There are strong indications that the regression is due to the backing store accesses that take place when taking a mempool snapshot.
      • After the mempool regression is fixed the benchmarks need to be ran again.
      • System-level UTxO-HD benchmarks with the LMDB are still pending.
    • UTxO-HD will eventually be necessary due to the growth of the UTxO set and other ledger state structures that live in memory at the moment. However, we are trying a strategy by which we could preserve the baseline performance of the node, in case SPOs and other node users are not ready to migrate yet (see #344).
    • We implemented a new way of processing queries at the hard-fork block level, which resolves the performance regression observed in GetUTxOByAddress (see this comment). Preliminary results are promising.
    • Regarding the roll out plan, UTxO-HD requires a significant change in the Consensus codebase. Even though we might be able to hide any potential performance impact in the node by keeping all data in memory (#344), the Consensus component was significantly changed, so we might have to postpone releasing this feature to mitigate any risks of conflicting with the implementation of CIP-1694 and release of Conway.

    Tech debt

    • We added tests that Consensus emits valid CBOR (#3099). This helped us detect a couple of serialization bugs. The tests still need to be merged into the main branch (#323).

    Support

    • Nick Frisby finished his release engineer rotation; cardano-node 8.3.0-pre is releasing 2023 September 5.
    • We helped to investigate a protocol version bug in Sanchonet (see #3491).
    • We started to implement the Network interface for bootstrap peer functionality, from which Genesis will benefit as well (see #91.

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

    Details

    • finalising a presenting performance analysis internship work to the +formal methods team

    • developed a new Isabelle mini-protocol framework and examples

    • planning an extended version of the ICE DeltaQ paper

    • working on algebraic rules for properisation of any-to-finish

    · One min read
    Sasha Bogicevic

    High-level summary

    This week, the Hydra team focused primarily on changes needed in the network +layer and have the first draft document related to needed design. They also +improved the user experience by allowing a commit using inline datums. +Discussed the off-chain governance with researchers and improved internal model +tests.

    What did the team achieve this week

    • Monthly report published
    • Small changes to hydraw and tutorial in light of the Masterclass
    • Investigated a bug and saw it was solved by recent developments
    • Improved the model tests by fully validating L1 transactions
    • Enhanced the /commit API to also allow commit from scripts with inline datums (user request)
    • Discussed off-chain governance with IOG and CF researchers
    • Drafted a first network specification document in the context of Network resilience

    What are the goals of next week

    • Have a clear understanding of the changes we need for the "Improve network resiliency" feature
    • Groomed and agreed plan on incremental commits/decommits
    • Updated tutorials including CI workflows to check consistency
    • Update to GHC 9.6 and latest cardano dependencies (ledger/plutus)

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Broadly speaking the Ledger team focused on a few main areas of Conway era:

    • Creation of voting state snapshots in order to correctly delay ratification for one epoch
    • Validation of the Governance Actions sequencing and ordering
    • Proper expiry of DReps and Proposal Procedures
    • Expanding Conway Genesis functionality
    • Utilization of some of the new Protocol Parameters in ledger validation rules

    Low level summary

    Conway era

    • pull-3659 - Validate Network for ProposalProcedure and TreasuryWithdrawal
    • pull-3637 - Avoid using sequence of tuples, by adding GovActionId to GovActionState
    • pull-3651 - Inactive DReps
    • pull-3664 - Track proposal expiry
    • pull-3668 - Add min committee size predicate to NewCommittee
    • pull-3669 - Add Proposal deposit check against PParam
    • pull-3676 - Fix inactive PoolStake not counting as Drep Stake
    • pull-3635 - Make snapshots of GovActionsState
    • pull-3670 - Validate previously enacted govAction
    • pull-3694 - Improve error reporting on the positive coin decoder
    • pull-3674 - Added RATIFY thresholds
    • pull-3684 - Add proposal delaying, remove predicate failure from ENACT
    • pull-3688 - DRep Refunds and update evalTransactionBalance

    Improvements and releasing

    • pull-3677 - Minor patch that fixes the DRep distribution computation
    • pull-3686 - Post patch release fixup
    • pull-3695 - Changelog for cardano-node-8.3 release
    • pull-3683 - Add two new bench mark programs

    Testing

    + + + + \ No newline at end of file diff --git a/page/41/index.html b/page/41/index.html new file mode 100644 index 0000000000..0cfffa33a1 --- /dev/null +++ b/page/41/index.html @@ -0,0 +1,61 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Marcin Szamotulski

    High-level overview of sprint 43

    In this sprint, we received contributions from CF & Galois. Karl Knutsson +(CF) has addressed various issues regarding peer churning in P2P, timeouts +and our WireShark dissector. While the Galois developers focused on +addressing issues from their review last year. See below for more details.

    We continued working on bootstrap peers ouroboros-network-#4661.

    We refactored our test suites: they are split into io-tests which require to +be run natively on all platforms (these tests mostly contain tests that +require IO system calls) and sim-tests which are platform independent. We +run io-tests on all supported platforms (e.g. x86_64-linux, +x86-64-darwin, aarch64-darwin and x86_64-w64-mingw32 (Windows)) natively. +The sim-tests are not executed on Windows due to memory limitations on +GitHub Actions runners. ouroboros-network-#4653

    We also started rebasing typed-protocols refactoring branches.

    Marcin was appointed as the cardano-node release engineer for the 8.4.0-pre +version. So far he integrated cardano-ledger-conway-1.8 and +ouroboros-network-0.9.1.0 to ouroboros-consensus, cardano-cli and +cardano-api. Once we will have an integration branch for cardano-node, +cardano-ledger-conway-1.8 and ouroboros-consensus packages can be released +to CHaP and PRs can be merged once they go through review & CI.

    We also fixed some smaller issues regarding peer sharing (both were discovered +by Karl from CF). More details are included below.

    Progress on P2P addoption

    SPO relays

    There are currently ~2000 relays running P2P +enabled nodes that belong to 557 pools with a combined stake of 7900Mil Ada. On +16th of August it was ~1700 relays, 531 pools with a combined stake of 7700Mil +Ada.

    P2P relays

    The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays, which slowly +increase over time. The V9 and earlier versions of the node-to-node +the protocol indicates nodes version 1.35.x or earlier. +node versions

    Data has been kindly provided by CF and their mainnet monitoring +infrastructure.

    IOG relays

    As of this week, 90% of IOG relays are running a P2P setup. In the next sprint all +IOG relays will be running P2P.

    Detailed description

    In this sprint, we got a few contributions from CF:

    • Karl made peer churning mechanism less aggressive ouroboros-network-#4656; and
    • he added timeouts for idle states in ChainSync & KeepAlive +miniprotocols. These timeouts help a node remove idle connections from the +responder (server) side ouroboros-network-#4648.
    • he improved the WireShark dissector by adding support for the peer-sharing mini-protocol ouroboros-network-#4656.

    Galois has been making progress in addressing some of the issues they raised in their review (last year):

    Peer Sharing

    • Light peer sharing is only enabled when peer sharing is turned on ouroboros-network-#4652;
    • Handshake incorrectly reports peer sharing value. It's supposed to relay the +remote value, but instead, it returns the local value. ouroboros-network-#4642 (in review).

    Async Demotion Test Fix

    • We fixed an async demotion test failure which turned out to be a weakness of +the test itself rather than a bug in the connection manager. ouroboros-network-#4655

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Work on cardano-parts repo continues and was utilized by the sanchonet-demo repository for demonstration purposes
    • Work on a new capkgs repository started -- "Content Addressed Packages"
      • This repository provides common Cardano release and pre-release binaries in a pure content addressed nix package type via flake output
      • These packages don't have the associated IFD, long eval times and large source dependencies that the originating source repositories often do
      • Consumers of such packages, such as devShells or nixos machines, can benefit from the improved performance this offers

    Lower level summary

    Capkgs

    • Content addressed packages -- new repo: capkgs

    Cardano-ops

    • Cardano p2p relay updates, dbSync snapshots server update, monitoring adjustments: cardano-ops-compare

    Cardano-parts

    Cardano-perf

    Cardano-world

    Sanchonet-demo

    · 2 min read
    Carlos LopezDeLara

    2023-08-16 - 2023-08-29

    High level summary

    CLI is making progress towards phases 3 and 4 of SanchoNet.

    • Ability to create info, no-confidence and new committee governance actions.

    • Voting as DREP is possible now on the CLI

    • API is now using Ledger's PParams and VotingProcedures

    • Expose following queries from consensus:

      - GetGovState
      - GetDRepState
      - GetDRepStakeDistr
      - GetCommitteeState
      - GetConstitution

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · One min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team created an explorer page with the registered signers to give recognition to the SPOs already running on mainnet. They also worked on refactoring and standardizing errors in the Mithril nodes, and they enhanced the clarity and reduced verbosity of the logs for the signer and aggregator nodes. Additionally, they started working on the implementation of zstandard compression of the snapshot archive, and streaming its download and decompression in the client.

    Finally, they implemented machine readable progress information in the client, and streamlined the process of verifying the registration status of a signer.

    Low level overview

    • Completed the issue Create explorer page with registered signers #1097
    • Completed the issue Simplify logs on the Signer/Aggregator #1106
    • Completed the issue Refactor (de)serialization of crypto entities #668
    • Completed the issue Mithril client last snapshot download #1078
    • Completed the issue Use the '/signers/registered' route to verify if a signer is registered #1152
    • Worked on the issue Provide progress information with '--json' option in Client #1095
    • Worked on the issue Use 'zstandard' compression for snapshot archives #876
    • Worked on the issue Make client download and extract the archive simultaneously #1115

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team conducted the monthly review meeting for Agust,which +continously ensures transparent communication and project evaluation.

    In terms of community engagement, the Hydra team gave a Hydra master-class at +RareEvo workshop as an educational initiative for the community. +Additionally, the team updated the Hydra demo and tutorial to include Mithril +and latest release changes.

    They also focused on exploring the Hydra network resiliance in order to improve +hydra-node availability, as it becomes stuck very easily and that leads to a +bad user experience.

    What did the team achieve this week

    • Hydra master-class at RareEvo workshop!
    • Monthly report & review meeting
    • Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff
    • Groomed network resilience and explorer features #188
    • New ADR for “Resourced based API” #1028

    What are the goals of next week

    • Have a poc on network resilience working #188
    • Fix issue #931: “Chain state in head state not updated on replayed observation”
    • Fix issue #1039: "Close transaction dropped from cardano-node"
    + + + + \ No newline at end of file diff --git a/page/42/index.html b/page/42/index.html new file mode 100644 index 0000000000..fe5a534500 --- /dev/null +++ b/page/42/index.html @@ -0,0 +1,53 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: Benchmarking node version 8.2.1 has concluded. Additionally we're developing benchmarking setups for GHC9.6 and UTxO-HD.
    • Infrastructure: Our analysis pipeline has received improvements reducing memory footprint.
    • Tracing: Another batch of optimizations for the new tracing system has been merged; work on namespace consistency guarantees is ongoing.
    • Nomad backend: We're performing and analysing various runs for validation purposes on the new hardware cluster.

    Low level overview

    Benchmarking

    We've performed and analysed the benchmarks for the 8.2.1 version of cardano-node as part of our release benchmarking cycle.

    Setting up cluster benchmarks requires completing full system integration. This applies to both supporting a new build platform, as is GHC9.6, as well as targeting a specific feature, like a UTxO-HD enabled node. Currently, we're working on respective integrations on both those paths.

    Infrastructure

    As cluster runs increase in duration, more and more data is accumulated for analysis. Batch analysis mode needs all data to be held +in memory, which wouldn't fit anymore even on a 64GB RAM machine. Changes to the in-memory data representation improving on compactness were able to reduce the RAM requirements of our analysis pipeline.

    Tracing

    The next portion of optimizations has been completed and merged to master, getting rid of Haskell's native String representation on critical code paths. This concludes the optimization phase of the new tracing system for all its components used by cardano-node.

    The implementation for validation of consistent naming and configuration is ongoing. We're splitting out everything that's verifiable at compile time into a seperate test case which we hope to integrate into CI - leaving only configuration constraints to be verified at or before node startup.

    Nomad backend

    The verification phase of the nomad cloud backend is ongoing. We're able to perform full runs on the new hardware cluster +and porting profiles and configurations from the legacy one. The goal is to reproduce with confidence known regressions, or improvements, between runs performed on the legacy cluster and runs performed with the new backend.

    · 2 min read
    Damian Nadales

    High level summary

    On the UTxO-HD front we reached another important milestone, where we handed over the implementation for benchmarking and testing. We are working on addressing the first issues that were found during the integration tests. +On the Genesis front we are finalizing the argument that a checkpoint is not necessary for the initial release, including supporting to support said argument. We are also working on the new node release, and several improvements to our code-base.

    UTxO-HD

    • We addressed the issues that came from the benchmarking and testing phase (see #314).
      • We fixed the operational-certificate update exception (#305).

    Tech debt

    • We elaborated an inventory of the symbols used by downstream clients in an effort to clearly define the Consensus API, which will help managing changes and their impact to the downstream clients (see this branch).
    • We extracted the SOP modules to a separate package as part of our effort to reduce the Consensus API surface area (see this branch).
    • We took the first step towards improving how the Cardano hard-fork block is instantiated when running a node (see #275).
    • We decreased the flakiness for our test suite (#284).
    • We incorporated and merged the pull-request on query versioning (#273).
    • We started working on new performance-based regression tests for mempool operations.

    Support

    • Nick Frisby continues with his engineer responsibilities. Notably getting the Consensus release out for node pre-release 8.3. Nick also began integrating it into downstream branches (cardano{-api,-cli,-node}). The Node team has now taken over, since Nick had progressed up to the point where they needed to start making new design decisions. Related PRs:

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

    Details

    • Development of an automated prover for showing conformance of +programs to state machines (as part of the mini-protocol framework)

    • Completion of the documentation of the (current state of the) +mini-protocol framework

    • Discussion about two DeltaQ lectures with two practical sessions as part +of 4th year masters course on distributed systemsby colleagues at UC +Louvain in the Autumn

    • Discussion about four DeltaQ lectures by colleagues at U. Bergen as part +of a 5th year Masters course in the Autumn

    • Adapted original DeltaQ implementation to the new typeclasses and +wrote property tests for its algebraic laws

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version 0.12.0, a significant update that +brings support for cardano-node 8.1.2, along with performance enhancements and +various API improvements. Additionally, the team successfully onboarded a new +contributor who is now actively participating in operating a Hydra Head. They +took part in a meeting of the Intersect open source committee and prepared the +Hydra master-class for RareEvo, an educational initiative for the community.

    If you happen to be at RareEvo, register for the Hydra master-class using this +form. +We hope to make it possible to follow along on-line as well and will announce +details on the Hydra announcements channel on the IOG discord +server.

    What did the team achieve this week

    • Released version 0.12.0 which adds support for cardano-node 8.1.2, performance +and several API improvements. Release notes
    • Replaced commit via websocket with external draft + submit. #954
    • Onboarded new contributor to the point where he actively participates in operating a Head now.
    • Joined a first meeting of the Intersect open source committee
    • Prepared the Hydra master-class for RareEvo.

    What are the goals of next week

    • Monthly review meeting
    • Run the Hydra master-class at RareEvo!
    • Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff
    • Clear out red bin items (technical debt)
    • Groom network resilience and explorer features

    · 2 min read
    Alexey Kuleshevich

    High level summary

    The ledger team made great progress in advancing Conway era forward. In particular, voting +for DRep and Stake Pool Operators is now at the state that can be used by downstream +components. Addition of new ledger state queries makes it possible to verify changes to +the governance state, such as placement of votes, submission of governance proposals, +inspecting DRep stake distribution and more. Addition of treasury withdrawals concludes the +ability to enact all of the governance actions, except for the hard fork initiation.

    Low level summary

    Conway progress

    • pull-3577 - Move PParams to GovState
    • pull-3609 - Adjust thresholds for sanchonet
    • pull-3604 - README: update CIP-1694 link
    • pull-3616 - Switch TreasuryWithdrawals to use RewardAcnt
    • pull-3599 - Add governance action well-formedness check
    • pull-3607 - Rename governance to gov
    • pull-3601 - Added DRep anchors
    • pull-3615 - Add optional previous GovActionId in some ProposalProcedures
    • pull-3596 - Upgradeable families
    • pull-3625 - Change constitution to use Anchor
    • pull-3592 - Added pulsing incremental computation of the DRep distribution
    • pull-3523 - Treasury donations
    • pull-3633 - Prevent state changes on phase2 failure
    • pull-3634 - Disable serialization of protocolVersion param update
    • pull-3630 - Implemented DRep refreshing
    • pull-3640 - Remove crypto parameterization from AnchorData
    • pull-3636 - Implement DRep ratification with an "always passing"; threshold
    • pull-3648 - Governance queries
    • pull-3650 - Change environment for ShelleyPOOLREAP rule
    • pull-3658 - Set DRep ratify threshold to 51%
    • pull-3628 - DELEG, POOL, GOVCERT conformance with Spec v0.8

    Testing

    Improvements and releasing

    • pull-3660 - Fix bounds and versions
    • pull-3661 - Adjust versions, bounds and CHANGELOGs to account for the latest release
    + + + + \ No newline at end of file diff --git a/page/43/index.html b/page/43/index.html new file mode 100644 index 0000000000..ff21c66aee --- /dev/null +++ b/page/43/index.html @@ -0,0 +1,63 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Marcin Szamotulski

    High-level overview of sprint 42

    Eclipse Evasion

    We merged and released a new version of the ouroboros-network package (version +0.9.0.0) which includes big ledger peers feature. +This is the primary peer selection mechanism to defend against eclipses. We +also prepared a PR to updated ouroboros-cosnensus +and ekg-forward packages.

    CDDL specs for protocol codecs

    We made the cddl spec for network codec more inline with the implementation +which is highly polymorphic. cddl doesn't have the notion of polymorphism, +but has any which can generate any valid cbor term. We matched it with an +Any type on the Haskell side and made all remaining tests & specs use it. +This simplified the specifications and made it easier to understand which parts +are defined in the spec, and which parts are left unspecified. See +ouroboros-network#4595.

    Ouroboros-Network-Framework API changes

    We also released ouroboros-network-framework and other network components. +The ouroboros-network-framework package contains a redesign of API exposed to +ouroboros-consensus. We consolidated, cleaned it and made it easier to +extend in the future if there will be new arguments that need to be passed to +mini-protocol initiator and responders which comes from the low-level network +layer.

    Nix setup (CI)

    We also made a major review of our nix setup. With help from our DevX team +we ended up with a clean flake.nix file which can:

    • compile & test the code on x86_64-linux, x86_64-darwin and aarch64-darwin
    • cross-compile to Windows on x86_64-linux

    And provides a shell which contains all the build tools, including ghc-9.6, +hls, cddl, and more. See ouroboros-network#4640, +ouroboros-network#4643.

    Other contributions

    Cardano Network Service Assurance

    • The work and writeup in finishing up the CNSA, first stage (first +contract).
    • Getting Sam Cowger (Galois Inc) up to speed.
    • The IOG Networking team carried a reivew of CNSA project progress: a limitted +code & design review.

    Galois Review

    Sam Cowger and Mark Tullsen (Galois Inc) have made some progress on each of the tech debt issues

    scoping, requirements, and getting started.

    CI

    We added a nightly run for GitHub actions and made the GitHub actions test be +executed with extra concurrency ouroboros-network#4637, ouroboros-network#4649.

    We also added GitHub's dependabot ouroboros-network#4650.

    Bootstrap Peers

    We settled on implementation design of bootstrap peers which is being +implemented, ouroboros-network#4615.

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Sanchonet and shelley-qa environments were updated to 8.2.1-pre.
    • Work on two new repos utilizing flake parts for cardano cluster generation, automation and operation.

    Lower level summary

    Cardano-ops

    Cardano-parts

    Cardano-perf

    Cardano-playground

    Cardano-world

    Inputs-check

    • A flake parts module to check input closure sizes recursively for optimization considerations: inputs-check

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
    • mithril: Full node verifier
    • musig2: Include MuSig2 description in cryptography handbook
    • kes_agent: Finilising test and CI. Working on KES binary

    Low level summary

    Mithril

    • Full Node Verifier merged #939.

    MuSig2

    • Started describing MuSig2 to include it as part of the cryptography handbook

    Sidechains

    • Analysis of Halo2 verifier with the goal of implementing SNARK verifier in Plutus. Implemented ad-hoc IPA verifier. Work progress in this fork.

    KES agent

    • KES agent is ready:
      • CI ready #19
      • Receipt confirmation message #20
      • KES agent binary ready #21
      • Control client implemented #11

    · One min read
    Kostas Dermentzis

    High level summary

    We have integrated many new Conway feutures and allow db-sync to sync sanchonet. +We also continued testing and improving the new db-sync options.

    Lower level summary

    • Conway integration +#1484
    • Support for Sanchonet +#1476
    • Stake distribution is computed earlier +#1484
    • Deposit ledger events are now used. This reduces the db queries and makes syncing faster +#1484
    • Testing new db-sync options +#1466
    • Added support for ghc-9.6 +#1479
    • Tech debt: improve exceptions +#1471

    · 4 min read
    Iñigo Querejeta Azurmendi

    Security Issue Report: SECP256k1 bug

    Date Occurred: July 15, 2022 +Severity: Potentially Very High if exploited on Mainnet +Authors: Iñigo Querejeta Azurmendi

    Date of Report: August 17, 2023

    Summary of Issue

    Criticality Level

    Actually low (since the issue was detected prior to deployment) but potentially very high if it had been deployed to mainnet +Context

    New SECP256k1 Plutus bindings were being introduced in order to support interoperability with other major chains, such as Bitcoin and Ethereum. The intention was to deploy these as part of the Vasil hard-fork. The bindings were considered to be a low-security risk since the underlying library functions were well tested and had been deployed on other blockchains. +How was the Issue Detected

    The issue was detected via specific End-to-End tests that had been commissioned. It was (accidentally) triggered on the Cardano Testnet before a fix could be deployed there.

    What Action was Taken

    The Cardano Testnet was permanently halted, and new test environments were deployed (Preview and Pre-Prod). +Fixes were applied to prevent the use of the primitives. +A full security audit was carried out on the bindings. +The rollout of the primitives was postponed to a new hard fork (Valentine)

    Potential Effect

    The potential effect was that an adversary might be able to craft invalid Plutus transactions to crash any node, requiring execution of the Cardano disaster recovery plan to revert to a safe state and bypass the transaction.

    Actual Effect

    • Delay to the Vasil hard-fork
    • Temporary removal of SECP256k1 primitives
    • Additional hard-fork to introduce SECP256k1 primitives

    Ongoing Mitigations Needed, if any

    None

    Responsibility for Mitigations

    Core team

    Detailed description of Incident

    New Plutus secp256k1 cryptographic primitives for Plutus v2 failed to apply the necessary validity checks on the input data, meaning that the primitives could theoretically be used in an unsafe environment. The vulnerability was present in recent node versions (1.35.0 onwards), including ones deployed to Cardano Testnet.

    The problem was not in the deserialization functions of the underlying library (Bitcoin's library) but rather that the Haskell functions that implemented the Plutus builtins were not calling them correctly. In particular, the library functions were designed to take structured data as input. However, the Haskell FFI implementation that was produced for the Plutus builtins allowed a caller to pass in (possibly) unstructured data. There were no checks that these data were structured in the correct way. This issue was detected during End-to-End testing.

    • This is the ECDSA signature verification algorithm that was used. It takes a SECP256k1_pubkey as input. That type is an opaque type with an expected structure: a parsed and valid public key. It was not immediately obvious that structured data needed to be passed to allow the function to be used safely.
    • The same happened with the Schnorr verification function. It takes as input a SECP256k1_xonly_pubkey, which is again an opaque structure that holds a parsed and valid public key.

    The FFI skipped checks over these structured keys and directly passed the raw bytes that were given as arguments. If an adversary were to pass in data that was not properly structured, then it could result in unexpected behavior of the library. This could perhaps translate into an adversary being able to crash the nodes that ran these functions. All nodes in the network could be crashed by a single transaction that would then be executed repeatedly, so stalling the network until the disaster recovery process was initiated.

    The fix was addressed in this PR. It consisted of using the external representation that the deserialization function expects and running the deserialization prior to signature verification. This was audited by security experts.

    Recommendations

    • Check all new Plutus bindings for correct use.
    • Audit all new Plutus built-in bindings.
    • Continue to develop specific End-to-End tests for all new Plutus features.
    • Do not assume that any existing library functions are "safe". Treat all external calls circumspectly.
    + + + + \ No newline at end of file diff --git a/page/44/index.html b/page/44/index.html new file mode 100644 index 0000000000..40a388f8ca --- /dev/null +++ b/page/44/index.html @@ -0,0 +1,38 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Carlos LopezDeLara

    2023-08-02 - 2023-08-15

    High level summary

    • cardano-node 8.2.1 (pre-release) to SanchoNet
    • Continue moving CLI into era-based top level command structure
    • Wire-up DREP key generation,
    • Fix DREP deregistration certificates
    • Implement Constitutional Committee Key generation on the CLI
    • Introducing era-based protocol parameters on the API
    • Removing depracated functions and types on the API

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    Fix broken links in docs

    CI & project maintenance

    · One min read
    Franco Testagrossa
    Sebastian Nagel

    High-level summary

    This week, the Hydra team updated hydra-node to support cardano-node version +8.1.2, ensuring compatibility with the latest mainnet release. The team also +participated in discussions about a "cardanonical" JSON schema and added it as a +submodule to the project, contributing to improved data modeling and +interoperability.

    In terms of community engagement, the team successfully onboarded a new +contributor, also participated in a RareEvo Twitter space, and continued +preparations for the Hydra master-class.

    What did the team achieve this week

    • Updated dependencies to support cardano-node 8.1.2 #1007
    • Engaged in discussions about a cardanonical json schema and +add it as submodule to the project +#1013
    • Onboarded a new contributor to the hydra project (@locallycompact)
    • Joined RareEvo twitter space and continued preparation of hydra master-class

    What are the goals of next week

    • Update & streamline tutorial to work with latest version of hydra-node
    • Remove the internal commit functionality #954
    • Release 0.12.0

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: We've concluded benchmarking node version 8.2.0.
    • Tracing: Optimization of the new tracing system has been merged; we're currently working on self-documenting tracing configuration.
    • Nomad backend: A PR that makes our backend take advantage of added flexibility of the new hardware cluster has been merged.

    Low level overview

    Benchmarking

    As part of our release benchmarking cycle, we've completed and analysed the runs for the 8.2.0 version of cardano-node. In addition to the adjustment of sanity checks in our automation, we had to implement small changes in the analysis pipeline as well to accomodate the new version.

    Tracing

    A significant amount of optimizations for the new tracing system has finally been merged to master. At the moment, +we're working on having a trace message self-document the final tracing configuration of a running node. Apart from adding +insight into the system, this feature also aims at making future hot reloading of tracing configuration explicit and straightforward.

    Furthermore, we're setting up a final round of system integration level benchmarks comparing new against legacy tracing.

    Nomad backend

    The new hardware cluster permits greater flexibility as far as SSH access is concerned. By using nomad for a consistent +and reliable deployment, but taking advantage of direct connections for healthchecks and data transfer we believe we were +able to reduce overall network latency in the nomad cluster. This improves confidence when capturing all network related measurements during our benchmarks.

    A PR that adds these capabalities to our nomad backend - along with very many quality-of-life improvements - has been merged to master.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the Mithril protocol’s mainnet beta launch: the release-mainnet network is now consistently producing new certificates and snapshots! The team has released a new distribution 2331.1 which includes some optimizations and bug fixes: the bootstrap time of a Cardano node restored from a Mithril snapshot has been significantly reduced, and a bug that made the aggregator produce corrupted archives has been fixed. They also kept working on the implementation of the stress test tool for benchmarking the aggregator: the first phase has been implemented, as well as a monitoring feature. Additionally, they kept implementing the refactoring of the serialization/deserialization of the entities of the cryptographic library, and working on the post deployment of the mainnet infrastructure.

    Finally, they completed the rewriting and enhancements of the documentation website, and they completed the runbook for operating a production Mithril network.

    Low level overview

    • Released the new distribution 2331.1
    • Completed the epic Release 'mainnet' Mithril network #918
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Completed the issue Design & implement basic stress test tool for aggregator - phase 1 #991
    • Worked on the epic Post deployment 'mainnet' infrastructure #1091:
      • Completed the issue Create Production Infrastructure Runbook #1085
      • Completed the issue Ingest 'mainnet' metrics/logs in Grafana #1122
    • Worked on optimizations:
      • Completed the issue Add a 'clean' file to extracted database in client #1131
      • Worked on the issue Create explorer page with registered signers #1097
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on bugs:
      • Completed the issue Client fails to unpack some snapshot archive #1137
      • Completed the issue The 'release-preprod' network stopped producing certificates #1114
      • Completed the issue The 'release-mainnet' network does not show up in the explorer #1111
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.2' #1090
    • Worked on troubleshooting:
      • Completed the issue Signer can't sign with 'Invalid signature for party' error #1125

    · 2 min read
    Damian Nadales

    High level summary

    This week the Consensus team worked on integrating the latest node release into the UTxO HD branch. Our ad-hoc benchmarks in which we sync a node from scratch showed that the LMDB backend uses around 8GB of memory. We also released new versions of fs-sim and fs-api, and released strict-checked-vars.

    UTxO-HD

    • Rebased UTxO-HD on top of node 8.2 (issue)
    • Address new Maybe translations for UTxOs in Conway 1.6. (PR).
    • Performed ad-hoc benchmarking syncs with both implementations. The LMDB backend uses around 8GB of memory.
    • Fixed an infinite loop on the mempool tracing code that was preventing the node from shutting down gracefully.
    • Fixed an infinite loop on the ledger state query for traversing queries that prevented the node from running QueryUTxOByAddress (PR).
    • Measured the speed of QueryUTxOByAddress under different queryBatchSize values. There is a significant performance degradation for these queries when using the UTxO-HD version. Using the mainnet UTxO set at slot 90 million, querying an address took 40 seconds using the in-memory backend and 90 seconds using the LMDB backend, whereas the baseline took 7 seconds. We need to investigate if we can improve this situation or whether an external service that runs alongside the node is a better solution.
    • Refactored and implemented ledgertable-related classes for the general HardforkBlock.

    Genesis

    • Frisby and Esgen continue to engage with the Researchers on grinding against the Genesis design.

    Fostering collaboration

    • Drafted a document explaining versioning of local state queries #273.

    Support

    • Frisby is the release engineer this cycle.
    • Successfully created work-in-progress ouroboros-consensus and cardano-api commits that integrate the 2023 Aug 7 tip of cardano-ledger. This will require a release of ouroboros-consensus, which hasn't happened yet.
    + + + + \ No newline at end of file diff --git a/page/45/index.html b/page/45/index.html new file mode 100644 index 0000000000..3779d68d33 --- /dev/null +++ b/page/45/index.html @@ -0,0 +1,62 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
    • mithril: Full node verifier
    • musig2: Finalised the missing fuzz tests
    • kes_agent: engineer on PTO. Work halted

    Low level summary

    Mithril

    • Work on a mithril flaky test #1105
    • Keep working on Full Node Verifier #939. +Should be merged in the coming week.

    MuSig2

    • Finalised the fuzz tests #43

    Sidechains

    • Analysis of Halo2 verifier. Necessary for a future implementation of a plutus verifier.

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is formalising mini protocols and also further developing the +performance modelling prototype.

    Details

    • Developing new framework for specification and verification of +mini-protocols which is closer to the Haskell implementation.

    • Developed a new internal representation for the DeltaQ algebra that +allows for more modularity in backend implementations

    • Discussions regarding the Cardano networking specification

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team achieved notable progress in various aspects of the +project. The team updated the use case section for auctions on the /unstable +branch of the website, improving the understanding of Hydras applicability.

    From the development side, the team successfully completed event-sourced +persistence, a key enhancement in the projects architecture which improves +off-chain transaction processing performance. They also added a +submit-transaction endpoint to the API.

    In addition to project-related progress, the team actively engaged in community +reviews for several catalyst proposals related to Hydra and Mithril, +contributing to the wider Cardano ecosystem.

    Finally, the full report for the month of July was also published here.

    What did the team achieve this week

    • Published the monthly report for July
    • Updated the use case section for auctions (published on /unstable branch)
    • Completed event sourced persistence #913
    • Added a submit-transaction endpoint to the API #966
    • Community reviews for several catalyst proposals related to Hydra and Mithril
    • Created a network testing tool (hydra-net) #1006

    What are the goals of next week

    • Update hydra-node to work with cardano-node version 8.x
    • Remove the internal commit functionality
    • Release version 0.12.0
    • Update & streamline tutorial to work with latest version of hydra-node

    · 2 min read
    Alexey Kuleshevich

    High level summary

    The ledger team was working almost exclusively on the Conway era implementation. In +particular, the main focus was directed towards solidifying transaction related types and +their binary representation. We also directed some effort into unblocking Plutus team with +respect to PlutusV3 integration.

    Low level summary

    Conway progress

    • pull-3552 - Allow Constitutional Committee Hot Key to be ScriptHash
    • pull-3581 - Make Constitutional Committee Cold Key to be ScriptHash
    • pull-3571 - Implement a portion of the TICKF rule.
    • pull-3556 - Add Script to Constitution
    • pull-3576 - Add optional Anchor to ConwayRegDRep certificate
    • pull-3495 - Implement refund logic for Proposal deposits
    • pull-3579 - Change voting procedure in the transaction to a nested Map
    • pull-3585 - Rename CommitteeCert into a GovCert
    • pull-3587 - Remove DelegStakeTxCert from the COMPLETE pragma for TxCert
    • pull-3586 - Add CurrentTreasuryValue to TxBody
    • pull-3588 - Rename key roles
    • pull-3557 - Update NewCommittee action to use RewardAcnt and add more info
    • pull-3595 - Add ConwayUpdateDRep constructor to ConwayTxCertGov type
    • pull-3600 - Filter out zero TxOuts on Byron/Shelley boundary instead of Babbage/Conway
    • pull-3597 - Update ProposalProcedure return address to be a RewardAcnt

    Testing

    • pull-3374 - New features for generation subject to constraints
    • pull-3519 - Basic Conway features test

    Bugfixes

    Plutus integration

    • issue-3538 - A fairly complete specification was created for the PlutusV3 context
    • pull-3593 - Conway TxInfo for PlutusV3 is now compatible with all pre-Conway functionality

    Improvements and releasing

    • pull-3574 - Improve clarity and performance of collateral Non-ADA validation:
    • pull-3573 - Update top-level CHANGELOG.md with cardano-node relevant changes
    • pull-3555 - Bump pygments from 2.12.0 to 2.15.0 in /doc
    • pull-3575 - Bump certifi from 2022.12.7 to 2023.7.22 in /doc
    • pull-3567 - Backport mint field translation bugfix
    • pull-3568 - Fixed typo in byron ledger spec
    • pull-3572 - Release/backport tickf bugfix

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 41

    24th July - 6th August 2023

    We started the implementation of bootstrap peers. Bootstrap peers are designed +to provide a safety guarantee for nodes joining the network while still taking +advantage of the distributed network for nodes that are synced. This will be +an intermediate step before Genesis which will allow for further distribute the +system. The bootstrap peers will be run by some trusted partners like CF, +Emurgo or IOG. They are primarily designed for leaf nodes (e.g. full node +wallets), which often end up syncing and require access to the honest chain. See +ouroboros-network#4615 for a more detailed implementation plan.

    Other contributions

    We started to use nothunks library to discover if we have any unevaluated +thunks which can lead to memory leaks ouroboros-network#4633. We found +a small one in the peer metric component of the P2P networking stack. Fixing +it put us on a small detour of fixing the API of the strict-checked-vars +package: cardano-base#431, cardano-base#432, as well as adding NFData +instance to io-classes. We also improved nothunks +library to make debugging easier and we provided a NoThunks instance for +ThreadId which we will need in the future (see nothunks#33).

    We released a new version of io-classes (version 1.2.0.0) and related +packages to Hackage.

    We addressed all review comments on the eclipse evasion PR which introduces big +ledger peers, ouroboros-network#3886.

    We fixed how SIGHUP signal handlers are registered, so it's not possible to +shutdown a node which was starting while trying to update network topology, +see cardano-node#5421.

    I didn't mention that in the previous update, so here it goes: in the previous +sprint we released ouroboros-network-0.8.2.0 and +ouroboros-network-framework-0.7.0.0.

    + + + + \ No newline at end of file diff --git a/page/46/index.html b/page/46/index.html new file mode 100644 index 0000000000..48d9670996 --- /dev/null +++ b/page/46/index.html @@ -0,0 +1,54 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: We're adjusting the benchmarking cluster to handle runs for node version 8.2.0.
    • Tracing: We've finished optimization of the new tracing system and added extra robustness with regard to namespacing.
    • Infrastructure: We've been working on making all benchmarking code compliant with the latest GHC9.6.
    • Nomad backend: The new backend has seen adjustments due to a change of underlying hardware. Additionally, we've successfully performed various benchmarking runs on it.

    Low level overview

    Benchmarking

    The 8.2.0 version of cardano-node required adjustment of some of the sanity checks that are part of our benchmarking +cluster automation. We've pinpointed the necessary changes and are currently setting up the cluster for the new node version.

    Tracing

    The optimization efforts for the new tracing system have been completed and have significantly reduced the resource footprint +when using it as default for a running node.

    A linchpin of the new system is the organization of traces into a namespace hierarchy. This affects configuration, self-documentation as well as rendering of desired trace messages. The new system is now equipped to detect any +inconsistency in the whole set of tracers, defined across all components, even if they are never turned on in a running node. +This feature adds another layer of robustness to the whole system.

    Infrastructure

    A potential switch to GHC9.6 (or higher) required some work on our code bases to make it compliant with recent compiler +versions. We've future-proofed our benchmarking code.

    Nomad backend

    The hardware cluster that our nomad backend was accessing has been changed, and we were able to adjust our backend +accordingly without touching its higher level abstractions and functionality. Moreover, with the new hardware and cluster setup, certain tasks such as retrieving run artifacts or healthcheck monitoring have become more performant.

    The validation phase is ongoing. We were able to perform successful runs and analyses for various 8.x node versions, including 8.2.0-pre. With parallel runs on the current cluster, we hope to measure the same effects we've observed with the +nomad backend - which will be a big step towards production use.

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Preprod and preview envionments were updated to 8.1.2.
    • Sanchonet and shelley-qa environments were updated to 8.2.0-pre.
    • Work on a new cardano performance repo which utilizes a lightweight Cloudformation/Rain to Terraform infra bootstrap and Nomad environment has begun.

    Lower level summary

    Cardano-ops

    Cardano-perf

    Cardano-world

    · 2 min read
    Carlos LopezDeLara

    2023-07-19 - 2023-08-01

    High level summary

    • Release of Node 8.2.0
      • Updates to the ledger packages extend progress on the Conway ledger era to support new governance features via CIP-1694.
      • This release is phase 1 of the SanchoNet roll out
      • Allows SPOs to vote on changes to the on-chain constitution.
      • Ability to start the node in block production mode with no secrets loaded using the --non-producing-node flag.
      • Updates to the networking packages prepare the road for peer sharing.
    • cardano-cli and cardano-api continue to integrate Conway era features
    • Continue refactoring of cardano-testnet

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · 3 min read
    Marcin Szamotulski

    Network Update (Sprints 39 & 40)

    The network updates got distracted. Mostly because of me leaving for the meeting in Edinburgh, Scotland and the being away. +It was great to see and talk to so many of the community members.

    Sprint 39 (Jun 26 - Jul 09)

    Major changes

    Now the following list of traces will be turned on by default:

    node-to-client protocol
    • LocalConnectionManagerTracer
    • LocalInboundGovernor
    • LocalHandshake
    • LocalServer
    node-to-node protocol
    • Server

    See cardano-node#5353. This will be released in node-8.2.0.

    We made sure that cardano-client-0.1.0.x library (which is db-sync) is not using the experimental node-to-client protocol. +The cardano-client-0.2.0.0 was not affected. +See ouroboros-network#4612.

    We merged the dynamic block production feature to ouroboros-consensus (also available in the cardano-node-8.2.0 release). +Dynamic block production enables hot-swap p2p nodes, which are important for the p2p deployment of block-producing nodes. +See ouroboros-network#3159, [ouroboros-consensu#140].

    We continued to review the implementation of big ledger peers for eclipse evasion, see ouroboros-network#4462.

    Minor changes

    Sprint 40 (Jul 09 - Jul 23)

    Major changes

    We integrated ouroboros-network-0.8.2.0 with the master branch of cardano-node for the 8.2.0 release (the version match between ouroboros-network and cardano-node is purely accidental). +This includes:

    • integration with dynamic block production feature. +This feature is documented in the following PR.
    • Warm valency for local root peers (see below).

    For the full list of features included in the 8.2.0 release from the network side, please take a look at the pre-release nodes.

    We improved the memory footprint of peer metrics measured by the P2P stack. +Peer metrics are used to decide which peers to demote every churn interval (roughly every hour with some probabilistic fluctuation). +See ouroboros-network#4620. +The improvement will be available in cardano-node-8.2.0.

    We added an optional explicit warm valency to local root peers of the P2P topology file. +Previously we used an implicit valency, e.g. the node keeps connections to all of the local roots; with local warm valency the node will pick only that many peers from the local root peers group to connect to. +The hot valency (previously known simply as valency) hasn't changed, but it must be smaller than the warm valency as hot peers are selected from warm ones. +Warm valency is a useful feature to limit resource consumption if one of the domain names in the local root peer group resolves to many IP addresses. +See ouroboros-network#4575, cardano-node#5409.

    · 2 min read
    Sebastian Nagel

    High-level summary

    During this week, the Hydra team achieved significant progress in various areas. +They conducted the monthly review meeting for July, which continously ensures +transparent communication and project evaluation. The team migrated the core +logic of the node to an event-sourced architecture and incremental writes of +events to persistence, enhancing the projects performance and maintainability. +Furthermore, the team added the ability to read protocol parameters via the API +and fixed the CI workflows to support pull requests from forks of external +contributors, streamlining the development process for community involvement.

    What did the team achieve this week

    • Held the monthly review meeting for July (recording)
    • Migrate the core logic of the node to an event-sourced architecture #999
    • Updated persistence to faster incremental writes of events #1000
    • Added ability to read protocol parameters via API #735
    • Fix CI workflows to support pull requests from forks of external contributors #993
    • Updated to GHC 9.2.8 #1005
    • Prepared an updated use cases section on https://hydra.family (published with next release)

    What are the goals of next week

    • Publish monthly report
    • Complete user transaction submission work #966
    • Remove commit from internal wallet (deprecated) #954
    + + + + \ No newline at end of file diff --git a/page/47/index.html b/page/47/index.html new file mode 100644 index 0000000000..8ed6d82fbd --- /dev/null +++ b/page/47/index.html @@ -0,0 +1,42 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team launched Mithril protocol’s mainnet beta: the release-mainnet network is now open for signer registrations, and its genesis certificate has been created. The team is monitoring the network, and expects it to start producing certificates during the next Cardano epoch.

    They have released a new distribution 2329.0, which is running on the release-mainnet network. They also kept working on the implementation of the stress test tool for benchmarking the aggregator. The team kept working on the refactoring of the serialization/deserialization of the entities of the cryptographic library. Additionally, they completed the cleanup of the legacy store adapters in the aggregator.

    Finally, they have worked on enhancing the documentation for onboarding SPOs and setting up a Mithril signer, and fixing installation bugs of the binary artifacts produced in the CI.

    Low level overview

    • Created the dev blog post Mithril Protocol’s Mainnet Beta Launch
    • Released the new distribution 2329.0
    • Closed the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Deploy 'mainnet' infrastructure #988
      • Completed the issue Handle Secrets management #989
    • Worked on the epic Release 'mainnet' Mithril network #918
      • Completed the issue Prepare SPO on-boarding guide #1049
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on optimizations:
      • Completed the issue Enhance the configuration of Mithril relay #1080
      • Completed the issue Remove legacy store adapters from aggregator #1053
      • Completed the issue Add a 'sign' sub-command to 'genesis' command in aggregator #1081
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on documentation:
      • Completed the issue Enhance 'Run a Mithril Signer node (SPO)' guide #1055
    • Worked on bugs:
      • Completed the issue Shared library error in CI binaries #1073
      • Completed the issue Debian package does not install cleanly on older ubuntu versions #834
      • Completed the issue Aggregator panics with new (de)serialization of 'ProtocolVerificationKey' #1083

    · One min read
    Damian Nadales

    High level summary

    The db-sync team confirmed that the adaptor module the Consensus team provided for UTxO-HD integration, shows no performance degradation. Other clients who wish to integrate with UTxO-HD without using a on-disk storage could use that same approach for now. +We also focused on completing tracing support for UTxO-HD in cardano-node. +Currently we are working on UTxO-HD documentation, both for downstream consumers and for the general public; and generalizing the implementation further.

    The team working on Genesis decided on a Genesis-motivated change of the epoch structure with the researchers, wrote a self-contained description of the statistical model for historical Genesis windows and eclipse durations, and merged two small improvements to the ChainSync client as part of the onboarding efforts for the team that will implement Genesis.

    The Consensus team also investigated an issue on sanchonet (the Conway testnet) manifesting in long syncing pauses; identified a ledger bug which was promptly fixed by the Ledger team.

    Genesis liaising

    Improvements to the ChainSync client:

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team updated the specification to align with recent +off-chain protocol changes, completed refactoring the snapshot emission +in preparation for event-sourced protocol logic, and updated to GHC +9.2.7, resulting in improved compile times and slightly smaller Plutus +scripts.

    What did the team achieve this week

    • Updated the specification to match the recent off-chain protocol +changes to complete +#728
    • Refactored the snapshot emission logic in preparation for event +sourced protocol logic.
    • Updated to GHC 9.2.7, which led to improved compile times and +slightly smaller plutus scripts.

    What are the goals of next week

    • Monthly review meeting next wednesday and July report
    • Reflect latest information onto our roadmap.
    • Actual implemention of event-sourced persistence +#913.
    • Update the use cases section on https://hydra.family
    • Remove deprecated internal commit +#954.

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Our focus was on planning and implementing Conway features that we would like to see deployed and running on Sanchonet. +All members of the ledger team participated in the CIP-1694 workshop and had an in-person meeting, where we discussed plans forward for the Conway era. +We also investigated some transaction validation issues that occurred on preview with the latest node (for 8.2 release). +Additionally, we did some preparatory work that will help us define the types we need for Plutus V3 and integrate with the new version when it will become available. +We also made progress on the constraint-based generators, which can now generate valid transactions and ledger states.

    What we achieved

    • [pull-3521] [pull-3554] Improved Governance model (GovernanceProcedures, ProposalProcedure)
    • [pull-3520] Improved Governance-related naming (Renamed Tally to Gov and VDel to GovCert )
    • [pull-3531] Refactored and simplified code interacting with Plutus
    • [pull-3558] Fixed a bug that was breaking validation on preview, related to refernce inputs witnesses. We backported and released the fix.
    • [pull-3550] For Conway to run on Sanchonet, we updated the era Translation to remove zero-ADA outputs. This was necessary because such outputs exist on mainnet, but in Conway they are not allowed.
    • [pull-3551] [pull-3546] [pull-3472] Updated tools and added some small improvements
    • [issue-3146] [pull-3498] Introduced Conway protocol parameters
    • [issue-2948] [pull-3499] Implemented ConwayGenesis with the new protocol parameters

    What is currently in progress

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent improvements include:

    • Re-spin sanchonet for testing a new node version followed by fork to Conway
    • Deploying a sanchonet compatible faucet to sanchonet
    • Migrate shelley qa legacy environment to cardano-world

    Lower level summary

    Cardano-node

    Cardano-ops

    • Mainnet relays are 50% migrated to p2p topology and 1 relay per region dedicated for ledger peers: cardano-ops-compare

    Cardano-world

    Iohk-nix

    + + + + \ No newline at end of file diff --git a/page/48/index.html b/page/48/index.html new file mode 100644 index 0000000000..54489f4687 --- /dev/null +++ b/page/48/index.html @@ -0,0 +1,37 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is working on formalising mini protocols, the performance +modelling prototype and also finishing off their ICE papers.

    Details

    • Formalization of the chain synchronization mini-protocol in the +thorn calculus

    • Final pre-publication steps for ICE 2023 papers

    • Developing approach for specification and verification of +mini-protocols

    • Started work on porting the DeltaQ framework to a new, more concrete +backend based on piecewise-polynomials

    · 2 min read
    Carlos LopezDeLara

    · One min read
    Franco Testagrossa
    Sasha Bogicevic

    High-level summary

    This week the team focused on exploring the event sourced persistence in order +to improve hydra-node performance. Because of this work the team noticed we +need to refactor the emit snapshot emission logic and update the spec in the +light of new changes. They also took the time to revisit their goals and product +plans for the next quarter as well as doing some security fixes related to +multisignatures.

    What did the team achieve this week

    • Finished spike about performance improvements of event sourced persistence #963.
    • Refactor snapshot emission in protocol logic.
    • Revisited our roadmap and goals.
    • Prepared and conducated a learning session on lean-waste.
    • Improve security of multi-signature checks, see this Github security advisory.
    • Implemented a cache friendly way to version our binaries #962.

    What are the goals of next week

    • Implement Event sourced persistence #913.
    • Remove deprecated internal commit #954 and close #728.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team created a new 2327.0 distribution. They focused on preparing the beta launch on the mainnet: they tested the new production signer deployment model with the pioneer SPOs, they prepared an SPO on-boarding guide, and they kept working on the deployment and monitoring of the mainnet infrastructure. The team also worked on the implementation of a simple stress test tool for benchmarking the aggregator. Additionally, they completed the refactoring of the interface to the cryptographic library.

    Finally, they fixed a bug that sporadically prevented the latest signer registration of a SPO to be used in the associated signing epoch, they fixed a bug in the epoch gap detection of the certificate chain in the aggregator, and worked on multiple other optimizations and bugs.

    Low level overview

    • Released the new distribution 2327.0
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Add infrastructure monitoring #987
      • Worked on the issue Deploy 'mainnet' infrastructure #988
      • Worked on the issue Handle Secrets management #989
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on optimizations:
      • Completed the issue Remove certificate hash from Artifact #932
      • Completed the issue Check vulnerabilities in CI #1037
      • Completed the issue Add 'created_at' in Mithril Stake Distribution messages #1030
      • Completed the issue Add a 'run-only' option in end to end test #1048
    • Worked on refactoring:
      • Completed the issue Factorize protocol crypto operations #669
      • Completed the issue Refactor aggregator dependency injection and services #1058
      • Completed the issue Build static binaries in CI #874
    • Worked on documentation:
      • Completed the issue Prepare SPO on-boarding guide #1049
      • Completed the issue Add instructions to set firewall using iptables #1040
      • Completed the issue Update ufw command to set firewall on Mithril Signer installation instructions #1041
    • Worked on bugs:
      • Completed the issue Aggregator does not detect certificate chain epoch gap #952
      • Completed the issue 'testing-preview' network does not create certificates #1015
      • Completed the issue SQLite compatibility in aggregator #837
      • Completed the issue Q&A followup fixes #1035
      • Completed the issue E2E tests are flaky in CI #1023

    · One min read
    Damian Nadales

    High level summary

    This week the team working on UTxO-HD discovered a space leak in the peer metrics code. This was communicated to the Networking team who has a proposed fix. The ad-hoc benchmarks that the team ran using a local immutable DB server showed good memory and time performance. We still have to check the performance on a memory constrained machine.

    The team working on the Genesis design started onboarding the team of engineers that will implement the new Genesis protocol. This team is also finalizing the statistical model for historical Genesis feasibility.

    On the support front, the team drafted an information exchange requirement (IER) for the Networking team to safely and efficiently control peer load.

    + + + + \ No newline at end of file diff --git a/page/49/index.html b/page/49/index.html new file mode 100644 index 0000000000..4564a6ba07 --- /dev/null +++ b/page/49/index.html @@ -0,0 +1,38 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: The peformance investigation into the compiler switch to GHC9 is ongoing. Additionally, a roadmap for implementing Consensus QTAs has been developed.
    • Infrastructure: Our workbench has undergone some refactoring to seamlessly integrate its profiles into all available backends.
    • Tracing: Optimization of the new tracing system is ongoing and yielding good performance results.
    • Nomad backend: We developed a new feature for the nomad backend which allows pinning deployments to specific machines.

    Low level overview

    Benchmarking

    Our analysis of the GHC9 build of cardano-node has produced several locations in the code base where the new compiler seems to miss opportunities for optimization. Our hypothesis is, that those can account for the difference in resource usage we observe when benchmarking with a full cluster run. Instructing the compiler on how to perform the optimizations which GHC8 apparently applied out of the box requires further investigation.

    In an effort to define Quantitative Timeliness Agreements (QTAs) on a per-component basis, we have coordinated with the Consensus team and developed a roadmap for providing those on consensus level. Making use of the insight that system-level benchmarks allow, we intend to set up and calibrate a benchmark that can reliably predict a regression or optimization for select metrics before needing full integration into cardano-node. This will help tremendously in various ways: catching regressions much earlier, localizing them much easier, avoiding repeated component integration and much shorter feedback cycle.

    Infrastructure

    We have worked on seamless integration of our benchmarking profiles into the many available backends that the workbench provides. The goal was to be backend-agnostic, to guarantee that all benchmarking run artifacts be structurally identical as far as their file name, format and location are concerned. This lead to refactoring work and has already landed in master.

    Tracing

    Much effort went into further optimization of the new tracing system. After working on configuration to align both new and legacy tracing system with regard to their trace frequencies, we could uncover some increase in resource usage. This occurred for corner cases under very heavy load. These cases have been addressed already, and do now surpass the legacy tracing system in terms of performance.

    Nomad backend

    For reliable benchmarking results it is vital to introduce as few confounding factors as possible when performing runs. This includes hardware and network topology. The nomad backend has been outfitted with a mechanism to pin the nomad job for some node in our benhcmarking cluster to a specific machine instance. This greatly increases confidence in the metrics observed from a run.

    Furthermore this feature will detect any change in the underlying hardware or topology so it can be taken into account. The new feature has been merged to master.

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Sidechains: First version of snark-based ATMS
    • mithril: Full node verifier
    • kes_agent: Keep progress, and prepare CIP and CPS
    • CIPs and community: Finishing BLS12-381 CIP and working on a KECCAK CIP

    Low level summary

    kes_agent

    Mithril

    • Final review of the implementation of Full Node Verifier #939. +Included benchmarks and further tests.

    Sidechains

    • Schnorr signature implemented
    • ATMS signature implemented
    • First benchmarks show that for the committe size we expect, we need 2^21 constraints.

    CIPs and community

    • Addressed some review comments in #PR506
    • Worked with the communityt on #PR524 to include Keccak as part of the next Plutus release.

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the teams have been working on finalising their ICE papers +for publication in EPTCS, formalising concensus, and investigating chain +sync.

    Details

    • Preparing final versions of ICE papers

    • Reviewing the chain sync design and documentation

    • Refactoring the thorn calculus

    • First draft of Praos specification

    • Developing bounding factors on timeouts

    · One min read
    Franco Testagrossa
    Sasha Bogicevic

    High-level summary

    This week the Hydra team accomplished some nice progress. They secured the +network layer further by implementing authentication of the messages between the +peers in the Head protocol. In the process they also managed to separate +HeartBeat messages from the protocol ones which somewhat improved the quality of +code in Hydra. The team also finished work related to sending only transaction +ids in ReqSn messages, fixed an issue in the smoke tests, and improved benchmark +publishing on the website.

    What did the team achieve this week

    What are the goals of next week

    • Spike on performance improvements of event sourced persistence #913
    • Add new endpoint for submitting client transactions
    • Remove commit from internal wallet

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements, supporting CI improvements, and general environment maintenance.

    Some notable recent improvements include:

    • Improved cardano-node entrypoint handling to allow for clean restarts in the Nomad environment
    • Explorer component updates
    • Spongix caching server rewrite for R2 Cloudflare support and various performance improvements

    Lower level summary

    Cardano-node

    Cardano-ogmios

    Cardano-ops

    • Improve storage resize script, workaround systemd node signal handling, rescale p2p relays: cardano-ops-compare

    Cardano-rosetta

    Cardano-world

    Spongix

    • Spongix caching server rewrite for Cloudflare R2 backend support plus misc improvements: spongix-simple-branch
    + + + + \ No newline at end of file diff --git a/page/5/index.html b/page/5/index.html new file mode 100644 index 0000000000..488a7272c2 --- /dev/null +++ b/page/5/index.html @@ -0,0 +1,69 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Daniel Firth

    High-level Summary

    This sprint, the Hydra team released version 0.17.0 of the hydra-node, containing the new blueprint commit transaction mechanism and upgrades to the networking protocol incorporated over the last several weeks. We also completed several documentation upgrades.

    Next sprint, we aim to focus the outstanding increment decommit work, completing the model tests for it as well as investigating adversarial attacks on the smart contract.

    What did the team achieve this sprint?

    • Combine blueprint and commit tx metadata #1409
    • Diagnose currently stuck head. #1415
    • Document offline mode #1414
    • Document writing an Event Sink and Source #1413
    • Streaming Plugins #1325
    • Ensure -Werror is running in CI. #1426
    • Release hydra-node-0.17.0

    What are the goal of the next sprint?

    • Update to cardano-node 8.11-pre #1439
    • Incremental decommit #1057
    • Make progress on the design for incremental commit #199
    • Reopen a head to test blueprint commits.
    • Test combinations of decrement/close/fanout #1390

    · 4 min read
    Michael Karg

    High level summary

    • Benchmarking: Node versions 8.9.3 and 8.11.0; new PlutusV3 plus addtional DRep benchmarks; re-evaluation of network latency.
    • Development: BLST workload for PlutusV3 was implemented; improved error/shutdown behaviour for tx-generator is in testing phase.
    • Workbench: UTxO-HD tracer configs harmonized. New plutusv3 profiles supporting experimental budgets. Work on Haskell profile definition is in validation phase.
    • Tracing: New metrics and handle registry feature merged to master. Work on metrics naming ongoing. Factoring out RTView component has begun.

    Low level overview

    Benchmarking

    Runs and analyses of full sets of release benchmarks have been performed for Node versions 8.9.3 and 8.11.0.

    For comparison of how the Conway ledger performs when injecting large amounts of DReps and delegations versus one with zero DReps we've run additional configurations with existing workloads from release benchmarking. So far we've found +that the number of DReps in ledger scales well and does not lead to notable performance penalties.

    Additionally, we've successfully run the baseline for the upcoming PlutusV3 benchmarks on our Nomad cluster. Those will, given the new V3 cost model, serve to determine headroom, or constraint, regarding resource usage and network metrics when +operating under various execution budgets.

    Last not least, with much appreciated support and feedback from the network team, we performed a re-evaluation of the network the latency matrix for our benchmarking cluster. The cluster stretches over three regions globally. Due to unknown changes in the underlying +hardware infrastructure, a slight delay between Europe and Asia/Pacific regions could be measured. We needed to adjust some existing baselines accordingly - otherwise, this delay could be falsely attributed to a software regression.

    Development

    We have implemented a benchmarking workload using PlutusV3's new BLST internals. As those do little memory allocation, but require more CPU steps, this workload will allow us to focus on that particular aspect of block and transaction budgets.

    The tx-generator service will now label each submission thread with its submission target. Additionally, it has been equipped with custom signal handlers. This will improve both how gracefully shutdowns can be performed, and how +precise error reporting is done when losing connection to a submission target. Last not least, the service now supports a configurable KeepAlive timeout for the NodeToNode mini-protocol - accounting for very long major GC pauses on +submission targets under very specific benchmarking workloads. Those features have entered testing phase.

    Workbench

    Thanks to feedback from the consensus team, we've harmonized tracing configurations for our benchmarks between regular and UTxO-HD node. As the latter is more verbose by default, this is a confounding factor for our metrics: We're analysing north +of 90 traces per second per cluster node, so all node flavours are required to be equally verbose.

    The benchmarks based on the BLST workload now additionally support scaling budget components up or down at will. This means we can run a given cost model against custom execution budgets, controlling the point where the workload will exhaust it. This enables comparison +of performance impact of potential changes to those budgets.

    Porting our performance workbench's profile definitions to Haskell has been nearly completed, and an adequate test suite been implemented. This new component has now entered validation phase to make sure it correctly replicates all existing profile content.

    Tracing

    Two new metrics for cardano-node have landed in master - both for new and legacy tracing systems. They provide detailed build info, and indicate wether the node is a block producer or not.

    We're now working on closing the gap in the metric naming schema between new and legacy tracing. The aim is to allow for a seamless interchange, without additional configuration required, so that all existing monitoring services can rely on identical metric +names with identical semantics.

    Furthermore, work has begun to factor out the RTView ("real-time view") component of cardano-tracer in the new tracing system. Unfortunately, the component has remained in prototype stage for over a year, and has revealed some design shortcomings. It's aim +is to provide an interactive, real-time dashboard based on metrics from all nodes connected to cardano-tracer. The current design has all front-end side code baked into the backend service, requiring to rebuild the entire service in Haskell even for simple changes in the +dashboard. We decided to isolate the component in the current code base, which still allows for optionally enabling it for a build. The long term goal however is to convert it into a downstream service: It will ingest metrics by reforwarding, or querying a REST API, and will provide +a clear separation of frontend facing code. Thus we, and anybody, can use their favourite web technology for visualization of metrics.

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet was respun for cardano-node 8.11.0-pre

    • Private chain was respun twice for pre-sancho respin testing and short epoch +testing with cardano-node 8.11.0-pre

    • Shelley-qa, two-thirds of preview and one-third of preprod networks were +deployed to cardano-node 8.11.0-pre

    • Sanchonet, private chain and shelley-qa networks had dbsync sancho-4-3-0 +deployed

    • A dbsync show_current_forging prepared statement was added to the +cardano-parts profile-cardano-postgres nixosModule to aid with debugging +chain quality issues

    • Three documents were added to cardano-playground to better explain some +operations procedures: KES rotation, chain quality debugging and new network +creation. Found at: +docs/explain

    • A new mithril dashboard template is available in cardano-parts

    Lower level summary

    Capkgs:

    • Avoid git API rate limit errors on update github action via netrc usage and +corresponding secret: +capkgs-commit

    Cardano-parts

    • Sets cardano-node-ng to 8.11.0-pre and cardano-db-sync-ng to sancho-4-3-0. +Adds a dbsync prepared statement, mithril dashboard template, updates the +node application dashboard template, improves justfile recipe templates and +tunes some systemd dependencies. Iohk-nix-ng was updated for sanchonet and +private chain respins. More detail is available in the PR description: +cardano-parts-pull-41

    Cardano-mainnet

    • Rotates KES, pins iogp4 as -ng, adds a mithril dashboard, updates the node +application dashboard, improves justfile recipes and tunes systemd node and +mithril services to avoid some edge case errors. See the PR description for +more details: +cardano-mainnet-pull-15

    Cardano-ogmios

    Cardano-playground

    • Respins sancho and private chains and deploys cardano-node 8.11.0-pre and +cardano-db-sync sancho-4-3-0 to appropriate envs and machines. Adds a mithril +dashboard template, updates the node application dashboard template, improves +justfile recipe templates. Adds three new explainer readme documents. See the +PR description for more details: +cardano-playground-pull-24

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Most of the focus was on the conformance testing this time around. We had completed +conformance tests for CERT and RATIFY rules and progressed on some of the others. This +also resulted in some improvements to the constraint-generators framework. Besides that +we've also fixed Stake Pool Operator stake distribution calculation that is used for +voting by including proposal deposits that are currently locked in the system. One of the +Ledger team members was also performing duties of a release engineer, so we also +facilitated the latest cardano-node-8.11 release.

    Low level summary

    Features and fixes

    • pull-4324 - Proposal deposits in SPO voting stake
    • pull-4316 - Complete EraScript hierarchy with missing classes
    • pull-4287 - Fix various minor issues in the Shelley & Babbage specs

    Testing

    • pull-4320 - CERT conformance
    • pull-4334 - RATIFY conformance
    • pull-4337 - Fix RATIFY conformance
    • pull-4325 - constrained-generators: soundness tests and bugfixes
    • pull-4323 - constrained-generators: clean up interface
    • pull-4336 - constrained-generators: Introduce fromList_ :: (HasSpec fn a, Ord a) =&gt; Term fn [a] -&gt; Term fn (Set a)

    Infrastructure and releasing

    • pull-4333 - Fix babbage-test and conway-test versions
    • pull-4332 - Update CHANGELOGs
    • pull-4343 - Bump requests from 2.31.0 to 2.32.0 in /doc

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling proof generation for mainnet by prototyping optimizations and benchmarking performance improvements. They also made progress on low-latency certification by completing the retrieval of the chain tip and importing transactions from the Cardano mini-protocol with Pallas. Additionally, they worked on a new explorer page to display in/out SPOs for the latest Cardano epochs.

    Finally, the team upgraded the testing-sanchonet network following the SanchoNet network respin, created a module for building test transactions, and began removing the deprecated snapshot command from the client CLI.

    Low level overview

    • Completed the issue Aggregator stress test crashes during signer registration #1676
    • Completed the issue Prune Cardano transactions stored on signer #1645
    • Completed the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Completed the issue Prepare testing-sanchonet for respin with Cardano 8.11-pre #1694
    • Completed the issue MacOS Rust tests are flaky in CI #1556
    • Worked on the issue Prototype optimizations for increasing Cardano transactions proof generation throughput #1687
    • Worked on the issue Retrieve Cardano blocks with chainsync in pallas PoC #1590
    • Worked on the issue Explorer display in/out SPOs in registered signers page #1686
    • Worked on the issue Create a test Cardano transactions builder #1667
    • Worked on the issue Cardano signatures are not produced on testing-sanchonet and testing-mainnet #1681
    • Worked on the issue Remove snapshot command in client CLI #1690
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    + + + + \ No newline at end of file diff --git a/page/50/index.html b/page/50/index.html new file mode 100644 index 0000000000..b0c7731b17 --- /dev/null +++ b/page/50/index.html @@ -0,0 +1,38 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Moritz Angermann

    High level summary

    The Developer Experience team has been dealing with day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, CI migration from Cicero to Hydra, and Buildkite to GitHub Actions. iohk-nix, haskell.nix, and devx have seen improvements.

    Lower level summary

    build support & maintainance

    The DevX team has helped troubleshoot a few CI issues, and focused on helping to migrate from Cicero to Hydra, as well as from Buildkite to GitHub Actions.

    compiler upgrades

    Compatibility with 9.6 has been continued and most of our libraries are not 9.6 compatible. Only a few are not, we hope to have this done by the end of the month. We've also started preliminarily adding GHC 9.8 to our infrastructure for early compiler regression tests.

    Hydra Tools

    Our repository, input-output-hk/actions, has seen quite some improvements to facility the hydra <-> github integration.

    haskell.nix

    Haskell.nix has been maintained and updated with the addition of preliminary GHC 9.8 support.

    devx

    The devx repository has seen significant improvements, including the addition of GitHub Codespaces, and DevContainers. Integrated with our actions/devx GitHub Actions, we have a consistent set of tooling for

    • nix develop shells
    • GitHub CodeSpaces integration
    • VSCode DevContainer support
    • GitHub Actions integration

    upstream tooling

    Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

    · One min read
    Kostas Dermentzis

    High level summary

    We've made progress in all high level objectives

    • CIP-1694 integration design
    • UTxO-HD integration proof of concept
    • schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2 and tested
    • Many devx issues resolved

    Lower level summary

    • We have improved and validated the design for the Conway integration in db-sync
    • Improved the initial integration of the UTxO-HD feauture branches which are under test
    • Prepared a new release 13.1.1.3 which supports node 8.1.1 +#1455.
    • This also fixes a bug +#1451
    • Added new tests to the new tx_out options +#1429
    • Fixed a chronic issue in db-sync related to exception handling and concurrency +This fixes many other issues and simplifies the logic in db-sync +#1447
    • A number of fixes and improvements in ci, docker, devx, docs +#1436#1442#1448#1452

    · 2 min read
    Carlos LopezDeLara

    2023-06-21 - 2023-07-04

    High level summary

    • Started integration of conway era into the cardano-api,
    • Pre-release of cardano-cli 8.2.1 which enables creating goveranance "Update constitution" governance actionsas well as voting. Both only as SPO. DREP and CC will come in future releases.
    • Cardano-cli is moving to a top-level era command structure (i.e. cardano-cli conway, cardano-cli babbage, etc to accomodate for different fucntionalities available in diferent eras. In particular between Babbage and Conway governance-related functionalities.
    • Continue refactoring cardano-testnet
    • CI and docs house keeping on the new cardnao-cli and cardano-api repositories

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team wrote and published the monthly report for June, +implemented the end-to-end functionality for external commits, and tested it on +the preview environment. They also listed Hydra as a tool on the Cardano +developer portal, providing more visibility for the project. The team clarified +the path forward for L2 protocol improvements and explored an alternative CI +approach using cabal instead of nix. Additionally, they released version 0.11.0, +marking another milestone in the projects development.

    What did the team achieve this week

    • Written and published the monthly report for June
    • Implemented external commits end-to-end incl. tested it on preview #215
    • Listed Hydra as a tool on cardano developer portal
    • Cleared up path forward on L2 protocol improvements #728
    • Established an alternative CI using more cabal tools #923
    • Release version 0.11.0

    What are the goals of next week

    • Spike on performance improvements of event sourced persistence #913
    • Complete ReqSn only sends transaction ids #728
    • Groom and plan last items for 0.12.0 (remove internal commit)
    • Improve reliability of benchmarks

    · 3 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the design of the signer deployment model for the SPOs to run Mithril on their Cardano mainnet infrastructure, and implemented the associated Mithril Relay in the Mithril networks. They started working on the design and implementation of a stress test tool for benchmarking the aggregator performances. They worked on the refactoring of the Mithril Stake Distribution entity and the uniformization of the date types in the nodes. They also worked on implementing a new tool command in the aggregator and its first sub-command that helps avoiding re-genesis of the certificate chain when the structure of the certificate is updated. Additionally, they worked on implementing some monitoring for the Mithril infrastructure, and worked on a retry mechanism for the artifact creation of the aggregator.

    Finally, they fixed some bugs, and they completed the upgrade of the Mithril networks to Cardano node v.8.1.1.

    Low level overview

    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Add infrastructure monitoring #987
    • Completed the epic Prepare Mithril Signer deployment model for SPO #862:
      • Completed the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
      • Completed the issue Adapt infrastructure to use Mithril Relay #1018
      • Completed the issue Announce the new signer deployment model in a dev blog post #1017
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on bugs:
      • Completed the issue Aggregator does not exit on critical error #993
      • Completed the issue Computation of master certificate of an epoch is incorrect #1006
      • Completed the issue End to end tests are flaky #954
      • Worked on the issue 'testing-preview' network does not create certificates #1015
    • Worked on optimizations:
      • Completed the issue Dates format is not standardized #946
      • Completed the issue Add 'recompute-certificates-hash' command to aggregator #1001
      • Completed the issue Add a retry mechanism for artifact creation in aggregator #984
      • Completed the issue Log node version at startup in Aggregator/Signer #944
      • Completed the issue Reactivate Publish Results job in CI #978
      • Completed the issue Clean 'pending_snapshot' directory of aggregator #983
      • Completed the issue Update OpenAPI spec examples #1000
    • Worked on refactoring:
      • Completed the issue Refactor 'MithrilStakeDistribution' entity #967
      • Completed the issue Refactoring client #982
      • Completed the issue Refactor download code in client #1010
      • Worked on the issue Factorize protocol crypto operations #669
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.1' #973
    + + + + \ No newline at end of file diff --git a/page/51/index.html b/page/51/index.html new file mode 100644 index 0000000000..53bdf701a6 --- /dev/null +++ b/page/51/index.html @@ -0,0 +1,57 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks the team working on the Genesis implementation continued to engage with the researchers, which resulted in various simplifications of the correctness argument for the historical Genesis window. They also decided on an approach for a syncing node to decide that it is (no longer) caught up. This functionality was requested by the networking team.

    The team working on the UTxO-HD implementation ran ad-hoc benchmarks that showed performance issues, which are being investigated. They also merged several improvements required for the first UTxO-HD release, and added a package for easing integration with other downstream components.

    Regarding our support activities, we integrated the latest Ledger changes into Consensus in preparation for release 8.2 of node.

    Genesis

    • We continued to engage with the researchers on our probabilistic model for historical Genesis window, resulting in various simplifications that make the correctness argument more clear while not being excessively conservative.

    • We decided on an approach of how to implement functionality requested by the Networking team; namely, how a syncing node can safely conclude that it is (no longer) caught up. Certain parameters are still subject to discussion with the researchers, and we have still have to agree on a concrete API for this functionality with the Networking team.

    UTxO-HD

    • We merged the last of the PRs that were part of UTxO-HD improvements for version 0.1: expose UTxO-HD configuration options in the node, refactor ledger tables, and expose a method of computing the UTxO set size.
    • We added a new "legacy" cardano block in a new ouroboros-consensus-cardano-legacy-block package that should ease the transition for some downstream packages to UTxO-HD, like db-sync. This is really only useful for downstream packages that use the parts of consensus that don't involve the storage components, in which case we can largely ignore ledger tables. Ignoring ledger tables could also make functionality like block (re-)application more performant for the legacy Cardano block as compared to the actual (UTxO-HD compatible) Cardano block.
    • We performed ad-hoc benchmarks of the UTxO-HD implementation, observing a regression in sync speed in the LMDB implementation as well as a regression in memory usage on the in-memory implementation. We are investigating this.

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed several new benchmarks and a performance investigation in preparation of switching the default compiler to GHC9.
    • Infrastructure: The first batch of refactoring and documentation for our tx-generator has been merged to master.
    • Tracing: We've looked into an issue where the tracing system's concurrency could prevent a graceful node shutdown.
    • Nomad backend: Our new cloud backend has seen various improvements regarding deployment and monitoring; validation runs for the backend are ongoing.

    Low level overview

    Benchmarking

    The compiler switch to GHC9 as the default build platform for cardano-node and its components still has noticeable effects on system-wide performance metrics. An investigation into the different resource usage profiles of compiler versions does seem to indicate GHC9's significantly different inlining behaviour may produce those effects. We're currently locating the specific places in component code that have the most extensive effect in that regard.

    Using the forge-stress approximation we set up, we could determine that above effect is not due to a range of RTS parameters, as for example the number of capabilites used by the node.

    Infrastructure

    The tx-generator is a crucial part of our tooling responsible for producing very specific workloads for our benchmarking cluster. In an effort to flesh out an API to make it reusable for more general use cases, a first set of refactorings has been merged to master. Additionally, this merge contained systematic documentation both for internal and for exposed areas of the code base.

    Tracing

    The tracing system's concurrency could under certain conditions prevent a graceful shutdown of the node. This issue did occur only after adding specific new traces on a development branch. We could localize and address that issue.

    Nomad backend

    With the data gathered from running the new nomad cloud backend, we've been able to address many, many small and medium-sized improvements. The deployment process has been restructured for better efficiency, and the healthcheck system could be fine-tuned to recognize severity of various conditions that might occur. Optimization of fetching all run data from the cloud for evaluation is in progress.

    Additionally, we're continuing the new backend's validation by setting up test runs and looking into comparative analyses with metrics gathered from the current cluster backend.

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the teams presented two papers at ICE 2023.

    Details

    · One min read
    Franco Testagrossa
    Pascal Grange

    High-level summary

    This week, the Hydra team shared progress updates during the monthly review +meeting (monthly report and video recording available soon) and started +experimenting on preview network with the new commit from external wallet +feature.

    What did the team achieve this week

    • Monthly report & review meeting, demonstrating commit from external +wallet
    • Published regular benchmarks for +Hydra
    • Moved forward the journey for external commits using multiple script UTxOs +#903
    • Changed the API to only put transaction id in snapshots, instead of the full +transactions #922 -> this +is now evolved into fully addressing #728
    • Fuel marking is now optional as one can now commit from an external wallet +#924
    • Add flag option to display node version on tui +#934

    What are the goals of next week

    • Complete external commits using multiple script UTxOs #903
    • New release 0.11.0
    • Dirtroad solution of improved persistence performance #913

    · 2 min read
    Marcin Szamotulski

    Network Update

    Key contributions

    We held a series of session to review the implementation of big ledger peers +(eclipse evasion). See #4462.

    We get a request from a 3rd party to clarify an inconsistency between CDDL spec +and protocol implementation. We worked out a nice solution which takes +advantage of the any notion available in CDDL. On the Haskell side we +provide Any type which gen generate almost any CBOR term (some are excluded +only because they are not decoded back to the same form, and we relay on that +property). See #4580.

    We fixed a bunch of problems of the cardano-cli ping command. It also now has +a limited support of node-to-client mini-protocol (the -c option is +ignored, as it cannot be supported by node-to-client protocol). Note that +the format of messages has changed, timestamps are printed in ISO8601 format. +See #4601, #5326, #5313, #30

    In order to provide a new flag in the topology file which enables ledger peers +when the chain is close to the tip, we continued to work on #4530. This is +currently in review, the consensus team will need to provide us with the new +api. This feature is useful for two reasons: makes it easier to maintain +a topology file, it will also limit the traffic on public roots generated by +for example full node wallets and distribute it to ledger peers.

    We also continued to work on a blog post which describes the journey of design +& implementation of the dynamic P2P network layer. Too be announced soon :).

    Other smaller changes

    We limit the concurrency of resolving dns names. Up to 8 root peers or ledger +peers DNS names are resolved concurrently, and at most 2 local root peer DNS +names. See #4596.

    We fixed handshake query timeout in #4603.

    We renamed one of the block-fetch decision constructors as requested by the +consensus team, see #4608.

    + + + + \ No newline at end of file diff --git a/page/52/index.html b/page/52/index.html new file mode 100644 index 0000000000..0c782ed408 --- /dev/null +++ b/page/52/index.html @@ -0,0 +1,38 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include:

    • A devx-ci cluster containing a Hydra build server and Linux build farm was stood up and is intended to replace Cicero functionality
    • Cardano Sanchonet environment was stood up to test Conway era functionality
    • Cardano-node nixos service was updated to support the latest p2p topology format and non-systemd socket activation use case
    • Cardano-node 8.1.1 was deployed to preview, preprod and mainnet environments

    Lower level summary

    Cardano-node

    • Update cardano-node nixos service for updated p2p topology and non-systemd socket activation: cardano-node-pull-5318

    Cardano-ops

    Cardano-world

    Ci-ops

    Ci-world

    • Add devx-ci cluster integration for caching, monitoring during cicero to devx-ci transition: ci-world-compare

    Devx-ci

    • A CI cluster with a hydra build server was stood up and is intended to replace usage of Cicero: devx-ci-repo

    Iohk-nix

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team focused their efforts on continuing to investigate and +experiment operating a head on mainnet. They collected several bugs and issues +and worked on fixing them. Now the team is soon to release a new version, +0.11.0, which comes with a lot of improvements and bug fixes.

    What did the team achieve this week

    • Restored and fixed a bug which stalled our head on mainnet #927
    • Solved one user issue #914
    • Reduced significantly local state size and logs by removing the full scripts from it #928
    • (pending review) Reduced snapshot size in the API, by only including tx ids #922

    What are the goals of next week

    • New release 0.11.0
    • Monthly report & review meeting.
    • Fix some minor bugs discovered when operating our head on mainnet
    • Complete journey for external commits using multiple script UTxOs #903
    • Publish benchmarks and provide regular benchmarks for Hydra #186

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the implementation of the new sub-command for restoring a Mithril stake distribution in the client. They also updated the client’s developer documentation and architecture documentation, and did some refactoring on the client and its dependency injection mechanism. Additionally, they completed and deployed infrastructure enhancements on the test Mithril networks. They also completed the performance tests of the new stake distribution computation on the Cardano mainnet.

    Finally, the team worked on fixing a bug on the client multi-platform test, a bug on the aggregator state machine, and some flakiness on the CI.

    Low level overview

    • Completed on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the issue Create the sub-command for 'Mithril Stake Distribution' in client #896
      • Completed the issue Adapt end to end tests to handle new types of data #899
      • Completed the issue Update client documentation #897
      • Completed the issue Update architecture documentations for new types of data #898
      • Completed the issue Refactoring client #960
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Enhance terraform infrastructure #930
    • Completed the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the issue Check performance impact of new stake distribution command on the 'mainnet' #962
    • Worked on the epic Prepare Mithril Signer deployment model for SPO #862:
      • Worked on the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
    • Worked on bugs and optimizations:
      • Completed the issue Aggregator does not always detect new immutable file #953
      • Completed the issue CI tests fail with Rust '1.70.0' #958
      • Worked on the issue End to end tests are flaky #954
      • Worked on the issue Certificate dates in metadata are not on the same timezone #946
      • Worked on the issue Refactor 'MithrilStakeDistribution' entity #967
      • Completed the issue Fix 'Mithril Client multi-platform test' with new client interface #956
      • Completed the issue Enhance 'ImmutableDigesterError::NotEnoughImmutable' error #969
      • Completed the issue Client 'snapshot download' command fails with option '--download-dir' #979

    · 2 min read
    Damian Nadales

    High level summary

    The Consensus team had a very productive meeting with IOG Researchers. We now seem to be in alignment in regards to a strong argument that the Byron and TPraos eras do not need to be checkpointed for an MVP. +There is one remaining question (which applies also to the Praos era): how to assess the threat that short forks pose against historical windows that underperformed? We are currently collaborating on that. We also drafted an argument that the updated "Limit on Patience" timeout sufficiently bounds how long the adversary can inflate a victim's overall sync time.

    On the UTxO-HD front, the prototype branch was rebased on top of the latest ouroboros-consensus main branch and integrated on top of cardano-node 8.1.1-pre. As a result, the mempool fairness fix that was released recently is now integrated into UTxO-HD. +We managed to run a node again with UTxO-HD enabled. +We also identified a race condition in the UTxO-HD prototype and fixed it. In addition, we started performing UTxO-HD ad-hoc benchmarks for cardano-node, which uncovered a performance regression on the Network component when using GHC-9.2/9.4. This is being addressed.

    Regarding our support activities, we Released fs-sim-0.2.0.0 and are in the process of preparing the 8.2 release of cardano-node. We also identified and started fixing incorrectly-unevaluated thunks in preparation for enabling CI NoThunks tests.

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: We've continued release benchmarking and established a new baseline for 8.0.0.
    • New tracing: Our benchmarking profile for measuring new vs. legacy tracing performance has been refined.
    • Nomad backend: The healthcheck system for the the nomad cloud has been completed. We've performed the first full runs on the new backend.

    Low level overview

    Benchmarking

    In our release benchmarking cycle, we established a new performance baseline for 8.0.0. Additionally, we've measured +performance under various workloads for 8.1.1-pre; the results look promising and validate the optimization efforts +done on several system components.

    In the meantime, we've finalized a build plan with GHC9.2 that matches the current one with GHC8.10; a requirement for +benchmarking as a large amount of differences in the dependency graph can confound the results for the application code proper.

    Tracing

    The legacy and the new tracing system differ fundamentally in design, implementation and handling. So for metrics to be +meaningful in a comparison, benchmarking profiles have to be tuned such that not only log line frequency but frequency of specific +trace messages are closely aligned. We've found that higher granularity in this regard was necessary, and done additional work on our dedicated profiles.

    Additionally, we've had a first glance of what additional traces could be valuable in the context of benchmarking UTxO-HD.

    Nomad backend

    As the new backend's healthcheck system in its first iteration can now serve as a guardrail to ensure sanity of a full-length run, we've performed our first 52-node cluster runs on nomad cloud. We're currently smoothing the edges around cluster deployment, and analysing the metrics gathered from those runs.

    This means the backend is entering validation phase, where we systematically compare all metrics taken from the new +infrastructure to the existing ones, including determining reproducibility and variance.

    + + + + \ No newline at end of file diff --git a/page/53/index.html b/page/53/index.html new file mode 100644 index 0000000000..2ba040fa73 --- /dev/null +++ b/page/53/index.html @@ -0,0 +1,60 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Marcin Szamotulski

    Network Update

    Key contributions and advances

    We merged light peer sharing feature, which allows to include inbound peers +into outbound governor known peers. This is the primary way for new +unregistered nodes to enter the network, which then can be shared using peer +sharing. Note that peer sharing is an experimental feature which is disabled +until genesis & eclipse evasion as fully implemented. See #3596.

    We are making progress reviewing eclipse evasion, #3886.

    We fixed another bug in local root peers. We found out that if the local roots +where ignored until the first domain name was resolved, see #4583. The bug +fix was backported and released in ouroboros-network-0.8.1.1.

    We re-started working on dynamically enabling block forging to address issue +#3159, which will enable us to release P2P on block producing nodes. See #140.

    New cardano-ping / cardano-cli ping release

    We prepared a new release of cardano-ping library which supports the new +query feature (query supported versions). See #4589, #4593 and #5313. +The new version of cardano-cli ping will use ISO8601 formatted +timestamps; also the formatting of ping results is slightly improved, and it +will introduce the new --query-versions (-Q) switch. If the remote site +supports the query parameter, the command will print:

    redacted-ip:port network rtt: 0.064
    redacted-ip:port handshake rtt: 0.064010896s
    redacted-ip:port Queried versions [NodeToNodeVersionV11 764824073 InitiatorAndResponder,NodeToNodeVersionV10 764824073 InitiatorAndResponder,NodeToNodeVersionV9 764824073 Initiat
    orAndResponder,NodeToNodeVersionV8 764824073 InitiatorAndResponder,NodeToNodeVersionV7 764824073 InitiatorAndResponder]

    otherwise it will print the negotiation results

    redacted-ip:port network rtt: 0.045
    redacted-ip:port handshake rtt: 0.101867615s
    redacted-ip:port Negotiated version NodeToNodeVersionV10 764824073 InitiatorAndResponder

    Note that in that case cardano-cli ping offers InitiatorAndResponder, which +allows us to detect whether the remote side is an InitiatorOnly or +InitiatorAndResponder. Also cardano-cli ping will no longer announce +itself as InitiatorAndResponder, except for the case mentioned above.

    Other smaller contributions

    On a request from the Marlow Team, we published haddocks of typed-protocols, +which are now available here (#40, #41).

    We made a new release of strict-stm-1.1.0.1 on Hackage, which fixed a bug in +package description file, #101 .

    We also helped to debug a deadlock when using named pipes on Windows in the new +RawBearer API. The API is being used to store secret keys only in memory. +The PR #4395 is under review.

    We also have two more PRs which are under review:

    • #4530: enabling ledger peers on a fixed number of slots before the tip of the chain;
    • #4580: a PR which fixes inconsistencies in one of our cddl specs.

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • cardano-base: E2E tests for BLS bindings and KES agent
    • Sidechains: Implement ECC chip and Rescue hash primitives for ATMS
    • mithril: Full node verifier

    Low level summary

    cardano-base

    • RawBearer API in ouroboros-network-framework (https://github.com/input-output-hk/ouroboros-network/pull/4395); blocked due to issue with windows' localSnocket. Trying to resolve.
    • Adapting cardano-base for direct memory transfers between mlocked RAM and file descriptors #317.
    • Above, blocked by the simplification of typeclasses #404.
    • Provided e2e test cases to the testing team with aggregated signatures and schnorr signatures for the BLS bindings

    Mithril

    • Implementation of Full Node Verifier #939

    Sidechains

    • ECC chip implemented for JubJub over BLS12-381
    • Rescue chip implemented for hashing.
    • Currently working on Schnorr signature (which uses the above constraints)

    · 3 min read
    Moritz Angermann

    High level summary

    The Developer Experience team has been devoted to day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, the maintaince of our cardano-haskell-packages (CHaP), and infrastructure like GitHub Actions, iohk-nix, haskell.nix, and devx. Furthermore, we have also contributed to upstream tooling improvements.

    Lower level summary

    build support & maintainance

    Our DevX team has been instrumental in troubleshooting and fixing a wide range of issues, from broken windows builds and obscure LoadDLL errors to blst integration across Nix and Github CI. We've also initiated automatic uploads for release assets. Our efforts in streamlining complex CI setups have paid off, with some repositories like cardano-base experiencing significant reductions in CI complexity.

    compiler upgrades

    After the support for 9.2 across our libraries, we have started working on 9.6 compabilitiy as well. This move brings us closer to the upstream compiler, facilitating the contribution of patches and enabling early detection of regressions. In addition, we're prioritizing compaining even stronger for better backwards compatibility.

    CHaP (cardano-haskell-packages)

    We relocated the underlying tooling, (foliage), for CHaP into the IOG organization. Furthermore, we have introduced improved tooling to quickly add constraints to packages, better error reporting for add-revision and better hackage url compatibility to facilitate easer usage of CHaP.

    GitHub Actions

    Our repository, input-output-hk/actions, now houses the necessary actions for installing pre-requisites to build Cardano projects using GitHub Actions. Leveraging the base and haskell install actions has allowed us to simplify workflows in the repos, focusing primarily on invoking cabal.

    iohk-nix

    The iohk-nix repository has undergone a major revamp and now provides pre-built packages of the cryptographic libraries IOG utilizes for GitHub Runners. The key components we use, sodium, blst, and secp256k1, are also fixed to certain revisions within the iohk-nix repository.

    haskell.nix

    Haskell.nix has been maintained and updated with the addition of GHC 9.6.2 and GHC 8.2.8. After discovering performance regression in the native bignum backend, we switched the default bignum backend to gmp.

    devx

    The relatively new devx repository is where we experiment with a single nix development shell that aims to suffice for most use-cases at IOG. This initiative is expected to eliminate a number of CI failures related to project-build and shell interaction problems. The devx repository's readme has been updated to reflect its purpose and usage guidelines.

    upstream tooling

    Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

    · 2 min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team worked on multiple fronts. They finished the +investigation about the broken head on mainnet and re-opened their persistent +head instance. The team also fixed the monthly report publication on their +website and started sketching ideas and further improvements. Also, they are on +the last mile to deliver a new feature which will allow parties to commit funds +from extern wallets. Finally the team started to work on optimizing the +performance on their benchmarks.

    What did the team achieve this week

    • Finished investigation on broken head on mainnet #897 and re-opened it.
    • Added support for externally committing regular utxo #887
    • Fix monthly report publication on docs website and published the monthly report. Odd problems when publishing monthly report:
      • Make us think about if we should change something about the website #908
      • Open issue to docusaurus #9036
    • Fixed a bug in the benchmark process #910
    • Explored performance of the hydra-node{.verbatim} and identified a +bottleneck.
    • Timed transaction feature is being used by the auction project 🎉

    What are the goals of next week

    • Complete performance analysis and start/plan improvements and provide +regular benchmarks for Hydra #186
    • Add hydra as tool to developer platform #872.
    • Authenticate network messages #727.
    • Complete journey for external commits using multiple script UTxOs #903
    • Start implementing Option B for external commits #215.

    · One min read
    Kostas Dermentzis

    High level summary

    We've made progress in all high level objectives

    • CIP-1694 integration design
    • UTxO-HD integration proof of concept
    • schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2
    • A new hire will help us with devx issues.

    Lower level summary

    + + + + \ No newline at end of file diff --git a/page/54/index.html b/page/54/index.html new file mode 100644 index 0000000000..81930462a6 --- /dev/null +++ b/page/54/index.html @@ -0,0 +1,42 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on giving and preparing public +talks, also on preparing final versions of their ICE 2023 papers, and +on analysing chain selection.

    This sprint the team has been working on final revisions for the +pre-proceedings versions of two ICE 2023 papers.

    Details

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include: expanding the darwin CI cluster and providing new aarch64 builder support; adding bare metal bitte cluster capability with network overlay for high IOPS workload performance, such as explorer.

    Lower level summary

    Bitte

    • Equinix bare metal capability was added to bitte: bitte-pull-194
    • Update bitte nixpkgs, nix version, nomad driver, equinix lifecycle, misc bug fixes: bitte-pull-201

    Bitte-cells

    Cardano-graphql

    Cardano-node

    Cardano-ops

    Cardano-world

    Ci-ops

    • Update legacy darwin builders and buildkite agent for ci-world network overlay and monitoring: ci-ops-pull-108

    Ci-world

    Cicero

    • Implement a cicero webhook backoff with exponential decay plus jitter: cicero-pull-79

    Iohk-nix

    Openziti

    · 2 min read
    Martin Kourim

    High level summary

    Since the last update (2023-03-26) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.7 and 8.0.0 releases.

    Workstreams

    Full list of closed PRs

    Framework improvements:

    • Make cardano-submit-api REST API service available and run corresponding regression tests by default
    • Update cabal build testing for 8.0.0
    • Add support for testing governance SPO poll
    • Use Poetry for Python dependency management
    • Check status of known GH issues during tests runtime and finish the test accordingly
    • Generate topology files with both IP addresses and DNS names
    • Log issues like failure to start a cluster instance and report errors during tests runtime

    Testing improvements

    • Add rollback testing:
      1. global consensus is reached after rollback, in situation where less than securityParam blocks were produced since cluster split
      2. global consensus is not reached when more than securityParam blocks were produced, and the result is permanent fork
    • Add tests to governance SPO poll commands

    Node:

    DB-Sync:

    • improvements in db-sync sync tests
    • improvements in db-sync functional tests

    · 2 min read
    Carlos LopezDeLara

    2023-06-07 - 2023-06-20

    High level summary

    • Completed cardano-cli migration to input-output-hk/cardano-cli
    • cardano-cli ping now uses cardano-ping-0.2.0.5
    • New queries on API:
      • queryCurrentEpochState
      • queryDebugLedgerState
      • queryGenesisParameters
      • queryPoolDistribution
      • queryPoolState
      • queryProtocolParameters
      • queryProtocolParametersUpdate
      • queryProtocolState
      • queryStakeAddresses
      • queryStakeDistribution
      • queryStakePoolParameters
      • queryStakeSnapshot
    • Deprecate:
      • queryPparams
    • Export query API as functions
      • genFeatureValueInEra
      • featureInShelleyBasedEra
      • isFeatureValue
      • valueOrDefault
      • asFeatureValue
      • asFeatureValueInShelleyBasedEra
      • queryEpoch
      • requireShelleyBasedEra
    • Restructure cardano-testnet (WIP)

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · 2 min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team has put their effort on finding solutions on many +different problems, such as our broken head on mainnet +#897, our fragile monthly +report publications on the website and implementing Option A for +external commits #215. +Although most of these items are still open, huge progress has been made. To +accelerate the investigation, they improved their logging to give more precise +errors when a transition requirement fails, and to reduce duplication on effets +logged content. Last but not least, the team is exploring formal methods and +attended a workshop on formalizing cryptographic protocols in Agda.

    What did the team achieve this week

    • Continued investigating broken head and opened an issue to keep track #897.

      As part of this issue, improvements were made to the node logs:

      • Give a precise error when a transition requirement fails #895.

      • Reduce duplication for effects logged content by using sequential eventId and effectId pair #896.

    • Fixed references in the hydra specification #893.

    • Attended a workshop on formal methods and crypto in Agda.

    What are the goals of next week

    • Investigate and re-open our team-internal head on mainnet.
    • Improve and provide regular benchmarks for Hydra #186.
    • Complete journey for external commits implementing Option A and start implementing Option B #215.
    • Authenticate network messages #727.
    • Add hydra as tool to developr platform #872.
    • Fix monthly report publication on docs website.
    + + + + \ No newline at end of file diff --git a/page/55/index.html b/page/55/index.html new file mode 100644 index 0000000000..3ec3fa2d75 --- /dev/null +++ b/page/55/index.html @@ -0,0 +1,48 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2321.1 distribution that fully implements the mechanism developed to sign generic data. They completed the upgrade of the Cardano node in the Mithril networks to v.8.0.0 and the implementation of the new computation of the stake distribution. They refactored the state machines of the signer and aggregator, and the signed entity service of the aggregator. Additionally, they worked on adapting the client and implementing a new sub-command for restoring the Cardano immutable file snapshots.

    Finally, the team worked on adding a new certificate list route in the aggregator REST API, and started enhancing the infrastructure of the Mithril networks.

    Low level overview

    • Released the new distribution 2321.1
    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the issue Enhance MessageAdapter for Artifact in aggregator REST API #925
      • Completed the issue Create the sub-command for 'Cardano Immutable Files Full' in client #895
      • Completed the issue Enhance state machines Aggregator/Signer #933
      • Completed the issue Adapt the aggregator REST API to list certificates #892
      • Worked on the issue Adapt end to end tests to handle new types of data #899
      • Worked on the issue Update client documentation #897
      • Worked on the issue Update architecture documentations for new types of data #898
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Enhance terraform infrastructure #930
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the issue Upgrade Cardano node to '8.0.0' #920
    • Completed the issue Add export path in Client CLI #512

    · One min read
    Damian Nadales

    High level summary

    During the Past two weeks we drafted an implementation path for concluding that a node is caught up, which will also be used to back Network's ledger-peer selection (see this issue). We also carried a thorough investigation into the exact feasibility of applying the Genesis rule to certain historical parts of the chain.

    On the UTxO-HD front, we are working on improving the ledger tables design and wrapping up the improved DB locking mechanism. We also released packages that are required not only by UTxO-HD but are already used in cardano.

    UTxO-HD

    • We have a plan for making the ledger tables in UTxO-HD more ergonomic by mimicking SOP classes like HPure and HAp . In short, we implement generalised versions of important classes like Applicative and Traversable.

    Support

    • fs-sim-0.1.0.2 and fs-api-0.1.0.2 were released, which makes them now compatible with GHC up to 9.6.
    • ouroboros-consensus-0.7.0.0 was released for cardano-node 8.1, including query serialization fixes for backwards compatibility.

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed and analysed first benchmarks with GHC9.2 builds. Additionally we have developed an early indicator for how build config changes might reflect on metrics from our model cluster.
    • New tracing: Collaboration with Galois led to the new tracing system to be equipped with a re-forwarding mechanism.
    • Nomad backend: Porting the 52 node model cluster to nomad cloud is ongoing, with the focus on deployment and health checks.

    Low level overview

    Benchmarking

    The first set of runs with GHC9.2 as a build platform are in. We've discovered a significant difference in resource profile usage compared to GHC8.10. Further investigation uncovered the need for benchmarking another parameter change in the build +configuration: As it stands, the ghc-bignum package is using the Haskell native-backend as a default. We strive +to benchmark a build with the gmp-backend next.

    A variant of our forge-stress local benchmark has been set up to serve as an early indicator for the resource usage profile +we'd expect to observe on the model cluster. This provides us with a much tighter feedback loop, as local run duration is way +shorter. This indicator is specific to changes in the configuration of build and the runtime systems, and will be of great +support when evaluating different compiler versions or RTS flags incrementally.

    Tracing

    The hub of the new tracing system cardano-tracer is designed with a fixed output behaviour, which is limited to various +logging options. Thanks to the contribution from Galois, that design is now extended to be able to re-forward all, or a pre-filtered portion, of traces from the node in a configurable manner. This will enable downstream applications to +directly receive the set of trace values relevant to their logic, without any additional cost for the node itself at all.

    Nomad backend

    We're currently working out the details of efficiently deploying and monitoring a fleet of 50+ nodes, along with +job definitions for tracing and transaction generation. Scaling up to those many instances, and monitoring an ongoing +benchmarking run required us to fine-tune communications with the nomad server.

    Related to that, the new cloud backend will provide a monitoring and health-checking mechanism which is far more flexible +and offers more detailed insight than the previous iteration in cardano-ops. The backend will enable you to formulate +very specific conditions for an ongoing run to be considered healthy, and offer automation of certain actions should these conditions not be met.

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on final revisions for the +pre-proceedings versions of two ICE 2023 papers.

    Details

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team accomplished several important tasks. They held their +monthly review meeting and drafted the report for May. They made progress on +implementing the first end-to-end journey for external commits using "Option A" +for normal UTxOs, while still considering "Option B". The team also integrated a +Spanish translation contributed by the community, created micro-benchmarks for +transaction validation and deserialization, and made improvements to +hydra-node's version reporting. Last but not least, they implemented the ability +to commit multiple UTxOs to a head at once.

    What did the team achieve this week

    • Held the monthly review meeting (recording + slides) & drafted the report for May.
    • Have a first end-to-end journey for external commits implementing Option A +for normal UTxOs #887 (still considering Option B).
    • Integrated the spanish translation #866.
    • Created micro-benchmarks for transaction validation and deserialization #884.
    • Improve hydra-node version reporting on non-released builds #849
    • Some minor CI improvements following up last weeks changes.
    • Allow commit transactions with multiple UTxO #774.

    What are the goals of next week

    • Investigate and re-open our team-internal head on mainnet.
    • Improve and provide regular benchmarks for Hydra #186.
    • Complete external commits with script UTxOs #215.
    • Authenticate network messages #727.
    • Add hydra as tool to developr platform #872.
    + + + + \ No newline at end of file diff --git a/page/56/index.html b/page/56/index.html new file mode 100644 index 0000000000..8042119185 --- /dev/null +++ b/page/56/index.html @@ -0,0 +1,34 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jared Corduan

    High level summary

    The ledger team made progress on the conway ledger era. In particular, the design and implementation +of the new certificates is near complete, we refactored some of our data structures +to be able to support DReps, we cleaned up the serialization format, and renamed things to make +clearer the differences with Shelley.

    The team also completed integration work for the next node release, namely 8.1.0. +And, as always, we continue to address technical debt.

    Low level summary

    Conway progress

    • pull-3408 - Improve conway delegation certificates
    • pull-3428 - Get rid of Constitutional in favor of Genesis and Committee
    • pull-3426 - Add DRep to internal data struture (UMap)
    • pull-3425 - Improve witness logic needed for conway
    • pull-3423 - Rename ShelleyDelegCerts constructors to distinguish them from Conway
    • pull-3421 - Rename DCert -> TxCert
    • pull-3454 - conway CDDL minor fixes

    Improve testing

    • pull-3403 - Add Plutus script context golden tests

    Integration work

    • pull-3410 - Update chaps index
    • pull-3416 - Bump cardano-ledger-alonzo-test version
    • pull-3414 - Bump cardano-ledger-shelley-test minor version
    • pull-3420 - Bump cardano-ledger-shelley-ma-test version
    • pull-3441 - Release cardano-ledger-[alonzo|babbage]-1.2.1

    Technical debt

    • pull-3409 - Unit test - no such thing as a reference datum
    • pull-3407 - Fixup release process documentation
    • pull-3404 - Create TotalDeposits events during all eras
    • pull-3402 - Fix broken references in the Shelley spec
    • pull-3424 - Remove no longer used cardano-ledger-shelley-ma package
    • pull-3432 - Add an example on how to bump up versions in the changelog
    • pull-3440 - Revert back to the group serialization for ProtVer for PParams

    · One min read
    Marcin Szamotulski

    High level summary

    We continued working on eclipse-evasion. We also analysed and fixed a bug +when using DNS names in local root peers. We continued working on engineering +blog post about P2P. We released a new version of packages for +cardano-node-8.1.0 release.

    We improved our CI, removed obsolete scripts add extra validation which checks +if CHANGELOG.md files were updated.

    We also improved release scripts.

    Detailed summary

    • Eclipse evasion: #4462
    • Local root peers bug fix: #4559
    • Release to CHaP: #4573
    • CI improvements: #4572
    • Release script improvements: #4573

    · One min read
    Jordan Millar

    2023-05-24 - 2023-06-06

    High level summary

    • The last sprint focused on removing cardano-cli and cardano-api from the cardano-node repository. We have successfully moved cardano-api to its own repository and will do the same for cardano-cli after the 8.1 node is released.
    • We provided assitance where needed in the release
    • An integration repository https://github.com/input-output-hk/fusion-flamingo was created to enable my team to more easily work on cardano-cli and cardano-api

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team has worked on several fronts, including improvements of their CI speed, logs, documentation pages and adding the support for timed transactions. They also updated the "Coding Standards" for the project, improved the troubleshooting page on their website and wrote a section about how to operate a hydra node. Finally the team completed a feature request that allows clients to submit and validate transactions to their hydra nodes using time validity ranges, ensuring isomorphism with L1.

    What did the team achieve this week

    • Complete validation of timed transactions feature #196.
    • Write ops instructions and troubleshooting #569 and improve logs.
    • Remove --ledger-genesis argument to hydra-node options #863.
    • Fix issue with garbage collected caches by using a new cardano-scaling.cachix in more workflows #877.
    • Use nix to build test binaries to increase CI speed #867.
    • Updated our Coding Standards.

    What are the goals of next week

    • Monthly report & review meeting.
    • Have a first end-to-end journey for external commits implementing "Option A" #215.
    • Integrate spanish translation #866.
    • Improve and provide regular benchmarks for Hydra #186.
    • Allow commit transactions with multiple UTxO #774.
    • Explored stateless observation and refined hydra explorer ticket #696.

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks we brought further improvements into the Genesis design in collaboration with the IO Research and Networking teams. These improvements concern the Genesis selection rule, candidate rule, and root peers usage. See the [Genesis][#genesis] section for more details.

    Regarding our UTxO-HD prototype, during the past two weeks we put together a pull-request that improves the DB locking mechanism, started porting the mempool fairness improvements from our main branch, and integrated a new open source library (that implements cancellative monoids) that allowed us to simplify our code and get a small performance gain.

    We improved our tooling by releasing an immutable DB server, which can be used for testing and benchmarking purposes, and a db-truncater program, which can be used in disaster recovery and benchmarking scenarios.

    Genesis

    The consensus team working on Genesis:

    • Improved the genesis selection rule as a result of our interaction with IO Research.
    • Studied how the hard-fork combinator handles forecasting at era transitions, and improved our documentation.
    • Determined that the simplest candidate rule we had considered will work for the Genesis window at era transitions, at least for the MVP.
    • Elaborated concrete proposal for the Genesis State Machine.
    • Met with the Networking Team and advised/co-designed how to implement the stop gap usage of public trusted root peers before Genesis is released (it's similar to the Genesis State Machine).

    The team is currently re-analyzing the Limit on Patience, which can be less aggressive now that we've re-introduced the Genesis State Machine.

    + + + + \ No newline at end of file diff --git a/page/57/index.html b/page/57/index.html new file mode 100644 index 0000000000..31e32a8daf --- /dev/null +++ b/page/57/index.html @@ -0,0 +1,52 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2318.0 distribution that implements the last migration phase of the aggregator stores and embeds a bug fix for the signer registration. They also completed the implementation of the interfaces defined to provide certification for the immutable full snapshot of Cardano files and Mithril stake distribution. They finalized the implementation of the framework to sign generic types of data in the aggregator and the signer nodes. They also updated the runtime of the aggregator to handle open messages associated with the available types, and evolved the REST API of the aggregator to deliver the artifacts for these types. Additionally, they have upgraded the network explorer in order to display the artifacts and certificates for these different types.

    Finally, the team started designing an on-chain decentralized signer registration process, and started implementing the new stake distribution computation available from Cardano node 8.0.0 (along with the backward compatibility for previous 1.35.x versions).

    Low level overview

    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the handling of multiple types of signed entity in the aggregator runtime #907
      • Completed the adaptation of the signer runtime to use the signable builder service #854
      • Completed the adaptation of the aggregator runtime to use the artifact builder service #869
      • Completed the appending of the next AVK to all protocol messages #888
      • Completed the adaptation of the aggregator REST API to retrieve the list/details of the artifacts produced #893
      • Completed the adaptation of the explorer to handle new artifact routes of the aggregator #927
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the implementation of the new stake distribution computation in the chain observer #919
      • Worked on upgrading the Cardano node to 8.0.0 #920

    · 4 min read
    Michael Karg

    High level summary

    • Benchmarking: We're preparing our model cluster to perform GHC9.2 benchmarks, as well as experimenting with increased dataset sizes.
    • New tracing: After optimization work on the new tracing system, another cycle of validation and documentation is due.
    • Analysis pipeline: First steps on implementing incremental analysis have been untertaken.
    • Open Sourcing: Exhaustive dataflow charts for both our analysis tool locli and our workbanch have been merged to master
    • Nomad backend: The first set of CI-centric workbench profiles have been adjusted and run on the nomad backend; currently we're porting the definition of our model cluster.
    • P&T Meetup: We had a very productive personal meetup in Lugano, Switzerland.
    • Offboarding: Sadly, we have to say goodbye to our team lead. Currently, we're busy with the handover.

    Low level overview

    Benchmarking

    As a compiler switch to GHC 9.2.7 for cardano-node's default build environment is around the corner, we're setting up our benchmarking cluster to +handle the new version. Special attention is given to the fact that we might need more flexibility in switching compiler versions in the future. This +also involves choosing a reliable baseline as reference point for inter-version comparisons.

    Additionally we've been working on refining our model cluster: by increasing UTxO and delegation map sizes to closer match those of current mainnet, +we strive to have a more accurate model - and thus be able to make more detailed predictions regarding performance. However, this still needs to +be balanced against resource demand for all our cluster's nodes.

    Tracing

    For our new tracing system, we're currently validating the behaviour of the system after optimizations have been applied. Furthermore, some +quality-of-life details that have changed required us to revision the system documentation.

    Analysis

    As a mid-term goal, we aim to provide incremental analysis of our benchmarking metrics. While currently, we can only reliably process runs that have been +normally (or abnormally) terminated, we see the possibility of incrementally analysing ongoing runs, or any data source yielding our key metrics, as a +huge opportunity to increase our operational flexibility. All in all, this approach entails building completely new features for our pipeline. A first effort to accomodate incrementally incoming data points has been undertaken.

    Open Sourcing

    A very involved and exhaustive documentation and visualization effort has been undertaken to make the data flow through our key benchmarking +copmonents more accessible. As a result, detailed charts for both our LogObject CLI locli and our workbench have been merged to master.

    Nomad backend

    While our Nomad backend is reaching completion, and hardware setup is being implemented in collaboration with SRE, we've been adjusting +those profiles of our workbench that target CI-oriented workloads to the new backend. Those profiles should demonstrate the full functionality +of the nomad cloud backend.

    Additionally, we're porting a first deployable version of our model cluster to nomad cloud, which will form the basis for validation of our actual key metrics with regard to those from the existing cluster.

    Performance & Tracing Meetup

    We held a personal team meetup in Lugano, Switzerland. In an amazing location, and with a great seminar room to focus, we had 2 very productive +days together. Being able to discuss live and in colour, we could effectively synchronize on where the team is at, and how we want to develop in the future. +Also, it was a great opportunity to finally meet in person.

    Offboarding

    Last not least we regret that our team lead is leaving at the end of May. Currently, he's handing over all his obligations, which requires reorganisation +of team structure, and responsabilities of team members for specific tasks. Serge, we all want to thank you for your excellent and reliable lead; we very much enjoyed the time with you, and wish you all the best for your future endeavours!

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • cardano-base: Include final tests for BLS signature. Further adaptations for KES agent.
    • Sidechains: Implement BLS and JubJub using upstream's macros to merge these curves in halo2curves.

    Low level summary

    cardano-base

    Sidechains

    • Opened PR in halo2curves to include BLS12-381 and JubJub, #38
    • Addition constraint over JubJub merged #10

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team had two paper accepted for ICE 2023 +(https://www.discotec.org/2023/ice). The event will be held in Lisbon +on 19th June 2023. The papers will be published in EPTCS.

    Details

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team achieved a number of milestones, including the release +of the first mainnet compatible version. Besides this they also addressed +inconsistencies in rollback handling, added an architecture page to the website, +reducing the size of logs using event IDs. They also had productive discussions +with researchers on plans for incremental commits/decommits and had a whiteboard +session on DeFi and lending protocols. The goals for next week include +completing the validation of the timed transactions feature, exploring stateless +observation, refining the Hydra explorer ticket, writing ops instructions and +troubleshooting, and implementing the first end-to-end journey for external +commits.

    What did the team achieve this week

    • Released first mainnnet compatible version 0.10.0
    • Addressed inconsist handling of rollbacks #784
    • Added architecture page and fixed haddock links on our website #838
    • Opened a new hydra head on mainnet
    • Talked with researchers on initial plan for incremental commits/decommits
    • Had a Whiteboard session on DeFi and lending protocols
    • Reduced size of logs using event ids #859
    • Published the monthly report for April

    What are the goals of next week

    • Complete validation of timed transactions feature #196
    • Explored stateless observation and refined hydra explorer ticket #696
    • Write ops instructions and troubleshooting #569 and improve logs
    • Have a first end-to-end journey for external commits implemented #215
    + + + + \ No newline at end of file diff --git a/page/58/index.html b/page/58/index.html new file mode 100644 index 0000000000..b7ba10e296 --- /dev/null +++ b/page/58/index.html @@ -0,0 +1,81 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Marcin Szamotulski

    High level summary

    We started working on a new way to switch between root & ledger peers (see +below). We continued to work on eclipse-evasion. We merged changes to +Handshake contributed by Galois Inc. We made improvements to our tests (fixed +a flaky test, added cddl specs for NodeToNodeVersionData and +NodeToClientVersionData). We improved our CI and automated the process of +releasing new package version to CHaP.

    Detailed summary

    We continued to work on testing eclipse-evasion.

    We came up with an idea to limit how full node wallets relay on root peers +(currently operated by IOG, in future also CF and Emurgo). We designed +a switch to use ledger peers if the node tip is close enough to the current +time. For more details see #4530.

    We merged changes to the handshake mini-protocol which allow one to query +server's node-to-node / node-to-client parameters. We are grateful to +Galois Inc. for implementing it, #4256 and #4538. We published new version +of packages to CHaP chap-#253.

    We added DiffusionError wrapper. Thanks to it, ouroboros-consensus will +not duplicate diffusion errors messages in the log, #4537.

    We fixed an issue which caused one of our tests to be flaky, #4515.

    We added cddl tests for NodeToNodeVersionData and NodeToClientVersionData: +#4540, #4544 (in review).

    We wrote scripts which will help us release packages as well as verify that we +released all the package necessary to build the newest set of packages, +#4542.

    We renamed the consensus startup tracer and make sure it doesn't log +ExitSuccess exceptions, consensus-#71.

    We reviewed PR which adds RawBearer API, #4395.

    We made series of improvements to our CI:

    • #4539: we don't need to install cryptographic libraries in CI;
    • #4545: Javier Sagredo (consensus) cleaned up CI after consensus moved +to a new repo;
    • #4546: we switched to use GitHub merge queues;
    • #4549: we made it possible to trigger building haddocks manually;
    • #4553: we fixed and enhanced caching of building dependencies.

    · 2 min read
    Jared Corduan

    High level summary

    The ledger team focused mainly on the conway ledger era and node integration. +For conway, we completed a large structural change that now allows +for delegation certificates to be parameterized by era, and introducing +new certificates for the first time since Shelley. +We also continue to build out our contraint based generators that we will +use to property test the conway era. +In particular, we can now generate an entire ledger state and a +transaction which is balanced with respect to the ledger state.

    Low level summary

    Conway certificates

    Certificiates are now abstracted as a type family in the ledger codebase. +Moreover, there are new certificates in the Conway era to support CIP-1694, +and MIR certificates have been removed.

    Constraint based testing

    Our plan for property testing in the conway era is to no longer use the trace generators, +but instead generate ledger states and transactions based on constraints. +We hit a milestone this week, namely the ability to generate a balanced transaction in the context +of a ledger state, all based on our ever growing constaint language.

    Integration work

    Technical debt

    · 2 min read
    Jordan Millar

    2023-05-05 - 2023-05-23

    High level summary

    • Golden tests for cardano-cli command help output were added.
    • Documentation was updated with new libsodium installation instructions.
    • There were several updates for the cardano-cli:
      • Deletion of the deprecated shelley command group.
      • Addition of golden tests for CLI help.
      • An improvement to avoid bare IO in tests, allowing better error reporting in failed tests.
      • Generation of UTCTime test values without leap seconds (avoids erroneous test failures)
      • Support for signing transactions with GenesisDelegateSigningKey_ed25519_bip32.
    • The cardano-api underwent multiple refinements:
      • Implementing deposit handling when balancing transactions (necessary for Conway)
      • Cleaning up socket file path code.
    • Several changes were made to the cardano-testnet:
      • Adding golden tests for cardano-testnet help.
      • Removing all hardcoded yaml files in cardano-testnet
      • Improving cardano-testnet help output.
      • Parameterizing default yaml configuration value, allowing for easier hardforking to the era of choice.

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the implementation of the new certifier service of the aggregator, which is in charge of producing certificates for multi-signatures. They also finished implementing the interfaces defined to provide certification for the full immutable Cardano files snapshot and the Mithril stake distribution. Additionally, they have completed the refactoring of the multi-signer in the aggregator. The team also fixed the bug in the signer registration that was responsible for gaps during the signature phase for some signers, and they upgraded the Cardano node used in the Mithril testnets and devnet to version 1.35.7.

    Finally, they have worked on designing a decentralized registration for the signers that takes place on the Cardano chain.

    Low level overview

    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the implementation of the Certifier service in the aggregator #850
      • Completed the implementation of the signable builder for the Mithril Stake Distribution #851
      • Completed the implementation of the artifact builder for the Mithril Stake Distribution #870
      • Completed the implementation of the signable builder for the Full Immutables Snapshot #852
      • Completed the implementation of the artifact builder for the Full Immutables Snapshot #871
      • Completed the adaptation of the aggregator runtime to use the signable builder service #853
      • Worked on the adaptation of the signer runtime to use the signable builder service #854
      • Completed the definition of the entity service interface for verification/restoration #868
      • Completed the refactoring of the OpenMessage type #878
    • Completed the epic that simplifies the multi-signer in the aggregator #398:
      • Completed the extraction of the single signature registration from the multi-signer #643
    • Completed the upgrade of the Cardano node to version 1.35.7 #881
    • Fixed the bug that created a discrepancy of the signer verification keys between signers and aggregators #873

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks we made some important progress in the Genesis design. +It seems the BlockFetch logic need not be modified for Genesis, although this +needs to be confirmed. We started a DoS mitigation handbook and updated our +conceptual component diagram to guide the Genesis design. We engaged with the +IOG researchers to work on the Limit on Patience attack vector, work in this +area is still ongoing. We sketched a design to decouple the CPU load of the node +from its responsiveness to the socket. Finally, we discussed with Networking our +approach to lower the performance impact of the BlockFetch decision logic, and +got green light from them.

    We migrated the consensus code to a new +repository, splitting +it from the ouroboros-network repository, and released version 0.6 of +Consensus.

    We also merged the mempool fairness improvement to main branch.

    Another significant enhancement to our documentation was the addition of an +explanation of the hardfork combinator forecast horizon.

    See the sections below for more details.

    Genesis

    We reviewed the BlockFetch design documentation, and added some source-code +comments that emphasize certain properties of the decisions the BlockFetch +logic makes that are helping us confirm that Genesis does not require any +changes to BlockFetch. We are waiting on input from our former system +architect to verify this.

    We migrated and updated the conceptual component diagram in the ouroboros-consensus +repository which helps us situate the Genesis design and argument.

    We engaged with the IOG researchers about the Genesis design. We sketched out a +way to address the concern that the Limit on Patiente (LoP) attack vector duty +cycle is indeed low, but it's still non-trivial to ultimately conclude it's +sufficiently low.

    We also sketched a design to decouple the CPU load of the node from its +responsiveness to the socket, since the LoP is a relatively tight timeout, and +node performance bugs inducing seconds-worth of latency are unfortunately +familiar phenomena.

    Fostering collaboration

    We added an +explanation of +a question that we had to explain many times about the exact behavior of the +hardfork combinator forecast horizon.

    + + + + \ No newline at end of file diff --git a/page/59/index.html b/page/59/index.html new file mode 100644 index 0000000000..6c9a9f625c --- /dev/null +++ b/page/59/index.html @@ -0,0 +1,49 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Michael Karg
    • Benchmarking: The benchmarks and performance investigations for the new 8.0 release branch are ongoing.
    • New tracing: Performance optimization of the new tracing system is paying off and we could notably shrink its resource footprint.
    • Analysis pipeline: An exhaustive documentation and dataflow diagram for our analyses is being worked on.
    • Infrastructure: The plutus-apps flake input for cardano-node has finally been removed.
    • Nomad backend: A PR implementing placement of benchmarking clusters has been merged.

    Benchmarking

    The performance investigations on the 8.0 release branch have lead to pinpointing and addressing incosistent behaviour. For that, +we created yet another local reproduction with the workbench's forge-stress benchmark.

    Currently we're working on scaling up the dataset size (UTxO and delegations) on the AWS cluster to gain further insight into 8.0 and +subsequent releases.

    Additionally, we've refined the trace-bench family of profiles that target benchmarking our own new tracing system.

    Tracing

    Optimization of the tracing system has identified several locations where inefficient serializations were used; those were not originally +intended to run on a performance-critical codepath. We've worked on improving those, as well as eliminating cases of redundant +conversion between different serialization formats. This has brought down both memory and CPU impact of the tracing system.

    Infrastructure & Analysis

    Dataflow documentation

    The LogObject CLI locli is at the heart of our analysis and reporting pipeline. To increase its accessibility and facilitate +further development, we're creating a detailed and illustrated documentation of all dataflows that happen during analysis and reporting.

    Remove redundant Plutus flake input

    This step is the conclusion of porting Plutus benchmarking scripts to our own library. By finally removing the now unnecessary flake input, +we simplify the dependency graph for cardano-node, as well as enable immediate feedback when developing Plutus benchmarks.

    Nomad backend

    Sophisticated placement of nodes across various regions of the globe is a cornerstone of the model cluster we use for benchmarking. +This capability has now been added to the Nomad backend and can be controlled with Nomad job descriptions. A PR with this, along +with various quality-of-life improvements, has been merged to master.

    · One min read
    Kostas Dermentzis

    High level summary

    Lower level summary

    • Prepared a schema change which is expected to speed up queries and help clients +#1389.
    • Ran a big number of benchmarks on the above to evaluate if this change is reasonable.
    • Performance optimization related to rewards +#1382
    • Using the cache in more places to reduce recourses usage +#1380
    • Evaluated risks related to UTXO-HD integration
    • Worked on a feauture request to split the tx_out to an address table +#1396
    • Worked on another feauture request to prune the consumed entries from the tx_out table +#1398
    • Prepared for CIP-1694 integration

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • cardano-base: New KES structure finally merged. Included additional tests to BLS, and including test vectors created with zkcrypto's library.
    • KES agent: Reaching state of MVP. Rewriting KES agent networking code to use the Snockets abstraction.
    • Sidechains: Started implementing ECC chip of JubJub over BLS12-381.

    Low level summary

    cardano-base

    • #255 finally merged 🎉
    • Additional tests for BLS bindings #384
    • Open PR for including test vectors created with zkscrypto's library, PR#397

    KES agent

    • Introducing the SignKeyWithPeriodKES wrapper type, which bundles a KES key with its corresponding KES period PR#389.
    • Introducing the DirectSerialise API into cardano-base, which allows us to write mlocked memory directly to a file descriptor, without going through intermediate encodings stored on the GHC heap (which is a no-no due to secure forgetting requirements) #317.
    • Figuring out how to generalize the KES, DSIGN, and mlocking code in cardano-base such that it can run in IOSim
    • Rewriting KES agent networking code to use the Snockets abstraction, which gives us a platform-independent sockets layer (i.e., it will also work on Windows), and also allows us to run networked code in IOSim for testing purposes
    • Refactor MonadSodium into MonadMLock PR#388.

    Sidechains

    • Started working on ECC chip for JubJub over BLS (problems still with the multiplication constraint)
    • Use macros used by PSE library to try and merge our fork of halo2curves into PSE's repo

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is working on porting an existing formalisation of Ouroboros +Praos to a newer foundation.

    Details

    · 2 min read
    Marcin Szamotulski

    High level summary

    The networking team has released the following packages to Hackage:

    We published an announcement blog post. We made progress +also on another blog post which will describes the design of the P2P networking +layer.

    After moving ouroboros-consensus to its own repository, we made +ouroboros-network compatible with GHC 9.4 and 9.6.

    We made cardano-client library independent of +ouroboros-consensus-diffusion.

    We prepared release of network packages for cardano-node-8.0.

    Detailed log

    Ouroboros-Network

    IO-Sim

    • io-classes-1.0.0.0, and following up releases: 1.0.0.1 (ghc-9.6 +support), 1.1.0.0 (documentation fix).
    • Fixed timeouts and delays in io-sim in a series of PRs: io-sim#81, +io-sim#82, io-sim#86, io-sim#87.
    • Renamed a module: io-sim#88.
    • Fixed a failing registerDelayCancellable test: [io-sim#80].
    • Use GitHub merge queue in io-sim repository.
    • CI: download stylish-haskell: io-sim#83.

    Typed Protocols

    + + + + \ No newline at end of file diff --git a/page/6/index.html b/page/6/index.html new file mode 100644 index 0000000000..dc1e05823c --- /dev/null +++ b/page/6/index.html @@ -0,0 +1,53 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Damian Nadales

    High level summary

    • Released Consensus for Node 8.11 (#1101)
    • Improved the Praos chain order:
      • Restricted VRF tiebreaker based on slot distance (#1047)
      • Small tweak to the issue number tiebreaker (#1086)
    • Wrote overview on the statistics on the leader schedule (#1096)
    • Integrated robustness refinement for concluding that a node is caught up in the context of bootstrap peers (#1031)
    • The P&T team managed to complete the UTXO-HD benchmarks using the LMDB backend and the results are promising.
    • We're working on setting up the Consensus Technical Working Group within Intersect, so if you'd like to participate please reach out to Damian Nadales.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released the new distribution 2418.1, which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes aimed at preventing memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet. Specifically, they completed the implementation of compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges and initiated testing and assessing performance on mainnet in a test Mithril network. Additionally, they started working on minimizing the extra disk space requirements for the signer on the SPO infrastructure.

    Finally, the team implemented some optimizations for the aggregator, fixed some bugs on the client, and introduced new documentation for compiling the Mithril relay from source.

    Low level overview

    • Released the new distribution 2418.1
    • Completed the issue Use Block Range Merkle roots to sign Cardano transactions #1634
    • Completed the issue Use Block Range Merkle roots to prove Cardano transactions #1635
    • Completed the issue Deploy Cardano transactions to testing-mainnet #1647
    • Completed the issue Consistent sorting of transactions from GetCardanoTransactionProvider in signer and aggregator #1657
    • Completed the issue Use SQLite transactions when inserting Cardano Transactions and Block Range Roots #1656
    • Completed the issue Implement Ord on SignedEntityTypeDiscriminants #1648
    • Completed the issue Merkle roots don't have fixed size in the block_range_root table #1668
    • Completed the issue Refactor Cardano transactions database layer in persistence for signer and aggregator #1677
    • Completed the issue Some timing tests fail on ARM #1466
    • Completed the issue Add Mithril networks configurations in networks.json #1638
    • Completed the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Aggregator stress test crashes during signer registration #1676
    • Worked on the issue Prune Cardano transactions stored on signer #1645
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Retrieves Cardano blocks with chainsync in pallas PoC #1590
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632

    · 2 min read
    Carlos LopezDeLara

    2024-04-27 - 2024-05-13

    High level summary

    Enhancements to the CLI encompass several noteworthy additions. These include the introduction of a new hardfork initiation command, rendering --prev-governance-action-tx-id optional for create-no-confidence actions, addressing scenarios where the committee is defined in the Conway Genesis file, and refining help texts. Additionally, there have been updates to the description fields in governance action files.

    Adjust maximum understood protocol version from 9 to 10 when the experimental hardforks flag is enabled. This allows us to bypass Conway's bootstrap phase in testing

    Continued work in testing implementation of CIP1694 with cardano-testnet.

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · One min read
    Daniel Firth

    High-level summary

    This week, the Hydra team upgraded the hydra-node networking layer to use a versioned handshake protocol, as well as extensive documentation restructuring and bug fixes to the hydra-tui.

    What did the team achieve this week

    • Use versioned hadshake when connecting hydra-nodes.
    • Restructure documentation.
    • Fixed the transaction envelope type parsing in order to be compatible with cardano-cli and update our docs.
    • Show the contestations in the hydra-tui
    • Experiment with removing persistence in the reliability layer and adding custom command to Reset the head state to the last confirmed snapshot

    What are the goals of next week

    • Provide aarch64-linux docker images for hydra-node.
    • Release hydra-node 0.17.0
    • Finish new model spec changes related to decommit testing

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • A preview of the new cardano tracing system is available by using the +profile-cardano-node-new-tracing new nixosModule from cardano-parts and is +complemented with new tracing system dashboards and alerts

    • Custom cardano metrics can be pushed to a statsd server and then scraped to a +monitoring solution using the profile-cardano-custom-metrics new +nixosModule from cardano-parts

    • A new cardano-parts job for spinning up clusters using a recent cardano-cli +command, create-testnet-data, was implemented: .#job-gen-custom-node-config-data

    Lower level summary

    Cardano-faucet

    Cardano-parts

    • Sets cardano-faucet-ng to 8.10, and mithril[-ng] to 2418-1. A preview +nixosModule for cardano-node's new tracing system has been added as well as a +cardano custom-metrics module. Dashboards have been added for the new tracing +system. Cardano-node alerts have been refactored into several rulesets which +include some new alerts as well as new tracing system alerts. A job for +spinning a cardano cluster up using a new underlying cardano-cli mechanism, +create-testnet-data, was added. More detail is available in the PR description: +cardano-parts-pull-40

    Cardano-mainnet

    • Sets mithril to 2418-1. Cardano-node alerts have been refactored into +several rulesets which include some new alerts as well as new tracing system +alerts. See the PR description for more details: +cardano-mainnet-pull-14

    Cardano-perf

    Cardano-playground

    • Sets cardano-faucet-ng to 8.10 which fixes a sanchonet faucet instability, and +mithril[-ng] to 2418-1. Adds a new cardano-node tracing system preview to some +machines with corresponding dashboards. Cardano-node alerts have been +refactored into several rulesets which include some new alerts as well as new +tracing system alerts. A job for spinning a cardano cluster up using a new +underlying cardano-cli mechanism, create-testnet-data, was added and integrated +with the Justfile start-demo recipe. Includes other misc tuning and +improvements. See the PR description for more details: +cardano-playground-pull-23
    + + + + \ No newline at end of file diff --git a/page/60/index.html b/page/60/index.html new file mode 100644 index 0000000000..b24933e0b5 --- /dev/null +++ b/page/60/index.html @@ -0,0 +1,45 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team held their Monthly review meeting and drafted the +report which likely is published next week. They put the spec into the +repository and website, addressed a user issue and fixed the TUI peer list. +Furthermore, they updated dependencies, conducted a Twitter space on Auctions +use cases, covered the rollback bug with tests and implemented a solution. +Looking ahead, their goals for next week include releasing 0.10.0, implementing +timed transactions support, writing a Query API ADR, and grooming work items +like off-chain benchmarks.

    What did the team achieve this week

    • Held the Monthly review meeting and drafted the report (to be published next week)
    • Added the spec into the repository +#693 and published on +the +website
    • Groom and addressed user issue #823
    • Covered the rollback bug with tests and implemented a solution (to be reviewed) #784
    • Fixed the TUI peer list
    • Updated dependencies to match cardano-node master
    • Conducted a twitter space on Auctions use cases

    What are the goals of next week

    • Release 0.10.0
    • Support timed transactions solution drafted and validated API with users
    • Write Query API ADR and groom a concrete step
    • Groom and solve PostTxOnChainFailed UX problem #832
    • Groom off-chain benchmarks idea #186 and turn it into a feature

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team worked on several fronts, including fixing state +machine continuity on-chain, discussing voting project solutions, exploring +adding Hydra support to kupo, and improving API navigation with a sidebar. The +team also updated dependencies and fixed issues in their test suites. Moving +forward, the team plans to hold the next monthly review meeting, address a user +issue, prepare for the 0.10.0 release, and work on a dirt road fix for the +rollbacks issue with proper test coverage.

    What did the team achieve this week

    • Fixed scripts to enforce state machine continuity on-chain #777.
    • Took part in a twitter space on Scaling Cardano.
    • Joined a CBIA meeting to discuss Cardano network protocols & how to specify them.
    • Discussed potential solutions of ensuring vote uniqueness in the voting project.
    • Updated dependencies to match cardano-node master to prepare for upcoming releases and hard-forks
    • Explored adding Hydra support to kupo, a lightweight Cardano chain indexer - some more work required.
    • Improved navigation of the API Reference with a sidebar, see unstable API version.
    • Fixed two things in our test suites (random port conflicts and an arithmetic underflow in smoke test)

    What are the goals of next week

    • Monthly review meeting (join via Discord or AddEvent) & report
    • Dirt road fix for rollbacks #784 properly covered by a test.
    • Groom and ideally address user issue #823.
    • Put the spec into the repo #693 and prepare release 0.10.0.

    · One min read
    Jared Corduan

    High level summary

    We continued to make progress on CIP-1694 and the conway ledger era. +In particular, the conway era now supports Plutus V3. +Finally, we made small improvements to the ledger API and now host +our Haskell code documentation (haddocks) on github pages.

    Low level summary

    Conway ledger era

    Haddocks hosted on github pages

    Small improvements to the API

    Technical Debt

    • [pull-3367] Fix cost model json instances.
    • [pull-3371] UMap cleanup.
    • [pull-3373] Upgrade to ghc 9.2.7 and cabal 3.10.1.
    • [pull-3375] Sadly, we had to revert the TICKF optimizations. There was a regression we do not yet understand.
    • [pull-3377] Fix cabal warnings.
    • [pull-3383] Fix multi-asset test.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2315.0 distribution that implements the first part of the migration of the aggregator stores along with minor improvements and bug fixes. They finished the migration of the aggregator stores to a relational design by completing the adaptation and migration of the signed entity, signer and single signature stores. They also created a new tick service that provides beacons to other services of the aggregator. Additionally, they started implementing the new new certifier service of the aggregator that is in charge of producing certificates for multi-signatures.

    Finally, they completed the design and definition of the interfaces that must be implemented to provide certification for a new type of data in a Mithril network.

    Low level overview

    • Released the new distribution 2315.0
    • Completed the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the signed_entity table #816
      • Completed the creation of the signer table #814
      • Completed the migration/adaptation of the single_signature table #829
    • Worked on the epic that designs and implement generic signing/verification of entity services #780:
      • Completed the definition of the interface of the generic entity service for signing #847
      • Worked on the implementation of the Certifier service in the aggregator #850
      • Completed the extension of the SignedEntityType type #848
      • Completed the implementation of the Tick service in the aggregator #849
      • Worked on implementing the signable builder for the Mithril Stake Distribution #851

    · One min read
    Jordan Millar
    + + + + \ No newline at end of file diff --git a/page/61/index.html b/page/61/index.html new file mode 100644 index 0000000000..8cb120a605 --- /dev/null +++ b/page/61/index.html @@ -0,0 +1,62 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Damian Nadales

    High level summary

    This week the consensus team continued working on the improved DB lock mechanism +for UTxO-HD, and modifications to the mempool benchmarks that this prototype +requires.

    On the Genesis front we validated that the fragment size calculation in +BlockFetch is a major performance sink for ChainSync Jumping. By removing it +we will get performance that is acceptably close to that of the baseline. We +also started investigating a performance fix that does not alter the existing +baseline behavior too much. In addition we reviewed our Genesis attack vector +calculations.

    On the support front we released Consensus 0.4, and we are working on improving +our release process, to support the Cardano-wide efforts in this area. We also +performed an analysis on the number of file descriptors that consensus use. This +information can be used by the node operators to check if the number of file +descriptors they want to support are enough.

    · 3 min read
    Michael Karg
    • Benchmarking: We performed a series of benchmarks aimed at the new 8.0 release branch and built a timeline from the 1.35 releases to that branch.
    • New tracing: Work on safeguarding the new tracing system performance-wise is ongoing. A practical use case for data points is being tackled with Galois.
    • Analysis pipeline: We're working on automatically obtaining a detailed manifest for each run.
    • Infrastructure: The library for benchmarking Plutus scripts has been merged. Also, we've laid the ground for including GHC profiling data into our workbench.
    • Nomad backend: The first iteration of a distributed / multi-client Nomad cluster has been merged.

    Benchmarking

    We have performed various cluster runs targeting the 8.0 release branch. That way we were able to catch an inconsistency in behaviour early on. This led to the creation of a specialized workbench profile epoch-transition for local reproduction of what we observed on the benchmarking cluster.

    Furthermore, we bridged the gap between the run data from the 1.35.x releases to the the new 8.0.x release branch. This included walking the +master branch backwards and pinpointing the order, as well as the dates and commits of all relevant component bumps. This timeline is absolutely crucial +in locating possible regressions for the new release branch, as it provides the exact points in history we would need to target with a comprehensive set of +benchmarks.

    Tracing

    In-depth performance analysis of the new tracing system has already yielded results and helped us smoothing some rough edges. However, this work is still +ongoing.

    In coordination with Galois, who are developing a system assurance service by observing a number of cardano-nodes, we're working with the implementation +of data points which the node provides during runtime. While making the view on data points expressive enough for the external service, the computational +burden inside the node needs to be kept to an absolute minimum. We're currently in ideation about whether cardano-tracer could be extended with a richer +feature set to that end.

    Infrastructure & Analysis

    Detailed manifest

    A run manifest documents, among other things, the component dependencies that were used for a specific build the run has been performed with. +These dependencies come from different package sources, have different versioning policies, and an identical package version might provide different +performance characteristics depending on the exact commit used for the build. This manifest will greatly increase insight into where changes in measured behaviour might have originated +by making all component bumps visible and accessible.

    GHC profiling inside workbench

    The workbench has been equipped with a new -profnix profile flavour. This enforces a -fprof-auto build for all node-related packages. The type of +profiling data generated by the GHC runtime can be customized and will enter statistical analysis. The relevant PR for this new feature has already +been merged to master.

    Nomad backend

    The added feature for a multi-client Nomad cluster greatly enhances how jobs are organized by the backend and mapped within specific instances. +This results in great maintainability while not giving up on flexibility. However, work on that feature is still ongoing.

    · 2 min read
    Kevin Hammond

    Cardano block production temporary outage

    On Sunday, January 22, 2023, an incident occurred resulting in block production pausing for a brief period of time (approximately two minutes, similar to the usual pause at an epoch boundary). Around 50% of block-producing nodes and relays restarted during this period. Having restarted, nodes continued to produce blocks without failure. While the network continued to operate, the issue did have the potential to affect network integrity, so was flagged as a ‘critical’ incident, thus warranting immediate response and investigation by IOG engineers. +The investigation (with SPO & Cardano Foundation collaboration) quickly revealed the cause of the issue – a complex bug in data structure handling code related to the precise order of insertion/deletion of multi-asset tokens into the internal ledger record. Input Output Global (IOG) engineers, along with SPOs and DApp developers, collectively identified how to reproduce the issue as a unit test that could be included in the standard Cardano node test suite. +Following successful testing, this led to a bug fix being implemented, tested, benchmarked, and deployed as a hotfix in the node v.1.35.5 release on Friday, January 27, 2023. Care was taken not to highlight the exact cause of the bug during this process so that it could not be exploited prior to SPOs deploying this new node version. +With the fix deployed, the Cardano SPO and developer community have not seen any further instances of this issue.

    Further Details

    You can read more details on the incident and how it was managed from SundaeSwap’s Pi Lanningham here. Thanks again to all the community for its support in identifying and fixing this bug.

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has submitted two papers for publication, carried +out consultancy with other teams and has an opening for an intern.

    Details

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team focused on improving the smoke test, fixing developer +tooling, and improving the API for voting use cases. They reviewed progress on +auction, payments, and voting projects and made worked on reproducing a bug with +handling rollbacks. Moving forward, the team plans to update dependencies, +implement a dirt road fix for the rollbacks bug, and explore adding Hydra +support to kupo.

    What did the team achieve this week

    • Reviewed progress on auction, payments and voting projects
    • Improved smoke tests so they can run on mainnet
    • Fixed a regression in the development environment and updated cardano-node +used in tests
    • Improved API with more configurability to unblock voting use case
      • Exclude utxo in SnapshotConfirmed outputs #808
      • Addressed a user request by only sending Greetings once #813
    • Reproduced the rollback bug by improving our model-based test suite #784

    What are the goals of next week

    • Update dependencies to match cardano-node master
    • Dirt road fix for rollbacks #784
    • Update Hydraw to maintain state locally
    • Explore adding Hydra support to kupo
    • Put disclaimer texts and closing mainnet compatibility feature #713
    + + + + \ No newline at end of file diff --git a/page/62/index.html b/page/62/index.html new file mode 100644 index 0000000000..9a7d78c81c --- /dev/null +++ b/page/62/index.html @@ -0,0 +1,50 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team published the monthly report for March, created +separate links for different versions of documentation, and clarified potential +solutions for the Rollbacks bug. The team also discussed Query API requests for +the Hydra Voting project and met with community members to answer questions +about Hydra. Moving forward, the team plans to integrate the specification into +the repository, implement a short-term fix for the Rollbacks issue, and draft a +Query API ADR.

    What did the team achieve this week

    • Published monthly reports on website
    • Separate last released and latest versions of docs (e.g. normal released vs. /unstable)
    • Discussed Query API concerns from Hydra Voting project (link)
    • Clarified rollbacks bug and defined possible solutions (short and long term) #784
    • Met with community members to answer questions about Hydra

    What are the goals of next week

    • Finally get the docs integrated into the repository #693
    • Dirt road fix for rollbacks #784
    • Disclaimer text and detail known issues about mainnet compatibility +#713

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2313.0 distribution that implements minor improvements and bug fixes. They continued implementing the migration of the aggregator stores to a relational design. They finished adaptating and migrating the certificate, epoch settings, signed entity type, signer registration and open message stores. Additionally, they completed the refactoring of the dependency injector of the aggregator and simplified its multi-signer in order for it to sign multiple concurrent messages.

    Finally, the team has worked on designing the new architecture of the network to support signing multiple types of data and upgraded the version of the Cardano node used in the Mithril testnets and devnet to 1.35.6.

    Low level overview

    • Released the new distribution 2313.0
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the epoch_settings table #813
      • Completed the migration/adaptation of the signed-entity-type table #815
      • Completed the migration/adaptation of the certificate table #817
      • Completed the migration/adaptation of the open_message table #827
      • Completed the migration/adaptation of the signer_registration table #828
    • Completed the refactoring of the dependency injection of the aggregator #823
    • Completed the cleanup of the multi-signer of the aggregator #824
    • Completed the upgrade of the Cardano node to 1.35.6 #843

    · One min read
    Damian Nadales

    High level summary

    This week the consensus team finished the UTxO-HD prototype refactoring. We are +now working on improving the DB lock mechanism to improve performance. We also +introduced several improvements to the file system abstraction and simulation +layer (fs-sim), which culminated in the release of fs-sim-0.1.0.0 and +fs-api-0.1.0.0 to CHaP.

    On the Genesis front we distributed the updated Genesis design document, +soliciting feedback from Networking Team and IOG Researchers. We also opened up +a PR for the adversarial leader schedule QuickCheck generator, which is being +reviewed.

    On the support front, we got a new Consensus version that can use different +fundamental VRF crypto primitives for Babbage and Conway eras.

    On the tech debt front we fixed an bug in the followers logic, which was +discovered by our QuickCheck property tests.

    · 2 min read
    Jordan Millar

    2023-04-05 - 2023-04-19

    High level summary

    • Introduce new governance commands create, answer and verify. This allows us to have onchain polls.
    • Begin making changes in cardano-api to accomodate for CIP-1694
    • Rename TestEnableDevelopmentHardForkEras to ExperimentalHardForksEnabled and TestEnableDevelopmentNetworkProtocols to ExperimentalProtocolsEnabled
    • Various bug fixes and improvements

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 3 min read
    Michael Karg
    • Benchmarking: We worked on adjusting our infrastructure to the new 8.0 release branch and performed a (very) early run.
    • New tracing: We're profiling the new tracing system for minimizing its resource footprint and guarantee high throughput.
    • Analysis pipeline: Variance analysis both for reporting and for serving as a point of comparison has been merged.
    • Infrastructure: A library for Plutus scripts will be integrated in our tooling and benchmarking profiles. Also, a profile family aimed at the tracing systems has been added.
    • Nomad backend: Various specializations of the backend are currently being implemented, along with streamlining credentials management.

    Benchmarking

    We have adapted our benchmarking cluster to the requirements of the 8.0 release branch. Testing runs of a very early feature branch for 8.0 +helped us localize an important issue in collaboration with the other teams. We look forward to gathering preliminary metrics for 8.0 soon.

    Tracing

    Analysis of resource usage profiles of both the legacy and new tracing system, with and without trace forwarding, have lead us to gather very +detailed profiling data for each possible setup. This is to ensure we keep resource usage within the node to an absolute minimum, while still providing +the highest possible throughput of data for forwarding to cardano-tracer.

    Additionally, we've worked on a very practically-oriented document targeted at end users of the new tracing system. It provides tested step-by-step instructions +for tunneling trace forwarding from a node to cardano-tracer via an easy to manage system service, which will match the production setup of most users.

    Infrastructure & Analysis

    General

    Variance analysis as a full-fledged entity in our tooling has been merged. Not only is this type of analysis now part of our reporting pipeline - variance +analysis can be fed back and serve as an additional point of comparison.

    Furthermore, we've created a profile family for the workbench that's specifically aimed at measuring and comparing tracing system configurations.

    Plutus library

    We opened a PR containing a new package for benchmarking - an extendable library that holds all Plutus scripts we use in our benchmarking profiles. +This will enable us in the future to iteratively work on customizing any given script, and the way is called in the context of a specific profile. +It is a refinement of current affairs, where we have additional build inputs solely to generate a static script file tied to an external commit.

    Nomad backend

    The nomad backend is being specialized in three ways: using a podman driver locally, using nomad agents supporting nix installables, and using nomad cloud agents. This supports having a common surface independent of the actual backend driver being used. In addition, vault retrieval and management of cloud access credentials is +being improved to minimize any friction for the backend user.

    + + + + \ No newline at end of file diff --git a/page/63/index.html b/page/63/index.html new file mode 100644 index 0000000000..21c30b8b80 --- /dev/null +++ b/page/63/index.html @@ -0,0 +1,49 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Started looking into full-node verifier
    • cardano-base: BLS12-381's PR merged. Creating test-vectors for verifying basic pairing properties.
    • KES agent: Blockers overcome. Reaching a first MVP level of the KES-agent.
    • Sidechains: Included BLS12-381 & JubJub to halo2curves
    • MuSig2: Final modifs to C version.

    Low level summary

    Mithril

    • Started designing how a full-node verifier would work. Issue comming in the next couple of weeks.

    cardano-base

    • BLS12-381 branch merged PR#266.
    • Testing strategy for BLS bindings:
      • Test-vectors for Groth16, and simple BLS signatures ready.
      • Test-vectors with different library, and created by different engineer.

    KES agent

    • Resolved issues of circular dependency
    • Got rid of separate DSIGN and DSIGNM, we now have DSIGN over mlocked keys, but the phantom type is the same.
    • Opened a PR for raw bearer branch in ouroboros network PR4395
    • Resolved a bug where the agent node did not properly closed connections
    • Updated version of IOSim allowed us to finish a first version of KES agent.

    Sidechains

    • Included BLS12-381 curve to our branch of halo2curves
    • Included JubJub to our branch of halo2curves

    MuSig2

    • Minor reorg PR#42
    • Started including fuzz testing for deserialisation PR#

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on final drafts of two papers +for internal review and planning next steps of analysis of consensus +design refiniments.

    Details

    • Preparing final draft of DeltaQSD algebra paper for internal review

    • Preparing final draft of verifying design refinements for +distributed system design for internal review

    • Planning next phase of consensus design refinement analysis

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra continued work on finishing mainnet compatibility. The +semi-automated smoke tests and some missing documentation is still preventing +from calling that fully done. They fixed smaller issues and made a step in the +Head protocol more robust. Besides development, they met with interested people +from the community who want to get started collaborating on communication and +marketing materials.

    What did the team achieve this week

    • Groomed and followed-up on GetUTxO user request discussion #797
    • Fixed hydra-node crashes after forks #560
    • Made collectCom more robust and aligned with spec #786
    • Completed configurable API feature #380
    • Met potential contributors about Hydra communication and marketing materials
    • Versioned documentation: we have a unstable bleeding edge version available as well now, seperate from the last released version

    What are the goals of next week

    • Follow-up backlog and roadmap clean-up
    • Complete mainnet compatibility feature #713 (documentation updates)
    • Integrate Hydra specification into repository #693

    · 2 min read
    Jared Corduan

    High level summary

    We are still heavily involved in work related to preparing the next release. +The other main thing we have worked on is experimentation about how we will +handle the DRep stake distribution for CIP-1694 in the conway ledger era. +Lastly, we merged a fix for +node-4826 +into our main branch (there will be a post-mortem shortly).

    Low level summary

    Support for the next release

    • pull-3363 - Fix problems relating to Arbitrary instances used by consensus.
    • pull-3361 - Remove the alonze genesis from the conway genesis.
    • pull-3360 - Translate bad pointer addresses to valid ones in conway.
    • pull-3357 - Fix a bug relating to zero valued ADA in the script context.
    • pull-3356 - Added needed instances (Arbitrary and Serialization) for conway integration.
    • pull-3345 - Added helper functions for the CLI.
    • pull-3342 - Fix a bug with a CLI helper function (having to do with deposit tracking).

    Experiments for DRep stake distribution

    Adding another stake distribution to the ledger state presents some new challenges. +We would like to be able to use the current stake distribution at the epoch boundary +for DRep voting so that people can always vote themselves in time for any proposal. +To this end, we have a prototype of an incremental computation based on the incremental +lambda calculus, together with tests and benchmarks (which are very promising). +See pull-3344.

    Additionally, more of the ledger state is going to need to be rearranged to accomodate +the new incremental computations. +We have two draft PRs up for possibles solution. +See pull-3353 and pull-3364.

    Technical debt and bug fixes

    Documentation changes

    • pull-3354 - Rename "optional datums" with "supplemental datums" in the alonzo spec.
    • pull-3352 - Add a section to the Shelly errata about the individual deposit tracking.
    • pull-3351 - Further clarify the details regarding the script integrity hash.
    • pull-3350 - Some cleanup of the Babbage spec.

    · One min read
    Martin Kourim

    High level summary

    Since the last update (2023-1-13) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.5 and 1.35.6 releases (and their predecessing release candidates) and ran tests on branch with the UTxO-HD functionality.

    Workstreams

    Framework improvements:

    • improvements in searching for unexpected error messages in log files during test run
    • added support for UTxO-HD testing
    • added support for the new P2P topology format
    • added local cluster variant that has the same properties as mainnet (epoch length, fees, etc.)
    • added preliminary support for the Conway era
    • added support for running tests on the Preview testnet

    Full list of closed PRs

    Node:

    • ran tests on node branch with the UTxO-HD functionality
    • tested the 1.35.5 release
    • tested the 1.35.6 release

    DB-Sync:

    • improvements in db-sync sync tests
    • improvements in db-sync functional tests
    + + + + \ No newline at end of file diff --git a/page/64/index.html b/page/64/index.html new file mode 100644 index 0000000000..5ba3932055 --- /dev/null +++ b/page/64/index.html @@ -0,0 +1,46 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra had a team workshop and conducted the monthly review +meeting for March. They demonstrated a Hydra Head on mainnet, which was running +the hydraw demo application. While this marks an important milestone, they also +emphasized that more features are still to be added as needed for applications +to run on Hydra. Besides this, the roadmap is getting cleaned up to encourage +discussions and provide more space for user requests.

    What did the team achieve this week

    • Monthly review meeting slides/recording, full report of March next week
      • Opened a head on mainnet with hydraw demonstration
      • Hydra pay updates
    • Team workshop in Austria
      • Hydra presentation at the Cardano Foundation in Zurich
      • In-person grooming session, marked many items as candidates to be rather :idea: dicussions
      • Improved head protocol #786 and investigated a potential bug in rollback handling #784
      • Team building and retrospective

    What are the goals of next week

    • Follow-up on backlog and roadmap clean-up
    • Complete mainnet compatibility feature (documentation updates)
    • Make API more configurable #380
    • Integrate Hydra specification into repository #693

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team worked in performance enhancements issues, on providing new db-sync options and on +technical debt and bug fixing. The DBSync team also on boarded a new member.

    Low level summary

    • Worked on an issue which causes ada_pots tables to include the values related not only to an +epoch, but also the first epoch of the last epoch. +#1367
    • Fixed an issue where the epoch table didn't rollback and caused wrong values +#1370
    • Fixed an issue were users with disable-ledger option had to provide the state dir option, even +though it was never used. Also refactored the no ledger part of the codebase. +#1378
    • Improved the perforance by using the cache more. Also provided many new options which enables or +disables parts of db-sync. In addition a new --turbo mode is enables which allows db-sync to sync +mainnet in hours. +#1379

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2310.0 distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images.

    Finally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano mainnet and they have fixed some bugs.

    Low level overview

    • Completed the epic that implements eras behavior switch #707:
      • Completed handling the API version switch at era transition #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed on the migration/adaptation of the stake_pool table #787
      • Worked on the migration/adaptation of the epoch_settings table #813
      • Worked on the migration/adaptation of the signed-entity-type table #815
      • Completed the creation of a stake distribution service #799
    • Completed the testing of Mithril with Cardano mainnet network #777
    • Completed qualifying the computation of the stake distribution #810
    • Completed the testing of the Docker client in the Mithril Client multi-platform test workflow #794
    • Worked on bugs and optimizations:
      • Fixed a bug that made computation of the stake distribution occur multiple times during an epoch #804
      • Fixed a bug that created deadlocks on the SQLite connection #807
      • Optimized the error message and the behavior of the signer node when KES keys have expired #820
      • Upgraded the infrastructure of the testing-preview and pre-release-preview networks #801
      • Re-genesis of the testing-preview network #803
      • Re-genesis of the pre-release-preview network #818

    · One min read
    Damian Nadales

    High level summary

    This week the consensus team continued working on the refactoring of the UTxO HD +prototype, and design and testing of Genesis. We also extracted the fs-sim +package, which provides a file-system abstraction layer that can be used for +testing and simulation. This makes the Consensus code base smaller, while +providing a package that the community can reuse and contribute to. We also +fixed a failing property test related to iterators. We are also working on +mempool and VRF improvements.

    Low-level details

    · One min read
    Jordan Millar

    2023-03-22 - 2023-04-05

    High level summary

    • Added new cardano-cli ping command which allows users to ping remote cardano-nodes.
    • The transaction build command now can automatically balance multiassets
    • New combinators for constructing transaction bodies. This allows us to construct transaction bodies in a composable manner.

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    + + + + \ No newline at end of file diff --git a/page/65/index.html b/page/65/index.html new file mode 100644 index 0000000000..bc1b128a7d --- /dev/null +++ b/page/65/index.html @@ -0,0 +1,70 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Michael Karg
    • Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.
    • New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we're currently improving documentation and creating setup guidelines for end users.
    • Analysis pipeline: Our refined metrics PR has been merged. We're working on including variance analysis to our reporting machinery.
    • Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we're laying the groundwork for enabling GHC 9.2 in our benchmarks.
    • Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing.
    • Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.

    Performance

    New tracing

    The new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe +a slight shift in the resource usage profile from memory to CPU, but no regressions in block propagation metrics. Variance was observed to be notably smaller, which gives the new system a much better predictability. From this angle, we consider the new system fit for production use.

    GHC RTS parametrization

    We're currently prerforming various runs on the cluster to explore the space of different GHC RTS settings for running nodes. The main focus lies +on different configurations for the garbage collector, as well as increasing the number of CPU cores the node may use.

    Open Sourcing

    Our API demo has reached prototype stage, and operates on live data from the production database. Making use of the experience gained, we're refining version 1 of the API to provide optimized usability, and creating documentation that both is descriptive of the API endpoints, and focuses on practical, exemplary use cases.

    Tracing

    For the new tracing system we're currently undertaking an effort to multi-layered documentation: a condensed version, as well +as a setup guide with pragmatical focus, will be provided alongside the in-depth documentation. This effort should cater to different audiences, and provide distinct entry points +for users of the new system, depending on their wants and needs.

    Infrastructure & Analysis

    General

    Having included Conway genesis in the workbench, as a next step in future-proofing out benchmarking infrastructure, we're laying the foundation for a switch in compiler version to GHC 9.2. Additionally, we considered variance analysis of our runs to merit inclusion into our reporting pipeling - which will +increase confidence in specific metrics.

    Nomad backend

    We have implemented an appropriate mechanism for genesis distribution: Only after a benchmarking cluster has been deployed successfully, genesis +is patched and uploaded to an AWS S3 bucket for the nodes to retrieve - as a final step before initiating the actual run. We're confident that this deferred approach will provide clearer evidence for genesis patches, as well as minimize startup time for all runs by factoring in deployment re-tries.

    · 2 min read
    Marcin Szamotulski

    High level summary

    In the last spring we released cardano-node-1.35.6 with dynamic P2P +functionality.

    We received reports from some SPOs who encountered problems with their non +P2P block producing nodes not being able to connect to their P2P relay. Karl +Knutsson (from Cardano Foundation) reproduced this issue between two nodes (a +non P2P and a P2P one) on mainnet. Karl and the IOG Networking Team analysed +it and found a bug in the legacy non p2p code. The bug is only possible to +trigger with a P2P node which is binding its outbound connection port to +a fixed IP address and port (default in p2p). A possible solution was found. +For more information see #4465.

    We released cardano-ping-0.1.0.0 package to CHaP. cardano-ping is no +longer available as a standalone binary, but instead it will become part of +cardano-cli (see #4664)

    We are testing cardano-node with peer sharing functionality (#4019).

    We are working on eclipse evasion. We added new class of peers: big ledger +peers to the outbound governor, implemented tests and fixed found issues +(#4462). We also made the information if a given peer plays the role of +a big ledger peer to the mini-protocols. This will allow to modify +mini-protocol applications for such peers. As part of this functionality we +refactored some core types in the network code which simplifies exposed API.

    Together with Moritz Angerman we started to update io-sim to ghc-9.6.1 (see +#73).

    We merged a fix of configuration of accepted connections limit in +cardano-node (see #4902).

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: RFP finished. Code ready for audit.
    • cardano-base: BLS12-381's PR approved, only blocker is Windows' CI. Preparing extensive testing strategy together with Plutus and Testing teams.
    • KES agent: Working on a desing on how to use IO sim in order to allow for proper network simulation testing.
    • Sidechains: Preparing proving system to use the curves needed for main-net PoC.

    Low level summary

    Mithril

    • Merged PR#783
    • RFP for crypto audit ready.

    cardano-base

    • BLS12-381 branch approved PR#266. Blocker is Windown's CI. Working on it
    • Testing strategy for BLS bindings:
      • Preparing test-vectors for Groth16, and simple BLS signatures
      • Finding community projects to help write their use cases
      • Designing AC, and expected tests for higher levels of development (Plutus team, E2E tests, etc)
    • Wrote blogpost on how using the same key for ed25519 and VRF completely breaks the security of both systems

    KES agent

    • Started integration of sockets interface used in consensus
    • Use that for de/ser
    • Resolving problems with block memory in IOSim. Can't use withForeignPtr in IOSim
    • Results in having to parametrise for IOSim in KES and DSIGN for testing

    Sidechains

    • Prepared an API for proof generation in sidechains, with it's C API for integration with JVM languages.
    • Design document and start interacting with researchers for concrete instantiation of SNARK-based ATMS.
    • EdDSA over JubJub ready

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has continued work on the mainnet compatibility of the +hydra-node. They added a golden test suite for hydra-plutus scripts, added +some detection of hydra-node misconfiguration, established a limit of 100 ADA +per commit and other smaller tasks to prepare for a mainnet beta release.

    Next week there will be a small team workshop to push for demonstrating a Hydra +Head on the Cardano mainnet, ideally just in time for the monthly review +meeting. See the hydra channels on the IOG Technical Community discord server +for details.

    What did the team achieve this week

    • Implement a 100 ADA hard-coded commit limit in the hydra-node +#763
    • Pay back funds to faucet after smoke-test run +#773
    • Setup custom github runner for smoke-tests on mainnet +#775
    • Created golden tests to assure the script hash stays the same between +changes #772
    • Removed hardcoded error codes in plutus scripts +#768
    • Detect misconfiguration of a hydra-node given persistent state +#767
    • Met with potential users for hydra-pay
    • Prepared hydra workshop

    What are the goals of next week

    • Hydra monthly meeting
    • Open a multi-party head on mainnet
    • Complete mainnet compatibility feature

    · 2 min read
    Jared Corduan

    High level summary

    We made further progress on the conway ledger era. +In particular, we expanded the ledger API significantly, including lots of governance features. +We also made progress on the specification and corresponding work in the Haskell implementation.

    We also continued to integrate the latest ledger packages into cardano node and addressed +technical debt.

    Low level summary

    Expanded ledger API

    The ledger API was significantly expanded to include:

    • a lot of protocol parameter support
    • versioning support (type level ledger eras and protocol versions)
    • auxiliary data support
    • many new lenses
    • support for witnesses
    • support for conway governance

    See pull-3328.

    Conway ledger rules

    We have made progress on the formal ledger specification for the Conway era. +Moreover, the corresponding Haskell updates were also completed:

    Incremental SPO/DRep stake distribution computation

    We have a working (and correct) proof of concept for how to use the incremental lambda calculus +to maintain several of the stake distributions incrementally. +For the per-SPO distribution, this is a performance improvement. +For the (conway) per-DRep distribution, this is will allow those who have delegated their votes +to a DRep to have time to react to any votes that they disapprove of. +(Sorry, no code to share just yet, more to come.)

    Technical debt

    + + + + \ No newline at end of file diff --git a/page/66/index.html b/page/66/index.html new file mode 100644 index 0000000000..c118f75da0 --- /dev/null +++ b/page/66/index.html @@ -0,0 +1,66 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers +improving the deltaQ tutorial, consulting on performance design, and +the final version of the Djed paper.

    Details

    • Preparing draft of DeltaQSD algebra paper for ICE 2023

    • Successful outcome of Marlowe consultancy leading to substantial +improvement in performance

    • Preparing sections on the communication language and bisimulation +proofs for draft paper about verifying design refinements for +distributed system design

    • Camera ready version of Djed paper under preparation

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team addressed issues with committing complex UTxOs into a +Hydra Head, prepared the hydra-node to be run on mainnet (soon) and improved +the test suite of the hydra-plutus scripts. The specification is constantly +getting improved upon reviewer feedback on overleaf - this week the graphical +notation was refined to be more transaction-focused.

    What did the team achieve this week

    • Clarified bug of committing UTxOs with reference scripts to a Hydra head #737
    • Prepare usage of hydra-node on mainnet by updating command line options #715
    • Improved our mutation test suite to all expected errors #705
    • Re-opened our persistent hydraw demo head on preprod using version 0.9.0
    • Updated on-chain graphs to be more transaction-focused in the specification

    What are the goals of next week

    • Complete mainnet compatibility feature
    • Prepare the Hydra workshop
    • Address all todo’s in the Hydra specification
    • Unblock the auctions project with commit from script a solution

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano mainnet and computes the stake distribution with the optimized unreleased Cardano CLI command.

    Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.

    Low level overview

    • Worked on the epic that implements eras behavior switch #707:
      • Completed the deployment of the era behavior switch to the test networks #752
      • Completed the enhancement of datum generation for era markers #786
      • Worked on handling the API version with an era switch #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Worked on the migration/adaptation of the stake_pool table #787
    • Completed the refactoring of errors in the signer and aggregator state machines #665
    • Worked on testing Mithril with a mainnet Cardano network #777
    • Worked on fixing bugs with the Docker client image:
      • Fixed a bug that made the Docker client container crash at startup #769
      • Fixed a bug that prevented the restoration of a snapshot with a Docker client #791
      • Worked on testing the Docker client in the Mithril Client multi-platform test workflow #794

    · 3 min read
    Damian Nadales

    High level summary

    The Consensus team continued working on refactoring and improving the UTxO-HD +prototype, and introducing improvements to the lmdb related packages. In +particular we identified an opportunity to gain performance by handling locks in +a more optimal way.

    On the Genesis front, we sketched a mitigation for an issue that PNSol and +Researchers caught. We also came op with a road map for not only testing the +Genesis prototypes, but also for enriching the tests we already have.

    Regarding technical debt, next to some minor improvements, we created +component-level micro-benchmarks for adding transactions to the mempool. The +results of these benchmarks will be published in the ouroboros-consensus web +page.

    We also finished moving the Consensus documentation to the ouroboros-consensus +repository, released ouroboros-consensus 0.3.0.0, and reduced the time +GitHub actions take in ouroboros-network.

    Workstreams

    UTxO HD Prototype

    We continued working on refactoring and improving the UTxO-HD prototype. As a +result of the first round of sytem-level benchmarks, we identified an +opportunity to optimise the way we handle locks to improve performance +(#4393).

    Also, we introduced several improvements to the lmdb related packages:

    Genesis

    We sketched out a mitigation of the issue that PNSol and Researchers caught in +the Genesis design.

    We came up with a road map for testing the Genesis prototypes, including early +milestones that are applicable to today's master branch, ie tests that are +useful before Genesis, and that will be nicely enriched when we do add Genesis.

    We developed the aforementioned tests, specifically a QuickCheck generator for +the Honest leader schedule and one as-aggressive-as-possible Adversarial +leader schedule that together satisfy the Praos properties that the Consensus +design takes as invariants.

    We investigated why the improved ChainDB queueing implementation behaves +differently in the baseline compared to the prototype, and we are close to +having a full picture of how the Consensus components interact during bulk sync.

    Technical debt

    We created component-level micro-benchmarks for adding transactions +to the mempool. We plan on extending this to more mempool actions and different +types of blocks. We store the benchmark data to make it available +to the GitHub action that publishes the benchmarks results.

    Other minor improvements include:

    • Removal of Test.Util.Classify in favour of Test.StateMachine.Labelling.
    • Addition of -Wunused-packages to the default ghc-options for Consensus +packages.

    Fostering collaboration

    We finished moving the Consensus documentation from +ouroboros-network to ouroboros-consensus, in preparation for +migrating the code to the latter repository.

    Support

    We released ouroboros-consensus 0.3.0.0.

    We reduced the load in the ouroboros-network GitHub actions, +thereby reducing the time CI jobs take.

    · One min read
    Jordan Millar
    + + + + \ No newline at end of file diff --git a/page/67/index.html b/page/67/index.html new file mode 100644 index 0000000000..670d969b15 --- /dev/null +++ b/page/67/index.html @@ -0,0 +1,61 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Michael Karg
    • Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.
    • New tracing: Backwards compatibility with legacy tracer nomenclature is being implemented to smoothe the transition for end users.
    • Analysis pipeline: A major refinement of benchmarking metrics has been realized, along with a structural improvementents regarding metrics denomination.
    • Open Sourcing: Work on going live with our benchmarking data has begun, as well as creating an API demo and documentation.
    • Nomad backend: The backend was adapted to a major refactoring in workbench and is being equipped with a nomad-exec based task driver.

    Performance

    1.35.6 release

    Benchmarking the second release candidate for 1.35.6 could again attest to a perfectly clean bill of health.

    Analysis pipeline

    Our analysis pipeline has seen an introduction of additional metrics, especially when focusing on the block producing node. They allow us to better +differentiate the timing of ledger ticking and mempool snapshotting in the forging loop - a feature that promises much deeper insight into UTxO-HD performance. +Additionally, a restructuring of metrics names has been undertaken along with improvements in their data dictionary; a measure that will make benchmarking +data more easily accessible.

    Open Sourcing

    As a prerequisite for going live with our benchmarking data, we're currently working on consolidation of existing analyses, such as to provide a common foundation when accessing them externally. Additionally, we've begun working on a small visualization demo and interactive API documentation. Those will enable +third parties to make use of that data much more easily, by having reliable guidelines and a working example.

    Tracing

    The new tracing system is being outfitted with a comprehensive mapping of its structure to the legacy tracer nomenclature. This feature will make +the switch to the new system as smooth as possible for end users, allowing them to gradually adapt their tooling without breaking any functionality in the process.

    Infrastructure

    Nomad backend

    The Nomad backend was adapted to the latest major refactoring in workbench. Work was done on making stateful Nomad clients more autonomous, which will greatly facilitate any automation building on that backend. A task driver based on nomad-exec is currently being implemented.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.
    • cardano-base: BLS branch is now ready for review. We are workign forward its merge.
    • KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.
    • Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs

    Low level summary

    Mithril

    • Bumped to version 0.2.0 the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using mlock.
    • Opened PR#783 to update dependency
    • Improved testing for batch opening of mtree, PR#773
    • Improved testing for batch verification of STM sigs PR#774
    • RFP for crypto audit almost ready.

    cardano-base

    • BLS12-381 branch finally ready for review PR#266

    KES agent

    Team off for one week. Other progress:

    • Learning about raw direct-bearer abstraction. An interface for sockets in consensus.
    • use that for direct ser/deser
    • written those syntaxes for ouroboros (coming PR)
    • the kes agent will depend on that.

    Sidechains

    Progress with familiarisation of Halo2 library to write circuits.

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers and one +technical report, improving the deltaQ tutorial, consulting on +performance design, and the Djed paper has been accepted for +publication.

    Details

    • Preparing draft of DeltaQSD algebra paper for FORTE 2023

    • Extending the technical report on which the above paper is based

    • Consulting with an external company on performance engineering of Plutus contracts

    • Planning improvements and collecting material for the deltaQ +tutorial based on experience with systems that manage risk at +multiple timescales

    • Preparing sections on the communication language and idempontency +laws for draft paper about verifying design refinements for +distributed system design

    • Studying Cardano chain sync protocol

    • "Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin +Protocol" has been accepted for publication at IEEE ICBC 2023

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version +0.9.0 - a version +of the hydra-node with fully specified behavior of on-chain scripts and +off-chain head-logic, decreased costs for opening/closing a Head and scalable +contestation deadline semantics. Check out the full release notes for details.

    Furthermore, they published the monthly +report of the Hydra project +and conducted a review meeting with an increasingly wider audience. The team +plans to extend invitations through the new Hydra +#announcements discord channel for the next +months, stay tuned!

    What did the team achieve this week

    • Monthly review meeting with report published on website
    • Fixed smoke tests #726
    • Reduced the cost of opening/closing a Head (error codes #748 + head reference script #701)
    • Released version 0.9.0
    • Conducted a first experiment on mainnet compatibility #713
    • New discord category with #announcements channel
    • Received a demo about the Hydra for Voting project
    • Lightning talk on mutation-based testing (to be shared)
    • New themes view in on our roadmap and some rearranging as we align it with high-level objectives
    • Clarified things with researchers, but mostly identified action items for them

    What are the goals of next week

    • Redraw transaction graphs and address TODOs specification
    • Run hydraw with 0.9.0 on preprod
    • Make smoke tests on mainnet possible
    • Groom the explorer item
    • Unblock the auctions projecth with commit from script a solution

    · 2 min read
    Jared Corduan

    High level summary

    We have focused the last two weeks on CIP-1694, integration of the last several months of ledger +work into consensus and node, and testing infrastrutcture that we will use in the conway ledger era.

    Low level summary

    Conway rules

    We made a major update to the conway era so that the implementation is now in sync with the spec +with respect to the ratification and enactment logic.

    See the notes in pull-3291 for more details.

    Constraint based generators

    This week we hit a major milestone in our efforts to build out better property based testing +support for the main ledger properties. +The new constraint based generators can now generate full ledger states with what is probably +very close to the real constraints (if anything, it is under constrained). +Next we will work on generating a transaction in the context of a ledger state, which would allow +us to actually start using these generators for real tests.

    See pull-3219.

    Preparing a release, now with proper versioning

    After quite some time, we are ready to release a version of ledger that will work with a new +version of consensus, using CHaPs.

    See pull-3308.

    Technical debt

    • We cleaned up the redeemer serialization code (to prevent future mistakes). See pull-3269.
    • We added a note to the Alonzo spec, specifying that the transaction inputs are +lexicographically ordered in the Plutus script context. See pull-3306.
    • We fixed a problem with the address deserialiazation +(we mistakenly fixed a bug in the Babbage era which cannot be fixed until Conway). +See pull-3307.
    • We fixed a problem with our nix build. See pull-3311.
    • We fixed a problem with our NoThunks tests. See pull-3310.
    • We improved our nightly tests. See pull-3316.
    + + + + \ No newline at end of file diff --git a/page/68/index.html b/page/68/index.html new file mode 100644 index 0000000000..0b28bb09f0 --- /dev/null +++ b/page/68/index.html @@ -0,0 +1,94 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Marcin Szamotulski

    High level summary

    In the current sprint the networking team focused on fixing bugs and pushing +forward implementation of eclipse evasion. We also found a bug in our +simulation testing setup (in integration of test node). We also overviewed the +work on extending handshake protocol which is delivered by Galois Inc.

    We published ouroboros-network-0.4.0.1 and +ouroboros-network-protocols-0.3.0.0 to CHaP.

    We also fixed a bug in cardano-node which results in not being able to +configure inbound connection limits, see PR #4902.

    Together with Karl Knutsson (CF) we realised an issue in cardano-cli: it's +validation of DNS names, IP address & ports when registering a stake pool +should be more strict to protect against common mistakes which we identified on +the chain. See issue #4929.

    Detailed work log

    In PR #4385 we fixed two bugs in peer state actions. First one results in +a busy loop if demotion from hot to warm times outs. This busy loop is +eventually exited when mux exits (we reported this in our previous report). +This fix made it to 1.35.6 release as well.

    In addition the PR #4385 also fixes another bug which results in hot -> warm +-> hot demotion / promotion busy loop.

    The PR #4385 also fixed a bug in a node only used in simulation which +resulted in not using chain-sync or block-fetch mini-protocols. In the +review process, we realised that the header-body split in the simulated node +requires further work (see PR #4419, which is under review).

    The PR #4385 also extend our generators, which together with the above fix, +cover the hot -> warm -> hot demotion / promotion busy loop.

    In PR #4419 we introduce a ChainDB for our simulation node, which plays +similar role to ChainDB in the ouroboros-consensus: a persistent (across +simulated restarts) store of blocks which does chain selection. This ensures +that the simulated node is using block-fetch to download blocks announced by +chain-sync mini-protocol.

    We also made progress with reviewing PR #4019 - peer sharing.

    We also fixed issue #4370 - a connection manager test failure, see PR #4384.

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team continue closing many gaps and aligning the +implementation with the specification. More over, they have groomed a plan to +make Hydra Mainnet compatible. Also, they continue moving forward with the +internal auditing and have published some auditing guidelines to receive +contributions from the community.

    What did the team achieve this week

    • Completed #452 (what is +remaining in there)
    • Aligned the Head protocol logic implementation with the specification
    • Completed full minting policy implementation and spec +#720
    • Clarified message authentication with researchers
    • Groomed what is left to do for Mainnet compatibility +#713 and drafted a +0.10.0 version
    • Added a tutorial by @perturbing to the +website LINK
    • Published auditing guidelines +LINK
    • Made hydra-node work for macos +#746 and added support +for building on aarch64 +#673
    • Met with a potential customer of Hydra for Payments

    What are the goals of next week

    • Have the monthly review meeting incl. the report
    • Have smoke tests fixed and running regularly
    • Release 0.9.0 with updated scripts
    • Redraw transaction graphs for specification

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2306.0 distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes’ CLI that allows generating and signing an era marker’s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.

    Low level overview

    • Released the new distribution 2306.0
    • Completed the epic that implements signer versions deployment monitoring #718:
      • Completed the implementation an event producer/consumer via channel #738
      • Completed the creation of a database and its configuration to save the events on the consumer side #740
      • Completed the creation of events and sending them on the channel on the producer side #741
      • Completed the creation of the signer registration event #742
      • Completed the creation a query to extract the node versions stakes distribution #743
    • Worked on the epic that implements eras behavior switch #707:
      • Completed the loading of era reader adapters from config in the signer and the aggregator #732
      • Completed the implementation of an era cli command in the aggregator #755
      • Completed the implementation of a dynamic matrix of cases in CI end to end tests #760
    • Fixed some bugs:
      • Fixed the unsupported unixepoch() function #757
      • Fixed the problem that prevented some signers from signing on the testing-preview network #730
      • Update SQLite version to 3.40 in aggregator infrastructure #765

    · 3 min read
    Michael Karg
    • SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.
    • Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.
    • UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.
    • New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.
    • Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.
    • Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.

    Performance

    SECP

    1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.
    2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.
    3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking.

    UTxO-HD

    1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.
    2. We're currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.

    1.35.6 release

    Benchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.

    Tracing

    Work on the new tracing system's introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.

    Infrastructure

    Nomad backend

    1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.
    2. Locality assumptions were removed and job monitoring was refactored.
    3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.
    4. We're currently evaluating different options for genesis distribution in said cluster.

    NixOps backend

    The NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery.

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks we got the results from the system level benchmarks +for UTxO HD. They showed a substantial performance regression, so we spent some +time analyzing the results. We found out the frequency at which ledger snapshots +were taken was too high, so we requested the benchmarking team a new run with a +more realistic snapshotting policy. We continued refactoring and improving the +prototype, and we released UTxO-HD related packages to CHaP.

    We met with IOG researchers and networking specialists to discuss the Genesis +design, which was well received. We continued working on testing and +benchmarking different Genesis prototypes.

    We are also working on solving a test failure related to iterators. This work +derived in several improvements such as better documentation, a framework for +writing unit (and regression) tests, and the possibility of debugging +QuickCheck counter examples in the REPL.

    Finally, we released ouroboros-consensus 0.2.0.0 and +ouroboros-consensus-cardano 0.3.0.0 to CHaP

    Workstreams

    UTxO HD Prototype

    We got the results of the first system level benchmarks for UTxO HD. They seemed +to indicate a significant regression in performance. After looking into the +benchmark logs we found that the benchmark runs took ledger state snapshots too +often, due to the default snapshotting policy depending on k, and k being so +small in the benchmark runs. Therefore, the next step is to re-run the +benchmarks with a snapshotting policy that more closely resembles the one from +mainnet.

    At the same time, we continued refactoring and cleaning up the prototype.

    Also, we prepared the anti-diff packages (fingertree-rm, diff-containers, +simple-semigroupoids) and the lmdb related packages (cardano-lmdb and +cardano-lmdb-simple) to CHaP.

    Genesis

    The Genesis design was presented to the IOG researchers and Peter Thompson from +NSol. It was well received. They pointed out one blindspot, but we think it'll +be relatively simple to mitigate.

    In parallel, we continued developing test and benchmarks for the Genesis +prototypes. I particular we tested and implemented a potential fix for +increased ChainDB dequeue timings, which partly +behaved as we expected, but still needs further investigation. Also we obtained +new benchmarking data for the prototype.

    Technical debt

    Related to #4183, we developed a DSL for specifying +ChainDB unit tests. This will allow us to better understand the +counter-examples returned by QuickCheck tests, and to write regression +tests for them. Also, we added a module to enable +QuickCheck counter-examples to be run on the REPL, allowing for faster debugging +feedback. Also, we improved the documentation related to followers +(#4372).

    We are also working on a design for optimizing the way we handle blocks from the +future.

    Support

    We released ouroboros-consensus 0.2.0.0 and ouroboros-consensus-cardano +0.3.0.0 to CHaP. Remember that we decided to split the packages related to +Consensus into two bundles, one with the core functionality, Cardano-agnostic +code, and another bundle with instantiations specific to Cardano.

    + + + + \ No newline at end of file diff --git a/page/69/index.html b/page/69/index.html new file mode 100644 index 0000000000..94127935d9 --- /dev/null +++ b/page/69/index.html @@ -0,0 +1,48 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jordan Millar

    2023-02-22 - 2023-03-07

    High level summary

    General bug fixes

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    Documentation

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · One min read
    Kostas Dermentzis

    High level summary

    The db-sync team created a new tag 13.1.0.2 which is ready to release. +We also investigated and had the first working UTxO-HD integration which is one +of the potential future risks for db-sync.

    Low level summary

    • Integrated the UTxO-HD feauture branch in kderme/utxo-hd-1. This doesn't +use the full on disk storage but keeps things in memory and the plan is to keep +it this way for the first iteration. The integration still has some performance +issues which we investigate
    • Created tag 13.1.0.2 which upgrades the dependencies of db-sync
    • Fixed an issue related to errors appearing in SMASH +#1353
    • Continued with ghc-9.2 integration +#1339
    • Worked on an new fixing procedure for +#1348. +We try to make these procedures work also on older schema version, without the +need to migrate to newer schema, which can be very useful for fixing existing +snapshots.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril's core library (decided to add audit of KES). Design proposal for viable registration.
    • cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: started implementation in rust.

    Low level summary

    Mithril

    • Transmute helpers merged PR#722
    • We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope.
    • We are working in a modification of KES to require caller to allocate the secret key buffer.
    • Proposed a solution for signer registration of Mithril.

    cardano-base

    • Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 proof.
      • Results are promising, with using only 23% of the execution budget to verify a realistic proof.
      • Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril.
    • KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this.
    • Conversion finally merged PR#344.

    KES agent

    • Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation
    • Figuring out how to go from fake file descriptor to write the raw bytes

    MuSig2

    • Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental.

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers and one +technical report, distributivity properties of deltaQ, and consulting +on performance design with the Marlowe team.

    Details

    • Processing reviews on performance engineering paper and planning +paper revisions accordingly

    • Investigating distributivity properties of DeltaQ

    • Preparing sections on the thorn calculus and idempotency laws for +draft paper about verifying design refinements for distributed +system design

    • Consulting on performance design with Marlowe team

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed work on dealing differently with contests +during the contestation period. These will now always push out the deadline and +hence contestation periods are easier to pick (depending on the network a Head +runs on). Furthermore, they added an important acceptance test and completed +internal refactoring of the protocol logic making future changes easier.

    What did the team achieve this week

    • Push contestation deadline on each contest #716
    • Wrote an acceptance (property) test can always close/fanout when collect is successful
    • Internal refactoring of our HeadLogic
    • Groomed remaining things from #452 into dedicated features

    What are the goals of next week

    • Complete full minting policy #720
    • Release 0.9.0 with updated scripts
    • Plan mainnet milestone and a 0.10.0 version
    • Redraw transaction graphs for specification (upon feedback)
    • Have smoke tests fixed and running regularly
    + + + + \ No newline at end of file diff --git a/page/7/index.html b/page/7/index.html new file mode 100644 index 0000000000..cc1ce3c742 --- /dev/null +++ b/page/7/index.html @@ -0,0 +1,75 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Alexey Kuleshevich

    High level summary

    Some of the most important and final Conway features were implemented since the last report:

    • Bootstrap phase is fully implemented
    • HardForkInitiaztion governance action will now correctly take us into the next era +that will follow the Conway era.
    • DRep stake distribution now also includes the amount in the reward account and deposits +that were left for the governance proposals.
    • CostModels updates for plutus scripts made more flexible, which will allow us adding +new primitives for all plutus versions starting with the Conway era.

    As always, besides new features, we also wrote a lot of testing functionality. We now have +our first and fully functional conformance test for a GOV rule, with a few more in the +works. Many improvements and bugfixes to constraint based generating functionality. Last, +but not least, we did a major and long awaited improvement to our CI setup that makes it +much easier to spot failing tests and deal with potential flakiness.

    Low level summary

    Conway

    • pull-4275 - Restrict gov actions during bootstrap
    • pull-4253 - Hardfork Initiation into a new era
    • pull-4273 - DRepDistr: Iterate over the DRep delegations in UMap
    • pull-4309 - Add proposal deposits to DRep active voting stake.
    • pull-4284 - Flexible costmodel params
    • pull-4328 - Disable drep thresholds in bootstrap

    Testing

    • pull-4295 - Improve generator in ImpTestsState
    • pull-4292 - constrained-generators: add genHint for maps
    • pull-4298 - constrained-generators: utility function for asserting over a reified value
    • pull-4300 - constrained-generators: hotfix of latest derp...
    • pull-4297 - constrained-generators: Fix ifElse dependencies
    • pull-4301 - constrained-generators: Add monitoring capability to get a handle on test case distribution
    • pull-4315 - constrained-generators: Improve error messages and make the tree generator reasonably sized
    • pull-4317 - constrained-generators: Fix bug in reifies
    • pull-4299 - Fix strange CI failure.
    • pull-4285 - Start Conway Imp tests with an initial committee and constitution
    • pull-4303 - Fix test caused by erroneous merge
    • pull-4310 - Fix OMap.assocList
    • pull-4268 - Enable conformance tests for GOV rule

    Infrastructure and releasing

    • pull-4276 - Use a separate job for each test suite in GitHub CI
    • pull-4304 - Ensure the CI complete step fails when tests fail
    • pull-4308 - Add a CI status check to prevent merging PRs that contain merges
    • pull-4305 - Use the correct iohk action for installing Haskell in GitHub CI
    • pull-4322 - Bump jinja2 from 3.1.3 to 3.1.4 in /doc

    · 5 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed and analysed benchmarks in the Conway era, with DReps injected.
    • Development: Tracing DRep data has been implemented; improved error reporting in tx-generator and analysis quick queries are ongoing work.
    • Workbench: We now fully supports the new CLI create-testnet-data command and DRep injection into Conway genesis. Haskell profile definition work is ongoing.
    • Tracing: Various additions to Node metrics are being worked on, such as build info and block producer role. Metrics naming will be further harmonized.
    • UTxO Growth: We've finalized analysis and reports of all benchmarks targeting UTxO scaling scenarios.
    • UTxO-HD / LMDB: We've performed multiple runs benchmarking the LMDB (on-disk) backend of UTxO-HD.

    Low level overview

    Benchmarking

    We've run and analyzed a full set of benchmarks comparing the Conway ledger against the Babbage one, on Node 8.10.1-pre. For Conway, our additional goal was to measure a vanilla ledger state against one with a large amount of DReps - and delegations to those DReps - present. The +benchmarks used our existing value and Plutus workloads to remain comparable to each other.

    Development

    Additional ledger queries for the tracing system have been implemented and merged to master. Those capture the amount of, and the number +of existing delegations to, DReps as trace output - and thus enable creating a metric on top of it, which can then be monitored.

    The (in our case) non-deterministic nature of shutting down different cluster setups - both local and cloud-based - carries the possibility +that our transaction generation service occasionally misclassifies a regular shutdown as an error. Furthermore, in the case of network malfunctions, the service's errors are too unspecific. By implementing thread labels for submission threads, corresponding to each +submission target, and by adding custom smart signal handlers, we'll improve the generator's error reporting significantly.

    The initial tests for quick queries are being developed further. We're moving towards a principled, and generalized, syntax that supports both +prepared, parametrizable queries from the application code, as well as ad-hoc queries stated e.g. on the command line.

    Workbench

    The performance workbench now fully supports the new cardano-cli command create-test-data. We use it to inject both stake +delegated to stake pools into genesis, and - recently added - stake delegated to DReps as well. It has been proven very useful +and versatile so far, and will eventually replace the current create-staked command.

    Work on porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is still ongoing; currently, we're integrating all new profile families that came out of the UTxO growth scenarios.

    Tracing

    New metrics are being implemented for the tracing system. They will also be part of Prometheus output and as such accessible to +monitoring services. There'll be cardano-node's detailed build info, as well as a node's block producer status, meaning the presence of forger credentials. Those new metrics are being backported to the legacy tracing system, too.

    Furthermore, we've determined the need to revisit metrics naming. There's still a divergence between naming in the legacy +and the new system. While this could be mitigated by passing in extra config options, we think that a transition to the new system +should not impose any unnecessary effort for node operators. A design to fully harmonize the existing naming schemata is currently being +set up.

    UTxO Growth

    The UTxO Growth benchmarking series has been finalized. We've finished analyses and reports for all scenarios that +were tested and explored.

    The overarching questions were, given a network of 32GB host systems, how large can the UTxO set grow in general, +how large can it grow before the nodes have to operate close to the RAM limit over extended periods of time, and how does scaling the UTxO set size affect network metrics, such as block diffusion.

    A dedicated "UTxO Scaling Squad" was set up, who was driving the entire process, and we enjoyed a very focused and productive collaboration with them.

    UTxO-HD / LMDB

    Last not least, we were able to benchmark UTxO-HD's on-disk backend on a network of block producing nodes, on a recent 8.9.1 version +of cardano-node. The setup allowed of using a direct access SSD device for performance critical disk I/O, whereas the bulk of ChainDB and ledger snapshots remained on a standard AWS EBS volume.

    The benchmarks comprised both optimistic and pessimistic RAM assumptions for the host OS to further optimize I/O via page cache, as well as medium and large UTxO set sizes - the latter almost tripling current mainnet's size. The results were promising; the LMDB backend has proven to be able to accomodate large UTxO sets using significantly less RAM than the default all-in-memory node - and with a more than reasonable trade-off performance-wise. Furthermore, running with pessimistic assumptions, the performance impact on LMDB was very moderate only.

    · 3 min read
    Marcin Szamotulski

    High-level overview of sprint 60

    Edited on 8th of May: new EGK counters will be included in `cardano-node-8.9.3`, added links to `cardano-node-8.9.3` PR and `ouroboros-network-0.15` release.

    Peer-Sharing Improvements

    We continued working on improving peer sharing. As part of this work light +peer sharing (e.g. including inbound peers to the known set of outbound +governor), was restructured. Now, sending more peers than what was requested by +the peer-sharing client is a protocol error, and the connection will be terminated; +This hasn't been a resource attack vector since we always limited the number of +peers taken by the outbound-governor and the number of peers has always been +limited by the size of the mux ingress queue reserved for peer-sharing +mini-protocol. These changes will be released in cardano-node-8.9.3. See +ouroboros-network#4868

    We also merged the work on outbound governor counters, which initially started +as just an extension for peer-sharing counters but turned into a larger +refactorisation. We announced it in the previous report. These changes will +be included in 8.9.3. See ouroboros-network#4845, +ouroboros-network#4861.

    Light peer sharing (inbound peers) refactorisation allowed us to refactor the +inbound governor loop: we restructured it so that the internal state is kept +pure (and thus not shared with other threads), while the public part is +computed incrementally (with good amortised costs and thus leading to good performance) and exposed to other +components (e.g. the outbound-governor), see ouroboros-network#4871 (which +is built on top of ouroboros-network#4868).

    The PR [cardano-nod#5831] integrates ouroboros-network-0.15 with +cardano-node-8.9.x branch. All included PRs / issues in +ouroboros-network-0.15 are listed here.

    Genesis

    We implemented the API needed by the consensus layer for Genesis; see +ouroboros-network#4815, ouroboros-network#4846.

    We continued working on outbound governor changes to support Genesis:

    Bootstrap Peers

    Karl Knutsson ([CF]) found and fixed some problems related to big-ledger and +public root peers. Here's an excerpt from the changelog file:

    • updated the big-ledger retry state in case of an exception;
    • reset public root retry state when transitioning between LedgerStateJudgements;
    • reduced public root retry timer;
    • don't classify a config file with public-root/bootstrap-peers IP addresses only +as a DNS error. +See ouroboros-network#4867.

    Churn

    We merged a refactorisation which synchronises churn with the outbound +governor, see ouroboros-network#4617.

    Minor Improvements

    A few other minor improvements were merged:

    Testing

    We added quickcheck-monoids package and also submitted an upstream patch to +QuickCheck to include a version of the standard All / Any monoids, which +are helpful when writing more complex properties. We will use +quickcheck-monoids until the upstream PR will be released. It will be +available from CHaP. See quickcheck#397.

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has been working on refactoring and detecting network protocol version mismatches. They have also merged the /commit endpoint changes including a follow-up fix about fee calculation. Besides this, they applied minor workflow fixes by adding docker images to nix checks and disabling mithril integration testing on preview (until mithril 2418 is released).

    What did the team achieve this week

    • Refactor connectivity and detect network protocol version mismatches #1381
    • Merged and completed #1350, including a follow-up fix about fee calculation
    • Add docker images to nix checks
    • Disable mithril-client testing on Preview

    What are the goals of next week

    • Restructure documentation including a how to about streaming plugins #1325
    • Add arm64 docker images as requested in #1404
    • Release 0.17.0

    · One min read
    Damian Nadales

    High level summary

    • Reworked the argument for the different databases used in Consensus, in preparation for UTxO-HD (#1059).
    • Helped review the first Peras Innovation draft report.
    • Continued working on VRF restriction based on slot distance. The corresponding PR (#1047) went through its first round of reviews.
    • Provided support to the Networking team to review their work on querying big ledger peers (#1067).
    • Continued working on open-sourcing fs-api and fs-sim.
    • Performed other minor refactorings in the codebase (#1073 and #1070).
    + + + + \ No newline at end of file diff --git a/page/70/index.html b/page/70/index.html new file mode 100644 index 0000000000..817ecbf728 --- /dev/null +++ b/page/70/index.html @@ -0,0 +1,82 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Jared Corduan

    High level summary

    This past two weeks saw many months worth of ledger changes integrated with the cardano-base +and ouroboros-network repositories. +The vast majority of the effort involved all the changes to the ledger serialization libraries +(and the interplay with cardano-base) which now support proper versioning. +Supporting the conway ledger era, and in particular allowing the ledger state to transition +to a whole new system of governance, also played a noticeable part in the integration.

    Besides the integration work, the team continues to address technical debt, improve the +documentation, make our testing infrastructure better (such as experimenting with better +nightly tests), and formally specifying more parts of CIP-1694.

    Lower level summary

    Integration work

    Below is all the integration work completed, which will enable a release to node from +the current ledger master. Many thanks to +Alexey for this colossal undertaking!

    Technical debt

    Starting in major protocol version 9, zero-valued multi-assets will no longer be permitted +in the CBOR specification. See pull-3241.

    We now have our .cabal files being checked for a consistent formatting given by +cabal format in our CI. See pull-3286.

    We are still experimenting with better nightly tests for our long running +property based tests. See pull-3276 and pull-3296.

    Small documentation improvements

    The hand proofs of the preservation ADA property have been added back to the +Shelley ledger specification. See pull-3295.

    We have clarified how the script integrity hash is computed in the CDDL description. +See pull-3290.

    Specifying CIP-1694

    Our new formal specifications backed by Agda have seen a lot of progress! +Upgrading to Agda 2.6.3 fixed our main build infrastructure problems, +and we no longer have to rely on our custom fork. See pull-50.

    Our progress on formally specifying CIP-1694 can be followed here:

    Constraint based testing

    We are still actively working on our new constraint based property testing framework. +We have nearly all of the constraints for an entire ledger state +hooked into generators, and tests that the generators do indeed obey the constraints. +The variable count in the constraints is over 100! +There is still much work to do on shrinking, making the generators faster, +and writing actual property tests for the ledger, but the approach still seems viable and +we are hopeful that it could replace our trace generators. +The WIP can be followed here: pull-3219.

    · One min read
    Marcin Szamotulski

    High level summary

    Recently QA found a bug in P2P code, which results in busy loops. We added one +fix to 1.35.6 release, another one will likely be part of next release. The +first one is already included in ouroboros-network-0.3.0.1 release. These +bugs could only affect nodes which are out of sync and thus should not impose +risk on well maintained nodes on mainnet. We also advertise to deploy at most +one of the relays as a P2P node, which shields from possible consequences.

    We recently finished design phase of eclipse evasion and we started +implementing it (see issue #3886 for progress).

    Galois finished implementing Handshake extension which will allow to query +network protocol versions (see pr #4256).

    We also recently released a newer set of network packages to be integrated with +cardano-node master branch, this includes:

    * monoidal-synchronisation-0.1.0.2
    * cardano-client-0.1.0.2
    * network-mux-0.3.0.0
    * ouroboros-network-api-0.1.0.0
    * ouroboros-network-protocols-0.2.0.0
    * ouroboros-network-testing-0.2.0.1
    * ouroboros-network-mock-0.1.0.0
    * ouroboros-network-framework-0.3.0.0
    * ouroboros-network-0.4.0.0 (it doesn't not yet include the fix we included
    in `0.3.0.1`)

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team closed several gaps to align the Hydra scripts +implementation further with the specification. This also resulted in a slight +improvement on Hydra script size and costs. They consequently analysed the +asymptotic complexity of collect and fanout and how they relate. Also plutus-tx +profiling toolchain was evaluated and set up for future improvements on Hydra +on-chain performance. In discussions with researchers and internal auditors, +they also uncovered next steps on further securing the Head protocl using a +"full" minting policy.

    What did the team achieve this week

    • Closed several gaps to align script implementation with specification #452
      • Allow contest only once #680
      • Optimization through head output at index 0 #700
      • Value is preserved #702 + optimized exact value equality #709
    • Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to #721
    • Fixed our tooling around the Haskell language server
    • Discussed full minting policy with researchers
    • Started grooming “what we need for mainnet” on this idea ticket and milestone

    What are the goals of next week

    • Implement full minting policy
    • All remaining protocol discrepancies are implemented or groomed as individual features
    • Ideally release 0.9.0 with updated scripts
    • Discuss what we need for mainnet (milestone planning)
    • Redraw transaction graphs for specification (upon feedback)

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2304.1 distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.

    Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version 1.35.5 on their devnet and infrastructure.

    Low level overview

    • Released the new distribution 2304.1
    • Fixed a bug that prevented some signers to sign with 2304.0-prerelease #716
    • Completed the implementation of an EraChecker that checks if an era is active #708
    • Completed the implementation of an EraReader that gathers era activation data #709
    • Completed the implementation of an EraReader adapter with on chain transaction as source #710
    • Completed the relational design of the aggregator store #476
    • Completed adding a new SPO on the testing-preview network #729
    • Completed the upgrade of the Cardano node to 1.35.5 #725
    • Fixed flakiness in the CI #734

    · 2 min read
    Damian Nadales

    High level summary

    We continue refactoring the UTxO HD prototype while we wait for the system level +benchmarks. We have created a new repository that contains the anti-diff +packages used in this prototype.

    On the Genesis front, we are preparing another meeting with the researchers to +audit the implementation design, and we continued working on basic tests and +simplifications.

    During the past two weeks we also introduced two new tools. One for dumping CBOR +encoded blocks to JSON, and another to serve a local immutable DB.

    Workstreams

    UTxO HD Prototype

    We are in the process of refactoring the UTxO HD prototype, while we wait for +the system level benchmarks to confirm if the performance of the prototype is +satisfactory.

    We also set up a repository for the anti-diff package, which +required us to refactor the code, write documentation, and prepare a release to +CHaP.

    Genesis

    We worked on basic tests for the Limit on Eagerness property of +Genesis. We also introduced further robustness and simplifications in the +Genesis Density governor. Finally, we developed a presentation to engage again +with the researchers on our Genesis implementation design.

    Technical debt

    Fostering collaboration

    We are in the process of polishing the ouroboros-consensus +documentation site, which we will use a the entry point for Consensus related +documentation. The first version will not be complete, but we plan on +systematically improving it.

    Support

    We added a tool to ouroboros-consensus-cardano-tools which allows +to dump the Chain DB blocks or any given CBOR encoded blocks as JSON.

    We also added another tool that serves an existing immutable DB via +BlockFetch and ChainSync. This tool can help in assisting our local benchmarking +efforts (for instance Genesis' ChainSync jumping prototype).

    + + + + \ No newline at end of file diff --git a/page/71/index.html b/page/71/index.html new file mode 100644 index 0000000000..8eeacd27c9 --- /dev/null +++ b/page/71/index.html @@ -0,0 +1,39 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jordan Millar

    · 3 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we're currently running what we consider the final benchmark, to validate the underlying assumptions.
    2. Release benchmarking: we've performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.
    3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.
    4. New tracing: before going live, we're performing the documentation update, as well as reworking the end user migration guide.
    5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.
    6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.
    7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.

    Performance

    We are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:

    • we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,
    • after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,
    • finally, we're redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.

    In addition, we started benchmarks of the 1.35.6 release.

    Tracing

    A rework of the new tracing system's internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.

    Specifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.

    Infrastructure

    On the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we'll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.

    The work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.

    The Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops.

    · 3 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril.
    • cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.

    Low level summary

    Mithril

    • Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing PR#722
    • We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.
    • We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.

    cardano-base

    • There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381.
    • The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.
    • The update VRF PR#341 is finally merged, and we are ready to merge PR#344, which implements conversion functions from the compatible types between Praos and PraosBatchCompat.

    KES agent

    • Use of snockets to send the data directly from the socket to secure memory.
    • We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives
    • Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.

    MuSig2

    The GitHub Action linelint is used to check the files.

    • A new job for linting is added to the file /.github/workflows/ci.yml. The rules are configured in the file /.github/workflows/.linelint.yml. Some files from the configuration of libsecp were failing, so in the rules in .linelint.yml the failing files are denoted to be ignored by the linter.
    • Folders are reorganized. We created a folder to handle the example. This folder includes the examplemusig2.c, a distinct config.h, and helper.c. The example is enhanced by implementing the functions in the helper for the configuration given in config.h. The number of messages is different than the tests. The example is made more generic to run with a loop.

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been preparing several papers for peer review +and knowledge sharing and consulting within IO and the community.

    Details

    • R&D Seminar on experience participating in a member based organisation
    • Full day tutorial on performance engineering presented at HiPEAC +2023 conference
    • Finished preparing and submitted a paper on performance engineering +to an ACM workshop
    • Preparing a draft paper for future submission about verifying design +refinements for distributed system design
    • Consulting on performance design of other IO projects

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed the Hydra specification with a section about +rollbacks and updated graphs +(#448). In a next step, +the specification will be made more approachable and an open standard. They +improved their hydra-cluster tool to launch a local --devnet sandbox +environment and continued aligning the hydra-plutus scripts with the +specification by hardening the checks on close and contest transactions.

    What did the team achieve this week

    • Completed the specification with a section about rollbacks and updated graphs +#448, with a follow-up on making it more approachable and an open standard.
    • Continued spec review with internal auditor and incorporated changes.
    • Talked to TxPipe about how Demeter and Hydra could work together
    • The hydra-cluster executable can be used to launch a local --devnet sandbox environment.
    • Reproduced the “head being stuck on network outage” bug
      • relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed.
    • Progressed with higher velocity by addressing more and more gaps #677

    What are the goals of next week

    • Upstream our JSON instances to the ledger
    • Close all transaction security related on-chain gaps
    • Ideally release 0.9.0 with updated scripts
    • Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap
    + + + + \ No newline at end of file diff --git a/page/72/index.html b/page/72/index.html new file mode 100644 index 0000000000..b30e91a3d5 --- /dev/null +++ b/page/72/index.html @@ -0,0 +1,74 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jared Corduan

    High level summary

    Much of the work the past two weeks involved integration efforts, +cleaning up and debugging some serialization issues, +adding tests, and work on large projects that are still ongoing. +We also released a CIP this week that aims to make the ledger +a registered CIP category.

    Lower level summary

    Ledger evolution CIP

    We published a +CIP +that will make the Cardano ledger a registered category of the CIP process.

    Serialization issues

    We had previously thought that we had found a serialization problem with the redeemers, +but it turned out to just be particularly confusing code. +We have now clarified the issue for the future.

    See pull-3263, pull-3269, and pull-3268.

    Starting in protocol version 9, we will no longer accept duplicate keys in CBOR maps.

    See pull-3277.

    New tests

    We added a new property test suite for some of our custom containers.

    See pull-3270.

    Progress on a better cost model serialization situation.

    We are still working our way through issue-2902. +Towards this end, we are now properly gating the new flexible encoders +until version 9.

    See pull-3274.

    Nightly tests

    We are still experimenting with moving more CI actions to GitHub actions.

    See pull-3276.

    Constraint based generators

    We continue to add to our proof of concept for constraint based generators. +See the previous ledger update for more information about this project.

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team had a monthly review meeting with their stakeholders, +contributors and interested people from the community. The monthly repot for +January 2023 is a digest +of the things presented and also includes a summary of the meeting. The Hydra +specification was getting discussed and the team is incorporating suggested +changes of reviewers. Last but not least, they compute and publish script +information on every PR and also on the +website +now.

    What did the team achieve this week

    • Had the monthly review meeting with a broader audience
    • Published the monthly report for January 2023
    • Reviewed the spec and discussed individual aborts with researchers
    • Compute and publish script information along benchmarks on every PR and website

    What are the goals of next week

    • Add rollback section to Hydra spec, update pictures and publish it as part of repository
    • Discuss bigger spec findings (full minting policy, individual aborts, split fanout) as change/pull requests on the spec in the repository.
    • Groom & plan actions required for a maintainable Head explorer + break down align gaps feature.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2302.0 distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.

    Finally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.

    Low level overview

    • Released the new distribution 2302.0
    • Implemented a backward/forward compatibility mechanism for API messages #688:
      • Implement the mechanism for the signer registration #689
      • Implement the mechanism for the signature registration #693
      • Implement the mechanism for epoch settings #695
      • Implement the mechanism for certificate pending #696
      • Implement the mechanism for certificate #697
      • Implement the mechanism for snapshots list #698
      • Implement the mechanism for snapshot #699
      • Update enforcement of API version with Semver #705
    • Completed the PoC implementation of backward compatibility with protobuf #677
    • Completed the PoC implementation of backward compatibility with avro #678
    • Completed the PoC to Read/Write transaction on chain for Era activations #672
    • Completed the upgrade Cardano devnet to 1.35.4 #523

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team finished the testing activities +around the UTxO-HD prototype. This is a very important milestone which will +enable us to run system-level tests and benchmarks, as well as start refactoring +and cleaning the prototype. Regarding our Genesis workstream, we elaborated a +roadmap that gives an indication of the remaining work. We also continued our +work on benchmarking chain-sync-jumping. We also continued working on improving +the way we handle blocks from the future, and advancing the integration of the +new VRF and KES crypto.

    Workstreams

    UTxO HD Prototype

    As the prototype is nearing its completion, it was important to have enough +confidence that we will be able to move additional parts of the ledger state +onto disk. We worked together with the Ledger team to elaborate a +sketch on how the UTxO-HD design would accommodate the migration of +additional data from memory to disk. This gave us enough confidence that the +current architecture will be extensible in the future.

    On the testing front, we added property-based tests for the UTxO-HD +type classes.

    We also enabled disabled components, and addressed several +technical debt issues:

    • Implement splitSized anti-diff split (#4269), and integrate it +into consensus (#4273).
    • Renaming of peekVal to peekMDBVal (#7).

    We ran ad-hoc benchmarks for syncing a chain from scratch and replaying. We +found a race condition in the LMDB backing store, which we fixed. +After the fix we were able to successfully run these benchmarks. The results +were published by this pull request.

    We used our db-analyser tool to benchmark the cost of reading keys and +flushing values to disk. The following plot shows the duration of these disk +operation in relation to the main ledger operations, where we can see that the +cost of the former are comparatively low. The spike at the beginning of the +graph is when, at the start of the Shelley era, the entire UTxO set is flushed +to disk.

    UTxO-HD read and flush benchmarks

    After months of hard work adding tests for the prototype, we are ready to run +end-to-end tests on the node, and system level benchmarks. This signals a very +important milestone for the UTxO-HD workstream 🎉.

    Genesis

    We elaborated a high-level decomposition of the remaining +work for Genesis. We also continued benchmarking the chain-sync-jumping +happy-path.

    Technical debt

    We continued working on improving the way we handle blocks from the future.

    Support

    We completed the mapping of Crypto to HeaderCrypto and body Crypto. +HeaderCrypto is moved to cardano-protocol-tpraos. We created a draft pull +request to facilitate compiling consensus.

    · 2 min read
    Jordan Millar

    2023-01-25 - 2023-02-07

    High level summary

    General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the cardano-cli query stake-snapshot command.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    + + + + \ No newline at end of file diff --git a/page/73/index.html b/page/73/index.html new file mode 100644 index 0000000000..6ea59251a3 --- /dev/null +++ b/page/73/index.html @@ -0,0 +1,68 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We explored whether some uses of transmute could be removed, but it resulted in considerable regression.
    • cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision.
    • KES agent: An inconsistency between contra-tracer available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the contra-tracer used by consensus.

    Low level summary

    Mithril

    • We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average PR#675. We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing.
    • We are writing a RFP for the audit of the core library.

    cardano-base

    • A problem with Nix is blocking merge of PR#341
    • Plutus team ran benchmarks of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution.
    • Team is fully digesting the Plonk paper.
    • There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used.

    KES agent

    • A little unforseen delay has been caused by a mismatch in the use of contra-tracer. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are doing the change, but still the CI is not happy.
    • The same was needed for the KES agents prerequisites PR#317.
    • We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has been focusing on the write-up of the Hydra HeadV1 +specification. Of which a first version has been aggregated and is currently +under review. They aligned the on-chain scripts of reimbursing funds on abort +like defined in the specification, improved the mutation test framework to have +more control when testing plutus scripts. The added HeadId in the API and the +TUI example client make hydra-node easier to use and a first experiment of a +Hydra Head explorer was showing the utility of this - see what Heads exist on +the preview network here.

    What did the team achieve this week

    • HeadId to API and display in the TUI #678
    • Experiment of creating a hydra explorer, first result hosted here
    • Improved mutation framework allowing to fail for the right reason #679
    • Correctly reimburse funds in abort (matching the spec) #670
    • Finished a first write-up of the Hydra HeadV1 spec: Read it on overleaf (Communication channels for feedback)

    What are the goals of next week

    • Monthly review meeting with a broader audience
    • Groom & plan actions required for a maintainable Head explorer
    • Break “align gaps” feature into smaller chunks (at least on- /off-chain) and groom it
    • Review the spec & discuss individual aborts with researchers (a bigger open question)

    · 2 min read
    Marcin Szamotulski

    High level summary

    We have been working towards cardano-node-1.35.5 release. QA & benchmarking +teams gave a green light for the release, and we made decent progress with some +CI problem which we encountered on the way (PR #4612). We are also working on +peer sharing, making improvements in our testing infrastructure, reducing +technical debt and making progress towards io-sim-1.0.0.0. Galois is making +progress on Handshake improvements.

    Low level summary

    Our diffusion simulation network now includes a mixed network of initiator +only and initiator and responder nodes. issue #4222

    We are now reviewing the peer sharing pull request.

    We are also reviewing pull request which introduces handshake query flag. PR #4256

    We fixed a bug in our network simulator. The bug was triggered when a node +died when performing a simultaneous TCP open (a corner case of a corner case!). PR #4265

    We also refactored Snocket interface and removed the bearer construction from +its methods. PR #4260

    We are working towards releasing io-sim-1.0.0.0 on Hackage, which includes +reviewing two PRs: PR #57 and PR #60 as well as writing an announcement +blog post.

    · 2 min read
    Michael Fellinger

    High level summary

    The SRE team continues work on Cicero, Tullia, and Bitte, as well as providing +support for cardano-world.

    Lower level summary

    Cicero

    • Fixed various race conditions around transformers.
    • Brought our CI up to date.
    • Migrated to the Nomad exec driver with Nix support for many actions.
    • Moved Nix builds to the Nomad clients for much better cache locality.
    • Ongoing work on vastly improving the action matching and evaluation speed.

    Tullia

    • Made it easier to support cloning from a PR's fork
    • Update to latest std
    • Add workaround for cgroup issue: nomad#12877
    • github preset: add github.ci.remote and (read|get)Repository functions
    • Fix various issues around CUE handling

    Bitte

    • Upgrade to NixOS 22.11
    • Prototype usage of Colmena for deploys instead of deploy-rs
    • Finalized work on Equinix Metal support
    • Prototype better secrets management with ragenix instead of sops-nix
    • Improve CI and bring it up to date

    cardano-world

    • Fixd various OOM issues on preview and preprod
    • Rotated KES keys on preview and preprod
    • Optimize mainnet db-sync to cope with higher load
    • Fix an issue where PostgreSQL would fail after a reboot

    bitte-world

    • Updated to NixOS 22.11

    ci-world

    • Updated to NixOS 22.11
    • Added Equnix cluster
    • Improve caching of Nix builds

    · 3 min read
    Jared Corduan

    High level summary

    The ledger team completed some preliminary ground work in preparation for CIP-1694 +(restructuring the ledger state), +fixed the PDF hosting problem (mostly the formal specs), +built out more of the new user-friendly ledger API, +finished a proof of concept for constraint-based generators for property tests +(with the hopes of being able to replace our trace generators one day), +and addressed technical debt.

    Lower level summary

    Restructuring the ledger state

    The existing governance structures will be replace in the conway ledger era, +as described in CIP-1694. +In particular, the ledger rules will be restructured as follows:

       BBODY
    |
    |-------------------------------|
    v v
    TICK LEDGERS
    | |
    |---------| |
    v v v
    RUPD ~NEWEPOCH~ ~LEDGER~
    | |
    |----------| |--------|-------------------|-----------|
    v v v v v
    ~EPOCH~ +ENACTMENT+ DELEGS UTXOW +TALLY+
    | | |
    |---------|------------| v |
    v v v DELPL v
    SNAP POOLREAP -UPEC- | UTXO
    |--------| |
    v v v
    POOL DELEG ~UTXOS~

    -..- Removed
    +..+ Added
    ~..~ Modified

    Moreover, the ledger state will also be restructured in accordance with the new rules. +In the conway code, we have now removed UPEC, added TALLY, and stubbed ENACTMENT. +We have also adapted all the data structures in the ledger state.

    See:

    PDF hosting

    We now build all of our PDFs using a GitHub action which is triggered by pushing a tag +with a specific form, cardano-ledger-spec-YYYY-MM-DD. +The action creates a GitHub release containing the PDFs. +The links in the main ledger README now point to the PDFs in the latest release.

    See:

    Powering the new ledger API

    We have now removed all the HasField instances from the protocol parameter data types, +and replaced them with lenses. +This is probably the last major restructuring that the ledger team will do on the code base +for the API for a while +(the Plutus tools team will be working on it next, see here). +We also added a new helpful function ensureMinCoinTxOut.

    See:

    Constraint-based generators

    Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks +which span several epochs, mimicking a real network. +These tests are, in theory, excellent for checking properties. +They are, however, very difficult to maintain and are not as random as we would like +(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We would like to switch to tests which instead generate a random ledger state representative +of not just an initial state, generate a single random valid block, and then test our properties. +The hope is that these will be much more random and easier to maintain.

    We have finished a proof of concept are encouraged that this approach could work!

    See:

    Technical debt

    • pull-3244 massive CI speedup
    • pull-3249 better types for fees in the protocol parameters
    • pull-3264 move our annotator code to the cardano-ledger-binary package where it belongs
    • pull-3239 move the Wdrls type to the Core module.
    + + + + \ No newline at end of file diff --git a/page/74/index.html b/page/74/index.html new file mode 100644 index 0000000000..351b5713b9 --- /dev/null +++ b/page/74/index.html @@ -0,0 +1,49 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Kostas Dermentzis

    High level summary

    After spending the last months on improving DBSync and releasing 13.1.0.0 the DBSync team focused +the last weeks on integrating upstream changes and tech debt. This includes integrating CHaP, the +new leger core and ghc-9.2.4

    Lower level summary

    • Integrate CHaP +#1331
    • Integrate new ledger core 0.1.1.1 and ghc-9.2 +#1332
    • Technical debt: Add code formatter fourmolu +#1334
    • Preparing and tracking Conway and UTxO integration

    · 2 min read
    Sebastian Nagel

    High-level summary

    Since last weekly update before christmas, the Hydra team worked on the +technical specification, closed gaps in hydra-plutus scripts, made the unique +headId available to Hydra clients through the API, allow the hydra-node to +explicitly synchronize from genesis (if configured), and fixed smaller log and +build issues reported by new users.

    Besides this, a retrospective blog +post +was published by Matthias Benkort (CF) on Hydra, summarizing our progress made +in 2022 also an outlook where Hydra is headed for in 2023. Also, the team had +some first sessions on the voting project with Catalyst and the CF.

    A full digest monthly digest for December 2022 can be found on the hydra +website.

    What did the team achieve this week

    • Had some first sessions on the voting project with Catalyst and CF
    • Published retrospective blog +post +by Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also +an outlook where Hydra is headed for in 2023.
    • Worked on the LaTeX spec for HydraHeadV1, not final or published yet - latest +version in this repository.
    • Add unique headId to API and hence make it available to clients.
    • Allow hydra-node to explicitly synchronize from genesis using --start-chain-from 0.
    • Closed gaps in hydra-plutus scripts
      • bounded transaction validity (ADR21)
      • enforcing contract continuity via state token in output
    • Fixed JSON for some logs and smaller build issues reported by new users.

    What are the goals of next week

    • Reach out to have hydra-tutorial integrated.
    • Plan the next couple of months.
    • Complete checking reimbursing of commits in head validator.
    • Align plutus scripts to spec and simplify them (identified some simplifications)
    • Improve mutation framework to be sure we fail tests for the right reasons
    • Complete the spec except the open points (<5) and also discuss them with researchers.

    · One min read
    Samuel Leathers

    Node Reelease Update

    2022-11-02 - 2023-01-13

    Executive Summary

    A 1.35.5 release for single relay P2P is nearly completed and should be released this month. This release is based on +release/1.35 branch and does not bump cardano-ledger.

    The team successfully integrated an interim release bump of ledger and consensus into cardano-node master. +This work will not be released in a node version, but will be continued by the current dependency bump in progress.

    We anticipate once this dependency bump is completed, regular 2 week releases will be feasible again.

    The 1.35.4 release is being ran by more than 70% of stake pools. Planning for the mainnet hard fork date is in progress.

    Completed

    In Progress

    · One min read
    Dorin Solomon

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the P2P Single +Relay functionality.

    We also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level.

    Workstreams

    Framework improvements:

    • extended the cardano-node-tests with the ability for anybody to fork the repo and run all our System Tests on GitHub Actions
    • added 2 new nightly pipelines - nightly-mixed and nightly-p2p - details here
    • some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;

    === 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) === + to + === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===

    Node:

    • ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled
    • started the preparations for testing the next tag - details here

    DB-Sync:

    • some improvements on db-sync sync tests

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ADR. They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.

    Finally, they have worked on upgrading the devnet and fixing some flakiness in the end to end tests of the CI.

    Low level overview

    • Implemented the redaction of an ADR for handling graceful updates of the Mithril Network #671
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with protobuf #677
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with avro #678
    • Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction #672
    • Worked on upgrading the Cardano node of the Mithril devnet, as well as fixing flakiness of the CI #523
    • Prepared and tested the new 2302 distribution pre-release 2302.0-prerelease
    • Updated the documentation for SPO to build a signer node in order to better reflect the new release process #681
    + + + + \ No newline at end of file diff --git a/page/75/index.html b/page/75/index.html new file mode 100644 index 0000000000..357d4f52c5 --- /dev/null +++ b/page/75/index.html @@ -0,0 +1,104 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Damian Nadales

    High level summary

    The consensus team is resuming its activities after the Christmas break. During +these weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and +discussing with the Ledger team the changes that might be required for the next +iterations. The pull request that adds the Conway era is waiting for a second +review round and we hope to merge it soon. On the technical debt side we are +looking into a property-test failure found in the iterators. We are +investigating if this is an error in the model or in the implementation. We also +improved the documentation of our testing code.

    Workstreams

    UTxO HD Prototype

    We worked with the Ledger team to start preparing the next versions of UTxO-HD. +The Ledger team is concerned that for the remaining maps we might need the full +ledger state on epoch boundaries. Since the main consumer of the ledger rules is +Consensus, the code that requires access to a full state could be moved from the +ledger to some Ledger-Consensus bridge. Eg. the traversal of rewards could take +place in such bridge, instead of querying the ledger for the values that are +required in the epoch-transition computations.

    We relocated some UTxO-HD definitions, in preparation for merging +the prototype into master.

    We also completed updated local benchmarks comparing the replay time and memory +consumption of:

    • the baseline node (f2fc76ef45647275c98634da1718290b976ff364)
    • the UTxO-HD node with the in-memory backend
    • the UTxO-HD node with the LMDB backend

    The following plot shows the results: we can see that the LMDB node barely +reaches 8GB of memory, but it takes 1.78 times longer to replay the chain. The +in-memory backend is about 30 minutes faster, but still slower than the baseline +version. We are aware of this phenomenon and it is inherent to the problem of +maintaining sequences of differences of the last k ledger states that allows +us to perform rollback and roll-forward. We are in the process of measuring +syncing from scratch times.

    We also added StaticEither accessors that helped us to simplify +the UTxO-HD prototype.

    New Conway era

    We incorporated the feedback of the pull request, and rebased this +branch on top of master. The PR is pending a second review round and we hope +to merge this soon.

    Technical debt

    We are investigating a property-testing failure involving +iterators. Solving this requires understanding the expected behavior of +iterators in the counterexample found by QuickCheck to determine if the error +is in the model or in the implementation.

    Fostering collaboration

    We moved the contents of docs/Testing.md closer to the code, so that the +explanations about the tests are easier to find in the relevant modules, and the +documentation is easier to keep up to date.

    · 2 min read
    Serge Kosyrev

    High level summary

    Since our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:

    1. SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress.
    2. The new tracing system: the improved API of the new tracing system was implemented, and we're now porting the tracing integration layer over.
    3. Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks.
    4. New benchmark deployment infrastructure: we've made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs.
    5. Legacy benchmarking: we've started merging the legacy benchmark deployment infrastructure into the workbench.
    6. Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.

    Performance

    The AWS cluster infrastructure necessary for SECP benchmarking is still being worked on.

    Tracing

    The improved tracing internals were implemented, and we're now into the phase of updating the tracing integration, which is also mostly done.

    Infrastructure

    Thanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components.

    On the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters. +We now have a very clear and granular method to keep track of protocol parameter evolution -- e.g. the mainnet history changes are now tracked at epoch granularity, while also allowing for systematically described change overlays. This makes the benchmark profile definition much more clear and robust against mistakes.

    We also started a merge of the legacy benchmarking environment (based on cardano-ops) into the workbench. The separation between environments was too costly, causing us to reimplement any benchmarking change twice -- first, during development, in the workbench, then in cardano-ops. In addition, maintenance of compatibility code was incurring additional costs, slowing benchmark data analysis development. +Once this merge is complete, this will allow us to sharply cut the benchmark development cycle and overheads.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: The API features (error handling) has been merged.
    • Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI.
    • KES agent: We keep progressing with KES secure forgetting implementation.

    We also started working in the cryptography engineering handbook, which will be a cross team effort.

    Low level summary

    MuSig2

    • Merged the more granular error handling mechanism PR#33

    Mithril

    • Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in Version 0.1.1, which was published in crates.io.
    • Updated new KES format to mithril library PR 674
    • We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync PR 531
    • We keep progressing on reducing the use of transmute in mithril-stm.

    cardano-base

    • Nothing new to report. Still working in merging these PRs. We are only missing nix merge of PR#520 and the updates on VRF will be merged.

    KES agent

    • We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests PR#255.

    Cryptography handbook

    We have made available the (temporary) cryptography handbook https://input-output-hk.github.io/cryptography_spec/, and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives.

    · 5 min read
    Jared Corduan

    High level summary

    The ledger team finished up the remaining work for tracking individual depots, +built out the new Conway era transaction body (in line with CIP-1694), +greatly reduce some problematically large calculations on the epoch boundary, +and addressed technical debt.

    Lower level summary

    Finishing the deposit tracking

    The initial work on the individual deposit tracking project focused only on correctness. +As this is a large data structure +(since its size is linear with respect to the number of registered stake credentials), +it is very important that we also reduce the memory overhead as much as possible. +Fortunately, we were able to add very little overhead for the deposits by using existing +efficient data structures. The extra tracking now only incurs one word (8 bytes) +per registered stake credential.

    See:

    New Conway era transaction

    We implemented the Conway era transaction body, which is in line with CIP-1694. +Note that the Conway era implements, losing speaking, the parts of CIP-1694 that are not +related to the liquid democracy (the "DReps"). +The new transaction body adds the new governance actions and votes, +while also deprecating the old governance structures +(i.e. the old protocol parameter updates and MIR certificates).

    We also now have the wire specification (CDDL file) and serialization code in place. +The wire specification is still subject to change while we work on the Conway era, +but it is now usable and has proper testing support +(so that, for example, the serialization round-trips, etc).

    See:

    Optimizing the TICKF transition

    Every since the release of the Shelley era, we have been working to reduce the computational load +placed on the node by the ledger at the epoch boundary. +While still not perfect, we believe that we have removed one of the final problematically long +epoch boundary computations that exacerbate situations like +this. +In particular, the problem involved the way in which the consensus layer obtains a view of the +ledger for the purposes of checking the leadership schedule in a new epoch. +We implemented a stopgap measure which now only incurs a single multi-second cost once per epoch +instead of potentially several multi-second costs while the networks waits for the first block +of a new epoch to be minted.

    See:

    Technical debt

    We closed the year out with a lot of reduction to the technical debt!

    Improved ledger event

    • pull-3212 - The ledger events are not guaranteed to appear in any given order within a block. +For this reason, motivated by the use case in db-sync, the TotalDeposits event now +includes a transaction ID and emits the change in deposits instead of the value.

    Improved type saftey

    • pull-3208 - We replaced NominalDiffTime with a newtype wrapper. The problem was that our CBOR +encoders and decoders were using the wrong level of precision, having to due with with +the Shelley genesis file. We removed the potential problem with a newtype wrapper.
    • pull-3167 - We now use a GADT to ensure consistency of the Plutus language in the types +for TransactionScriptFailure and PlutusDebug.

    Code/Module organization

    • pull-3175 - The Allegra and Mary eras had an unusual relationship in our codebase, +due to the uncertainly of release dates while we were implementing them. +In particular, they were coupled in way that is different from the rest of the code base. +With hindsight on our side, we split the combined shelley-ma Haskell package into two +separate ledger era packages, which is now consistent with the rest of the repository +and module structure.
    • pull-3184 - We created a core test sub-library, cleaning up a lot of our property test +generator code.
    • pull-3210 - We moved the KeyPair type to the test library. Outside of testing, +the ledger does not need to deal with signing keys, and since this is a topic that +deserves the utmost care, it is best to make it clear that our use of signing keys +is only for testing.
    • pull-3229 - We split the Cardano.Ledger.Alonzo.Data module, which is more consistent with the rest +of the codebase.

    Revert pointer address deprecation

    Thanks to one of our excellent internal auditors, +@jmhrpr, +we now have a better plan for deprecating pointer addresses. +This meant that we had to revert the previous work to deprecate them.

    See:

    Miscellaneous

    • pull-3205 - We removed deprecated type synonyms.
    • pull-3218 - We cleaned up the address deserialization.
    • pull-3223 - We fixed faulty address deserialization tests.
    • pull-3222 - We switched to a general type family TxOut from concrete ones, +reducing many constraints.
    • pull-3224 - ShelleyGenesis is now parameterized by crypto instead of by era.
    • pull-3170 - We set the cabal-version to 3.0 in our projects.
    • pull-3172 - We removed the now useless EncodeMint/DecodeMint classes.
    • pull-3225 - We switch from ormolu to +fourmolu. +The reason was to be able to finally have more diff friendly code!

    · 2 min read
    Jordan Millar

    2022-12-28 - 2023-01-10

    High level summary

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    + + + + \ No newline at end of file diff --git a/page/76/index.html b/page/76/index.html new file mode 100644 index 0000000000..239d2395c9 --- /dev/null +++ b/page/76/index.html @@ -0,0 +1,76 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on the website and reduced the cost for commit transactions by ~30% with the help of reference scripts.

    The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.

    What did the team achieve this week

    • Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.
    • Reduce commit transaction costs by ~30% with reference scripts.
    • Prepared an RFP for external audit of the Hydra Head solution.
    • Fixed transaction cost benchmarks for abort tx #631.
    • Recorded decision to use model-based testing (ADR22) and improved Model documentation.
      • Concluding the first increment on Validate coordinated Head protocol #194.
      • Formulated next step / follow-up on testing the Soundness property of our protocol #656.
    • Switched to using nix flakes for development setup and CI build #646.

    What are the goals of next week

    • Push ADR21 & tx validity gap over the finish line (smoke tests missing).
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Close & recap on the year with another monthly report (+ blog post).

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released the new distribution 2248.1 of their nodes. They have published the first version of the Mithril cryptographic library on crates.io, the Rust community’s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.

    Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities.

    Low level overview

    • Implemented removing verification key and stake from single signatures #619
    • Completed the extraction of the signer registration from the multi-signer #642
    • Completed the extraction of the certificate creation from the multi-signer #638
    • Implemented a workflow to test client binaries (Linux / MacOS / Windows) #601
    • Completed the signature of the artifacts produced by the CI #587
    • Fixed the protocol parameters transition #627
    • Worked on optimizing the snapshot digest computation #510
    • Worked on enforcing the API protocol versions in the client and signer #633
    • Worked on deactivating the non certified signer registration mode #621
    • Worked on the re-genesis of the test networks #651

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the Consensus team finalized the QSM tests for the +backing store and Mempool on the UTxO-HD branch with important discoveries +regarding parallel QSM testing. We also worked with the Ledger team to envisage +the modifications that are required in Ledger and Consensus to accommodate the +changes in the crypto VRF and KES. The db-analyser now supports bechmarking +the ledger operations, which will allow us to identify, debug, and profile +potential performance problems. We drafted a document that defines how to manage +the versions of Consensus-related packages. The top level documentation of +ouroboros-network now features a description of the consensus components and +provides a hyperlinked map to the modules documentation.

    Workstreams

    UTxO HD prototype

    Whereas we had passing sequential state-machine tests for the mempool, the +parallel case proved to be more challenging than we thought. The operation of +adding a list of transactions to the mempool is not atomic and, as a result, +when adding a list of transactions, transactions from other processes can be +added in between. The mempool implementation handles this correctly, however +this required us to redesign the parallel model we had to take +the lack of atomicity into account.

    Backing store property tests

    We finished refactoring the backing store property tests. The second review +round is ongoing.

    LSM tree implementation

    We are working on benchmarking (in terms of time and number of IO operations) +fetching/looking up data from disk.

    Genesis

    We worked on the design of a mechanism to prevent a DoS attack on our Genesis +design related to rollbacks. This was arguably the biggest outstanding question.

    During the discussions around Genesis, we noticed a design boundary that nicely +delineates a fundamental component. We almost have a full Haskell prototype of +it. It will be very nicely self-contained, perhaps even usable in the ultimate +implementation!

    New VRF and KES crypto integration

    We collaborated with the Ledger team on preparing the ledger state and crypto +types to avoid huge allocation on the epoch boundary when changing aspects of +the crypto that will only manifest in headers, not in the ledger states.

    Technical debt

    We merged the pull-request that adds a support to db-analyser for +benchmarking ledger operations. This will allow us to identify, debug, and +profile potential performance problems. The benchmark focus on the main 5 ledger +operations that are involved in chain syncing, block forging, and block +validation, namely:

    1. Forecast.
    2. Header tick.
    3. Header application.
    4. Block tick.
    5. Block application.

    The following figure shows a plot of the benchmarking results for the first 65 +million blocks (approximately) of the Cardano chain. The thin yellow lines under +the x-axis show the epoch boundaries, whereas the thick yellow lines correspond +to the era transitions.

    As we can see in this figure, era and epoch boundaries require more computation +time. The ledger team are aware of this problem, and we are working to improve +this situation.

    Fostering collaboration

    We drafted a document motivating and defining how Consensus (and +possibly other core teams) will/should manage our package versions. This +pull-request garnered many great discussions from our team members and other +teams too: Sebastian Nagel, Arnaud Bailly, Michael Peyton-Jones, Ziyang Liu, et +al. We want to thank you all for your input, and we found this discussion very +enlightening!

    We merged the pull request that adds an overview of consensus to +the top level +documentation of +ouroboros-network. This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team continued testing release 13.1.0.0. The QA team has reported that no issues have +been found. The DBSync team also worked on cherry-picks back to master and on fixing bugs.

    Lower level summary

    • Release is cherry-picked back to master, which uses the new rollback mechanism which uses +reverse indexes, same as the release +#1320 +This also fixes a bug number of issues on master.
    • Depenencies upgrade and CHaP integration +#1324
    • AdaPots fix #1323. This +fixes an issue where the per epoch AdaPots didn't match the epoch boundary, but +they also included changes from the first block of the epoch.
    • Deposits Event fix #3212. This pr +adjusts the Deposits ledger events, so that it can be better used by db-sync. This can reduce the +number of queries that db-sync does during syncing an make syncing faster.

    · 2 min read
    Jordan Millar

    2022-12-14 - 2022-12-27

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    + + + + \ No newline at end of file diff --git a/page/77/index.html b/page/77/index.html new file mode 100644 index 0000000000..817f69542d --- /dev/null +++ b/page/77/index.html @@ -0,0 +1,69 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 4 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.
    2. A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery.
    3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals.
    4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.
    5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.

    Performance

    The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload.

    We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.

    Tracing

    After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.

    To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:

    1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.
    2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.

    All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further.

    In addition, we're still pursuing our performance-enhancing rework of the new tracing internals.

    Infrastructure

    After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.

    Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it. +This means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis. +This will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports.

    A new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches. +Previously we only had automation for two aspects separately, so we only could either:

    • compare individual runs (used for different node configurations / versions)
    • collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version) +Naturally, combining these two capabilities was a long-desired feature of our analysis pipeline.

    · One min read
    Marcin Szamotulski

    High level summary

    In last sprint the team focused on preparations for the conference talk at +OPODIS 2022. We also worked on preparations to publish io-sim and related +packages on Hackage (PR #57, PR #60).

    We also started reviewing:

    • ouroboros-network
    • cardano-node
    • cardano-ledger +repositories for open-source readiness (PR #4128).

    We prepared a PR which changes how node-to-node and node-to-client protocol +versiones are serialised in cardano-node log (PR #4691).

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency.
    • Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack.
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • [Still in progress] We are introducing a more granular error handling mechanism PR#33
    • We merged the API redesig PR#35
    • We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future PR#36

    Mithril

    • We merged the individual signature PR#620
    • We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (kes repo)

    cardano-base

    • Nothing new to report. Still working in merging these PRs.
    • We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a bug in GHC

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Fixed a 'use-after-free' bug in the KES agent.

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on completing to "Validate coordinated head protocol against formal model", this is a huge step to verify the implementation is secure. They also worked on implementing ADR21 related to bounded tx validity which is now under review. HydraPay project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of issues they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.

    What did the team achieve this week

    • Document model based testing #194 & #641
    • Got ADR21, reducing gaps between implementation and specification, under review.
    • Complete review on hydra-tutorial.
    • Complete first round of review on HydraPay work #634
    • Meeting with Director of CyberSecurity frio IOG to unblock "the RFP prepared for the external audit" #606
    • Remove vasil-dev and testnet from smoke-test because they were not working #630
    • Fix flaky plutus-merkle-tree test #642
    • Refactor NetworkSpec to improve legilibility.
    • Fix benchmark cost for abortTx #631
    • Adapt nix.conf to the recent hydra-ci nix cache migration.

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation.
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Get Cicero (new CI) working.
    • Use reference inputs to reduce the cost of the commitTx.

    · 3 min read
    Jared Corduan

    High level summary

    The Plutus tools team at IOG has started helping the ledger team to build out a user friendly +cardano-ledger-api package! +A GitHub project +will be filled out in the days ahead, +people interested in the API can use it to follow along and join in on the conversations.

    The ledger team has started using +architectural decision records +to leave a record of important decisions that the team makes. +We will retroactively go back through past decisions and make ADRs for them.

    The logic to track individual deposits is now nearly in place. +We are prioritizing correctness with our first pull request, and will follow up with +performance optimizations and general cleanup next.

    Pointer addresses are being deprecated with the Cardano major protocol version 8. +See CPS-0002 +for more context.

    Lower level summary

    Cardano ledger API

    The Plutus tools team has taken our minimal cardano-ledger-api package and started filling it +out and adding much needed documentation. +They have also added doctests! +In the days to come, the Plutus tools team will map out a lot more work for the API and record +it in this +GitHub project.

    See

    Architectural Decision Records (ADRs)

    We are now providing more context and leaving a record of important decisions that are made +in the ledger. The first ADR explains the very lightweight process.

    See

    Tracking individual deposits

    See ADR-3 +for background. +We now have the logic in place to track individual deposits, and a host of property tests +to make sure that the logic is correct. +The current implementation uses more memory than it needs to, and we will address that next, +with our hope being to only use one word (8 bytes) per registered stake credential. +There is a fair amount of other cleanup needed for general maintainability.

    See

    Removing pointer addresses

    Pointer addresses, which have never seen any real use +(there are something like eleven on mainnet), are being deprecated starting at Cardano major +version 9. +CPS-0002 gives the context. +We are disabling them by first preventing transaction outputs containing them +from being serialized by the node at the moment we switch to version 9. +At the hard fork after that, we will translate the existing few pointer addresses +to enterprise addresses.

    See

    Technical debt

    • pull-3162 - Sometimes we have to put safeguards in place for hard forks which may never +be exercised. After we have passed the given hardfork, we are able to clean up the code +and simplify our logic. We removed all of the ones that we are currently easily able to.
    • pull-3165 - We improved the type safety of our code while also discovering and fixing +a serialization bug.
    • pull-3172 - We removed dead code.
    • pull-3175 - The Allegra and the Mary code used to be coupled in a particular way the we grew to +dislike. We made these two ledger eras now uniform with the rest of our code base.
    • pull-3184 - We organized our property testing code.
    • pull-3200 - The Plutus tools teams fixed an outstanding bug in the translation from the +ledger state to the Plutus script context.
    + + + + \ No newline at end of file diff --git a/page/78/index.html b/page/78/index.html new file mode 100644 index 0000000000..542c416ff5 --- /dev/null +++ b/page/78/index.html @@ -0,0 +1,76 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on cleaning up several things in progress +after last week's summit. They have extended their model-based testing (MBT) +approach with transaction creation & observation +#410, solved +AcquirePointTooOld problems of the hydra-node with by changing the wallet +initialization #439. +Also, the Hydra researchers updated the security proofs of the Coordinated Hydra +Head, which are bound to be included in the Hydra HeadV1 specification.

    What did the team achieve this week

    • Monthly review & report - will also be published on our website #644
    • Extended the model-based testing (MBT) with transaction creation/observation #410
    • Solve AcquirePointTooOld problems with new wallet initialization #439
    • Fixed our hydraw deployments (EC2 instances)
    • Created & discussed ADR21 within tx validity work
    • Received & discussed security proofs of Coordinated Hydra Head (requires more work)

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation
    • Complete review & integrate the Hydra tutorial
    • Review latest hydra-pay work
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec
    • Get Cicero (new CI) working

    · One min read
    Kostas Dermentzis

    High level summary

    The DB Sync team prepared a release 13.1.0.0-rc2 which includes many improvements for db-sync, +it makes rollbacks and syncing much faster, simplifies the schema, fixes bugs and introduces +migrations. This release finalises the objectives that were set for db-sync for the previous +3 months period and part of the syncing speed objective set for the next period +Changelog

    Lower level summary

    • Branch release/13.1.0.x +includes all the improvements related to the release. The release is passing through the testing +phase and a number of bugs and issues have been fixed, like +#1312 +#1311. +Also many new unit tests have been added.

    • Part of the release branch is cherry-picked back into master, in a way that it respects the new +release and development process, so that it takes into account migrations +release process

    • The DB Sync team has also tagged release 13.0.6 which better supports preview and preprod for +docker.

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes.

    Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.

    Low level overview

    • Implemented custom Mithril SPOs on testing/pre-release networks #563
    • Deprecated Signer Declarative Pool Id registration mode #585
    • Completed the second stage of the store automatic migration process #600
    • Completed the deployment pipelines to crates.io registry #588
    • Completed automatic generation of nodes/libraries versions manifest in releases notes #599
    • Completed CI/CD handling of PR from forks #597
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #586
    • Worked on signing the artifacts released in the distributions by the CI/CD #587
    • Worked on multi-platforms end to end test #601
    • Worked on the refactorizaton of the aggregator multi-signer engine #398

    · One min read
    Dorin Solomon

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, planned the testing of the P2P Single +Relay functionality, and also tested some DB-Sync tags.

    Workstreams

    Framework improvements:

    • moved the System Test CLI Pipelines from BuildKite to Github Actions
    • improved the reporting tools to support the rerun of the failled tests and update of the reports
    • added support for Github API in report-aggregator, so reports will be generated from the GitHub nightly jobs from now on
    • added support for mixed topology - P2P, legacy, mixed topologies
    • planned the P2P Single Relay system test activities
    • added support to start regression tests with PV8 + better selection of tests

    DB-Sync:

    • confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)
    • tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team merged improvements to the monadic +cursor API that was needed to implement LMDB range reads, which is in turn +required for the implementation of the UTxO HD feature. We added tables to +several tests in for the UTxO HD feature, which increases our confidence in the +correctness of the prototype. The mempool property tests are close to being +completed. Also, we finished the LSM tree tuning algorithm.

    On the Genesis front we started simplifying the BlockFetch logic with +CSJ-specific workloads in mind.

    We are also documenting the Block Diffusion Pipelining feature, and added a +high-level overview of consensus to the top level documentation of +ouroboros-network.

    Workstreams

    UTxO HD prototype

    We merged the implementation of a monadic cursor API (#1)) which was +needed to solve a bug with LMDB range-reads. After this PR was merged, we focused on +bridging the gap between the lmdb-simple interface and consensus by facilitating +using lmdb-simple's cursor API without Serialise constraints (#3).

    We refactored the backing store property tests to use quickcheck-lockstep +(#4081).

    We added tables to the mock ledger in the UTxO-HD feature branch +(#4184). Every test that used to run with SimpleBlocks now uses +tables. This will enable us to exercise the UTxO HD mempool integration by +leveraging the existing mempool property-tests. The new state-machine +property-tests are still needed for testing the parallel behaviour of the +mempool.

    Our work on the mempool state-machine tests revealed the need for improvements +in the quickcheck-state-machine library. Parallel testing assumed that the +state machine did not have access to mutable references. However, the mempool +tests require the use of such mutable references for mocking the ledger +interface. As a result, our parallel tests were failing with rather obscure +messages. @Jasagredo submitted a pull request (#12) that allows for +new mutable references to be created at each run of the state machine.

    Backing store property tests

    LSM tree implementation

    We finished the LSM Tree tuning algorithm. We are currently tidying up the code +and gathering results (i.e., plots and their interpretation).

    CSJ prototype

    We started simplifying the BlockFetch logic with CSJ-specific workloads in mind.

    New VRF and KES crypto integration

    Started working on supporting new version of StandardCrypto which uses compact +KES and batched VRF (#4151).

    Technical debt

    We reviewed the existing state of the Block Diffusion Pipelining document. We +are now working on the "Implementation" section (#4020).

    Fostering collaboration

    We cleared up our understanding of the error dynamics of forecasting +(#4146 and #4174).

    We submitted a pull request that adds an overview of consensus to the top level +documentation of +ouroboros-network (#4197). This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    https://github.com/input-output-hk/ouroboros-network/pull/4197

    + + + + \ No newline at end of file diff --git a/page/79/index.html b/page/79/index.html new file mode 100644 index 0000000000..771a1104aa --- /dev/null +++ b/page/79/index.html @@ -0,0 +1,68 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jordan Millar

    · 2 min read
    Serge Kosyrev

    High level summary

    1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.
    2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.
    3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.
    4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.
    5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.

    Performance

    We have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don't see any significant performance changes. The component bumps are therefore clear for release.

    Tracing

    For the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them. +The idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time.

    To support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics.

    Infrastructure

    Generation support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation.

    In addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model.

    The intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged. +We are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration.

    We continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability.

    We are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP.

    As usual, a number of smaller workbench, data analysis & reporting improvements have been made.

    · 4 min read
    Marcin Szamotulski

    Stake-Driven Data Diffusion Release for Relays

    IOG networking team decided to release the Stake-Driven Data Diffusion with +Robust Optimised Peer Selection also more commonly known as P2P. In the +last update, we informed about a performance regression, but it turns out it +only affects block producers, and thus we highly advise against running it on +such nodes. Further investigation is required to find the cause of it.

    On IOG's benchmarking cluster we have seen quite a good performance improvement +on block propagation itself. The cluster is running a static topology with +valency 6 (each node is connected to 6 other nodes). In which every of the 50 +nodes are block producers. The setup of this network is the same as mainnet. +We've seen 40-50% performance improvement on block propagation comparing to the +same cluster deployed with the same topology but using non-P2P nodes. We think +this performance improvement is caused by using full duplex connections. Quite +likely the transaction traffic floating in both directions on the same TCP +connection helps to keep the TCP window open. Note that in a cluster of 50 +nodes with valency 6 the probability of having at least one duplex connection +is more than 50%. We don't expect the same improvement on mainnet because the +network is much wider and the transaction traffic is not as large.

    Just before the release we squashed two small bugs:

    • issue #4163 - top level integration bug in keep-alive;
    • issue #4177 - a bug in outbound-governor;
    • PR #4165 - a fix cardano-ping support of NodeToNodeV_10.

    Peer Sharing

    We were carrying a review of peer sharing PR.

    DeltaQ

    Neil Davies was invited to give a guest lecture entitled Avoiding System Catastrophes at UCLouvain.

    What have we achieve last sprint

    • issue #4163: we found out that a control message is not passed to the +keep-alive mini-protocol, this results in every demotion executing demotion +timeout rather than a graceful termination. With the fix the node will no longer log:

      { "kind": "PeerStatusChangeFailure"
      , "peerStatusChangeType": "WarmToCold (ConnectionId {localAddress = 192.168.0.10:7000, remoteAddress = 3.129.186.40:3000})"
      , "reason": "TimeoutError"
      }
    • issue #4177: we fixed an assertion failure in the outbound-governor; now +we don't try demoted peers which are being demoted already.

    • PR #4155: we refactored ouroboros-network packages. There's a top level +ouroboros-consensus-diffusion package which integrates network +& consensus code. We also introduced:

      • ouroboros-network-api package which contains the API shared between +network & conensus;
      • ouroboros-network-mock package which contains mock API used for testing +(e.g. a mock chain & chain producer, etc.)
      • ouroboros-network-protocols package which contains implementation of all +(but handshake) mini-protocols, exposes a testlib and contains test +and cddl components.

      This made the dependency tree of network & consensus packages much +cleaner.

    • PR #4169: we described the usage of release branches in CONTRIBUTING.md +doc.

    • PR #4165: we fixed cardano-ping support of NodeToNodeV_10 protocol.

    DeltaQ

    The abstract of the talk:

    An essential step to ensuring that distributed systems are fit for +purpose.

    Distributed systems have become an integral part of our society and +daily lives. We are, both implicitly and explicitly, individually as well as +collectively, placing ever more trust in them.

    Are they worthy of this trust? Our need for them to be ‘fit-for-purpose’ goes +well beyond notions of functional correctness (i.e. never getting the wrong +answer). We need them to deliver the desired outcomes in a timely, robust, +reliable, resilient fashion, at scale and in a sustainable way (both +economically and environmentally).

    This all sounds like a worthy aspiration, but what would be a practical +approach to capturing and reasoning about these issues? How can we ensure that +systems can meet their fit-for-purpose objectives, not just in their design but +as they are deployed, encounter the imperfect world, are scaled to become +economic, and proceed into ongoing maintenance?

    This talk will illustrate how the notions of Outcomes and Quality Attenuation +(as captured by ‘∆Q’) are being used to both frame the necessary notions and +provide a basis for assuring the refinement and reification of such systems, +from initial concept to operational infrastructure.

    You can download the slides from here.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team.
    • Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes
    • cardano-base: The VRF and BLS branchs are still open and in progress
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • We redesigned the library so that MuSig2 lib users don't need to be aware of the underlying secp256k1 library PR#31
    • We are introducing a more granular error handling mechanism PR#33
    • We rethought the API and made it more consistent with the underlying secp256k1 library PR#35

    Mithril

    • The mithril crates in general will be published in crates.io, and we adapted the core library's README PR#616
    • We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information PR#620

    cardano-base

    • We've been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) PR#341
    • SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions PR#344
    • Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus PR#266

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation.

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a presentation about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.

    What did the team achieve this week

    What are the goals of next week

    • Monthly report & review meeting
    • Tie up several loose ends / branches.
    • Resolve Tx validity discussions & PRs.
    • Review cicero PR & try it out.
    + + + + \ No newline at end of file diff --git a/page/8/index.html b/page/8/index.html new file mode 100644 index 0000000000..4ad4aa7459 --- /dev/null +++ b/page/8/index.html @@ -0,0 +1,74 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team prepared a new pre-release distribution 2418.1-pre, which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes to prevent memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet by leveraging the compression of the transaction Merkle tree using sub-Merkle trees based on transaction block ranges during signature and proving. Additionally, they implemented a stream mechanism for importing transactions into the signer and aggregator stores.

    Finally, the team started implementing a global Mithril networks configuration file and continued investigating some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.

    Low level overview

    • Created a pre-release for the new distribution 2418.1-pre
    • Completed the issue Store Block Range Merkle roots in signer and aggregator databases #1633
    • Completed the issue Stream import of Cardano transactions #1646
    • Completed the issue Memory leak in Cardano transactions signature/proof #1629
    • Completed the issue Handle unparsed blocks in Cardano transactions parser #1567
    • Worked on the issue Use Block Range Merkle roots to sign Cardano transactions #1634
    • Worked on the issue Use Block Range Merkle roots to prove Cardano transactions #1635
    • Worked on the issue Use SQLite transactions when inserting Cardano Transactions and Block Range Roots #1656
    • Worked on the issue Add Mithril networks configurations in networks.json #1638
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632

    · One min read
    Carlos LopezDeLara

    2024-04-16 - 2024-04-26

    High level summary

    8.10.1-pre was released to SanchoNet.

    The team continues focused on implementing tests for the Conway era on the cardano-node repository. This sprint the team made various improvements to +CI pipelines on cardano-cli.

    • Cardano-cli: implemented build-estimate to facilitate automatic transaction balancing without access to a live node; and added minFeeRefScriptCostPerByte as an option to create-protocol-parameters-update command.

    cardano-node

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    · 3 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.9.2 is now deployed to mainnet, preprod, preview and +shelley-qa environments.

    • Cardano-node 8.10.1-pre is now deployed to sanchonet and also to one-third of +IOGs preprod environment nodes and two-thirds of IOGs preview environment +nodes.

    • Private chain for Voltaire team was paused with plans for a future respin.

    • The network team's ouroboros-network-ops machine cluster was re-written using +the cardano-parts stack to upgrade from the nixops/terraform/niv stack it was +previously using.

    Lower level summary

    Cardano-parts

    • Sets cardano-node to 8.9.2, dbsync-ng to sancho-4.2.0; mithril to 2412.0, +iohk-nix to include new peerSharing defaults and introduce a new block +producer config. Adds a new truncate-chain recipe and improves mithril +related services. More detail is available in the PR description: +cardano-parts-pull-38

    • Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2; mithril pre (-ng) +to unstable, iohk-nix and iohk-nix-ng pin includes new Cardano Foundation +bootstrap relays. Adds new aws machine management and other recipes, metadata +job support for pool creation, misc fixes and improvements. More detail is +available in the PR description: +cardano-parts-pull-39

    Cardano-mainnet

    • Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new +peerSharing defaults and colmena.nix cluster refactor for peerSharing +adjustments and implements all updates in cardano-parts PR#38. See the PR +description for more details: +cardano-mainnet-pull-12

    • Sets dbsync to 13.2.0.2, iohk-nix and iohk-nix-ng to include new CF relays, +adds new aws machine management recipes and implements all updates in +cardano-parts PR#39. See the PR description for more details: +cardano-mainnet-pull-13

    Cardano-node

    • Default peerSharing true and add block producer config to release binaries. +See the PR description for more details: +cardano-node-pull-5789

    Cardano-ops

    Cardano-perf

    • Adds a caddy webserver for run reviews and tunes the NVME FS mounts for performance: +cardano-perf-compare

    Cardano-playground

    • Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new +peerSharing defaults, refactors mdbook out of docs dir, adds example chain +manipulation doc and implements all updates in cardano-parts PR#38. See the +PR description for more details: +cardano-playground-pull-21

    • Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2, mithril pre (-ng) +to unstable, iohk-nix and iohk-nix-ng to include new CF relays, adds a public +TLS dbsync user connection option, stops private chain cluster and implements +all updates in cardano-parts PR#39. See the PR description for more details: +cardano-playground-pull-22

    Iohk-nix

    • Creates block producer configurations to accomodate PeerSharing set true by default: +iohk-nix-pull-575

    • Adds Cardano Foundation mainnet bootstrap peers: +iohk-nix-pull-578

    Ouroboros-network-ops

    Sanchonet

    Sanchonet-demo

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Ability to specify CostModel for PlutusV3 in the genesis file was implemented, which +will allow us to execute PlutusV3 as soon as we enter Conway era, which is essential +for guardrails script. Important bugs that have been fixed:

    • Invalid reporting of InsufficientCollateral and ValueNotConservedUTxO predicate +failures. In case of validation failure a confusing deserialization was reported instead +of those predicate failures.
    • Calculation of votes for Constitutional Committee Members did not consider expired +members correctly.
    • Useful function redeemerPointer was deprecated without good justification.

    Besides bugfixes there was a lot of work done on the testing side. Constraint based data +generation is receiving continuous improvements. More unit and property tests for Conway +era functionality.

    Low level summary

    Conway

    • pull-4259 - Undeprecate redeemerPointer and expose it in cardano-ledger-api
    • pull-4252 - Add PlutusV3 CostModel to UpgradeConwayPParams
    • pull-4247 - Change the balance in InsufficientCollateral to DeltaCoin
    • pull-4267 - Expand TxAuxData interface
    • pull-4265 - Inline UTxO and UTxOW PredFailure for Conway
    • pull-4281 - Discount expired CC from CC-size calculation
    • pull-4290 - Add NoThunks instance for UTxO pred failures
    • pull-4288 - Fix burning tokens predicate failure

    Testing

    • pull-4241 - Add fixup combinators to ImpTest framework
    • pull-4229 - Shrinking for constrained-generators
    • pull-4244 - Imptests: CommitteeMinSize affects in-flight props
    • pull-4269 - Fix generation bug for sums of positive member spec
    • pull-4266 - Add imptest to propose and enact unknown costmodels
    • pull-4261 - constrained-generators cleanup for hackage
    • pull-4279 - constrained-generators: Fix bug in toPreds for maps + add additional tests
    • pull-4272 - simplify foldMap interface to higher order syntax
    • pull-4283 - constrained-generators: add new test to test suite
    • pull-4286 - constrained-generators: refactor reify to reduce the number of binding sites + delay simplification more to avoid variable capture in higher order syntax

    Infrastructure and releasing

    • pull-4260 - Bump idna from 3.3 to 3.7 in /doc
    • pull-4277 - Fixed formatting in HowToProfileLedger.md
    • pull-4282 - Bump plutus deps to 1.26
    • pull-4294 - Avoid cancelling scheduled CI when a new merge happens on master

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, most of the Mithril team attended the Cardano Buidler Fest #1 in Toulouse, France. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet by compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges. The team identified the source of an issue preventing proper memory release during the signing/proving of a large set of transactions and developed a fix for it. Additionally, they completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network.

    Finally, the team implemented a configurable feature for test networks to log unparsable blocks instead of panicking and investigated some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.

    Low level overview

    • Completed the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue Store Block Range Merkle roots in signer and aggregator databases #1633
    • Worked on the issue Stream import of Cardano transactions #1646
    • Worked on the issue Memory leak in Cardano transactions signature/proof #1629
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    + + + + \ No newline at end of file diff --git a/page/80/index.html b/page/80/index.html new file mode 100644 index 0000000000..ab1462a796 --- /dev/null +++ b/page/80/index.html @@ -0,0 +1,112 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Jared Corduan

    High level summary

    We released CIP-1694, +our proposal for entering the Voltaire phase. +Please come join the discussion, this will be an incredibly exciting transition for +Cardano and we want everyone to participate!

    We now have a sensible way to version all of the serialization schemes used in the ledger. +The draft pull request was polished, reviewed, and merged this week. +This solves many problems that have vexed us since the beginning of the Shelley ledger era.

    Everyone working on the Cardano node is working together to improve our release process, +and the ledger team in particular dedicated one engineer to help with these efforts +for the next release.

    Lower level summary

    The Conway ledger era

    The current proposal in CIP-1694 encompasses two new ledger eras. +The first era will be called Conway, after the English mathematician John Horton Conway. +The community facing aspects of the Conway ledger era will be very minimal, +but it will pave the way for introducing liquid democracy. +The details can be viewed here. +We do not yet have a formal specification for the Conway era. +Our plan is to debut the +formal ledger model. +Briefly, the Conway ledger era will:

    • introduce SPO voting for hard forks (in the spirit of the now abandoned CIP-47)
    • provide an on-chain mechanism for rotating the governance keys
    • re-plumb the ledger rules involving governance to be in line with CIP-1694

    Versioned CBOR

    We now have the ability to easily tie our serialization schemes to the Cardano +major protocol version. +We still aim to preserve backwards compatibility as much as possible, but we now have a principled +plan for resolving problems (see CIP-ledger-cbor). +In particular, we can now address several long standing issues, such as +issue-2444, issue-2965, and issue-3003.

    The final (and massive!) pull request which brought us the versioning is pull-3138.

    Deposit tracking

    The draft pull request which was exploring how best to track individual deposits +is much closer now to being ready to take out of draft (pull-3127). +For background on the issue, see issue-3113. +This is quite an invasive change which effects many of our tests, which we are now addressing.

    Technical debt

    As always, we keep working on technical debt. +We have deduplicated a some things: pull-3129, pull-3162. +We have memoized a problematic computation (though more due diligence is needed before we can +merge): pull-3141.

    Node release

    We have been helping with the node release efforts. See pull-4608.

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version 0.8.1, which includes several fixes and a user-wished extension of the persistence introduced by 0.8.0 of replaying server outputs to make clients like the hydra-tui be aware of the latest hydra-node state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from hydra-poc to hydra!

    What did the team achieve this week

    • Implemented replaying of server outputs to address #580
    • Released version 0.8.1 containing this and other fixes Release notes
    • Worked on the bounded tx validity as one of the on-chain script fixes, but couldnt finish it just yet #615
    • Collaborated with the education team on a Hydra tutorial.
    • Discovered and discussed issues with the seen ledger.
    • Renamed the Hydra repository hydra-poc -> hydra

    What are the goals of next week

    • Create and discuss an ADR about handling tx validity correctly.
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
    • Have a team workshop / hackathon after the summit:
      • Retrospective
      • Roadmapping session
      • Hack on something complex or useful

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks.

    Finally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer.

    Low level overview

    • Released a new Mithril distribution 2246.1
    • Completed the first stage of the store migrations process #562
    • Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes #565
    • Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage #576
    • Prepared a Daedalus synchronization benchmark video with/without Mithril #606
    • Upgraded the Cardano nodes of the testing Mithril networks to 1.35.4 #594
    • Worked on implementing SPO tests nodes on testing Mithril networks #563
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #588
    • Worked on the refactorizaton of the aggregator multi signer engine #398

    · 6 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team started documenting the +implementation of the UTxO HD feature and continued developing tests for it. As +part of our work on UTxO HD, we improved the Haskell support for LMDB. We also +spent time working on the LSM tree prototype, and designed a parameter tuning +algorithm for it. Regarding our work on Genesis, our investigation of the +"plateaus" pointed at the TICKF slowdown on era boundaries as culprit. This +led us to developing a caching strategy that will not only remove the +aforementioned "plateaus", but can help alleviating the growing block production +delay on epoch switch. We also helped reviewing the block forge credential +hotswap feature, which is intended for use in the adoption of P2P.

    We also worked on paying technical debt and fostering collaboration. In +particular, we improved the io-sim framework, which is crucial for testing and +simulating Cardano components. We also removed thunks that appeared on era +translations, and improved our diffusion pipelining feature. We are working on a +presentation for explaining Praos and Genesis.

    High-level status report

    • Finish the UTxO HD prototype: in progress.
      • We added documentation for this feature.
      • We developed the second version of the mempool tests.
      • We fixed benchmarks that were inflating the speedup we observed in the +anti-diff implementation of sequences of differences. Speedups are now in the +range of [3.33, 4.75], which remain significant.
      • We continued improving Haskell LMDB support.
      • We finished implementing a "parameter tuning algorithm" for the LSM tree +prototype. This enables us to run experiments to check the correctness of +the algorithm.
    • Genesis: in progress.
      • Work investigating the "plateaus" in the ChainSync jumping prototype +pointed to the TICKF slowdown on era boundaries as culprit.
    • Tech debt:
      • We improved the capabilities of our io-sim library, which is crucial for +testing and simulating Cardano components.
      • We removed thunks from epoch translations in the ledger.
      • We added Linux CI support for lmdb-simple.
      • We got pending diffusion pipelining improvements merged.
    • Fostering collaboration:
      • We are working on a explanation of Praos and Genesis protocols.
    • Support:
      • Investigation of CSJ "plateaus" led us to developing a caching strategy for +TICKF that will not only remove these "plateaus", but can help alleviating +the growing block production delay on epoch switch.
      • We reviewed the block forge credential hotswapping feature which is intended +for use in the adoption of P2P.

    Workstreams

    Finish the UTxO HD prototype

    We merged PR #4060, which adds a report documenting the UTxO HD +feature, and puts emphasis in explaining how the mempool works in combination +with UTxO HD.

    We opened a draft PR with the second iteration of the property tests for the +mempool (#4076).

    We fixed the Arbitrary instances for keys and values in DiffSeq benchmarks +(#4143). The problem was that we were testing with mostly small +values, which artificially boosted the performance gains we saw on benhcmarks. +Speedups are now in the range of [3.33, 4.75] across the different +configurations.

    Backing store property tests

    We focused on incorporating feedback on the monadic cursor API PR (#1). +This required us to make small tweaks to quickcheck-lockstep to test the new +API. We also updated the backing store property tests to use the new version of +the monadic cursor API.

    LSM tree implementation

    We worked on the LSM tree prototype. In particular: finished implementing a +"parameter tuning algorithm" that adapts the LSM tree design based on factors +like:

    • workload
    • machine specs,
    • and characteristics of the data being stored.

    We are now running experiments to gather results and cross-reference them with +existing experimental results from the LSM tree paper to see if the algorithm is +working correctly.

    Benchmarking the CSJ prototype

    We focused on investigating the "plateaus" in the ChainSync tip, which turned +out to be due to the TICKF bug which we previously were only aware of in the +context of the long forging times near epoch boundaries. For the most drastic +patch by @nfrisby to speed up TICKF, full sync is speeding up by 7%.

    The following plot shows that by caching the TICKF the ChainSync tip and the +VolatileDB tip progress at the same rate.

    The plot below shows the speedup observed by caching the TICKF rule wrt the +baseline.

    Technical debt

    After addressing the PR comments, we merged PR #16, which implements +the MonadCatch instance for STM. This extends the capability of our io-sim +library, which is crucial for testing and simulating Cardano components PR #16 +closed #1461. This new feature was published as version 0.4.0.0 +of io-sim.

    We continued with our work fixing the NoThunk errors required for enabling +nightly tests, with the help of TVarInvariant checks in strict-stm and +nothunks libraries. We proposed fixes in cardano-ledger that took care of +thunks that appeared in era translations (#3143). The fixes will be +integrated back into consensus when cardano-ledger approves and publish the +changes introduced in #3143.

    We added CI support for lmdb-simple (#2). We currently test the build on +a Linux environment only.

    We got pending diffusion pipelining PRs (#3857, #3860, +#3856) merged, after rebasing and addressing feedback.

    Fostering collaboration

    @nfrisby finished a visualisation tool and outlined scripts for the Praos and +Genesis explanation presentations. The idea is to produce a video that gives an +overview of these protocols.

    Support

    We started working on caching the computation of the TICKF rule +(#4054), since this was blocking our benchmarking work for +Genesis. In addition, this issue has the Cardano community quite +concerned, so we are hoping the work done in caching the +computation of the TICKF rule can help alleviating the growing block +production delay on epoch switch.

    We reviewed the block forge credential hotswapping PR #3800 from the +networking team, which is intended for use in the adoption of P2P.

    · One min read
    Jordan Millar
    + + + + \ No newline at end of file diff --git a/page/81/index.html b/page/81/index.html new file mode 100644 index 0000000000..202f7e861e --- /dev/null +++ b/page/81/index.html @@ -0,0 +1,72 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Serge Kosyrev

    High level summary

    1. P2P performance investigation is ongoing, in support of the networking team.
    2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.
    3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.
    4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.
    5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.

    Performance

    We are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.

    Tracing

    We ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.

    Infrastructure

    The first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.

    We designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.

    A number of smaller workbench, data analysis & reporting improvements have been made.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The SECP primitives AC has been met, and the test-vectors PR has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool PR has been merged, and we've adapted the KES secure PR to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (PR#). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork.

    Low level overview

    • With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation.
    • We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool.
    • In parallel, we keep progressing on the KES agent
    • VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification.
    • Our libsodium fork now links directly to upstream libsodium.

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team published together with Obsidian Systems a light paper +on our "Hydra for Payments" project (Link). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of hydra-node processes.

    What did the team achieve this week

    • Published Hydra for Payments light paper (Link)
    • Have a draft RFP ready for a first review internally
    • Answered the internal auditors questions
    • Fixed a bug with following the chain when starting with persistence (#599)
    • Minor improvements to logging for better observability (#598, #600)
    • Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look (#590)

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Close more gaps #452
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET

    · 3 min read
    Jared Corduan

    High level summary

    I am extremely excited to say that we now have a pull request up which introduces our new versioned +CBOR serialization. This was an enormous effort, but it will solve a host of problems that we have +had since the Shelley phase. It will take time to properly review it, and we will +need to put in a lot of effort to integrate it with the downstream components, but this is a huge +milestone. Additionally, we have a new CIP proposing a deprecation cycle for the transaction +serialization schemes.

    We also have a draft pull request that reworks how deposits are tracked. Users of the system will +not notice any difference, but it is a necessary change needed to prepare the way for +decentralizing the governance of Cardano.

    Finally, we continued to address technical debt. In particular, we continued to make progress on +bringing coherency and consistency to the code base with a common naming convention, and +improving some error messages.

    Lower level summary

    • We have a pull request up for our new versioned CBOR serialization. +When we encounter a problem with our deserializers, it can be very difficult to implement a fix. +It is difficult because we can only fix such issues during a hard fork, and leading up to the +hard fork we must maintain two serializations for the same type in order to not cause unintended +network splitting (the problematic version must be used before the hard fork, +and the fixed version is used afterwards). +This can be especially tricky with the FromCBOR typeclass, since it is not always easy to +search for where all the problematic uses are located. +The new versioned CBOR serialization allows us to gracefully handle this transition. +See [pull-3138].
    • We proposed a CIP for backwards compatibility of the transaction serialization schemes. +See [pull-372].
    • We have draft for the new deposit tracking. +This draft is not as memory efficient as the final version will be, +but it is a sufficient proof of concept that we can write property tests against, ensuring +that we have not changed the semantics. +We will optimize after we are sure of the correctness. +See [pull-3127].
    • We now provide better support for debugging failed Plutus scripts in an important helper +function, named evaluateTransactionExecutionUnits. +In particular, it now returns all the information needed to rerun the script with exactly the +same arguments. This feature will end up appearing in the CLI and other tools from the Plutus +tools team. +See [pull-3135].
    • We did a lot more renaming to bring coherency and consistency to the code base. +See [pull-3126], [pull-3120], [pull-3118], and [pull-3116].
    • We have added a few things to the ledger repository to make it conform to the +Cardano Engineering Handbook +See [pull-3139].

    · 2 min read
    Marcin Szamotulski

    High-level summary

    In last sprint we got a performance report of P2P performance testing cluster +(which consists of 50 nodes). There is a performance regression in the header +notification metric. The P2P cluster is constructed with the same +topology as the non-p2p reference one this indicates some regression which +needs to be further investigated. This poses a risk for releasing P2P.

    We also continued to work on peer sharing: pull #4019.

    We continued working on dynamic block production which is required for P2P +release for BP nodes: pull #3159.

    We simplified the P2P topology format: issue #4559, pull #3888.

    We added a new trace point for asynchronous demotions of local peers with +Warning severity. This trace is important for SPOs.

    Detail description

    Performance regression

    Below we include a graph which shows the performance regression of the P2P code base vs non P2P.

    On the x axis is time in seconds which measures the delay from the start of +the slot to when a header was received. The y axis is the percentile of nodes +that received a header. We are currently investigating possible causes of the +regression.

    New P2P topology form

    The new topology file format is described in this issue #4559.

    Tracing improvements

    • We improved a handshake error reporting, pull #4136
    • We added TraceDemoteLocalAsynchronous rendered as DemoteLocalAsynchronous +in json format, pull #4127. Such demotions should be investigated by the +pool operator. They can indicate a problem in the deployed system, but also +they could indicate a remote problem in arranged connections with other SPOs.

    Open Source Improvements

    We improved documentation of io-sim and typed-protocols for open-source +contributors and/or maintenance tasks: pull #22, pull #45, pull #48.

    + + + + \ No newline at end of file diff --git a/page/82/index.html b/page/82/index.html new file mode 100644 index 0000000000..3f10300e61 --- /dev/null +++ b/page/82/index.html @@ -0,0 +1,100 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team first re-deployed the latest Hydra scripts to the re-spun preview network, see 0.8.0 release notes. They also completed implementation of ADR18 and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates #195 and alignment of the specification document with auditors.

    What did the team achieve this week

    • Complete and merge ADR18 #579
    • Re-deploy hydra scripts to respun preview network, see 0.8.0 release notes #595
    • Have first gap of #452 in review.
    • Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.
    • Engineering meeting to discuss hard forks and protocol parameter updates #195
    • Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.
    • Drafted project scope for an external audit RFP.

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Answer the internal auditors questions
    • Have a draft RFP ready for a first review internally
    • Close some gaps #452

    · 2 min read
    Iñigo Querejeta Azurmendi

    This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.

    Low level overview

    • We have been moving forward on the implementation of the release process #500:
      • Setup of the new hosted environments for testing-preview, pre-release-preview and release-preprod with their terraform and GitHub environments #542
      • Adapted the CI workflows to work with the new release process #543
      • Publication of an ADR3
      • Publication of a dev blog post about Mithril networks evolution
      • Releasing our first Mithril distribution 2244.0
    • Worked on the API versioning mechanism #565
    • Worked on the implementation of the stores migration process for the signer and aggregator nodes #562
    • Prepared a Mithril devnet video demo #526
    • Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably #484

    · 2 min read
    Marcin Szamotulski

    High Level Summary

    • We've been working toward publishing Cardano Backlog, currently its in +review by the IOG communication team.
    • We identified a number of libraries which can be published.
    • We setup and enhanced cardano-updates.

    Detailed description

    I am glad to announce that I was given the role of open-source advocate for +cardano project. In last few weeks we were making steps towards publishing our +backlog. It's currently under review by the communication team, although most +of the issues are already visible across various repositories.

    The open-source initiatives have their own +project. It is set up +to help us track our major open-source activities. Right now there are two +work streams:

    We identifies a number of libraries across all the teams which contribute to +Cardano which we would like publish to publish, see the following +link. Arnauld Bailly recently published +quickcheck-dynamic +library on Hackage. The networking team is slowly progressing towards +publishing io-sim and related packages, checkout the progress +here.

    Thanks to Arnaud Bailly our Cardano Updates website has +a new look & feel! It's using docusaurus.io.

    Christian Taylor carried recently a detailed analysis of our open-source +repositories. He collected many interesting metrics, which allows us to see +where we need to improve as an open-source project to make the Cardano project +and many smaller related libraries which we maintain be more open and available +for open-source contributors.

    The graph below shows which documents the 55 most important Cardano +repositories are missing the most: +Documentation Adoption +You can expect we will improve in these metrics in the coming weeks.

    · One min read
    Dorin Solomon

    High level summary

    We made good progress on most of the Action Items we agreed on Lisbon, like:

    • Cardano System Tests was fully open to public (tools, tests, results) +See cardano-node-tests webpage
    • We defined an user-facing-functionality template that is used with the cardano-cli team
      • this includes acceptance criteria & user stories, and definition of done
    • We are in the process of running the cardano-node-tests at commit & PR level in cardano-node (we are affected by the Cicero migration right now but we did most of the work already)
    • We started to apply a labelling convention on cardano-node issues that will be used to generate some visual dashboards with some metrics [TBD]
    • Ziyand Liu started an End-to-End Development and Testing Process for Plutus Features

    · 4 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team continued its work on testing the +UTxO HD prototype. We completed the era-transition and backing store tests, and +the mempool tests are advancing at a steady pace. Regarding our work in the +Genesis design, we continued our collaboration with the research and networking +teams, and we continue investigating strategies for making the chain-sync +jumping prototype faster.

    High-level status report

    • Finish the UTxO HD prototype: on track.
      • We worked on state-machine tests for the mempool, and spotted potential bugs +in the implementation. Investigation is ongoing.
      • We have a set of property tests for the backing store. We still need to +incorporate the improvements to the LMDB cursor API that these tests +made possible.
      • We merged the era-transition tests PR.
    • Genesis: on track.
      • Design work around Genesis continues in collaboration with researchers and +the networking team.
      • We continued trying to improve the performance of the chain-sync jumping +prototype. We gained additional insight on which parameters to tweak next. +In spite of the baseline still being faster, the current prototype already +achieves a significant speedup when compared to the naive approach of simply +running full chain-sync with all peers.
    • Tech debt: on track.
      • We clarified a common source of confusion around VRF tie-breaking and +cross-era chain selection.

    Workstreams

    Finish the UTxO HD prototype

    We continued working on property-tests for the UTxO HD prototype. In particular +we merged the era-transition tests +PR.

    Backing store property tests

    The backing store property tests +PR has been +reviewed. The next steps are:

    • Improve error handling and command generation.
    • Add coverage testing to check that we are not failing to cover interesting +test cases.

    The monadic cursor API +went through its first review round. The API is in a relatively stable state. +This PR also unifies the cborg and serialise-based interfaces to LMDB +operations. The next steps are:

    • Write +quickcheck-dynamic +state-machine tests for this API.
    • Adapt the changes in the serialisation interface in the backing store property +tests. This will involve adding boilerplate code in consensus to make up for +the removal of the cborg-based interface.

    LSM tree implementation

    We worked on the LSM tree +prototype. In +particular, we focused on tuning the LSM tree design to the different workloads +that consensus has (eg syncing, normal node operation, etc).

    Benchmarking the CSJ prototype

    Work on improving the chain-sync jumping performance is ongoing. In particular +we compared the performance of different jump intervals, which, somewhat +surprisingly, do not make a significant difference. In particular, we are seeing +periodic "plateaus" where the chain-sync tip does not progress, but they are +much longer for the prototype. Our hypothesis is that this seem to be due to a +combination of the garbage collector (GC) pauses, and the actual time it takes +the non-dynamo chain-sync peers to jump to the tip of the slot of the dynamo +fragment.

    In the coming weeks we will try to shorten these plateaus via a combination of +tweaking GC options and less synchronisation in the CSJ governor.

    The following plot shows the performance of the chain-sync jumping prototype +using different jumping intervals. It compares the syncing progress by plotting +the slots of adopted blocks against time. The baseline is still faster, however +it is worth noting that the current prototype already achieves a significant +speedup when compared to the naive approach of simply running full chain-sync +with all peers.

    The second plot shows the syncing progress sliced to a chosen ~5min interval, +and includes, in addition to the slots of adopted blocks, the slots of the tip +of the ChainSync fragment. This allows us to see how far ahead of the selected +tip the CS dynamo is, i.e. how much room we have for BlockFetch not to get +stalled. It shows periodic behaviour (due to the forecasting limit), and shows +that the CS fragment tip is not progressing for significant periods +("plateaus").

    Technical debt

    We clarified a +common source of confusion around VRF tie-breaking and cross-era chain +selection. This PR involved correcting potentially misleading names of +VRF-related functions, and providing context for a particular VRF value is +used for tie-breaking.

    + + + + \ No newline at end of file diff --git a/page/83/index.html b/page/83/index.html new file mode 100644 index 0000000000..401ab1b78b --- /dev/null +++ b/page/83/index.html @@ -0,0 +1,66 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Jared Corduan

    High level summary

    We have made the decision to use the +formal ledger repository +in place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure +to the model. In particular, we now have a lot of support for axiomatic set theory. +While the next ledger era is still in the design phase, most of the team remains working +on technical debt. +In particular, we have moved a lot more code out of the Shelley specific modules and into +a ledger core module, we have finished up our benchmarking around the problematic TICKF +ledger transition (while improving the performance), made conveniences to the development +environment, cleaned up all the recent changes to the cost model, added a lot of documentation, +fixed some flaky tests, and deleted some dead code.

    Lower level summary

    Axiomatic Set Theory

    The formal ledger model now has support for much of the set theory that we make use of in +the formal ledger specifications. See [pull-20].

    Completed Technical Debt

    • We have addressed issues with two of our most problematic and flaky tests. +See [pull-3039] and [pull-3093].
    • We have added more documentation and tests to the Twiddler module. This is a module which +makes our CBOR serialization round-trip tests much more robust, and will also hopefully +help enforce the mandate for downstream libraries to never re-serialize data that needs +to be hashed. See [pull-3073] and [pull-3095] +(we cannot merge 3095 just yet, due to a preference for merging other features).
    • We have finished our long analysis of the problematic TICKF transition. +We now have a lot of benchmarks surrounding this code, and have added performance improvements. +See [pull-3068] and [issue-3035].
    • We have restored support for +ghcid +in our repository. This is a tool for developing with Haskell that many of us find greatly +improves our productivity by providing us with constant feedback from the type checker. +See [pull-3112].
    • After much activity on the cost model, we have done some final clean up of the code. +See [pull-3075] and [pull-3101].
    • We moved a lot of the existing user facing documentation regarding native tokens into the +ledger repository, and cleaned it up +(most of the heavy lifting was done by our amazing technical writers). +See [pull-3091].
    • We removed dead code. See [pull-3089].
    • We moved a lot of code from the Shelley specific libraries to the ledger core library. +See [pull-3109] and [pull-3110].
    • We've removed more of the awkward legacy template Haskell names. +See [pull-3108].

    · 2 min read
    Jordan Millar

    2022-11-02 - 2022-11-15

    High level summary

    • Documentation improvments
    • Merged community contributions
    • Exposing types from cardano-api requested by the community/other teamss
    • Test output has been improved so diagnosing failures is now easier
    • Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)
    • Refactoring of cardano-testnet making it more useable as a library (ongoing)
    • Release 1.35.4 was merged & released

    Completed

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    · One min read
    Samuel Leathers

    Node Reelease Update

    2022-10-19 - 2022-11-02

    Executive Summary

    The team is formalizing the new release process and team structure. Both preview/preprod environments have been reset, +a temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8.

    1.35.4 release candidates have been created and are being tested internally and externally.

    Completed

    In Progress

    · One min read
    Dorin Solomon

    High level summary

    We have been focused on:

    • Fully opening our test results (on top of the existing tests & tools):
      See cardano-node-tests webpage.
    • Started to test and automate the new functionalities added in the 1.35.4-rc1 node tag
      See test results tracking page.
    • Made some improvements to the automated db-sync sync tests
      See db-sync tests.
    • Multiple cleanups and updates to the cardano-node-tests framework
    • Updated the nightly pipelines for the cardano-node-tests after the Babbage HF

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team is preparing a release which introduces schema simplifications, removes indexes, +unique and foreign keys. It also provides a way to fix older values and migrates without the need to +resync from genesis.

    Lower level summary

    Schema simplifications

    Indexes, Unique and Foreign keys are removed in order to speedup syncing +#1295 +The same pr also introduces a different way to rollback, which doesn't rely on foreign keys and +indexes.

    Performance

    The DBSync team ran a big number of benchmarks and investigated ways to speedup syncing. A +conservative number of these will be included in the next release and the rest can be found in +performance view.

    Migrations and resyncing

    The next release will be 13.1.0, it will enable a migration without the need to resync. It will also +introduce a procedure that fixes bytes values of Datum and RedeemerData in existing databases +#1294

    Release

    The release has been mostly cherry-picked from master +#1294 and its scope can be seen +release view

    + + + + \ No newline at end of file diff --git a/page/84/index.html b/page/84/index.html new file mode 100644 index 0000000000..c407c1a50d --- /dev/null +++ b/page/84/index.html @@ -0,0 +1,93 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team completed several user experience improvements to the +hydra-tui and hydra-node, and delivered a first version of persisted head +states by publishing release version +0.8.0. +Besides this, they met with researchers on topic of the HeadV1 specification and +kicked-off work on the RFP for an external audit of the Hydra Head protocol and implementation.

    What did the team achieve this week

    • Completed the UX improvements on the hydra-tui
    • Released version 0.8.0, which delivers a first version of persisted head states
    • Met with researchers on the HeadV1 specification
    • Started work on the RFP for our external audit

    What are the goals of next week

    • Complete ADR18 implementation and get it merged
    • Start work on event-sourced persistence #580
    • Have a first plutus script gap closed #452
    • Revamp CI to use flakes and build macos artifacts (stretch goal: migrate to cicero for nix builds)

    · 3 min read
    Marcin Szamotulski

    High-level summary

    The team has focused on debuging & fixing bugs for the P2P single relay release, which included

    • diagnosing, fixing and writing tests for a bug in peer-state-actions which +fortunately hasn't been released;
    • diagnosing & preventing misconfiguration of DNS

    We also focused on developing peer sharing. We also held a session with +the scientists on eclipse evasion.

    Detailed description

    P2P Network Stack

    During the past two weeks the team focused on p2p single relay release and peer +sharing. We found and fixed an important bug recently introduced in one of the +components of p2p networking stack (fortunately never released). Together with +a fix, we designed a unit test diffusion simulation as well as quickcheck +property test (both could reproduce it). We also changed the code in a way that +if such a bug is reintroduced in the future, it will be obvious to diagnose. +For more see:

    Initial benchmarking run of the P2P code was executed. The results where +unlike what we see on the mainnet. We found a possible misconfiguration of the +cluster (caused by 0 TTL on domain names), which could be the direct cause of +it. We wrote a PR which rules out such misconfiguration. We are awaiting on +the next benchmarking results. See more at:

    ouroboros-network#4106

    We also started working on P2P single relay release. The PR +ouroboros-network#4120 +includes 108 patches cherry-picked from the master branch. We started +working toward integration these changes against the release branch of +cardano-node. Early next week we ought to be able to have an early version +of cardano-node with non experimental P2P support!

    For more detailed release plan please see P2P - Single +Relay +issue.

    Consensus

    We identified and fixed missing error reporting in consensus +initialisation phase. See more at +ouroboros-network#4015

    Cardano Node

    We also made changes in cardano-node in order to give better experience for +node operators. This includes updating severities of some of the traces as +well as implementing new format of the p2p topology file. For more see:

    Peer Sharing

    We continued working on implementation of peer sharing. We have an early +implementation which will be reviewed and analysed in next weeks. We started +working on cardano-node integration. We need +PR #4392 to be merged +before such integration will be able to land in cardano-node, although this +is not blocking us currently. See more at:

    Eclipse Evasion

    We held a session which included Alexander Russel, Sandro Coretti-Drayton and +Nick Frisby from the consensus team. We discussed high lever design of the +eclipse evasion scheme, which is important for the design and implementation of +ouroboros-genesis. We got a positive feedback from the researchers.

    IO-Sim

    In this period we made little progress towards releasing IO-Sim on Hackage. +A single PR which added +a few missing instances of the STM monad.

    Open Source

    We made sure the CI runs for PRs which comes from forks (which is important to +accept contributions from 3rd parties).

    Mithril Cardano Integration

    We held initial discussions with Arnaud Bailly about possible path to integrate +mithril to cardano-node and take advantage of the ouroboros-network +diffusion layer.

    · 2 min read
    Serge Kosyrev

    High level summary

    On the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline.

    On the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario.

    Executive summary

    • The new tracing system public release is getting closer, as we're resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale.
    • The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment.
    • The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE.

    · 4 min read
    Michael Fellinger

    High level summary

    The SRE team is heavily working on the Equinix Metal migration, replacing Hydra +with Cicero, and a new version of Spongix.

    Lower level summary

    OpenZiti

    • Work is ongoing on our OpenZiti integration into Bitte in [bitte-zt].
    • CI-World deployment of Darwin CI Ziti service in [ci-world-commit-d40f4d].
    • Multiple issues filed, and a lot of discussion with the OpenZiti developers, +we're making pretty rapid progress thanks to them.
    • Work on getting Equinix baremetal machines integrated into AWS World Bitte +clusters utilizing a Ziti ZTNA network overlay to bridge the networking of +the two environments and get IAM extension to Equinix machine for Nomad +client onboarding.
    • A Nix Flake for most of our OpenZiti dependencies including the Console, +Controller, Edge Tunnel, and Router is now at [openziti-bins].
    • The Flake also includes a WiP NixOS modules for these components.
    • Tested Ziti Desktop Edge official app for Darwin x86_64 w/ GUI -- works with +no issues seen so far
    • Moved the console to traefik routing service (zac.$DOMAIN) and +controller/edge router stay at zt.$DOMAIN, but have registered consul +services

    Cicero & Tullia Integrations

    Cicero & Tullia Features

    • Improvements to Tullia task aggregation to make [cardano-addresses] build +correctly.
    • Better tullia CUE lib default for tags [tullia-commit-4df3c5d].
    • Put cache.nixos.org back in cache.iog.io's upstreams. This is now +considered a public cache again, and without it some Cicero evaluations had +to build huge packages.
    • Started working on a flake-parts module for Tullia.
    • Started working on cutting down Tullia task build time by putting facts in +JSON files.
    • Fixed running into kernel arg limit by reading tullia's DAG from a file
    • Merged [tullia-pull-9] that fixes several issues related to error reporting. +and escaping.
    • Added Mac builders in Cicero on CI-World.
    • Started work on Tullia invocation caching.

    Spongix

    • A lot of progress on an SQlite backed version of Spongix, it already supports +the full HTTP binary cache protocol but still lacks comprehensive testing and +some tuning, as well as recursive lookups.
    • First steps in the implementation of the nix-daemon ssh-ng protocol so +Spongix can be used via SSH and we can get rid of basic auth.

    Bugs

    • Discovered Cicero bug where Nomad reschedules cause the Github commit status +to get stuck in pending
    • Discovered Cicero race condition bug around concurrent transactions for +codependent actions.
    • Fixed tullia task order bug in [cardano-addresses]
    • Diagnose Cicero action not triggered in [abcirdc]
    • Fixed meta/description of the Tullia package in [tullia-pull-7]
    • Add Vault token loop alerts in [bitte-cells-pull-40]
    • Ongoing investigation on recurring Patroni and nomad-follower issues related +to token rotation.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to +meeting the acceptance criteria in cardano-base, +which lacks some editorial comments on the style of dQuandrant's PR, the inclusion of one additional test, and +we are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution, +but also progressing on the implementation.

    Low level overview

    SECP built-ins

    • (missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in PR 313
    • CIP-0049 was addressed in the editors meeting, and PR 250 was merged
    • The unit-tests PR 320 is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.

    KES agent

    • We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them.
    • We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s).
    + + + + \ No newline at end of file diff --git a/page/85/index.html b/page/85/index.html new file mode 100644 index 0000000000..1237d97b06 --- /dev/null +++ b/page/85/index.html @@ -0,0 +1,100 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team reviewed and addressed several open comments on the +new HeadV1 specification, completing a list the of identified gaps between +specification and implementation while doing so. In the wake of the recent +demonstration of SundaeSwap running their DEX in a Hydra Head, they met with +them to capture feature ideas & incorporate their feedback on the roadmap, as +well as potential research avenues.

    What did the team achieve this week

    What are the goals of next week

    • Complete the last two items required for a version 0.8.0.
    • Cut the next release, version 0.8.0
    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Have the CI build macos artifacts

    · 2 min read
    Jordan Millar

    2022-10-19 - 2022-11-01

    High level summary

    This sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node's mempool for the following information:

    • Ask the node about the current mempool's capacity and sizes
    • Request the next transaction from the mempool's current list
    • Query if a particular transaction exists in the mempool

    Outside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric tx_submit_fail_count has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:

    • Documentation improvments
    • Release 1.35.4 was merged & released
    • Exported various types from cardano-api that were requested by community members

    Completed

    cardano-cli

    cardano-api

    cardano-submit-api

    cardano-node

    cardano-testnet

    • None

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    · 4 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team worked on adding property test for +different aspects of the UTxO HD prototype: era transitions, mempool, and +backing store. Thanks to these tests we were able to uncover a bug in the +prototype. On the Genesis front, we benchmarked a different version of the +ChainSync jumping prototype to try to improve its performance, but this did not +result in any noticeable speedup.

    High-level status report

    • Finish the UTxO HD prototype: on track.
      • We focused on increasing test coverage for the UTxO-HD prototype:
        • We started implementing Cadano-eras transition property-tests.
        • We started implementing state-machine property-tests for the mempool.
        • We merged the mempool rewrite.
        • We started working on state-machine tests for the backing store. This +uncovered a bug in the range-read implementation of the LMDB backing +store.
    • Genesis: on track.
      • We benchmarked a version of the Genesis ChainSync Jumping prototype that +spreads out the ChainSync updates over a longer period of time. This did not +result in any noticeable speedup.
      • We investigated the overhead introduced by non-ChainSync components, but no +conclusions could be drawn from the benchmarks we ran.

    Workstreams

    Finish the UTxO HD prototype

    We focused on increasing test coverage for the UTxO HD prototype. We also merged +the mempool +rewrite.

    Era transition property tests

    We started implementing Cardano era transition property +tests, +which are needed for making sure that the ledger tables get updated in the +right way when we move from one era to the next. There are at the moment two +important transitions.

    • Byron to Shelley: where all the UTxO is transferred from in-memory Byron +state (which has no tables) to the ledger tables of the Shelley state.
    • Shelley to Allegra: where the AVVM addresses must be deleted.

    We have tests for the Byron to Shelley transitions. We are working on adding +the remaining ones.

    Mempool state-machine tests

    We started implementing state-machine property tests for the +mempool. +The mempool is currently tested via pure property tests, and use a ledger +state without tables. With the introduction of UTxO HD, testing the concurrent +behavior of the mempool became of crucial importance (eg now we have to +acquire locks to flush the backing store). In addition, we need to test a +ledger state with tables. These needs led to the creation of a new set of +property tests. In particular we aim to run parallel state-machine tests that +exercise the mempool in a way similar to how the node would make use of it.

    Backing store property tests

    We started working on state-machine tests for the backing +store that UTxO +HD uses. The property tests uncovered errors in the range-reads implementation +of the LMDB backing store. To facilitate fixing this bug, we made +changes to the Haskell +LMDB bindings.

    Benchmarking the CSJ prototype

    Prompted by previous benchmarks showing significant improvements in sync time by +using more capabilities, we implemented a way to spread out the ChainSync +updates over a larger period instead of firing them all at the same time. This +didn't result in a noticeable speedup.

    We also benchmarked the prototype with CSJ disabled (such that just the dynamo +peer is running ChainSync, but e.g. BlockFetch still sees all peers) to rule +out/confirm overhead by non-ChainSync (mainly BlockFetch) related components. +This results in era-specific behavior (speed is like the prototype in Byron, but +like the baseline in Shelley). This deserves a closer look in the future.

    This diagram shows the respective syncing progress, starting at Genesis and +continuing a good part into Shelley (with the dashed line indicating the +Byron-to-Shelley transition).

    • Red: baseline
    • Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps.
    • Blue: like Green, jumps are spread out.
    • Orange: variant with no jumping, to measure unrelated overhead.

    · 2 min read
    Sebastian Nagel

    High level summary

    This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the hydra-node over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks "past the opening of a Head". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.

    What did the team achieve this week

    • Last week we thought we were done with ADR18, but were not ...
    • ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.
    • Implemented a first version for persistence #187 in response.
    • Enhanced CI to publish test results on our website
    • Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!
    • Pulled static executable feature #200 into scope, implemented it and merged it!
    • Received and read through a project proposal by a vendor (building a Hydra platform).

    What are the goals of next week

    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Cut the next release, version 0.8.0
    • Address open comments on specification document & complete the list of identified gaps between specification and implementation #452
    • Have the CI build macos artifacts

    · 3 min read
    Jared Corduan

    High level summary

    The ledger team is still primarily focused on addressing +technical +debt. +We now have the infrastructure for versioning our serialization schemes, +which we continue to put into action. +We have made first steps towards getting proper support for the +formal ledger repository +(in particular, we've added nix builds and +continuous integration support). +We are wrapping up an investigation of the performance of a critical +function used by the consensus layer for leader checks. +Finally, we are improving the packaging and versioning of our code.

    Lower level summary

    Completed Technical Debt

    • Because the Shelley ledger era was a complete re-write of the Byron ledger era, a lot of +our code lives in the cardano-ledger-shelley package, though with hindsight we can say that +much of it should live in cardano-ledger-core. +We continue to move things to cardano-ledger-core, and have much more to come. [pull-3059]
    • We now have the infrastructure to support versioned serialization schemes. +The inability to do this has caused us a lot difficulties, +such as [issue-3003], [issue-2965] and [issue-2444]. +We are still in the process of switching to the versioned serialization scheme +(such as [pull-3078]), +but the infrastructure was completed in [pull-3063].
    • We now have proper nix and CI support for the formal ledger project. [pull-19]
    • A separate team is helping bring support for +CHaP +to all the cardano-node repositories. +We have been helping out with this effort.
    • A separate team continues working on upgrading all the +cardano-node repositories to work with ghc 9.2.4. +We have been helping out with this effort.

    In-progress Technical Debt

    We also have several fairly large pull-requests in review +that we are working on.

    • In an on-going attempt to build out a more user-friendly API, +we continue to remove HasField instances in place of using micro-lenses. +The protocol parameters, in particular, are being worked on. [pull-3045]
    • We are also renaming record fields to be consistent across the repository. [pull-3062]
    • We are now cleaning up all the work we did to understand the performance +of the TICKF transition. We have some improvements to the computatation +as well. [pull-3068]
    • We are adding more documentation, in particular to our Twiddler functionality. [pull-3073]
    • The formal ledger is adding support for finite set theory. [pull-20]
    + + + + \ No newline at end of file diff --git a/page/86/index.html b/page/86/index.html new file mode 100644 index 0000000000..9d99c457ab --- /dev/null +++ b/page/86/index.html @@ -0,0 +1,130 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team worked on improving the +performance of the ChainSync jumping logic, which is needed for Genesis. We also +rewrote the implementation of the mempool in the UTxO HD prototype which solved +the issues that prevented us from running system level benchmarks. Also on the +UTxO HD front, we have an improved implementation of the sequence-of-differences +(a crucial piece of UTxO HD), and we also elaborated a test sign-off list for +the UTxO HD feature.

    Executive summary

    • With the latest implementation of ChainSync jumping we are closer to the +baseline performance. In particular, the prototype seems to benefit from the +extra concurrency provided by additional capabilities.
    • We rewrote the implementation of the mempool in the UTxO HD prototype. This +rewrite was required due to performance problems we observed when running the +workbench. +These performance problems prevented us from running system level benchmarks. +The rewrite solved these issues. After the UTxO-HD: mempool +rewrite PR is +merged, we will contact the Benchmarking team so that they run the system +level benchmarks.
    • The implementation of sequences of differences based on anti-diffs was +integrated into the UTxO HD prototype. It is pending +review and +we also need to run replay and syncing benchmarks to confirm that this will +deliver a performance improvement, as observed in our micro-benchmarks.
    • The UTxO HD prototype +inspection +resulted in a list of +tests +needed for consensus to consider the UTxO HD prototype as fully tested.

    Additional information

    Genesis

    Benchmarking setup: 50MBit/s, 50ms latency

    • Red: baseline
    • Green: Current CSJ prototype, 10 peers, jumps every 3000/f slots.

    As ChainSync Jumping involves many concurrent network operations at every jump, +we tried to run the node with 6 instead of the default 2 capabilties.

    • Orange: baseline with 6 capabilities
    • Blue: CSJ prototype with 6 capabilities

    This diagram shows the respective syncing progress, starting at Genesis and +continuing a good part into Shelley (with the dashed line indicating the +Byron-to-Shelley transition).

    Further work includes whether we can tune the prototype to better handle few +capabilities, or to adapt the default number of capabilities (potentially just +while syncing).

    · 2 min read
    Kostas Dermentzis

    DBSync Update

    Fast restarts

    We fixed a long overdue issue in db-sync which caused long delays on restarts +1266. This has been +one of db-sync main objectives for this period. Restarts are now very fast, +because db-sync deletes almost nothing from the db, it just replays the ledger rules until it +reaches the tip of the db. The fix also improves reconnection speed, in cases where the node +restarts or the connection is temporarily lost. It also speeds up even more in cases where due to a +deployment mess up a very old snapshot or no snapshot at all is used.

    Property based testing

    We added stateful property based testing, using quickcheck-state-machine +1269. These tests use empty or +almost empty blocks to test the new behaviour of restarts and rollbacks.

    These tests generate arbitrarily a list of symbolic commands from these:

    RollForward Int
    RollBack BlockNo
    StopDBSync
    StartDBSync
    RestartNode
    AssertBlockNo BlockNo

    The commands are translated into real commands. For example RollForward Int will forge a new block +that fits on the current chain. These real commands are executed against db-sync using the mock +chain-sync server. The symbolic commands are executed against a vesy simplistic Model of db-sync +which looks like this:

      Model
    { serverTip :: BlockNo
    , dbSyncTip :: BlockNo
    , dbSynsIsOn :: Bool
    , dbSynsHasSynced :: Bool
    }

    Finally a number of postconditions are checked, related to the eventual block number of db-sync.

    Tech Debt

    We handled a number of tech debt in +1275 +This improves the code format of db-sync, deletes many queries that were never used and groups the +others. This tech debt resolution not only improves the experience of working in db-sync, but can +facilitate some of our other objectives, as it makes it very explicit which queries are used +during syncing and which indexes are necessary.

    Smash

    We worked on fixing an issue related to fetching pool metadata +1276. +The issue which is described in +1270

    · One min read
    Jordan Millar

    Node-Api-Cli Update

    2022-10-04 - 2022-10-18

    Executive Summary

    The majority of the team's time was spent between getting 1.34.4 ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to cardano-cli.

    Completed

    cardano-cli

    cardano-api

    cardano-node

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    · 3 min read
    Jared Corduan

    Ledger Update

    We have continued focusing nearly entirely on addressing technical debt. +A lot of design work has begun for the next ledger era, +but we do not yet have anything concrete to share.

    Technical debt issues completed

    • [issue-1676][pull-2992] We have finally removed the ledger dependency on the +cardano-prelude package. It was barely used in the ledger repository, and it added a dependency +that we did not want to maintain. It was a bit difficult to remove, and we had +to coordinate removing it from cardano-base. +A lot ended up going into pull-2992, due to the coordination effort, and we ended +up updating Plutus as well. +This means that we've now also made a lot of progress on the problematic cost model serialization +issues described in issue-2902. +In particular, after we resolve issue-3014, we will not have to wait an epoch before +releasing a cost model for a new version of Plutus, as we had to do for the Vasil HF.
    • [issue-3046][pull-3055] We moved a module that is now only used in Byron to a Byron package.
    • [issue-3047][pull-3054] We improved the interface to the Value (multi-asset) type.
    • [pull-3044] We debugged and fixed a tricky compilation issue. Certain kinds of field updates +were adding approximately 20 minutes to our compile time!
    • [issue-2932][pull-3036] As a part of our ongoing re-organization of the codebase, we +have added a Cardano.Ledger.[Era].Core module to each ledger era that has a TxBody class. +Most classes defined in the era should go in this new module. +We also re-export the Cardno.Ledger.Core module and the previous Cardano.Ledger.[Era].Core +modules from each era.

    Technical debt in progress

    • [issue-3034][issue-3035][node-issue-4421] We are continuing to write benchmarks to understand exactly where +all the time is being spent on executing the TICKF transition. +The consolidation of the per-stake-credential stake distribution to the per-stake-pool +distribution does seem to account for a large amount of time (near a second as written, which we +have down to about half a second with some optimizations), +but this does not account for everything. +Applying the reward update may also be a big contributing factor.
    • [pull-3033][pull-3038][pull-3041] A separate team is working on upgrading all the +cardano-node repositories to work with ghc 9.2.4. We have been helping out with this effort.
    • The nix scripts used to build our new +formal ledger model +do not work consistently for everyone, and we have been working on fixing these issues.
    • [issue-3014] We are still working on adding a versioning scheme to all of the ledger +serializers.

    · 3 min read
    Marcin Szamotulski

    Network Update

    Ouroboros Network

    Ouroboros Consensus

    • Recently we found out that the consensus does not log exceptions thrown during +intiialisation. This was fixed in +PR input-output-hk/ouroboros-network#4015 +As part of this pull request we also changed that all exceptions rethrown by +the connection handler thread are wrapped in ExceptionInHandler.

    Some older items, which were not announced

    • We identified and fixed an issue related to socket activation (socket options +where not set for sockets passed through socket activation). +PR input-output-hk/cardano-node#3979 +This fix will be released in the next cardano-node release.

    Cardano Node

    • We extended the NixOs service module so that one can modify socketPath, +runtimeDir, databasePath, traceSocketPathAccept, +traceSocketPathConnect and stateDir options. +PR input-output-hk/cardano-node#4196

    IO-Sim

    We resolved a number of issues before release of io-sim on hackage:

    See PR #24.

    We also improved experience for contributors of io-sim and typed-protocols by adding issue templates:

    Typed Protocols

    Input Endorsers Simulation

    New features include:

    • Histograms of block arrival frequency, for both network (inbound) and CPU +(block validation). This is interesting to check that we're not overloading +the CPU block validation capacity, or network link capacity. Or alternatively +to observe the behaviour in an overload situation if we set the block +generation rate high enough.

    • Pie chart of utilisation of TCP links. This shows how small a fraction of +links are being used at any one time, and shows that once the system "warms +up" and is operating stably, most block delivery is ballistic.

    • Showing off the new screen layout combinators, that let us put multiple +charts, titles etc on screen at once and scale them to whatever screen or +video resolution we like without having to tweak numbers (this example is +scaled to fit 1080HD video resolution).

    + + + + \ No newline at end of file diff --git a/page/87/index.html b/page/87/index.html new file mode 100644 index 0000000000..e6af83bab0 --- /dev/null +++ b/page/87/index.html @@ -0,0 +1,230 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 4 min read
    Damian Nadales
    • We proposed a fix for the performance degradation observed when running +distributed multi-node benchmarks in the UTxO HD feature branch. While this +fixed the problems observed when running local benchmarks, it broke the +ThreadNet tests due to concurrency issues. Therefore, we think it is wise to +start redesigning the UTxO HD mempool integration.
    • We did several rounds of code review on the alternative implementation of +diff-sequences required by the UTxO HD feature based on the idea of +anti-diffs. This alternative implementation is close to being merged, and the +next step is to integrate this to the UTxO HD branch, so that we can run +ad-hoc replaying and syncing from scratch benchmarks and compare these with +the baseline. The micro-benchmarks we elaborated for the alternative +implementation show speedups of up to 4x, so we are optimistic about the +performance of replaying and syncing from scratch benchmarks, however it is +important to notice that due to the nature of UTxO HD we will still be +slower than the baseline.
    • The final draft of the Genesis implementation specification is ready for +review.
    • We implemented a prototype for the happy path of Genesis' ChainSync Jumping +(CSJ). The prototype is slower than the baseline, however it is not the latest +version of the prototype and the jump interval is very small.
    • Work on integrating Conway has stopped since +priorities have changed.
    • We started work on benchmarking epoch-boundaries and epoch overhead +pr-4014. To this end, we made use of a modified version of our +db-analyser tool. We ran the new benchmarking setup using the Cardano +mainnet chain, and we can see that block tick and application take +substantially longer at epoch boundaries, although there are a couple of slots +during an epoch in which these computations take more than normal. We notified +the ledger team about these findings. We will use this modified version of +db-analyser to investigate the epoch overhead.

    Workstreams

    UTxO HD

    • Spent quite some time investigating the root cause of the degradation in +performance observed in the benchmarks. We run the make forge-stress +benchmarks locally in order to debug this behavior.

      • Transaction batching doesn't make a notable difference in the outcome +(considering we are using the in-memory backend).

      • The mempool batching implementation required asynchronous transaction +validation which is a violation of the LocalTxSubmission protocol +contract and therefore if we continued on that route, the impact would +have been quite big.

      • The STM logic we implemented by using a TMVar for the mempool internal +state was buggy and under certain circumstances it seemed to lock. +Reverting the mempool internal state to be stored in a TVar seems to +solve this problem.

      • The results we get after this change look almost identical to the ones +from the baseline.

    • The anti-diff prototype (PR +#3997) has +been reviewed and is close to being merged.

      • A follow-up issue (issue +#4010) +to integrate the anti-diff prototype in the various consensus packages +was created. A first version of the integration exists, and all tests +pass. A next step is to get some indication of the "real" performance gain +by profiling db-analyser (or cardano-node).

    Genesis

    • Final draft of the Genesis implementation specification, now up for review.

    • Local benchmark setup for parameter tuning via the happy path ChainSync +Jumping (CSJ) prototype (Issue 3987).

      • Context: Our Genesis design requires us to check in with a large (~20) +number of servers periodically while syncing. These servers are offered +jump requests via the ChainSync protocol (hence the name), which they can +accept or decline. If a peer declines, the Genesis rule allows us to +determine whether a node actually has a better chain.

      • The "happy path" is when no peer declines a jump. We want this to have +close to no overhead compared to status quo, i.e. syncing without Genesis.

      • We implemented a prototype for this happy path, and are now starting to +test in various configurations (number of peers, latency, bandwidth) to +tune the performance of ChainSync jumping, i.e. how complicated our logic +of choosing when to jump needs to be.

        Example:

      • Simulated connection: 50 MBit/s, 50ms latency

      • Jump interval: 3000 slots (on the low end, could be increased to up to +3k/f)

      • Red: baseline (1.35.3), one peer in topology file

      • Blue: Preliminary version of our prototype, with 10 peers.

        It is slower by about ~30%, but it is not the latest version of the +prototype, and the jump interval is very small, making CSJ more of a +bottleneck.

    Technical debt

    • Fix flakiness in ChainDB QSM tests (PR 3990).

    · 2 min read
    Kostas Dermentzis

    DBSync Update

    New Tag

    We created a new db-sync tag 13.0.5 which addresses shortcomings of the last +release 13.0.4. It is currently under testing. +The Changelog is +here and in more details:

    • We fixed fees for tx with phase 2 failure that didn't include a total collateral field. +1248

    • We fixed an issue that could cause db-sync to crash if a specific rollback occured. +1247

    • DBSync will now avoid reserialising data, especially Datums, which not only slows down db-sync but +could result in the wrong CBOR encoding being inserted. +1217

    • All the fixes above come with unit tests which validates the fix.

    • Added support for preprod and preview from docker. DBSync no longer needs to include the configs +for different networks, these are directly fetched from the cardano world. +1254

    • We added better support from docker for the new disable options and the overall documentation. +1260

    All the above were also backported to the master branch

    Open source

    We made the db-sync board public, so +everyone can have access on the issues we prioritise. +We also added new tasks to the board, some of them could be approachable to newcomers or people who +want to contribute.

    Progress on tech debt and new features

    • 1223 was merged, which removes the +foreign keys from the db schema. This opens the road to a number of optimizations.

    • An additional fix on top of the previous work was added +1250

    • An initial version where DBSync does not rollback on restart is done here +1266. +This allows db-sync to restart much faster, without the need to delete data and reinsert them. In +the future it can also facilitate migrations in cases where the ledger snapshots have a breaking +change, without the need to resync everything from genesis.

    · 2 min read
    Jared Corduan

    Ledger Update

    We have been focused nearly entirely on addressing technical debt.

    • We introduced more consistent naming across eras, this time for the auxiliary data. +See 3032.
    • We made clear how the consumed functions differs between eras (which was a previous source of +confusion), and added some related support to the fledgling ledger API. +See 3016.
    • We added clarity and organizational consistency to the main ledger era type synonyms. +See 3017.
    • We removed code duplication related to the input data hashes. +See 3018.
    • We split up a large module into smaller components. The large module was actually causing our +CI to time out. +See 3020.
    • We cleaned up stale information in our cabal files, and upgraded cabal 3.8. +See 3023, +3031, +and 3028.
    • We made consistent, standalone TxOut (transaction output) modules for every era. +See 3024.
    • We brought consistency to a maddening inconsistent use of type variables indicating the specific +choice of cryptographic primitives. In particular, all uses of crypto have been renamed to c. +See 3027.
    • We did a clean up of the types in the Alonzo era. In particular, we switched to more parametric +types that will compose better in the future and which simplifies the constraints. +See 3029.
    • We consolidated some existing fragmented logic regarding how we gather the scripts needed for a +given transaction. This is a much needed cleanup to prevent future mistakes. +See 3019.
    • We fixed a problem with our generators that was causing a fair number of our property tests to +fail in CI. +See 3039.
    • We have started the work to update Plutus. This will bring support for SECP in the next major +protocol version, and also address a +problem +that we current have evolving the cost models. +See 3030.
    • We addressed a small issue that came up when integrating the conway era downstream, namely +the lack of some serialization instances. +See 3022.

    · 2 min read
    Jared Corduan

    Ledger Update

    Since finishing up support for the Vasil Hardfork, the ledger team has been +focused on two main things: a new ledger era and technical debt.

    New minimal ledger era

    We have implemented a new ledger era named conway which is nearly identical +to the babbage era. This has been the first time that we have been able to see +what a minimal ledger era looks like. We have finished this task, modulo any +integration issues that might come up. The only thing that the conway era +does differently from the babbage era is provide support for rotating +the master keys using the hardfork combinator's state translation. +We may end up adding features to the conway era, but it is a nice exercise +seeing what it looks like to get a minimal ledger era supported in all the +downstream components.

    Addressing technical debt

    We have been addressing technical debt, mostly in an effort to make the +repository a more friendly code base to work in.

    • We have begun work on a ledger API, called cardano-ledger-api.
    • We have done a big re-design of the major type classes used in the ledger. +With hindsight on our side, we now have something much more organized and +easier to use.
    • We have done a lot of re-naming. The names across eras are now much more +uniform, avoid certain confusions that plagued us, and are clearer in where +they are from.
    • We have reduced a lot of code duplication that could lead to bugs if you +do not have the whole code base in your head.
    • We have added a handful of performance improvements.
    • We added type safety in a number of locations. In particular, the type of +values that can be minted in a transaction no longer allow for Lovelace +in the type, and some functions which used to handle both timelock scripts +and plutus script now correctly enoforce at the type level that only one of +them can be used.
    • We made our generators so that they now produce a much richer set of +valid serializations. There is room within CBOR to serialize the same +data structure in multiple ways, and it is helpful to have the generators +use a wide variety.
    • We have begun re-organizing our test suites.

    · 9 min read
    Damian Nadales

    Executive summary

    • We did most of the heavy lifting required to integrate the Conway era.
    • We have property tests for the UTxO HD backing store API implementations. A +possible bug was identified. Work is ongoing to make sure the property-tests +cover all the relevant cases.
    • We implemented and benchmarked the "anti-diff" prototype to speed up the UTxO +HD functionality. Results show a rough speedup of 4x to 5.5x across +several scenarios. Note that: "Data reported by tasty-bench is only of +indicative and comparative significance.". +We are investigating additional performance improvements. The "anti-diff" +prototype and benchmarks are still pending code review.
    • We elaborated a draft specification for the Genesis implementation and +ChainSync jumping optimization.

    Workstreams

    Conway

    • Integration PR of the minimal Conway era (Issue #3963, PR +#3971).
    • Discussions with Ledger revealed possible sources of confusion about which +data should be changed in the Conway era. As a result, a new technical debt +issue was raised, which does not block the integration of the Conway era +(Issue #3976).

    UTxO HD

    • Issue #3954, branch: The functionality of a +backing store, which is the interface to the on-disk part of ledger state in +UTxO-HD, is tested at a high level through the OnDisk tests. However, some +functionalities remain untested, e.g., reads of ranges of keys. As such, we +have implemented quickcheck-state-machine tests that exercise backing stores +directly. The tests are reusable for different backing store implementations +because the tests are implementation-agnostic: Any backing store that conforms +to the backing store interface can be plugged into the tests. Work is still +ongoing to label/monitor the tests, such that we can verify that interesting +cases are being tested. Furthermore, a possible bug has been identified in the +LMDB backing store with respect to range reads, though the bug has not been +resolved yet.

    • Issue #3946, branch, PR #3882: The +"anti-diff" prototype proposes an alternative approach to keeping track of +sequences (more specifically, FingerTrees) of diffs. These diff sequences +are a component of the in-memory parts of the ledger state in UTxO-HD. Since +the consensus code often requires the cumulative diff of a sequence of diffs, +the current implementation "caches" cumulative diffs of each subtree in the +diff sequence. This caching allows relatively fast reconstruction of the total +cumulative diff, but this caching proved to incur a non-negligible cost: when +we manipulate diff sequences through splits and appends, we force re-computing +a logarithmic number of caches. This is problematic, since we often split and +append in consensus: we split when we flush diffs to a backing store or when +we roll back blocks, and we append when pushing blocks. The new approach +should reduce the overhead of this caching.

      We implemented micro-benchmarks for the "anti-diff" prototype: we +first generate a sequence of commands (Forward, Push, Flush, or +Rollback) through a simulation, after which we measure the performance of +applying the commands to a diff sequence. In this context, Forward means +forwarding of values through a diff, whereas Rollback means switching to +a different fork by rolling back diffs/blocks and pushing new ones. +Moreover, we compare the performance for the two implementations: the +"legacy" approach, and the anti-diff approach.

      Some preliminary results were positive, but we needed to revisit the +benchmark's configuration to obtain more definitive results. After a +discussion with @dcoutts and the consensus team about this configuration +(e.g., number of commands generated, choice of the security parameter k), +the benchmarks should now be closer to the realistic setting. The following +configuration specifies the default configuration that is used in the +benchmarking code:

      • Number of commands generated: 10_000
      • Security parameter k: 2160
      • Number of initial backing values: 100
      • Number of key-value pairs deleted by a push: 50
      • Number of key-value pairs inserted by a push: 50
      • Number of key-value pairs forwarded by a forward: 50
      • Probability of a large (in the range [1000, 2000]) rollback: 0.05
      • Probability of a small (in the range [1, 10]) rollback: 0.95
      • Order of commands:
        • An equal number of forward and pushes.
        • 1 flush every 10 pushes.
        • 1 rollback every 100 pushes

      Moreover, we run four benchmark scenarios:

      • Default configuration
      • Without rollbacks
      • With only small rollbacks
      • Without rollbacks, larger flushes (1 flush every 100 pushes)

      How to read results

      Note: this section uses documentation from the +tasty-bench package to +explain how to read the results of running our benchmarks.

      Running a benchmark scenario gives us the following (curated) output:

      ...
      AntiDiff: OK (18.27s)
      2.527 s ± 47 ms, 2.1 GB allocated, 544 MB copied, 2.2 GB peak memory, 0.23x
      LegacyDiff: OK (32.73s)
      10.829 s ± 148 ms, 6.8 GB allocated, 2.3 GB copied, 2.2 GB peak memory
      ...

      The output says that the first benchmark, which exercises the anti-diff +prototype, was repeatedly executed for 18.27 seconds (wall-clock time), +its predicted mean CPU time was 2.527 seconds and means of individual +samples do not often diverge from it further than ± 47 milliseconds +(double standard deviation). We also configure the RTS to collect GC +statistics, which enables tasty-bench to estimate and report memory usage. +This data is reported as per RTSStats fields: allocated_bytes, +copied_bytes and max_mem_in_use_bytes. So, the output of the first +benchmark says that a total of 2.1 GB of memory was allocated, that a +total of 544 MB of memory were copied, and that the peak memory in usage +was 2.2 GB. We read the output for the second benchmark in the same way.

      Furthermore, the benchmark compares the mean CPU times for +both the anti-diff and legacy approaches: In this case, the mean CPU time +for the anti-diff approach is ~0.23x the mean CPU time for the legacy +approach. Conversely, the mean CPU time for the legacy approach is +1 / 0.23 ~= 4.35x the mean CPU time for the anti-diff approach. We will +call 0.23x the improvement factor. We will call 4.35x the speedup.

      Note that these improvement factors (and reported results) are subject to +noise, randomness, the specific configuration parameters, and the whims +of statistics. Data reported by tasty-bench is only of indicative and +comparative significance.

      Results

      For each of the 4 scenarios, we list the results of running the anti-diff and +legacy approaches 5 times. We run the benchmarks 5 times to get an indication +of whether the results are similar across multiple runs. Furthermore, we +calculate the accompanying ranges (if applicable) of improvement factors and +speedups.

      Note also the decrease in total bytes allocated and total bytes copied for +the anti-diff approach compared to the legacy approach.

      Default configuration

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff2.533 s (0.23x)4.7 ms2.1 GB557 MB2.4 GB
      Run 1: LegacyDiff10.792 s162 ms6.8 GB2.3 GB2.4 GB
      Run 2: AntiDiff2.508 s (0.23x)245 ms2.1 GB515 MB2.2 GB
      Run 2: LegacyDiff10.850 s30 ms6.9 GB2.3 GB2.2 GB
      Run 3: AntiDiff2.562 s (0.23x)5.0 ms2.1 GB552 MB2.2 GB
      Run 3: LegacyDiff10.993 s149 ms6.9 GB2.3 GB2.2 GB
      Run 4: AntiDiff2.168 s (0.22x)5.3 ms1.8 GB434 MB2.0 GB
      Run 4: LegacyDiff9.976 s39 ms6.3 GB2.0 GB2.0 GB
      Run 5: AntiDiff2.527 s (0.23x)47 ms2.1 GB544 MB2.2 GB
      Run 5: LegacyDiff10.829 s148 ms6.8 GB2.3 GB2.2 GB
      • Improvement factor: [0.22, 0.23]
      • Speedup : [1 / 0.23 ~= 4.35, 1 / 0.22 ~= 4.55]

      No rollbacks

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff1.638 s (0.19x)36 ms1.4 GB181 MB2.4 GB
      Run 1: LegacyDiff8.656 s207 ms5.7 GB1.5 GB2.4 GB
      Run 2: AntiDiff1.638 s (0.19x)75 ms1.4 GB181 MB2.2 GB
      Run 2: LegacyDiff8.654 s322 ms5.7 GB1.5 GB2.2 GB
      Run 3: AntiDiff1.663 s (0.19x)74 ms1.4 GB181 MB2.2 GB
      Run 3: LegacyDiff8.799 s216 ms5.7 GB1.5 GB2.2 GB
      Run 4: AntiDiff1.645 s (0.19x)51 ms1.4 GB181 MB2.0 GB
      Run 4: LegacyDiff8.732 s261 ms5.7 GB1.5 GB2.0 GB
      Run 5: AntiDiff1.639 s (0.19x)19 ms1.4 GB181 MB2.2 GB
      Run 5: LegacyDiff8.653 s234 ms5.7 GB1.5 GB2.2 GB
      • Improvement factor: 0.19
      • Speedup : 1 / 0.19 ~= 5.25

    Only small rollbacks

    NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
    Run 1: AntiDiff1.833 s (0.18x)36 ms1.5 GB185 MB2.4 GB
    Run 1: LegacyDiff10.362 s867 ms5.8 GB1.6 GB2.4 GB
    Run 2: AntiDiff1.696 s (0.19x)30 ms1.5 GB185 MB2.2 GB
    Run 2: LegacyDiff8.822 s106 ms5.8 GB1.5 GB2.2 GB
    Run 3: AntiDiff1.702 s (0.19x)44 ms1.5 GB186 MB2.2 GB
    Run 3: LegacyDiff8.906 s147 ms5.8 GB1.5 GB2.2 GB
    Run 4: AntiDiff1.701 s (0.19x)47 ms1.5 GB185 MB2.0 GB
    Run 4: LegacyDiff8.949 s197 ms5.8 GB1.5 GB2.0 GB
    Run 5: AntiDiff1.677 s (0.19x)55 ms1.5 GB186 MB2.2 GB
    Run 5: LegacyDiff8.856 s177 ms5.8 GB1.5 GB2.2 GB
    • Improvement factor: [0.18, 0.19]

    • Speedup : [1 / 0.19 ~= 5.25, 1 / 0.18 ~= 5.55]

      No rollbacks, larger flushes (every 100 pushes)

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff1.643 s (0.25x)21 ms1.5 GB196 MB2.4 GB
      Run 1: LegacyDiff6.591 s351 ms4.0 GB1.4 GB2.4 GB
      Run 2: AntiDiff1.616 s (0.25x)47 ms1.5 GB196 MB2.2 GB
      Run 2: LegacyDiff6.520 s232 ms4.0 GB1.4 GB2.2 GB
      Run 3: AntiDiff1.640 s (0.25x)34 ms1.5 GB196 MB2.2 GB
      Run 3: LegacyDiff6.540 s150 ms4.0 GB1.4 GB2.2 GB
      Run 4: AntiDiff1.635 s (0.25x)76 ms1.5 GB196 MB2.0 GB
      Run 4: LegacyDiff6.589 s131 ms4.0 GB1.4 GB2.0 GB
      Run 5: AntiDiff1.628 s (0.25x)19 ms1.5 GB196 MB2.2 GB
      Run 5: LegacyDiff6.490 s5.9 ms4.0 GB1.4 GB2.2 GB
    • Improvement factor: 0.25

    • Speedup : 1 / 0.25 ~= 4

    Genesis

    • We elaborated a draft of the specification of the Genesis implementation and +the ChainSync Jumping optimization. In particular, this includes a proof +sketch that the latter preserves liveness and safety in all cases (Issue +3964).
      • @nfrisby's main realization during this sprint was that he had been +focusing so far on the case where the selected chain is an extension of +the intersection of our peers' ChainSync candidates.
      • This is the main case, ie an "absorbing" state, but it's not the only +case.
      • The new proof sketch begins by case splitting on that predicate, and +that made the sketch quite a bit easier to follow.
    • We continued working on the "happy path" ChainSync Jumping prototype (Issue +3960).

    Technical debt

    • We started working on the issues required to re-enable nightly CI runs.. +Nightly CI runs have far more lax time constraints, which gives the option to +run significantly more property tests than in our regular CI. To this end, we +merged a PR to easily adapt the number of tests globally (PR +#3947).
    + + + + \ No newline at end of file diff --git a/page/88/index.html b/page/88/index.html new file mode 100644 index 0000000000..174d96290d --- /dev/null +++ b/page/88/index.html @@ -0,0 +1,39 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Marcin Szamotulski

    The networking team took an active part in the project iteration (PI) planning +session, see cardano-node backlog for detailed +outcomes.

    • We started working on a detailed design / implementation plan for gossip.

    • We merged input-output-hk/ouroboros-network#3859 which +sets the ouroboros-network repository for the single relay release.

    • We identified a bug in the network simulator, which is fixed in the +input-output-hk/ouroboros-network#3852. +The above PR was reviewed.

    • We set the tracing configuration for nodes which we deploy and fixed and +identified some deployment hiccups. We identified some bugs in the RT view +which were registered by the maintainers. +input-output-hk/ouroboros-network-ops#4

    • We fixed typos in network-mux library: +input-output-hk/ouroboros-network#3921

    • For easy of debugging we renamed a trace point: +input-output-hk/ouroboros-network#3922

    • Duncan iterated on his simulation / visualisation. He also was able to +identify and fix a bug in the simulator. The simulation contains 50 nodes. +Dashed lines indicate and established connection, while solid lines indicate +a TCP connection with fully open TCP window.

    + + + + \ No newline at end of file diff --git a/page/9/index.html b/page/9/index.html new file mode 100644 index 0000000000..b21af59bf7 --- /dev/null +++ b/page/9/index.html @@ -0,0 +1,77 @@ + + + + + +Cardano Development Updates | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team refactored the heartbeat logic to prepare for the versioned network protocol. They have also switched http://explorer.hydra.family to run on the preview network. Additionally, the team has added property tests to the /commit endpoint changes.

    What did the team achieve this week

    • Refactor heartbeat logic to prepare for versioned network protocol.
    • Switch http://explorer.hydra.family to run on preview network.
    • Add property tests to /commit endpoint changes

    What are the goals of next week

    • Attend and connect with community on Cardano Builder Fest
    • Merge new /commit endpoint changes

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed benchmarks and analyses for Node versions 8.9.2 and 8.10.0.
    • Development: Design phase for implementing quick queries in the analysis pipeline has begun.
    • Workbench: We're finishing up the new features for the reporting pipeline; Haskell profile definition work is ongoing.
    • Tracing: Improving the Prometheus output is ongoing; the node's build info will be accessible as a Prometheus label.
    • UTxO Growth: Our tooling has been augmented to support benchmarks starting with a non-empty chain.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.9.2. Comparing with release 8.9.1, we could not detect any performance risks for that version.

    The benchmarks for 8.10.0 have shown a slight improvement in the time the block forging loop needs to evaluate, whilst additionally, resource usage of the cardano-node process was also slightly reduced - a nice performance improvement.

    Development

    Our analysis pipeline is based on batch analysis of data from over 50 cluster nodes; it consumes very large amounts of trace output ex post facto, when the actual benchmark has terminated. +This is very time-intensive, and not viable for obeserving an additional metric that you later on determine might need consideration.

    We're planning to add quick queries into a benchmarking run's trace data to our analysis pipeline. These will be structured such that parameterizable, ad-hoc querying is supported. Initial tests showed that evaluation speed +of such queries is fast enough to merit designing a principled, and generalized, syntax for them - and a subsequent implementation.

    Workbench

    The reporting pipeline has been augmented with direct support for customizable, and stylable, TeX rendering - currently receiving final touches.

    Porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is ongoing work. It is our goal to both increase reliable profile definition and validation, and +facilitate usage by engineers less familiar with the workbench.

    Tracing

    The work to improve system metrics as presented to Prometheus is still ongoing. Type annotations, as well as introducing Prometheus labels for certain metrics to convey (like e.g. build information), will make that interface +more versatile. It also facilitates configuration of monitoring or dashboards like Grafana on top of those Prometheus metrics.

    UTxO Growth

    For the UTxO scaling benchmarks, we've augmented the workbench with the capability to support injection of a custom synthesized chain into the deployment, and start a benchmark only after replaying that chain - whereas +our benchmarks usually start just with a genesis block.

    To achieve that, different components of our tooling needed addition of features: distributing that chain to the node cluster, having analysis work without necessarily providing trace evidence of each block in the chain being forged by a benchmarking node. Cluster timing had to be adjusted to account for the gap between genesis start time and the chain tip. However, this entire mechanism opens up the possibility of having a very distinct ledger state at hand for a benchmark - one, that's been particularly crafted via a series of +pre-defined transactions constituting the blocks during creation of the synthesized chain.

    In the future, we plan to flesh out a more general design of that mechanism, which currently is tied to a very specific use case only.

    · 4 min read
    Marcin Szamotulski

    High-level overview of sprint 58 and sprint 59

    Releases

    We released cardano-node-8.9.1, and we tagged a soon to be released +cardano-node-8.9.2 +The 8.9.2 release will have a fixed peer sharing support, which we +incidentally broke in 8.9.1. We expanded our test suite to cover discovered +bugs (see below for more details). Please also see the release +tab in our project to see which PRs / issues were +included in a given release, the following mapping might also be useful:

    • ouroboros-network-0.13.1.0 -> cardano-node-8.9.1
    • ouroboros-entwork-0.14.0.0 -> cardano-node-8.9.2

    Genesis

    We continued working on network Genesis support:

    • ouroboros-network#3396 - churn policy for Genesis;
    • ouroboros-network#4813 - outbound governor support for Genesis;
    • support for cardano-cli to write a big ledger peers snapshot to disk and +for cardano-node to pass it to ouroboros-network.

    As well as a feature required by consensus:

    TxSubmission

    Only a little progress was made due to one of us being on vacation.

    Churn and EKG metrics

    While working on ouroboros-network#4815, we addressed technical debt +in churn. The PR removes implicit synchronisation (in terms of delays) in +favour of explicit synchronisation with the outbound governor. The PR extends +EKG counters traced by the node. See below for some graphs.

    Documentation

    We updated the documentation on peer sharing, see +cardano-node-wiki#44.

    Low level details

    Peer Sharing Testing

    We wrote a testing scenario for peer sharing, which simulates a node setup: +A -> B <- C, where neither of the nodes B and C have any local roots; they only learn about other nodes through (light) peer sharing. B learns +about A and C because they connect to it, while C should learn about A +through peer sharing. This test scenario should prevent us from breaking peer sharing in the +future in some obvious ways. In the future, we will also work on extending our +test suite with peer sharing in mind. See ouroboros-network#4839, +ouroboros-network#4841.

    EKG / Prometheus Counters

    Note that this is in progress, so some things might still change.

    We will provide counters for active (also known as hot) peers, +established (e.g. hot & warm) peers and known (e.g. hot, warm and +cold) peers. This is the same way one specifies targets in the node's +configuration. In addition, the three groups are split into five categories:

    • ledger peers
    • big ledger peers
    • local root peers
    • bootstrap peers
    • shared peers

    In addition, we also provide a counter for root peers, which counts ledger peers, +big ledger peers, local roots and bootstrap peers, which correspond to the +root peers target TargetNumberOfRootPeers in the configuration.

    We also provide counters for ongoing promotions and demotions.

    Ledger peers are affected by TargetNumberOf{Known,Established,Active}Peers and TargetNumberOfRootPeers. +The gap between TargetNumberOfRootPeers and TargetNumberOfKnownPeers will +be filled either with ledger peers or peers, which the node discovered through +peer sharing. +Big ledger peers are affected by TargetNumberOf{Known,Established,Active}BigLedgerPeers.

    Below are some Grafana graphs from an experimental cardano-node branch:

    Deprecation policy

    The previous hot, warm / cold EKG counters will also be available, +although deprecated after the new ones are released. Sometime in the future +they will be removed.

    Grafana graphs

    The screenshots are from a node, which is configured without any bootstrap +peers, which is why all bootstrap metrics are 0. The node is configured with the following targets:

      "TargetNumberOfRootPeers": 60,
    "TargetNumberOfKnownPeers": 100,
    "TargetNumberOfEstablishedPeers": 40,
    "TargetNumberOfActivePeers": 15,
    "TargetNumberOfKnownBigLedgerPeers": 15,
    "TargetNumberOfEstablishedBigLedgerPeers": 10,
    "TargetNumberOfActiveBigLedgerPeers": 5,

    and has a small number of local root peers and one peer in its publicRoots +configuration.

    Active Peers Metrics

    P2P relays

    Established Peers Metrics

    P2P relays

    Known Peers Metrics

    P2P relays

    Churn Metrics

    P2P relays

    · One min read
    Damian Nadales

    High level summary

    • Implemented the new diffusion pipelining criterion.
    • Presented, reviewed and merged the March milestone for Genesis.
    • Integrated latest changes into Node version 8.10.
    • Regarding the UTXO-HD feature we:
      • Completed fixes in test-suites from cardano-node, cardano-api, and ouroboros-consensus. All tests are passing in latest prototype.
      • Prepared UTXO-HD prototype for LMDB benchmarking.
      • Fixed tracing in cardano-node.
      • Started merging code from the UTXO-HD branch into main (1053, 1052, and 1054).
    • We're currently working on getting rid of NoThunks errors in Consensus, so that we can enable these tests in CI, for extra assurance.

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team has released 1 version for mainnet 13.2.0.1 and 3 pre-releases for sanchonet +4.0.0, 4.1.0, 4.2.0. We have continued the integration of Conway (CIP-1694) and the support +of off-chain data (CIP-100)

    Lower level summary

    • CI build and docker fixes +#1670 +#1668 +#1667 +#1662

    • Improved committee representation +#1662 +#1571 +#1633

    • Offchain metadata partial support +#1654

    • Refactoring and tech-debt +#1635

    • Fixing epoch_stake_progress +#1620

    • Config and modulatirty improvements +#1653 +#1652

    • Updating to node-8.10-pre. Better support for deposits, refunds and proposal state +#1673

    + + + + \ No newline at end of file diff --git a/pdf/benchmarking/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.plutus.pdf b/pdf/benchmarking/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.plutus.pdf new file mode 100644 index 0000000000..b290993bd4 Binary files /dev/null and b/pdf/benchmarking/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.plutus.pdf differ diff --git a/pdf/benchmarking/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.value-only.pdf b/pdf/benchmarking/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.value-only.pdf new file mode 100644 index 0000000000..f5ed53ffbc Binary files /dev/null and b/pdf/benchmarking/8.7.1_8.1.2_8.7.0-pre_8.7.1-pre.value-only.pdf differ diff --git a/pdf/benchmarking/release-8.12.1.plutus.pdf b/pdf/benchmarking/release-8.12.1.plutus.pdf new file mode 100644 index 0000000000..a0a6c01d8a Binary files /dev/null and b/pdf/benchmarking/release-8.12.1.plutus.pdf differ diff --git a/pdf/benchmarking/release-8.12.1.value-only.pdf b/pdf/benchmarking/release-8.12.1.value-only.pdf new file mode 100644 index 0000000000..5215973f99 Binary files /dev/null and b/pdf/benchmarking/release-8.12.1.value-only.pdf differ diff --git a/pdf/benchmarking/release-8.9.0.plutus.pdf b/pdf/benchmarking/release-8.9.0.plutus.pdf new file mode 100644 index 0000000000..9863d1944d Binary files /dev/null and b/pdf/benchmarking/release-8.9.0.plutus.pdf differ diff --git a/pdf/benchmarking/release-8.9.0.value-only.pdf b/pdf/benchmarking/release-8.9.0.value-only.pdf new file mode 100644 index 0000000000..1838dd106a Binary files /dev/null and b/pdf/benchmarking/release-8.9.0.value-only.pdf differ diff --git a/pdf/benchmarking/release-8.9.1.plutus.pdf b/pdf/benchmarking/release-8.9.1.plutus.pdf new file mode 100644 index 0000000000..4457775094 Binary files /dev/null and b/pdf/benchmarking/release-8.9.1.plutus.pdf differ diff --git a/pdf/benchmarking/release-8.9.1.value-only.pdf b/pdf/benchmarking/release-8.9.1.value-only.pdf new file mode 100644 index 0000000000..f87a7f9ae5 Binary files /dev/null and b/pdf/benchmarking/release-8.9.1.value-only.pdf differ diff --git a/pdf/benchmarking/release-8.9.3.plutus.pdf b/pdf/benchmarking/release-8.9.3.plutus.pdf new file mode 100644 index 0000000000..9b8deb95e7 Binary files /dev/null and b/pdf/benchmarking/release-8.9.3.plutus.pdf differ diff --git a/pdf/benchmarking/release-8.9.3.value-only.pdf b/pdf/benchmarking/release-8.9.3.value-only.pdf new file mode 100644 index 0000000000..c2bb812d90 Binary files /dev/null and b/pdf/benchmarking/release-8.9.3.value-only.pdf differ diff --git a/pdf/benchmarking/release-9.0.0.plutus.pdf b/pdf/benchmarking/release-9.0.0.plutus.pdf new file mode 100644 index 0000000000..fa5b6e07c4 Binary files /dev/null and b/pdf/benchmarking/release-9.0.0.plutus.pdf differ diff --git a/pdf/benchmarking/release-9.0.0.value-only.pdf b/pdf/benchmarking/release-9.0.0.value-only.pdf new file mode 100644 index 0000000000..92b129249b Binary files /dev/null and b/pdf/benchmarking/release-9.0.0.value-only.pdf differ diff --git a/pdf/network/2022-11-24-UCL.pdf b/pdf/network/2022-11-24-UCL.pdf new file mode 100644 index 0000000000..724ed4392d Binary files /dev/null and b/pdf/network/2022-11-24-UCL.pdf differ diff --git a/quarterly/2022-10-07-node-cli-api/index.html b/quarterly/2022-10-07-node-cli-api/index.html new file mode 100644 index 0000000000..2b4d566dfd --- /dev/null +++ b/quarterly/2022-10-07-node-cli-api/index.html @@ -0,0 +1,26 @@ + + + + + +Node API & CLI Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Node API & CLI Team Update

    · 2 min read
    Jordan Millar

    Node-Api-Cli Quarterly Update

    2022-09 - 2022-11-04

    • Various improvements to tests/CI/GHC 9.2.4 preparations/upgrade to cabal-3.8.1.0
    • Major clean up of stale iusses + PRs.
    • Implementation of stale-bot to mitigate against a proliferation of outdated issues and PRs
    • cardano-api refactoring with the aim of exposing more user friendly functions, particularly concerning transaction construction and querying the node.
    • cardano-cli refactoring with the aim of moving reusable functions to cardano-api. We have made strides here and have managed to improve the interface of transaction construction and validation.
    • General documentation updates and improvements
    • Addition of tx-mempool command which allows users to:
      • Query the node about the current mempool's capacity and sizes
      • Request the next transaction from the mempool's current list
      • Query if a particular transaction exists in the mempool
    • Initial refactoring of cardano-testnet

    Next quarter

    • cardano-api
      • Working with Konstantinos and his team to make cardano-api better for dapp developers - we have a google doc for this, I can send it to you privately.
    • cardano-testnet
    • Serenity
      • Continued refactoring of cardano-api and cardano-cli, with the particular focus on extracting re-usable components of cardano-cli and moving them to cardano-api. This is harder to define but will manifest in stuff moving from cardano-cli to cardano-api and is tied in to the cardano-api work specified above.
    • General bug fixing and smaller feature requests for the api/cli that are always coming in. Robert is primarily handling this at the moment as he is relatively new.
    + + + + \ No newline at end of file diff --git a/quarterly/2022-11-07-ledger/index.html b/quarterly/2022-11-07-ledger/index.html new file mode 100644 index 0000000000..d8fd121983 --- /dev/null +++ b/quarterly/2022-11-07-ledger/index.html @@ -0,0 +1,29 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Ledger Team Update

    · 2 min read
    Jared Corduan

    Ledger Quarterly Update

    2022-09 - 2022-11-04

    • We finished a minimal ledger era capable of master key rotation. +This will be re-purposed our upcoming work.
    • We have the humble beginnings of a proper ledger API.
    • We improved the problematic cost model serialization +(recall the song and dance about updating the cost model one epoch after the hard fork).
    • We have added benchmarks for problematic areas.
    • Massive repository restructure and cleanup.
      • Unified and consistent variable name schemes (not completely finished, but nearly there).
      • Massive reduction in type constraints, which causes a lot of developer friction, +in our code and also downstream.
      • More organized module structures.
      • Improved generators for our property tests.
      • We removed our dependency on cardano-prelude.
    • The formal ledger model has come a long way.
      • We created a fork of Agda that provides some meta-programming support for the ledger rules.
      • We have a large amount of the basic UTxO support in the model.
      • We can generate a good looking PDF from the model.
      • We can produce Haskell from the model.
      • We have a nice finite set theory library that we can use for many of the ledger rules.
      • We have nix support for the model.

    Next steps

    • Individual tracking of deposits. [issue-3113]
    • Versioned CBOR encoders/decoders. [issue-3014]
    • New ledger era transaction body (and the surround work associated with it).
    • Designs for the next ledger era.
    + + + + \ No newline at end of file diff --git a/quarterly/2022-11-09-network/index.html b/quarterly/2022-11-09-network/index.html new file mode 100644 index 0000000000..c7a3b589e8 --- /dev/null +++ b/quarterly/2022-11-09-network/index.html @@ -0,0 +1,68 @@ + + + + + +Network Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Network Team Update

    · 4 min read
    Marcin Szamotulski

    Network Quarterly Update

    2022-09 - 2022-11

    Summary of most important improvements

    During this quarter the networking team delivered low level specification of +peer sharing & eclipse evasion. We held a session with the consensus & the +scientists; we got a positive feedback on the design.

    Further we focused on implementation of peer sharing. We produced a detail +design and an early implementation.

    We prepared the P2P Single Relay Release (cardano-node-1.35.5). It +includes over 130 patches of network stack improvements over the +previous version 1.35.4, which were accomplished over a longer period of +time. Among them are both bug fixes and UX improvements for stake pool +operators like simplified format of the topology file, or +improvements in the logged messages:

    We also provide better integration with systemd (socket +activation improvements) or improvements in the networking stack:

    • exit policies,
    • peer metrics improvements,
    • DNS TTL improvements (which make it harder to misconfigure the +system, an issue discovered by the performance & monitoring team),
    • do not trigger inbound idle timeout for node-to-client connections (pr +#3844), an issue reported to us by Matthias Benkort from +Cardano Foundation.

    Duncan has been making progress with the input endorsers demo. His simulation +provides a useful animated visualisation and live quantification of behaviour +of the modeled design.

    We also improved our e2e diffusion simulation by implementing header-body +split, similar to what the real implementation does.

    We also made some advances towards our future goals of P2P release for block +producer nodes (pr #3800 - in review) & for Daedalus users +(pr #3690 - merged).

    Detailed log

    • We expanded diffusion simulation with block-fetch protocol bringing it closer +to the production system.

    • We addressed some additional technical depth in diffusion simulation

    • We slightly improved documentation & CI of io-sim and typed-protocols +repositories for open-source contributors.

    • We closed a number of issues towards publishing io-sim on Hackage (only two +essential issues are left open).

    • We pushed a branch of typed-protocols which captures one of the developer UX +problems in the API which we need to solve.

    • We identified and fixed an issue related to systemd sockets.

    • We identified and fixed an issue in consensus initialisation not giving +feedback on early errors.

    • We deployed RT View, identified a number of issues which were communicated to +the performance & monitoring team.

    • We finished high level & detailed design of peer sharing, very early +implementation of peer sharing is done (note that peer sharing cannot be +safely deployed without eclipse evasion & genesis).

    • We finished high level design of eclipse evasion, and started working on +a detailed design.

    • We were assigned the role of release engineer for 1.35.5 release (the P2P +single relay release); we prepared a cardano-node for 1.35.5 release which +contains more than 130 patches of just network stack improvements done over +last few months.

    • We diagnosed and fixed an tricky bug in the peer state actions (a component +which sits between outbound governor and connection manager). That bug was +introduced earlier this year and never released. It was caught by the QA +testing framework. We expanded our diffusion simulation to cover such case and +also mitigated a chance for reintroducing such a bug in future.

    • We identified and quite likely mitigated a misconfiguration in the +benchmarking cluster (next benchmarking run will confirm our hypothesis).

    • We simplified the format of p2p topology file, we got positive feedback from +SPOs.

    • We raised severities of some of the logging messages, which is an important +improvement for SPOs, exchanges and other users of the system.

    • We worked on input endorsers simulation which gives both animated and +quantified live feedback on network operation, using a simplified model of +a TCP/IP network.

    Next quarter

    • Release the Single Relay P2P Release 1.35.5.

    • Carry on with Peer Sharing (review, testing).

    • Deliver a talk at Conference on Principles of Distributed Systems 2022 in Brussels, Belgium.

    • Present Detailed Design of Eclipse Evasion and start implementation phase.

    • Work on P2P Block Producer release.

    • Carry on with publishing of io-sim on Hackage.

    + + + + \ No newline at end of file diff --git a/quarterly/2022-11-15-consensus/index.html b/quarterly/2022-11-15-consensus/index.html new file mode 100644 index 0000000000..a1a5b8a5f2 --- /dev/null +++ b/quarterly/2022-11-15-consensus/index.html @@ -0,0 +1,65 @@ + + + + + +Consensus Quarterly Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Consensus Quarterly Update

    · 4 min read
    Damian Nadales

    Consensus Quarterly Update

    2022-09 - 2022-11

    Main achievements

    UTxO HD

    • As a consequence of the errors observed when running distributed mempool +benchmarks, we re-designed the UTxO HD mempool integration, which fixed these +errors and lead to a simpler and more maintainable design.

    • We focused on increasing test coverage for the UTxO-HD prototype. In +particular, we added property tests for:

      • Backing store (work ongoing)
      • Era transitions
    • The property tests we added uncovered several bugs, which is a great result +given the exponential increase in the cost of finding bugs as they are closer +to deployment.

    • One of the errors found by our tests required us to work on improvements in +the Haskell bindings for LMDB. This work is ongoing.

    • We started working on the mempool property tests that will exercise the new +code paths that UTxO HD introduced.

    • We developed, benchmarked and tested an implementation of sequences of +differences based on "anti-diffs". Performance results of diff sequence +operations show that we achieved a speedup of about 4x across several +scenarios. Note: this speedup is taking into account diff sequence operations +only, so the consensus-wide speedup is less than 4x.

    • We integrated the "anti-diff" prototype into the UTxO HD feature branch.

    Genesis

    • We wrote a simulator that demonstrates soundness of an abstract implementation +of the new chain selection rule.
    • We elaborated a draft specification for the Genesis implementation (currently +awaiting feedback from other architects).
    • We elaborated a draft specification for the ChainSync Jumping optimization. In +particular, this includes a proof sketch that the latter preserves liveness +and safety in all cases.
    • With the Networking team, we co-designed the eclipse avoidance mechanism, +specifically its coherence with the Genesis implementation plan's security +and its dependence on the new ChainSync Jumping optimization.
    • We implemented a prototype for ChainSync Jumping. Initial benchmarks showed a +performance degradation wrt the baseline. Our optimization attempts so far +have brought the performance closer to the baseline, but not yet to parity.

    Conway era

    • We did most of the heavy lifting required to integrate the Conway era into the +Consensus layer.

    Technical debt

    • We started working on enabling CI nightly tests, which revealed several test +failures due to thunks being found it data structures used by the ledger and +consensus. We made a lot of progress fixing those thunk errors, but some +errors still remain.

    • We elaborated a db-analyser benchmark for the ledger operations. This led us +to the identification of high processing time at epoch boundaries, and we +could not observe any performance degradation that can be attributed to era +changes.

    • We fixed a source of flakiness in the ChainDB QSM test.

    • We clarified a common source of confusion around VRF tie-breaking and +cross-era chain selection.

    • We fixed a bug in the maximum-allowed ledger major protocol version.

    Fostering collaboration

    • We spent time making cardano-updates the central source of information for +the core teams stakeholders.
    • We went through the Galois gap analysis and extracted actionable points to +take on next.
    • Bart and Yogesh continued with their onboarding and stated making substantial +contributions to consensus.

    Next steps

    UTxO HD

    • Finish the mempool property tests.
    • Benchmark the latest version of the prototype.
    • Elaborate a document that describes new integration test scenarios and pass it +to the SDET team.
    • Bring query UTxO by address command performance on par with the baseline +version.

    Genesis

    • Receive and incorporate Duncan's feedback on the first draft specification for +the Genesis implementation.
    • Begin prototyping the first genesis implementation, unless the first draft +needs major changes.
    • Draft a second revision of the Genesis report.
    • Review the second revision with a wider audience, which includes at least +Alexander Russell. That feedback will drive a third and hopefully final +revision.
    • Investigate how to mitigate the ~30% slowdown we have observed so far in the +ChainSync jumping prototype, and try to mitigate it. In particular, we might +need to optimize the existing BlockFetch logic.

    Tech debt

    • Enabling nightly CI tests.

    Fostering collaboration

    • Merge the tutorial document Galois wrote; requires CI integration.
    • Come up with our own documentation improvements, many of which were suggested +in the Galois gap analysis.
    • Try to hire a new team member.
    + + + + \ No newline at end of file diff --git a/quarterly/2023-01-13-network/index.html b/quarterly/2023-01-13-network/index.html new file mode 100644 index 0000000000..2a4291e310 --- /dev/null +++ b/quarterly/2023-01-13-network/index.html @@ -0,0 +1,49 @@ + + + + + +Network Quarterly Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Network Quarterly Update

    · 5 min read
    Marcin Szamotulski

    Network Quarterly Update

    2022-11 - 2023-01

    Summary

    The primary goal of the networking team was to focus on the single relay +release of P2P. We fixed a number of small late bugs, and concluded QA +& performance testing. Although it was discovered a regression in performance +of block production when P2P is enabled, relaying with P2P performs better +comparing to a non p2p. We concluded that this is not a blocker for the Single +Relay Release which is planned shortly.

    Peer sharing has gone through review and final review is +just being done right now. After merging it will still be disabled (hidden +behind a flag) as it's not safe without eclipse evasion. We started +implementing light peer sharing (i.e. include inbound peers into known peer set +of the outbound governor).

    We started a detailed eclipse evasion design, it will continue in the next +quarter.

    We also made a major revision of package structure of the network packages. We +ended up with a very clean dependency graph (pr #4155).

    Armando Santos delivered a talk at the ODOPIS 2022 conference on principles +of distributed systems in Brussels. The slides are available here.

    Neil Davies gave an invited seminar on DeltaQ at Université Catholique de +Louvain.

    We also found and fixed a few of bugs:

    • a bug in keep alive mini-protocol which resulted in warm to cold transitions +to be always executed through a timeout path rather than do a clean demotion +([pr #4168]).

    • fixed an assetion failure in the outbound governor (issue #4177)

    Next steps

    We will work towards the next release of P2P for block producer nodes. This includes:

    • analysing performance regression for BP nodes when using P2P
    • finish the work on controlling the block forger through node kernel (pr #3800)
    • address issue #3907 and write a script to analyse deployment of P2P relays

    We would like also to push forward eclipse evasion. Although most of the work +has be done already the release of io-sim on Hackage will happen in the +next quarter.

    We would also like to address chain-sync timeout issue recently +diagnosed by Karl Knutsson.

    If time permits we would also like to address some technical debt, especially:

    Risks

    The performance regression for block producer with P2P needs to be investigated +in the near future. This is blocker for the release of P2P on BP nodes.

    Detailed log

    Contributions to Ouroboros-Network

    • We added TraceDemoteLocalAsynchronous, which enables notification of critical issues for SPOs
    • We fixed cardano-ping compatibility with NodeToNodeV_10 (P2P, pr #4165)
    • We fixed a bug in demotion peers to cold which affected P2P nodes (commit-61058aa5c2)
    • Karl Knutsson enhanced SendFetchRequest (commit-bb1c3dddee), open-source contribution)
    • We turned SizeInBytes into a newtype.
    • We extended CONTRIBUTING.md, README.md, added CODE_OF_CONDUCT.
    • We fixed DNS test failure issue #4191
    • We fixed a simulation bug found in issue #4258
    • [pr #4168]
    • issue #4177

    Contributions to Cardano-Node

    • We maintained the Single Relay Release pr #4612, (e.g. fixing CI issues, +Rebasing it when necessary, publishing packages to Cardano Haskell Packages);
    • We enhanced JSON serialisation / deserialisation of NodeToNodeVersion and NodeToClientVersion;

    Contributions to IOSim

    • We started to use Cardano Haskell Packages for IOSim (pr #48)
    • We updated change log files
    • We added support of ghc-9.4 (pr #50)

    We also addressed the following issues in pr #57 in order to prepare the package for publication on Hackage:

    • refactored io-classes timers API (issue #46);
    • created a new package si-timers which exposes an interface using SI units +and is safe on 32-bit systems (issue #59);
    • added monad transformers instances for classes defined in io-classes (issue #58);
    • created io-classes-mtl package which includes (experimental) instances for monad transformers;
    • provide MonadMonotonicTimeNSec in io-classes and MonadMonotonicTime in si-timers (so that io-classes follow the base package);
    • added registerCancellableDelay in si-timers (which allowed us to hide fancy timer api and clean io-classes)
    • added support for js_HOST_ARCH (the new GHC JS backend)

    Note the pr #57 contains almost 40 commits, and was a major step forward for +io-sim ecosystem. We also prepared a draft pr #4281 which updates +ouroboros-network.

    Other changes for 1.0.0.0 release on Hackage:

    • Refactored test suite (pr #47)
    • Updated documentation, cabal files, CONTRIBUTING, SECURITY documents, etc in pr #60, currently under review.
    + + + + \ No newline at end of file diff --git a/quarterly/2023-01-13-open-source/index.html b/quarterly/2023-01-13-open-source/index.html new file mode 100644 index 0000000000..05a66be6e7 --- /dev/null +++ b/quarterly/2023-01-13-open-source/index.html @@ -0,0 +1,55 @@ + + + + + +Open-Source Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Open-Source Update

    · 3 min read
    Marcin Szamotulski

    Open Source Quarterly Update

    2022-11 - 2023-01

    Summary

    In the last quarter the open-source initiative delivered a comprehensive report +on the state of our repositories. As part of this work stream we +identified the key open-source repositories for the cardano project across all +the projects From a list of more than 500 repositories (some of which are +forks) we identified key repositories which constitute the core of Cardano. +20 of them were identified as to be transferred to the future MBO which will +govern Cardano development. Some where excluded (like io-sim and +typed-protocols), to be govern by IOG, since they have a much broader +application than Cardano itself, and thus we think their open-source future +will be better outside of the Cardano umbrella.

    Christian Taylor identified a number of ways we can improve our repositories to +make them more attractive for open-source contributions by analysing each of +them. This includes adding or improving various documentation files, like +CONTRIBUTING files, adding code of conduct, improving readme files, issue +& pull request templates etc. Christian also computed various interesting +metrics which gives a very good insight into the development practices: e.g. +average merge ratio, average number of reviews, comments and many more! The +presentation is available here.

    We followed with work on the Cardano Engineering Handbook. We included +a standard code of conduct which is now used by most important projects in the +Cardano space. We included cardano-node's security policy and added +a responsible disclosure policy. We also described how roles and +responsibilities should be clarified. This progress was made by +a collaborative effort of the Cardano Core, Plutus and Architecture teams, and +it wouldn't be possible without Michael Peyton Jones, Arnaud Bailly, Kevin +Hammond, Jared Corduan and Marcin Szamotulski.

    We also improved the documentation of key repositories, by adding description, +improving their README file & CONTRIBUTING files, adding code of conducts +following the Cardano Engineering Handbook. This includes improvements to:

    And also

    The work was carried by Marcin Szamotulski, Addie Girouard and Jared Corduan.

    In this quarter we also identified a number of projects which can be published to +Hackage (Haskell's package repository) or crate (Rust package repository). +The list contains 21 packages, 2 of which (hedgehog-extras and +quickcheck-dynamic) are already published on Hackage and another 5 (from +the io-sim repository) are close to be published.

    Detailed log

    The progress of the open-source project is tracked in this project.

    + + + + \ No newline at end of file diff --git a/quarterly/2023-01-18-consensus/index.html b/quarterly/2023-01-18-consensus/index.html new file mode 100644 index 0000000000..f36f0c98cd --- /dev/null +++ b/quarterly/2023-01-18-consensus/index.html @@ -0,0 +1,61 @@ + + + + + +Consensus Quarterly Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Consensus Quarterly Update

    · 4 min read
    Damian Nadales

    Consensus Quarterly Update

    2022-12 - 2023-01

    Main achievements

    UTxO HD

    The prototype is feature complete and thoroughly tested at the consensus level. +In particular, we invested a lot of time in writing property-test for the +mempool, and other crucial new parts of the prototype. Now we are ready to run +integration tests and system-level benchmarks.

    Genesis

    We identified and fixed a slowdown in cross-era forecasting that was inhibiting +our efforts to benchmark the ChainSync Jumping prototype. This resulted in a 7% +speedup in full sync times in the baseline.

    We also started prototyping a self-contained implementation of the Genesis +dynamics (in particular of the parts intentionally not part of the ChainSync +Jumping prototype) that furthered our understanding of subtleties and edge +cases.

    Support

    • We worked on designing integration of new VRF and KES crypto into consensus.
      • Crypto class was split into two parts: Crypto and HeaderCrypto.
      • With the Ledger team's help, we refactored cardano-ledger to use a proxy +type for VRF.

    Conway era

    • PR went through its second review round. It is about to be merged, but it got +delayed due to people's availability during Christmas break.

    Technical debt

    • We improved the capabilities of our io-sim library, which is key for testing +and simulating Cardano components.
    • We removed thunks from epoch translations in the ledger, which is important +for reducing memory consumption of the Cardano node.

    Fostering collaboration

    • We added a tutorial on how to instantiate the Consensus layer to run custom +ledgers. This should be a valuable resource to people looking to roll their +own custom blockchain (either for commercial or research purposes).
    • We added an overview of consensus to the top level +documentation of +ouroboros-network. This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    Next steps

    UTxO HD

    • Evaluate the extensibility of the prototype. Moving the UTxO to disk is only +the first step towards reducing the memory requirements of Cardano node, and +ensuring its long term sustainability. In the future, we plan on moving other +large maps, such as delegation maps. The prototype should be able to +accommodate these changes without any major modifications.
    • Start the integration with other downstream components, such as the wallet and +db-sync. The idea is to identify and address any potential pain points that +might arise during this integration.
    • Run integration tests and system-level benchmarks.

    Genesis

    • Finish benchmarking and tuning the fast-path ChainSync Jumping prototype
    • Expand and optimize the self-contained implementation of the Disconnect Rule +(including density comparisons and the LoE)
    • Develop documentation and smoke tests for these components.
    • Start modifying the ChainSync Client for the LoP and LoR.

    Support

    • Help the Network team with diagnosing performance regression in block +production.

    Tech debt

    • Fix property-test failures concerning iterators (#3999 and +#4183).

    Fostering collaboration

    Risks

    UTxO HD

    • Moving other parts of the ledger state to disk might require a major redesign +of the prototype. For instance, if it turns out that the epoch change rules +require access to the full ledger state. If this is the case, we might +accept this risk and do the redesign after the initial release of UTxO-HD.
    • Integration with downstream clients might require more work than we +anticipate.
    • Access to the benchmarking's team time and resources.
    • Benchmarking results might show significant performance degradation, which +will require additional work if such performance degradation is not accepted +by other stakeholders.
    • The prototype's performance might not be accepted by other stakeholders. Here +we need to clearly communicate that this is necessary to ensure that as the +blockchain size grows, the node can operate within reasonable memory +constraints.
    + + + + \ No newline at end of file diff --git a/quarterly/2023-04-03-ledger/index.html b/quarterly/2023-04-03-ledger/index.html new file mode 100644 index 0000000000..7c3477ef28 --- /dev/null +++ b/quarterly/2023-04-03-ledger/index.html @@ -0,0 +1,166 @@ + + + + + +Ledger Team Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Ledger Team Update

    · 7 min read
    Jared Corduan

    Ledger Quarterly Update

    2023-01 - 2023-03

    Main achievements

    CIPs

    • Entering the Voltaire phase - +CIP-1694 received a major update after participation in the design has expanded to +more and more people, including those who attended the Colorado workshop. +See CIP-1694.
    • Ledger CIP category - +The ledger team continues to embrace the CIP process, and has begun the process of +registering the ledger as an official CIP category. +See CIP-84.
    • Ledger serialization - +A CIP for the ledger serialization deprecation cycle has been accepted. +See CIP-80.

    Formal ledger model

    Our new formal specifications backed by Agda have seen a lot of progress. +The majority of the ideas in CIP-1694 are now present, and we have made enough progress +that we can now safely say that the PDF produced by the Agda model will be the +official ledger specification for the Conway ledger era. +See the repository.

    Conway ledger era

    Progress on the Haskell implementation of CIP-1694 has gone hand in hand with the formal model. +The major component still missing is the DRep stake distribution, which still presents some +technical challenges.

    [pull-3176] +[pull-3216] +[pull-3226] +[pull-3291] +[pull-3326] +[pull-3330] +[pull-3339]

    DRep stake distribution computation

    Adding another large stake distribution to the ledger state must proceed with caution. +We do not want the memory used by the node to increase too much, +and performance problems can lead to reduced block production. +We have prototyped, tested, and benchmarked several approaches that could give us +the current DRep stake distribution at each epoch boundary. +This has very important implications, since we want every ADA holder to be able to at any +time (such as during a contentious vote) register themselves as a DRep and still have time +to vote themselves on the issue.

    [pull-3344] +[pull-3353] +[pull-3364]

    Integration work

    The ledger has made some wonderful improvements over the past six months, +but which entail a significant amount of integration efforts:

    • Our new versioned CBOR schemes
    • Individual deposit tracking
    • An improved cross-era interface utilizing lenses
    • A new ledger API
    • Re-arranging the ledger stake in preparation for CIP-1694
    • Versioning our Haskell packages +using CHaPs.
    • Consistent conventions for variable names

    [pull-3279] +[pull-3282] +[pull-3288] +[pull-3289] +[pull-3292] +[pull-3297] +[pull-3298] +[pull-3299] +[pull-3300] +[pull-3302] +[pull-3303] +[pull-3308] +[pull-3342] +[pull-3345] +[pull-3356] +[pull-3357] +[pull-3360] +[pull-3361] +[pull-3363] +[pull-4349] +[pull-378] +[pull-376] +[pull-373] +[pull-370] +[pull-361] +[pull-4976] +[pull-5013]

    Deposit tracking

    Individual deposits (for stake credential and stake pool registrations) were not tracked by the ledger. +Deposits were returned according to the current protocol parameters. +When the values of these two protocol parameters change, the deposit pot +is adjusted by adding to, or removing from, the reserves.

    This has several problems:

    • Most people expect a deposit to be paid back exactly.
    • We cannot increase the deposit amount once the reserves hits zero.
    • If it becomes known that the deposit amount is going to be increased, free Lovelace can be earned by registering credentials.
    • Because of the problems above, it is going to be incredibly hard to ever change the values.
    • There is a serious issue involving hard forks. +The consensus layer makes the decision about whether or not to enact a hard fork based on +the protocol parameter update state two stability windows before the end of the epoch. +However, the ledger will reject a protocol parameter update on the epoch boundary +if the deposit pot adjustments cannot be reconciled with the reseve pot. +This means that if quorum is met regarding changing the major protocol version, +but the update is rejected on the epoch boundary, consensus will change the era but the +ledger will not change the major protocol version, leaving the ledger in a split-brain state.

    Because we never actually changed the values of the two deposits amounts in the protocol parameters +on mainnet, we were able to retroactively change the behavior. +We made the following changes:

    • Individual deposits are tracked in the DState.
    • The amount deposited is always returned.

    [pull-3195] +[pull-3202] +[pull-3217]

    New ledger API

    We have significantly built up the ledger API. +We will eventually replace much of the cardano-api in the node repository with this ledger API.

    [pull-3242] +[pull-3248] +[pull-3328]

    Constraint-based generators

    Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks +which span several epochs, mimicking a real network. +These tests are, in theory, excellent for checking properties. +They are, however, very difficult to maintain and are not as random as we would like +(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We have a new declaritive infrastructure for building constraint-based generators, +which instead generate a random ledger state representative of not just an initial state, +but also those representative of the end result of a long sequence of valid blocks. +Moreover, these generators are very fast and are much more random than our old generators. +Before we can start using them for our existing property tests, however, we still need to +expand them to generate a valid block for a given ledger state.

    [pull-3219]

    Technical debt

    We continued to address technical debt as much as we can.

    [pull-3167] +[pull-3170] +[pull-3172] +[pull-3175] +[pull-3184] +[pull-3205] +[pull-3208] +[pull-3210] +[pull-3212] +[pull-3218] +[pull-3222] +[pull-3223] +[pull-3224] +[pull-3225] +[pull-3229] +[pull-3239] +[pull-3241] +[pull-3244] +[pull-3245] +[pull-3249] +[pull-3260] +[pull-3263] +[pull-3264] +[pull-3268] +[pull-3269] +[pull-3270] +[pull-3274] +[pull-3276] +[pull-3277] +[pull-3286] +[pull-3290] +[pull-3295] +[pull-3296] +[pull-3306] +[pull-3307] +[pull-3310] +[pull-3311] +[pull-3316] +[pull-3320] +[pull-3323] +[pull-3327] +[pull-3331] +[pull-3332] +[pull-3333] +[pull-3338] +[pull-3341] +[pull-3347] +[pull-3350] +[pull-3351] +[pull-3352] +[pull-3354]

    Critical fixes

    We fixed two critical issues:

    • Growing block production delay on the epoch boundary: [pull-3209]
    • Unexpected node shutdown from balanceR: [pull-3343]

    Next steps

    • Conway spec - +Complete the first version of the conway formal specification.
    • DRep stake distribution - +Have the ledger compute the DRep stake distribution with acceptible performance.
    • Devnet ready - +Have the Haskell implementation of the conway era in sync with the formal specification, +and integrate the changes with consensus and node. +All the details might not be finalized, but the wire specification and the API should +be stable so that conway can be placed on a devnet for tool builders to start integrating with.
    • Plutus V3 - +Integrate Plutus V3 into the ledger, including a new script context which supports DReps.

    More details

    This quarterly report was based off of the following fortnightly ones:

    + + + + \ No newline at end of file diff --git a/quarterly/2023-04-04-network/index.html b/quarterly/2023-04-04-network/index.html new file mode 100644 index 0000000000..21f905f359 --- /dev/null +++ b/quarterly/2023-04-04-network/index.html @@ -0,0 +1,40 @@ + + + + + +Network Q1 2023 Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Network Q1 2023 Update

    · 3 min read
    Marcin Szamotulski

    2023-01 - 2023-03

    Main achievements

    Gradual dynamic P2P release on mainnet

    We released two version of cardano-node with dynamic P2P capabilities:

    • 1.35.6
      • we found and fixed a bug in exception handling in peer-state-actionspull-4357
      • we found and fixed a busy loop when demoting a peer from hot to warm pull-4385
    • 1.35.7
      • includes interoperability in the legacy non-p2p network stack pull-4467
    • we fixed a busy loop of demotion & promotions: warm -> hot -> warm[pull-4485] /it will be included in cardano-node-8.0.0 release/.

    Currently there are more than 200 P2P relays on mainnet.

    Peer Sharing

    We implemented /peer sharing/ pull-4019 which will be available as an +experimental feature in one of the future cardano-node releases.

    We implemented /light peer sharing/, e.g. adding inbound connections to the set +of known peers of the outbound governor, which allows to bootstrap relays not +registered on chain. This complements peer sharing. The pull-4277 is in +late review stages.

    Eclipse Evasion

    We finalised design of eclipse evasion and we started implementing it. We +have an initial implementation (not merged). We are in the process of extending +our test suite to cover new implementation details: issue-3886, pull-4462.

    Cardano Network Service Assurance

    Galois has been making progress on Cardano Network Service Assurance project.

    • In cardano-node, they have developed a datapoint abstraction that creates +a queue of (existing) log events, they now have two such datapoints (of log +events) implemented.

    • They have developed a datapoint client executable that can connect to a node +which serves the "new tracing".

    • They have been exploring approaches for the consolidation and analysis of +datapoint data to extract actionable network health status.

    Cardano-Node

    • We made it possible to configure accepted connections limit pull-4902.

    Testing improvements

    • We fixed a bug in network simulation implementation of TCP simultaneous open pull-4265.

    • We introduced header-body split in the diffusion simulation pull-4419 (in review).

    • We introduced initiator only nodes in the diffusion simulation pull-4280.

    • We fixed a connection-manager test failure issue-4370.

    Technical Debt

    • We refactored Snocket interface decoupling it from the multiplexer +pull-4260. This simplified some aspects of the KES agent implementation.

    • We introduces a record for CBOR codecs which are used for various data +structures by mini-protocol codecs pull-4430.

    Documentation

    • We explained some limitations of CDDL in our technical report pull-4351.

    IO-Sim

    • We fixed implementation of MVar's pull-70.

    NoThunks

    • We published a new version of nothunks library to Hackage.

    Next steps

    • Finish implementation & testing of eclipse evasion issue-3886.
    • Optimise connectivity to peers behind firewall issue-4381.
    • Finish the work on enabling block production dynamically to allow using P2P +on block producers issue-3159.
    • If time permits we would like also to reserve some time for finishing +publication of io-sim to Hackage.
    + + + + \ No newline at end of file diff --git a/quarterly/2023-04-25-consensus/index.html b/quarterly/2023-04-25-consensus/index.html new file mode 100644 index 0000000000..ba4ed816df --- /dev/null +++ b/quarterly/2023-04-25-consensus/index.html @@ -0,0 +1,45 @@ + + + + + +Consensus Quarterly Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Consensus Quarterly Update

    · 3 min read
    Damian Nadales

    Consensus Quarterly Update

    2023-01 - 2023-03

    Main achievements

    UTxO HD

    • We finished the testing activities for the prototype, which involved adding +new tests, and fixing and enabling temporarily disabled tests.
    • We spent a substantial amount of effort refactoring and cleaning the +prototype.
    • We audited the UTxO HD prototype to make sure it can accommodate the migration +of other tables (eg stake-keys registration) from memory to disk. The result +of the audit was positive.
    • We ran ad-hoc benchmarks for reading keys and flushing values to disk. No +unexpected costs found.
    • We ran the first system level benchmarks. The performance regressions reported +were due to an unrealistic snapshotting rate. We need to re-run them again +after we design a more fine grained locking mechanism.

    Genesis

    • We elaborated a roadmap of the remaining work for Genesis.
    • We presented the design to the IOG Researchers and PNSol on February 20. The +design was well received. We updated the Genesis design with the researcher's +feedback.
      • We plugged the new DoS vector identified during the aforementioned +presentation.
    • We developed a generator for adversarial leader schedules that satisfy key +Ouroboros properties, which will be used to test the Genesis design.
      • The generator enables use of smaller Ouroboros parameters, which makes +extrema more likely and counterxamples easier interpret.
    • We wrote up the latest design iteration.
    • We continued benchmarking the Chain Sync Jumping prototype. In particular:
      • We debugged the prototype's performance regression, and unmasked the +actual cause by patching our initial theory (bad queuing behavior)
      • We identified and validated the actual cause (a pathological case in +BlockFetch tiebreaker).

    Support

    • We created two new tools. One for dumping CBOR encoded blocks to JSON. Ahother +to serve a local immutable DB.

    Conway era

    • We integrated the Conway era into consensus.

    Technical debt

    • We fixed a bug with followers, which was discovered by property tests.
    • We developed a DSL for specifying and running ChainDB test cases.
    • We fixed failing tests with iterators.
    • We created micro-benchmarks for adding transactions to the mempool.

    Fostering collaboration

    • We released a new technical documentation site for consensus.
    • We factored out several packages to external repositories. Some of this work +originated in the UTxO HD workstream.

    Next steps

    UTxO HD

    Genesis

    Support

    • Design Consensus side of hardfork-enactment in the Voltaire phase +(#4180).
    • Estimate the number of file descriptors Consensus needs +#20.

    Tech debt

    • Identify Quantitative Timeliness Agreements (QTAs) metrics that we can define +for consensus. Pick one and implement benchmarks for it.

    Fostering collaboration

    • Onboard a new team member.
    + + + + \ No newline at end of file diff --git a/quarterly/2023-Q2-consensus/index.html b/quarterly/2023-Q2-consensus/index.html new file mode 100644 index 0000000000..2d78e51869 --- /dev/null +++ b/quarterly/2023-Q2-consensus/index.html @@ -0,0 +1,34 @@ + + + + + +Consensus Q2 2023 Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Consensus Q2 2023 Update

    · 5 min read
    Damian Nadales

    2023-04 -- 2023-06

    Main achievements

    UTxO HD

    • We finished a major prototype refactoring, which includes:
      • A better and finer grained DB lock mechanism.
      • Elimination of race conditions.
      • Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.
      • Architectural simplifications and performance improvements.
    • We implemented a new package to support db-sync integration with UTxO-HD.
    • We ran another set of ad-hoc benchmarks:
      • We uncovered a performance regression on the Network component when using GHC-9.2/9.4.
      • The synchronization and replay speed are as expected.
      • However, we uncovered memory consumption issues (see figure below).
        • The in-memory backend is consuming more memory than the baseline.
        • The LMDB backend shows an unexpected memory usage peak.
        • Investigation on these issues is ongoing.
    • We integrated the latest changes in main branch.
      • This required a re-design of the mempool to include the mempool fairness +improvement.

    Genesis

    • The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.
      • This particular question was not anticipated when the Q2 PI was planned.
      • As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized.
      • That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package.
    • The IOG Researchers' feedback on the design was very valuable. It had two primary effects.
    • Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".
      • This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated.
      • The additional design complexity is relatively small.
    • Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.
      • The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era.
      • All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras.
      • Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later.
      • The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks.
    • Relevant questions that the IOG Researchers are still assessing.
      • These do not block the Genesis implementation, but do affect the ultimate values of specific parameters.
      • Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?
      • Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?

    Support

    • We performed an analysis on number of file descriptors used by Consensus, this +information can be used by the node operators to check if the number of file +descriptors they want to support are enough, thus improving the user (eg node +operator) experience.
    • We implemented a mempool fairness improvement, by which transactions are +guaranteed to be processed irrespective of their size.

    Technical debt

    • We fixed a bug in followers logic, which was discovered by our QuickCheck +property tests.
    • We created an immutable DB +server. This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results.
    • We created a db-truncater tool, which can be used in disaster recovery and benchmarking scenarios.
    • We created a benchmarks comparison tool that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance improvements introduced by the Ledger team in version 0.6.0.0 of Consensus wrt version 0.5.0.0.

    Fostering collaboration

    • We released fs-sim as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project.
    • We migrated the consensus code to a new repository, splitting +it from the ouroboros-network repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases).
    • We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users).
    • We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.

    Next steps

    UTxO HD

    Genesis

    • We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.
    + + + + \ No newline at end of file diff --git a/quarterly/2023-Q2-network/index.html b/quarterly/2023-Q2-network/index.html new file mode 100644 index 0000000000..51371ce051 --- /dev/null +++ b/quarterly/2023-Q2-network/index.html @@ -0,0 +1,79 @@ + + + + + +Network Q2 2023 Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Network Q2 2023 Update

    · 6 min read
    Marcin Szamotulski

    2023-04 - 2023-06

    Main achievements

    Eclipse Evasion

    We finalised the design of eclipse evasion and implemented its mechanism which +relays on connectivity to big ledger peers. Big ledger peers are the +largest ledger peers which accumulate 90% of stake (currently there are less +than 1000 of them). The outbound governor has new targets for known, +established and active big ledger peers which work in a similar way that +such targets work for ledger peers. The ouroboros-network#4662 PR is +currently in review.

    As part of this work we also identified a bug which would prevent a node to +connect to itself. Such connections are not easily detectable and are expected +to be dropped by the churn mechanism, nonetheless they should not be buggy. +The failure was discovered thanks to our e2e simulation of diffusion using +io-sim & property based testing.

    The PR also refactors the heart of the ouroboros-network interface reducing +technical debt that would otherwise accumulate.

    We also identified a possible improvement in the churn mechanism, which will be +implemented in Q3. Churn needs to await for peers to terminate, we can +improve the synchronisation. [ouroboros-network#4617]

    Ecosystem P2P Deployment Progress

    We reached 50% of stake in hands of SPOs who run at least on P2P relay. Now +also Emurgo and CF are running some P2P relays. Also 20% of IOG relays are +running in P2P mode.

    P2P Progress

    Peer Sharing

    We implemented bootstrapping for peer sharing (also known as light peer +sharing). New downstream (inbound) peers are now added to the known peers of +the outbound governor. Together with peer sharing this allows for non +registered relays to propagate through the network. ouroboros-network#3596

    Please note that peer sharing is disabled by default and is not considered safe +until Bootstrap Peers (see below) or Genesis is implemented.

    Diffusion (P2P)

    • We designed a feature which will reduce the load on IOG relays (in future +also run by CF & Emurgo). The feature consists of two parts. A new source +of peers called bootstrap peers (obtained from via an https request), the +ability to switch from bootstrap peers to ledger peers if the node is synced +(we are collaborating with the consensus team on the interface Bootstrap +Peers IER). This feature will be completed in Q3. +ouroboros-network#4530

    • We published a blog post about P2P design & implementation.

    • Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections: +ouroboros-network#4559.

    • We merged changes which allow the consensus layer to start / stop block +forging thread. This will allow to deploy P2P block producing nodes which +serve as a live backup node. ouroboros-consensus#140

    • We fixed a few bugs in local root peers DNS resolution service: +ouroboros-network#4583, ouroboros-network#4571.

    • We limited concurrency of DNS name resolutions: ouroboros-network#4596.

    • Galois Inc implemented query option for Handshake: ouroboros-network#4256.

    • We fixed handshake query timeout: ouroboros-network#4608.

    • We implemented warm valency for local root peers. This can help when using +DNS names in local root peers which resolve to many IP addresses. ouroboros-network#4575

    • We merged handshake changes which allow query protocol versions. Thanks to +James Parker from Galois Inc.: ouroboros-network#4256, cardano-cli#30.

    Other Improvements & Developments

    CDDL

    • We added node-to-node and node-to-client CDDL specs / tests for encoding +of NodeToNodeVersionData and NodeToClientVersionData.

    • We clarified an inconsistency between CDDL spec and implementation which is +highly polymorphic. We designed and implemented a fix for tx-submission +and local-tx-submission mini-protocols. Specs for other mini-protocols will +be improved at a later stage. ouroboros-network#4580

    Cardano Ping

    IOSim

    Typed Protocols

    Cardano Client

    • We fixed a bug in cardano-client-0.1.0.2 release which results in clients +(e.g. db-sync) negotiate an experimental protocol version.

    Technical debt

    CI improvements

    GHC 9.4 & 9.6

    We made all repositories under our control compile with ghc-9.4 and ghc-9.6 +which includes ouroboros-network, io-sim, typed-protocols and +Win32-network.

    Next steps

    We will continue towards our aspirational roadmap.

    • We will continue reviewing eclipse evasion.
    • As ouroboros-consensus#140 was merged, we are making progress towards +releasing P2P on block production nodes. We hope to analyse performance +regression on such nodes observed on the benchmarking cluster. roadmap-3887
    • We are also focused on roadmap-3969. Note that it was expanded in Q2.
    + + + + \ No newline at end of file diff --git a/quarterly/2023-Q2-sre/index.html b/quarterly/2023-Q2-sre/index.html new file mode 100644 index 0000000000..6de8e1aafc --- /dev/null +++ b/quarterly/2023-Q2-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Q2 2023 Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    SRE Q2 2023 Update

    · One min read
    John Lotoski

    2023-04 - 2023-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Expanding the darwin CI cluster and adding aarch64 builder support
    • Adding bare metal capability to bitte clusters
    • Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality
    • Creation of pool performance analysis queries and scripting
    • Migration of testnet metadata server to cardano-world
    • Cardano shelley qa migration to cardano-world
    • Cardano sanchonet environment spin up to test Conway era functionality
    • Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature

    Next steps

    • Continue with the conversion of mainnet to using p2p topology
    + + + + \ No newline at end of file diff --git a/quarterly/2023-Q3-performance-and-tracing/index.html b/quarterly/2023-Q3-performance-and-tracing/index.html new file mode 100644 index 0000000000..57d5b78db4 --- /dev/null +++ b/quarterly/2023-Q3-performance-and-tracing/index.html @@ -0,0 +1,36 @@ + + + + + +Performance & Tracing Q3 2023 Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Performance & Tracing Q3 2023 Update

    · 4 min read
    Michael Karg

    2023-07 - 2023-09

    Main achievements

    • Release benchmarking
    • Developing and running UTxO-HD benchmarks - in-memory flavour
    • P2P benchmarks, facilitating rollout
    • Production-readiness of the new Nomad cluster has been reached
    • Optimization of and introspection capability for the new tracing system
    • GHC9 performance investigation (and possible remedy)
    • Conensus QTAs: first real-world application of prototype

    Release benchmarking

    Ongoing release benchmarking is a crucial safeguard to cardano-node's release cycle from a performance perspective. We've performed and analyzed benchmarks for node versions 8.2.x to 8.5 throughout Q3.

    UTxO-HD benchmarks

    Targeting a specific new feature in benchmarks requires development effort and fine-tuning the machinery. In Q3, we achieved that for the in-memory flavour of UTxO-HD, enabling benchmark delivery.

    P2P benchmarks

    In Q3, we performed additional P2P benchmarks to facilitate the comprehensive rollout of that feature.

    New nomad cluster

    The new hardware cluster for benchmarks, which is controlled through the new nomad backend, has received +various rounds of validation and adjustments in Q3 - in addition to finalizing integration with the rest +of our pipeline. The confidence in metrics gathered on the cluster is now sufficient for us to consider it +ready for production use.

    New tracing system

    Our new tracing system has received various rounds of optimization in Q3. We could verify in our benchmarks that +it is roughly on par with the legacy system while offering a richer feature set and greater flexibility.

    Additionally, in Q3 we equipped the system with an introspection capability. This is now used for generating +end user documentation that stays in-sync with definitions in code, and for automated consistency checking of the entire system.

    GHC9 performance

    In Q3, a joint investigation with DevX into GHC9's behaviour revealed where and how GHC9 misses opportunities for +optimization of generated code. This led to an approach to annotate our codebase accordingly to re-enable +those optimizations - which is still being validated.

    Consensus QTAs

    In collaboration with Consensus and DevX, we advanced the Consensus QTAs prototype capturing ledger operations' +performance characteristics. It's now applicable, and being applied, to a real-world task - namely +gathering evidence of the effect of aforementioned changes allowing for performant GHC9 builds.

    Next steps

    Benchmarking:

    In Q4, the focus will be on:

    • facilitating the next mainnet release
    • benchmarking runs in the Conway era
    • developing benchmarks / workloads for Conway-exclusive actions
    • implementing a specialized benchmark setup for the UTxO-HD on-disk variant
    • developing new Plutus benchmarks to safeguard Plutus V3
    • benchmarks regarding the rollout of P2P

    Performance

    For certain blocking performance issues we've located the cause, or even found a solution in a cross-team effort. In Q4 we'll advance that work to ensure the ongoing +release cycle for mainnet, as well as make GHC9 become a viable release platform.

    New tracing system

    For the new tracing system, we'll finalize optimization - current results are already on par with the legacy system. Furthermore, we will finish up comprehensive documentation, as well as description of a recommended setup, for which we can provide initial support.

    UTxO-HD monitoring

    We'll augment our analysis pipeline so it can process monitoring data from UTxO-HD nodes connected to mainnet in a meaningful way.

    Nomad backend

    From Q4 on, this backend will be in production use. We plan on adding various UX and flexibility improvements, and further fine-tuning some profiles for nomad.

    Workbench

    We will prepare for a future move of our performance workbench into a separate project. This entails restructuring, refactoring and reimplementation of certain few components that currently assume to always be in sync with cardano-node.

    Consensus component QTAs (co-development)

    In Q4 there will be ongoing work with and support for the existing prototype. We plan to identify a fixed set of input data that yields results of high informative value, and to formalize the process to a point that enables future automation.

    + + + + \ No newline at end of file diff --git a/quarterly/2023-Q3-sre/index.html b/quarterly/2023-Q3-sre/index.html new file mode 100644 index 0000000000..dfad6ecb22 --- /dev/null +++ b/quarterly/2023-Q3-sre/index.html @@ -0,0 +1,26 @@ + + + + + +SRE Q3 2023 Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    SRE Q3 2023 Update

    · One min read
    John Lotoski

    2023-07 - 2023-09

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Completion of mainnet relay networking conversion to p2p topology
    • Cardano sanchonet environment respins for testing new cardano-node pre-release Conway era functionality
    • Stabilization of cardano-explorer in cardano-world using high IOPS bare metal machines
    • Creation of a nix content addressed packages repository, capkgs:
      • To provide lightweight release binaries thereby avoiding sluggish nix flakes and devShells
    • Creation of a cardano performance benchmarking cluster, cardano-perf:
      • To replace legacy cluster benchmark tooling
    • Creation of a cardano cluster composition repository, cardano-parts:
      • For enabling multi-cluster, multi-role cardano network deployments
    • Creation of a cardano testnets repository, cardano-playground:
      • Utilizing cardano-parts for testnet deployments
    • Creation of a sanchonet demo repository, sanchonet-demo:
      • Utilizing cardano-parts for fast sanchonet test environment and demo purposes

    Next steps

    • Continue with migration of cardano-world testnets to cardano-playground
    • Proceed with spinup of mainnet p2p bootstrap cluster
    • Scale down mainnet non-p2p legacy cluster at the appropriate time
    + + + + \ No newline at end of file diff --git a/quarterly/2023-Q4-consensus/index.html b/quarterly/2023-Q4-consensus/index.html new file mode 100644 index 0000000000..a10145fd68 --- /dev/null +++ b/quarterly/2023-Q4-consensus/index.html @@ -0,0 +1,26 @@ + + + + + +Consensus Q4 2023 Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Consensus Q4 2023 Update

    · 3 min read
    Damian Nadales

    Areas of focus

    IssueStatus
    Implement legacy mode for UTxO-HD to keep baseline performance✅ Done
    Assist mainnet node release with initial Conway capabilities✅ Done
    Assist with test, benchmark, and improvements to CIP 1694✅ Done
    Assist with P2P IOG relay network shut down✅ Done
    Assist with repo transfer to Intersect✅ Done
    Support vendors to deliver contracts✅ Done
    Operation serenity Q4 2023✅ Done

    Highlights

    Implement legacy mode for UTxO-HD to keep baseline performance

    • ✅ We managed to run a UTxO-HD capable node in legacy mode, maintaining the baseline memory usage while keeping all the ledger state in memory.
      • While the legacy mode is not production-ready (it requires further integration and testing), it remains as a plan B should the need arise to release UTxO-HD if our stakeholders so demand it.
    • ✅ We pivoted to redesigning the Ledger DB API because:
      • This is needed for integrating the LSM-tree backend.
      • The redesign opened the possibility of implementing an in-memory backend that would keep the same performance and resource requirements as the baseline version (which needs to be confirmed by benchmarks).
    • ✅ We created a more general Ledger DB API.
    • 🛠️ We are integrating (into the feature branch) the existing Ledger DB implementations with the new API.
    • 🛠️ We are implementing the new in-memory backend.

    Assist mainnet node release with initial Conway capabilities, test, benchmark, and improvements to CIP 1694

    • ✅ We recognized that Conway introduces a new challenge in the versioning of NTC queries, and we resolved it (see 864 and 4770).

    Assist with P2P IOG relay network shut down

    • ✅ We created a prototype for the pre-Genesis State Machine for bootstrap peers, which is currently under test (see this PR).

    Assist with repo transfer to Intersect

    • ✅ We transferred the ouroboros-consensus repository to the Intersect GitHub organization.

    Support vendors to deliver contracts

    • Genesis
      • ✅ Interacted with the Consensus team and addressed resulting feedback on past deliverables.
      • ✅ Finished implementation of the testing infrastructure of Genesis
      • ✅ Started to refine the Proof of Concept demo into an actual implementation of the core components of the Genesis design.
    • 💾 LSM-tree implementation. Well Typed:
      • ✅ Finished the design of the public facing API.
      • ✅ Defined the LSM-tree database file-type formats.
      • ✅ Implemented property and model-based tests.

    Operation serenity Q4 2023

    • 🎉 We welcomed our newest team member @RenateEilers and assisted with her (ongoing) onboarding.
    • ✅ We implemented a simplification in the ChainSync mini-protocol that is also a step towards Ouroboros Chronos.
    • ✅ We added tests to check Consensus emits valid CBOR, which prevents the generation of invalid binary encoding.
    • ✅ We established and implemented an interface between Consensus tooling and P&T tooling, which constitutes a step towards incorporating component level benchmarks in our development process.
    + + + + \ No newline at end of file diff --git a/quarterly/2023-Q4-performance-and-tracing/index.html b/quarterly/2023-Q4-performance-and-tracing/index.html new file mode 100644 index 0000000000..f0ad3b6a74 --- /dev/null +++ b/quarterly/2023-Q4-performance-and-tracing/index.html @@ -0,0 +1,38 @@ + + + + + +Performance & Tracing Q4 2023 Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Performance & Tracing Q4 2023 Update

    · 3 min read
    Michael Karg

    2023-10 - 2024-01

    Main achievements

    • Release benchmarking, leading up to next mainnet release
    • Conway benchmarking of existing Babbage workloads
    • P2P benchmarks, validating viability as default topology
    • Added basic PlutusV3 capability of our tooling
    • Publication of benchmarking reports accompanying a mainnet release
    • GHC9 performance investigation
    • Finalized and validated all optimizations for the new tracing system
    • New Nomad benchmarking cluster: production use
    • Adjustment of our infrastructure to cover the migration to IntersectMBO
    • Conensus QTAs: prototype developed into alpha-stage benchmark
    • Successful on-boarding of a new team member

    Release benchmarking

    We've performed and analyzed benchmarks for node versions 8.6.x to 8.7.3, which is projected to be the next mainnet release, throughout Q4. +Along that way, we have identified, located and handled all performance blockers.

    Additionally, we've started publishing benchmarking reports here on Cardano Updates. The format is meant to increase transparency and +provide insight into those measurements that accompany mainnet releases - demonstrating the absence of performance regressions and development +of specific metrics over time.

    Conway benchmarks

    Furthermore, we've done first ever benchmarking of the Conway ledger. To that end, we've ported our Babbage workloads to Conway for +immediate comparability. Fortunately, we've have not found any performance regression in the Conway ledger.

    P2P benchmarks

    In Q4, we've validated P2P topology to be viable as default for both relay and block producer nodes. As a consequence, we've switched +to P2P topology for benchmarking baselines ourselves.

    GHC9 performance

    In Q4, evaluation of GHC9.2's and GHC9.6's optimizer in the context of the Cardano code base has been completed. +Eventually, GHC9.6 has shown itself to be much more suitable from a performance perspective. We're convinced that +with a few select annotations in the code, GHC9.6's optimizer can produce a result on par performance-wise with GHC8.10 - +which just was a great release in that regard. With GHC9.2 unfortunately, the changes would have to be more invasive - and thus more time-consuming.

    New nomad cluster

    We’ve moved the new Nomad cluster into production use and established new baselines for each workload on it. +Additionally, we’ve shut down the legacy cardano-ops benchmarking cluster, and archived all raw data from it.

    Consensus component QTAs

    We’ve developed the existing prototype into an automatable, self-contained benchmark called beacon, as well as systematized workloads and run structure for it. +Moreover, we’ve demonstrated usefulness of the metrics, their reproducibility, and identified domains viable for QTAs with system-level benchmarks.

    New team member

    We're happy to welcome a new joiner to our team! We've successfully onboarded him in Q4; he has taken +over the cardano-tracer service - the node-external component of the new tracing system - and has already +landed several valuable contributions.

    + + + + \ No newline at end of file diff --git a/quarterly/2023-Q4-sre/index.html b/quarterly/2023-Q4-sre/index.html new file mode 100644 index 0000000000..82c7199b92 --- /dev/null +++ b/quarterly/2023-Q4-sre/index.html @@ -0,0 +1,34 @@ + + + + + +SRE Q4 2023 Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    SRE Q4 2023 Update

    · One min read
    John Lotoski

    2023-10 - 2023-12

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • Cardano-parts support was added for cardano-db-sync, cardano-smash, +cardano-faucet, cardano-metadata, grafana monitoring along with a number of +other features

    • Completed migration of testnets from cardano-world to the cardano-playground cluster

    • Completed migration of the cardano book from cardano-world to the cardano-playground +cluster

    • Completed migration of pools from cardano-ops to the cardano-mainnet cluster

    • Creation of a mainnet p2p bootstrap cluster

    • Cardano sanchonet environment respins during the quarter for testing new +cardano-node pre-release Conway era functionality

    • All environments were upgraded to cardano-node 8.7.2 or 8.7.3 by the end of +the quarter

    • Completion of a govtool backend deployment for Voltaire chain testing

    • Creation of a cardano-monitoring repository, +cardano-monitoring:

      • A new repository enabling agile deployment of EC2 monitoring servers, +compatible with OpenTofu grafana and mimir providers

    Next steps

    • Scale down the mainnet non-p2p legacy cluster

    • Add deployment support for new network services, such as Mithril

    • Continue cardano-parts and operations improvements

    + + + + \ No newline at end of file diff --git a/quarterly/2024-Q1-sre/index.html b/quarterly/2024-Q1-sre/index.html new file mode 100644 index 0000000000..a89ee3c90f --- /dev/null +++ b/quarterly/2024-Q1-sre/index.html @@ -0,0 +1,49 @@ + + + + + +SRE Q1 2024 Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    SRE Q1 2024 Update

    · 2 min read
    John Lotoski

    2024-01 - 2024-03

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • All cardano release environments, including preview, preprod, mainnet legacy +and mainnet new clusters were upgraded through cardano-node releases of +8.7.3, 8.9.0 and finally into 8.9.1 by the end of March

    • All cardano pre-release environments, including sanchonet, private chain, and +shelley-qa clusters were upgraded through cardano-node releases of 8.7.3, +8.8.0-pre, 8.8.1-pre, 8.9.0 and finally into 8.9.1 by the end of March

    • Sanchonet and private chain environments were both re-spun once each during +this quarter to support new pre-release versions of cardano-node in the Conway era

    • Cardano-parts added a cardano-db-sync process-compose stack for each +environment

    • Cardano-parts added a cardano-node process-compose stack for each environment

    • Cardano-parts added enhancements for topology related nixos modules and +functions to accomodate new bootstrapPeer functionality, new topology +attributes and increased complexity network deployments.

    • Cardano-parts added support for mithril signers integrated with block +producers and a mithril-signer-verifier service for monitoring

    • Sanchonet, preview, preprod and mainnet IOG block producers are now signing +mithril certificates

    • Cardano-parts added support for mithril clients in nixos cardano-node systemd +service, process-compose job stacks and nix cardano-node entrypoint, all of +which also require any mithril snapshot to be signed by a trusted IOG pool +prior to use

    • Cardano-parts added ip integration tooling, so that similar to other deployer +tools like nixops, nixosConfigurations possess ip information which can be +used in module configuration

    • Cardano-db-sync snapshots server migration from legacy mainnet cluster to new +mainnet cluster with a rewrite of the snapshot service was completed

    • Cardano metadata server migration to Cardano Foundation was completed

    • BlockPerf, a cardano-node performance monitoring tool, was integrated into the +new mainnet cluster relays

    • Cardano-node bootstrapPeer functionality was added with node 8.9.x, requiring +effort to align nixos service module code between cardano-node nixos +services, iohk-nix topology generation, cardano-ops legacy code, and +cardano-parts module compatibility as well as feature test under various edge +cases

    • Cardano-playground added govtool backend support for private chain voltaire +testing team

    Next steps

    • Add support for the new cardano-node metrics system

    • Add IPv6 cardano-parts support

    • Extend govtool frontend and backend to a process-compose stack

    • Adapt network spin-up tooling for the new create-testnet-data cardano-cli command

    • Continue cardano-parts and operations improvements

    + + + + \ No newline at end of file diff --git a/quarterly/2024-Q2-sre/index.html b/quarterly/2024-Q2-sre/index.html new file mode 100644 index 0000000000..22a21254f1 --- /dev/null +++ b/quarterly/2024-Q2-sre/index.html @@ -0,0 +1,43 @@ + + + + + +SRE Q2 2024 Update | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    SRE Q2 2024 Update

    · 2 min read
    John Lotoski

    2024-04 - 2024-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • All cardano release environments, including preview, preprod, mainnet legacy +and mainnet new clusters were upgraded through various cardano-node releases of +8.9.2, 8.9.3, 8.9.4, 8.12.1, and finally into 8.12.2 by the end of +June

    • Cardano pre-release environments additionally iterated through pre-release +upgrades of 8.11.0-pre, 8.12.0-pre, and finally into 8.12.2 by the end +of June with the exception of sanchonet which remains pinned at 8.11.0-pre +until the next respin to support node version 9.0.0 or greater

    • Sanchonet environment was re-spun two times for pre-release Conway testing of +cardano-node versions 8.10.0-pre and 8.11.0-pre respectively

    • Private chain environment was re-spun three times to support fast epoch +Conway testing

    • Cardano-playground and cardano-mainnet repos have added ten operations +oriented documents for knowledge transfer

    • Block producers which participate in mithril signing will now produce metrics +and can have them scraped with the default metrics agent

    • A cluster spin-up job to utilize the new cardano-cli create-testnet-data +sub-command was created

    • A nixosModule, dashboards and alerts were added supporting the new cardano +tracing system

    • Many new operations scripts and features were added, including a template +diff and patch recipe to pull the latest cardano-parts improvements to +consuming repositories more easily

    Next steps

    • Finalize support for the new cardano-node tracing system once the service is +rewritten for general consumption

    • Add IPv6 cardano-parts support

    • Extend govtool frontend and backend to a process-compose stack once govtool +is publicly buildable again

    • Continue cardano-parts and operations improvements

    + + + + \ No newline at end of file diff --git a/quarterly/archive/index.html b/quarterly/archive/index.html new file mode 100644 index 0000000000..69f04ac283 --- /dev/null +++ b/quarterly/archive/index.html @@ -0,0 +1,26 @@ + + + + + +Archive | Cardano Development Updates + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/quarterly/atom.xml b/quarterly/atom.xml new file mode 100644 index 0000000000..43e30161c6 --- /dev/null +++ b/quarterly/atom.xml @@ -0,0 +1,745 @@ + + + https://updates.cardano.intersectmbo.org/quarterly + Cardano Development Updates Blog + 2024-07-17T12:35:56.000Z + https://github.com/jpmonette/feed + + Cardano Development Updates Blog + https://updates.cardano.intersectmbo.org/img/favicon.ico + + <![CDATA[Consensus Q2 2023 Update]]> + 2023-Q2-consensus + + 2024-07-17T12:35:56.000Z + + 2023-04 -- 2023-06

    Main achievements

    UTxO HD

    • We finished a major prototype refactoring, which includes:
      • A better and finer grained DB lock mechanism.
      • Elimination of race conditions.
      • Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.
      • Architectural simplifications and performance improvements.
    • We implemented a new package to support db-sync integration with UTxO-HD.
    • We ran another set of ad-hoc benchmarks:
      • We uncovered a performance regression on the Network component when using GHC-9.2/9.4.
      • The synchronization and replay speed are as expected.
      • However, we uncovered memory consumption issues (see figure below).
        • The in-memory backend is consuming more memory than the baseline.
        • The LMDB backend shows an unexpected memory usage peak.
        • Investigation on these issues is ongoing.
    • We integrated the latest changes in main branch.
      • This required a re-design of the mempool to include the mempool fairness +improvement.

    Genesis

    • The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.
      • This particular question was not anticipated when the Q2 PI was planned.
      • As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized.
      • That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package.
    • The IOG Researchers' feedback on the design was very valuable. It had two primary effects.
    • Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".
      • This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated.
      • The additional design complexity is relatively small.
    • Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.
      • The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era.
      • All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras.
      • Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later.
      • The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks.
    • Relevant questions that the IOG Researchers are still assessing.
      • These do not block the Genesis implementation, but do affect the ultimate values of specific parameters.
      • Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?
      • Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?

    Support

    • We performed an analysis on number of file descriptors used by Consensus, this +information can be used by the node operators to check if the number of file +descriptors they want to support are enough, thus improving the user (eg node +operator) experience.
    • We implemented a mempool fairness improvement, by which transactions are +guaranteed to be processed irrespective of their size.

    Technical debt

    • We fixed a bug in followers logic, which was discovered by our QuickCheck +property tests.
    • We created an immutable DB +server. This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results.
    • We created a db-truncater tool, which can be used in disaster recovery and benchmarking scenarios.
    • We created a benchmarks comparison tool that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance improvements introduced by the Ledger team in version 0.6.0.0 of Consensus wrt version 0.5.0.0.

    Fostering collaboration

    • We released fs-sim as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project.
    • We migrated the consensus code to a new repository, splitting +it from the ouroboros-network repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases).
    • We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users).
    • We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.

    Next steps

    UTxO HD

    Genesis

    • We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.
    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Network Q2 2023 Update]]> + 2023-Q2-network + + 2024-07-17T12:35:56.000Z + + 2023-04 - 2023-06

    Main achievements

    Eclipse Evasion

    We finalised the design of eclipse evasion and implemented its mechanism which +relays on connectivity to big ledger peers. Big ledger peers are the +largest ledger peers which accumulate 90% of stake (currently there are less +than 1000 of them). The outbound governor has new targets for known, +established and active big ledger peers which work in a similar way that +such targets work for ledger peers. The ouroboros-network#4662 PR is +currently in review.

    As part of this work we also identified a bug which would prevent a node to +connect to itself. Such connections are not easily detectable and are expected +to be dropped by the churn mechanism, nonetheless they should not be buggy. +The failure was discovered thanks to our e2e simulation of diffusion using +io-sim & property based testing.

    The PR also refactors the heart of the ouroboros-network interface reducing +technical debt that would otherwise accumulate.

    We also identified a possible improvement in the churn mechanism, which will be +implemented in Q3. Churn needs to await for peers to terminate, we can +improve the synchronisation. [ouroboros-network#4617]

    Ecosystem P2P Deployment Progress

    We reached 50% of stake in hands of SPOs who run at least on P2P relay. Now +also Emurgo and CF are running some P2P relays. Also 20% of IOG relays are +running in P2P mode.

    P2P Progress

    Peer Sharing

    We implemented bootstrapping for peer sharing (also known as light peer +sharing). New downstream (inbound) peers are now added to the known peers of +the outbound governor. Together with peer sharing this allows for non +registered relays to propagate through the network. ouroboros-network#3596

    Please note that peer sharing is disabled by default and is not considered safe +until Bootstrap Peers (see below) or Genesis is implemented.

    Diffusion (P2P)

    • We designed a feature which will reduce the load on IOG relays (in future +also run by CF & Emurgo). The feature consists of two parts. A new source +of peers called bootstrap peers (obtained from via an https request), the +ability to switch from bootstrap peers to ledger peers if the node is synced +(we are collaborating with the consensus team on the interface Bootstrap +Peers IER). This feature will be completed in Q3. +ouroboros-network#4530

    • We published a blog post about P2P design & implementation.

    • Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections: +ouroboros-network#4559.

    • We merged changes which allow the consensus layer to start / stop block +forging thread. This will allow to deploy P2P block producing nodes which +serve as a live backup node. ouroboros-consensus#140

    • We fixed a few bugs in local root peers DNS resolution service: +ouroboros-network#4583, ouroboros-network#4571.

    • We limited concurrency of DNS name resolutions: ouroboros-network#4596.

    • Galois Inc implemented query option for Handshake: ouroboros-network#4256.

    • We fixed handshake query timeout: ouroboros-network#4608.

    • We implemented warm valency for local root peers. This can help when using +DNS names in local root peers which resolve to many IP addresses. ouroboros-network#4575

    • We merged handshake changes which allow query protocol versions. Thanks to +James Parker from Galois Inc.: ouroboros-network#4256, cardano-cli#30.

    Other Improvements & Developments

    CDDL

    • We added node-to-node and node-to-client CDDL specs / tests for encoding +of NodeToNodeVersionData and NodeToClientVersionData.

    • We clarified an inconsistency between CDDL spec and implementation which is +highly polymorphic. We designed and implemented a fix for tx-submission +and local-tx-submission mini-protocols. Specs for other mini-protocols will +be improved at a later stage. ouroboros-network#4580

    Cardano Ping

    IOSim

    Typed Protocols

    Cardano Client

    • We fixed a bug in cardano-client-0.1.0.2 release which results in clients +(e.g. db-sync) negotiate an experimental protocol version.

    Technical debt

    CI improvements

    GHC 9.4 & 9.6

    We made all repositories under our control compile with ghc-9.4 and ghc-9.6 +which includes ouroboros-network, io-sim, typed-protocols and +Win32-network.

    Next steps

    We will continue towards our aspirational roadmap.

    • We will continue reviewing eclipse evasion.
    • As ouroboros-consensus#140 was merged, we are making progress towards +releasing P2P on block production nodes. We hope to analyse performance +regression on such nodes observed on the benchmarking cluster. roadmap-3887
    • We are also focused on roadmap-3969. Note that it was expanded in Q2.
    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + + <![CDATA[SRE Q2 2023 Update]]> + 2023-Q2-sre + + 2024-07-17T12:35:56.000Z + + 2023-04 - 2023-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Expanding the darwin CI cluster and adding aarch64 builder support
    • Adding bare metal capability to bitte clusters
    • Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality
    • Creation of pool performance analysis queries and scripting
    • Migration of testnet metadata server to cardano-world
    • Cardano shelley qa migration to cardano-world
    • Cardano sanchonet environment spin up to test Conway era functionality
    • Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature

    Next steps

    • Continue with the conversion of mainnet to using p2p topology
    ]]>
    + + John Lotoski + https://github.com/johnalotoski + + +
    + + <![CDATA[Performance & Tracing Q3 2023 Update]]> + 2023-Q3-performance-and-tracing + + 2024-07-17T12:35:56.000Z + + 2023-07 - 2023-09

    Main achievements

    • Release benchmarking
    • Developing and running UTxO-HD benchmarks - in-memory flavour
    • P2P benchmarks, facilitating rollout
    • Production-readiness of the new Nomad cluster has been reached
    • Optimization of and introspection capability for the new tracing system
    • GHC9 performance investigation (and possible remedy)
    • Conensus QTAs: first real-world application of prototype

    Release benchmarking

    Ongoing release benchmarking is a crucial safeguard to cardano-node's release cycle from a performance perspective. We've performed and analyzed benchmarks for node versions 8.2.x to 8.5 throughout Q3.

    UTxO-HD benchmarks

    Targeting a specific new feature in benchmarks requires development effort and fine-tuning the machinery. In Q3, we achieved that for the in-memory flavour of UTxO-HD, enabling benchmark delivery.

    P2P benchmarks

    In Q3, we performed additional P2P benchmarks to facilitate the comprehensive rollout of that feature.

    New nomad cluster

    The new hardware cluster for benchmarks, which is controlled through the new nomad backend, has received +various rounds of validation and adjustments in Q3 - in addition to finalizing integration with the rest +of our pipeline. The confidence in metrics gathered on the cluster is now sufficient for us to consider it +ready for production use.

    New tracing system

    Our new tracing system has received various rounds of optimization in Q3. We could verify in our benchmarks that +it is roughly on par with the legacy system while offering a richer feature set and greater flexibility.

    Additionally, in Q3 we equipped the system with an introspection capability. This is now used for generating +end user documentation that stays in-sync with definitions in code, and for automated consistency checking of the entire system.

    GHC9 performance

    In Q3, a joint investigation with DevX into GHC9's behaviour revealed where and how GHC9 misses opportunities for +optimization of generated code. This led to an approach to annotate our codebase accordingly to re-enable +those optimizations - which is still being validated.

    Consensus QTAs

    In collaboration with Consensus and DevX, we advanced the Consensus QTAs prototype capturing ledger operations' +performance characteristics. It's now applicable, and being applied, to a real-world task - namely +gathering evidence of the effect of aforementioned changes allowing for performant GHC9 builds.

    Next steps

    Benchmarking:

    In Q4, the focus will be on:

    • facilitating the next mainnet release
    • benchmarking runs in the Conway era
    • developing benchmarks / workloads for Conway-exclusive actions
    • implementing a specialized benchmark setup for the UTxO-HD on-disk variant
    • developing new Plutus benchmarks to safeguard Plutus V3
    • benchmarks regarding the rollout of P2P

    Performance

    For certain blocking performance issues we've located the cause, or even found a solution in a cross-team effort. In Q4 we'll advance that work to ensure the ongoing +release cycle for mainnet, as well as make GHC9 become a viable release platform.

    New tracing system

    For the new tracing system, we'll finalize optimization - current results are already on par with the legacy system. Furthermore, we will finish up comprehensive documentation, as well as description of a recommended setup, for which we can provide initial support.

    UTxO-HD monitoring

    We'll augment our analysis pipeline so it can process monitoring data from UTxO-HD nodes connected to mainnet in a meaningful way.

    Nomad backend

    From Q4 on, this backend will be in production use. We plan on adding various UX and flexibility improvements, and further fine-tuning some profiles for nomad.

    Workbench

    We will prepare for a future move of our performance workbench into a separate project. This entails restructuring, refactoring and reimplementation of certain few components that currently assume to always be in sync with cardano-node.

    Consensus component QTAs (co-development)

    In Q4 there will be ongoing work with and support for the existing prototype. We plan to identify a fixed set of input data that yields results of high informative value, and to formalize the process to a point that enables future automation.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    + + <![CDATA[SRE Q3 2023 Update]]> + 2023-Q3-sre + + 2024-07-17T12:35:56.000Z + + 2023-07 - 2023-09

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Completion of mainnet relay networking conversion to p2p topology
    • Cardano sanchonet environment respins for testing new cardano-node pre-release Conway era functionality
    • Stabilization of cardano-explorer in cardano-world using high IOPS bare metal machines
    • Creation of a nix content addressed packages repository, capkgs:
      • To provide lightweight release binaries thereby avoiding sluggish nix flakes and devShells
    • Creation of a cardano performance benchmarking cluster, cardano-perf:
      • To replace legacy cluster benchmark tooling
    • Creation of a cardano cluster composition repository, cardano-parts:
      • For enabling multi-cluster, multi-role cardano network deployments
    • Creation of a cardano testnets repository, cardano-playground:
      • Utilizing cardano-parts for testnet deployments
    • Creation of a sanchonet demo repository, sanchonet-demo:
      • Utilizing cardano-parts for fast sanchonet test environment and demo purposes

    Next steps

    • Continue with migration of cardano-world testnets to cardano-playground
    • Proceed with spinup of mainnet p2p bootstrap cluster
    • Scale down mainnet non-p2p legacy cluster at the appropriate time
    ]]>
    + + John Lotoski + https://github.com/johnalotoski + + +
    + + <![CDATA[Consensus Q4 2023 Update]]> + 2023-Q4-consensus + + 2024-07-17T12:35:56.000Z + + Areas of focus
    IssueStatus
    Implement legacy mode for UTxO-HD to keep baseline performance✅ Done
    Assist mainnet node release with initial Conway capabilities✅ Done
    Assist with test, benchmark, and improvements to CIP 1694✅ Done
    Assist with P2P IOG relay network shut down✅ Done
    Assist with repo transfer to Intersect✅ Done
    Support vendors to deliver contracts✅ Done
    Operation serenity Q4 2023✅ Done

    Highlights

    Implement legacy mode for UTxO-HD to keep baseline performance

    • ✅ We managed to run a UTxO-HD capable node in legacy mode, maintaining the baseline memory usage while keeping all the ledger state in memory.
      • While the legacy mode is not production-ready (it requires further integration and testing), it remains as a plan B should the need arise to release UTxO-HD if our stakeholders so demand it.
    • ✅ We pivoted to redesigning the Ledger DB API because:
      • This is needed for integrating the LSM-tree backend.
      • The redesign opened the possibility of implementing an in-memory backend that would keep the same performance and resource requirements as the baseline version (which needs to be confirmed by benchmarks).
    • ✅ We created a more general Ledger DB API.
    • 🛠️ We are integrating (into the feature branch) the existing Ledger DB implementations with the new API.
    • 🛠️ We are implementing the new in-memory backend.

    Assist mainnet node release with initial Conway capabilities, test, benchmark, and improvements to CIP 1694

    • ✅ We recognized that Conway introduces a new challenge in the versioning of NTC queries, and we resolved it (see 864 and 4770).

    Assist with P2P IOG relay network shut down

    • ✅ We created a prototype for the pre-Genesis State Machine for bootstrap peers, which is currently under test (see this PR).

    Assist with repo transfer to Intersect

    • ✅ We transferred the ouroboros-consensus repository to the Intersect GitHub organization.

    Support vendors to deliver contracts

    • Genesis
      • ✅ Interacted with the Consensus team and addressed resulting feedback on past deliverables.
      • ✅ Finished implementation of the testing infrastructure of Genesis
      • ✅ Started to refine the Proof of Concept demo into an actual implementation of the core components of the Genesis design.
    • 💾 LSM-tree implementation. Well Typed:
      • ✅ Finished the design of the public facing API.
      • ✅ Defined the LSM-tree database file-type formats.
      • ✅ Implemented property and model-based tests.

    Operation serenity Q4 2023

    • 🎉 We welcomed our newest team member @RenateEilers and assisted with her (ongoing) onboarding.
    • ✅ We implemented a simplification in the ChainSync mini-protocol that is also a step towards Ouroboros Chronos.
    • ✅ We added tests to check Consensus emits valid CBOR, which prevents the generation of invalid binary encoding.
    • ✅ We established and implemented an interface between Consensus tooling and P&T tooling, which constitutes a step towards incorporating component level benchmarks in our development process.
    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Performance & Tracing Q4 2023 Update]]> + 2023-Q4-performance-and-tracing + + 2024-07-17T12:35:56.000Z + + 2023-10 - 2024-01

    Main achievements

    • Release benchmarking, leading up to next mainnet release
    • Conway benchmarking of existing Babbage workloads
    • P2P benchmarks, validating viability as default topology
    • Added basic PlutusV3 capability of our tooling
    • Publication of benchmarking reports accompanying a mainnet release
    • GHC9 performance investigation
    • Finalized and validated all optimizations for the new tracing system
    • New Nomad benchmarking cluster: production use
    • Adjustment of our infrastructure to cover the migration to IntersectMBO
    • Conensus QTAs: prototype developed into alpha-stage benchmark
    • Successful on-boarding of a new team member

    Release benchmarking

    We've performed and analyzed benchmarks for node versions 8.6.x to 8.7.3, which is projected to be the next mainnet release, throughout Q4. +Along that way, we have identified, located and handled all performance blockers.

    Additionally, we've started publishing benchmarking reports here on Cardano Updates. The format is meant to increase transparency and +provide insight into those measurements that accompany mainnet releases - demonstrating the absence of performance regressions and development +of specific metrics over time.

    Conway benchmarks

    Furthermore, we've done first ever benchmarking of the Conway ledger. To that end, we've ported our Babbage workloads to Conway for +immediate comparability. Fortunately, we've have not found any performance regression in the Conway ledger.

    P2P benchmarks

    In Q4, we've validated P2P topology to be viable as default for both relay and block producer nodes. As a consequence, we've switched +to P2P topology for benchmarking baselines ourselves.

    GHC9 performance

    In Q4, evaluation of GHC9.2's and GHC9.6's optimizer in the context of the Cardano code base has been completed. +Eventually, GHC9.6 has shown itself to be much more suitable from a performance perspective. We're convinced that +with a few select annotations in the code, GHC9.6's optimizer can produce a result on par performance-wise with GHC8.10 - +which just was a great release in that regard. With GHC9.2 unfortunately, the changes would have to be more invasive - and thus more time-consuming.

    New nomad cluster

    We’ve moved the new Nomad cluster into production use and established new baselines for each workload on it. +Additionally, we’ve shut down the legacy cardano-ops benchmarking cluster, and archived all raw data from it.

    Consensus component QTAs

    We’ve developed the existing prototype into an automatable, self-contained benchmark called beacon, as well as systematized workloads and run structure for it. +Moreover, we’ve demonstrated usefulness of the metrics, their reproducibility, and identified domains viable for QTAs with system-level benchmarks.

    New team member

    We're happy to welcome a new joiner to our team! We've successfully onboarded him in Q4; he has taken +over the cardano-tracer service - the node-external component of the new tracing system - and has already +landed several valuable contributions.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    + + <![CDATA[SRE Q4 2023 Update]]> + 2023-Q4-sre + + 2024-07-17T12:35:56.000Z + + 2023-10 - 2023-12

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • Cardano-parts support was added for cardano-db-sync, cardano-smash, +cardano-faucet, cardano-metadata, grafana monitoring along with a number of +other features

    • Completed migration of testnets from cardano-world to the cardano-playground cluster

    • Completed migration of the cardano book from cardano-world to the cardano-playground +cluster

    • Completed migration of pools from cardano-ops to the cardano-mainnet cluster

    • Creation of a mainnet p2p bootstrap cluster

    • Cardano sanchonet environment respins during the quarter for testing new +cardano-node pre-release Conway era functionality

    • All environments were upgraded to cardano-node 8.7.2 or 8.7.3 by the end of +the quarter

    • Completion of a govtool backend deployment for Voltaire chain testing

    • Creation of a cardano-monitoring repository, +cardano-monitoring:

      • A new repository enabling agile deployment of EC2 monitoring servers, +compatible with OpenTofu grafana and mimir providers

    Next steps

    • Scale down the mainnet non-p2p legacy cluster

    • Add deployment support for new network services, such as Mithril

    • Continue cardano-parts and operations improvements

    ]]>
    + + John Lotoski + https://github.com/johnalotoski + + +
    + + <![CDATA[SRE Q1 2024 Update]]> + 2024-Q1-sre + + 2024-07-17T12:35:56.000Z + + 2024-01 - 2024-03

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • All cardano release environments, including preview, preprod, mainnet legacy +and mainnet new clusters were upgraded through cardano-node releases of +8.7.3, 8.9.0 and finally into 8.9.1 by the end of March

    • All cardano pre-release environments, including sanchonet, private chain, and +shelley-qa clusters were upgraded through cardano-node releases of 8.7.3, +8.8.0-pre, 8.8.1-pre, 8.9.0 and finally into 8.9.1 by the end of March

    • Sanchonet and private chain environments were both re-spun once each during +this quarter to support new pre-release versions of cardano-node in the Conway era

    • Cardano-parts added a cardano-db-sync process-compose stack for each +environment

    • Cardano-parts added a cardano-node process-compose stack for each environment

    • Cardano-parts added enhancements for topology related nixos modules and +functions to accomodate new bootstrapPeer functionality, new topology +attributes and increased complexity network deployments.

    • Cardano-parts added support for mithril signers integrated with block +producers and a mithril-signer-verifier service for monitoring

    • Sanchonet, preview, preprod and mainnet IOG block producers are now signing +mithril certificates

    • Cardano-parts added support for mithril clients in nixos cardano-node systemd +service, process-compose job stacks and nix cardano-node entrypoint, all of +which also require any mithril snapshot to be signed by a trusted IOG pool +prior to use

    • Cardano-parts added ip integration tooling, so that similar to other deployer +tools like nixops, nixosConfigurations possess ip information which can be +used in module configuration

    • Cardano-db-sync snapshots server migration from legacy mainnet cluster to new +mainnet cluster with a rewrite of the snapshot service was completed

    • Cardano metadata server migration to Cardano Foundation was completed

    • BlockPerf, a cardano-node performance monitoring tool, was integrated into the +new mainnet cluster relays

    • Cardano-node bootstrapPeer functionality was added with node 8.9.x, requiring +effort to align nixos service module code between cardano-node nixos +services, iohk-nix topology generation, cardano-ops legacy code, and +cardano-parts module compatibility as well as feature test under various edge +cases

    • Cardano-playground added govtool backend support for private chain voltaire +testing team

    Next steps

    • Add support for the new cardano-node metrics system

    • Add IPv6 cardano-parts support

    • Extend govtool frontend and backend to a process-compose stack

    • Adapt network spin-up tooling for the new create-testnet-data cardano-cli command

    • Continue cardano-parts and operations improvements

    ]]>
    + + John Lotoski + https://github.com/johnalotoski + + +
    + + <![CDATA[SRE Q2 2024 Update]]> + 2024-Q2-sre + + 2024-07-17T12:35:56.000Z + + 2024-04 - 2024-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • All cardano release environments, including preview, preprod, mainnet legacy +and mainnet new clusters were upgraded through various cardano-node releases of +8.9.2, 8.9.3, 8.9.4, 8.12.1, and finally into 8.12.2 by the end of +June

    • Cardano pre-release environments additionally iterated through pre-release +upgrades of 8.11.0-pre, 8.12.0-pre, and finally into 8.12.2 by the end +of June with the exception of sanchonet which remains pinned at 8.11.0-pre +until the next respin to support node version 9.0.0 or greater

    • Sanchonet environment was re-spun two times for pre-release Conway testing of +cardano-node versions 8.10.0-pre and 8.11.0-pre respectively

    • Private chain environment was re-spun three times to support fast epoch +Conway testing

    • Cardano-playground and cardano-mainnet repos have added ten operations +oriented documents for knowledge transfer

    • Block producers which participate in mithril signing will now produce metrics +and can have them scraped with the default metrics agent

    • A cluster spin-up job to utilize the new cardano-cli create-testnet-data +sub-command was created

    • A nixosModule, dashboards and alerts were added supporting the new cardano +tracing system

    • Many new operations scripts and features were added, including a template +diff and patch recipe to pull the latest cardano-parts improvements to +consuming repositories more easily

    Next steps

    • Finalize support for the new cardano-node tracing system once the service is +rewritten for general consumption

    • Add IPv6 cardano-parts support

    • Extend govtool frontend and backend to a process-compose stack once govtool +is publicly buildable again

    • Continue cardano-parts and operations improvements

    ]]>
    + + John Lotoski + https://github.com/johnalotoski + + +
    + + <![CDATA[Consensus Quarterly Update]]> + 2023-04-25-consensus + + 2023-04-25T00:00:00.000Z + + Consensus Quarterly Update

    2023-01 - 2023-03

    Main achievements

    UTxO HD

    • We finished the testing activities for the prototype, which involved adding +new tests, and fixing and enabling temporarily disabled tests.
    • We spent a substantial amount of effort refactoring and cleaning the +prototype.
    • We audited the UTxO HD prototype to make sure it can accommodate the migration +of other tables (eg stake-keys registration) from memory to disk. The result +of the audit was positive.
    • We ran ad-hoc benchmarks for reading keys and flushing values to disk. No +unexpected costs found.
    • We ran the first system level benchmarks. The performance regressions reported +were due to an unrealistic snapshotting rate. We need to re-run them again +after we design a more fine grained locking mechanism.

    Genesis

    • We elaborated a roadmap of the remaining work for Genesis.
    • We presented the design to the IOG Researchers and PNSol on February 20. The +design was well received. We updated the Genesis design with the researcher's +feedback.
      • We plugged the new DoS vector identified during the aforementioned +presentation.
    • We developed a generator for adversarial leader schedules that satisfy key +Ouroboros properties, which will be used to test the Genesis design.
      • The generator enables use of smaller Ouroboros parameters, which makes +extrema more likely and counterxamples easier interpret.
    • We wrote up the latest design iteration.
    • We continued benchmarking the Chain Sync Jumping prototype. In particular:
      • We debugged the prototype's performance regression, and unmasked the +actual cause by patching our initial theory (bad queuing behavior)
      • We identified and validated the actual cause (a pathological case in +BlockFetch tiebreaker).

    Support

    • We created two new tools. One for dumping CBOR encoded blocks to JSON. Ahother +to serve a local immutable DB.

    Conway era

    • We integrated the Conway era into consensus.

    Technical debt

    • We fixed a bug with followers, which was discovered by property tests.
    • We developed a DSL for specifying and running ChainDB test cases.
    • We fixed failing tests with iterators.
    • We created micro-benchmarks for adding transactions to the mempool.

    Fostering collaboration

    • We released a new technical documentation site for consensus.
    • We factored out several packages to external repositories. Some of this work +originated in the UTxO HD workstream.

    Next steps

    UTxO HD

    Genesis

    Support

    • Design Consensus side of hardfork-enactment in the Voltaire phase +(#4180).
    • Estimate the number of file descriptors Consensus needs +#20.

    Tech debt

    • Identify Quantitative Timeliness Agreements (QTAs) metrics that we can define +for consensus. Pick one and implement benchmarks for it.

    Fostering collaboration

    • Onboard a new team member.
    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Network Q1 2023 Update]]> + 2023-04-04-network + + 2023-04-04T00:00:00.000Z + + 2023-01 - 2023-03

    Main achievements

    Gradual dynamic P2P release on mainnet

    We released two version of cardano-node with dynamic P2P capabilities:

    • 1.35.6
      • we found and fixed a bug in exception handling in peer-state-actionspull-4357
      • we found and fixed a busy loop when demoting a peer from hot to warm pull-4385
    • 1.35.7
      • includes interoperability in the legacy non-p2p network stack pull-4467
    • we fixed a busy loop of demotion & promotions: warm -> hot -> warm[pull-4485] /it will be included in cardano-node-8.0.0 release/.

    Currently there are more than 200 P2P relays on mainnet.

    Peer Sharing

    We implemented /peer sharing/ pull-4019 which will be available as an +experimental feature in one of the future cardano-node releases.

    We implemented /light peer sharing/, e.g. adding inbound connections to the set +of known peers of the outbound governor, which allows to bootstrap relays not +registered on chain. This complements peer sharing. The pull-4277 is in +late review stages.

    Eclipse Evasion

    We finalised design of eclipse evasion and we started implementing it. We +have an initial implementation (not merged). We are in the process of extending +our test suite to cover new implementation details: issue-3886, pull-4462.

    Cardano Network Service Assurance

    Galois has been making progress on Cardano Network Service Assurance project.

    • In cardano-node, they have developed a datapoint abstraction that creates +a queue of (existing) log events, they now have two such datapoints (of log +events) implemented.

    • They have developed a datapoint client executable that can connect to a node +which serves the "new tracing".

    • They have been exploring approaches for the consolidation and analysis of +datapoint data to extract actionable network health status.

    Cardano-Node

    • We made it possible to configure accepted connections limit pull-4902.

    Testing improvements

    • We fixed a bug in network simulation implementation of TCP simultaneous open pull-4265.

    • We introduced header-body split in the diffusion simulation pull-4419 (in review).

    • We introduced initiator only nodes in the diffusion simulation pull-4280.

    • We fixed a connection-manager test failure issue-4370.

    Technical Debt

    • We refactored Snocket interface decoupling it from the multiplexer +pull-4260. This simplified some aspects of the KES agent implementation.

    • We introduces a record for CBOR codecs which are used for various data +structures by mini-protocol codecs pull-4430.

    Documentation

    • We explained some limitations of CDDL in our technical report pull-4351.

    IO-Sim

    • We fixed implementation of MVar's pull-70.

    NoThunks

    • We published a new version of nothunks library to Hackage.

    Next steps

    • Finish implementation & testing of eclipse evasion issue-3886.
    • Optimise connectivity to peers behind firewall issue-4381.
    • Finish the work on enabling block production dynamically to allow using P2P +on block producers issue-3159.
    • If time permits we would like also to reserve some time for finishing +publication of io-sim to Hackage.
    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + + <![CDATA[Ledger Team Update]]> + 2023-04-03-ledger + + 2023-04-03T00:00:00.000Z + + Ledger Quarterly Update

    2023-01 - 2023-03

    Main achievements

    CIPs

    • Entering the Voltaire phase - +CIP-1694 received a major update after participation in the design has expanded to +more and more people, including those who attended the Colorado workshop. +See CIP-1694.
    • Ledger CIP category - +The ledger team continues to embrace the CIP process, and has begun the process of +registering the ledger as an official CIP category. +See CIP-84.
    • Ledger serialization - +A CIP for the ledger serialization deprecation cycle has been accepted. +See CIP-80.

    Formal ledger model

    Our new formal specifications backed by Agda have seen a lot of progress. +The majority of the ideas in CIP-1694 are now present, and we have made enough progress +that we can now safely say that the PDF produced by the Agda model will be the +official ledger specification for the Conway ledger era. +See the repository.

    Conway ledger era

    Progress on the Haskell implementation of CIP-1694 has gone hand in hand with the formal model. +The major component still missing is the DRep stake distribution, which still presents some +technical challenges.

    [pull-3176] +[pull-3216] +[pull-3226] +[pull-3291] +[pull-3326] +[pull-3330] +[pull-3339]

    DRep stake distribution computation

    Adding another large stake distribution to the ledger state must proceed with caution. +We do not want the memory used by the node to increase too much, +and performance problems can lead to reduced block production. +We have prototyped, tested, and benchmarked several approaches that could give us +the current DRep stake distribution at each epoch boundary. +This has very important implications, since we want every ADA holder to be able to at any +time (such as during a contentious vote) register themselves as a DRep and still have time +to vote themselves on the issue.

    [pull-3344] +[pull-3353] +[pull-3364]

    Integration work

    The ledger has made some wonderful improvements over the past six months, +but which entail a significant amount of integration efforts:

    • Our new versioned CBOR schemes
    • Individual deposit tracking
    • An improved cross-era interface utilizing lenses
    • A new ledger API
    • Re-arranging the ledger stake in preparation for CIP-1694
    • Versioning our Haskell packages +using CHaPs.
    • Consistent conventions for variable names

    [pull-3279] +[pull-3282] +[pull-3288] +[pull-3289] +[pull-3292] +[pull-3297] +[pull-3298] +[pull-3299] +[pull-3300] +[pull-3302] +[pull-3303] +[pull-3308] +[pull-3342] +[pull-3345] +[pull-3356] +[pull-3357] +[pull-3360] +[pull-3361] +[pull-3363] +[pull-4349] +[pull-378] +[pull-376] +[pull-373] +[pull-370] +[pull-361] +[pull-4976] +[pull-5013]

    Deposit tracking

    Individual deposits (for stake credential and stake pool registrations) were not tracked by the ledger. +Deposits were returned according to the current protocol parameters. +When the values of these two protocol parameters change, the deposit pot +is adjusted by adding to, or removing from, the reserves.

    This has several problems:

    • Most people expect a deposit to be paid back exactly.
    • We cannot increase the deposit amount once the reserves hits zero.
    • If it becomes known that the deposit amount is going to be increased, free Lovelace can be earned by registering credentials.
    • Because of the problems above, it is going to be incredibly hard to ever change the values.
    • There is a serious issue involving hard forks. +The consensus layer makes the decision about whether or not to enact a hard fork based on +the protocol parameter update state two stability windows before the end of the epoch. +However, the ledger will reject a protocol parameter update on the epoch boundary +if the deposit pot adjustments cannot be reconciled with the reseve pot. +This means that if quorum is met regarding changing the major protocol version, +but the update is rejected on the epoch boundary, consensus will change the era but the +ledger will not change the major protocol version, leaving the ledger in a split-brain state.

    Because we never actually changed the values of the two deposits amounts in the protocol parameters +on mainnet, we were able to retroactively change the behavior. +We made the following changes:

    • Individual deposits are tracked in the DState.
    • The amount deposited is always returned.

    [pull-3195] +[pull-3202] +[pull-3217]

    New ledger API

    We have significantly built up the ledger API. +We will eventually replace much of the cardano-api in the node repository with this ledger API.

    [pull-3242] +[pull-3248] +[pull-3328]

    Constraint-based generators

    Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks +which span several epochs, mimicking a real network. +These tests are, in theory, excellent for checking properties. +They are, however, very difficult to maintain and are not as random as we would like +(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We have a new declaritive infrastructure for building constraint-based generators, +which instead generate a random ledger state representative of not just an initial state, +but also those representative of the end result of a long sequence of valid blocks. +Moreover, these generators are very fast and are much more random than our old generators. +Before we can start using them for our existing property tests, however, we still need to +expand them to generate a valid block for a given ledger state.

    [pull-3219]

    Technical debt

    We continued to address technical debt as much as we can.

    [pull-3167] +[pull-3170] +[pull-3172] +[pull-3175] +[pull-3184] +[pull-3205] +[pull-3208] +[pull-3210] +[pull-3212] +[pull-3218] +[pull-3222] +[pull-3223] +[pull-3224] +[pull-3225] +[pull-3229] +[pull-3239] +[pull-3241] +[pull-3244] +[pull-3245] +[pull-3249] +[pull-3260] +[pull-3263] +[pull-3264] +[pull-3268] +[pull-3269] +[pull-3270] +[pull-3274] +[pull-3276] +[pull-3277] +[pull-3286] +[pull-3290] +[pull-3295] +[pull-3296] +[pull-3306] +[pull-3307] +[pull-3310] +[pull-3311] +[pull-3316] +[pull-3320] +[pull-3323] +[pull-3327] +[pull-3331] +[pull-3332] +[pull-3333] +[pull-3338] +[pull-3341] +[pull-3347] +[pull-3350] +[pull-3351] +[pull-3352] +[pull-3354]

    Critical fixes

    We fixed two critical issues:

    • Growing block production delay on the epoch boundary: [pull-3209]
    • Unexpected node shutdown from balanceR: [pull-3343]

    Next steps

    • Conway spec - +Complete the first version of the conway formal specification.
    • DRep stake distribution - +Have the ledger compute the DRep stake distribution with acceptible performance.
    • Devnet ready - +Have the Haskell implementation of the conway era in sync with the formal specification, +and integrate the changes with consensus and node. +All the details might not be finalized, but the wire specification and the API should +be stable so that conway can be placed on a devnet for tool builders to start integrating with.
    • Plutus V3 - +Integrate Plutus V3 into the ledger, including a new script context which supports DReps.

    More details

    This quarterly report was based off of the following fortnightly ones:

    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Consensus Quarterly Update]]> + 2023-01-18-consensus + + 2023-01-18T00:00:00.000Z + + Consensus Quarterly Update

    2022-12 - 2023-01

    Main achievements

    UTxO HD

    The prototype is feature complete and thoroughly tested at the consensus level. +In particular, we invested a lot of time in writing property-test for the +mempool, and other crucial new parts of the prototype. Now we are ready to run +integration tests and system-level benchmarks.

    Genesis

    We identified and fixed a slowdown in cross-era forecasting that was inhibiting +our efforts to benchmark the ChainSync Jumping prototype. This resulted in a 7% +speedup in full sync times in the baseline.

    We also started prototyping a self-contained implementation of the Genesis +dynamics (in particular of the parts intentionally not part of the ChainSync +Jumping prototype) that furthered our understanding of subtleties and edge +cases.

    Support

    • We worked on designing integration of new VRF and KES crypto into consensus.
      • Crypto class was split into two parts: Crypto and HeaderCrypto.
      • With the Ledger team's help, we refactored cardano-ledger to use a proxy +type for VRF.

    Conway era

    • PR went through its second review round. It is about to be merged, but it got +delayed due to people's availability during Christmas break.

    Technical debt

    • We improved the capabilities of our io-sim library, which is key for testing +and simulating Cardano components.
    • We removed thunks from epoch translations in the ledger, which is important +for reducing memory consumption of the Cardano node.

    Fostering collaboration

    • We added a tutorial on how to instantiate the Consensus layer to run custom +ledgers. This should be a valuable resource to people looking to roll their +own custom blockchain (either for commercial or research purposes).
    • We added an overview of consensus to the top level +documentation of +ouroboros-network. This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    Next steps

    UTxO HD

    • Evaluate the extensibility of the prototype. Moving the UTxO to disk is only +the first step towards reducing the memory requirements of Cardano node, and +ensuring its long term sustainability. In the future, we plan on moving other +large maps, such as delegation maps. The prototype should be able to +accommodate these changes without any major modifications.
    • Start the integration with other downstream components, such as the wallet and +db-sync. The idea is to identify and address any potential pain points that +might arise during this integration.
    • Run integration tests and system-level benchmarks.

    Genesis

    • Finish benchmarking and tuning the fast-path ChainSync Jumping prototype
    • Expand and optimize the self-contained implementation of the Disconnect Rule +(including density comparisons and the LoE)
    • Develop documentation and smoke tests for these components.
    • Start modifying the ChainSync Client for the LoP and LoR.

    Support

    • Help the Network team with diagnosing performance regression in block +production.

    Tech debt

    • Fix property-test failures concerning iterators (#3999 and +#4183).

    Fostering collaboration

    Risks

    UTxO HD

    • Moving other parts of the ledger state to disk might require a major redesign +of the prototype. For instance, if it turns out that the epoch change rules +require access to the full ledger state. If this is the case, we might +accept this risk and do the redesign after the initial release of UTxO-HD.
    • Integration with downstream clients might require more work than we +anticipate.
    • Access to the benchmarking's team time and resources.
    • Benchmarking results might show significant performance degradation, which +will require additional work if such performance degradation is not accepted +by other stakeholders.
    • The prototype's performance might not be accepted by other stakeholders. Here +we need to clearly communicate that this is necessary to ensure that as the +blockchain size grows, the node can operate within reasonable memory +constraints.
    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Network Quarterly Update]]> + 2023-01-13-network + + 2023-01-13T00:00:00.000Z + + Network Quarterly Update

    2022-11 - 2023-01

    Summary

    The primary goal of the networking team was to focus on the single relay +release of P2P. We fixed a number of small late bugs, and concluded QA +& performance testing. Although it was discovered a regression in performance +of block production when P2P is enabled, relaying with P2P performs better +comparing to a non p2p. We concluded that this is not a blocker for the Single +Relay Release which is planned shortly.

    Peer sharing has gone through review and final review is +just being done right now. After merging it will still be disabled (hidden +behind a flag) as it's not safe without eclipse evasion. We started +implementing light peer sharing (i.e. include inbound peers into known peer set +of the outbound governor).

    We started a detailed eclipse evasion design, it will continue in the next +quarter.

    We also made a major revision of package structure of the network packages. We +ended up with a very clean dependency graph (pr #4155).

    Armando Santos delivered a talk at the ODOPIS 2022 conference on principles +of distributed systems in Brussels. The slides are available here.

    Neil Davies gave an invited seminar on DeltaQ at Université Catholique de +Louvain.

    We also found and fixed a few of bugs:

    • a bug in keep alive mini-protocol which resulted in warm to cold transitions +to be always executed through a timeout path rather than do a clean demotion +([pr #4168]).

    • fixed an assetion failure in the outbound governor (issue #4177)

    Next steps

    We will work towards the next release of P2P for block producer nodes. This includes:

    • analysing performance regression for BP nodes when using P2P
    • finish the work on controlling the block forger through node kernel (pr #3800)
    • address issue #3907 and write a script to analyse deployment of P2P relays

    We would like also to push forward eclipse evasion. Although most of the work +has be done already the release of io-sim on Hackage will happen in the +next quarter.

    We would also like to address chain-sync timeout issue recently +diagnosed by Karl Knutsson.

    If time permits we would also like to address some technical debt, especially:

    Risks

    The performance regression for block producer with P2P needs to be investigated +in the near future. This is blocker for the release of P2P on BP nodes.

    Detailed log

    Contributions to Ouroboros-Network

    • We added TraceDemoteLocalAsynchronous, which enables notification of critical issues for SPOs
    • We fixed cardano-ping compatibility with NodeToNodeV_10 (P2P, pr #4165)
    • We fixed a bug in demotion peers to cold which affected P2P nodes (commit-61058aa5c2)
    • Karl Knutsson enhanced SendFetchRequest (commit-bb1c3dddee), open-source contribution)
    • We turned SizeInBytes into a newtype.
    • We extended CONTRIBUTING.md, README.md, added CODE_OF_CONDUCT.
    • We fixed DNS test failure issue #4191
    • We fixed a simulation bug found in issue #4258
    • [pr #4168]
    • issue #4177

    Contributions to Cardano-Node

    • We maintained the Single Relay Release pr #4612, (e.g. fixing CI issues, +Rebasing it when necessary, publishing packages to Cardano Haskell Packages);
    • We enhanced JSON serialisation / deserialisation of NodeToNodeVersion and NodeToClientVersion;

    Contributions to IOSim

    • We started to use Cardano Haskell Packages for IOSim (pr #48)
    • We updated change log files
    • We added support of ghc-9.4 (pr #50)

    We also addressed the following issues in pr #57 in order to prepare the package for publication on Hackage:

    • refactored io-classes timers API (issue #46);
    • created a new package si-timers which exposes an interface using SI units +and is safe on 32-bit systems (issue #59);
    • added monad transformers instances for classes defined in io-classes (issue #58);
    • created io-classes-mtl package which includes (experimental) instances for monad transformers;
    • provide MonadMonotonicTimeNSec in io-classes and MonadMonotonicTime in si-timers (so that io-classes follow the base package);
    • added registerCancellableDelay in si-timers (which allowed us to hide fancy timer api and clean io-classes)
    • added support for js_HOST_ARCH (the new GHC JS backend)

    Note the pr #57 contains almost 40 commits, and was a major step forward for +io-sim ecosystem. We also prepared a draft pr #4281 which updates +ouroboros-network.

    Other changes for 1.0.0.0 release on Hackage:

    • Refactored test suite (pr #47)
    • Updated documentation, cabal files, CONTRIBUTING, SECURITY documents, etc in pr #60, currently under review.
    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + + <![CDATA[Open-Source Update]]> + 2023-01-13-open-source + + 2023-01-13T00:00:00.000Z + + Open Source Quarterly Update

    2022-11 - 2023-01

    Summary

    In the last quarter the open-source initiative delivered a comprehensive report +on the state of our repositories. As part of this work stream we +identified the key open-source repositories for the cardano project across all +the projects From a list of more than 500 repositories (some of which are +forks) we identified key repositories which constitute the core of Cardano. +20 of them were identified as to be transferred to the future MBO which will +govern Cardano development. Some where excluded (like io-sim and +typed-protocols), to be govern by IOG, since they have a much broader +application than Cardano itself, and thus we think their open-source future +will be better outside of the Cardano umbrella.

    Christian Taylor identified a number of ways we can improve our repositories to +make them more attractive for open-source contributions by analysing each of +them. This includes adding or improving various documentation files, like +CONTRIBUTING files, adding code of conduct, improving readme files, issue +& pull request templates etc. Christian also computed various interesting +metrics which gives a very good insight into the development practices: e.g. +average merge ratio, average number of reviews, comments and many more! The +presentation is available here.

    We followed with work on the Cardano Engineering Handbook. We included +a standard code of conduct which is now used by most important projects in the +Cardano space. We included cardano-node's security policy and added +a responsible disclosure policy. We also described how roles and +responsibilities should be clarified. This progress was made by +a collaborative effort of the Cardano Core, Plutus and Architecture teams, and +it wouldn't be possible without Michael Peyton Jones, Arnaud Bailly, Kevin +Hammond, Jared Corduan and Marcin Szamotulski.

    We also improved the documentation of key repositories, by adding description, +improving their README file & CONTRIBUTING files, adding code of conducts +following the Cardano Engineering Handbook. This includes improvements to:

    And also

    The work was carried by Marcin Szamotulski, Addie Girouard and Jared Corduan.

    In this quarter we also identified a number of projects which can be published to +Hackage (Haskell's package repository) or crate (Rust package repository). +The list contains 21 packages, 2 of which (hedgehog-extras and +quickcheck-dynamic) are already published on Hackage and another 5 (from +the io-sim repository) are close to be published.

    Detailed log

    The progress of the open-source project is tracked in this project.

    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + + <![CDATA[Consensus Quarterly Update]]> + 2022-11-15-consensus + + 2022-11-15T00:00:00.000Z + + Consensus Quarterly Update

    2022-09 - 2022-11

    Main achievements

    UTxO HD

    • As a consequence of the errors observed when running distributed mempool +benchmarks, we re-designed the UTxO HD mempool integration, which fixed these +errors and lead to a simpler and more maintainable design.

    • We focused on increasing test coverage for the UTxO-HD prototype. In +particular, we added property tests for:

      • Backing store (work ongoing)
      • Era transitions
    • The property tests we added uncovered several bugs, which is a great result +given the exponential increase in the cost of finding bugs as they are closer +to deployment.

    • One of the errors found by our tests required us to work on improvements in +the Haskell bindings for LMDB. This work is ongoing.

    • We started working on the mempool property tests that will exercise the new +code paths that UTxO HD introduced.

    • We developed, benchmarked and tested an implementation of sequences of +differences based on "anti-diffs". Performance results of diff sequence +operations show that we achieved a speedup of about 4x across several +scenarios. Note: this speedup is taking into account diff sequence operations +only, so the consensus-wide speedup is less than 4x.

    • We integrated the "anti-diff" prototype into the UTxO HD feature branch.

    Genesis

    • We wrote a simulator that demonstrates soundness of an abstract implementation +of the new chain selection rule.
    • We elaborated a draft specification for the Genesis implementation (currently +awaiting feedback from other architects).
    • We elaborated a draft specification for the ChainSync Jumping optimization. In +particular, this includes a proof sketch that the latter preserves liveness +and safety in all cases.
    • With the Networking team, we co-designed the eclipse avoidance mechanism, +specifically its coherence with the Genesis implementation plan's security +and its dependence on the new ChainSync Jumping optimization.
    • We implemented a prototype for ChainSync Jumping. Initial benchmarks showed a +performance degradation wrt the baseline. Our optimization attempts so far +have brought the performance closer to the baseline, but not yet to parity.

    Conway era

    • We did most of the heavy lifting required to integrate the Conway era into the +Consensus layer.

    Technical debt

    • We started working on enabling CI nightly tests, which revealed several test +failures due to thunks being found it data structures used by the ledger and +consensus. We made a lot of progress fixing those thunk errors, but some +errors still remain.

    • We elaborated a db-analyser benchmark for the ledger operations. This led us +to the identification of high processing time at epoch boundaries, and we +could not observe any performance degradation that can be attributed to era +changes.

    • We fixed a source of flakiness in the ChainDB QSM test.

    • We clarified a common source of confusion around VRF tie-breaking and +cross-era chain selection.

    • We fixed a bug in the maximum-allowed ledger major protocol version.

    Fostering collaboration

    • We spent time making cardano-updates the central source of information for +the core teams stakeholders.
    • We went through the Galois gap analysis and extracted actionable points to +take on next.
    • Bart and Yogesh continued with their onboarding and stated making substantial +contributions to consensus.

    Next steps

    UTxO HD

    • Finish the mempool property tests.
    • Benchmark the latest version of the prototype.
    • Elaborate a document that describes new integration test scenarios and pass it +to the SDET team.
    • Bring query UTxO by address command performance on par with the baseline +version.

    Genesis

    • Receive and incorporate Duncan's feedback on the first draft specification for +the Genesis implementation.
    • Begin prototyping the first genesis implementation, unless the first draft +needs major changes.
    • Draft a second revision of the Genesis report.
    • Review the second revision with a wider audience, which includes at least +Alexander Russell. That feedback will drive a third and hopefully final +revision.
    • Investigate how to mitigate the ~30% slowdown we have observed so far in the +ChainSync jumping prototype, and try to mitigate it. In particular, we might +need to optimize the existing BlockFetch logic.

    Tech debt

    • Enabling nightly CI tests.

    Fostering collaboration

    • Merge the tutorial document Galois wrote; requires CI integration.
    • Come up with our own documentation improvements, many of which were suggested +in the Galois gap analysis.
    • Try to hire a new team member.
    ]]>
    + + Damian Nadales + https://github.com/dnadales + + +
    + + <![CDATA[Network Team Update]]> + 2022-11-09-network + + 2022-11-09T00:00:00.000Z + + Network Quarterly Update

    2022-09 - 2022-11

    Summary of most important improvements

    During this quarter the networking team delivered low level specification of +peer sharing & eclipse evasion. We held a session with the consensus & the +scientists; we got a positive feedback on the design.

    Further we focused on implementation of peer sharing. We produced a detail +design and an early implementation.

    We prepared the P2P Single Relay Release (cardano-node-1.35.5). It +includes over 130 patches of network stack improvements over the +previous version 1.35.4, which were accomplished over a longer period of +time. Among them are both bug fixes and UX improvements for stake pool +operators like simplified format of the topology file, or +improvements in the logged messages:

    We also provide better integration with systemd (socket +activation improvements) or improvements in the networking stack:

    • exit policies,
    • peer metrics improvements,
    • DNS TTL improvements (which make it harder to misconfigure the +system, an issue discovered by the performance & monitoring team),
    • do not trigger inbound idle timeout for node-to-client connections (pr +#3844), an issue reported to us by Matthias Benkort from +Cardano Foundation.

    Duncan has been making progress with the input endorsers demo. His simulation +provides a useful animated visualisation and live quantification of behaviour +of the modeled design.

    We also improved our e2e diffusion simulation by implementing header-body +split, similar to what the real implementation does.

    We also made some advances towards our future goals of P2P release for block +producer nodes (pr #3800 - in review) & for Daedalus users +(pr #3690 - merged).

    Detailed log

    • We expanded diffusion simulation with block-fetch protocol bringing it closer +to the production system.

    • We addressed some additional technical depth in diffusion simulation

    • We slightly improved documentation & CI of io-sim and typed-protocols +repositories for open-source contributors.

    • We closed a number of issues towards publishing io-sim on Hackage (only two +essential issues are left open).

    • We pushed a branch of typed-protocols which captures one of the developer UX +problems in the API which we need to solve.

    • We identified and fixed an issue related to systemd sockets.

    • We identified and fixed an issue in consensus initialisation not giving +feedback on early errors.

    • We deployed RT View, identified a number of issues which were communicated to +the performance & monitoring team.

    • We finished high level & detailed design of peer sharing, very early +implementation of peer sharing is done (note that peer sharing cannot be +safely deployed without eclipse evasion & genesis).

    • We finished high level design of eclipse evasion, and started working on +a detailed design.

    • We were assigned the role of release engineer for 1.35.5 release (the P2P +single relay release); we prepared a cardano-node for 1.35.5 release which +contains more than 130 patches of just network stack improvements done over +last few months.

    • We diagnosed and fixed an tricky bug in the peer state actions (a component +which sits between outbound governor and connection manager). That bug was +introduced earlier this year and never released. It was caught by the QA +testing framework. We expanded our diffusion simulation to cover such case and +also mitigated a chance for reintroducing such a bug in future.

    • We identified and quite likely mitigated a misconfiguration in the +benchmarking cluster (next benchmarking run will confirm our hypothesis).

    • We simplified the format of p2p topology file, we got positive feedback from +SPOs.

    • We raised severities of some of the logging messages, which is an important +improvement for SPOs, exchanges and other users of the system.

    • We worked on input endorsers simulation which gives both animated and +quantified live feedback on network operation, using a simplified model of +a TCP/IP network.

    Next quarter

    • Release the Single Relay P2P Release 1.35.5.

    • Carry on with Peer Sharing (review, testing).

    • Deliver a talk at Conference on Principles of Distributed Systems 2022 in Brussels, Belgium.

    • Present Detailed Design of Eclipse Evasion and start implementation phase.

    • Work on P2P Block Producer release.

    • Carry on with publishing of io-sim on Hackage.

    ]]>
    + + Marcin Szamotulski + https://github.com/coot + + +
    + + <![CDATA[Ledger Team Update]]> + 2022-11-07-ledger + + 2022-11-07T00:00:00.000Z + + Ledger Quarterly Update

    2022-09 - 2022-11-04

    • We finished a minimal ledger era capable of master key rotation. +This will be re-purposed our upcoming work.
    • We have the humble beginnings of a proper ledger API.
    • We improved the problematic cost model serialization +(recall the song and dance about updating the cost model one epoch after the hard fork).
    • We have added benchmarks for problematic areas.
    • Massive repository restructure and cleanup.
      • Unified and consistent variable name schemes (not completely finished, but nearly there).
      • Massive reduction in type constraints, which causes a lot of developer friction, +in our code and also downstream.
      • More organized module structures.
      • Improved generators for our property tests.
      • We removed our dependency on cardano-prelude.
    • The formal ledger model has come a long way.
      • We created a fork of Agda that provides some meta-programming support for the ledger rules.
      • We have a large amount of the basic UTxO support in the model.
      • We can generate a good looking PDF from the model.
      • We can produce Haskell from the model.
      • We have a nice finite set theory library that we can use for many of the ledger rules.
      • We have nix support for the model.

    Next steps

    • Individual tracking of deposits. [issue-3113]
    • Versioned CBOR encoders/decoders. [issue-3014]
    • New ledger era transaction body (and the surround work associated with it).
    • Designs for the next ledger era.
    ]]>
    + + Jared Corduan + https://github.com/JaredCorduan + + +
    + + <![CDATA[Node API & CLI Team Update]]> + 2022-10-07-node-cli-api + + 2022-11-07T00:00:00.000Z + + Node-Api-Cli Quarterly Update

    2022-09 - 2022-11-04

    • Various improvements to tests/CI/GHC 9.2.4 preparations/upgrade to cabal-3.8.1.0
    • Major clean up of stale iusses + PRs.
    • Implementation of stale-bot to mitigate against a proliferation of outdated issues and PRs
    • cardano-api refactoring with the aim of exposing more user friendly functions, particularly concerning transaction construction and querying the node.
    • cardano-cli refactoring with the aim of moving reusable functions to cardano-api. We have made strides here and have managed to improve the interface of transaction construction and validation.
    • General documentation updates and improvements
    • Addition of tx-mempool command which allows users to:
      • Query the node about the current mempool's capacity and sizes
      • Request the next transaction from the mempool's current list
      • Query if a particular transaction exists in the mempool
    • Initial refactoring of cardano-testnet

    Next quarter

    • cardano-api
      • Working with Konstantinos and his team to make cardano-api better for dapp developers - we have a google doc for this, I can send it to you privately.
    • cardano-testnet
    • Serenity
      • Continued refactoring of cardano-api and cardano-cli, with the particular focus on extracting re-usable components of cardano-cli and moving them to cardano-api. This is harder to define but will manifest in stuff moving from cardano-cli to cardano-api and is tied in to the cardano-api work specified above.
    • General bug fixing and smaller feature requests for the api/cli that are always coming in. Robert is primarily handling this at the moment as he is relatively new.
    ]]>
    + + Jordan Millar + https://github.com/Jimbo4350 + + +
    +
    \ No newline at end of file diff --git a/quarterly/index.html b/quarterly/index.html new file mode 100644 index 0000000000..8c14f801d7 --- /dev/null +++ b/quarterly/index.html @@ -0,0 +1,157 @@ + + + + + +Blog | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 5 min read
    Damian Nadales

    2023-04 -- 2023-06

    Main achievements

    UTxO HD

    • We finished a major prototype refactoring, which includes:
      • A better and finer grained DB lock mechanism.
      • Elimination of race conditions.
      • Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.
      • Architectural simplifications and performance improvements.
    • We implemented a new package to support db-sync integration with UTxO-HD.
    • We ran another set of ad-hoc benchmarks:
      • We uncovered a performance regression on the Network component when using GHC-9.2/9.4.
      • The synchronization and replay speed are as expected.
      • However, we uncovered memory consumption issues (see figure below).
        • The in-memory backend is consuming more memory than the baseline.
        • The LMDB backend shows an unexpected memory usage peak.
        • Investigation on these issues is ongoing.
    • We integrated the latest changes in main branch.
      • This required a re-design of the mempool to include the mempool fairness +improvement.

    Genesis

    • The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.
      • This particular question was not anticipated when the Q2 PI was planned.
      • As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized.
      • That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package.
    • The IOG Researchers' feedback on the design was very valuable. It had two primary effects.
    • Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".
      • This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated.
      • The additional design complexity is relatively small.
    • Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.
      • The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era.
      • All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras.
      • Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later.
      • The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks.
    • Relevant questions that the IOG Researchers are still assessing.
      • These do not block the Genesis implementation, but do affect the ultimate values of specific parameters.
      • Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?
      • Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?

    Support

    • We performed an analysis on number of file descriptors used by Consensus, this +information can be used by the node operators to check if the number of file +descriptors they want to support are enough, thus improving the user (eg node +operator) experience.
    • We implemented a mempool fairness improvement, by which transactions are +guaranteed to be processed irrespective of their size.

    Technical debt

    • We fixed a bug in followers logic, which was discovered by our QuickCheck +property tests.
    • We created an immutable DB +server. This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results.
    • We created a db-truncater tool, which can be used in disaster recovery and benchmarking scenarios.
    • We created a benchmarks comparison tool that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance improvements introduced by the Ledger team in version 0.6.0.0 of Consensus wrt version 0.5.0.0.

    Fostering collaboration

    • We released fs-sim as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project.
    • We migrated the consensus code to a new repository, splitting +it from the ouroboros-network repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases).
    • We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users).
    • We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.

    Next steps

    UTxO HD

    Genesis

    • We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.

    · 6 min read
    Marcin Szamotulski

    2023-04 - 2023-06

    Main achievements

    Eclipse Evasion

    We finalised the design of eclipse evasion and implemented its mechanism which +relays on connectivity to big ledger peers. Big ledger peers are the +largest ledger peers which accumulate 90% of stake (currently there are less +than 1000 of them). The outbound governor has new targets for known, +established and active big ledger peers which work in a similar way that +such targets work for ledger peers. The ouroboros-network#4662 PR is +currently in review.

    As part of this work we also identified a bug which would prevent a node to +connect to itself. Such connections are not easily detectable and are expected +to be dropped by the churn mechanism, nonetheless they should not be buggy. +The failure was discovered thanks to our e2e simulation of diffusion using +io-sim & property based testing.

    The PR also refactors the heart of the ouroboros-network interface reducing +technical debt that would otherwise accumulate.

    We also identified a possible improvement in the churn mechanism, which will be +implemented in Q3. Churn needs to await for peers to terminate, we can +improve the synchronisation. [ouroboros-network#4617]

    Ecosystem P2P Deployment Progress

    We reached 50% of stake in hands of SPOs who run at least on P2P relay. Now +also Emurgo and CF are running some P2P relays. Also 20% of IOG relays are +running in P2P mode.

    P2P Progress

    Peer Sharing

    We implemented bootstrapping for peer sharing (also known as light peer +sharing). New downstream (inbound) peers are now added to the known peers of +the outbound governor. Together with peer sharing this allows for non +registered relays to propagate through the network. ouroboros-network#3596

    Please note that peer sharing is disabled by default and is not considered safe +until Bootstrap Peers (see below) or Genesis is implemented.

    Diffusion (P2P)

    • We designed a feature which will reduce the load on IOG relays (in future +also run by CF & Emurgo). The feature consists of two parts. A new source +of peers called bootstrap peers (obtained from via an https request), the +ability to switch from bootstrap peers to ledger peers if the node is synced +(we are collaborating with the consensus team on the interface Bootstrap +Peers IER). This feature will be completed in Q3. +ouroboros-network#4530

    • We published a blog post about P2P design & implementation.

    • Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections: +ouroboros-network#4559.

    • We merged changes which allow the consensus layer to start / stop block +forging thread. This will allow to deploy P2P block producing nodes which +serve as a live backup node. ouroboros-consensus#140

    • We fixed a few bugs in local root peers DNS resolution service: +ouroboros-network#4583, ouroboros-network#4571.

    • We limited concurrency of DNS name resolutions: ouroboros-network#4596.

    • Galois Inc implemented query option for Handshake: ouroboros-network#4256.

    • We fixed handshake query timeout: ouroboros-network#4608.

    • We implemented warm valency for local root peers. This can help when using +DNS names in local root peers which resolve to many IP addresses. ouroboros-network#4575

    • We merged handshake changes which allow query protocol versions. Thanks to +James Parker from Galois Inc.: ouroboros-network#4256, cardano-cli#30.

    Other Improvements & Developments

    CDDL

    • We added node-to-node and node-to-client CDDL specs / tests for encoding +of NodeToNodeVersionData and NodeToClientVersionData.

    • We clarified an inconsistency between CDDL spec and implementation which is +highly polymorphic. We designed and implemented a fix for tx-submission +and local-tx-submission mini-protocols. Specs for other mini-protocols will +be improved at a later stage. ouroboros-network#4580

    Cardano Ping

    IOSim

    Typed Protocols

    Cardano Client

    • We fixed a bug in cardano-client-0.1.0.2 release which results in clients +(e.g. db-sync) negotiate an experimental protocol version.

    Technical debt

    CI improvements

    GHC 9.4 & 9.6

    We made all repositories under our control compile with ghc-9.4 and ghc-9.6 +which includes ouroboros-network, io-sim, typed-protocols and +Win32-network.

    Next steps

    We will continue towards our aspirational roadmap.

    • We will continue reviewing eclipse evasion.
    • As ouroboros-consensus#140 was merged, we are making progress towards +releasing P2P on block production nodes. We hope to analyse performance +regression on such nodes observed on the benchmarking cluster. roadmap-3887
    • We are also focused on roadmap-3969. Note that it was expanded in Q2.

    · One min read
    John Lotoski

    2023-04 - 2023-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Expanding the darwin CI cluster and adding aarch64 builder support
    • Adding bare metal capability to bitte clusters
    • Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality
    • Creation of pool performance analysis queries and scripting
    • Migration of testnet metadata server to cardano-world
    • Cardano shelley qa migration to cardano-world
    • Cardano sanchonet environment spin up to test Conway era functionality
    • Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature

    Next steps

    • Continue with the conversion of mainnet to using p2p topology

    · 4 min read
    Michael Karg

    2023-07 - 2023-09

    Main achievements

    • Release benchmarking
    • Developing and running UTxO-HD benchmarks - in-memory flavour
    • P2P benchmarks, facilitating rollout
    • Production-readiness of the new Nomad cluster has been reached
    • Optimization of and introspection capability for the new tracing system
    • GHC9 performance investigation (and possible remedy)
    • Conensus QTAs: first real-world application of prototype

    Release benchmarking

    Ongoing release benchmarking is a crucial safeguard to cardano-node's release cycle from a performance perspective. We've performed and analyzed benchmarks for node versions 8.2.x to 8.5 throughout Q3.

    UTxO-HD benchmarks

    Targeting a specific new feature in benchmarks requires development effort and fine-tuning the machinery. In Q3, we achieved that for the in-memory flavour of UTxO-HD, enabling benchmark delivery.

    P2P benchmarks

    In Q3, we performed additional P2P benchmarks to facilitate the comprehensive rollout of that feature.

    New nomad cluster

    The new hardware cluster for benchmarks, which is controlled through the new nomad backend, has received +various rounds of validation and adjustments in Q3 - in addition to finalizing integration with the rest +of our pipeline. The confidence in metrics gathered on the cluster is now sufficient for us to consider it +ready for production use.

    New tracing system

    Our new tracing system has received various rounds of optimization in Q3. We could verify in our benchmarks that +it is roughly on par with the legacy system while offering a richer feature set and greater flexibility.

    Additionally, in Q3 we equipped the system with an introspection capability. This is now used for generating +end user documentation that stays in-sync with definitions in code, and for automated consistency checking of the entire system.

    GHC9 performance

    In Q3, a joint investigation with DevX into GHC9's behaviour revealed where and how GHC9 misses opportunities for +optimization of generated code. This led to an approach to annotate our codebase accordingly to re-enable +those optimizations - which is still being validated.

    Consensus QTAs

    In collaboration with Consensus and DevX, we advanced the Consensus QTAs prototype capturing ledger operations' +performance characteristics. It's now applicable, and being applied, to a real-world task - namely +gathering evidence of the effect of aforementioned changes allowing for performant GHC9 builds.

    Next steps

    Benchmarking:

    In Q4, the focus will be on:

    • facilitating the next mainnet release
    • benchmarking runs in the Conway era
    • developing benchmarks / workloads for Conway-exclusive actions
    • implementing a specialized benchmark setup for the UTxO-HD on-disk variant
    • developing new Plutus benchmarks to safeguard Plutus V3
    • benchmarks regarding the rollout of P2P

    Performance

    For certain blocking performance issues we've located the cause, or even found a solution in a cross-team effort. In Q4 we'll advance that work to ensure the ongoing +release cycle for mainnet, as well as make GHC9 become a viable release platform.

    New tracing system

    For the new tracing system, we'll finalize optimization - current results are already on par with the legacy system. Furthermore, we will finish up comprehensive documentation, as well as description of a recommended setup, for which we can provide initial support.

    UTxO-HD monitoring

    We'll augment our analysis pipeline so it can process monitoring data from UTxO-HD nodes connected to mainnet in a meaningful way.

    Nomad backend

    From Q4 on, this backend will be in production use. We plan on adding various UX and flexibility improvements, and further fine-tuning some profiles for nomad.

    Workbench

    We will prepare for a future move of our performance workbench into a separate project. This entails restructuring, refactoring and reimplementation of certain few components that currently assume to always be in sync with cardano-node.

    Consensus component QTAs (co-development)

    In Q4 there will be ongoing work with and support for the existing prototype. We plan to identify a fixed set of input data that yields results of high informative value, and to formalize the process to a point that enables future automation.

    · One min read
    John Lotoski

    2023-07 - 2023-09

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Completion of mainnet relay networking conversion to p2p topology
    • Cardano sanchonet environment respins for testing new cardano-node pre-release Conway era functionality
    • Stabilization of cardano-explorer in cardano-world using high IOPS bare metal machines
    • Creation of a nix content addressed packages repository, capkgs:
      • To provide lightweight release binaries thereby avoiding sluggish nix flakes and devShells
    • Creation of a cardano performance benchmarking cluster, cardano-perf:
      • To replace legacy cluster benchmark tooling
    • Creation of a cardano cluster composition repository, cardano-parts:
      • For enabling multi-cluster, multi-role cardano network deployments
    • Creation of a cardano testnets repository, cardano-playground:
      • Utilizing cardano-parts for testnet deployments
    • Creation of a sanchonet demo repository, sanchonet-demo:
      • Utilizing cardano-parts for fast sanchonet test environment and demo purposes

    Next steps

    • Continue with migration of cardano-world testnets to cardano-playground
    • Proceed with spinup of mainnet p2p bootstrap cluster
    • Scale down mainnet non-p2p legacy cluster at the appropriate time

    · 3 min read
    Damian Nadales

    Areas of focus

    IssueStatus
    Implement legacy mode for UTxO-HD to keep baseline performance✅ Done
    Assist mainnet node release with initial Conway capabilities✅ Done
    Assist with test, benchmark, and improvements to CIP 1694✅ Done
    Assist with P2P IOG relay network shut down✅ Done
    Assist with repo transfer to Intersect✅ Done
    Support vendors to deliver contracts✅ Done
    Operation serenity Q4 2023✅ Done

    Highlights

    Implement legacy mode for UTxO-HD to keep baseline performance

    • ✅ We managed to run a UTxO-HD capable node in legacy mode, maintaining the baseline memory usage while keeping all the ledger state in memory.
      • While the legacy mode is not production-ready (it requires further integration and testing), it remains as a plan B should the need arise to release UTxO-HD if our stakeholders so demand it.
    • ✅ We pivoted to redesigning the Ledger DB API because:
      • This is needed for integrating the LSM-tree backend.
      • The redesign opened the possibility of implementing an in-memory backend that would keep the same performance and resource requirements as the baseline version (which needs to be confirmed by benchmarks).
    • ✅ We created a more general Ledger DB API.
    • 🛠️ We are integrating (into the feature branch) the existing Ledger DB implementations with the new API.
    • 🛠️ We are implementing the new in-memory backend.

    Assist mainnet node release with initial Conway capabilities, test, benchmark, and improvements to CIP 1694

    • ✅ We recognized that Conway introduces a new challenge in the versioning of NTC queries, and we resolved it (see 864 and 4770).

    Assist with P2P IOG relay network shut down

    • ✅ We created a prototype for the pre-Genesis State Machine for bootstrap peers, which is currently under test (see this PR).

    Assist with repo transfer to Intersect

    • ✅ We transferred the ouroboros-consensus repository to the Intersect GitHub organization.

    Support vendors to deliver contracts

    • Genesis
      • ✅ Interacted with the Consensus team and addressed resulting feedback on past deliverables.
      • ✅ Finished implementation of the testing infrastructure of Genesis
      • ✅ Started to refine the Proof of Concept demo into an actual implementation of the core components of the Genesis design.
    • 💾 LSM-tree implementation. Well Typed:
      • ✅ Finished the design of the public facing API.
      • ✅ Defined the LSM-tree database file-type formats.
      • ✅ Implemented property and model-based tests.

    Operation serenity Q4 2023

    • 🎉 We welcomed our newest team member @RenateEilers and assisted with her (ongoing) onboarding.
    • ✅ We implemented a simplification in the ChainSync mini-protocol that is also a step towards Ouroboros Chronos.
    • ✅ We added tests to check Consensus emits valid CBOR, which prevents the generation of invalid binary encoding.
    • ✅ We established and implemented an interface between Consensus tooling and P&T tooling, which constitutes a step towards incorporating component level benchmarks in our development process.

    · 3 min read
    Michael Karg

    2023-10 - 2024-01

    Main achievements

    • Release benchmarking, leading up to next mainnet release
    • Conway benchmarking of existing Babbage workloads
    • P2P benchmarks, validating viability as default topology
    • Added basic PlutusV3 capability of our tooling
    • Publication of benchmarking reports accompanying a mainnet release
    • GHC9 performance investigation
    • Finalized and validated all optimizations for the new tracing system
    • New Nomad benchmarking cluster: production use
    • Adjustment of our infrastructure to cover the migration to IntersectMBO
    • Conensus QTAs: prototype developed into alpha-stage benchmark
    • Successful on-boarding of a new team member

    Release benchmarking

    We've performed and analyzed benchmarks for node versions 8.6.x to 8.7.3, which is projected to be the next mainnet release, throughout Q4. +Along that way, we have identified, located and handled all performance blockers.

    Additionally, we've started publishing benchmarking reports here on Cardano Updates. The format is meant to increase transparency and +provide insight into those measurements that accompany mainnet releases - demonstrating the absence of performance regressions and development +of specific metrics over time.

    Conway benchmarks

    Furthermore, we've done first ever benchmarking of the Conway ledger. To that end, we've ported our Babbage workloads to Conway for +immediate comparability. Fortunately, we've have not found any performance regression in the Conway ledger.

    P2P benchmarks

    In Q4, we've validated P2P topology to be viable as default for both relay and block producer nodes. As a consequence, we've switched +to P2P topology for benchmarking baselines ourselves.

    GHC9 performance

    In Q4, evaluation of GHC9.2's and GHC9.6's optimizer in the context of the Cardano code base has been completed. +Eventually, GHC9.6 has shown itself to be much more suitable from a performance perspective. We're convinced that +with a few select annotations in the code, GHC9.6's optimizer can produce a result on par performance-wise with GHC8.10 - +which just was a great release in that regard. With GHC9.2 unfortunately, the changes would have to be more invasive - and thus more time-consuming.

    New nomad cluster

    We’ve moved the new Nomad cluster into production use and established new baselines for each workload on it. +Additionally, we’ve shut down the legacy cardano-ops benchmarking cluster, and archived all raw data from it.

    Consensus component QTAs

    We’ve developed the existing prototype into an automatable, self-contained benchmark called beacon, as well as systematized workloads and run structure for it. +Moreover, we’ve demonstrated usefulness of the metrics, their reproducibility, and identified domains viable for QTAs with system-level benchmarks.

    New team member

    We're happy to welcome a new joiner to our team! We've successfully onboarded him in Q4; he has taken +over the cardano-tracer service - the node-external component of the new tracing system - and has already +landed several valuable contributions.

    · One min read
    John Lotoski

    2023-10 - 2023-12

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • Cardano-parts support was added for cardano-db-sync, cardano-smash, +cardano-faucet, cardano-metadata, grafana monitoring along with a number of +other features

    • Completed migration of testnets from cardano-world to the cardano-playground cluster

    • Completed migration of the cardano book from cardano-world to the cardano-playground +cluster

    • Completed migration of pools from cardano-ops to the cardano-mainnet cluster

    • Creation of a mainnet p2p bootstrap cluster

    • Cardano sanchonet environment respins during the quarter for testing new +cardano-node pre-release Conway era functionality

    • All environments were upgraded to cardano-node 8.7.2 or 8.7.3 by the end of +the quarter

    • Completion of a govtool backend deployment for Voltaire chain testing

    • Creation of a cardano-monitoring repository, +cardano-monitoring:

      • A new repository enabling agile deployment of EC2 monitoring servers, +compatible with OpenTofu grafana and mimir providers

    Next steps

    • Scale down the mainnet non-p2p legacy cluster

    • Add deployment support for new network services, such as Mithril

    • Continue cardano-parts and operations improvements

    · 2 min read
    John Lotoski

    2024-01 - 2024-03

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • All cardano release environments, including preview, preprod, mainnet legacy +and mainnet new clusters were upgraded through cardano-node releases of +8.7.3, 8.9.0 and finally into 8.9.1 by the end of March

    • All cardano pre-release environments, including sanchonet, private chain, and +shelley-qa clusters were upgraded through cardano-node releases of 8.7.3, +8.8.0-pre, 8.8.1-pre, 8.9.0 and finally into 8.9.1 by the end of March

    • Sanchonet and private chain environments were both re-spun once each during +this quarter to support new pre-release versions of cardano-node in the Conway era

    • Cardano-parts added a cardano-db-sync process-compose stack for each +environment

    • Cardano-parts added a cardano-node process-compose stack for each environment

    • Cardano-parts added enhancements for topology related nixos modules and +functions to accomodate new bootstrapPeer functionality, new topology +attributes and increased complexity network deployments.

    • Cardano-parts added support for mithril signers integrated with block +producers and a mithril-signer-verifier service for monitoring

    • Sanchonet, preview, preprod and mainnet IOG block producers are now signing +mithril certificates

    • Cardano-parts added support for mithril clients in nixos cardano-node systemd +service, process-compose job stacks and nix cardano-node entrypoint, all of +which also require any mithril snapshot to be signed by a trusted IOG pool +prior to use

    • Cardano-parts added ip integration tooling, so that similar to other deployer +tools like nixops, nixosConfigurations possess ip information which can be +used in module configuration

    • Cardano-db-sync snapshots server migration from legacy mainnet cluster to new +mainnet cluster with a rewrite of the snapshot service was completed

    • Cardano metadata server migration to Cardano Foundation was completed

    • BlockPerf, a cardano-node performance monitoring tool, was integrated into the +new mainnet cluster relays

    • Cardano-node bootstrapPeer functionality was added with node 8.9.x, requiring +effort to align nixos service module code between cardano-node nixos +services, iohk-nix topology generation, cardano-ops legacy code, and +cardano-parts module compatibility as well as feature test under various edge +cases

    • Cardano-playground added govtool backend support for private chain voltaire +testing team

    Next steps

    • Add support for the new cardano-node metrics system

    • Add IPv6 cardano-parts support

    • Extend govtool frontend and backend to a process-compose stack

    • Adapt network spin-up tooling for the new create-testnet-data cardano-cli command

    • Continue cardano-parts and operations improvements

    · 2 min read
    John Lotoski

    2024-04 - 2024-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • All cardano release environments, including preview, preprod, mainnet legacy +and mainnet new clusters were upgraded through various cardano-node releases of +8.9.2, 8.9.3, 8.9.4, 8.12.1, and finally into 8.12.2 by the end of +June

    • Cardano pre-release environments additionally iterated through pre-release +upgrades of 8.11.0-pre, 8.12.0-pre, and finally into 8.12.2 by the end +of June with the exception of sanchonet which remains pinned at 8.11.0-pre +until the next respin to support node version 9.0.0 or greater

    • Sanchonet environment was re-spun two times for pre-release Conway testing of +cardano-node versions 8.10.0-pre and 8.11.0-pre respectively

    • Private chain environment was re-spun three times to support fast epoch +Conway testing

    • Cardano-playground and cardano-mainnet repos have added ten operations +oriented documents for knowledge transfer

    • Block producers which participate in mithril signing will now produce metrics +and can have them scraped with the default metrics agent

    • A cluster spin-up job to utilize the new cardano-cli create-testnet-data +sub-command was created

    • A nixosModule, dashboards and alerts were added supporting the new cardano +tracing system

    • Many new operations scripts and features were added, including a template +diff and patch recipe to pull the latest cardano-parts improvements to +consuming repositories more easily

    Next steps

    • Finalize support for the new cardano-node tracing system once the service is +rewritten for general consumption

    • Add IPv6 cardano-parts support

    • Extend govtool frontend and backend to a process-compose stack once govtool +is publicly buildable again

    • Continue cardano-parts and operations improvements

    + + + + \ No newline at end of file diff --git a/quarterly/page/2/index.html b/quarterly/page/2/index.html new file mode 100644 index 0000000000..7a24546220 --- /dev/null +++ b/quarterly/page/2/index.html @@ -0,0 +1,370 @@ + + + + + +Blog | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Damian Nadales

    Consensus Quarterly Update

    2023-01 - 2023-03

    Main achievements

    UTxO HD

    • We finished the testing activities for the prototype, which involved adding +new tests, and fixing and enabling temporarily disabled tests.
    • We spent a substantial amount of effort refactoring and cleaning the +prototype.
    • We audited the UTxO HD prototype to make sure it can accommodate the migration +of other tables (eg stake-keys registration) from memory to disk. The result +of the audit was positive.
    • We ran ad-hoc benchmarks for reading keys and flushing values to disk. No +unexpected costs found.
    • We ran the first system level benchmarks. The performance regressions reported +were due to an unrealistic snapshotting rate. We need to re-run them again +after we design a more fine grained locking mechanism.

    Genesis

    • We elaborated a roadmap of the remaining work for Genesis.
    • We presented the design to the IOG Researchers and PNSol on February 20. The +design was well received. We updated the Genesis design with the researcher's +feedback.
      • We plugged the new DoS vector identified during the aforementioned +presentation.
    • We developed a generator for adversarial leader schedules that satisfy key +Ouroboros properties, which will be used to test the Genesis design.
      • The generator enables use of smaller Ouroboros parameters, which makes +extrema more likely and counterxamples easier interpret.
    • We wrote up the latest design iteration.
    • We continued benchmarking the Chain Sync Jumping prototype. In particular:
      • We debugged the prototype's performance regression, and unmasked the +actual cause by patching our initial theory (bad queuing behavior)
      • We identified and validated the actual cause (a pathological case in +BlockFetch tiebreaker).

    Support

    • We created two new tools. One for dumping CBOR encoded blocks to JSON. Ahother +to serve a local immutable DB.

    Conway era

    • We integrated the Conway era into consensus.

    Technical debt

    • We fixed a bug with followers, which was discovered by property tests.
    • We developed a DSL for specifying and running ChainDB test cases.
    • We fixed failing tests with iterators.
    • We created micro-benchmarks for adding transactions to the mempool.

    Fostering collaboration

    • We released a new technical documentation site for consensus.
    • We factored out several packages to external repositories. Some of this work +originated in the UTxO HD workstream.

    Next steps

    UTxO HD

    Genesis

    Support

    • Design Consensus side of hardfork-enactment in the Voltaire phase +(#4180).
    • Estimate the number of file descriptors Consensus needs +#20.

    Tech debt

    • Identify Quantitative Timeliness Agreements (QTAs) metrics that we can define +for consensus. Pick one and implement benchmarks for it.

    Fostering collaboration

    • Onboard a new team member.

    · 3 min read
    Marcin Szamotulski

    2023-01 - 2023-03

    Main achievements

    Gradual dynamic P2P release on mainnet

    We released two version of cardano-node with dynamic P2P capabilities:

    • 1.35.6
      • we found and fixed a bug in exception handling in peer-state-actionspull-4357
      • we found and fixed a busy loop when demoting a peer from hot to warm pull-4385
    • 1.35.7
      • includes interoperability in the legacy non-p2p network stack pull-4467
    • we fixed a busy loop of demotion & promotions: warm -> hot -> warm[pull-4485] /it will be included in cardano-node-8.0.0 release/.

    Currently there are more than 200 P2P relays on mainnet.

    Peer Sharing

    We implemented /peer sharing/ pull-4019 which will be available as an +experimental feature in one of the future cardano-node releases.

    We implemented /light peer sharing/, e.g. adding inbound connections to the set +of known peers of the outbound governor, which allows to bootstrap relays not +registered on chain. This complements peer sharing. The pull-4277 is in +late review stages.

    Eclipse Evasion

    We finalised design of eclipse evasion and we started implementing it. We +have an initial implementation (not merged). We are in the process of extending +our test suite to cover new implementation details: issue-3886, pull-4462.

    Cardano Network Service Assurance

    Galois has been making progress on Cardano Network Service Assurance project.

    • In cardano-node, they have developed a datapoint abstraction that creates +a queue of (existing) log events, they now have two such datapoints (of log +events) implemented.

    • They have developed a datapoint client executable that can connect to a node +which serves the "new tracing".

    • They have been exploring approaches for the consolidation and analysis of +datapoint data to extract actionable network health status.

    Cardano-Node

    • We made it possible to configure accepted connections limit pull-4902.

    Testing improvements

    • We fixed a bug in network simulation implementation of TCP simultaneous open pull-4265.

    • We introduced header-body split in the diffusion simulation pull-4419 (in review).

    • We introduced initiator only nodes in the diffusion simulation pull-4280.

    • We fixed a connection-manager test failure issue-4370.

    Technical Debt

    • We refactored Snocket interface decoupling it from the multiplexer +pull-4260. This simplified some aspects of the KES agent implementation.

    • We introduces a record for CBOR codecs which are used for various data +structures by mini-protocol codecs pull-4430.

    Documentation

    • We explained some limitations of CDDL in our technical report pull-4351.

    IO-Sim

    • We fixed implementation of MVar's pull-70.

    NoThunks

    • We published a new version of nothunks library to Hackage.

    Next steps

    • Finish implementation & testing of eclipse evasion issue-3886.
    • Optimise connectivity to peers behind firewall issue-4381.
    • Finish the work on enabling block production dynamically to allow using P2P +on block producers issue-3159.
    • If time permits we would like also to reserve some time for finishing +publication of io-sim to Hackage.

    · 7 min read
    Jared Corduan

    Ledger Quarterly Update

    2023-01 - 2023-03

    Main achievements

    CIPs

    • Entering the Voltaire phase - +CIP-1694 received a major update after participation in the design has expanded to +more and more people, including those who attended the Colorado workshop. +See CIP-1694.
    • Ledger CIP category - +The ledger team continues to embrace the CIP process, and has begun the process of +registering the ledger as an official CIP category. +See CIP-84.
    • Ledger serialization - +A CIP for the ledger serialization deprecation cycle has been accepted. +See CIP-80.

    Formal ledger model

    Our new formal specifications backed by Agda have seen a lot of progress. +The majority of the ideas in CIP-1694 are now present, and we have made enough progress +that we can now safely say that the PDF produced by the Agda model will be the +official ledger specification for the Conway ledger era. +See the repository.

    Conway ledger era

    Progress on the Haskell implementation of CIP-1694 has gone hand in hand with the formal model. +The major component still missing is the DRep stake distribution, which still presents some +technical challenges.

    [pull-3176] +[pull-3216] +[pull-3226] +[pull-3291] +[pull-3326] +[pull-3330] +[pull-3339]

    DRep stake distribution computation

    Adding another large stake distribution to the ledger state must proceed with caution. +We do not want the memory used by the node to increase too much, +and performance problems can lead to reduced block production. +We have prototyped, tested, and benchmarked several approaches that could give us +the current DRep stake distribution at each epoch boundary. +This has very important implications, since we want every ADA holder to be able to at any +time (such as during a contentious vote) register themselves as a DRep and still have time +to vote themselves on the issue.

    [pull-3344] +[pull-3353] +[pull-3364]

    Integration work

    The ledger has made some wonderful improvements over the past six months, +but which entail a significant amount of integration efforts:

    • Our new versioned CBOR schemes
    • Individual deposit tracking
    • An improved cross-era interface utilizing lenses
    • A new ledger API
    • Re-arranging the ledger stake in preparation for CIP-1694
    • Versioning our Haskell packages +using CHaPs.
    • Consistent conventions for variable names

    [pull-3279] +[pull-3282] +[pull-3288] +[pull-3289] +[pull-3292] +[pull-3297] +[pull-3298] +[pull-3299] +[pull-3300] +[pull-3302] +[pull-3303] +[pull-3308] +[pull-3342] +[pull-3345] +[pull-3356] +[pull-3357] +[pull-3360] +[pull-3361] +[pull-3363] +[pull-4349] +[pull-378] +[pull-376] +[pull-373] +[pull-370] +[pull-361] +[pull-4976] +[pull-5013]

    Deposit tracking

    Individual deposits (for stake credential and stake pool registrations) were not tracked by the ledger. +Deposits were returned according to the current protocol parameters. +When the values of these two protocol parameters change, the deposit pot +is adjusted by adding to, or removing from, the reserves.

    This has several problems:

    • Most people expect a deposit to be paid back exactly.
    • We cannot increase the deposit amount once the reserves hits zero.
    • If it becomes known that the deposit amount is going to be increased, free Lovelace can be earned by registering credentials.
    • Because of the problems above, it is going to be incredibly hard to ever change the values.
    • There is a serious issue involving hard forks. +The consensus layer makes the decision about whether or not to enact a hard fork based on +the protocol parameter update state two stability windows before the end of the epoch. +However, the ledger will reject a protocol parameter update on the epoch boundary +if the deposit pot adjustments cannot be reconciled with the reseve pot. +This means that if quorum is met regarding changing the major protocol version, +but the update is rejected on the epoch boundary, consensus will change the era but the +ledger will not change the major protocol version, leaving the ledger in a split-brain state.

    Because we never actually changed the values of the two deposits amounts in the protocol parameters +on mainnet, we were able to retroactively change the behavior. +We made the following changes:

    • Individual deposits are tracked in the DState.
    • The amount deposited is always returned.

    [pull-3195] +[pull-3202] +[pull-3217]

    New ledger API

    We have significantly built up the ledger API. +We will eventually replace much of the cardano-api in the node repository with this ledger API.

    [pull-3242] +[pull-3248] +[pull-3328]

    Constraint-based generators

    Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks +which span several epochs, mimicking a real network. +These tests are, in theory, excellent for checking properties. +They are, however, very difficult to maintain and are not as random as we would like +(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We have a new declaritive infrastructure for building constraint-based generators, +which instead generate a random ledger state representative of not just an initial state, +but also those representative of the end result of a long sequence of valid blocks. +Moreover, these generators are very fast and are much more random than our old generators. +Before we can start using them for our existing property tests, however, we still need to +expand them to generate a valid block for a given ledger state.

    [pull-3219]

    Technical debt

    We continued to address technical debt as much as we can.

    [pull-3167] +[pull-3170] +[pull-3172] +[pull-3175] +[pull-3184] +[pull-3205] +[pull-3208] +[pull-3210] +[pull-3212] +[pull-3218] +[pull-3222] +[pull-3223] +[pull-3224] +[pull-3225] +[pull-3229] +[pull-3239] +[pull-3241] +[pull-3244] +[pull-3245] +[pull-3249] +[pull-3260] +[pull-3263] +[pull-3264] +[pull-3268] +[pull-3269] +[pull-3270] +[pull-3274] +[pull-3276] +[pull-3277] +[pull-3286] +[pull-3290] +[pull-3295] +[pull-3296] +[pull-3306] +[pull-3307] +[pull-3310] +[pull-3311] +[pull-3316] +[pull-3320] +[pull-3323] +[pull-3327] +[pull-3331] +[pull-3332] +[pull-3333] +[pull-3338] +[pull-3341] +[pull-3347] +[pull-3350] +[pull-3351] +[pull-3352] +[pull-3354]

    Critical fixes

    We fixed two critical issues:

    • Growing block production delay on the epoch boundary: [pull-3209]
    • Unexpected node shutdown from balanceR: [pull-3343]

    Next steps

    • Conway spec - +Complete the first version of the conway formal specification.
    • DRep stake distribution - +Have the ledger compute the DRep stake distribution with acceptible performance.
    • Devnet ready - +Have the Haskell implementation of the conway era in sync with the formal specification, +and integrate the changes with consensus and node. +All the details might not be finalized, but the wire specification and the API should +be stable so that conway can be placed on a devnet for tool builders to start integrating with.
    • Plutus V3 - +Integrate Plutus V3 into the ledger, including a new script context which supports DReps.

    More details

    This quarterly report was based off of the following fortnightly ones:

    · 4 min read
    Damian Nadales

    Consensus Quarterly Update

    2022-12 - 2023-01

    Main achievements

    UTxO HD

    The prototype is feature complete and thoroughly tested at the consensus level. +In particular, we invested a lot of time in writing property-test for the +mempool, and other crucial new parts of the prototype. Now we are ready to run +integration tests and system-level benchmarks.

    Genesis

    We identified and fixed a slowdown in cross-era forecasting that was inhibiting +our efforts to benchmark the ChainSync Jumping prototype. This resulted in a 7% +speedup in full sync times in the baseline.

    We also started prototyping a self-contained implementation of the Genesis +dynamics (in particular of the parts intentionally not part of the ChainSync +Jumping prototype) that furthered our understanding of subtleties and edge +cases.

    Support

    • We worked on designing integration of new VRF and KES crypto into consensus.
      • Crypto class was split into two parts: Crypto and HeaderCrypto.
      • With the Ledger team's help, we refactored cardano-ledger to use a proxy +type for VRF.

    Conway era

    • PR went through its second review round. It is about to be merged, but it got +delayed due to people's availability during Christmas break.

    Technical debt

    • We improved the capabilities of our io-sim library, which is key for testing +and simulating Cardano components.
    • We removed thunks from epoch translations in the ledger, which is important +for reducing memory consumption of the Cardano node.

    Fostering collaboration

    • We added a tutorial on how to instantiate the Consensus layer to run custom +ledgers. This should be a valuable resource to people looking to roll their +own custom blockchain (either for commercial or research purposes).
    • We added an overview of consensus to the top level +documentation of +ouroboros-network. This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    Next steps

    UTxO HD

    • Evaluate the extensibility of the prototype. Moving the UTxO to disk is only +the first step towards reducing the memory requirements of Cardano node, and +ensuring its long term sustainability. In the future, we plan on moving other +large maps, such as delegation maps. The prototype should be able to +accommodate these changes without any major modifications.
    • Start the integration with other downstream components, such as the wallet and +db-sync. The idea is to identify and address any potential pain points that +might arise during this integration.
    • Run integration tests and system-level benchmarks.

    Genesis

    • Finish benchmarking and tuning the fast-path ChainSync Jumping prototype
    • Expand and optimize the self-contained implementation of the Disconnect Rule +(including density comparisons and the LoE)
    • Develop documentation and smoke tests for these components.
    • Start modifying the ChainSync Client for the LoP and LoR.

    Support

    • Help the Network team with diagnosing performance regression in block +production.

    Tech debt

    • Fix property-test failures concerning iterators (#3999 and +#4183).

    Fostering collaboration

    Risks

    UTxO HD

    • Moving other parts of the ledger state to disk might require a major redesign +of the prototype. For instance, if it turns out that the epoch change rules +require access to the full ledger state. If this is the case, we might +accept this risk and do the redesign after the initial release of UTxO-HD.
    • Integration with downstream clients might require more work than we +anticipate.
    • Access to the benchmarking's team time and resources.
    • Benchmarking results might show significant performance degradation, which +will require additional work if such performance degradation is not accepted +by other stakeholders.
    • The prototype's performance might not be accepted by other stakeholders. Here +we need to clearly communicate that this is necessary to ensure that as the +blockchain size grows, the node can operate within reasonable memory +constraints.

    · 5 min read
    Marcin Szamotulski

    Network Quarterly Update

    2022-11 - 2023-01

    Summary

    The primary goal of the networking team was to focus on the single relay +release of P2P. We fixed a number of small late bugs, and concluded QA +& performance testing. Although it was discovered a regression in performance +of block production when P2P is enabled, relaying with P2P performs better +comparing to a non p2p. We concluded that this is not a blocker for the Single +Relay Release which is planned shortly.

    Peer sharing has gone through review and final review is +just being done right now. After merging it will still be disabled (hidden +behind a flag) as it's not safe without eclipse evasion. We started +implementing light peer sharing (i.e. include inbound peers into known peer set +of the outbound governor).

    We started a detailed eclipse evasion design, it will continue in the next +quarter.

    We also made a major revision of package structure of the network packages. We +ended up with a very clean dependency graph (pr #4155).

    Armando Santos delivered a talk at the ODOPIS 2022 conference on principles +of distributed systems in Brussels. The slides are available here.

    Neil Davies gave an invited seminar on DeltaQ at Université Catholique de +Louvain.

    We also found and fixed a few of bugs:

    • a bug in keep alive mini-protocol which resulted in warm to cold transitions +to be always executed through a timeout path rather than do a clean demotion +([pr #4168]).

    • fixed an assetion failure in the outbound governor (issue #4177)

    Next steps

    We will work towards the next release of P2P for block producer nodes. This includes:

    • analysing performance regression for BP nodes when using P2P
    • finish the work on controlling the block forger through node kernel (pr #3800)
    • address issue #3907 and write a script to analyse deployment of P2P relays

    We would like also to push forward eclipse evasion. Although most of the work +has be done already the release of io-sim on Hackage will happen in the +next quarter.

    We would also like to address chain-sync timeout issue recently +diagnosed by Karl Knutsson.

    If time permits we would also like to address some technical debt, especially:

    Risks

    The performance regression for block producer with P2P needs to be investigated +in the near future. This is blocker for the release of P2P on BP nodes.

    Detailed log

    Contributions to Ouroboros-Network

    • We added TraceDemoteLocalAsynchronous, which enables notification of critical issues for SPOs
    • We fixed cardano-ping compatibility with NodeToNodeV_10 (P2P, pr #4165)
    • We fixed a bug in demotion peers to cold which affected P2P nodes (commit-61058aa5c2)
    • Karl Knutsson enhanced SendFetchRequest (commit-bb1c3dddee), open-source contribution)
    • We turned SizeInBytes into a newtype.
    • We extended CONTRIBUTING.md, README.md, added CODE_OF_CONDUCT.
    • We fixed DNS test failure issue #4191
    • We fixed a simulation bug found in issue #4258
    • [pr #4168]
    • issue #4177

    Contributions to Cardano-Node

    • We maintained the Single Relay Release pr #4612, (e.g. fixing CI issues, +Rebasing it when necessary, publishing packages to Cardano Haskell Packages);
    • We enhanced JSON serialisation / deserialisation of NodeToNodeVersion and NodeToClientVersion;

    Contributions to IOSim

    • We started to use Cardano Haskell Packages for IOSim (pr #48)
    • We updated change log files
    • We added support of ghc-9.4 (pr #50)

    We also addressed the following issues in pr #57 in order to prepare the package for publication on Hackage:

    • refactored io-classes timers API (issue #46);
    • created a new package si-timers which exposes an interface using SI units +and is safe on 32-bit systems (issue #59);
    • added monad transformers instances for classes defined in io-classes (issue #58);
    • created io-classes-mtl package which includes (experimental) instances for monad transformers;
    • provide MonadMonotonicTimeNSec in io-classes and MonadMonotonicTime in si-timers (so that io-classes follow the base package);
    • added registerCancellableDelay in si-timers (which allowed us to hide fancy timer api and clean io-classes)
    • added support for js_HOST_ARCH (the new GHC JS backend)

    Note the pr #57 contains almost 40 commits, and was a major step forward for +io-sim ecosystem. We also prepared a draft pr #4281 which updates +ouroboros-network.

    Other changes for 1.0.0.0 release on Hackage:

    • Refactored test suite (pr #47)
    • Updated documentation, cabal files, CONTRIBUTING, SECURITY documents, etc in pr #60, currently under review.

    · 3 min read
    Marcin Szamotulski

    Open Source Quarterly Update

    2022-11 - 2023-01

    Summary

    In the last quarter the open-source initiative delivered a comprehensive report +on the state of our repositories. As part of this work stream we +identified the key open-source repositories for the cardano project across all +the projects From a list of more than 500 repositories (some of which are +forks) we identified key repositories which constitute the core of Cardano. +20 of them were identified as to be transferred to the future MBO which will +govern Cardano development. Some where excluded (like io-sim and +typed-protocols), to be govern by IOG, since they have a much broader +application than Cardano itself, and thus we think their open-source future +will be better outside of the Cardano umbrella.

    Christian Taylor identified a number of ways we can improve our repositories to +make them more attractive for open-source contributions by analysing each of +them. This includes adding or improving various documentation files, like +CONTRIBUTING files, adding code of conduct, improving readme files, issue +& pull request templates etc. Christian also computed various interesting +metrics which gives a very good insight into the development practices: e.g. +average merge ratio, average number of reviews, comments and many more! The +presentation is available here.

    We followed with work on the Cardano Engineering Handbook. We included +a standard code of conduct which is now used by most important projects in the +Cardano space. We included cardano-node's security policy and added +a responsible disclosure policy. We also described how roles and +responsibilities should be clarified. This progress was made by +a collaborative effort of the Cardano Core, Plutus and Architecture teams, and +it wouldn't be possible without Michael Peyton Jones, Arnaud Bailly, Kevin +Hammond, Jared Corduan and Marcin Szamotulski.

    We also improved the documentation of key repositories, by adding description, +improving their README file & CONTRIBUTING files, adding code of conducts +following the Cardano Engineering Handbook. This includes improvements to:

    And also

    The work was carried by Marcin Szamotulski, Addie Girouard and Jared Corduan.

    In this quarter we also identified a number of projects which can be published to +Hackage (Haskell's package repository) or crate (Rust package repository). +The list contains 21 packages, 2 of which (hedgehog-extras and +quickcheck-dynamic) are already published on Hackage and another 5 (from +the io-sim repository) are close to be published.

    Detailed log

    The progress of the open-source project is tracked in this project.

    · 4 min read
    Damian Nadales

    Consensus Quarterly Update

    2022-09 - 2022-11

    Main achievements

    UTxO HD

    • As a consequence of the errors observed when running distributed mempool +benchmarks, we re-designed the UTxO HD mempool integration, which fixed these +errors and lead to a simpler and more maintainable design.

    • We focused on increasing test coverage for the UTxO-HD prototype. In +particular, we added property tests for:

      • Backing store (work ongoing)
      • Era transitions
    • The property tests we added uncovered several bugs, which is a great result +given the exponential increase in the cost of finding bugs as they are closer +to deployment.

    • One of the errors found by our tests required us to work on improvements in +the Haskell bindings for LMDB. This work is ongoing.

    • We started working on the mempool property tests that will exercise the new +code paths that UTxO HD introduced.

    • We developed, benchmarked and tested an implementation of sequences of +differences based on "anti-diffs". Performance results of diff sequence +operations show that we achieved a speedup of about 4x across several +scenarios. Note: this speedup is taking into account diff sequence operations +only, so the consensus-wide speedup is less than 4x.

    • We integrated the "anti-diff" prototype into the UTxO HD feature branch.

    Genesis

    • We wrote a simulator that demonstrates soundness of an abstract implementation +of the new chain selection rule.
    • We elaborated a draft specification for the Genesis implementation (currently +awaiting feedback from other architects).
    • We elaborated a draft specification for the ChainSync Jumping optimization. In +particular, this includes a proof sketch that the latter preserves liveness +and safety in all cases.
    • With the Networking team, we co-designed the eclipse avoidance mechanism, +specifically its coherence with the Genesis implementation plan's security +and its dependence on the new ChainSync Jumping optimization.
    • We implemented a prototype for ChainSync Jumping. Initial benchmarks showed a +performance degradation wrt the baseline. Our optimization attempts so far +have brought the performance closer to the baseline, but not yet to parity.

    Conway era

    • We did most of the heavy lifting required to integrate the Conway era into the +Consensus layer.

    Technical debt

    • We started working on enabling CI nightly tests, which revealed several test +failures due to thunks being found it data structures used by the ledger and +consensus. We made a lot of progress fixing those thunk errors, but some +errors still remain.

    • We elaborated a db-analyser benchmark for the ledger operations. This led us +to the identification of high processing time at epoch boundaries, and we +could not observe any performance degradation that can be attributed to era +changes.

    • We fixed a source of flakiness in the ChainDB QSM test.

    • We clarified a common source of confusion around VRF tie-breaking and +cross-era chain selection.

    • We fixed a bug in the maximum-allowed ledger major protocol version.

    Fostering collaboration

    • We spent time making cardano-updates the central source of information for +the core teams stakeholders.
    • We went through the Galois gap analysis and extracted actionable points to +take on next.
    • Bart and Yogesh continued with their onboarding and stated making substantial +contributions to consensus.

    Next steps

    UTxO HD

    • Finish the mempool property tests.
    • Benchmark the latest version of the prototype.
    • Elaborate a document that describes new integration test scenarios and pass it +to the SDET team.
    • Bring query UTxO by address command performance on par with the baseline +version.

    Genesis

    • Receive and incorporate Duncan's feedback on the first draft specification for +the Genesis implementation.
    • Begin prototyping the first genesis implementation, unless the first draft +needs major changes.
    • Draft a second revision of the Genesis report.
    • Review the second revision with a wider audience, which includes at least +Alexander Russell. That feedback will drive a third and hopefully final +revision.
    • Investigate how to mitigate the ~30% slowdown we have observed so far in the +ChainSync jumping prototype, and try to mitigate it. In particular, we might +need to optimize the existing BlockFetch logic.

    Tech debt

    • Enabling nightly CI tests.

    Fostering collaboration

    • Merge the tutorial document Galois wrote; requires CI integration.
    • Come up with our own documentation improvements, many of which were suggested +in the Galois gap analysis.
    • Try to hire a new team member.

    · 4 min read
    Marcin Szamotulski

    Network Quarterly Update

    2022-09 - 2022-11

    Summary of most important improvements

    During this quarter the networking team delivered low level specification of +peer sharing & eclipse evasion. We held a session with the consensus & the +scientists; we got a positive feedback on the design.

    Further we focused on implementation of peer sharing. We produced a detail +design and an early implementation.

    We prepared the P2P Single Relay Release (cardano-node-1.35.5). It +includes over 130 patches of network stack improvements over the +previous version 1.35.4, which were accomplished over a longer period of +time. Among them are both bug fixes and UX improvements for stake pool +operators like simplified format of the topology file, or +improvements in the logged messages:

    We also provide better integration with systemd (socket +activation improvements) or improvements in the networking stack:

    • exit policies,
    • peer metrics improvements,
    • DNS TTL improvements (which make it harder to misconfigure the +system, an issue discovered by the performance & monitoring team),
    • do not trigger inbound idle timeout for node-to-client connections (pr +#3844), an issue reported to us by Matthias Benkort from +Cardano Foundation.

    Duncan has been making progress with the input endorsers demo. His simulation +provides a useful animated visualisation and live quantification of behaviour +of the modeled design.

    We also improved our e2e diffusion simulation by implementing header-body +split, similar to what the real implementation does.

    We also made some advances towards our future goals of P2P release for block +producer nodes (pr #3800 - in review) & for Daedalus users +(pr #3690 - merged).

    Detailed log

    • We expanded diffusion simulation with block-fetch protocol bringing it closer +to the production system.

    • We addressed some additional technical depth in diffusion simulation

    • We slightly improved documentation & CI of io-sim and typed-protocols +repositories for open-source contributors.

    • We closed a number of issues towards publishing io-sim on Hackage (only two +essential issues are left open).

    • We pushed a branch of typed-protocols which captures one of the developer UX +problems in the API which we need to solve.

    • We identified and fixed an issue related to systemd sockets.

    • We identified and fixed an issue in consensus initialisation not giving +feedback on early errors.

    • We deployed RT View, identified a number of issues which were communicated to +the performance & monitoring team.

    • We finished high level & detailed design of peer sharing, very early +implementation of peer sharing is done (note that peer sharing cannot be +safely deployed without eclipse evasion & genesis).

    • We finished high level design of eclipse evasion, and started working on +a detailed design.

    • We were assigned the role of release engineer for 1.35.5 release (the P2P +single relay release); we prepared a cardano-node for 1.35.5 release which +contains more than 130 patches of just network stack improvements done over +last few months.

    • We diagnosed and fixed an tricky bug in the peer state actions (a component +which sits between outbound governor and connection manager). That bug was +introduced earlier this year and never released. It was caught by the QA +testing framework. We expanded our diffusion simulation to cover such case and +also mitigated a chance for reintroducing such a bug in future.

    • We identified and quite likely mitigated a misconfiguration in the +benchmarking cluster (next benchmarking run will confirm our hypothesis).

    • We simplified the format of p2p topology file, we got positive feedback from +SPOs.

    • We raised severities of some of the logging messages, which is an important +improvement for SPOs, exchanges and other users of the system.

    • We worked on input endorsers simulation which gives both animated and +quantified live feedback on network operation, using a simplified model of +a TCP/IP network.

    Next quarter

    • Release the Single Relay P2P Release 1.35.5.

    • Carry on with Peer Sharing (review, testing).

    • Deliver a talk at Conference on Principles of Distributed Systems 2022 in Brussels, Belgium.

    • Present Detailed Design of Eclipse Evasion and start implementation phase.

    • Work on P2P Block Producer release.

    • Carry on with publishing of io-sim on Hackage.

    · 2 min read
    Jared Corduan

    Ledger Quarterly Update

    2022-09 - 2022-11-04

    • We finished a minimal ledger era capable of master key rotation. +This will be re-purposed our upcoming work.
    • We have the humble beginnings of a proper ledger API.
    • We improved the problematic cost model serialization +(recall the song and dance about updating the cost model one epoch after the hard fork).
    • We have added benchmarks for problematic areas.
    • Massive repository restructure and cleanup.
      • Unified and consistent variable name schemes (not completely finished, but nearly there).
      • Massive reduction in type constraints, which causes a lot of developer friction, +in our code and also downstream.
      • More organized module structures.
      • Improved generators for our property tests.
      • We removed our dependency on cardano-prelude.
    • The formal ledger model has come a long way.
      • We created a fork of Agda that provides some meta-programming support for the ledger rules.
      • We have a large amount of the basic UTxO support in the model.
      • We can generate a good looking PDF from the model.
      • We can produce Haskell from the model.
      • We have a nice finite set theory library that we can use for many of the ledger rules.
      • We have nix support for the model.

    Next steps

    • Individual tracking of deposits. [issue-3113]
    • Versioned CBOR encoders/decoders. [issue-3014]
    • New ledger era transaction body (and the surround work associated with it).
    • Designs for the next ledger era.

    · 2 min read
    Jordan Millar

    Node-Api-Cli Quarterly Update

    2022-09 - 2022-11-04

    • Various improvements to tests/CI/GHC 9.2.4 preparations/upgrade to cabal-3.8.1.0
    • Major clean up of stale iusses + PRs.
    • Implementation of stale-bot to mitigate against a proliferation of outdated issues and PRs
    • cardano-api refactoring with the aim of exposing more user friendly functions, particularly concerning transaction construction and querying the node.
    • cardano-cli refactoring with the aim of moving reusable functions to cardano-api. We have made strides here and have managed to improve the interface of transaction construction and validation.
    • General documentation updates and improvements
    • Addition of tx-mempool command which allows users to:
      • Query the node about the current mempool's capacity and sizes
      • Request the next transaction from the mempool's current list
      • Query if a particular transaction exists in the mempool
    • Initial refactoring of cardano-testnet

    Next quarter

    • cardano-api
      • Working with Konstantinos and his team to make cardano-api better for dapp developers - we have a google doc for this, I can send it to you privately.
    • cardano-testnet
    • Serenity
      • Continued refactoring of cardano-api and cardano-cli, with the particular focus on extracting re-usable components of cardano-cli and moving them to cardano-api. This is harder to define but will manifest in stuff moving from cardano-cli to cardano-api and is tied in to the cardano-api work specified above.
    • General bug fixing and smaller feature requests for the api/cli that are always coming in. Robert is primarily handling this at the moment as he is relatively new.
    + + + + \ No newline at end of file diff --git a/quarterly/rss.xml b/quarterly/rss.xml new file mode 100644 index 0000000000..086dfca492 --- /dev/null +++ b/quarterly/rss.xml @@ -0,0 +1,667 @@ + + + + Cardano Development Updates Blog + https://updates.cardano.intersectmbo.org/quarterly + Cardano Development Updates Blog + Wed, 17 Jul 2024 12:35:56 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + <![CDATA[Consensus Q2 2023 Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-Q2-consensus + 2023-Q2-consensus + Wed, 17 Jul 2024 12:35:56 GMT + + 2023-04 -- 2023-06

    Main achievements

    UTxO HD

    • We finished a major prototype refactoring, which includes:
      • A better and finer grained DB lock mechanism.
      • Elimination of race conditions.
      • Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.
      • Architectural simplifications and performance improvements.
    • We implemented a new package to support db-sync integration with UTxO-HD.
    • We ran another set of ad-hoc benchmarks:
      • We uncovered a performance regression on the Network component when using GHC-9.2/9.4.
      • The synchronization and replay speed are as expected.
      • However, we uncovered memory consumption issues (see figure below).
        • The in-memory backend is consuming more memory than the baseline.
        • The LMDB backend shows an unexpected memory usage peak.
        • Investigation on these issues is ongoing.
    • We integrated the latest changes in main branch.
      • This required a re-design of the mempool to include the mempool fairness +improvement.

    Genesis

    • The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.
      • This particular question was not anticipated when the Q2 PI was planned.
      • As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized.
      • That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package.
    • The IOG Researchers' feedback on the design was very valuable. It had two primary effects.
    • Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".
      • This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated.
      • The additional design complexity is relatively small.
    • Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.
      • The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era.
      • All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras.
      • Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later.
      • The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks.
    • Relevant questions that the IOG Researchers are still assessing.
      • These do not block the Genesis implementation, but do affect the ultimate values of specific parameters.
      • Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?
      • Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?

    Support

    • We performed an analysis on number of file descriptors used by Consensus, this +information can be used by the node operators to check if the number of file +descriptors they want to support are enough, thus improving the user (eg node +operator) experience.
    • We implemented a mempool fairness improvement, by which transactions are +guaranteed to be processed irrespective of their size.

    Technical debt

    • We fixed a bug in followers logic, which was discovered by our QuickCheck +property tests.
    • We created an immutable DB +server. This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results.
    • We created a db-truncater tool, which can be used in disaster recovery and benchmarking scenarios.
    • We created a benchmarks comparison tool that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance improvements introduced by the Ledger team in version 0.6.0.0 of Consensus wrt version 0.5.0.0.

    Fostering collaboration

    • We released fs-sim as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project.
    • We migrated the consensus code to a new repository, splitting +it from the ouroboros-network repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases).
    • We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users).
    • We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.

    Next steps

    UTxO HD

    Genesis

    • We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.
    ]]>
    + consensus +
    + + <![CDATA[Network Q2 2023 Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-Q2-network + 2023-Q2-network + Wed, 17 Jul 2024 12:35:56 GMT + + 2023-04 - 2023-06

    Main achievements

    Eclipse Evasion

    We finalised the design of eclipse evasion and implemented its mechanism which +relays on connectivity to big ledger peers. Big ledger peers are the +largest ledger peers which accumulate 90% of stake (currently there are less +than 1000 of them). The outbound governor has new targets for known, +established and active big ledger peers which work in a similar way that +such targets work for ledger peers. The ouroboros-network#4662 PR is +currently in review.

    As part of this work we also identified a bug which would prevent a node to +connect to itself. Such connections are not easily detectable and are expected +to be dropped by the churn mechanism, nonetheless they should not be buggy. +The failure was discovered thanks to our e2e simulation of diffusion using +io-sim & property based testing.

    The PR also refactors the heart of the ouroboros-network interface reducing +technical debt that would otherwise accumulate.

    We also identified a possible improvement in the churn mechanism, which will be +implemented in Q3. Churn needs to await for peers to terminate, we can +improve the synchronisation. [ouroboros-network#4617]

    Ecosystem P2P Deployment Progress

    We reached 50% of stake in hands of SPOs who run at least on P2P relay. Now +also Emurgo and CF are running some P2P relays. Also 20% of IOG relays are +running in P2P mode.

    P2P Progress

    Peer Sharing

    We implemented bootstrapping for peer sharing (also known as light peer +sharing). New downstream (inbound) peers are now added to the known peers of +the outbound governor. Together with peer sharing this allows for non +registered relays to propagate through the network. ouroboros-network#3596

    Please note that peer sharing is disabled by default and is not considered safe +until Bootstrap Peers (see below) or Genesis is implemented.

    Diffusion (P2P)

    • We designed a feature which will reduce the load on IOG relays (in future +also run by CF & Emurgo). The feature consists of two parts. A new source +of peers called bootstrap peers (obtained from via an https request), the +ability to switch from bootstrap peers to ledger peers if the node is synced +(we are collaborating with the consensus team on the interface Bootstrap +Peers IER). This feature will be completed in Q3. +ouroboros-network#4530

    • We published a blog post about P2P design & implementation.

    • Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections: +ouroboros-network#4559.

    • We merged changes which allow the consensus layer to start / stop block +forging thread. This will allow to deploy P2P block producing nodes which +serve as a live backup node. ouroboros-consensus#140

    • We fixed a few bugs in local root peers DNS resolution service: +ouroboros-network#4583, ouroboros-network#4571.

    • We limited concurrency of DNS name resolutions: ouroboros-network#4596.

    • Galois Inc implemented query option for Handshake: ouroboros-network#4256.

    • We fixed handshake query timeout: ouroboros-network#4608.

    • We implemented warm valency for local root peers. This can help when using +DNS names in local root peers which resolve to many IP addresses. ouroboros-network#4575

    • We merged handshake changes which allow query protocol versions. Thanks to +James Parker from Galois Inc.: ouroboros-network#4256, cardano-cli#30.

    Other Improvements & Developments

    CDDL

    • We added node-to-node and node-to-client CDDL specs / tests for encoding +of NodeToNodeVersionData and NodeToClientVersionData.

    • We clarified an inconsistency between CDDL spec and implementation which is +highly polymorphic. We designed and implemented a fix for tx-submission +and local-tx-submission mini-protocols. Specs for other mini-protocols will +be improved at a later stage. ouroboros-network#4580

    Cardano Ping

    IOSim

    Typed Protocols

    Cardano Client

    • We fixed a bug in cardano-client-0.1.0.2 release which results in clients +(e.g. db-sync) negotiate an experimental protocol version.

    Technical debt

    CI improvements

    GHC 9.4 & 9.6

    We made all repositories under our control compile with ghc-9.4 and ghc-9.6 +which includes ouroboros-network, io-sim, typed-protocols and +Win32-network.

    Next steps

    We will continue towards our aspirational roadmap.

    • We will continue reviewing eclipse evasion.
    • As ouroboros-consensus#140 was merged, we are making progress towards +releasing P2P on block production nodes. We hope to analyse performance +regression on such nodes observed on the benchmarking cluster. roadmap-3887
    • We are also focused on roadmap-3969. Note that it was expanded in Q2.
    ]]>
    + network +
    + + <![CDATA[SRE Q2 2023 Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-Q2-sre + 2023-Q2-sre + Wed, 17 Jul 2024 12:35:56 GMT + + 2023-04 - 2023-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Expanding the darwin CI cluster and adding aarch64 builder support
    • Adding bare metal capability to bitte clusters
    • Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality
    • Creation of pool performance analysis queries and scripting
    • Migration of testnet metadata server to cardano-world
    • Cardano shelley qa migration to cardano-world
    • Cardano sanchonet environment spin up to test Conway era functionality
    • Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature

    Next steps

    • Continue with the conversion of mainnet to using p2p topology
    ]]>
    + sre +
    + + <![CDATA[Performance & Tracing Q3 2023 Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-Q3-performance-and-tracing + 2023-Q3-performance-and-tracing + Wed, 17 Jul 2024 12:35:56 GMT + + 2023-07 - 2023-09

    Main achievements

    • Release benchmarking
    • Developing and running UTxO-HD benchmarks - in-memory flavour
    • P2P benchmarks, facilitating rollout
    • Production-readiness of the new Nomad cluster has been reached
    • Optimization of and introspection capability for the new tracing system
    • GHC9 performance investigation (and possible remedy)
    • Conensus QTAs: first real-world application of prototype

    Release benchmarking

    Ongoing release benchmarking is a crucial safeguard to cardano-node's release cycle from a performance perspective. We've performed and analyzed benchmarks for node versions 8.2.x to 8.5 throughout Q3.

    UTxO-HD benchmarks

    Targeting a specific new feature in benchmarks requires development effort and fine-tuning the machinery. In Q3, we achieved that for the in-memory flavour of UTxO-HD, enabling benchmark delivery.

    P2P benchmarks

    In Q3, we performed additional P2P benchmarks to facilitate the comprehensive rollout of that feature.

    New nomad cluster

    The new hardware cluster for benchmarks, which is controlled through the new nomad backend, has received +various rounds of validation and adjustments in Q3 - in addition to finalizing integration with the rest +of our pipeline. The confidence in metrics gathered on the cluster is now sufficient for us to consider it +ready for production use.

    New tracing system

    Our new tracing system has received various rounds of optimization in Q3. We could verify in our benchmarks that +it is roughly on par with the legacy system while offering a richer feature set and greater flexibility.

    Additionally, in Q3 we equipped the system with an introspection capability. This is now used for generating +end user documentation that stays in-sync with definitions in code, and for automated consistency checking of the entire system.

    GHC9 performance

    In Q3, a joint investigation with DevX into GHC9's behaviour revealed where and how GHC9 misses opportunities for +optimization of generated code. This led to an approach to annotate our codebase accordingly to re-enable +those optimizations - which is still being validated.

    Consensus QTAs

    In collaboration with Consensus and DevX, we advanced the Consensus QTAs prototype capturing ledger operations' +performance characteristics. It's now applicable, and being applied, to a real-world task - namely +gathering evidence of the effect of aforementioned changes allowing for performant GHC9 builds.

    Next steps

    Benchmarking:

    In Q4, the focus will be on:

    • facilitating the next mainnet release
    • benchmarking runs in the Conway era
    • developing benchmarks / workloads for Conway-exclusive actions
    • implementing a specialized benchmark setup for the UTxO-HD on-disk variant
    • developing new Plutus benchmarks to safeguard Plutus V3
    • benchmarks regarding the rollout of P2P

    Performance

    For certain blocking performance issues we've located the cause, or even found a solution in a cross-team effort. In Q4 we'll advance that work to ensure the ongoing +release cycle for mainnet, as well as make GHC9 become a viable release platform.

    New tracing system

    For the new tracing system, we'll finalize optimization - current results are already on par with the legacy system. Furthermore, we will finish up comprehensive documentation, as well as description of a recommended setup, for which we can provide initial support.

    UTxO-HD monitoring

    We'll augment our analysis pipeline so it can process monitoring data from UTxO-HD nodes connected to mainnet in a meaningful way.

    Nomad backend

    From Q4 on, this backend will be in production use. We plan on adding various UX and flexibility improvements, and further fine-tuning some profiles for nomad.

    Workbench

    We will prepare for a future move of our performance workbench into a separate project. This entails restructuring, refactoring and reimplementation of certain few components that currently assume to always be in sync with cardano-node.

    Consensus component QTAs (co-development)

    In Q4 there will be ongoing work with and support for the existing prototype. We plan to identify a fixed set of input data that yields results of high informative value, and to formalize the process to a point that enables future automation.

    ]]>
    + performance-tracing +
    + + <![CDATA[SRE Q3 2023 Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-Q3-sre + 2023-Q3-sre + Wed, 17 Jul 2024 12:35:56 GMT + + 2023-07 - 2023-09

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Completion of mainnet relay networking conversion to p2p topology
    • Cardano sanchonet environment respins for testing new cardano-node pre-release Conway era functionality
    • Stabilization of cardano-explorer in cardano-world using high IOPS bare metal machines
    • Creation of a nix content addressed packages repository, capkgs:
      • To provide lightweight release binaries thereby avoiding sluggish nix flakes and devShells
    • Creation of a cardano performance benchmarking cluster, cardano-perf:
      • To replace legacy cluster benchmark tooling
    • Creation of a cardano cluster composition repository, cardano-parts:
      • For enabling multi-cluster, multi-role cardano network deployments
    • Creation of a cardano testnets repository, cardano-playground:
      • Utilizing cardano-parts for testnet deployments
    • Creation of a sanchonet demo repository, sanchonet-demo:
      • Utilizing cardano-parts for fast sanchonet test environment and demo purposes

    Next steps

    • Continue with migration of cardano-world testnets to cardano-playground
    • Proceed with spinup of mainnet p2p bootstrap cluster
    • Scale down mainnet non-p2p legacy cluster at the appropriate time
    ]]>
    + sre +
    + + <![CDATA[Consensus Q4 2023 Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-Q4-consensus + 2023-Q4-consensus + Wed, 17 Jul 2024 12:35:56 GMT + + Areas of focus
    IssueStatus
    Implement legacy mode for UTxO-HD to keep baseline performance✅ Done
    Assist mainnet node release with initial Conway capabilities✅ Done
    Assist with test, benchmark, and improvements to CIP 1694✅ Done
    Assist with P2P IOG relay network shut down✅ Done
    Assist with repo transfer to Intersect✅ Done
    Support vendors to deliver contracts✅ Done
    Operation serenity Q4 2023✅ Done

    Highlights

    Implement legacy mode for UTxO-HD to keep baseline performance

    • ✅ We managed to run a UTxO-HD capable node in legacy mode, maintaining the baseline memory usage while keeping all the ledger state in memory.
      • While the legacy mode is not production-ready (it requires further integration and testing), it remains as a plan B should the need arise to release UTxO-HD if our stakeholders so demand it.
    • ✅ We pivoted to redesigning the Ledger DB API because:
      • This is needed for integrating the LSM-tree backend.
      • The redesign opened the possibility of implementing an in-memory backend that would keep the same performance and resource requirements as the baseline version (which needs to be confirmed by benchmarks).
    • ✅ We created a more general Ledger DB API.
    • 🛠️ We are integrating (into the feature branch) the existing Ledger DB implementations with the new API.
    • 🛠️ We are implementing the new in-memory backend.

    Assist mainnet node release with initial Conway capabilities, test, benchmark, and improvements to CIP 1694

    • ✅ We recognized that Conway introduces a new challenge in the versioning of NTC queries, and we resolved it (see 864 and 4770).

    Assist with P2P IOG relay network shut down

    • ✅ We created a prototype for the pre-Genesis State Machine for bootstrap peers, which is currently under test (see this PR).

    Assist with repo transfer to Intersect

    • ✅ We transferred the ouroboros-consensus repository to the Intersect GitHub organization.

    Support vendors to deliver contracts

    • Genesis
      • ✅ Interacted with the Consensus team and addressed resulting feedback on past deliverables.
      • ✅ Finished implementation of the testing infrastructure of Genesis
      • ✅ Started to refine the Proof of Concept demo into an actual implementation of the core components of the Genesis design.
    • 💾 LSM-tree implementation. Well Typed:
      • ✅ Finished the design of the public facing API.
      • ✅ Defined the LSM-tree database file-type formats.
      • ✅ Implemented property and model-based tests.

    Operation serenity Q4 2023

    • 🎉 We welcomed our newest team member @RenateEilers and assisted with her (ongoing) onboarding.
    • ✅ We implemented a simplification in the ChainSync mini-protocol that is also a step towards Ouroboros Chronos.
    • ✅ We added tests to check Consensus emits valid CBOR, which prevents the generation of invalid binary encoding.
    • ✅ We established and implemented an interface between Consensus tooling and P&T tooling, which constitutes a step towards incorporating component level benchmarks in our development process.
    ]]>
    + consensus +
    + + <![CDATA[Performance & Tracing Q4 2023 Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-Q4-performance-and-tracing + 2023-Q4-performance-and-tracing + Wed, 17 Jul 2024 12:35:56 GMT + + 2023-10 - 2024-01

    Main achievements

    • Release benchmarking, leading up to next mainnet release
    • Conway benchmarking of existing Babbage workloads
    • P2P benchmarks, validating viability as default topology
    • Added basic PlutusV3 capability of our tooling
    • Publication of benchmarking reports accompanying a mainnet release
    • GHC9 performance investigation
    • Finalized and validated all optimizations for the new tracing system
    • New Nomad benchmarking cluster: production use
    • Adjustment of our infrastructure to cover the migration to IntersectMBO
    • Conensus QTAs: prototype developed into alpha-stage benchmark
    • Successful on-boarding of a new team member

    Release benchmarking

    We've performed and analyzed benchmarks for node versions 8.6.x to 8.7.3, which is projected to be the next mainnet release, throughout Q4. +Along that way, we have identified, located and handled all performance blockers.

    Additionally, we've started publishing benchmarking reports here on Cardano Updates. The format is meant to increase transparency and +provide insight into those measurements that accompany mainnet releases - demonstrating the absence of performance regressions and development +of specific metrics over time.

    Conway benchmarks

    Furthermore, we've done first ever benchmarking of the Conway ledger. To that end, we've ported our Babbage workloads to Conway for +immediate comparability. Fortunately, we've have not found any performance regression in the Conway ledger.

    P2P benchmarks

    In Q4, we've validated P2P topology to be viable as default for both relay and block producer nodes. As a consequence, we've switched +to P2P topology for benchmarking baselines ourselves.

    GHC9 performance

    In Q4, evaluation of GHC9.2's and GHC9.6's optimizer in the context of the Cardano code base has been completed. +Eventually, GHC9.6 has shown itself to be much more suitable from a performance perspective. We're convinced that +with a few select annotations in the code, GHC9.6's optimizer can produce a result on par performance-wise with GHC8.10 - +which just was a great release in that regard. With GHC9.2 unfortunately, the changes would have to be more invasive - and thus more time-consuming.

    New nomad cluster

    We’ve moved the new Nomad cluster into production use and established new baselines for each workload on it. +Additionally, we’ve shut down the legacy cardano-ops benchmarking cluster, and archived all raw data from it.

    Consensus component QTAs

    We’ve developed the existing prototype into an automatable, self-contained benchmark called beacon, as well as systematized workloads and run structure for it. +Moreover, we’ve demonstrated usefulness of the metrics, their reproducibility, and identified domains viable for QTAs with system-level benchmarks.

    New team member

    We're happy to welcome a new joiner to our team! We've successfully onboarded him in Q4; he has taken +over the cardano-tracer service - the node-external component of the new tracing system - and has already +landed several valuable contributions.

    ]]>
    + performance-tracing +
    + + <![CDATA[SRE Q4 2023 Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-Q4-sre + 2023-Q4-sre + Wed, 17 Jul 2024 12:35:56 GMT + + 2023-10 - 2023-12

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • Cardano-parts support was added for cardano-db-sync, cardano-smash, +cardano-faucet, cardano-metadata, grafana monitoring along with a number of +other features

    • Completed migration of testnets from cardano-world to the cardano-playground cluster

    • Completed migration of the cardano book from cardano-world to the cardano-playground +cluster

    • Completed migration of pools from cardano-ops to the cardano-mainnet cluster

    • Creation of a mainnet p2p bootstrap cluster

    • Cardano sanchonet environment respins during the quarter for testing new +cardano-node pre-release Conway era functionality

    • All environments were upgraded to cardano-node 8.7.2 or 8.7.3 by the end of +the quarter

    • Completion of a govtool backend deployment for Voltaire chain testing

    • Creation of a cardano-monitoring repository, +cardano-monitoring:

      • A new repository enabling agile deployment of EC2 monitoring servers, +compatible with OpenTofu grafana and mimir providers

    Next steps

    • Scale down the mainnet non-p2p legacy cluster

    • Add deployment support for new network services, such as Mithril

    • Continue cardano-parts and operations improvements

    ]]>
    + sre +
    + + <![CDATA[SRE Q1 2024 Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2024-Q1-sre + 2024-Q1-sre + Wed, 17 Jul 2024 12:35:56 GMT + + 2024-01 - 2024-03

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • All cardano release environments, including preview, preprod, mainnet legacy +and mainnet new clusters were upgraded through cardano-node releases of +8.7.3, 8.9.0 and finally into 8.9.1 by the end of March

    • All cardano pre-release environments, including sanchonet, private chain, and +shelley-qa clusters were upgraded through cardano-node releases of 8.7.3, +8.8.0-pre, 8.8.1-pre, 8.9.0 and finally into 8.9.1 by the end of March

    • Sanchonet and private chain environments were both re-spun once each during +this quarter to support new pre-release versions of cardano-node in the Conway era

    • Cardano-parts added a cardano-db-sync process-compose stack for each +environment

    • Cardano-parts added a cardano-node process-compose stack for each environment

    • Cardano-parts added enhancements for topology related nixos modules and +functions to accomodate new bootstrapPeer functionality, new topology +attributes and increased complexity network deployments.

    • Cardano-parts added support for mithril signers integrated with block +producers and a mithril-signer-verifier service for monitoring

    • Sanchonet, preview, preprod and mainnet IOG block producers are now signing +mithril certificates

    • Cardano-parts added support for mithril clients in nixos cardano-node systemd +service, process-compose job stacks and nix cardano-node entrypoint, all of +which also require any mithril snapshot to be signed by a trusted IOG pool +prior to use

    • Cardano-parts added ip integration tooling, so that similar to other deployer +tools like nixops, nixosConfigurations possess ip information which can be +used in module configuration

    • Cardano-db-sync snapshots server migration from legacy mainnet cluster to new +mainnet cluster with a rewrite of the snapshot service was completed

    • Cardano metadata server migration to Cardano Foundation was completed

    • BlockPerf, a cardano-node performance monitoring tool, was integrated into the +new mainnet cluster relays

    • Cardano-node bootstrapPeer functionality was added with node 8.9.x, requiring +effort to align nixos service module code between cardano-node nixos +services, iohk-nix topology generation, cardano-ops legacy code, and +cardano-parts module compatibility as well as feature test under various edge +cases

    • Cardano-playground added govtool backend support for private chain voltaire +testing team

    Next steps

    • Add support for the new cardano-node metrics system

    • Add IPv6 cardano-parts support

    • Extend govtool frontend and backend to a process-compose stack

    • Adapt network spin-up tooling for the new create-testnet-data cardano-cli command

    • Continue cardano-parts and operations improvements

    ]]>
    + sre +
    + + <![CDATA[SRE Q2 2024 Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2024-Q2-sre + 2024-Q2-sre + Wed, 17 Jul 2024 12:35:56 GMT + + 2024-04 - 2024-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • All cardano release environments, including preview, preprod, mainnet legacy +and mainnet new clusters were upgraded through various cardano-node releases of +8.9.2, 8.9.3, 8.9.4, 8.12.1, and finally into 8.12.2 by the end of +June

    • Cardano pre-release environments additionally iterated through pre-release +upgrades of 8.11.0-pre, 8.12.0-pre, and finally into 8.12.2 by the end +of June with the exception of sanchonet which remains pinned at 8.11.0-pre +until the next respin to support node version 9.0.0 or greater

    • Sanchonet environment was re-spun two times for pre-release Conway testing of +cardano-node versions 8.10.0-pre and 8.11.0-pre respectively

    • Private chain environment was re-spun three times to support fast epoch +Conway testing

    • Cardano-playground and cardano-mainnet repos have added ten operations +oriented documents for knowledge transfer

    • Block producers which participate in mithril signing will now produce metrics +and can have them scraped with the default metrics agent

    • A cluster spin-up job to utilize the new cardano-cli create-testnet-data +sub-command was created

    • A nixosModule, dashboards and alerts were added supporting the new cardano +tracing system

    • Many new operations scripts and features were added, including a template +diff and patch recipe to pull the latest cardano-parts improvements to +consuming repositories more easily

    Next steps

    • Finalize support for the new cardano-node tracing system once the service is +rewritten for general consumption

    • Add IPv6 cardano-parts support

    • Extend govtool frontend and backend to a process-compose stack once govtool +is publicly buildable again

    • Continue cardano-parts and operations improvements

    ]]>
    + sre +
    + + <![CDATA[Consensus Quarterly Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-04-25-consensus + 2023-04-25-consensus + Tue, 25 Apr 2023 00:00:00 GMT + + Consensus Quarterly Update

    2023-01 - 2023-03

    Main achievements

    UTxO HD

    • We finished the testing activities for the prototype, which involved adding +new tests, and fixing and enabling temporarily disabled tests.
    • We spent a substantial amount of effort refactoring and cleaning the +prototype.
    • We audited the UTxO HD prototype to make sure it can accommodate the migration +of other tables (eg stake-keys registration) from memory to disk. The result +of the audit was positive.
    • We ran ad-hoc benchmarks for reading keys and flushing values to disk. No +unexpected costs found.
    • We ran the first system level benchmarks. The performance regressions reported +were due to an unrealistic snapshotting rate. We need to re-run them again +after we design a more fine grained locking mechanism.

    Genesis

    • We elaborated a roadmap of the remaining work for Genesis.
    • We presented the design to the IOG Researchers and PNSol on February 20. The +design was well received. We updated the Genesis design with the researcher's +feedback.
      • We plugged the new DoS vector identified during the aforementioned +presentation.
    • We developed a generator for adversarial leader schedules that satisfy key +Ouroboros properties, which will be used to test the Genesis design.
      • The generator enables use of smaller Ouroboros parameters, which makes +extrema more likely and counterxamples easier interpret.
    • We wrote up the latest design iteration.
    • We continued benchmarking the Chain Sync Jumping prototype. In particular:
      • We debugged the prototype's performance regression, and unmasked the +actual cause by patching our initial theory (bad queuing behavior)
      • We identified and validated the actual cause (a pathological case in +BlockFetch tiebreaker).

    Support

    • We created two new tools. One for dumping CBOR encoded blocks to JSON. Ahother +to serve a local immutable DB.

    Conway era

    • We integrated the Conway era into consensus.

    Technical debt

    • We fixed a bug with followers, which was discovered by property tests.
    • We developed a DSL for specifying and running ChainDB test cases.
    • We fixed failing tests with iterators.
    • We created micro-benchmarks for adding transactions to the mempool.

    Fostering collaboration

    • We released a new technical documentation site for consensus.
    • We factored out several packages to external repositories. Some of this work +originated in the UTxO HD workstream.

    Next steps

    UTxO HD

    Genesis

    Support

    • Design Consensus side of hardfork-enactment in the Voltaire phase +(#4180).
    • Estimate the number of file descriptors Consensus needs +#20.

    Tech debt

    • Identify Quantitative Timeliness Agreements (QTAs) metrics that we can define +for consensus. Pick one and implement benchmarks for it.

    Fostering collaboration

    • Onboard a new team member.
    ]]>
    + consensus +
    + + <![CDATA[Network Q1 2023 Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-04-04-network + 2023-04-04-network + Tue, 04 Apr 2023 00:00:00 GMT + + 2023-01 - 2023-03

    Main achievements

    Gradual dynamic P2P release on mainnet

    We released two version of cardano-node with dynamic P2P capabilities:

    • 1.35.6
      • we found and fixed a bug in exception handling in peer-state-actionspull-4357
      • we found and fixed a busy loop when demoting a peer from hot to warm pull-4385
    • 1.35.7
      • includes interoperability in the legacy non-p2p network stack pull-4467
    • we fixed a busy loop of demotion & promotions: warm -> hot -> warm[pull-4485] /it will be included in cardano-node-8.0.0 release/.

    Currently there are more than 200 P2P relays on mainnet.

    Peer Sharing

    We implemented /peer sharing/ pull-4019 which will be available as an +experimental feature in one of the future cardano-node releases.

    We implemented /light peer sharing/, e.g. adding inbound connections to the set +of known peers of the outbound governor, which allows to bootstrap relays not +registered on chain. This complements peer sharing. The pull-4277 is in +late review stages.

    Eclipse Evasion

    We finalised design of eclipse evasion and we started implementing it. We +have an initial implementation (not merged). We are in the process of extending +our test suite to cover new implementation details: issue-3886, pull-4462.

    Cardano Network Service Assurance

    Galois has been making progress on Cardano Network Service Assurance project.

    • In cardano-node, they have developed a datapoint abstraction that creates +a queue of (existing) log events, they now have two such datapoints (of log +events) implemented.

    • They have developed a datapoint client executable that can connect to a node +which serves the "new tracing".

    • They have been exploring approaches for the consolidation and analysis of +datapoint data to extract actionable network health status.

    Cardano-Node

    • We made it possible to configure accepted connections limit pull-4902.

    Testing improvements

    • We fixed a bug in network simulation implementation of TCP simultaneous open pull-4265.

    • We introduced header-body split in the diffusion simulation pull-4419 (in review).

    • We introduced initiator only nodes in the diffusion simulation pull-4280.

    • We fixed a connection-manager test failure issue-4370.

    Technical Debt

    • We refactored Snocket interface decoupling it from the multiplexer +pull-4260. This simplified some aspects of the KES agent implementation.

    • We introduces a record for CBOR codecs which are used for various data +structures by mini-protocol codecs pull-4430.

    Documentation

    • We explained some limitations of CDDL in our technical report pull-4351.

    IO-Sim

    • We fixed implementation of MVar's pull-70.

    NoThunks

    • We published a new version of nothunks library to Hackage.

    Next steps

    • Finish implementation & testing of eclipse evasion issue-3886.
    • Optimise connectivity to peers behind firewall issue-4381.
    • Finish the work on enabling block production dynamically to allow using P2P +on block producers issue-3159.
    • If time permits we would like also to reserve some time for finishing +publication of io-sim to Hackage.
    ]]>
    + network +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-04-03-ledger + 2023-04-03-ledger + Mon, 03 Apr 2023 00:00:00 GMT + + Ledger Quarterly Update

    2023-01 - 2023-03

    Main achievements

    CIPs

    • Entering the Voltaire phase - +CIP-1694 received a major update after participation in the design has expanded to +more and more people, including those who attended the Colorado workshop. +See CIP-1694.
    • Ledger CIP category - +The ledger team continues to embrace the CIP process, and has begun the process of +registering the ledger as an official CIP category. +See CIP-84.
    • Ledger serialization - +A CIP for the ledger serialization deprecation cycle has been accepted. +See CIP-80.

    Formal ledger model

    Our new formal specifications backed by Agda have seen a lot of progress. +The majority of the ideas in CIP-1694 are now present, and we have made enough progress +that we can now safely say that the PDF produced by the Agda model will be the +official ledger specification for the Conway ledger era. +See the repository.

    Conway ledger era

    Progress on the Haskell implementation of CIP-1694 has gone hand in hand with the formal model. +The major component still missing is the DRep stake distribution, which still presents some +technical challenges.

    [pull-3176] +[pull-3216] +[pull-3226] +[pull-3291] +[pull-3326] +[pull-3330] +[pull-3339]

    DRep stake distribution computation

    Adding another large stake distribution to the ledger state must proceed with caution. +We do not want the memory used by the node to increase too much, +and performance problems can lead to reduced block production. +We have prototyped, tested, and benchmarked several approaches that could give us +the current DRep stake distribution at each epoch boundary. +This has very important implications, since we want every ADA holder to be able to at any +time (such as during a contentious vote) register themselves as a DRep and still have time +to vote themselves on the issue.

    [pull-3344] +[pull-3353] +[pull-3364]

    Integration work

    The ledger has made some wonderful improvements over the past six months, +but which entail a significant amount of integration efforts:

    • Our new versioned CBOR schemes
    • Individual deposit tracking
    • An improved cross-era interface utilizing lenses
    • A new ledger API
    • Re-arranging the ledger stake in preparation for CIP-1694
    • Versioning our Haskell packages +using CHaPs.
    • Consistent conventions for variable names

    [pull-3279] +[pull-3282] +[pull-3288] +[pull-3289] +[pull-3292] +[pull-3297] +[pull-3298] +[pull-3299] +[pull-3300] +[pull-3302] +[pull-3303] +[pull-3308] +[pull-3342] +[pull-3345] +[pull-3356] +[pull-3357] +[pull-3360] +[pull-3361] +[pull-3363] +[pull-4349] +[pull-378] +[pull-376] +[pull-373] +[pull-370] +[pull-361] +[pull-4976] +[pull-5013]

    Deposit tracking

    Individual deposits (for stake credential and stake pool registrations) were not tracked by the ledger. +Deposits were returned according to the current protocol parameters. +When the values of these two protocol parameters change, the deposit pot +is adjusted by adding to, or removing from, the reserves.

    This has several problems:

    • Most people expect a deposit to be paid back exactly.
    • We cannot increase the deposit amount once the reserves hits zero.
    • If it becomes known that the deposit amount is going to be increased, free Lovelace can be earned by registering credentials.
    • Because of the problems above, it is going to be incredibly hard to ever change the values.
    • There is a serious issue involving hard forks. +The consensus layer makes the decision about whether or not to enact a hard fork based on +the protocol parameter update state two stability windows before the end of the epoch. +However, the ledger will reject a protocol parameter update on the epoch boundary +if the deposit pot adjustments cannot be reconciled with the reseve pot. +This means that if quorum is met regarding changing the major protocol version, +but the update is rejected on the epoch boundary, consensus will change the era but the +ledger will not change the major protocol version, leaving the ledger in a split-brain state.

    Because we never actually changed the values of the two deposits amounts in the protocol parameters +on mainnet, we were able to retroactively change the behavior. +We made the following changes:

    • Individual deposits are tracked in the DState.
    • The amount deposited is always returned.

    [pull-3195] +[pull-3202] +[pull-3217]

    New ledger API

    We have significantly built up the ledger API. +We will eventually replace much of the cardano-api in the node repository with this ledger API.

    [pull-3242] +[pull-3248] +[pull-3328]

    Constraint-based generators

    Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks +which span several epochs, mimicking a real network. +These tests are, in theory, excellent for checking properties. +They are, however, very difficult to maintain and are not as random as we would like +(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We have a new declaritive infrastructure for building constraint-based generators, +which instead generate a random ledger state representative of not just an initial state, +but also those representative of the end result of a long sequence of valid blocks. +Moreover, these generators are very fast and are much more random than our old generators. +Before we can start using them for our existing property tests, however, we still need to +expand them to generate a valid block for a given ledger state.

    [pull-3219]

    Technical debt

    We continued to address technical debt as much as we can.

    [pull-3167] +[pull-3170] +[pull-3172] +[pull-3175] +[pull-3184] +[pull-3205] +[pull-3208] +[pull-3210] +[pull-3212] +[pull-3218] +[pull-3222] +[pull-3223] +[pull-3224] +[pull-3225] +[pull-3229] +[pull-3239] +[pull-3241] +[pull-3244] +[pull-3245] +[pull-3249] +[pull-3260] +[pull-3263] +[pull-3264] +[pull-3268] +[pull-3269] +[pull-3270] +[pull-3274] +[pull-3276] +[pull-3277] +[pull-3286] +[pull-3290] +[pull-3295] +[pull-3296] +[pull-3306] +[pull-3307] +[pull-3310] +[pull-3311] +[pull-3316] +[pull-3320] +[pull-3323] +[pull-3327] +[pull-3331] +[pull-3332] +[pull-3333] +[pull-3338] +[pull-3341] +[pull-3347] +[pull-3350] +[pull-3351] +[pull-3352] +[pull-3354]

    Critical fixes

    We fixed two critical issues:

    • Growing block production delay on the epoch boundary: [pull-3209]
    • Unexpected node shutdown from balanceR: [pull-3343]

    Next steps

    • Conway spec - +Complete the first version of the conway formal specification.
    • DRep stake distribution - +Have the ledger compute the DRep stake distribution with acceptible performance.
    • Devnet ready - +Have the Haskell implementation of the conway era in sync with the formal specification, +and integrate the changes with consensus and node. +All the details might not be finalized, but the wire specification and the API should +be stable so that conway can be placed on a devnet for tool builders to start integrating with.
    • Plutus V3 - +Integrate Plutus V3 into the ledger, including a new script context which supports DReps.

    More details

    This quarterly report was based off of the following fortnightly ones:

    ]]>
    + ledger +
    + + <![CDATA[Consensus Quarterly Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-01-18-consensus + 2023-01-18-consensus + Wed, 18 Jan 2023 00:00:00 GMT + + Consensus Quarterly Update

    2022-12 - 2023-01

    Main achievements

    UTxO HD

    The prototype is feature complete and thoroughly tested at the consensus level. +In particular, we invested a lot of time in writing property-test for the +mempool, and other crucial new parts of the prototype. Now we are ready to run +integration tests and system-level benchmarks.

    Genesis

    We identified and fixed a slowdown in cross-era forecasting that was inhibiting +our efforts to benchmark the ChainSync Jumping prototype. This resulted in a 7% +speedup in full sync times in the baseline.

    We also started prototyping a self-contained implementation of the Genesis +dynamics (in particular of the parts intentionally not part of the ChainSync +Jumping prototype) that furthered our understanding of subtleties and edge +cases.

    Support

    • We worked on designing integration of new VRF and KES crypto into consensus.
      • Crypto class was split into two parts: Crypto and HeaderCrypto.
      • With the Ledger team's help, we refactored cardano-ledger to use a proxy +type for VRF.

    Conway era

    • PR went through its second review round. It is about to be merged, but it got +delayed due to people's availability during Christmas break.

    Technical debt

    • We improved the capabilities of our io-sim library, which is key for testing +and simulating Cardano components.
    • We removed thunks from epoch translations in the ledger, which is important +for reducing memory consumption of the Cardano node.

    Fostering collaboration

    • We added a tutorial on how to instantiate the Consensus layer to run custom +ledgers. This should be a valuable resource to people looking to roll their +own custom blockchain (either for commercial or research purposes).
    • We added an overview of consensus to the top level +documentation of +ouroboros-network. This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    Next steps

    UTxO HD

    • Evaluate the extensibility of the prototype. Moving the UTxO to disk is only +the first step towards reducing the memory requirements of Cardano node, and +ensuring its long term sustainability. In the future, we plan on moving other +large maps, such as delegation maps. The prototype should be able to +accommodate these changes without any major modifications.
    • Start the integration with other downstream components, such as the wallet and +db-sync. The idea is to identify and address any potential pain points that +might arise during this integration.
    • Run integration tests and system-level benchmarks.

    Genesis

    • Finish benchmarking and tuning the fast-path ChainSync Jumping prototype
    • Expand and optimize the self-contained implementation of the Disconnect Rule +(including density comparisons and the LoE)
    • Develop documentation and smoke tests for these components.
    • Start modifying the ChainSync Client for the LoP and LoR.

    Support

    • Help the Network team with diagnosing performance regression in block +production.

    Tech debt

    • Fix property-test failures concerning iterators (#3999 and +#4183).

    Fostering collaboration

    Risks

    UTxO HD

    • Moving other parts of the ledger state to disk might require a major redesign +of the prototype. For instance, if it turns out that the epoch change rules +require access to the full ledger state. If this is the case, we might +accept this risk and do the redesign after the initial release of UTxO-HD.
    • Integration with downstream clients might require more work than we +anticipate.
    • Access to the benchmarking's team time and resources.
    • Benchmarking results might show significant performance degradation, which +will require additional work if such performance degradation is not accepted +by other stakeholders.
    • The prototype's performance might not be accepted by other stakeholders. Here +we need to clearly communicate that this is necessary to ensure that as the +blockchain size grows, the node can operate within reasonable memory +constraints.
    ]]>
    + consensus +
    + + <![CDATA[Network Quarterly Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-01-13-network + 2023-01-13-network + Fri, 13 Jan 2023 00:00:00 GMT + + Network Quarterly Update

    2022-11 - 2023-01

    Summary

    The primary goal of the networking team was to focus on the single relay +release of P2P. We fixed a number of small late bugs, and concluded QA +& performance testing. Although it was discovered a regression in performance +of block production when P2P is enabled, relaying with P2P performs better +comparing to a non p2p. We concluded that this is not a blocker for the Single +Relay Release which is planned shortly.

    Peer sharing has gone through review and final review is +just being done right now. After merging it will still be disabled (hidden +behind a flag) as it's not safe without eclipse evasion. We started +implementing light peer sharing (i.e. include inbound peers into known peer set +of the outbound governor).

    We started a detailed eclipse evasion design, it will continue in the next +quarter.

    We also made a major revision of package structure of the network packages. We +ended up with a very clean dependency graph (pr #4155).

    Armando Santos delivered a talk at the ODOPIS 2022 conference on principles +of distributed systems in Brussels. The slides are available here.

    Neil Davies gave an invited seminar on DeltaQ at Université Catholique de +Louvain.

    We also found and fixed a few of bugs:

    • a bug in keep alive mini-protocol which resulted in warm to cold transitions +to be always executed through a timeout path rather than do a clean demotion +([pr #4168]).

    • fixed an assetion failure in the outbound governor (issue #4177)

    Next steps

    We will work towards the next release of P2P for block producer nodes. This includes:

    • analysing performance regression for BP nodes when using P2P
    • finish the work on controlling the block forger through node kernel (pr #3800)
    • address issue #3907 and write a script to analyse deployment of P2P relays

    We would like also to push forward eclipse evasion. Although most of the work +has be done already the release of io-sim on Hackage will happen in the +next quarter.

    We would also like to address chain-sync timeout issue recently +diagnosed by Karl Knutsson.

    If time permits we would also like to address some technical debt, especially:

    Risks

    The performance regression for block producer with P2P needs to be investigated +in the near future. This is blocker for the release of P2P on BP nodes.

    Detailed log

    Contributions to Ouroboros-Network

    • We added TraceDemoteLocalAsynchronous, which enables notification of critical issues for SPOs
    • We fixed cardano-ping compatibility with NodeToNodeV_10 (P2P, pr #4165)
    • We fixed a bug in demotion peers to cold which affected P2P nodes (commit-61058aa5c2)
    • Karl Knutsson enhanced SendFetchRequest (commit-bb1c3dddee), open-source contribution)
    • We turned SizeInBytes into a newtype.
    • We extended CONTRIBUTING.md, README.md, added CODE_OF_CONDUCT.
    • We fixed DNS test failure issue #4191
    • We fixed a simulation bug found in issue #4258
    • [pr #4168]
    • issue #4177

    Contributions to Cardano-Node

    • We maintained the Single Relay Release pr #4612, (e.g. fixing CI issues, +Rebasing it when necessary, publishing packages to Cardano Haskell Packages);
    • We enhanced JSON serialisation / deserialisation of NodeToNodeVersion and NodeToClientVersion;

    Contributions to IOSim

    • We started to use Cardano Haskell Packages for IOSim (pr #48)
    • We updated change log files
    • We added support of ghc-9.4 (pr #50)

    We also addressed the following issues in pr #57 in order to prepare the package for publication on Hackage:

    • refactored io-classes timers API (issue #46);
    • created a new package si-timers which exposes an interface using SI units +and is safe on 32-bit systems (issue #59);
    • added monad transformers instances for classes defined in io-classes (issue #58);
    • created io-classes-mtl package which includes (experimental) instances for monad transformers;
    • provide MonadMonotonicTimeNSec in io-classes and MonadMonotonicTime in si-timers (so that io-classes follow the base package);
    • added registerCancellableDelay in si-timers (which allowed us to hide fancy timer api and clean io-classes)
    • added support for js_HOST_ARCH (the new GHC JS backend)

    Note the pr #57 contains almost 40 commits, and was a major step forward for +io-sim ecosystem. We also prepared a draft pr #4281 which updates +ouroboros-network.

    Other changes for 1.0.0.0 release on Hackage:

    • Refactored test suite (pr #47)
    • Updated documentation, cabal files, CONTRIBUTING, SECURITY documents, etc in pr #60, currently under review.
    ]]>
    + network +
    + + <![CDATA[Open-Source Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2023-01-13-open-source + 2023-01-13-open-source + Fri, 13 Jan 2023 00:00:00 GMT + + Open Source Quarterly Update

    2022-11 - 2023-01

    Summary

    In the last quarter the open-source initiative delivered a comprehensive report +on the state of our repositories. As part of this work stream we +identified the key open-source repositories for the cardano project across all +the projects From a list of more than 500 repositories (some of which are +forks) we identified key repositories which constitute the core of Cardano. +20 of them were identified as to be transferred to the future MBO which will +govern Cardano development. Some where excluded (like io-sim and +typed-protocols), to be govern by IOG, since they have a much broader +application than Cardano itself, and thus we think their open-source future +will be better outside of the Cardano umbrella.

    Christian Taylor identified a number of ways we can improve our repositories to +make them more attractive for open-source contributions by analysing each of +them. This includes adding or improving various documentation files, like +CONTRIBUTING files, adding code of conduct, improving readme files, issue +& pull request templates etc. Christian also computed various interesting +metrics which gives a very good insight into the development practices: e.g. +average merge ratio, average number of reviews, comments and many more! The +presentation is available here.

    We followed with work on the Cardano Engineering Handbook. We included +a standard code of conduct which is now used by most important projects in the +Cardano space. We included cardano-node's security policy and added +a responsible disclosure policy. We also described how roles and +responsibilities should be clarified. This progress was made by +a collaborative effort of the Cardano Core, Plutus and Architecture teams, and +it wouldn't be possible without Michael Peyton Jones, Arnaud Bailly, Kevin +Hammond, Jared Corduan and Marcin Szamotulski.

    We also improved the documentation of key repositories, by adding description, +improving their README file & CONTRIBUTING files, adding code of conducts +following the Cardano Engineering Handbook. This includes improvements to:

    And also

    The work was carried by Marcin Szamotulski, Addie Girouard and Jared Corduan.

    In this quarter we also identified a number of projects which can be published to +Hackage (Haskell's package repository) or crate (Rust package repository). +The list contains 21 packages, 2 of which (hedgehog-extras and +quickcheck-dynamic) are already published on Hackage and another 5 (from +the io-sim repository) are close to be published.

    Detailed log

    The progress of the open-source project is tracked in this project.

    ]]>
    + open-source +
    + + <![CDATA[Consensus Quarterly Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2022-11-15-consensus + 2022-11-15-consensus + Tue, 15 Nov 2022 00:00:00 GMT + + Consensus Quarterly Update

    2022-09 - 2022-11

    Main achievements

    UTxO HD

    • As a consequence of the errors observed when running distributed mempool +benchmarks, we re-designed the UTxO HD mempool integration, which fixed these +errors and lead to a simpler and more maintainable design.

    • We focused on increasing test coverage for the UTxO-HD prototype. In +particular, we added property tests for:

      • Backing store (work ongoing)
      • Era transitions
    • The property tests we added uncovered several bugs, which is a great result +given the exponential increase in the cost of finding bugs as they are closer +to deployment.

    • One of the errors found by our tests required us to work on improvements in +the Haskell bindings for LMDB. This work is ongoing.

    • We started working on the mempool property tests that will exercise the new +code paths that UTxO HD introduced.

    • We developed, benchmarked and tested an implementation of sequences of +differences based on "anti-diffs". Performance results of diff sequence +operations show that we achieved a speedup of about 4x across several +scenarios. Note: this speedup is taking into account diff sequence operations +only, so the consensus-wide speedup is less than 4x.

    • We integrated the "anti-diff" prototype into the UTxO HD feature branch.

    Genesis

    • We wrote a simulator that demonstrates soundness of an abstract implementation +of the new chain selection rule.
    • We elaborated a draft specification for the Genesis implementation (currently +awaiting feedback from other architects).
    • We elaborated a draft specification for the ChainSync Jumping optimization. In +particular, this includes a proof sketch that the latter preserves liveness +and safety in all cases.
    • With the Networking team, we co-designed the eclipse avoidance mechanism, +specifically its coherence with the Genesis implementation plan's security +and its dependence on the new ChainSync Jumping optimization.
    • We implemented a prototype for ChainSync Jumping. Initial benchmarks showed a +performance degradation wrt the baseline. Our optimization attempts so far +have brought the performance closer to the baseline, but not yet to parity.

    Conway era

    • We did most of the heavy lifting required to integrate the Conway era into the +Consensus layer.

    Technical debt

    • We started working on enabling CI nightly tests, which revealed several test +failures due to thunks being found it data structures used by the ledger and +consensus. We made a lot of progress fixing those thunk errors, but some +errors still remain.

    • We elaborated a db-analyser benchmark for the ledger operations. This led us +to the identification of high processing time at epoch boundaries, and we +could not observe any performance degradation that can be attributed to era +changes.

    • We fixed a source of flakiness in the ChainDB QSM test.

    • We clarified a common source of confusion around VRF tie-breaking and +cross-era chain selection.

    • We fixed a bug in the maximum-allowed ledger major protocol version.

    Fostering collaboration

    • We spent time making cardano-updates the central source of information for +the core teams stakeholders.
    • We went through the Galois gap analysis and extracted actionable points to +take on next.
    • Bart and Yogesh continued with their onboarding and stated making substantial +contributions to consensus.

    Next steps

    UTxO HD

    • Finish the mempool property tests.
    • Benchmark the latest version of the prototype.
    • Elaborate a document that describes new integration test scenarios and pass it +to the SDET team.
    • Bring query UTxO by address command performance on par with the baseline +version.

    Genesis

    • Receive and incorporate Duncan's feedback on the first draft specification for +the Genesis implementation.
    • Begin prototyping the first genesis implementation, unless the first draft +needs major changes.
    • Draft a second revision of the Genesis report.
    • Review the second revision with a wider audience, which includes at least +Alexander Russell. That feedback will drive a third and hopefully final +revision.
    • Investigate how to mitigate the ~30% slowdown we have observed so far in the +ChainSync jumping prototype, and try to mitigate it. In particular, we might +need to optimize the existing BlockFetch logic.

    Tech debt

    • Enabling nightly CI tests.

    Fostering collaboration

    • Merge the tutorial document Galois wrote; requires CI integration.
    • Come up with our own documentation improvements, many of which were suggested +in the Galois gap analysis.
    • Try to hire a new team member.
    ]]>
    + consensus +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2022-11-09-network + 2022-11-09-network + Wed, 09 Nov 2022 00:00:00 GMT + + Network Quarterly Update

    2022-09 - 2022-11

    Summary of most important improvements

    During this quarter the networking team delivered low level specification of +peer sharing & eclipse evasion. We held a session with the consensus & the +scientists; we got a positive feedback on the design.

    Further we focused on implementation of peer sharing. We produced a detail +design and an early implementation.

    We prepared the P2P Single Relay Release (cardano-node-1.35.5). It +includes over 130 patches of network stack improvements over the +previous version 1.35.4, which were accomplished over a longer period of +time. Among them are both bug fixes and UX improvements for stake pool +operators like simplified format of the topology file, or +improvements in the logged messages:

    We also provide better integration with systemd (socket +activation improvements) or improvements in the networking stack:

    • exit policies,
    • peer metrics improvements,
    • DNS TTL improvements (which make it harder to misconfigure the +system, an issue discovered by the performance & monitoring team),
    • do not trigger inbound idle timeout for node-to-client connections (pr +#3844), an issue reported to us by Matthias Benkort from +Cardano Foundation.

    Duncan has been making progress with the input endorsers demo. His simulation +provides a useful animated visualisation and live quantification of behaviour +of the modeled design.

    We also improved our e2e diffusion simulation by implementing header-body +split, similar to what the real implementation does.

    We also made some advances towards our future goals of P2P release for block +producer nodes (pr #3800 - in review) & for Daedalus users +(pr #3690 - merged).

    Detailed log

    • We expanded diffusion simulation with block-fetch protocol bringing it closer +to the production system.

    • We addressed some additional technical depth in diffusion simulation

    • We slightly improved documentation & CI of io-sim and typed-protocols +repositories for open-source contributors.

    • We closed a number of issues towards publishing io-sim on Hackage (only two +essential issues are left open).

    • We pushed a branch of typed-protocols which captures one of the developer UX +problems in the API which we need to solve.

    • We identified and fixed an issue related to systemd sockets.

    • We identified and fixed an issue in consensus initialisation not giving +feedback on early errors.

    • We deployed RT View, identified a number of issues which were communicated to +the performance & monitoring team.

    • We finished high level & detailed design of peer sharing, very early +implementation of peer sharing is done (note that peer sharing cannot be +safely deployed without eclipse evasion & genesis).

    • We finished high level design of eclipse evasion, and started working on +a detailed design.

    • We were assigned the role of release engineer for 1.35.5 release (the P2P +single relay release); we prepared a cardano-node for 1.35.5 release which +contains more than 130 patches of just network stack improvements done over +last few months.

    • We diagnosed and fixed an tricky bug in the peer state actions (a component +which sits between outbound governor and connection manager). That bug was +introduced earlier this year and never released. It was caught by the QA +testing framework. We expanded our diffusion simulation to cover such case and +also mitigated a chance for reintroducing such a bug in future.

    • We identified and quite likely mitigated a misconfiguration in the +benchmarking cluster (next benchmarking run will confirm our hypothesis).

    • We simplified the format of p2p topology file, we got positive feedback from +SPOs.

    • We raised severities of some of the logging messages, which is an important +improvement for SPOs, exchanges and other users of the system.

    • We worked on input endorsers simulation which gives both animated and +quantified live feedback on network operation, using a simplified model of +a TCP/IP network.

    Next quarter

    • Release the Single Relay P2P Release 1.35.5.

    • Carry on with Peer Sharing (review, testing).

    • Deliver a talk at Conference on Principles of Distributed Systems 2022 in Brussels, Belgium.

    • Present Detailed Design of Eclipse Evasion and start implementation phase.

    • Work on P2P Block Producer release.

    • Carry on with publishing of io-sim on Hackage.

    ]]>
    + network +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2022-11-07-ledger + 2022-11-07-ledger + Mon, 07 Nov 2022 00:00:00 GMT + + Ledger Quarterly Update

    2022-09 - 2022-11-04

    • We finished a minimal ledger era capable of master key rotation. +This will be re-purposed our upcoming work.
    • We have the humble beginnings of a proper ledger API.
    • We improved the problematic cost model serialization +(recall the song and dance about updating the cost model one epoch after the hard fork).
    • We have added benchmarks for problematic areas.
    • Massive repository restructure and cleanup.
      • Unified and consistent variable name schemes (not completely finished, but nearly there).
      • Massive reduction in type constraints, which causes a lot of developer friction, +in our code and also downstream.
      • More organized module structures.
      • Improved generators for our property tests.
      • We removed our dependency on cardano-prelude.
    • The formal ledger model has come a long way.
      • We created a fork of Agda that provides some meta-programming support for the ledger rules.
      • We have a large amount of the basic UTxO support in the model.
      • We can generate a good looking PDF from the model.
      • We can produce Haskell from the model.
      • We have a nice finite set theory library that we can use for many of the ledger rules.
      • We have nix support for the model.

    Next steps

    • Individual tracking of deposits. [issue-3113]
    • Versioned CBOR encoders/decoders. [issue-3014]
    • New ledger era transaction body (and the surround work associated with it).
    • Designs for the next ledger era.
    ]]>
    + ledger +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/quarterly/2022-10-07-node-cli-api + 2022-10-07-node-cli-api + Mon, 07 Nov 2022 00:00:00 GMT + + Node-Api-Cli Quarterly Update

    2022-09 - 2022-11-04

    • Various improvements to tests/CI/GHC 9.2.4 preparations/upgrade to cabal-3.8.1.0
    • Major clean up of stale iusses + PRs.
    • Implementation of stale-bot to mitigate against a proliferation of outdated issues and PRs
    • cardano-api refactoring with the aim of exposing more user friendly functions, particularly concerning transaction construction and querying the node.
    • cardano-cli refactoring with the aim of moving reusable functions to cardano-api. We have made strides here and have managed to improve the interface of transaction construction and validation.
    • General documentation updates and improvements
    • Addition of tx-mempool command which allows users to:
      • Query the node about the current mempool's capacity and sizes
      • Request the next transaction from the mempool's current list
      • Query if a particular transaction exists in the mempool
    • Initial refactoring of cardano-testnet

    Next quarter

    • cardano-api
      • Working with Konstantinos and his team to make cardano-api better for dapp developers - we have a google doc for this, I can send it to you privately.
    • cardano-testnet
    • Serenity
      • Continued refactoring of cardano-api and cardano-cli, with the particular focus on extracting re-usable components of cardano-cli and moving them to cardano-api. This is harder to define but will manifest in stuff moving from cardano-cli to cardano-api and is tied in to the cardano-api work specified above.
    • General bug fixing and smaller feature requests for the api/cli that are always coming in. Robert is primarily handling this at the moment as he is relatively new.
    ]]>
    + cli-api-quarterly +
    +
    +
    \ No newline at end of file diff --git a/quarterly/tags/cli-api-quarterly/index.html b/quarterly/tags/cli-api-quarterly/index.html new file mode 100644 index 0000000000..79e7cfa729 --- /dev/null +++ b/quarterly/tags/cli-api-quarterly/index.html @@ -0,0 +1,26 @@ + + + + + +One post tagged with "cli-api-quarterly" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    One post tagged with "cli-api-quarterly"

    View All Tags

    · 2 min read
    Jordan Millar

    Node-Api-Cli Quarterly Update

    2022-09 - 2022-11-04

    • Various improvements to tests/CI/GHC 9.2.4 preparations/upgrade to cabal-3.8.1.0
    • Major clean up of stale iusses + PRs.
    • Implementation of stale-bot to mitigate against a proliferation of outdated issues and PRs
    • cardano-api refactoring with the aim of exposing more user friendly functions, particularly concerning transaction construction and querying the node.
    • cardano-cli refactoring with the aim of moving reusable functions to cardano-api. We have made strides here and have managed to improve the interface of transaction construction and validation.
    • General documentation updates and improvements
    • Addition of tx-mempool command which allows users to:
      • Query the node about the current mempool's capacity and sizes
      • Request the next transaction from the mempool's current list
      • Query if a particular transaction exists in the mempool
    • Initial refactoring of cardano-testnet

    Next quarter

    • cardano-api
      • Working with Konstantinos and his team to make cardano-api better for dapp developers - we have a google doc for this, I can send it to you privately.
    • cardano-testnet
    • Serenity
      • Continued refactoring of cardano-api and cardano-cli, with the particular focus on extracting re-usable components of cardano-cli and moving them to cardano-api. This is harder to define but will manifest in stuff moving from cardano-cli to cardano-api and is tied in to the cardano-api work specified above.
    • General bug fixing and smaller feature requests for the api/cli that are always coming in. Robert is primarily handling this at the moment as he is relatively new.
    + + + + \ No newline at end of file diff --git a/quarterly/tags/consensus/index.html b/quarterly/tags/consensus/index.html new file mode 100644 index 0000000000..040fa7f582 --- /dev/null +++ b/quarterly/tags/consensus/index.html @@ -0,0 +1,127 @@ + + + + + +5 posts tagged with "consensus" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    5 posts tagged with "consensus"

    View All Tags

    · 5 min read
    Damian Nadales

    2023-04 -- 2023-06

    Main achievements

    UTxO HD

    • We finished a major prototype refactoring, which includes:
      • A better and finer grained DB lock mechanism.
      • Elimination of race conditions.
      • Support for configuring batch query size and flushing rate. This is crucial to allow node users to tweak performance.
      • Architectural simplifications and performance improvements.
    • We implemented a new package to support db-sync integration with UTxO-HD.
    • We ran another set of ad-hoc benchmarks:
      • We uncovered a performance regression on the Network component when using GHC-9.2/9.4.
      • The synchronization and replay speed are as expected.
      • However, we uncovered memory consumption issues (see figure below).
        • The in-memory backend is consuming more memory than the baseline.
        • The LMDB backend shows an unexpected memory usage peak.
        • Investigation on these issues is ongoing.
    • We integrated the latest changes in main branch.
      • This required a re-design of the mempool to include the mempool fairness +improvement.

    Genesis

    • The Genesis work for this PI focused on an high-priority issue from the IOG Researchers' feedback on the proposal.
      • This particular question was not anticipated when the Q2 PI was planned.
      • As a result, the chain generators work, the ChainSync Jumping performance work, and the Genesis node prototype work were deprioritized.
      • That work has accordingly been rolled over into the Statement of Work for the first Genesis vendor work package.
    • The IOG Researchers' feedback on the design was very valuable. It had two primary effects.
    • Outcome 1: We re-introduced distinct behaviors when the node is "syncing" versus when it is "caught up".
      • This eliminated a DoS vector introduced by the proposal, instead of having to argue that it was well-mitigated.
      • The additional design complexity is relatively small.
    • Outcome 2: The issue that was unanticipated is whether the Cardano chain is consistently dense enough to rely on Genesis without any checkpointing.
      • The determination so far is that---assuming the adversary never controls more than four of the seven genesis keys---the most vulnerable segment is in the pure Praos era.
      • All the preceding windows are significantly more robust, including the entire Byron and Transitional Praos eras.
      • Thus checkpointing is not necessary for the initial Genesis release, though it still may be a reasonable addition later.
      • The primary invention was a model for bounding how much benefit the adversary's long-range attack could possibly gain from Praos's natural short forks.
    • Relevant questions that the IOG Researchers are still assessing.
      • These do not block the Genesis implementation, but do affect the ultimate values of specific parameters.
      • Question 1: what is the upper bound on the duration of an eclipse that a healthy Praos node will survive?
      • Question 2: what is the upper bound on how much grinding can improve the adversary's leader schedule within some Genesis window?

    Support

    • We performed an analysis on number of file descriptors used by Consensus, this +information can be used by the node operators to check if the number of file +descriptors they want to support are enough, thus improving the user (eg node +operator) experience.
    • We implemented a mempool fairness improvement, by which transactions are +guaranteed to be processed irrespective of their size.

    Technical debt

    • We fixed a bug in followers logic, which was discovered by our QuickCheck +property tests.
    • We created an immutable DB +server. This tool allows to serve blocks from the immutable DB to a node that connects to it. This has a remarkable value for testing and benchmarking purposes. For instance, by using this component, we can benchmark the performance of different aspects of Consensus, such as syncing from scratch, without adding Network interference in the performance results.
    • We created a db-truncater tool, which can be used in disaster recovery and benchmarking scenarios.
    • We created a benchmarks comparison tool that we plan on using for comparing the performance of two Consensus releases. This will allow us to catch performance regressions early on in the process, before they make it to the node (and show in the system level benchmark tests), thus greatly saving development costs. As an example, the graph below shows the performance improvements introduced by the Ledger team in version 0.6.0.0 of Consensus wrt version 0.5.0.0.

    Fostering collaboration

    • We released fs-sim as open-source repository. This lowers the barrier to entry for external contributors, which will indirectly benefit the Cardano project.
    • We migrated the consensus code to a new repository, splitting +it from the ouroboros-network repository. This will save development effort for both the Network and the Consensus teams, since there will be less interference (for instance when making releases).
    • We made several improvements to our release processes, which will translate in time savings. As an example, we went from 16 to 4 packages, which makes the release process simpler and smother. Our release process now makes it easier to align versions and make releases (both for us and for our downstream users).
    • We added an explanation of the hardfork-combinator forecast horizon, that will benefit not only our team, but future external contributors.

    Next steps

    UTxO HD

    Genesis

    • We will regularly liaise with the vendor(s) satisfying the Genesis Statement(s) of Work.

    · 3 min read
    Damian Nadales

    Areas of focus

    IssueStatus
    Implement legacy mode for UTxO-HD to keep baseline performance✅ Done
    Assist mainnet node release with initial Conway capabilities✅ Done
    Assist with test, benchmark, and improvements to CIP 1694✅ Done
    Assist with P2P IOG relay network shut down✅ Done
    Assist with repo transfer to Intersect✅ Done
    Support vendors to deliver contracts✅ Done
    Operation serenity Q4 2023✅ Done

    Highlights

    Implement legacy mode for UTxO-HD to keep baseline performance

    • ✅ We managed to run a UTxO-HD capable node in legacy mode, maintaining the baseline memory usage while keeping all the ledger state in memory.
      • While the legacy mode is not production-ready (it requires further integration and testing), it remains as a plan B should the need arise to release UTxO-HD if our stakeholders so demand it.
    • ✅ We pivoted to redesigning the Ledger DB API because:
      • This is needed for integrating the LSM-tree backend.
      • The redesign opened the possibility of implementing an in-memory backend that would keep the same performance and resource requirements as the baseline version (which needs to be confirmed by benchmarks).
    • ✅ We created a more general Ledger DB API.
    • 🛠️ We are integrating (into the feature branch) the existing Ledger DB implementations with the new API.
    • 🛠️ We are implementing the new in-memory backend.

    Assist mainnet node release with initial Conway capabilities, test, benchmark, and improvements to CIP 1694

    • ✅ We recognized that Conway introduces a new challenge in the versioning of NTC queries, and we resolved it (see 864 and 4770).

    Assist with P2P IOG relay network shut down

    • ✅ We created a prototype for the pre-Genesis State Machine for bootstrap peers, which is currently under test (see this PR).

    Assist with repo transfer to Intersect

    • ✅ We transferred the ouroboros-consensus repository to the Intersect GitHub organization.

    Support vendors to deliver contracts

    • Genesis
      • ✅ Interacted with the Consensus team and addressed resulting feedback on past deliverables.
      • ✅ Finished implementation of the testing infrastructure of Genesis
      • ✅ Started to refine the Proof of Concept demo into an actual implementation of the core components of the Genesis design.
    • 💾 LSM-tree implementation. Well Typed:
      • ✅ Finished the design of the public facing API.
      • ✅ Defined the LSM-tree database file-type formats.
      • ✅ Implemented property and model-based tests.

    Operation serenity Q4 2023

    • 🎉 We welcomed our newest team member @RenateEilers and assisted with her (ongoing) onboarding.
    • ✅ We implemented a simplification in the ChainSync mini-protocol that is also a step towards Ouroboros Chronos.
    • ✅ We added tests to check Consensus emits valid CBOR, which prevents the generation of invalid binary encoding.
    • ✅ We established and implemented an interface between Consensus tooling and P&T tooling, which constitutes a step towards incorporating component level benchmarks in our development process.

    · 3 min read
    Damian Nadales

    Consensus Quarterly Update

    2023-01 - 2023-03

    Main achievements

    UTxO HD

    • We finished the testing activities for the prototype, which involved adding +new tests, and fixing and enabling temporarily disabled tests.
    • We spent a substantial amount of effort refactoring and cleaning the +prototype.
    • We audited the UTxO HD prototype to make sure it can accommodate the migration +of other tables (eg stake-keys registration) from memory to disk. The result +of the audit was positive.
    • We ran ad-hoc benchmarks for reading keys and flushing values to disk. No +unexpected costs found.
    • We ran the first system level benchmarks. The performance regressions reported +were due to an unrealistic snapshotting rate. We need to re-run them again +after we design a more fine grained locking mechanism.

    Genesis

    • We elaborated a roadmap of the remaining work for Genesis.
    • We presented the design to the IOG Researchers and PNSol on February 20. The +design was well received. We updated the Genesis design with the researcher's +feedback.
      • We plugged the new DoS vector identified during the aforementioned +presentation.
    • We developed a generator for adversarial leader schedules that satisfy key +Ouroboros properties, which will be used to test the Genesis design.
      • The generator enables use of smaller Ouroboros parameters, which makes +extrema more likely and counterxamples easier interpret.
    • We wrote up the latest design iteration.
    • We continued benchmarking the Chain Sync Jumping prototype. In particular:
      • We debugged the prototype's performance regression, and unmasked the +actual cause by patching our initial theory (bad queuing behavior)
      • We identified and validated the actual cause (a pathological case in +BlockFetch tiebreaker).

    Support

    • We created two new tools. One for dumping CBOR encoded blocks to JSON. Ahother +to serve a local immutable DB.

    Conway era

    • We integrated the Conway era into consensus.

    Technical debt

    • We fixed a bug with followers, which was discovered by property tests.
    • We developed a DSL for specifying and running ChainDB test cases.
    • We fixed failing tests with iterators.
    • We created micro-benchmarks for adding transactions to the mempool.

    Fostering collaboration

    • We released a new technical documentation site for consensus.
    • We factored out several packages to external repositories. Some of this work +originated in the UTxO HD workstream.

    Next steps

    UTxO HD

    Genesis

    Support

    • Design Consensus side of hardfork-enactment in the Voltaire phase +(#4180).
    • Estimate the number of file descriptors Consensus needs +#20.

    Tech debt

    • Identify Quantitative Timeliness Agreements (QTAs) metrics that we can define +for consensus. Pick one and implement benchmarks for it.

    Fostering collaboration

    • Onboard a new team member.

    · 4 min read
    Damian Nadales

    Consensus Quarterly Update

    2022-12 - 2023-01

    Main achievements

    UTxO HD

    The prototype is feature complete and thoroughly tested at the consensus level. +In particular, we invested a lot of time in writing property-test for the +mempool, and other crucial new parts of the prototype. Now we are ready to run +integration tests and system-level benchmarks.

    Genesis

    We identified and fixed a slowdown in cross-era forecasting that was inhibiting +our efforts to benchmark the ChainSync Jumping prototype. This resulted in a 7% +speedup in full sync times in the baseline.

    We also started prototyping a self-contained implementation of the Genesis +dynamics (in particular of the parts intentionally not part of the ChainSync +Jumping prototype) that furthered our understanding of subtleties and edge +cases.

    Support

    • We worked on designing integration of new VRF and KES crypto into consensus.
      • Crypto class was split into two parts: Crypto and HeaderCrypto.
      • With the Ledger team's help, we refactored cardano-ledger to use a proxy +type for VRF.

    Conway era

    • PR went through its second review round. It is about to be merged, but it got +delayed due to people's availability during Christmas break.

    Technical debt

    • We improved the capabilities of our io-sim library, which is key for testing +and simulating Cardano components.
    • We removed thunks from epoch translations in the ledger, which is important +for reducing memory consumption of the Cardano node.

    Fostering collaboration

    • We added a tutorial on how to instantiate the Consensus layer to run custom +ledgers. This should be a valuable resource to people looking to roll their +own custom blockchain (either for commercial or research purposes).
    • We added an overview of consensus to the top level +documentation of +ouroboros-network. This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    Next steps

    UTxO HD

    • Evaluate the extensibility of the prototype. Moving the UTxO to disk is only +the first step towards reducing the memory requirements of Cardano node, and +ensuring its long term sustainability. In the future, we plan on moving other +large maps, such as delegation maps. The prototype should be able to +accommodate these changes without any major modifications.
    • Start the integration with other downstream components, such as the wallet and +db-sync. The idea is to identify and address any potential pain points that +might arise during this integration.
    • Run integration tests and system-level benchmarks.

    Genesis

    • Finish benchmarking and tuning the fast-path ChainSync Jumping prototype
    • Expand and optimize the self-contained implementation of the Disconnect Rule +(including density comparisons and the LoE)
    • Develop documentation and smoke tests for these components.
    • Start modifying the ChainSync Client for the LoP and LoR.

    Support

    • Help the Network team with diagnosing performance regression in block +production.

    Tech debt

    • Fix property-test failures concerning iterators (#3999 and +#4183).

    Fostering collaboration

    Risks

    UTxO HD

    • Moving other parts of the ledger state to disk might require a major redesign +of the prototype. For instance, if it turns out that the epoch change rules +require access to the full ledger state. If this is the case, we might +accept this risk and do the redesign after the initial release of UTxO-HD.
    • Integration with downstream clients might require more work than we +anticipate.
    • Access to the benchmarking's team time and resources.
    • Benchmarking results might show significant performance degradation, which +will require additional work if such performance degradation is not accepted +by other stakeholders.
    • The prototype's performance might not be accepted by other stakeholders. Here +we need to clearly communicate that this is necessary to ensure that as the +blockchain size grows, the node can operate within reasonable memory +constraints.

    · 4 min read
    Damian Nadales

    Consensus Quarterly Update

    2022-09 - 2022-11

    Main achievements

    UTxO HD

    • As a consequence of the errors observed when running distributed mempool +benchmarks, we re-designed the UTxO HD mempool integration, which fixed these +errors and lead to a simpler and more maintainable design.

    • We focused on increasing test coverage for the UTxO-HD prototype. In +particular, we added property tests for:

      • Backing store (work ongoing)
      • Era transitions
    • The property tests we added uncovered several bugs, which is a great result +given the exponential increase in the cost of finding bugs as they are closer +to deployment.

    • One of the errors found by our tests required us to work on improvements in +the Haskell bindings for LMDB. This work is ongoing.

    • We started working on the mempool property tests that will exercise the new +code paths that UTxO HD introduced.

    • We developed, benchmarked and tested an implementation of sequences of +differences based on "anti-diffs". Performance results of diff sequence +operations show that we achieved a speedup of about 4x across several +scenarios. Note: this speedup is taking into account diff sequence operations +only, so the consensus-wide speedup is less than 4x.

    • We integrated the "anti-diff" prototype into the UTxO HD feature branch.

    Genesis

    • We wrote a simulator that demonstrates soundness of an abstract implementation +of the new chain selection rule.
    • We elaborated a draft specification for the Genesis implementation (currently +awaiting feedback from other architects).
    • We elaborated a draft specification for the ChainSync Jumping optimization. In +particular, this includes a proof sketch that the latter preserves liveness +and safety in all cases.
    • With the Networking team, we co-designed the eclipse avoidance mechanism, +specifically its coherence with the Genesis implementation plan's security +and its dependence on the new ChainSync Jumping optimization.
    • We implemented a prototype for ChainSync Jumping. Initial benchmarks showed a +performance degradation wrt the baseline. Our optimization attempts so far +have brought the performance closer to the baseline, but not yet to parity.

    Conway era

    • We did most of the heavy lifting required to integrate the Conway era into the +Consensus layer.

    Technical debt

    • We started working on enabling CI nightly tests, which revealed several test +failures due to thunks being found it data structures used by the ledger and +consensus. We made a lot of progress fixing those thunk errors, but some +errors still remain.

    • We elaborated a db-analyser benchmark for the ledger operations. This led us +to the identification of high processing time at epoch boundaries, and we +could not observe any performance degradation that can be attributed to era +changes.

    • We fixed a source of flakiness in the ChainDB QSM test.

    • We clarified a common source of confusion around VRF tie-breaking and +cross-era chain selection.

    • We fixed a bug in the maximum-allowed ledger major protocol version.

    Fostering collaboration

    • We spent time making cardano-updates the central source of information for +the core teams stakeholders.
    • We went through the Galois gap analysis and extracted actionable points to +take on next.
    • Bart and Yogesh continued with their onboarding and stated making substantial +contributions to consensus.

    Next steps

    UTxO HD

    • Finish the mempool property tests.
    • Benchmark the latest version of the prototype.
    • Elaborate a document that describes new integration test scenarios and pass it +to the SDET team.
    • Bring query UTxO by address command performance on par with the baseline +version.

    Genesis

    • Receive and incorporate Duncan's feedback on the first draft specification for +the Genesis implementation.
    • Begin prototyping the first genesis implementation, unless the first draft +needs major changes.
    • Draft a second revision of the Genesis report.
    • Review the second revision with a wider audience, which includes at least +Alexander Russell. That feedback will drive a third and hopefully final +revision.
    • Investigate how to mitigate the ~30% slowdown we have observed so far in the +ChainSync jumping prototype, and try to mitigate it. In particular, we might +need to optimize the existing BlockFetch logic.

    Tech debt

    • Enabling nightly CI tests.

    Fostering collaboration

    • Merge the tutorial document Galois wrote; requires CI integration.
    • Come up with our own documentation improvements, many of which were suggested +in the Galois gap analysis.
    • Try to hire a new team member.
    + + + + \ No newline at end of file diff --git a/quarterly/tags/index.html b/quarterly/tags/index.html new file mode 100644 index 0000000000..98cb642561 --- /dev/null +++ b/quarterly/tags/index.html @@ -0,0 +1,26 @@ + + + + + +Tags | Cardano Development Updates + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/quarterly/tags/ledger/index.html b/quarterly/tags/ledger/index.html new file mode 100644 index 0000000000..c19e886f16 --- /dev/null +++ b/quarterly/tags/ledger/index.html @@ -0,0 +1,169 @@ + + + + + +2 posts tagged with "ledger" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    2 posts tagged with "ledger"

    View All Tags

    · 7 min read
    Jared Corduan

    Ledger Quarterly Update

    2023-01 - 2023-03

    Main achievements

    CIPs

    • Entering the Voltaire phase - +CIP-1694 received a major update after participation in the design has expanded to +more and more people, including those who attended the Colorado workshop. +See CIP-1694.
    • Ledger CIP category - +The ledger team continues to embrace the CIP process, and has begun the process of +registering the ledger as an official CIP category. +See CIP-84.
    • Ledger serialization - +A CIP for the ledger serialization deprecation cycle has been accepted. +See CIP-80.

    Formal ledger model

    Our new formal specifications backed by Agda have seen a lot of progress. +The majority of the ideas in CIP-1694 are now present, and we have made enough progress +that we can now safely say that the PDF produced by the Agda model will be the +official ledger specification for the Conway ledger era. +See the repository.

    Conway ledger era

    Progress on the Haskell implementation of CIP-1694 has gone hand in hand with the formal model. +The major component still missing is the DRep stake distribution, which still presents some +technical challenges.

    [pull-3176] +[pull-3216] +[pull-3226] +[pull-3291] +[pull-3326] +[pull-3330] +[pull-3339]

    DRep stake distribution computation

    Adding another large stake distribution to the ledger state must proceed with caution. +We do not want the memory used by the node to increase too much, +and performance problems can lead to reduced block production. +We have prototyped, tested, and benchmarked several approaches that could give us +the current DRep stake distribution at each epoch boundary. +This has very important implications, since we want every ADA holder to be able to at any +time (such as during a contentious vote) register themselves as a DRep and still have time +to vote themselves on the issue.

    [pull-3344] +[pull-3353] +[pull-3364]

    Integration work

    The ledger has made some wonderful improvements over the past six months, +but which entail a significant amount of integration efforts:

    • Our new versioned CBOR schemes
    • Individual deposit tracking
    • An improved cross-era interface utilizing lenses
    • A new ledger API
    • Re-arranging the ledger stake in preparation for CIP-1694
    • Versioning our Haskell packages +using CHaPs.
    • Consistent conventions for variable names

    [pull-3279] +[pull-3282] +[pull-3288] +[pull-3289] +[pull-3292] +[pull-3297] +[pull-3298] +[pull-3299] +[pull-3300] +[pull-3302] +[pull-3303] +[pull-3308] +[pull-3342] +[pull-3345] +[pull-3356] +[pull-3357] +[pull-3360] +[pull-3361] +[pull-3363] +[pull-4349] +[pull-378] +[pull-376] +[pull-373] +[pull-370] +[pull-361] +[pull-4976] +[pull-5013]

    Deposit tracking

    Individual deposits (for stake credential and stake pool registrations) were not tracked by the ledger. +Deposits were returned according to the current protocol parameters. +When the values of these two protocol parameters change, the deposit pot +is adjusted by adding to, or removing from, the reserves.

    This has several problems:

    • Most people expect a deposit to be paid back exactly.
    • We cannot increase the deposit amount once the reserves hits zero.
    • If it becomes known that the deposit amount is going to be increased, free Lovelace can be earned by registering credentials.
    • Because of the problems above, it is going to be incredibly hard to ever change the values.
    • There is a serious issue involving hard forks. +The consensus layer makes the decision about whether or not to enact a hard fork based on +the protocol parameter update state two stability windows before the end of the epoch. +However, the ledger will reject a protocol parameter update on the epoch boundary +if the deposit pot adjustments cannot be reconciled with the reseve pot. +This means that if quorum is met regarding changing the major protocol version, +but the update is rejected on the epoch boundary, consensus will change the era but the +ledger will not change the major protocol version, leaving the ledger in a split-brain state.

    Because we never actually changed the values of the two deposits amounts in the protocol parameters +on mainnet, we were able to retroactively change the behavior. +We made the following changes:

    • Individual deposits are tracked in the DState.
    • The amount deposited is always returned.

    [pull-3195] +[pull-3202] +[pull-3217]

    New ledger API

    We have significantly built up the ledger API. +We will eventually replace much of the cardano-api in the node repository with this ledger API.

    [pull-3242] +[pull-3248] +[pull-3328]

    Constraint-based generators

    Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks +which span several epochs, mimicking a real network. +These tests are, in theory, excellent for checking properties. +They are, however, very difficult to maintain and are not as random as we would like +(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We have a new declaritive infrastructure for building constraint-based generators, +which instead generate a random ledger state representative of not just an initial state, +but also those representative of the end result of a long sequence of valid blocks. +Moreover, these generators are very fast and are much more random than our old generators. +Before we can start using them for our existing property tests, however, we still need to +expand them to generate a valid block for a given ledger state.

    [pull-3219]

    Technical debt

    We continued to address technical debt as much as we can.

    [pull-3167] +[pull-3170] +[pull-3172] +[pull-3175] +[pull-3184] +[pull-3205] +[pull-3208] +[pull-3210] +[pull-3212] +[pull-3218] +[pull-3222] +[pull-3223] +[pull-3224] +[pull-3225] +[pull-3229] +[pull-3239] +[pull-3241] +[pull-3244] +[pull-3245] +[pull-3249] +[pull-3260] +[pull-3263] +[pull-3264] +[pull-3268] +[pull-3269] +[pull-3270] +[pull-3274] +[pull-3276] +[pull-3277] +[pull-3286] +[pull-3290] +[pull-3295] +[pull-3296] +[pull-3306] +[pull-3307] +[pull-3310] +[pull-3311] +[pull-3316] +[pull-3320] +[pull-3323] +[pull-3327] +[pull-3331] +[pull-3332] +[pull-3333] +[pull-3338] +[pull-3341] +[pull-3347] +[pull-3350] +[pull-3351] +[pull-3352] +[pull-3354]

    Critical fixes

    We fixed two critical issues:

    • Growing block production delay on the epoch boundary: [pull-3209]
    • Unexpected node shutdown from balanceR: [pull-3343]

    Next steps

    • Conway spec - +Complete the first version of the conway formal specification.
    • DRep stake distribution - +Have the ledger compute the DRep stake distribution with acceptible performance.
    • Devnet ready - +Have the Haskell implementation of the conway era in sync with the formal specification, +and integrate the changes with consensus and node. +All the details might not be finalized, but the wire specification and the API should +be stable so that conway can be placed on a devnet for tool builders to start integrating with.
    • Plutus V3 - +Integrate Plutus V3 into the ledger, including a new script context which supports DReps.

    More details

    This quarterly report was based off of the following fortnightly ones:

    · 2 min read
    Jared Corduan

    Ledger Quarterly Update

    2022-09 - 2022-11-04

    • We finished a minimal ledger era capable of master key rotation. +This will be re-purposed our upcoming work.
    • We have the humble beginnings of a proper ledger API.
    • We improved the problematic cost model serialization +(recall the song and dance about updating the cost model one epoch after the hard fork).
    • We have added benchmarks for problematic areas.
    • Massive repository restructure and cleanup.
      • Unified and consistent variable name schemes (not completely finished, but nearly there).
      • Massive reduction in type constraints, which causes a lot of developer friction, +in our code and also downstream.
      • More organized module structures.
      • Improved generators for our property tests.
      • We removed our dependency on cardano-prelude.
    • The formal ledger model has come a long way.
      • We created a fork of Agda that provides some meta-programming support for the ledger rules.
      • We have a large amount of the basic UTxO support in the model.
      • We can generate a good looking PDF from the model.
      • We can produce Haskell from the model.
      • We have a nice finite set theory library that we can use for many of the ledger rules.
      • We have nix support for the model.

    Next steps

    • Individual tracking of deposits. [issue-3113]
    • Versioned CBOR encoders/decoders. [issue-3014]
    • New ledger era transaction body (and the surround work associated with it).
    • Designs for the next ledger era.
    + + + + \ No newline at end of file diff --git a/quarterly/tags/network/index.html b/quarterly/tags/network/index.html new file mode 100644 index 0000000000..c598dab447 --- /dev/null +++ b/quarterly/tags/network/index.html @@ -0,0 +1,158 @@ + + + + + +4 posts tagged with "network" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    4 posts tagged with "network"

    View All Tags

    · 6 min read
    Marcin Szamotulski

    2023-04 - 2023-06

    Main achievements

    Eclipse Evasion

    We finalised the design of eclipse evasion and implemented its mechanism which +relays on connectivity to big ledger peers. Big ledger peers are the +largest ledger peers which accumulate 90% of stake (currently there are less +than 1000 of them). The outbound governor has new targets for known, +established and active big ledger peers which work in a similar way that +such targets work for ledger peers. The ouroboros-network#4662 PR is +currently in review.

    As part of this work we also identified a bug which would prevent a node to +connect to itself. Such connections are not easily detectable and are expected +to be dropped by the churn mechanism, nonetheless they should not be buggy. +The failure was discovered thanks to our e2e simulation of diffusion using +io-sim & property based testing.

    The PR also refactors the heart of the ouroboros-network interface reducing +technical debt that would otherwise accumulate.

    We also identified a possible improvement in the churn mechanism, which will be +implemented in Q3. Churn needs to await for peers to terminate, we can +improve the synchronisation. [ouroboros-network#4617]

    Ecosystem P2P Deployment Progress

    We reached 50% of stake in hands of SPOs who run at least on P2P relay. Now +also Emurgo and CF are running some P2P relays. Also 20% of IOG relays are +running in P2P mode.

    P2P Progress

    Peer Sharing

    We implemented bootstrapping for peer sharing (also known as light peer +sharing). New downstream (inbound) peers are now added to the known peers of +the outbound governor. Together with peer sharing this allows for non +registered relays to propagate through the network. ouroboros-network#3596

    Please note that peer sharing is disabled by default and is not considered safe +until Bootstrap Peers (see below) or Genesis is implemented.

    Diffusion (P2P)

    • We designed a feature which will reduce the load on IOG relays (in future +also run by CF & Emurgo). The feature consists of two parts. A new source +of peers called bootstrap peers (obtained from via an https request), the +ability to switch from bootstrap peers to ledger peers if the node is synced +(we are collaborating with the consensus team on the interface Bootstrap +Peers IER). This feature will be completed in Q3. +ouroboros-network#4530

    • We published a blog post about P2P design & implementation.

    • Karl Knutsson (CF) fixed an issue observed on a relay with a lot of outbound connections: +ouroboros-network#4559.

    • We merged changes which allow the consensus layer to start / stop block +forging thread. This will allow to deploy P2P block producing nodes which +serve as a live backup node. ouroboros-consensus#140

    • We fixed a few bugs in local root peers DNS resolution service: +ouroboros-network#4583, ouroboros-network#4571.

    • We limited concurrency of DNS name resolutions: ouroboros-network#4596.

    • Galois Inc implemented query option for Handshake: ouroboros-network#4256.

    • We fixed handshake query timeout: ouroboros-network#4608.

    • We implemented warm valency for local root peers. This can help when using +DNS names in local root peers which resolve to many IP addresses. ouroboros-network#4575

    • We merged handshake changes which allow query protocol versions. Thanks to +James Parker from Galois Inc.: ouroboros-network#4256, cardano-cli#30.

    Other Improvements & Developments

    CDDL

    • We added node-to-node and node-to-client CDDL specs / tests for encoding +of NodeToNodeVersionData and NodeToClientVersionData.

    • We clarified an inconsistency between CDDL spec and implementation which is +highly polymorphic. We designed and implemented a fix for tx-submission +and local-tx-submission mini-protocols. Specs for other mini-protocols will +be improved at a later stage. ouroboros-network#4580

    Cardano Ping

    IOSim

    Typed Protocols

    Cardano Client

    • We fixed a bug in cardano-client-0.1.0.2 release which results in clients +(e.g. db-sync) negotiate an experimental protocol version.

    Technical debt

    CI improvements

    GHC 9.4 & 9.6

    We made all repositories under our control compile with ghc-9.4 and ghc-9.6 +which includes ouroboros-network, io-sim, typed-protocols and +Win32-network.

    Next steps

    We will continue towards our aspirational roadmap.

    • We will continue reviewing eclipse evasion.
    • As ouroboros-consensus#140 was merged, we are making progress towards +releasing P2P on block production nodes. We hope to analyse performance +regression on such nodes observed on the benchmarking cluster. roadmap-3887
    • We are also focused on roadmap-3969. Note that it was expanded in Q2.

    · 3 min read
    Marcin Szamotulski

    2023-01 - 2023-03

    Main achievements

    Gradual dynamic P2P release on mainnet

    We released two version of cardano-node with dynamic P2P capabilities:

    • 1.35.6
      • we found and fixed a bug in exception handling in peer-state-actionspull-4357
      • we found and fixed a busy loop when demoting a peer from hot to warm pull-4385
    • 1.35.7
      • includes interoperability in the legacy non-p2p network stack pull-4467
    • we fixed a busy loop of demotion & promotions: warm -> hot -> warm[pull-4485] /it will be included in cardano-node-8.0.0 release/.

    Currently there are more than 200 P2P relays on mainnet.

    Peer Sharing

    We implemented /peer sharing/ pull-4019 which will be available as an +experimental feature in one of the future cardano-node releases.

    We implemented /light peer sharing/, e.g. adding inbound connections to the set +of known peers of the outbound governor, which allows to bootstrap relays not +registered on chain. This complements peer sharing. The pull-4277 is in +late review stages.

    Eclipse Evasion

    We finalised design of eclipse evasion and we started implementing it. We +have an initial implementation (not merged). We are in the process of extending +our test suite to cover new implementation details: issue-3886, pull-4462.

    Cardano Network Service Assurance

    Galois has been making progress on Cardano Network Service Assurance project.

    • In cardano-node, they have developed a datapoint abstraction that creates +a queue of (existing) log events, they now have two such datapoints (of log +events) implemented.

    • They have developed a datapoint client executable that can connect to a node +which serves the "new tracing".

    • They have been exploring approaches for the consolidation and analysis of +datapoint data to extract actionable network health status.

    Cardano-Node

    • We made it possible to configure accepted connections limit pull-4902.

    Testing improvements

    • We fixed a bug in network simulation implementation of TCP simultaneous open pull-4265.

    • We introduced header-body split in the diffusion simulation pull-4419 (in review).

    • We introduced initiator only nodes in the diffusion simulation pull-4280.

    • We fixed a connection-manager test failure issue-4370.

    Technical Debt

    • We refactored Snocket interface decoupling it from the multiplexer +pull-4260. This simplified some aspects of the KES agent implementation.

    • We introduces a record for CBOR codecs which are used for various data +structures by mini-protocol codecs pull-4430.

    Documentation

    • We explained some limitations of CDDL in our technical report pull-4351.

    IO-Sim

    • We fixed implementation of MVar's pull-70.

    NoThunks

    • We published a new version of nothunks library to Hackage.

    Next steps

    • Finish implementation & testing of eclipse evasion issue-3886.
    • Optimise connectivity to peers behind firewall issue-4381.
    • Finish the work on enabling block production dynamically to allow using P2P +on block producers issue-3159.
    • If time permits we would like also to reserve some time for finishing +publication of io-sim to Hackage.

    · 5 min read
    Marcin Szamotulski

    Network Quarterly Update

    2022-11 - 2023-01

    Summary

    The primary goal of the networking team was to focus on the single relay +release of P2P. We fixed a number of small late bugs, and concluded QA +& performance testing. Although it was discovered a regression in performance +of block production when P2P is enabled, relaying with P2P performs better +comparing to a non p2p. We concluded that this is not a blocker for the Single +Relay Release which is planned shortly.

    Peer sharing has gone through review and final review is +just being done right now. After merging it will still be disabled (hidden +behind a flag) as it's not safe without eclipse evasion. We started +implementing light peer sharing (i.e. include inbound peers into known peer set +of the outbound governor).

    We started a detailed eclipse evasion design, it will continue in the next +quarter.

    We also made a major revision of package structure of the network packages. We +ended up with a very clean dependency graph (pr #4155).

    Armando Santos delivered a talk at the ODOPIS 2022 conference on principles +of distributed systems in Brussels. The slides are available here.

    Neil Davies gave an invited seminar on DeltaQ at Université Catholique de +Louvain.

    We also found and fixed a few of bugs:

    • a bug in keep alive mini-protocol which resulted in warm to cold transitions +to be always executed through a timeout path rather than do a clean demotion +([pr #4168]).

    • fixed an assetion failure in the outbound governor (issue #4177)

    Next steps

    We will work towards the next release of P2P for block producer nodes. This includes:

    • analysing performance regression for BP nodes when using P2P
    • finish the work on controlling the block forger through node kernel (pr #3800)
    • address issue #3907 and write a script to analyse deployment of P2P relays

    We would like also to push forward eclipse evasion. Although most of the work +has be done already the release of io-sim on Hackage will happen in the +next quarter.

    We would also like to address chain-sync timeout issue recently +diagnosed by Karl Knutsson.

    If time permits we would also like to address some technical debt, especially:

    Risks

    The performance regression for block producer with P2P needs to be investigated +in the near future. This is blocker for the release of P2P on BP nodes.

    Detailed log

    Contributions to Ouroboros-Network

    • We added TraceDemoteLocalAsynchronous, which enables notification of critical issues for SPOs
    • We fixed cardano-ping compatibility with NodeToNodeV_10 (P2P, pr #4165)
    • We fixed a bug in demotion peers to cold which affected P2P nodes (commit-61058aa5c2)
    • Karl Knutsson enhanced SendFetchRequest (commit-bb1c3dddee), open-source contribution)
    • We turned SizeInBytes into a newtype.
    • We extended CONTRIBUTING.md, README.md, added CODE_OF_CONDUCT.
    • We fixed DNS test failure issue #4191
    • We fixed a simulation bug found in issue #4258
    • [pr #4168]
    • issue #4177

    Contributions to Cardano-Node

    • We maintained the Single Relay Release pr #4612, (e.g. fixing CI issues, +Rebasing it when necessary, publishing packages to Cardano Haskell Packages);
    • We enhanced JSON serialisation / deserialisation of NodeToNodeVersion and NodeToClientVersion;

    Contributions to IOSim

    • We started to use Cardano Haskell Packages for IOSim (pr #48)
    • We updated change log files
    • We added support of ghc-9.4 (pr #50)

    We also addressed the following issues in pr #57 in order to prepare the package for publication on Hackage:

    • refactored io-classes timers API (issue #46);
    • created a new package si-timers which exposes an interface using SI units +and is safe on 32-bit systems (issue #59);
    • added monad transformers instances for classes defined in io-classes (issue #58);
    • created io-classes-mtl package which includes (experimental) instances for monad transformers;
    • provide MonadMonotonicTimeNSec in io-classes and MonadMonotonicTime in si-timers (so that io-classes follow the base package);
    • added registerCancellableDelay in si-timers (which allowed us to hide fancy timer api and clean io-classes)
    • added support for js_HOST_ARCH (the new GHC JS backend)

    Note the pr #57 contains almost 40 commits, and was a major step forward for +io-sim ecosystem. We also prepared a draft pr #4281 which updates +ouroboros-network.

    Other changes for 1.0.0.0 release on Hackage:

    • Refactored test suite (pr #47)
    • Updated documentation, cabal files, CONTRIBUTING, SECURITY documents, etc in pr #60, currently under review.

    · 4 min read
    Marcin Szamotulski

    Network Quarterly Update

    2022-09 - 2022-11

    Summary of most important improvements

    During this quarter the networking team delivered low level specification of +peer sharing & eclipse evasion. We held a session with the consensus & the +scientists; we got a positive feedback on the design.

    Further we focused on implementation of peer sharing. We produced a detail +design and an early implementation.

    We prepared the P2P Single Relay Release (cardano-node-1.35.5). It +includes over 130 patches of network stack improvements over the +previous version 1.35.4, which were accomplished over a longer period of +time. Among them are both bug fixes and UX improvements for stake pool +operators like simplified format of the topology file, or +improvements in the logged messages:

    We also provide better integration with systemd (socket +activation improvements) or improvements in the networking stack:

    • exit policies,
    • peer metrics improvements,
    • DNS TTL improvements (which make it harder to misconfigure the +system, an issue discovered by the performance & monitoring team),
    • do not trigger inbound idle timeout for node-to-client connections (pr +#3844), an issue reported to us by Matthias Benkort from +Cardano Foundation.

    Duncan has been making progress with the input endorsers demo. His simulation +provides a useful animated visualisation and live quantification of behaviour +of the modeled design.

    We also improved our e2e diffusion simulation by implementing header-body +split, similar to what the real implementation does.

    We also made some advances towards our future goals of P2P release for block +producer nodes (pr #3800 - in review) & for Daedalus users +(pr #3690 - merged).

    Detailed log

    • We expanded diffusion simulation with block-fetch protocol bringing it closer +to the production system.

    • We addressed some additional technical depth in diffusion simulation

    • We slightly improved documentation & CI of io-sim and typed-protocols +repositories for open-source contributors.

    • We closed a number of issues towards publishing io-sim on Hackage (only two +essential issues are left open).

    • We pushed a branch of typed-protocols which captures one of the developer UX +problems in the API which we need to solve.

    • We identified and fixed an issue related to systemd sockets.

    • We identified and fixed an issue in consensus initialisation not giving +feedback on early errors.

    • We deployed RT View, identified a number of issues which were communicated to +the performance & monitoring team.

    • We finished high level & detailed design of peer sharing, very early +implementation of peer sharing is done (note that peer sharing cannot be +safely deployed without eclipse evasion & genesis).

    • We finished high level design of eclipse evasion, and started working on +a detailed design.

    • We were assigned the role of release engineer for 1.35.5 release (the P2P +single relay release); we prepared a cardano-node for 1.35.5 release which +contains more than 130 patches of just network stack improvements done over +last few months.

    • We diagnosed and fixed an tricky bug in the peer state actions (a component +which sits between outbound governor and connection manager). That bug was +introduced earlier this year and never released. It was caught by the QA +testing framework. We expanded our diffusion simulation to cover such case and +also mitigated a chance for reintroducing such a bug in future.

    • We identified and quite likely mitigated a misconfiguration in the +benchmarking cluster (next benchmarking run will confirm our hypothesis).

    • We simplified the format of p2p topology file, we got positive feedback from +SPOs.

    • We raised severities of some of the logging messages, which is an important +improvement for SPOs, exchanges and other users of the system.

    • We worked on input endorsers simulation which gives both animated and +quantified live feedback on network operation, using a simplified model of +a TCP/IP network.

    Next quarter

    • Release the Single Relay P2P Release 1.35.5.

    • Carry on with Peer Sharing (review, testing).

    • Deliver a talk at Conference on Principles of Distributed Systems 2022 in Brussels, Belgium.

    • Present Detailed Design of Eclipse Evasion and start implementation phase.

    • Work on P2P Block Producer release.

    • Carry on with publishing of io-sim on Hackage.

    + + + + \ No newline at end of file diff --git a/quarterly/tags/open-source/index.html b/quarterly/tags/open-source/index.html new file mode 100644 index 0000000000..e55e98a7f9 --- /dev/null +++ b/quarterly/tags/open-source/index.html @@ -0,0 +1,55 @@ + + + + + +One post tagged with "open-source" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    One post tagged with "open-source"

    View All Tags

    · 3 min read
    Marcin Szamotulski

    Open Source Quarterly Update

    2022-11 - 2023-01

    Summary

    In the last quarter the open-source initiative delivered a comprehensive report +on the state of our repositories. As part of this work stream we +identified the key open-source repositories for the cardano project across all +the projects From a list of more than 500 repositories (some of which are +forks) we identified key repositories which constitute the core of Cardano. +20 of them were identified as to be transferred to the future MBO which will +govern Cardano development. Some where excluded (like io-sim and +typed-protocols), to be govern by IOG, since they have a much broader +application than Cardano itself, and thus we think their open-source future +will be better outside of the Cardano umbrella.

    Christian Taylor identified a number of ways we can improve our repositories to +make them more attractive for open-source contributions by analysing each of +them. This includes adding or improving various documentation files, like +CONTRIBUTING files, adding code of conduct, improving readme files, issue +& pull request templates etc. Christian also computed various interesting +metrics which gives a very good insight into the development practices: e.g. +average merge ratio, average number of reviews, comments and many more! The +presentation is available here.

    We followed with work on the Cardano Engineering Handbook. We included +a standard code of conduct which is now used by most important projects in the +Cardano space. We included cardano-node's security policy and added +a responsible disclosure policy. We also described how roles and +responsibilities should be clarified. This progress was made by +a collaborative effort of the Cardano Core, Plutus and Architecture teams, and +it wouldn't be possible without Michael Peyton Jones, Arnaud Bailly, Kevin +Hammond, Jared Corduan and Marcin Szamotulski.

    We also improved the documentation of key repositories, by adding description, +improving their README file & CONTRIBUTING files, adding code of conducts +following the Cardano Engineering Handbook. This includes improvements to:

    And also

    The work was carried by Marcin Szamotulski, Addie Girouard and Jared Corduan.

    In this quarter we also identified a number of projects which can be published to +Hackage (Haskell's package repository) or crate (Rust package repository). +The list contains 21 packages, 2 of which (hedgehog-extras and +quickcheck-dynamic) are already published on Hackage and another 5 (from +the io-sim repository) are close to be published.

    Detailed log

    The progress of the open-source project is tracked in this project.

    + + + + \ No newline at end of file diff --git a/quarterly/tags/performance-tracing/index.html b/quarterly/tags/performance-tracing/index.html new file mode 100644 index 0000000000..252de2fb0a --- /dev/null +++ b/quarterly/tags/performance-tracing/index.html @@ -0,0 +1,48 @@ + + + + + +2 posts tagged with "performance-tracing" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    2 posts tagged with "performance-tracing"

    View All Tags

    · 4 min read
    Michael Karg

    2023-07 - 2023-09

    Main achievements

    • Release benchmarking
    • Developing and running UTxO-HD benchmarks - in-memory flavour
    • P2P benchmarks, facilitating rollout
    • Production-readiness of the new Nomad cluster has been reached
    • Optimization of and introspection capability for the new tracing system
    • GHC9 performance investigation (and possible remedy)
    • Conensus QTAs: first real-world application of prototype

    Release benchmarking

    Ongoing release benchmarking is a crucial safeguard to cardano-node's release cycle from a performance perspective. We've performed and analyzed benchmarks for node versions 8.2.x to 8.5 throughout Q3.

    UTxO-HD benchmarks

    Targeting a specific new feature in benchmarks requires development effort and fine-tuning the machinery. In Q3, we achieved that for the in-memory flavour of UTxO-HD, enabling benchmark delivery.

    P2P benchmarks

    In Q3, we performed additional P2P benchmarks to facilitate the comprehensive rollout of that feature.

    New nomad cluster

    The new hardware cluster for benchmarks, which is controlled through the new nomad backend, has received +various rounds of validation and adjustments in Q3 - in addition to finalizing integration with the rest +of our pipeline. The confidence in metrics gathered on the cluster is now sufficient for us to consider it +ready for production use.

    New tracing system

    Our new tracing system has received various rounds of optimization in Q3. We could verify in our benchmarks that +it is roughly on par with the legacy system while offering a richer feature set and greater flexibility.

    Additionally, in Q3 we equipped the system with an introspection capability. This is now used for generating +end user documentation that stays in-sync with definitions in code, and for automated consistency checking of the entire system.

    GHC9 performance

    In Q3, a joint investigation with DevX into GHC9's behaviour revealed where and how GHC9 misses opportunities for +optimization of generated code. This led to an approach to annotate our codebase accordingly to re-enable +those optimizations - which is still being validated.

    Consensus QTAs

    In collaboration with Consensus and DevX, we advanced the Consensus QTAs prototype capturing ledger operations' +performance characteristics. It's now applicable, and being applied, to a real-world task - namely +gathering evidence of the effect of aforementioned changes allowing for performant GHC9 builds.

    Next steps

    Benchmarking:

    In Q4, the focus will be on:

    • facilitating the next mainnet release
    • benchmarking runs in the Conway era
    • developing benchmarks / workloads for Conway-exclusive actions
    • implementing a specialized benchmark setup for the UTxO-HD on-disk variant
    • developing new Plutus benchmarks to safeguard Plutus V3
    • benchmarks regarding the rollout of P2P

    Performance

    For certain blocking performance issues we've located the cause, or even found a solution in a cross-team effort. In Q4 we'll advance that work to ensure the ongoing +release cycle for mainnet, as well as make GHC9 become a viable release platform.

    New tracing system

    For the new tracing system, we'll finalize optimization - current results are already on par with the legacy system. Furthermore, we will finish up comprehensive documentation, as well as description of a recommended setup, for which we can provide initial support.

    UTxO-HD monitoring

    We'll augment our analysis pipeline so it can process monitoring data from UTxO-HD nodes connected to mainnet in a meaningful way.

    Nomad backend

    From Q4 on, this backend will be in production use. We plan on adding various UX and flexibility improvements, and further fine-tuning some profiles for nomad.

    Workbench

    We will prepare for a future move of our performance workbench into a separate project. This entails restructuring, refactoring and reimplementation of certain few components that currently assume to always be in sync with cardano-node.

    Consensus component QTAs (co-development)

    In Q4 there will be ongoing work with and support for the existing prototype. We plan to identify a fixed set of input data that yields results of high informative value, and to formalize the process to a point that enables future automation.

    · 3 min read
    Michael Karg

    2023-10 - 2024-01

    Main achievements

    • Release benchmarking, leading up to next mainnet release
    • Conway benchmarking of existing Babbage workloads
    • P2P benchmarks, validating viability as default topology
    • Added basic PlutusV3 capability of our tooling
    • Publication of benchmarking reports accompanying a mainnet release
    • GHC9 performance investigation
    • Finalized and validated all optimizations for the new tracing system
    • New Nomad benchmarking cluster: production use
    • Adjustment of our infrastructure to cover the migration to IntersectMBO
    • Conensus QTAs: prototype developed into alpha-stage benchmark
    • Successful on-boarding of a new team member

    Release benchmarking

    We've performed and analyzed benchmarks for node versions 8.6.x to 8.7.3, which is projected to be the next mainnet release, throughout Q4. +Along that way, we have identified, located and handled all performance blockers.

    Additionally, we've started publishing benchmarking reports here on Cardano Updates. The format is meant to increase transparency and +provide insight into those measurements that accompany mainnet releases - demonstrating the absence of performance regressions and development +of specific metrics over time.

    Conway benchmarks

    Furthermore, we've done first ever benchmarking of the Conway ledger. To that end, we've ported our Babbage workloads to Conway for +immediate comparability. Fortunately, we've have not found any performance regression in the Conway ledger.

    P2P benchmarks

    In Q4, we've validated P2P topology to be viable as default for both relay and block producer nodes. As a consequence, we've switched +to P2P topology for benchmarking baselines ourselves.

    GHC9 performance

    In Q4, evaluation of GHC9.2's and GHC9.6's optimizer in the context of the Cardano code base has been completed. +Eventually, GHC9.6 has shown itself to be much more suitable from a performance perspective. We're convinced that +with a few select annotations in the code, GHC9.6's optimizer can produce a result on par performance-wise with GHC8.10 - +which just was a great release in that regard. With GHC9.2 unfortunately, the changes would have to be more invasive - and thus more time-consuming.

    New nomad cluster

    We’ve moved the new Nomad cluster into production use and established new baselines for each workload on it. +Additionally, we’ve shut down the legacy cardano-ops benchmarking cluster, and archived all raw data from it.

    Consensus component QTAs

    We’ve developed the existing prototype into an automatable, self-contained benchmark called beacon, as well as systematized workloads and run structure for it. +Moreover, we’ve demonstrated usefulness of the metrics, their reproducibility, and identified domains viable for QTAs with system-level benchmarks.

    New team member

    We're happy to welcome a new joiner to our team! We've successfully onboarded him in Q4; he has taken +over the cardano-tracer service - the node-external component of the new tracing system - and has already +landed several valuable contributions.

    + + + + \ No newline at end of file diff --git a/quarterly/tags/sre/index.html b/quarterly/tags/sre/index.html new file mode 100644 index 0000000000..7702fb270d --- /dev/null +++ b/quarterly/tags/sre/index.html @@ -0,0 +1,74 @@ + + + + + +5 posts tagged with "sre" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    5 posts tagged with "sre"

    View All Tags

    · One min read
    John Lotoski

    2023-04 - 2023-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Expanding the darwin CI cluster and adding aarch64 builder support
    • Adding bare metal capability to bitte clusters
    • Creating a devx-ci cluster containing a Hydra build server and Linux build farm which is intended to replace Cicero functionality
    • Creation of pool performance analysis queries and scripting
    • Migration of testnet metadata server to cardano-world
    • Cardano shelley qa migration to cardano-world
    • Cardano sanchonet environment spin up to test Conway era functionality
    • Mainnet relay conversion to p2p topology usage is progressing with 50% of mainnet relays now using p2p topology and networking feature

    Next steps

    • Continue with the conversion of mainnet to using p2p topology

    · One min read
    John Lotoski

    2023-07 - 2023-09

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, main SRE achievements for this quarter include:

    • Completion of mainnet relay networking conversion to p2p topology
    • Cardano sanchonet environment respins for testing new cardano-node pre-release Conway era functionality
    • Stabilization of cardano-explorer in cardano-world using high IOPS bare metal machines
    • Creation of a nix content addressed packages repository, capkgs:
      • To provide lightweight release binaries thereby avoiding sluggish nix flakes and devShells
    • Creation of a cardano performance benchmarking cluster, cardano-perf:
      • To replace legacy cluster benchmark tooling
    • Creation of a cardano cluster composition repository, cardano-parts:
      • For enabling multi-cluster, multi-role cardano network deployments
    • Creation of a cardano testnets repository, cardano-playground:
      • Utilizing cardano-parts for testnet deployments
    • Creation of a sanchonet demo repository, sanchonet-demo:
      • Utilizing cardano-parts for fast sanchonet test environment and demo purposes

    Next steps

    • Continue with migration of cardano-world testnets to cardano-playground
    • Proceed with spinup of mainnet p2p bootstrap cluster
    • Scale down mainnet non-p2p legacy cluster at the appropriate time

    · One min read
    John Lotoski

    2023-10 - 2023-12

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • Cardano-parts support was added for cardano-db-sync, cardano-smash, +cardano-faucet, cardano-metadata, grafana monitoring along with a number of +other features

    • Completed migration of testnets from cardano-world to the cardano-playground cluster

    • Completed migration of the cardano book from cardano-world to the cardano-playground +cluster

    • Completed migration of pools from cardano-ops to the cardano-mainnet cluster

    • Creation of a mainnet p2p bootstrap cluster

    • Cardano sanchonet environment respins during the quarter for testing new +cardano-node pre-release Conway era functionality

    • All environments were upgraded to cardano-node 8.7.2 or 8.7.3 by the end of +the quarter

    • Completion of a govtool backend deployment for Voltaire chain testing

    • Creation of a cardano-monitoring repository, +cardano-monitoring:

      • A new repository enabling agile deployment of EC2 monitoring servers, +compatible with OpenTofu grafana and mimir providers

    Next steps

    • Scale down the mainnet non-p2p legacy cluster

    • Add deployment support for new network services, such as Mithril

    • Continue cardano-parts and operations improvements

    · 2 min read
    John Lotoski

    2024-01 - 2024-03

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • All cardano release environments, including preview, preprod, mainnet legacy +and mainnet new clusters were upgraded through cardano-node releases of +8.7.3, 8.9.0 and finally into 8.9.1 by the end of March

    • All cardano pre-release environments, including sanchonet, private chain, and +shelley-qa clusters were upgraded through cardano-node releases of 8.7.3, +8.8.0-pre, 8.8.1-pre, 8.9.0 and finally into 8.9.1 by the end of March

    • Sanchonet and private chain environments were both re-spun once each during +this quarter to support new pre-release versions of cardano-node in the Conway era

    • Cardano-parts added a cardano-db-sync process-compose stack for each +environment

    • Cardano-parts added a cardano-node process-compose stack for each environment

    • Cardano-parts added enhancements for topology related nixos modules and +functions to accomodate new bootstrapPeer functionality, new topology +attributes and increased complexity network deployments.

    • Cardano-parts added support for mithril signers integrated with block +producers and a mithril-signer-verifier service for monitoring

    • Sanchonet, preview, preprod and mainnet IOG block producers are now signing +mithril certificates

    • Cardano-parts added support for mithril clients in nixos cardano-node systemd +service, process-compose job stacks and nix cardano-node entrypoint, all of +which also require any mithril snapshot to be signed by a trusted IOG pool +prior to use

    • Cardano-parts added ip integration tooling, so that similar to other deployer +tools like nixops, nixosConfigurations possess ip information which can be +used in module configuration

    • Cardano-db-sync snapshots server migration from legacy mainnet cluster to new +mainnet cluster with a rewrite of the snapshot service was completed

    • Cardano metadata server migration to Cardano Foundation was completed

    • BlockPerf, a cardano-node performance monitoring tool, was integrated into the +new mainnet cluster relays

    • Cardano-node bootstrapPeer functionality was added with node 8.9.x, requiring +effort to align nixos service module code between cardano-node nixos +services, iohk-nix topology generation, cardano-ops legacy code, and +cardano-parts module compatibility as well as feature test under various edge +cases

    • Cardano-playground added govtool backend support for private chain voltaire +testing team

    Next steps

    • Add support for the new cardano-node metrics system

    • Add IPv6 cardano-parts support

    • Extend govtool frontend and backend to a process-compose stack

    • Adapt network spin-up tooling for the new create-testnet-data cardano-cli command

    • Continue cardano-parts and operations improvements

    · 2 min read
    John Lotoski

    2024-04 - 2024-06

    Main achievements

    In addition to ongoing general maintenance and support of cardano environments, +main SRE achievements for this quarter include:

    • All cardano release environments, including preview, preprod, mainnet legacy +and mainnet new clusters were upgraded through various cardano-node releases of +8.9.2, 8.9.3, 8.9.4, 8.12.1, and finally into 8.12.2 by the end of +June

    • Cardano pre-release environments additionally iterated through pre-release +upgrades of 8.11.0-pre, 8.12.0-pre, and finally into 8.12.2 by the end +of June with the exception of sanchonet which remains pinned at 8.11.0-pre +until the next respin to support node version 9.0.0 or greater

    • Sanchonet environment was re-spun two times for pre-release Conway testing of +cardano-node versions 8.10.0-pre and 8.11.0-pre respectively

    • Private chain environment was re-spun three times to support fast epoch +Conway testing

    • Cardano-playground and cardano-mainnet repos have added ten operations +oriented documents for knowledge transfer

    • Block producers which participate in mithril signing will now produce metrics +and can have them scraped with the default metrics agent

    • A cluster spin-up job to utilize the new cardano-cli create-testnet-data +sub-command was created

    • A nixosModule, dashboards and alerts were added supporting the new cardano +tracing system

    • Many new operations scripts and features were added, including a template +diff and patch recipe to pull the latest cardano-parts improvements to +consuming repositories more easily

    Next steps

    • Finalize support for the new cardano-node tracing system once the service is +rewritten for general consumption

    • Add IPv6 cardano-parts support

    • Extend govtool frontend and backend to a process-compose stack once govtool +is publicly buildable again

    • Continue cardano-parts and operations improvements

    + + + + \ No newline at end of file diff --git a/reports/2023-12-performance-8.7.2/index.html b/reports/2023-12-performance-8.7.2/index.html new file mode 100644 index 0000000000..14094ce6cc --- /dev/null +++ b/reports/2023-12-performance-8.7.2/index.html @@ -0,0 +1,27 @@ + + + + + +Benchmarking -- Node 8.7.2 | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Benchmarking -- Node 8.7.2

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of cardano-node:

    • 8.1.2 - the last mainnet release
    • 8.7.0-pre - as an intermediate reference point
    • 8.7.2 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    The observations stated refer to the direct comparison between the 8.1.2 and 8.7.2 versions.

    Resource Usage

    1. Plutus workload, having a lower overall absolute CPU load, exhibits an average increase of 27% in Process CPU usage. Value workload, having a higher overall absolute CPU load, exhibits a near-jitter increase of 1%.
    2. Allocation rates increase by ~8.9MB/s (value workload) and ~12.6MB/s (Plutus workload).
    3. Heap sizes increase by 47% - 54%.
    4. CPU 85% span duration shrinks by ~9.7 slots under value workload, and ~5.8 slots under Pluts workload.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Block Context Acquisition in the forging loop increases by ~10ms.
    2. Mempool snapshotting shows an increase by 16ms under value workload; under Plutus workload, it increases by 3ms.
    3. Ledger ticking improves slightly by 1-2ms.

    The metric 'Slot start to announced' (see in attachements) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block fetch time increases for full blocks by 9%. For small blocks, it improves by 7%.
    2. Time to resend a block after fetching increases by 8% for full blocks, whereas it improves by 2% for small blocks.
    3. Block adoption by a peer takes 12% more time for a full block, but happens faster by 4% for a small block.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    The metric exhibits an increase by ~10% across all centiles for full blocks, whereas it improves by 5-6% for small blocks in the higher (80th and above) centiles.

    Contact

    This is the first time we're publishing, to a wider audience, such benchmarking results. We are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    The relese benchmarks for 8.7.2 were performed on tag 8.7.1-pre, which features identical cardano-node components.

    + + + + \ No newline at end of file diff --git a/reports/2024-03-performance-8.9.0/index.html b/reports/2024-03-performance-8.9.0/index.html new file mode 100644 index 0000000000..8110297ad3 --- /dev/null +++ b/reports/2024-03-performance-8.9.0/index.html @@ -0,0 +1,27 @@ + + + + + +Benchmarking -- Node 8.9.0 | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Benchmarking -- Node 8.9.0

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of cardano-node:

    • 8.7.2 - baseline for previous mainnet release
    • 8.8.0 - an intermediate reference point
    • 8.9.0 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    The observations stated refer to the direct comparison between the 8.7.2 and 8.9.0 versions.

    Resource Usage

    1. Overall CPU usage exhibits a small to moderate (5% - 8%) increase.
    2. Memory usage is very slightly decreased by 1%.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. For full blocks, Mempool Snapshotting improves by 4% (or 3ms).
    2. For small blocks, Self Adoption times improve by 8% (or 4ms).
    3. All other forger metrics do not exhibit significant change.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. For full blocks, Block Fetch duration shows a notable improvement by 10ms (or 3%).

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    End-to-end propagation times on 8.9.0 exhibit a small improvement by 2% across all centiles for full blocks, whereas they remain largely unchanged for small blocks.

    Conclusion

    • The performance changes observed between 8.9.0 and 8.7.2 are only minor - with 8.9.0 slightly improving on 8.7.2. Therefore, we'd expect 8.9.0 Mainnet performance to be akin to 8.7.2.
    • We have demonstrated no performance regression has been introduced in 8.9.0.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. Mainnet release 8.7.3 did not include any performance-related changes; measurements taken on 8.7.2 remain valid.

    + + + + \ No newline at end of file diff --git a/reports/2024-03-performance-8.9.1/index.html b/reports/2024-03-performance-8.9.1/index.html new file mode 100644 index 0000000000..de23476e72 --- /dev/null +++ b/reports/2024-03-performance-8.9.1/index.html @@ -0,0 +1,27 @@ + + + + + +Benchmarking -- Node 8.9.1 | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Benchmarking -- Node 8.9.1

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.0 - baseline for previous mainnet release
    • 8.9.1 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. We can observe an overall decrease in CPU usage (2% - 4%); only GC CPU usage under value workload increases by 3%.
    2. Under value workload only, Allocation rate is very slightly decreased (1%) with no change to Heap Size.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool Snapshot duration increases slightly by 2ms under value workload.
    2. Self-Adoption time increases by 3ms.
    3. All other forger metrics do not exhibit significant change.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Under value workload only, Block Fetch duration and Fetched to Sending show a slight increase of 2ms each.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    End-to-end propagation times on 8.9.1 exhibit a small increase by 1% - 2% for full blocks, while remaining virtually unchanged for small blocks.

    Conclusion

    • The performance changes measured between 8.9.1 and 8.9.0 are very minor. Mainnnet performance of 8.9.1 is expected to be akin to 8.9.0.
    • We have not observed any performance regression being introduced in 8.9.1.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    + + + + \ No newline at end of file diff --git a/reports/2024-05-performance-8.9.3/index.html b/reports/2024-05-performance-8.9.3/index.html new file mode 100644 index 0000000000..4c7d844109 --- /dev/null +++ b/reports/2024-05-performance-8.9.3/index.html @@ -0,0 +1,27 @@ + + + + + +Benchmarking -- Node 8.9.3 | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Benchmarking -- Node 8.9.3

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.1 - baseline from a previous mainnet release
    • 8.9.3 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload, CPU usage increases slightly on 8.9.3: 4% for Process, 3% for Mutator and 8% for GC.
    2. Additionally, Allocation rate and minor GCs increase slightly by 3% each.
    3. Under Plutus workload only, the GC live dataset increases by 10% or 318MB.
    4. CPU 85% spans increase by 14% of slot duration under value workload, whereas they shorten by 5% of slot duration under Plutus workload.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. There are no significant changes to metrics related to block forging.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration improves by 7ms (or 2%) under value workload, and by 4ms (or 3%) under Plutus workload.
    2. Under Plutus workload, Fetched to sending improves by 2ms (or 5%).

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload, cluster adoption times exhibit a minor improvement (1%) up to the 80th centile on 8.9.3.
    2. Under Plutus workload, we can observe a minor improvement overall (1% - 2%), whilst full adoption is unchanged.

    Conclusion

    • The performance changes measured between 8.9.3 and 8.9.1 are very minor, with 8.9.3 improving slightly over 8.9.1.
    • Mainnnet performance of 8.9.3 is expected to be akin to 8.9.1.
    • We have not observed any performance regression being introduced in 8.9.3.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The baseline for 8.9.1 had to be re-established due to changes in the underlying network infrastructure. This means, absolute values may differ from the previous measurements taken from that version.

    + + + + \ No newline at end of file diff --git a/reports/2024-06-performance-8.12.1/index.html b/reports/2024-06-performance-8.12.1/index.html new file mode 100644 index 0000000000..48340fba1a --- /dev/null +++ b/reports/2024-06-performance-8.12.1/index.html @@ -0,0 +1,27 @@ + + + + + +Benchmarking -- Node 8.12.1 | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Benchmarking -- Node 8.12.1

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.3 - baseline from a previous mainnet release
    • 8.12.1 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload, CPU usage is improved by 2% - 4%, and by 14% for GCs. Under Plutus workload, CPU usage improves only slightly by 1%.
    2. Allocation Rate and Minor GCs improve by 5% and 6% - under Plutus workload, there's a slight improvement of 1%.
    3. RAM usage is reduced by 3%; reduction under Plutus workload is even larger - namely 10%.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool snapshotting improves by 5ms or 7% (3ms or 4% under Plutus workload).
    2. Adoption time on the block producer improves by 4ms or 6% - under value workload only.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration increases slightly by 6ms or 2% (2ms under Plutus workload).
    2. Adoption times on the peers improve slightly by 2ms or 3% (1ms under Plutus workload)

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload / full blocks there are no significant changes to cluster adoption times.
    2. Under Plutus workload / small blocks we can observe a (near-jitter) improvement of 0% - 2% in cluster adoption times.

    Conclusion

    • The performance changes measured between 8.12.1 and 8.9.3 are most distinct in the resource usage footprint - with 8.12.1 improving over 8.9.3.
    • On Mainnnet, 8.12.1 is expected to deliver equal or slightly better performance than 8.9.3 - as well as lowering the Node's resource usage somewhat in doing so.
    • We have not observed any performance regression being introduced in 8.12.1.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The release benchmarks for 8.12.1 were performed on tag 8.12.0-pre. The patch version bump did not include changes relevant to performance; thus, measurements taken on 8.12.0-pre remain valid.

    + + + + \ No newline at end of file diff --git a/reports/2024-07-performance-9.0.0/index.html b/reports/2024-07-performance-9.0.0/index.html new file mode 100644 index 0000000000..a56371a36a --- /dev/null +++ b/reports/2024-07-performance-9.0.0/index.html @@ -0,0 +1,27 @@ + + + + + +Benchmarking -- Node 9.0.0 | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    Benchmarking -- Node 9.0.0

    · 4 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.12.1 - baseline from a previous mainnet release
    • 9.0.0 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Conway era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload Process and Mutator CPU usage are slightly higher on 9.0 - 7% - 8% (4% each under Plutus workload). GC CPU is increased by 11%, but decreases under Putus workload by 3%.
    2. Only under value workload, Allocation Rate and Minor GCs increase by 5% and the live GC dataset grows by 3%. Heap size is constant.
    3. CPU 85% spans are 8% shorter (3% under Plutus workload).

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool Snapshotting and Self Adoption time on the block producer increase very slightly under value workload - 2ms (or 3%) each.
    2. Under Plutus workload, however, a decrease in Self Adoption time by 2ms (or 4%) is the only significant change in the forging loop.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration is 21ms faster (6%) - 7ms or 5% under Plutus workload.
    2. Fetched to Sending increases slightly by 3ms (7%) - only under value workload.
    3. Adoption times on the peers increase slightly by 4ms (5%) - under Plutus workload, however, they are 3ms (6%) faster.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload / full blocks on 9.0, we can observe a 4% - 5% improvement of cluster adoption times in the 80th centile and above.
    2. Under Plutus workload / small blocks, the corresponding improvement is 5% - 6%.
    3. The main contributing factor is the improvement in Block Fetch duration.

    Conclusion

    • Network performance clearly improves by ~%5 for 80% to full cluster adoption - independent of workload.
    • RAM usage is unchanged on 9.0. The slight rise in CPU usage is expected, given improved network performance, and does not pose cause for concern.
    • We have not observed any performance regression being introduced in 9.0.0..

    NB. These benchmarks were performed in the Conway ledger era. As such, they do not cover the one-time performance cost of transitioning from Babbage and enabling the new features of the Conway ledger.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The release benchmarks for 8.12.1 were performed on tag 8.12.0-pre. The patch version bump did not include changes relevant to performance; thus, measurements taken on 8.12.0-pre remain valid.

    + + + + \ No newline at end of file diff --git a/reports/archive/index.html b/reports/archive/index.html new file mode 100644 index 0000000000..cca55f9ce5 --- /dev/null +++ b/reports/archive/index.html @@ -0,0 +1,26 @@ + + + + + +Archive | Cardano Development Updates + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/reports/atom.xml b/reports/atom.xml new file mode 100644 index 0000000000..e102f0a17f --- /dev/null +++ b/reports/atom.xml @@ -0,0 +1,94 @@ + + + https://updates.cardano.intersectmbo.org/reports + Cardano Development Updates Blog + 2024-07-17T12:35:56.000Z + https://github.com/jpmonette/feed + + Cardano Development Updates Blog + https://updates.cardano.intersectmbo.org/img/favicon.ico + + <![CDATA[Benchmarking -- Node 8.7.2]]> + 2023-12-performance-8.7.2 + + 2024-07-17T12:35:56.000Z + + Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of cardano-node:

    • 8.1.2 - the last mainnet release
    • 8.7.0-pre - as an intermediate reference point
    • 8.7.2 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    The observations stated refer to the direct comparison between the 8.1.2 and 8.7.2 versions.

    Resource Usage

    1. Plutus workload, having a lower overall absolute CPU load, exhibits an average increase of 27% in Process CPU usage. Value workload, having a higher overall absolute CPU load, exhibits a near-jitter increase of 1%.
    2. Allocation rates increase by ~8.9MB/s (value workload) and ~12.6MB/s (Plutus workload).
    3. Heap sizes increase by 47% - 54%.
    4. CPU 85% span duration shrinks by ~9.7 slots under value workload, and ~5.8 slots under Pluts workload.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Block Context Acquisition in the forging loop increases by ~10ms.
    2. Mempool snapshotting shows an increase by 16ms under value workload; under Plutus workload, it increases by 3ms.
    3. Ledger ticking improves slightly by 1-2ms.

    The metric 'Slot start to announced' (see in attachements) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block fetch time increases for full blocks by 9%. For small blocks, it improves by 7%.
    2. Time to resend a block after fetching increases by 8% for full blocks, whereas it improves by 2% for small blocks.
    3. Block adoption by a peer takes 12% more time for a full block, but happens faster by 4% for a small block.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    The metric exhibits an increase by ~10% across all centiles for full blocks, whereas it improves by 5-6% for small blocks in the higher (80th and above) centiles.

    Contact

    This is the first time we're publishing, to a wider audience, such benchmarking results. We are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    The relese benchmarks for 8.7.2 were performed on tag 8.7.1-pre, which features identical cardano-node components.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    + + <![CDATA[Benchmarking -- Node 8.9.0]]> + 2024-03-performance-8.9.0 + + 2024-07-17T12:35:56.000Z + + Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of cardano-node:

    • 8.7.2 - baseline for previous mainnet release
    • 8.8.0 - an intermediate reference point
    • 8.9.0 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    The observations stated refer to the direct comparison between the 8.7.2 and 8.9.0 versions.

    Resource Usage

    1. Overall CPU usage exhibits a small to moderate (5% - 8%) increase.
    2. Memory usage is very slightly decreased by 1%.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. For full blocks, Mempool Snapshotting improves by 4% (or 3ms).
    2. For small blocks, Self Adoption times improve by 8% (or 4ms).
    3. All other forger metrics do not exhibit significant change.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. For full blocks, Block Fetch duration shows a notable improvement by 10ms (or 3%).

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    End-to-end propagation times on 8.9.0 exhibit a small improvement by 2% across all centiles for full blocks, whereas they remain largely unchanged for small blocks.

    Conclusion

    • The performance changes observed between 8.9.0 and 8.7.2 are only minor - with 8.9.0 slightly improving on 8.7.2. Therefore, we'd expect 8.9.0 Mainnet performance to be akin to 8.7.2.
    • We have demonstrated no performance regression has been introduced in 8.9.0.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. Mainnet release 8.7.3 did not include any performance-related changes; measurements taken on 8.7.2 remain valid.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    + + <![CDATA[Benchmarking -- Node 8.9.1]]> + 2024-03-performance-8.9.1 + + 2024-07-17T12:35:56.000Z + + Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.0 - baseline for previous mainnet release
    • 8.9.1 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. We can observe an overall decrease in CPU usage (2% - 4%); only GC CPU usage under value workload increases by 3%.
    2. Under value workload only, Allocation rate is very slightly decreased (1%) with no change to Heap Size.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool Snapshot duration increases slightly by 2ms under value workload.
    2. Self-Adoption time increases by 3ms.
    3. All other forger metrics do not exhibit significant change.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Under value workload only, Block Fetch duration and Fetched to Sending show a slight increase of 2ms each.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    End-to-end propagation times on 8.9.1 exhibit a small increase by 1% - 2% for full blocks, while remaining virtually unchanged for small blocks.

    Conclusion

    • The performance changes measured between 8.9.1 and 8.9.0 are very minor. Mainnnet performance of 8.9.1 is expected to be akin to 8.9.0.
    • We have not observed any performance regression being introduced in 8.9.1.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    + + <![CDATA[Benchmarking -- Node 8.9.3]]> + 2024-05-performance-8.9.3 + + 2024-07-17T12:35:56.000Z + + Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.1 - baseline from a previous mainnet release
    • 8.9.3 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload, CPU usage increases slightly on 8.9.3: 4% for Process, 3% for Mutator and 8% for GC.
    2. Additionally, Allocation rate and minor GCs increase slightly by 3% each.
    3. Under Plutus workload only, the GC live dataset increases by 10% or 318MB.
    4. CPU 85% spans increase by 14% of slot duration under value workload, whereas they shorten by 5% of slot duration under Plutus workload.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. There are no significant changes to metrics related to block forging.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration improves by 7ms (or 2%) under value workload, and by 4ms (or 3%) under Plutus workload.
    2. Under Plutus workload, Fetched to sending improves by 2ms (or 5%).

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload, cluster adoption times exhibit a minor improvement (1%) up to the 80th centile on 8.9.3.
    2. Under Plutus workload, we can observe a minor improvement overall (1% - 2%), whilst full adoption is unchanged.

    Conclusion

    • The performance changes measured between 8.9.3 and 8.9.1 are very minor, with 8.9.3 improving slightly over 8.9.1.
    • Mainnnet performance of 8.9.3 is expected to be akin to 8.9.1.
    • We have not observed any performance regression being introduced in 8.9.3.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The baseline for 8.9.1 had to be re-established due to changes in the underlying network infrastructure. This means, absolute values may differ from the previous measurements taken from that version.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    + + <![CDATA[Benchmarking -- Node 8.12.1]]> + 2024-06-performance-8.12.1 + + 2024-07-17T12:35:56.000Z + + Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.3 - baseline from a previous mainnet release
    • 8.12.1 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload, CPU usage is improved by 2% - 4%, and by 14% for GCs. Under Plutus workload, CPU usage improves only slightly by 1%.
    2. Allocation Rate and Minor GCs improve by 5% and 6% - under Plutus workload, there's a slight improvement of 1%.
    3. RAM usage is reduced by 3%; reduction under Plutus workload is even larger - namely 10%.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool snapshotting improves by 5ms or 7% (3ms or 4% under Plutus workload).
    2. Adoption time on the block producer improves by 4ms or 6% - under value workload only.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration increases slightly by 6ms or 2% (2ms under Plutus workload).
    2. Adoption times on the peers improve slightly by 2ms or 3% (1ms under Plutus workload)

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload / full blocks there are no significant changes to cluster adoption times.
    2. Under Plutus workload / small blocks we can observe a (near-jitter) improvement of 0% - 2% in cluster adoption times.

    Conclusion

    • The performance changes measured between 8.12.1 and 8.9.3 are most distinct in the resource usage footprint - with 8.12.1 improving over 8.9.3.
    • On Mainnnet, 8.12.1 is expected to deliver equal or slightly better performance than 8.9.3 - as well as lowering the Node's resource usage somewhat in doing so.
    • We have not observed any performance regression being introduced in 8.12.1.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The release benchmarks for 8.12.1 were performed on tag 8.12.0-pre. The patch version bump did not include changes relevant to performance; thus, measurements taken on 8.12.0-pre remain valid.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    + + <![CDATA[Benchmarking -- Node 9.0.0]]> + 2024-07-performance-9.0.0 + + 2024-07-17T12:35:56.000Z + + Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.12.1 - baseline from a previous mainnet release
    • 9.0.0 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Conway era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload Process and Mutator CPU usage are slightly higher on 9.0 - 7% - 8% (4% each under Plutus workload). GC CPU is increased by 11%, but decreases under Putus workload by 3%.
    2. Only under value workload, Allocation Rate and Minor GCs increase by 5% and the live GC dataset grows by 3%. Heap size is constant.
    3. CPU 85% spans are 8% shorter (3% under Plutus workload).

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool Snapshotting and Self Adoption time on the block producer increase very slightly under value workload - 2ms (or 3%) each.
    2. Under Plutus workload, however, a decrease in Self Adoption time by 2ms (or 4%) is the only significant change in the forging loop.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration is 21ms faster (6%) - 7ms or 5% under Plutus workload.
    2. Fetched to Sending increases slightly by 3ms (7%) - only under value workload.
    3. Adoption times on the peers increase slightly by 4ms (5%) - under Plutus workload, however, they are 3ms (6%) faster.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload / full blocks on 9.0, we can observe a 4% - 5% improvement of cluster adoption times in the 80th centile and above.
    2. Under Plutus workload / small blocks, the corresponding improvement is 5% - 6%.
    3. The main contributing factor is the improvement in Block Fetch duration.

    Conclusion

    • Network performance clearly improves by ~%5 for 80% to full cluster adoption - independent of workload.
    • RAM usage is unchanged on 9.0. The slight rise in CPU usage is expected, given improved network performance, and does not pose cause for concern.
    • We have not observed any performance regression being introduced in 9.0.0..

    NB. These benchmarks were performed in the Conway ledger era. As such, they do not cover the one-time performance cost of transitioning from Babbage and enabling the new features of the Conway ledger.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The release benchmarks for 8.12.1 were performed on tag 8.12.0-pre. The patch version bump did not include changes relevant to performance; thus, measurements taken on 8.12.0-pre remain valid.

    ]]>
    + + Michael Karg + https://github.com/mgmeier + + +
    +
    \ No newline at end of file diff --git a/reports/index.html b/reports/index.html new file mode 100644 index 0000000000..1c6235735a --- /dev/null +++ b/reports/index.html @@ -0,0 +1,32 @@ + + + + + +Blog | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of cardano-node:

    • 8.1.2 - the last mainnet release
    • 8.7.0-pre - as an intermediate reference point
    • 8.7.2 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    The observations stated refer to the direct comparison between the 8.1.2 and 8.7.2 versions.

    Resource Usage

    1. Plutus workload, having a lower overall absolute CPU load, exhibits an average increase of 27% in Process CPU usage. Value workload, having a higher overall absolute CPU load, exhibits a near-jitter increase of 1%.
    2. Allocation rates increase by ~8.9MB/s (value workload) and ~12.6MB/s (Plutus workload).
    3. Heap sizes increase by 47% - 54%.
    4. CPU 85% span duration shrinks by ~9.7 slots under value workload, and ~5.8 slots under Pluts workload.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Block Context Acquisition in the forging loop increases by ~10ms.
    2. Mempool snapshotting shows an increase by 16ms under value workload; under Plutus workload, it increases by 3ms.
    3. Ledger ticking improves slightly by 1-2ms.

    The metric 'Slot start to announced' (see in attachements) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block fetch time increases for full blocks by 9%. For small blocks, it improves by 7%.
    2. Time to resend a block after fetching increases by 8% for full blocks, whereas it improves by 2% for small blocks.
    3. Block adoption by a peer takes 12% more time for a full block, but happens faster by 4% for a small block.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    The metric exhibits an increase by ~10% across all centiles for full blocks, whereas it improves by 5-6% for small blocks in the higher (80th and above) centiles.

    Contact

    This is the first time we're publishing, to a wider audience, such benchmarking results. We are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    The relese benchmarks for 8.7.2 were performed on tag 8.7.1-pre, which features identical cardano-node components.

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of cardano-node:

    • 8.7.2 - baseline for previous mainnet release
    • 8.8.0 - an intermediate reference point
    • 8.9.0 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    The observations stated refer to the direct comparison between the 8.7.2 and 8.9.0 versions.

    Resource Usage

    1. Overall CPU usage exhibits a small to moderate (5% - 8%) increase.
    2. Memory usage is very slightly decreased by 1%.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. For full blocks, Mempool Snapshotting improves by 4% (or 3ms).
    2. For small blocks, Self Adoption times improve by 8% (or 4ms).
    3. All other forger metrics do not exhibit significant change.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. For full blocks, Block Fetch duration shows a notable improvement by 10ms (or 3%).

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    End-to-end propagation times on 8.9.0 exhibit a small improvement by 2% across all centiles for full blocks, whereas they remain largely unchanged for small blocks.

    Conclusion

    • The performance changes observed between 8.9.0 and 8.7.2 are only minor - with 8.9.0 slightly improving on 8.7.2. Therefore, we'd expect 8.9.0 Mainnet performance to be akin to 8.7.2.
    • We have demonstrated no performance regression has been introduced in 8.9.0.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. Mainnet release 8.7.3 did not include any performance-related changes; measurements taken on 8.7.2 remain valid.

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.0 - baseline for previous mainnet release
    • 8.9.1 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. We can observe an overall decrease in CPU usage (2% - 4%); only GC CPU usage under value workload increases by 3%.
    2. Under value workload only, Allocation rate is very slightly decreased (1%) with no change to Heap Size.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool Snapshot duration increases slightly by 2ms under value workload.
    2. Self-Adoption time increases by 3ms.
    3. All other forger metrics do not exhibit significant change.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Under value workload only, Block Fetch duration and Fetched to Sending show a slight increase of 2ms each.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    End-to-end propagation times on 8.9.1 exhibit a small increase by 1% - 2% for full blocks, while remaining virtually unchanged for small blocks.

    Conclusion

    • The performance changes measured between 8.9.1 and 8.9.0 are very minor. Mainnnet performance of 8.9.1 is expected to be akin to 8.9.0.
    • We have not observed any performance regression being introduced in 8.9.1.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.1 - baseline from a previous mainnet release
    • 8.9.3 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload, CPU usage increases slightly on 8.9.3: 4% for Process, 3% for Mutator and 8% for GC.
    2. Additionally, Allocation rate and minor GCs increase slightly by 3% each.
    3. Under Plutus workload only, the GC live dataset increases by 10% or 318MB.
    4. CPU 85% spans increase by 14% of slot duration under value workload, whereas they shorten by 5% of slot duration under Plutus workload.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. There are no significant changes to metrics related to block forging.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration improves by 7ms (or 2%) under value workload, and by 4ms (or 3%) under Plutus workload.
    2. Under Plutus workload, Fetched to sending improves by 2ms (or 5%).

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload, cluster adoption times exhibit a minor improvement (1%) up to the 80th centile on 8.9.3.
    2. Under Plutus workload, we can observe a minor improvement overall (1% - 2%), whilst full adoption is unchanged.

    Conclusion

    • The performance changes measured between 8.9.3 and 8.9.1 are very minor, with 8.9.3 improving slightly over 8.9.1.
    • Mainnnet performance of 8.9.3 is expected to be akin to 8.9.1.
    • We have not observed any performance regression being introduced in 8.9.3.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The baseline for 8.9.1 had to be re-established due to changes in the underlying network infrastructure. This means, absolute values may differ from the previous measurements taken from that version.

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.3 - baseline from a previous mainnet release
    • 8.12.1 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload, CPU usage is improved by 2% - 4%, and by 14% for GCs. Under Plutus workload, CPU usage improves only slightly by 1%.
    2. Allocation Rate and Minor GCs improve by 5% and 6% - under Plutus workload, there's a slight improvement of 1%.
    3. RAM usage is reduced by 3%; reduction under Plutus workload is even larger - namely 10%.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool snapshotting improves by 5ms or 7% (3ms or 4% under Plutus workload).
    2. Adoption time on the block producer improves by 4ms or 6% - under value workload only.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration increases slightly by 6ms or 2% (2ms under Plutus workload).
    2. Adoption times on the peers improve slightly by 2ms or 3% (1ms under Plutus workload)

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload / full blocks there are no significant changes to cluster adoption times.
    2. Under Plutus workload / small blocks we can observe a (near-jitter) improvement of 0% - 2% in cluster adoption times.

    Conclusion

    • The performance changes measured between 8.12.1 and 8.9.3 are most distinct in the resource usage footprint - with 8.12.1 improving over 8.9.3.
    • On Mainnnet, 8.12.1 is expected to deliver equal or slightly better performance than 8.9.3 - as well as lowering the Node's resource usage somewhat in doing so.
    • We have not observed any performance regression being introduced in 8.12.1.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The release benchmarks for 8.12.1 were performed on tag 8.12.0-pre. The patch version bump did not include changes relevant to performance; thus, measurements taken on 8.12.0-pre remain valid.

    · 4 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.12.1 - baseline from a previous mainnet release
    • 9.0.0 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Conway era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload Process and Mutator CPU usage are slightly higher on 9.0 - 7% - 8% (4% each under Plutus workload). GC CPU is increased by 11%, but decreases under Putus workload by 3%.
    2. Only under value workload, Allocation Rate and Minor GCs increase by 5% and the live GC dataset grows by 3%. Heap size is constant.
    3. CPU 85% spans are 8% shorter (3% under Plutus workload).

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool Snapshotting and Self Adoption time on the block producer increase very slightly under value workload - 2ms (or 3%) each.
    2. Under Plutus workload, however, a decrease in Self Adoption time by 2ms (or 4%) is the only significant change in the forging loop.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration is 21ms faster (6%) - 7ms or 5% under Plutus workload.
    2. Fetched to Sending increases slightly by 3ms (7%) - only under value workload.
    3. Adoption times on the peers increase slightly by 4ms (5%) - under Plutus workload, however, they are 3ms (6%) faster.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload / full blocks on 9.0, we can observe a 4% - 5% improvement of cluster adoption times in the 80th centile and above.
    2. Under Plutus workload / small blocks, the corresponding improvement is 5% - 6%.
    3. The main contributing factor is the improvement in Block Fetch duration.

    Conclusion

    • Network performance clearly improves by ~%5 for 80% to full cluster adoption - independent of workload.
    • RAM usage is unchanged on 9.0. The slight rise in CPU usage is expected, given improved network performance, and does not pose cause for concern.
    • We have not observed any performance regression being introduced in 9.0.0..

    NB. These benchmarks were performed in the Conway ledger era. As such, they do not cover the one-time performance cost of transitioning from Babbage and enabling the new features of the Conway ledger.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The release benchmarks for 8.12.1 were performed on tag 8.12.0-pre. The patch version bump did not include changes relevant to performance; thus, measurements taken on 8.12.0-pre remain valid.

    + + + + \ No newline at end of file diff --git a/reports/rss.xml b/reports/rss.xml new file mode 100644 index 0000000000..03d9065fa1 --- /dev/null +++ b/reports/rss.xml @@ -0,0 +1,72 @@ + + + + Cardano Development Updates Blog + https://updates.cardano.intersectmbo.org/reports + Cardano Development Updates Blog + Wed, 17 Jul 2024 12:35:56 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + <![CDATA[Benchmarking -- Node 8.7.2]]> + https://updates.cardano.intersectmbo.org/reports/2023-12-performance-8.7.2 + 2023-12-performance-8.7.2 + Wed, 17 Jul 2024 12:35:56 GMT + + Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of cardano-node:

    • 8.1.2 - the last mainnet release
    • 8.7.0-pre - as an intermediate reference point
    • 8.7.2 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    The observations stated refer to the direct comparison between the 8.1.2 and 8.7.2 versions.

    Resource Usage

    1. Plutus workload, having a lower overall absolute CPU load, exhibits an average increase of 27% in Process CPU usage. Value workload, having a higher overall absolute CPU load, exhibits a near-jitter increase of 1%.
    2. Allocation rates increase by ~8.9MB/s (value workload) and ~12.6MB/s (Plutus workload).
    3. Heap sizes increase by 47% - 54%.
    4. CPU 85% span duration shrinks by ~9.7 slots under value workload, and ~5.8 slots under Pluts workload.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Block Context Acquisition in the forging loop increases by ~10ms.
    2. Mempool snapshotting shows an increase by 16ms under value workload; under Plutus workload, it increases by 3ms.
    3. Ledger ticking improves slightly by 1-2ms.

    The metric 'Slot start to announced' (see in attachements) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block fetch time increases for full blocks by 9%. For small blocks, it improves by 7%.
    2. Time to resend a block after fetching increases by 8% for full blocks, whereas it improves by 2% for small blocks.
    3. Block adoption by a peer takes 12% more time for a full block, but happens faster by 4% for a small block.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    The metric exhibits an increase by ~10% across all centiles for full blocks, whereas it improves by 5-6% for small blocks in the higher (80th and above) centiles.

    Contact

    This is the first time we're publishing, to a wider audience, such benchmarking results. We are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    The relese benchmarks for 8.7.2 were performed on tag 8.7.1-pre, which features identical cardano-node components.

    ]]>
    + benchmarking-reports +
    + + <![CDATA[Benchmarking -- Node 8.9.0]]> + https://updates.cardano.intersectmbo.org/reports/2024-03-performance-8.9.0 + 2024-03-performance-8.9.0 + Wed, 17 Jul 2024 12:35:56 GMT + + Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of cardano-node:

    • 8.7.2 - baseline for previous mainnet release
    • 8.8.0 - an intermediate reference point
    • 8.9.0 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    The observations stated refer to the direct comparison between the 8.7.2 and 8.9.0 versions.

    Resource Usage

    1. Overall CPU usage exhibits a small to moderate (5% - 8%) increase.
    2. Memory usage is very slightly decreased by 1%.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. For full blocks, Mempool Snapshotting improves by 4% (or 3ms).
    2. For small blocks, Self Adoption times improve by 8% (or 4ms).
    3. All other forger metrics do not exhibit significant change.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. For full blocks, Block Fetch duration shows a notable improvement by 10ms (or 3%).

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    End-to-end propagation times on 8.9.0 exhibit a small improvement by 2% across all centiles for full blocks, whereas they remain largely unchanged for small blocks.

    Conclusion

    • The performance changes observed between 8.9.0 and 8.7.2 are only minor - with 8.9.0 slightly improving on 8.7.2. Therefore, we'd expect 8.9.0 Mainnet performance to be akin to 8.7.2.
    • We have demonstrated no performance regression has been introduced in 8.9.0.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. Mainnet release 8.7.3 did not include any performance-related changes; measurements taken on 8.7.2 remain valid.

    ]]>
    + benchmarking-reports +
    + + <![CDATA[Benchmarking -- Node 8.9.1]]> + https://updates.cardano.intersectmbo.org/reports/2024-03-performance-8.9.1 + 2024-03-performance-8.9.1 + Wed, 17 Jul 2024 12:35:56 GMT + + Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.0 - baseline for previous mainnet release
    • 8.9.1 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. We can observe an overall decrease in CPU usage (2% - 4%); only GC CPU usage under value workload increases by 3%.
    2. Under value workload only, Allocation rate is very slightly decreased (1%) with no change to Heap Size.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool Snapshot duration increases slightly by 2ms under value workload.
    2. Self-Adoption time increases by 3ms.
    3. All other forger metrics do not exhibit significant change.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Under value workload only, Block Fetch duration and Fetched to Sending show a slight increase of 2ms each.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    End-to-end propagation times on 8.9.1 exhibit a small increase by 1% - 2% for full blocks, while remaining virtually unchanged for small blocks.

    Conclusion

    • The performance changes measured between 8.9.1 and 8.9.0 are very minor. Mainnnet performance of 8.9.1 is expected to be akin to 8.9.0.
    • We have not observed any performance regression being introduced in 8.9.1.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    ]]>
    + benchmarking-reports +
    + + <![CDATA[Benchmarking -- Node 8.9.3]]> + https://updates.cardano.intersectmbo.org/reports/2024-05-performance-8.9.3 + 2024-05-performance-8.9.3 + Wed, 17 Jul 2024 12:35:56 GMT + + Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.1 - baseline from a previous mainnet release
    • 8.9.3 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload, CPU usage increases slightly on 8.9.3: 4% for Process, 3% for Mutator and 8% for GC.
    2. Additionally, Allocation rate and minor GCs increase slightly by 3% each.
    3. Under Plutus workload only, the GC live dataset increases by 10% or 318MB.
    4. CPU 85% spans increase by 14% of slot duration under value workload, whereas they shorten by 5% of slot duration under Plutus workload.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. There are no significant changes to metrics related to block forging.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration improves by 7ms (or 2%) under value workload, and by 4ms (or 3%) under Plutus workload.
    2. Under Plutus workload, Fetched to sending improves by 2ms (or 5%).

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload, cluster adoption times exhibit a minor improvement (1%) up to the 80th centile on 8.9.3.
    2. Under Plutus workload, we can observe a minor improvement overall (1% - 2%), whilst full adoption is unchanged.

    Conclusion

    • The performance changes measured between 8.9.3 and 8.9.1 are very minor, with 8.9.3 improving slightly over 8.9.1.
    • Mainnnet performance of 8.9.3 is expected to be akin to 8.9.1.
    • We have not observed any performance regression being introduced in 8.9.3.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The baseline for 8.9.1 had to be re-established due to changes in the underlying network infrastructure. This means, absolute values may differ from the previous measurements taken from that version.

    ]]>
    + benchmarking-reports +
    + + <![CDATA[Benchmarking -- Node 8.12.1]]> + https://updates.cardano.intersectmbo.org/reports/2024-06-performance-8.12.1 + 2024-06-performance-8.12.1 + Wed, 17 Jul 2024 12:35:56 GMT + + Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.3 - baseline from a previous mainnet release
    • 8.12.1 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload, CPU usage is improved by 2% - 4%, and by 14% for GCs. Under Plutus workload, CPU usage improves only slightly by 1%.
    2. Allocation Rate and Minor GCs improve by 5% and 6% - under Plutus workload, there's a slight improvement of 1%.
    3. RAM usage is reduced by 3%; reduction under Plutus workload is even larger - namely 10%.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool snapshotting improves by 5ms or 7% (3ms or 4% under Plutus workload).
    2. Adoption time on the block producer improves by 4ms or 6% - under value workload only.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration increases slightly by 6ms or 2% (2ms under Plutus workload).
    2. Adoption times on the peers improve slightly by 2ms or 3% (1ms under Plutus workload)

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload / full blocks there are no significant changes to cluster adoption times.
    2. Under Plutus workload / small blocks we can observe a (near-jitter) improvement of 0% - 2% in cluster adoption times.

    Conclusion

    • The performance changes measured between 8.12.1 and 8.9.3 are most distinct in the resource usage footprint - with 8.12.1 improving over 8.9.3.
    • On Mainnnet, 8.12.1 is expected to deliver equal or slightly better performance than 8.9.3 - as well as lowering the Node's resource usage somewhat in doing so.
    • We have not observed any performance regression being introduced in 8.12.1.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The release benchmarks for 8.12.1 were performed on tag 8.12.0-pre. The patch version bump did not include changes relevant to performance; thus, measurements taken on 8.12.0-pre remain valid.

    ]]>
    + benchmarking-reports +
    + + <![CDATA[Benchmarking -- Node 9.0.0]]> + https://updates.cardano.intersectmbo.org/reports/2024-07-performance-9.0.0 + 2024-07-performance-9.0.0 + Wed, 17 Jul 2024 12:35:56 GMT + + Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.12.1 - baseline from a previous mainnet release
    • 9.0.0 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Conway era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload Process and Mutator CPU usage are slightly higher on 9.0 - 7% - 8% (4% each under Plutus workload). GC CPU is increased by 11%, but decreases under Putus workload by 3%.
    2. Only under value workload, Allocation Rate and Minor GCs increase by 5% and the live GC dataset grows by 3%. Heap size is constant.
    3. CPU 85% spans are 8% shorter (3% under Plutus workload).

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool Snapshotting and Self Adoption time on the block producer increase very slightly under value workload - 2ms (or 3%) each.
    2. Under Plutus workload, however, a decrease in Self Adoption time by 2ms (or 4%) is the only significant change in the forging loop.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration is 21ms faster (6%) - 7ms or 5% under Plutus workload.
    2. Fetched to Sending increases slightly by 3ms (7%) - only under value workload.
    3. Adoption times on the peers increase slightly by 4ms (5%) - under Plutus workload, however, they are 3ms (6%) faster.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload / full blocks on 9.0, we can observe a 4% - 5% improvement of cluster adoption times in the 80th centile and above.
    2. Under Plutus workload / small blocks, the corresponding improvement is 5% - 6%.
    3. The main contributing factor is the improvement in Block Fetch duration.

    Conclusion

    • Network performance clearly improves by ~%5 for 80% to full cluster adoption - independent of workload.
    • RAM usage is unchanged on 9.0. The slight rise in CPU usage is expected, given improved network performance, and does not pose cause for concern.
    • We have not observed any performance regression being introduced in 9.0.0..

    NB. These benchmarks were performed in the Conway ledger era. As such, they do not cover the one-time performance cost of transitioning from Babbage and enabling the new features of the Conway ledger.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The release benchmarks for 8.12.1 were performed on tag 8.12.0-pre. The patch version bump did not include changes relevant to performance; thus, measurements taken on 8.12.0-pre remain valid.

    ]]>
    + benchmarking-reports +
    +
    +
    \ No newline at end of file diff --git a/reports/tags/benchmarking-reports/index.html b/reports/tags/benchmarking-reports/index.html new file mode 100644 index 0000000000..c2df4acf90 --- /dev/null +++ b/reports/tags/benchmarking-reports/index.html @@ -0,0 +1,32 @@ + + + + + +6 posts tagged with "benchmarking-reports" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    6 posts tagged with "benchmarking-reports"

    View All Tags

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of cardano-node:

    • 8.1.2 - the last mainnet release
    • 8.7.0-pre - as an intermediate reference point
    • 8.7.2 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    The observations stated refer to the direct comparison between the 8.1.2 and 8.7.2 versions.

    Resource Usage

    1. Plutus workload, having a lower overall absolute CPU load, exhibits an average increase of 27% in Process CPU usage. Value workload, having a higher overall absolute CPU load, exhibits a near-jitter increase of 1%.
    2. Allocation rates increase by ~8.9MB/s (value workload) and ~12.6MB/s (Plutus workload).
    3. Heap sizes increase by 47% - 54%.
    4. CPU 85% span duration shrinks by ~9.7 slots under value workload, and ~5.8 slots under Pluts workload.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Block Context Acquisition in the forging loop increases by ~10ms.
    2. Mempool snapshotting shows an increase by 16ms under value workload; under Plutus workload, it increases by 3ms.
    3. Ledger ticking improves slightly by 1-2ms.

    The metric 'Slot start to announced' (see in attachements) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block fetch time increases for full blocks by 9%. For small blocks, it improves by 7%.
    2. Time to resend a block after fetching increases by 8% for full blocks, whereas it improves by 2% for small blocks.
    3. Block adoption by a peer takes 12% more time for a full block, but happens faster by 4% for a small block.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    The metric exhibits an increase by ~10% across all centiles for full blocks, whereas it improves by 5-6% for small blocks in the higher (80th and above) centiles.

    Contact

    This is the first time we're publishing, to a wider audience, such benchmarking results. We are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    The relese benchmarks for 8.7.2 were performed on tag 8.7.1-pre, which features identical cardano-node components.

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 3 different versions of cardano-node:

    • 8.7.2 - baseline for previous mainnet release
    • 8.8.0 - an intermediate reference point
    • 8.9.0 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    The observations stated refer to the direct comparison between the 8.7.2 and 8.9.0 versions.

    Resource Usage

    1. Overall CPU usage exhibits a small to moderate (5% - 8%) increase.
    2. Memory usage is very slightly decreased by 1%.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. For full blocks, Mempool Snapshotting improves by 4% (or 3ms).
    2. For small blocks, Self Adoption times improve by 8% (or 4ms).
    3. All other forger metrics do not exhibit significant change.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. For full blocks, Block Fetch duration shows a notable improvement by 10ms (or 3%).

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    End-to-end propagation times on 8.9.0 exhibit a small improvement by 2% across all centiles for full blocks, whereas they remain largely unchanged for small blocks.

    Conclusion

    • The performance changes observed between 8.9.0 and 8.7.2 are only minor - with 8.9.0 slightly improving on 8.7.2. Therefore, we'd expect 8.9.0 Mainnet performance to be akin to 8.7.2.
    • We have demonstrated no performance regression has been introduced in 8.9.0.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. Mainnet release 8.7.3 did not include any performance-related changes; measurements taken on 8.7.2 remain valid.

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.0 - baseline for previous mainnet release
    • 8.9.1 - the next mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. We can observe an overall decrease in CPU usage (2% - 4%); only GC CPU usage under value workload increases by 3%.
    2. Under value workload only, Allocation rate is very slightly decreased (1%) with no change to Heap Size.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool Snapshot duration increases slightly by 2ms under value workload.
    2. Self-Adoption time increases by 3ms.
    3. All other forger metrics do not exhibit significant change.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Under value workload only, Block Fetch duration and Fetched to Sending show a slight increase of 2ms each.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    End-to-end propagation times on 8.9.1 exhibit a small increase by 1% - 2% for full blocks, while remaining virtually unchanged for small blocks.

    Conclusion

    • The performance changes measured between 8.9.1 and 8.9.0 are very minor. Mainnnet performance of 8.9.1 is expected to be akin to 8.9.0.
    • We have not observed any performance regression being introduced in 8.9.1.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.1 - baseline from a previous mainnet release
    • 8.9.3 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload, CPU usage increases slightly on 8.9.3: 4% for Process, 3% for Mutator and 8% for GC.
    2. Additionally, Allocation rate and minor GCs increase slightly by 3% each.
    3. Under Plutus workload only, the GC live dataset increases by 10% or 318MB.
    4. CPU 85% spans increase by 14% of slot duration under value workload, whereas they shorten by 5% of slot duration under Plutus workload.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. There are no significant changes to metrics related to block forging.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration improves by 7ms (or 2%) under value workload, and by 4ms (or 3%) under Plutus workload.
    2. Under Plutus workload, Fetched to sending improves by 2ms (or 5%).

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload, cluster adoption times exhibit a minor improvement (1%) up to the 80th centile on 8.9.3.
    2. Under Plutus workload, we can observe a minor improvement overall (1% - 2%), whilst full adoption is unchanged.

    Conclusion

    • The performance changes measured between 8.9.3 and 8.9.1 are very minor, with 8.9.3 improving slightly over 8.9.1.
    • Mainnnet performance of 8.9.3 is expected to be akin to 8.9.1.
    • We have not observed any performance regression being introduced in 8.9.3.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The baseline for 8.9.1 had to be re-established due to changes in the underlying network infrastructure. This means, absolute values may differ from the previous measurements taken from that version.

    · 3 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.9.3 - baseline from a previous mainnet release
    • 8.12.1 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Babbage era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload, CPU usage is improved by 2% - 4%, and by 14% for GCs. Under Plutus workload, CPU usage improves only slightly by 1%.
    2. Allocation Rate and Minor GCs improve by 5% and 6% - under Plutus workload, there's a slight improvement of 1%.
    3. RAM usage is reduced by 3%; reduction under Plutus workload is even larger - namely 10%.

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool snapshotting improves by 5ms or 7% (3ms or 4% under Plutus workload).
    2. Adoption time on the block producer improves by 4ms or 6% - under value workload only.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration increases slightly by 6ms or 2% (2ms under Plutus workload).
    2. Adoption times on the peers improve slightly by 2ms or 3% (1ms under Plutus workload)

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload / full blocks there are no significant changes to cluster adoption times.
    2. Under Plutus workload / small blocks we can observe a (near-jitter) improvement of 0% - 2% in cluster adoption times.

    Conclusion

    • The performance changes measured between 8.12.1 and 8.9.3 are most distinct in the resource usage footprint - with 8.12.1 improving over 8.9.3.
    • On Mainnnet, 8.12.1 is expected to deliver equal or slightly better performance than 8.9.3 - as well as lowering the Node's resource usage somewhat in doing so.
    • We have not observed any performance regression being introduced in 8.12.1.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The release benchmarks for 8.12.1 were performed on tag 8.12.0-pre. The patch version bump did not include changes relevant to performance; thus, measurements taken on 8.12.0-pre remain valid.

    · 4 min read
    Michael Karg

    Setup

    As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:

    • 8.12.1 - baseline from a previous mainnet release
    • 9.0.0 - the current mainnet release

    For each version, we're gathering various metrics under 2 different workloads:

    1. value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
    2. Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.

    Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs +were performed in the Conway era.

    Observations

    These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.

    Resource Usage

    1. Under value workload Process and Mutator CPU usage are slightly higher on 9.0 - 7% - 8% (4% each under Plutus workload). GC CPU is increased by 11%, but decreases under Putus workload by 3%.
    2. Only under value workload, Allocation Rate and Minor GCs increase by 5% and the live GC dataset grows by 3%. Heap size is constant.
    3. CPU 85% spans are 8% shorter (3% under Plutus workload).

    Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.

    Forging Loop

    1. Mempool Snapshotting and Self Adoption time on the block producer increase very slightly under value workload - 2ms (or 3%) each.
    2. Under Plutus workload, however, a decrease in Self Adoption time by 2ms (or 4%) is the only significant change in the forging loop.

    The metric 'Slot start to announced' (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.

    Peer propagation

    1. Block Fetch duration is 21ms faster (6%) - 7ms or 5% under Plutus workload.
    2. Fetched to Sending increases slightly by 3ms (7%) - only under value workload.
    3. Adoption times on the peers increase slightly by 4ms (5%) - under Plutus workload, however, they are 3ms (6%) faster.

    End-to-end propagation

    This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.

    1. Under value workload / full blocks on 9.0, we can observe a 4% - 5% improvement of cluster adoption times in the 80th centile and above.
    2. Under Plutus workload / small blocks, the corresponding improvement is 5% - 6%.
    3. The main contributing factor is the improvement in Block Fetch duration.

    Conclusion

    • Network performance clearly improves by ~%5 for 80% to full cluster adoption - independent of workload.
    • RAM usage is unchanged on 9.0. The slight rise in CPU usage is expected, given improved network performance, and does not pose cause for concern.
    • We have not observed any performance regression being introduced in 9.0.0..

    NB. These benchmarks were performed in the Conway ledger era. As such, they do not cover the one-time performance cost of transitioning from Babbage and enabling the new features of the Conway ledger.

    Contact

    As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.

    We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.

    Attachments

    Full report for value-only workload, PDF downloadable here.

    Full report for Plutus workload, PDF downloadable here.

    NB. The release benchmarks for 8.12.1 were performed on tag 8.12.0-pre. The patch version bump did not include changes relevant to performance; thus, measurements taken on 8.12.0-pre remain valid.

    + + + + \ No newline at end of file diff --git a/reports/tags/index.html b/reports/tags/index.html new file mode 100644 index 0000000000..c0d5dfd787 --- /dev/null +++ b/reports/tags/index.html @@ -0,0 +1,26 @@ + + + + + +Tags | Cardano Development Updates + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/rss.xml b/rss.xml new file mode 100644 index 0000000000..d8bbea4a64 --- /dev/null +++ b/rss.xml @@ -0,0 +1,6988 @@ + + + + Cardano Updates Feed + https://updates.cardano.intersectmbo.org/ + Regular updates from Cardano Development Teams + Wed, 17 Jul 2024 00:00:00 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-07-17-hydra + 2024-07-17-hydra + Wed, 17 Jul 2024 00:00:00 GMT + + High-level summary

    This week, the Hydra team made significant progress on incremental decommits +by closing the last gaps and cleaning up the specification. They collected +scenarios and prepared for incremental commits, updated dependencies for +compatibility with cardano-node 9.0.0, and continued tidying up documentation. +Work continued on an easy spin-up of the getting-started demo via +process-compose. Additionally, the team onboarded a new contributor and held +an early design meeting about payment channels and Blockfrost. They also +refined the SDK wallet idea.

    What did the team achieve?

    • Incremental decommit progress: closed last gaps, cleanup specification #1483
    • Collected scenarios and preparing for incremental commit #1484
    • Updated dependencies, compatibility cardano-node 9.0.0 #1481
    • Continued documentation tidyups
    • WIP easy spin-up of the getting-started demo via process-compose #1503
    • Onboarded new contributor
    • Early design meeting about payment channels and Blockfrost #1305
    • SDK wallet idea refinement #1509

    What's next?

    • Merge and release incremental decommit
    • Continued work on incremental commit
    • Support Hydra demo at Rare Evo
    • Have a Head open on preview to see it working through the upcoming hard fork
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-07-17-mithril + 2024-07-17-mithril + Wed, 17 Jul 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team released the new distribution 2428.0, which includes support for Cardano node version 9.0.0, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks by calibrating the signature parameters for mainnet, fixing a bug preventing the signature of the last block advertised as certified, optimizing a part of the artifact production that was blocking the certification, and starting removing the code reading transactions from the immutable files.

    Finally, the team started working on the certification of the Cardano stake distribution and continued redacting a CIP for the diffusion of Mithril signatures through the Cardano network.

    Low level overview

    • Released the new distribution 2428.0
    • Completed the issue Release 2428 distribution #1810
    • Completed the issue Calibrate Cardano transaction signature parameters #1814
    • Completed the issue Non blocking artifact production in aggregator #1792
    • Completed the issue Cardano transaction importer does not import the last block advertised as certified #1785
    • Completed the issue A recorded but non certified Cardano transaction creates an error in prover #1819
    • Completed the issue Signer make test command fails #1816
    • Completed the issue Document Prometheus metrics and Grafana Dahsboard for signer #1834
    • Completed the issue Explorer keeps previous Cardano transaction error #1818
    • Worked on the issue Implement signable and artifacts builders for Cardano Stake Distribution #1832
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Cleanup Immutable File in Cardano transaction #1825
    • Worked on the issue Upgrade testing-sanchonet for respin with Cardano 9.0.0 #1822
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2024-07-10-consensus + 2024-07-10-consensus + Wed, 10 Jul 2024 00:00:00 GMT + + High level summary
    • Assisted with Node release 9.0:
      • Performed security audits, engaged with other teams, implemented improvements, and released Consensus packages.
    • We are now running additional NoThunks tests, which help us safeguard against memory leaks in the node.
    • Reviewed Milestone 13 of Genesis, which improves the code documentation of Genesis, and implements some fixes and optimizations.
    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-07-10-mithril + 2024-07-10-mithril + Wed, 10 Jul 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team worked on supporting Cardano node version 9.0.0 and started working on a new Mithril distribution. They also continued implementing the certification of Cardano transactions in Mithril networks. They fixed some bugs blocking the REST API during transactions import, causing resource exhaustion on the aggregator Cardano node, and creating some exceptions in the explorer. They also kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

    Finally, the team worked on enhancing the artifact production in the aggregator to avoid blocking the certification and finalized enforcing the linting of all the files in the repository with the CI.

    Low level overview

    • Completed the issue Upgrade Cardano node 9.0.0 #1787
    • Completed the issue Aggregator/Signer preload transactions when Cardano transactions certification is not activated #1782
    • Completed the issue Explorer does not handle invalid transaction hashes #1784
    • Completed the issue Cardano transactions import blocks aggregator and signer #1797
    • Completed the issue Resource exhausted on Cardano node socket #1803
    • Completed the issue Certificate pending route overwhelms the Cardano node in aggregator #1804
    • Completed the issue Optimize Cardano transaction prover performances with parallelization #1756
    • Completed the issue Lint Markdown/JavaScript files in repository #1754
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Release 2428 distribution #1810
    • Worked on the issue Non blocking artifact production in aggregator #1792
    • Worked on the issue Cardano transaction importer does not import the last block advertised as certified #1785
    ]]>
    + mithril +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2024-07-08-network + 2024-07-08-network + Mon, 08 Jul 2024 00:00:00 GMT + + High-level overview of sprint 65

    Karl Knutsson (CF) fixed a bug which prevented a node using bootstrap peers +to sync using them, for a more detailed description see ouroboros-network#4899.

    Earlier this year we fixed bugs in IOSimPOR which prevent us from using it in +ouroboros-network (io-sim#153, io-sim#159); since +ouroboros-network#4872 was merged we have a large number of tests that are +using IOSimPOR's schedule exploration. In the last sprint we fixed +some bugs discovered by IOSimPOR in ouroboros-network:

    We continued working on new tx-submission logic: ouroboros-network#3311 as +well as on Genesis. The work on Genesis is split in a few PRs which are +currently in review process:

    • Big Ledger Peer Targets for Genesis - ouroboros-network#4832
    • Feed peer selection governor with big ledger peers obtained from a snapshot - ouroboros-network#4850
    • Introduction of serialization instances in support of ledger peer snapshot - ouroboros-network#4851
    • Verification of big ledger peer snapshot file - [ouroboros-network#4888]

    High-level overview of sprint 64

    Karl Knutsson (CF) modified peer sharing behaviour to not share peers whith +which connections failed, see ouroboros-network#4883 for more details.

    We fixed inbound governor counters tracer, see ouroboros-network#4885.

    ]]>
    + network +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2024-07-05-sre + 2024-07-05-sre + Fri, 05 Jul 2024 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 9.0.0 is now deployed to mainnet, preprod, preview, private and +shelley-qa environments. The last several weeks have been very busy with +pre-release and release activity and environment upgrades involving +cardano-node versions 8.9.3, 8.9.4, 8.12.0-pre, 8.12.1, 8.12.2 and +now 9.0.0 as of this update.

    • Sanchonet environment remains pinned at cardano-node version 8.11.0-pre until +the next respin which will support 9.0.0 or greater.

    • Ogmios service and package options were added to cardano-parts.

    • Four documents were added to cardano-playground to better explain some +operational procedures: debugging of peer-to-peer connections; governance +voting with the playground stakepools; faucet setup; faucet pool +de-delegation. Found at: +docs/explain

    • One document was added to cardano-mainnet to explain cardano-snapshot +operations. Found at: +docs/explain

    • Private chain was stopped and re-spun with 2 hr epochs for testing.

    • Hydra and performance cluster machines had their configuration updated to be +more robust to transient nix store caches outages which may re-occur in the +future.

    • All machines in cardano-playground and cardano-mainnet clusters were updated +to nixpkgs 24.05.

    Lower level summary

    Cardano-mainnet

    • Sets cardano-node to 8.12.2 as well as usage of a custom gc delay parameter +branch for bootstrap nodes. Updates all machines to nixpkgs to 24.05 with +openssh 9.8p1. Adds one new explainer readme document, new alerts and various +script, recipe, and other improvements. See the PR description for more +details: +cardano-mainnet-pull-16

    Cardano-ops

    • Bumps to cardano-node 9.0.0, adds coredump metrics, adds OOM/coredump +alerting, adjusts systemd stop timeout to avoid some unneccesary chain +replays: +cardano-ops-compare

    Cardano-parts

    • Sets cardano-node (release) and cardano-node-ng (pre-release) versions to +8.12.2 and cardano-db-sync-ng to sancho-5-0-0. Updates nixpkgs to +24.05. Includes nixosModule, dashboard, metric, alert and recipe +improvements and new features. More detail is available in the PR +description: +cardano-parts-pull-43

    Cardano-perf

    • Adjusts nix config to avoid R2 500 errors on transient cache problems and +adds explorer to perf class: +cardano-perf-compare

    Cardano-playground

    • Sets cardano-node (release) and cardano-node-ng (pre-release) versions to +8.12.2 and cardano-db-sync-ng to sancho-5-0-0. Updates all machines to +nixpkgs to 24.05 with openssh 9.8p1. Respins private chain and KES +rotates multiple chains. Adds four new explainer readme documents, new alerts +and various script, recipe, and other improvements. See the PR description +for more details: +cardano-playground-pull-27

    Iohk-nix

    Ops-lib

    • Updates deployers with recent nixpkgs, nix, refactors to preserve legacy +nixops usage, adds starship and fzf: +ops-lib-pull-134

    • Bumps openssh to 9.8p1 +ops-lib-pull-135

    ]]>
    + sre +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-07-03-ledger + 2024-07-03-ledger + Wed, 03 Jul 2024 00:00:00 GMT + + High level summary

    This period we added some last minute changes that were necessary for improving resilience +and safety of Conway implementation:

    • Authorization of hot credentials for constitutional committee members is now only possible +for cold credentials that are present in the ledger state, either in the current committee +or in one of the proposals.
    • Voting is restricted to entities that are present in the ledger state
    • DRep votes will be removed whenever DRep unregisters
    • Pricing model for the size of reference scripts was changed from linear to +exponential. Moreover, extra limits on the total size of reference scripts being used +have been put in place.

    Low level summary

    Conway

    • pull-4430 - CostModel json parsing
    • pull-4438 - Fix UTXOW era in diagrams for Conway
    • pull-4443 - Make reference scripts fee grow exponentially with size
    • pull-4436 - Authorize known cc members only
    • pull-4433 - Improve resilience of future PParams
    • pull-4453 - Tx refscript size check
    • pull-4452 - Prevent votes for non existent entities
    • pull-4450 - BBODY refscript size check

    Testing

    • pull-4417 - constrained-generators: use consistent warning pragma
    • pull-4431 - constrained-generators: fix flakyness in set generator
    • pull-4312 - Convert AlonzoValidTxUTXOW to ImpTest (Part 1)
    • pull-4386 - Increase the size of the committee for testing
    • pull-4425 - Conformance test plumbing: EPOCH
    • pull-4442 - Update executable-spec SRP
    • pull-4405 - Add more scripts to alonzo utxosspec
    • pull-4445 - Conformance tests plumbing: NEWEPOCH
    • pull-4460 - Remove unnecessary allocation in non-integral reference code
    • pull-4457 - Conformance: POOL: Translate and adjust

    Infrastructure and releasing

    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-07-03-mithril + 2024-07-03-mithril + Wed, 03 Jul 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They completed the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas and worked on fixing some bugs occurring during the warmup phase of the signer and aggregator. They also worked on supporting the new Cardano node version 8.12 and kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

    Finally, the team fixed a bug that prevented the parsing of some blocks in the SanchoNet network and made some optimizations on the databases of the signer and aggregator.

    Low level overview

    • Completed the issue Import Cardano transactions with ChainReader #1705
    • Completed the issue Cardano signatures are not produced on testing-sanchonet #1750
    • Completed the issue SQLite WAL files are not truncated in signer and aggregator #1707
    • Completed the issue Conditional embedding of Cardano CLI in Docker images #1725
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Optimize Cardano transaction prover performances with parallelization #1756
    • Worked on the issue Upgrade Cardano node 8.12.2 #1787
    • Worked on the issue Aggregator/Signer preload transactions when Cardano transactions certification is not activated #1782
    • Worked on the issue Cardano transaction importer does not import the last block advertised as certified #1785
    • Worked on the issue Lint Markdown/JavaScript files in repository #1754
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2024-06-26-consensus + 2024-06-26-consensus + Wed, 26 Jun 2024 00:00:00 GMT + + High level summary
    • Supported debugging activities related to bootstrap nodes.
    • Merged various improvements to the db-X tools; in particular, db-truncater (which is used regularly by community members on sanchonet) got much faster.
    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-06-26-mithril + 2024-06-26-mithril + Wed, 26 Jun 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team released the threat modeling explainer for the documentation website. They also continued implementing the certification of Cardano transactions in Mithril networks and the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas. Additionally, the team started redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

    Finally, they fixed a bug that prevented the verification of the transactions included in the last certified block and improved the WASM client's documentation.

    Low level overview

    • Completed the issue Threat modeling and risk analysis #1350
    • Completed the issue Implement database connection pooling for Cardano transaction repository #1760
    • Completed the issue Import Cardano transactions by sequences of block ranges #1766
    • Completed the issue Limit Cardano transactions prover input #1757
    • Completed the issue Transactions of the block number in the artifact are never certified by the prover #1762
    • Completed the issue Add missing pre-requisite to build WASM client #1753
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Optimize Cardano transaction prover performances with parallelization #1756
    • Worked on the issue Cardano signatures are not produced on testing-sanchonet #1750
    • Worked on the issue Lint Markdown/JavaScript files in repository #1754
    ]]>
    + mithril +
    + + <![CDATA[Performance & Tracing Update]]> + https://updates.cardano.intersectmbo.org/2024-06-25-performance-and-tracing + 2024-06-25-performance-and-tracing + Tue, 25 Jun 2024 00:00:00 GMT + + High level summary
    • Benchmarking: Release benchmarks for Node 8.12.0; DRep benchmarks with 100k DReps.
    • Development: Merged a performance fix on 8.11; kicked off development of governance action workload.
    • Workbench: Adjusted automations to latest 8.12 Conway features and Plutus cost model; implementation of CIP-69 and CIP-117 for our tooling is in validation phase.
    • Tracing: Work on metrics naming ongoing. Factoring out RTView component is completed and has entered testing.
    • IOI Tech Meetup: Our team contributed two presentations at the meetup in Zurich; worked on community report of UTxO scaling benchmarks.

    Low level overview

    Benchmarking

    We've run and analyzed a full set of release benchmarks for Node versions 8.12.0. In comparison with the latest mainnet release 8.9.3, we could not observe any regressions. In fact, 8.12.0 was able to deliver equal network +performance at a slightly reduced resource cost - both for CPU and memory.

    Another benchmark of the Conway ledger with large amounts of DReps has been performed. This time, 100000 DReps were chosen - this amount aims to simulate a scenario where lots of self-delegation takes place. While a performance +impact is observable in this instance, we can still see that the number of DReps scales well overall, and poses no concern for network peformance.

    Development

    We have contributed and merged a performance fix on 8.11 which adresses a regressing metric in the forging loop. The regression was only observable under specific conditions. Benchmarks on 8.12 +have already confirmed the fix to be successful.

    We've kicked off governance action workloads for benchmarking. This will be an entirely new workload type for Conway era, targeting performance measurements of its decentralized decision making process. The workload will feature +registering proposals, acting as multiple DReps to vote on active proposals, vote tallying and proposal enactment. We're very grateful for the Ledger team's helpful support so far in creating a workload design for benchmarking - one that evenly stresses +the network over extended periods of time.

    Workbench

    The workbench automations have been upgraded to handle Node 8.12 and the corresponding integrations of Cardano API and CLI.

    Furthermore, we've updated to the latest PlutusV3 costmodel in our benchmarks - as well as implemented CIP-69 and CIP-117 for all our PlutusV3 benchmarking scripts, pending validation by the Plutus team.

    Tracing

    The work on aligning of metrics naming and semantics of new and legacy tracing is ongoing. Additionally, we're adding a handful of metrics to the new tracing system which currently exist in legacy tracing only.

    Factoring out the RTView ("real-time view") component of cardano-tracer in the new tracing system has finished. This includes a considerable refactoring of cardano-tracer's codebase, so that we're currently running test on the new codebase. Isolating +RTView is due to its being in prototype stage for too long, and the design decisions taken. In the short term, this will make several package dependencies optional, which have become troublesome for CI, as well as making cardano-tracer more lightweight. +RTView remains as an opt-in.

    IOI Tech Meetup

    Our entire team traveled to Zurich, Switzerland to attend ZuriHac'24 and the IOI Tech Meetup. It was fantastic to meet everyone in person, and we all had an amazing and very productive time. A big Thank You to everyone involved in making that happen, and making it a success.

    We contributed two presentations for the meetup: a thourough introduction of the new tracing system aimed at developers - as it's not tailored exclusively to cardano-node, but can be used in other (Haskell) services as well. And secondly, +an overview over the benchmarking framework based on Quantitative Timeliness Agreements which we're building - as well as a show-and-tell of our prototype, implementing part of said framework. We're grateful for the great interest and feedback from all +the participants.

    Last not least, we worked on creating a community report of the UTxO scaling benchmarks performed during March and April - to be released soon.

    ]]>
    + performance-tracing +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-06-19-ledger + 2024-06-19-ledger + Wed, 19 Jun 2024 00:00:00 GMT + + High level summary

    Major milestone was reached this period. We've implemented +CIP-0069 that improves +PlutusV3 functionality by making spending datums optional and enforcing all scripts to +have exactly one argument. This feature allows for spending scripts to be usable for other +purposes, like minting for example.

    Couple of important bugs have been fixed:

    • Script execution for certificates with the same plutus script did not execute correctly.
    • Prevent delegation to a non-existent pool.

    With this feature complete and a few bug fixes we were also able to mark Conway era and +CIP-1694 as feature +complete and ready for release. Naturally, testing of Conway era will continue all the way +into the hard fork.

    Low level summary

    Conway

    • pull-4374 - CIP-0069
    • pull-4394 - Fix Certifying Redeemer issue
    • pull-4400 - Check that the pool being delegated to exists for ConwayDelegCert
    • pull-4409 - Update to plutus-ledger-api-1.30

    Testing

    • pull-4384 - Re-enabled Full NewEpochstate test
    • pull-4397 - Add a lens to HasSubState
    • pull-4399 - New simple examples for maps
    • pull-4403 - constrained-generators: Add lookup_ for maps
    • pull-4414 - constrained-generators: Hotfix failing test
    • pull-4411 - constrained-generators: introduce a hook for naming variables

    Infrastructure and releasing

    • pull-4424 - GHA: Downgrade the version of actions/upload-artifact
    • pull-4426 - Take care of all compiler warnings for GHC-9.8
    • pull-4407 - Change the default ghc version to 9.6.5
    • pull-4416 - Bump urllib3 from 1.26.18 to 1.26.19 in /doc
    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-06-19-mithril + 2024-06-19-mithril + Wed, 19 Jun 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They implemented a warmup strategy for the signer and aggregator to begin importing transactions as early as possible, thus minimizing the impact of network activation on certification. They also significantly improved the throughput of the prover route of the aggregator by addressing database access bottlenecks. Additionally, the team made progress on low-latency certification by completing the handling of chain rollbacks and nearly completing the retrieval of transactions using the chain sync mini-protocol and Pallas.

    Finally, they made final modifications to the threat modeling explainer for the documentation website, which will be released shortly, and worked on a bug that occurs when parsing some blocks of the SanchoNet network.

    Low level overview

    • Completed the issue Handle rollbacks in Cardano transactions #1724
    • Completed the issue Pooled resources should be reset when given back #1743
    • Completed the issue Lock signature of signed entity types during warm-up #1693
    • Completed the issue Warmup import Cardano transactions at node startup #1692
    • Completed the issue Build, test and package arm64 binaries in CI #1751
    • Worked on the issue Threat modeling and risk analysis #1350
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue Import Cardano transactions by sequences of block ranges #1766
    • Worked on the issue Implement database connection pooling for Cardano transaction repository #1760
    • Worked on the issue Cardano signatures are not produced on testing-sanchonet #1750
    ]]>
    + mithril +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-06-12-mithril + 2024-06-12-mithril + Wed, 12 Jun 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team released the new distribution 2423.0, which includes the removal of the snaphot command of the client CLI, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks and improved the throughput of the prover route of the aggregator by fixing some bottlenecks in the Merkle proof computation. Additionally, the team made progress on low-latency certification by working on the retrieval of the transactions with the chain sync mini-protocol and Pallas, as well as the handling of rollbacks of the chain.

    Finally, they kept working on the threat modeling explainer for the documentation website and provided support for multiple TLS implementations in the client library thanks to a community contribution.

    Low level overview

    • Released the new distribution 2423.0
    • Publication of a dev blog post about the removed Mithril client CLI 'snapshot' command
    • Completed the issue Client verification fails with an already stored but non certified yet transaction #1719
    • Completed the issue Computation of Merkle proof has bottleneck with multiple transactions #1730
    • Completed the issue Automatic rollback on SQL transactions #1741
    • Completed the issue Allow the underlying TLS implementation to be selectable when using a library. #1737
    • Completed the issue Release 2423 distribution #1695
    • Completed the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    • Worked on the issue Handle rollbacks in Cardano transactions #1724
    • Worked on the issue Pooled resources should be reset when given back #1743
    • Worked on the issue Threat modeling and risk analysis #1350
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    ]]>
    + mithril +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-06-10-hydra + 2024-06-10-hydra + Mon, 10 Jun 2024 00:00:00 GMT + + High-level Summary

    This sprint, the Hydra team updated the node to be compatible with cardano-node 8.11-pre. We continued work on increment decommits, investigating adversarial attacks on the smart contract and preparing it to be merged. We also discussed options for the incremental commit work, including designs for a hydra-ledger.

    Next sprint we aim to merge incremental decommits and make further progress on the incremental commit design.

    What did the team achieve this sprint?

    • Update to cardano-node 8.11-pre #1439
    • Allow committing internal wallet utxos #1442
    • Rewrite introduction section and fknown issues section. #1451
    • Make specification editing in markdown possible #1187
    • Fix ignored hydra-plutus tests #1458
    • Re-open internal head with blueprint commits.

    What are the goals of the next sprint?

    • Incremental decommit #1057
    • Make progress on the design for incremental commit #199
    • Test combinations of decrement/close/fanout #1390
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-06-05-ledger + 2024-06-05-ledger + Wed, 05 Jun 2024 00:00:00 GMT + + High level summary

    This time around we continued on testing the Conway era and improving our conformance +tests. Thanks to this extensive testing we found and fixed a few more bugs in the Conway +implementation. We fixed bugs related to DRep expiry and the choice of correct threshold for +the committee voting. One important feature that was implemented is ignoring the +minimun committee size during the bootstrap phase, in order to avoid a deadlock situation in +case that enough committeee members were to resign. We've also improved the correctness of +our CDDL specification and improved the safety by restricting some of the types of +protocol parameters.

    Low level summary

    Conway

    • pull-4350 - Add identity instance for Inject
    • pull-4361 - Fixed a bug in RATIFY
    • pull-4358 - DRep expiry update with number of dormant epochs
    • pull-4365 - Create pool stake distribution query for voting
    • pull-4376 - Ignore ppCommitteeMinSize during bootstrap
    • pull-4364 - DRep state query and related tests
    • pull-4357 - Specify numeric ranges explicitly in conway cddl files

    Testing and formal spec

    • pull-4339 - constrained-generators: introduce tools for controlling test case distribution
    • pull-4348 - Conformance: GOVCERT
    • pull-4213 - Utxow Predicate failure tests
    • pull-4351 - Enable retrying flaky tests in nightly CI
    • pull-4345 - constrained-generators: Add explanation :: [String] -&gt; Pred fn -&gt; Pred fn
    • pull-4362 - Threshold translation in conformance testing
    • pull-4369 - constrained-generators: Add flip_ to avoid having to add new native functions
    • pull-4377 - constrained-generators: propagate information backwards in the solver
    • pull-4389 - Fixed issue #4340. Problem with futurePParams not adequate in Conway.
    • pull-4378 - Conformance: POOL
    • pull-4388 - Improved the translation of PParamUpdate in conformance
    • pull-4355 - Fix order of arguments to verifyVrf

    Infrastructure and releasing

    • pull-4352 - Remove dependency on deprecated ansi-wl-print package
    • pull-4344 - constrained-generators: identify and fix an issue with big bodies to ifElse
    • pull-4338 - Add conformance testing for ENACT
    • pull-4354 - Added conformance test for DELEG
    • pull-4367 - Fixed 8.10 not building
    • pull-4368 - Ensure GitHub CI fails when tests are skipped due to a build failure
    • pull-4373 - Add -rtsopts to all test suites
    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-06-05-mithril + 2024-06-05-mithril + Wed, 05 Jun 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They improved the throughput of the prover route of the aggregator by using resource pooling and made progress on low-latency certification by transitioning to a chain point-based beacon, which allows for faster transaction signing. They also kept investigating prover performance bottlenecks, worked on fixing a bug that caused unsigned transactions to appear as signed, and continued implementing the import of transactions with the ChainSync mini-protocol and Pallas.

    Additionally, the team started preparing the threat modeling explainer for the documentation website and kept investigating some Cardano node error messages that could be caused by how the Pallas client handles connections to mini-protocols.

    Low level overview

    • Completed the issue Implement Resource Pooling for Block Range Merkle maps #1698
    • Completed the issue Sign Cardano transactions with ChainPoint based beacon #1697
    • Completed the issue Cardano transactions prover performances drop with more than 5 transactions #1722
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue Client verification fails with an already stored but non certified yet transaction #1719
    • Worked on the issue Computation of Merkle proof has bottleneck with multiple transactions #1730
    • Worked on the issue Threat modeling and risk analysis #1350
    • Worked on the issue Release 2423 distribution #1695
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ]]>
    + mithril +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2024-06-05-node-cli-api + 2024-06-05-node-cli-api + Wed, 05 Jun 2024 00:00:00 GMT + + 2024-05-13 - 2024-06-05

    High level summary

    CARDANO NODE

    • In order to avoid an accidental hardfork, when "ConwayGenesisFile" is not set in the node configuration file, by default the node can only understand protocol version 8 (Babbage era).

    CARDANO CLI

    • query protocol-parameters now shows Conway era protocol parameters when in Conway.
    • transaction view now shows proposales and votes inside a transaction body.
    • Release of cardano-cli 8.23.1.0
    • We now publish pre-compiled binaries of each release together with the corresponding SHA256Sum.

    CARDANO-API

    • Release of 8.46.0.0

    Details

    cardano-cli

    cardano-api

    • Release cardano-api-8.46.0.0
      • Updated cardano-ledger, ouroboros-consensus and plutus packages.
      • Added FailT dependency.
      • Updated conwayGenesisDefaults and alonzoGenesisDefaults.
      • Changed CostModel to use Int64 instead of Integer.
      • Fixed ProtocolParameters golden test to account for the Integer -> Int64 change in the CostModel. (breaking, test) PR 523

    cardano-node

    cardano-testnet

    ]]>
    + cli-api +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-29-consensus + 2024-05-29-consensus + Wed, 29 May 2024 00:00:00 GMT + + High level summary
    • Updated UTXO-HD to use simple diffs which drastically improved the mempool benchmarks (#1114).
    • Helped quickcheck-state-machine to release version 0.10.0 (#48). We rely on this library for our high-assurance property-tests.
    • Rebased UTXO-HD on top of node 8.11 (#1121). A replay with the in-memory backend took 5:05 hours up to slot 124M.
    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-29-mithril + 2024-05-29-mithril + Wed, 29 May 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team released a new Mithril protocol insights dashboard and a new explorer page displaying active and deregistered SPOs for the latest Cardano epochs. They also continued implementing the certification of Cardano transactions in Mithril networks by improving the throughput of the prover route of the aggregator and making progress on low-latency certification by completing the implementation of a chain block reader from the Cardano mini-protocol with Pallas.

    Additionally, the team started working on a new beacon for signing Cardano transactions based on the chain point. Finally, they refactored the persistence library, enhanced their testing tools for Cardano transactions, and fixed a block parsing problem that prevented the signature of Cardano transactions in the test networks.

    Low level overview

    • Released the Mithril Protocol Insights Dashboard
    • Completed the issue Prototype optimizations for increasing Cardano transactions proof generation throughput #1687
    • Completed the issue Retrieve Cardano blocks with chainsync in pallas PoC #1590
    • Completed the issue Explorer display in/out SPOs in registered signers page #1686
    • Completed the issue Create a test Cardano transactions builder #1667
    • Completed the issue Cardano signatures are not produced on testing-sanchonet and testing-mainnet #1681
    • Completed the issue Remove snapshot command in client CLI #1690
    • Completed the issue Block Streamer returns ChainScannedBlocks #1704
    • Completed the issue Remove connections coupling with providers in database #1711
    • Worked on the issue Implement Resource Pooling for Block Range Merkle maps #1698
    • Worked on the issue Sign Cardano transactions with ChainPoint based beacon #1697
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ]]>
    + mithril +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-27-hydra + 2024-05-27-hydra + Mon, 27 May 2024 00:00:00 GMT + + High-level Summary

    This sprint, the Hydra team released version 0.17.0 of the hydra-node, containing the new blueprint commit transaction mechanism and upgrades to the networking protocol incorporated over the last several weeks. We also completed several documentation upgrades.

    Next sprint, we aim to focus the outstanding increment decommit work, completing the model tests for it as well as investigating adversarial attacks on the smart contract.

    What did the team achieve this sprint?

    • Combine blueprint and commit tx metadata #1409
    • Diagnose currently stuck head. #1415
    • Document offline mode #1414
    • Document writing an Event Sink and Source #1413
    • Streaming Plugins #1325
    • Ensure -Werror is running in CI. #1426
    • Release hydra-node-0.17.0

    What are the goal of the next sprint?

    • Update to cardano-node 8.11-pre #1439
    • Incremental decommit #1057
    • Make progress on the design for incremental commit #199
    • Reopen a head to test blueprint commits.
    • Test combinations of decrement/close/fanout #1390
    ]]>
    + hydra +
    + + <![CDATA[Performance & Tracing Update]]> + https://updates.cardano.intersectmbo.org/2024-05-24-performance-and-tracing + 2024-05-24-performance-and-tracing + Fri, 24 May 2024 00:00:00 GMT + + High level summary
    • Benchmarking: Node versions 8.9.3 and 8.11.0; new PlutusV3 plus addtional DRep benchmarks; re-evaluation of network latency.
    • Development: BLST workload for PlutusV3 was implemented; improved error/shutdown behaviour for tx-generator is in testing phase.
    • Workbench: UTxO-HD tracer configs harmonized. New plutusv3 profiles supporting experimental budgets. Work on Haskell profile definition is in validation phase.
    • Tracing: New metrics and handle registry feature merged to master. Work on metrics naming ongoing. Factoring out RTView component has begun.

    Low level overview

    Benchmarking

    Runs and analyses of full sets of release benchmarks have been performed for Node versions 8.9.3 and 8.11.0.

    For comparison of how the Conway ledger performs when injecting large amounts of DReps and delegations versus one with zero DReps we've run additional configurations with existing workloads from release benchmarking. So far we've found +that the number of DReps in ledger scales well and does not lead to notable performance penalties.

    Additionally, we've successfully run the baseline for the upcoming PlutusV3 benchmarks on our Nomad cluster. Those will, given the new V3 cost model, serve to determine headroom, or constraint, regarding resource usage and network metrics when +operating under various execution budgets.

    Last not least, with much appreciated support and feedback from the network team, we performed a re-evaluation of the network the latency matrix for our benchmarking cluster. The cluster stretches over three regions globally. Due to unknown changes in the underlying +hardware infrastructure, a slight delay between Europe and Asia/Pacific regions could be measured. We needed to adjust some existing baselines accordingly - otherwise, this delay could be falsely attributed to a software regression.

    Development

    We have implemented a benchmarking workload using PlutusV3's new BLST internals. As those do little memory allocation, but require more CPU steps, this workload will allow us to focus on that particular aspect of block and transaction budgets.

    The tx-generator service will now label each submission thread with its submission target. Additionally, it has been equipped with custom signal handlers. This will improve both how gracefully shutdowns can be performed, and how +precise error reporting is done when losing connection to a submission target. Last not least, the service now supports a configurable KeepAlive timeout for the NodeToNode mini-protocol - accounting for very long major GC pauses on +submission targets under very specific benchmarking workloads. Those features have entered testing phase.

    Workbench

    Thanks to feedback from the consensus team, we've harmonized tracing configurations for our benchmarks between regular and UTxO-HD node. As the latter is more verbose by default, this is a confounding factor for our metrics: We're analysing north +of 90 traces per second per cluster node, so all node flavours are required to be equally verbose.

    The benchmarks based on the BLST workload now additionally support scaling budget components up or down at will. This means we can run a given cost model against custom execution budgets, controlling the point where the workload will exhaust it. This enables comparison +of performance impact of potential changes to those budgets.

    Porting our performance workbench's profile definitions to Haskell has been nearly completed, and an adequate test suite been implemented. This new component has now entered validation phase to make sure it correctly replicates all existing profile content.

    Tracing

    Two new metrics for cardano-node have landed in master - both for new and legacy tracing systems. They provide detailed build info, and indicate wether the node is a block producer or not.

    We're now working on closing the gap in the metric naming schema between new and legacy tracing. The aim is to allow for a seamless interchange, without additional configuration required, so that all existing monitoring services can rely on identical metric +names with identical semantics.

    Furthermore, work has begun to factor out the RTView ("real-time view") component of cardano-tracer in the new tracing system. Unfortunately, the component has remained in prototype stage for over a year, and has revealed some design shortcomings. It's aim +is to provide an interactive, real-time dashboard based on metrics from all nodes connected to cardano-tracer. The current design has all front-end side code baked into the backend service, requiring to rebuild the entire service in Haskell even for simple changes in the +dashboard. We decided to isolate the component in the current code base, which still allows for optionally enabling it for a build. The long term goal however is to convert it into a downstream service: It will ingest metrics by reforwarding, or querying a REST API, and will provide +a clear separation of frontend facing code. Thus we, and anybody, can use their favourite web technology for visualization of metrics.

    ]]>
    + performance-tracing +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-24-sre + 2024-05-24-sre + Fri, 24 May 2024 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet was respun for cardano-node 8.11.0-pre

    • Private chain was respun twice for pre-sancho respin testing and short epoch +testing with cardano-node 8.11.0-pre

    • Shelley-qa, two-thirds of preview and one-third of preprod networks were +deployed to cardano-node 8.11.0-pre

    • Sanchonet, private chain and shelley-qa networks had dbsync sancho-4-3-0 +deployed

    • A dbsync show_current_forging prepared statement was added to the +cardano-parts profile-cardano-postgres nixosModule to aid with debugging +chain quality issues

    • Three documents were added to cardano-playground to better explain some +operations procedures: KES rotation, chain quality debugging and new network +creation. Found at: +docs/explain

    • A new mithril dashboard template is available in cardano-parts

    Lower level summary

    Capkgs:

    • Avoid git API rate limit errors on update github action via netrc usage and +corresponding secret: +capkgs-commit

    Cardano-parts

    • Sets cardano-node-ng to 8.11.0-pre and cardano-db-sync-ng to sancho-4-3-0. +Adds a dbsync prepared statement, mithril dashboard template, updates the +node application dashboard template, improves justfile recipe templates and +tunes some systemd dependencies. Iohk-nix-ng was updated for sanchonet and +private chain respins. More detail is available in the PR description: +cardano-parts-pull-41

    Cardano-mainnet

    • Rotates KES, pins iogp4 as -ng, adds a mithril dashboard, updates the node +application dashboard, improves justfile recipes and tunes systemd node and +mithril services to avoid some edge case errors. See the PR description for +more details: +cardano-mainnet-pull-15

    Cardano-ogmios

    Cardano-playground

    • Respins sancho and private chains and deploys cardano-node 8.11.0-pre and +cardano-db-sync sancho-4-3-0 to appropriate envs and machines. Adds a mithril +dashboard template, updates the node application dashboard template, improves +justfile recipe templates. Adds three new explainer readme documents. See the +PR description for more details: +cardano-playground-pull-24
    ]]>
    + sre +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-22-ledger + 2024-05-22-ledger + Wed, 22 May 2024 00:00:00 GMT + + High level summary

    Most of the focus was on the conformance testing this time around. We had completed +conformance tests for CERT and RATIFY rules and progressed on some of the others. This +also resulted in some improvements to the constraint-generators framework. Besides that +we've also fixed Stake Pool Operator stake distribution calculation that is used for +voting by including proposal deposits that are currently locked in the system. One of the +Ledger team members was also performing duties of a release engineer, so we also +facilitated the latest cardano-node-8.11 release.

    Low level summary

    Features and fixes

    • pull-4324 - Proposal deposits in SPO voting stake
    • pull-4316 - Complete EraScript hierarchy with missing classes
    • pull-4287 - Fix various minor issues in the Shelley & Babbage specs

    Testing

    • pull-4320 - CERT conformance
    • pull-4334 - RATIFY conformance
    • pull-4337 - Fix RATIFY conformance
    • pull-4325 - constrained-generators: soundness tests and bugfixes
    • pull-4323 - constrained-generators: clean up interface
    • pull-4336 - constrained-generators: Introduce fromList_ :: (HasSpec fn a, Ord a) =&gt; Term fn [a] -&gt; Term fn (Set a)

    Infrastructure and releasing

    • pull-4333 - Fix babbage-test and conway-test versions
    • pull-4332 - Update CHANGELOGs
    • pull-4343 - Bump requests from 2.31.0 to 2.32.0 in /doc
    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-22-mithril + 2024-05-22-mithril + Wed, 22 May 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling proof generation for mainnet by prototyping optimizations and benchmarking performance improvements. They also made progress on low-latency certification by completing the retrieval of the chain tip and importing transactions from the Cardano mini-protocol with Pallas. Additionally, they worked on a new explorer page to display in/out SPOs for the latest Cardano epochs.

    Finally, the team upgraded the testing-sanchonet network following the SanchoNet network respin, created a module for building test transactions, and began removing the deprecated snapshot command from the client CLI.

    Low level overview

    • Completed the issue Aggregator stress test crashes during signer registration #1676
    • Completed the issue Prune Cardano transactions stored on signer #1645
    • Completed the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Completed the issue Prepare testing-sanchonet for respin with Cardano 8.11-pre #1694
    • Completed the issue MacOS Rust tests are flaky in CI #1556
    • Worked on the issue Prototype optimizations for increasing Cardano transactions proof generation throughput #1687
    • Worked on the issue Retrieve Cardano blocks with chainsync in pallas PoC #1590
    • Worked on the issue Explorer display in/out SPOs in registered signers page #1686
    • Worked on the issue Create a test Cardano transactions builder #1667
    • Worked on the issue Cardano signatures are not produced on testing-sanchonet and testing-mainnet #1681
    • Worked on the issue Remove snapshot command in client CLI #1690
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-15-consensus + 2024-05-15-consensus + Wed, 15 May 2024 00:00:00 GMT + + High level summary
    • Released Consensus for Node 8.11 (#1101)
    • Improved the Praos chain order:
      • Restricted VRF tiebreaker based on slot distance (#1047)
      • Small tweak to the issue number tiebreaker (#1086)
    • Wrote overview on the statistics on the leader schedule (#1096)
    • Integrated robustness refinement for concluding that a node is caught up in the context of bootstrap peers (#1031)
    • The P&T team managed to complete the UTXO-HD benchmarks using the LMDB backend and the results are promising.
    • We're working on setting up the Consensus Technical Working Group within Intersect, so if you'd like to participate please reach out to Damian Nadales.
    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-15-mithril + 2024-05-15-mithril + Wed, 15 May 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team released the new distribution 2418.1, which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes aimed at preventing memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet. Specifically, they completed the implementation of compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges and initiated testing and assessing performance on mainnet in a test Mithril network. Additionally, they started working on minimizing the extra disk space requirements for the signer on the SPO infrastructure.

    Finally, the team implemented some optimizations for the aggregator, fixed some bugs on the client, and introduced new documentation for compiling the Mithril relay from source.

    Low level overview

    • Released the new distribution 2418.1
    • Completed the issue Use Block Range Merkle roots to sign Cardano transactions #1634
    • Completed the issue Use Block Range Merkle roots to prove Cardano transactions #1635
    • Completed the issue Deploy Cardano transactions to testing-mainnet #1647
    • Completed the issue Consistent sorting of transactions from GetCardanoTransactionProvider in signer and aggregator #1657
    • Completed the issue Use SQLite transactions when inserting Cardano Transactions and Block Range Roots #1656
    • Completed the issue Implement Ord on SignedEntityTypeDiscriminants #1648
    • Completed the issue Merkle roots don't have fixed size in the block_range_root table #1668
    • Completed the issue Refactor Cardano transactions database layer in persistence for signer and aggregator #1677
    • Completed the issue Some timing tests fail on ARM #1466
    • Completed the issue Add Mithril networks configurations in networks.json #1638
    • Completed the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Aggregator stress test crashes during signer registration #1676
    • Worked on the issue Prune Cardano transactions stored on signer #1645
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Retrieves Cardano blocks with chainsync in pallas PoC #1590
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ]]>
    + mithril +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-13-node-cli-api + 2024-05-13-node-cli-api + Mon, 13 May 2024 00:00:00 GMT + + 2024-04-27 - 2024-05-13

    High level summary

    Enhancements to the CLI encompass several noteworthy additions. These include the introduction of a new hardfork initiation command, rendering --prev-governance-action-tx-id optional for create-no-confidence actions, addressing scenarios where the committee is defined in the Conway Genesis file, and refining help texts. Additionally, there have been updates to the description fields in governance action files.

    Adjust maximum understood protocol version from 9 to 10 when the experimental hardforks flag is enabled. This allows us to bypass Conway's bootstrap phase in testing

    Continued work in testing implementation of CIP1694 with cardano-testnet.

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-10-hydra + 2024-05-10-hydra + Fri, 10 May 2024 00:00:00 GMT + + High-level summary

    This week, the Hydra team upgraded the hydra-node networking layer to use a versioned handshake protocol, as well as extensive documentation restructuring and bug fixes to the hydra-tui.

    What did the team achieve this week

    • Use versioned hadshake when connecting hydra-nodes.
    • Restructure documentation.
    • Fixed the transaction envelope type parsing in order to be compatible with cardano-cli and update our docs.
    • Show the contestations in the hydra-tui
    • Experiment with removing persistence in the reliability layer and adding custom command to Reset the head state to the last confirmed snapshot

    What are the goals of next week

    • Provide aarch64-linux docker images for hydra-node.
    • Release hydra-node 0.17.0
    • Finish new model spec changes related to decommit testing
    ]]>
    + hydra +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-10-sre + 2024-05-10-sre + Fri, 10 May 2024 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • A preview of the new cardano tracing system is available by using the +profile-cardano-node-new-tracing new nixosModule from cardano-parts and is +complemented with new tracing system dashboards and alerts

    • Custom cardano metrics can be pushed to a statsd server and then scraped to a +monitoring solution using the profile-cardano-custom-metrics new +nixosModule from cardano-parts

    • A new cardano-parts job for spinning up clusters using a recent cardano-cli +command, create-testnet-data, was implemented: .#job-gen-custom-node-config-data

    Lower level summary

    Cardano-faucet

    Cardano-parts

    • Sets cardano-faucet-ng to 8.10, and mithril[-ng] to 2418-1. A preview +nixosModule for cardano-node's new tracing system has been added as well as a +cardano custom-metrics module. Dashboards have been added for the new tracing +system. Cardano-node alerts have been refactored into several rulesets which +include some new alerts as well as new tracing system alerts. A job for +spinning a cardano cluster up using a new underlying cardano-cli mechanism, +create-testnet-data, was added. More detail is available in the PR description: +cardano-parts-pull-40

    Cardano-mainnet

    • Sets mithril to 2418-1. Cardano-node alerts have been refactored into +several rulesets which include some new alerts as well as new tracing system +alerts. See the PR description for more details: +cardano-mainnet-pull-14

    Cardano-perf

    Cardano-playground

    • Sets cardano-faucet-ng to 8.10 which fixes a sanchonet faucet instability, and +mithril[-ng] to 2418-1. Adds a new cardano-node tracing system preview to some +machines with corresponding dashboards. Cardano-node alerts have been +refactored into several rulesets which include some new alerts as well as new +tracing system alerts. A job for spinning a cardano cluster up using a new +underlying cardano-cli mechanism, create-testnet-data, was added and integrated +with the Justfile start-demo recipe. Includes other misc tuning and +improvements. See the PR description for more details: +cardano-playground-pull-23
    ]]>
    + sre +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-08-ledger + 2024-05-08-ledger + Wed, 08 May 2024 00:00:00 GMT + + High level summary

    Some of the most important and final Conway features were implemented since the last report:

    • Bootstrap phase is fully implemented
    • HardForkInitiaztion governance action will now correctly take us into the next era +that will follow the Conway era.
    • DRep stake distribution now also includes the amount in the reward account and deposits +that were left for the governance proposals.
    • CostModels updates for plutus scripts made more flexible, which will allow us adding +new primitives for all plutus versions starting with the Conway era.

    As always, besides new features, we also wrote a lot of testing functionality. We now have +our first and fully functional conformance test for a GOV rule, with a few more in the +works. Many improvements and bugfixes to constraint based generating functionality. Last, +but not least, we did a major and long awaited improvement to our CI setup that makes it +much easier to spot failing tests and deal with potential flakiness.

    Low level summary

    Conway

    • pull-4275 - Restrict gov actions during bootstrap
    • pull-4253 - Hardfork Initiation into a new era
    • pull-4273 - DRepDistr: Iterate over the DRep delegations in UMap
    • pull-4309 - Add proposal deposits to DRep active voting stake.
    • pull-4284 - Flexible costmodel params
    • pull-4328 - Disable drep thresholds in bootstrap

    Testing

    • pull-4295 - Improve generator in ImpTestsState
    • pull-4292 - constrained-generators: add genHint for maps
    • pull-4298 - constrained-generators: utility function for asserting over a reified value
    • pull-4300 - constrained-generators: hotfix of latest derp...
    • pull-4297 - constrained-generators: Fix ifElse dependencies
    • pull-4301 - constrained-generators: Add monitoring capability to get a handle on test case distribution
    • pull-4315 - constrained-generators: Improve error messages and make the tree generator reasonably sized
    • pull-4317 - constrained-generators: Fix bug in reifies
    • pull-4299 - Fix strange CI failure.
    • pull-4285 - Start Conway Imp tests with an initial committee and constitution
    • pull-4303 - Fix test caused by erroneous merge
    • pull-4310 - Fix OMap.assocList
    • pull-4268 - Enable conformance tests for GOV rule

    Infrastructure and releasing

    • pull-4276 - Use a separate job for each test suite in GitHub CI
    • pull-4304 - Ensure the CI complete step fails when tests fail
    • pull-4308 - Add a CI status check to prevent merging PRs that contain merges
    • pull-4305 - Use the correct iohk action for installing Haskell in GitHub CI
    • pull-4322 - Bump jinja2 from 3.1.3 to 3.1.4 in /doc
    ]]>
    + ledger +
    + + <![CDATA[Performance & Tracing Update]]> + https://updates.cardano.intersectmbo.org/2024-05-07-performance-and-tracing + 2024-05-07-performance-and-tracing + Tue, 07 May 2024 00:00:00 GMT + + High level summary
    • Benchmarking: We've performed and analysed benchmarks in the Conway era, with DReps injected.
    • Development: Tracing DRep data has been implemented; improved error reporting in tx-generator and analysis quick queries are ongoing work.
    • Workbench: We now fully supports the new CLI create-testnet-data command and DRep injection into Conway genesis. Haskell profile definition work is ongoing.
    • Tracing: Various additions to Node metrics are being worked on, such as build info and block producer role. Metrics naming will be further harmonized.
    • UTxO Growth: We've finalized analysis and reports of all benchmarks targeting UTxO scaling scenarios.
    • UTxO-HD / LMDB: We've performed multiple runs benchmarking the LMDB (on-disk) backend of UTxO-HD.

    Low level overview

    Benchmarking

    We've run and analyzed a full set of benchmarks comparing the Conway ledger against the Babbage one, on Node 8.10.1-pre. For Conway, our additional goal was to measure a vanilla ledger state against one with a large amount of DReps - and delegations to those DReps - present. The +benchmarks used our existing value and Plutus workloads to remain comparable to each other.

    Development

    Additional ledger queries for the tracing system have been implemented and merged to master. Those capture the amount of, and the number +of existing delegations to, DReps as trace output - and thus enable creating a metric on top of it, which can then be monitored.

    The (in our case) non-deterministic nature of shutting down different cluster setups - both local and cloud-based - carries the possibility +that our transaction generation service occasionally misclassifies a regular shutdown as an error. Furthermore, in the case of network malfunctions, the service's errors are too unspecific. By implementing thread labels for submission threads, corresponding to each +submission target, and by adding custom smart signal handlers, we'll improve the generator's error reporting significantly.

    The initial tests for quick queries are being developed further. We're moving towards a principled, and generalized, syntax that supports both +prepared, parametrizable queries from the application code, as well as ad-hoc queries stated e.g. on the command line.

    Workbench

    The performance workbench now fully supports the new cardano-cli command create-test-data. We use it to inject both stake +delegated to stake pools into genesis, and - recently added - stake delegated to DReps as well. It has been proven very useful +and versatile so far, and will eventually replace the current create-staked command.

    Work on porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is still ongoing; currently, we're integrating all new profile families that came out of the UTxO growth scenarios.

    Tracing

    New metrics are being implemented for the tracing system. They will also be part of Prometheus output and as such accessible to +monitoring services. There'll be cardano-node's detailed build info, as well as a node's block producer status, meaning the presence of forger credentials. Those new metrics are being backported to the legacy tracing system, too.

    Furthermore, we've determined the need to revisit metrics naming. There's still a divergence between naming in the legacy +and the new system. While this could be mitigated by passing in extra config options, we think that a transition to the new system +should not impose any unnecessary effort for node operators. A design to fully harmonize the existing naming schemata is currently being +set up.

    UTxO Growth

    The UTxO Growth benchmarking series has been finalized. We've finished analyses and reports for all scenarios that +were tested and explored.

    The overarching questions were, given a network of 32GB host systems, how large can the UTxO set grow in general, +how large can it grow before the nodes have to operate close to the RAM limit over extended periods of time, and how does scaling the UTxO set size affect network metrics, such as block diffusion.

    A dedicated "UTxO Scaling Squad" was set up, who was driving the entire process, and we enjoyed a very focused and productive collaboration with them.

    UTxO-HD / LMDB

    Last not least, we were able to benchmark UTxO-HD's on-disk backend on a network of block producing nodes, on a recent 8.9.1 version +of cardano-node. The setup allowed of using a direct access SSD device for performance critical disk I/O, whereas the bulk of ChainDB and ledger snapshots remained on a standard AWS EBS volume.

    The benchmarks comprised both optimistic and pessimistic RAM assumptions for the host OS to further optimize I/O via page cache, as well as medium and large UTxO set sizes - the latter almost tripling current mainnet's size. The results were promising; the LMDB backend has proven to be able to accomodate large UTxO sets using significantly less RAM than the default all-in-memory node - and with a more than reasonable trade-off performance-wise. Furthermore, running with pessimistic assumptions, the performance impact on LMDB was very moderate only.

    ]]>
    + performance-tracing +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-06-network + 2024-05-06-network + Mon, 06 May 2024 00:00:00 GMT + + High-level overview of sprint 60Edited on 8th of May: new EGK counters will be included in `cardano-node-8.9.3`, added links to `cardano-node-8.9.3` PR and `ouroboros-network-0.15` release.

    Peer-Sharing Improvements

    We continued working on improving peer sharing. As part of this work light +peer sharing (e.g. including inbound peers to the known set of outbound +governor), was restructured. Now, sending more peers than what was requested by +the peer-sharing client is a protocol error, and the connection will be terminated; +This hasn't been a resource attack vector since we always limited the number of +peers taken by the outbound-governor and the number of peers has always been +limited by the size of the mux ingress queue reserved for peer-sharing +mini-protocol. These changes will be released in cardano-node-8.9.3. See +ouroboros-network#4868

    We also merged the work on outbound governor counters, which initially started +as just an extension for peer-sharing counters but turned into a larger +refactorisation. We announced it in the previous report. These changes will +be included in 8.9.3. See ouroboros-network#4845, +ouroboros-network#4861.

    Light peer sharing (inbound peers) refactorisation allowed us to refactor the +inbound governor loop: we restructured it so that the internal state is kept +pure (and thus not shared with other threads), while the public part is +computed incrementally (with good amortised costs and thus leading to good performance) and exposed to other +components (e.g. the outbound-governor), see ouroboros-network#4871 (which +is built on top of ouroboros-network#4868).

    The PR [cardano-nod#5831] integrates ouroboros-network-0.15 with +cardano-node-8.9.x branch. All included PRs / issues in +ouroboros-network-0.15 are listed here.

    Genesis

    We implemented the API needed by the consensus layer for Genesis; see +ouroboros-network#4815, ouroboros-network#4846.

    We continued working on outbound governor changes to support Genesis:

    Bootstrap Peers

    Karl Knutsson ([CF]) found and fixed some problems related to big-ledger and +public root peers. Here's an excerpt from the changelog file:

    • updated the big-ledger retry state in case of an exception;
    • reset public root retry state when transitioning between LedgerStateJudgements;
    • reduced public root retry timer;
    • don't classify a config file with public-root/bootstrap-peers IP addresses only +as a DNS error. +See ouroboros-network#4867.

    Churn

    We merged a refactorisation which synchronises churn with the outbound +governor, see ouroboros-network#4617.

    Minor Improvements

    A few other minor improvements were merged:

    Testing

    We added quickcheck-monoids package and also submitted an upstream patch to +QuickCheck to include a version of the standard All / Any monoids, which +are helpful when writing more complex properties. We will use +quickcheck-monoids until the upstream PR will be released. It will be +available from CHaP. See quickcheck#397.

    ]]>
    + network +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-03-hydra + 2024-05-03-hydra + Fri, 03 May 2024 00:00:00 GMT + + High-level summary

    This week, the Hydra team has been working on refactoring and detecting network protocol version mismatches. They have also merged the /commit endpoint changes including a follow-up fix about fee calculation. Besides this, they applied minor workflow fixes by adding docker images to nix checks and disabling mithril integration testing on preview (until mithril 2418 is released).

    What did the team achieve this week

    • Refactor connectivity and detect network protocol version mismatches #1381
    • Merged and completed #1350, including a follow-up fix about fee calculation
    • Add docker images to nix checks
    • Disable mithril-client testing on Preview

    What are the goals of next week

    • Restructure documentation including a how to about streaming plugins #1325
    • Add arm64 docker images as requested in #1404
    • Release 0.17.0
    ]]>
    + hydra +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2024-05-01-consensus + 2024-05-01-consensus + Wed, 01 May 2024 00:00:00 GMT + + High level summary
    • Reworked the argument for the different databases used in Consensus, in preparation for UTxO-HD (#1059).
    • Helped review the first Peras Innovation draft report.
    • Continued working on VRF restriction based on slot distance. The corresponding PR (#1047) went through its first round of reviews.
    • Provided support to the Networking team to review their work on querying big ledger peers (#1067).
    • Continued working on open-sourcing fs-api and fs-sim.
    • Performed other minor refactorings in the codebase (#1073 and #1070).
    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-30-mithril + 2024-04-30-mithril + Tue, 30 Apr 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team prepared a new pre-release distribution 2418.1-pre, which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes to prevent memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet by leveraging the compression of the transaction Merkle tree using sub-Merkle trees based on transaction block ranges during signature and proving. Additionally, they implemented a stream mechanism for importing transactions into the signer and aggregator stores.

    Finally, the team started implementing a global Mithril networks configuration file and continued investigating some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.

    Low level overview

    • Created a pre-release for the new distribution 2418.1-pre
    • Completed the issue Store Block Range Merkle roots in signer and aggregator databases #1633
    • Completed the issue Stream import of Cardano transactions #1646
    • Completed the issue Memory leak in Cardano transactions signature/proof #1629
    • Completed the issue Handle unparsed blocks in Cardano transactions parser #1567
    • Worked on the issue Use Block Range Merkle roots to sign Cardano transactions #1634
    • Worked on the issue Use Block Range Merkle roots to prove Cardano transactions #1635
    • Worked on the issue Use SQLite transactions when inserting Cardano Transactions and Block Range Roots #1656
    • Worked on the issue Add Mithril networks configurations in networks.json #1638
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ]]>
    + mithril +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-27-node-cli-api + 2024-04-27-node-cli-api + Fri, 26 Apr 2024 00:00:00 GMT + + 2024-04-16 - 2024-04-26

    High level summary

    8.10.1-pre was released to SanchoNet.

    The team continues focused on implementing tests for the Conway era on the cardano-node repository. This sprint the team made various improvements to +CI pipelines on cardano-cli.

    • Cardano-cli: implemented build-estimate to facilitate automatic transaction balancing without access to a live node; and added minFeeRefScriptCostPerByte as an option to create-protocol-parameters-update command.

    cardano-node

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-26-sre + 2024-04-26-sre + Fri, 26 Apr 2024 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.9.2 is now deployed to mainnet, preprod, preview and +shelley-qa environments.

    • Cardano-node 8.10.1-pre is now deployed to sanchonet and also to one-third of +IOGs preprod environment nodes and two-thirds of IOGs preview environment +nodes.

    • Private chain for Voltaire team was paused with plans for a future respin.

    • The network team's ouroboros-network-ops machine cluster was re-written using +the cardano-parts stack to upgrade from the nixops/terraform/niv stack it was +previously using.

    Lower level summary

    Cardano-parts

    • Sets cardano-node to 8.9.2, dbsync-ng to sancho-4.2.0; mithril to 2412.0, +iohk-nix to include new peerSharing defaults and introduce a new block +producer config. Adds a new truncate-chain recipe and improves mithril +related services. More detail is available in the PR description: +cardano-parts-pull-38

    • Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2; mithril pre (-ng) +to unstable, iohk-nix and iohk-nix-ng pin includes new Cardano Foundation +bootstrap relays. Adds new aws machine management and other recipes, metadata +job support for pool creation, misc fixes and improvements. More detail is +available in the PR description: +cardano-parts-pull-39

    Cardano-mainnet

    • Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new +peerSharing defaults and colmena.nix cluster refactor for peerSharing +adjustments and implements all updates in cardano-parts PR#38. See the PR +description for more details: +cardano-mainnet-pull-12

    • Sets dbsync to 13.2.0.2, iohk-nix and iohk-nix-ng to include new CF relays, +adds new aws machine management recipes and implements all updates in +cardano-parts PR#39. See the PR description for more details: +cardano-mainnet-pull-13

    Cardano-node

    • Default peerSharing true and add block producer config to release binaries. +See the PR description for more details: +cardano-node-pull-5789

    Cardano-ops

    Cardano-perf

    • Adds a caddy webserver for run reviews and tunes the NVME FS mounts for performance: +cardano-perf-compare

    Cardano-playground

    • Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new +peerSharing defaults, refactors mdbook out of docs dir, adds example chain +manipulation doc and implements all updates in cardano-parts PR#38. See the +PR description for more details: +cardano-playground-pull-21

    • Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2, mithril pre (-ng) +to unstable, iohk-nix and iohk-nix-ng to include new CF relays, adds a public +TLS dbsync user connection option, stops private chain cluster and implements +all updates in cardano-parts PR#39. See the PR description for more details: +cardano-playground-pull-22

    Iohk-nix

    • Creates block producer configurations to accomodate PeerSharing set true by default: +iohk-nix-pull-575

    • Adds Cardano Foundation mainnet bootstrap peers: +iohk-nix-pull-578

    Ouroboros-network-ops

    Sanchonet

    Sanchonet-demo

    ]]>
    + sre +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-24-ledger + 2024-04-24-ledger + Wed, 24 Apr 2024 00:00:00 GMT + + High level summary

    Ability to specify CostModel for PlutusV3 in the genesis file was implemented, which +will allow us to execute PlutusV3 as soon as we enter Conway era, which is essential +for guardrails script. Important bugs that have been fixed:

    • Invalid reporting of InsufficientCollateral and ValueNotConservedUTxO predicate +failures. In case of validation failure a confusing deserialization was reported instead +of those predicate failures.
    • Calculation of votes for Constitutional Committee Members did not consider expired +members correctly.
    • Useful function redeemerPointer was deprecated without good justification.

    Besides bugfixes there was a lot of work done on the testing side. Constraint based data +generation is receiving continuous improvements. More unit and property tests for Conway +era functionality.

    Low level summary

    Conway

    • pull-4259 - Undeprecate redeemerPointer and expose it in cardano-ledger-api
    • pull-4252 - Add PlutusV3 CostModel to UpgradeConwayPParams
    • pull-4247 - Change the balance in InsufficientCollateral to DeltaCoin
    • pull-4267 - Expand TxAuxData interface
    • pull-4265 - Inline UTxO and UTxOW PredFailure for Conway
    • pull-4281 - Discount expired CC from CC-size calculation
    • pull-4290 - Add NoThunks instance for UTxO pred failures
    • pull-4288 - Fix burning tokens predicate failure

    Testing

    • pull-4241 - Add fixup combinators to ImpTest framework
    • pull-4229 - Shrinking for constrained-generators
    • pull-4244 - Imptests: CommitteeMinSize affects in-flight props
    • pull-4269 - Fix generation bug for sums of positive member spec
    • pull-4266 - Add imptest to propose and enact unknown costmodels
    • pull-4261 - constrained-generators cleanup for hackage
    • pull-4279 - constrained-generators: Fix bug in toPreds for maps + add additional tests
    • pull-4272 - simplify foldMap interface to higher order syntax
    • pull-4283 - constrained-generators: add new test to test suite
    • pull-4286 - constrained-generators: refactor reify to reduce the number of binding sites + delay simplification more to avoid variable capture in higher order syntax

    Infrastructure and releasing

    • pull-4260 - Bump idna from 3.3 to 3.7 in /doc
    • pull-4277 - Fixed formatting in HowToProfileLedger.md
    • pull-4282 - Bump plutus deps to 1.26
    • pull-4294 - Avoid cancelling scheduled CI when a new merge happens on master
    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-24-mithril + 2024-04-24-mithril + Wed, 24 Apr 2024 00:00:00 GMT + + High level overview

    This week, most of the Mithril team attended the Cardano Buidler Fest #1 in Toulouse, France. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet by compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges. The team identified the source of an issue preventing proper memory release during the signing/proving of a large set of transactions and developed a fix for it. Additionally, they completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network.

    Finally, the team implemented a configurable feature for test networks to log unparsable blocks instead of panicking and investigated some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.

    Low level overview

    • Completed the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue Store Block Range Merkle roots in signer and aggregator databases #1633
    • Worked on the issue Stream import of Cardano transactions #1646
    • Worked on the issue Memory leak in Cardano transactions signature/proof #1629
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ]]>
    + mithril +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-19-hydra + 2024-04-19-hydra + Fri, 19 Apr 2024 00:00:00 GMT + + High-level summary

    This week, the Hydra team refactored the heartbeat logic to prepare for the versioned network protocol. They have also switched http://explorer.hydra.family to run on the preview network. Additionally, the team has added property tests to the /commit endpoint changes.

    What did the team achieve this week

    • Refactor heartbeat logic to prepare for versioned network protocol.
    • Switch http://explorer.hydra.family to run on preview network.
    • Add property tests to /commit endpoint changes

    What are the goals of next week

    • Attend and connect with community on Cardano Builder Fest
    • Merge new /commit endpoint changes
    ]]>
    + hydra +
    + + <![CDATA[Performance & Tracing Update]]> + https://updates.cardano.intersectmbo.org/2024-04-19-performance-and-tracing + 2024-04-19-performance-and-tracing + Fri, 19 Apr 2024 00:00:00 GMT + + High level summary
    • Benchmarking: We've performed benchmarks and analyses for Node versions 8.9.2 and 8.10.0.
    • Development: Design phase for implementing quick queries in the analysis pipeline has begun.
    • Workbench: We're finishing up the new features for the reporting pipeline; Haskell profile definition work is ongoing.
    • Tracing: Improving the Prometheus output is ongoing; the node's build info will be accessible as a Prometheus label.
    • UTxO Growth: Our tooling has been augmented to support benchmarks starting with a non-empty chain.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.9.2. Comparing with release 8.9.1, we could not detect any performance risks for that version.

    The benchmarks for 8.10.0 have shown a slight improvement in the time the block forging loop needs to evaluate, whilst additionally, resource usage of the cardano-node process was also slightly reduced - a nice performance improvement.

    Development

    Our analysis pipeline is based on batch analysis of data from over 50 cluster nodes; it consumes very large amounts of trace output ex post facto, when the actual benchmark has terminated. +This is very time-intensive, and not viable for obeserving an additional metric that you later on determine might need consideration.

    We're planning to add quick queries into a benchmarking run's trace data to our analysis pipeline. These will be structured such that parameterizable, ad-hoc querying is supported. Initial tests showed that evaluation speed +of such queries is fast enough to merit designing a principled, and generalized, syntax for them - and a subsequent implementation.

    Workbench

    The reporting pipeline has been augmented with direct support for customizable, and stylable, TeX rendering - currently receiving final touches.

    Porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is ongoing work. It is our goal to both increase reliable profile definition and validation, and +facilitate usage by engineers less familiar with the workbench.

    Tracing

    The work to improve system metrics as presented to Prometheus is still ongoing. Type annotations, as well as introducing Prometheus labels for certain metrics to convey (like e.g. build information), will make that interface +more versatile. It also facilitates configuration of monitoring or dashboards like Grafana on top of those Prometheus metrics.

    UTxO Growth

    For the UTxO scaling benchmarks, we've augmented the workbench with the capability to support injection of a custom synthesized chain into the deployment, and start a benchmark only after replaying that chain - whereas +our benchmarks usually start just with a genesis block.

    To achieve that, different components of our tooling needed addition of features: distributing that chain to the node cluster, having analysis work without necessarily providing trace evidence of each block in the chain being forged by a benchmarking node. Cluster timing had to be adjusted to account for the gap between genesis start time and the chain tip. However, this entire mechanism opens up the possibility of having a very distinct ledger state at hand for a benchmark - one, that's been particularly crafted via a series of +pre-defined transactions constituting the blocks during creation of the synthesized chain.

    In the future, we plan to flesh out a more general design of that mechanism, which currently is tied to a very specific use case only.

    ]]>
    + performance-tracing +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-15-network + 2024-04-15-network + Thu, 18 Apr 2024 00:00:00 GMT + + High-level overview of sprint 58 and sprint 59

    Releases

    We released cardano-node-8.9.1, and we tagged a soon to be released +cardano-node-8.9.2 +The 8.9.2 release will have a fixed peer sharing support, which we +incidentally broke in 8.9.1. We expanded our test suite to cover discovered +bugs (see below for more details). Please also see the release +tab in our project to see which PRs / issues were +included in a given release, the following mapping might also be useful:

    • ouroboros-network-0.13.1.0 -> cardano-node-8.9.1
    • ouroboros-entwork-0.14.0.0 -> cardano-node-8.9.2

    Genesis

    We continued working on network Genesis support:

    • ouroboros-network#3396 - churn policy for Genesis;
    • ouroboros-network#4813 - outbound governor support for Genesis;
    • support for cardano-cli to write a big ledger peers snapshot to disk and +for cardano-node to pass it to ouroboros-network.

    As well as a feature required by consensus:

    TxSubmission

    Only a little progress was made due to one of us being on vacation.

    Churn and EKG metrics

    While working on ouroboros-network#4815, we addressed technical debt +in churn. The PR removes implicit synchronisation (in terms of delays) in +favour of explicit synchronisation with the outbound governor. The PR extends +EKG counters traced by the node. See below for some graphs.

    Documentation

    We updated the documentation on peer sharing, see +cardano-node-wiki#44.

    Low level details

    Peer Sharing Testing

    We wrote a testing scenario for peer sharing, which simulates a node setup: +A -> B <- C, where neither of the nodes B and C have any local roots; they only learn about other nodes through (light) peer sharing. B learns +about A and C because they connect to it, while C should learn about A +through peer sharing. This test scenario should prevent us from breaking peer sharing in the +future in some obvious ways. In the future, we will also work on extending our +test suite with peer sharing in mind. See ouroboros-network#4839, +ouroboros-network#4841.

    EKG / Prometheus Counters

    Note that this is in progress, so some things might still change.

    We will provide counters for active (also known as hot) peers, +established (e.g. hot & warm) peers and known (e.g. hot, warm and +cold) peers. This is the same way one specifies targets in the node's +configuration. In addition, the three groups are split into five categories:

    • ledger peers
    • big ledger peers
    • local root peers
    • bootstrap peers
    • shared peers

    In addition, we also provide a counter for root peers, which counts ledger peers, +big ledger peers, local roots and bootstrap peers, which correspond to the +root peers target TargetNumberOfRootPeers in the configuration.

    We also provide counters for ongoing promotions and demotions.

    Ledger peers are affected by TargetNumberOf{Known,Established,Active}Peers and TargetNumberOfRootPeers. +The gap between TargetNumberOfRootPeers and TargetNumberOfKnownPeers will +be filled either with ledger peers or peers, which the node discovered through +peer sharing. +Big ledger peers are affected by TargetNumberOf{Known,Established,Active}BigLedgerPeers.

    Below are some Grafana graphs from an experimental cardano-node branch:

    Deprecation policy

    The previous hot, warm / cold EKG counters will also be available, +although deprecated after the new ones are released. Sometime in the future +they will be removed.

    Grafana graphs

    The screenshots are from a node, which is configured without any bootstrap +peers, which is why all bootstrap metrics are 0. The node is configured with the following targets:

      "TargetNumberOfRootPeers": 60,
    "TargetNumberOfKnownPeers": 100,
    "TargetNumberOfEstablishedPeers": 40,
    "TargetNumberOfActivePeers": 15,
    "TargetNumberOfKnownBigLedgerPeers": 15,
    "TargetNumberOfEstablishedBigLedgerPeers": 10,
    "TargetNumberOfActiveBigLedgerPeers": 5,

    and has a small number of local root peers and one peer in its publicRoots +configuration.

    Active Peers Metrics

    P2P relays

    Established Peers Metrics

    P2P relays

    Known Peers Metrics

    P2P relays

    Churn Metrics

    P2P relays

    ]]>
    + network +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-17-consensus + 2024-04-17-consensus + Wed, 17 Apr 2024 00:00:00 GMT + + High level summary
    • Implemented the new diffusion pipelining criterion.
    • Presented, reviewed and merged the March milestone for Genesis.
    • Integrated latest changes into Node version 8.10.
    • Regarding the UTXO-HD feature we:
      • Completed fixes in test-suites from cardano-node, cardano-api, and ouroboros-consensus. All tests are passing in latest prototype.
      • Prepared UTXO-HD prototype for LMDB benchmarking.
      • Fixed tracing in cardano-node.
      • Started merging code from the UTXO-HD branch into main (1053, 1052, and 1054).
    • We're currently working on getting rid of NoThunks errors in Consensus, so that we can enable these tests in CI, for extra assurance.
    ]]>
    + consensus +
    + + <![CDATA[DB Sync Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-17-db-sync + 2024-04-17-db-sync + Wed, 17 Apr 2024 00:00:00 GMT + + High level summary

    The DBSync team has released 1 version for mainnet 13.2.0.1 and 3 pre-releases for sanchonet +4.0.0, 4.1.0, 4.2.0. We have continued the integration of Conway (CIP-1694) and the support +of off-chain data (CIP-100)

    Lower level summary

    • CI build and docker fixes +#1670 +#1668 +#1667 +#1662

    • Improved committee representation +#1662 +#1571 +#1633

    • Offchain metadata partial support +#1654

    • Refactoring and tech-debt +#1635

    • Fixing epoch_stake_progress +#1620

    • Config and modulatirty improvements +#1653 +#1652

    • Updating to node-8.10-pre. Better support for deposits, refunds and proposal state +#1673

    ]]>
    + db-sync +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-17-mithril + 2024-04-17-mithril + Wed, 17 Apr 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling the signature and proof generation for mainnet with the compression of the transaction Merkle tree by using sub-Merkle trees of transactions by block ranges. They also made progress in designing low latency certification, investigated a memory leak in the signature/proof process, and worked on retrieving the tip of the chain with the Pallas chain observer. The team almost completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they completed the refactoring of the database providers of the aggregator and re-span the testing-sanchonet network following the release of Cardano node 8.10.0-pre.

    Finally, the team made some optimizations on the compilation of their pre-built binaries to fix panics occurring on CPUs without ADX instructions, and created a network configuration file on the repository to facilitate automatic compatibility checks.

    Low level overview

    • Completed the issue Create file with Cardano minimum versions in repository #1615
    • Completed the issue Deploy testing-mainnet network #1617
    • Completed the issue Refactor database module in aggregator #1583
    • Completed the issue Client deprecation notice should be written in JSON when --json option is used #1616
    • Completed the issue Activate portable feature in mithril-stm by default #1613
    • Completed the issue Prepare testing-sanchonet for respin with Cardano 8.10 #1618
    • Worked on the issue Store Block Range Merkle roots in signer and aggregator databases #1633
    • Worked on the issue Memory leak in Cardano transactions signature/proof #1629
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    ]]>
    + mithril +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-15-node-cli-api + 2024-04-15-node-cli-api + Mon, 15 Apr 2024 00:00:00 GMT + + 2024-04-01 - 2024-04-15

    High level summary

    Adding support for script based committee members certificates: authorization and resignation. It is now possible to convert extended signing Drep and Committee keys to a Shelley-format key. Improvements to Conway era tests. Use threshold instead of quorum for committee members.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-12-hydra + 2024-04-12-hydra + Fri, 12 Apr 2024 00:00:00 GMT + + High-level summary

    This week, the Hydra team fixed a bug in the smoke test and refactored to allow network functions to distinguish between inbound and outbound. The team also prepared a cardano-api 8.44 branch for cardano-node 8.10 once it gets released. They also contributed to the cardano-ledger-api by undeprecating and exposing redeemerPointer.

    What did the team achieve this week

    • Fix FaucetFailedToBuildTx in smoke test #1384
    • Refactoring to allow network functions to distinguish between inbound and outbound
    • Prepared a cardano-api 8.44 branch, but got blocked 👇
    • Undeprecate redeemerPointer and expose it in cardano-ledger-api cardano-ledger#4259

    What are the goals of next week

    • Complete new /commit endpoint interface #1350
    • Refactor to allow NodeLogic to pass through connection messages, to unblock 👇
    • Use versioned handshake when connecting hydra-nodes #1010
    • Test all combinations of decrement/close/fanout for #1057
    • Meet with tech writers about the landing page
    ]]>
    + hydra +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-12-sre + 2024-04-12-sre + Fri, 12 Apr 2024 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Private chain for Voltaire team was respun for cardano-node 8.10.0-pre +pre-release and re-hard forked into Conway era.

    • Sanchonet was respun for cardano-node 8.10.0-pre pre-release and re-hard +forked into Conway era.

    • Cardano-node 8.10.0-pre was also deployed to one-third of IOGs preprod +environment nodes and two-thirds of IOGs preview environment nodes.

    Lower level summary

    Cardano-parts

    • Sets cardano-node|cli-ng to 8.10.0-pre, dbsync-ng to sancho-4.1.0; bumps +nixpkgs (23.11) and nixpkgs-unstable; improves, adds new and fixes a number +of just recipes; allows repo custom recipes to be kept as a separate import +for easy justfile maintenance; refactors ip module checking into its own +nixosModule and adds an extra abort option for safety. Much more detail is +available in the PR description: +cardano-parts-pull-36

    Cardano-mainnet

    • Bumps cardano-parts for a number of recipe additions, improvements, fixes. +Fixes blockperf dnsmasq looksups and adjusts colmena topology code to account +for intra-cluster localRoots now defaulting to trustable true and implements +all updates in cardano-parts PR#36. See the PR description for more details: +cardano-mainnet-pull-11

    Cardano-perf

    • Add a new perf-ssd machine class and deployment for ssd related performance +testing and benchmarking. Add new just recipes and cluster resource tagging. +cardano-perf-compare

    Cardano-playground

    • Bumps cardano-parts for a number of recipe additions, improvements, fixes, +and node 8.10.0-pre. Respins private chain and sanchonet for node 8.10.0-pre +with corresponding book updates and implements all updates in cardano-parts +PR#36. See the PR description for more details: +cardano-playground-pull-20

    Iohk-nix

    • WIP: Prepares block producer configurations to accomodate upcoming peerSharing default change: +iohk-nix-pull-575

    • Provides iohk-nix updates for node 8.10: +iohk-nix-pull-576

    ]]>
    + sre +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-10-ledger + 2024-04-10-ledger + Wed, 10 Apr 2024 00:00:00 GMT + + High level summary

    Most notable progress is on testing. In particular data generation for conformance test +has been improved and the implementation organized. Addition of various Conway related +unit and property tests.

    Conway

    • pull-4236 - Fix typo in ToJSON of ConwayGovState
    • pull-4250 - Add some ToJSON instances needed by cardano-node

    Testing

    • pull-4221 - Fix a NoThunks test failure on nightly builds
    • pull-4214 - Fix estimateMinFeeTx w/ bootstrap test
    • pull-4189 - Imptests - treasury withdrawals
    • pull-4207 - Added tests from a bug report
    • pull-4238 - Imptests: ParameterChange affects ratification for in-flight proposals
    • pull-4243 - Convert small-steps testsuite to Hspec
    • pull-4248 - Fix withdrawals test data generation in EnactSpec
    • pull-4212 - Update and reorganize conformance tests
    • pull-4242 - Added UnitTestTools and IncrementalStakeTest

    Infrastructure and releasing

    Low level summary

    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-10-mithril + 2024-04-10-mithril + Wed, 10 Apr 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed the incremental storage of transactions, activated the signature of the transactions on the testing-preview network, and prepared a new network to test the scaling on mainnet data. The team also made progress on a prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they worked on refactoring the database providers of the aggregator.

    Finally, the team delivered a community requested feature that displays the minimum versions of the Cardano node that the signer supports in a machine-readable format. They also provided a manual setup guide for the relay in the SPO user guide.

    Low level overview

    • Completed the issue Implement incremental storage of Cardano transactions in signer/aggregator #1591
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue Refactor database module in aggregator #1583
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Create file with Cardano minimum versions in repository #1615
    • Worked on the issue Deploy testing-mainnet network #1617
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Completed the issue Signer metrics server displays confusing log message #1620
    ]]>
    + mithril +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-05-hydra + 2024-04-05-hydra + Fri, 05 Apr 2024 00:00:00 GMT + + High-level summary

    This week, the Hydra team released hydra 0.16.0, which supports cardano-node 8.9.0 +and can interpret conway blocks on the cardano-node. We have also updated some hydra +clients to be compatible with the new hydra api format, including hydraw and kupo.

    What did the team achieve this week

    • Update our head and hydraw instance to master (a release candidate)
    • Release 0.16.0 (without incremental decommits)
    • Reproduce close > contest > contest scenarios using stateful testing
    • Have end-to-end scenarios working for the improved /commit endpoint

    What are the goals of next week

    • Complete the improved /commit endpoint to unblock users
    • Potentially release 0.17.0 (with improved /commit endpoint)
    • Wrap up the incremental decommit work including the decommit action into the new TxTrace tests
    • Use Versioned Ouroboros protocol for handshaking between nodes.
    • Update to cardano-api-8.44.
    ]]>
    + hydra +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-03-consensus + 2024-04-03-consensus + Wed, 03 Apr 2024 00:00:00 GMT + + High level summary
    • Made the LocalTxMonitor HasTx cross-era behavior less surprising.
    • Finalized the tests in ouroboros-consensus for the UTXO-HD branch, except the mempool-parallel test which is still failing sometimes.
    • Fixed an upstream complication in quickcheck-state-machine related to Parallel state machines which should allow us for an easier and more understandable setup of the parallel mempool tests.
    • Drafted parallel state machine testing infrastructure for quickcheck-dynamic. Eventually could be used to replace the QSM infra for mempool parallel tests.
    • Cleaned up the Cardano.API.LedgerState module, required for UTXO-HD integration.
    • We have been working on Node release 8.10. The changes upstream are integrated all the way to Node. Tests and benchmarks are pending. The versions of Consensus, Ledger, and Networking are released, and we will focus next on releasing CLI, API, and finally Node.
    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-04-03-mithril + 2024-04-03-mithril + Wed, 03 Apr 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed the implementation of a more versatile beaconing mechanism, worked on implementing incremental storage of transactions, and fixed the bug in the block parser that prevented some Conway transactions from being signed. Additionally, they continued working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.

    Finally, they enhanced the internal storage of data on the test aggregator server and addressed a source of flakiness in the CI end-to-end test.

    Low level overview

    • Worked on the issue Implement incremental storage of Cardano transactions in signer/aggregator #1591
    • Completed the issue Support multiple beacon types in signer/aggregator #1562
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Completed the issue Provide fake aggregator data in an aggregated form #1594
    • Completed the issue Some transactions are not signed in testing-sanchonet #1577
    • Completed the issue End to end tests are flaky in CI #1558
    • Completed the issue npm publication fails in the release workflow #1595
    • Completed the issue Add indexes on foreign keys of SQLite stores #1603
    ]]>
    + mithril +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-30-node-cli-api + 2024-03-30-node-cli-api + Sat, 30 Mar 2024 00:00:00 GMT + + 2024-03-16 - 2024-03-30

    High level summary

    Adding support for script based committee and dreps. This includes queries and using script as arguments instead of keys on various command.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-29-sre + 2024-03-29-sre + Fri, 29 Mar 2024 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.9.1 is now deployed to all environments.

    • The legacy IOG mainnet metadata server has been retired with CF now providing +metadata server services going forward.

    • Cardano-parts PR#35, merged and linked below, offers ip information +integration into nixosConfiguration modules as well as template-diff and +template-patch recipes for easier upgrades going forward.

    Lower level summary

    Capkgs

    • Adds a shortRev suffix to package names, fixes an rclone recipe, fixes a CI +push action, defaults to recursively dereferenced object hashes, cleans up +reference patterns. See the PR description for more details: +capkgs-pull-2

    Cardano-mainnet

    • Bumps to cardano-node 8.9.1 and deploys all machines, makes ip information +available in nixosCfgs, adds new expected machine alerts, tunes snapshot +alerts and implements all updates in cardano-parts PR#35. See the PR +description for more details: +cardano-mainnet-pull-10

    Cardano-ops

    Cardano-parts

    • Upgrades cardano-node to 8.9.1 for both release and pre-release, integrates +machine ip information into nixosConfigurations, enables /etc/hosts file +usage in cardano-node topology, enhances cardano-node topology producer +generation with customizable address types, introduces template patching +recipes for easier cardano-parts updates to existing clusters. Much more +detail is available in the PR description: +cardano-parts-pull-35

    Cardano-playground

    • Bumps to cardano-node 8.9.1 and deploys all envs, rotates KES keys in most +envs, makes ip information available in nixosCfgs and implements all updates +in cardano-parts PR#35. See the PR description for more details: +cardano-playground-pull-18
    ]]>
    + sre +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-28-hydra + 2024-03-28-hydra + Thu, 28 Mar 2024 00:00:00 GMT + + High-level summary

    This week, the Hydra team conducted the monthly review meeting and investigated +a broken head situation. The team slightly improved conway forward compatibility +in explorer / hydra-node, enhanced hydra-cluster --devnet which allows e2e +testing of kupo, extended smoke test to also include committing ADA into the +head, documented the anticipated behavior of incremental decommits, and added +decommits to the tutorial.

    What did the team achieve this week

    • Conducted the monthly review meeting (link to recording already?)
    • Investigated a broken head situation #1374
    • Slightly improved conway forward compatibility in explorer / hydra-node #1373
    • Busy hydra-cluster --devnet sandbox which allows e2e testing of kupo #1378
    • Extended smoke test to also include committing ADA into the head #1377
    • Documented the anticipated behavior of incremental decommits and added decommits to tutorial
    • Another write-up of how the incremental commit/decommit could work (without needing merkle trees or L2/L1 interleaving) on this issue

    What are the goals of next week

    • Complete the written monthly report
    • Update our head and hydraw instance to master (a release candidate)
    • Complete the improved /commit endpoint to unblock users
    • Release 0.16.0 (likely without incremental decommits)
    • Reproduce close > contest > contest scenarios using stateful testing
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-27-ledger + 2024-03-27-ledger + Wed, 27 Mar 2024 00:00:00 GMT + + High level summary

    We continued focusing on adding tests and improving the test frameworks, including the quality of the generated data used in tests.

    Low level summary

    Conway

    • pull-4205 - Disable CC ratification when number of members is below ppCommitteeMinSize
    • pull-4169 - Add GovInfoEvent and add event testing capabilities to ImpTest
    • pull-4208 - Remove missingScriptsSymmetricDifference

    Testing

    • pull-4121 - Newconstraints phase3, Add newtypes: Size, SizeSpec and class Sized.
    • pull-4197 - add unsafeMkProposals to be used for testing
    • pull-4200 - Fix prop_GOV so that it runs again
    • pull-4216 - improve the GOV generator to generate more interesting signals

    Improvements

    Releasing

    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-27-mithril + 2024-03-27-mithril + Wed, 27 Mar 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team released a new Mithril distribution 2412.0. This release includes several critical updates and enhancements, such as support for the Prometheus metrics endpoint in signer, deprecation of the snapshot command in the client CLI, full Pallas-based implementation of the chain observer, and support for Cardano node v.8.9.0.

    The team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, kept implementing a more versatile beaconing mechanism, reducing the latency of transactions signature, and continued investigating a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they started working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.

    Finally, the team completed the implementation of some community-requested features to verify the output folder structure made by the client, and kept investigating a source of flakiness in the CI end-to-end test.

    Low level overview

    • Released the new distribution 2412.0
    • Publication of a dev blog post about the Mithril signer Prometheus endpoint release
    • Publication of a dev blog post about the Mithril client CLI snapshot command deprecation
    • Completed the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Completed the issue Do not require the mithril client to create the DB directory #1572
    • Worked on the issue Support multiple beacon types in signer/aggregator #1562
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue Provide fake aggregator data in an aggregated form #1594
    • Worked on the issue Some transactions are not signed in testing-sanchonet #1577
    • Worked on the issue End to end tests are flaky in CI #1558
    ]]>
    + mithril +
    + + <![CDATA[Performance & Tracing Update]]> + https://updates.cardano.intersectmbo.org/2024-03-27-performance-and-tracing + 2024-03-27-performance-and-tracing + Wed, 27 Mar 2024 00:00:00 GMT + + High level summary
    • Benchmarking: Release benchmarks for 8.9.1 have been performed and analysed.
    • Development: We've implemented a benchmarking setup for UTxO-HD's LMDB (on-disk) backend.
    • Workbench: The now modular, nix-based genesis creation has been merged to master; DRep delegation and integration of a new cardano-cli command are ongoing.
    • Tracing: Benchmarking the new handle registry feature in cardano-tracer is complete; quality-of-life improvements to Prometheus output.
    • UTxO Growth: We've adjusted our framework to support running UTxO scaling benchmarks on both a single node and a cluster.
    • Nomad cluster: new multi-cluster support with the capability to quickly adjust to changes in deployed hardware

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.9.1. Comparing with release 8.9.0, we could not detect any performance risks for that version.

    Development

    In context of UTxO scaling, we want to assess the feasability of the current on-disk solution (which is LMDB) of a UTxO-HD enabled node. Using that, the UTxO set will be kept +in live tables and snapshots on disk, significantly reducing memory requirements.

    We've implemented a benchmark setting, and a node service configuration, supporting direct disk access to a dedicated device which can be initialized with optimized +file system and mount settings. It's purpose is to serve as storage for the highly performance-critical disk I/O of the LMDB component.

    Workbench

    Our automation for creating all flavours of geneses has seen cleanup and refactoring - which has been merged to master. It can now use a more principled, and rigorously checked, modular approach +to define, create and cache the desired genesis files.

    Working on integrating new cardano-cli functionality in our automation is ongoing. The performance workbench will support a different, and updated, CLI command which will allow injection of DRep delegations into genesis.

    Tracing

    Benchmarking cardano-tracer's new handle registry feature has been performed and evaluated. We're satisfied with seeing clear performance improvements along with cleaner code, and much better test coverage. +Especially allocation rate and number of garbage collections (GC) could be significantly reduced, along with the CPU time required for performing GCs. This will allow for higher trace message throughput given +identiacal system resources - plus less system calls issued to the OS in the process.

    Furthermore, the new tracing system is getting improvements for its Prometheus output - like providing version numbers as metrics, or annotating metrics with their type - enhancing the output's overall utility.

    UTxO Growth

    The performance workbench now supports profiles aimed at simulating UTxO growth both for a single node and an entire cluster. Additionally, simulating different +RAM sizes in combination with specific UTxO set sizes is supported. For a single block producing node, the focus is on quick turnaround when running +a benchmark, gaining insight into the node's RAM usage and possible impact on the forging loop.

    The cluster profiles enable capturing block diffusion metrics as well, however they require a much longer runtime. We can now successfully benchmark the node's behaviour +when dealing with UTxO set sizes 4x - 5x of current mainnet, as well as a possible change in behaviour when operating close to phsyical RAM limit due to that.

    Nomad cluster

    Our backend now supports allocating and deploying Nomad jobs for multiple clusters simultaneously - all while keeping existing automations operational. We've taken special precautions +a cluster, as seen by the backend, can be efficiently and easily modified to reflect newly deployed, or changed, hardware. Additionally, we've added support for host volumes inside a Nomad +allocation - which will be needed for benchmarking UTxO-HD's on-disk solution.

    ]]>
    + performance-tracing +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-22-hydra + 2024-03-22-hydra + Fri, 22 Mar 2024 00:00:00 GMT + + High-level summary

    This week, the Hydra team restored test compatibility with all networks, reviewed and merged streaming plugins contributed by SundaeLabs. The team also fixed tutorial instructions for downloading the latest cardano-node, fixed the observed contesters bug, prepared a PRs for downstream clients to use the new API format for transactions (preparing the release with this breaking change). Finally, they also recorded a walkthrough video on how the hydra project is run: https://www.youtube.com/watch?v=JGUeO7A6mMU

    What did the team achieve this week

    • Restored compatibility with all networks #1355.
    • Reviewed and merged streaming plugins (only missing a how-to) #1325.
    • Fixed tutorial instructions for downloading cardano-node 8.9.0 #1367.
    • Fixed the observed contesters bug #1266.
    • Prepared a PR for Kupo using new Hydra transaction format kupo#166.
    • Recorded a walkthrough on how the hydra project is run (uncut) https://www.youtube.com/watch?v=JGUeO7A6mMU.

    What are the goals of next week

    • Conduct the monthly review meeting
    • Improve the /commit endpoint to unblock users
    • Stateful testing of transaction traces to verify corner cases for +incremental decommit
    • Release 0.16.0
    ]]>
    + hydra +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-20-consensus + 2024-03-20-consensus + Wed, 20 Mar 2024 00:00:00 GMT + + High level summary
    • Merged the alternative fs-api interface for I/O using user-supplied buffers. This feature is important because it defines lower-level primitives for the filesystem API, which opens op avenues for more use cases and more efficient I/O operations (for instance when implementing lsm-tree, which is part of our efforts to move the ledger state to disk). This feature has not been released yet.
    • Implemented new diffusion pipelining criterion .
    • Released Consensus packages containing backports for Node 8.9.1.
    • Focused on fixing the tests for ouroboros-consensus in the UTXO-HD branch. Work is ongoing.
    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-20-mithril + 2024-03-20-mithril + Wed, 20 Mar 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed UI improvements for the explorer, provided metadata about the point of the chain used during the verification process, and investigated a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they began prototyping the implementation of a more versatile beaconing mechanism to sign transactions with low latency.

    Finally, the team started implementing some community-requested features to verify the output folder structure made by the client, and fixed a source of flakiness in the CI end-to-end test.

    Low level overview

    • Completed the issue Upgrade Cardano node to 8.9.0 #1570
    • Completed the issue Explorer improvements for Cardano transactions #1554
    • Completed the issue Refactor the Cardano transactions parser with pallas-hardano #1557
    • Completed the issue Provide latest immutable file number with certified transactions in client #1536
    • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Worked on the issue Support multiple beacon types in signer/aggregator #1562
    • Worked on the issue Do not require the mithril client to create the DB directory #1572
    • Worked on the issue Some transactions are not signed in testing-sanchonet #1577
    • Worked on the issue End to end tests are flaky in CI #1558
    • Worked on the issue P2P threat modeling and risk analysis #1350
    ]]>
    + mithril +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-18-network + 2024-03-18-network + Mon, 18 Mar 2024 00:00:00 GMT + + High-level overview of sprint 57

    We released cardano-node-8.9.0 (which includes +ouroboros-newtork-0.12.0.0). This release contains the following network +upgrades:

    Soon we will release [cardano-node-8.9.1] (which includes +ouroboros-network-0.12.0.0). This release will contain:

    • Peer sharing improvements & fixes. Contributed and tested by Karl Knutsson CF.
    • cardano-ping updates to support NodeToNode_V13 & peer sharing.
    • Some smaller maintenance changes.

    The list of network features included in ouroboros-network-0.12.0.0 and +ouroboros-network-0.13.0.0 can be found here.

    We also continued working on tx-submission, ouroboros-network#3311. Mostly +working on the pure internal API for decision-making and testing it with +property-based tests. The next step is to get all the information needed to run +the decision logic in an efficient way and later write a mini-protocol client +which is using the new API and testing it.

    We also started working on thing to finalise the Genesis support from the +network. We have a PR under review, ouroboros-network#4832. We also started +to investigate how to support big ledger peer snapshots. This requires changes +in the topology file as well as cardano-node & ouroboros-network to +understand the snapshots; and on the other hand creation of such snapshots by +cardano-cli.

    Low-level summary

    This time everything was high-level, 😉.

    ]]>
    + network +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-15-hydra + 2024-03-15-hydra + Fri, 15 Mar 2024 00:00:00 GMT + + High-level summary

    This week, the Hydra team worked on aligning the specification with the current +incremental decommit implementation, added decommit to model-based tests and +also discussed the incremental commit protocol extension with researchers. The +team also updated to cardano-api 8.40 and tests against cardano-node 8.9.0, +which unblocked a possible release and re-enabled smoke tests on public +networks. They also groomed a new /commit endpoint interface from a user +discussion and discussed restructuring of the Hydra documentation. The team also +prepared a Conway-supporting hydra-node on branch lc/conway-support for +early adopters (Hi @Juantxu and @ash 👋). Some internal refactoring prepared for +upcoming streaming plugins by SundaeLabs and minor fixes to the TUI and +hydra-explorer rounded off the week.

    What did the team achieve this week

    • Aligned specification with current incremental decommit implementation and added Decommit to model based tests.
    • Discussed and explored further on incremental commits with researchers.
    • Refactored Event -> Input #1348 to prepare for streaming plugins #1325.
    • Minor fixes to the TUI and hydra-explorer clients.
    • Updated to cardano-node 8.9.0 and cardano-api 8.40 - this unblocked a possible release and re-enabled smoke tests on public networks.
    • Groomed new /commit endpoint interface #1350 from a user discussion #1337.
    • Discussed restructuring of the Hydra documentation #1349.
    • Prepared a Conway-supporting hydra-node on branch lc/conway-support #1178 (will be merged only after the hard-fork).

    What are the goals of next week

    • Prepare a PR for Kupo using new Hydra transaction format (to prepare for 0.16.0 release)
    • Review and merge streaming plugins #1325
    • Improve the /commit endpoint to unblock users
    • Test corner cases of incremental decommit transaction traces
    ]]>
    + hydra +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-15-node-cli-api + 2024-03-15-node-cli-api + Fri, 15 Mar 2024 00:00:00 GMT + + 2024-03-01 - 2024-03-15

    High level summary

    • cardano-cli: Focus is on testing Conway features. Several improvements to create-testnet-data command, useful for creating/deploying local clusters for testing. Enable parallel execution of tests.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-15-sre + 2024-03-15-sre + Fri, 15 Mar 2024 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.9.0 is now deployed to all environments.

    • A new profile-cardano-db-sync-snapshots nixosModule is available for +snapshotting dbsync state.

    Lower level summary

    Cardano-mainnet

    • Updates cardano node and cli pre-release (-ng) to 8.9.0. Adds a new +cardano-db-sync snapshots server. Bumps mithril and enhances mithril +usability with IOG trusted pool signature verification for clients and +mithril verifier service for signers. Adds miscellaneous other small +improvements, bug fixes and tuning. See the pull request description for +more details: +cardano-mainnet-pull-8

    Cardano-node

    • Adds nixos service and topology updates related to cardano-node 8.9.0 +release: +cardano-node-compare

    Cardano-ops

    • Bumps to cardano-node 8.9.0, fixes metadata server module, removes the legacy +snapshots server: +cardano-ops-compare

    Cardano-parts

    • Updates cardano node and cli pre-release (-ng) to 8.9.0 and enables new +bootstrapPeers features and compatibility in the topology functions. Bumps +mithril and enhances mithril usability with IOG trusted pool signature +verification for clients, mithril verifier service for signers, mithril +capability for process-compose and node entrypoint jobs. Adds miscellaneous +other small improvements, bug fixes and tuning. See the pull request +description for more details: +cardano-parts-pull-34

    Cardano-playground

    • Updates cardano node and cli pre-release (-ng) to 8.9.0. Bumps mithril and +enhances mithril usability with IOG trusted pool signature verification for +clients, mithril verifier service for signers, mithril capability for +process-compose and node entrypoint jobs. Adds miscellaneous other small +improvements, bug fixes and tuning. See the pull request description for +more details: +cardano-playground-pull-18

    Govtool

    • Fixes a coalesce function sql query bug in the govtool backend: +govtool-commit

    Iohk-nix

    • Adds support for bootstrap peers and sanchonet mithril configuration: +iohk-nix-pull-574

    Sanchonet-demo

    • Bumps cardano-parts for cardano-node 8.9.0 and brings the justfile demo +recipes up to 8.9.0 compatibility: +sanchonet-demo-compare
    ]]>
    + sre +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-13-ledger + 2024-03-13-ledger + Wed, 13 Mar 2024 00:00:00 GMT + + High level summary

    Focus has been on testing: adding tests and improving our testing framework to make it easier to write tests for various Conway features. +We also did some cleanup and reorganisation of code, to make it more manageable and easier to release. +We have started work on Hardfork Initiation: support for intra-era hardfork initiation and necessary updates the SPO stake distribution calculation.

    Low level summary

    Conway

    • pull-4140 - Intra era hardfork initiation
    • pull-4154 - SPO stake distr calc for HardForkInitiation
    • pull-4150 - Add ConwayUtxosPredFailure
    • pull-4162 - Add ConwayDRepIncorrectRefund and tests for GovCert
    • pull-4112 - Fail when conway features are present in transactions that use Plutus v1/v2
    • pull-4164 - Change hot credential representation in CommitteeState
    • pull-4178 - Remove code repetition in Conway era CDDL

    Testing

    • pull-4096 - Add a collection of test Plutus scripts for use in ImpTests
    • pull-4144 - Add imptests for delaying actions enactment
    • pull-4104 - Governance policy tests
    • pull-4123 - Add the ability to do constraints over trees in constrained-generators
    • pull-4163 - Reorganise GovSpec, add GovCertSpec
    • pull-4152 - Add extra type-safety to ensure that all predicate failures have roundtrip tests
    • pull-4172 - Add imptests for some more GOV predicate failures
    • pull-4139 - Add extra time from 1 sec to 2 sec for prop_soundness test.
    • pull-4173 - Update profiling instructions
    • pull-4177 - Plutusv3 initialization tests
    • pull-4155 - Fix nightly build failures

    Improvements

    • pull-4141 - Add boom placeholder
    • pull-4157 - Split Conway governance
    • pull-4188 - Simplify implementation of ToJSON1 of ListMap
    • pull-4129 - Modify PParams to use similar naming to ProtocolParams in cardano-api
    • pull-4160 - Make shelley TxWits consistent with other eras
    • pull-4168 - Add missing InjectFailure instances for ConwayUtxosPredFailure
    • pull-4086 - Change applySTS to return NonEmpty (PredicateFailure s)
    • pull-4176 - Add CARDANO_MAINNET_MIRROR to Nix shell
    • pull-4174 - Convert small-steps-test into a sublibrary
    • pull-4159 - Shelley rules cleanup

    Specification

    • pull-4042 - Fix the prose being inconsistent with the figure
    • pull-4151 - Fix an issue with txinfo and unusual notation in Babbage UTXO rule

    Releasing

    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-13-mithril + 2024-03-13-mithril + Wed, 13 Mar 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the adaptation of the Mithril explorer to support Cardano transaction verification, kept improving its UI, fixed the bug that prevented the signature of some Conway era transactions, implemented a more robust transactions parser, and started providing metadata about the point of the chain used during the verification process. Additionally, they have completed the optimization of the communications of the Mithril nodes and the Cardano node with the finalization of the Pallas chain observer.

    Finally, the team enhanced the handling of logs in the CLI of the Mithril nodes and investigated some remaining flakiness in the end-to-end test in the CI.

    Low level overview

    • Completed the issue Output CLIs logs to stderr #1515
    • Completed the issue Implement Cardano Transactions in explorer #1497
    • Completed the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue npm publish fails on latest when next exists #1531
    • Completed the issue Cardano transactions are not all signed in testing-sanchonet #1537
    • Completed the issue Enhance www demonstration in mithril-client-wasm #1552
    • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Worked on the issue Provide latest immutable file number with certified Cardano transactions in client #1536
    • Worked on the issue Explorer improvements Cardano transactions #1554
    • Worked on the issue Refactor the Cardano transactions parser with pallas-hardano #1557
    • Worked on the issue End to end tests are flaky in CI #1558
    • Worked on the issue P2P threat modeling and risk analysis #1350
    ]]>
    + mithril +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-08-hydra + 2024-03-08-hydra + Fri, 08 Mar 2024 00:00:00 GMT + + High-level summary

    This week, the Hydra team has been working on a new library cardano-api-classy containing type class instances for era witnesses and also switched nix code to use flake-parts. They also further improved the Hydra Head [explorer](http://explorer.hydra.family) UI. The team also improved error reporting on integration tests and refactored the outcome algebra in the hydra-node protocol logic. Finally, they reviewed the incremental decommit specification with researchers. Meanwhile, SundeaLabs already implemented first UDP and Kinesis event sinks based on the EventSource / EventSink refactoring.

    What did the team achieve this week

    • New library cardano-api-classy containing type class instances for era witnesses.
    • Switched the nix code to use flake-parts.
    • Completed another increment on the head explorer UI #1333.
    • Improved error reporting on integration tests #1335.
    • Refactored the outcome algebra in the hydra-node protocol logic #1340.
    • Reviewed incremental decommit specification with researchers.
    • SundaeLabs implemented first UDP and Kinesis event sinks based on #1267.

    What are the goals of next week

    • Prepare #1178 on a branch for users to try out Conway on hydra.
    • Align specification with incremental decommit implementation
    • Improve MTB in terms of new Decommit input
    • Prepare a PR for Kupo using new Hydra transaction format
    • Spike on literate Agda specification pdf
    ]]>
    + hydra +
    + + <![CDATA[Performance & Tracing Update]]> + https://updates.cardano.intersectmbo.org/2024-03-08-performance-and-tracing + 2024-03-08-performance-and-tracing + Fri, 08 Mar 2024 00:00:00 GMT + + High level summary
    • Benchmarking: We've performed release benchmarks for Node 8.9.0. Additionally, we benchmarked different GC settings for cardano-node.
    • Development: Ongoing work on the reporting pipeline and high-level profile definitions.
    • Workbench: In conjunction with DRep delegations in genesis, we're working on adjustments to a new cardano-cli command.
    • Tracing: Test coverage for the new handle registry feature in cardano-tracer is complete.
    • UTxO Growth: Currently, we're developing a series of benchmarks targeting performance implications of increased UTxO set size.
    • Nomad cluster: Disk storage safety net; better admin access to Nomad nodes; basic backend support for more than 1 cluster; new latency service.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.9.0. Initially, we identified a performance regression in connection to ledger snapshots. This has been addressed very swiftly. +Having re-run the fixed version, we could detect no performance risks in comparison with 8.7.2 / 8.7.3.

    In an additional set of benchmarks, we targeted the garbage collector (GC) settings that cardano-node is built with by default. Specifically, we compared these (copying, sequential GC) as a baseline +to using the parallel GC, the compacting GC and the non-moving GC - all of which are supported by GHC's runtime system. As GC always is a trade-off between space and time (and as a consequence, responsiveness); +we could measure the parallel GC offering a slight increase in responsiveness at the cost of delaying some evaluations - which is suboptimal for a block forger. The compacting GC could clearly +achieve a smaller RAM footprint, but only at the cost of increased CPU usage - and clearly worsened responsiveness. The non-moving GC could greatly enhance responsiveness - but increased the RAM footprint tremendously, as +well as introduced delays in the forging loop. In conclusion: the existing default is still the best choice by far for cardano-node - validated both on GHC8.10.7 and GHC9.6.3.

    Development

    The work on moving benchmark profile, and genesis, definitions out of the bash scripting / JSON data transformation space is still ongoing. Type safety and a test suite for those tasks +will allow for a much more principled approach.

    The implementation of additional rendering formats and report templates for our reporting pipeline has been completed; it is currently in testing and validation phase.

    Workbench

    We're working on integrating new cardano-cli functionality in our automations. Injecting DRep delegations into genesis - for Conway ledger benchmarks - will require us +to use a new CLI command, which differs in in output structure and options provided from the one we're using to inject stake pool delegations. This requires us to +implement and additional post-processing step for backends to find everything as expected.

    Furthermore, a PR has been merged which refactors and cleans up benchmarking profiles, with a focus on fine-tuning solo-node benchmarks which scrutinize a single cardano-node process.

    Tracing

    The test suite for cardano-tracer's new handle registry feature is complete, and the new feature passes all tests. At the moment, we're +preparing it for merging into master.

    UTxO Growth

    We're developing a series of benchmarks that will provide insight into possible changes to the Node's performance characteristics given different UTxO set sizes and numbers of delegated wallets. +What we aim to capture in these benchmarks is the system's capability to scale with UTxO growth - while simultaneously evaluating hardware requirements. The workloads will be based on existing release benchmarks, but allow for flexibility regarding UTxO set and delegations. They will target the existing in-memory solution, and at the same time permit feasability testing UTxO-HD's on-disk +flavour - which does not keep the entire UTxO set in RAM permanently.

    Nomad cluster

    Implementation of cluster machine disk space checking and garbage collection is complete. A requirement was that no +monitoring process interferes with a running benchmark, so a non-synchronous approach was chosen to guarantee enough disk space. This prevents failing +runs, and thus the necessity to repeat them.

    In the process, the workbench backend was equipped with a wider range of cluster commands and abstractions, which makes administrating cluster +machines more flexible. This includes a new service to create a network latency matrix for deployed cluster hardware - generalizing the approach +chosen during the Nomad cluster's initial validation phase. This can guarantee the validity of existing baselines in case of hardware reboots, or changes +in topology.

    Last not least, the backend is currently receiving an additional feature: supporting more than 1 hardware cluster. This will enable us, +in the future, to benchmark on ephemeral clusters - without interfering with the hard requirements, or the schedule, of release benchmarking +on our default deployment. The motivation is being able to benchmark different hardware configurations, along with varying cardano-node options and +initial ledger states on a parallel schedule - also, without having to keep those clusters running at all times.

    ]]>
    + performance-tracing +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-06-consensus + 2024-03-06-consensus + Wed, 06 Mar 2024 00:00:00 GMT + + High level summary
    • Completed the rebase of the production libraries for UTXO-HD on 8.9, both in ouroboros-consensus, cardano-api and cardano-node.
    • Measured sync and replay times and memory in UTXO-HD. The latest result are reported here.
    • Bugfixed the snapshot interval.
    • Added an extra case to isIncorrectClaimedFlag for Babbage and Conway eras.
    • Added a db-analyser analysis to get the UTXO size per slot. The result of the analysis is illustrated here.
    • Started integration work for Node release 8.10.
    • Reviewed the Genesis pull-requests submitted by Tweag. They are pending a final round of review.
    • Helped the current release engineer prepare the 8.9 release candidate.
    • The Consensus Team has also been helping troubleshoot known issues with 8.9 (eg snapshots causing missed leadership schedules, unexpected snapshot interval, integration tests, etc).
    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-06-mithril + 2024-03-06-mithril + Wed, 06 Mar 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they worked on adapting the Mithril explorer to support Cardano transaction verification, started implementing a more efficient transaction signing scheme, stabilized the type names in the API, and kept investigating a bug that prevents the signature of some Conway era transactions. Additionally, they have completed the first version of the Prometheus monitoring endpoint for the signer.

    Finally, the team fixed a bug occuring in the publication of the npm packages of the client, enhanced the HTTP tests of the aggregator, and kept working on the KES period computation in the Pallas chain observer.

    Low level overview

    • Completed the issue Expose Prometheus metrics for Mithril signer #1096
    • Completed the issue Make HTTP server tests more robust #1524
    • Completed the issue Stabilize namings in Cardano Transactions API #1535
    • Completed the issue Reorganize crates in the repository #1528
    • Worked on the issue Implement Cardano Transactions in explorer #1497
    • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Worked on the issue Output CLIs logs to stderr #1515
    • Worked on the issue npm publish fails on latest when next exists #1531
    • Worked on the issue Cardano transactions are not all signed in testing-sanchonet #1537
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue P2P threat modeling and risk analysis #1350
    ]]>
    + mithril +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-04-network + 2024-03-04-network + Mon, 04 Mar 2024 00:00:00 GMT + + High-level overview of sprint 56

    Cardano-Node, Cardano-API, Cardano-CLI

    In the last sprint, the network team was designated to take the Release +Engineering Role, as the coming release contains mostly network advances. +Armando Santos has been making progress on it. The following packages were +published to CHaP:

    and other ouroboros-network packages with minor changes. The following +packages were also published:

    The work on cardano-node is in progress, see cardano-node#5485

    We would like to thank Karl Knutsson (CF) for helping us to test the upcoming +cardano-node release.

    Ouroboros-Network

    We continued working on tx-submission, ouroboros-network#3311

    We started to execute an idea to put all configuration values used by the +diffusion layer Ouroboros.Network.Diffusion.Configuration module. Currently, +default values are spread in different repositories (e.g. cardano-node, +ouroboros-consensus). See ouroboros-network#4805.

    We restored how syncing works in bootstrap mode to get the same performance +characteristics, see ouroboros-network#4809, ouroboros-network#4810.

    We started working on Outbound-Governor Genesis mode, see +ouroboros-network#4813.

    Ouroboros-Consensus

    We requested to modify how bulk-sync mode works to make it use the same +mechanism that the newly added LedgerStateJudgement. See +ouroboros-consensus#958.

    Low-level summary

    We also addressed a minor issue regarding tracing LedgerStateJudgement +changes, see ouroboros-network#4816.

    ]]>
    + network +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-01-hydra + 2024-03-01-hydra + Fri, 01 Mar 2024 00:00:00 GMT + + High-level Summary

    This week the Hydra team, in addition to the usual maintenance and bug fixing, has been working on the preparation for the switch to Conway making the codebase less babbage specific. The team also conducted the monthly review meeting and published the monthly report on a new website (to keep those reports separate of main repository). They also added a basic UI to the Hydra explorer, switched to aggregating sanchonet data and also fixed the smoke tests to work on sanchonet. Finally, they continued progress the off-chain incremental commit protocol changes.

    What did the team achieve this week

    What are the goals of next week

    • Complete preparation for #1178 to switch to Conway (by "flipping" a switch)
    • Complete off-chain incremental commit protocol changes #199 (and focus on the on-chain part after).
    • Re-align with SundaeLabs on EventSource and EventSink refactoring.
    ]]>
    + hydra +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2024-03-01-sre + 2024-03-01-sre + Fri, 01 Mar 2024 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.8.1-pre is now deployed to sanchonet, two-thirds of preprod, +one-third of preview and also voltaire private chain networks.

    • Catalyst Voltaire private chain was respun and an updated db-sync and govtool +backend deployed after hard fork to Conway era.

    • IOG sanchonet pool block producers are now also signing mithril +certificates.

    • A mithril-signer-verifier service now runs on all IOG SRE mithril signers and +generates alerts if no recent mithril certificates have been signed.

    • All cardano-parts mithril clients, whether via nixosConfiguration, +process-compose jobs or the nix cardano-node entrypoint, will now +automatically verify that a trusted IOG pool has signed a mithril certificate +prior to using the associated mithril state. If no trusted IOG pool has +signed a recent mithril certificate, mithril state usage with be skipped and +a classic sync from genesis to tip will be performed.

    • A significant amount of effort was applied towards the upcoming cardano-node +8.9.x-pre release in order to align nixos service module code between +cardano-node nixos services, iohk-nix topology generation, cardano-ops legacy +code, and cardano-parts module compatibility.

    Lower level summary

    Work in progress

    ]]>
    + sre +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-29-node-cli-api + 2024-02-29-node-cli-api + Thu, 29 Feb 2024 00:00:00 GMT + + 2024-02-16 - 2024-02-29

    High level summary

    • cardano-cli: Release cardano-cli-8.20.3.0; Integrate with most recent ouroboros network, consensus and api. Enhancements to various queries. Continue working on implementing tests for Conway era.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-28-ledger + 2024-02-28-ledger + Wed, 28 Feb 2024 00:00:00 GMT + + High level summary

    Quite a useful and desired feature described in +CIP-0110 of allowing reference +scripts for PlutusV1 has been implemented for Conway.

    For the most part we are now spending time on writing tests and enhancing out tooling that +we use for testing. This is paying out dividends since we are finding and fixing important +Conway related bugs. Notable bugs that were squashed this time around are related to using +incorrect stake distribution for both DReps and Stake Pools.

    Low level summary

    Conway

    • pull-4059 - Enable Plutus v1 reference scripts in Conway
    • pull-4088 - Committee query improvements
    • pull-4115 - Switch to using the correct stake pool distribution for voting
    • pull-4116 - Fix Drep stake distribution

    Testing

    • pull-4100 - PPU wellformedness tests
    • pull-4097 - Test that unwithdrawn rewards contribute to voting power
    • pull-4102 - fix prop_DELEG in STS tests
    • pull-4106 - Imp script fixes
    • pull-4118 - Add test for maps with small domains
    • pull-4119 - NewConstraints phase1. Add BoolFn And and Or and tests
    • pull-4120 - Newconstaints phase2 rename IsUniverse (BaseUniverse), Fn (BaseFn)
    • pull-4130 - Added tests for checking proposal network IDs
    • pull-4114 - Imp Bootstrap address support

    Improvements

    Specification

    Releasing

    • pull-4105 - Update RELEASING with revisioning instructions
    • pull-4117 - Use plutus-ledger-api 1.22.1
    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-28-mithril + 2024-02-28-mithril + Wed, 28 Feb 2024 00:00:00 GMT + + High level overview

    This week the Mithril team announced the release of a new Mithril distribution 2408.0. This release includes several critical updates and enhancements, such as improved support for stake distribution, Mithril era markers retrieval in the Pallas chain observer, enhanced support for the Conway era and Sanchonet network, as well as various bug fixes and performance improvements. +In addition, the team has made changes to the Mithril client CLI, changing the log output from stdout to stderr from v0.7.0. This announcement was made in the developer blog post.

    The team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the support for the verification in the browser with the WASM client, they worked on enhancing the associated client CLI API, and implemented smoke tests. Additionally, the team has activated the signature of Cardano transactions on the testing-sanchonet network, and they have investigated a bug that prevents the signature of some transactions on this network.

    Finally, the team worked on reorganizing the repository structure, fixed an issue with test folder generation on MacOS, and worked on some documentation improvements.

    Low level overview

    • Released the new distribution 2408.0
    • Publication of a dev blog post about the Mithril SanchoNet network release.
    • Publication of a dev blog post about a breaking change in the Mithril client CLI.
    • Completed the issue Implement Cardano Transactions commands in the client binary #1469
    • Completed the issue Implement Cardano Transactions verification in the WASM client #1470
    • Completed the issue Some end to end tests are flaky in the CI #1147
    • Completed the issue Release 2408 distribution #1500
    • Completed the issue Unify test folder generation #1508
    • Completed the issue Adapt Mithril Client multi-platform test for Cardano Transactions #1510
    • Completed the issue Document Mithril signer footprint #1519
    • Completed the issue Add a runbook for running Client multi-platform tests #1530
    • Completed the issue Update workflow github actions to node-20 #1520
    • Worked on the issue Cardano transactions are not all signed in testing-sanchonet #1537
    • Worked on the issue Make HTTP server tests more robust #1524
    • Worked on the issue Stabilize namings in Cardano Transactions API #1535
    • Worked on the issue Reorganize crates in the repository #1528
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue P2P threat modeling and risk analysis #1350
    ]]>
    + mithril +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-23-hydra + 2024-02-23-hydra + Fri, 23 Feb 2024 00:00:00 GMT + + High-level Summary

    This week, the Hydra team successfully fixed the fanout after contest bug using their significantly improved model-based test suite. Additionally, they transitioned to cardano-api version 8.38 and started testing against cardano-node version 8.8. Furthermore, they enhanced fee estimation within the hydra-node internal wallet resulting in cheaper head opening / closing transactions and added transaction metadata to help identifying Hydra protocol transactions.

    What did the team achieve this week

    • Fixed the fanout after contest bug using our signifcantly improved model-based test suite #1260
    • Switched to cardano-api 8.38 and run tests against cardano-node 8.8 #1297
    • Improved fee estimation in hydra-node internal wallet #1315
    • Added transaction metadata to identify Hydra protocol transactions (on L1) #1311

    What are the goals of next week

    • Have the monthly review meeting + write a report
    • Explorer targeting and showing data of the latest released hydra version
    • Implement off-chain incremental commit protocol changes
    • Review EventSource and EventSink refactor done by SundaeLabs
    • See smoke tests passing consistently on Sanchonet
    ]]>
    + hydra +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-21-consensus + 2024-02-21-consensus + Wed, 21 Feb 2024 00:00:00 GMT + + High level summary
    • Triaged an issue where blocks were unnecessarily downloaded, and coded a prototype for a partial solution.
    • Discovered an io-sim bug while developing the Genesis state machine tests. The bug was already fixed upstream.
    • Added support for making the number of ledger state snapshots to be kept configurable. This needs to be integrated in the node.
    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-21-mithril + 2024-02-21-mithril + Wed, 21 Feb 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They worked on enhancing the client CLI output and almost completed the support for the verification of Cardano transactions in the browser with the WASM client. The team also worked on a new feature of the Pallas chain observer to support stake distribution retrieval, and fixed the majority of the flakiness occurring in the CI end-to-end tests. Additionally, they have deployed the new Mithril network running on SanchoNet.

    Finally, the team created a new example crate for using the client library to verify Cardano transactions, kept working on the threat modeling and risk analysis for the Mithril network, and completed their new tool for automatic documentation generation for the CLIs.

    Low level overview

    • Worked on the issue Implement Cardano Transactions commands in the client binary #1469
    • Worked on the issue Implement Cardano Transactions verification in the WASM client #1470
    • Worked on the issue Some end to end tests are flaky in the CI #1147
    • Completed the issue Re-spin Sanchonet network #1503
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue Add signing capabilities to the root route of the aggregator #1496
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Completed the issue Add an example crate for the CardanoTransactions type #1495
    • Worked on the issue Unify test folder generation #1508
    • Completed the issue Generate automatic documentation for CLIs #1471
    ]]>
    + mithril +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-19-network + 2024-02-19-network + Mon, 19 Feb 2024 00:00:00 GMT + + High-level overview of sprint 55

    This sprint the networking was nominated for the Cardano Release Engineer role and +we've been working on the integration of bootstrap peers with cardano-node. This +is a work in progress: cardano-node-5485. cardano-node-8.9 will be the first +node which supports the bootstrap peers feature, but we anticipate additional +improvements needed before this is used at scale.

    We disabled mean reward for new peers in the churn mechanism which was hurting +connection in remote destinations. Thanks to Karl Knutsson (CF) for +providing evidence and a patch. In future, this mechanism will be further +changed, but this requires more analysis. ouroboros-network#4800

    We continued working on tx-submission, ouroboros-network#3311

    We welcome Marcin Wójtowicz as part of the Networking +Team of Cardano Core Tech. He reviewed our documentation as part of his +onboarding process: ouroboros-network#4802.

    Andrew Westberg (DripDropz) corrected documentation regarding which +node-to-node protocol version introduced P2P.

    Low-level summary

    Open Source Contributions

    IOSim

    We released io-sim-1.4.1.0 with some new features & improvements:

    ]]>
    + network +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-16-hydra + 2024-02-16-hydra + Fri, 16 Feb 2024 00:00:00 GMT + + High-level Summary

    This week, the team made finally progress on the model based testing framework (and reproducing a bug) by fixing issues related to fully validating Cardano transactions. They also enabled continuous deployment of hydra-explorer to http://explorer.hydra.family/heads, facilitating easier access for users. Furthermore, they improved code quality by incorporating Haskell linting into their CI workflow and addeda user-ished conversion of HeadId to CurrencySymbol.

    What did the team achieve this week

    • Fixed model based testing framework to fully validate Cardano transactions
    • Enabled continuous deployment of hydra-explorer to http://explorer.hydra.family/heads
    • Identified need for cardano-node 8.8 and cardano-api 8.38 (breaking changes) to continue integration with Conway networks
    • Added Haskell linting to our CI workflow - Minor addition to convert HeadId into CurrencySymbol #919
    • Reviewed a small refactor PR on our model-based test runner #1300

    What are the goals of next week

    • Fix the fanout after contest bug
    • Bite the bullet and have a non-mainnet compatible master to complete smoke tests on sanchonet
    • Specify the on-chain validators for incremental decommits
    ]]>
    + hydra +
    + + <![CDATA[Performance & Tracing Update]]> + https://updates.cardano.intersectmbo.org/2024-02-16-performance-and-tracing + 2024-02-16-performance-and-tracing + Fri, 16 Feb 2024 00:00:00 GMT + + High level summary
    • Benchmarking: Release benchmarks for 8.8.0 have been performed; we created a local repro for a residual issue.
    • Performance: We've implemented and benchmarked two candidates investigating residual issues with GHC9.6.
    • Development: Work on the reporting pipeline is ongoing; integration of DReps into benchmarking workloads has begun.
    • Workbench: Implementation of high-level profile definition is ongoing.
    • Tracing: The handle registry feature for cardano-tracer is completed; currently in testing.
    • Nomad cluster: Increased robustness of deployment and run monitoring has been merged; work on garbage collection has started.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.8.0-pre. Comparing with release 8.7.2, we could +not detect any performance risks for that version. We even saw a slight improvement in block fetch related metrics, which led to slightly improved block diffusion times.

    Furthermore, we've managed to boil down a complex residual performance issue measured on the cluster to a local reproduction. This enables our DevX team, with highly specialized knowledge of GHC's compiler internals, to +investigate each step in code generation and optimzation, and independently observe the effects of code changes to the affected component.

    Performance

    Work on the remaining performance issue with GHC9.6 led us to produce two candidates based on Node 8.7.2, benchmarking +the implacations local small changes have for GHC9.6's optimizer. Though those candidates did not uncover the +issue's root cause, they were able to disprove a hypothesis as to its nature, and quantify the performance impact of said small changes.

    Development

    Node 8.8.0 comes with capabilities to inject DReps and DRep delegations into Conway genesis. We've started work +on integrating those into our automations, and setting sensible values for benchmarking. The aforementioned +delegations representing a new data structure in the Conway ledger, we aim to run +existing workflows extended with varying sizes of that new structure, measuring their pressure on ledger queries and operations.

    Workbench

    The performance workbench relies heavily on shell scripting and manipulating JSON data for a great part of its features. This approach +is very effective for quick experimentation, but lacks in verifiable properties as well as accessibility for new users of workbench.

    After the successful Haskell port of cluster topology creation, and verification, we're currently applying +the same model in porting the entirety of benchmarking profiles to Haskell. The obvious gains are widening workbench's +audience both for users and developers, as well as implementing a principled approach to all workbench data structures and transformations.

    At the same time, we're porting workbench's many options to create fine-tuned geneses, following the same approach.

    Tracing

    We've outfitted cardano-tracer with a handle registry feature that lets the service work on file handles internally, rather than opening and closing files for each operation. The feature is completed; at the moment we're adding +appropriate test cases to the service's test suite for validation of its behaviour, and for safeguarding future development.

    Nomad backend

    Several improvements for our cluster backend have been merged to master, increasing its overall robustness. We can now safely handle some corner cases where Nomad processes unexpectedly exited, or deployments errored out. Furthermore, an ongoing +run can now reliably survive a temporary loss of heartbeat connection between Nomad client and server, without +the benchmarking metrics being affected.

    Currently, we're working on a reliable automation of garbage collecting old nix store entries on the cluster machines, as they fill up disk space. The design has to consider both not interfering with ongoing benchmarks, and +avoiding deployment overhead caused by cleaning the store too frequently.

    ]]>
    + performance-tracing +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-16-sre + 2024-02-16-sre + Fri, 16 Feb 2024 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet state was respun from slot 14255995 for cardano-node 8.8.0-pre
    • Cardano node 8.8.0-pre is now deployed to sanchonet, shelley-qa, two-thirds +of preprod and one-third of preview networks
    • IOG pool block producers are now signing mithril certificates for preview, +preprod and mainnet networks
    • A cardano performance dashboard is now available for both playground and +cardano-mainnet deployments

    Lower level summary

    Cardano-mainnet

    • Adds mithril signers and perf dashboard to the mainnet cluster; improves +network docs, tunes alerts, plus misc fixes: +cardano-mainnet-pull-8

    Cardano-parts

    • Adds mithril signer capability to role-block-producer nixosModule, adds a +profile-mithril-relay nixosModule and includes misc other improvements and +fixes: +cardano-parts-pull-31

    • Updates packages for sanchonet respin, adds a node performance dashboard +template and fixes misc issues: +cardano-parts-pull-32

    Cardano-parts

    • Adds mithril signers and mithril relays to preview and preprod networks and +includes misc other improvements and fixes: +cardano-playground-pull-15

    • Updates machines and pin for sanchonet respin, adds a node performance +dashboard and fixes misc issues: +cardano-playground-pull-16

    Iohk-nix

    ]]>
    + sre +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-15-node-cli-api + 2024-02-15-node-cli-api + Thu, 15 Feb 2024 00:00:00 GMT + + 2024-02-01 - 2024-02-15

    High level summary

    • cardano-cli: Added the 'immutable' tip parameter to conway queries that allow the user to query either the current volatile tip (default) or the immutable tip. The committee keys can now sign transactions, required to submit votes.

    • cardano-api: Fix Conway PlutusV3 script hash mismatch. Make committee hash prefixes CIP-5 compliant.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-14-ledger + 2024-02-14-ledger + Wed, 14 Feb 2024 00:00:00 GMT + + High level summary

    Last few weeks were spent mostly on implementing various fixes, writing tests and +improving capabilities of our testing frameworks. Important bug fixes are:

    • Retention of Anchor for proposal procedures in the ledger state in order for users to be +able to query the node for those anchors
    • JSON serialization of rational numbers in protocol parameters and governance procedures +are encoded without loss of precision

    Feature wise, we've added a new protocol parameter that controls the contribution of +reference scripts sizes in the transaction fee calculation formula.

    Major achievement that is worth announcing is a Haskell package named +cuddle that we developed over the last few +months. Soon we will be transitioning to specifying CDDL in Haskell for all eras using +that package. It will be used to compile the CDDL specification that developers in the +community rely on so much. There are enormous benefits in using this tool, when compared +to writing CDDL specification manually. Namely it allows us to reduce duplication and +reuse common and unchanged specification from previous eras. It also improves safety and +correctness of our specification and decoders, because it ensures that the specification +is well typed and it uses QuickCheck to generate random data for validating that our +decoders are implemented according to the spec.

    Low level summary

    Conway

    • pull-4031 - Further proposals improvements. Take 2
    • pull-3996 - Index aware PlutusPurpose
    • pull-3983 - Include reference scripts size in min fee calculation
    • pull-4040 - Redeemers serialization fixes
    • pull-4033 - Make Conway-specific queries only available in Conway
    • pull-4028 - Embed ProposalProcedure in GovActionState
    • pull-4056 - Reduce duplication in Conway UTXOW rule
    • pull-4055 - Update MinFeeRefScriptCoinsPerByte.
    • pull-4053 - Rename committeeQuorum to committeeThreshold
    • pull-4058 - Fix ToJSON instance of BoundedRatio to avoid precision loss
    • pull-4070 - Rename AsIndex to AsIx
    • pull-4065 - Remove ConwayPool rule definition

    Improvements

    • pull-4037 - Add capability to hash Plutus scripts directly
    • pull-4030 - Report Plutus ScriptHash upon execution failure

    Testing

    • pull-3895 - Constrained v2
    • pull-3981 - Test proposals rewrite
    • pull-4051 - Full support of random and quickcheck-transformers in impTest
    • pull-4050 - Fixed the "All Tx are valid on traces of length 150" intermittent bug
    • pull-4049 - Support for Plutus scripts in ImpTest
    • pull-4075 - Discontinue the mingw target in the nix build
    • pull-4072 - Fix ouroborus-consensus serialization roundtrip test
    • pull-4080 - Test that a resigned CC cannot be reelected without removal
    • pull-4083 - Fix flakyness at the cost of turning test on during development
    • pull-4084 - Fix intermittent test failures in leader-proportion test

    Specification

    • pull-4015 - Shelley ledger spec: amend erratum on nonce stabilization window
    • pull-4064 - Fix wrong prose for new epoch environment
    • pull-4081 - Fix MIR rule using wrong values for treasury and reserves

    Releasing

    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-14-mithril + 2024-02-14-mithril + Wed, 14 Feb 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the upgrade of the client library and the CLI to support the verification of Cardano transactions. They also released the new Mithril network running on SanchoNet. Additionally, the team rolled out a new feature of the Pallas chain observer (that now supports the retrieval of Mithril era markers), and kept investigating some flakiness occurring in the CI end-to-end tests.

    Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and updated the Mithril network architecture documentation.

    Low level overview

    • Published a development blog post Mithril SanchoNet network released
    • Completed the issue Implement transactions verification in client library #1468
    • Completed the issue Implement Cardano Transactions commands in the client binary #1469
    • Completed the issue Create a test network on SanchoNet #1173
    • Completed the issue Update Mithril network architecture documentation #1488
    • Completed the issue Upgrade http dependency #1474
    • Completed the issue Extract database feature from common crate #1492
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue Some end to end tests are flaky in the CI #1147
    • Worked on the issue Add an example crate for the CardanoTransactions type #1495
    • Worked on the issue Generate automatic documentation for CLIs #1471
    ]]>
    + mithril +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-09-hydra + 2024-02-09-hydra + Fri, 09 Feb 2024 00:00:00 GMT + + High-level Summary

    This week, the Hydra team worked on forward compatibility for Conway support, deployed the hydra explorer tool, and improved the model based testing to support more actions (Fanout and Rollbacks).

    What did the team achieve this week

    • Addressed flakyness in two types of integration tests
    • Fixed our tooling (HLS 2.6 on GHC 9.6.4)
    • Fixed configuration of running head in preview
    • Added Fanout and Rollbacks to our Model basd test suite #1296
    • Deployed the hydra explorer to http://explorer.hydra.family:9090/heads (url will change a bit more)
    • Updated smoke test to run sanchonet

    What are the goals of next week

    • Fix the fanout after contest bug
    • Specify the on-chain validators for incremental decommits
    • Complete smoke tests on sanchonet
    ]]>
    + hydra +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-07-consensus + 2024-02-07-consensus + Wed, 07 Feb 2024 00:00:00 GMT + + High level summary

    This week we managed to integrate in the node the Consensus version of the UTxO-HD prototype that features the second version of the Ledger DB API. +We also changed the epoch structure for Conway, made progress towards the Bootstrap State Machine and Peras planning. +On the support front, we are investigating the impact of snapshots on missed leadership checks.

    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-07-mithril + 2024-02-07-mithril + Wed, 07 Feb 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the aggregator routes responsible for generating proofs of membership for a list of Cardano transactions and for listing produced artifacts. Additionally, they worked on extending the Mithril client library to support the verification of Cardano transactions, and on the creation of the new Mithril network running on SanchoNet.

    Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and investigated some flakiness occurring in the end-to-end tests in the CI.

    Low level overview

    • Completed the issue Implement proof generation route in the aggregator #1467
    • Completed the issue Implement artifact routes in the aggregator #1478
    • Completed the issue Enhance ImmutableFile list computation resilience #1450
    • Completed the issue Add WASM client step in Mithril Client multi-platform test #1408
    • Completed the issue Enhance end to end test for Cardano hard forks #1464
    • Worked on the issue Implement transactions verification in client library #1468
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue Some end to end tests are flaky in the CI #1147
    • Worked on the issue Handle cancellation of certificate verification in WASM client #1480
    • Worked on the issue Upgrade http dependency #1474
    • Worked on the issue Generate automatic documentation for CLIs #1471
    ]]>
    + mithril +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-05-network + 2024-02-05-network + Mon, 05 Feb 2024 00:00:00 GMT + + High-level overview of sprint 54

    In this sprint, we merged the bootstrap peers (aka weak genesis) changes to +the ouroboros-network repository (ouroboros-network#4615). We continued +working on integration & testing it using an early development version of +cardano-node (cardano-node#5485).

    Andrew Westberg (DripDropz) noticed and fixed a mistake in the cddl spec which resulted in +misleading documentation; ouroboros-network#4790. The Handshake protocol flag +should be called initiatorOnlyDiffusionMode. Library authors providing +connectivity with other nodes via the node-to-node protocol are advised to review +their implementation.

    We continued working on the tx-submission decision logic; +ouroboros-network#3311.

    Karl Knutsson (CF) implemented:

    Open Source Contributions

    IOSim

    We released a new version of io-sim to Hackage:

    NoThunks

    We released a new version of nothunks to Hackage:

    Low-level summary

    ]]>
    + network +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-02-sre + 2024-02-02-sre + Fri, 02 Feb 2024 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano explorer is being sunset and will soon be replaced by a new Cardano +Foundation explorer
    • IOG mainnet pools are now participating in propagation time reporting using +Cardano Foundation's blockperf +tool
    • Cardano-parts node nixosConfigurations, node entrypoint and process-compose +node jobs now utilize mithril +client automatically on preview and preprod networks for faster +synchronization of first start up. Mainnet mithril client use as well as +signer modules will be available soon.

    Lower level summary

    Cardano-mainnet

    Cardano-parts

    • Adds a block performance module which utilizes cardano-foundation's blockperf +for aggregate block propagation reporting: +cardano-parts-pull-29
    • Adds a mithril client for nixosConfigurations, process-compose cardano-node +processes and cardano-node entrypoint: +cardano-parts-pull-30

    Iohk-nix

    • Adds required mithril client environment information for preview, preprod, +mainnet: +iohk-nix-pull-570

    Cardano-world

    Upstream Contributions

    Blockperf

    ]]>
    + sre +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-02-02-hydra + 2024-02-02-hydra + Fri, 02 Feb 2024 00:00:00 GMT + + High-level Summary

    This week, the Hydra team authored and published the monthly report for January 2024, enhanced user feedback for failed commands, updated cardano-api dependency and GHC to newer versions, re-opened their persistent head in preparation for the hard-fork, extended the model-based testing suite to cover the closing of heads, fixed a bug in io-sim, and contributed to cardano-node.

    What did the team achieve this week

    What are the goals of next week

    • Fix the fanout after contest bug #1260
    • Run Hydra smoke tests on sanchonet #1257
    • Specify the on-chain validators for incremental decommits #1057
    • Have the explorer hosted #696
    • Prepare PRs for dropped JSON instances from API #1213
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-31-ledger + 2024-01-31-ledger + Wed, 31 Jan 2024 00:00:00 GMT + + High level summary

    One very important Conway feature that became available since last report is the ability +for Stake Pool Operators to vote on some of the security relevant protocol parameter +updates. We organized proposal hierarchy into a cohesive implementation, which together +with good tests gives us confidence in its correctness.

    We also fixed a few important bugs:

    • Preventing Constitutional Committee Members from voting on governance actions that they +should not be allowed to vote on.
    • Prevent deposits from appearing in orphaned reward accounts after the staking credential +has been unregistered, but before the proposal procedure deposit has been returned.
    • Ensure Sets are encoded in CBOR with tag 258 by default

    Further improvements in testing tools and addition of more tests.

    Low level summary

    Conway

    • pull-3982 - Added SPO voting thresholds for security relevant parameters
    • pull-3978 - Proposals pruning rewrite
    • pull-4003 - Prefix Set encoding with tag 258
    • pull-3999 - Add PParamUpdates to the plutus context, by transforming them to Plutus Data
    • pull-4008 - Fixed a bug in GOV rule
    • pull-4013 - Remove EnactState from ConwayGovState
    • pull-4025 - Further improvements to Proposals
    • pull-4021 - Move unclaimed rewards from proposals to treasury

    Testing

    • pull-3997 - Added DRep delegation injections to Conway
    • pull-4023 - Add a function registerInState to EraTransition
    • pull-4005 - Fixes in Shelley Imp framework and other small things
    • pull-4004 - Verify that enacted gov action is removed
    • pull-4016 - Fix Arbitrary instance and invariant checking for Proposals

    Improvements

    Releasing

    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-31-mithril + 2024-01-31-mithril + Wed, 31 Jan 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team continued implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the signature of the transactions set and implemented the aggregator route, responsible for generating proofs of membership for a list of Cardano transactions. Additionally, they finalized the manual workflow to test the NPM client package in the CI and enhanced the resilience of computing the list of immutable files in a Cardano node database. The team also expanded the coverage of end-to-end tests in the CI to accommodate multiple versions of the Cardano node and various hard fork scenarios.

    Finally, they completed the enhanced node communications between Mithril and Cardano for retrieving UTXOs and kept working on the threat modeling and risk analysis for P2P networking.

    Low level overview

    • Completed the issue Light Wallet: Compute message to sign for CardanoTransactions #1436
    • Completed the issue Light Wallet: Implement proof generation route in the aggregator #1467
    • Completed the issue Enhance ImmutableFile list computation resilience #1450
    • Completed the issue Enhance end to end test for Cardano hard forks #1464
    • Completed the issue Add WASM client step in Mithril Client multi-platform test #1408
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue Generate automatic documentation for CLIs #1471
    ]]>
    + mithril +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-31-node-cli-api + 2024-01-31-node-cli-api + Wed, 31 Jan 2024 00:00:00 GMT + + 2024-01-16 - 2024-01-31

    High level summary

    • cardano-cli: Adapt the output of the protocol-parameters query to show all parameters in Conway. Improved help on various commands. New command create-testnet-data to eventually replace create-staked.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Performance & Tracing Update]]> + https://updates.cardano.intersectmbo.org/2024-01-31-performance-and-tracing + 2024-01-31-performance-and-tracing + Wed, 31 Jan 2024 00:00:00 GMT + + High level summary
    • Benchmarking: GHC 9.6.3 benchmarks for node 8.7.2 have been performed.
    • Development: Additional features for our reporting pipeline, while simultaneously reducing dependency footprint.
    • Tracing: Implementation for cardano-tracer to work on handles instead of files; work on New Tracing Quickstart document has begun.
    • Nomad cluster: We're preparing an upgrade to the latest Nomad version.

    Low level overview

    Benchmarking

    We've performed a full set of GHC 9.6.3 benchmarks for node 8.7.2. For recommending GHC9.6 as a default build platform for cardano-node - from a performance perspective - we observe only one residual issue. As a way to +address this, we've decided to create a reproduction benchmark targeting the affected component.

    Development

    Our reporting pipeline will be expanded to support a wider range of rendering formats, as well as report templates. As the pipeline is part of our workbench - and thus gets downloaded and built when entering the workbench shell - it's +good practice to keep a small dependency footprint. When reworking the pipeline, we aim to simultaneously reduce dependencies.

    Tracing

    So far, cardano-tracer has internally been using files, or file names, for the purpose of logging trace messages it receives via forwarding. This is simple, but induces quite some overhead at runtime: files have to be opened and closed for each message. +Using and managing open file handles inside cardano-tracer does remove that overhead, but unsurprisingly introduces some complexity into the application code. Currently, we're working on implementing that change.

    Furthermore, we're working on a Quickstart document for the new tracing system, with end users as its intended audience. It will contain recommended production use setup(s), and how to efficiently configure and run them step by step. Additionally, it +will provide a brief, but comprehensive overview over the features at the user's disposal.

    Nomad backend

    On the Nomad cluster, we've experienced undesired system behaviour when the heartbeat between the Nomad server and a client is interrupted temporarily - although the Nomad job itself is still 100% functional. A Nomad +upgrade to the latest version promises to fix that, but it turn comes with other issues. We're currently working on adapting our automation and deployment around those known issues, before we can eventually +apply the upgrade.

    ]]>
    + performance-tracing +
    + + <![CDATA[DB Sync Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-30-db-sync + 2024-01-30-db-sync + Tue, 30 Jan 2024 00:00:00 GMT + + High level summary

    The DBSync team has prepared and tested a new db-sync version for mainnet, we have continued our +integration and update for Conway and have extended its modularity.

    Lower level summary

    • We attempt to turn db-sync into a modular project that can run with wither low or high recourses +#1610 +#1613 +#1590

    • Moving the flags above to a config file +#1609

    • Optimizations +#1595 +#1607

    • Conway Support and updates +#1581 +#1573 +#1570

    ]]>
    + db-sync +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-26-hydra + 2024-01-26-hydra + Fri, 26 Jan 2024 00:00:00 GMT + + High-level Summary

    This week, the Hydra team conducted yearly roadmapping sessions, introduced a +breaking API change to eliminate JSON encoding of transactions (refer to issue +#1213 for details), completed off-chain logic for incremental decommits through, +and implemented a hydra-explorer backend.

    What did the team achieve this week

    • Conducted yearly roadmapping sessions
    • Merged a breaking API change to drop JSON encoding of transactions #1213 - contact us if you were relying on this.
    • Completed off-chain logic for incremental decommits #1223
    • Implemented a hydra-explorer backend #1235

    What are the goals of next week

    • Publish the monthly report
    • Prepare PRs for hydra clients to switch to CBOR due to the changed API (see above)
    • Enhance the model testing framework to cover close/contest (needed to fix a bug and incremental decommit development)
    • Fix new bugs (all minors) and finish things before starting new
    ]]>
    + hydra +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-24-consensus + 2024-01-24-consensus + Wed, 24 Jan 2024 00:00:00 GMT + + High level summary

    This week the team continued working on the second iteration of the Ledger DB API for UTxO-HD, as well as on Genesis. +We incorporated further improvements to the onboarding documentation, and wrote a document explaining a specific subtlety of our chain orders. +For Conway, we integrated DReps and initial delegates injection, which will allow the Performance and Tracing team to run benchmarks for this era.

    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-24-mithril + 2024-01-24-mithril + Wed, 24 Jan 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team released the initial version of the Mithril client NPM package, enabling developers to integrate core Mithril features into their web applications running in a browser. They also released a new distribution, 2403.1, which includes support for Cardano node version 8.7.3, a new chain observer based on the Pallas library, along with bug fixes and performance improvements.

    The team kept implementing a new entity type for certifying the Cardano transactions set in Mithril networks and made good progress on retrieving transactions and combining them into a Mithril protocol message. Additionally, they finished implementing a mock aggregator and using it in the browser tests for the Mithril client in WASM.

    Finally, they worked on enhancing node communications between Mithril and Cardano and continued working on threat modeling and risk analysis for P2P networking.

    Low level overview

    • Release of the mithril-client npm package library crate
    • Publication of a dev blog post about the released Mithril client npm package
    • Released the new distribution 2403.1
    • Completed the issue Light Wallet: Gather transactions from immutable files and store them in the database #1435
    • Completed the issue Light Wallet: Implement browser tests with fake aggregator #1407
    • Completed the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Light Wallet: Compute message to sign for CardanoTransactions #1436
    • Worked on the issue Enhance ImmutableFile list computation resilience #1450
    • Worked on the issue Add WASM client step in Mithril Client multi-platform test #1408
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue Add warn missing docs in mithril client cli #1439
    ]]>
    + mithril +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-22-network + 2024-01-22-network + Mon, 22 Jan 2024 00:00:00 GMT + + High level overview of sprint 53

    We integrated bootstrap peers with cardano-node in an experimental branch +([cardano-node-5485], ouroboros-network-4615). We continued working on +tx-submission: ouroboros-network-3311.

    Karl Knutsson (CF) worked on peer sharing improvements: ouroboros-network-4778.

    Erik de Castro Lopo made ouroboros-network packages compile with GHC-9.8: +ouroboros-network-4727.

    Nick Frisby (Tweag, Consensus Team), modified local-state-query mini-protocol +so that one can acquire the immutable tip and thus get information which is not +subject to rollbacks: ouroboros-network-4765.

    Low level summary

    Other, less significant changes / improvements include:

    ]]>
    + network +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-19-hydra + 2024-01-19-hydra + Fri, 19 Jan 2024 00:00:00 GMT + + High-level Summary

    The team made good progress this week, with the release of version +0.15.0 marking a milestone, along with the monthly review including +both Mithril and Hydra work. We addressed issues in smoke tests and +website publishing workflows, ensuring a more robust development +environment, and along the way included more "dogfooding" through the +use of Mithril to synchronize nodes in smoke tests.

    What did the team achieve this week

    • Release of Version +0.15.0. This +release enhances the overall stability and functionality of our +product.
    • Monthly Review and Community Demos
    • Smoke Tests and Website Publishing Workflow Fixes: #1246
      • Resolved glitches in the website publishing workflows, enhancing +the efficiency of our deployment processes.
    • Integration of Mithril for Smoke Test Synchronization: #1252
    • Polishing of Hydra-Chess v0.1.0: #1237
      • Worked on polishing hydra-chess v0.1.0, treating it as an example +application running on Hydra. This not only demonstrates the +capabilities of our platform but also aims at providing a reference for future Hydra +developers.

    What are the goals of next week

    • Merge Off-Chain Protocol Logic for incremental decommits
    • Initiate work on the on-chain portion of incremental decommits
    • Merge CBOR API Change #1240
    • Troubleshoot Dangling Fanout Issue #1260
    ]]>
    + hydra +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-19-sre + 2024-01-19-sre + Fri, 19 Jan 2024 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.7.3 is now generally deployed to all testnet and mainnet environments +managed by coretech SRE

    • Dbsync and node stack process-compose jobs are now available from +cardano-parts for users running nix >= 2.17.0 and nix experimental-features += nix-command flakes fetch-closure

    • These can be run with:

       nix run github:input-output-hk/cardano-parts#run-process-compose-node-stack
      nix run github:input-output-hk/cardano-parts#run-process-compose-dbsync-$NETWORK
    • For more details, see the merged cardano-parts process-compose +PR

    Lower level summary

    Cardano-monitoring

    Cardano-mainnet

    • Adds a readme, switches to nonmoving gc for producers, plus misc improvements +from cardano-parts: +cardano-mainnet-pull-6

    Cardano-ops

    • Merged a long standing branch converting legacy mainnet relays to p2p, node -> +8.7.2, db-sync snapshots -> 13.1.1.3, and other improvements: +cardano-ops-pull-417

    Cardano-parts

    • Adds a readme, provides misc improvements, service optimizations, alert tuning, +sql pool performance analysis fix, package updates: +cardano-parts-pull-27
    • Adds process-compose dbsync and node stacks: +cardano-parts-pull-28

    Cardano-playground

    Upstream Contributions

    • Contributions to upstream process-compose related repos were made in order to +complete the process-compose dbsync and node stacks in cardano-parts, +including the following:

    Process-compose-flake

    Services-flake

    ]]>
    + sre +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-17-ledger + 2024-01-17-ledger + Wed, 17 Jan 2024 00:00:00 GMT + + High level summary

    Last week's achievement was that we finished PlutusV3 integration, which a massive piece of work.

    Low level summary

    Conway

    Testing

    • pull-3989 - Fix too many discards.
    • pull-3986 - Remove libs/cardano-ledger-pretty
    • pull-3991 - Imp native script support
    • pull-3993 - Change Test.Cardano.Ledger.Generic.Proof so that there is no more Crypto Evidence.

    Releasing

    • pull-3988 - Bump jinja2 from 3.1.2 to 3.1.3 in /doc
    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-17-mithril + 2024-01-17-mithril + Wed, 17 Jan 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team completed the implementation of the client in the explorer, enabling direct certificate verification from the browser. They initiated the implementation of a new entity type for signing to certify the Cardano transactions set in Mithril networks. The team also upgraded the devnet to support the Conway era and activated the Mithril era marker reader on the Cardano chain in the end-to-end test. Additionally, they kept implementing a mock aggregator to strengthen Mithril client tests in WASM and continued working on threat modeling and risk analysis for P2P networking.

    Finally, they worked on enhancing node communications between Mithril and Cardano, and they started rolling out the Cardano node in the infrastructure to version 8.7.3.

    Low level overview

    • Completed the issue Light Wallet: Create new signed entity type for CardanoTransactions #1434
    • Completed the issue Implement the mithril client WASM package in the explorer #1409
    • Completed the issue Activate babbage/conway eras on devnet #1425
    • Completed the issue Transition Mithril Era Reader adapter to CardanoChain in devnet #1428
    • Completed the issue Upgrade Cardano node to 8.7.3 #1410
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    ]]>
    + mithril +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-15-node-cli-api + 2024-01-15-node-cli-api + Mon, 15 Jan 2024 00:00:00 GMT + + 2024-01-01 - 2024-01-15

    High level summary

    • cardano-cli: Improve queries drep and stake pool queries. Code clean-up
    • cardano-api: Added support for drep extended keys
    • cardano-testnet: Update to cardano-cli 8.18.0.0

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-12-hydra + 2024-01-12-hydra + Fri, 12 Jan 2024 00:00:00 GMT + + High-level summary

    This week, the Hydra team improved Github actions workflows, addressed protocol +parameter schema consistency in hydra-node, and made enhancements to log schema +tests. They created an Architectural Decision Record (ADR) for Cardano +transactions serialization in APIs, moved the hydra-chess project to a dedicated +repository, and resolved a bug in quickcheck-dynamic and model tests.

    There will be the monthly review meeting with demos on Hydra, Mithril and +related projects. If this sounds interesting, join us in Google Meet +https://meet.google.com/udc-zgyw-agd next week, January 19 2024 at 17:30 UTC.

    What did the team achieve this week

    • Github actions improvements and small fixes to the smoke tests #1242, #1233
    • Fixed protocol parameter schema consistency around hydra-node #1234
    • Log schema tests improvements and fixes #1244
    • Created ADR about Cardano transactions serialisation in our APIs +#1215
    • Moved hydra-chess #1237 to a dedicated cardano-scaling organisation repository https://github.com/cardano-scaling/hydra-chess
    • Identified bug on quickcheck-dynamic / our model tests #1239

    What are the goals of next week

    • Monthly review meeting (January 19, 17:30 UTC) including several demos (from team and contributors)
    • Do release 0.15.0
    • Improve quickcheck-dynamic model to be more robust and cover more +behaviour.
    • Draft POC about backend for a hydra-explorer that can track all +heads on-chain.
    ]]>
    + hydra +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-10-consensus + 2024-01-10-consensus + Wed, 10 Jan 2024 00:00:00 GMT + + High level summary

    For the past two weeks the Consensus team:

    • Resumed work on implementing the initialization and internals of the second iteration of the in-memory ledger database.
    • Resumed work on integrating the new ledger database API for UTxO HD.
    • Simplified query versioning for downstream users (863 and 403).
    • Confirmed the cause of missed leadership checks due to ledger snapshots (868).
    • Derived principles for the versioning/declaration of queries, since Conway complicates it (864 and 866).
    • Unblocked the Node Team in the work on rollback-insensitive leadership schedule queries (4765).
    • Drafted the (Pre-Genesis) Bootstrap State Machine (808).
    ]]>
    + consensus +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-10-ledger + 2024-01-10-ledger + Wed, 10 Jan 2024 00:00:00 GMT + + High level summary

    Major Conway related development was the refactoring of how we distinguish Plutus +language versions in every era, thus drasticly improving the type safety and getting us +much closer to PlutusV3 integration.

    There has also been many bug fixes and improvements since the last update. Some important bug +fixes are:

    • missing "protocolVersion" field in JSON instance for Babbage and Conway protocol parameters
    • requiring witnesses for DRep registration
    • new committee governance action ratification was implemented incorrectly
    • guard against invalid protocol versions in hard fork initiation proposals
    • failures during updates of Plutus CostModels were not retained
    • fixed the types for some protocol parameters in order to prevent values that are too large
    • serialization and CDDL fixes

    A few useful features have been also implemented, like new ledger events, doubling the +limit for Url length, consensus query, JSON instances and so on. It was also required +for testing to implement a reliable transaction fee estimation function, which is now +available not only for testing, but also for cardano-cli.

    Low level summary

    Conway

    • pull-3915 - Utilize Inject type class for Val's inject
    • pull-3899 - Bring Plutus language version to the type level
    • pull-3917 - Ensure DRepRegistration certificate requires a witness
    • pull-3921 - Fix committee validation in Ratify
    • pull-3935 - Fixed a bug in Conway.Rules.Gov
    • pull-3956 - Allow 128 byte Url and DnsNames for decoder version atleast 9.
    • pull-3954 - Fix how we update CostModels
    • pull-3947 - Change the type of some pparam fields to align with how they are represented in Consensus
    • pull-3951 - Conway genesis DRep injection
    • pull-3961 - Switch ContextError to an injective type family from a data family
    • pull-3963 - Abstract getWitsVKeyNeeded
    • pull-3933 - Improve cbor serialization of TxWits in Conway
    • pull-3971 - ToJson instances for context error
    • pull-3977 - Added GetAccountStateQuery
    • pull-3975 - Add policy hash protection to TreasuryWithdrawals and ParameterChange

    Testing

    • pull-3892 - Translate DRep expiry test from ConwayFeatures to Imp GovSpec
    • pull-3913 - Add certs to conformance testing
    • pull-3911 - Add a Preds to generate valid GovActionStates.
    • pull-3929 - Improve comment on unit_interval in cddl
    • pull-3950 - Use discard to avoid bad traces for fixOutput
    • pull-3935 - Add some Imp tests for HardForkInitiation.
    • pull-3964 - Ignore thunks in utxosDeposited
    • pull-3962 - Add estimateMinFeeTx
    • pull-3976 - Introduce accurate min fee calculation function: calcMinFeeTx

    Improvements

    • pull-3930 - Change type of mintedTxBodyL to PolicyID
    • pull-3924 - Split type classes out of eras Core module
    • pull-3934 - Type safety bugfixes
    • pull-3949 - Add FromJSON BabbagePParams instance
    • pull-3953 - Babbage / Conway PParams JSON serialization
    • pull-3946 - Epoch interval instances
    • pull-3932 - Add ledger event TxUTxODiff
    • pull-3969 - Add missing stake key deposit in formal spec
    • pull-3973 - Move functionality of Cardano.Ledger.Pretty to Test.Cardano.Ledger.Generic.PrettyCore

    Releasing

    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-10-mithril + 2024-01-10-mithril + Wed, 10 Jan 2024 00:00:00 GMT + + High level overview

    This week, the Mithril team worked on implementing the client in the explorer to enable direct verification of certificates from the browser. They also addressed the configuration issue in the signer node service, which occasionally resulted in signers not registering their keys after a restart. Additionally, the team kept implementing a mock aggregator to strengthen Mithril client tests in WASM, continued working on threat modeling and risk analysis for P2P networking, and progressed with the devnet upgrade to support the Conway era.

    Finally, they worked on enhancing node communications between Mithril and Cardano and completed the upgrade of the Cardano node topology used in the Mithril networks' infrastructure.

    Low level overview

    • Published a development blog post Mithril signer service new configuration
    • Completed the issue Simplify Mithril client CLI download command #1406
    • Completed the issue Make all infra Cardano nodes use P2P topology #1405
    • Completed the issue Implement ChainObserver adapter configuration in aggregator #1396
    • Completed the issue Fix signer node service setup #1404
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Implement the mithril client WASM package in the explorer #1409
    • Worked on the issue Light Wallet: Implement browser tests with fake aggregator #1407
    • Worked on the issue Activate babbage/conway eras on devnet #1425
    • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    ]]>
    + mithril +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-09-network + 2024-01-09-network + Tue, 09 Jan 2024 00:00:00 GMT + + High-level overview of sprint 52

    Happy New Year!

    In this short sprint we analysed a failure which happened on a new large +cluster that's run by IOG. The process exhausted all file handles and was left +without any functional connections. The issues apparently is rare, and thus +doesn't impose a high risk.

    We also continued working on tx-submission: ouroboros-network-3311.

    Detailed description

    It turned out that the process exhausted the number of file handles leaking +multiple /proc/{PID}/stat files open. We suspect that the bug is caused by

    • using lazy IO in iohk-monitoring-framework, and
    • using a recent kernel version

    With lazy IO file handles are read as long as the data is required and they are +closed only when EOF is reached. We currently suspect that a new linux kernel +added something at the end of the /proc/{PID}/stat which is not parsed by +iohk-monitoring-framework, so whenever the file is read we leak it (it's +never closed) and eventually, there are no file handles to be used by the +network layer: the accept loop doesn't return any inbound connection, neither +an outbound connection can be created. This issue will be addressed by the +profiling team (which owns the logging subsystem).

    The fix will be proposed in the future release, in the meantime we suggest to +keep observing file handles used by the node.

    I would like to thank John Lotoski (IOG), Karl Knutsson (CF), Neil Davies +(PNSol) and Michael Karg (IOG) who all contributed to this analysis.

    While analysing the log we also found a few smaller issues in the outbound +governor which were fixed in [ouroboros-network-#4764].

    The IO error indicating exhausting file handles is not currently visible. It +is not re-thrown nor logged. This needs to be fixed in a future version. See +ouroboros-network-4769.

    ]]>
    + network +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-05-hydra + 2024-01-05-hydra + Fri, 05 Jan 2024 00:00:00 GMT + + High-level summary

    In between the end-of-year holidays, the Hydra team completed the implementation +of the Conway support feature, fixed a minor bug that was hindering tests from +running on MacOS, and addressed a regression in the protocol-parameter formats +used by the hydra-node. They also worked on off-chain code for incremental +decommits, specifically focusing on transaction creation. Furthermore, they +conducted a spike on implementing a Chess game using Hydra, with an experience +report provided.

    What did the team achieve this week

    • Fixed a regression on protocol-parameter formats used by the hydra-node #1226
    • Fixed a minor bug prohibiting tests running on MacOS #1218
    • Complete conway support feature #1227
    • Transaction creation off-chain code for incremental decommits #1218
    • First spike on implementing a Chess game on Hydra report, related to: #1098

    What are the goals of next week

    • Fully resolve protocol parameter misalignment #1234
    • Cut a release 0.15.0 to ship offline-mode and conway support
    • Prepare demo for conway support
    • Complete transaction creation and observation for incremental decommits
    • Backend for a hydra-explorer that can track all heads on-chain
    ]]>
    + hydra +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2024-01-05-sre + 2024-01-05-sre + Fri, 05 Jan 2024 00:00:00 GMT + + High level summary

    During the lightly staffed holiday period for node SRE, the emphasis was on +maintaining environment stability, tuning and resolving any noisey alerts.

    Investigation into and testing around the following two topics also +started during this period:

    • Ledger snapshots causing a small number of missed slots for forgers on mainnet: +ouroboros-consensus-issue-868

    • A cardano-node rare file descriptor leak, with a more detailed description +here

    ]]>
    + sre +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-30-node-cli-api + 2023-12-30-node-cli-api + Sat, 30 Dec 2023 00:00:00 GMT + + 2023-12-09 - 2023-12-30

    High level summary

    • Migrated reposotiries to IntersectMBO.
    • Improved era handling on cardano-api. Instead of enumerating every possible era, we use two constructors: +'CurrentEra' and 'UpcomingEra'. This design simplifies the handling of eras, especially for cardano-api consumers who are primarily concerned with the current mainnet era and the next era for an upcoming hardfork.
    • Cleaning-up the cardano-cli, in particular to the babbage era commands where some Conway options had spilled.

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-22-hydra + 2023-12-22-hydra + Fri, 22 Dec 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team made significant progress, implementing an offline mode with associated refactoring. They enhanced user experience by detecting incompatible eras in hydra-node. Protocol changes were implemented for incremental decommits, addressing off-chain logic. Additionally, the team contributed fixes to cardano-ledger and coordinated with the Eternl team on enabling committing into a head from their wallet.

    What did the team achieve this week

    • Offline mode implementation +#1118 and +refactoring +#1222
    • Detect incompatible era in hydra-node and provide better UX +#1216
    • Implemented protocol changes for incremental decommits (off-chain +logic) #1057
    • Contributed fixes to cardano-ledger#3949 and +#3953
    • Synced up with the Eternl team on enabling committing into a head from +their wallet

    What are the goals of next week

    • Maybe cut a release 0.15.0 to ship offline-mode and unsupported era UX
    • Full conway support in hydra-node
    • Transaction creation and observation for incremental decommits
    ]]>
    + hydra +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-22-network + 2023-12-22-network + Fri, 22 Dec 2023 00:00:00 GMT + + High-level overview of sprint 51

    Outbound Governor Bug in cardano-node-8.7.2

    In the current sprint, we received a bunch of reports from SPOs about nodes not +maintaining some connection when using cardano-node-8.7.2 (running in P2P +mode). Such regressions are very important to us since they can lead to lost +blocks. We were able to reproduce this issue. Every time there's a longer +pause of block production (due to the statistical nature of Ouroboros), there +is a chance that the bug will be armed. For this reason cardano-node-8.7.2 +needs to be closely monitored.

    We found the bug and developed a fix, ref. Karl +Kntusson (CF) wasn't able to reproduce the bug with the patched version of +the node for long enough (almost two weeks now) for us to belive that the fix +is correct.

    Advise for SPOs

    We created a release branch for 8.7.3. The advice from +the network team is to either downgrade to the previous release, e.g. 8.1.2 +or use the above release branch (note that there were no benchmarks made or Q&A +tests yet).

    Testing plans

    We were also able to reproduce the bug using IOSim, ouroboros-network#4757. +However, the bug relies on a particular schedule of two threads which are +involved and we needed to artificailly modify IOSim schedule in production +code - something that we don't want to commit to the master branch. We also +experimented with a randomised scheduler for IOSim, but that did not lead to +finding the schedule which arms the bug: the search space grows exponentially +with the number of steps in the threads, partial order reduction techniques +implemented in IOSimPOR are more appropriate - unfortunatelly the simulation +test is too large to be executed in IOSimPOR even with large amounts of +RAM. To use IOSimPOR we need to implement a test which includes the two +interacting components:

    • connection-manager
    • outbound-governor (where the bug was located)

    which communicate through PeerStateActions, without including all the +diffusion components as we do in our sim-net tests. More in style of +outbound-governor tests where there is just a single outbound-governor, +unlike in the sim-net which runs multiple communicating diffusions.

    Bootstrap peers

    We continued working on bootstrap peers, ouroboros-network#4555

    TxSubmission Decision Logic

    We continued working on tx-submission decision logic, ouroboros-network#3311

    ]]>
    + network +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-22-sre + 2023-12-22-sre + Fri, 22 Dec 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • A new repository was created which enables agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: cardano-monitoring
    • The govtool backend swagger interface was nix flake packaged and deployed for Voltaire private chain testing usage
    • Grafana cloud monitoring stacks were migrated to new EC2 cardano-monitoring servers
    • Cardano-db-sync state snapshots now support client range requests, details here
    • In addition to monitoring server centralized grafana metrics, sysstat collected system metrics are now available locally on all cluster machines at high time resolution
    • Code changes required due to repository migrations to IntersectMBO have largely been completed

    Lower level summary

    Auth-keys-hub

    Cardano-monitoring

    • A new repository enabling agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: cardano-monitoring

    Cardano-parts

    • Migrate from grafana cloud monitoring to ec2 monitoring, add resource tagging support, declarative route53 CNAME list, and additional improvements and fixes: cardano-parts-pull-25
    • Improve ssh key handling and edge cases, resolve misc issues, add IOPS and throughput gp3 openTofu support: cardano-parts-pull-26

    Cardano-playground

    ]]>
    + sre +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-20-mithril + 2023-12-20-mithril + Wed, 20 Dec 2023 00:00:00 GMT + + High level overview

    This week, the Mithril team completed aggregator optimizations, enabling the certification of new data types without introducing a new era. They also facilitated the selection of these data types through a simple configuration parameter. Additionally, the team started implementing a mock aggregator to strengthen Mithril client tests in WASM, kept working on threat modeling and risk analysis for P2P networking, and progressed with the implementation of a testing Mithril network for SanchoNet.

    Finally, they worked on some optimizations and refactoring of the Mithril client CLI and started upgrading the Cardano node topology used in the Mithril networks' infrastructure.

    Low level overview

    • Completed the issue Implement open_message timeout in aggregator #1387
    • Completed the issue Implement configurable signed entity types in aggregator #1388
    • Completed the issue Enhance machine readable logs in client #1234
    • Completed the issue Manual publication to npm registry with GitHub action #1411
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Simplify Mithril client CLI download command #1406
    • Worked on the issue Make all infra Cardano nodes use P2P topology #1405
    • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    ]]>
    + mithril +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-15-hydra + 2023-12-15-hydra + Fri, 15 Dec 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team identified and resolved issues with a malfunctioning +head on mainnet, implementing preventive measures. They edited and merged a new +Architectural Decision Record (ADR) proposed by SundaeLabs, upgraded +cardano-node to version 8.7.2, and improved the TUI user experience. +Preparations for "Conway support" were initiated, and updates were made to logs +and API schemas. Additionally, initial steps were taken towards incremental +decommits.

    What did the team achieve this week

    • Troubleshoot and recover a broken head on mainnet. Opened issue +#1202 and PR +avoiding this in-flight +#1211
    • Designed and proposed a new ADR to generalize EventSource and +EventSinks#1157, +contributed by SundaeLabs.
    • Upgrade cardano-node to 8.7.2 +#1199 and +re-enables e2e nix-shell support on Darwin +#1203
    • UX enhancement on TUI +#1201
    • Preparations for "Conway support" +#1177[#1206 & +#1207]
    • Update logs and api schemas +#1212
    • First steps on incremental decommits +#1057:
      • Drafted the e2e workflow +#1205
      • Added decommit API endpoints +#1209

    What are the goals of next week

    • Detect incompatible blocks and provide better UX
    • Conway support in hydra-node
    • Off-chain logic for incremental decommits
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-13-mithril + 2023-12-13-mithril + Wed, 13 Dec 2023 00:00:00 GMT + + High level overview

    This week, the Mithril team completed the adaptation of the Mithril client library for WASM compilation, providing a JavaScript API for it. They also completed the proof of concept to demonstrate that a subset of Cardano transactions is part of the entire transactions set. The refactoring of the Mithril client CLI with the Mithril client library was also finalized. Additionally, the team kept working on the threat modeling and risk analysis for P2P networking, along with progressing in the implementation of a testing Mithril network for SanchoNet.

    Finally, they started implementing an expiration mechanism for the open messages in the aggregator, and they completed the upgrade of Rust dependencies with breaking changes.

    Low level overview

    • Completed the issue Light Wallet: Implement mithril-client WASM library #1336
    • Completed the issue Light Wallet: Certify Cardano UTXO/transactions set PoC #1393
    • Completed the issue Refactor mithril-client-cli with mithril-client library #1335
    • Worked on the issue Implement open_message timeout in aggregator #1387
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Enhance machine readable logs in client #1234
    • Worked on the issue Create a test network on SanchoNet #1173
    • Completed the issue Upgrade breaking changes crates #1357
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    ]]>
    + mithril +
    + + <![CDATA[Performance & Tracing Update]]> + https://updates.cardano.intersectmbo.org/2023-12-11-performance-and-tracing + 2023-12-11-performance-and-tracing + Mon, 11 Dec 2023 00:00:00 GMT + + High level summary
    • Benchmarking: Release benchmarking for node 8.7.2, as well as P2P benchmarks - the latter being a premiere for the Nomad cluster.
    • Development: Work on automating the submission of Conway transactions for registration of and stake delegation to DReps is ongoing.
    • Infrastructure: We're preparing to safely retire our current benchmarking cluster.
    • Tracing: The documentation for the new tracing system is being reworked. Additionally, we've added a feature to cardano-tracer to capture performance over a long runtime.
    • Nomad cluster: The Nomad backend has been successfully equipped with support for up-to-date P2P topology, as well as deployment for Plutus script data.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for node 8.7.2. From a performance perspective, it has been greenlit for mainnet release. Starting with this version, our team will publish observations alongside the original comparative analysis of benchmarks, providing insight into key metrics and resource usage. Hence, for the post on version 8.7.2, see here.

    Additionally, we're running P2P versus no-P2P benchmarks on the same version. We intend to establish future baseline runs using P2P topology as the default setting. All our cluster nodes being block producers, it is crucial to establish the P2P stack does not exhibit any regression regarding block forging. Furthermore, the evidence gathered from those benchmarks forms the base for a recommended setting for P2P on mainnet block producers.

    It deserves special mention that those P2P benchmarks are our first production runs with the Nomad cluster - and using the new tracing system exclusively. Having finalized all optimization rounds of the latter, and having meticulously eliminated all confounding factors from the Nomad infrastructure, we're confident in the measurements being subject to extremely low variance - which we made sure of in many past validation runs on Nomad.

    Development

    Orchestrating DRep actions into benchmarking workflows has opened up a fairly large design space. Currently, we're focusing on having stake delegated to DReps, in order to trigger ledger pulses for calculations particular to DRep actions. We can benchmark a possible +performance impact of those pulses - even if there are no actions ongoing - as a first step.

    The contributing factors to the cost of those pulses are both the number of DReps registered, and the number of delegations to them. It is still under debate which values represent a probable model for mainnet, and whether we can achieve stake delegation programmatically (i.e. by submitting transactions), or if, for large numbers, we need means to inject those delegations into genesis.

    Infrastructure

    With the switch of all production benchmarks to the Nomad cluster, we will retire the legacy cardano-ops cluster very shortly. Currently, we're making sure that when all its resources are released, we keep an archive for all runs performed, including all raw log data - with the oldest runs dating back as far as December 2019.

    Tracing

    We've outfitted the cardano-tracer service with the same kind of resource tracing machinery that's used by cardano-node - as well as created a dedicated benchmarking profile for it. It puts very little pressure on the node; instead it causes 6 nodes to emit traces at a rate of >35 messages per second, putting pressure on cardano-tracer via trace forwarding at >200 messages per second for an extended period of time. Analysis of these traces will form the ground for various optimizations of cardano-tracer that are currently being worked on.

    As we aim for early 2024 to be able to recommend the new tracing system as default in production use, we're currently also reworking the comprehensive documentation to reflect all changes made over the last months.

    Nomad backend

    In addition to being able to deploy Plutus script data and redeemers seperately (instead of inlining them as the legacy cluster did), the Nomad cluster now supports being set up with recent P2P topology. No-P2P topology format will still be supported +for occasional regression benchmarking of the P2P stack, when desired. Furthermore, we've completed porting all benchmarking profiles from the legacy cluster to Nomad.

    ]]>
    + performance-tracing +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-08-goedel + 2023-12-08-goedel + Fri, 08 Dec 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols, working on a +performance modelling paper and working on a performance modelling +prototype tool

    Details

    • completing work on chain sync mini-protocol

    • proof sketch of conformance property of chain sync mini-protocol

    • new content for JLAMP paper

    • NWPT talk

    ]]>
    + goedel +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-08-network + 2023-12-08-network + Fri, 08 Dec 2023 00:00:00 GMT + + High-level overview of sprint 49 & sprint 50

    Fixed PeerSelection bug

    Karl Knutsson (Cardano Foundation (CF)) found a bug in +the cardano-node-8.7.0 version used on the Sancho Net which was fixed in 8.7.1. +It resulted in a node not being able to reconnect to an upstream peer once it +was demoted by an asynchronous exception. This bug would be caught by Q&A in +a mainet release, but for testnet releases, Q&A test suite is not used. We also +developed a test which covers the bug in the ouroboros-network, we also identified +a missing PeerSelection test which we need to port to our simulation network. +See ouroboros-network#4734, ouroboros-network#4665.

    Bootstrap Peers

    Still under review, ouroboros-network#4555. The consensus team is now +implementing the API we need for bootstrap peers. Once consensus API is implemented we will integrate changes in an experimental branch of +cardano-node.

    Tx-Submission

    We started working on a new implementation of the tx-submission application. No +tx-submission protocol changes are foreseen, but we want to be able to +download each tx from just one upstream peer and share the results between +different connections. We want to distribute the bandwidth between multiple +clients. We also think that this work will prepare us for the future +Ouroboros-Leios changes, which will contain various versions of tx-submission +like mini-protocols. See ouroboros-network#4701.

    Peer Sharing

    Various fixes and improvements were implemented:

    • ouroboros-network#4725

      • disabled peer sharing with initiator-only nodes: currently it's not +possible to get peers from initiator-only nodes (edge nodes, e.g. +wallets). In the future, we might change this, which will require running +a server-side of the peer-sharing protocol by such nodes. See +ouroboros-network#4726.
      • fixed peer-sharing codec
      • fixed a handshake bug which returned a wrong peer-sharing option
    • ouroboros-network#4728

      • disabled peer-sharing for NodeToNodeV_11 and NodeToNodeV_12
    • Karl Knutsson (CF) has been working on additional improvements, e.g. ouroboros-network#4735

    With these fixes, Karl Knutsson (CF) was able to see that two peers on the mainnet +can discover themselves through peer-sharing and keep being mutually useful +and thus the connection surviving outbound-governor churn events.

    IOSim

    We improved the memory footprint of IOSim in io-sim#126, see +ouroboros-network#4721 for heap profile improvements on large test cases.

    We are working on optimising the memory footprint of IOSimPOR. We are +reimplementing VectorClocks using a trie, instead of a map which leads to +significant improvements.

    Cardano-Ping

    cardano-node-0.2.0.10 was released to CHaP, ouroboros-network#4746. This +version exports more APIs which turned out to be useful in cardano-node test +suite, see cardano-node#5536.

    Technical Debt

    We addressed some small tech-debt issues in ouroboros-network#4722:

    • fixed some typos
    • using bracket instead of onException in withSnocket
    • improved haddocks
    • organised TracePeerSelection constructors

    We improved the memory footprint of some of our tests in ouroboros-network#4721.

    ]]>
    + network +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-08-node-cli-api + 2023-12-08-node-cli-api + Fri, 08 Dec 2023 00:00:00 GMT + + 2023-11-15 - 2023-12-08

    High level summary

    This is sprint was mostly about bug fixing, code clean-ups and optimizations in preparation for a mainnet suitable release.

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-08-sre + 2023-12-08-sre + Fri, 08 Dec 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet was respun to cardano-node 8.7.0-pre, and upgraded to cardano-node 8.7.1-pre shortly afterwards
    • Cardano-node 8.7.2 was released and all environments were then upgraded to 8.7.2
    • Cardano-parts deployed machines were upgraded to nixpkgs 23.11 and nix 2.19.3
    • Cardano-parts resource deployed environments were switched from the use of Terraform to OpenTofu

    Lower level summary

    Capkgs

    • Updated for cardano-node 8.7.2 and process-compose packages: capkgs-compare

    Cardano-parts

    Cardano-ops

    Cardano-playground

    Cardano-world

    • Sanchonet update PR: cardano-world-pull-111
      • Merge the long running sanchonet-updated branch
      • Migrate explorers from ziti to wireguard tunnel usage
      • Remove remaining ziti code and provisioned resources
      • Retire remaining nomad jobs in preference of the cardano-playground environments
      • Downsize the cluster in preference of the cardano-playground environments

    Iohk-nix

    ]]>
    + sre +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-08-hydra + 2023-12-08-hydra + Fri, 08 Dec 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team made progress by releasing version +0.14.0, +incorporating updates and improvements. They also updated dependencies +in preparation for Conway support, addressing +#1114. +Additionally, the team completed substantial refactoring in hydra-node +using stateless observation, aiming to enhance system efficiency and +performance +#1096. Lastly, +they investigated regressions related to JSON serialized transactions +and consider dropping this in favor of CBOR only submission.

    What did the team achieve this week

    • Released version +0.14.0
    • Updated dependencies to prepare for Conway support +#1114
    • Completed substantial refactoring in hydra-node using stateless +observation +#1096
    • Investigated regressions about JSON serialized transactions

    What are the goals of next week

    • Analysed our mainnet head and why some transactions were invalid
    • Detect incompatible blocks and provide better UX
    • Update to newer cardano-node and Conway support in hydra-node
    • Draft the end-to-end workflow for incremental decommits
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-06-ledger + 2023-12-06-ledger + Wed, 06 Dec 2023 00:00:00 GMT + + High level summary

    This period we reached a major milestone, namely we now have an initial version of Conway +conformance testing working. We are now able to generate random valid data with the help +of constraint based testing framework, apply that data to Conway Ledger rules and verify +that the output matches to the one produced by the executable version of the Formal Ledger +Specification, when it is applied to the same random data.

    We also had a couple of Conway bugs fixed and a few new predicate check implemented. Get +Constitutional Committee query is complete and tested. Various improvements to the +testing tools. Addition of more test cases.

    Low level summary

    Conway

    • pull-3888 - Add checks for valid ProtVer when a proposal is a HardFork
    • pull-3902 - Fix pvCanFollow usage in Conway and improve clarity in Shelley
    • pull-3855 - Remove unreachable proposals
    • pull-3903 - Add lenient decoder for Addr
    • pull-3878 - Committee query - implement next epoch change

    Testing

    • pull-3893 - Move tree-diff dependency to tests together with all instances
    • pull-3896 - Fix Brute force failure
    • pull-3904 - New ListWhere Pred added to the Constrained Solver.
    • pull-3907 - cardano-ledger-conformance: Remove CHANGELOG.md from cabal file
    • pull-3883 - Committee QuerySpec Imp Test
    • pull-3909 - Make impAnn a bit more useful, by making the logs scoped by impAnn
    • pull-3908 - Use upstream testing instances for very basic types
    • pull-3912 - Removed call to tail, and the 'watchPulser' test
    • pull-3852 - Added constrained generators to conformance tests - Part 1

    Improvements and releasing

    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-06-mithril + 2023-12-06-mithril + Wed, 06 Dec 2023 00:00:00 GMT + + High level overview

    This week, the Mithril team made progress in adapting the Mithril client library for WASM compilation and providing a JavaScript API for it. They also completed the optimization of the aggregator's performance. Additionally, the team initiated the implementation of a testing Mithril network for SanchoNet and conducted threat modeling and risk analysis for P2P networking.

    Finally, they enhanced the developer experience of the Mithril client library by providing ready-to-run examples in the repository and implemented a workflow to manually publish libraries on crates.io.

    Low level overview

    • Worked on the issue Light Wallet: Release mithril-client WASM library #1336
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on Sanchonet #1173
    • Worked on the issue Upgrade breaking changes crates #1357
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue Enhance aggregator REST API performances #1327
    • Completed the issue Signer runtime is stuck for some SPO #1312
    • Completed the issue Make mithril-client examples full crates #1385
    • Completed the issue Manual publication to crates.io with GitHub action #1380
    • Completed the issue Remove sqlite dependency from mithril-client crate #1390
    ]]>
    + mithril +
    + + <![CDATA[Performance & Tracing Update]]> + https://updates.cardano.intersectmbo.org/2023-12-04-performance-and-tracing + 2023-12-04-performance-and-tracing + Mon, 04 Dec 2023 00:00:00 GMT + + High level summary
    • Benchmarking: Release benchmarking for node 8.7.0. Also, we performed the first-ever Conway benchmarks.
    • Development: Conway capability of our workload generator has been implemented and merged to master.
    • Infrastructure: Changes to our workbench facilitating easy access and archiving of raw benchmarking data.
    • Tracing: Quality-of-life improvements to tracing output and addition of a test suite.
    • Nomad cluster: Expand the list of benchmarking profiles that can be run on Nomad; generalize cluster topology generation.

    Low level overview

    Benchmarking

    A full set of benchmarks for node 8.7.0 has been performed, with the focus of enabling the next mainnet release. We've measured slight performance improvements of 8.7.0 over 8.6.0, and can confirm no regressions have been introduced.

    Furthermore, we've run system integration level benchmarks in the Conway era for the first time, on the same node version. +Only Babbage-compatible workloads have entered comparison as to ascertain performance consequences of only changing the ledger version, and nothing else. The results are very promising, as we could show that switching ledger versions for existing workloads does not come with a performance penalty.

    Development

    Our transaction generator has been extended to be able to submit all present benchmarking workflows in the Conway era. +Currently, we're looking into adding Conway-exclusive features, such as DRep registration. Those would be submitted at the very beginning of a run, as we're interested in seeing potential performance implications of maintaining DRep sets of varying size in ledger. Furthermore, this will serve as the basis for future development Conway-exclusive workloads, such as governance actions or vote tallying.

    Infrastructure

    As our workbench will be pivotal in orchestrating and organizing benchmarking runs on the Nomad cloud backend, we've +improved how raw benchmark data is tagged, which metadata is documented in an automated manner. This enhances both access to existing run sets, as well as maintaining an archive for benchmarking data.

    Tracing

    The new tracing system is currently receiving usability improvements as we're reworking the output of several trace messages. +Additionally, we're setting up a rigorous test suite to provide safety for future development of and component integration inte the system.

    Nomad backend

    We've been working on adapting various benchmarking workloads, which are defined by our workbench's profiles, to running on the new infrastructure. This mainly concerns a workload utilizing Plutus, as well as peer-to-peer flavoured workloads. Furthermore, we're implementing a solution to create all possible cluster topologies algorithmically, instead of still using fixed literal definitions for some cases.

    ]]>
    + performance-tracing +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-12-01-hydra + 2023-12-01-hydra + Fri, 01 Dec 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team conducted a packed Monthly Review meeting, +featuring demonstrations and the preparation of the monthly report. They +addressed flakiness in tests and enhanced the logs json schema, +improving overall test reliability. Additionally, the team successfully +built MacOS ARM64 (aarch64-darwin) binaries in CI, expanding platform +support. They further improved the network configuration by detecting +incompatible persisted states, contributing to overall system +robustness. Finally, the team released version 0.14.0, highlighting +their commitment to delivering regular updates and improvements.

    What did the team achieve this week

    • Monthly Review +meeting +packed with demonstrations and prepared monthly report +#1189
    • Fixed several flaky tests and improved the logs json schema +#1188#1190#1192
    • Built MacOS ARM64 (aarch64-darwin) binaries in CI +#1182
    • Improved network configuration by detecting incompatible persisted +states #1174
    • Released version 0.14.0

    What are the goals of next week

    • Start work on incremental decommit
    • Continue shepherding contributed PRs to completion
    • Finish stateless-observation work
    • Open a head on a Conway network
    ]]>
    + hydra +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-29-consensus + 2023-11-29-consensus + Wed, 29 Nov 2023 00:00:00 GMT + + High level summary

    The Consensus team implemented and tested a patch that does not propagate future headers. +It is under review, and we expect it can be released in the next Cardano node version. +On the UTxO-HD front, we finished prototyping the LedgerDB and BackingStore redesign, which is required for the LSM-tree integration and might help us implement a more resource efficient in-memory backend. +With this prototype finished we can start integrating the rest of the code. +We investigated the unexpected performance degradation observed when acquiring the block context. +We also released Cardano node 8.7.0 and moved tree-diff outside cardano-ledger libraries.

    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-29-mithril + 2023-11-29-mithril + Wed, 29 Nov 2023 00:00:00 GMT + + High level overview

    This week, the Mithril team released the initial version of the Mithril client library, enabling developers to integrate core Mithril features into their applications. They also released a new distribution, 2347.0, which includes support for slim certificate production by the aggregator, along with bug fixes and performance improvements.

    The team also introduced the initial version of Cardano/Mithril node communication enhancements, implemented by TxPipe as part of the Catalyst project. They made progress in decentralizing Mithril networks, including testing the Mithril peer-to-peer (P2P) relay on a test network and conducting threat modeling and risk analysis for P2P networking. Additionally, they started working on adapting the Mithril client library for WASM compilation and made progress in optimizing aggregator performance.

    Finally, they fixed inaccuracies in the verbosity level of logs across most nodes and worked on troubleshooting for some users.

    Low level overview

    • Release of the mithril-client library crate
    • Publication of a dev blog post about the released Mithril library
    • Released the new distribution 2347.0
    • Worked on the issue Light Wallet: Release mithril-client WASM library #1336
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Enhance aggregator REST API performances #1327
    • Worked on the issue Signer runtime is stuck for some SPO #1312
    • Completed the issue Support P2P relay in infrastructure #1361
    • Completed the issue Make Cardano node version custom in CI/CD #1355
    • Completed the issue Manually deploy a test Mithril network #1356
    • Completed the issue mithril-client verbosity not following usage menu #1325
    • Completed the issue Error message for mithril-client snapshot download #1375
    ]]>
    + mithril +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-24-goedel + 2023-11-24-goedel + Fri, 24 Nov 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and working on a +performance modelling paper

    Details

    • completing work on chain sync mini-protocol

    • proof sketch of conformance property of chain sync mini-protocol

    • onboarding new performance modelling intern

    • new content for JLAMP paper

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-24-hydra + 2023-11-24-hydra + Fri, 24 Nov 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team spent significant time opening a head among +themselves on mainnet using the release candidate, revealing and +addressing lurking bugs such as +#1174. Also +required was this change to dynamically calculate the min utxo value +#1176, a +necessary adjustment following the switch to inline datums. The team +engaged with cardano-cli / cardano-api maintainers to discuss recent +changes and collaborated on drafting feature ideas, including providing +Conway support +for the Hydra roadmap. As part of ongoing improvements, they +experimented with writing the specification in markdown instead of +LaTex.

    What did the team achieve this week

    • Opened head among us on mainnet and uncovered a few lurking bugs like +#1174 in the +release candidate
    • Calculate the min utxo value instead of hard-coding it +#1176, which is +needed since we switched to inline datums.
    • Met with the cardano-cli / cardano-api maintainers to discuss +recent changes and way forward
    • Drafted features ideas to provide Conway +support on the +Hydra roadmap
    • Experimented in writing the specification in markdown instead of LaTex

    What are the goals of next week

    • Have the Monthly review meeting with several demos
    • Release version 0.14.0 with this +scope
    • Complete tidying up chain layer via stateless observation changes in +hydra-node +#1096
    • Update dependencies to prepare for Conway +#1114
    ]]>
    + hydra +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-24-sre + 2023-11-24-sre + Fri, 24 Nov 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • The cardano-node nixos service now supports SIGHUP p2p topology reloading when the useSystemdReload option is enabled

    Lower level summary

    Capkgs

    • Update cardano-db-sync and offchain-metadata-tools package paths and/or references: capkgs-compare

    Cardano-node

    • Optionally have cardano-node nixos service utilize SIGHUP p2p topology reload: cardano-node-pull-5537
      • Creates a useSystemdReload bool option for the cardano-node nixos service
      • This will move the topology file(s) to /etc/cardano-node/topology-$i.yaml and inject systemd reload hooks for p2p configured cardano-node instances
      • Moving topology files to /etc also allows for manual topology updates when a quick test is needed and full service re-deployment isn't desired

    Cardano-parts

    • Adds a metadata server profile and a number of other features and improvements: cardano-parts-pull-20
      • Adds a new metadata-service profile
      • Adds metadata service and pkg configuration options for cardano-groups to utilize the metadata-server profile
      • Adds a cardano-webserver profile for multiple virtualHosts and TLS ACME server aliases for a cluster's static needs, with each cached behind varnish
      • Adds extra node list producers and public producers for cardano-node-topology profile
      • Adds delegation amounts to cardano-postgres psql prepared query show_pools_block_history_in_epoch
      • Adds select systemd metrics reporting to grafana-agent profile
      • Adds a bookRelay multivalue DNS option to disambiguate with groupRelay multivalue DNS
      • Adds an opsLib library to the cardano-parts lib flakeModule and refactors some common code into it
      • Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo
      • Adds job-gen-env-config for both release and pre-release configuration files to support configuration book generation
      • Adds support for grafana recording rules in the template files
      • Improves cardano-group profile handling of producers with respect to multiple instance nodes
      • Improves grafana-agent profile metrics handling for multi-instance cardano-node servers
      • Improves smash service preStart handling while waiting for a node socket
      • Updates Justfile for ERA_CMD demo support
      • Migrates default grafana cloud node exporter, varnish alert and recording rules to grafana alert and recording rule templates
      • Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile
      • Defaults cardano-postgres profile psqlrc use to false

    Cardano-playground

    • Adds a new testnet metadata server, cluster webserver, and other improvements: cardano-playground-pull-6
      • Adds a new metadata server
      • Adds a new webserver for the cluster's static virtualhost needs
      • Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo
      • Adds systemd metrics monitoring to the cluster
      • Resizes sanchonet machines to support the growing chain
      • Completes migration of preprod from world
      • Updates groups to utilize both bookRelay and groupRelay multivalue DNS attributes
      • Updates Justfile for ERA_CMD demo support
      • Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile
      • Migrates book static code to playground from world, with refactor, cleanup and updates
      • Migrates default grafana cloud node exporter, varnish alert and recording rules to declarative grafana alert and recording rules

    Offchain-metadata-tools

    • Adds db password option with obfuscation plus misc improvements: offchain-metadata-tools-pull-61
      • Adds db password connection option and obfuscates passwords in output for metadata server, sync, webhook services
      • Updates the nixos service for metadata-webhook service to optionally use an environmentFile for secrets: cfg.environmentFile
      • Moves from std use in the nix flake to standard flake schema
      • Fixes hydra CI failures
      • Builds update-docs in hydra to avoid long local build times
      • Removes deprecated tullia
      • Removes deprecated check-hydra from pkgs
      • Removes deprecated bors files and references
    ]]>
    + sre +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-22-ledger + 2023-11-22-ledger + Wed, 22 Nov 2023 00:00:00 GMT + + High level summary

    Last two weeks progress was mainly on testing, bug fixes and improvements to clarity of +CDDL specification. Important bugfixes include:

    • Fix deserialization of ValueNotConservedUTxO predicate failure that could not +previously report zero ADA.
    • Fix deserialization of CostModels in the PParamsUpdate. Invalid CostModels are no +longer allowed, only CostModels for unrecognized Plutus versions are allowed starting +with Conway
    • Fix returning of Deposits for ProposalProcedures

    Testing tooling has been improved and new tests have been implemented for Conway era.

    Low level summary

    Conway

    • pull-3858 - Restructure computing Refunds and Deposits in a TxBody across all eras
    • pull-3860 - Removed mock/crypto.cddl, added optional tag to sets
    • pull-3864 - Fix Proposal deposits and add deposit tests to imp tests
    • pull-3859 - Rename ProposalsSnapshot to Proposals
    • pull-3867 - MaryValue fixes
    • pull-3869 - Indicate that tag 258 is optional for OSet. Fix rational CDDL
    • pull-3863 - Improve deposits refunds re-usability
    • pull-3861 - Fail PParamsUpdate deserialization for invalid costmodels in Conway
    • pull-3875 - Fix cddl spec for CostModels in Conway
    • pull-3876 - Change 4 PParam fields from EpochNo to EpochInterval
    • pull-3884 - Relax requirement on the Set tag 258 to be enforced in the next era

    Testing

    • pull-3868 - Improvements to support property tests on Traces with simple Tx with DRep related Certs
    • pull-3792 - RATIFY and GOV constraint tests
    • pull-3885 - Added a test for genTxAndNewEpoch
    • pull-3886 - QuickCheck Imp integration

    Improvements and releasing

    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-22-mithril + 2023-11-22-mithril + Wed, 22 Nov 2023 00:00:00 GMT + + High level overview

    This week, the Mithril team made progress in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, completing the first prototype implementation of the Mithril relay, which enables P2P signature broadcasting. They also made progress in optimizing the performance of the aggregator. Additionally, the team completed some enhancements on the CI/CD that will help manually deploy experimental Mithril networks for SanchoNet, as well as for the new P2P network layer.

    Finally, they investigated occasional runtime issues causing delays for certain SPOs and started preparing for the next distribution release.

    Low level overview

    • Completed the issue Prototype a P2P relay with libp2p #1326
    • Worked on the issue Enhance aggregator REST API performances #1327
    • Worked on the issue Signer runtime is stuck for some SPO #1312
    • Completed the issue Manually deploy a test Mithril network #1356
    • Completed the issue Make Cardano node version custom in CI/CD #1355
    • Worked on the issue Support P2P relay in infrastructure #1361
    • Completed the issue mithril-client fails to extract archive #1352
    ]]>
    + mithril +
    + + <![CDATA[Initial CIP 1694 Security Analysis and Responses]]> + https://updates.cardano.intersectmbo.org/2023-11-20-cip1694 + 2023-11-20-cip1694 + Mon, 20 Nov 2023 00:00:00 GMT + + High level summary

    We have undertaken an initial high-level security analysis of the CIP-1694 design. We summarise the analysis and our responses here.

    Initial CIP-1694 Security Analysis and Responses

    Section: The constitutional committee


    • “For example, if we consider the hypothetical Constitution rule "The Cardano network must always be able to produce new blocks" - In this example, if the governance action to reduce block size to 0 is passed, then there will be no way of passing or enacting further proposals. That is, this governance action is completely non-reversable. Suggestion: Instating a built-in mechanism that checks (and perhaps enforces) that the proposed governance actions, if passed, can be reverted in the future.

    There is a 'guardrails document' in preparation which captures issues such as these. Some of them may be automatable, as suggested; others will need to be evaluated by humans.


    Section: Size of the constitutional committee


    • A possible issue with very large committee sizes (or large number of proposals/voters in general) is that it may take longer to have votes appear on-chain, which in extreme cases may require longer voting periods.

    Thanks. Yes, we’ve been thinking about this issue for a long time, see for example the section ‘Final safety measure, post bootstrapping’. We don’t consider this as an issue for the CC since they need to be elected while DReps can just register, so we expect the number of CC members to be much less than the number of DReps


    Section: Terms


    • The following sentence is a bit awkward to read: “For example, a committee of size five with a threshold of 3/5 a minimum size of three and two expired members can still pass governance actions if two non-expired members vote Yes.” —> Suggestion: “For example, if we have a committee of size five with a threshold of 3/5, then a committee of three non-expired and two expired members can still pass governance actions if two non-expired members vote Yes.”

    Thanks. Yes, that suggestion is a bit easier to read.


    Section: Registered DReps


    • “Additionally, registered DReps will need to vote regularly to still be considered active.” - There is a minor issue with requiring “voting regularly”. That is, if there are no proposals to vote on for a long time, this means that no DRep can vote regularly (or they have to issue bogus proposals just to vote on them).

    Thanks. We’ve added a mechanism to prevent that issue in the spec/code where if there’s nothing to vote on for an entire epoch, we increment the epoch that each DRep expires.


    Section: Ratification


    • It is a bit unclear why protocol changes: network group and technical group are two separate groups.

    These correspond exactly to the groups that are administered by the Parameter Committee.


    • I didn’t understand the rationale for requiring 100% “Yes” votes to pass “Info” type governance actions? It seems they have the least potential to harm the system.

    Yes, it’s not about harming the system, since Info +actions have no direct effect on the operation of Cardano. The motivation is simply to record the actual level of support for the action.

    Once an action is enacted it’s no longer possible to vote on it. So if there was e.g. a threshold of 50%, then there is no way of telling whether the support for it might eventually have reached 90% or higher if it was not immediately enacted when the threshold was reached.


    Section: Content


    • For Hard-fork initiation, the changed parameters should probably also be required as part of Additional data.

    Protocol parameters can be changed in arbitrary ways by the hard fork and new ones might be introduced, so anything this action pins down might not actually be the value that will be present after the hard fork.


    Section: Protocol Parameter groups


    • It is a bit unclear to the reader what some of these parameters mean, for example: monetary expansion (rho) and treasury expansion (tau). Suggestion: Include brief explanations for the non-obvious parameters.

    These are existing protocol parameters, described in e.g. https://cips.cardano.org/cips/cip9/9 or The Cardano Protocol Parameters Guide.


    • With the current set of governance actions, it seems that it is not possible to add new types of protocol parameters, or categories of governance voting thresholds. Suggestion: Consider possibility of incorporating governance actions that allow addition of new protocol parameters, deletion of defunct protocol parameters, or modification of governance voting threshold categories.

    All of this needs to be done via a hard fork. If we had an action that added a parameter then there is no way of giving it semantics anyway, since that must be done by logic in the code.


    Section: Votes


    • Is a constitutional committee member also a DRep? If so, do they vote twice, once as a committee member and once as a DRep?

    They may or may not be (and they could also be an SPO). Note that this is fine, since these are completely separate tallies. This is also not preventable, since we don’t have an on-chain mechanism for identity. And yes, each credential gets to vote on each action for all roles in the governance system it has.


    Section: Separation of Hard Fork Initiation from Standard Protocol Parameter Changes


    • It is unclear whether there would be automated checks for whether a proposal is indeed a soft fork or hard fork, which would reduce human error in categorising proposals.

    There is no on-chain mechanism that could enforce this, the best we could do is some kind of certificate. However, this may not be trustworthy, of course. We will consider this in future versions of Voltaire.


    Section: Changes post Edinburgh workshop (July 2023)


    • “All governance actions are enacted one epoch after they are ratified.” - I’m not sure if this line is currently in the main body of the CIP?

    It is, but it is phrased differently: ‘All governance actions are enacted on the epoch boundary after their ratification.’


    Section: Reduced deposits for some government actions


    • Another downside of requiring endorsement from the constitutional committee is that this likely does not apply to constitutional committee-related proposals, such as no-confidence votes.

    Indeed. We have no plans for this at the moment.

    ]]>
    + ledger + cip1694 + security +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-17-hydra + 2023-11-17-hydra + Fri, 17 Nov 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team made several impactful updates. They addressed +misleading errors regarding collect com transactions, resolved a security +advisory (CVE-2023-42806), and simplified the Hydra Head protocol by using +inline datums. The team also tackled minor inconsistencies in specifications and +implementation, documented reasons for potentially dropped close transactions by +the cardano-node, and collaborated with SundaeLabs on an offline mode for +hydra-node. Additionally, they engaged in discussions with researchers about +incremental de-/commits.

    What did the team achieve this week

    • Removed misleading errors about collect com transactions #839
    • Addressed security advisory CVE-2023-42806 in PR #1161
    • Changed the head protocol to use inline datums, simplifying things in the hydra-node #1162
    • Addressed minor inconsistencies in spec and implementation #1104
    • Documented why close transacations might be dropped by the cardano-node (cant fix) #1039
    • Tidy up a few things here and there
    • Worked with SundaeLabs on the offline mode for hydra-node
    • Discussed incremental de-/commits with researchers

    What are the goals of next week

    • Start work on incremental decommits protocol specification #1057
    • Provide support to Hypix
    • Address all open bugs
    • Release version 0.14.0 with this scope
    • Update dependencies to prepare for Conway #1114
    • Shepherd off-line mode PR over the finish line
    • Complete tidying up chain layer via stateless observation changes in hydra-node #1096
    ]]>
    + hydra +
    + + <![CDATA[Performance & Tracing Update]]> + https://updates.cardano.intersectmbo.org/2023-11-17-performance-and-tracing + 2023-11-17-performance-and-tracing + Fri, 17 Nov 2023 00:00:00 GMT + + High level summary
    • Benchmarking: Release benchmarking for node 8.6.0 as well as benchmarks scrutinizing GHC versions and the new tracing system.
    • Development: PlutusV3 capability of our workload generator has been implemented.
    • Tracing: First round of optimization of the cardano-tracer service has completed, awaiting validation.
    • Nomad backend: A significant PR has landed addressing automation features and debugging capabilites.
    • Workbench: Configurable remote environments and improvements to run documentation have been merged to master.

    Low level overview

    Benchmarking

    We've performed and analyzed a full set of benchmarks for node 8.6.0, both in comparison to recent release tags +and mainnet version 8.1.2. A lot of development work has entered the system since then, so it is crucial +we can rule out any potential performance risks for the next mainnet release.

    Additionally, we've been benchmarking GHC9.6.3 builds of cardano-node. Overall, we've observed reliable optimization behaviour by that compiler version - which is much more in line with expectations than what we've seen on GHC9.2.7. Getting evidence on how predictable (and malleable, by code annotations) performance is when building with a certain compiler version is essential for settling on a version as supported release platform.

    A last set of benchmarks was dedicated to the new tracing system with node 8.6.0. We were able to show that +there is no performance risk to enabling the new system, even when forwarding all trace messages to a cardano-tracer +service on the receiving end. Key metrics for block forging, as well as block diffusion, did not exhibit any regression.

    Development

    For future benchmarks to be built around PlutusV3, we've equipped our transaction generator with basic integration and tests for the upcoming Plutus version. This enables us to target the new cost model and potential changes +to the execution budgets by developing specialized workloads.

    Tracing

    The cardano-tracer service has received its first batch of optimizations. Profiling output is promising; to measure +performance for a long service run time, we're currently equipping the service binary with the same capability to +emit regular resource traces as cardano-node. Analysis of those will be the basis for validating this and possible future optimization efforts.

    Nomad backend

    Many improvements for the nomad backend have been implemented and merged to master. This encompasses a unified naming schema for all nomad profiles, improved internal management of cluster topology, a more fine-grained healthcheck service, +more detailed automated documentation of underlying hardware, as well as lazy resource release. The latter enables +our team to investigate and debug interrupted runs for the exact moment and in the exact cluster state a potential failure occurred.

    Workbench

    Our performance workbench has seen upgrades in documenting and reporting cardano-node builds. This ranges from capturing package versions and commit ids of key dependencies, to querying a deployed node for its build compiler. +When alternating between compiler versions and benchmarking custom built branches, automating such documentation is essential.

    Furthermore, the workbench is now able to access several remote deployments on all active clusters. This allows for fetching data, analyzing, comparing and reporting on all benchmarks from just one centralized workbench instance.

    ]]>
    + performance-tracing +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-16-network + 2023-11-16-network + Thu, 16 Nov 2023 00:00:00 GMT + + High-level overview of sprint 48

    Bootstrap Peers

    We continued reviewing bootstrap peers, ouroboros-network#4555.

    IOClasses / IOSim

    We prepared slides for a Haskell meetup were we presented a talk on IOSimPOR. +The recording will be availble on YouTube.

    We also used the opportunity to do some refactoring of the IOSim code base: io-sim#117. +We released io-sim-1.3.0.0 on Hackage: io-sim#119.

    We also added forkFinally to MonadFork (not included in 1.3.0.0 release): io-sim#123.

    Tech debt

    We refactored Resource used by the DNS subsystem: ouroboros-network#4707. +We continued reviewing the ouroboros-network#4625 PR, which refactors +RootPeersDNS module.

    ]]>
    + network +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-15-consensus + 2023-11-15-consensus + Wed, 15 Nov 2023 00:00:00 GMT + + High level summary

    Over the last two weeks, we managed to run a UTxO-HD capable node in legacy mode, which maintains the baseline memory usage while keeping all the ledger state in memory (as the current node does). +This legacy mode could provide an alternative for releasing a UTxO-HD capable node where people can choose whether to store the large part of the UTxO set on disk or not. +However, legacy mode involves code duplication, requires several weeks of work before it is production ready (more integration and testing). Moreover, we will not release UTxO-HD before Conway to avoid the risk of delaying the latter. +On the other hand, to integrate the LSM-tree backend for UTxO-HD we need to redesign the Consensus storage layer, and this new design might enable us to implement an alternative in-memory backing store that will have a very similar performance and resource requirements as the current Cardano node. +Therefore, during the coming months we will focus our efforts on the redesign of the storage layer and the LSM-tree backend.

    On the Genesis front, we reviewed the peer simulator for Genesis tests, which was implemented by Tweag and was signed-off by the Consensus team.

    We also continued our work on improving the handling of blocks from the future. We presented possible approaches to handling blocks from the future in the Chief Scientist Meeting at IOG, which was very well-received. The discussion with the IOG scientists touched upon the relationship of this approach to Ouroboros Chronos.

    Javier Sagredo continues his cycle as release engineer, and he is working on version 8.7 of Cardano node.

    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-15-mithril + 2023-11-15-mithril + Wed, 15 Nov 2023 00:00:00 GMT + + High level overview

    This week, the Mithril team completed the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof-of-concept, achieving the implementation of P2P signatures broadcast with the relay in the end-to-end tests. Additionally, the team completed the proof-of-concept for the deterministic computation of the UTXO/transactions set from the immutable files.

    Finally, they continued addressing some performance issue associated with the 'release-mainnet' aggregator, and fixed a bug with the tool used to process batch certificate hash re-computation.

    Low level overview

    • Worked on the issue Prototype a P2P relay with libp2p #1300
    • Completed the issue Light Wallet: Release mithril-client library #1311
    • Completed the issue Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283
    • Completed the issue release-mainnet aggregator is unreachable #1310
    • Completed the issue Fix certificate hashes re-computation in aggregator #1343
    • Completed the issue Remove unstable tag in unstable release #1235
    • Worked on the issue Enhance aggregator REST API performances #1327
    • Worked on the issue Signer runtime is stuck for some SPO #1312
    ]]>
    + mithril +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-14-node-cli-api + 2023-11-14-node-cli-api + Tue, 14 Nov 2023 00:00:00 GMT + + 2023-11-01 - 2023-11-14

    High level summary

    CARDANO-NODE

    CARDANO-CLI

    • Improve golden tests
    • Clean-up of conway era commands

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-10-goedel + 2023-11-10-goedel + Fri, 10 Nov 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and working on a +performance modelling paper

    Details

    • completing work on chain sync mini-protocol

    • specifying correctness property of chain sync mini-protocol

    • creating diagrams for JLAMP paper

    • finalising structure of JLAMP paper

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-10-hydra + 2023-11-10-hydra + Fri, 10 Nov 2023 00:00:00 GMT + + High-level summary

    The last two weeks, the Hydra team achieved several milestones. They published +the monthly report for October, providing updates on project developments. The +team delivered a presentation and workshop at the Cardano Summit, contributing +to community engagement. They implemented a \"dirt road\" solution for the +\"Ignored init tx\" notification and moved the hydra-poll example project to a +dedicated repository. Additionally, the team built a hydra-chain-observer tool +for Hydra Heads, updated the toolchain to GHC 9.6.3, and made various +improvements to tooling and code formatting. They addressed specific issues, +such as fixing the gen-hydra-keys command and resolving concerns with the +rewritten hydra-tui. The team also enhanced the hydra-cluster smoke test +suite by fetching network configurations dynamically. Lastly, they actively +reviewed pull requests and architectural decision records from the community, +including contributions from SundaeSwap. An experiment, the Hydra tally, was +completed and successfully deployed to the mainnet by the Cardano Foundation.

    What did the team achieve this week

    • Published the monthly report for +october
    • Given a presentation / workshop at the Cardano summit +#1109
    • Dirt road implementation for \"Ignored init tx\" notification +#529 (without +stateless observation)
    • Completed and moved hydra-poll example project into a +dedicated +repository
    • Built a first version of a chain observation tool for Hydra Heads +#1096
    • Switched toolchain to GHC 9.6.3 and various improvements on tooling +and code formatting +#1135#1152#1151#1154
    • Fix gen-hydra-keys command to not overwrite existing +keys #1136
    • Fixed the rewritten hydra-tui#1113#1137
    • Fetch network configurations instead of packaging them into +hydra-cluster (smoke) test suite +#1156
    • Reviewing PRs and ADRs from the community (SundaeSwap) +#1118#1157
    • Hydra tally experiment (Cardano Foundation) deployed to mainnet

    What are the goals of next week

    • Tackle reported bugs
    • Shepherd contributed off-line mode PR to the main codeline
    • Improve chain observation tool to include more data and refactor +existing code towards more stateless observation
    • Start work on incremental decommits
    ]]>
    + hydra +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-10-sre + 2023-11-10-sre + Fri, 10 Nov 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-world testnets of preprod, preview, sanchonet and some private test chains have largely completed their migration to the cardano-playground stack

    Lower level summary

    Capkgs

    Cardano-parts

    • General migration support PR for cardano-world to cardano-playground cardano-parts-pull-18
      • Iohk-nix and iohk-nix-ng were updated support the migration of cardano-world networks to cardano-playground
      • Sops-secrets dependent systemd services were fixed to ensure restart upon sops secrets changes
      • Db chain utilities (db-{analyser,synthesizer,truncater}) had -ng variants created to operate on both release and pre-release network chains
      • The profile-cardano-postgres nixos module received preset variables and prepared statements via pgsqlrc for faster and easier analysis of network state
      • The flakeModule jobs now has support for the cardano-cli era command in each of the job scripts by passing the $ERA_CMD variable
      • Default cardano-node-ng package is now 8.6.0-pre, dbsync on sanchonet is now sancho-2-2-0
      • For scripts using a nix-shell shebang, the cardano-parts devShell menu can be disabled from injecting itself into stdout by passing NOMENU=true
      • Template updates include:
        • Adds optional TF AZ declaration on ec2 resources
        • Adds a cardano node p2p dashboard to the grafana cloud stack
        • Adds a dbsync pool performance analysis query
        • Updates python distribute and delegation scripts from world for playground compatibility
        • Starts a python script lib to reduce shared code among the python scripts
        • Several justfile improvements and new recipes
      • More detail is available in the PR description
    • Update submit action script for 8.6 cardano-parts-pull-19
    • Update scripts for 8.6.0-pre cardano-parts-pull-21
      • Fixes subcommand names based on ERA_CMD
      • Adds deposits to some commands
      • Separates CC cold/hot key generation as host authorization has to occur after action is approved
      • CC voting enabled in vote job

    Cardano-playground

    • Migration PR to largely complete the network migration from cardano-world to cardano-playground: cardano-playground-pull-5
      • Adds re-spun private chain network
      • Migrates shelley-qa chain network from world
      • Justfile improvements and new recipes
      • Improve concurrent environment chain support
      • More detail is available in the PR description

    Iohk-nix

    • Migration to play: iohk-nix-pull-561
      • Migrate cardano-lib networks from world.dev.cardano.org to play.dev.cardano.org
      • Remove deprecated cardano-lib p2p network environment
      • Update sanchonet chain with respin changes
      • Update private chain with respin changes
      • Bump private and shelley-qa chains to sanchonet equivalent conway genesis
      • Bump preview, preprod chains to sanchonet equivalent conway genesis for node 8.6.0-pre pre-release testing

    Sanchonet-demo

    ]]>
    + sre +
    + + <![CDATA[DB-sync Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-09-db-sync + 2023-11-09-db-sync + Thu, 09 Nov 2023 00:00:00 GMT + + High level summary

    We have created new tag sancho-2-2-0, which integrates missing Conway feautures and some minor fix +tags sancho-2-1-0, sancho-2-0-1. +We have completed the initial implementation for the bootstrap instance objective.

    Lower level summary

    • Add a new --disable-gov flag which disabled Conway ferautures +#1558
    • Fix of the committee key size +#1544
    • Workaround a ledger issue with unregistered pools +#1542
    • Implemented a mechanism that loads the UTxO from the ledger resulting is way faster syncs +#1539
    • Rename offline to offchain +#1533
    • Transfer existing tests to Conway era +#1529#1547
    ]]>
    + db-sync +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-08-ledger + 2023-11-08-ledger + Wed, 08 Nov 2023 00:00:00 GMT + + High level summary

    This update contains mostly improvements to quality of Conway era implementation and +tooling that we use for testing Ledger. Major Conway bugs that were discovered and +squashed are:

    • PParamsUpdate proposals will now correctly use DRep thresholds for ratification
    • Treasury withdrawals are now properly enacted.
    • Corrected snapshotting and DRep Stake Distribution Pulser initialization
    • Delegation to non-existent Stake pool is no longer possible

    Other important quality of life improvements are addition of reusable interfaces for an +ordered set OSet and ordered map OMap. Which allowed us to disable duplicate +certificates and proposals in a transaction. As a precursor to PlutusV3 integration, a +serious reorganization of Plutus related functionality was performed.

    Conway related additions that are noteworthy: Conway Ledger events, disallowing voting on +expired proposals, addition of Anchor to Constitutional Committee resignation proposals.

    Significant improvements have been made to a specialized "Imp" test library that allows us +writing concise stateful unit tests for verifying the Ledger logic. Serious progress has +been made on the conformance testing, where we can now interface with Haskell generated +code from the Agda specification. Serialization testing has been extended to increase +binary conformance coverage.

    Low level summary

    Conway

    • pull-3808 - Enhance CommitteeMembersState query to return quorum and NoConfidence
    • pull-3801 - Fix epoch rule and tests
    • pull-3803 - Fix delegation validation
    • pull-3759 - Reshuffle things to the DRepPulser incorporates some snap shot things
    • pull-3779 - Prevent duplicate certs and proposals
    • pull-3794 - Added anchor to resign certs
    • pull-3797 - Cleanup JSON instances for Conway governance
    • pull-3848 - Plutus modules restructure
    • pull-3840 - Fix anomalies in Deposits in the Conway Era
    • pull-3856 - Add governance related ledger events
    • pull-3825 - Prevent voting on expired GovActions
    • pull-3831 - Treasury withdrawal fix
    • pull-3791 - Use a Data.OMap.Strict to replace ProposalsSnapshot
    • pull-3836 - PParamsUpdate enactment fix
    • pull-3846 - Revert argument order swap.

    Testing

    • pull-3782 - Move ImpTest to Shelley testlib
    • pull-3842 - Imp improvements
    • pull-3844 - Add mappings to Agda types
    • pull-3853 - Fix strange assertion failure, which hides real Block too big problem.
    • pull-3809 - CDDL roundtrip testing
    • pull-3832 - Treasury withdrawals tests
    • pull-3839 - Added cardano-ledger-conformance
    • pull-3841 - Add sha256 to cardano-ledger-executable-spec

    Improvements and releasing

    • pull-3843 - Add ...WithLogs versions of evalScripts and friends
    • pull-3795 - Bump plutus to 1.15
    • pull-3798 - Bump urllib3 from 1.26.17 to 1.26.18 in /doc
    • pull-3799 - Changes needed for 8.6 release
    • pull-3807 - Add invalidBeforeL and invalidHereAfterL functions
    • pull-3819 - Fixups needed for a release
    • pull-3829 - Post release CHANGELOG version bumps
    • pull-3830 - Bump aeson to 2.2
    • pull-3833 - Backport release cardano-ledger-conway-1.10.1.0
    • pull-3828 - Add changelog for node release 8.6
    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-08-mithril + 2023-11-08-mithril + Wed, 08 Nov 2023 00:00:00 GMT + + High level overview

    This week, the Mithril team continued working on completing the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, achieving the implementation of a very basic working demo with a peer-to-peer publish-subscribe (pub-sub) mechanism. Additionally, the team continued working on the deterministic computation of the UTXO/transactions set from the immutable files.

    Finally, they resolved the naming issue of the Docker package responsible for storing images of the new Mithril client CLI, and continued addressing a performance issue associated with the 'release-mainnet' aggregator.

    Low level overview

    • Worked on the issue Prototype a P2P relay with libp2p #1300
    • Worked on the issue Light Wallet: Release mithril-client library #1311
    • Worked on the issue Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283
    • Worked on the issue release-mainnet aggregator is unreachable #1310
    • Completed the issue Client Docker package is incorrect #1322
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-01-consensus + 2023-11-01-consensus + Wed, 01 Nov 2023 00:00:00 GMT + + High level summary

    This week the Consensus team made progress on two fronts: the question of survivable eclipse duration, which is part of our work supporting Genesis delivery, and how to improve the handling of blocks from the future. +Regarding the UTxO-HD branch, we managed to run a node with legacy blocks, which is syncing with mainnet, up to including Alonzo. +We also investigated a regression in mempool snapshotting, which was ultimately solved by a Ledger update, and will be fixed in the upcoming Node 8.6 release.

    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-11-01-mithril + 2023-11-01-mithril + Wed, 01 Nov 2023 00:00:00 GMT + + High level overview

    This week, the Mithril team kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept. They progressed with the adaptation of the Mithril client as a library, and worked on its full WASM compatibility in a proof of concept. The team kept working on the deterministic computation of the transactions from the immutable files, and fixed some unreachability issue on the release-mainnet aggregator.

    Finally, they implemented new Docker images that build the Mithril nodes on the 'devnet' faster and fixed some regressions in the Mithril client CLI.

    Low level overview

    • Worked on the issue P2P Networking - Proof of Concept #1300
    • Completed the issue Build mithril-common and mithril-client in WASM PoC #1284
    • Completed the issue Fix devnet Mithril Docker images [#1272](https://github.com/input-output-hk/mithril/issues/1272
    • Worked on the issue Light Wallet: Release mithril-client library #1311
    • Worked on the issue Compute deterministic Cardano UTxO set PoC #1283
    • Worked on the issue release-mainnet aggregator is unreachable #1310
    • Completed the issue Client regressions in snapshot list and download #1321
    ]]>
    + mithril +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-27-goedel + 2023-10-27-goedel + Fri, 27 Oct 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and writing a paper +on performance modelling

    Details

    • completing work on chain sync mini-protocol

    • outline for JLAMP journal paper submission

    • analysing timeouts

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-27-hydra + 2023-10-27-hydra + Fri, 27 Oct 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team fixed the gen-hydra-keys command to avoid +overwriting existing keys, and resolved issues related to the rewritten +hydra-tui. They also worked on a \"dirt road\" implementation for the +\"Ignored init tx\" notification, improving the robustness of the system.

    The team finalized preparations for the Cardano Summit presentation, including +implementation of the hydra-poll example DApp.

    If you happen to read this and attend the Summit in Dubai, make sure to check +out our Masterclass about \"Developing Hydra + Mithril for Scaling Cardano\" on +Friday, November 3 at 14:00-15:30 local time in the \"Al Dar\" room!

    What did the team achieve this week

    • Fix gen-hydra-keys command to not overwrite existing keys +#1136
    • Fixed the rewritten hydra-tui#1113#1137
    • Finalized cardano summit preparation +#1109
    • Implemented the hydra-poll example DApp link to +repository
    • Dirt road implementation for \"Ignored init tx\" notification +#529

    What are the goals of next week

    • Attend cardano summit and deliver presentation
    • Clarify / close user created issues
    • Build aarch64-darwin binaries in CI
    ]]>
    + hydra +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-27-network + 2023-10-27-network + Fri, 27 Oct 2023 00:00:00 GMT + + High-level overview of sprint 47

    Bootstrap Peers

    We continued to review the process of bootstrap peers, see ouroboros-network#4555

    CI / Tests

    We investigated our CI issues. We found a memory leak in typed-protocols +function used for testing codecs which triggered out of memory manager (OOM) on +some platforms (typed-protocols#43); we also found a bug in the connection manager which resulted in CI +timeouts (see connection-manager-fix).

    KeepAlive client

    We found two small issues with the keep-alive client, which were addressed +by Karl Knutsson (Cardano Foundation), ouroboros-network#4689.

    Galois

    We merged two large PRs prepared by Galois:

    Cardano Network Service Assurance (CNSA)

    Galois made the following progress on CNSA:

    • a simple [InfuxDB] database backend has been added;
    • the documentation has been updated;
    • internal improvements to the code;
    • progress on a new "CSNA analysis" that provides, for each sampler node, the +block download throughput in bytes over time.

    New CHaP Release

    We cut a new release of ouroboros-netowrk packages to CHaP: chap#547

    More details

    CI / Tests

    We improved the memory footprint of some of our tests by analysing a stream of +IOSim traces without retaining them, see ouroboros-network#4696

    As a safety measure, we introduced an upper bound for heap memory used by test +artefacts in our nix tests. We use 200MB limit for all tests except for +network-mux tests which use 350MB limit, see ouroboros-network#4702.

    We refactored one of our tests to use ephemeral ports thus allowing it to +run concurrently, see ouroboros-network#4702.

    We merged ouroboros-network#4623 which fixes a bunch of test failures.

    All of them were due to a bug in test logic rather than a bug in production +code.

    Release Process

    We updated our release process & associated scripts, see +ouroboros-network#4705.

    ]]>
    + network +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-27-sre + 2023-10-27-sre + Fri, 27 Oct 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-world testnets of preprod, preview, sanchonet and some private test chains are in the process of being migrated to the cardano-playground stack

    Lower level summary

    Capkgs

    • Adds offchain-metadata-tools, dbsync sanchonet updates: capkgs-compare

    Cardano-parts

    • General package updates, modules improvements and template recipes to support network migration from world to playground cardano-parts-pull-17
      • Bumps cardano-db-sync-ng to sancho-2-0-0 tag
      • Bumps iohk-nix-ng to mig-sancho branch for sanchonet pool migration from world to play
      • Adds more machine system bins and devShell bins for scripting and debug purposes
      • Adds cardano-show-kes-period alias on any node machine importing profile-cardano-node-group module
      • Adds profile-cardano-node-topology module for a simplified interface to most common topology needs
      • Adds a job-delegate-rewards-stake-key job as an optional follow on to pool creation and registration jobs
      • Adds a topology function to filter self from group machines with an allowList for matching infixes
      • Adds metadata-server and related offchain-metadata-tools bins from capkgs
      • Updates justfile template with:
        • a new query-all recipe for getting status of multiple concurrent running environments
        • a new set-default-cardano-env recipe for fast switching between environments
        • a new start-demo recipe for forking a custom env into conway
        • a new start-node recipe for generic environment start
        • a new stop-node recipe for generic environment stop
        • updated list-machines recipe for handling of empty nixos machine config and empty ssh_config conditions
        • updated query-tip recipe to a generic query tip compatible with each environment

    Cardano-playground

    ]]>
    + sre +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-25-mithril + 2023-10-25-mithril + Wed, 25 Oct 2023 00:00:00 GMT + + High level overview

    This week, the Mithril team released a new distribution 2342.0. This release includes support for SPO tickers displayed in the Mithril explorer and the ability to produce slim Docker images for Mithril nodes.

    They also kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, progressed with the adaptation of the Mithril client as a library, and worked on the deterministic computation of the UTXO set from the immutable files.

    Finally, they fixed the bottleneck of the key registration in the aggregator, investigated some unreachability on the release-mainnet aggregator, and enhanced the Mithril explorer UI.

    Low level overview

    • Worked on the issue P2P Networking - Proof of Concept #1300
    • Completed the issue Make mithril-client crate a library #1141
    • Worked on the issue Compute deterministic Cardano UTxO set PoC #1283
    • Completed the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
    • Worked on the issue Fix devnet Mithril Docker images #1272
    • Worked on the issue release-mainnet aggregator is unreachable #1310
    • Worked on the issue Build mithril-common and mithril-client in WASM PoC #1284
    • Completed the issue Display a summary of signers before the full list in explorer #1133
    • Completed the issue Add certificates list in explorer #1184
    • Completed the issue CoreVerifier setup does not compute total_stake correctly #1306
    ]]>
    + mithril +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-24-node-cli-api + 2023-10-24-node-cli-api + Tue, 24 Oct 2023 00:00:00 GMT + + 2023-10-11 - 2023-10-24

    High level summary

    CARDANO-CLI

    • Disambiguate cardano-cli stake credential related flags on treasury withdrawal governance actions making it easy to identify which is used for the deposit refund and which for the destination of the funds from the treasury if the action is ratified.
    • stake-address-info now shows deposits balance.
    • Added conway governance action view to allow to inspect governance action files before submitting them on a transaction.
    • build-raw support for --vote-file and --proposal-file

    CARDANO-API

    • Support DRep extended keys
    • Support Plutus V1 in Conway

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-20-hydra + 2023-10-20-hydra + Fri, 20 Oct 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team mainly focused on preparing a masterclass and workshop for #CardanoSummit2023.

    In addition, they improved the Hydra node API's submit-transaction endpoint to accept three different encoding types: Base16 encoded CBOR string, TextEnvelope type, and JSON. +This improvement offers users greater flexibility and ease of interaction with the API.

    Finally, the team has followed up on the TUI brick upgrade to version 1.10. +This effort has resulted in addressing minor details and enhancing the overall user experience with the TUI.

    What did the team achieve this week

    • Prepare presentation and workshop for Cardano Summit.
    • More TUI fixes and improvements.
    • Upgrade GHC from 9.2.8 -> 9.6.2 #1105
    • Solved user issue related to submitting transactions in cbor format #1111.
    • Fix hydraw connection issue making it more stable #1121.

    What are the goals of next week

    • Work on hydra-poll dApp for Cardano summit.
    • Start the work on packaging hydra-node and related services.
    ]]>
    + hydra +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-18-consensus + 2023-10-18-consensus + Wed, 18 Oct 2023 00:00:00 GMT + + High level summary

    During the past two weeks the Consensus team received additional benchmark results for the UTxO-HD feature that show the resource usage for the in-memory backend is not satisfactory for a mainnet release, and we need to wait on the implementation of a new infrastructure to benchmark the LMDB backend (not likely to happen before next year). While we wait on this, we are evaluating the feasibility of making the UTxO-HD feature switchable, which will enable us to release it as an experimental feature. On the Genesis front we produced the first draft for a Survivable Eclipse Duration Model. We released version 8.5.0 of Cardano node, resumed work on subpar handling of blocks from the future, and improved our tracing system to assist problem troubleshooting in the node.

    UTxO-HD

    • The Plutus workload benchmark for the in-memory backend showed no regressions for the metrics of interest, but it does show an increase in resource usage.
    • We got additional ad-hoc measurements on memory UTxO-HD consumption. The memory usage of the in-memory backend is not satisfactory for a release. The memory usage of the LMDB backend is considerably lower, but we need to see how much lower we can bring it by running a node whose memory is constrained to 8GB.
    • We resumed work on an alternative solution that will make the UTxO-HD switchable. This will enable us to keep the baseline performance by totally disabling UTxO-HD, while allowing users to experiment with the feature if they wish to do so.

    Genesis

    • We produced the first draft for a Survivable Eclipse Duration Model (422).

    Support

    • Esgen finished his cycle as release engineer. Node 8.5.0 has been released.
    • We resumed work on the subpar handling of block from the future (4251).
    • We prepared the integration of new tracing events for the next node release. These tracing events will help debugging potential issues in the node (such as the previously mentioned issue).
    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-18-mithril + 2023-10-18-mithril + Wed, 18 Oct 2023 00:00:00 GMT + + High level overview

    This week, the Mithril team started working on the decentralization of the Mithril networks with a proof of concept of peer-to-peer (P2P) networking between nodes. The team kept working on the adaptation of the Mithril client as a library, on the deterministic computation of the transaction history of an address from the immutable files, and on the refactoring that will fix the bottleneck of the key registration in the aggregator. Additionally, they published a security advisory for the Mithril relay.

    Finally, they enhanced the CI/CD to publish multiple packages to crates.io and started improving the developer experience with the Mithril devnet.

    Low level overview

    • Published the security advisory Mithril relay could expose Cardano block producer internal IP when updated #GHSA-9m3h-72xj-x2gq
    • Worked on the issue P2P Networking - Proof of Concept #1300
    • Worked on the issue Make mithril-client crate a library #1141
    • Worked on the issue Compute deterministic Cardano transactions history PoC #1283
    • Worked on the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
    • Completed the issue Publish multiple packages to crates.io #1298
    • Completed the issue Rename public key published in releases #1292
    • Completed the issue Mithril networks infrastructure maintenance #1218
    • Worked on the issue Fix devnet Mithril Docker images #1272
    ]]>
    + mithril +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-15-network + 2023-10-15-network + Sun, 15 Oct 2023 00:00:00 GMT + + High-level overview of sprint 46

    Bootstrap Peers

    We continued reviewing of bootstrap peers, see ouroboros-network#4555.

    Towards Typed Protocols 0.2.0.0

    We diagnosed the performance regression of the new design. The work on +typed-protocols will be postponed. For more details see the +typed-protocols#3. As an outcome of the performance debugging we prepared +PR which updates the demo-ping-pong and +demo-chain-sync applications.

    Peer Sharing

    We made progress in review of ouroboros-network#4644, which simplifies the +peer sharing and fixes the ouroboros-network#4642 issue.

    Tech Debt

    We reviewed the ouroboros-network#3836 PR which inspects all the uses of +error in ouroboros-network. The PR was prepared by Galois.

    ]]>
    + network +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-13-goedel + 2023-10-13-goedel + Fri, 13 Oct 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and testing the +performance analysis tool

    Details

    • extending thorn-calculus to support synchronous channels

    • extending mini-protocol framework to support communication with the +environment

    • working on chain sync mini-protocol

    • planning for JLAMP journal paper submission

    • analysying any-to-finish

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-13-hydra + 2023-10-13-hydra + Fri, 13 Oct 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team's primary focus was on finalizing the new network resilience layer. This involved adding persistency to ensure data integrity.

    They also completed the exploration of potentially moving the Plutus validator scripts to Aiken.

    Additionally, the team dedicated some attention to our TUI by upgrading the Brick framework. They also undertook a comprehensive refactoring of the project's structure and addressed various bug fixes. These efforts are aimed at enhancing the overall user experience of our project.

    What did the team achieve this week

    • Network Resilience Persistence (#1101)[https://github.com/input-output-hk/hydra/pull/1101].
    • Upgrade brick on TUI (#1103)[https://github.com/input-output-hk/hydra/pull/1103].
    • Aiken commit validator translation (#1072)[https://github.com/input-output-hk/hydra/pull/1072].
    • Fixed some bugs in our TUI client.

    What are the goals of next week

    • Prepare presentation and workshop for Cardano Summit.
    • Work on hydra-poll dApp for Cardano summit.
    • Start the work on packaging hydra-node and related services.
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-13-ledger + 2023-10-13-ledger + Fri, 13 Oct 2023 00:00:00 GMT + + High level summary

    The Ledger team has been shifting focus from implementing Conway related features to +testing. For this reason there is a very little amount features that are reported this +time aorund. Notable Conway related changes are a specialized ledger query for getting +Constitutional Committee state and prevention of submitting proposal procedures that have +no valid path to enactment.

    Testing related work was mainly on a constraint base system as well as on roundtrip +serialization. As a result of this extra testing a bug in Conway Genesis serialization +was eliminated.

    Low level summary

    Conway era

    Integration and releasing

    Testing

    • pull-3769 - Add roundtrip testing by validating FlatTerm
    • pull-3783 - Update TranslationInstance.hs
    • pull-3775 - Refactor and improve constraint based STS tests
    • pull-3793 - Fix sums with negative RHS.
    ]]>
    + ledger +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-13-sre + 2023-10-13-sre + Fri, 13 Oct 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet environment was updated to 8.5.0-pre.
    • Cardano-parts now supports cardano-db-sync, cardano-smash, cardano-faucet and grafana cloud monitoring

    Lower level summary

    Capkgs

    • Various improvements and fixes including:
      • Add GHA cron schedule
      • Add nix auto-gc to avoid running out of storage during large package set builds
      • Add new packages to capkgs
      • Reduce runner storage requirement leaving more room for builds
      • Restructure capkgs attribute names to avoid package name collisions
      • Return to non-musl builds for cardano packages to retain journald compatability
      • Update cache usage to from file level to folder level to reduce network and latency overhead
      • Commit diff: capkgs-compare

    Cardano-parts

    • Updates cardano-node-ng to 8.5.0-pre and adds a Conway era automation job: cardano-parts-pull-16
    • Dbsync, smash, faucet and more: cardano-parts-pull-15
      • Adds cardano-db-sync, cardano-faucet, cardano-postgres, cardano-smash, profiles and/or services and related changes
      • Adds nginx vhost metrics exporter profile
      • Adds smash registered-relay-dump service and exporter for use until legacy relay nodes are scaled down
      • Adds bash *-ng autocompletion compatible wrappers
      • Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview
      • Adds downstream grafana cloud dashboard as templates
      • Adds downstream grafana cloud alerts as templates
      • Updates grafana-agent profile with new exporter scrape hooks: cardano-db-sync, cardano-faucet, nginx-vts, varnish
      • Updates the basic profile with IOG cache and commonly used bins
      • Updates the pre-release profile to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning
      • Updates flakeModule jobs with new conway era automation and additional IO encryption shimming and file type checks
      • Updates .sops.yaml template for supporting faucet secrets, workbench secrets, state-demo secrets
      • Updates the Justfile template with terraform fixes for workspace switching and provider auto-reconfiguration
      • Updates the cloudFormation terraformState template with stack modifications to preserve all resources in case of deletion
      • Updates the colmena template with dbsync, smash, faucet machines profiles and roles
      • Improves prior cardano-postgres modules to now automatically tune pg parameters based on machine cpuCount, memMiB and desired conns
      • Bumps capkgs node-ng to 8.5.0-pre

    Cardano-playground

    • Dbsync, smash, faucet and more: cardano-playground-pull-3
      • Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview
      • Adds dbsync, smash, faucet machines and corresponding metrics exporters, dashboards and alerts
      • Moves the flake.cardano-parts.cluster.group attrSet name to groups to accurately reflect the plurality and the upstream corresponding change
      • Optimizes machine sizes
      • Updates .sops.yaml for supporting faucet secrets, workbench secrets, state-demo secrets
      • Updates the cloudFormation terraformState file with stack modifications to preserve all resources in case of deletion
      • Updates the cluster isNg definition to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning
      • Updates the Justfile with terraform fixes for workspace switching and provider auto-reconfiguration

    Cardano-world

    Sanchonet-demo

    • Update for cardano-node 8.5.0, conway job recipes and cardano-parts interface changes: sanchonet-demo-commit
    ]]>
    + sre +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-11-mithril + 2023-10-11-mithril + Wed, 11 Oct 2023 00:00:00 GMT + + High level overview

    This week, the Mithril team worked on the distribution of the Mithril client as a library that will be distributed on crates.io, the Rust dependencies repository. The team also worked on the deterministic computation of the transaction history of an address from the immutable files and started fixing a bottleneck in the aggregator that limits the ingestion of signatures.

    Finally, they kept working on the activation of Cloudflare on the infrastructure and fixed some bugs in the Nix CI.

    Low level overview

    • Worked on the issue Make mithril-client crate a library #1141
    • Worked on the issue Compute deterministic Cardano transactions history PoC #1283
    • Worked on the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
    • Completed the issue Update Rust compiler in nix CI #1282
    • Worked on the issue Mithril networks infrastructure maintenance #1218
    • Worked on the issue Activate Cloudflare protection of infrastructure #1230
    ]]>
    + mithril +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-10-node-cli-api + 2023-10-10-node-cli-api + Tue, 10 Oct 2023 00:00:00 GMT + + 2023-09-27 - 2023-10-10

    High level summary

    CARDANO-NODE

    CARDANO-CLI

    • Depracated governance query commands and moved all governance related queries to cardano-cli <era> query
    • Drep registration certificates now allow to include an anchor
    • Integrated Drep retirement ceriticates
    • clean up of Drep registration certificates.

    CARDANO-API

    • Add support for committee hot key witnesses
    • Require conway onwards for voting
    • Conway drep registration: expose ledger anchor parameter
    • Add certs to txbody of Conway transactions

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-06-hydra + 2023-10-06-hydra + Fri, 06 Oct 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team released version 0.13.0, which includes fixes and extensions for state persistency and the ability to draft a commit transaction using inline datums.

    The team also delivered the first version of the network resilience layer, significantly increasing head availability.

    Additionally, they have been providing support to several funded Catalyst projects that want to build on Hydra.

    Last but not least, they updated and published security policy and vulnerability disclosure policy reports on how to handle security vulnerabilities within Hydra.

    What did the team achieve this week

    • Release 0.13.0
    • Published vulnerability reports #1088
    • Merged network resilience work part I #1074
    • Planning for Cardano Summit participation
    • Discussions with funded Catalyst projects wanting to build on Hydra for support
    • Merged typos fix PR from @omahs #1095

    What are the goals of next week

    • Complete Aiken commit validator script #1072
    • Complete Kupo integration #1078
    • Brick upgrade on TUI #1103
    • Clean backlog
    • Prepare and rehearse demo and talk for Cardano Summit
    ]]>
    + hydra +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-10-06-performance-and-tracing + 2023-10-06-performance-and-tracing + Fri, 06 Oct 2023 00:00:00 GMT + + High level summary
    • Benchmarking: Continued benchmarking of UTxO-HD and performed benchmarks for the new tracing system.
    • Consensus QTAs: Our protoype approach is applied to potential regression fixes with GHC 9.2.7.
    • Development: We've developed strategies for future benchmarks of PlutusV3 and UTxO-HD's on-disk backing store.
    • Tracing: The machine-readable tracer configuration has been merged. Optimization of cardano-tracer started.
    • Nomad backend: Ongoing variance analysis and refined cluster topology.

    Low level overview

    Benchmarking

    Performing and analyzing benchmarks for the UTxO-HD feature is an ongoing effort; we can reliably assess the +performance of the in-memory backing store and evaluate possible optimizations (or regressions) for it.

    Furthermore, benchmarks of our new tracing system after several rounds of optimization have been performed. The results +show all key metrics now being unaffected by the choice of tracing system (legacy or new) - with the new system being able to provide more features and flexibility in comparison. The benchmarks also highlighted further points for optimization, with the focus now on the cardano-tracer service.

    Consensus QTAs

    The Quantitative Timeliness Agreements (QTA) prototype is being used in coordination with Consensus and DevX to validate a series of patches that address optmization opportunities which GHC8.10 seizes, but GHC9.2 misses. The +feedback from this approach is much more immediate than running benchmarks at system integration level. But once we eventually do, we expect to reproduce the relevant observations - which would mean a big step towards maturing the prototype.

    Development

    Benchmarking UTxO-HD's on-disk backing store needs special attention: in virtualized environments, disk I/O is not a reliable metric as it passes several layers of indirection. As this is the very metric which will influence overall performance of this UTxO-HD flavour, we developed a plan to monitor such nodes, connected to a running network, on dedicated hardware - having direct SSD access. Replicating this setup for an entire benchmarking cluster of such nodes will be a future effort.

    PlutusV3 will come with new builtins and a new cost model. It will take a specialized benchmark to ascertain the soundness of that model running a full cluster of nodes, possibly stressing expensive builtins. At the same time, +we'd like to validate the many improvements that have gone into the Plutus evaluator.

    Tracing

    The focus for further optimization of the new tracing system has shifted to cardano-tracer - the service +receiving and processing traces from one (or more) nodes. Whilst undisputed that the code living in cardano-node is +more performance critical, the receiving service must still minimize its resource footprint. Moreover, it can +generate load for a running node when querying data points from it - which calls for tight control of that mechanism and its possible configurations.

    Nomad backend

    Variance analysis of new nomad backend has revealed a necessary adjustment of the cluster's topology. We repeated +the same analysis and now see even better confidence in the measurements taken with nomad. This concludes the work on the backend proper for the time being. The last steps before production use will focus on the interface between backend and our workbench, which provides all high-level benchmark definitions and analysis machinery.

    ]]>
    + performance-tracing +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-04-consensus + 2023-10-04-consensus + Wed, 04 Oct 2023 00:00:00 GMT + + High level summary

    The value-only workload benchmarks showed that the mempool forging regression observed in the UTxO-HD branch was fixed by the latest patch. In spite of the higher resource demands, for the metrics of interest (forging, peer-propagation, end-to-end propagation) we see no regression when using the UTxO-HD version of Cardano node, with the in-memory backend.

    On the Genesis front the Researchers continue reviewing different aspects of the design, in particular the argument that the Genesis rule will select the Cardano historical chain. +We also merged a fix for the Babbage to Conway transition, and released a new version of Consensus.

    Genesis

    • We elicited review from the Researchers on a final draft of the argument that the Genesis rule will select the Cardano historical chain (392).

    Support

    • We merged a minimal patch that fixes parameter update bug during the Babbage to Conway transition (366).
    • We enabled richer tracers in cardano-node that can be useful in future debugging (384).
    • Esgen continues with his release engineer activities, and created a new Consensus release.

    Fostering collaboration

    • We merged a new section into our documentation that explains the existing hard-fork combinator (HFC) interface and its complexities, which are relate do why the Babagge to Conway transition surprised us in this way. This explanation is step one towards improving the HFC interface (369).
    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-04-mithril + 2023-10-04-mithril + Wed, 04 Oct 2023 00:00:00 GMT + + High level overview

    This week, the Mithril team updated a proposal for implementing Mithril in a light wallet and created a discussion on implementing Mithril in a light wallet to receive feedback and contributions from the community.

    They also completed a proof of concept to run a Mithril client in a browser with WASM and worked on enhancing the explorer UI with SPO tickers displayed next to the pool IDs. Additionally, the team finalized a tool for benchmarking aggregator performance over a range of signer and client loads and for visualizing the results of these benchmarks.

    Finally, the team added a root page to the aggregator endpoint, created a status page for the Mithril networks, and added a section about KES key rotation in the signer documentation for SPOs.

    Low level overview

    • Created the discussion Implement Mithril in a light wallet #1273
    • Completed the issue Run client in browser WASM PoC #1254
    • Completed the issue Benchmark aggregator performances #1220
    • Worked on the issue Add SPO tickers in explorer #1185
    • Completed the issue Add a non 404 status code on the aggregator endpoint #1103
    • Completed the issue Use source attribute in errors #1265
    • Completed the issue Create a SPO checklist for KES keys update #1267
    • Completed the issue Configure status page and alerting #1277
    • Completed the issue Upgrade dependencies #1274
    ]]>
    + mithril +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-10-02-network + 2023-10-02-network + Mon, 02 Oct 2023 00:00:00 GMT + + High-level overview of sprint 45

    Bootstrap Peers

    We started reviewing the bootstrap peers PR, ouroboros-network#4615.

    Towards Typed Protocols 0.2.0.0

    We discovered a performance regression when using typed-protocols-0.2.0.0, and we +started investigating where it comes from. Currently, we see that +typed-protocols-0.2.0.0 can outperform typed-protocols-0.1.0.0 when running +in isolation with a simple ping-pong protocol, so the regression might be in +the new block fetch implementation which comes with typed-protocols-0.2.0.0 +See typed-protocols#3.

    Tech Debt

    We merged two PRs written by Galois engineers:

    • a pull request which refactors the main entry function for P2P, see ouroboros-network#3834;
    • a pull request which reviews usage of unsafe function in the network code based.

    Galois also made progress with the following two issues:

    IO-Sim

    IOSimPOR

    We found and fixed a bug in IOSimPOR. We'd like to thank Prof. John Hughes +(Quviq AB) for helping us with debugging the issue.

    We also provided a more uniform API for IOSimPOR, and added ways to make the +debugging similar problems in the future easier.

    Technical Details on IOSim refactoring
    We removed the usage of `unsafePerformIO` from `IOSimPOR`, which also means removing parallel evaluation of discovered races. We found out that it gives only 25% better performance. In the future QuickCheck will offer running different cases in parallel which should provide better performance as there are no dependencies between the evaluation of different test cases, while schedules are discovered while running which limits the possible gains from running them concurrently. The performance was not the only factor though. When using parallelism in the lazy `ST` monad we'd need to rely on memory guarantees of `STRefs`. In `GHC-9.6` they share the implementation with `IORef`s, but it might not be the case in the future.

    IOSim

    To prepare for the next release, we consolidate packages taking advantage of +the public sublibraries supported now both by cabal and Hackage. This is +a work in progress, io-sim#114.

    Cardano Newtork Service Assurance

    Galois made the following progress:

    • A test run of spinning up a CNSA instance was done, as a result documentation +was updated.
    • Based on the IOG code review of the CNSA code, updates to the CNSA code were +made.
    • Galois has started the design for adding a CNSA analysis for "fetched bytes +over time while node is syncing".

    P2P adoption

    In the last two weeks, we've seen increase in P2P adoption. +P2P relays

    The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays. +node versions

    Open Source

    We upstreamed our FFI bindings to Windows named pipes to Win32 package, the +PR was accepted and merged.

    We also received an external contribution which enhanced our documentation, see +ouroboros-network#4676.

    ]]>
    + network +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-29-goedel + 2023-09-29-goedel + Fri, 29 Sep 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and testing the +performance analysis tool

    Details

    • drafting processs calculus semantics of mini protocol programs

    • testing the new performance modelling tool

    • further work on specification of mini protocols

    • extension of mini protocol framework to support communication of +programs with local environments via synchronous channels

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-29-hydra + 2023-09-29-hydra + Fri, 29 Sep 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team mainly focused on having a working new reliability +network layer; and specified its expected behavior in a new ADR.

    They also revisited the security policy and vulnerability disclosure policy on +how to handle security vulnerability within Hydra, and in particular how to +handle so-called "Silent fixes".

    What did the team achieve this week

    • Updated security policy and vulnerability disclosure policy #1088
    • Adr/network reliability #1082

    What are the goals of next week

    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-29-ledger + 2023-09-29-ledger + Fri, 29 Sep 2023 00:00:00 GMT + + High level summary

    Few important Conway related features were completed in this two week period:

    • Constitutional Committee was the last missing Conway related entity that has now been +fully implemented.
    • Treasury withdrawals governance actions have been fixed and now behave as expected.
    • Current treasury amount supplied in the transaction is now enforced by the rules.
    • DRep's expiry is prevented by delaying the expiry for all DReps whenever there are no +proposals to vote on.
    • Semantics of how CostModels are updated with Protocol Parameters have been changed to +allow for individual Plutus language version updates, rather than requiring a complete +replacement of all CostModels

    Besides the new features there were also important performance and testing improvements:

    • In particular stake distribution computation and native script handling received some +optimizations.
    • New testing DSL has been implemented that drastically simplifies writing unit tests for +ledger rules.
    • Integration tests and benchmarks are now possible for Conway era because of the overhaul +of functionality for initial funds and staking injection whenever node starts up in +Conway, while bypassing all previous eras.

    Low level summary

    Conway era

    • pull-3729 - DRep expiry update after a contiguous set of epochs with no proposals to vote on
    • pull-3739 - Rename some PParams to be consistent with Agda specification
    • pull-3743 - Move DRepDistr from VState to ConwayGovState
    • pull-3746 - Implement tcTranslationContextL for Shelley
    • pull-3737 - Implement EraTransition
    • pull-3749 - Add predicate failure: current treasury value mismatch in LEDGER
    • pull-3748 - Apply enacted treasury withdrawals
    • pull-3745 - Constitutional Committee Ratification
    • pull-3763 - Plutus interface improvements
    • pull-3771 - Changed how costmodel updates are applied
    • pull-3766 - Prevent updating protocol version with PParamUpdate

    Performance

    • pull-3765 - Improve native script handling
    • pull-3747 - Use (CompactForm Coin) in IncrementalStake, DRepDistr (and other places) instead of Coin
    • pull-3758 - Cardano-Perf regression: UMap.size regression fix
    • pull-3754 - Use Alonzo-style TxOut encoder when possible

    Releasing

    • pull-3742 - Update fourmolu, ghcid and hls. Update haskellNix and iohkNix flakes
    • pull-3744 - Changelog 8.4
    • pull-3752 - Patch release of cardano ledger conway 1.8.1.0
    • pull-3753 - Minor cleanup and changelog entries
    • pull-3760 - Fixup issues for release
    • pull-3764 - Bump plutus deps to 1.13

    Testing

    • pull-3734 - Removed Shaped instance for Rep
    • pull-3735 - Simplify the implementations of hasOrd and hasEq
    • pull-3728 - STS tests based on constraints
    • pull-3714 - Implement the remaining upgradable families
    • pull-3733 - Add some unit tests for Conway features
    • pull-3762 - Update CDDL for praos headers.
    ]]>
    + ledger +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-29-sre + 2023-09-29-sre + Fri, 29 Sep 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet environment was re-spun starting from slot 7171200 and updated to cardano-node 8.4.0-pre.
    • The use of cardano-node docker hub will be deprecated in preference of GHCR

    Lower level summary

    Capkgs

    • Refactor parsing scripts, add github action automation, various bugfixes and cleanup: capkgs-compare

    Cardano-parts

    • Updates secrets layout scheme, adds sops enc/dec for jobs, adds cloud monitoring profile, updates flake templates and other improvements/fixes: cardano-parts-pull-8

    Cardano-playground

    • Updates for new cardano-parts secrets handling and layout, TF workspace handling, group multivalue DNS support, grafana cloud monitoring and other improvements: cardano-playground

    Cardano-world

    ]]>
    + sre +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-27-mithril + 2023-09-27-mithril + Wed, 27 Sep 2023 00:00:00 GMT + + High level overview

    The Mithril team has released a new distribution 2337.0, which includes the following enhancements: support for zstandard compression of snapshot archives, support for the Cardano node version in snapshot metadata, and support for recording snapshot download statistics in the aggregator.

    They also completed the refactoring and standardization of the errors in the Mithril nodes and published an Architectural decision record on the documentation website. Additionally, they kept working on adding Cloudflare protection to the infrastructure.

    Finally, the team fixed a performance issue on the stress test tool for the aggregator and made some improvements to the documentation for SPOs.

    Low level overview

    • Completed the issue Release new 2337 distribution #1219
    • Completed the issue Errors refactoring #798
    • Completed the issue Client traffic creates performance bottleneck in aggregator #1207
    • Completed the issue Record statistics about the downloaded snapshot in the aggregator #1127
    • Completed the issue Create a SPO checklist for KES keys update #1267
    • Worked on the issue Spike: Run client in browser WASM PoC #1254
    • Worked on the issue Benchmark aggregator performances #1220
    • Worked on the issue Activate Cloudflare protection of infrastructure #1230
    ]]>
    + mithril +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-26-node-cli-api + 2023-09-26-node-cli-api + Tue, 26 Sep 2023 00:00:00 GMT + + 2023-09-13 - 2023-09-26

    High level summary

    • cardano-node 8.4.0-pre release suitable for SanchoNet.
    • CLI continues making progress integrating governance features. During this sprint we integrated the info and new-committee governance actions.
    • The team continued moving to the ERA top-level commands structure. Removed --conway-era flag from the legacy commands making conway era commands only accessible via cardano-cli conway.
    • stake-pool command is now under the ERA top level structure.
    • API continues integration with governance features, it is worth to higlight that now ProposeNewCommitee uses the right key type (cc-cold)

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-22-hydra + 2023-09-22-hydra + Fri, 22 Sep 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team conducted the monthly review meeting in +collaboration with Mithril, enhancing project coordination.

    The team improved the gen-hydra-key node command for smoother usability +and identified concrete steps to enhance network resiliency in feature +items #188, +#1080, and +#1079. +Additionally, they contributed the aiken-mode editor integration to the +aiken-lang organization, updated dependencies to utilize cardano-api +8.20, and published the Hydra security advisory CVE-2023-42806 with a +workaround available for users.

    These efforts demonstrate the team\'s commitment to project improvement, +security, and open-source community collaboration.

    What did the team achieve this week

    • Conducted the monthly review meeting together with Mithril
    • Improved gen-hydra-key node command +#1077
    • Established a clear plan to improve resiliency of network and manifested +feature items #188, +#1080 and +#1079
    • Moved aiken-mode (created by SN) +to aiken-lang organization
    • Updated dependencies to using cardano-api 8.20 +#1075
    • Published security advisory +CVE-2023-42806 +(workaround available)

    What are the goals of next week

    • Write-up the monthly report for September
    • Finish "network resilience to disconnects" +#188
    • Finish kupo integration with hydra +#1078
    • Discuss and decide on using aiken or not
    • Address the published security advisory +CVE-2023-42806 +(to not require workaround)
    • Ideally, release 0.13.0
    ]]>
    + hydra +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-09-22-performance-and-tracing + 2023-09-22-performance-and-tracing + Fri, 22 Sep 2023 00:00:00 GMT + + High level summary
    • Benchmarking: We've performed both low-level network and high-level variance analysis of our benchmarking clusters.
    • Infrastructure: Our reporting pipeline was adjusted to classify various workloads easily reducing rework time.
    • Tracing: Work on machine-readable tracing of tracer configuration is ongoing.
    • Nomad backend: We've been able to eliminate several possible confounders on the nomad cluster.
    • Team: We're currently onboarding a new team member: Welcome to Cardano Performance & Tracing, Baldur Blöndal!

    Low level overview

    Benchmarking

    As part of the effort to bring the Nomad backend into production use, we've been equipping both that and the existing benchmarking +backend with means to measure and document network latency for each run. Furthermore we've implemented means to +capture TCP packets for a limited time window during a benchmarking run - which will allow us to spot differences +in the behaviour of the underlying networking stack at OS level.

    Additionally, we're running variance analysis in parallel on both backends to ascertain confidence in metrics originating from either. We've concluded that baseline profile runs aren't directly comparable between the two, so we decided +to compare standard deviations instead to validate the measurements from nomad.

    Infrastructure

    Reporting on benchmarks does require human time and effort to rework the final document. Improvements to the reporting pipeline +have been merged to master. They reduce the time necessary to do so by various changes to the template and the workload classification logic in analysis.

    Beyond that, we've looked into issues where services would quit with an unjustified exit failure upon shutdown - under rare circumstances. By reworking shutdown logic for trace-dispatcher and tx-generator we were able to address those issues.

    Tracing

    After various steps in constructing a configuration upon node startup, it is vital to document +which runtime configuration the node arrived eventually. We're working on providing a machine-readable JSON/YAML +trace message for that purpose.

    This will facilitate hot-reloading a node's tracer configuration in the future: users will be able to take such a trace message, apply their intended change and hot-reload it immediately into the node.

    Nomad backend

    As with the existing benchmarking cluster, nomad is currently under scrutiny with regard to the reliability of metrics it +produces, as well as the behaviour of its OS-level network stack. For instance, differing kernel versions can have an +impact on our measurements, as we'd be basically using two different instruments to take them.

    Along the way we've already been successful in eliminating some possible confounders that had been introduced by the nomad service +or the slightly different system architecture of the new cluster.

    New team member

    Baldur Blöndal is an extremely capable and experienced Haskell developer. Also, he's an excellent fit for our existing team. +So I'm very pleased to welcome him onboard with IOG, and with Performance & Tracing. He will be working on cardano-tracer, the component receiving, processing and making available node traces and metrics.

    ]]>
    + performance-tracing +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-20-consensus + 2023-09-20-consensus + Wed, 20 Sep 2023 00:00:00 GMT + + High level summary

    We have a proposed fix for the mempool forging regression observed in the UTxO-HD branch. We need to confirm this by running system level benchmarks. +We are still working on a fall back mechanism for keeping the baseline performance of Cardano node, if the performance of the UTxO-HD is not enough. +On the Genesis front, we confirmed with the researchers that the proposed Genesis design is satisfactory for the historical Cardano chain. +We also have a proposed fix for the wrong protocol version bug, found in the Sanchonet, after transitioning to Conway.

    UTxO-HD

    • We optimized the mempool revalidation process, which in turn ought to solve the regression observed during system-level benchmarks in the in-memory version (349). System level benchmark results are pending.
    • Regarding the workaround to keep the node's baseline performance if that of the in-memory backend turns out not to be enough for our stakeholders (344), we are still expanding the legacy block package such that we could at some point run the node with a legacy Cardano block. There are some loose ends to wrap up before we can begin the first test run.
    • We also brought the UTxO-HD branch up to date with node version 8.4.0.

    Genesis

    • We finished the discussion with the Researchers on how to argue that the proposed Genesis design is satisfactory for the existing historical Cardano chain. +We are now drafting the final self-contained argument. (4157)

    Support

    • We debugged a bad parameter update on the Babbage to Conway transition in the SanchoNet testnet (339). +A superficial patch is within reach and we are in the process of reviewing the PRs related to this fix (340, 354, and 355) +However we are investigating a more principled redesign of the epoch transition logic, which required us to revisit the existing interfaces of the ConsensusProtocol type class and the HardForkBlock combinator (345 and 346). This is important to prevent these kind of errors in the future. This is an overdue step in the process of taking full ownership of the HFC: reconsidering original HFC design decisions for which we now have much more context, a few years later.
    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-20-mithril + 2023-09-20-mithril + Wed, 20 Sep 2023 00:00:00 GMT + + High level overview

    This week, the Mithril team has completed the refactoring of the terraform deployment workflows in GitHub actions, and the implementation of snapshot compression parameters in the deployments. They kept working on the refactoring and standardization of the errors in the Mithril nodes. The team also completed the implementation of Cloudflare protection for the aggregator infrastructure and started working on its deployment and activation in the Mithril networks. Additionally, they worked on recording download statistics on the aggregator which will be used to produce usage reports.

    Finally, they kept working on the aggregator performance bottleneck that occurs with high client traffic and started creating a new distribution.

    Low level overview

    • Completed the issue Add snapshot compression parameters in infrastructure deployments #1200
    • Completed the issue Add Cloudflare protection of infrastructure #986
    • Worked on the issue Record statistics about the downloaded snapshot in the aggregator #1127
    • Worked on the issue Error refactoring #798
    • Worked on the issue Activate Cloudflare protection of infrastructure #1230
    • Worked on the issue Release new 2337 distribution #1219
    • Completed the issue Upgrade dependencies #1238
    ]]>
    + mithril +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-15-goedel + 2023-09-15-goedel + Fri, 15 Sep 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

    Details

    • working on collating and open sourcing performance analysis prototype

    • improvements to Ouroboros Praos specification in Isabelle

    • working on formalising chain sync mini-protocol

    • reviewing an alternatice semantics for DeltaQ

    • Seminar talk at U. Bergen on algebraic properties of timeliness

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-15-hydra + 2023-09-15-hydra + Fri, 15 Sep 2023 00:00:00 GMT + + High-level summary

    This week, most of the Hydra team was attending a cardano scaling workshop in +Nantes, France. They used this oportunity to meet fellow mithril team and spend +some time together to hack on some code and, as always, reflect on the past work +and find optimal path forward for both projects. They also fixed a bug that +caused hydra-node to crash when querying L1, worked on a new network resillience +proof-of-concept and accepted a new ADR related to stateless transaction +observation.

    What did the team achieve this week

    • Cardano scaling workshop with members of hydra and mithril teams
    • Accepted user contribution for possible new use-case #1048
    • Fix for the hydra-node crash related to internal wallet query #1053
    • Collected experimental CI findings #1070
    • Propose first POC for the network resilience #1074

    What are the goals of next week

    • Monthly review meeting & report including updates from Mithril
    • Review POC and discuss our options for the network resilience
    • Update cardano-api to version 8.20
    • Address TODOs on aiken commit validator #1072
    • Complete hydra-support in kupo kupo#117
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-15-ledger + 2023-09-15-ledger + Fri, 15 Sep 2023 00:00:00 GMT + + High level summary

    The Ledger team's focus is still mainly on the Conway era implementation.

    We were able to add ability to specify initial Constitutional Comittee and the initial +version of Constitution. Priority in which Governance Action are now enacted matches the +specification. DRep's deposits are now properly accounted for. Governance actions that are +not allowed to be voted on by Stake Pool operators and Constitutional Committee members +are prevented by transaction submission failure, rather than simply being ignored. There +was a few important CDDL fixes as well as a lot of new round trip serialization +tests. Constraint based testing framework has also received a lot of improvements.

    Low level summary

    Conway era

    • pull-3681 - Conway Genesis additions
    • pull-3690 - Preserve the order of ProposalProcedures
    • pull-3705 - Removed ProtVer from EnactState
    • pull-3700 - Add conway-specific certs to deposit/refunds
    • pull-3704 - Add comments on deprecating certs to Conway CDDL
    • pull-3698 - Reordering of governance actions
    • pull-3712 - Disallow empty fields in ConwayTxBodyRaw
    • pull-3716 - Abstract threshold calculation
    • pull-3725 - Fix mistaken use of dollar sign in cddl files
    • pull-3718 - Predicate failure for mismatched Voter GovAction
    • pull-3721 - Committee expiration, validation and modification

    Improvements and releasing

    Testing

    • pull-3730 - Implement Show instance for Rep using IsTypeable
    • pull-3697 - Rewrite testEql using Typeable to make it impossible to forget cases
    • pull-3709 - Add many new features to the Constrained modues in cardano-ledger-test
    • pull-3726 - Conway and other eras serialization roundtrip tests
    • pull-3713 - Improve CI resiliency against GitHub issues
    ]]>
    + ledger +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-15-network + 2023-09-15-network + Fri, 15 Sep 2023 00:00:00 GMT + + High-level overview of sprint 44

    Bootstrap Peers

    In this sprint, we focused on developing bootstrap peers.

    Thanks to the input from Samuel Leathers (IOG) and John Lotoski (IOG), we +identified a possible improvement to bootstrap peers. A more detailed +description is available here.

    Cardano-Node-8.4.0 Release

    We also were responsible for the cardano-node-8.4.0-pre release. A final +integration PR is currently being merged. We published +new versions of ouroboros-consensus, cardano-api and cardano-cli.

    Towards Typed Protocols 0.2.0.0

    We also updated the future typed-protocols-0.2.0.0 and its integration with +cardano-node. This is towards our goal which we planned for the next +quarter. The identified tasks are to fix breaking tests, and then measure and +address possible performance regressions.

    Tech Debt

    Mark Tullsen (Galois) submitted two more PRs: ouroboros-network-#4663, +ouroboros-network-#4664. We provided feedback on their other pull requests: ouroboros-network-#4661 and +ouroboros-network-#4660.

    P2P adoption

    In the last two weeks, there was a regression in P2P adoption concerning +the number of SPOs or stakes, although the number of overall P2P relays has +increased. Karl Knutsson (Cardano Foundation) is investigating +this issue. +P2P relays

    The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays, which slowly +increase over time. The V9 and earlier versions of the node-to-node +the protocol indicates nodes version 1.35.x or earlier. +node versions

    Data has been kindly provided by Cardano Foundation and their mainnet +monitoring infrastructure.

    Open Source

    We are in the process of upstreaming our ffi to Windows Named Pipes API to the Win32 package, see [win32-220].

    ]]>
    + network +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-15-sre + 2023-09-15-sre + Fri, 15 Sep 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Sanchonet environment was updated to 8.3.0-pre.
    • Cardano-parts now enables downstream consumers to spin up multiple cardano-networks per repository, an example of which is here.

    Lower level summary

    Capkgs

    • Add a readme, optimize flake inputs, improve nu and ruby parsing scripts: capkgs-compare

    Cardano-ops

    Cardano-parts

    • Utilize content addressed binaries to significantly improve eval, build and devShell performance: cardano-parts-pull-8
    • Add an aws flakeModule for obtaining ec2 specs, fix node.socket devShell error: cardano-parts-pull-10
    • Fix warns thrown during some builds and devShell usage: cardano-parts-pull-11
    • Add flakeModules and nixosModules in preparation for cardano-node grouped deployments: cardano-parts-pull-12
    • Enable group deployments by: adding several module, profile and role nixosModules; updating flakeModules; adding sops age secrets handling: cardano-parts-pull-13

    Cardano-perf

    • Modify the wireguard network from mesh to star, enable ICMP, enable Nomad raw_exec and add hydraJobs: cardano-perf-compare

    Cardano-playground

    Cardano-world

    ]]>
    + sre +
    + + <![CDATA[DB-sync Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-14-db-sync + 2023-09-14-db-sync + Thu, 14 Sep 2023 00:00:00 GMT + + High level summary

    We have created a DBSync tag sancho-1-1-0 which can follow sanchonet. Also +the team has ran a number of benchmarks and tests for the new options/flavours of DBSync +and prepared a blogpost which summorises them, for downstream components.

    Lower level summary

    • Integration of node-8.3.x and support for Sanchonet on Conway +#1498
    • Simplifications of new feautures +#1496
    • Makes it impossible to restart DBSync with different schema options and adds +tests for them +#1466
    • CI fixes +#1494#1491
    • Prepared a blogpost about different DBSync options +blog
    ]]>
    + db-sync +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-12-node-cli-api + 2023-09-12-node-cli-api + Tue, 12 Sep 2023 00:00:00 GMT + + 2023-08-30 - 2023-09-12

    High level summary

    Release of Cardano-node 8.3.0-pre for SanchoNet. Adds DReps to the Conway governance rules. Allows registration of DReps, delegation to DReps and voting on constitution action with DReps and SPOs. +This release completes phase 2 of SanchoNet feature roll out plan

    CLI continues on its migration to a era-based top-level commands. This sprint we moved text-view, key, query, genesis, node, stake-address, transaction and address into this new command structure. This is the initial migration, there is still some clean-up to do on future sprints.

    We are moving the drep delegation-certificate to the stake-address command so delegating to a drep is done via stake-addres vote-delegation-certificate. Along the same lines, we are renaming +stake-address delegation-certificate (delagating to a stake pool) to stake-address stake-delegation-certificate to distinguish between stake delegation to a pool and votes delegation to a drep. On top +of that, there is a new type of delegation certificate to delegate (stake) to a stake pool and (votes) to a drep simultaneosuly stake-address stake-and-vote-delegation-certificate. Note that change is not included on 8.3 but will come on 8.4. +Removing --conway-era flag from all the transaction sub-commands.

    Update description fields in delegation certificates from Stake Address Delegation Certificate to respectively (Conway onwards):

    • Stake Delegation Certificate
    • Vote Delegation Certificate
    • Stake and Vote Delegation Certificate

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-08-hydra + 2023-09-08-hydra + Fri, 08 Sep 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team improved the commit process with support for inline +datums. They simplified the chain layer by refactoring how the chain state is +persisted. Updates to the Hydra tutorial were completed, including CI workflows +to keep it up-to-date. The team engaged in discussions with researchers about +incremental commits & decommits, and drafted an architectural decision record +for a resource-based API. They also explored simpler solutions for the upcoming +network resilience feature.

    What did the team achieve this week

    • Support InlineScriptDatum in commit +#1043
    • Refactored chain state persistency +#1049
    • Completed tutorial updates (by adding CI and some cleanup) +#997
    • Intersect Open Source committee meeting
    • Experimented with various models to better express the \"Network +resilience problem\" to find a KISS solution for +#188
    • Drafted and discussed incremental de-/commit features within team +and with researchers +#199 and +#1057
    • Created ADR for a resource based overhaul of the API +#1028

    What are the goals of next week

    • Meetup of Hydra & Mithril contributors in Nantes, France
    • Integrated cardano-api 8.15 to have GHC 9.6 support
    • A clear design for incremental commits (decommits are already +understood)
    • An ADR for improving tx construction & observation to not need chain +state
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-07-mithril + 2023-09-07-mithril + Thu, 07 Sep 2023 00:00:00 GMT + + High level overview

    The Mithril team has released a new distribution 2335.0 which brings enhancements to the client: support for simultaneous downloading and unpacking of the snapshot archives, support for one line command restoration of the latest snapshot, and availability of machine readable progress information.

    They have also worked on snapshots enhancements: implementation of the zstandard compression to produce smaller archives, and providing the version of the Cardano node used to create the archive in the snapshot artifacts. They have completed the second phase of the implementation of the stress test tool to benchamrk the aggregator. Additionally, they have kept working on refactoring and standardizing errors in the Mithril nodes.

    Finally, they have worked on adding Cloudflare protection to the infrastructure, and they have fixed some bugs that occurred during restoration of a snapshot by a client.

    Low level overview

    • Completed the issue Use 'zstandard' compression for snapshot archives #876
    • Completed the issue Design & implement stress test tool for aggregator - phase 2 #1155
    • Completed the issue Provide progress information with '--json' option in Client #1095
    • Completed the issue Make client download and extract the archive simultaneously #1115
    • Completed the issue Add aggregator Cardano node version in snapshot artifact #948
    • Completed the issue Make Cardano node version part of the Mithril network configuration #947
    • Completed the issue Post deployment 'mainnet' infrastructure #1091
    • Worked on the issue Errors refactoring #798
    • Worked on the issue Add Cloudflare protection of infrastructure #986
    • Completed the issue Failed to restore recent snapshot with strange error #1160
    • Completed the issue Update 'ed25519-dalek' to '2.0.0' #1188
    • Completed the issue Add target networks blocks in release notes #1151
    • Completed the issue Fix end to end 'wait_for_the_expected_time' test #1191
    • Completed the issue Fix docs 'git checkout' command #1174
    ]]>
    + mithril +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-09-07-performance-and-tracing + 2023-09-07-performance-and-tracing + Thu, 07 Sep 2023 00:00:00 GMT + + High level summary
    • Benchmarking: We've performed and analysed feature benchmarks for both UTxO-HD and the current P2P stack.
    • Infrastructure: Various improvements of our analysis pipeline have been merged to master, supporting safe log truncation.
    • Tracing: Namespace consistency checks have been merged to master along with a curated configuration for benchmarking.
    • Nomad backend: We're productively using the new backend to measure new vs. legacy tracing system, adding many quality-of-life improvements.

    Low level overview

    Benchmarking

    We've completed various runs and analyses targeting two distinct features of the node: UTxO-HD and Peer2Peer.

    With our UTxO-HD benchmark we could clearly localize one point where this new way of maintaining ledger state is still costly, but at the same time confirm that in basically all other aspects UTxO-HD makes no difference in performance.

    The Peer2Peer benchmarks focused on the effects that enabling this feature on a block producing node has on propagation times, as well as scrutinized a proposed change to the Peer2Peer network stack.

    Infrastructure

    As a result of optimizing in-memory representation of log objects, which are constructed from a node's traces, we can now analyse runs that last longer in total. For runs that exceed their expected duration, analysis now supports a truncation +operation that keeps the interdependencies of block events intact.

    Truncation might happen at a slightly different point +in time - and therefore in its log object stream - for each node in the cluster. An additional step validating the block hash timeline of the cluster has been implemented for the pipeline. It provides early feedback on whether a specific truncation will lead to a valid full analysis, which requires much more time.

    Tracing

    Consistency checking of namespace implementation and configuration when using the new system has been completed. +This feature enables feedback on when tracer implementation details in some component might have changed. It's also able to detect when a configuration used for operating a cardano-node shows inconsistencies with the namespaces the system provides - and hence needs attention.

    Furthermore, we've created a fine-grained configuration of the new system that caters to benchmarking's need of very many +detailed trace messages. It's aimed at mirroring the same amount of trace messages, and information, we're seeing from our usage of the legacy system; an important step in making benchmarks between systems comparable.

    Nomad backend

    The new backend is currently being used for further validation with regard to the existing cluster. Additionally, we're using it in production mode to comparatively benchmark both tracing systems after merging past month's optimizations - which is the +first real-life application of the nomad cluster. Hands-on experience in that phase translates into many small improvements which can be immediately applied to enhance user experience for the new backend.

    ]]>
    + performance-tracing +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-06-consensus + 2023-09-06-consensus + Wed, 06 Sep 2023 00:00:00 GMT + + High level summary

    We were able to successfully run the system-level benchmarks for the UTxO-HD implementation, for the first time. There was an important regression in block forging performance that will have to be addressed before UTxO-HD is released. We also revisited the implementation of our query processing logic, which was needed to address the performance regression found in the query-by-address command. The preliminary performance results show that now the performance of this query is on-par with the Cardano baseline version, but we need further confirmation. +On the Genesis front, we presented the grinding-aware safety argument for the proposed historical Cardano Genesis windows to the IOG Researchers. +The Consensus release engineer finished his rotation: version 8.3.0-pre of cardano-node is releasing 2023 September 5.

    UTxO-HD

    • We ran the first successful system-level benchmarks for UTxO-HD (see #203) using the in-memory backend.
      • We observed a factor 12 regression in the forging performance, which we will have to address. There are strong indications that the regression is due to the backing store accesses that take place when taking a mempool snapshot.
      • After the mempool regression is fixed the benchmarks need to be ran again.
      • System-level UTxO-HD benchmarks with the LMDB are still pending.
    • UTxO-HD will eventually be necessary due to the growth of the UTxO set and other ledger state structures that live in memory at the moment. However, we are trying a strategy by which we could preserve the baseline performance of the node, in case SPOs and other node users are not ready to migrate yet (see #344).
    • We implemented a new way of processing queries at the hard-fork block level, which resolves the performance regression observed in GetUTxOByAddress (see this comment). Preliminary results are promising.
    • Regarding the roll out plan, UTxO-HD requires a significant change in the Consensus codebase. Even though we might be able to hide any potential performance impact in the node by keeping all data in memory (#344), the Consensus component was significantly changed, so we might have to postpone releasing this feature to mitigate any risks of conflicting with the implementation of CIP-1694 and release of Conway.

    Tech debt

    • We added tests that Consensus emits valid CBOR (#3099). This helped us detect a couple of serialization bugs. The tests still need to be merged into the main branch (#323).

    Support

    • Nick Frisby finished his release engineer rotation; cardano-node 8.3.0-pre is releasing 2023 September 5.
    • We helped to investigate a protocol version bug in Sanchonet (see #3491).
    • We started to implement the Network interface for bootstrap peer functionality, from which Genesis will benefit as well (see #91.
    ]]>
    + consensus +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-01-goedel + 2023-09-01-goedel + Fri, 01 Sep 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

    Details

    • finalising a presenting performance analysis internship work to the +formal methods team

    • developed a new Isabelle mini-protocol framework and examples

    • planning an extended version of the ICE DeltaQ paper

    • working on algebraic rules for properisation of any-to-finish

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-01-hydra + 2023-09-01-hydra + Fri, 01 Sep 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team focused primarily on changes needed in the network +layer and have the first draft document related to needed design. They also +improved the user experience by allowing a commit using inline datums. +Discussed the off-chain governance with researchers and improved internal model +tests.

    What did the team achieve this week

    • Monthly report published
    • Small changes to hydraw and tutorial in light of the Masterclass
    • Investigated a bug and saw it was solved by recent developments
    • Improved the model tests by fully validating L1 transactions
    • Enhanced the /commit API to also allow commit from scripts with inline datums (user request)
    • Discussed off-chain governance with IOG and CF researchers
    • Drafted a first network specification document in the context of Network resilience

    What are the goals of next week

    • Have a clear understanding of the changes we need for the "Improve network resiliency" feature
    • Groomed and agreed plan on incremental commits/decommits
    • Updated tutorials including CI workflows to check consistency
    • Update to GHC 9.6 and latest cardano dependencies (ledger/plutus)
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-01-ledger + 2023-09-01-ledger + Fri, 01 Sep 2023 00:00:00 GMT + + High level summary

    Broadly speaking the Ledger team focused on a few main areas of Conway era:

    • Creation of voting state snapshots in order to correctly delay ratification for one epoch
    • Validation of the Governance Actions sequencing and ordering
    • Proper expiry of DReps and Proposal Procedures
    • Expanding Conway Genesis functionality
    • Utilization of some of the new Protocol Parameters in ledger validation rules

    Low level summary

    Conway era

    • pull-3659 - Validate Network for ProposalProcedure and TreasuryWithdrawal
    • pull-3637 - Avoid using sequence of tuples, by adding GovActionId to GovActionState
    • pull-3651 - Inactive DReps
    • pull-3664 - Track proposal expiry
    • pull-3668 - Add min committee size predicate to NewCommittee
    • pull-3669 - Add Proposal deposit check against PParam
    • pull-3676 - Fix inactive PoolStake not counting as Drep Stake
    • pull-3635 - Make snapshots of GovActionsState
    • pull-3670 - Validate previously enacted govAction
    • pull-3694 - Improve error reporting on the positive coin decoder
    • pull-3674 - Added RATIFY thresholds
    • pull-3684 - Add proposal delaying, remove predicate failure from ENACT
    • pull-3688 - DRep Refunds and update evalTransactionBalance

    Improvements and releasing

    • pull-3677 - Minor patch that fixes the DRep distribution computation
    • pull-3686 - Post patch release fixup
    • pull-3695 - Changelog for cardano-node-8.3 release
    • pull-3683 - Add two new bench mark programs

    Testing

    ]]>
    + ledger +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-01-network + 2023-09-01-network + Fri, 01 Sep 2023 00:00:00 GMT + + High-level overview of sprint 43

    In this sprint, we received contributions from CF & Galois. Karl Knutsson +(CF) has addressed various issues regarding peer churning in P2P, timeouts +and our WireShark dissector. While the Galois developers focused on +addressing issues from their review last year. See below for more details.

    We continued working on bootstrap peers ouroboros-network-#4661.

    We refactored our test suites: they are split into io-tests which require to +be run natively on all platforms (these tests mostly contain tests that +require IO system calls) and sim-tests which are platform independent. We +run io-tests on all supported platforms (e.g. x86_64-linux, +x86-64-darwin, aarch64-darwin and x86_64-w64-mingw32 (Windows)) natively. +The sim-tests are not executed on Windows due to memory limitations on +GitHub Actions runners. ouroboros-network-#4653

    We also started rebasing typed-protocols refactoring branches.

    Marcin was appointed as the cardano-node release engineer for the 8.4.0-pre +version. So far he integrated cardano-ledger-conway-1.8 and +ouroboros-network-0.9.1.0 to ouroboros-consensus, cardano-cli and +cardano-api. Once we will have an integration branch for cardano-node, +cardano-ledger-conway-1.8 and ouroboros-consensus packages can be released +to CHaP and PRs can be merged once they go through review & CI.

    We also fixed some smaller issues regarding peer sharing (both were discovered +by Karl from CF). More details are included below.

    Progress on P2P addoption

    SPO relays

    There are currently ~2000 relays running P2P +enabled nodes that belong to 557 pools with a combined stake of 7900Mil Ada. On +16th of August it was ~1700 relays, 531 pools with a combined stake of 7700Mil +Ada.

    P2P relays

    The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays, which slowly +increase over time. The V9 and earlier versions of the node-to-node +the protocol indicates nodes version 1.35.x or earlier. +node versions

    Data has been kindly provided by CF and their mainnet monitoring +infrastructure.

    IOG relays

    As of this week, 90% of IOG relays are running a P2P setup. In the next sprint all +IOG relays will be running P2P.

    Detailed description

    In this sprint, we got a few contributions from CF:

    • Karl made peer churning mechanism less aggressive ouroboros-network-#4656; and
    • he added timeouts for idle states in ChainSync & KeepAlive +miniprotocols. These timeouts help a node remove idle connections from the +responder (server) side ouroboros-network-#4648.
    • he improved the WireShark dissector by adding support for the peer-sharing mini-protocol ouroboros-network-#4656.

    Galois has been making progress in addressing some of the issues they raised in their review (last year):

    Peer Sharing

    • Light peer sharing is only enabled when peer sharing is turned on ouroboros-network-#4652;
    • Handshake incorrectly reports peer sharing value. It's supposed to relay the +remote value, but instead, it returns the local value. ouroboros-network-#4642 (in review).

    Async Demotion Test Fix

    • We fixed an async demotion test failure which turned out to be a weakness of +the test itself rather than a bug in the connection manager. ouroboros-network-#4655
    ]]>
    + network +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-09-01-sre + 2023-09-01-sre + Fri, 01 Sep 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Work on cardano-parts repo continues and was utilized by the sanchonet-demo repository for demonstration purposes
    • Work on a new capkgs repository started -- "Content Addressed Packages"
      • This repository provides common Cardano release and pre-release binaries in a pure content addressed nix package type via flake output
      • These packages don't have the associated IFD, long eval times and large source dependencies that the originating source repositories often do
      • Consumers of such packages, such as devShells or nixos machines, can benefit from the improved performance this offers

    Lower level summary

    Capkgs

    • Content addressed packages -- new repo: capkgs

    Cardano-ops

    • Cardano p2p relay updates, dbSync snapshots server update, monitoring adjustments: cardano-ops-compare

    Cardano-parts

    Cardano-perf

    Cardano-world

    Sanchonet-demo

    ]]>
    + sre +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-29-node-cli-api + 2023-08-29-node-cli-api + Tue, 29 Aug 2023 00:00:00 GMT + + 2023-08-16 - 2023-08-29

    High level summary

    CLI is making progress towards phases 3 and 4 of SanchoNet.

    • Ability to create info, no-confidence and new committee governance actions.

    • Voting as DREP is possible now on the CLI

    • API is now using Ledger's PParams and VotingProcedures

    • Expose following queries from consensus:

      - GetGovState
      - GetDRepState
      - GetDRepStakeDistr
      - GetCommitteeState
      - GetConstitution

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-28-mithril + 2023-08-28-mithril + Mon, 28 Aug 2023 00:00:00 GMT + + High level overview

    The Mithril team created an explorer page with the registered signers to give recognition to the SPOs already running on mainnet. They also worked on refactoring and standardizing errors in the Mithril nodes, and they enhanced the clarity and reduced verbosity of the logs for the signer and aggregator nodes. Additionally, they started working on the implementation of zstandard compression of the snapshot archive, and streaming its download and decompression in the client.

    Finally, they implemented machine readable progress information in the client, and streamlined the process of verifying the registration status of a signer.

    Low level overview

    • Completed the issue Create explorer page with registered signers #1097
    • Completed the issue Simplify logs on the Signer/Aggregator #1106
    • Completed the issue Refactor (de)serialization of crypto entities #668
    • Completed the issue Mithril client last snapshot download #1078
    • Completed the issue Use the '/signers/registered' route to verify if a signer is registered #1152
    • Worked on the issue Provide progress information with '--json' option in Client #1095
    • Worked on the issue Use 'zstandard' compression for snapshot archives #876
    • Worked on the issue Make client download and extract the archive simultaneously #1115
    ]]>
    + mithril +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-25-hydra + 2023-08-25-hydra + Fri, 25 Aug 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team conducted the monthly review meeting for Agust,which +continously ensures transparent communication and project evaluation.

    In terms of community engagement, the Hydra team gave a Hydra master-class at +RareEvo workshop as an educational initiative for the community. +Additionally, the team updated the Hydra demo and tutorial to include Mithril +and latest release changes.

    They also focused on exploring the Hydra network resiliance in order to improve +hydra-node availability, as it becomes stuck very easily and that leads to a +bad user experience.

    What did the team achieve this week

    • Hydra master-class at RareEvo workshop!
    • Monthly report & review meeting
    • Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff
    • Groomed network resilience and explorer features #188
    • New ADR for “Resourced based API” #1028

    What are the goals of next week

    • Have a poc on network resilience working #188
    • Fix issue #931: “Chain state in head state not updated on replayed observation”
    • Fix issue #1039: "Close transaction dropped from cardano-node"
    ]]>
    + hydra +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-08-24-performance-and-tracing + 2023-08-24-performance-and-tracing + Thu, 24 Aug 2023 00:00:00 GMT + + High level summary
    • Benchmarking: Benchmarking node version 8.2.1 has concluded. Additionally we're developing benchmarking setups for GHC9.6 and UTxO-HD.
    • Infrastructure: Our analysis pipeline has received improvements reducing memory footprint.
    • Tracing: Another batch of optimizations for the new tracing system has been merged; work on namespace consistency guarantees is ongoing.
    • Nomad backend: We're performing and analysing various runs for validation purposes on the new hardware cluster.

    Low level overview

    Benchmarking

    We've performed and analysed the benchmarks for the 8.2.1 version of cardano-node as part of our release benchmarking cycle.

    Setting up cluster benchmarks requires completing full system integration. This applies to both supporting a new build platform, as is GHC9.6, as well as targeting a specific feature, like a UTxO-HD enabled node. Currently, we're working on respective integrations on both those paths.

    Infrastructure

    As cluster runs increase in duration, more and more data is accumulated for analysis. Batch analysis mode needs all data to be held +in memory, which wouldn't fit anymore even on a 64GB RAM machine. Changes to the in-memory data representation improving on compactness were able to reduce the RAM requirements of our analysis pipeline.

    Tracing

    The next portion of optimizations has been completed and merged to master, getting rid of Haskell's native String representation on critical code paths. This concludes the optimization phase of the new tracing system for all its components used by cardano-node.

    The implementation for validation of consistent naming and configuration is ongoing. We're splitting out everything that's verifiable at compile time into a seperate test case which we hope to integrate into CI - leaving only configuration constraints to be verified at or before node startup.

    Nomad backend

    The verification phase of the nomad cloud backend is ongoing. We're able to perform full runs on the new hardware cluster +and porting profiles and configurations from the legacy one. The goal is to reproduce with confidence known regressions, or improvements, between runs performed on the legacy cluster and runs performed with the new backend.

    ]]>
    + performance-tracing +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-23-consensus + 2023-08-23-consensus + Wed, 23 Aug 2023 00:00:00 GMT + + High level summary

    On the UTxO-HD front we reached another important milestone, where we handed over the implementation for benchmarking and testing. We are working on addressing the first issues that were found during the integration tests. +On the Genesis front we are finalizing the argument that a checkpoint is not necessary for the initial release, including supporting to support said argument. We are also working on the new node release, and several improvements to our code-base.

    UTxO-HD

    • We addressed the issues that came from the benchmarking and testing phase (see #314).
      • We fixed the operational-certificate update exception (#305).

    Tech debt

    • We elaborated an inventory of the symbols used by downstream clients in an effort to clearly define the Consensus API, which will help managing changes and their impact to the downstream clients (see this branch).
    • We extracted the SOP modules to a separate package as part of our effort to reduce the Consensus API surface area (see this branch).
    • We took the first step towards improving how the Cardano hard-fork block is instantiated when running a node (see #275).
    • We decreased the flakiness for our test suite (#284).
    • We incorporated and merged the pull-request on query versioning (#273).
    • We started working on new performance-based regression tests for mempool operations.

    Support

    • Nick Frisby continues with his engineer responsibilities. Notably getting the Consensus release out for node pre-release 8.3. Nick also began integrating it into downstream branches (cardano{-api,-cli,-node}). The Node team has now taken over, since Nick had progressed up to the point where they needed to start making new design decisions. Related PRs:
    ]]>
    + consensus +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-18-goedel + 2023-08-18-goedel + Fri, 18 Aug 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

    Details

    • Development of an automated prover for showing conformance of +programs to state machines (as part of the mini-protocol framework)

    • Completion of the documentation of the (current state of the) +mini-protocol framework

    • Discussion about two DeltaQ lectures with two practical sessions as part +of 4th year masters course on distributed systemsby colleagues at UC +Louvain in the Autumn

    • Discussion about four DeltaQ lectures by colleagues at U. Bergen as part +of a 5th year Masters course in the Autumn

    • Adapted original DeltaQ implementation to the new typeclasses and +wrote property tests for its algebraic laws

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-18-hydra + 2023-08-18-hydra + Fri, 18 Aug 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team released version 0.12.0, a significant update that +brings support for cardano-node 8.1.2, along with performance enhancements and +various API improvements. Additionally, the team successfully onboarded a new +contributor who is now actively participating in operating a Hydra Head. They +took part in a meeting of the Intersect open source committee and prepared the +Hydra master-class for RareEvo, an educational initiative for the community.

    If you happen to be at RareEvo, register for the Hydra master-class using this +form. +We hope to make it possible to follow along on-line as well and will announce +details on the Hydra announcements channel on the IOG discord +server.

    What did the team achieve this week

    • Released version 0.12.0 which adds support for cardano-node 8.1.2, performance +and several API improvements. Release notes
    • Replaced commit via websocket with external draft + submit. #954
    • Onboarded new contributor to the point where he actively participates in operating a Head now.
    • Joined a first meeting of the Intersect open source committee
    • Prepared the Hydra master-class for RareEvo.

    What are the goals of next week

    • Monthly review meeting
    • Run the Hydra master-class at RareEvo!
    • Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff
    • Clear out red bin items (technical debt)
    • Groom network resilience and explorer features
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-18-ledger + 2023-08-18-ledger + Fri, 18 Aug 2023 00:00:00 GMT + + High level summary

    The ledger team made great progress in advancing Conway era forward. In particular, voting +for DRep and Stake Pool Operators is now at the state that can be used by downstream +components. Addition of new ledger state queries makes it possible to verify changes to +the governance state, such as placement of votes, submission of governance proposals, +inspecting DRep stake distribution and more. Addition of treasury withdrawals concludes the +ability to enact all of the governance actions, except for the hard fork initiation.

    Low level summary

    Conway progress

    • pull-3577 - Move PParams to GovState
    • pull-3609 - Adjust thresholds for sanchonet
    • pull-3604 - README: update CIP-1694 link
    • pull-3616 - Switch TreasuryWithdrawals to use RewardAcnt
    • pull-3599 - Add governance action well-formedness check
    • pull-3607 - Rename governance to gov
    • pull-3601 - Added DRep anchors
    • pull-3615 - Add optional previous GovActionId in some ProposalProcedures
    • pull-3596 - Upgradeable families
    • pull-3625 - Change constitution to use Anchor
    • pull-3592 - Added pulsing incremental computation of the DRep distribution
    • pull-3523 - Treasury donations
    • pull-3633 - Prevent state changes on phase2 failure
    • pull-3634 - Disable serialization of protocolVersion param update
    • pull-3630 - Implemented DRep refreshing
    • pull-3640 - Remove crypto parameterization from AnchorData
    • pull-3636 - Implement DRep ratification with an "always passing"; threshold
    • pull-3648 - Governance queries
    • pull-3650 - Change environment for ShelleyPOOLREAP rule
    • pull-3658 - Set DRep ratify threshold to 51%
    • pull-3628 - DELEG, POOL, GOVCERT conformance with Spec v0.8

    Testing

    Improvements and releasing

    • pull-3660 - Fix bounds and versions
    • pull-3661 - Adjust versions, bounds and CHANGELOGs to account for the latest release
    ]]>
    + ledger +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-18-network + 2023-08-18-network + Fri, 18 Aug 2023 00:00:00 GMT + + High-level overview of sprint 42

    Eclipse Evasion

    We merged and released a new version of the ouroboros-network package (version +0.9.0.0) which includes big ledger peers feature. +This is the primary peer selection mechanism to defend against eclipses. We +also prepared a PR to updated ouroboros-cosnensus +and ekg-forward packages.

    CDDL specs for protocol codecs

    We made the cddl spec for network codec more inline with the implementation +which is highly polymorphic. cddl doesn't have the notion of polymorphism, +but has any which can generate any valid cbor term. We matched it with an +Any type on the Haskell side and made all remaining tests & specs use it. +This simplified the specifications and made it easier to understand which parts +are defined in the spec, and which parts are left unspecified. See +ouroboros-network#4595.

    Ouroboros-Network-Framework API changes

    We also released ouroboros-network-framework and other network components. +The ouroboros-network-framework package contains a redesign of API exposed to +ouroboros-consensus. We consolidated, cleaned it and made it easier to +extend in the future if there will be new arguments that need to be passed to +mini-protocol initiator and responders which comes from the low-level network +layer.

    Nix setup (CI)

    We also made a major review of our nix setup. With help from our DevX team +we ended up with a clean flake.nix file which can:

    • compile & test the code on x86_64-linux, x86_64-darwin and aarch64-darwin
    • cross-compile to Windows on x86_64-linux

    And provides a shell which contains all the build tools, including ghc-9.6, +hls, cddl, and more. See ouroboros-network#4640, +ouroboros-network#4643.

    Other contributions

    Cardano Network Service Assurance

    • The work and writeup in finishing up the CNSA, first stage (first +contract).
    • Getting Sam Cowger (Galois Inc) up to speed.
    • The IOG Networking team carried a reivew of CNSA project progress: a limitted +code & design review.

    Galois Review

    Sam Cowger and Mark Tullsen (Galois Inc) have made some progress on each of the tech debt issues

    scoping, requirements, and getting started.

    CI

    We added a nightly run for GitHub actions and made the GitHub actions test be +executed with extra concurrency ouroboros-network#4637, ouroboros-network#4649.

    We also added GitHub's dependabot ouroboros-network#4650.

    Bootstrap Peers

    We settled on implementation design of bootstrap peers which is being +implemented, ouroboros-network#4615.

    ]]>
    + network +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-18-sre + 2023-08-18-sre + Fri, 18 Aug 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Sanchonet and shelley-qa environments were updated to 8.2.1-pre.
    • Work on two new repos utilizing flake parts for cardano cluster generation, automation and operation.

    Lower level summary

    Cardano-ops

    Cardano-parts

    Cardano-perf

    Cardano-playground

    Cardano-world

    Inputs-check

    • A flake parts module to check input closure sizes recursively for optimization considerations: inputs-check
    ]]>
    + sre +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-17-crypto + 2023-08-17-crypto + Thu, 17 Aug 2023 00:00:00 GMT + + High level summary

    The open fronts that the crypto team is working on are:

    • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
    • mithril: Full node verifier
    • musig2: Include MuSig2 description in cryptography handbook
    • kes_agent: Finilising test and CI. Working on KES binary

    Low level summary

    Mithril

    • Full Node Verifier merged #939.

    MuSig2

    • Started describing MuSig2 to include it as part of the cryptography handbook

    Sidechains

    • Analysis of Halo2 verifier with the goal of implementing SNARK verifier in Plutus. Implemented ad-hoc IPA verifier. Work progress in this fork.

    KES agent

    • KES agent is ready:
      • CI ready #19
      • Receipt confirmation message #20
      • KES agent binary ready #21
      • Control client implemented #11
    ]]>
    + crypto +
    + + <![CDATA[DB-sync Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-17-db-sync + 2023-08-17-db-sync + Thu, 17 Aug 2023 00:00:00 GMT + + High level summary

    We have integrated many new Conway feutures and allow db-sync to sync sanchonet. +We also continued testing and improving the new db-sync options.

    Lower level summary

    • Conway integration +#1484
    • Support for Sanchonet +#1476
    • Stake distribution is computed earlier +#1484
    • Deposit ledger events are now used. This reduces the db queries and makes syncing faster +#1484
    • Testing new db-sync options +#1466
    • Added support for ghc-9.6 +#1479
    • Tech debt: improve exceptions +#1471
    ]]>
    + db-sync +
    + + <![CDATA[SECP bindings Security Issue Report]]> + https://updates.cardano.intersectmbo.org/2023-08-17-secp-issue + 2023-08-17-secp-issue + Thu, 17 Aug 2023 00:00:00 GMT + + Security Issue Report: SECP256k1 bug

    Date Occurred: July 15, 2022 +Severity: Potentially Very High if exploited on Mainnet +Authors: Iñigo Querejeta Azurmendi

    Date of Report: August 17, 2023

    Summary of Issue

    Criticality Level

    Actually low (since the issue was detected prior to deployment) but potentially very high if it had been deployed to mainnet +Context

    New SECP256k1 Plutus bindings were being introduced in order to support interoperability with other major chains, such as Bitcoin and Ethereum. The intention was to deploy these as part of the Vasil hard-fork. The bindings were considered to be a low-security risk since the underlying library functions were well tested and had been deployed on other blockchains. +How was the Issue Detected

    The issue was detected via specific End-to-End tests that had been commissioned. It was (accidentally) triggered on the Cardano Testnet before a fix could be deployed there.

    What Action was Taken

    The Cardano Testnet was permanently halted, and new test environments were deployed (Preview and Pre-Prod). +Fixes were applied to prevent the use of the primitives. +A full security audit was carried out on the bindings. +The rollout of the primitives was postponed to a new hard fork (Valentine)

    Potential Effect

    The potential effect was that an adversary might be able to craft invalid Plutus transactions to crash any node, requiring execution of the Cardano disaster recovery plan to revert to a safe state and bypass the transaction.

    Actual Effect

    • Delay to the Vasil hard-fork
    • Temporary removal of SECP256k1 primitives
    • Additional hard-fork to introduce SECP256k1 primitives

    Ongoing Mitigations Needed, if any

    None

    Responsibility for Mitigations

    Core team

    Detailed description of Incident

    New Plutus secp256k1 cryptographic primitives for Plutus v2 failed to apply the necessary validity checks on the input data, meaning that the primitives could theoretically be used in an unsafe environment. The vulnerability was present in recent node versions (1.35.0 onwards), including ones deployed to Cardano Testnet.

    The problem was not in the deserialization functions of the underlying library (Bitcoin's library) but rather that the Haskell functions that implemented the Plutus builtins were not calling them correctly. In particular, the library functions were designed to take structured data as input. However, the Haskell FFI implementation that was produced for the Plutus builtins allowed a caller to pass in (possibly) unstructured data. There were no checks that these data were structured in the correct way. This issue was detected during End-to-End testing.

    • This is the ECDSA signature verification algorithm that was used. It takes a SECP256k1_pubkey as input. That type is an opaque type with an expected structure: a parsed and valid public key. It was not immediately obvious that structured data needed to be passed to allow the function to be used safely.
    • The same happened with the Schnorr verification function. It takes as input a SECP256k1_xonly_pubkey, which is again an opaque structure that holds a parsed and valid public key.

    The FFI skipped checks over these structured keys and directly passed the raw bytes that were given as arguments. If an adversary were to pass in data that was not properly structured, then it could result in unexpected behavior of the library. This could perhaps translate into an adversary being able to crash the nodes that ran these functions. All nodes in the network could be crashed by a single transaction that would then be executed repeatedly, so stalling the network until the disaster recovery process was initiated.

    The fix was addressed in this PR. It consisted of using the external representation that the deserialization function expects and running the deserialization prior to signature verification. This was audited by security experts.

    Recommendations

    • Check all new Plutus bindings for correct use.
    • Audit all new Plutus built-in bindings.
    • Continue to develop specific End-to-End tests for all new Plutus features.
    • Do not assume that any existing library functions are "safe". Treat all external calls circumspectly.
    ]]>
    + crypto + incident +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-15-node-cli-api + 2023-08-15-node-cli-api + Tue, 15 Aug 2023 00:00:00 GMT + + 2023-08-02 - 2023-08-15

    High level summary

    • cardano-node 8.2.1 (pre-release) to SanchoNet
    • Continue moving CLI into era-based top level command structure
    • Wire-up DREP key generation,
    • Fix DREP deregistration certificates
    • Implement Constitutional Committee Key generation on the CLI
    • Introducing era-based protocol parameters on the API
    • Removing depracated functions and types on the API

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    Fix broken links in docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-11-hydra + 2023-08-11-hydra + Fri, 11 Aug 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team updated hydra-node to support cardano-node version +8.1.2, ensuring compatibility with the latest mainnet release. The team also +participated in discussions about a "cardanonical" JSON schema and added it as a +submodule to the project, contributing to improved data modeling and +interoperability.

    In terms of community engagement, the team successfully onboarded a new +contributor, also participated in a RareEvo Twitter space, and continued +preparations for the Hydra master-class.

    What did the team achieve this week

    • Updated dependencies to support cardano-node 8.1.2 #1007
    • Engaged in discussions about a cardanonical json schema and +add it as submodule to the project +#1013
    • Onboarded a new contributor to the hydra project (@locallycompact)
    • Joined RareEvo twitter space and continued preparation of hydra master-class

    What are the goals of next week

    • Update & streamline tutorial to work with latest version of hydra-node
    • Remove the internal commit functionality #954
    • Release 0.12.0
    ]]>
    + hydra +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-08-11-performance-and-tracing + 2023-08-11-performance-and-tracing + Fri, 11 Aug 2023 00:00:00 GMT + + High level summary
    • Benchmarking: We've concluded benchmarking node version 8.2.0.
    • Tracing: Optimization of the new tracing system has been merged; we're currently working on self-documenting tracing configuration.
    • Nomad backend: A PR that makes our backend take advantage of added flexibility of the new hardware cluster has been merged.

    Low level overview

    Benchmarking

    As part of our release benchmarking cycle, we've completed and analysed the runs for the 8.2.0 version of cardano-node. In addition to the adjustment of sanity checks in our automation, we had to implement small changes in the analysis pipeline as well to accomodate the new version.

    Tracing

    A significant amount of optimizations for the new tracing system has finally been merged to master. At the moment, +we're working on having a trace message self-document the final tracing configuration of a running node. Apart from adding +insight into the system, this feature also aims at making future hot reloading of tracing configuration explicit and straightforward.

    Furthermore, we're setting up a final round of system integration level benchmarks comparing new against legacy tracing.

    Nomad backend

    The new hardware cluster permits greater flexibility as far as SSH access is concerned. By using nomad for a consistent +and reliable deployment, but taking advantage of direct connections for healthchecks and data transfer we believe we were +able to reduce overall network latency in the nomad cluster. This improves confidence when capturing all network related measurements during our benchmarks.

    A PR that adds these capabalities to our nomad backend - along with very many quality-of-life improvements - has been merged to master.

    ]]>
    + performance-tracing +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-10-mithril + 2023-08-10-mithril + Thu, 10 Aug 2023 00:00:00 GMT + + High level overview

    The Mithril team completed the Mithril protocol’s mainnet beta launch: the release-mainnet network is now consistently producing new certificates and snapshots! The team has released a new distribution 2331.1 which includes some optimizations and bug fixes: the bootstrap time of a Cardano node restored from a Mithril snapshot has been significantly reduced, and a bug that made the aggregator produce corrupted archives has been fixed. They also kept working on the implementation of the stress test tool for benchmarking the aggregator: the first phase has been implemented, as well as a monitoring feature. Additionally, they kept implementing the refactoring of the serialization/deserialization of the entities of the cryptographic library, and working on the post deployment of the mainnet infrastructure.

    Finally, they completed the rewriting and enhancements of the documentation website, and they completed the runbook for operating a production Mithril network.

    Low level overview

    • Released the new distribution 2331.1
    • Completed the epic Release 'mainnet' Mithril network #918
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Completed the issue Design & implement basic stress test tool for aggregator - phase 1 #991
    • Worked on the epic Post deployment 'mainnet' infrastructure #1091:
      • Completed the issue Create Production Infrastructure Runbook #1085
      • Completed the issue Ingest 'mainnet' metrics/logs in Grafana #1122
    • Worked on optimizations:
      • Completed the issue Add a 'clean' file to extracted database in client #1131
      • Worked on the issue Create explorer page with registered signers #1097
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on bugs:
      • Completed the issue Client fails to unpack some snapshot archive #1137
      • Completed the issue The 'release-preprod' network stopped producing certificates #1114
      • Completed the issue The 'release-mainnet' network does not show up in the explorer #1111
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.2' #1090
    • Worked on troubleshooting:
      • Completed the issue Signer can't sign with 'Invalid signature for party' error #1125
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-09-consensus + 2023-08-09-consensus + Wed, 09 Aug 2023 00:00:00 GMT + + High level summary

    This week the Consensus team worked on integrating the latest node release into the UTxO HD branch. Our ad-hoc benchmarks in which we sync a node from scratch showed that the LMDB backend uses around 8GB of memory. We also released new versions of fs-sim and fs-api, and released strict-checked-vars.

    UTxO-HD

    • Rebased UTxO-HD on top of node 8.2 (issue)
    • Address new Maybe translations for UTxOs in Conway 1.6. (PR).
    • Performed ad-hoc benchmarking syncs with both implementations. The LMDB backend uses around 8GB of memory.
    • Fixed an infinite loop on the mempool tracing code that was preventing the node from shutting down gracefully.
    • Fixed an infinite loop on the ledger state query for traversing queries that prevented the node from running QueryUTxOByAddress (PR).
    • Measured the speed of QueryUTxOByAddress under different queryBatchSize values. There is a significant performance degradation for these queries when using the UTxO-HD version. Using the mainnet UTxO set at slot 90 million, querying an address took 40 seconds using the in-memory backend and 90 seconds using the LMDB backend, whereas the baseline took 7 seconds. We need to investigate if we can improve this situation or whether an external service that runs alongside the node is a better solution.
    • Refactored and implemented ledgertable-related classes for the general HardforkBlock.

    Genesis

    • Frisby and Esgen continue to engage with the Researchers on grinding against the Genesis design.

    Fostering collaboration

    • Drafted a document explaining versioning of local state queries #273.

    Support

    • Frisby is the release engineer this cycle.
    • Successfully created work-in-progress ouroboros-consensus and cardano-api commits that integrate the 2023 Aug 7 tip of cardano-ledger. This will require a release of ouroboros-consensus, which hasn't happened yet.
    ]]>
    + consensus +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-04-crypto + 2023-08-04-crypto + Fri, 04 Aug 2023 00:00:00 GMT + + High level summary

    The open fronts that the crypto team is working on are:

    • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
    • mithril: Full node verifier
    • musig2: Finalised the missing fuzz tests
    • kes_agent: engineer on PTO. Work halted

    Low level summary

    Mithril

    • Work on a mithril flaky test #1105
    • Keep working on Full Node Verifier #939. +Should be merged in the coming week.

    MuSig2

    • Finalised the fuzz tests #43

    Sidechains

    • Analysis of Halo2 verifier. Necessary for a future implementation of a plutus verifier.
    ]]>
    + crypto +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-04-goedel + 2023-08-04-goedel + Fri, 04 Aug 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is formalising mini protocols and also further developing the +performance modelling prototype.

    Details

    • Developing new framework for specification and verification of +mini-protocols which is closer to the Haskell implementation.

    • Developed a new internal representation for the DeltaQ algebra that +allows for more modularity in backend implementations

    • Discussions regarding the Cardano networking specification

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-04-hydra + 2023-08-04-hydra + Fri, 04 Aug 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team achieved notable progress in various aspects of the +project. The team updated the use case section for auctions on the /unstable +branch of the website, improving the understanding of Hydras applicability.

    From the development side, the team successfully completed event-sourced +persistence, a key enhancement in the projects architecture which improves +off-chain transaction processing performance. They also added a +submit-transaction endpoint to the API.

    In addition to project-related progress, the team actively engaged in community +reviews for several catalyst proposals related to Hydra and Mithril, +contributing to the wider Cardano ecosystem.

    Finally, the full report for the month of July was also published here.

    What did the team achieve this week

    • Published the monthly report for July
    • Updated the use case section for auctions (published on /unstable branch)
    • Completed event sourced persistence #913
    • Added a submit-transaction endpoint to the API #966
    • Community reviews for several catalyst proposals related to Hydra and Mithril
    • Created a network testing tool (hydra-net) #1006

    What are the goals of next week

    • Update hydra-node to work with cardano-node version 8.x
    • Remove the internal commit functionality
    • Release version 0.12.0
    • Update & streamline tutorial to work with latest version of hydra-node
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-04-ledger + 2023-08-04-ledger + Fri, 04 Aug 2023 00:00:00 GMT + + High level summary

    The ledger team was working almost exclusively on the Conway era implementation. In +particular, the main focus was directed towards solidifying transaction related types and +their binary representation. We also directed some effort into unblocking Plutus team with +respect to PlutusV3 integration.

    Low level summary

    Conway progress

    • pull-3552 - Allow Constitutional Committee Hot Key to be ScriptHash
    • pull-3581 - Make Constitutional Committee Cold Key to be ScriptHash
    • pull-3571 - Implement a portion of the TICKF rule.
    • pull-3556 - Add Script to Constitution
    • pull-3576 - Add optional Anchor to ConwayRegDRep certificate
    • pull-3495 - Implement refund logic for Proposal deposits
    • pull-3579 - Change voting procedure in the transaction to a nested Map
    • pull-3585 - Rename CommitteeCert into a GovCert
    • pull-3587 - Remove DelegStakeTxCert from the COMPLETE pragma for TxCert
    • pull-3586 - Add CurrentTreasuryValue to TxBody
    • pull-3588 - Rename key roles
    • pull-3557 - Update NewCommittee action to use RewardAcnt and add more info
    • pull-3595 - Add ConwayUpdateDRep constructor to ConwayTxCertGov type
    • pull-3600 - Filter out zero TxOuts on Byron/Shelley boundary instead of Babbage/Conway
    • pull-3597 - Update ProposalProcedure return address to be a RewardAcnt

    Testing

    • pull-3374 - New features for generation subject to constraints
    • pull-3519 - Basic Conway features test

    Bugfixes

    Plutus integration

    • issue-3538 - A fairly complete specification was created for the PlutusV3 context
    • pull-3593 - Conway TxInfo for PlutusV3 is now compatible with all pre-Conway functionality

    Improvements and releasing

    • pull-3574 - Improve clarity and performance of collateral Non-ADA validation:
    • pull-3573 - Update top-level CHANGELOG.md with cardano-node relevant changes
    • pull-3555 - Bump pygments from 2.12.0 to 2.15.0 in /doc
    • pull-3575 - Bump certifi from 2022.12.7 to 2023.7.22 in /doc
    • pull-3567 - Backport mint field translation bugfix
    • pull-3568 - Fixed typo in byron ledger spec
    • pull-3572 - Release/backport tickf bugfix
    ]]>
    + ledger +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-04-network + 2023-08-04-network + Fri, 04 Aug 2023 00:00:00 GMT + + High-level overview of sprint 41

    24th July - 6th August 2023

    We started the implementation of bootstrap peers. Bootstrap peers are designed +to provide a safety guarantee for nodes joining the network while still taking +advantage of the distributed network for nodes that are synced. This will be +an intermediate step before Genesis which will allow for further distribute the +system. The bootstrap peers will be run by some trusted partners like CF, +Emurgo or IOG. They are primarily designed for leaf nodes (e.g. full node +wallets), which often end up syncing and require access to the honest chain. See +ouroboros-network#4615 for a more detailed implementation plan.

    Other contributions

    We started to use nothunks library to discover if we have any unevaluated +thunks which can lead to memory leaks ouroboros-network#4633. We found +a small one in the peer metric component of the P2P networking stack. Fixing +it put us on a small detour of fixing the API of the strict-checked-vars +package: cardano-base#431, cardano-base#432, as well as adding NFData +instance to io-classes. We also improved nothunks +library to make debugging easier and we provided a NoThunks instance for +ThreadId which we will need in the future (see nothunks#33).

    We released a new version of io-classes (version 1.2.0.0) and related +packages to Hackage.

    We addressed all review comments on the eclipse evasion PR which introduces big +ledger peers, ouroboros-network#3886.

    We fixed how SIGHUP signal handlers are registered, so it's not possible to +shutdown a node which was starting while trying to update network topology, +see cardano-node#5421.

    I didn't mention that in the previous update, so here it goes: in the previous +sprint we released ouroboros-network-0.8.2.0 and +ouroboros-network-framework-0.7.0.0.

    ]]>
    + network +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-08-04-performance-and-tracing + 2023-08-04-performance-and-tracing + Fri, 04 Aug 2023 00:00:00 GMT + + High level summary
    • Benchmarking: We're adjusting the benchmarking cluster to handle runs for node version 8.2.0.
    • Tracing: We've finished optimization of the new tracing system and added extra robustness with regard to namespacing.
    • Infrastructure: We've been working on making all benchmarking code compliant with the latest GHC9.6.
    • Nomad backend: The new backend has seen adjustments due to a change of underlying hardware. Additionally, we've successfully performed various benchmarking runs on it.

    Low level overview

    Benchmarking

    The 8.2.0 version of cardano-node required adjustment of some of the sanity checks that are part of our benchmarking +cluster automation. We've pinpointed the necessary changes and are currently setting up the cluster for the new node version.

    Tracing

    The optimization efforts for the new tracing system have been completed and have significantly reduced the resource footprint +when using it as default for a running node.

    A linchpin of the new system is the organization of traces into a namespace hierarchy. This affects configuration, self-documentation as well as rendering of desired trace messages. The new system is now equipped to detect any +inconsistency in the whole set of tracers, defined across all components, even if they are never turned on in a running node. +This feature adds another layer of robustness to the whole system.

    Infrastructure

    A potential switch to GHC9.6 (or higher) required some work on our code bases to make it compliant with recent compiler +versions. We've future-proofed our benchmarking code.

    Nomad backend

    The hardware cluster that our nomad backend was accessing has been changed, and we were able to adjust our backend +accordingly without touching its higher level abstractions and functionality. Moreover, with the new hardware and cluster setup, certain tasks such as retrieving run artifacts or healthcheck monitoring have become more performant.

    The validation phase is ongoing. We were able to perform successful runs and analyses for various 8.x node versions, including 8.2.0-pre. With parallel runs on the current cluster, we hope to measure the same effects we've observed with the +nomad backend - which will be a big step towards production use.

    ]]>
    + performance-tracing +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-04-sre + 2023-08-04-sre + Fri, 04 Aug 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Preprod and preview envionments were updated to 8.1.2.
    • Sanchonet and shelley-qa environments were updated to 8.2.0-pre.
    • Work on a new cardano performance repo which utilizes a lightweight Cloudformation/Rain to Terraform infra bootstrap and Nomad environment has begun.

    Lower level summary

    Cardano-ops

    Cardano-perf

    Cardano-world

    ]]>
    + sre +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-08-01-node-cli-api + 2023-08-01-node-cli-api + Tue, 01 Aug 2023 00:00:00 GMT + + 2023-07-19 - 2023-08-01

    High level summary

    • Release of Node 8.2.0
      • Updates to the ledger packages extend progress on the Conway ledger era to support new governance features via CIP-1694.
      • This release is phase 1 of the SanchoNet roll out
      • Allows SPOs to vote on changes to the on-chain constitution.
      • Ability to start the node in block production mode with no secrets loaded using the --non-producing-node flag.
      • Updates to the networking packages prepare the road for peer sharing.
    • cardano-cli and cardano-api continue to integrate Conway era features
    • Continue refactoring of cardano-testnet

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-31-network + 2023-07-31-network + Mon, 31 Jul 2023 00:00:00 GMT + + Network Update (Sprints 39 & 40)

    The network updates got distracted. Mostly because of me leaving for the meeting in Edinburgh, Scotland and the being away. +It was great to see and talk to so many of the community members.

    Sprint 39 (Jun 26 - Jul 09)

    Major changes

    Now the following list of traces will be turned on by default:

    node-to-client protocol
    • LocalConnectionManagerTracer
    • LocalInboundGovernor
    • LocalHandshake
    • LocalServer
    node-to-node protocol
    • Server

    See cardano-node#5353. This will be released in node-8.2.0.

    We made sure that cardano-client-0.1.0.x library (which is db-sync) is not using the experimental node-to-client protocol. +The cardano-client-0.2.0.0 was not affected. +See ouroboros-network#4612.

    We merged the dynamic block production feature to ouroboros-consensus (also available in the cardano-node-8.2.0 release). +Dynamic block production enables hot-swap p2p nodes, which are important for the p2p deployment of block-producing nodes. +See ouroboros-network#3159, [ouroboros-consensu#140].

    We continued to review the implementation of big ledger peers for eclipse evasion, see ouroboros-network#4462.

    Minor changes

    Sprint 40 (Jul 09 - Jul 23)

    Major changes

    We integrated ouroboros-network-0.8.2.0 with the master branch of cardano-node for the 8.2.0 release (the version match between ouroboros-network and cardano-node is purely accidental). +This includes:

    • integration with dynamic block production feature. +This feature is documented in the following PR.
    • Warm valency for local root peers (see below).

    For the full list of features included in the 8.2.0 release from the network side, please take a look at the pre-release nodes.

    We improved the memory footprint of peer metrics measured by the P2P stack. +Peer metrics are used to decide which peers to demote every churn interval (roughly every hour with some probabilistic fluctuation). +See ouroboros-network#4620. +The improvement will be available in cardano-node-8.2.0.

    We added an optional explicit warm valency to local root peers of the P2P topology file. +Previously we used an implicit valency, e.g. the node keeps connections to all of the local roots; with local warm valency the node will pick only that many peers from the local root peers group to connect to. +The hot valency (previously known simply as valency) hasn't changed, but it must be smaller than the warm valency as hot peers are selected from warm ones. +Warm valency is a useful feature to limit resource consumption if one of the domain names in the local root peer group resolves to many IP addresses. +See ouroboros-network#4575, cardano-node#5409.

    ]]>
    + network +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-28-hydra + 2023-07-28-hydra + Fri, 28 Jul 2023 00:00:00 GMT + + High-level summary

    During this week, the Hydra team achieved significant progress in various areas. +They conducted the monthly review meeting for July, which continously ensures +transparent communication and project evaluation. The team migrated the core +logic of the node to an event-sourced architecture and incremental writes of +events to persistence, enhancing the projects performance and maintainability. +Furthermore, the team added the ability to read protocol parameters via the API +and fixed the CI workflows to support pull requests from forks of external +contributors, streamlining the development process for community involvement.

    What did the team achieve this week

    • Held the monthly review meeting for July (recording)
    • Migrate the core logic of the node to an event-sourced architecture #999
    • Updated persistence to faster incremental writes of events #1000
    • Added ability to read protocol parameters via API #735
    • Fix CI workflows to support pull requests from forks of external contributors #993
    • Updated to GHC 9.2.8 #1005
    • Prepared an updated use cases section on https://hydra.family (published with next release)

    What are the goals of next week

    • Publish monthly report
    • Complete user transaction submission work #966
    • Remove commit from internal wallet (deprecated) #954
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-27-mithril + 2023-07-27-mithril + Thu, 27 Jul 2023 00:00:00 GMT + + High level overview

    The Mithril team launched Mithril protocol’s mainnet beta: the release-mainnet network is now open for signer registrations, and its genesis certificate has been created. The team is monitoring the network, and expects it to start producing certificates during the next Cardano epoch.

    They have released a new distribution 2329.0, which is running on the release-mainnet network. They also kept working on the implementation of the stress test tool for benchmarking the aggregator. The team kept working on the refactoring of the serialization/deserialization of the entities of the cryptographic library. Additionally, they completed the cleanup of the legacy store adapters in the aggregator.

    Finally, they have worked on enhancing the documentation for onboarding SPOs and setting up a Mithril signer, and fixing installation bugs of the binary artifacts produced in the CI.

    Low level overview

    • Created the dev blog post Mithril Protocol’s Mainnet Beta Launch
    • Released the new distribution 2329.0
    • Closed the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Deploy 'mainnet' infrastructure #988
      • Completed the issue Handle Secrets management #989
    • Worked on the epic Release 'mainnet' Mithril network #918
      • Completed the issue Prepare SPO on-boarding guide #1049
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on optimizations:
      • Completed the issue Enhance the configuration of Mithril relay #1080
      • Completed the issue Remove legacy store adapters from aggregator #1053
      • Completed the issue Add a 'sign' sub-command to 'genesis' command in aggregator #1081
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on documentation:
      • Completed the issue Enhance 'Run a Mithril Signer node (SPO)' guide #1055
    • Worked on bugs:
      • Completed the issue Shared library error in CI binaries #1073
      • Completed the issue Debian package does not install cleanly on older ubuntu versions #834
      • Completed the issue Aggregator panics with new (de)serialization of 'ProtocolVerificationKey' #1083
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-26-consensus + 2023-07-26-consensus + Wed, 26 Jul 2023 00:00:00 GMT + + High level summary

    The db-sync team confirmed that the adaptor module the Consensus team provided for UTxO-HD integration, shows no performance degradation. Other clients who wish to integrate with UTxO-HD without using a on-disk storage could use that same approach for now. +We also focused on completing tracing support for UTxO-HD in cardano-node. +Currently we are working on UTxO-HD documentation, both for downstream consumers and for the general public; and generalizing the implementation further.

    The team working on Genesis decided on a Genesis-motivated change of the epoch structure with the researchers, wrote a self-contained description of the statistical model for historical Genesis windows and eclipse durations, and merged two small improvements to the ChainSync client as part of the onboarding efforts for the team that will implement Genesis.

    The Consensus team also investigated an issue on sanchonet (the Conway testnet) manifesting in long syncing pauses; identified a ledger bug which was promptly fixed by the Ledger team.

    Genesis liaising

    Improvements to the ChainSync client:

    ]]>
    + consensus +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-21-hydra + 2023-07-21-hydra + Fri, 21 Jul 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team updated the specification to align with recent +off-chain protocol changes, completed refactoring the snapshot emission +in preparation for event-sourced protocol logic, and updated to GHC +9.2.7, resulting in improved compile times and slightly smaller Plutus +scripts.

    What did the team achieve this week

    • Updated the specification to match the recent off-chain protocol +changes to complete +#728
    • Refactored the snapshot emission logic in preparation for event +sourced protocol logic.
    • Updated to GHC 9.2.7, which led to improved compile times and +slightly smaller plutus scripts.

    What are the goals of next week

    • Monthly review meeting next wednesday and July report
    • Reflect latest information onto our roadmap.
    • Actual implemention of event-sourced persistence +#913.
    • Update the use cases section on https://hydra.family
    • Remove deprecated internal commit +#954.
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-21-ledger + 2023-07-21-ledger + Fri, 21 Jul 2023 00:00:00 GMT + + High level summary

    Our focus was on planning and implementing Conway features that we would like to see deployed and running on Sanchonet. +All members of the ledger team participated in the CIP-1694 workshop and had an in-person meeting, where we discussed plans forward for the Conway era. +We also investigated some transaction validation issues that occurred on preview with the latest node (for 8.2 release). +Additionally, we did some preparatory work that will help us define the types we need for Plutus V3 and integrate with the new version when it will become available. +We also made progress on the constraint-based generators, which can now generate valid transactions and ledger states.

    What we achieved

    • [pull-3521] [pull-3554] Improved Governance model (GovernanceProcedures, ProposalProcedure)
    • [pull-3520] Improved Governance-related naming (Renamed Tally to Gov and VDel to GovCert )
    • [pull-3531] Refactored and simplified code interacting with Plutus
    • [pull-3558] Fixed a bug that was breaking validation on preview, related to refernce inputs witnesses. We backported and released the fix.
    • [pull-3550] For Conway to run on Sanchonet, we updated the era Translation to remove zero-ADA outputs. This was necessary because such outputs exist on mainnet, but in Conway they are not allowed.
    • [pull-3551] [pull-3546] [pull-3472] Updated tools and added some small improvements
    • [issue-3146] [pull-3498] Introduced Conway protocol parameters
    • [issue-2948] [pull-3499] Implemented ConwayGenesis with the new protocol parameters

    What is currently in progress

    ]]>
    + ledger +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-21-sre + 2023-07-21-sre + Fri, 21 Jul 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent improvements include:

    • Re-spin sanchonet for testing a new node version followed by fork to Conway
    • Deploying a sanchonet compatible faucet to sanchonet
    • Migrate shelley qa legacy environment to cardano-world

    Lower level summary

    Cardano-node

    Cardano-ops

    • Mainnet relays are 50% migrated to p2p topology and 1 relay per region dedicated for ledger peers: cardano-ops-compare

    Cardano-world

    Iohk-nix

    ]]>
    + sre +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-20-goedel + 2023-07-20-goedel + Thu, 20 Jul 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is working on formalising mini protocols, the performance +modelling prototype and also finishing off their ICE papers.

    Details

    • Formalization of the chain synchronization mini-protocol in the +thorn calculus

    • Final pre-publication steps for ICE 2023 papers

    • Developing approach for specification and verification of +mini-protocols

    • Started work on porting the DeltaQ framework to a new, more concrete +backend based on piecewise-polynomials

    ]]>
    + goedel +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-18-node-cli-api + 2023-07-18-node-cli-api + Tue, 18 Jul 2023 00:00:00 GMT + + 2023-07-05 - 2023-07-18

    High level summary

    • Integrate Conway certificates in cardano-api
    • Prepare cardano-cli and cardano-api for cardano-node 8.1.2
    • Tagged cardano-cli 8.3.0.0
      • Query for the hash of the constitution (Conway)
      • Ability to create votes and governance actions
    • Tagged cardano-cli 8.3.1.0
      • Make it build with ghc-9.6
    • Upgrade to optparse-applicative-fork-0.18.1.0 for parsing command line options

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-14-hydra + 2023-07-14-hydra + Fri, 14 Jul 2023 00:00:00 GMT + + High-level summary

    This week the team focused on exploring the event sourced persistence in order +to improve hydra-node performance. Because of this work the team noticed we +need to refactor the emit snapshot emission logic and update the spec in the +light of new changes. They also took the time to revisit their goals and product +plans for the next quarter as well as doing some security fixes related to +multisignatures.

    What did the team achieve this week

    • Finished spike about performance improvements of event sourced persistence #963.
    • Refactor snapshot emission in protocol logic.
    • Revisited our roadmap and goals.
    • Prepared and conducated a learning session on lean-waste.
    • Improve security of multi-signature checks, see this Github security advisory.
    • Implemented a cache friendly way to version our binaries #962.

    What are the goals of next week

    • Implement Event sourced persistence #913.
    • Remove deprecated internal commit #954 and close #728.
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-13-mithril + 2023-07-13-mithril + Thu, 13 Jul 2023 00:00:00 GMT + + High level overview

    The Mithril team created a new 2327.0 distribution. They focused on preparing the beta launch on the mainnet: they tested the new production signer deployment model with the pioneer SPOs, they prepared an SPO on-boarding guide, and they kept working on the deployment and monitoring of the mainnet infrastructure. The team also worked on the implementation of a simple stress test tool for benchmarking the aggregator. Additionally, they completed the refactoring of the interface to the cryptographic library.

    Finally, they fixed a bug that sporadically prevented the latest signer registration of a SPO to be used in the associated signing epoch, they fixed a bug in the epoch gap detection of the certificate chain in the aggregator, and worked on multiple other optimizations and bugs.

    Low level overview

    • Released the new distribution 2327.0
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Add infrastructure monitoring #987
      • Worked on the issue Deploy 'mainnet' infrastructure #988
      • Worked on the issue Handle Secrets management #989
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on optimizations:
      • Completed the issue Remove certificate hash from Artifact #932
      • Completed the issue Check vulnerabilities in CI #1037
      • Completed the issue Add 'created_at' in Mithril Stake Distribution messages #1030
      • Completed the issue Add a 'run-only' option in end to end test #1048
    • Worked on refactoring:
      • Completed the issue Factorize protocol crypto operations #669
      • Completed the issue Refactor aggregator dependency injection and services #1058
      • Completed the issue Build static binaries in CI #874
    • Worked on documentation:
      • Completed the issue Prepare SPO on-boarding guide #1049
      • Completed the issue Add instructions to set firewall using iptables #1040
      • Completed the issue Update ufw command to set firewall on Mithril Signer installation instructions #1041
    • Worked on bugs:
      • Completed the issue Aggregator does not detect certificate chain epoch gap #952
      • Completed the issue 'testing-preview' network does not create certificates #1015
      • Completed the issue SQLite compatibility in aggregator #837
      • Completed the issue Q&A followup fixes #1035
      • Completed the issue E2E tests are flaky in CI #1023
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-12-consensus + 2023-07-12-consensus + Wed, 12 Jul 2023 00:00:00 GMT + + High level summary

    This week the team working on UTxO-HD discovered a space leak in the peer metrics code. This was communicated to the Networking team who has a proposed fix. The ad-hoc benchmarks that the team ran using a local immutable DB server showed good memory and time performance. We still have to check the performance on a memory constrained machine.

    The team working on the Genesis design started onboarding the team of engineers that will implement the new Genesis protocol. This team is also finalizing the statistical model for historical Genesis feasibility.

    On the support front, the team drafted an information exchange requirement (IER) for the Networking team to safely and efficiently control peer load.

    ]]>
    + consensus +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-07-12-performance-and-tracing + 2023-07-12-performance-and-tracing + Wed, 12 Jul 2023 00:00:00 GMT + + High level summary
    • Benchmarking: The peformance investigation into the compiler switch to GHC9 is ongoing. Additionally, a roadmap for implementing Consensus QTAs has been developed.
    • Infrastructure: Our workbench has undergone some refactoring to seamlessly integrate its profiles into all available backends.
    • Tracing: Optimization of the new tracing system is ongoing and yielding good performance results.
    • Nomad backend: We developed a new feature for the nomad backend which allows pinning deployments to specific machines.

    Low level overview

    Benchmarking

    Our analysis of the GHC9 build of cardano-node has produced several locations in the code base where the new compiler seems to miss opportunities for optimization. Our hypothesis is, that those can account for the difference in resource usage we observe when benchmarking with a full cluster run. Instructing the compiler on how to perform the optimizations which GHC8 apparently applied out of the box requires further investigation.

    In an effort to define Quantitative Timeliness Agreements (QTAs) on a per-component basis, we have coordinated with the Consensus team and developed a roadmap for providing those on consensus level. Making use of the insight that system-level benchmarks allow, we intend to set up and calibrate a benchmark that can reliably predict a regression or optimization for select metrics before needing full integration into cardano-node. This will help tremendously in various ways: catching regressions much earlier, localizing them much easier, avoiding repeated component integration and much shorter feedback cycle.

    Infrastructure

    We have worked on seamless integration of our benchmarking profiles into the many available backends that the workbench provides. The goal was to be backend-agnostic, to guarantee that all benchmarking run artifacts be structurally identical as far as their file name, format and location are concerned. This lead to refactoring work and has already landed in master.

    Tracing

    Much effort went into further optimization of the new tracing system. After working on configuration to align both new and legacy tracing system with regard to their trace frequencies, we could uncover some increase in resource usage. This occurred for corner cases under very heavy load. These cases have been addressed already, and do now surpass the legacy tracing system in terms of performance.

    Nomad backend

    For reliable benchmarking results it is vital to introduce as few confounding factors as possible when performing runs. This includes hardware and network topology. The nomad backend has been outfitted with a mechanism to pin the nomad job for some node in our benhcmarking cluster to a specific machine instance. This greatly increases confidence in the metrics observed from a run.

    Furthermore this feature will detect any change in the underlying hardware or topology so it can be taken into account. The new feature has been merged to master.

    ]]>
    + performance-tracing +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-07-crypto + 2023-07-07-crypto + Fri, 07 Jul 2023 00:00:00 GMT + + High level summary

    The open fronts that the crypto team is working on are:

    • Sidechains: First version of snark-based ATMS
    • mithril: Full node verifier
    • kes_agent: Keep progress, and prepare CIP and CPS
    • CIPs and community: Finishing BLS12-381 CIP and working on a KECCAK CIP

    Low level summary

    kes_agent

    Mithril

    • Final review of the implementation of Full Node Verifier #939. +Included benchmarks and further tests.

    Sidechains

    • Schnorr signature implemented
    • ATMS signature implemented
    • First benchmarks show that for the committe size we expect, we need 2^21 constraints.

    CIPs and community

    • Addressed some review comments in #PR506
    • Worked with the communityt on #PR524 to include Keccak as part of the next Plutus release.
    ]]>
    + crypto +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-07-goedel + 2023-07-07-goedel + Fri, 07 Jul 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the teams have been working on finalising their ICE papers +for publication in EPTCS, formalising concensus, and investigating chain +sync.

    Details

    • Preparing final versions of ICE papers

    • Reviewing the chain sync design and documentation

    • Refactoring the thorn calculus

    • First draft of Praos specification

    • Developing bounding factors on timeouts

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-07-hydra + 2023-07-07-hydra + Fri, 07 Jul 2023 00:00:00 GMT + + High-level summary

    This week the Hydra team accomplished some nice progress. They secured the +network layer further by implementing authentication of the messages between the +peers in the Head protocol. In the process they also managed to separate +HeartBeat messages from the protocol ones which somewhat improved the quality of +code in Hydra. The team also finished work related to sending only transaction +ids in ReqSn messages, fixed an issue in the smoke tests, and improved benchmark +publishing on the website.

    What did the team achieve this week

    What are the goals of next week

    • Spike on performance improvements of event sourced persistence #913
    • Add new endpoint for submitting client transactions
    • Remove commit from internal wallet
    ]]>
    + hydra +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-07-sre + 2023-07-07-sre + Fri, 07 Jul 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on cardano environment improvements, supporting CI improvements, and general environment maintenance.

    Some notable recent improvements include:

    • Improved cardano-node entrypoint handling to allow for clean restarts in the Nomad environment
    • Explorer component updates
    • Spongix caching server rewrite for R2 Cloudflare support and various performance improvements

    Lower level summary

    Cardano-node

    Cardano-ogmios

    Cardano-ops

    • Improve storage resize script, workaround systemd node signal handling, rescale p2p relays: cardano-ops-compare

    Cardano-rosetta

    Cardano-world

    Spongix

    • Spongix caching server rewrite for Cloudflare R2 backend support plus misc improvements: spongix-simple-branch
    ]]>
    + sre +
    + + <![CDATA[Developer Experience Update]]> + https://updates.cardano.intersectmbo.org/2023-07-06-developer-experience + 2023-07-06-developer-experience + Thu, 06 Jul 2023 00:00:00 GMT + + High level summary

    The Developer Experience team has been dealing with day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, CI migration from Cicero to Hydra, and Buildkite to GitHub Actions. iohk-nix, haskell.nix, and devx have seen improvements.

    Lower level summary

    build support & maintainance

    The DevX team has helped troubleshoot a few CI issues, and focused on helping to migrate from Cicero to Hydra, as well as from Buildkite to GitHub Actions.

    compiler upgrades

    Compatibility with 9.6 has been continued and most of our libraries are not 9.6 compatible. Only a few are not, we hope to have this done by the end of the month. We've also started preliminarily adding GHC 9.8 to our infrastructure for early compiler regression tests.

    Hydra Tools

    Our repository, input-output-hk/actions, has seen quite some improvements to facility the hydra <-> github integration.

    haskell.nix

    Haskell.nix has been maintained and updated with the addition of preliminary GHC 9.8 support.

    devx

    The devx repository has seen significant improvements, including the addition of GitHub Codespaces, and DevContainers. Integrated with our actions/devx GitHub Actions, we have a consistent set of tooling for

    • nix develop shells
    • GitHub CodeSpaces integration
    • VSCode DevContainer support
    • GitHub Actions integration

    upstream tooling

    Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

    ]]>
    + devx +
    + + <![CDATA[DB-sync Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-04-db-sync + 2023-07-04-db-sync + Tue, 04 Jul 2023 00:00:00 GMT + + High level summary

    We've made progress in all high level objectives

    • CIP-1694 integration design
    • UTxO-HD integration proof of concept
    • schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2 and tested
    • Many devx issues resolved

    Lower level summary

    • We have improved and validated the design for the Conway integration in db-sync
    • Improved the initial integration of the UTxO-HD feauture branches which are under test
    • Prepared a new release 13.1.1.3 which supports node 8.1.1 +#1455.
    • This also fixes a bug +#1451
    • Added new tests to the new tx_out options +#1429
    • Fixed a chronic issue in db-sync related to exception handling and concurrency +This fixes many other issues and simplifies the logic in db-sync +#1447
    • A number of fixes and improvements in ci, docker, devx, docs +#1436#1442#1448#1452
    ]]>
    + db-sync +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-07-04-node-cli-api + 2023-07-04-node-cli-api + Tue, 04 Jul 2023 00:00:00 GMT + + 2023-06-21 - 2023-07-04

    High level summary

    • Started integration of conway era into the cardano-api,
    • Pre-release of cardano-cli 8.2.1 which enables creating goveranance "Update constitution" governance actionsas well as voting. Both only as SPO. DREP and CC will come in future releases.
    • Cardano-cli is moving to a top-level era command structure (i.e. cardano-cli conway, cardano-cli babbage, etc to accomodate for different fucntionalities available in diferent eras. In particular between Babbage and Conway governance-related functionalities.
    • Continue refactoring cardano-testnet
    • CI and docs house keeping on the new cardnao-cli and cardano-api repositories

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-30-hydra + 2023-06-30-hydra + Fri, 30 Jun 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team wrote and published the monthly report for June, +implemented the end-to-end functionality for external commits, and tested it on +the preview environment. They also listed Hydra as a tool on the Cardano +developer portal, providing more visibility for the project. The team clarified +the path forward for L2 protocol improvements and explored an alternative CI +approach using cabal instead of nix. Additionally, they released version 0.11.0, +marking another milestone in the projects development.

    What did the team achieve this week

    • Written and published the monthly report for June
    • Implemented external commits end-to-end incl. tested it on preview #215
    • Listed Hydra as a tool on cardano developer portal
    • Cleared up path forward on L2 protocol improvements #728
    • Established an alternative CI using more cabal tools #923
    • Release version 0.11.0

    What are the goals of next week

    • Spike on performance improvements of event sourced persistence #913
    • Complete ReqSn only sends transaction ids #728
    • Groom and plan last items for 0.12.0 (remove internal commit)
    • Improve reliability of benchmarks
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-29-mithril + 2023-06-29-mithril + Thu, 29 Jun 2023 00:00:00 GMT + + High level overview

    The Mithril team completed the design of the signer deployment model for the SPOs to run Mithril on their Cardano mainnet infrastructure, and implemented the associated Mithril Relay in the Mithril networks. They started working on the design and implementation of a stress test tool for benchmarking the aggregator performances. They worked on the refactoring of the Mithril Stake Distribution entity and the uniformization of the date types in the nodes. They also worked on implementing a new tool command in the aggregator and its first sub-command that helps avoiding re-genesis of the certificate chain when the structure of the certificate is updated. Additionally, they worked on implementing some monitoring for the Mithril infrastructure, and worked on a retry mechanism for the artifact creation of the aggregator.

    Finally, they fixed some bugs, and they completed the upgrade of the Mithril networks to Cardano node v.8.1.1.

    Low level overview

    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Add infrastructure monitoring #987
    • Completed the epic Prepare Mithril Signer deployment model for SPO #862:
      • Completed the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
      • Completed the issue Adapt infrastructure to use Mithril Relay #1018
      • Completed the issue Announce the new signer deployment model in a dev blog post #1017
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on bugs:
      • Completed the issue Aggregator does not exit on critical error #993
      • Completed the issue Computation of master certificate of an epoch is incorrect #1006
      • Completed the issue End to end tests are flaky #954
      • Worked on the issue 'testing-preview' network does not create certificates #1015
    • Worked on optimizations:
      • Completed the issue Dates format is not standardized #946
      • Completed the issue Add 'recompute-certificates-hash' command to aggregator #1001
      • Completed the issue Add a retry mechanism for artifact creation in aggregator #984
      • Completed the issue Log node version at startup in Aggregator/Signer #944
      • Completed the issue Reactivate Publish Results job in CI #978
      • Completed the issue Clean 'pending_snapshot' directory of aggregator #983
      • Completed the issue Update OpenAPI spec examples #1000
    • Worked on refactoring:
      • Completed the issue Refactor 'MithrilStakeDistribution' entity #967
      • Completed the issue Refactoring client #982
      • Completed the issue Refactor download code in client #1010
      • Worked on the issue Factorize protocol crypto operations #669
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.1' #973
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-28-consensus + 2023-06-28-consensus + Wed, 28 Jun 2023 00:00:00 GMT + + High level summary

    During the past two weeks the team working on the Genesis implementation continued to engage with the researchers, which resulted in various simplifications of the correctness argument for the historical Genesis window. They also decided on an approach for a syncing node to decide that it is (no longer) caught up. This functionality was requested by the networking team.

    The team working on the UTxO-HD implementation ran ad-hoc benchmarks that showed performance issues, which are being investigated. They also merged several improvements required for the first UTxO-HD release, and added a package for easing integration with other downstream components.

    Regarding our support activities, we integrated the latest Ledger changes into Consensus in preparation for release 8.2 of node.

    Genesis

    • We continued to engage with the researchers on our probabilistic model for historical Genesis window, resulting in various simplifications that make the correctness argument more clear while not being excessively conservative.

    • We decided on an approach of how to implement functionality requested by the Networking team; namely, how a syncing node can safely conclude that it is (no longer) caught up. Certain parameters are still subject to discussion with the researchers, and we have still have to agree on a concrete API for this functionality with the Networking team.

    UTxO-HD

    • We merged the last of the PRs that were part of UTxO-HD improvements for version 0.1: expose UTxO-HD configuration options in the node, refactor ledger tables, and expose a method of computing the UTxO set size.
    • We added a new "legacy" cardano block in a new ouroboros-consensus-cardano-legacy-block package that should ease the transition for some downstream packages to UTxO-HD, like db-sync. This is really only useful for downstream packages that use the parts of consensus that don't involve the storage components, in which case we can largely ignore ledger tables. Ignoring ledger tables could also make functionality like block (re-)application more performant for the legacy Cardano block as compared to the actual (UTxO-HD compatible) Cardano block.
    • We performed ad-hoc benchmarks of the UTxO-HD implementation, observing a regression in sync speed in the LMDB implementation as well as a regression in memory usage on the in-memory implementation. We are investigating this.
    ]]>
    + consensus +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-06-28-performance-and-tracing + 2023-06-28-performance-and-tracing + Wed, 28 Jun 2023 00:00:00 GMT + + High level summary
    • Benchmarking: We've performed several new benchmarks and a performance investigation in preparation of switching the default compiler to GHC9.
    • Infrastructure: The first batch of refactoring and documentation for our tx-generator has been merged to master.
    • Tracing: We've looked into an issue where the tracing system's concurrency could prevent a graceful node shutdown.
    • Nomad backend: Our new cloud backend has seen various improvements regarding deployment and monitoring; validation runs for the backend are ongoing.

    Low level overview

    Benchmarking

    The compiler switch to GHC9 as the default build platform for cardano-node and its components still has noticeable effects on system-wide performance metrics. An investigation into the different resource usage profiles of compiler versions does seem to indicate GHC9's significantly different inlining behaviour may produce those effects. We're currently locating the specific places in component code that have the most extensive effect in that regard.

    Using the forge-stress approximation we set up, we could determine that above effect is not due to a range of RTS parameters, as for example the number of capabilites used by the node.

    Infrastructure

    The tx-generator is a crucial part of our tooling responsible for producing very specific workloads for our benchmarking cluster. In an effort to flesh out an API to make it reusable for more general use cases, a first set of refactorings has been merged to master. Additionally, this merge contained systematic documentation both for internal and for exposed areas of the code base.

    Tracing

    The tracing system's concurrency could under certain conditions prevent a graceful shutdown of the node. This issue did occur only after adding specific new traces on a development branch. We could localize and address that issue.

    Nomad backend

    With the data gathered from running the new nomad cloud backend, we've been able to address many, many small and medium-sized improvements. The deployment process has been restructured for better efficiency, and the healthcheck system could be fine-tuned to recognize severity of various conditions that might occur. Optimization of fetching all run data from the cloud for evaluation is in progress.

    Additionally, we're continuing the new backend's validation by setting up test runs and looking into comparative analyses with metrics gathered from the current cluster backend.

    ]]>
    + performance-tracing +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-23-goedel + 2023-06-23-goedel + Fri, 23 Jun 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the teams presented two papers at ICE 2023.

    Details

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-23-hydra + 2023-06-23-hydra + Fri, 23 Jun 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team shared progress updates during the monthly review +meeting (monthly report and video recording available soon) and started +experimenting on preview network with the new commit from external wallet +feature.

    What did the team achieve this week

    • Monthly report & review meeting, demonstrating commit from external +wallet
    • Published regular benchmarks for +Hydra
    • Moved forward the journey for external commits using multiple script UTxOs +#903
    • Changed the API to only put transaction id in snapshots, instead of the full +transactions #922 -> this +is now evolved into fully addressing #728
    • Fuel marking is now optional as one can now commit from an external wallet +#924
    • Add flag option to display node version on tui +#934

    What are the goals of next week

    • Complete external commits using multiple script UTxOs #903
    • New release 0.11.0
    • Dirtroad solution of improved persistence performance #913
    ]]>
    + hydra +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-23-network + 2023-06-23-network + Fri, 23 Jun 2023 00:00:00 GMT + + Network Update

    Key contributions

    We held a series of session to review the implementation of big ledger peers +(eclipse evasion). See #4462.

    We get a request from a 3rd party to clarify an inconsistency between CDDL spec +and protocol implementation. We worked out a nice solution which takes +advantage of the any notion available in CDDL. On the Haskell side we +provide Any type which gen generate almost any CBOR term (some are excluded +only because they are not decoded back to the same form, and we relay on that +property). See #4580.

    We fixed a bunch of problems of the cardano-cli ping command. It also now has +a limited support of node-to-client mini-protocol (the -c option is +ignored, as it cannot be supported by node-to-client protocol). Note that +the format of messages has changed, timestamps are printed in ISO8601 format. +See #4601, #5326, #5313, #30

    In order to provide a new flag in the topology file which enables ledger peers +when the chain is close to the tip, we continued to work on #4530. This is +currently in review, the consensus team will need to provide us with the new +api. This feature is useful for two reasons: makes it easier to maintain +a topology file, it will also limit the traffic on public roots generated by +for example full node wallets and distribute it to ledger peers.

    We also continued to work on a blog post which describes the journey of design +& implementation of the dynamic P2P network layer. Too be announced soon :).

    Other smaller changes

    We limit the concurrency of resolving dns names. Up to 8 root peers or ledger +peers DNS names are resolved concurrently, and at most 2 local root peer DNS +names. See #4596.

    We fixed handshake query timeout in #4603.

    We renamed one of the block-fetch decision constructors as requested by the +consensus team, see #4608.

    ]]>
    + network +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-23-sre + 2023-06-23-sre + Fri, 23 Jun 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include:

    • A devx-ci cluster containing a Hydra build server and Linux build farm was stood up and is intended to replace Cicero functionality
    • Cardano Sanchonet environment was stood up to test Conway era functionality
    • Cardano-node nixos service was updated to support the latest p2p topology format and non-systemd socket activation use case
    • Cardano-node 8.1.1 was deployed to preview, preprod and mainnet environments

    Lower level summary

    Cardano-node

    • Update cardano-node nixos service for updated p2p topology and non-systemd socket activation: cardano-node-pull-5318

    Cardano-ops

    Cardano-world

    Ci-ops

    Ci-world

    • Add devx-ci cluster integration for caching, monitoring during cicero to devx-ci transition: ci-world-compare

    Devx-ci

    • A CI cluster with a hydra build server was stood up and is intended to replace usage of Cicero: devx-ci-repo

    Iohk-nix

    ]]>
    + sre +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-16-hydra + 2023-06-16-hydra + Fri, 16 Jun 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team focused their efforts on continuing to investigate and +experiment operating a head on mainnet. They collected several bugs and issues +and worked on fixing them. Now the team is soon to release a new version, +0.11.0, which comes with a lot of improvements and bug fixes.

    What did the team achieve this week

    • Restored and fixed a bug which stalled our head on mainnet #927
    • Solved one user issue #914
    • Reduced significantly local state size and logs by removing the full scripts from it #928
    • (pending review) Reduced snapshot size in the API, by only including tx ids #922

    What are the goals of next week

    • New release 0.11.0
    • Monthly report & review meeting.
    • Fix some minor bugs discovered when operating our head on mainnet
    • Complete journey for external commits using multiple script UTxOs #903
    • Publish benchmarks and provide regular benchmarks for Hydra #186
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-15-mithril + 2023-06-15-mithril + Thu, 15 Jun 2023 00:00:00 GMT + + High level overview

    The Mithril team completed the implementation of the new sub-command for restoring a Mithril stake distribution in the client. They also updated the client’s developer documentation and architecture documentation, and did some refactoring on the client and its dependency injection mechanism. Additionally, they completed and deployed infrastructure enhancements on the test Mithril networks. They also completed the performance tests of the new stake distribution computation on the Cardano mainnet.

    Finally, the team worked on fixing a bug on the client multi-platform test, a bug on the aggregator state machine, and some flakiness on the CI.

    Low level overview

    • Completed on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the issue Create the sub-command for 'Mithril Stake Distribution' in client #896
      • Completed the issue Adapt end to end tests to handle new types of data #899
      • Completed the issue Update client documentation #897
      • Completed the issue Update architecture documentations for new types of data #898
      • Completed the issue Refactoring client #960
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Enhance terraform infrastructure #930
    • Completed the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the issue Check performance impact of new stake distribution command on the 'mainnet' #962
    • Worked on the epic Prepare Mithril Signer deployment model for SPO #862:
      • Worked on the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
    • Worked on bugs and optimizations:
      • Completed the issue Aggregator does not always detect new immutable file #953
      • Completed the issue CI tests fail with Rust '1.70.0' #958
      • Worked on the issue End to end tests are flaky #954
      • Worked on the issue Certificate dates in metadata are not on the same timezone #946
      • Worked on the issue Refactor 'MithrilStakeDistribution' entity #967
      • Completed the issue Fix 'Mithril Client multi-platform test' with new client interface #956
      • Completed the issue Enhance 'ImmutableDigesterError::NotEnoughImmutable' error #969
      • Completed the issue Client 'snapshot download' command fails with option '--download-dir' #979
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-14-consensus + 2023-06-14-consensus + Wed, 14 Jun 2023 00:00:00 GMT + + High level summary

    The Consensus team had a very productive meeting with IOG Researchers. We now seem to be in alignment in regards to a strong argument that the Byron and TPraos eras do not need to be checkpointed for an MVP. +There is one remaining question (which applies also to the Praos era): how to assess the threat that short forks pose against historical windows that underperformed? We are currently collaborating on that. We also drafted an argument that the updated "Limit on Patience" timeout sufficiently bounds how long the adversary can inflate a victim's overall sync time.

    On the UTxO-HD front, the prototype branch was rebased on top of the latest ouroboros-consensus main branch and integrated on top of cardano-node 8.1.1-pre. As a result, the mempool fairness fix that was released recently is now integrated into UTxO-HD. +We managed to run a node again with UTxO-HD enabled. +We also identified a race condition in the UTxO-HD prototype and fixed it. In addition, we started performing UTxO-HD ad-hoc benchmarks for cardano-node, which uncovered a performance regression on the Network component when using GHC-9.2/9.4. This is being addressed.

    Regarding our support activities, we Released fs-sim-0.2.0.0 and are in the process of preparing the 8.2 release of cardano-node. We also identified and started fixing incorrectly-unevaluated thunks in preparation for enabling CI NoThunks tests.

    ]]>
    + consensus +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-06-14-performance-and-tracing + 2023-06-14-performance-and-tracing + Wed, 14 Jun 2023 00:00:00 GMT + + High level summary
    • Benchmarking: We've continued release benchmarking and established a new baseline for 8.0.0.
    • New tracing: Our benchmarking profile for measuring new vs. legacy tracing performance has been refined.
    • Nomad backend: The healthcheck system for the the nomad cloud has been completed. We've performed the first full runs on the new backend.

    Low level overview

    Benchmarking

    In our release benchmarking cycle, we established a new performance baseline for 8.0.0. Additionally, we've measured +performance under various workloads for 8.1.1-pre; the results look promising and validate the optimization efforts +done on several system components.

    In the meantime, we've finalized a build plan with GHC9.2 that matches the current one with GHC8.10; a requirement for +benchmarking as a large amount of differences in the dependency graph can confound the results for the application code proper.

    Tracing

    The legacy and the new tracing system differ fundamentally in design, implementation and handling. So for metrics to be +meaningful in a comparison, benchmarking profiles have to be tuned such that not only log line frequency but frequency of specific +trace messages are closely aligned. We've found that higher granularity in this regard was necessary, and done additional work on our dedicated profiles.

    Additionally, we've had a first glance of what additional traces could be valuable in the context of benchmarking UTxO-HD.

    Nomad backend

    As the new backend's healthcheck system in its first iteration can now serve as a guardrail to ensure sanity of a full-length run, we've performed our first 52-node cluster runs on nomad cloud. We're currently smoothing the edges around cluster deployment, and analysing the metrics gathered from those runs.

    This means the backend is entering validation phase, where we systematically compare all metrics taken from the new +infrastructure to the existing ones, including determining reproducibility and variance.

    ]]>
    + performance-tracing +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-12-network + 2023-06-12-network + Mon, 12 Jun 2023 00:00:00 GMT + + Network Update

    Key contributions and advances

    We merged light peer sharing feature, which allows to include inbound peers +into outbound governor known peers. This is the primary way for new +unregistered nodes to enter the network, which then can be shared using peer +sharing. Note that peer sharing is an experimental feature which is disabled +until genesis & eclipse evasion as fully implemented. See #3596.

    We are making progress reviewing eclipse evasion, #3886.

    We fixed another bug in local root peers. We found out that if the local roots +where ignored until the first domain name was resolved, see #4583. The bug +fix was backported and released in ouroboros-network-0.8.1.1.

    We re-started working on dynamically enabling block forging to address issue +#3159, which will enable us to release P2P on block producing nodes. See #140.

    New cardano-ping / cardano-cli ping release

    We prepared a new release of cardano-ping library which supports the new +query feature (query supported versions). See #4589, #4593 and #5313. +The new version of cardano-cli ping will use ISO8601 formatted +timestamps; also the formatting of ping results is slightly improved, and it +will introduce the new --query-versions (-Q) switch. If the remote site +supports the query parameter, the command will print:

    redacted-ip:port network rtt: 0.064
    redacted-ip:port handshake rtt: 0.064010896s
    redacted-ip:port Queried versions [NodeToNodeVersionV11 764824073 InitiatorAndResponder,NodeToNodeVersionV10 764824073 InitiatorAndResponder,NodeToNodeVersionV9 764824073 Initiat
    orAndResponder,NodeToNodeVersionV8 764824073 InitiatorAndResponder,NodeToNodeVersionV7 764824073 InitiatorAndResponder]

    otherwise it will print the negotiation results

    redacted-ip:port network rtt: 0.045
    redacted-ip:port handshake rtt: 0.101867615s
    redacted-ip:port Negotiated version NodeToNodeVersionV10 764824073 InitiatorAndResponder

    Note that in that case cardano-cli ping offers InitiatorAndResponder, which +allows us to detect whether the remote side is an InitiatorOnly or +InitiatorAndResponder. Also cardano-cli ping will no longer announce +itself as InitiatorAndResponder, except for the case mentioned above.

    Other smaller contributions

    On a request from the Marlow Team, we published haddocks of typed-protocols, +which are now available here (#40, #41).

    We made a new release of strict-stm-1.1.0.1 on Hackage, which fixed a bug in +package description file, #101 .

    We also helped to debug a deadlock when using named pipes on Windows in the new +RawBearer API. The API is being used to store secret keys only in memory. +The PR #4395 is under review.

    We also have two more PRs which are under review:

    • #4530: enabling ledger peers on a fixed number of slots before the tip of the chain;
    • #4580: a PR which fixes inconsistencies in one of our cddl specs.
    ]]>
    + network +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-09-crypto + 2023-06-09-crypto + Fri, 09 Jun 2023 00:00:00 GMT + + High level summary

    The open fronts that the crypto team is working on are:

    • cardano-base: E2E tests for BLS bindings and KES agent
    • Sidechains: Implement ECC chip and Rescue hash primitives for ATMS
    • mithril: Full node verifier

    Low level summary

    cardano-base

    • RawBearer API in ouroboros-network-framework (https://github.com/input-output-hk/ouroboros-network/pull/4395); blocked due to issue with windows' localSnocket. Trying to resolve.
    • Adapting cardano-base for direct memory transfers between mlocked RAM and file descriptors #317.
    • Above, blocked by the simplification of typeclasses #404.
    • Provided e2e test cases to the testing team with aggregated signatures and schnorr signatures for the BLS bindings

    Mithril

    • Implementation of Full Node Verifier #939

    Sidechains

    • ECC chip implemented for JubJub over BLS12-381
    • Rescue chip implemented for hashing.
    • Currently working on Schnorr signature (which uses the above constraints)
    ]]>
    + crypto +
    + + <![CDATA[Developer Experience Update]]> + https://updates.cardano.intersectmbo.org/2023-06-09-developer-experience + 2023-06-09-developer-experience + Fri, 09 Jun 2023 00:00:00 GMT + + High level summary

    The Developer Experience team has been devoted to day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, the maintaince of our cardano-haskell-packages (CHaP), and infrastructure like GitHub Actions, iohk-nix, haskell.nix, and devx. Furthermore, we have also contributed to upstream tooling improvements.

    Lower level summary

    build support & maintainance

    Our DevX team has been instrumental in troubleshooting and fixing a wide range of issues, from broken windows builds and obscure LoadDLL errors to blst integration across Nix and Github CI. We've also initiated automatic uploads for release assets. Our efforts in streamlining complex CI setups have paid off, with some repositories like cardano-base experiencing significant reductions in CI complexity.

    compiler upgrades

    After the support for 9.2 across our libraries, we have started working on 9.6 compabilitiy as well. This move brings us closer to the upstream compiler, facilitating the contribution of patches and enabling early detection of regressions. In addition, we're prioritizing compaining even stronger for better backwards compatibility.

    CHaP (cardano-haskell-packages)

    We relocated the underlying tooling, (foliage), for CHaP into the IOG organization. Furthermore, we have introduced improved tooling to quickly add constraints to packages, better error reporting for add-revision and better hackage url compatibility to facilitate easer usage of CHaP.

    GitHub Actions

    Our repository, input-output-hk/actions, now houses the necessary actions for installing pre-requisites to build Cardano projects using GitHub Actions. Leveraging the base and haskell install actions has allowed us to simplify workflows in the repos, focusing primarily on invoking cabal.

    iohk-nix

    The iohk-nix repository has undergone a major revamp and now provides pre-built packages of the cryptographic libraries IOG utilizes for GitHub Runners. The key components we use, sodium, blst, and secp256k1, are also fixed to certain revisions within the iohk-nix repository.

    haskell.nix

    Haskell.nix has been maintained and updated with the addition of GHC 9.6.2 and GHC 8.2.8. After discovering performance regression in the native bignum backend, we switched the default bignum backend to gmp.

    devx

    The relatively new devx repository is where we experiment with a single nix development shell that aims to suffice for most use-cases at IOG. This initiative is expected to eliminate a number of CI failures related to project-build and shell interaction problems. The devx repository's readme has been updated to reflect its purpose and usage guidelines.

    upstream tooling

    Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

    ]]>
    + devx +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-09-hydra + 2023-06-09-hydra + Fri, 09 Jun 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team worked on multiple fronts. They finished the +investigation about the broken head on mainnet and re-opened their persistent +head instance. The team also fixed the monthly report publication on their +website and started sketching ideas and further improvements. Also, they are on +the last mile to deliver a new feature which will allow parties to commit funds +from extern wallets. Finally the team started to work on optimizing the +performance on their benchmarks.

    What did the team achieve this week

    • Finished investigation on broken head on mainnet #897 and re-opened it.
    • Added support for externally committing regular utxo #887
    • Fix monthly report publication on docs website and published the monthly report. Odd problems when publishing monthly report:
      • Make us think about if we should change something about the website #908
      • Open issue to docusaurus #9036
    • Fixed a bug in the benchmark process #910
    • Explored performance of the hydra-node{.verbatim} and identified a +bottleneck.
    • Timed transaction feature is being used by the auction project 🎉

    What are the goals of next week

    • Complete performance analysis and start/plan improvements and provide +regular benchmarks for Hydra #186
    • Add hydra as tool to developer platform #872.
    • Authenticate network messages #727.
    • Complete journey for external commits using multiple script UTxOs #903
    • Start implementing Option B for external commits #215.
    ]]>
    + hydra +
    + + <![CDATA[DB-sync Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-08-db-sync + 2023-06-08-db-sync + Thu, 08 Jun 2023 00:00:00 GMT + + High level summary

    We've made progress in all high level objectives

    • CIP-1694 integration design
    • UTxO-HD integration proof of concept
    • schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2
    • A new hire will help us with devx issues.

    Lower level summary

    ]]>
    + db-sync +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-08-goedel + 2023-06-08-goedel + Thu, 08 Jun 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on giving and preparing public +talks, also on preparing final versions of their ICE 2023 papers, and +on analysing chain selection.

    This sprint the team has been working on final revisions for the +pre-proceedings versions of two ICE 2023 papers.

    Details

    ]]>
    + goedel +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-08-sre + 2023-06-08-sre + Thu, 08 Jun 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include: expanding the darwin CI cluster and providing new aarch64 builder support; adding bare metal bitte cluster capability with network overlay for high IOPS workload performance, such as explorer.

    Lower level summary

    Bitte

    • Equinix bare metal capability was added to bitte: bitte-pull-194
    • Update bitte nixpkgs, nix version, nomad driver, equinix lifecycle, misc bug fixes: bitte-pull-201

    Bitte-cells

    Cardano-graphql

    Cardano-node

    Cardano-ops

    Cardano-world

    Ci-ops

    • Update legacy darwin builders and buildkite agent for ci-world network overlay and monitoring: ci-ops-pull-108

    Ci-world

    Cicero

    • Implement a cicero webhook backoff with exponential decay plus jitter: cicero-pull-79

    Iohk-nix

    Openziti

    ]]>
    + sre +
    + + <![CDATA[System Test Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-08-system-test + 2023-06-08-system-test + Thu, 08 Jun 2023 00:00:00 GMT + + High level summary

    Since the last update (2023-03-26) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.7 and 8.0.0 releases.

    Workstreams

    Full list of closed PRs

    Framework improvements:

    • Make cardano-submit-api REST API service available and run corresponding regression tests by default
    • Update cabal build testing for 8.0.0
    • Add support for testing governance SPO poll
    • Use Poetry for Python dependency management
    • Check status of known GH issues during tests runtime and finish the test accordingly
    • Generate topology files with both IP addresses and DNS names
    • Log issues like failure to start a cluster instance and report errors during tests runtime

    Testing improvements

    • Add rollback testing:
      1. global consensus is reached after rollback, in situation where less than securityParam blocks were produced since cluster split
      2. global consensus is not reached when more than securityParam blocks were produced, and the result is permanent fork
    • Add tests to governance SPO poll commands

    Node:

    DB-Sync:

    • improvements in db-sync sync tests
    • improvements in db-sync functional tests
    ]]>
    + system-test +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-07-node-cli-api + 2023-06-07-node-cli-api + Wed, 07 Jun 2023 00:00:00 GMT + + 2023-06-07 - 2023-06-20

    High level summary

    • Completed cardano-cli migration to input-output-hk/cardano-cli
    • cardano-cli ping now uses cardano-ping-0.2.0.5
    • New queries on API:
      • queryCurrentEpochState
      • queryDebugLedgerState
      • queryGenesisParameters
      • queryPoolDistribution
      • queryPoolState
      • queryProtocolParameters
      • queryProtocolParametersUpdate
      • queryProtocolState
      • queryStakeAddresses
      • queryStakeDistribution
      • queryStakePoolParameters
      • queryStakeSnapshot
    • Deprecate:
      • queryPparams
    • Export query API as functions
      • genFeatureValueInEra
      • featureInShelleyBasedEra
      • isFeatureValue
      • valueOrDefault
      • asFeatureValue
      • asFeatureValueInShelleyBasedEra
      • queryEpoch
      • requireShelleyBasedEra
    • Restructure cardano-testnet (WIP)

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-02-hydra + 2023-06-02-hydra + Fri, 02 Jun 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team has put their effort on finding solutions on many +different problems, such as our broken head on mainnet +#897, our fragile monthly +report publications on the website and implementing Option A for +external commits #215. +Although most of these items are still open, huge progress has been made. To +accelerate the investigation, they improved their logging to give more precise +errors when a transition requirement fails, and to reduce duplication on effets +logged content. Last but not least, the team is exploring formal methods and +attended a workshop on formalizing cryptographic protocols in Agda.

    What did the team achieve this week

    • Continued investigating broken head and opened an issue to keep track #897.

      As part of this issue, improvements were made to the node logs:

      • Give a precise error when a transition requirement fails #895.

      • Reduce duplication for effects logged content by using sequential eventId and effectId pair #896.

    • Fixed references in the hydra specification #893.

    • Attended a workshop on formal methods and crypto in Agda.

    What are the goals of next week

    • Investigate and re-open our team-internal head on mainnet.
    • Improve and provide regular benchmarks for Hydra #186.
    • Complete journey for external commits implementing Option A and start implementing Option B #215.
    • Authenticate network messages #727.
    • Add hydra as tool to developr platform #872.
    • Fix monthly report publication on docs website.
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-06-01-mithril + 2023-06-01-mithril + Thu, 01 Jun 2023 00:00:00 GMT + + High level overview

    The Mithril team released a new 2321.1 distribution that fully implements the mechanism developed to sign generic data. They completed the upgrade of the Cardano node in the Mithril networks to v.8.0.0 and the implementation of the new computation of the stake distribution. They refactored the state machines of the signer and aggregator, and the signed entity service of the aggregator. Additionally, they worked on adapting the client and implementing a new sub-command for restoring the Cardano immutable file snapshots.

    Finally, the team worked on adding a new certificate list route in the aggregator REST API, and started enhancing the infrastructure of the Mithril networks.

    Low level overview

    • Released the new distribution 2321.1
    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the issue Enhance MessageAdapter for Artifact in aggregator REST API #925
      • Completed the issue Create the sub-command for 'Cardano Immutable Files Full' in client #895
      • Completed the issue Enhance state machines Aggregator/Signer #933
      • Completed the issue Adapt the aggregator REST API to list certificates #892
      • Worked on the issue Adapt end to end tests to handle new types of data #899
      • Worked on the issue Update client documentation #897
      • Worked on the issue Update architecture documentations for new types of data #898
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Enhance terraform infrastructure #930
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the issue Upgrade Cardano node to '8.0.0' #920
    • Completed the issue Add export path in Client CLI #512
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-31-consensus + 2023-05-31-consensus + Wed, 31 May 2023 00:00:00 GMT + + High level summary

    During the Past two weeks we drafted an implementation path for concluding that a node is caught up, which will also be used to back Network's ledger-peer selection (see this issue). We also carried a thorough investigation into the exact feasibility of applying the Genesis rule to certain historical parts of the chain.

    On the UTxO-HD front, we are working on improving the ledger tables design and wrapping up the improved DB locking mechanism. We also released packages that are required not only by UTxO-HD but are already used in cardano.

    UTxO-HD

    • We have a plan for making the ledger tables in UTxO-HD more ergonomic by mimicking SOP classes like HPure and HAp . In short, we implement generalised versions of important classes like Applicative and Traversable.

    Support

    • fs-sim-0.1.0.2 and fs-api-0.1.0.2 were released, which makes them now compatible with GHC up to 9.6.
    • ouroboros-consensus-0.7.0.0 was released for cardano-node 8.1, including query serialization fixes for backwards compatibility.
    ]]>
    + consensus +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-05-31-performance-and-tracing + 2023-05-31-performance-and-tracing + Wed, 31 May 2023 00:00:00 GMT + + High level summary
    • Benchmarking: We've performed and analysed first benchmarks with GHC9.2 builds. Additionally we have developed an early indicator for how build config changes might reflect on metrics from our model cluster.
    • New tracing: Collaboration with Galois led to the new tracing system to be equipped with a re-forwarding mechanism.
    • Nomad backend: Porting the 52 node model cluster to nomad cloud is ongoing, with the focus on deployment and health checks.

    Low level overview

    Benchmarking

    The first set of runs with GHC9.2 as a build platform are in. We've discovered a significant difference in resource profile usage compared to GHC8.10. Further investigation uncovered the need for benchmarking another parameter change in the build +configuration: As it stands, the ghc-bignum package is using the Haskell native-backend as a default. We strive +to benchmark a build with the gmp-backend next.

    A variant of our forge-stress local benchmark has been set up to serve as an early indicator for the resource usage profile +we'd expect to observe on the model cluster. This provides us with a much tighter feedback loop, as local run duration is way +shorter. This indicator is specific to changes in the configuration of build and the runtime systems, and will be of great +support when evaluating different compiler versions or RTS flags incrementally.

    Tracing

    The hub of the new tracing system cardano-tracer is designed with a fixed output behaviour, which is limited to various +logging options. Thanks to the contribution from Galois, that design is now extended to be able to re-forward all, or a pre-filtered portion, of traces from the node in a configurable manner. This will enable downstream applications to +directly receive the set of trace values relevant to their logic, without any additional cost for the node itself at all.

    Nomad backend

    We're currently working out the details of efficiently deploying and monitoring a fleet of 50+ nodes, along with +job definitions for tracing and transaction generation. Scaling up to those many instances, and monitoring an ongoing +benchmarking run required us to fine-tune communications with the nomad server.

    Related to that, the new cloud backend will provide a monitoring and health-checking mechanism which is far more flexible +and offers more detailed insight than the previous iteration in cardano-ops. The backend will enable you to formulate +very specific conditions for an ongoing run to be considered healthy, and offer automation of certain actions should these conditions not be met.

    ]]>
    + performance-tracing +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-26-goedel + 2023-05-26-goedel + Fri, 26 May 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on final revisions for the +pre-proceedings versions of two ICE 2023 papers.

    Details

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-26-hydra + 2023-05-26-hydra + Fri, 26 May 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team accomplished several important tasks. They held their +monthly review meeting and drafted the report for May. They made progress on +implementing the first end-to-end journey for external commits using "Option A" +for normal UTxOs, while still considering "Option B". The team also integrated a +Spanish translation contributed by the community, created micro-benchmarks for +transaction validation and deserialization, and made improvements to +hydra-node's version reporting. Last but not least, they implemented the ability +to commit multiple UTxOs to a head at once.

    What did the team achieve this week

    • Held the monthly review meeting (recording + slides) & drafted the report for May.
    • Have a first end-to-end journey for external commits implementing Option A +for normal UTxOs #887 (still considering Option B).
    • Integrated the spanish translation #866.
    • Created micro-benchmarks for transaction validation and deserialization #884.
    • Improve hydra-node version reporting on non-released builds #849
    • Some minor CI improvements following up last weeks changes.
    • Allow commit transactions with multiple UTxO #774.

    What are the goals of next week

    • Investigate and re-open our team-internal head on mainnet.
    • Improve and provide regular benchmarks for Hydra #186.
    • Complete external commits with script UTxOs #215.
    • Authenticate network messages #727.
    • Add hydra as tool to developr platform #872.
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-26-ledger + 2023-05-26-ledger + Fri, 26 May 2023 00:00:00 GMT + + High level summary

    The ledger team made progress on the conway ledger era. In particular, the design and implementation +of the new certificates is near complete, we refactored some of our data structures +to be able to support DReps, we cleaned up the serialization format, and renamed things to make +clearer the differences with Shelley.

    The team also completed integration work for the next node release, namely 8.1.0. +And, as always, we continue to address technical debt.

    Low level summary

    Conway progress

    • pull-3408 - Improve conway delegation certificates
    • pull-3428 - Get rid of Constitutional in favor of Genesis and Committee
    • pull-3426 - Add DRep to internal data struture (UMap)
    • pull-3425 - Improve witness logic needed for conway
    • pull-3423 - Rename ShelleyDelegCerts constructors to distinguish them from Conway
    • pull-3421 - Rename DCert -> TxCert
    • pull-3454 - conway CDDL minor fixes

    Improve testing

    • pull-3403 - Add Plutus script context golden tests

    Integration work

    • pull-3410 - Update chaps index
    • pull-3416 - Bump cardano-ledger-alonzo-test version
    • pull-3414 - Bump cardano-ledger-shelley-test minor version
    • pull-3420 - Bump cardano-ledger-shelley-ma-test version
    • pull-3441 - Release cardano-ledger-[alonzo|babbage]-1.2.1

    Technical debt

    • pull-3409 - Unit test - no such thing as a reference datum
    • pull-3407 - Fixup release process documentation
    • pull-3404 - Create TotalDeposits events during all eras
    • pull-3402 - Fix broken references in the Shelley spec
    • pull-3424 - Remove no longer used cardano-ledger-shelley-ma package
    • pull-3432 - Add an example on how to bump up versions in the changelog
    • pull-3440 - Revert back to the group serialization for ProtVer for PParams
    ]]>
    + ledger +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-26-network + 2023-05-26-network + Fri, 26 May 2023 00:00:00 GMT + + High level summary

    We continued working on eclipse-evasion. We also analysed and fixed a bug +when using DNS names in local root peers. We continued working on engineering +blog post about P2P. We released a new version of packages for +cardano-node-8.1.0 release.

    We improved our CI, removed obsolete scripts add extra validation which checks +if CHANGELOG.md files were updated.

    We also improved release scripts.

    Detailed summary

    • Eclipse evasion: #4462
    • Local root peers bug fix: #4559
    • Release to CHaP: #4573
    • CI improvements: #4572
    • Release script improvements: #4573
    ]]>
    + network +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-24-node-cli-api + 2023-05-24-node-cli-api + Wed, 24 May 2023 00:00:00 GMT + + 2023-05-24 - 2023-06-06

    High level summary

    • The last sprint focused on removing cardano-cli and cardano-api from the cardano-node repository. We have successfully moved cardano-api to its own repository and will do the same for cardano-cli after the 8.1 node is released.
    • We provided assitance where needed in the release
    • An integration repository https://github.com/input-output-hk/fusion-flamingo was created to enable my team to more easily work on cardano-cli and cardano-api

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-19-hydra + 2023-05-19-hydra + Fri, 19 May 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team has worked on several fronts, including improvements of their CI speed, logs, documentation pages and adding the support for timed transactions. They also updated the "Coding Standards" for the project, improved the troubleshooting page on their website and wrote a section about how to operate a hydra node. Finally the team completed a feature request that allows clients to submit and validate transactions to their hydra nodes using time validity ranges, ensuring isomorphism with L1.

    What did the team achieve this week

    • Complete validation of timed transactions feature #196.
    • Write ops instructions and troubleshooting #569 and improve logs.
    • Remove --ledger-genesis argument to hydra-node options #863.
    • Fix issue with garbage collected caches by using a new cardano-scaling.cachix in more workflows #877.
    • Use nix to build test binaries to increase CI speed #867.
    • Updated our Coding Standards.

    What are the goals of next week

    • Monthly report & review meeting.
    • Have a first end-to-end journey for external commits implementing "Option A" #215.
    • Integrate spanish translation #866.
    • Improve and provide regular benchmarks for Hydra #186.
    • Allow commit transactions with multiple UTxO #774.
    • Explored stateless observation and refined hydra explorer ticket #696.
    ]]>
    + hydra +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-17-consensus + 2023-05-17-consensus + Wed, 17 May 2023 00:00:00 GMT + + High level summary

    During the past two weeks we brought further improvements into the Genesis design in collaboration with the IO Research and Networking teams. These improvements concern the Genesis selection rule, candidate rule, and root peers usage. See the [Genesis][#genesis] section for more details.

    Regarding our UTxO-HD prototype, during the past two weeks we put together a pull-request that improves the DB locking mechanism, started porting the mempool fairness improvements from our main branch, and integrated a new open source library (that implements cancellative monoids) that allowed us to simplify our code and get a small performance gain.

    We improved our tooling by releasing an immutable DB server, which can be used for testing and benchmarking purposes, and a db-truncater program, which can be used in disaster recovery and benchmarking scenarios.

    Genesis

    The consensus team working on Genesis:

    • Improved the genesis selection rule as a result of our interaction with IO Research.
    • Studied how the hard-fork combinator handles forecasting at era transitions, and improved our documentation.
    • Determined that the simplest candidate rule we had considered will work for the Genesis window at era transitions, at least for the MVP.
    • Elaborated concrete proposal for the Genesis State Machine.
    • Met with the Networking Team and advised/co-designed how to implement the stop gap usage of public trusted root peers before Genesis is released (it's similar to the Genesis State Machine).

    The team is currently re-analyzing the Limit on Patience, which can be less aggressive now that we've re-introduced the Genesis State Machine.

    ]]>
    + consensus +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-17-mithril + 2023-05-17-mithril + Wed, 17 May 2023 00:00:00 GMT + + High level overview

    The Mithril team released a new 2318.0 distribution that implements the last migration phase of the aggregator stores and embeds a bug fix for the signer registration. They also completed the implementation of the interfaces defined to provide certification for the immutable full snapshot of Cardano files and Mithril stake distribution. They finalized the implementation of the framework to sign generic types of data in the aggregator and the signer nodes. They also updated the runtime of the aggregator to handle open messages associated with the available types, and evolved the REST API of the aggregator to deliver the artifacts for these types. Additionally, they have upgraded the network explorer in order to display the artifacts and certificates for these different types.

    Finally, the team started designing an on-chain decentralized signer registration process, and started implementing the new stake distribution computation available from Cardano node 8.0.0 (along with the backward compatibility for previous 1.35.x versions).

    Low level overview

    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the handling of multiple types of signed entity in the aggregator runtime #907
      • Completed the adaptation of the signer runtime to use the signable builder service #854
      • Completed the adaptation of the aggregator runtime to use the artifact builder service #869
      • Completed the appending of the next AVK to all protocol messages #888
      • Completed the adaptation of the aggregator REST API to retrieve the list/details of the artifacts produced #893
      • Completed the adaptation of the explorer to handle new artifact routes of the aggregator #927
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the implementation of the new stake distribution computation in the chain observer #919
      • Worked on upgrading the Cardano node to 8.0.0 #920
    ]]>
    + mithril +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-05-17-performance-and-tracing + 2023-05-17-performance-and-tracing + Wed, 17 May 2023 00:00:00 GMT + + High level summary
    • Benchmarking: We're preparing our model cluster to perform GHC9.2 benchmarks, as well as experimenting with increased dataset sizes.
    • New tracing: After optimization work on the new tracing system, another cycle of validation and documentation is due.
    • Analysis pipeline: First steps on implementing incremental analysis have been untertaken.
    • Open Sourcing: Exhaustive dataflow charts for both our analysis tool locli and our workbanch have been merged to master
    • Nomad backend: The first set of CI-centric workbench profiles have been adjusted and run on the nomad backend; currently we're porting the definition of our model cluster.
    • P&T Meetup: We had a very productive personal meetup in Lugano, Switzerland.
    • Offboarding: Sadly, we have to say goodbye to our team lead. Currently, we're busy with the handover.

    Low level overview

    Benchmarking

    As a compiler switch to GHC 9.2.7 for cardano-node's default build environment is around the corner, we're setting up our benchmarking cluster to +handle the new version. Special attention is given to the fact that we might need more flexibility in switching compiler versions in the future. This +also involves choosing a reliable baseline as reference point for inter-version comparisons.

    Additionally we've been working on refining our model cluster: by increasing UTxO and delegation map sizes to closer match those of current mainnet, +we strive to have a more accurate model - and thus be able to make more detailed predictions regarding performance. However, this still needs to +be balanced against resource demand for all our cluster's nodes.

    Tracing

    For our new tracing system, we're currently validating the behaviour of the system after optimizations have been applied. Furthermore, some +quality-of-life details that have changed required us to revision the system documentation.

    Analysis

    As a mid-term goal, we aim to provide incremental analysis of our benchmarking metrics. While currently, we can only reliably process runs that have been +normally (or abnormally) terminated, we see the possibility of incrementally analysing ongoing runs, or any data source yielding our key metrics, as a +huge opportunity to increase our operational flexibility. All in all, this approach entails building completely new features for our pipeline. A first effort to accomodate incrementally incoming data points has been undertaken.

    Open Sourcing

    A very involved and exhaustive documentation and visualization effort has been undertaken to make the data flow through our key benchmarking +copmonents more accessible. As a result, detailed charts for both our LogObject CLI locli and our workbench have been merged to master.

    Nomad backend

    While our Nomad backend is reaching completion, and hardware setup is being implemented in collaboration with SRE, we've been adjusting +those profiles of our workbench that target CI-oriented workloads to the new backend. Those profiles should demonstrate the full functionality +of the nomad cloud backend.

    Additionally, we're porting a first deployable version of our model cluster to nomad cloud, which will form the basis for validation of our actual key metrics with regard to those from the existing cluster.

    Performance & Tracing Meetup

    We held a personal team meetup in Lugano, Switzerland. In an amazing location, and with a great seminar room to focus, we had 2 very productive +days together. Being able to discuss live and in colour, we could effectively synchronize on where the team is at, and how we want to develop in the future. +Also, it was a great opportunity to finally meet in person.

    Offboarding

    Last not least we regret that our team lead is leaving at the end of May. Currently, he's handing over all his obligations, which requires reorganisation +of team structure, and responsabilities of team members for specific tasks. Serge, we all want to thank you for your excellent and reliable lead; we very much enjoyed the time with you, and wish you all the best for your future endeavours!

    ]]>
    + performance-tracing +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-12-crypto + 2023-05-12-crypto + Fri, 12 May 2023 00:00:00 GMT + + High level summary

    The open fronts that the crypto team is working on are:

    • cardano-base: Include final tests for BLS signature. Further adaptations for KES agent.
    • Sidechains: Implement BLS and JubJub using upstream's macros to merge these curves in halo2curves.

    Low level summary

    cardano-base

    Sidechains

    • Opened PR in halo2curves to include BLS12-381 and JubJub, #38
    • Addition constraint over JubJub merged #10
    ]]>
    + crypto +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-12-goedel + 2023-05-12-goedel + Fri, 12 May 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team had two paper accepted for ICE 2023 +(https://www.discotec.org/2023/ice). The event will be held in Lisbon +on 19th June 2023. The papers will be published in EPTCS.

    Details

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-12-hydra + 2023-05-12-hydra + Fri, 12 May 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team achieved a number of milestones, including the release +of the first mainnet compatible version. Besides this they also addressed +inconsistencies in rollback handling, added an architecture page to the website, +reducing the size of logs using event IDs. They also had productive discussions +with researchers on plans for incremental commits/decommits and had a whiteboard +session on DeFi and lending protocols. The goals for next week include +completing the validation of the timed transactions feature, exploring stateless +observation, refining the Hydra explorer ticket, writing ops instructions and +troubleshooting, and implementing the first end-to-end journey for external +commits.

    What did the team achieve this week

    • Released first mainnnet compatible version 0.10.0
    • Addressed inconsist handling of rollbacks #784
    • Added architecture page and fixed haddock links on our website #838
    • Opened a new hydra head on mainnet
    • Talked with researchers on initial plan for incremental commits/decommits
    • Had a Whiteboard session on DeFi and lending protocols
    • Reduced size of logs using event ids #859
    • Published the monthly report for April

    What are the goals of next week

    • Complete validation of timed transactions feature #196
    • Explored stateless observation and refined hydra explorer ticket #696
    • Write ops instructions and troubleshooting #569 and improve logs
    • Have a first end-to-end journey for external commits implemented #215
    ]]>
    + hydra +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-12-network + 2023-05-12-network + Fri, 12 May 2023 00:00:00 GMT + + High level summary

    We started working on a new way to switch between root & ledger peers (see +below). We continued to work on eclipse-evasion. We merged changes to +Handshake contributed by Galois Inc. We made improvements to our tests (fixed +a flaky test, added cddl specs for NodeToNodeVersionData and +NodeToClientVersionData). We improved our CI and automated the process of +releasing new package version to CHaP.

    Detailed summary

    We continued to work on testing eclipse-evasion.

    We came up with an idea to limit how full node wallets relay on root peers +(currently operated by IOG, in future also CF and Emurgo). We designed +a switch to use ledger peers if the node tip is close enough to the current +time. For more details see #4530.

    We merged changes to the handshake mini-protocol which allow one to query +server's node-to-node / node-to-client parameters. We are grateful to +Galois Inc. for implementing it, #4256 and #4538. We published new version +of packages to CHaP chap-#253.

    We added DiffusionError wrapper. Thanks to it, ouroboros-consensus will +not duplicate diffusion errors messages in the log, #4537.

    We fixed an issue which caused one of our tests to be flaky, #4515.

    We added cddl tests for NodeToNodeVersionData and NodeToClientVersionData: +#4540, #4544 (in review).

    We wrote scripts which will help us release packages as well as verify that we +released all the package necessary to build the newest set of packages, +#4542.

    We renamed the consensus startup tracer and make sure it doesn't log +ExitSuccess exceptions, consensus-#71.

    We reviewed PR which adds RawBearer API, #4395.

    We made series of improvements to our CI:

    • #4539: we don't need to install cryptographic libraries in CI;
    • #4545: Javier Sagredo (consensus) cleaned up CI after consensus moved +to a new repo;
    • #4546: we switched to use GitHub merge queues;
    • #4549: we made it possible to trigger building haddocks manually;
    • #4553: we fixed and enhanced caching of building dependencies.
    ]]>
    + network +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-05-ledger + 2023-05-05-ledger + Fri, 05 May 2023 00:00:00 GMT + + High level summary

    The ledger team focused mainly on the conway ledger era and node integration. +For conway, we completed a large structural change that now allows +for delegation certificates to be parameterized by era, and introducing +new certificates for the first time since Shelley. +We also continue to build out our contraint based generators that we will +use to property test the conway era. +In particular, we can now generate an entire ledger state and a +transaction which is balanced with respect to the ledger state.

    Low level summary

    Conway certificates

    Certificiates are now abstracted as a type family in the ledger codebase. +Moreover, there are new certificates in the Conway era to support CIP-1694, +and MIR certificates have been removed.

    Constraint based testing

    Our plan for property testing in the conway era is to no longer use the trace generators, +but instead generate ledger states and transactions based on constraints. +We hit a milestone this week, namely the ability to generate a balanced transaction in the context +of a ledger state, all based on our ever growing constaint language.

    Integration work

    Technical debt

    ]]>
    + ledger +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-05-node-cli-api + 2023-05-05-node-cli-api + Fri, 05 May 2023 00:00:00 GMT + + 2023-05-05 - 2023-05-23

    High level summary

    • Golden tests for cardano-cli command help output were added.
    • Documentation was updated with new libsodium installation instructions.
    • There were several updates for the cardano-cli:
      • Deletion of the deprecated shelley command group.
      • Addition of golden tests for CLI help.
      • An improvement to avoid bare IO in tests, allowing better error reporting in failed tests.
      • Generation of UTCTime test values without leap seconds (avoids erroneous test failures)
      • Support for signing transactions with GenesisDelegateSigningKey_ed25519_bip32.
    • The cardano-api underwent multiple refinements:
      • Implementing deposit handling when balancing transactions (necessary for Conway)
      • Cleaning up socket file path code.
    • Several changes were made to the cardano-testnet:
      • Adding golden tests for cardano-testnet help.
      • Removing all hardcoded yaml files in cardano-testnet
      • Improving cardano-testnet help output.
      • Parameterizing default yaml configuration value, allowing for easier hardforking to the era of choice.

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + cli-api +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-04-mithril + 2023-05-04-mithril + Thu, 04 May 2023 00:00:00 GMT + + High level overview

    The Mithril team completed the implementation of the new certifier service of the aggregator, which is in charge of producing certificates for multi-signatures. They also finished implementing the interfaces defined to provide certification for the full immutable Cardano files snapshot and the Mithril stake distribution. Additionally, they have completed the refactoring of the multi-signer in the aggregator. The team also fixed the bug in the signer registration that was responsible for gaps during the signature phase for some signers, and they upgraded the Cardano node used in the Mithril testnets and devnet to version 1.35.7.

    Finally, they have worked on designing a decentralized registration for the signers that takes place on the Cardano chain.

    Low level overview

    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the implementation of the Certifier service in the aggregator #850
      • Completed the implementation of the signable builder for the Mithril Stake Distribution #851
      • Completed the implementation of the artifact builder for the Mithril Stake Distribution #870
      • Completed the implementation of the signable builder for the Full Immutables Snapshot #852
      • Completed the implementation of the artifact builder for the Full Immutables Snapshot #871
      • Completed the adaptation of the aggregator runtime to use the signable builder service #853
      • Worked on the adaptation of the signer runtime to use the signable builder service #854
      • Completed the definition of the entity service interface for verification/restoration #868
      • Completed the refactoring of the OpenMessage type #878
    • Completed the epic that simplifies the multi-signer in the aggregator #398:
      • Completed the extraction of the single signature registration from the multi-signer #643
    • Completed the upgrade of the Cardano node to version 1.35.7 #881
    • Fixed the bug that created a discrepancy of the signer verification keys between signers and aggregators #873
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-03-consensus + 2023-05-03-consensus + Wed, 03 May 2023 00:00:00 GMT + + High level summary

    During the past two weeks we made some important progress in the Genesis design. +It seems the BlockFetch logic need not be modified for Genesis, although this +needs to be confirmed. We started a DoS mitigation handbook and updated our +conceptual component diagram to guide the Genesis design. We engaged with the +IOG researchers to work on the Limit on Patience attack vector, work in this +area is still ongoing. We sketched a design to decouple the CPU load of the node +from its responsiveness to the socket. Finally, we discussed with Networking our +approach to lower the performance impact of the BlockFetch decision logic, and +got green light from them.

    We migrated the consensus code to a new +repository, splitting +it from the ouroboros-network repository, and released version 0.6 of +Consensus.

    We also merged the mempool fairness improvement to main branch.

    Another significant enhancement to our documentation was the addition of an +explanation of the hardfork combinator forecast horizon.

    See the sections below for more details.

    Genesis

    We reviewed the BlockFetch design documentation, and added some source-code +comments that emphasize certain properties of the decisions the BlockFetch +logic makes that are helping us confirm that Genesis does not require any +changes to BlockFetch. We are waiting on input from our former system +architect to verify this.

    We migrated and updated the conceptual component diagram in the ouroboros-consensus +repository which helps us situate the Genesis design and argument.

    We engaged with the IOG researchers about the Genesis design. We sketched out a +way to address the concern that the Limit on Patiente (LoP) attack vector duty +cycle is indeed low, but it's still non-trivial to ultimately conclude it's +sufficiently low.

    We also sketched a design to decouple the CPU load of the node from its +responsiveness to the socket, since the LoP is a relatively tight timeout, and +node performance bugs inducing seconds-worth of latency are unfortunately +familiar phenomena.

    Fostering collaboration

    We added an +explanation of +a question that we had to explain many times about the exact behavior of the +hardfork combinator forecast horizon.

    ]]>
    + consensus +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-05-03-performance-and-tracing + 2023-05-03-performance-and-tracing + Wed, 03 May 2023 00:00:00 GMT + +
  • Benchmarking: The benchmarks and performance investigations for the new 8.0 release branch are ongoing.
  • New tracing: Performance optimization of the new tracing system is paying off and we could notably shrink its resource footprint.
  • Analysis pipeline: An exhaustive documentation and dataflow diagram for our analyses is being worked on.
  • Infrastructure: The plutus-apps flake input for cardano-node has finally been removed.
  • Nomad backend: A PR implementing placement of benchmarking clusters has been merged.
  • Benchmarking

    The performance investigations on the 8.0 release branch have lead to pinpointing and addressing incosistent behaviour. For that, +we created yet another local reproduction with the workbench's forge-stress benchmark.

    Currently we're working on scaling up the dataset size (UTxO and delegations) on the AWS cluster to gain further insight into 8.0 and +subsequent releases.

    Additionally, we've refined the trace-bench family of profiles that target benchmarking our own new tracing system.

    Tracing

    Optimization of the tracing system has identified several locations where inefficient serializations were used; those were not originally +intended to run on a performance-critical codepath. We've worked on improving those, as well as eliminating cases of redundant +conversion between different serialization formats. This has brought down both memory and CPU impact of the tracing system.

    Infrastructure & Analysis

    Dataflow documentation

    The LogObject CLI locli is at the heart of our analysis and reporting pipeline. To increase its accessibility and facilitate +further development, we're creating a detailed and illustrated documentation of all dataflows that happen during analysis and reporting.

    Remove redundant Plutus flake input

    This step is the conclusion of porting Plutus benchmarking scripts to our own library. By finally removing the now unnecessary flake input, +we simplify the dependency graph for cardano-node, as well as enable immediate feedback when developing Plutus benchmarks.

    Nomad backend

    Sophisticated placement of nodes across various regions of the globe is a cornerstone of the model cluster we use for benchmarking. +This capability has now been added to the Nomad backend and can be controlled with Nomad job descriptions. A PR with this, along +with various quality-of-life improvements, has been merged to master.

    ]]>
    + performance-tracing +
    + + <![CDATA[DB-sync Team Update]]> + https://updates.cardano.intersectmbo.org/2023-05-01-db-sync + 2023-05-01-db-sync + Mon, 01 May 2023 00:00:00 GMT + + High level summary

    Lower level summary

    • Prepared a schema change which is expected to speed up queries and help clients +#1389.
    • Ran a big number of benchmarks on the above to evaluate if this change is reasonable.
    • Performance optimization related to rewards +#1382
    • Using the cache in more places to reduce recourses usage +#1380
    • Evaluated risks related to UTXO-HD integration
    • Worked on a feauture request to split the tx_out to an address table +#1396
    • Worked on another feauture request to prune the consumed entries from the tx_out table +#1398
    • Prepared for CIP-1694 integration
    ]]>
    + db-sync +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-28-crypto + 2023-04-28-crypto + Fri, 28 Apr 2023 00:00:00 GMT + + High level summary

    The open fronts that the crypto team is working on are:

    • cardano-base: New KES structure finally merged. Included additional tests to BLS, and including test vectors created with zkcrypto's library.
    • KES agent: Reaching state of MVP. Rewriting KES agent networking code to use the Snockets abstraction.
    • Sidechains: Started implementing ECC chip of JubJub over BLS12-381.

    Low level summary

    cardano-base

    • #255 finally merged 🎉
    • Additional tests for BLS bindings #384
    • Open PR for including test vectors created with zkscrypto's library, PR#397

    KES agent

    • Introducing the SignKeyWithPeriodKES wrapper type, which bundles a KES key with its corresponding KES period PR#389.
    • Introducing the DirectSerialise API into cardano-base, which allows us to write mlocked memory directly to a file descriptor, without going through intermediate encodings stored on the GHC heap (which is a no-no due to secure forgetting requirements) #317.
    • Figuring out how to generalize the KES, DSIGN, and mlocking code in cardano-base such that it can run in IOSim
    • Rewriting KES agent networking code to use the Snockets abstraction, which gives us a platform-independent sockets layer (i.e., it will also work on Windows), and also allows us to run networked code in IOSim for testing purposes
    • Refactor MonadSodium into MonadMLock PR#388.

    Sidechains

    • Started working on ECC chip for JubJub over BLS (problems still with the multiplication constraint)
    • Use macros used by PSE library to try and merge our fork of halo2curves into PSE's repo
    ]]>
    + crypto +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-28-goedel + 2023-04-28-goedel + Fri, 28 Apr 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is working on porting an existing formalisation of Ouroboros +Praos to a newer foundation.

    Details

    ]]>
    + goedel +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-28-network + 2023-04-28-network + Fri, 28 Apr 2023 00:00:00 GMT + + High level summary

    The networking team has released the following packages to Hackage:

    We published an announcement blog post. We made progress +also on another blog post which will describes the design of the P2P networking +layer.

    After moving ouroboros-consensus to its own repository, we made +ouroboros-network compatible with GHC 9.4 and 9.6.

    We made cardano-client library independent of +ouroboros-consensus-diffusion.

    We prepared release of network packages for cardano-node-8.0.

    Detailed log

    Ouroboros-Network

    IO-Sim

    • io-classes-1.0.0.0, and following up releases: 1.0.0.1 (ghc-9.6 +support), 1.1.0.0 (documentation fix).
    • Fixed timeouts and delays in io-sim in a series of PRs: io-sim#81, +io-sim#82, io-sim#86, io-sim#87.
    • Renamed a module: io-sim#88.
    • Fixed a failing registerDelayCancellable test: [io-sim#80].
    • Use GitHub merge queue in io-sim repository.
    • CI: download stylish-haskell: io-sim#83.

    Typed Protocols

    ]]>
    + network +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-27-hydra + 2023-04-27-hydra + Thu, 27 Apr 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team held their Monthly review meeting and drafted the +report which likely is published next week. They put the spec into the +repository and website, addressed a user issue and fixed the TUI peer list. +Furthermore, they updated dependencies, conducted a Twitter space on Auctions +use cases, covered the rollback bug with tests and implemented a solution. +Looking ahead, their goals for next week include releasing 0.10.0, implementing +timed transactions support, writing a Query API ADR, and grooming work items +like off-chain benchmarks.

    What did the team achieve this week

    • Held the Monthly review meeting and drafted the report (to be published next week)
    • Added the spec into the repository +#693 and published on +the +website
    • Groom and addressed user issue #823
    • Covered the rollback bug with tests and implemented a solution (to be reviewed) #784
    • Fixed the TUI peer list
    • Updated dependencies to match cardano-node master
    • Conducted a twitter space on Auctions use cases

    What are the goals of next week

    • Release 0.10.0
    • Support timed transactions solution drafted and validated API with users
    • Write Query API ADR and groom a concrete step
    • Groom and solve PostTxOnChainFailed UX problem #832
    • Groom off-chain benchmarks idea #186 and turn it into a feature
    ]]>
    + hydra +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-21-hydra + 2023-04-21-hydra + Fri, 21 Apr 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team worked on several fronts, including fixing state +machine continuity on-chain, discussing voting project solutions, exploring +adding Hydra support to kupo, and improving API navigation with a sidebar. The +team also updated dependencies and fixed issues in their test suites. Moving +forward, the team plans to hold the next monthly review meeting, address a user +issue, prepare for the 0.10.0 release, and work on a dirt road fix for the +rollbacks issue with proper test coverage.

    What did the team achieve this week

    • Fixed scripts to enforce state machine continuity on-chain #777.
    • Took part in a twitter space on Scaling Cardano.
    • Joined a CBIA meeting to discuss Cardano network protocols & how to specify them.
    • Discussed potential solutions of ensuring vote uniqueness in the voting project.
    • Updated dependencies to match cardano-node master to prepare for upcoming releases and hard-forks
    • Explored adding Hydra support to kupo, a lightweight Cardano chain indexer - some more work required.
    • Improved navigation of the API Reference with a sidebar, see unstable API version.
    • Fixed two things in our test suites (random port conflicts and an arithmetic underflow in smoke test)

    What are the goals of next week

    • Monthly review meeting (join via Discord or AddEvent) & report
    • Dirt road fix for rollbacks #784 properly covered by a test.
    • Groom and ideally address user issue #823.
    • Put the spec into the repo #693 and prepare release 0.10.0.
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-21-ledger + 2023-04-21-ledger + Fri, 21 Apr 2023 00:00:00 GMT + + High level summary

    We continued to make progress on CIP-1694 and the conway ledger era. +In particular, the conway era now supports Plutus V3. +Finally, we made small improvements to the ledger API and now host +our Haskell code documentation (haddocks) on github pages.

    Low level summary

    Conway ledger era

    Haddocks hosted on github pages

    Small improvements to the API

    Technical Debt

    • [pull-3367] Fix cost model json instances.
    • [pull-3371] UMap cleanup.
    • [pull-3373] Upgrade to ghc 9.2.7 and cabal 3.10.1.
    • [pull-3375] Sadly, we had to revert the TICKF optimizations. There was a regression we do not yet understand.
    • [pull-3377] Fix cabal warnings.
    • [pull-3383] Fix multi-asset test.
    ]]>
    + ledger +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-20-mithril + 2023-04-20-mithril + Thu, 20 Apr 2023 00:00:00 GMT + + High level overview

    The Mithril team released a new 2315.0 distribution that implements the first part of the migration of the aggregator stores along with minor improvements and bug fixes. They finished the migration of the aggregator stores to a relational design by completing the adaptation and migration of the signed entity, signer and single signature stores. They also created a new tick service that provides beacons to other services of the aggregator. Additionally, they started implementing the new new certifier service of the aggregator that is in charge of producing certificates for multi-signatures.

    Finally, they completed the design and definition of the interfaces that must be implemented to provide certification for a new type of data in a Mithril network.

    Low level overview

    • Released the new distribution 2315.0
    • Completed the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the signed_entity table #816
      • Completed the creation of the signer table #814
      • Completed the migration/adaptation of the single_signature table #829
    • Worked on the epic that designs and implement generic signing/verification of entity services #780:
      • Completed the definition of the interface of the generic entity service for signing #847
      • Worked on the implementation of the Certifier service in the aggregator #850
      • Completed the extension of the SignedEntityType type #848
      • Completed the implementation of the Tick service in the aggregator #849
      • Worked on implementing the signable builder for the Mithril Stake Distribution #851
    ]]>
    + mithril +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-20-node-cli-api + 2023-04-20-node-cli-api + Thu, 20 Apr 2023 00:00:00 GMT + + 2023-04-20 - 2023-05-04

    High level summary

    • Various fixes and improvements

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + cli-api +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-19-consensus + 2023-04-19-consensus + Wed, 19 Apr 2023 00:00:00 GMT + + High level summary

    This week the consensus team continued working on the improved DB lock mechanism +for UTxO-HD, and modifications to the mempool benchmarks that this prototype +requires.

    On the Genesis front we validated that the fragment size calculation in +BlockFetch is a major performance sink for ChainSync Jumping. By removing it +we will get performance that is acceptably close to that of the baseline. We +also started investigating a performance fix that does not alter the existing +baseline behavior too much. In addition we reviewed our Genesis attack vector +calculations.

    On the support front we released Consensus 0.4, and we are working on improving +our release process, to support the Cardano-wide efforts in this area. We also +performed an analysis on the number of file descriptors that consensus use. This +information can be used by the node operators to check if the number of file +descriptors they want to support are enough.

    ]]>
    + consensus +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-04-19-performance-and-tracing + 2023-04-19-performance-and-tracing + Wed, 19 Apr 2023 00:00:00 GMT + +
  • Benchmarking: We performed a series of benchmarks aimed at the new 8.0 release branch and built a timeline from the 1.35 releases to that branch.
  • New tracing: Work on safeguarding the new tracing system performance-wise is ongoing. A practical use case for data points is being tackled with Galois.
  • Analysis pipeline: We're working on automatically obtaining a detailed manifest for each run.
  • Infrastructure: The library for benchmarking Plutus scripts has been merged. Also, we've laid the ground for including GHC profiling data into our workbench.
  • Nomad backend: The first iteration of a distributed / multi-client Nomad cluster has been merged.
  • Benchmarking

    We have performed various cluster runs targeting the 8.0 release branch. That way we were able to catch an inconsistency in behaviour early on. This led to the creation of a specialized workbench profile epoch-transition for local reproduction of what we observed on the benchmarking cluster.

    Furthermore, we bridged the gap between the run data from the 1.35.x releases to the the new 8.0.x release branch. This included walking the +master branch backwards and pinpointing the order, as well as the dates and commits of all relevant component bumps. This timeline is absolutely crucial +in locating possible regressions for the new release branch, as it provides the exact points in history we would need to target with a comprehensive set of +benchmarks.

    Tracing

    In-depth performance analysis of the new tracing system has already yielded results and helped us smoothing some rough edges. However, this work is still +ongoing.

    In coordination with Galois, who are developing a system assurance service by observing a number of cardano-nodes, we're working with the implementation +of data points which the node provides during runtime. While making the view on data points expressive enough for the external service, the computational +burden inside the node needs to be kept to an absolute minimum. We're currently in ideation about whether cardano-tracer could be extended with a richer +feature set to that end.

    Infrastructure & Analysis

    Detailed manifest

    A run manifest documents, among other things, the component dependencies that were used for a specific build the run has been performed with. +These dependencies come from different package sources, have different versioning policies, and an identical package version might provide different +performance characteristics depending on the exact commit used for the build. This manifest will greatly increase insight into where changes in measured behaviour might have originated +by making all component bumps visible and accessible.

    GHC profiling inside workbench

    The workbench has been equipped with a new -profnix profile flavour. This enforces a -fprof-auto build for all node-related packages. The type of +profiling data generated by the GHC runtime can be customized and will enter statistical analysis. The relevant PR for this new feature has already +been merged to master.

    Nomad backend

    The added feature for a multi-client Nomad cluster greatly enhances how jobs are organized by the backend and mapped within specific instances. +This results in great maintainability while not giving up on flexibility. However, work on that feature is still ongoing.

    ]]>
    + performance-tracing +
    + + <![CDATA[Cardano Block Production Temporary Outage]]> + https://updates.cardano.intersectmbo.org/2023-04-17-ledger + 2023-04-17-ledger + Mon, 17 Apr 2023 00:00:00 GMT + + Cardano block production temporary outage

    On Sunday, January 22, 2023, an incident occurred resulting in block production pausing for a brief period of time (approximately two minutes, similar to the usual pause at an epoch boundary). Around 50% of block-producing nodes and relays restarted during this period. Having restarted, nodes continued to produce blocks without failure. While the network continued to operate, the issue did have the potential to affect network integrity, so was flagged as a ‘critical’ incident, thus warranting immediate response and investigation by IOG engineers. +The investigation (with SPO & Cardano Foundation collaboration) quickly revealed the cause of the issue – a complex bug in data structure handling code related to the precise order of insertion/deletion of multi-asset tokens into the internal ledger record. Input Output Global (IOG) engineers, along with SPOs and DApp developers, collectively identified how to reproduce the issue as a unit test that could be included in the standard Cardano node test suite. +Following successful testing, this led to a bug fix being implemented, tested, benchmarked, and deployed as a hotfix in the node v.1.35.5 release on Friday, January 27, 2023. Care was taken not to highlight the exact cause of the bug during this process so that it could not be exploited prior to SPOs deploying this new node version. +With the fix deployed, the Cardano SPO and developer community have not seen any further instances of this issue.

    Further Details

    You can read more details on the incident and how it was managed from SundaeSwap’s Pi Lanningham here. Thanks again to all the community for its support in identifying and fixing this bug.

    ]]>
    + ledger + incident +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-14-goedel + 2023-04-14-goedel + Fri, 14 Apr 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has submitted two papers for publication, carried +out consultancy with other teams and has an opening for an intern.

    Details

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-14-hydra + 2023-04-14-hydra + Fri, 14 Apr 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team focused on improving the smoke test, fixing developer +tooling, and improving the API for voting use cases. They reviewed progress on +auction, payments, and voting projects and made worked on reproducing a bug with +handling rollbacks. Moving forward, the team plans to update dependencies, +implement a dirt road fix for the rollbacks bug, and explore adding Hydra +support to kupo.

    What did the team achieve this week

    • Reviewed progress on auction, payments and voting projects
    • Improved smoke tests so they can run on mainnet
    • Fixed a regression in the development environment and updated cardano-node +used in tests
    • Improved API with more configurability to unblock voting use case
      • Exclude utxo in SnapshotConfirmed outputs #808
      • Addressed a user request by only sending Greetings once #813
    • Reproduced the rollback bug by improving our model-based test suite #784

    What are the goals of next week

    • Update dependencies to match cardano-node master
    • Dirt road fix for rollbacks #784
    • Update Hydraw to maintain state locally
    • Explore adding Hydra support to kupo
    • Put disclaimer texts and closing mainnet compatibility feature #713
    ]]>
    + hydra +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-07-hydra + 2023-04-07-hydra + Fri, 07 Apr 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team published the monthly report for March, created +separate links for different versions of documentation, and clarified potential +solutions for the Rollbacks bug. The team also discussed Query API requests for +the Hydra Voting project and met with community members to answer questions +about Hydra. Moving forward, the team plans to integrate the specification into +the repository, implement a short-term fix for the Rollbacks issue, and draft a +Query API ADR.

    What did the team achieve this week

    • Published monthly reports on website
    • Separate last released and latest versions of docs (e.g. normal released vs. /unstable)
    • Discussed Query API concerns from Hydra Voting project (link)
    • Clarified rollbacks bug and defined possible solutions (short and long term) #784
    • Met with community members to answer questions about Hydra

    What are the goals of next week

    • Finally get the docs integrated into the repository #693
    • Dirt road fix for rollbacks #784
    • Disclaimer text and detail known issues about mainnet compatibility +#713
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-06-mithril + 2023-04-06-mithril + Thu, 06 Apr 2023 00:00:00 GMT + + High level overview

    The Mithril team released a new 2313.0 distribution that implements minor improvements and bug fixes. They continued implementing the migration of the aggregator stores to a relational design. They finished adaptating and migrating the certificate, epoch settings, signed entity type, signer registration and open message stores. Additionally, they completed the refactoring of the dependency injector of the aggregator and simplified its multi-signer in order for it to sign multiple concurrent messages.

    Finally, the team has worked on designing the new architecture of the network to support signing multiple types of data and upgraded the version of the Cardano node used in the Mithril testnets and devnet to 1.35.6.

    Low level overview

    • Released the new distribution 2313.0
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the epoch_settings table #813
      • Completed the migration/adaptation of the signed-entity-type table #815
      • Completed the migration/adaptation of the certificate table #817
      • Completed the migration/adaptation of the open_message table #827
      • Completed the migration/adaptation of the signer_registration table #828
    • Completed the refactoring of the dependency injection of the aggregator #823
    • Completed the cleanup of the multi-signer of the aggregator #824
    • Completed the upgrade of the Cardano node to 1.35.6 #843
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-05-consensus + 2023-04-05-consensus + Wed, 05 Apr 2023 00:00:00 GMT + + High level summary

    This week the consensus team finished the UTxO-HD prototype refactoring. We are +now working on improving the DB lock mechanism to improve performance. We also +introduced several improvements to the file system abstraction and simulation +layer (fs-sim), which culminated in the release of fs-sim-0.1.0.0 and +fs-api-0.1.0.0 to CHaP.

    On the Genesis front we distributed the updated Genesis design document, +soliciting feedback from Networking Team and IOG Researchers. We also opened up +a PR for the adversarial leader schedule QuickCheck generator, which is being +reviewed.

    On the support front, we got a new Consensus version that can use different +fundamental VRF crypto primitives for Babbage and Conway eras.

    On the tech debt front we fixed an bug in the followers logic, which was +discovered by our QuickCheck property tests.

    ]]>
    + consensus +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-04-05-node-cli-api + 2023-04-05-node-cli-api + Wed, 05 Apr 2023 00:00:00 GMT + + 2023-04-05 - 2023-04-19

    High level summary

    • Introduce new governance commands create, answer and verify. This allows us to have onchain polls.
    • Begin making changes in cardano-api to accomodate for CIP-1694
    • Rename TestEnableDevelopmentHardForkEras to ExperimentalHardForksEnabled and TestEnableDevelopmentNetworkProtocols to ExperimentalProtocolsEnabled
    • Various bug fixes and improvements

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + cli-api +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-04-05-performance-and-tracing + 2023-04-05-performance-and-tracing + Wed, 05 Apr 2023 00:00:00 GMT + +
  • Benchmarking: We worked on adjusting our infrastructure to the new 8.0 release branch and performed a (very) early run.
  • New tracing: We're profiling the new tracing system for minimizing its resource footprint and guarantee high throughput.
  • Analysis pipeline: Variance analysis both for reporting and for serving as a point of comparison has been merged.
  • Infrastructure: A library for Plutus scripts will be integrated in our tooling and benchmarking profiles. Also, a profile family aimed at the tracing systems has been added.
  • Nomad backend: Various specializations of the backend are currently being implemented, along with streamlining credentials management.
  • Benchmarking

    We have adapted our benchmarking cluster to the requirements of the 8.0 release branch. Testing runs of a very early feature branch for 8.0 +helped us localize an important issue in collaboration with the other teams. We look forward to gathering preliminary metrics for 8.0 soon.

    Tracing

    Analysis of resource usage profiles of both the legacy and new tracing system, with and without trace forwarding, have lead us to gather very +detailed profiling data for each possible setup. This is to ensure we keep resource usage within the node to an absolute minimum, while still providing +the highest possible throughput of data for forwarding to cardano-tracer.

    Additionally, we've worked on a very practically-oriented document targeted at end users of the new tracing system. It provides tested step-by-step instructions +for tunneling trace forwarding from a node to cardano-tracer via an easy to manage system service, which will match the production setup of most users.

    Infrastructure & Analysis

    General

    Variance analysis as a full-fledged entity in our tooling has been merged. Not only is this type of analysis now part of our reporting pipeline - variance +analysis can be fed back and serve as an additional point of comparison.

    Furthermore, we've created a profile family for the workbench that's specifically aimed at measuring and comparing tracing system configurations.

    Plutus library

    We opened a PR containing a new package for benchmarking - an extendable library that holds all Plutus scripts we use in our benchmarking profiles. +This will enable us in the future to iteratively work on customizing any given script, and the way is called in the context of a specific profile. +It is a refinement of current affairs, where we have additional build inputs solely to generate a static script file tied to an external commit.

    Nomad backend

    The nomad backend is being specialized in three ways: using a podman driver locally, using nomad agents supporting nix installables, and using nomad cloud agents. This supports having a common surface independent of the actual backend driver being used. In addition, vault retrieval and management of cloud access credentials is +being improved to minimize any friction for the backend user.

    ]]>
    + performance-tracing +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-31-crypto + 2023-03-31-crypto + Fri, 31 Mar 2023 00:00:00 GMT + + High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Started looking into full-node verifier
    • cardano-base: BLS12-381's PR merged. Creating test-vectors for verifying basic pairing properties.
    • KES agent: Blockers overcome. Reaching a first MVP level of the KES-agent.
    • Sidechains: Included BLS12-381 & JubJub to halo2curves
    • MuSig2: Final modifs to C version.

    Low level summary

    Mithril

    • Started designing how a full-node verifier would work. Issue comming in the next couple of weeks.

    cardano-base

    • BLS12-381 branch merged PR#266.
    • Testing strategy for BLS bindings:
      • Test-vectors for Groth16, and simple BLS signatures ready.
      • Test-vectors with different library, and created by different engineer.

    KES agent

    • Resolved issues of circular dependency
    • Got rid of separate DSIGN and DSIGNM, we now have DSIGN over mlocked keys, but the phantom type is the same.
    • Opened a PR for raw bearer branch in ouroboros network PR4395
    • Resolved a bug where the agent node did not properly closed connections
    • Updated version of IOSim allowed us to finish a first version of KES agent.

    Sidechains

    • Included BLS12-381 curve to our branch of halo2curves
    • Included JubJub to our branch of halo2curves

    MuSig2

    • Minor reorg PR#42
    • Started including fuzz testing for deserialisation PR#
    ]]>
    + crypto +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-31-goedel + 2023-03-31-goedel + Fri, 31 Mar 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on final drafts of two papers +for internal review and planning next steps of analysis of consensus +design refiniments.

    Details

    • Preparing final draft of DeltaQSD algebra paper for internal review

    • Preparing final draft of verifying design refinements for +distributed system design for internal review

    • Planning next phase of consensus design refinement analysis

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-31-hydra + 2023-03-31-hydra + Fri, 31 Mar 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra continued work on finishing mainnet compatibility. The +semi-automated smoke tests and some missing documentation is still preventing +from calling that fully done. They fixed smaller issues and made a step in the +Head protocol more robust. Besides development, they met with interested people +from the community who want to get started collaborating on communication and +marketing materials.

    What did the team achieve this week

    • Groomed and followed-up on GetUTxO user request discussion #797
    • Fixed hydra-node crashes after forks #560
    • Made collectCom more robust and aligned with spec #786
    • Completed configurable API feature #380
    • Met potential contributors about Hydra communication and marketing materials
    • Versioned documentation: we have a unstable bleeding edge version available as well now, seperate from the last released version

    What are the goals of next week

    • Follow-up backlog and roadmap clean-up
    • Complete mainnet compatibility feature #713 (documentation updates)
    • Integrate Hydra specification into repository #693
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-31-ledger + 2023-03-31-ledger + Fri, 31 Mar 2023 00:00:00 GMT + + High level summary

    We are still heavily involved in work related to preparing the next release. +The other main thing we have worked on is experimentation about how we will +handle the DRep stake distribution for CIP-1694 in the conway ledger era. +Lastly, we merged a fix for +node-4826 +into our main branch (there will be a post-mortem shortly).

    Low level summary

    Support for the next release

    • pull-3363 - Fix problems relating to Arbitrary instances used by consensus.
    • pull-3361 - Remove the alonze genesis from the conway genesis.
    • pull-3360 - Translate bad pointer addresses to valid ones in conway.
    • pull-3357 - Fix a bug relating to zero valued ADA in the script context.
    • pull-3356 - Added needed instances (Arbitrary and Serialization) for conway integration.
    • pull-3345 - Added helper functions for the CLI.
    • pull-3342 - Fix a bug with a CLI helper function (having to do with deposit tracking).

    Experiments for DRep stake distribution

    Adding another stake distribution to the ledger state presents some new challenges. +We would like to be able to use the current stake distribution at the epoch boundary +for DRep voting so that people can always vote themselves in time for any proposal. +To this end, we have a prototype of an incremental computation based on the incremental +lambda calculus, together with tests and benchmarks (which are very promising). +See pull-3344.

    Additionally, more of the ledger state is going to need to be rearranged to accomodate +the new incremental computations. +We have two draft PRs up for possibles solution. +See pull-3353 and pull-3364.

    Technical debt and bug fixes

    Documentation changes

    • pull-3354 - Rename "optional datums" with "supplemental datums" in the alonzo spec.
    • pull-3352 - Add a section to the Shelly errata about the individual deposit tracking.
    • pull-3351 - Further clarify the details regarding the script integrity hash.
    • pull-3350 - Some cleanup of the Babbage spec.
    ]]>
    + ledger +
    + + <![CDATA[System Test Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-27-system-test + 2023-03-27-system-test + Mon, 27 Mar 2023 00:00:00 GMT + + High level summary

    Since the last update (2023-1-13) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.5 and 1.35.6 releases (and their predecessing release candidates) and ran tests on branch with the UTxO-HD functionality.

    Workstreams

    Framework improvements:

    • improvements in searching for unexpected error messages in log files during test run
    • added support for UTxO-HD testing
    • added support for the new P2P topology format
    • added local cluster variant that has the same properties as mainnet (epoch length, fees, etc.)
    • added preliminary support for the Conway era
    • added support for running tests on the Preview testnet

    Full list of closed PRs

    Node:

    • ran tests on node branch with the UTxO-HD functionality
    • tested the 1.35.5 release
    • tested the 1.35.6 release

    DB-Sync:

    • improvements in db-sync sync tests
    • improvements in db-sync functional tests
    ]]>
    + system-test +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-24-hydra + 2023-03-24-hydra + Fri, 24 Mar 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra had a team workshop and conducted the monthly review +meeting for March. They demonstrated a Hydra Head on mainnet, which was running +the hydraw demo application. While this marks an important milestone, they also +emphasized that more features are still to be added as needed for applications +to run on Hydra. Besides this, the roadmap is getting cleaned up to encourage +discussions and provide more space for user requests.

    What did the team achieve this week

    • Monthly review meeting slides/recording, full report of March next week
      • Opened a head on mainnet with hydraw demonstration
      • Hydra pay updates
    • Team workshop in Austria
      • Hydra presentation at the Cardano Foundation in Zurich
      • In-person grooming session, marked many items as candidates to be rather :idea: dicussions
      • Improved head protocol #786 and investigated a potential bug in rollback handling #784
      • Team building and retrospective

    What are the goals of next week

    • Follow-up on backlog and roadmap clean-up
    • Complete mainnet compatibility feature (documentation updates)
    • Make API more configurable #380
    • Integrate Hydra specification into repository #693
    ]]>
    + hydra +
    + + <![CDATA[DB-sync Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-23-db-sync + 2023-03-23-db-sync + Thu, 23 Mar 2023 00:00:00 GMT + + High level summary

    The DBSync team worked in performance enhancements issues, on providing new db-sync options and on +technical debt and bug fixing. The DBSync team also on boarded a new member.

    Low level summary

    • Worked on an issue which causes ada_pots tables to include the values related not only to an +epoch, but also the first epoch of the last epoch. +#1367
    • Fixed an issue where the epoch table didn't rollback and caused wrong values +#1370
    • Fixed an issue were users with disable-ledger option had to provide the state dir option, even +though it was never used. Also refactored the no ledger part of the codebase. +#1378
    • Improved the perforance by using the cache more. Also provided many new options which enables or +disables parts of db-sync. In addition a new --turbo mode is enables which allows db-sync to sync +mainnet in hours. +#1379
    ]]>
    + db-sync +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-23-mithril + 2023-03-23-mithril + Thu, 23 Mar 2023 00:00:00 GMT + + High level overview

    The Mithril team released a new 2310.0 distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images.

    Finally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano mainnet and they have fixed some bugs.

    Low level overview

    • Completed the epic that implements eras behavior switch #707:
      • Completed handling the API version switch at era transition #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed on the migration/adaptation of the stake_pool table #787
      • Worked on the migration/adaptation of the epoch_settings table #813
      • Worked on the migration/adaptation of the signed-entity-type table #815
      • Completed the creation of a stake distribution service #799
    • Completed the testing of Mithril with Cardano mainnet network #777
    • Completed qualifying the computation of the stake distribution #810
    • Completed the testing of the Docker client in the Mithril Client multi-platform test workflow #794
    • Worked on bugs and optimizations:
      • Fixed a bug that made computation of the stake distribution occur multiple times during an epoch #804
      • Fixed a bug that created deadlocks on the SQLite connection #807
      • Optimized the error message and the behavior of the signer node when KES keys have expired #820
      • Upgraded the infrastructure of the testing-preview and pre-release-preview networks #801
      • Re-genesis of the testing-preview network #803
      • Re-genesis of the pre-release-preview network #818
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-22-consensus + 2023-03-22-consensus + Wed, 22 Mar 2023 00:00:00 GMT + + High level summary

    This week the consensus team continued working on the refactoring of the UTxO HD +prototype, and design and testing of Genesis. We also extracted the fs-sim +package, which provides a file-system abstraction layer that can be used for +testing and simulation. This makes the Consensus code base smaller, while +providing a package that the community can reuse and contribute to. We also +fixed a failing property test related to iterators. We are also working on +mempool and VRF improvements.

    Low-level details

    ]]>
    + consensus +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-22-node-cli-api + 2023-03-22-node-cli-api + Wed, 22 Mar 2023 00:00:00 GMT + + 2023-03-22 - 2023-04-05

    High level summary

    • Added new cardano-cli ping command which allows users to ping remote cardano-nodes.
    • The transaction build command now can automatically balance multiassets
    • New combinators for constructing transaction bodies. This allows us to construct transaction bodies in a composable manner.

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + cli-api +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-03-22-performance-and-tracing + 2023-03-22-performance-and-tracing + Wed, 22 Mar 2023 00:00:00 GMT + +
  • Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.
  • New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we're currently improving documentation and creating setup guidelines for end users.
  • Analysis pipeline: Our refined metrics PR has been merged. We're working on including variance analysis to our reporting machinery.
  • Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we're laying the groundwork for enabling GHC 9.2 in our benchmarks.
  • Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing.
  • Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.
  • Performance

    New tracing

    The new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe +a slight shift in the resource usage profile from memory to CPU, but no regressions in block propagation metrics. Variance was observed to be notably smaller, which gives the new system a much better predictability. From this angle, we consider the new system fit for production use.

    GHC RTS parametrization

    We're currently prerforming various runs on the cluster to explore the space of different GHC RTS settings for running nodes. The main focus lies +on different configurations for the garbage collector, as well as increasing the number of CPU cores the node may use.

    Open Sourcing

    Our API demo has reached prototype stage, and operates on live data from the production database. Making use of the experience gained, we're refining version 1 of the API to provide optimized usability, and creating documentation that both is descriptive of the API endpoints, and focuses on practical, exemplary use cases.

    Tracing

    For the new tracing system we're currently undertaking an effort to multi-layered documentation: a condensed version, as well +as a setup guide with pragmatical focus, will be provided alongside the in-depth documentation. This effort should cater to different audiences, and provide distinct entry points +for users of the new system, depending on their wants and needs.

    Infrastructure & Analysis

    General

    Having included Conway genesis in the workbench, as a next step in future-proofing out benchmarking infrastructure, we're laying the foundation for a switch in compiler version to GHC 9.2. Additionally, we considered variance analysis of our runs to merit inclusion into our reporting pipeling - which will +increase confidence in specific metrics.

    Nomad backend

    We have implemented an appropriate mechanism for genesis distribution: Only after a benchmarking cluster has been deployed successfully, genesis +is patched and uploaded to an AWS S3 bucket for the nodes to retrieve - as a final step before initiating the actual run. We're confident that this deferred approach will provide clearer evidence for genesis patches, as well as minimize startup time for all runs by factoring in deployment re-tries.

    ]]>
    + performance-tracing +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-21-network + 2023-03-21-network + Tue, 21 Mar 2023 00:00:00 GMT + + High level summary

    In the last spring we released cardano-node-1.35.6 with dynamic P2P +functionality.

    We received reports from some SPOs who encountered problems with their non +P2P block producing nodes not being able to connect to their P2P relay. Karl +Knutsson (from Cardano Foundation) reproduced this issue between two nodes (a +non P2P and a P2P one) on mainnet. Karl and the IOG Networking Team analysed +it and found a bug in the legacy non p2p code. The bug is only possible to +trigger with a P2P node which is binding its outbound connection port to +a fixed IP address and port (default in p2p). A possible solution was found. +For more information see #4465.

    We released cardano-ping-0.1.0.0 package to CHaP. cardano-ping is no +longer available as a standalone binary, but instead it will become part of +cardano-cli (see #4664)

    We are testing cardano-node with peer sharing functionality (#4019).

    We are working on eclipse evasion. We added new class of peers: big ledger +peers to the outbound governor, implemented tests and fixed found issues +(#4462). We also made the information if a given peer plays the role of +a big ledger peer to the mini-protocols. This will allow to modify +mini-protocol applications for such peers. As part of this functionality we +refactored some core types in the network code which simplifies exposed API.

    Together with Moritz Angerman we started to update io-sim to ghc-9.6.1 (see +#73).

    We merged a fix of configuration of accepted connections limit in +cardano-node (see #4902).

    ]]>
    + network +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-17-crypto + 2023-03-17-crypto + Fri, 17 Mar 2023 00:00:00 GMT + + High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: RFP finished. Code ready for audit.
    • cardano-base: BLS12-381's PR approved, only blocker is Windows' CI. Preparing extensive testing strategy together with Plutus and Testing teams.
    • KES agent: Working on a desing on how to use IO sim in order to allow for proper network simulation testing.
    • Sidechains: Preparing proving system to use the curves needed for main-net PoC.

    Low level summary

    Mithril

    • Merged PR#783
    • RFP for crypto audit ready.

    cardano-base

    • BLS12-381 branch approved PR#266. Blocker is Windown's CI. Working on it
    • Testing strategy for BLS bindings:
      • Preparing test-vectors for Groth16, and simple BLS signatures
      • Finding community projects to help write their use cases
      • Designing AC, and expected tests for higher levels of development (Plutus team, E2E tests, etc)
    • Wrote blogpost on how using the same key for ed25519 and VRF completely breaks the security of both systems

    KES agent

    • Started integration of sockets interface used in consensus
    • Use that for de/ser
    • Resolving problems with block memory in IOSim. Can't use withForeignPtr in IOSim
    • Results in having to parametrise for IOSim in KES and DSIGN for testing

    Sidechains

    • Prepared an API for proof generation in sidechains, with it's C API for integration with JVM languages.
    • Design document and start interacting with researchers for concrete instantiation of SNARK-based ATMS.
    • EdDSA over JubJub ready
    ]]>
    + crypto +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-17-hydra + 2023-03-17-hydra + Fri, 17 Mar 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team has continued work on the mainnet compatibility of the +hydra-node. They added a golden test suite for hydra-plutus scripts, added +some detection of hydra-node misconfiguration, established a limit of 100 ADA +per commit and other smaller tasks to prepare for a mainnet beta release.

    Next week there will be a small team workshop to push for demonstrating a Hydra +Head on the Cardano mainnet, ideally just in time for the monthly review +meeting. See the hydra channels on the IOG Technical Community discord server +for details.

    What did the team achieve this week

    • Implement a 100 ADA hard-coded commit limit in the hydra-node +#763
    • Pay back funds to faucet after smoke-test run +#773
    • Setup custom github runner for smoke-tests on mainnet +#775
    • Created golden tests to assure the script hash stays the same between +changes #772
    • Removed hardcoded error codes in plutus scripts +#768
    • Detect misconfiguration of a hydra-node given persistent state +#767
    • Met with potential users for hydra-pay
    • Prepared hydra workshop

    What are the goals of next week

    • Hydra monthly meeting
    • Open a multi-party head on mainnet
    • Complete mainnet compatibility feature
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-17-ledger + 2023-03-17-ledger + Fri, 17 Mar 2023 00:00:00 GMT + + High level summary

    We made further progress on the conway ledger era. +In particular, we expanded the ledger API significantly, including lots of governance features. +We also made progress on the specification and corresponding work in the Haskell implementation.

    We also continued to integrate the latest ledger packages into cardano node and addressed +technical debt.

    Low level summary

    Expanded ledger API

    The ledger API was significantly expanded to include:

    • a lot of protocol parameter support
    • versioning support (type level ledger eras and protocol versions)
    • auxiliary data support
    • many new lenses
    • support for witnesses
    • support for conway governance

    See pull-3328.

    Conway ledger rules

    We have made progress on the formal ledger specification for the Conway era. +Moreover, the corresponding Haskell updates were also completed:

    Incremental SPO/DRep stake distribution computation

    We have a working (and correct) proof of concept for how to use the incremental lambda calculus +to maintain several of the stake distributions incrementally. +For the per-SPO distribution, this is a performance improvement. +For the (conway) per-DRep distribution, this is will allow those who have delegated their votes +to a DRep to have time to react to any votes that they disapprove of. +(Sorry, no code to share just yet, more to come.)

    Technical debt

    ]]>
    + ledger +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-16-goedel + 2023-03-16-goedel + Thu, 16 Mar 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers +improving the deltaQ tutorial, consulting on performance design, and +the final version of the Djed paper.

    Details

    • Preparing draft of DeltaQSD algebra paper for ICE 2023

    • Successful outcome of Marlowe consultancy leading to substantial +improvement in performance

    • Preparing sections on the communication language and bisimulation +proofs for draft paper about verifying design refinements for +distributed system design

    • Camera ready version of Djed paper under preparation

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-10-hydra + 2023-03-10-hydra + Fri, 10 Mar 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team addressed issues with committing complex UTxOs into a +Hydra Head, prepared the hydra-node to be run on mainnet (soon) and improved +the test suite of the hydra-plutus scripts. The specification is constantly +getting improved upon reviewer feedback on overleaf - this week the graphical +notation was refined to be more transaction-focused.

    What did the team achieve this week

    • Clarified bug of committing UTxOs with reference scripts to a Hydra head #737
    • Prepare usage of hydra-node on mainnet by updating command line options #715
    • Improved our mutation test suite to all expected errors #705
    • Re-opened our persistent hydraw demo head on preprod using version 0.9.0
    • Updated on-chain graphs to be more transaction-focused in the specification

    What are the goals of next week

    • Complete mainnet compatibility feature
    • Prepare the Hydra workshop
    • Address all todo’s in the Hydra specification
    • Unblock the auctions project with commit from script a solution
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-09-mithril + 2023-03-09-mithril + Thu, 09 Mar 2023 00:00:00 GMT + + High level overview

    The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano mainnet and computes the stake distribution with the optimized unreleased Cardano CLI command.

    Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.

    Low level overview

    • Worked on the epic that implements eras behavior switch #707:
      • Completed the deployment of the era behavior switch to the test networks #752
      • Completed the enhancement of datum generation for era markers #786
      • Worked on handling the API version with an era switch #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Worked on the migration/adaptation of the stake_pool table #787
    • Completed the refactoring of errors in the signer and aggregator state machines #665
    • Worked on testing Mithril with a mainnet Cardano network #777
    • Worked on fixing bugs with the Docker client image:
      • Fixed a bug that made the Docker client container crash at startup #769
      • Fixed a bug that prevented the restoration of a snapshot with a Docker client #791
      • Worked on testing the Docker client in the Mithril Client multi-platform test workflow #794
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-08-consensus + 2023-03-08-consensus + Wed, 08 Mar 2023 00:00:00 GMT + + High level summary

    The Consensus team continued working on refactoring and improving the UTxO-HD +prototype, and introducing improvements to the lmdb related packages. In +particular we identified an opportunity to gain performance by handling locks in +a more optimal way.

    On the Genesis front, we sketched a mitigation for an issue that PNSol and +Researchers caught. We also came op with a road map for not only testing the +Genesis prototypes, but also for enriching the tests we already have.

    Regarding technical debt, next to some minor improvements, we created +component-level micro-benchmarks for adding transactions to the mempool. The +results of these benchmarks will be published in the ouroboros-consensus web +page.

    We also finished moving the Consensus documentation to the ouroboros-consensus +repository, released ouroboros-consensus 0.3.0.0, and reduced the time +GitHub actions take in ouroboros-network.

    Workstreams

    UTxO HD Prototype

    We continued working on refactoring and improving the UTxO-HD prototype. As a +result of the first round of sytem-level benchmarks, we identified an +opportunity to optimise the way we handle locks to improve performance +(#4393).

    Also, we introduced several improvements to the lmdb related packages:

    Genesis

    We sketched out a mitigation of the issue that PNSol and Researchers caught in +the Genesis design.

    We came up with a road map for testing the Genesis prototypes, including early +milestones that are applicable to today's master branch, ie tests that are +useful before Genesis, and that will be nicely enriched when we do add Genesis.

    We developed the aforementioned tests, specifically a QuickCheck generator for +the Honest leader schedule and one as-aggressive-as-possible Adversarial +leader schedule that together satisfy the Praos properties that the Consensus +design takes as invariants.

    We investigated why the improved ChainDB queueing implementation behaves +differently in the baseline compared to the prototype, and we are close to +having a full picture of how the Consensus components interact during bulk sync.

    Technical debt

    We created component-level micro-benchmarks for adding transactions +to the mempool. We plan on extending this to more mempool actions and different +types of blocks. We store the benchmark data to make it available +to the GitHub action that publishes the benchmarks results.

    Other minor improvements include:

    • Removal of Test.Util.Classify in favour of Test.StateMachine.Labelling.
    • Addition of -Wunused-packages to the default ghc-options for Consensus +packages.

    Fostering collaboration

    We finished moving the Consensus documentation from +ouroboros-network to ouroboros-consensus, in preparation for +migrating the code to the latter repository.

    Support

    We released ouroboros-consensus 0.3.0.0.

    We reduced the load in the ouroboros-network GitHub actions, +thereby reducing the time CI jobs take.

    ]]>
    + consensus +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-08-node-cli-api + 2023-03-08-node-cli-api + Wed, 08 Mar 2023 00:00:00 GMT + + 2023-03-08 - 2023-03-21

    High level summary

    General bug fixes and some refactoring

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + cli-api +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-03-08-performance-and-tracing + 2023-03-08-performance-and-tracing + Wed, 08 Mar 2023 00:00:00 GMT + +
  • Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.
  • New tracing: Backwards compatibility with legacy tracer nomenclature is being implemented to smoothe the transition for end users.
  • Analysis pipeline: A major refinement of benchmarking metrics has been realized, along with a structural improvementents regarding metrics denomination.
  • Open Sourcing: Work on going live with our benchmarking data has begun, as well as creating an API demo and documentation.
  • Nomad backend: The backend was adapted to a major refactoring in workbench and is being equipped with a nomad-exec based task driver.
  • Performance

    1.35.6 release

    Benchmarking the second release candidate for 1.35.6 could again attest to a perfectly clean bill of health.

    Analysis pipeline

    Our analysis pipeline has seen an introduction of additional metrics, especially when focusing on the block producing node. They allow us to better +differentiate the timing of ledger ticking and mempool snapshotting in the forging loop - a feature that promises much deeper insight into UTxO-HD performance. +Additionally, a restructuring of metrics names has been undertaken along with improvements in their data dictionary; a measure that will make benchmarking +data more easily accessible.

    Open Sourcing

    As a prerequisite for going live with our benchmarking data, we're currently working on consolidation of existing analyses, such as to provide a common foundation when accessing them externally. Additionally, we've begun working on a small visualization demo and interactive API documentation. Those will enable +third parties to make use of that data much more easily, by having reliable guidelines and a working example.

    Tracing

    The new tracing system is being outfitted with a comprehensive mapping of its structure to the legacy tracer nomenclature. This feature will make +the switch to the new system as smooth as possible for end users, allowing them to gradually adapt their tooling without breaking any functionality in the process.

    Infrastructure

    Nomad backend

    The Nomad backend was adapted to the latest major refactoring in workbench. Work was done on making stateful Nomad clients more autonomous, which will greatly facilitate any automation building on that backend. A task driver based on nomad-exec is currently being implemented.

    ]]>
    + performance-tracing +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-03-crypto + 2023-03-03-crypto + Fri, 03 Mar 2023 00:00:00 GMT + + High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.
    • cardano-base: BLS branch is now ready for review. We are workign forward its merge.
    • KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.
    • Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs

    Low level summary

    Mithril

    • Bumped to version 0.2.0 the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using mlock.
    • Opened PR#783 to update dependency
    • Improved testing for batch opening of mtree, PR#773
    • Improved testing for batch verification of STM sigs PR#774
    • RFP for crypto audit almost ready.

    cardano-base

    • BLS12-381 branch finally ready for review PR#266

    KES agent

    Team off for one week. Other progress:

    • Learning about raw direct-bearer abstraction. An interface for sockets in consensus.
    • use that for direct ser/deser
    • written those syntaxes for ouroboros (coming PR)
    • the kes agent will depend on that.

    Sidechains

    Progress with familiarisation of Halo2 library to write circuits.

    ]]>
    + crypto +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-03-goedel + 2023-03-03-goedel + Fri, 03 Mar 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers and one +technical report, improving the deltaQ tutorial, consulting on +performance design, and the Djed paper has been accepted for +publication.

    Details

    • Preparing draft of DeltaQSD algebra paper for FORTE 2023

    • Extending the technical report on which the above paper is based

    • Consulting with an external company on performance engineering of Plutus contracts

    • Planning improvements and collecting material for the deltaQ +tutorial based on experience with systems that manage risk at +multiple timescales

    • Preparing sections on the communication language and idempontency +laws for draft paper about verifying design refinements for +distributed system design

    • Studying Cardano chain sync protocol

    • "Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin +Protocol" has been accepted for publication at IEEE ICBC 2023

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-03-hydra + 2023-03-03-hydra + Fri, 03 Mar 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team released version +0.9.0 - a version +of the hydra-node with fully specified behavior of on-chain scripts and +off-chain head-logic, decreased costs for opening/closing a Head and scalable +contestation deadline semantics. Check out the full release notes for details.

    Furthermore, they published the monthly +report of the Hydra project +and conducted a review meeting with an increasingly wider audience. The team +plans to extend invitations through the new Hydra +#announcements discord channel for the next +months, stay tuned!

    What did the team achieve this week

    • Monthly review meeting with report published on website
    • Fixed smoke tests #726
    • Reduced the cost of opening/closing a Head (error codes #748 + head reference script #701)
    • Released version 0.9.0
    • Conducted a first experiment on mainnet compatibility #713
    • New discord category with #announcements channel
    • Received a demo about the Hydra for Voting project
    • Lightning talk on mutation-based testing (to be shared)
    • New themes view in on our roadmap and some rearranging as we align it with high-level objectives
    • Clarified things with researchers, but mostly identified action items for them

    What are the goals of next week

    • Redraw transaction graphs and address TODOs specification
    • Run hydraw with 0.9.0 on preprod
    • Make smoke tests on mainnet possible
    • Groom the explorer item
    • Unblock the auctions projecth with commit from script a solution
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-03-ledger + 2023-03-03-ledger + Fri, 03 Mar 2023 00:00:00 GMT + + High level summary

    We have focused the last two weeks on CIP-1694, integration of the last several months of ledger +work into consensus and node, and testing infrastrutcture that we will use in the conway ledger era.

    Low level summary

    Conway rules

    We made a major update to the conway era so that the implementation is now in sync with the spec +with respect to the ratification and enactment logic.

    See the notes in pull-3291 for more details.

    Constraint based generators

    This week we hit a major milestone in our efforts to build out better property based testing +support for the main ledger properties. +The new constraint based generators can now generate full ledger states with what is probably +very close to the real constraints (if anything, it is under constrained). +Next we will work on generating a transaction in the context of a ledger state, which would allow +us to actually start using these generators for real tests.

    See pull-3219.

    Preparing a release, now with proper versioning

    After quite some time, we are ready to release a version of ledger that will work with a new +version of consensus, using CHaPs.

    See pull-3308.

    Technical debt

    • We cleaned up the redeemer serialization code (to prevent future mistakes). See pull-3269.
    • We added a note to the Alonzo spec, specifying that the transaction inputs are +lexicographically ordered in the Plutus script context. See pull-3306.
    • We fixed a problem with the address deserialiazation +(we mistakenly fixed a bug in the Babbage era which cannot be fixed until Conway). +See pull-3307.
    • We fixed a problem with our nix build. See pull-3311.
    • We fixed a problem with our NoThunks tests. See pull-3310.
    • We improved our nightly tests. See pull-3316.
    ]]>
    + ledger +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-03-02-network + 2023-03-02-network + Thu, 02 Mar 2023 00:00:00 GMT + + High level summary

    In the current sprint the networking team focused on fixing bugs and pushing +forward implementation of eclipse evasion. We also found a bug in our +simulation testing setup (in integration of test node). We also overviewed the +work on extending handshake protocol which is delivered by Galois Inc.

    We published ouroboros-network-0.4.0.1 and +ouroboros-network-protocols-0.3.0.0 to CHaP.

    We also fixed a bug in cardano-node which results in not being able to +configure inbound connection limits, see PR #4902.

    Together with Karl Knutsson (CF) we realised an issue in cardano-cli: it's +validation of DNS names, IP address & ports when registering a stake pool +should be more strict to protect against common mistakes which we identified on +the chain. See issue #4929.

    Detailed work log

    In PR #4385 we fixed two bugs in peer state actions. First one results in +a busy loop if demotion from hot to warm times outs. This busy loop is +eventually exited when mux exits (we reported this in our previous report). +This fix made it to 1.35.6 release as well.

    In addition the PR #4385 also fixes another bug which results in hot -> warm +-> hot demotion / promotion busy loop.

    The PR #4385 also fixed a bug in a node only used in simulation which +resulted in not using chain-sync or block-fetch mini-protocols. In the +review process, we realised that the header-body split in the simulated node +requires further work (see PR #4419, which is under review).

    The PR #4385 also extend our generators, which together with the above fix, +cover the hot -> warm -> hot demotion / promotion busy loop.

    In PR #4419 we introduce a ChainDB for our simulation node, which plays +similar role to ChainDB in the ouroboros-consensus: a persistent (across +simulated restarts) store of blocks which does chain selection. This ensures +that the simulated node is using block-fetch to download blocks announced by +chain-sync mini-protocol.

    We also made progress with reviewing PR #4019 - peer sharing.

    We also fixed issue #4370 - a connection manager test failure, see PR #4384.

    ]]>
    + network +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-24-hydra + 2023-02-24-hydra + Fri, 24 Feb 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team continue closing many gaps and aligning the +implementation with the specification. More over, they have groomed a plan to +make Hydra Mainnet compatible. Also, they continue moving forward with the +internal auditing and have published some auditing guidelines to receive +contributions from the community.

    What did the team achieve this week

    • Completed #452 (what is +remaining in there)
    • Aligned the Head protocol logic implementation with the specification
    • Completed full minting policy implementation and spec +#720
    • Clarified message authentication with researchers
    • Groomed what is left to do for Mainnet compatibility +#713 and drafted a +0.10.0 version
    • Added a tutorial by @perturbing to the +website LINK
    • Published auditing guidelines +LINK
    • Made hydra-node work for macos +#746 and added support +for building on aarch64 +#673
    • Met with a potential customer of Hydra for Payments

    What are the goals of next week

    • Have the monthly review meeting incl. the report
    • Have smoke tests fixed and running regularly
    • Release 0.9.0 with updated scripts
    • Redraw transaction graphs for specification
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-23-mithril + 2023-02-23-mithril + Thu, 23 Feb 2023 00:00:00 GMT + + High level overview

    The Mithril team released a new 2306.0 distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes’ CLI that allows generating and signing an era marker’s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.

    Low level overview

    • Released the new distribution 2306.0
    • Completed the epic that implements signer versions deployment monitoring #718:
      • Completed the implementation an event producer/consumer via channel #738
      • Completed the creation of a database and its configuration to save the events on the consumer side #740
      • Completed the creation of events and sending them on the channel on the producer side #741
      • Completed the creation of the signer registration event #742
      • Completed the creation a query to extract the node versions stakes distribution #743
    • Worked on the epic that implements eras behavior switch #707:
      • Completed the loading of era reader adapters from config in the signer and the aggregator #732
      • Completed the implementation of an era cli command in the aggregator #755
      • Completed the implementation of a dynamic matrix of cases in CI end to end tests #760
    • Fixed some bugs:
      • Fixed the unsupported unixepoch() function #757
      • Fixed the problem that prevented some signers from signing on the testing-preview network #730
      • Update SQLite version to 3.40 in aggregator infrastructure #765
    ]]>
    + mithril +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-02-23-performance-and-tracing + 2023-02-23-performance-and-tracing + Thu, 23 Feb 2023 00:00:00 GMT + +
  • SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.
  • Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.
  • UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.
  • New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.
  • Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.
  • Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.
  • Performance

    SECP

    1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.
    2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.
    3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking.

    UTxO-HD

    1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.
    2. We're currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.

    1.35.6 release

    Benchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.

    Tracing

    Work on the new tracing system's introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.

    Infrastructure

    Nomad backend

    1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.
    2. Locality assumptions were removed and job monitoring was refactored.
    3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.
    4. We're currently evaluating different options for genesis distribution in said cluster.

    NixOps backend

    The NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery.

    ]]>
    + performance-tracing +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-22-consensus + 2023-02-22-consensus + Wed, 22 Feb 2023 00:00:00 GMT + + High level summary

    During the past two weeks we got the results from the system level benchmarks +for UTxO HD. They showed a substantial performance regression, so we spent some +time analyzing the results. We found out the frequency at which ledger snapshots +were taken was too high, so we requested the benchmarking team a new run with a +more realistic snapshotting policy. We continued refactoring and improving the +prototype, and we released UTxO-HD related packages to CHaP.

    We met with IOG researchers and networking specialists to discuss the Genesis +design, which was well received. We continued working on testing and +benchmarking different Genesis prototypes.

    We are also working on solving a test failure related to iterators. This work +derived in several improvements such as better documentation, a framework for +writing unit (and regression) tests, and the possibility of debugging +QuickCheck counter examples in the REPL.

    Finally, we released ouroboros-consensus 0.2.0.0 and +ouroboros-consensus-cardano 0.3.0.0 to CHaP

    Workstreams

    UTxO HD Prototype

    We got the results of the first system level benchmarks for UTxO HD. They seemed +to indicate a significant regression in performance. After looking into the +benchmark logs we found that the benchmark runs took ledger state snapshots too +often, due to the default snapshotting policy depending on k, and k being so +small in the benchmark runs. Therefore, the next step is to re-run the +benchmarks with a snapshotting policy that more closely resembles the one from +mainnet.

    At the same time, we continued refactoring and cleaning up the prototype.

    Also, we prepared the anti-diff packages (fingertree-rm, diff-containers, +simple-semigroupoids) and the lmdb related packages (cardano-lmdb and +cardano-lmdb-simple) to CHaP.

    Genesis

    The Genesis design was presented to the IOG researchers and Peter Thompson from +NSol. It was well received. They pointed out one blindspot, but we think it'll +be relatively simple to mitigate.

    In parallel, we continued developing test and benchmarks for the Genesis +prototypes. I particular we tested and implemented a potential fix for +increased ChainDB dequeue timings, which partly +behaved as we expected, but still needs further investigation. Also we obtained +new benchmarking data for the prototype.

    Technical debt

    Related to #4183, we developed a DSL for specifying +ChainDB unit tests. This will allow us to better understand the +counter-examples returned by QuickCheck tests, and to write regression +tests for them. Also, we added a module to enable +QuickCheck counter-examples to be run on the REPL, allowing for faster debugging +feedback. Also, we improved the documentation related to followers +(#4372).

    We are also working on a design for optimizing the way we handle blocks from the +future.

    Support

    We released ouroboros-consensus 0.2.0.0 and ouroboros-consensus-cardano +0.3.0.0 to CHaP. Remember that we decided to split the packages related to +Consensus into two bundles, one with the core functionality, Cardano-agnostic +code, and another bundle with instantiations specific to Cardano.

    ]]>
    + consensus +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-22-node-cli-api + 2023-02-22-node-cli-api + Wed, 22 Feb 2023 00:00:00 GMT + + 2023-02-22 - 2023-03-07

    High level summary

    General bug fixes

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    Documentation

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + cli-api +
    + + <![CDATA[DB-sync Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-21-db-sync + 2023-02-21-db-sync + Tue, 21 Feb 2023 00:00:00 GMT + + High level summary

    The db-sync team created a new tag 13.1.0.2 which is ready to release. +We also investigated and had the first working UTxO-HD integration which is one +of the potential future risks for db-sync.

    Low level summary

    • Integrated the UTxO-HD feauture branch in kderme/utxo-hd-1. This doesn't +use the full on disk storage but keeps things in memory and the plan is to keep +it this way for the first iteration. The integration still has some performance +issues which we investigate
    • Created tag 13.1.0.2 which upgrades the dependencies of db-sync
    • Fixed an issue related to errors appearing in SMASH +#1353
    • Continued with ghc-9.2 integration +#1339
    • Worked on an new fixing procedure for +#1348. +We try to make these procedures work also on older schema version, without the +need to migrate to newer schema, which can be very useful for fixing existing +snapshots.
    ]]>
    + db-sync +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-17-crypto + 2023-02-17-crypto + Fri, 17 Feb 2023 00:00:00 GMT + + High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril's core library (decided to add audit of KES). Design proposal for viable registration.
    • cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: started implementation in rust.

    Low level summary

    Mithril

    • Transmute helpers merged PR#722
    • We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope.
    • We are working in a modification of KES to require caller to allocate the secret key buffer.
    • Proposed a solution for signer registration of Mithril.

    cardano-base

    • Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 proof.
      • Results are promising, with using only 23% of the execution budget to verify a realistic proof.
      • Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril.
    • KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this.
    • Conversion finally merged PR#344.

    KES agent

    • Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation
    • Figuring out how to go from fake file descriptor to write the raw bytes

    MuSig2

    • Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental.
    ]]>
    + crypto +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-17-goedel + 2023-02-17-goedel + Fri, 17 Feb 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers and one +technical report, distributivity properties of deltaQ, and consulting +on performance design with the Marlowe team.

    Details

    • Processing reviews on performance engineering paper and planning +paper revisions accordingly

    • Investigating distributivity properties of DeltaQ

    • Preparing sections on the thorn calculus and idempotency laws for +draft paper about verifying design refinements for distributed +system design

    • Consulting on performance design with Marlowe team

    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-17-hydra + 2023-02-17-hydra + Fri, 17 Feb 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team completed work on dealing differently with contests +during the contestation period. These will now always push out the deadline and +hence contestation periods are easier to pick (depending on the network a Head +runs on). Furthermore, they added an important acceptance test and completed +internal refactoring of the protocol logic making future changes easier.

    What did the team achieve this week

    • Push contestation deadline on each contest #716
    • Wrote an acceptance (property) test can always close/fanout when collect is successful
    • Internal refactoring of our HeadLogic
    • Groomed remaining things from #452 into dedicated features

    What are the goals of next week

    • Complete full minting policy #720
    • Release 0.9.0 with updated scripts
    • Plan mainnet milestone and a 0.10.0 version
    • Redraw transaction graphs for specification (upon feedback)
    • Have smoke tests fixed and running regularly
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-17-ledger + 2023-02-17-ledger + Fri, 17 Feb 2023 00:00:00 GMT + + High level summary

    This past two weeks saw many months worth of ledger changes integrated with the cardano-base +and ouroboros-network repositories. +The vast majority of the effort involved all the changes to the ledger serialization libraries +(and the interplay with cardano-base) which now support proper versioning. +Supporting the conway ledger era, and in particular allowing the ledger state to transition +to a whole new system of governance, also played a noticeable part in the integration.

    Besides the integration work, the team continues to address technical debt, improve the +documentation, make our testing infrastructure better (such as experimenting with better +nightly tests), and formally specifying more parts of CIP-1694.

    Lower level summary

    Integration work

    Below is all the integration work completed, which will enable a release to node from +the current ledger master. Many thanks to +Alexey for this colossal undertaking!

    Technical debt

    Starting in major protocol version 9, zero-valued multi-assets will no longer be permitted +in the CBOR specification. See pull-3241.

    We now have our .cabal files being checked for a consistent formatting given by +cabal format in our CI. See pull-3286.

    We are still experimenting with better nightly tests for our long running +property based tests. See pull-3276 and pull-3296.

    Small documentation improvements

    The hand proofs of the preservation ADA property have been added back to the +Shelley ledger specification. See pull-3295.

    We have clarified how the script integrity hash is computed in the CDDL description. +See pull-3290.

    Specifying CIP-1694

    Our new formal specifications backed by Agda have seen a lot of progress! +Upgrading to Agda 2.6.3 fixed our main build infrastructure problems, +and we no longer have to rely on our custom fork. See pull-50.

    Our progress on formally specifying CIP-1694 can be followed here:

    Constraint based testing

    We are still actively working on our new constraint based property testing framework. +We have nearly all of the constraints for an entire ledger state +hooked into generators, and tests that the generators do indeed obey the constraints. +The variable count in the constraints is over 100! +There is still much work to do on shrinking, making the generators faster, +and writing actual property tests for the ledger, but the approach still seems viable and +we are hopeful that it could replace our trace generators. +The WIP can be followed here: pull-3219.

    ]]>
    + ledger +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-17-network + 2023-02-17-network + Fri, 17 Feb 2023 00:00:00 GMT + + High level summary

    Recently QA found a bug in P2P code, which results in busy loops. We added one +fix to 1.35.6 release, another one will likely be part of next release. The +first one is already included in ouroboros-network-0.3.0.1 release. These +bugs could only affect nodes which are out of sync and thus should not impose +risk on well maintained nodes on mainnet. We also advertise to deploy at most +one of the relays as a P2P node, which shields from possible consequences.

    We recently finished design phase of eclipse evasion and we started +implementing it (see issue #3886 for progress).

    Galois finished implementing Handshake extension which will allow to query +network protocol versions (see pr #4256).

    We also recently released a newer set of network packages to be integrated with +cardano-node master branch, this includes:

    * monoidal-synchronisation-0.1.0.2
    * cardano-client-0.1.0.2
    * network-mux-0.3.0.0
    * ouroboros-network-api-0.1.0.0
    * ouroboros-network-protocols-0.2.0.0
    * ouroboros-network-testing-0.2.0.1
    * ouroboros-network-mock-0.1.0.0
    * ouroboros-network-framework-0.3.0.0
    * ouroboros-network-0.4.0.0 (it doesn't not yet include the fix we included
    in `0.3.0.1`)
    ]]>
    + network +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-10-hydra + 2023-02-10-hydra + Fri, 10 Feb 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team closed several gaps to align the Hydra scripts +implementation further with the specification. This also resulted in a slight +improvement on Hydra script size and costs. They consequently analysed the +asymptotic complexity of collect and fanout and how they relate. Also plutus-tx +profiling toolchain was evaluated and set up for future improvements on Hydra +on-chain performance. In discussions with researchers and internal auditors, +they also uncovered next steps on further securing the Head protocl using a +"full" minting policy.

    What did the team achieve this week

    • Closed several gaps to align script implementation with specification #452
      • Allow contest only once #680
      • Optimization through head output at index 0 #700
      • Value is preserved #702 + optimized exact value equality #709
    • Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to #721
    • Fixed our tooling around the Haskell language server
    • Discussed full minting policy with researchers
    • Started grooming “what we need for mainnet” on this idea ticket and milestone

    What are the goals of next week

    • Implement full minting policy
    • All remaining protocol discrepancies are implemented or groomed as individual features
    • Ideally release 0.9.0 with updated scripts
    • Discuss what we need for mainnet (milestone planning)
    • Redraw transaction graphs for specification (upon feedback)
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-09-mithril + 2023-02-09-mithril + Thu, 09 Feb 2023 00:00:00 GMT + + High level overview

    The Mithril team released a new 2304.1 distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.

    Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version 1.35.5 on their devnet and infrastructure.

    Low level overview

    • Released the new distribution 2304.1
    • Fixed a bug that prevented some signers to sign with 2304.0-prerelease #716
    • Completed the implementation of an EraChecker that checks if an era is active #708
    • Completed the implementation of an EraReader that gathers era activation data #709
    • Completed the implementation of an EraReader adapter with on chain transaction as source #710
    • Completed the relational design of the aggregator store #476
    • Completed adding a new SPO on the testing-preview network #729
    • Completed the upgrade of the Cardano node to 1.35.5 #725
    • Fixed flakiness in the CI #734
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-08-consensus + 2023-02-08-consensus + Wed, 08 Feb 2023 00:00:00 GMT + + High level summary

    We continue refactoring the UTxO HD prototype while we wait for the system level +benchmarks. We have created a new repository that contains the anti-diff +packages used in this prototype.

    On the Genesis front, we are preparing another meeting with the researchers to +audit the implementation design, and we continued working on basic tests and +simplifications.

    During the past two weeks we also introduced two new tools. One for dumping CBOR +encoded blocks to JSON, and another to serve a local immutable DB.

    Workstreams

    UTxO HD Prototype

    We are in the process of refactoring the UTxO HD prototype, while we wait for +the system level benchmarks to confirm if the performance of the prototype is +satisfactory.

    We also set up a repository for the anti-diff package, which +required us to refactor the code, write documentation, and prepare a release to +CHaP.

    Genesis

    We worked on basic tests for the Limit on Eagerness property of +Genesis. We also introduced further robustness and simplifications in the +Genesis Density governor. Finally, we developed a presentation to engage again +with the researchers on our Genesis implementation design.

    Technical debt

    Fostering collaboration

    We are in the process of polishing the ouroboros-consensus +documentation site, which we will use a the entry point for Consensus related +documentation. The first version will not be complete, but we plan on +systematically improving it.

    Support

    We added a tool to ouroboros-consensus-cardano-tools which allows +to dump the Chain DB blocks or any given CBOR encoded blocks as JSON.

    We also added another tool that serves an existing immutable DB via +BlockFetch and ChainSync. This tool can help in assisting our local benchmarking +efforts (for instance Genesis' ChainSync jumping prototype).

    ]]>
    + consensus +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-08-node-cli-api + 2023-02-08-node-cli-api + Wed, 08 Feb 2023 00:00:00 GMT + + 2023-02-08 - 2023-02-21

    High level summary

    More maintenance and resolving raised issues.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + cli-api +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-02-08-performance-and-tracing + 2023-02-08-performance-and-tracing + Wed, 08 Feb 2023 00:00:00 GMT + + High level summary
    1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we're currently running what we consider the final benchmark, to validate the underlying assumptions.
    2. Release benchmarking: we've performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.
    3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.
    4. New tracing: before going live, we're performing the documentation update, as well as reworking the end user migration guide.
    5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.
    6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.
    7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.

    Performance

    We are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:

    • we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,
    • after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,
    • finally, we're redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.

    In addition, we started benchmarks of the 1.35.6 release.

    Tracing

    A rework of the new tracing system's internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.

    Specifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.

    Infrastructure

    On the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we'll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.

    The work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.

    The Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops.

    ]]>
    + performance-tracing +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-03-crypto + 2023-02-03-crypto + Fri, 03 Feb 2023 00:00:00 GMT + + High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril.
    • cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.

    Low level summary

    Mithril

    • Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing PR#722
    • We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.
    • We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.

    cardano-base

    • There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381.
    • The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.
    • The update VRF PR#341 is finally merged, and we are ready to merge PR#344, which implements conversion functions from the compatible types between Praos and PraosBatchCompat.

    KES agent

    • Use of snockets to send the data directly from the socket to secure memory.
    • We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives
    • Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.

    MuSig2

    The GitHub Action linelint is used to check the files.

    • A new job for linting is added to the file /.github/workflows/ci.yml. The rules are configured in the file /.github/workflows/.linelint.yml. Some files from the configuration of libsecp were failing, so in the rules in .linelint.yml the failing files are denoted to be ignored by the linter.
    • Folders are reorganized. We created a folder to handle the example. This folder includes the examplemusig2.c, a distinct config.h, and helper.c. The example is enhanced by implementing the functions in the helper for the configuration given in config.h. The number of messages is different than the tests. The example is made more generic to run with a loop.
    ]]>
    + crypto +
    + + <![CDATA[Goedel Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-03-goedel + 2023-02-03-goedel + Fri, 03 Feb 2023 00:00:00 GMT + + The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been preparing several papers for peer review +and knowledge sharing and consulting within IO and the community.

    Details

    • R&D Seminar on experience participating in a member based organisation
    • Full day tutorial on performance engineering presented at HiPEAC +2023 conference
    • Finished preparing and submitted a paper on performance engineering +to an ACM workshop
    • Preparing a draft paper for future submission about verifying design +refinements for distributed system design
    • Consulting on performance design of other IO projects
    ]]>
    + goedel +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-03-hydra + 2023-02-03-hydra + Fri, 03 Feb 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team completed the Hydra specification with a section about +rollbacks and updated graphs +(#448). In a next step, +the specification will be made more approachable and an open standard. They +improved their hydra-cluster tool to launch a local --devnet sandbox +environment and continued aligning the hydra-plutus scripts with the +specification by hardening the checks on close and contest transactions.

    What did the team achieve this week

    • Completed the specification with a section about rollbacks and updated graphs +#448, with a follow-up on making it more approachable and an open standard.
    • Continued spec review with internal auditor and incorporated changes.
    • Talked to TxPipe about how Demeter and Hydra could work together
    • The hydra-cluster executable can be used to launch a local --devnet sandbox environment.
    • Reproduced the “head being stuck on network outage” bug
      • relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed.
    • Progressed with higher velocity by addressing more and more gaps #677

    What are the goals of next week

    • Upstream our JSON instances to the ledger
    • Close all transaction security related on-chain gaps
    • Ideally release 0.9.0 with updated scripts
    • Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-02-02-ledger + 2023-02-02-ledger + Thu, 02 Feb 2023 00:00:00 GMT + + High level summary

    Much of the work the past two weeks involved integration efforts, +cleaning up and debugging some serialization issues, +adding tests, and work on large projects that are still ongoing. +We also released a CIP this week that aims to make the ledger +a registered CIP category.

    Lower level summary

    Ledger evolution CIP

    We published a +CIP +that will make the Cardano ledger a registered category of the CIP process.

    Serialization issues

    We had previously thought that we had found a serialization problem with the redeemers, +but it turned out to just be particularly confusing code. +We have now clarified the issue for the future.

    See pull-3263, pull-3269, and pull-3268.

    Starting in protocol version 9, we will no longer accept duplicate keys in CBOR maps.

    See pull-3277.

    New tests

    We added a new property test suite for some of our custom containers.

    See pull-3270.

    Progress on a better cost model serialization situation.

    We are still working our way through issue-2902. +Towards this end, we are now properly gating the new flexible encoders +until version 9.

    See pull-3274.

    Nightly tests

    We are still experimenting with moving more CI actions to GitHub actions.

    See pull-3276.

    Constraint based generators

    We continue to add to our proof of concept for constraint based generators. +See the previous ledger update for more information about this project.

    ]]>
    + ledger +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-27-hydra + 2023-01-27-hydra + Fri, 27 Jan 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team had a monthly review meeting with their stakeholders, +contributors and interested people from the community. The monthly repot for +January 2023 is a digest +of the things presented and also includes a summary of the meeting. The Hydra +specification was getting discussed and the team is incorporating suggested +changes of reviewers. Last but not least, they compute and publish script +information on every PR and also on the +website +now.

    What did the team achieve this week

    • Had the monthly review meeting with a broader audience
    • Published the monthly report for January 2023
    • Reviewed the spec and discussed individual aborts with researchers
    • Compute and publish script information along benchmarks on every PR and website

    What are the goals of next week

    • Add rollback section to Hydra spec, update pictures and publish it as part of repository
    • Discuss bigger spec findings (full minting policy, individual aborts, split fanout) as change/pull requests on the spec in the repository.
    • Groom & plan actions required for a maintainable Head explorer + break down align gaps feature.
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-26-mithril + 2023-01-26-mithril + Thu, 26 Jan 2023 00:00:00 GMT + + High level overview

    The Mithril team released a new 2302.0 distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.

    Finally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.

    Low level overview

    • Released the new distribution 2302.0
    • Implemented a backward/forward compatibility mechanism for API messages #688:
      • Implement the mechanism for the signer registration #689
      • Implement the mechanism for the signature registration #693
      • Implement the mechanism for epoch settings #695
      • Implement the mechanism for certificate pending #696
      • Implement the mechanism for certificate #697
      • Implement the mechanism for snapshots list #698
      • Implement the mechanism for snapshot #699
      • Update enforcement of API version with Semver #705
    • Completed the PoC implementation of backward compatibility with protobuf #677
    • Completed the PoC implementation of backward compatibility with avro #678
    • Completed the PoC to Read/Write transaction on chain for Era activations #672
    • Completed the upgrade Cardano devnet to 1.35.4 #523
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-25-consensus + 2023-01-25-consensus + Wed, 25 Jan 2023 00:00:00 GMT + + High level summary

    During the past two weeks, the consensus team finished the testing activities +around the UTxO-HD prototype. This is a very important milestone which will +enable us to run system-level tests and benchmarks, as well as start refactoring +and cleaning the prototype. Regarding our Genesis workstream, we elaborated a +roadmap that gives an indication of the remaining work. We also continued our +work on benchmarking chain-sync-jumping. We also continued working on improving +the way we handle blocks from the future, and advancing the integration of the +new VRF and KES crypto.

    Workstreams

    UTxO HD Prototype

    As the prototype is nearing its completion, it was important to have enough +confidence that we will be able to move additional parts of the ledger state +onto disk. We worked together with the Ledger team to elaborate a +sketch on how the UTxO-HD design would accommodate the migration of +additional data from memory to disk. This gave us enough confidence that the +current architecture will be extensible in the future.

    On the testing front, we added property-based tests for the UTxO-HD +type classes.

    We also enabled disabled components, and addressed several +technical debt issues:

    • Implement splitSized anti-diff split (#4269), and integrate it +into consensus (#4273).
    • Renaming of peekVal to peekMDBVal (#7).

    We ran ad-hoc benchmarks for syncing a chain from scratch and replaying. We +found a race condition in the LMDB backing store, which we fixed. +After the fix we were able to successfully run these benchmarks. The results +were published by this pull request.

    We used our db-analyser tool to benchmark the cost of reading keys and +flushing values to disk. The following plot shows the duration of these disk +operation in relation to the main ledger operations, where we can see that the +cost of the former are comparatively low. The spike at the beginning of the +graph is when, at the start of the Shelley era, the entire UTxO set is flushed +to disk.

    UTxO-HD read and flush benchmarks

    After months of hard work adding tests for the prototype, we are ready to run +end-to-end tests on the node, and system level benchmarks. This signals a very +important milestone for the UTxO-HD workstream 🎉.

    Genesis

    We elaborated a high-level decomposition of the remaining +work for Genesis. We also continued benchmarking the chain-sync-jumping +happy-path.

    Technical debt

    We continued working on improving the way we handle blocks from the future.

    Support

    We completed the mapping of Crypto to HeaderCrypto and body Crypto. +HeaderCrypto is moved to cardano-protocol-tpraos. We created a draft pull +request to facilitate compiling consensus.

    ]]>
    + consensus +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-25-node-cli-api + 2023-01-25-node-cli-api + Wed, 25 Jan 2023 00:00:00 GMT + + 2023-01-25 - 2023-02-07

    High level summary

    General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the cardano-cli query stake-snapshot command.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + cli-api +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-20-crypto + 2023-01-20-crypto + Fri, 20 Jan 2023 00:00:00 GMT + + High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We explored whether some uses of transmute could be removed, but it resulted in considerable regression.
    • cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision.
    • KES agent: An inconsistency between contra-tracer available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the contra-tracer used by consensus.

    Low level summary

    Mithril

    • We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average PR#675. We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing.
    • We are writing a RFP for the audit of the core library.

    cardano-base

    • A problem with Nix is blocking merge of PR#341
    • Plutus team ran benchmarks of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution.
    • Team is fully digesting the Plonk paper.
    • There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used.

    KES agent

    • A little unforseen delay has been caused by a mismatch in the use of contra-tracer. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are doing the change, but still the CI is not happy.
    • The same was needed for the KES agents prerequisites PR#317.
    • We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency
    ]]>
    + crypto +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-20-hydra + 2023-01-20-hydra + Fri, 20 Jan 2023 00:00:00 GMT + + High-level summary

    This week, the Hydra team has been focusing on the write-up of the Hydra HeadV1 +specification. Of which a first version has been aggregated and is currently +under review. They aligned the on-chain scripts of reimbursing funds on abort +like defined in the specification, improved the mutation test framework to have +more control when testing plutus scripts. The added HeadId in the API and the +TUI example client make hydra-node easier to use and a first experiment of a +Hydra Head explorer was showing the utility of this - see what Heads exist on +the preview network here.

    What did the team achieve this week

    • HeadId to API and display in the TUI #678
    • Experiment of creating a hydra explorer, first result hosted here
    • Improved mutation framework allowing to fail for the right reason #679
    • Correctly reimburse funds in abort (matching the spec) #670
    • Finished a first write-up of the Hydra HeadV1 spec: Read it on overleaf (Communication channels for feedback)

    What are the goals of next week

    • Monthly review meeting with a broader audience
    • Groom & plan actions required for a maintainable Head explorer
    • Break “align gaps” feature into smaller chunks (at least on- /off-chain) and groom it
    • Review the spec & discuss individual aborts with researchers (a bigger open question)
    ]]>
    + hydra +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-20-network + 2023-01-20-network + Fri, 20 Jan 2023 00:00:00 GMT + + High level summary

    We have been working towards cardano-node-1.35.5 release. QA & benchmarking +teams gave a green light for the release, and we made decent progress with some +CI problem which we encountered on the way (PR #4612). We are also working on +peer sharing, making improvements in our testing infrastructure, reducing +technical debt and making progress towards io-sim-1.0.0.0. Galois is making +progress on Handshake improvements.

    Low level summary

    Our diffusion simulation network now includes a mixed network of initiator +only and initiator and responder nodes. issue #4222

    We are now reviewing the peer sharing pull request.

    We are also reviewing pull request which introduces handshake query flag. PR #4256

    We fixed a bug in our network simulator. The bug was triggered when a node +died when performing a simultaneous TCP open (a corner case of a corner case!). PR #4265

    We also refactored Snocket interface and removed the bearer construction from +its methods. PR #4260

    We are working towards releasing io-sim-1.0.0.0 on Hackage, which includes +reviewing two PRs: PR #57 and PR #60 as well as writing an announcement +blog post.

    ]]>
    + network + release +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-20-sre + 2023-01-20-sre + Fri, 20 Jan 2023 00:00:00 GMT + + High level summary

    The SRE team continues work on Cicero, Tullia, and Bitte, as well as providing +support for cardano-world.

    Lower level summary

    Cicero

    • Fixed various race conditions around transformers.
    • Brought our CI up to date.
    • Migrated to the Nomad exec driver with Nix support for many actions.
    • Moved Nix builds to the Nomad clients for much better cache locality.
    • Ongoing work on vastly improving the action matching and evaluation speed.

    Tullia

    • Made it easier to support cloning from a PR's fork
    • Update to latest std
    • Add workaround for cgroup issue: nomad#12877
    • github preset: add github.ci.remote and (read|get)Repository functions
    • Fix various issues around CUE handling

    Bitte

    • Upgrade to NixOS 22.11
    • Prototype usage of Colmena for deploys instead of deploy-rs
    • Finalized work on Equinix Metal support
    • Prototype better secrets management with ragenix instead of sops-nix
    • Improve CI and bring it up to date

    cardano-world

    • Fixd various OOM issues on preview and preprod
    • Rotated KES keys on preview and preprod
    • Optimize mainnet db-sync to cope with higher load
    • Fix an issue where PostgreSQL would fail after a reboot

    bitte-world

    • Updated to NixOS 22.11

    ci-world

    • Updated to NixOS 22.11
    • Added Equnix cluster
    • Improve caching of Nix builds
    ]]>
    + sre +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-19-ledger + 2023-01-19-ledger + Thu, 19 Jan 2023 00:00:00 GMT + + High level summary

    The ledger team completed some preliminary ground work in preparation for CIP-1694 +(restructuring the ledger state), +fixed the PDF hosting problem (mostly the formal specs), +built out more of the new user-friendly ledger API, +finished a proof of concept for constraint-based generators for property tests +(with the hopes of being able to replace our trace generators one day), +and addressed technical debt.

    Lower level summary

    Restructuring the ledger state

    The existing governance structures will be replace in the conway ledger era, +as described in CIP-1694. +In particular, the ledger rules will be restructured as follows:

       BBODY
    |
    |-------------------------------|
    v v
    TICK LEDGERS
    | |
    |---------| |
    v v v
    RUPD ~NEWEPOCH~ ~LEDGER~
    | |
    |----------| |--------|-------------------|-----------|
    v v v v v
    ~EPOCH~ +ENACTMENT+ DELEGS UTXOW +TALLY+
    | | |
    |---------|------------| v |
    v v v DELPL v
    SNAP POOLREAP -UPEC- | UTXO
    |--------| |
    v v v
    POOL DELEG ~UTXOS~

    -..- Removed
    +..+ Added
    ~..~ Modified

    Moreover, the ledger state will also be restructured in accordance with the new rules. +In the conway code, we have now removed UPEC, added TALLY, and stubbed ENACTMENT. +We have also adapted all the data structures in the ledger state.

    See:

    PDF hosting

    We now build all of our PDFs using a GitHub action which is triggered by pushing a tag +with a specific form, cardano-ledger-spec-YYYY-MM-DD. +The action creates a GitHub release containing the PDFs. +The links in the main ledger README now point to the PDFs in the latest release.

    See:

    Powering the new ledger API

    We have now removed all the HasField instances from the protocol parameter data types, +and replaced them with lenses. +This is probably the last major restructuring that the ledger team will do on the code base +for the API for a while +(the Plutus tools team will be working on it next, see here). +We also added a new helpful function ensureMinCoinTxOut.

    See:

    Constraint-based generators

    Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks +which span several epochs, mimicking a real network. +These tests are, in theory, excellent for checking properties. +They are, however, very difficult to maintain and are not as random as we would like +(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We would like to switch to tests which instead generate a random ledger state representative +of not just an initial state, generate a single random valid block, and then test our properties. +The hope is that these will be much more random and easier to maintain.

    We have finished a proof of concept are encouraged that this approach could work!

    See:

    Technical debt

    • pull-3244 massive CI speedup
    • pull-3249 better types for fees in the protocol parameters
    • pull-3264 move our annotator code to the cardano-ledger-binary package where it belongs
    • pull-3239 move the Wdrls type to the Core module.
    ]]>
    + ledger +
    + + <![CDATA[DB-sync Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-14-db-sync + 2023-01-14-db-sync + Sat, 14 Jan 2023 00:00:00 GMT + + High level summary

    After spending the last months on improving DBSync and releasing 13.1.0.0 the DBSync team focused +the last weeks on integrating upstream changes and tech debt. This includes integrating CHaP, the +new leger core and ghc-9.2.4

    Lower level summary

    • Integrate CHaP +#1331
    • Integrate new ledger core 0.1.1.1 and ghc-9.2 +#1332
    • Technical debt: Add code formatter fourmolu +#1334
    • Preparing and tracking Conway and UTxO integration
    ]]>
    + db-sync +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-13-hydra + 2023-01-13-hydra + Fri, 13 Jan 2023 00:00:00 GMT + + High-level summary

    Since last weekly update before christmas, the Hydra team worked on the +technical specification, closed gaps in hydra-plutus scripts, made the unique +headId available to Hydra clients through the API, allow the hydra-node to +explicitly synchronize from genesis (if configured), and fixed smaller log and +build issues reported by new users.

    Besides this, a retrospective blog +post +was published by Matthias Benkort (CF) on Hydra, summarizing our progress made +in 2022 also an outlook where Hydra is headed for in 2023. Also, the team had +some first sessions on the voting project with Catalyst and the CF.

    A full digest monthly digest for December 2022 can be found on the hydra +website.

    What did the team achieve this week

    • Had some first sessions on the voting project with Catalyst and CF
    • Published retrospective blog +post +by Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also +an outlook where Hydra is headed for in 2023.
    • Worked on the LaTeX spec for HydraHeadV1, not final or published yet - latest +version in this repository.
    • Add unique headId to API and hence make it available to clients.
    • Allow hydra-node to explicitly synchronize from genesis using --start-chain-from 0.
    • Closed gaps in hydra-plutus scripts
      • bounded transaction validity (ADR21)
      • enforcing contract continuity via state token in output
    • Fixed JSON for some logs and smaller build issues reported by new users.

    What are the goals of next week

    • Reach out to have hydra-tutorial integrated.
    • Plan the next couple of months.
    • Complete checking reimbursing of commits in head validator.
    • Align plutus scripts to spec and simplify them (identified some simplifications)
    • Improve mutation framework to be sure we fail tests for the right reasons
    • Complete the spec except the open points (<5) and also discuss them with researchers.
    ]]>
    + hydra +
    + + <![CDATA[Node Release Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-13-release + 2023-01-13-release + Fri, 13 Jan 2023 00:00:00 GMT + + Node Reelease Update

    2022-11-02 - 2023-01-13

    Executive Summary

    A 1.35.5 release for single relay P2P is nearly completed and should be released this month. This release is based on +release/1.35 branch and does not bump cardano-ledger.

    The team successfully integrated an interim release bump of ledger and consensus into cardano-node master. +This work will not be released in a node version, but will be continued by the current dependency bump in progress.

    We anticipate once this dependency bump is completed, regular 2 week releases will be feasible again.

    The 1.35.4 release is being ran by more than 70% of stake pools. Planning for the mainnet hard fork date is in progress.

    Completed

    In Progress

    ]]>
    + release +
    + + <![CDATA[System Test Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-13-system-test + 2023-01-13-system-test + Fri, 13 Jan 2023 00:00:00 GMT + + High level summary

    During the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the P2P Single +Relay functionality.

    We also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level.

    Workstreams

    Framework improvements:

    • extended the cardano-node-tests with the ability for anybody to fork the repo and run all our System Tests on GitHub Actions
    • added 2 new nightly pipelines - nightly-mixed and nightly-p2p - details here
    • some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;

    === 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) === + to + === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===

    Node:

    • ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled
    • started the preparations for testing the next tag - details here

    DB-Sync:

    • some improvements on db-sync sync tests
    ]]>
    + system-test +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-12-mithril + 2023-01-12-mithril + Thu, 12 Jan 2023 00:00:00 GMT + + High level overview

    The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ADR. They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.

    Finally, they have worked on upgrading the devnet and fixing some flakiness in the end to end tests of the CI.

    Low level overview

    • Implemented the redaction of an ADR for handling graceful updates of the Mithril Network #671
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with protobuf #677
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with avro #678
    • Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction #672
    • Worked on upgrading the Cardano node of the Mithril devnet, as well as fixing flakiness of the CI #523
    • Prepared and tested the new 2302 distribution pre-release 2302.0-prerelease
    • Updated the documentation for SPO to build a signer node in order to better reflect the new release process #681
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-11-consensus + 2023-01-11-consensus + Wed, 11 Jan 2023 00:00:00 GMT + + High level summary

    The consensus team is resuming its activities after the Christmas break. During +these weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and +discussing with the Ledger team the changes that might be required for the next +iterations. The pull request that adds the Conway era is waiting for a second +review round and we hope to merge it soon. On the technical debt side we are +looking into a property-test failure found in the iterators. We are +investigating if this is an error in the model or in the implementation. We also +improved the documentation of our testing code.

    Workstreams

    UTxO HD Prototype

    We worked with the Ledger team to start preparing the next versions of UTxO-HD. +The Ledger team is concerned that for the remaining maps we might need the full +ledger state on epoch boundaries. Since the main consumer of the ledger rules is +Consensus, the code that requires access to a full state could be moved from the +ledger to some Ledger-Consensus bridge. Eg. the traversal of rewards could take +place in such bridge, instead of querying the ledger for the values that are +required in the epoch-transition computations.

    We relocated some UTxO-HD definitions, in preparation for merging +the prototype into master.

    We also completed updated local benchmarks comparing the replay time and memory +consumption of:

    • the baseline node (f2fc76ef45647275c98634da1718290b976ff364)
    • the UTxO-HD node with the in-memory backend
    • the UTxO-HD node with the LMDB backend

    The following plot shows the results: we can see that the LMDB node barely +reaches 8GB of memory, but it takes 1.78 times longer to replay the chain. The +in-memory backend is about 30 minutes faster, but still slower than the baseline +version. We are aware of this phenomenon and it is inherent to the problem of +maintaining sequences of differences of the last k ledger states that allows +us to perform rollback and roll-forward. We are in the process of measuring +syncing from scratch times.

    We also added StaticEither accessors that helped us to simplify +the UTxO-HD prototype.

    New Conway era

    We incorporated the feedback of the pull request, and rebased this +branch on top of master. The PR is pending a second review round and we hope +to merge this soon.

    Technical debt

    We are investigating a property-testing failure involving +iterators. Solving this requires understanding the expected behavior of +iterators in the counterexample found by QuickCheck to determine if the error +is in the model or in the implementation.

    Fostering collaboration

    We moved the contents of docs/Testing.md closer to the code, so that the +explanations about the tests are easier to find in the relevant modules, and the +documentation is easier to keep up to date.

    ]]>
    + consensus +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2023-01-11-performance-and-tracing + 2023-01-11-performance-and-tracing + Wed, 11 Jan 2023 00:00:00 GMT + + High level summary

    Since our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:

    1. SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress.
    2. The new tracing system: the improved API of the new tracing system was implemented, and we're now porting the tracing integration layer over.
    3. Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks.
    4. New benchmark deployment infrastructure: we've made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs.
    5. Legacy benchmarking: we've started merging the legacy benchmark deployment infrastructure into the workbench.
    6. Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.

    Performance

    The AWS cluster infrastructure necessary for SECP benchmarking is still being worked on.

    Tracing

    The improved tracing internals were implemented, and we're now into the phase of updating the tracing integration, which is also mostly done.

    Infrastructure

    Thanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components.

    On the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters. +We now have a very clear and granular method to keep track of protocol parameter evolution -- e.g. the mainnet history changes are now tracked at epoch granularity, while also allowing for systematically described change overlays. This makes the benchmark profile definition much more clear and robust against mistakes.

    We also started a merge of the legacy benchmarking environment (based on cardano-ops) into the workbench. The separation between environments was too costly, causing us to reimplement any benchmarking change twice -- first, during development, in the workbench, then in cardano-ops. In addition, maintenance of compatibility code was incurring additional costs, slowing benchmark data analysis development. +Once this merge is complete, this will allow us to sharply cut the benchmark development cycle and overheads.

    ]]>
    + performance-tracing +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-06-crypto + 2023-01-06-crypto + Fri, 06 Jan 2023 00:00:00 GMT + + High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: The API features (error handling) has been merged.
    • Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI.
    • KES agent: We keep progressing with KES secure forgetting implementation.

    We also started working in the cryptography engineering handbook, which will be a cross team effort.

    Low level summary

    MuSig2

    • Merged the more granular error handling mechanism PR#33

    Mithril

    • Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in Version 0.1.1, which was published in crates.io.
    • Updated new KES format to mithril library PR 674
    • We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync PR 531
    • We keep progressing on reducing the use of transmute in mithril-stm.

    cardano-base

    • Nothing new to report. Still working in merging these PRs. We are only missing nix merge of PR#520 and the updates on VRF will be merged.

    KES agent

    • We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests PR#255.

    Cryptography handbook

    We have made available the (temporary) cryptography handbook https://input-output-hk.github.io/cryptography_spec/, and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives.

    ]]>
    + crypto +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2023-01-05-ledger + 2023-01-05-ledger + Thu, 05 Jan 2023 00:00:00 GMT + + High level summary

    The ledger team finished up the remaining work for tracking individual depots, +built out the new Conway era transaction body (in line with CIP-1694), +greatly reduce some problematically large calculations on the epoch boundary, +and addressed technical debt.

    Lower level summary

    Finishing the deposit tracking

    The initial work on the individual deposit tracking project focused only on correctness. +As this is a large data structure +(since its size is linear with respect to the number of registered stake credentials), +it is very important that we also reduce the memory overhead as much as possible. +Fortunately, we were able to add very little overhead for the deposits by using existing +efficient data structures. The extra tracking now only incurs one word (8 bytes) +per registered stake credential.

    See:

    New Conway era transaction

    We implemented the Conway era transaction body, which is in line with CIP-1694. +Note that the Conway era implements, losing speaking, the parts of CIP-1694 that are not +related to the liquid democracy (the "DReps"). +The new transaction body adds the new governance actions and votes, +while also deprecating the old governance structures +(i.e. the old protocol parameter updates and MIR certificates).

    We also now have the wire specification (CDDL file) and serialization code in place. +The wire specification is still subject to change while we work on the Conway era, +but it is now usable and has proper testing support +(so that, for example, the serialization round-trips, etc).

    See:

    Optimizing the TICKF transition

    Every since the release of the Shelley era, we have been working to reduce the computational load +placed on the node by the ledger at the epoch boundary. +While still not perfect, we believe that we have removed one of the final problematically long +epoch boundary computations that exacerbate situations like +this. +In particular, the problem involved the way in which the consensus layer obtains a view of the +ledger for the purposes of checking the leadership schedule in a new epoch. +We implemented a stopgap measure which now only incurs a single multi-second cost once per epoch +instead of potentially several multi-second costs while the networks waits for the first block +of a new epoch to be minted.

    See:

    Technical debt

    We closed the year out with a lot of reduction to the technical debt!

    Improved ledger event

    • pull-3212 - The ledger events are not guaranteed to appear in any given order within a block. +For this reason, motivated by the use case in db-sync, the TotalDeposits event now +includes a transaction ID and emits the change in deposits instead of the value.

    Improved type saftey

    • pull-3208 - We replaced NominalDiffTime with a newtype wrapper. The problem was that our CBOR +encoders and decoders were using the wrong level of precision, having to due with with +the Shelley genesis file. We removed the potential problem with a newtype wrapper.
    • pull-3167 - We now use a GADT to ensure consistency of the Plutus language in the types +for TransactionScriptFailure and PlutusDebug.

    Code/Module organization

    • pull-3175 - The Allegra and Mary eras had an unusual relationship in our codebase, +due to the uncertainly of release dates while we were implementing them. +In particular, they were coupled in way that is different from the rest of the code base. +With hindsight on our side, we split the combined shelley-ma Haskell package into two +separate ledger era packages, which is now consistent with the rest of the repository +and module structure.
    • pull-3184 - We created a core test sub-library, cleaning up a lot of our property test +generator code.
    • pull-3210 - We moved the KeyPair type to the test library. Outside of testing, +the ledger does not need to deal with signing keys, and since this is a topic that +deserves the utmost care, it is best to make it clear that our use of signing keys +is only for testing.
    • pull-3229 - We split the Cardano.Ledger.Alonzo.Data module, which is more consistent with the rest +of the codebase.

    Revert pointer address deprecation

    Thanks to one of our excellent internal auditors, +@jmhrpr, +we now have a better plan for deprecating pointer addresses. +This meant that we had to revert the previous work to deprecate them.

    See:

    Miscellaneous

    • pull-3205 - We removed deprecated type synonyms.
    • pull-3218 - We cleaned up the address deserialization.
    • pull-3223 - We fixed faulty address deserialization tests.
    • pull-3222 - We switched to a general type family TxOut from concrete ones, +reducing many constraints.
    • pull-3224 - ShelleyGenesis is now parameterized by crypto instead of by era.
    • pull-3170 - We set the cabal-version to 3.0 in our projects.
    • pull-3172 - We removed the now useless EncodeMint/DecodeMint classes.
    • pull-3225 - We switch from ormolu to +fourmolu. +The reason was to be able to finally have more diff friendly code!
    ]]>
    + ledger +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-28-node-cli-api + 2022-12-28-node-cli-api + Wed, 28 Dec 2022 00:00:00 GMT + + 2022-12-28 - 2023-01-10

    High level summary

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + cli-api +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-16-hydra + 2022-12-16-hydra + Fri, 16 Dec 2022 00:00:00 GMT + + High-level summary

    This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on the website and reduced the cost for commit transactions by ~30% with the help of reference scripts.

    The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.

    What did the team achieve this week

    • Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.
    • Reduce commit transaction costs by ~30% with reference scripts.
    • Prepared an RFP for external audit of the Hydra Head solution.
    • Fixed transaction cost benchmarks for abort tx #631.
    • Recorded decision to use model-based testing (ADR22) and improved Model documentation.
      • Concluding the first increment on Validate coordinated Head protocol #194.
      • Formulated next step / follow-up on testing the Soundness property of our protocol #656.
    • Switched to using nix flakes for development setup and CI build #646.

    What are the goals of next week

    • Push ADR21 & tx validity gap over the finish line (smoke tests missing).
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Close & recap on the year with another monthly report (+ blog post).
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-15-mithril + 2022-12-15-mithril + Thu, 15 Dec 2022 00:00:00 GMT + + High level overview

    The Mithril team has released the new distribution 2248.1 of their nodes. They have published the first version of the Mithril cryptographic library on crates.io, the Rust community’s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.

    Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities.

    Low level overview

    • Implemented removing verification key and stake from single signatures #619
    • Completed the extraction of the signer registration from the multi-signer #642
    • Completed the extraction of the certificate creation from the multi-signer #638
    • Implemented a workflow to test client binaries (Linux / MacOS / Windows) #601
    • Completed the signature of the artifacts produced by the CI #587
    • Fixed the protocol parameters transition #627
    • Worked on optimizing the snapshot digest computation #510
    • Worked on enforcing the API protocol versions in the client and signer #633
    • Worked on deactivating the non certified signer registration mode #621
    • Worked on the re-genesis of the test networks #651
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-14-consensus + 2022-12-14-consensus + Wed, 14 Dec 2022 00:00:00 GMT + + High level summary

    During the past two weeks, the Consensus team finalized the QSM tests for the +backing store and Mempool on the UTxO-HD branch with important discoveries +regarding parallel QSM testing. We also worked with the Ledger team to envisage +the modifications that are required in Ledger and Consensus to accommodate the +changes in the crypto VRF and KES. The db-analyser now supports bechmarking +the ledger operations, which will allow us to identify, debug, and profile +potential performance problems. We drafted a document that defines how to manage +the versions of Consensus-related packages. The top level documentation of +ouroboros-network now features a description of the consensus components and +provides a hyperlinked map to the modules documentation.

    Workstreams

    UTxO HD prototype

    Whereas we had passing sequential state-machine tests for the mempool, the +parallel case proved to be more challenging than we thought. The operation of +adding a list of transactions to the mempool is not atomic and, as a result, +when adding a list of transactions, transactions from other processes can be +added in between. The mempool implementation handles this correctly, however +this required us to redesign the parallel model we had to take +the lack of atomicity into account.

    Backing store property tests

    We finished refactoring the backing store property tests. The second review +round is ongoing.

    LSM tree implementation

    We are working on benchmarking (in terms of time and number of IO operations) +fetching/looking up data from disk.

    Genesis

    We worked on the design of a mechanism to prevent a DoS attack on our Genesis +design related to rollbacks. This was arguably the biggest outstanding question.

    During the discussions around Genesis, we noticed a design boundary that nicely +delineates a fundamental component. We almost have a full Haskell prototype of +it. It will be very nicely self-contained, perhaps even usable in the ultimate +implementation!

    New VRF and KES crypto integration

    We collaborated with the Ledger team on preparing the ledger state and crypto +types to avoid huge allocation on the epoch boundary when changing aspects of +the crypto that will only manifest in headers, not in the ledger states.

    Technical debt

    We merged the pull-request that adds a support to db-analyser for +benchmarking ledger operations. This will allow us to identify, debug, and +profile potential performance problems. The benchmark focus on the main 5 ledger +operations that are involved in chain syncing, block forging, and block +validation, namely:

    1. Forecast.
    2. Header tick.
    3. Header application.
    4. Block tick.
    5. Block application.

    The following figure shows a plot of the benchmarking results for the first 65 +million blocks (approximately) of the Cardano chain. The thin yellow lines under +the x-axis show the epoch boundaries, whereas the thick yellow lines correspond +to the era transitions.

    As we can see in this figure, era and epoch boundaries require more computation +time. The ledger team are aware of this problem, and we are working to improve +this situation.

    Fostering collaboration

    We drafted a document motivating and defining how Consensus (and +possibly other core teams) will/should manage our package versions. This +pull-request garnered many great discussions from our team members and other +teams too: Sebastian Nagel, Arnaud Bailly, Michael Peyton-Jones, Ziyang Liu, et +al. We want to thank you all for your input, and we found this discussion very +enlightening!

    We merged the pull request that adds an overview of consensus to +the top level +documentation of +ouroboros-network. This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    ]]>
    + consensus +
    + + <![CDATA[DB-sync Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-14-db-sync + 2022-12-14-db-sync + Wed, 14 Dec 2022 00:00:00 GMT + + High level summary

    The DBSync team continued testing release 13.1.0.0. The QA team has reported that no issues have +been found. The DBSync team also worked on cherry-picks back to master and on fixing bugs.

    Lower level summary

    • Release is cherry-picked back to master, which uses the new rollback mechanism which uses +reverse indexes, same as the release +#1320 +This also fixes a bug number of issues on master.
    • Depenencies upgrade and CHaP integration +#1324
    • AdaPots fix #1323. This +fixes an issue where the per epoch AdaPots didn't match the epoch boundary, but +they also included changes from the first block of the epoch.
    • Deposits Event fix #3212. This pr +adjusts the Deposits ledger events, so that it can be better used by db-sync. This can reduce the +number of queries that db-sync does during syncing an make syncing faster.
    ]]>
    + db-sync +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-14-node-cli-api + 2022-12-14-node-cli-api + Wed, 14 Dec 2022 00:00:00 GMT + + 2022-12-14 - 2022-12-27

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    ]]>
    + cli-api +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2022-12-14-performance-and-tracing + 2022-12-14-performance-and-tracing + Wed, 14 Dec 2022 00:00:00 GMT + + High level summary
    1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.
    2. A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery.
    3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals.
    4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.
    5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.

    Performance

    The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload.

    We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.

    Tracing

    After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.

    To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:

    1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.
    2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.

    All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further.

    In addition, we're still pursuing our performance-enhancing rework of the new tracing internals.

    Infrastructure

    After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.

    Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it. +This means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis. +This will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports.

    A new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches. +Previously we only had automation for two aspects separately, so we only could either:

    • compare individual runs (used for different node configurations / versions)
    • collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version) +Naturally, combining these two capabilities was a long-desired feature of our analysis pipeline.
    ]]>
    + performance-tracing +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-12-network + 2022-12-12-network + Mon, 12 Dec 2022 00:00:00 GMT + + High level summary

    In last sprint the team focused on preparations for the conference talk at +OPODIS 2022. We also worked on preparations to publish io-sim and related +packages on Hackage (PR #57, PR #60).

    We also started reviewing:

    • ouroboros-network
    • cardano-node
    • cardano-ledger +repositories for open-source readiness (PR #4128).

    We prepared a PR which changes how node-to-node and node-to-client protocol +versiones are serialised in cardano-node log (PR #4691).

    ]]>
    + network + release +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-09-crypto + 2022-12-09-crypto + Fri, 09 Dec 2022 00:00:00 GMT + + High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency.
    • Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack.
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • [Still in progress] We are introducing a more granular error handling mechanism PR#33
    • We merged the API redesig PR#35
    • We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future PR#36

    Mithril

    • We merged the individual signature PR#620
    • We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (kes repo)

    cardano-base

    • Nothing new to report. Still working in merging these PRs.
    • We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a bug in GHC

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Fixed a 'use-after-free' bug in the KES agent.
    ]]>
    + crypto +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-09-hydra + 2022-12-09-hydra + Fri, 09 Dec 2022 00:00:00 GMT + + High-level summary

    This week, the Hydra team has worked on completing to "Validate coordinated head protocol against formal model", this is a huge step to verify the implementation is secure. They also worked on implementing ADR21 related to bounded tx validity which is now under review. HydraPay project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of issues they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.

    What did the team achieve this week

    • Document model based testing #194 & #641
    • Got ADR21, reducing gaps between implementation and specification, under review.
    • Complete review on hydra-tutorial.
    • Complete first round of review on HydraPay work #634
    • Meeting with Director of CyberSecurity frio IOG to unblock "the RFP prepared for the external audit" #606
    • Remove vasil-dev and testnet from smoke-test because they were not working #630
    • Fix flaky plutus-merkle-tree test #642
    • Refactor NetworkSpec to improve legilibility.
    • Fix benchmark cost for abortTx #631
    • Adapt nix.conf to the recent hydra-ci nix cache migration.

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation.
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Get Cicero (new CI) working.
    • Use reference inputs to reduce the cost of the commitTx.
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-09-ledger + 2022-12-09-ledger + Fri, 09 Dec 2022 00:00:00 GMT + + High level summary

    The Plutus tools team at IOG has started helping the ledger team to build out a user friendly +cardano-ledger-api package! +A GitHub project +will be filled out in the days ahead, +people interested in the API can use it to follow along and join in on the conversations.

    The ledger team has started using +architectural decision records +to leave a record of important decisions that the team makes. +We will retroactively go back through past decisions and make ADRs for them.

    The logic to track individual deposits is now nearly in place. +We are prioritizing correctness with our first pull request, and will follow up with +performance optimizations and general cleanup next.

    Pointer addresses are being deprecated with the Cardano major protocol version 8. +See CPS-0002 +for more context.

    Lower level summary

    Cardano ledger API

    The Plutus tools team has taken our minimal cardano-ledger-api package and started filling it +out and adding much needed documentation. +They have also added doctests! +In the days to come, the Plutus tools team will map out a lot more work for the API and record +it in this +GitHub project.

    See

    Architectural Decision Records (ADRs)

    We are now providing more context and leaving a record of important decisions that are made +in the ledger. The first ADR explains the very lightweight process.

    See

    Tracking individual deposits

    See ADR-3 +for background. +We now have the logic in place to track individual deposits, and a host of property tests +to make sure that the logic is correct. +The current implementation uses more memory than it needs to, and we will address that next, +with our hope being to only use one word (8 bytes) per registered stake credential. +There is a fair amount of other cleanup needed for general maintainability.

    See

    Removing pointer addresses

    Pointer addresses, which have never seen any real use +(there are something like eleven on mainnet), are being deprecated starting at Cardano major +version 9. +CPS-0002 gives the context. +We are disabling them by first preventing transaction outputs containing them +from being serialized by the node at the moment we switch to version 9. +At the hard fork after that, we will translate the existing few pointer addresses +to enterprise addresses.

    See

    Technical debt

    • pull-3162 - Sometimes we have to put safeguards in place for hard forks which may never +be exercised. After we have passed the given hardfork, we are able to clean up the code +and simplify our logic. We removed all of the ones that we are currently easily able to.
    • pull-3165 - We improved the type safety of our code while also discovering and fixing +a serialization bug.
    • pull-3172 - We removed dead code.
    • pull-3175 - The Allegra and the Mary code used to be coupled in a particular way the we grew to +dislike. We made these two ledger eras now uniform with the rest of our code base.
    • pull-3184 - We organized our property testing code.
    • pull-3200 - The Plutus tools teams fixed an outstanding bug in the translation from the +ledger state to the Plutus script context.
    ]]>
    + ledger +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-02-hydra + 2022-12-02-hydra + Fri, 02 Dec 2022 00:00:00 GMT + + High-level summary

    This week, the Hydra team has worked on cleaning up several things in progress +after last week's summit. They have extended their model-based testing (MBT) +approach with transaction creation & observation +#410, solved +AcquirePointTooOld problems of the hydra-node with by changing the wallet +initialization #439. +Also, the Hydra researchers updated the security proofs of the Coordinated Hydra +Head, which are bound to be included in the Hydra HeadV1 specification.

    What did the team achieve this week

    • Monthly review & report - will also be published on our website #644
    • Extended the model-based testing (MBT) with transaction creation/observation #410
    • Solve AcquirePointTooOld problems with new wallet initialization #439
    • Fixed our hydraw deployments (EC2 instances)
    • Created & discussed ADR21 within tx validity work
    • Received & discussed security proofs of Coordinated Hydra Head (requires more work)

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation
    • Complete review & integrate the Hydra tutorial
    • Review latest hydra-pay work
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec
    • Get Cicero (new CI) working
    ]]>
    + hydra +
    + + <![CDATA[DB sync Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-01-db-sync + 2022-12-01-db-sync + Thu, 01 Dec 2022 00:00:00 GMT + + High level summary

    The DB Sync team prepared a release 13.1.0.0-rc2 which includes many improvements for db-sync, +it makes rollbacks and syncing much faster, simplifies the schema, fixes bugs and introduces +migrations. This release finalises the objectives that were set for db-sync for the previous +3 months period and part of the syncing speed objective set for the next period +Changelog

    Lower level summary

    • Branch release/13.1.0.x +includes all the improvements related to the release. The release is passing through the testing +phase and a number of bugs and issues have been fixed, like +#1312 +#1311. +Also many new unit tests have been added.

    • Part of the release branch is cherry-picked back into master, in a way that it respects the new +release and development process, so that it takes into account migrations +release process

    • The DB Sync team has also tagged release 13.0.6 which better supports preview and preprod for +docker.

    ]]>
    + db-sync +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-01-mithril + 2022-12-01-mithril + Thu, 01 Dec 2022 00:00:00 GMT + + High level overview

    The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes.

    Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.

    Low level overview

    • Implemented custom Mithril SPOs on testing/pre-release networks #563
    • Deprecated Signer Declarative Pool Id registration mode #585
    • Completed the second stage of the store automatic migration process #600
    • Completed the deployment pipelines to crates.io registry #588
    • Completed automatic generation of nodes/libraries versions manifest in releases notes #599
    • Completed CI/CD handling of PR from forks #597
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #586
    • Worked on signing the artifacts released in the distributions by the CI/CD #587
    • Worked on multi-platforms end to end test #601
    • Worked on the refactorizaton of the aggregator multi-signer engine #398
    ]]>
    + mithril +
    + + <![CDATA[System Test Team Update]]> + https://updates.cardano.intersectmbo.org/2022-12-01-system-test + 2022-12-01-system-test + Thu, 01 Dec 2022 00:00:00 GMT + + High level summary

    During the last 2 weeks we did more improvements on our Test Framework, planned the testing of the P2P Single +Relay functionality, and also tested some DB-Sync tags.

    Workstreams

    Framework improvements:

    • moved the System Test CLI Pipelines from BuildKite to Github Actions
    • improved the reporting tools to support the rerun of the failled tests and update of the reports
    • added support for Github API in report-aggregator, so reports will be generated from the GitHub nightly jobs from now on
    • added support for mixed topology - P2P, legacy, mixed topologies
    • planned the P2P Single Relay system test activities
    • added support to start regression tests with PV8 + better selection of tests

    DB-Sync:

    • confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)
    • tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2
    ]]>
    + system-test +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-30-consensus + 2022-11-30-consensus + Wed, 30 Nov 2022 00:00:00 GMT + + High level summary

    During the past two weeks, the consensus team merged improvements to the monadic +cursor API that was needed to implement LMDB range reads, which is in turn +required for the implementation of the UTxO HD feature. We added tables to +several tests in for the UTxO HD feature, which increases our confidence in the +correctness of the prototype. The mempool property tests are close to being +completed. Also, we finished the LSM tree tuning algorithm.

    On the Genesis front we started simplifying the BlockFetch logic with +CSJ-specific workloads in mind.

    We are also documenting the Block Diffusion Pipelining feature, and added a +high-level overview of consensus to the top level documentation of +ouroboros-network.

    Workstreams

    UTxO HD prototype

    We merged the implementation of a monadic cursor API (#1)) which was +needed to solve a bug with LMDB range-reads. After this PR was merged, we focused on +bridging the gap between the lmdb-simple interface and consensus by facilitating +using lmdb-simple's cursor API without Serialise constraints (#3).

    We refactored the backing store property tests to use quickcheck-lockstep +(#4081).

    We added tables to the mock ledger in the UTxO-HD feature branch +(#4184). Every test that used to run with SimpleBlocks now uses +tables. This will enable us to exercise the UTxO HD mempool integration by +leveraging the existing mempool property-tests. The new state-machine +property-tests are still needed for testing the parallel behaviour of the +mempool.

    Our work on the mempool state-machine tests revealed the need for improvements +in the quickcheck-state-machine library. Parallel testing assumed that the +state machine did not have access to mutable references. However, the mempool +tests require the use of such mutable references for mocking the ledger +interface. As a result, our parallel tests were failing with rather obscure +messages. @Jasagredo submitted a pull request (#12) that allows for +new mutable references to be created at each run of the state machine.

    Backing store property tests

    LSM tree implementation

    We finished the LSM Tree tuning algorithm. We are currently tidying up the code +and gathering results (i.e., plots and their interpretation).

    CSJ prototype

    We started simplifying the BlockFetch logic with CSJ-specific workloads in mind.

    New VRF and KES crypto integration

    Started working on supporting new version of StandardCrypto which uses compact +KES and batched VRF (#4151).

    Technical debt

    We reviewed the existing state of the Block Diffusion Pipelining document. We +are now working on the "Implementation" section (#4020).

    Fostering collaboration

    We cleared up our understanding of the error dynamics of forecasting +(#4146 and #4174).

    We submitted a pull request that adds an overview of consensus to the top level +documentation of +ouroboros-network (#4197). This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    https://github.com/input-output-hk/ouroboros-network/pull/4197

    ]]>
    + consensus +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-30-node-cli-api + 2022-11-30-node-cli-api + Wed, 30 Nov 2022 00:00:00 GMT + + 2022-11-30 - 2022-12-13

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ]]>
    + cli-api +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2022-11-30-performance-and-tracing + 2022-11-30-performance-and-tracing + Wed, 30 Nov 2022 00:00:00 GMT + + High level summary
    1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.
    2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.
    3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.
    4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.
    5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.

    Performance

    We have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don't see any significant performance changes. The component bumps are therefore clear for release.

    Tracing

    For the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them. +The idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time.

    To support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics.

    Infrastructure

    Generation support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation.

    In addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model.

    The intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged. +We are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration.

    We continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability.

    We are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP.

    As usual, a number of smaller workbench, data analysis & reporting improvements have been made.

    ]]>
    + performance-tracing +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-28-network + 2022-11-28-network + Mon, 28 Nov 2022 00:00:00 GMT + + Stake-Driven Data Diffusion Release for Relays

    IOG networking team decided to release the Stake-Driven Data Diffusion with +Robust Optimised Peer Selection also more commonly known as P2P. In the +last update, we informed about a performance regression, but it turns out it +only affects block producers, and thus we highly advise against running it on +such nodes. Further investigation is required to find the cause of it.

    On IOG's benchmarking cluster we have seen quite a good performance improvement +on block propagation itself. The cluster is running a static topology with +valency 6 (each node is connected to 6 other nodes). In which every of the 50 +nodes are block producers. The setup of this network is the same as mainnet. +We've seen 40-50% performance improvement on block propagation comparing to the +same cluster deployed with the same topology but using non-P2P nodes. We think +this performance improvement is caused by using full duplex connections. Quite +likely the transaction traffic floating in both directions on the same TCP +connection helps to keep the TCP window open. Note that in a cluster of 50 +nodes with valency 6 the probability of having at least one duplex connection +is more than 50%. We don't expect the same improvement on mainnet because the +network is much wider and the transaction traffic is not as large.

    Just before the release we squashed two small bugs:

    • issue #4163 - top level integration bug in keep-alive;
    • issue #4177 - a bug in outbound-governor;
    • PR #4165 - a fix cardano-ping support of NodeToNodeV_10.

    Peer Sharing

    We were carrying a review of peer sharing PR.

    DeltaQ

    Neil Davies was invited to give a guest lecture entitled Avoiding System Catastrophes at UCLouvain.

    What have we achieve last sprint

    • issue #4163: we found out that a control message is not passed to the +keep-alive mini-protocol, this results in every demotion executing demotion +timeout rather than a graceful termination. With the fix the node will no longer log:

      { "kind": "PeerStatusChangeFailure"
      , "peerStatusChangeType": "WarmToCold (ConnectionId {localAddress = 192.168.0.10:7000, remoteAddress = 3.129.186.40:3000})"
      , "reason": "TimeoutError"
      }
    • issue #4177: we fixed an assertion failure in the outbound-governor; now +we don't try demoted peers which are being demoted already.

    • PR #4155: we refactored ouroboros-network packages. There's a top level +ouroboros-consensus-diffusion package which integrates network +& consensus code. We also introduced:

      • ouroboros-network-api package which contains the API shared between +network & conensus;
      • ouroboros-network-mock package which contains mock API used for testing +(e.g. a mock chain & chain producer, etc.)
      • ouroboros-network-protocols package which contains implementation of all +(but handshake) mini-protocols, exposes a testlib and contains test +and cddl components.

      This made the dependency tree of network & consensus packages much +cleaner.

    • PR #4169: we described the usage of release branches in CONTRIBUTING.md +doc.

    • PR #4165: we fixed cardano-ping support of NodeToNodeV_10 protocol.

    DeltaQ

    The abstract of the talk:

    An essential step to ensuring that distributed systems are fit for +purpose.

    Distributed systems have become an integral part of our society and +daily lives. We are, both implicitly and explicitly, individually as well as +collectively, placing ever more trust in them.

    Are they worthy of this trust? Our need for them to be ‘fit-for-purpose’ goes +well beyond notions of functional correctness (i.e. never getting the wrong +answer). We need them to deliver the desired outcomes in a timely, robust, +reliable, resilient fashion, at scale and in a sustainable way (both +economically and environmentally).

    This all sounds like a worthy aspiration, but what would be a practical +approach to capturing and reasoning about these issues? How can we ensure that +systems can meet their fit-for-purpose objectives, not just in their design but +as they are deployed, encounter the imperfect world, are scaled to become +economic, and proceed into ongoing maintenance?

    This talk will illustrate how the notions of Outcomes and Quality Attenuation +(as captured by ‘∆Q’) are being used to both frame the necessary notions and +provide a basis for assuring the refinement and reification of such systems, +from initial concept to operational infrastructure.

    You can download the slides from here.

    ]]>
    + network + release +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-25-crypto + 2022-11-25-crypto + Fri, 25 Nov 2022 00:00:00 GMT + + High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team.
    • Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes
    • cardano-base: The VRF and BLS branchs are still open and in progress
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • We redesigned the library so that MuSig2 lib users don't need to be aware of the underlying secp256k1 library PR#31
    • We are introducing a more granular error handling mechanism PR#33
    • We rethought the API and made it more consistent with the underlying secp256k1 library PR#35

    Mithril

    • The mithril crates in general will be published in crates.io, and we adapted the core library's README PR#616
    • We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information PR#620

    cardano-base

    • We've been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) PR#341
    • SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions PR#344
    • Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus PR#266

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation.
    ]]>
    + crypto +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-25-hydra + 2022-11-25-hydra + Fri, 25 Nov 2022 00:00:00 GMT + + High-level summary

    This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a presentation about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.

    What did the team achieve this week

    What are the goals of next week

    • Monthly report & review meeting
    • Tie up several loose ends / branches.
    • Resolve Tx validity discussions & PRs.
    • Review cicero PR & try it out.
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-23-ledger + 2022-11-23-ledger + Wed, 23 Nov 2022 00:00:00 GMT + + High level summary

    We released CIP-1694, +our proposal for entering the Voltaire phase. +Please come join the discussion, this will be an incredibly exciting transition for +Cardano and we want everyone to participate!

    We now have a sensible way to version all of the serialization schemes used in the ledger. +The draft pull request was polished, reviewed, and merged this week. +This solves many problems that have vexed us since the beginning of the Shelley ledger era.

    Everyone working on the Cardano node is working together to improve our release process, +and the ledger team in particular dedicated one engineer to help with these efforts +for the next release.

    Lower level summary

    The Conway ledger era

    The current proposal in CIP-1694 encompasses two new ledger eras. +The first era will be called Conway, after the English mathematician John Horton Conway. +The community facing aspects of the Conway ledger era will be very minimal, +but it will pave the way for introducing liquid democracy. +The details can be viewed here. +We do not yet have a formal specification for the Conway era. +Our plan is to debut the +formal ledger model. +Briefly, the Conway ledger era will:

    • introduce SPO voting for hard forks (in the spirit of the now abandoned CIP-47)
    • provide an on-chain mechanism for rotating the governance keys
    • re-plumb the ledger rules involving governance to be in line with CIP-1694

    Versioned CBOR

    We now have the ability to easily tie our serialization schemes to the Cardano +major protocol version. +We still aim to preserve backwards compatibility as much as possible, but we now have a principled +plan for resolving problems (see CIP-ledger-cbor). +In particular, we can now address several long standing issues, such as +issue-2444, issue-2965, and issue-3003.

    The final (and massive!) pull request which brought us the versioning is pull-3138.

    Deposit tracking

    The draft pull request which was exploring how best to track individual deposits +is much closer now to being ready to take out of draft (pull-3127). +For background on the issue, see issue-3113. +This is quite an invasive change which effects many of our tests, which we are now addressing.

    Technical debt

    As always, we keep working on technical debt. +We have deduplicated a some things: pull-3129, pull-3162. +We have memoized a problematic computation (though more due diligence is needed before we can +merge): pull-3141.

    Node release

    We have been helping with the node release efforts. See pull-4608.

    ]]>
    + ledger +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-18-hydra + 2022-11-18-hydra + Fri, 18 Nov 2022 00:00:00 GMT + + High-level summary

    This week, the Hydra team released version 0.8.1, which includes several fixes and a user-wished extension of the persistence introduced by 0.8.0 of replaying server outputs to make clients like the hydra-tui be aware of the latest hydra-node state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from hydra-poc to hydra!

    What did the team achieve this week

    • Implemented replaying of server outputs to address #580
    • Released version 0.8.1 containing this and other fixes Release notes
    • Worked on the bounded tx validity as one of the on-chain script fixes, but couldnt finish it just yet #615
    • Collaborated with the education team on a Hydra tutorial.
    • Discovered and discussed issues with the seen ledger.
    • Renamed the Hydra repository hydra-poc -> hydra

    What are the goals of next week

    • Create and discuss an ADR about handling tx validity correctly.
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
    • Have a team workshop / hackathon after the summit:
      • Retrospective
      • Roadmapping session
      • Hack on something complex or useful
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-18-mithril + 2022-11-18-mithril + Fri, 18 Nov 2022 00:00:00 GMT + + High level overview

    The Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks.

    Finally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer.

    Low level overview

    • Released a new Mithril distribution 2246.1
    • Completed the first stage of the store migrations process #562
    • Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes #565
    • Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage #576
    • Prepared a Daedalus synchronization benchmark video with/without Mithril #606
    • Upgraded the Cardano nodes of the testing Mithril networks to 1.35.4 #594
    • Worked on implementing SPO tests nodes on testing Mithril networks #563
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #588
    • Worked on the refactorizaton of the aggregator multi signer engine #398
    ]]>
    + mithril +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-16-consensus + 2022-11-16-consensus + Wed, 16 Nov 2022 00:00:00 GMT + + High-level summary

    During the past two weeks, the consensus team started documenting the +implementation of the UTxO HD feature and continued developing tests for it. As +part of our work on UTxO HD, we improved the Haskell support for LMDB. We also +spent time working on the LSM tree prototype, and designed a parameter tuning +algorithm for it. Regarding our work on Genesis, our investigation of the +"plateaus" pointed at the TICKF slowdown on era boundaries as culprit. This +led us to developing a caching strategy that will not only remove the +aforementioned "plateaus", but can help alleviating the growing block production +delay on epoch switch. We also helped reviewing the block forge credential +hotswap feature, which is intended for use in the adoption of P2P.

    We also worked on paying technical debt and fostering collaboration. In +particular, we improved the io-sim framework, which is crucial for testing and +simulating Cardano components. We also removed thunks that appeared on era +translations, and improved our diffusion pipelining feature. We are working on a +presentation for explaining Praos and Genesis.

    High-level status report

    • Finish the UTxO HD prototype: in progress.
      • We added documentation for this feature.
      • We developed the second version of the mempool tests.
      • We fixed benchmarks that were inflating the speedup we observed in the +anti-diff implementation of sequences of differences. Speedups are now in the +range of [3.33, 4.75], which remain significant.
      • We continued improving Haskell LMDB support.
      • We finished implementing a "parameter tuning algorithm" for the LSM tree +prototype. This enables us to run experiments to check the correctness of +the algorithm.
    • Genesis: in progress.
      • Work investigating the "plateaus" in the ChainSync jumping prototype +pointed to the TICKF slowdown on era boundaries as culprit.
    • Tech debt:
      • We improved the capabilities of our io-sim library, which is crucial for +testing and simulating Cardano components.
      • We removed thunks from epoch translations in the ledger.
      • We added Linux CI support for lmdb-simple.
      • We got pending diffusion pipelining improvements merged.
    • Fostering collaboration:
      • We are working on a explanation of Praos and Genesis protocols.
    • Support:
      • Investigation of CSJ "plateaus" led us to developing a caching strategy for +TICKF that will not only remove these "plateaus", but can help alleviating +the growing block production delay on epoch switch.
      • We reviewed the block forge credential hotswapping feature which is intended +for use in the adoption of P2P.

    Workstreams

    Finish the UTxO HD prototype

    We merged PR #4060, which adds a report documenting the UTxO HD +feature, and puts emphasis in explaining how the mempool works in combination +with UTxO HD.

    We opened a draft PR with the second iteration of the property tests for the +mempool (#4076).

    We fixed the Arbitrary instances for keys and values in DiffSeq benchmarks +(#4143). The problem was that we were testing with mostly small +values, which artificially boosted the performance gains we saw on benhcmarks. +Speedups are now in the range of [3.33, 4.75] across the different +configurations.

    Backing store property tests

    We focused on incorporating feedback on the monadic cursor API PR (#1). +This required us to make small tweaks to quickcheck-lockstep to test the new +API. We also updated the backing store property tests to use the new version of +the monadic cursor API.

    LSM tree implementation

    We worked on the LSM tree prototype. In particular: finished implementing a +"parameter tuning algorithm" that adapts the LSM tree design based on factors +like:

    • workload
    • machine specs,
    • and characteristics of the data being stored.

    We are now running experiments to gather results and cross-reference them with +existing experimental results from the LSM tree paper to see if the algorithm is +working correctly.

    Benchmarking the CSJ prototype

    We focused on investigating the "plateaus" in the ChainSync tip, which turned +out to be due to the TICKF bug which we previously were only aware of in the +context of the long forging times near epoch boundaries. For the most drastic +patch by @nfrisby to speed up TICKF, full sync is speeding up by 7%.

    The following plot shows that by caching the TICKF the ChainSync tip and the +VolatileDB tip progress at the same rate.

    The plot below shows the speedup observed by caching the TICKF rule wrt the +baseline.

    Technical debt

    After addressing the PR comments, we merged PR #16, which implements +the MonadCatch instance for STM. This extends the capability of our io-sim +library, which is crucial for testing and simulating Cardano components PR #16 +closed #1461. This new feature was published as version 0.4.0.0 +of io-sim.

    We continued with our work fixing the NoThunk errors required for enabling +nightly tests, with the help of TVarInvariant checks in strict-stm and +nothunks libraries. We proposed fixes in cardano-ledger that took care of +thunks that appeared in era translations (#3143). The fixes will be +integrated back into consensus when cardano-ledger approves and publish the +changes introduced in #3143.

    We added CI support for lmdb-simple (#2). We currently test the build on +a Linux environment only.

    We got pending diffusion pipelining PRs (#3857, #3860, +#3856) merged, after rebasing and addressing feedback.

    Fostering collaboration

    @nfrisby finished a visualisation tool and outlined scripts for the Praos and +Genesis explanation presentations. The idea is to produce a video that gives an +overview of these protocols.

    Support

    We started working on caching the computation of the TICKF rule +(#4054), since this was blocking our benchmarking work for +Genesis. In addition, this issue has the Cardano community quite +concerned, so we are hoping the work done in caching the +computation of the TICKF rule can help alleviating the growing block +production delay on epoch switch.

    We reviewed the block forge credential hotswapping PR #3800 from the +networking team, which is intended for use in the adoption of P2P.

    ]]>
    + consensus +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-16-node-cli-api + 2022-11-16-node-cli-api + Wed, 16 Nov 2022 00:00:00 GMT + + 2022-11-16 - 2022-11-29

    High level summary

    Completed

    docs

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ]]>
    + cli-api +
    + + <![CDATA[Performance & tracing update]]> + https://updates.cardano.intersectmbo.org/2022-11-16-performance-and-tracing + 2022-11-16-performance-and-tracing + Wed, 16 Nov 2022 00:00:00 GMT + + High level summary
    1. P2P performance investigation is ongoing, in support of the networking team.
    2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.
    3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.
    4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.
    5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.

    Performance

    We are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.

    Tracing

    We ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.

    Infrastructure

    The first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.

    We designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.

    A number of smaller workbench, data analysis & reporting improvements have been made.

    ]]>
    + performance-tracing +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-11-crypto + 2022-11-11-crypto + Fri, 11 Nov 2022 00:00:00 GMT + + High level overview

    The SECP primitives AC has been met, and the test-vectors PR has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool PR has been merged, and we've adapted the KES secure PR to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (PR#). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork.

    Low level overview

    • With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation.
    • We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool.
    • In parallel, we keep progressing on the KES agent
    • VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification.
    • Our libsodium fork now links directly to upstream libsodium.
    ]]>
    + crypto +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-11-hydra + 2022-11-11-hydra + Fri, 11 Nov 2022 00:00:00 GMT + + High-level summary

    This week, the Hydra team published together with Obsidian Systems a light paper +on our "Hydra for Payments" project (Link). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of hydra-node processes.

    What did the team achieve this week

    • Published Hydra for Payments light paper (Link)
    • Have a draft RFP ready for a first review internally
    • Answered the internal auditors questions
    • Fixed a bug with following the chain when starting with persistence (#599)
    • Minor improvements to logging for better observability (#598, #600)
    • Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look (#590)

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Close more gaps #452
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-11-ledger + 2022-11-11-ledger + Fri, 11 Nov 2022 00:00:00 GMT + + High level summary

    I am extremely excited to say that we now have a pull request up which introduces our new versioned +CBOR serialization. This was an enormous effort, but it will solve a host of problems that we have +had since the Shelley phase. It will take time to properly review it, and we will +need to put in a lot of effort to integrate it with the downstream components, but this is a huge +milestone. Additionally, we have a new CIP proposing a deprecation cycle for the transaction +serialization schemes.

    We also have a draft pull request that reworks how deposits are tracked. Users of the system will +not notice any difference, but it is a necessary change needed to prepare the way for +decentralizing the governance of Cardano.

    Finally, we continued to address technical debt. In particular, we continued to make progress on +bringing coherency and consistency to the code base with a common naming convention, and +improving some error messages.

    Lower level summary

    • We have a pull request up for our new versioned CBOR serialization. +When we encounter a problem with our deserializers, it can be very difficult to implement a fix. +It is difficult because we can only fix such issues during a hard fork, and leading up to the +hard fork we must maintain two serializations for the same type in order to not cause unintended +network splitting (the problematic version must be used before the hard fork, +and the fixed version is used afterwards). +This can be especially tricky with the FromCBOR typeclass, since it is not always easy to +search for where all the problematic uses are located. +The new versioned CBOR serialization allows us to gracefully handle this transition. +See [pull-3138].
    • We proposed a CIP for backwards compatibility of the transaction serialization schemes. +See [pull-372].
    • We have draft for the new deposit tracking. +This draft is not as memory efficient as the final version will be, +but it is a sufficient proof of concept that we can write property tests against, ensuring +that we have not changed the semantics. +We will optimize after we are sure of the correctness. +See [pull-3127].
    • We now provide better support for debugging failed Plutus scripts in an important helper +function, named evaluateTransactionExecutionUnits. +In particular, it now returns all the information needed to rerun the script with exactly the +same arguments. This feature will end up appearing in the CLI and other tools from the Plutus +tools team. +See [pull-3135].
    • We did a lot more renaming to bring coherency and consistency to the code base. +See [pull-3126], [pull-3120], [pull-3118], and [pull-3116].
    • We have added a few things to the ledger repository to make it conform to the +Cardano Engineering Handbook +See [pull-3139].
    ]]>
    + ledger +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-11-network + 2022-11-11-network + Fri, 11 Nov 2022 00:00:00 GMT + + High-level summary

    In last sprint we got a performance report of P2P performance testing cluster +(which consists of 50 nodes). There is a performance regression in the header +notification metric. The P2P cluster is constructed with the same +topology as the non-p2p reference one this indicates some regression which +needs to be further investigated. This poses a risk for releasing P2P.

    We also continued to work on peer sharing: pull #4019.

    We continued working on dynamic block production which is required for P2P +release for BP nodes: pull #3159.

    We simplified the P2P topology format: issue #4559, pull #3888.

    We added a new trace point for asynchronous demotions of local peers with +Warning severity. This trace is important for SPOs.

    Detail description

    Performance regression

    Below we include a graph which shows the performance regression of the P2P code base vs non P2P.

    On the x axis is time in seconds which measures the delay from the start of +the slot to when a header was received. The y axis is the percentile of nodes +that received a header. We are currently investigating possible causes of the +regression.

    New P2P topology form

    The new topology file format is described in this issue #4559.

    Tracing improvements

    • We improved a handshake error reporting, pull #4136
    • We added TraceDemoteLocalAsynchronous rendered as DemoteLocalAsynchronous +in json format, pull #4127. Such demotions should be investigated by the +pool operator. They can indicate a problem in the deployed system, but also +they could indicate a remote problem in arranged connections with other SPOs.

    Open Source Improvements

    We improved documentation of io-sim and typed-protocols for open-source +contributors and/or maintenance tasks: pull #22, pull #45, pull #48.

    ]]>
    + network +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-04-hydra + 2022-11-04-hydra + Fri, 04 Nov 2022 00:00:00 GMT + + High level summary

    This week, the hydra team first re-deployed the latest Hydra scripts to the re-spun preview network, see 0.8.0 release notes. They also completed implementation of ADR18 and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates #195 and alignment of the specification document with auditors.

    What did the team achieve this week

    • Complete and merge ADR18 #579
    • Re-deploy hydra scripts to respun preview network, see 0.8.0 release notes #595
    • Have first gap of #452 in review.
    • Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.
    • Engineering meeting to discuss hard forks and protocol parameter updates #195
    • Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.
    • Drafted project scope for an external audit RFP.

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Answer the internal auditors questions
    • Have a draft RFP ready for a first review internally
    • Close some gaps #452
    ]]>
    + hydra +
    + + <![CDATA[Mithril Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-04-mithril + 2022-11-04-mithril + Fri, 04 Nov 2022 00:00:00 GMT + + This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.

    Low level overview

    • We have been moving forward on the implementation of the release process #500:
      • Setup of the new hosted environments for testing-preview, pre-release-preview and release-preprod with their terraform and GitHub environments #542
      • Adapted the CI workflows to work with the new release process #543
      • Publication of an ADR3
      • Publication of a dev blog post about Mithril networks evolution
      • Releasing our first Mithril distribution 2244.0
    • Worked on the API versioning mechanism #565
    • Worked on the implementation of the stores migration process for the signer and aggregator nodes #562
    • Prepared a Mithril devnet video demo #526
    • Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably #484
    ]]>
    + mithril +
    + + <![CDATA[Open-Source Team]]> + https://updates.cardano.intersectmbo.org/2022-10-31-open-source + 2022-10-31-open-source + Fri, 04 Nov 2022 00:00:00 GMT + + High Level Summary
    • We've been working toward publishing Cardano Backlog, currently its in +review by the IOG communication team.
    • We identified a number of libraries which can be published.
    • We setup and enhanced cardano-updates.

    Detailed description

    I am glad to announce that I was given the role of open-source advocate for +cardano project. In last few weeks we were making steps towards publishing our +backlog. It's currently under review by the communication team, although most +of the issues are already visible across various repositories.

    The open-source initiatives have their own +project. It is set up +to help us track our major open-source activities. Right now there are two +work streams:

    We identifies a number of libraries across all the teams which contribute to +Cardano which we would like publish to publish, see the following +link. Arnauld Bailly recently published +quickcheck-dynamic +library on Hackage. The networking team is slowly progressing towards +publishing io-sim and related packages, checkout the progress +here.

    Thanks to Arnaud Bailly our Cardano Updates website has +a new look & feel! It's using docusaurus.io.

    Christian Taylor carried recently a detailed analysis of our open-source +repositories. He collected many interesting metrics, which allows us to see +where we need to improve as an open-source project to make the Cardano project +and many smaller related libraries which we maintain be more open and available +for open-source contributors.

    The graph below shows which documents the 55 most important Cardano +repositories are missing the most: +Documentation Adoption +You can expect we will improve in these metrics in the coming weeks.

    ]]>
    + open-source +
    + + <![CDATA[Embedding Quality Workstream]]> + https://updates.cardano.intersectmbo.org/2022-11-03-embedding-quality + 2022-11-03-embedding-quality + Thu, 03 Nov 2022 00:00:00 GMT + + High level summary

    We made good progress on most of the Action Items we agreed on Lisbon, like:

    • Cardano System Tests was fully open to public (tools, tests, results) +See cardano-node-tests webpage
    • We defined an user-facing-functionality template that is used with the cardano-cli team
      • this includes acceptance criteria & user stories, and definition of done
    • We are in the process of running the cardano-node-tests at commit & PR level in cardano-node (we are affected by the Cicero migration right now but we did most of the work already)
    • We started to apply a labelling convention on cardano-node issues that will be used to generate some visual dashboards with some metrics [TBD]
    • Ziyand Liu started an End-to-End Development and Testing Process for Plutus Features
    ]]>
    + embedding-quality +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2022-10-02-consensus + 2022-10-02-consensus + Wed, 02 Nov 2022 00:00:00 GMT + + High-level summary

    During the past two weeks, the consensus team continued its work on testing the +UTxO HD prototype. We completed the era-transition and backing store tests, and +the mempool tests are advancing at a steady pace. Regarding our work in the +Genesis design, we continued our collaboration with the research and networking +teams, and we continue investigating strategies for making the chain-sync +jumping prototype faster.

    High-level status report

    • Finish the UTxO HD prototype: on track.
      • We worked on state-machine tests for the mempool, and spotted potential bugs +in the implementation. Investigation is ongoing.
      • We have a set of property tests for the backing store. We still need to +incorporate the improvements to the LMDB cursor API that these tests +made possible.
      • We merged the era-transition tests PR.
    • Genesis: on track.
      • Design work around Genesis continues in collaboration with researchers and +the networking team.
      • We continued trying to improve the performance of the chain-sync jumping +prototype. We gained additional insight on which parameters to tweak next. +In spite of the baseline still being faster, the current prototype already +achieves a significant speedup when compared to the naive approach of simply +running full chain-sync with all peers.
    • Tech debt: on track.
      • We clarified a common source of confusion around VRF tie-breaking and +cross-era chain selection.

    Workstreams

    Finish the UTxO HD prototype

    We continued working on property-tests for the UTxO HD prototype. In particular +we merged the era-transition tests +PR.

    Backing store property tests

    The backing store property tests +PR has been +reviewed. The next steps are:

    • Improve error handling and command generation.
    • Add coverage testing to check that we are not failing to cover interesting +test cases.

    The monadic cursor API +went through its first review round. The API is in a relatively stable state. +This PR also unifies the cborg and serialise-based interfaces to LMDB +operations. The next steps are:

    • Write +quickcheck-dynamic +state-machine tests for this API.
    • Adapt the changes in the serialisation interface in the backing store property +tests. This will involve adding boilerplate code in consensus to make up for +the removal of the cborg-based interface.

    LSM tree implementation

    We worked on the LSM tree +prototype. In +particular, we focused on tuning the LSM tree design to the different workloads +that consensus has (eg syncing, normal node operation, etc).

    Benchmarking the CSJ prototype

    Work on improving the chain-sync jumping performance is ongoing. In particular +we compared the performance of different jump intervals, which, somewhat +surprisingly, do not make a significant difference. In particular, we are seeing +periodic "plateaus" where the chain-sync tip does not progress, but they are +much longer for the prototype. Our hypothesis is that this seem to be due to a +combination of the garbage collector (GC) pauses, and the actual time it takes +the non-dynamo chain-sync peers to jump to the tip of the slot of the dynamo +fragment.

    In the coming weeks we will try to shorten these plateaus via a combination of +tweaking GC options and less synchronisation in the CSJ governor.

    The following plot shows the performance of the chain-sync jumping prototype +using different jumping intervals. It compares the syncing progress by plotting +the slots of adopted blocks against time. The baseline is still faster, however +it is worth noting that the current prototype already achieves a significant +speedup when compared to the naive approach of simply running full chain-sync +with all peers.

    The second plot shows the syncing progress sliced to a chosen ~5min interval, +and includes, in addition to the slots of adopted blocks, the slots of the tip +of the ChainSync fragment. This allows us to see how far ahead of the selected +tip the CS dynamo is, i.e. how much room we have for BlockFetch not to get +stalled. It shows periodic behaviour (due to the forecasting limit), and shows +that the CS fragment tip is not progressing for significant periods +("plateaus").

    Technical debt

    We clarified a +common source of confusion around VRF tie-breaking and cross-era chain +selection. This PR involved correcting potentially misleading names of +VRF-related functions, and providing context for a particular VRF value is +used for tie-breaking.

    ]]>
    + consensus +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-02-ledger + 2022-11-02-ledger + Wed, 02 Nov 2022 00:00:00 GMT + + High level summary

    We have made the decision to use the +formal ledger repository +in place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure +to the model. In particular, we now have a lot of support for axiomatic set theory. +While the next ledger era is still in the design phase, most of the team remains working +on technical debt. +In particular, we have moved a lot more code out of the Shelley specific modules and into +a ledger core module, we have finished up our benchmarking around the problematic TICKF +ledger transition (while improving the performance), made conveniences to the development +environment, cleaned up all the recent changes to the cost model, added a lot of documentation, +fixed some flaky tests, and deleted some dead code.

    Lower level summary

    Axiomatic Set Theory

    The formal ledger model now has support for much of the set theory that we make use of in +the formal ledger specifications. See [pull-20].

    Completed Technical Debt

    • We have addressed issues with two of our most problematic and flaky tests. +See [pull-3039] and [pull-3093].
    • We have added more documentation and tests to the Twiddler module. This is a module which +makes our CBOR serialization round-trip tests much more robust, and will also hopefully +help enforce the mandate for downstream libraries to never re-serialize data that needs +to be hashed. See [pull-3073] and [pull-3095] +(we cannot merge 3095 just yet, due to a preference for merging other features).
    • We have finished our long analysis of the problematic TICKF transition. +We now have a lot of benchmarks surrounding this code, and have added performance improvements. +See [pull-3068] and [issue-3035].
    • We have restored support for +ghcid +in our repository. This is a tool for developing with Haskell that many of us find greatly +improves our productivity by providing us with constant feedback from the type checker. +See [pull-3112].
    • After much activity on the cost model, we have done some final clean up of the code. +See [pull-3075] and [pull-3101].
    • We moved a lot of the existing user facing documentation regarding native tokens into the +ledger repository, and cleaned it up +(most of the heavy lifting was done by our amazing technical writers). +See [pull-3091].
    • We removed dead code. See [pull-3089].
    • We moved a lot of code from the Shelley specific libraries to the ledger core library. +See [pull-3109] and [pull-3110].
    • We've removed more of the awkward legacy template Haskell names. +See [pull-3108].
    ]]>
    + ledger +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-02-node-cli-api + 2022-11-02-node-cli-api + Wed, 02 Nov 2022 00:00:00 GMT + + 2022-11-02 - 2022-11-15

    High level summary

    • Documentation improvments
    • Merged community contributions
    • Exposing types from cardano-api requested by the community/other teamss
    • Test output has been improved so diagnosing failures is now easier
    • Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)
    • Refactoring of cardano-testnet making it more useable as a library (ongoing)
    • Release 1.35.4 was merged & released

    Completed

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ]]>
    + cli-api +
    + + <![CDATA[Node Release Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-02-release + 2022-11-02-release + Wed, 02 Nov 2022 00:00:00 GMT + + Node Reelease Update

    2022-10-19 - 2022-11-02

    Executive Summary

    The team is formalizing the new release process and team structure. Both preview/preprod environments have been reset, +a temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8.

    1.35.4 release candidates have been created and are being tested internally and externally.

    Completed

    In Progress

    ]]>
    + release +
    + + <![CDATA[System Test Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-02-system-test + 2022-11-02-system-test + Wed, 02 Nov 2022 00:00:00 GMT + + High level summary

    We have been focused on:

    • Fully opening our test results (on top of the existing tests & tools):
      See cardano-node-tests webpage.
    • Started to test and automate the new functionalities added in the 1.35.4-rc1 node tag
      See test results tracking page.
    • Made some improvements to the automated db-sync sync tests
      See db-sync tests.
    • Multiple cleanups and updates to the cardano-node-tests framework
    • Updated the nightly pipelines for the cardano-node-tests after the Babbage HF
    ]]>
    + system-test +
    + + <![CDATA[DB Sync Team Update]]> + https://updates.cardano.intersectmbo.org/2022-11-01-db-sync + 2022-11-01-db-sync + Tue, 01 Nov 2022 00:00:00 GMT + + High level summary

    The DBSync team is preparing a release which introduces schema simplifications, removes indexes, +unique and foreign keys. It also provides a way to fix older values and migrates without the need to +resync from genesis.

    Lower level summary

    Schema simplifications

    Indexes, Unique and Foreign keys are removed in order to speedup syncing +#1295 +The same pr also introduces a different way to rollback, which doesn't rely on foreign keys and +indexes.

    Performance

    The DBSync team ran a big number of benchmarks and investigated ways to speedup syncing. A +conservative number of these will be included in the next release and the rest can be found in +performance view.

    Migrations and resyncing

    The next release will be 13.1.0, it will enable a migration without the need to resync. It will also +introduce a procedure that fixes bytes values of Datum and RedeemerData in existing databases +#1294

    Release

    The release has been mostly cherry-picked from master +#1294 and its scope can be seen +release view

    ]]>
    + db-sync +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2022-10-28-hydra + 2022-10-28-hydra + Fri, 28 Oct 2022 00:00:00 GMT + + High level summary

    This week, the hydra team completed several user experience improvements to the +hydra-tui and hydra-node, and delivered a first version of persisted head +states by publishing release version +0.8.0. +Besides this, they met with researchers on topic of the HeadV1 specification and +kicked-off work on the RFP for an external audit of the Hydra Head protocol and implementation.

    What did the team achieve this week

    • Completed the UX improvements on the hydra-tui
    • Released version 0.8.0, which delivers a first version of persisted head states
    • Met with researchers on the HeadV1 specification
    • Started work on the RFP for our external audit

    What are the goals of next week

    • Complete ADR18 implementation and get it merged
    • Start work on event-sourced persistence #580
    • Have a first plutus script gap closed #452
    • Revamp CI to use flakes and build macos artifacts (stretch goal: migrate to cicero for nix builds)
    ]]>
    + hydra +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2022-10-28-network + 2022-10-28-network + Fri, 28 Oct 2022 00:00:00 GMT + + High-level summary

    The team has focused on debuging & fixing bugs for the P2P single relay release, which included

    • diagnosing, fixing and writing tests for a bug in peer-state-actions which +fortunately hasn't been released;
    • diagnosing & preventing misconfiguration of DNS

    We also focused on developing peer sharing. We also held a session with +the scientists on eclipse evasion.

    Detailed description

    P2P Network Stack

    During the past two weeks the team focused on p2p single relay release and peer +sharing. We found and fixed an important bug recently introduced in one of the +components of p2p networking stack (fortunately never released). Together with +a fix, we designed a unit test diffusion simulation as well as quickcheck +property test (both could reproduce it). We also changed the code in a way that +if such a bug is reintroduced in the future, it will be obvious to diagnose. +For more see:

    Initial benchmarking run of the P2P code was executed. The results where +unlike what we see on the mainnet. We found a possible misconfiguration of the +cluster (caused by 0 TTL on domain names), which could be the direct cause of +it. We wrote a PR which rules out such misconfiguration. We are awaiting on +the next benchmarking results. See more at:

    ouroboros-network#4106

    We also started working on P2P single relay release. The PR +ouroboros-network#4120 +includes 108 patches cherry-picked from the master branch. We started +working toward integration these changes against the release branch of +cardano-node. Early next week we ought to be able to have an early version +of cardano-node with non experimental P2P support!

    For more detailed release plan please see P2P - Single +Relay +issue.

    Consensus

    We identified and fixed missing error reporting in consensus +initialisation phase. See more at +ouroboros-network#4015

    Cardano Node

    We also made changes in cardano-node in order to give better experience for +node operators. This includes updating severities of some of the traces as +well as implementing new format of the p2p topology file. For more see:

    Peer Sharing

    We continued working on implementation of peer sharing. We have an early +implementation which will be reviewed and analysed in next weeks. We started +working on cardano-node integration. We need +PR #4392 to be merged +before such integration will be able to land in cardano-node, although this +is not blocking us currently. See more at:

    Eclipse Evasion

    We held a session which included Alexander Russel, Sandro Coretti-Drayton and +Nick Frisby from the consensus team. We discussed high lever design of the +eclipse evasion scheme, which is important for the design and implementation of +ouroboros-genesis. We got a positive feedback from the researchers.

    IO-Sim

    In this period we made little progress towards releasing IO-Sim on Hackage. +A single PR which added +a few missing instances of the STM monad.

    Open Source

    We made sure the CI runs for PRs which comes from forks (which is important to +accept contributions from 3rd parties).

    Mithril Cardano Integration

    We held initial discussions with Arnaud Bailly about possible path to integrate +mithril to cardano-node and take advantage of the ouroboros-network +diffusion layer.

    ]]>
    + network +
    + + <![CDATA[Performance & Tracing Team Update]]> + https://updates.cardano.intersectmbo.org/2022-10-28-performance-and-tracing + 2022-10-28-performance-and-tracing + Fri, 28 Oct 2022 00:00:00 GMT + + High level summary

    On the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline.

    On the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario.

    Executive summary

    • The new tracing system public release is getting closer, as we're resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale.
    • The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment.
    • The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE.
    ]]>
    + performance-tracing +
    + + <![CDATA[SRE Team Update]]> + https://updates.cardano.intersectmbo.org/2022-08-12-sre + 2022-08-12-sre + Fri, 28 Oct 2022 00:00:00 GMT + + High level summary

    The SRE team is heavily working on the Equinix Metal migration, replacing Hydra +with Cicero, and a new version of Spongix.

    Lower level summary

    OpenZiti

    • Work is ongoing on our OpenZiti integration into Bitte in [bitte-zt].
    • CI-World deployment of Darwin CI Ziti service in [ci-world-commit-d40f4d].
    • Multiple issues filed, and a lot of discussion with the OpenZiti developers, +we're making pretty rapid progress thanks to them.
    • Work on getting Equinix baremetal machines integrated into AWS World Bitte +clusters utilizing a Ziti ZTNA network overlay to bridge the networking of +the two environments and get IAM extension to Equinix machine for Nomad +client onboarding.
    • A Nix Flake for most of our OpenZiti dependencies including the Console, +Controller, Edge Tunnel, and Router is now at [openziti-bins].
    • The Flake also includes a WiP NixOS modules for these components.
    • Tested Ziti Desktop Edge official app for Darwin x86_64 w/ GUI -- works with +no issues seen so far
    • Moved the console to traefik routing service (zac.$DOMAIN) and +controller/edge router stay at zt.$DOMAIN, but have registered consul +services

    Cicero & Tullia Integrations

    Cicero & Tullia Features

    • Improvements to Tullia task aggregation to make [cardano-addresses] build +correctly.
    • Better tullia CUE lib default for tags [tullia-commit-4df3c5d].
    • Put cache.nixos.org back in cache.iog.io's upstreams. This is now +considered a public cache again, and without it some Cicero evaluations had +to build huge packages.
    • Started working on a flake-parts module for Tullia.
    • Started working on cutting down Tullia task build time by putting facts in +JSON files.
    • Fixed running into kernel arg limit by reading tullia's DAG from a file
    • Merged [tullia-pull-9] that fixes several issues related to error reporting. +and escaping.
    • Added Mac builders in Cicero on CI-World.
    • Started work on Tullia invocation caching.

    Spongix

    • A lot of progress on an SQlite backed version of Spongix, it already supports +the full HTTP binary cache protocol but still lacks comprehensive testing and +some tuning, as well as recursive lookups.
    • First steps in the implementation of the nix-daemon ssh-ng protocol so +Spongix can be used via SSH and we can get rid of basic auth.

    Bugs

    • Discovered Cicero bug where Nomad reschedules cause the Github commit status +to get stuck in pending
    • Discovered Cicero race condition bug around concurrent transactions for +codependent actions.
    • Fixed tullia task order bug in [cardano-addresses]
    • Diagnose Cicero action not triggered in [abcirdc]
    • Fixed meta/description of the Tullia package in [tullia-pull-7]
    • Add Vault token loop alerts in [bitte-cells-pull-40]
    • Ongoing investigation on recurring Patroni and nomad-follower issues related +to token rotation.
    ]]>
    + sre +
    + + <![CDATA[Crypto Team Update]]> + https://updates.cardano.intersectmbo.org/2022-10-27-crypto + 2022-10-27-crypto + Thu, 27 Oct 2022 00:00:00 GMT + + High level overview

    The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to +meeting the acceptance criteria in cardano-base, +which lacks some editorial comments on the style of dQuandrant's PR, the inclusion of one additional test, and +we are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution, +but also progressing on the implementation.

    Low level overview

    SECP built-ins

    • (missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in PR 313
    • CIP-0049 was addressed in the editors meeting, and PR 250 was merged
    • The unit-tests PR 320 is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.

    KES agent

    • We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them.
    • We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s).
    ]]>
    + crypto +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2022-10-21-hydra + 2022-10-21-hydra + Fri, 21 Oct 2022 00:00:00 GMT + + High level summary

    This week, the hydra team reviewed and addressed several open comments on the +new HeadV1 specification, completing a list the of identified gaps between +specification and implementation while doing so. In the wake of the recent +demonstration of SundaeSwap running their DEX in a Hydra Head, they met with +them to capture feature ideas & incorporate their feedback on the roadmap, as +well as potential research avenues.

    What did the team achieve this week

    What are the goals of next week

    • Complete the last two items required for a version 0.8.0.
    • Cut the next release, version 0.8.0
    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Have the CI build macos artifacts
    ]]>
    + hydra +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2022-10-19-node-cli-api + 2022-10-19-node-cli-api + Wed, 19 Oct 2022 00:00:00 GMT + + 2022-10-19 - 2022-11-01

    High level summary

    This sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node's mempool for the following information:

    • Ask the node about the current mempool's capacity and sizes
    • Request the next transaction from the mempool's current list
    • Query if a particular transaction exists in the mempool

    Outside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric tx_submit_fail_count has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:

    • Documentation improvments
    • Release 1.35.4 was merged & released
    • Exported various types from cardano-api that were requested by community members

    Completed

    cardano-cli

    cardano-api

    cardano-submit-api

    cardano-node

    cardano-testnet

    • None

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ]]>
    + cli-api +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2022-10-18-consensus + 2022-10-18-consensus + Tue, 18 Oct 2022 00:00:00 GMT + + High-level summary

    During the past two weeks, the consensus team worked on adding property test for +different aspects of the UTxO HD prototype: era transitions, mempool, and +backing store. Thanks to these tests we were able to uncover a bug in the +prototype. On the Genesis front, we benchmarked a different version of the +ChainSync jumping prototype to try to improve its performance, but this did not +result in any noticeable speedup.

    High-level status report

    • Finish the UTxO HD prototype: on track.
      • We focused on increasing test coverage for the UTxO-HD prototype:
        • We started implementing Cadano-eras transition property-tests.
        • We started implementing state-machine property-tests for the mempool.
        • We merged the mempool rewrite.
        • We started working on state-machine tests for the backing store. This +uncovered a bug in the range-read implementation of the LMDB backing +store.
    • Genesis: on track.
      • We benchmarked a version of the Genesis ChainSync Jumping prototype that +spreads out the ChainSync updates over a longer period of time. This did not +result in any noticeable speedup.
      • We investigated the overhead introduced by non-ChainSync components, but no +conclusions could be drawn from the benchmarks we ran.

    Workstreams

    Finish the UTxO HD prototype

    We focused on increasing test coverage for the UTxO HD prototype. We also merged +the mempool +rewrite.

    Era transition property tests

    We started implementing Cardano era transition property +tests, +which are needed for making sure that the ledger tables get updated in the +right way when we move from one era to the next. There are at the moment two +important transitions.

    • Byron to Shelley: where all the UTxO is transferred from in-memory Byron +state (which has no tables) to the ledger tables of the Shelley state.
    • Shelley to Allegra: where the AVVM addresses must be deleted.

    We have tests for the Byron to Shelley transitions. We are working on adding +the remaining ones.

    Mempool state-machine tests

    We started implementing state-machine property tests for the +mempool. +The mempool is currently tested via pure property tests, and use a ledger +state without tables. With the introduction of UTxO HD, testing the concurrent +behavior of the mempool became of crucial importance (eg now we have to +acquire locks to flush the backing store). In addition, we need to test a +ledger state with tables. These needs led to the creation of a new set of +property tests. In particular we aim to run parallel state-machine tests that +exercise the mempool in a way similar to how the node would make use of it.

    Backing store property tests

    We started working on state-machine tests for the backing +store that UTxO +HD uses. The property tests uncovered errors in the range-reads implementation +of the LMDB backing store. To facilitate fixing this bug, we made +changes to the Haskell +LMDB bindings.

    Benchmarking the CSJ prototype

    Prompted by previous benchmarks showing significant improvements in sync time by +using more capabilities, we implemented a way to spread out the ChainSync +updates over a larger period instead of firing them all at the same time. This +didn't result in a noticeable speedup.

    We also benchmarked the prototype with CSJ disabled (such that just the dynamo +peer is running ChainSync, but e.g. BlockFetch still sees all peers) to rule +out/confirm overhead by non-ChainSync (mainly BlockFetch) related components. +This results in era-specific behavior (speed is like the prototype in Byron, but +like the baseline in Shelley). This deserves a closer look in the future.

    This diagram shows the respective syncing progress, starting at Genesis and +continuing a good part into Shelley (with the dashed line indicating the +Byron-to-Shelley transition).

    • Red: baseline
    • Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps.
    • Blue: like Green, jumps are spread out.
    • Orange: variant with no jumping, to measure unrelated overhead.

    ]]>
    + consensus +
    + + <![CDATA[Hydra Team Update]]> + https://updates.cardano.intersectmbo.org/2022-10-14-hydra + 2022-10-14-hydra + Fri, 14 Oct 2022 00:00:00 GMT + + High level summary

    This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the hydra-node over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks "past the opening of a Head". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.

    What did the team achieve this week

    • Last week we thought we were done with ADR18, but were not ...
    • ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.
    • Implemented a first version for persistence #187 in response.
    • Enhanced CI to publish test results on our website
    • Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!
    • Pulled static executable feature #200 into scope, implemented it and merged it!
    • Received and read through a project proposal by a vendor (building a Hydra platform).

    What are the goals of next week

    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Cut the next release, version 0.8.0
    • Address open comments on specification document & complete the list of identified gaps between specification and implementation #452
    • Have the CI build macos artifacts
    ]]>
    + hydra +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2022-10-14-ledger + 2022-10-14-ledger + Fri, 14 Oct 2022 00:00:00 GMT + + High level summary

    The ledger team is still primarily focused on addressing +technical +debt. +We now have the infrastructure for versioning our serialization schemes, +which we continue to put into action. +We have made first steps towards getting proper support for the +formal ledger repository +(in particular, we've added nix builds and +continuous integration support). +We are wrapping up an investigation of the performance of a critical +function used by the consensus layer for leader checks. +Finally, we are improving the packaging and versioning of our code.

    Lower level summary

    Completed Technical Debt

    • Because the Shelley ledger era was a complete re-write of the Byron ledger era, a lot of +our code lives in the cardano-ledger-shelley package, though with hindsight we can say that +much of it should live in cardano-ledger-core. +We continue to move things to cardano-ledger-core, and have much more to come. [pull-3059]
    • We now have the infrastructure to support versioned serialization schemes. +The inability to do this has caused us a lot difficulties, +such as [issue-3003], [issue-2965] and [issue-2444]. +We are still in the process of switching to the versioned serialization scheme +(such as [pull-3078]), +but the infrastructure was completed in [pull-3063].
    • We now have proper nix and CI support for the formal ledger project. [pull-19]
    • A separate team is helping bring support for +CHaP +to all the cardano-node repositories. +We have been helping out with this effort.
    • A separate team continues working on upgrading all the +cardano-node repositories to work with ghc 9.2.4. +We have been helping out with this effort.

    In-progress Technical Debt

    We also have several fairly large pull-requests in review +that we are working on.

    • In an on-going attempt to build out a more user-friendly API, +we continue to remove HasField instances in place of using micro-lenses. +The protocol parameters, in particular, are being worked on. [pull-3045]
    • We are also renaming record fields to be consistent across the repository. [pull-3062]
    • We are now cleaning up all the work we did to understand the performance +of the TICKF transition. We have some improvements to the computatation +as well. [pull-3068]
    • We are adding more documentation, in particular to our Twiddler functionality. [pull-3073]
    • The formal ledger is adding support for finite set theory. [pull-20]
    ]]>
    + ledger +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2022-10-05-consensus + 2022-10-05-consensus + Wed, 05 Oct 2022 00:00:00 GMT + + High level summary

    During the past two weeks, the consensus team worked on improving the +performance of the ChainSync jumping logic, which is needed for Genesis. We also +rewrote the implementation of the mempool in the UTxO HD prototype which solved +the issues that prevented us from running system level benchmarks. Also on the +UTxO HD front, we have an improved implementation of the sequence-of-differences +(a crucial piece of UTxO HD), and we also elaborated a test sign-off list for +the UTxO HD feature.

    Executive summary

    • With the latest implementation of ChainSync jumping we are closer to the +baseline performance. In particular, the prototype seems to benefit from the +extra concurrency provided by additional capabilities.
    • We rewrote the implementation of the mempool in the UTxO HD prototype. This +rewrite was required due to performance problems we observed when running the +workbench. +These performance problems prevented us from running system level benchmarks. +The rewrite solved these issues. After the UTxO-HD: mempool +rewrite PR is +merged, we will contact the Benchmarking team so that they run the system +level benchmarks.
    • The implementation of sequences of differences based on anti-diffs was +integrated into the UTxO HD prototype. It is pending +review and +we also need to run replay and syncing benchmarks to confirm that this will +deliver a performance improvement, as observed in our micro-benchmarks.
    • The UTxO HD prototype +inspection +resulted in a list of +tests +needed for consensus to consider the UTxO HD prototype as fully tested.

    Additional information

    Genesis

    Benchmarking setup: 50MBit/s, 50ms latency

    • Red: baseline
    • Green: Current CSJ prototype, 10 peers, jumps every 3000/f slots.

    As ChainSync Jumping involves many concurrent network operations at every jump, +we tried to run the node with 6 instead of the default 2 capabilties.

    • Orange: baseline with 6 capabilities
    • Blue: CSJ prototype with 6 capabilities

    This diagram shows the respective syncing progress, starting at Genesis and +continuing a good part into Shelley (with the dashed line indicating the +Byron-to-Shelley transition).

    Further work includes whether we can tune the prototype to better handle few +capabilities, or to adapt the default number of capabilities (potentially just +while syncing).

    ]]>
    + consensus +
    + + <![CDATA[DB Sync Team Update]]> + https://updates.cardano.intersectmbo.org/2022-10-04-db-sync + 2022-10-04-db-sync + Tue, 04 Oct 2022 00:00:00 GMT + + DBSync Update

    Fast restarts

    We fixed a long overdue issue in db-sync which caused long delays on restarts +1266. This has been +one of db-sync main objectives for this period. Restarts are now very fast, +because db-sync deletes almost nothing from the db, it just replays the ledger rules until it +reaches the tip of the db. The fix also improves reconnection speed, in cases where the node +restarts or the connection is temporarily lost. It also speeds up even more in cases where due to a +deployment mess up a very old snapshot or no snapshot at all is used.

    Property based testing

    We added stateful property based testing, using quickcheck-state-machine +1269. These tests use empty or +almost empty blocks to test the new behaviour of restarts and rollbacks.

    These tests generate arbitrarily a list of symbolic commands from these:

    RollForward Int
    RollBack BlockNo
    StopDBSync
    StartDBSync
    RestartNode
    AssertBlockNo BlockNo

    The commands are translated into real commands. For example RollForward Int will forge a new block +that fits on the current chain. These real commands are executed against db-sync using the mock +chain-sync server. The symbolic commands are executed against a vesy simplistic Model of db-sync +which looks like this:

      Model
    { serverTip :: BlockNo
    , dbSyncTip :: BlockNo
    , dbSynsIsOn :: Bool
    , dbSynsHasSynced :: Bool
    }

    Finally a number of postconditions are checked, related to the eventual block number of db-sync.

    Tech Debt

    We handled a number of tech debt in +1275 +This improves the code format of db-sync, deletes many queries that were never used and groups the +others. This tech debt resolution not only improves the experience of working in db-sync, but can +facilitate some of our other objectives, as it makes it very explicit which queries are used +during syncing and which indexes are necessary.

    Smash

    We worked on fixing an issue related to fetching pool metadata +1276. +The issue which is described in +1270

    ]]>
    + db-sync +
    + + <![CDATA[Node API & CLI Team Update]]> + https://updates.cardano.intersectmbo.org/2022-10-04-node-cli-api + 2022-10-04-node-cli-api + Tue, 04 Oct 2022 00:00:00 GMT + + Node-Api-Cli Update

    2022-10-04 - 2022-10-18

    Executive Summary

    The majority of the team's time was spent between getting 1.34.4 ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to cardano-cli.

    Completed

    cardano-cli

    cardano-api

    cardano-node

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    ]]>
    + cli-api +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2022-09-30-ledger + 2022-09-30-ledger + Fri, 30 Sep 2022 00:00:00 GMT + + Ledger Update

    We have continued focusing nearly entirely on addressing technical debt. +A lot of design work has begun for the next ledger era, +but we do not yet have anything concrete to share.

    Technical debt issues completed

    • [issue-1676][pull-2992] We have finally removed the ledger dependency on the +cardano-prelude package. It was barely used in the ledger repository, and it added a dependency +that we did not want to maintain. It was a bit difficult to remove, and we had +to coordinate removing it from cardano-base. +A lot ended up going into pull-2992, due to the coordination effort, and we ended +up updating Plutus as well. +This means that we've now also made a lot of progress on the problematic cost model serialization +issues described in issue-2902. +In particular, after we resolve issue-3014, we will not have to wait an epoch before +releasing a cost model for a new version of Plutus, as we had to do for the Vasil HF.
    • [issue-3046][pull-3055] We moved a module that is now only used in Byron to a Byron package.
    • [issue-3047][pull-3054] We improved the interface to the Value (multi-asset) type.
    • [pull-3044] We debugged and fixed a tricky compilation issue. Certain kinds of field updates +were adding approximately 20 minutes to our compile time!
    • [issue-2932][pull-3036] As a part of our ongoing re-organization of the codebase, we +have added a Cardano.Ledger.[Era].Core module to each ledger era that has a TxBody class. +Most classes defined in the era should go in this new module. +We also re-export the Cardno.Ledger.Core module and the previous Cardano.Ledger.[Era].Core +modules from each era.

    Technical debt in progress

    • [issue-3034][issue-3035][node-issue-4421] We are continuing to write benchmarks to understand exactly where +all the time is being spent on executing the TICKF transition. +The consolidation of the per-stake-credential stake distribution to the per-stake-pool +distribution does seem to account for a large amount of time (near a second as written, which we +have down to about half a second with some optimizations), +but this does not account for everything. +Applying the reward update may also be a big contributing factor.
    • [pull-3033][pull-3038][pull-3041] A separate team is working on upgrading all the +cardano-node repositories to work with ghc 9.2.4. We have been helping out with this effort.
    • The nix scripts used to build our new +formal ledger model +do not work consistently for everyone, and we have been working on fixing these issues.
    • [issue-3014] We are still working on adding a versioning scheme to all of the ledger +serializers.
    ]]>
    + ledger +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2022-09-27-network + 2022-09-27-network + Tue, 27 Sep 2022 00:00:00 GMT + + Network Update

    Ouroboros Network

    Ouroboros Consensus

    • Recently we found out that the consensus does not log exceptions thrown during +intiialisation. This was fixed in +PR input-output-hk/ouroboros-network#4015 +As part of this pull request we also changed that all exceptions rethrown by +the connection handler thread are wrapped in ExceptionInHandler.

    Some older items, which were not announced

    • We identified and fixed an issue related to socket activation (socket options +where not set for sockets passed through socket activation). +PR input-output-hk/cardano-node#3979 +This fix will be released in the next cardano-node release.

    Cardano Node

    • We extended the NixOs service module so that one can modify socketPath, +runtimeDir, databasePath, traceSocketPathAccept, +traceSocketPathConnect and stateDir options. +PR input-output-hk/cardano-node#4196

    IO-Sim

    We resolved a number of issues before release of io-sim on hackage:

    See PR #24.

    We also improved experience for contributors of io-sim and typed-protocols by adding issue templates:

    Typed Protocols

    Input Endorsers Simulation

    New features include:

    • Histograms of block arrival frequency, for both network (inbound) and CPU +(block validation). This is interesting to check that we're not overloading +the CPU block validation capacity, or network link capacity. Or alternatively +to observe the behaviour in an overload situation if we set the block +generation rate high enough.

    • Pie chart of utilisation of TCP links. This shows how small a fraction of +links are being used at any one time, and shows that once the system "warms +up" and is operating stably, most block delivery is ballistic.

    • Showing off the new screen layout combinators, that let us put multiple +charts, titles etc on screen at once and scale them to whatever screen or +video resolution we like without having to tweak numbers (this example is +scaled to fit 1080HD video resolution).

    ]]>
    + network +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2022-09-20-consensus + 2022-09-20-consensus + Tue, 20 Sep 2022 00:00:00 GMT + +
  • We proposed a fix for the performance degradation observed when running +distributed multi-node benchmarks in the UTxO HD feature branch. While this +fixed the problems observed when running local benchmarks, it broke the +ThreadNet tests due to concurrency issues. Therefore, we think it is wise to +start redesigning the UTxO HD mempool integration.
  • We did several rounds of code review on the alternative implementation of +diff-sequences required by the UTxO HD feature based on the idea of +anti-diffs. This alternative implementation is close to being merged, and the +next step is to integrate this to the UTxO HD branch, so that we can run +ad-hoc replaying and syncing from scratch benchmarks and compare these with +the baseline. The micro-benchmarks we elaborated for the alternative +implementation show speedups of up to 4x, so we are optimistic about the +performance of replaying and syncing from scratch benchmarks, however it is +important to notice that due to the nature of UTxO HD we will still be +slower than the baseline.
  • The final draft of the Genesis implementation specification is ready for +review.
  • We implemented a prototype for the happy path of Genesis' ChainSync Jumping +(CSJ). The prototype is slower than the baseline, however it is not the latest +version of the prototype and the jump interval is very small.
  • Work on integrating Conway has stopped since +priorities have changed.
  • We started work on benchmarking epoch-boundaries and epoch overhead +pr-4014. To this end, we made use of a modified version of our +db-analyser tool. We ran the new benchmarking setup using the Cardano +mainnet chain, and we can see that block tick and application take +substantially longer at epoch boundaries, although there are a couple of slots +during an epoch in which these computations take more than normal. We notified +the ledger team about these findings. We will use this modified version of +db-analyser to investigate the epoch overhead.
  • Workstreams

    UTxO HD

    • Spent quite some time investigating the root cause of the degradation in +performance observed in the benchmarks. We run the make forge-stress +benchmarks locally in order to debug this behavior.

      • Transaction batching doesn't make a notable difference in the outcome +(considering we are using the in-memory backend).

      • The mempool batching implementation required asynchronous transaction +validation which is a violation of the LocalTxSubmission protocol +contract and therefore if we continued on that route, the impact would +have been quite big.

      • The STM logic we implemented by using a TMVar for the mempool internal +state was buggy and under certain circumstances it seemed to lock. +Reverting the mempool internal state to be stored in a TVar seems to +solve this problem.

      • The results we get after this change look almost identical to the ones +from the baseline.

    • The anti-diff prototype (PR +#3997) has +been reviewed and is close to being merged.

      • A follow-up issue (issue +#4010) +to integrate the anti-diff prototype in the various consensus packages +was created. A first version of the integration exists, and all tests +pass. A next step is to get some indication of the "real" performance gain +by profiling db-analyser (or cardano-node).

    Genesis

    • Final draft of the Genesis implementation specification, now up for review.

    • Local benchmark setup for parameter tuning via the happy path ChainSync +Jumping (CSJ) prototype (Issue 3987).

      • Context: Our Genesis design requires us to check in with a large (~20) +number of servers periodically while syncing. These servers are offered +jump requests via the ChainSync protocol (hence the name), which they can +accept or decline. If a peer declines, the Genesis rule allows us to +determine whether a node actually has a better chain.

      • The "happy path" is when no peer declines a jump. We want this to have +close to no overhead compared to status quo, i.e. syncing without Genesis.

      • We implemented a prototype for this happy path, and are now starting to +test in various configurations (number of peers, latency, bandwidth) to +tune the performance of ChainSync jumping, i.e. how complicated our logic +of choosing when to jump needs to be.

        Example:

      • Simulated connection: 50 MBit/s, 50ms latency

      • Jump interval: 3000 slots (on the low end, could be increased to up to +3k/f)

      • Red: baseline (1.35.3), one peer in topology file

      • Blue: Preliminary version of our prototype, with 10 peers.

        It is slower by about ~30%, but it is not the latest version of the +prototype, and the jump interval is very small, making CSJ more of a +bottleneck.

    Technical debt

    • Fix flakiness in ChainDB QSM tests (PR 3990).
    ]]>
    + consensus +
    + + <![CDATA[DB Sync Team Update]]> + https://updates.cardano.intersectmbo.org/2022-09-19-db-sync + 2022-09-19-db-sync + Mon, 19 Sep 2022 00:00:00 GMT + + DBSync Update

    New Tag

    We created a new db-sync tag 13.0.5 which addresses shortcomings of the last +release 13.0.4. It is currently under testing. +The Changelog is +here and in more details:

    • We fixed fees for tx with phase 2 failure that didn't include a total collateral field. +1248

    • We fixed an issue that could cause db-sync to crash if a specific rollback occured. +1247

    • DBSync will now avoid reserialising data, especially Datums, which not only slows down db-sync but +could result in the wrong CBOR encoding being inserted. +1217

    • All the fixes above come with unit tests which validates the fix.

    • Added support for preprod and preview from docker. DBSync no longer needs to include the configs +for different networks, these are directly fetched from the cardano world. +1254

    • We added better support from docker for the new disable options and the overall documentation. +1260

    All the above were also backported to the master branch

    Open source

    We made the db-sync board public, so +everyone can have access on the issues we prioritise. +We also added new tasks to the board, some of them could be approachable to newcomers or people who +want to contribute.

    Progress on tech debt and new features

    • 1223 was merged, which removes the +foreign keys from the db schema. This opens the road to a number of optimizations.

    • An additional fix on top of the previous work was added +1250

    • An initial version where DBSync does not rollback on restart is done here +1266. +This allows db-sync to restart much faster, without the need to delete data and reinsert them. In +the future it can also facilitate migrations in cases where the ledger snapshots have a breaking +change, without the need to resync everything from genesis.

    ]]>
    + db-sync +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2022-09-16-ledger + 2022-09-16-ledger + Fri, 16 Sep 2022 00:00:00 GMT + + Ledger Update

    We have been focused nearly entirely on addressing technical debt.

    • We introduced more consistent naming across eras, this time for the auxiliary data. +See 3032.
    • We made clear how the consumed functions differs between eras (which was a previous source of +confusion), and added some related support to the fledgling ledger API. +See 3016.
    • We added clarity and organizational consistency to the main ledger era type synonyms. +See 3017.
    • We removed code duplication related to the input data hashes. +See 3018.
    • We split up a large module into smaller components. The large module was actually causing our +CI to time out. +See 3020.
    • We cleaned up stale information in our cabal files, and upgraded cabal 3.8. +See 3023, +3031, +and 3028.
    • We made consistent, standalone TxOut (transaction output) modules for every era. +See 3024.
    • We brought consistency to a maddening inconsistent use of type variables indicating the specific +choice of cryptographic primitives. In particular, all uses of crypto have been renamed to c. +See 3027.
    • We did a clean up of the types in the Alonzo era. In particular, we switched to more parametric +types that will compose better in the future and which simplifies the constraints. +See 3029.
    • We consolidated some existing fragmented logic regarding how we gather the scripts needed for a +given transaction. This is a much needed cleanup to prevent future mistakes. +See 3019.
    • We fixed a problem with our generators that was causing a fair number of our property tests to +fail in CI. +See 3039.
    • We have started the work to update Plutus. This will bring support for SECP in the next major +protocol version, and also address a +problem +that we current have evolving the cost models. +See 3030.
    • We addressed a small issue that came up when integrating the conway era downstream, namely +the lack of some serialization instances. +See 3022.
    ]]>
    + ledger +
    + + <![CDATA[Ledger Team Update]]> + https://updates.cardano.intersectmbo.org/2022-09-01-ledger + 2022-09-01-ledger + Thu, 01 Sep 2022 00:00:00 GMT + + Ledger Update

    Since finishing up support for the Vasil Hardfork, the ledger team has been +focused on two main things: a new ledger era and technical debt.

    New minimal ledger era

    We have implemented a new ledger era named conway which is nearly identical +to the babbage era. This has been the first time that we have been able to see +what a minimal ledger era looks like. We have finished this task, modulo any +integration issues that might come up. The only thing that the conway era +does differently from the babbage era is provide support for rotating +the master keys using the hardfork combinator's state translation. +We may end up adding features to the conway era, but it is a nice exercise +seeing what it looks like to get a minimal ledger era supported in all the +downstream components.

    Addressing technical debt

    We have been addressing technical debt, mostly in an effort to make the +repository a more friendly code base to work in.

    • We have begun work on a ledger API, called cardano-ledger-api.
    • We have done a big re-design of the major type classes used in the ledger. +With hindsight on our side, we now have something much more organized and +easier to use.
    • We have done a lot of re-naming. The names across eras are now much more +uniform, avoid certain confusions that plagued us, and are clearer in where +they are from.
    • We have reduced a lot of code duplication that could lead to bugs if you +do not have the whole code base in your head.
    • We have added a handful of performance improvements.
    • We added type safety in a number of locations. In particular, the type of +values that can be minted in a transaction no longer allow for Lovelace +in the type, and some functions which used to handle both timelock scripts +and plutus script now correctly enoforce at the type level that only one of +them can be used.
    • We made our generators so that they now produce a much richer set of +valid serializations. There is room within CBOR to serialize the same +data structure in multiple ways, and it is helpful to have the generators +use a wide variety.
    • We have begun re-organizing our test suites.
    ]]>
    + ledger +
    + + <![CDATA[Consensus Team Update]]> + https://updates.cardano.intersectmbo.org/2022-08-31-consensus + 2022-08-31-consensus + Wed, 31 Aug 2022 00:00:00 GMT + + Executive summary
    • We did most of the heavy lifting required to integrate the Conway era.
    • We have property tests for the UTxO HD backing store API implementations. A +possible bug was identified. Work is ongoing to make sure the property-tests +cover all the relevant cases.
    • We implemented and benchmarked the "anti-diff" prototype to speed up the UTxO +HD functionality. Results show a rough speedup of 4x to 5.5x across +several scenarios. Note that: "Data reported by tasty-bench is only of +indicative and comparative significance.". +We are investigating additional performance improvements. The "anti-diff" +prototype and benchmarks are still pending code review.
    • We elaborated a draft specification for the Genesis implementation and +ChainSync jumping optimization.

    Workstreams

    Conway

    • Integration PR of the minimal Conway era (Issue #3963, PR +#3971).
    • Discussions with Ledger revealed possible sources of confusion about which +data should be changed in the Conway era. As a result, a new technical debt +issue was raised, which does not block the integration of the Conway era +(Issue #3976).

    UTxO HD

    • Issue #3954, branch: The functionality of a +backing store, which is the interface to the on-disk part of ledger state in +UTxO-HD, is tested at a high level through the OnDisk tests. However, some +functionalities remain untested, e.g., reads of ranges of keys. As such, we +have implemented quickcheck-state-machine tests that exercise backing stores +directly. The tests are reusable for different backing store implementations +because the tests are implementation-agnostic: Any backing store that conforms +to the backing store interface can be plugged into the tests. Work is still +ongoing to label/monitor the tests, such that we can verify that interesting +cases are being tested. Furthermore, a possible bug has been identified in the +LMDB backing store with respect to range reads, though the bug has not been +resolved yet.

    • Issue #3946, branch, PR #3882: The +"anti-diff" prototype proposes an alternative approach to keeping track of +sequences (more specifically, FingerTrees) of diffs. These diff sequences +are a component of the in-memory parts of the ledger state in UTxO-HD. Since +the consensus code often requires the cumulative diff of a sequence of diffs, +the current implementation "caches" cumulative diffs of each subtree in the +diff sequence. This caching allows relatively fast reconstruction of the total +cumulative diff, but this caching proved to incur a non-negligible cost: when +we manipulate diff sequences through splits and appends, we force re-computing +a logarithmic number of caches. This is problematic, since we often split and +append in consensus: we split when we flush diffs to a backing store or when +we roll back blocks, and we append when pushing blocks. The new approach +should reduce the overhead of this caching.

      We implemented micro-benchmarks for the "anti-diff" prototype: we +first generate a sequence of commands (Forward, Push, Flush, or +Rollback) through a simulation, after which we measure the performance of +applying the commands to a diff sequence. In this context, Forward means +forwarding of values through a diff, whereas Rollback means switching to +a different fork by rolling back diffs/blocks and pushing new ones. +Moreover, we compare the performance for the two implementations: the +"legacy" approach, and the anti-diff approach.

      Some preliminary results were positive, but we needed to revisit the +benchmark's configuration to obtain more definitive results. After a +discussion with @dcoutts and the consensus team about this configuration +(e.g., number of commands generated, choice of the security parameter k), +the benchmarks should now be closer to the realistic setting. The following +configuration specifies the default configuration that is used in the +benchmarking code:

      • Number of commands generated: 10_000
      • Security parameter k: 2160
      • Number of initial backing values: 100
      • Number of key-value pairs deleted by a push: 50
      • Number of key-value pairs inserted by a push: 50
      • Number of key-value pairs forwarded by a forward: 50
      • Probability of a large (in the range [1000, 2000]) rollback: 0.05
      • Probability of a small (in the range [1, 10]) rollback: 0.95
      • Order of commands:
        • An equal number of forward and pushes.
        • 1 flush every 10 pushes.
        • 1 rollback every 100 pushes

      Moreover, we run four benchmark scenarios:

      • Default configuration
      • Without rollbacks
      • With only small rollbacks
      • Without rollbacks, larger flushes (1 flush every 100 pushes)

      How to read results

      Note: this section uses documentation from the +tasty-bench package to +explain how to read the results of running our benchmarks.

      Running a benchmark scenario gives us the following (curated) output:

      ...
      AntiDiff: OK (18.27s)
      2.527 s ± 47 ms, 2.1 GB allocated, 544 MB copied, 2.2 GB peak memory, 0.23x
      LegacyDiff: OK (32.73s)
      10.829 s ± 148 ms, 6.8 GB allocated, 2.3 GB copied, 2.2 GB peak memory
      ...

      The output says that the first benchmark, which exercises the anti-diff +prototype, was repeatedly executed for 18.27 seconds (wall-clock time), +its predicted mean CPU time was 2.527 seconds and means of individual +samples do not often diverge from it further than ± 47 milliseconds +(double standard deviation). We also configure the RTS to collect GC +statistics, which enables tasty-bench to estimate and report memory usage. +This data is reported as per RTSStats fields: allocated_bytes, +copied_bytes and max_mem_in_use_bytes. So, the output of the first +benchmark says that a total of 2.1 GB of memory was allocated, that a +total of 544 MB of memory were copied, and that the peak memory in usage +was 2.2 GB. We read the output for the second benchmark in the same way.

      Furthermore, the benchmark compares the mean CPU times for +both the anti-diff and legacy approaches: In this case, the mean CPU time +for the anti-diff approach is ~0.23x the mean CPU time for the legacy +approach. Conversely, the mean CPU time for the legacy approach is +1 / 0.23 ~= 4.35x the mean CPU time for the anti-diff approach. We will +call 0.23x the improvement factor. We will call 4.35x the speedup.

      Note that these improvement factors (and reported results) are subject to +noise, randomness, the specific configuration parameters, and the whims +of statistics. Data reported by tasty-bench is only of indicative and +comparative significance.

      Results

      For each of the 4 scenarios, we list the results of running the anti-diff and +legacy approaches 5 times. We run the benchmarks 5 times to get an indication +of whether the results are similar across multiple runs. Furthermore, we +calculate the accompanying ranges (if applicable) of improvement factors and +speedups.

      Note also the decrease in total bytes allocated and total bytes copied for +the anti-diff approach compared to the legacy approach.

      Default configuration

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff2.533 s (0.23x)4.7 ms2.1 GB557 MB2.4 GB
      Run 1: LegacyDiff10.792 s162 ms6.8 GB2.3 GB2.4 GB
      Run 2: AntiDiff2.508 s (0.23x)245 ms2.1 GB515 MB2.2 GB
      Run 2: LegacyDiff10.850 s30 ms6.9 GB2.3 GB2.2 GB
      Run 3: AntiDiff2.562 s (0.23x)5.0 ms2.1 GB552 MB2.2 GB
      Run 3: LegacyDiff10.993 s149 ms6.9 GB2.3 GB2.2 GB
      Run 4: AntiDiff2.168 s (0.22x)5.3 ms1.8 GB434 MB2.0 GB
      Run 4: LegacyDiff9.976 s39 ms6.3 GB2.0 GB2.0 GB
      Run 5: AntiDiff2.527 s (0.23x)47 ms2.1 GB544 MB2.2 GB
      Run 5: LegacyDiff10.829 s148 ms6.8 GB2.3 GB2.2 GB
      • Improvement factor: [0.22, 0.23]
      • Speedup : [1 / 0.23 ~= 4.35, 1 / 0.22 ~= 4.55]

      No rollbacks

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff1.638 s (0.19x)36 ms1.4 GB181 MB2.4 GB
      Run 1: LegacyDiff8.656 s207 ms5.7 GB1.5 GB2.4 GB
      Run 2: AntiDiff1.638 s (0.19x)75 ms1.4 GB181 MB2.2 GB
      Run 2: LegacyDiff8.654 s322 ms5.7 GB1.5 GB2.2 GB
      Run 3: AntiDiff1.663 s (0.19x)74 ms1.4 GB181 MB2.2 GB
      Run 3: LegacyDiff8.799 s216 ms5.7 GB1.5 GB2.2 GB
      Run 4: AntiDiff1.645 s (0.19x)51 ms1.4 GB181 MB2.0 GB
      Run 4: LegacyDiff8.732 s261 ms5.7 GB1.5 GB2.0 GB
      Run 5: AntiDiff1.639 s (0.19x)19 ms1.4 GB181 MB2.2 GB
      Run 5: LegacyDiff8.653 s234 ms5.7 GB1.5 GB2.2 GB
      • Improvement factor: 0.19
      • Speedup : 1 / 0.19 ~= 5.25

    Only small rollbacks

    NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
    Run 1: AntiDiff1.833 s (0.18x)36 ms1.5 GB185 MB2.4 GB
    Run 1: LegacyDiff10.362 s867 ms5.8 GB1.6 GB2.4 GB
    Run 2: AntiDiff1.696 s (0.19x)30 ms1.5 GB185 MB2.2 GB
    Run 2: LegacyDiff8.822 s106 ms5.8 GB1.5 GB2.2 GB
    Run 3: AntiDiff1.702 s (0.19x)44 ms1.5 GB186 MB2.2 GB
    Run 3: LegacyDiff8.906 s147 ms5.8 GB1.5 GB2.2 GB
    Run 4: AntiDiff1.701 s (0.19x)47 ms1.5 GB185 MB2.0 GB
    Run 4: LegacyDiff8.949 s197 ms5.8 GB1.5 GB2.0 GB
    Run 5: AntiDiff1.677 s (0.19x)55 ms1.5 GB186 MB2.2 GB
    Run 5: LegacyDiff8.856 s177 ms5.8 GB1.5 GB2.2 GB
    • Improvement factor: [0.18, 0.19]

    • Speedup : [1 / 0.19 ~= 5.25, 1 / 0.18 ~= 5.55]

      No rollbacks, larger flushes (every 100 pushes)

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff1.643 s (0.25x)21 ms1.5 GB196 MB2.4 GB
      Run 1: LegacyDiff6.591 s351 ms4.0 GB1.4 GB2.4 GB
      Run 2: AntiDiff1.616 s (0.25x)47 ms1.5 GB196 MB2.2 GB
      Run 2: LegacyDiff6.520 s232 ms4.0 GB1.4 GB2.2 GB
      Run 3: AntiDiff1.640 s (0.25x)34 ms1.5 GB196 MB2.2 GB
      Run 3: LegacyDiff6.540 s150 ms4.0 GB1.4 GB2.2 GB
      Run 4: AntiDiff1.635 s (0.25x)76 ms1.5 GB196 MB2.0 GB
      Run 4: LegacyDiff6.589 s131 ms4.0 GB1.4 GB2.0 GB
      Run 5: AntiDiff1.628 s (0.25x)19 ms1.5 GB196 MB2.2 GB
      Run 5: LegacyDiff6.490 s5.9 ms4.0 GB1.4 GB2.2 GB
    • Improvement factor: 0.25

    • Speedup : 1 / 0.25 ~= 4

    Genesis

    • We elaborated a draft of the specification of the Genesis implementation and +the ChainSync Jumping optimization. In particular, this includes a proof +sketch that the latter preserves liveness and safety in all cases (Issue +3964).
      • @nfrisby's main realization during this sprint was that he had been +focusing so far on the case where the selected chain is an extension of +the intersection of our peers' ChainSync candidates.
      • This is the main case, ie an "absorbing" state, but it's not the only +case.
      • The new proof sketch begins by case splitting on that predicate, and +that made the sketch quite a bit easier to follow.
    • We continued working on the "happy path" ChainSync Jumping prototype (Issue +3960).

    Technical debt

    • We started working on the issues required to re-enable nightly CI runs.. +Nightly CI runs have far more lax time constraints, which gives the option to +run significantly more property tests than in our regular CI. To this end, we +merged a PR to easily adapt the number of tests globally (PR +#3947).
    ]]>
    + consensus +
    + + <![CDATA[Network Team Update]]> + https://updates.cardano.intersectmbo.org/2022-08-12-network + 2022-08-12-network + Fri, 12 Aug 2022 00:00:00 GMT + + The networking team took an active part in the project iteration (PI) planning +session, see cardano-node backlog for detailed +outcomes.

    • We started working on a detailed design / implementation plan for gossip.

    • We merged input-output-hk/ouroboros-network#3859 which +sets the ouroboros-network repository for the single relay release.

    • We identified a bug in the network simulator, which is fixed in the +input-output-hk/ouroboros-network#3852. +The above PR was reviewed.

    • We set the tracing configuration for nodes which we deploy and fixed and +identified some deployment hiccups. We identified some bugs in the RT view +which were registered by the maintainers. +input-output-hk/ouroboros-network-ops#4

    • We fixed typos in network-mux library: +input-output-hk/ouroboros-network#3921

    • For easy of debugging we renamed a trace point: +input-output-hk/ouroboros-network#3922

    • Duncan iterated on his simulation / visualisation. He also was able to +identify and fix a bug in the simulator. The simulation contains 50 nodes. +Dashed lines indicate and established connection, while solid lines indicate +a TCP connection with fully open TCP window.

    ]]>
    + network +
    +
    +
    \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000000..a1662b987f --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://updates.cardano.intersectmbo.org/2022-08-12-networkweekly0.5https://updates.cardano.intersectmbo.org/2022-08-12-sreweekly0.5https://updates.cardano.intersectmbo.org/2022-08-31-consensusweekly0.5https://updates.cardano.intersectmbo.org/2022-09-01-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2022-09-16-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2022-09-19-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2022-09-20-consensusweekly0.5https://updates.cardano.intersectmbo.org/2022-09-27-networkweekly0.5https://updates.cardano.intersectmbo.org/2022-09-30-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2022-10-02-consensusweekly0.5https://updates.cardano.intersectmbo.org/2022-10-04-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2022-10-04-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2022-10-05-consensusweekly0.5https://updates.cardano.intersectmbo.org/2022-10-14-hydraweekly0.5https://updates.cardano.intersectmbo.org/2022-10-14-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2022-10-18-consensusweekly0.5https://updates.cardano.intersectmbo.org/2022-10-19-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2022-10-21-hydraweekly0.5https://updates.cardano.intersectmbo.org/2022-10-27-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2022-10-28-hydraweekly0.5https://updates.cardano.intersectmbo.org/2022-10-28-networkweekly0.5https://updates.cardano.intersectmbo.org/2022-10-28-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2022-10-31-open-sourceweekly0.5https://updates.cardano.intersectmbo.org/2022-11-01-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2022-11-02-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2022-11-02-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2022-11-02-releaseweekly0.5https://updates.cardano.intersectmbo.org/2022-11-02-system-testweekly0.5https://updates.cardano.intersectmbo.org/2022-11-03-embedding-qualityweekly0.5https://updates.cardano.intersectmbo.org/2022-11-04-hydraweekly0.5https://updates.cardano.intersectmbo.org/2022-11-04-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2022-11-11-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2022-11-11-hydraweekly0.5https://updates.cardano.intersectmbo.org/2022-11-11-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2022-11-11-networkweekly0.5https://updates.cardano.intersectmbo.org/2022-11-16-consensusweekly0.5https://updates.cardano.intersectmbo.org/2022-11-16-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2022-11-16-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2022-11-18-hydraweekly0.5https://updates.cardano.intersectmbo.org/2022-11-18-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2022-11-23-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2022-11-25-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2022-11-25-hydraweekly0.5https://updates.cardano.intersectmbo.org/2022-11-28-networkweekly0.5https://updates.cardano.intersectmbo.org/2022-11-30-consensusweekly0.5https://updates.cardano.intersectmbo.org/2022-11-30-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2022-11-30-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2022-12-01-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2022-12-01-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2022-12-01-system-testweekly0.5https://updates.cardano.intersectmbo.org/2022-12-02-hydraweekly0.5https://updates.cardano.intersectmbo.org/2022-12-09-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2022-12-09-hydraweekly0.5https://updates.cardano.intersectmbo.org/2022-12-09-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2022-12-12-networkweekly0.5https://updates.cardano.intersectmbo.org/2022-12-14-consensusweekly0.5https://updates.cardano.intersectmbo.org/2022-12-14-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2022-12-14-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2022-12-14-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2022-12-15-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2022-12-16-hydraweekly0.5https://updates.cardano.intersectmbo.org/2022-12-28-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-01-05-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-01-06-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2023-01-11-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-01-11-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-01-12-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-01-13-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-01-13-releaseweekly0.5https://updates.cardano.intersectmbo.org/2023-01-13-system-testweekly0.5https://updates.cardano.intersectmbo.org/2023-01-14-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2023-01-19-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-01-20-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2023-01-20-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-01-20-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-01-20-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-01-25-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-01-25-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-01-26-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-01-27-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-02-02-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-02-03-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2023-02-03-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-02-03-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-02-08-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-02-08-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-02-08-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-02-09-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-02-10-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-02-17-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2023-02-17-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-02-17-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-02-17-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-02-17-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-02-21-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2023-02-22-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-02-22-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-02-23-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-02-23-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-02-24-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-03-02-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-03-03-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2023-03-03-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-03-03-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-03-03-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-03-08-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-03-08-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-03-08-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-03-09-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-03-10-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-03-16-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-03-17-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2023-03-17-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-03-17-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-03-21-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-03-22-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-03-22-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-03-22-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-03-23-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2023-03-23-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-03-24-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-03-27-system-testweekly0.5https://updates.cardano.intersectmbo.org/2023-03-31-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2023-03-31-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-03-31-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-03-31-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-04-05-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-04-05-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-04-05-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-04-06-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-04-07-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-04-14-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-04-14-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-04-17-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-04-19-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-04-19-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-04-20-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-04-20-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-04-21-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-04-21-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-04-27-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-04-28-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2023-04-28-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-04-28-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-05-01-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2023-05-03-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-05-03-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-05-04-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-05-05-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-05-05-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-05-12-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2023-05-12-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-05-12-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-05-12-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-05-17-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-05-17-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-05-17-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-05-19-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-05-24-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-05-26-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-05-26-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-05-26-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-05-26-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-05-31-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-05-31-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-06-01-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-06-02-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-06-07-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-06-08-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2023-06-08-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-06-08-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-06-08-system-testweekly0.5https://updates.cardano.intersectmbo.org/2023-06-09-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2023-06-09-developer-experienceweekly0.5https://updates.cardano.intersectmbo.org/2023-06-09-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-06-12-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-06-14-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-06-14-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-06-15-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-06-16-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-06-23-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-06-23-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-06-23-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-06-23-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-06-28-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-06-28-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-06-29-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-06-30-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-07-04-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2023-07-04-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-07-06-developer-experienceweekly0.5https://updates.cardano.intersectmbo.org/2023-07-07-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2023-07-07-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-07-07-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-07-07-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-07-12-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-07-12-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-07-13-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-07-14-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-07-18-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-07-20-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-07-21-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-07-21-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-07-21-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-07-26-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-07-27-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-07-28-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-07-31-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-08-01-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-08-04-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2023-08-04-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-08-04-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-08-04-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-08-04-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-08-04-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-08-04-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-08-09-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-08-10-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-08-11-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-08-11-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-08-15-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-08-17-cryptoweekly0.5https://updates.cardano.intersectmbo.org/2023-08-17-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2023-08-17-secp-issueweekly0.5https://updates.cardano.intersectmbo.org/2023-08-18-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-08-18-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-08-18-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-08-18-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-08-18-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-08-23-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-08-24-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-08-25-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-08-28-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-08-29-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-09-01-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-09-01-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-09-01-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-09-01-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-09-01-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-09-06-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-09-07-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-09-07-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-09-08-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-09-12-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-09-14-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2023-09-15-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-09-15-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-09-15-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-09-15-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-09-15-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-09-20-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-09-20-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-09-22-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-09-22-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-09-26-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-09-27-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-09-29-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-09-29-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-09-29-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-09-29-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-10-02-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-10-04-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-10-04-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-10-06-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-10-06-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-10-10-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-10-11-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-10-13-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-10-13-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-10-13-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-10-13-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-10-15-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-10-18-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-10-18-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-10-20-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-10-24-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-10-25-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-10-27-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-10-27-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-10-27-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-10-27-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-11-01-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-11-01-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-11-08-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-11-08-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-11-09-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2023-11-10-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-11-10-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-11-10-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-11-14-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-11-15-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-11-15-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-11-16-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-11-17-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-11-17-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-11-20-cip1694weekly0.5https://updates.cardano.intersectmbo.org/2023-11-22-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-11-22-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-11-24-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-11-24-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-11-24-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-11-29-consensusweekly0.5https://updates.cardano.intersectmbo.org/2023-11-29-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-12-01-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-12-04-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-12-06-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2023-12-06-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-12-08-goedelweekly0.5https://updates.cardano.intersectmbo.org/2023-12-08-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-12-08-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-12-08-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2023-12-08-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-12-11-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2023-12-13-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-12-15-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-12-20-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2023-12-22-hydraweekly0.5https://updates.cardano.intersectmbo.org/2023-12-22-networkweekly0.5https://updates.cardano.intersectmbo.org/2023-12-22-sreweekly0.5https://updates.cardano.intersectmbo.org/2023-12-30-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2024-01-05-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-01-05-sreweekly0.5https://updates.cardano.intersectmbo.org/2024-01-09-networkweekly0.5https://updates.cardano.intersectmbo.org/2024-01-10-consensusweekly0.5https://updates.cardano.intersectmbo.org/2024-01-10-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-01-10-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-01-12-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-01-15-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2024-01-17-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-01-17-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-01-19-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-01-19-sreweekly0.5https://updates.cardano.intersectmbo.org/2024-01-22-networkweekly0.5https://updates.cardano.intersectmbo.org/2024-01-24-consensusweekly0.5https://updates.cardano.intersectmbo.org/2024-01-24-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-01-26-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-01-30-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2024-01-31-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-01-31-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-01-31-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2024-01-31-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2024-02-02-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-02-02-sreweekly0.5https://updates.cardano.intersectmbo.org/2024-02-05-networkweekly0.5https://updates.cardano.intersectmbo.org/2024-02-07-consensusweekly0.5https://updates.cardano.intersectmbo.org/2024-02-07-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-02-09-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-02-14-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-02-14-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-02-15-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2024-02-16-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-02-16-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2024-02-16-sreweekly0.5https://updates.cardano.intersectmbo.org/2024-02-19-networkweekly0.5https://updates.cardano.intersectmbo.org/2024-02-21-consensusweekly0.5https://updates.cardano.intersectmbo.org/2024-02-21-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-02-23-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-02-28-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-02-28-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-02-29-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2024-03-01-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-03-01-sreweekly0.5https://updates.cardano.intersectmbo.org/2024-03-04-networkweekly0.5https://updates.cardano.intersectmbo.org/2024-03-06-consensusweekly0.5https://updates.cardano.intersectmbo.org/2024-03-06-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-03-08-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-03-08-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2024-03-13-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-03-13-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-03-15-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-03-15-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2024-03-15-sreweekly0.5https://updates.cardano.intersectmbo.org/2024-03-18-networkweekly0.5https://updates.cardano.intersectmbo.org/2024-03-20-consensusweekly0.5https://updates.cardano.intersectmbo.org/2024-03-20-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-03-22-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-03-27-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-03-27-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-03-27-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2024-03-28-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-03-29-sreweekly0.5https://updates.cardano.intersectmbo.org/2024-03-30-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2024-04-03-consensusweekly0.5https://updates.cardano.intersectmbo.org/2024-04-03-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-04-05-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-04-10-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-04-10-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-04-12-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-04-12-sreweekly0.5https://updates.cardano.intersectmbo.org/2024-04-15-networkweekly0.5https://updates.cardano.intersectmbo.org/2024-04-15-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2024-04-17-consensusweekly0.5https://updates.cardano.intersectmbo.org/2024-04-17-db-syncweekly0.5https://updates.cardano.intersectmbo.org/2024-04-17-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-04-19-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-04-19-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2024-04-24-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-04-24-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-04-26-sreweekly0.5https://updates.cardano.intersectmbo.org/2024-04-27-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2024-04-30-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-05-01-consensusweekly0.5https://updates.cardano.intersectmbo.org/2024-05-03-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-05-06-networkweekly0.5https://updates.cardano.intersectmbo.org/2024-05-07-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2024-05-08-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-05-10-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-05-10-sreweekly0.5https://updates.cardano.intersectmbo.org/2024-05-13-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2024-05-15-consensusweekly0.5https://updates.cardano.intersectmbo.org/2024-05-15-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-05-22-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-05-22-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-05-24-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2024-05-24-sreweekly0.5https://updates.cardano.intersectmbo.org/2024-05-27-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-05-29-consensusweekly0.5https://updates.cardano.intersectmbo.org/2024-05-29-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-06-05-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-06-05-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-06-05-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/2024-06-10-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-06-12-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-06-19-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-06-19-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-06-25-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/2024-06-26-consensusweekly0.5https://updates.cardano.intersectmbo.org/2024-06-26-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-07-03-ledgerweekly0.5https://updates.cardano.intersectmbo.org/2024-07-03-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-07-05-sreweekly0.5https://updates.cardano.intersectmbo.org/2024-07-08-networkweekly0.5https://updates.cardano.intersectmbo.org/2024-07-10-consensusweekly0.5https://updates.cardano.intersectmbo.org/2024-07-10-mithrilweekly0.5https://updates.cardano.intersectmbo.org/2024-07-17-hydraweekly0.5https://updates.cardano.intersectmbo.org/2024-07-17-mithrilweekly0.5https://updates.cardano.intersectmbo.org/archiveweekly0.5https://updates.cardano.intersectmbo.org/markdown-pageweekly0.5https://updates.cardano.intersectmbo.org/page/10weekly0.5https://updates.cardano.intersectmbo.org/page/11weekly0.5https://updates.cardano.intersectmbo.org/page/12weekly0.5https://updates.cardano.intersectmbo.org/page/13weekly0.5https://updates.cardano.intersectmbo.org/page/14weekly0.5https://updates.cardano.intersectmbo.org/page/15weekly0.5https://updates.cardano.intersectmbo.org/page/16weekly0.5https://updates.cardano.intersectmbo.org/page/17weekly0.5https://updates.cardano.intersectmbo.org/page/18weekly0.5https://updates.cardano.intersectmbo.org/page/19weekly0.5https://updates.cardano.intersectmbo.org/page/2weekly0.5https://updates.cardano.intersectmbo.org/page/20weekly0.5https://updates.cardano.intersectmbo.org/page/21weekly0.5https://updates.cardano.intersectmbo.org/page/22weekly0.5https://updates.cardano.intersectmbo.org/page/23weekly0.5https://updates.cardano.intersectmbo.org/page/24weekly0.5https://updates.cardano.intersectmbo.org/page/25weekly0.5https://updates.cardano.intersectmbo.org/page/26weekly0.5https://updates.cardano.intersectmbo.org/page/27weekly0.5https://updates.cardano.intersectmbo.org/page/28weekly0.5https://updates.cardano.intersectmbo.org/page/29weekly0.5https://updates.cardano.intersectmbo.org/page/3weekly0.5https://updates.cardano.intersectmbo.org/page/30weekly0.5https://updates.cardano.intersectmbo.org/page/31weekly0.5https://updates.cardano.intersectmbo.org/page/32weekly0.5https://updates.cardano.intersectmbo.org/page/33weekly0.5https://updates.cardano.intersectmbo.org/page/34weekly0.5https://updates.cardano.intersectmbo.org/page/35weekly0.5https://updates.cardano.intersectmbo.org/page/36weekly0.5https://updates.cardano.intersectmbo.org/page/37weekly0.5https://updates.cardano.intersectmbo.org/page/38weekly0.5https://updates.cardano.intersectmbo.org/page/39weekly0.5https://updates.cardano.intersectmbo.org/page/4weekly0.5https://updates.cardano.intersectmbo.org/page/40weekly0.5https://updates.cardano.intersectmbo.org/page/41weekly0.5https://updates.cardano.intersectmbo.org/page/42weekly0.5https://updates.cardano.intersectmbo.org/page/43weekly0.5https://updates.cardano.intersectmbo.org/page/44weekly0.5https://updates.cardano.intersectmbo.org/page/45weekly0.5https://updates.cardano.intersectmbo.org/page/46weekly0.5https://updates.cardano.intersectmbo.org/page/47weekly0.5https://updates.cardano.intersectmbo.org/page/48weekly0.5https://updates.cardano.intersectmbo.org/page/49weekly0.5https://updates.cardano.intersectmbo.org/page/5weekly0.5https://updates.cardano.intersectmbo.org/page/50weekly0.5https://updates.cardano.intersectmbo.org/page/51weekly0.5https://updates.cardano.intersectmbo.org/page/52weekly0.5https://updates.cardano.intersectmbo.org/page/53weekly0.5https://updates.cardano.intersectmbo.org/page/54weekly0.5https://updates.cardano.intersectmbo.org/page/55weekly0.5https://updates.cardano.intersectmbo.org/page/56weekly0.5https://updates.cardano.intersectmbo.org/page/57weekly0.5https://updates.cardano.intersectmbo.org/page/58weekly0.5https://updates.cardano.intersectmbo.org/page/59weekly0.5https://updates.cardano.intersectmbo.org/page/6weekly0.5https://updates.cardano.intersectmbo.org/page/60weekly0.5https://updates.cardano.intersectmbo.org/page/61weekly0.5https://updates.cardano.intersectmbo.org/page/62weekly0.5https://updates.cardano.intersectmbo.org/page/63weekly0.5https://updates.cardano.intersectmbo.org/page/64weekly0.5https://updates.cardano.intersectmbo.org/page/65weekly0.5https://updates.cardano.intersectmbo.org/page/66weekly0.5https://updates.cardano.intersectmbo.org/page/67weekly0.5https://updates.cardano.intersectmbo.org/page/68weekly0.5https://updates.cardano.intersectmbo.org/page/69weekly0.5https://updates.cardano.intersectmbo.org/page/7weekly0.5https://updates.cardano.intersectmbo.org/page/70weekly0.5https://updates.cardano.intersectmbo.org/page/71weekly0.5https://updates.cardano.intersectmbo.org/page/72weekly0.5https://updates.cardano.intersectmbo.org/page/73weekly0.5https://updates.cardano.intersectmbo.org/page/74weekly0.5https://updates.cardano.intersectmbo.org/page/75weekly0.5https://updates.cardano.intersectmbo.org/page/76weekly0.5https://updates.cardano.intersectmbo.org/page/77weekly0.5https://updates.cardano.intersectmbo.org/page/78weekly0.5https://updates.cardano.intersectmbo.org/page/79weekly0.5https://updates.cardano.intersectmbo.org/page/8weekly0.5https://updates.cardano.intersectmbo.org/page/80weekly0.5https://updates.cardano.intersectmbo.org/page/81weekly0.5https://updates.cardano.intersectmbo.org/page/82weekly0.5https://updates.cardano.intersectmbo.org/page/83weekly0.5https://updates.cardano.intersectmbo.org/page/84weekly0.5https://updates.cardano.intersectmbo.org/page/85weekly0.5https://updates.cardano.intersectmbo.org/page/86weekly0.5https://updates.cardano.intersectmbo.org/page/87weekly0.5https://updates.cardano.intersectmbo.org/page/88weekly0.5https://updates.cardano.intersectmbo.org/page/9weekly0.5https://updates.cardano.intersectmbo.org/quarterlyweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2022-10-07-node-cli-apiweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2022-11-07-ledgerweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2022-11-09-networkweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2022-11-15-consensusweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-01-13-networkweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-01-13-open-sourceweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-01-18-consensusweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-04-03-ledgerweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-04-04-networkweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-04-25-consensusweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-Q2-consensusweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-Q2-networkweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-Q2-sreweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-Q3-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-Q3-sreweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-Q4-consensusweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-Q4-performance-and-tracingweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2023-Q4-sreweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2024-Q1-sreweekly0.5https://updates.cardano.intersectmbo.org/quarterly/2024-Q2-sreweekly0.5https://updates.cardano.intersectmbo.org/quarterly/archiveweekly0.5https://updates.cardano.intersectmbo.org/quarterly/page/2weekly0.5https://updates.cardano.intersectmbo.org/quarterly/tagsweekly0.5https://updates.cardano.intersectmbo.org/quarterly/tags/cli-api-quarterlyweekly0.5https://updates.cardano.intersectmbo.org/quarterly/tags/consensusweekly0.5https://updates.cardano.intersectmbo.org/quarterly/tags/ledgerweekly0.5https://updates.cardano.intersectmbo.org/quarterly/tags/networkweekly0.5https://updates.cardano.intersectmbo.org/quarterly/tags/open-sourceweekly0.5https://updates.cardano.intersectmbo.org/quarterly/tags/performance-tracingweekly0.5https://updates.cardano.intersectmbo.org/quarterly/tags/sreweekly0.5https://updates.cardano.intersectmbo.org/reportsweekly0.5https://updates.cardano.intersectmbo.org/reports/2023-12-performance-8.7.2weekly0.5https://updates.cardano.intersectmbo.org/reports/2024-03-performance-8.9.0weekly0.5https://updates.cardano.intersectmbo.org/reports/2024-03-performance-8.9.1weekly0.5https://updates.cardano.intersectmbo.org/reports/2024-05-performance-8.9.3weekly0.5https://updates.cardano.intersectmbo.org/reports/2024-06-performance-8.12.1weekly0.5https://updates.cardano.intersectmbo.org/reports/2024-07-performance-9.0.0weekly0.5https://updates.cardano.intersectmbo.org/reports/archiveweekly0.5https://updates.cardano.intersectmbo.org/reports/tagsweekly0.5https://updates.cardano.intersectmbo.org/reports/tags/benchmarking-reportsweekly0.5https://updates.cardano.intersectmbo.org/tagsweekly0.5https://updates.cardano.intersectmbo.org/tags/cip-1694weekly0.5https://updates.cardano.intersectmbo.org/tags/cli-apiweekly0.5https://updates.cardano.intersectmbo.org/tags/cli-api/page/2weekly0.5https://updates.cardano.intersectmbo.org/tags/cli-api/page/3weekly0.5https://updates.cardano.intersectmbo.org/tags/cli-api/page/4weekly0.5https://updates.cardano.intersectmbo.org/tags/cli-api/page/5weekly0.5https://updates.cardano.intersectmbo.org/tags/cli-api/page/6weekly0.5https://updates.cardano.intersectmbo.org/tags/cli-api/page/7weekly0.5https://updates.cardano.intersectmbo.org/tags/cli-api/page/8weekly0.5https://updates.cardano.intersectmbo.org/tags/consensusweekly0.5https://updates.cardano.intersectmbo.org/tags/consensus/page/2weekly0.5https://updates.cardano.intersectmbo.org/tags/consensus/page/3weekly0.5https://updates.cardano.intersectmbo.org/tags/consensus/page/4weekly0.5https://updates.cardano.intersectmbo.org/tags/consensus/page/5weekly0.5https://updates.cardano.intersectmbo.org/tags/consensus/page/6weekly0.5https://updates.cardano.intersectmbo.org/tags/consensus/page/7weekly0.5https://updates.cardano.intersectmbo.org/tags/consensus/page/8weekly0.5https://updates.cardano.intersectmbo.org/tags/consensus/page/9weekly0.5https://updates.cardano.intersectmbo.org/tags/cryptoweekly0.5https://updates.cardano.intersectmbo.org/tags/crypto/page/2weekly0.5https://updates.cardano.intersectmbo.org/tags/crypto/page/3weekly0.5https://updates.cardano.intersectmbo.org/tags/crypto/page/4weekly0.5https://updates.cardano.intersectmbo.org/tags/db-syncweekly0.5https://updates.cardano.intersectmbo.org/tags/db-sync/page/2weekly0.5https://updates.cardano.intersectmbo.org/tags/db-sync/page/3weekly0.5https://updates.cardano.intersectmbo.org/tags/db-sync/page/4weekly0.5https://updates.cardano.intersectmbo.org/tags/devxweekly0.5https://updates.cardano.intersectmbo.org/tags/embedding-qualityweekly0.5https://updates.cardano.intersectmbo.org/tags/goedelweekly0.5https://updates.cardano.intersectmbo.org/tags/goedel/page/2weekly0.5https://updates.cardano.intersectmbo.org/tags/goedel/page/3weekly0.5https://updates.cardano.intersectmbo.org/tags/goedel/page/4weekly0.5https://updates.cardano.intersectmbo.org/tags/goedel/page/5weekly0.5https://updates.cardano.intersectmbo.org/tags/hydraweekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/10weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/11weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/12weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/13weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/14weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/15weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/16weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/2weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/3weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/4weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/5weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/6weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/7weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/8weekly0.5https://updates.cardano.intersectmbo.org/tags/hydra/page/9weekly0.5https://updates.cardano.intersectmbo.org/tags/incidentweekly0.5https://updates.cardano.intersectmbo.org/tags/ledgerweekly0.5https://updates.cardano.intersectmbo.org/tags/ledger/page/2weekly0.5https://updates.cardano.intersectmbo.org/tags/ledger/page/3weekly0.5https://updates.cardano.intersectmbo.org/tags/ledger/page/4weekly0.5https://updates.cardano.intersectmbo.org/tags/ledger/page/5weekly0.5https://updates.cardano.intersectmbo.org/tags/ledger/page/6weekly0.5https://updates.cardano.intersectmbo.org/tags/ledger/page/7weekly0.5https://updates.cardano.intersectmbo.org/tags/ledger/page/8weekly0.5https://updates.cardano.intersectmbo.org/tags/ledger/page/9weekly0.5https://updates.cardano.intersectmbo.org/tags/mithrilweekly0.5https://updates.cardano.intersectmbo.org/tags/mithril/page/10weekly0.5https://updates.cardano.intersectmbo.org/tags/mithril/page/11weekly0.5https://updates.cardano.intersectmbo.org/tags/mithril/page/12weekly0.5https://updates.cardano.intersectmbo.org/tags/mithril/page/13weekly0.5https://updates.cardano.intersectmbo.org/tags/mithril/page/2weekly0.5https://updates.cardano.intersectmbo.org/tags/mithril/page/3weekly0.5https://updates.cardano.intersectmbo.org/tags/mithril/page/4weekly0.5https://updates.cardano.intersectmbo.org/tags/mithril/page/5weekly0.5https://updates.cardano.intersectmbo.org/tags/mithril/page/6weekly0.5https://updates.cardano.intersectmbo.org/tags/mithril/page/7weekly0.5https://updates.cardano.intersectmbo.org/tags/mithril/page/8weekly0.5https://updates.cardano.intersectmbo.org/tags/mithril/page/9weekly0.5https://updates.cardano.intersectmbo.org/tags/networkweekly0.5https://updates.cardano.intersectmbo.org/tags/network/page/2weekly0.5https://updates.cardano.intersectmbo.org/tags/network/page/3weekly0.5https://updates.cardano.intersectmbo.org/tags/network/page/4weekly0.5https://updates.cardano.intersectmbo.org/tags/network/page/5weekly0.5https://updates.cardano.intersectmbo.org/tags/network/page/6weekly0.5https://updates.cardano.intersectmbo.org/tags/network/page/7weekly0.5https://updates.cardano.intersectmbo.org/tags/open-sourceweekly0.5https://updates.cardano.intersectmbo.org/tags/performance-tracingweekly0.5https://updates.cardano.intersectmbo.org/tags/performance-tracing/page/2weekly0.5https://updates.cardano.intersectmbo.org/tags/performance-tracing/page/3weekly0.5https://updates.cardano.intersectmbo.org/tags/performance-tracing/page/4weekly0.5https://updates.cardano.intersectmbo.org/tags/performance-tracing/page/5weekly0.5https://updates.cardano.intersectmbo.org/tags/performance-tracing/page/6weekly0.5https://updates.cardano.intersectmbo.org/tags/performance-tracing/page/7weekly0.5https://updates.cardano.intersectmbo.org/tags/releaseweekly0.5https://updates.cardano.intersectmbo.org/tags/securityweekly0.5https://updates.cardano.intersectmbo.org/tags/sreweekly0.5https://updates.cardano.intersectmbo.org/tags/sre/page/2weekly0.5https://updates.cardano.intersectmbo.org/tags/sre/page/3weekly0.5https://updates.cardano.intersectmbo.org/tags/sre/page/4weekly0.5https://updates.cardano.intersectmbo.org/tags/sre/page/5weekly0.5https://updates.cardano.intersectmbo.org/tags/sre/page/6weekly0.5https://updates.cardano.intersectmbo.org/tags/system-testweekly0.5https://updates.cardano.intersectmbo.org/docs/category/tutorial---basicsweekly0.5https://updates.cardano.intersectmbo.org/docs/category/tutorial---extrasweekly0.5https://updates.cardano.intersectmbo.org/docs/introweekly0.5https://updates.cardano.intersectmbo.org/docs/tutorial-basics/congratulationsweekly0.5https://updates.cardano.intersectmbo.org/docs/tutorial-basics/create-a-blog-postweekly0.5https://updates.cardano.intersectmbo.org/docs/tutorial-basics/create-a-documentweekly0.5https://updates.cardano.intersectmbo.org/docs/tutorial-basics/create-a-pageweekly0.5https://updates.cardano.intersectmbo.org/docs/tutorial-basics/deploy-your-siteweekly0.5https://updates.cardano.intersectmbo.org/docs/tutorial-basics/markdown-featuresweekly0.5https://updates.cardano.intersectmbo.org/docs/tutorial-extras/manage-docs-versionsweekly0.5https://updates.cardano.intersectmbo.org/docs/tutorial-extras/translate-your-siteweekly0.5https://updates.cardano.intersectmbo.org/weekly0.5 \ No newline at end of file diff --git a/tags/cip-1694/index.html b/tags/cip-1694/index.html new file mode 100644 index 0000000000..508a54cbd0 --- /dev/null +++ b/tags/cip-1694/index.html @@ -0,0 +1,27 @@ + + + + + +One post tagged with "cip1694" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    One post tagged with "cip1694"

    View All Tags

    · 6 min read
    Kevin Hammond

    High level summary

    We have undertaken an initial high-level security analysis of the CIP-1694 design. We summarise the analysis and our responses here.

    Initial CIP-1694 Security Analysis and Responses

    Section: The constitutional committee


    • “For example, if we consider the hypothetical Constitution rule "The Cardano network must always be able to produce new blocks" - In this example, if the governance action to reduce block size to 0 is passed, then there will be no way of passing or enacting further proposals. That is, this governance action is completely non-reversable. Suggestion: Instating a built-in mechanism that checks (and perhaps enforces) that the proposed governance actions, if passed, can be reverted in the future.

    There is a 'guardrails document' in preparation which captures issues such as these. Some of them may be automatable, as suggested; others will need to be evaluated by humans.


    Section: Size of the constitutional committee


    • A possible issue with very large committee sizes (or large number of proposals/voters in general) is that it may take longer to have votes appear on-chain, which in extreme cases may require longer voting periods.

    Thanks. Yes, we’ve been thinking about this issue for a long time, see for example the section ‘Final safety measure, post bootstrapping’. We don’t consider this as an issue for the CC since they need to be elected while DReps can just register, so we expect the number of CC members to be much less than the number of DReps


    Section: Terms


    • The following sentence is a bit awkward to read: “For example, a committee of size five with a threshold of 3/5 a minimum size of three and two expired members can still pass governance actions if two non-expired members vote Yes.” —> Suggestion: “For example, if we have a committee of size five with a threshold of 3/5, then a committee of three non-expired and two expired members can still pass governance actions if two non-expired members vote Yes.”

    Thanks. Yes, that suggestion is a bit easier to read.


    Section: Registered DReps


    • “Additionally, registered DReps will need to vote regularly to still be considered active.” - There is a minor issue with requiring “voting regularly”. That is, if there are no proposals to vote on for a long time, this means that no DRep can vote regularly (or they have to issue bogus proposals just to vote on them).

    Thanks. We’ve added a mechanism to prevent that issue in the spec/code where if there’s nothing to vote on for an entire epoch, we increment the epoch that each DRep expires.


    Section: Ratification


    • It is a bit unclear why protocol changes: network group and technical group are two separate groups.

    These correspond exactly to the groups that are administered by the Parameter Committee.


    • I didn’t understand the rationale for requiring 100% “Yes” votes to pass “Info” type governance actions? It seems they have the least potential to harm the system.

    Yes, it’s not about harming the system, since Info +actions have no direct effect on the operation of Cardano. The motivation is simply to record the actual level of support for the action.

    Once an action is enacted it’s no longer possible to vote on it. So if there was e.g. a threshold of 50%, then there is no way of telling whether the support for it might eventually have reached 90% or higher if it was not immediately enacted when the threshold was reached.


    Section: Content


    • For Hard-fork initiation, the changed parameters should probably also be required as part of Additional data.

    Protocol parameters can be changed in arbitrary ways by the hard fork and new ones might be introduced, so anything this action pins down might not actually be the value that will be present after the hard fork.


    Section: Protocol Parameter groups


    • It is a bit unclear to the reader what some of these parameters mean, for example: monetary expansion (rho) and treasury expansion (tau). Suggestion: Include brief explanations for the non-obvious parameters.

    These are existing protocol parameters, described in e.g. https://cips.cardano.org/cips/cip9/9 or The Cardano Protocol Parameters Guide.


    • With the current set of governance actions, it seems that it is not possible to add new types of protocol parameters, or categories of governance voting thresholds. Suggestion: Consider possibility of incorporating governance actions that allow addition of new protocol parameters, deletion of defunct protocol parameters, or modification of governance voting threshold categories.

    All of this needs to be done via a hard fork. If we had an action that added a parameter then there is no way of giving it semantics anyway, since that must be done by logic in the code.


    Section: Votes


    • Is a constitutional committee member also a DRep? If so, do they vote twice, once as a committee member and once as a DRep?

    They may or may not be (and they could also be an SPO). Note that this is fine, since these are completely separate tallies. This is also not preventable, since we don’t have an on-chain mechanism for identity. And yes, each credential gets to vote on each action for all roles in the governance system it has.


    Section: Separation of Hard Fork Initiation from Standard Protocol Parameter Changes


    • It is unclear whether there would be automated checks for whether a proposal is indeed a soft fork or hard fork, which would reduce human error in categorising proposals.

    There is no on-chain mechanism that could enforce this, the best we could do is some kind of certificate. However, this may not be trustworthy, of course. We will consider this in future versions of Voltaire.


    Section: Changes post Edinburgh workshop (July 2023)


    • “All governance actions are enacted one epoch after they are ratified.” - I’m not sure if this line is currently in the main body of the CIP?

    It is, but it is phrased differently: ‘All governance actions are enacted on the epoch boundary after their ratification.’


    Section: Reduced deposits for some government actions


    • Another downside of requiring endorsement from the constitutional committee is that this likely does not apply to constitutional committee-related proposals, such as no-confidence votes.

    Indeed. We have no plans for this at the moment.

    + + + + \ No newline at end of file diff --git a/tags/cli-api/index.html b/tags/cli-api/index.html new file mode 100644 index 0000000000..335f446928 --- /dev/null +++ b/tags/cli-api/index.html @@ -0,0 +1,27 @@ + + + + + +39 posts tagged with "cli-api" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    39 posts tagged with "cli-api"

    View All Tags

    · 2 min read
    Carlos LopezDeLara

    2024-05-13 - 2024-06-05

    High level summary

    CARDANO NODE

    • In order to avoid an accidental hardfork, when "ConwayGenesisFile" is not set in the node configuration file, by default the node can only understand protocol version 8 (Babbage era).

    CARDANO CLI

    • query protocol-parameters now shows Conway era protocol parameters when in Conway.
    • transaction view now shows proposales and votes inside a transaction body.
    • Release of cardano-cli 8.23.1.0
    • We now publish pre-compiled binaries of each release together with the corresponding SHA256Sum.

    CARDANO-API

    • Release of 8.46.0.0

    Details

    cardano-cli

    cardano-api

    • Release cardano-api-8.46.0.0
      • Updated cardano-ledger, ouroboros-consensus and plutus packages.
      • Added FailT dependency.
      • Updated conwayGenesisDefaults and alonzoGenesisDefaults.
      • Changed CostModel to use Int64 instead of Integer.
      • Fixed ProtocolParameters golden test to account for the Integer -> Int64 change in the CostModel. (breaking, test) PR 523

    cardano-node

    cardano-testnet

    · 2 min read
    Carlos LopezDeLara

    2024-04-27 - 2024-05-13

    High level summary

    Enhancements to the CLI encompass several noteworthy additions. These include the introduction of a new hardfork initiation command, rendering --prev-governance-action-tx-id optional for create-no-confidence actions, addressing scenarios where the committee is defined in the Conway Genesis file, and refining help texts. Additionally, there have been updates to the description fields in governance action files.

    Adjust maximum understood protocol version from 9 to 10 when the experimental hardforks flag is enabled. This allows us to bypass Conway's bootstrap phase in testing

    Continued work in testing implementation of CIP1694 with cardano-testnet.

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · One min read
    Carlos LopezDeLara

    2024-04-16 - 2024-04-26

    High level summary

    8.10.1-pre was released to SanchoNet.

    The team continues focused on implementing tests for the Conway era on the cardano-node repository. This sprint the team made various improvements to +CI pipelines on cardano-cli.

    • Cardano-cli: implemented build-estimate to facilitate automatic transaction balancing without access to a live node; and added minFeeRefScriptCostPerByte as an option to create-protocol-parameters-update command.

    cardano-node

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    · 2 min read
    Carlos LopezDeLara

    2024-04-01 - 2024-04-15

    High level summary

    Adding support for script based committee members certificates: authorization and resignation. It is now possible to convert extended signing Drep and Committee keys to a Shelley-format key. Improvements to Conway era tests. Use threshold instead of quorum for committee members.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    · 2 min read
    Carlos LopezDeLara

    2024-03-16 - 2024-03-30

    High level summary

    Adding support for script based committee and dreps. This includes queries and using script as arguments instead of keys on various command.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    + + + + \ No newline at end of file diff --git a/tags/cli-api/page/2/index.html b/tags/cli-api/page/2/index.html new file mode 100644 index 0000000000..3abd2b03e6 --- /dev/null +++ b/tags/cli-api/page/2/index.html @@ -0,0 +1,26 @@ + + + + + +39 posts tagged with "cli-api" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    39 posts tagged with "cli-api"

    View All Tags

    · 2 min read
    Carlos LopezDeLara

    2024-03-01 - 2024-03-15

    High level summary

    • cardano-cli: Focus is on testing Conway features. Several improvements to create-testnet-data command, useful for creating/deploying local clusters for testing. Enable parallel execution of tests.

    cardano-cli

    cardano-api

    cardano-testnet

    docs

    CI & project maintenance

    · One min read
    Carlos LopezDeLara

    · 2 min read
    Carlos LopezDeLara

    · One min read
    Carlos LopezDeLara

    · One min read
    Carlos LopezDeLara
    + + + + \ No newline at end of file diff --git a/tags/cli-api/page/3/index.html b/tags/cli-api/page/3/index.html new file mode 100644 index 0000000000..8853a31d6d --- /dev/null +++ b/tags/cli-api/page/3/index.html @@ -0,0 +1,27 @@ + + + + + +39 posts tagged with "cli-api" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    39 posts tagged with "cli-api"

    View All Tags

    · One min read
    Carlos LopezDeLara

    2023-12-09 - 2023-12-30

    High level summary

    • Migrated reposotiries to IntersectMBO.
    • Improved era handling on cardano-api. Instead of enumerating every possible era, we use two constructors: +'CurrentEra' and 'UpcomingEra'. This design simplifies the handling of eras, especially for cardano-api consumers who are primarily concerned with the current mainnet era and the next era for an upcoming hardfork.
    • Cleaning-up the cardano-cli, in particular to the babbage era commands where some Conway options had spilled.

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · 3 min read
    Carlos LopezDeLara

    2023-11-15 - 2023-12-08

    High level summary

    This is sprint was mostly about bug fixing, code clean-ups and optimizations in preparation for a mainnet suitable release.

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · 2 min read
    Carlos LopezDeLara

    2023-11-01 - 2023-11-14

    High level summary

    CARDANO-NODE

    CARDANO-CLI

    • Improve golden tests
    • Clean-up of conway era commands

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · 2 min read
    Carlos LopezDeLara

    2023-10-11 - 2023-10-24

    High level summary

    CARDANO-CLI

    • Disambiguate cardano-cli stake credential related flags on treasury withdrawal governance actions making it easy to identify which is used for the deposit refund and which for the destination of the funds from the treasury if the action is ratified.
    • stake-address-info now shows deposits balance.
    • Added conway governance action view to allow to inspect governance action files before submitting them on a transaction.
    • build-raw support for --vote-file and --proposal-file

    CARDANO-API

    • Support DRep extended keys
    • Support Plutus V1 in Conway

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · 2 min read
    Carlos LopezDeLara

    2023-09-27 - 2023-10-10

    High level summary

    CARDANO-NODE

    CARDANO-CLI

    • Depracated governance query commands and moved all governance related queries to cardano-cli <era> query
    • Drep registration certificates now allow to include an anchor
    • Integrated Drep retirement ceriticates
    • clean up of Drep registration certificates.

    CARDANO-API

    • Add support for committee hot key witnesses
    • Require conway onwards for voting
    • Conway drep registration: expose ledger anchor parameter
    • Add certs to txbody of Conway transactions

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    + + + + \ No newline at end of file diff --git a/tags/cli-api/page/4/index.html b/tags/cli-api/page/4/index.html new file mode 100644 index 0000000000..e6983b935b --- /dev/null +++ b/tags/cli-api/page/4/index.html @@ -0,0 +1,30 @@ + + + + + +39 posts tagged with "cli-api" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    39 posts tagged with "cli-api"

    View All Tags

    · 2 min read
    Carlos LopezDeLara

    2023-09-13 - 2023-09-26

    High level summary

    • cardano-node 8.4.0-pre release suitable for SanchoNet.
    • CLI continues making progress integrating governance features. During this sprint we integrated the info and new-committee governance actions.
    • The team continued moving to the ERA top-level commands structure. Removed --conway-era flag from the legacy commands making conway era commands only accessible via cardano-cli conway.
    • stake-pool command is now under the ERA top level structure.
    • API continues integration with governance features, it is worth to higlight that now ProposeNewCommitee uses the right key type (cc-cold)

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · 3 min read
    Carlos LopezDeLara

    2023-08-30 - 2023-09-12

    High level summary

    Release of Cardano-node 8.3.0-pre for SanchoNet. Adds DReps to the Conway governance rules. Allows registration of DReps, delegation to DReps and voting on constitution action with DReps and SPOs. +This release completes phase 2 of SanchoNet feature roll out plan

    CLI continues on its migration to a era-based top-level commands. This sprint we moved text-view, key, query, genesis, node, stake-address, transaction and address into this new command structure. This is the initial migration, there is still some clean-up to do on future sprints.

    We are moving the drep delegation-certificate to the stake-address command so delegating to a drep is done via stake-addres vote-delegation-certificate. Along the same lines, we are renaming +stake-address delegation-certificate (delagating to a stake pool) to stake-address stake-delegation-certificate to distinguish between stake delegation to a pool and votes delegation to a drep. On top +of that, there is a new type of delegation certificate to delegate (stake) to a stake pool and (votes) to a drep simultaneosuly stake-address stake-and-vote-delegation-certificate. Note that change is not included on 8.3 but will come on 8.4. +Removing --conway-era flag from all the transaction sub-commands.

    Update description fields in delegation certificates from Stake Address Delegation Certificate to respectively (Conway onwards):

    • Stake Delegation Certificate
    • Vote Delegation Certificate
    • Stake and Vote Delegation Certificate

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · 2 min read
    Carlos LopezDeLara

    2023-08-16 - 2023-08-29

    High level summary

    CLI is making progress towards phases 3 and 4 of SanchoNet.

    • Ability to create info, no-confidence and new committee governance actions.

    • Voting as DREP is possible now on the CLI

    • API is now using Ledger's PParams and VotingProcedures

    • Expose following queries from consensus:

      - GetGovState
      - GetDRepState
      - GetDRepStakeDistr
      - GetCommitteeState
      - GetConstitution

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · 2 min read
    Carlos LopezDeLara

    2023-08-02 - 2023-08-15

    High level summary

    • cardano-node 8.2.1 (pre-release) to SanchoNet
    • Continue moving CLI into era-based top level command structure
    • Wire-up DREP key generation,
    • Fix DREP deregistration certificates
    • Implement Constitutional Committee Key generation on the CLI
    • Introducing era-based protocol parameters on the API
    • Removing depracated functions and types on the API

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    Fix broken links in docs

    CI & project maintenance

    · 2 min read
    Carlos LopezDeLara

    2023-07-19 - 2023-08-01

    High level summary

    • Release of Node 8.2.0
      • Updates to the ledger packages extend progress on the Conway ledger era to support new governance features via CIP-1694.
      • This release is phase 1 of the SanchoNet roll out
      • Allows SPOs to vote on changes to the on-chain constitution.
      • Ability to start the node in block production mode with no secrets loaded using the --non-producing-node flag.
      • Updates to the networking packages prepare the road for peer sharing.
    • cardano-cli and cardano-api continue to integrate Conway era features
    • Continue refactoring of cardano-testnet

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    + + + + \ No newline at end of file diff --git a/tags/cli-api/page/5/index.html b/tags/cli-api/page/5/index.html new file mode 100644 index 0000000000..a55508ed8f --- /dev/null +++ b/tags/cli-api/page/5/index.html @@ -0,0 +1,26 @@ + + + + + +39 posts tagged with "cli-api" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    39 posts tagged with "cli-api"

    View All Tags

    · 2 min read
    Carlos LopezDeLara

    · 2 min read
    Carlos LopezDeLara

    2023-06-21 - 2023-07-04

    High level summary

    • Started integration of conway era into the cardano-api,
    • Pre-release of cardano-cli 8.2.1 which enables creating goveranance "Update constitution" governance actionsas well as voting. Both only as SPO. DREP and CC will come in future releases.
    • Cardano-cli is moving to a top-level era command structure (i.e. cardano-cli conway, cardano-cli babbage, etc to accomodate for different fucntionalities available in diferent eras. In particular between Babbage and Conway governance-related functionalities.
    • Continue refactoring cardano-testnet
    • CI and docs house keeping on the new cardnao-cli and cardano-api repositories

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · 2 min read
    Carlos LopezDeLara

    2023-06-07 - 2023-06-20

    High level summary

    • Completed cardano-cli migration to input-output-hk/cardano-cli
    • cardano-cli ping now uses cardano-ping-0.2.0.5
    • New queries on API:
      • queryCurrentEpochState
      • queryDebugLedgerState
      • queryGenesisParameters
      • queryPoolDistribution
      • queryPoolState
      • queryProtocolParameters
      • queryProtocolParametersUpdate
      • queryProtocolState
      • queryStakeAddresses
      • queryStakeDistribution
      • queryStakePoolParameters
      • queryStakeSnapshot
    • Deprecate:
      • queryPparams
    • Export query API as functions
      • genFeatureValueInEra
      • featureInShelleyBasedEra
      • isFeatureValue
      • valueOrDefault
      • asFeatureValue
      • asFeatureValueInShelleyBasedEra
      • queryEpoch
      • requireShelleyBasedEra
    • Restructure cardano-testnet (WIP)

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    docs

    CI & project maintenance

    · One min read
    Jordan Millar

    2023-05-24 - 2023-06-06

    High level summary

    • The last sprint focused on removing cardano-cli and cardano-api from the cardano-node repository. We have successfully moved cardano-api to its own repository and will do the same for cardano-cli after the 8.1 node is released.
    • We provided assitance where needed in the release
    • An integration repository https://github.com/input-output-hk/fusion-flamingo was created to enable my team to more easily work on cardano-cli and cardano-api

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Jordan Millar

    2023-05-05 - 2023-05-23

    High level summary

    • Golden tests for cardano-cli command help output were added.
    • Documentation was updated with new libsodium installation instructions.
    • There were several updates for the cardano-cli:
      • Deletion of the deprecated shelley command group.
      • Addition of golden tests for CLI help.
      • An improvement to avoid bare IO in tests, allowing better error reporting in failed tests.
      • Generation of UTCTime test values without leap seconds (avoids erroneous test failures)
      • Support for signing transactions with GenesisDelegateSigningKey_ed25519_bip32.
    • The cardano-api underwent multiple refinements:
      • Implementing deposit handling when balancing transactions (necessary for Conway)
      • Cleaning up socket file path code.
    • Several changes were made to the cardano-testnet:
      • Adding golden tests for cardano-testnet help.
      • Removing all hardcoded yaml files in cardano-testnet
      • Improving cardano-testnet help output.
      • Parameterizing default yaml configuration value, allowing for easier hardforking to the era of choice.

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    + + + + \ No newline at end of file diff --git a/tags/cli-api/page/6/index.html b/tags/cli-api/page/6/index.html new file mode 100644 index 0000000000..5c4ebaffda --- /dev/null +++ b/tags/cli-api/page/6/index.html @@ -0,0 +1,26 @@ + + + + + +39 posts tagged with "cli-api" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    39 posts tagged with "cli-api"

    View All Tags

    · One min read
    Jordan Millar

    · 2 min read
    Jordan Millar

    2023-04-05 - 2023-04-19

    High level summary

    • Introduce new governance commands create, answer and verify. This allows us to have onchain polls.
    • Begin making changes in cardano-api to accomodate for CIP-1694
    • Rename TestEnableDevelopmentHardForkEras to ExperimentalHardForksEnabled and TestEnableDevelopmentNetworkProtocols to ExperimentalProtocolsEnabled
    • Various bug fixes and improvements

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · One min read
    Jordan Millar

    2023-03-22 - 2023-04-05

    High level summary

    • Added new cardano-cli ping command which allows users to ping remote cardano-nodes.
    • The transaction build command now can automatically balance multiassets
    • New combinators for constructing transaction bodies. This allows us to construct transaction bodies in a composable manner.

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · One min read
    Jordan Millar

    · 2 min read
    Jordan Millar

    2023-02-22 - 2023-03-07

    High level summary

    General bug fixes

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    Documentation

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    + + + + \ No newline at end of file diff --git a/tags/cli-api/page/7/index.html b/tags/cli-api/page/7/index.html new file mode 100644 index 0000000000..1e40afba9c --- /dev/null +++ b/tags/cli-api/page/7/index.html @@ -0,0 +1,26 @@ + + + + + +39 posts tagged with "cli-api" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    39 posts tagged with "cli-api"

    View All Tags

    · 2 min read
    Jordan Millar

    · 2 min read
    Jordan Millar

    2023-01-25 - 2023-02-07

    High level summary

    General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the cardano-cli query stake-snapshot command.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Jordan Millar

    2022-12-28 - 2023-01-10

    High level summary

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Jordan Millar

    2022-12-14 - 2022-12-27

    High level summary

    PRs merged in this sprint focused on clean up and resolving existing issues. The majority of the time during this sprint was spent on the In Progress PRs which have dependencies on consensus. This has been since rectified i.e cardano-node dependencies have been bumped.

    Completed

    docs

    CI & project maintenance

    Developer experience

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    CI & project mainteance

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    · 2 min read
    Jordan Millar
    + + + + \ No newline at end of file diff --git a/tags/cli-api/page/8/index.html b/tags/cli-api/page/8/index.html new file mode 100644 index 0000000000..275774572d --- /dev/null +++ b/tags/cli-api/page/8/index.html @@ -0,0 +1,26 @@ + + + + + +39 posts tagged with "cli-api" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    39 posts tagged with "cli-api"

    View All Tags

    · One min read
    Jordan Millar

    · 2 min read
    Jordan Millar

    2022-11-02 - 2022-11-15

    High level summary

    • Documentation improvments
    • Merged community contributions
    • Exposing types from cardano-api requested by the community/other teamss
    • Test output has been improved so diagnosing failures is now easier
    • Enabling stale bot to close stale issues and PRs (reduces clutter on the node repo)
    • Refactoring of cardano-testnet making it more useable as a library (ongoing)
    • Release 1.35.4 was merged & released

    Completed

    cardano-cli

    cardano-api

    cardano-node

    cardano-testnet

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    · 2 min read
    Jordan Millar

    2022-10-19 - 2022-11-01

    High level summary

    This sprint saw the addition of the long awaited tx-mempool command that allows user to query the local node's mempool for the following information:

    • Ask the node about the current mempool's capacity and sizes
    • Request the next transaction from the mempool's current list
    • Query if a particular transaction exists in the mempool

    Outside of this feature the team has been focused on responding to user requests (e.g exposing functions, types and implementing instances they need) and refactoring cardano-cli/cardano-api. The metric tx_submit_fail_count has been added to the submit api so users can track how many transactions have failed. Other improvements have been made:

    • Documentation improvments
    • Release 1.35.4 was merged & released
    • Exported various types from cardano-api that were requested by community members

    Completed

    cardano-cli

    cardano-api

    cardano-submit-api

    cardano-node

    cardano-testnet

    • None

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    · One min read
    Jordan Millar

    Node-Api-Cli Update

    2022-10-04 - 2022-10-18

    Executive Summary

    The majority of the team's time was spent between getting 1.34.4 ready, addressing various feature requests/issues/bugs that have arisen and refactoring components in the api and cli. The current refactoring is aimed at the long term goal of empowering users to be able to easily build applications similar to cardano-cli.

    Completed

    cardano-cli

    cardano-api

    cardano-node

    In Progress

    cardano-cli

    cardano-api

    cardano-node

    + + + + \ No newline at end of file diff --git a/tags/consensus/index.html b/tags/consensus/index.html new file mode 100644 index 0000000000..3f1499bbea --- /dev/null +++ b/tags/consensus/index.html @@ -0,0 +1,26 @@ + + + + + +45 posts tagged with "consensus" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    45 posts tagged with "consensus"

    View All Tags

    · One min read
    Damian Nadales

    High level summary

    • Assisted with Node release 9.0:
      • Performed security audits, engaged with other teams, implemented improvements, and released Consensus packages.
    • We are now running additional NoThunks tests, which help us safeguard against memory leaks in the node.
    • Reviewed Milestone 13 of Genesis, which improves the code documentation of Genesis, and implements some fixes and optimizations.

    · One min read
    Damian Nadales

    High level summary

    • Supported debugging activities related to bootstrap nodes.
    • Merged various improvements to the db-X tools; in particular, db-truncater (which is used regularly by community members on sanchonet) got much faster.

    · One min read
    Damian Nadales

    High level summary

    • Updated UTXO-HD to use simple diffs which drastically improved the mempool benchmarks (#1114).
    • Helped quickcheck-state-machine to release version 0.10.0 (#48). We rely on this library for our high-assurance property-tests.
    • Rebased UTXO-HD on top of node 8.11 (#1121). A replay with the in-memory backend took 5:05 hours up to slot 124M.

    · One min read
    Damian Nadales

    High level summary

    • Released Consensus for Node 8.11 (#1101)
    • Improved the Praos chain order:
      • Restricted VRF tiebreaker based on slot distance (#1047)
      • Small tweak to the issue number tiebreaker (#1086)
    • Wrote overview on the statistics on the leader schedule (#1096)
    • Integrated robustness refinement for concluding that a node is caught up in the context of bootstrap peers (#1031)
    • The P&T team managed to complete the UTXO-HD benchmarks using the LMDB backend and the results are promising.
    • We're working on setting up the Consensus Technical Working Group within Intersect, so if you'd like to participate please reach out to Damian Nadales.

    · One min read
    Damian Nadales

    High level summary

    • Reworked the argument for the different databases used in Consensus, in preparation for UTxO-HD (#1059).
    • Helped review the first Peras Innovation draft report.
    • Continued working on VRF restriction based on slot distance. The corresponding PR (#1047) went through its first round of reviews.
    • Provided support to the Networking team to review their work on querying big ledger peers (#1067).
    • Continued working on open-sourcing fs-api and fs-sim.
    • Performed other minor refactorings in the codebase (#1073 and #1070).
    + + + + \ No newline at end of file diff --git a/tags/consensus/page/2/index.html b/tags/consensus/page/2/index.html new file mode 100644 index 0000000000..f31dfc03ed --- /dev/null +++ b/tags/consensus/page/2/index.html @@ -0,0 +1,26 @@ + + + + + +45 posts tagged with "consensus" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    45 posts tagged with "consensus"

    View All Tags

    · One min read
    Damian Nadales

    High level summary

    • Implemented the new diffusion pipelining criterion.
    • Presented, reviewed and merged the March milestone for Genesis.
    • Integrated latest changes into Node version 8.10.
    • Regarding the UTXO-HD feature we:
      • Completed fixes in test-suites from cardano-node, cardano-api, and ouroboros-consensus. All tests are passing in latest prototype.
      • Prepared UTXO-HD prototype for LMDB benchmarking.
      • Fixed tracing in cardano-node.
      • Started merging code from the UTXO-HD branch into main (1053, 1052, and 1054).
    • We're currently working on getting rid of NoThunks errors in Consensus, so that we can enable these tests in CI, for extra assurance.

    · One min read
    Damian Nadales

    High level summary

    • Made the LocalTxMonitor HasTx cross-era behavior less surprising.
    • Finalized the tests in ouroboros-consensus for the UTXO-HD branch, except the mempool-parallel test which is still failing sometimes.
    • Fixed an upstream complication in quickcheck-state-machine related to Parallel state machines which should allow us for an easier and more understandable setup of the parallel mempool tests.
    • Drafted parallel state machine testing infrastructure for quickcheck-dynamic. Eventually could be used to replace the QSM infra for mempool parallel tests.
    • Cleaned up the Cardano.API.LedgerState module, required for UTXO-HD integration.
    • We have been working on Node release 8.10. The changes upstream are integrated all the way to Node. Tests and benchmarks are pending. The versions of Consensus, Ledger, and Networking are released, and we will focus next on releasing CLI, API, and finally Node.

    · One min read
    Damian Nadales

    High level summary

    • Merged the alternative fs-api interface for I/O using user-supplied buffers. This feature is important because it defines lower-level primitives for the filesystem API, which opens op avenues for more use cases and more efficient I/O operations (for instance when implementing lsm-tree, which is part of our efforts to move the ledger state to disk). This feature has not been released yet.
    • Implemented new diffusion pipelining criterion .
    • Released Consensus packages containing backports for Node 8.9.1.
    • Focused on fixing the tests for ouroboros-consensus in the UTXO-HD branch. Work is ongoing.

    · One min read
    Damian Nadales

    High level summary

    • Completed the rebase of the production libraries for UTXO-HD on 8.9, both in ouroboros-consensus, cardano-api and cardano-node.
    • Measured sync and replay times and memory in UTXO-HD. The latest result are reported here.
    • Bugfixed the snapshot interval.
    • Added an extra case to isIncorrectClaimedFlag for Babbage and Conway eras.
    • Added a db-analyser analysis to get the UTXO size per slot. The result of the analysis is illustrated here.
    • Started integration work for Node release 8.10.
    • Reviewed the Genesis pull-requests submitted by Tweag. They are pending a final round of review.
    • Helped the current release engineer prepare the 8.9 release candidate.
    • The Consensus Team has also been helping troubleshoot known issues with 8.9 (eg snapshots causing missed leadership schedules, unexpected snapshot interval, integration tests, etc).
    + + + + \ No newline at end of file diff --git a/tags/consensus/page/3/index.html b/tags/consensus/page/3/index.html new file mode 100644 index 0000000000..f9ac7c1ba2 --- /dev/null +++ b/tags/consensus/page/3/index.html @@ -0,0 +1,39 @@ + + + + + +45 posts tagged with "consensus" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    45 posts tagged with "consensus"

    View All Tags

    · One min read
    Damian Nadales

    High level summary

    This week we managed to integrate in the node the Consensus version of the UTxO-HD prototype that features the second version of the Ledger DB API. +We also changed the epoch structure for Conway, made progress towards the Bootstrap State Machine and Peras planning. +On the support front, we are investigating the impact of snapshots on missed leadership checks.

    · One min read
    Damian Nadales

    High level summary

    This week the team continued working on the second iteration of the Ledger DB API for UTxO-HD, as well as on Genesis. +We incorporated further improvements to the onboarding documentation, and wrote a document explaining a specific subtlety of our chain orders. +For Conway, we integrated DReps and initial delegates injection, which will allow the Performance and Tracing team to run benchmarks for this era.

    · One min read
    Damian Nadales

    High level summary

    For the past two weeks the Consensus team:

    • Resumed work on implementing the initialization and internals of the second iteration of the in-memory ledger database.
    • Resumed work on integrating the new ledger database API for UTxO HD.
    • Simplified query versioning for downstream users (863 and 403).
    • Confirmed the cause of missed leadership checks due to ledger snapshots (868).
    • Derived principles for the versioning/declaration of queries, since Conway complicates it (864 and 866).
    • Unblocked the Node Team in the work on rollback-insensitive leadership schedule queries (4765).
    • Drafted the (Pre-Genesis) Bootstrap State Machine (808).

    · One min read
    Damian Nadales

    High level summary

    The Consensus team implemented and tested a patch that does not propagate future headers. +It is under review, and we expect it can be released in the next Cardano node version. +On the UTxO-HD front, we finished prototyping the LedgerDB and BackingStore redesign, which is required for the LSM-tree integration and might help us implement a more resource efficient in-memory backend. +With this prototype finished we can start integrating the rest of the code. +We investigated the unexpected performance degradation observed when acquiring the block context. +We also released Cardano node 8.7.0 and moved tree-diff outside cardano-ledger libraries.

    · 2 min read
    Damian Nadales

    High level summary

    Over the last two weeks, we managed to run a UTxO-HD capable node in legacy mode, which maintains the baseline memory usage while keeping all the ledger state in memory (as the current node does). +This legacy mode could provide an alternative for releasing a UTxO-HD capable node where people can choose whether to store the large part of the UTxO set on disk or not. +However, legacy mode involves code duplication, requires several weeks of work before it is production ready (more integration and testing). Moreover, we will not release UTxO-HD before Conway to avoid the risk of delaying the latter. +On the other hand, to integrate the LSM-tree backend for UTxO-HD we need to redesign the Consensus storage layer, and this new design might enable us to implement an alternative in-memory backing store that will have a very similar performance and resource requirements as the current Cardano node. +Therefore, during the coming months we will focus our efforts on the redesign of the storage layer and the LSM-tree backend.

    On the Genesis front, we reviewed the peer simulator for Genesis tests, which was implemented by Tweag and was signed-off by the Consensus team.

    We also continued our work on improving the handling of blocks from the future. We presented possible approaches to handling blocks from the future in the Chief Scientist Meeting at IOG, which was very well-received. The discussion with the IOG scientists touched upon the relationship of this approach to Ouroboros Chronos.

    Javier Sagredo continues his cycle as release engineer, and he is working on version 8.7 of Cardano node.

    + + + + \ No newline at end of file diff --git a/tags/consensus/page/4/index.html b/tags/consensus/page/4/index.html new file mode 100644 index 0000000000..7bada87bc3 --- /dev/null +++ b/tags/consensus/page/4/index.html @@ -0,0 +1,37 @@ + + + + + +45 posts tagged with "consensus" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    45 posts tagged with "consensus"

    View All Tags

    · One min read
    Damian Nadales

    High level summary

    This week the Consensus team made progress on two fronts: the question of survivable eclipse duration, which is part of our work supporting Genesis delivery, and how to improve the handling of blocks from the future. +Regarding the UTxO-HD branch, we managed to run a node with legacy blocks, which is syncing with mainnet, up to including Alonzo. +We also investigated a regression in mempool snapshotting, which was ultimately solved by a Ledger update, and will be fixed in the upcoming Node 8.6 release.

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks the Consensus team received additional benchmark results for the UTxO-HD feature that show the resource usage for the in-memory backend is not satisfactory for a mainnet release, and we need to wait on the implementation of a new infrastructure to benchmark the LMDB backend (not likely to happen before next year). While we wait on this, we are evaluating the feasibility of making the UTxO-HD feature switchable, which will enable us to release it as an experimental feature. On the Genesis front we produced the first draft for a Survivable Eclipse Duration Model. We released version 8.5.0 of Cardano node, resumed work on subpar handling of blocks from the future, and improved our tracing system to assist problem troubleshooting in the node.

    UTxO-HD

    • The Plutus workload benchmark for the in-memory backend showed no regressions for the metrics of interest, but it does show an increase in resource usage.
    • We got additional ad-hoc measurements on memory UTxO-HD consumption. The memory usage of the in-memory backend is not satisfactory for a release. The memory usage of the LMDB backend is considerably lower, but we need to see how much lower we can bring it by running a node whose memory is constrained to 8GB.
    • We resumed work on an alternative solution that will make the UTxO-HD switchable. This will enable us to keep the baseline performance by totally disabling UTxO-HD, while allowing users to experiment with the feature if they wish to do so.

    Genesis

    • We produced the first draft for a Survivable Eclipse Duration Model (422).

    Support

    • Esgen finished his cycle as release engineer. Node 8.5.0 has been released.
    • We resumed work on the subpar handling of block from the future (4251).
    • We prepared the integration of new tracing events for the next node release. These tracing events will help debugging potential issues in the node (such as the previously mentioned issue).

    · 2 min read
    Damian Nadales

    High level summary

    The value-only workload benchmarks showed that the mempool forging regression observed in the UTxO-HD branch was fixed by the latest patch. In spite of the higher resource demands, for the metrics of interest (forging, peer-propagation, end-to-end propagation) we see no regression when using the UTxO-HD version of Cardano node, with the in-memory backend.

    On the Genesis front the Researchers continue reviewing different aspects of the design, in particular the argument that the Genesis rule will select the Cardano historical chain. +We also merged a fix for the Babbage to Conway transition, and released a new version of Consensus.

    Genesis

    • We elicited review from the Researchers on a final draft of the argument that the Genesis rule will select the Cardano historical chain (392).

    Support

    • We merged a minimal patch that fixes parameter update bug during the Babbage to Conway transition (366).
    • We enabled richer tracers in cardano-node that can be useful in future debugging (384).
    • Esgen continues with his release engineer activities, and created a new Consensus release.

    Fostering collaboration

    • We merged a new section into our documentation that explains the existing hard-fork combinator (HFC) interface and its complexities, which are relate do why the Babagge to Conway transition surprised us in this way. This explanation is step one towards improving the HFC interface (369).

    · 2 min read
    Damian Nadales

    High level summary

    We have a proposed fix for the mempool forging regression observed in the UTxO-HD branch. We need to confirm this by running system level benchmarks. +We are still working on a fall back mechanism for keeping the baseline performance of Cardano node, if the performance of the UTxO-HD is not enough. +On the Genesis front, we confirmed with the researchers that the proposed Genesis design is satisfactory for the historical Cardano chain. +We also have a proposed fix for the wrong protocol version bug, found in the Sanchonet, after transitioning to Conway.

    UTxO-HD

    • We optimized the mempool revalidation process, which in turn ought to solve the regression observed during system-level benchmarks in the in-memory version (349). System level benchmark results are pending.
    • Regarding the workaround to keep the node's baseline performance if that of the in-memory backend turns out not to be enough for our stakeholders (344), we are still expanding the legacy block package such that we could at some point run the node with a legacy Cardano block. There are some loose ends to wrap up before we can begin the first test run.
    • We also brought the UTxO-HD branch up to date with node version 8.4.0.

    Genesis

    • We finished the discussion with the Researchers on how to argue that the proposed Genesis design is satisfactory for the existing historical Cardano chain. +We are now drafting the final self-contained argument. (4157)

    Support

    • We debugged a bad parameter update on the Babbage to Conway transition in the SanchoNet testnet (339). +A superficial patch is within reach and we are in the process of reviewing the PRs related to this fix (340, 354, and 355) +However we are investigating a more principled redesign of the epoch transition logic, which required us to revisit the existing interfaces of the ConsensusProtocol type class and the HardForkBlock combinator (345 and 346). This is important to prevent these kind of errors in the future. This is an overdue step in the process of taking full ownership of the HFC: reconsidering original HFC design decisions for which we now have much more context, a few years later.

    · 3 min read
    Damian Nadales

    High level summary

    We were able to successfully run the system-level benchmarks for the UTxO-HD implementation, for the first time. There was an important regression in block forging performance that will have to be addressed before UTxO-HD is released. We also revisited the implementation of our query processing logic, which was needed to address the performance regression found in the query-by-address command. The preliminary performance results show that now the performance of this query is on-par with the Cardano baseline version, but we need further confirmation. +On the Genesis front, we presented the grinding-aware safety argument for the proposed historical Cardano Genesis windows to the IOG Researchers. +The Consensus release engineer finished his rotation: version 8.3.0-pre of cardano-node is releasing 2023 September 5.

    UTxO-HD

    • We ran the first successful system-level benchmarks for UTxO-HD (see #203) using the in-memory backend.
      • We observed a factor 12 regression in the forging performance, which we will have to address. There are strong indications that the regression is due to the backing store accesses that take place when taking a mempool snapshot.
      • After the mempool regression is fixed the benchmarks need to be ran again.
      • System-level UTxO-HD benchmarks with the LMDB are still pending.
    • UTxO-HD will eventually be necessary due to the growth of the UTxO set and other ledger state structures that live in memory at the moment. However, we are trying a strategy by which we could preserve the baseline performance of the node, in case SPOs and other node users are not ready to migrate yet (see #344).
    • We implemented a new way of processing queries at the hard-fork block level, which resolves the performance regression observed in GetUTxOByAddress (see this comment). Preliminary results are promising.
    • Regarding the roll out plan, UTxO-HD requires a significant change in the Consensus codebase. Even though we might be able to hide any potential performance impact in the node by keeping all data in memory (#344), the Consensus component was significantly changed, so we might have to postpone releasing this feature to mitigate any risks of conflicting with the implementation of CIP-1694 and release of Conway.

    Tech debt

    • We added tests that Consensus emits valid CBOR (#3099). This helped us detect a couple of serialization bugs. The tests still need to be merged into the main branch (#323).

    Support

    • Nick Frisby finished his release engineer rotation; cardano-node 8.3.0-pre is releasing 2023 September 5.
    • We helped to investigate a protocol version bug in Sanchonet (see #3491).
    • We started to implement the Network interface for bootstrap peer functionality, from which Genesis will benefit as well (see #91.
    + + + + \ No newline at end of file diff --git a/tags/consensus/page/5/index.html b/tags/consensus/page/5/index.html new file mode 100644 index 0000000000..7d714c06ee --- /dev/null +++ b/tags/consensus/page/5/index.html @@ -0,0 +1,29 @@ + + + + + +45 posts tagged with "consensus" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    45 posts tagged with "consensus"

    View All Tags

    · 2 min read
    Damian Nadales

    High level summary

    On the UTxO-HD front we reached another important milestone, where we handed over the implementation for benchmarking and testing. We are working on addressing the first issues that were found during the integration tests. +On the Genesis front we are finalizing the argument that a checkpoint is not necessary for the initial release, including supporting to support said argument. We are also working on the new node release, and several improvements to our code-base.

    UTxO-HD

    • We addressed the issues that came from the benchmarking and testing phase (see #314).
      • We fixed the operational-certificate update exception (#305).

    Tech debt

    • We elaborated an inventory of the symbols used by downstream clients in an effort to clearly define the Consensus API, which will help managing changes and their impact to the downstream clients (see this branch).
    • We extracted the SOP modules to a separate package as part of our effort to reduce the Consensus API surface area (see this branch).
    • We took the first step towards improving how the Cardano hard-fork block is instantiated when running a node (see #275).
    • We decreased the flakiness for our test suite (#284).
    • We incorporated and merged the pull-request on query versioning (#273).
    • We started working on new performance-based regression tests for mempool operations.

    Support

    • Nick Frisby continues with his engineer responsibilities. Notably getting the Consensus release out for node pre-release 8.3. Nick also began integrating it into downstream branches (cardano{-api,-cli,-node}). The Node team has now taken over, since Nick had progressed up to the point where they needed to start making new design decisions. Related PRs:

    · 2 min read
    Damian Nadales

    High level summary

    This week the Consensus team worked on integrating the latest node release into the UTxO HD branch. Our ad-hoc benchmarks in which we sync a node from scratch showed that the LMDB backend uses around 8GB of memory. We also released new versions of fs-sim and fs-api, and released strict-checked-vars.

    UTxO-HD

    • Rebased UTxO-HD on top of node 8.2 (issue)
    • Address new Maybe translations for UTxOs in Conway 1.6. (PR).
    • Performed ad-hoc benchmarking syncs with both implementations. The LMDB backend uses around 8GB of memory.
    • Fixed an infinite loop on the mempool tracing code that was preventing the node from shutting down gracefully.
    • Fixed an infinite loop on the ledger state query for traversing queries that prevented the node from running QueryUTxOByAddress (PR).
    • Measured the speed of QueryUTxOByAddress under different queryBatchSize values. There is a significant performance degradation for these queries when using the UTxO-HD version. Using the mainnet UTxO set at slot 90 million, querying an address took 40 seconds using the in-memory backend and 90 seconds using the LMDB backend, whereas the baseline took 7 seconds. We need to investigate if we can improve this situation or whether an external service that runs alongside the node is a better solution.
    • Refactored and implemented ledgertable-related classes for the general HardforkBlock.

    Genesis

    • Frisby and Esgen continue to engage with the Researchers on grinding against the Genesis design.

    Fostering collaboration

    • Drafted a document explaining versioning of local state queries #273.

    Support

    • Frisby is the release engineer this cycle.
    • Successfully created work-in-progress ouroboros-consensus and cardano-api commits that integrate the 2023 Aug 7 tip of cardano-ledger. This will require a release of ouroboros-consensus, which hasn't happened yet.

    · One min read
    Damian Nadales

    High level summary

    The db-sync team confirmed that the adaptor module the Consensus team provided for UTxO-HD integration, shows no performance degradation. Other clients who wish to integrate with UTxO-HD without using a on-disk storage could use that same approach for now. +We also focused on completing tracing support for UTxO-HD in cardano-node. +Currently we are working on UTxO-HD documentation, both for downstream consumers and for the general public; and generalizing the implementation further.

    The team working on Genesis decided on a Genesis-motivated change of the epoch structure with the researchers, wrote a self-contained description of the statistical model for historical Genesis windows and eclipse durations, and merged two small improvements to the ChainSync client as part of the onboarding efforts for the team that will implement Genesis.

    The Consensus team also investigated an issue on sanchonet (the Conway testnet) manifesting in long syncing pauses; identified a ledger bug which was promptly fixed by the Ledger team.

    Genesis liaising

    Improvements to the ChainSync client:

    · One min read
    Damian Nadales

    High level summary

    This week the team working on UTxO-HD discovered a space leak in the peer metrics code. This was communicated to the Networking team who has a proposed fix. The ad-hoc benchmarks that the team ran using a local immutable DB server showed good memory and time performance. We still have to check the performance on a memory constrained machine.

    The team working on the Genesis design started onboarding the team of engineers that will implement the new Genesis protocol. This team is also finalizing the statistical model for historical Genesis feasibility.

    On the support front, the team drafted an information exchange requirement (IER) for the Networking team to safely and efficiently control peer load.

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks the team working on the Genesis implementation continued to engage with the researchers, which resulted in various simplifications of the correctness argument for the historical Genesis window. They also decided on an approach for a syncing node to decide that it is (no longer) caught up. This functionality was requested by the networking team.

    The team working on the UTxO-HD implementation ran ad-hoc benchmarks that showed performance issues, which are being investigated. They also merged several improvements required for the first UTxO-HD release, and added a package for easing integration with other downstream components.

    Regarding our support activities, we integrated the latest Ledger changes into Consensus in preparation for release 8.2 of node.

    Genesis

    • We continued to engage with the researchers on our probabilistic model for historical Genesis window, resulting in various simplifications that make the correctness argument more clear while not being excessively conservative.

    • We decided on an approach of how to implement functionality requested by the Networking team; namely, how a syncing node can safely conclude that it is (no longer) caught up. Certain parameters are still subject to discussion with the researchers, and we have still have to agree on a concrete API for this functionality with the Networking team.

    UTxO-HD

    • We merged the last of the PRs that were part of UTxO-HD improvements for version 0.1: expose UTxO-HD configuration options in the node, refactor ledger tables, and expose a method of computing the UTxO set size.
    • We added a new "legacy" cardano block in a new ouroboros-consensus-cardano-legacy-block package that should ease the transition for some downstream packages to UTxO-HD, like db-sync. This is really only useful for downstream packages that use the parts of consensus that don't involve the storage components, in which case we can largely ignore ledger tables. Ignoring ledger tables could also make functionality like block (re-)application more performant for the legacy Cardano block as compared to the actual (UTxO-HD compatible) Cardano block.
    • We performed ad-hoc benchmarks of the UTxO-HD implementation, observing a regression in sync speed in the LMDB implementation as well as a regression in memory usage on the in-memory implementation. We are investigating this.
    + + + + \ No newline at end of file diff --git a/tags/consensus/page/6/index.html b/tags/consensus/page/6/index.html new file mode 100644 index 0000000000..0147e3db40 --- /dev/null +++ b/tags/consensus/page/6/index.html @@ -0,0 +1,66 @@ + + + + + +45 posts tagged with "consensus" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    45 posts tagged with "consensus"

    View All Tags

    · 2 min read
    Damian Nadales

    High level summary

    The Consensus team had a very productive meeting with IOG Researchers. We now seem to be in alignment in regards to a strong argument that the Byron and TPraos eras do not need to be checkpointed for an MVP. +There is one remaining question (which applies also to the Praos era): how to assess the threat that short forks pose against historical windows that underperformed? We are currently collaborating on that. We also drafted an argument that the updated "Limit on Patience" timeout sufficiently bounds how long the adversary can inflate a victim's overall sync time.

    On the UTxO-HD front, the prototype branch was rebased on top of the latest ouroboros-consensus main branch and integrated on top of cardano-node 8.1.1-pre. As a result, the mempool fairness fix that was released recently is now integrated into UTxO-HD. +We managed to run a node again with UTxO-HD enabled. +We also identified a race condition in the UTxO-HD prototype and fixed it. In addition, we started performing UTxO-HD ad-hoc benchmarks for cardano-node, which uncovered a performance regression on the Network component when using GHC-9.2/9.4. This is being addressed.

    Regarding our support activities, we Released fs-sim-0.2.0.0 and are in the process of preparing the 8.2 release of cardano-node. We also identified and started fixing incorrectly-unevaluated thunks in preparation for enabling CI NoThunks tests.

    · One min read
    Damian Nadales

    High level summary

    During the Past two weeks we drafted an implementation path for concluding that a node is caught up, which will also be used to back Network's ledger-peer selection (see this issue). We also carried a thorough investigation into the exact feasibility of applying the Genesis rule to certain historical parts of the chain.

    On the UTxO-HD front, we are working on improving the ledger tables design and wrapping up the improved DB locking mechanism. We also released packages that are required not only by UTxO-HD but are already used in cardano.

    UTxO-HD

    • We have a plan for making the ledger tables in UTxO-HD more ergonomic by mimicking SOP classes like HPure and HAp . In short, we implement generalised versions of important classes like Applicative and Traversable.

    Support

    • fs-sim-0.1.0.2 and fs-api-0.1.0.2 were released, which makes them now compatible with GHC up to 9.6.
    • ouroboros-consensus-0.7.0.0 was released for cardano-node 8.1, including query serialization fixes for backwards compatibility.

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks we brought further improvements into the Genesis design in collaboration with the IO Research and Networking teams. These improvements concern the Genesis selection rule, candidate rule, and root peers usage. See the [Genesis][#genesis] section for more details.

    Regarding our UTxO-HD prototype, during the past two weeks we put together a pull-request that improves the DB locking mechanism, started porting the mempool fairness improvements from our main branch, and integrated a new open source library (that implements cancellative monoids) that allowed us to simplify our code and get a small performance gain.

    We improved our tooling by releasing an immutable DB server, which can be used for testing and benchmarking purposes, and a db-truncater program, which can be used in disaster recovery and benchmarking scenarios.

    Genesis

    The consensus team working on Genesis:

    • Improved the genesis selection rule as a result of our interaction with IO Research.
    • Studied how the hard-fork combinator handles forecasting at era transitions, and improved our documentation.
    • Determined that the simplest candidate rule we had considered will work for the Genesis window at era transitions, at least for the MVP.
    • Elaborated concrete proposal for the Genesis State Machine.
    • Met with the Networking Team and advised/co-designed how to implement the stop gap usage of public trusted root peers before Genesis is released (it's similar to the Genesis State Machine).

    The team is currently re-analyzing the Limit on Patience, which can be less aggressive now that we've re-introduced the Genesis State Machine.

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks we made some important progress in the Genesis design. +It seems the BlockFetch logic need not be modified for Genesis, although this +needs to be confirmed. We started a DoS mitigation handbook and updated our +conceptual component diagram to guide the Genesis design. We engaged with the +IOG researchers to work on the Limit on Patience attack vector, work in this +area is still ongoing. We sketched a design to decouple the CPU load of the node +from its responsiveness to the socket. Finally, we discussed with Networking our +approach to lower the performance impact of the BlockFetch decision logic, and +got green light from them.

    We migrated the consensus code to a new +repository, splitting +it from the ouroboros-network repository, and released version 0.6 of +Consensus.

    We also merged the mempool fairness improvement to main branch.

    Another significant enhancement to our documentation was the addition of an +explanation of the hardfork combinator forecast horizon.

    See the sections below for more details.

    Genesis

    We reviewed the BlockFetch design documentation, and added some source-code +comments that emphasize certain properties of the decisions the BlockFetch +logic makes that are helping us confirm that Genesis does not require any +changes to BlockFetch. We are waiting on input from our former system +architect to verify this.

    We migrated and updated the conceptual component diagram in the ouroboros-consensus +repository which helps us situate the Genesis design and argument.

    We engaged with the IOG researchers about the Genesis design. We sketched out a +way to address the concern that the Limit on Patiente (LoP) attack vector duty +cycle is indeed low, but it's still non-trivial to ultimately conclude it's +sufficiently low.

    We also sketched a design to decouple the CPU load of the node from its +responsiveness to the socket, since the LoP is a relatively tight timeout, and +node performance bugs inducing seconds-worth of latency are unfortunately +familiar phenomena.

    Fostering collaboration

    We added an +explanation of +a question that we had to explain many times about the exact behavior of the +hardfork combinator forecast horizon.

    · One min read
    Damian Nadales

    High level summary

    This week the consensus team continued working on the improved DB lock mechanism +for UTxO-HD, and modifications to the mempool benchmarks that this prototype +requires.

    On the Genesis front we validated that the fragment size calculation in +BlockFetch is a major performance sink for ChainSync Jumping. By removing it +we will get performance that is acceptably close to that of the baseline. We +also started investigating a performance fix that does not alter the existing +baseline behavior too much. In addition we reviewed our Genesis attack vector +calculations.

    On the support front we released Consensus 0.4, and we are working on improving +our release process, to support the Cardano-wide efforts in this area. We also +performed an analysis on the number of file descriptors that consensus use. This +information can be used by the node operators to check if the number of file +descriptors they want to support are enough.

    + + + + \ No newline at end of file diff --git a/tags/consensus/page/7/index.html b/tags/consensus/page/7/index.html new file mode 100644 index 0000000000..5594f848ce --- /dev/null +++ b/tags/consensus/page/7/index.html @@ -0,0 +1,123 @@ + + + + + +45 posts tagged with "consensus" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    45 posts tagged with "consensus"

    View All Tags

    · One min read
    Damian Nadales

    High level summary

    This week the consensus team finished the UTxO-HD prototype refactoring. We are +now working on improving the DB lock mechanism to improve performance. We also +introduced several improvements to the file system abstraction and simulation +layer (fs-sim), which culminated in the release of fs-sim-0.1.0.0 and +fs-api-0.1.0.0 to CHaP.

    On the Genesis front we distributed the updated Genesis design document, +soliciting feedback from Networking Team and IOG Researchers. We also opened up +a PR for the adversarial leader schedule QuickCheck generator, which is being +reviewed.

    On the support front, we got a new Consensus version that can use different +fundamental VRF crypto primitives for Babbage and Conway eras.

    On the tech debt front we fixed an bug in the followers logic, which was +discovered by our QuickCheck property tests.

    · One min read
    Damian Nadales

    High level summary

    This week the consensus team continued working on the refactoring of the UTxO HD +prototype, and design and testing of Genesis. We also extracted the fs-sim +package, which provides a file-system abstraction layer that can be used for +testing and simulation. This makes the Consensus code base smaller, while +providing a package that the community can reuse and contribute to. We also +fixed a failing property test related to iterators. We are also working on +mempool and VRF improvements.

    Low-level details

    · 3 min read
    Damian Nadales

    High level summary

    The Consensus team continued working on refactoring and improving the UTxO-HD +prototype, and introducing improvements to the lmdb related packages. In +particular we identified an opportunity to gain performance by handling locks in +a more optimal way.

    On the Genesis front, we sketched a mitigation for an issue that PNSol and +Researchers caught. We also came op with a road map for not only testing the +Genesis prototypes, but also for enriching the tests we already have.

    Regarding technical debt, next to some minor improvements, we created +component-level micro-benchmarks for adding transactions to the mempool. The +results of these benchmarks will be published in the ouroboros-consensus web +page.

    We also finished moving the Consensus documentation to the ouroboros-consensus +repository, released ouroboros-consensus 0.3.0.0, and reduced the time +GitHub actions take in ouroboros-network.

    Workstreams

    UTxO HD Prototype

    We continued working on refactoring and improving the UTxO-HD prototype. As a +result of the first round of sytem-level benchmarks, we identified an +opportunity to optimise the way we handle locks to improve performance +(#4393).

    Also, we introduced several improvements to the lmdb related packages:

    Genesis

    We sketched out a mitigation of the issue that PNSol and Researchers caught in +the Genesis design.

    We came up with a road map for testing the Genesis prototypes, including early +milestones that are applicable to today's master branch, ie tests that are +useful before Genesis, and that will be nicely enriched when we do add Genesis.

    We developed the aforementioned tests, specifically a QuickCheck generator for +the Honest leader schedule and one as-aggressive-as-possible Adversarial +leader schedule that together satisfy the Praos properties that the Consensus +design takes as invariants.

    We investigated why the improved ChainDB queueing implementation behaves +differently in the baseline compared to the prototype, and we are close to +having a full picture of how the Consensus components interact during bulk sync.

    Technical debt

    We created component-level micro-benchmarks for adding transactions +to the mempool. We plan on extending this to more mempool actions and different +types of blocks. We store the benchmark data to make it available +to the GitHub action that publishes the benchmarks results.

    Other minor improvements include:

    • Removal of Test.Util.Classify in favour of Test.StateMachine.Labelling.
    • Addition of -Wunused-packages to the default ghc-options for Consensus +packages.

    Fostering collaboration

    We finished moving the Consensus documentation from +ouroboros-network to ouroboros-consensus, in preparation for +migrating the code to the latter repository.

    Support

    We released ouroboros-consensus 0.3.0.0.

    We reduced the load in the ouroboros-network GitHub actions, +thereby reducing the time CI jobs take.

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks we got the results from the system level benchmarks +for UTxO HD. They showed a substantial performance regression, so we spent some +time analyzing the results. We found out the frequency at which ledger snapshots +were taken was too high, so we requested the benchmarking team a new run with a +more realistic snapshotting policy. We continued refactoring and improving the +prototype, and we released UTxO-HD related packages to CHaP.

    We met with IOG researchers and networking specialists to discuss the Genesis +design, which was well received. We continued working on testing and +benchmarking different Genesis prototypes.

    We are also working on solving a test failure related to iterators. This work +derived in several improvements such as better documentation, a framework for +writing unit (and regression) tests, and the possibility of debugging +QuickCheck counter examples in the REPL.

    Finally, we released ouroboros-consensus 0.2.0.0 and +ouroboros-consensus-cardano 0.3.0.0 to CHaP

    Workstreams

    UTxO HD Prototype

    We got the results of the first system level benchmarks for UTxO HD. They seemed +to indicate a significant regression in performance. After looking into the +benchmark logs we found that the benchmark runs took ledger state snapshots too +often, due to the default snapshotting policy depending on k, and k being so +small in the benchmark runs. Therefore, the next step is to re-run the +benchmarks with a snapshotting policy that more closely resembles the one from +mainnet.

    At the same time, we continued refactoring and cleaning up the prototype.

    Also, we prepared the anti-diff packages (fingertree-rm, diff-containers, +simple-semigroupoids) and the lmdb related packages (cardano-lmdb and +cardano-lmdb-simple) to CHaP.

    Genesis

    The Genesis design was presented to the IOG researchers and Peter Thompson from +NSol. It was well received. They pointed out one blindspot, but we think it'll +be relatively simple to mitigate.

    In parallel, we continued developing test and benchmarks for the Genesis +prototypes. I particular we tested and implemented a potential fix for +increased ChainDB dequeue timings, which partly +behaved as we expected, but still needs further investigation. Also we obtained +new benchmarking data for the prototype.

    Technical debt

    Related to #4183, we developed a DSL for specifying +ChainDB unit tests. This will allow us to better understand the +counter-examples returned by QuickCheck tests, and to write regression +tests for them. Also, we added a module to enable +QuickCheck counter-examples to be run on the REPL, allowing for faster debugging +feedback. Also, we improved the documentation related to followers +(#4372).

    We are also working on a design for optimizing the way we handle blocks from the +future.

    Support

    We released ouroboros-consensus 0.2.0.0 and ouroboros-consensus-cardano +0.3.0.0 to CHaP. Remember that we decided to split the packages related to +Consensus into two bundles, one with the core functionality, Cardano-agnostic +code, and another bundle with instantiations specific to Cardano.

    · 2 min read
    Damian Nadales

    High level summary

    We continue refactoring the UTxO HD prototype while we wait for the system level +benchmarks. We have created a new repository that contains the anti-diff +packages used in this prototype.

    On the Genesis front, we are preparing another meeting with the researchers to +audit the implementation design, and we continued working on basic tests and +simplifications.

    During the past two weeks we also introduced two new tools. One for dumping CBOR +encoded blocks to JSON, and another to serve a local immutable DB.

    Workstreams

    UTxO HD Prototype

    We are in the process of refactoring the UTxO HD prototype, while we wait for +the system level benchmarks to confirm if the performance of the prototype is +satisfactory.

    We also set up a repository for the anti-diff package, which +required us to refactor the code, write documentation, and prepare a release to +CHaP.

    Genesis

    We worked on basic tests for the Limit on Eagerness property of +Genesis. We also introduced further robustness and simplifications in the +Genesis Density governor. Finally, we developed a presentation to engage again +with the researchers on our Genesis implementation design.

    Technical debt

    Fostering collaboration

    We are in the process of polishing the ouroboros-consensus +documentation site, which we will use a the entry point for Consensus related +documentation. The first version will not be complete, but we plan on +systematically improving it.

    Support

    We added a tool to ouroboros-consensus-cardano-tools which allows +to dump the Chain DB blocks or any given CBOR encoded blocks as JSON.

    We also added another tool that serves an existing immutable DB via +BlockFetch and ChainSync. This tool can help in assisting our local benchmarking +efforts (for instance Genesis' ChainSync jumping prototype).

    + + + + \ No newline at end of file diff --git a/tags/consensus/page/8/index.html b/tags/consensus/page/8/index.html new file mode 100644 index 0000000000..2d8aea1932 --- /dev/null +++ b/tags/consensus/page/8/index.html @@ -0,0 +1,215 @@ + + + + + +45 posts tagged with "consensus" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    45 posts tagged with "consensus"

    View All Tags

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team finished the testing activities +around the UTxO-HD prototype. This is a very important milestone which will +enable us to run system-level tests and benchmarks, as well as start refactoring +and cleaning the prototype. Regarding our Genesis workstream, we elaborated a +roadmap that gives an indication of the remaining work. We also continued our +work on benchmarking chain-sync-jumping. We also continued working on improving +the way we handle blocks from the future, and advancing the integration of the +new VRF and KES crypto.

    Workstreams

    UTxO HD Prototype

    As the prototype is nearing its completion, it was important to have enough +confidence that we will be able to move additional parts of the ledger state +onto disk. We worked together with the Ledger team to elaborate a +sketch on how the UTxO-HD design would accommodate the migration of +additional data from memory to disk. This gave us enough confidence that the +current architecture will be extensible in the future.

    On the testing front, we added property-based tests for the UTxO-HD +type classes.

    We also enabled disabled components, and addressed several +technical debt issues:

    • Implement splitSized anti-diff split (#4269), and integrate it +into consensus (#4273).
    • Renaming of peekVal to peekMDBVal (#7).

    We ran ad-hoc benchmarks for syncing a chain from scratch and replaying. We +found a race condition in the LMDB backing store, which we fixed. +After the fix we were able to successfully run these benchmarks. The results +were published by this pull request.

    We used our db-analyser tool to benchmark the cost of reading keys and +flushing values to disk. The following plot shows the duration of these disk +operation in relation to the main ledger operations, where we can see that the +cost of the former are comparatively low. The spike at the beginning of the +graph is when, at the start of the Shelley era, the entire UTxO set is flushed +to disk.

    UTxO-HD read and flush benchmarks

    After months of hard work adding tests for the prototype, we are ready to run +end-to-end tests on the node, and system level benchmarks. This signals a very +important milestone for the UTxO-HD workstream 🎉.

    Genesis

    We elaborated a high-level decomposition of the remaining +work for Genesis. We also continued benchmarking the chain-sync-jumping +happy-path.

    Technical debt

    We continued working on improving the way we handle blocks from the future.

    Support

    We completed the mapping of Crypto to HeaderCrypto and body Crypto. +HeaderCrypto is moved to cardano-protocol-tpraos. We created a draft pull +request to facilitate compiling consensus.

    · 3 min read
    Damian Nadales

    High level summary

    The consensus team is resuming its activities after the Christmas break. During +these weeks we focused on cleaning and benchmarking the UTxO-HD prototype, and +discussing with the Ledger team the changes that might be required for the next +iterations. The pull request that adds the Conway era is waiting for a second +review round and we hope to merge it soon. On the technical debt side we are +looking into a property-test failure found in the iterators. We are +investigating if this is an error in the model or in the implementation. We also +improved the documentation of our testing code.

    Workstreams

    UTxO HD Prototype

    We worked with the Ledger team to start preparing the next versions of UTxO-HD. +The Ledger team is concerned that for the remaining maps we might need the full +ledger state on epoch boundaries. Since the main consumer of the ledger rules is +Consensus, the code that requires access to a full state could be moved from the +ledger to some Ledger-Consensus bridge. Eg. the traversal of rewards could take +place in such bridge, instead of querying the ledger for the values that are +required in the epoch-transition computations.

    We relocated some UTxO-HD definitions, in preparation for merging +the prototype into master.

    We also completed updated local benchmarks comparing the replay time and memory +consumption of:

    • the baseline node (f2fc76ef45647275c98634da1718290b976ff364)
    • the UTxO-HD node with the in-memory backend
    • the UTxO-HD node with the LMDB backend

    The following plot shows the results: we can see that the LMDB node barely +reaches 8GB of memory, but it takes 1.78 times longer to replay the chain. The +in-memory backend is about 30 minutes faster, but still slower than the baseline +version. We are aware of this phenomenon and it is inherent to the problem of +maintaining sequences of differences of the last k ledger states that allows +us to perform rollback and roll-forward. We are in the process of measuring +syncing from scratch times.

    We also added StaticEither accessors that helped us to simplify +the UTxO-HD prototype.

    New Conway era

    We incorporated the feedback of the pull request, and rebased this +branch on top of master. The PR is pending a second review round and we hope +to merge this soon.

    Technical debt

    We are investigating a property-testing failure involving +iterators. Solving this requires understanding the expected behavior of +iterators in the counterexample found by QuickCheck to determine if the error +is in the model or in the implementation.

    Fostering collaboration

    We moved the contents of docs/Testing.md closer to the code, so that the +explanations about the tests are easier to find in the relevant modules, and the +documentation is easier to keep up to date.

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the Consensus team finalized the QSM tests for the +backing store and Mempool on the UTxO-HD branch with important discoveries +regarding parallel QSM testing. We also worked with the Ledger team to envisage +the modifications that are required in Ledger and Consensus to accommodate the +changes in the crypto VRF and KES. The db-analyser now supports bechmarking +the ledger operations, which will allow us to identify, debug, and profile +potential performance problems. We drafted a document that defines how to manage +the versions of Consensus-related packages. The top level documentation of +ouroboros-network now features a description of the consensus components and +provides a hyperlinked map to the modules documentation.

    Workstreams

    UTxO HD prototype

    Whereas we had passing sequential state-machine tests for the mempool, the +parallel case proved to be more challenging than we thought. The operation of +adding a list of transactions to the mempool is not atomic and, as a result, +when adding a list of transactions, transactions from other processes can be +added in between. The mempool implementation handles this correctly, however +this required us to redesign the parallel model we had to take +the lack of atomicity into account.

    Backing store property tests

    We finished refactoring the backing store property tests. The second review +round is ongoing.

    LSM tree implementation

    We are working on benchmarking (in terms of time and number of IO operations) +fetching/looking up data from disk.

    Genesis

    We worked on the design of a mechanism to prevent a DoS attack on our Genesis +design related to rollbacks. This was arguably the biggest outstanding question.

    During the discussions around Genesis, we noticed a design boundary that nicely +delineates a fundamental component. We almost have a full Haskell prototype of +it. It will be very nicely self-contained, perhaps even usable in the ultimate +implementation!

    New VRF and KES crypto integration

    We collaborated with the Ledger team on preparing the ledger state and crypto +types to avoid huge allocation on the epoch boundary when changing aspects of +the crypto that will only manifest in headers, not in the ledger states.

    Technical debt

    We merged the pull-request that adds a support to db-analyser for +benchmarking ledger operations. This will allow us to identify, debug, and +profile potential performance problems. The benchmark focus on the main 5 ledger +operations that are involved in chain syncing, block forging, and block +validation, namely:

    1. Forecast.
    2. Header tick.
    3. Header application.
    4. Block tick.
    5. Block application.

    The following figure shows a plot of the benchmarking results for the first 65 +million blocks (approximately) of the Cardano chain. The thin yellow lines under +the x-axis show the epoch boundaries, whereas the thick yellow lines correspond +to the era transitions.

    As we can see in this figure, era and epoch boundaries require more computation +time. The ledger team are aware of this problem, and we are working to improve +this situation.

    Fostering collaboration

    We drafted a document motivating and defining how Consensus (and +possibly other core teams) will/should manage our package versions. This +pull-request garnered many great discussions from our team members and other +teams too: Sebastian Nagel, Arnaud Bailly, Michael Peyton-Jones, Ziyang Liu, et +al. We want to thank you all for your input, and we found this discussion very +enlightening!

    We merged the pull request that adds an overview of consensus to +the top level +documentation of +ouroboros-network. This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    · 3 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team merged improvements to the monadic +cursor API that was needed to implement LMDB range reads, which is in turn +required for the implementation of the UTxO HD feature. We added tables to +several tests in for the UTxO HD feature, which increases our confidence in the +correctness of the prototype. The mempool property tests are close to being +completed. Also, we finished the LSM tree tuning algorithm.

    On the Genesis front we started simplifying the BlockFetch logic with +CSJ-specific workloads in mind.

    We are also documenting the Block Diffusion Pipelining feature, and added a +high-level overview of consensus to the top level documentation of +ouroboros-network.

    Workstreams

    UTxO HD prototype

    We merged the implementation of a monadic cursor API (#1)) which was +needed to solve a bug with LMDB range-reads. After this PR was merged, we focused on +bridging the gap between the lmdb-simple interface and consensus by facilitating +using lmdb-simple's cursor API without Serialise constraints (#3).

    We refactored the backing store property tests to use quickcheck-lockstep +(#4081).

    We added tables to the mock ledger in the UTxO-HD feature branch +(#4184). Every test that used to run with SimpleBlocks now uses +tables. This will enable us to exercise the UTxO HD mempool integration by +leveraging the existing mempool property-tests. The new state-machine +property-tests are still needed for testing the parallel behaviour of the +mempool.

    Our work on the mempool state-machine tests revealed the need for improvements +in the quickcheck-state-machine library. Parallel testing assumed that the +state machine did not have access to mutable references. However, the mempool +tests require the use of such mutable references for mocking the ledger +interface. As a result, our parallel tests were failing with rather obscure +messages. @Jasagredo submitted a pull request (#12) that allows for +new mutable references to be created at each run of the state machine.

    Backing store property tests

    LSM tree implementation

    We finished the LSM Tree tuning algorithm. We are currently tidying up the code +and gathering results (i.e., plots and their interpretation).

    CSJ prototype

    We started simplifying the BlockFetch logic with CSJ-specific workloads in mind.

    New VRF and KES crypto integration

    Started working on supporting new version of StandardCrypto which uses compact +KES and batched VRF (#4151).

    Technical debt

    We reviewed the existing state of the Block Diffusion Pipelining document. We +are now working on the "Implementation" section (#4020).

    Fostering collaboration

    We cleared up our understanding of the error dynamics of forecasting +(#4146 and #4174).

    We submitted a pull request that adds an overview of consensus to the top level +documentation of +ouroboros-network (#4197). This overview describes the consensus components and adds a +hyperlinked map to the modules documentation.

    https://github.com/input-output-hk/ouroboros-network/pull/4197

    · 6 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team started documenting the +implementation of the UTxO HD feature and continued developing tests for it. As +part of our work on UTxO HD, we improved the Haskell support for LMDB. We also +spent time working on the LSM tree prototype, and designed a parameter tuning +algorithm for it. Regarding our work on Genesis, our investigation of the +"plateaus" pointed at the TICKF slowdown on era boundaries as culprit. This +led us to developing a caching strategy that will not only remove the +aforementioned "plateaus", but can help alleviating the growing block production +delay on epoch switch. We also helped reviewing the block forge credential +hotswap feature, which is intended for use in the adoption of P2P.

    We also worked on paying technical debt and fostering collaboration. In +particular, we improved the io-sim framework, which is crucial for testing and +simulating Cardano components. We also removed thunks that appeared on era +translations, and improved our diffusion pipelining feature. We are working on a +presentation for explaining Praos and Genesis.

    High-level status report

    • Finish the UTxO HD prototype: in progress.
      • We added documentation for this feature.
      • We developed the second version of the mempool tests.
      • We fixed benchmarks that were inflating the speedup we observed in the +anti-diff implementation of sequences of differences. Speedups are now in the +range of [3.33, 4.75], which remain significant.
      • We continued improving Haskell LMDB support.
      • We finished implementing a "parameter tuning algorithm" for the LSM tree +prototype. This enables us to run experiments to check the correctness of +the algorithm.
    • Genesis: in progress.
      • Work investigating the "plateaus" in the ChainSync jumping prototype +pointed to the TICKF slowdown on era boundaries as culprit.
    • Tech debt:
      • We improved the capabilities of our io-sim library, which is crucial for +testing and simulating Cardano components.
      • We removed thunks from epoch translations in the ledger.
      • We added Linux CI support for lmdb-simple.
      • We got pending diffusion pipelining improvements merged.
    • Fostering collaboration:
      • We are working on a explanation of Praos and Genesis protocols.
    • Support:
      • Investigation of CSJ "plateaus" led us to developing a caching strategy for +TICKF that will not only remove these "plateaus", but can help alleviating +the growing block production delay on epoch switch.
      • We reviewed the block forge credential hotswapping feature which is intended +for use in the adoption of P2P.

    Workstreams

    Finish the UTxO HD prototype

    We merged PR #4060, which adds a report documenting the UTxO HD +feature, and puts emphasis in explaining how the mempool works in combination +with UTxO HD.

    We opened a draft PR with the second iteration of the property tests for the +mempool (#4076).

    We fixed the Arbitrary instances for keys and values in DiffSeq benchmarks +(#4143). The problem was that we were testing with mostly small +values, which artificially boosted the performance gains we saw on benhcmarks. +Speedups are now in the range of [3.33, 4.75] across the different +configurations.

    Backing store property tests

    We focused on incorporating feedback on the monadic cursor API PR (#1). +This required us to make small tweaks to quickcheck-lockstep to test the new +API. We also updated the backing store property tests to use the new version of +the monadic cursor API.

    LSM tree implementation

    We worked on the LSM tree prototype. In particular: finished implementing a +"parameter tuning algorithm" that adapts the LSM tree design based on factors +like:

    • workload
    • machine specs,
    • and characteristics of the data being stored.

    We are now running experiments to gather results and cross-reference them with +existing experimental results from the LSM tree paper to see if the algorithm is +working correctly.

    Benchmarking the CSJ prototype

    We focused on investigating the "plateaus" in the ChainSync tip, which turned +out to be due to the TICKF bug which we previously were only aware of in the +context of the long forging times near epoch boundaries. For the most drastic +patch by @nfrisby to speed up TICKF, full sync is speeding up by 7%.

    The following plot shows that by caching the TICKF the ChainSync tip and the +VolatileDB tip progress at the same rate.

    The plot below shows the speedup observed by caching the TICKF rule wrt the +baseline.

    Technical debt

    After addressing the PR comments, we merged PR #16, which implements +the MonadCatch instance for STM. This extends the capability of our io-sim +library, which is crucial for testing and simulating Cardano components PR #16 +closed #1461. This new feature was published as version 0.4.0.0 +of io-sim.

    We continued with our work fixing the NoThunk errors required for enabling +nightly tests, with the help of TVarInvariant checks in strict-stm and +nothunks libraries. We proposed fixes in cardano-ledger that took care of +thunks that appeared in era translations (#3143). The fixes will be +integrated back into consensus when cardano-ledger approves and publish the +changes introduced in #3143.

    We added CI support for lmdb-simple (#2). We currently test the build on +a Linux environment only.

    We got pending diffusion pipelining PRs (#3857, #3860, +#3856) merged, after rebasing and addressing feedback.

    Fostering collaboration

    @nfrisby finished a visualisation tool and outlined scripts for the Praos and +Genesis explanation presentations. The idea is to produce a video that gives an +overview of these protocols.

    Support

    We started working on caching the computation of the TICKF rule +(#4054), since this was blocking our benchmarking work for +Genesis. In addition, this issue has the Cardano community quite +concerned, so we are hoping the work done in caching the +computation of the TICKF rule can help alleviating the growing block +production delay on epoch switch.

    We reviewed the block forge credential hotswapping PR #3800 from the +networking team, which is intended for use in the adoption of P2P.

    + + + + \ No newline at end of file diff --git a/tags/consensus/page/9/index.html b/tags/consensus/page/9/index.html new file mode 100644 index 0000000000..87b7f57e34 --- /dev/null +++ b/tags/consensus/page/9/index.html @@ -0,0 +1,284 @@ + + + + + +45 posts tagged with "consensus" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    45 posts tagged with "consensus"

    View All Tags

    · 4 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team continued its work on testing the +UTxO HD prototype. We completed the era-transition and backing store tests, and +the mempool tests are advancing at a steady pace. Regarding our work in the +Genesis design, we continued our collaboration with the research and networking +teams, and we continue investigating strategies for making the chain-sync +jumping prototype faster.

    High-level status report

    • Finish the UTxO HD prototype: on track.
      • We worked on state-machine tests for the mempool, and spotted potential bugs +in the implementation. Investigation is ongoing.
      • We have a set of property tests for the backing store. We still need to +incorporate the improvements to the LMDB cursor API that these tests +made possible.
      • We merged the era-transition tests PR.
    • Genesis: on track.
      • Design work around Genesis continues in collaboration with researchers and +the networking team.
      • We continued trying to improve the performance of the chain-sync jumping +prototype. We gained additional insight on which parameters to tweak next. +In spite of the baseline still being faster, the current prototype already +achieves a significant speedup when compared to the naive approach of simply +running full chain-sync with all peers.
    • Tech debt: on track.
      • We clarified a common source of confusion around VRF tie-breaking and +cross-era chain selection.

    Workstreams

    Finish the UTxO HD prototype

    We continued working on property-tests for the UTxO HD prototype. In particular +we merged the era-transition tests +PR.

    Backing store property tests

    The backing store property tests +PR has been +reviewed. The next steps are:

    • Improve error handling and command generation.
    • Add coverage testing to check that we are not failing to cover interesting +test cases.

    The monadic cursor API +went through its first review round. The API is in a relatively stable state. +This PR also unifies the cborg and serialise-based interfaces to LMDB +operations. The next steps are:

    • Write +quickcheck-dynamic +state-machine tests for this API.
    • Adapt the changes in the serialisation interface in the backing store property +tests. This will involve adding boilerplate code in consensus to make up for +the removal of the cborg-based interface.

    LSM tree implementation

    We worked on the LSM tree +prototype. In +particular, we focused on tuning the LSM tree design to the different workloads +that consensus has (eg syncing, normal node operation, etc).

    Benchmarking the CSJ prototype

    Work on improving the chain-sync jumping performance is ongoing. In particular +we compared the performance of different jump intervals, which, somewhat +surprisingly, do not make a significant difference. In particular, we are seeing +periodic "plateaus" where the chain-sync tip does not progress, but they are +much longer for the prototype. Our hypothesis is that this seem to be due to a +combination of the garbage collector (GC) pauses, and the actual time it takes +the non-dynamo chain-sync peers to jump to the tip of the slot of the dynamo +fragment.

    In the coming weeks we will try to shorten these plateaus via a combination of +tweaking GC options and less synchronisation in the CSJ governor.

    The following plot shows the performance of the chain-sync jumping prototype +using different jumping intervals. It compares the syncing progress by plotting +the slots of adopted blocks against time. The baseline is still faster, however +it is worth noting that the current prototype already achieves a significant +speedup when compared to the naive approach of simply running full chain-sync +with all peers.

    The second plot shows the syncing progress sliced to a chosen ~5min interval, +and includes, in addition to the slots of adopted blocks, the slots of the tip +of the ChainSync fragment. This allows us to see how far ahead of the selected +tip the CS dynamo is, i.e. how much room we have for BlockFetch not to get +stalled. It shows periodic behaviour (due to the forecasting limit), and shows +that the CS fragment tip is not progressing for significant periods +("plateaus").

    Technical debt

    We clarified a +common source of confusion around VRF tie-breaking and cross-era chain +selection. This PR involved correcting potentially misleading names of +VRF-related functions, and providing context for a particular VRF value is +used for tie-breaking.

    · 4 min read
    Damian Nadales

    High-level summary

    During the past two weeks, the consensus team worked on adding property test for +different aspects of the UTxO HD prototype: era transitions, mempool, and +backing store. Thanks to these tests we were able to uncover a bug in the +prototype. On the Genesis front, we benchmarked a different version of the +ChainSync jumping prototype to try to improve its performance, but this did not +result in any noticeable speedup.

    High-level status report

    • Finish the UTxO HD prototype: on track.
      • We focused on increasing test coverage for the UTxO-HD prototype:
        • We started implementing Cadano-eras transition property-tests.
        • We started implementing state-machine property-tests for the mempool.
        • We merged the mempool rewrite.
        • We started working on state-machine tests for the backing store. This +uncovered a bug in the range-read implementation of the LMDB backing +store.
    • Genesis: on track.
      • We benchmarked a version of the Genesis ChainSync Jumping prototype that +spreads out the ChainSync updates over a longer period of time. This did not +result in any noticeable speedup.
      • We investigated the overhead introduced by non-ChainSync components, but no +conclusions could be drawn from the benchmarks we ran.

    Workstreams

    Finish the UTxO HD prototype

    We focused on increasing test coverage for the UTxO HD prototype. We also merged +the mempool +rewrite.

    Era transition property tests

    We started implementing Cardano era transition property +tests, +which are needed for making sure that the ledger tables get updated in the +right way when we move from one era to the next. There are at the moment two +important transitions.

    • Byron to Shelley: where all the UTxO is transferred from in-memory Byron +state (which has no tables) to the ledger tables of the Shelley state.
    • Shelley to Allegra: where the AVVM addresses must be deleted.

    We have tests for the Byron to Shelley transitions. We are working on adding +the remaining ones.

    Mempool state-machine tests

    We started implementing state-machine property tests for the +mempool. +The mempool is currently tested via pure property tests, and use a ledger +state without tables. With the introduction of UTxO HD, testing the concurrent +behavior of the mempool became of crucial importance (eg now we have to +acquire locks to flush the backing store). In addition, we need to test a +ledger state with tables. These needs led to the creation of a new set of +property tests. In particular we aim to run parallel state-machine tests that +exercise the mempool in a way similar to how the node would make use of it.

    Backing store property tests

    We started working on state-machine tests for the backing +store that UTxO +HD uses. The property tests uncovered errors in the range-reads implementation +of the LMDB backing store. To facilitate fixing this bug, we made +changes to the Haskell +LMDB bindings.

    Benchmarking the CSJ prototype

    Prompted by previous benchmarks showing significant improvements in sync time by +using more capabilities, we implemented a way to spread out the ChainSync +updates over a larger period instead of firing them all at the same time. This +didn't result in a noticeable speedup.

    We also benchmarked the prototype with CSJ disabled (such that just the dynamo +peer is running ChainSync, but e.g. BlockFetch still sees all peers) to rule +out/confirm overhead by non-ChainSync (mainly BlockFetch) related components. +This results in era-specific behavior (speed is like the prototype in Byron, but +like the baseline in Shelley). This deserves a closer look in the future.

    This diagram shows the respective syncing progress, starting at Genesis and +continuing a good part into Shelley (with the dashed line indicating the +Byron-to-Shelley transition).

    • Red: baseline
    • Green: CSJ prototype, 10 peers, jumps every 3000/f slots, jumps in clumps.
    • Blue: like Green, jumps are spread out.
    • Orange: variant with no jumping, to measure unrelated overhead.

    · 2 min read
    Damian Nadales

    High level summary

    During the past two weeks, the consensus team worked on improving the +performance of the ChainSync jumping logic, which is needed for Genesis. We also +rewrote the implementation of the mempool in the UTxO HD prototype which solved +the issues that prevented us from running system level benchmarks. Also on the +UTxO HD front, we have an improved implementation of the sequence-of-differences +(a crucial piece of UTxO HD), and we also elaborated a test sign-off list for +the UTxO HD feature.

    Executive summary

    • With the latest implementation of ChainSync jumping we are closer to the +baseline performance. In particular, the prototype seems to benefit from the +extra concurrency provided by additional capabilities.
    • We rewrote the implementation of the mempool in the UTxO HD prototype. This +rewrite was required due to performance problems we observed when running the +workbench. +These performance problems prevented us from running system level benchmarks. +The rewrite solved these issues. After the UTxO-HD: mempool +rewrite PR is +merged, we will contact the Benchmarking team so that they run the system +level benchmarks.
    • The implementation of sequences of differences based on anti-diffs was +integrated into the UTxO HD prototype. It is pending +review and +we also need to run replay and syncing benchmarks to confirm that this will +deliver a performance improvement, as observed in our micro-benchmarks.
    • The UTxO HD prototype +inspection +resulted in a list of +tests +needed for consensus to consider the UTxO HD prototype as fully tested.

    Additional information

    Genesis

    Benchmarking setup: 50MBit/s, 50ms latency

    • Red: baseline
    • Green: Current CSJ prototype, 10 peers, jumps every 3000/f slots.

    As ChainSync Jumping involves many concurrent network operations at every jump, +we tried to run the node with 6 instead of the default 2 capabilties.

    • Orange: baseline with 6 capabilities
    • Blue: CSJ prototype with 6 capabilities

    This diagram shows the respective syncing progress, starting at Genesis and +continuing a good part into Shelley (with the dashed line indicating the +Byron-to-Shelley transition).

    Further work includes whether we can tune the prototype to better handle few +capabilities, or to adapt the default number of capabilities (potentially just +while syncing).

    · 4 min read
    Damian Nadales
    • We proposed a fix for the performance degradation observed when running +distributed multi-node benchmarks in the UTxO HD feature branch. While this +fixed the problems observed when running local benchmarks, it broke the +ThreadNet tests due to concurrency issues. Therefore, we think it is wise to +start redesigning the UTxO HD mempool integration.
    • We did several rounds of code review on the alternative implementation of +diff-sequences required by the UTxO HD feature based on the idea of +anti-diffs. This alternative implementation is close to being merged, and the +next step is to integrate this to the UTxO HD branch, so that we can run +ad-hoc replaying and syncing from scratch benchmarks and compare these with +the baseline. The micro-benchmarks we elaborated for the alternative +implementation show speedups of up to 4x, so we are optimistic about the +performance of replaying and syncing from scratch benchmarks, however it is +important to notice that due to the nature of UTxO HD we will still be +slower than the baseline.
    • The final draft of the Genesis implementation specification is ready for +review.
    • We implemented a prototype for the happy path of Genesis' ChainSync Jumping +(CSJ). The prototype is slower than the baseline, however it is not the latest +version of the prototype and the jump interval is very small.
    • Work on integrating Conway has stopped since +priorities have changed.
    • We started work on benchmarking epoch-boundaries and epoch overhead +pr-4014. To this end, we made use of a modified version of our +db-analyser tool. We ran the new benchmarking setup using the Cardano +mainnet chain, and we can see that block tick and application take +substantially longer at epoch boundaries, although there are a couple of slots +during an epoch in which these computations take more than normal. We notified +the ledger team about these findings. We will use this modified version of +db-analyser to investigate the epoch overhead.

    Workstreams

    UTxO HD

    • Spent quite some time investigating the root cause of the degradation in +performance observed in the benchmarks. We run the make forge-stress +benchmarks locally in order to debug this behavior.

      • Transaction batching doesn't make a notable difference in the outcome +(considering we are using the in-memory backend).

      • The mempool batching implementation required asynchronous transaction +validation which is a violation of the LocalTxSubmission protocol +contract and therefore if we continued on that route, the impact would +have been quite big.

      • The STM logic we implemented by using a TMVar for the mempool internal +state was buggy and under certain circumstances it seemed to lock. +Reverting the mempool internal state to be stored in a TVar seems to +solve this problem.

      • The results we get after this change look almost identical to the ones +from the baseline.

    • The anti-diff prototype (PR +#3997) has +been reviewed and is close to being merged.

      • A follow-up issue (issue +#4010) +to integrate the anti-diff prototype in the various consensus packages +was created. A first version of the integration exists, and all tests +pass. A next step is to get some indication of the "real" performance gain +by profiling db-analyser (or cardano-node).

    Genesis

    • Final draft of the Genesis implementation specification, now up for review.

    • Local benchmark setup for parameter tuning via the happy path ChainSync +Jumping (CSJ) prototype (Issue 3987).

      • Context: Our Genesis design requires us to check in with a large (~20) +number of servers periodically while syncing. These servers are offered +jump requests via the ChainSync protocol (hence the name), which they can +accept or decline. If a peer declines, the Genesis rule allows us to +determine whether a node actually has a better chain.

      • The "happy path" is when no peer declines a jump. We want this to have +close to no overhead compared to status quo, i.e. syncing without Genesis.

      • We implemented a prototype for this happy path, and are now starting to +test in various configurations (number of peers, latency, bandwidth) to +tune the performance of ChainSync jumping, i.e. how complicated our logic +of choosing when to jump needs to be.

        Example:

      • Simulated connection: 50 MBit/s, 50ms latency

      • Jump interval: 3000 slots (on the low end, could be increased to up to +3k/f)

      • Red: baseline (1.35.3), one peer in topology file

      • Blue: Preliminary version of our prototype, with 10 peers.

        It is slower by about ~30%, but it is not the latest version of the +prototype, and the jump interval is very small, making CSJ more of a +bottleneck.

    Technical debt

    • Fix flakiness in ChainDB QSM tests (PR 3990).

    · 9 min read
    Damian Nadales

    Executive summary

    • We did most of the heavy lifting required to integrate the Conway era.
    • We have property tests for the UTxO HD backing store API implementations. A +possible bug was identified. Work is ongoing to make sure the property-tests +cover all the relevant cases.
    • We implemented and benchmarked the "anti-diff" prototype to speed up the UTxO +HD functionality. Results show a rough speedup of 4x to 5.5x across +several scenarios. Note that: "Data reported by tasty-bench is only of +indicative and comparative significance.". +We are investigating additional performance improvements. The "anti-diff" +prototype and benchmarks are still pending code review.
    • We elaborated a draft specification for the Genesis implementation and +ChainSync jumping optimization.

    Workstreams

    Conway

    • Integration PR of the minimal Conway era (Issue #3963, PR +#3971).
    • Discussions with Ledger revealed possible sources of confusion about which +data should be changed in the Conway era. As a result, a new technical debt +issue was raised, which does not block the integration of the Conway era +(Issue #3976).

    UTxO HD

    • Issue #3954, branch: The functionality of a +backing store, which is the interface to the on-disk part of ledger state in +UTxO-HD, is tested at a high level through the OnDisk tests. However, some +functionalities remain untested, e.g., reads of ranges of keys. As such, we +have implemented quickcheck-state-machine tests that exercise backing stores +directly. The tests are reusable for different backing store implementations +because the tests are implementation-agnostic: Any backing store that conforms +to the backing store interface can be plugged into the tests. Work is still +ongoing to label/monitor the tests, such that we can verify that interesting +cases are being tested. Furthermore, a possible bug has been identified in the +LMDB backing store with respect to range reads, though the bug has not been +resolved yet.

    • Issue #3946, branch, PR #3882: The +"anti-diff" prototype proposes an alternative approach to keeping track of +sequences (more specifically, FingerTrees) of diffs. These diff sequences +are a component of the in-memory parts of the ledger state in UTxO-HD. Since +the consensus code often requires the cumulative diff of a sequence of diffs, +the current implementation "caches" cumulative diffs of each subtree in the +diff sequence. This caching allows relatively fast reconstruction of the total +cumulative diff, but this caching proved to incur a non-negligible cost: when +we manipulate diff sequences through splits and appends, we force re-computing +a logarithmic number of caches. This is problematic, since we often split and +append in consensus: we split when we flush diffs to a backing store or when +we roll back blocks, and we append when pushing blocks. The new approach +should reduce the overhead of this caching.

      We implemented micro-benchmarks for the "anti-diff" prototype: we +first generate a sequence of commands (Forward, Push, Flush, or +Rollback) through a simulation, after which we measure the performance of +applying the commands to a diff sequence. In this context, Forward means +forwarding of values through a diff, whereas Rollback means switching to +a different fork by rolling back diffs/blocks and pushing new ones. +Moreover, we compare the performance for the two implementations: the +"legacy" approach, and the anti-diff approach.

      Some preliminary results were positive, but we needed to revisit the +benchmark's configuration to obtain more definitive results. After a +discussion with @dcoutts and the consensus team about this configuration +(e.g., number of commands generated, choice of the security parameter k), +the benchmarks should now be closer to the realistic setting. The following +configuration specifies the default configuration that is used in the +benchmarking code:

      • Number of commands generated: 10_000
      • Security parameter k: 2160
      • Number of initial backing values: 100
      • Number of key-value pairs deleted by a push: 50
      • Number of key-value pairs inserted by a push: 50
      • Number of key-value pairs forwarded by a forward: 50
      • Probability of a large (in the range [1000, 2000]) rollback: 0.05
      • Probability of a small (in the range [1, 10]) rollback: 0.95
      • Order of commands:
        • An equal number of forward and pushes.
        • 1 flush every 10 pushes.
        • 1 rollback every 100 pushes

      Moreover, we run four benchmark scenarios:

      • Default configuration
      • Without rollbacks
      • With only small rollbacks
      • Without rollbacks, larger flushes (1 flush every 100 pushes)

      How to read results

      Note: this section uses documentation from the +tasty-bench package to +explain how to read the results of running our benchmarks.

      Running a benchmark scenario gives us the following (curated) output:

      ...
      AntiDiff: OK (18.27s)
      2.527 s ± 47 ms, 2.1 GB allocated, 544 MB copied, 2.2 GB peak memory, 0.23x
      LegacyDiff: OK (32.73s)
      10.829 s ± 148 ms, 6.8 GB allocated, 2.3 GB copied, 2.2 GB peak memory
      ...

      The output says that the first benchmark, which exercises the anti-diff +prototype, was repeatedly executed for 18.27 seconds (wall-clock time), +its predicted mean CPU time was 2.527 seconds and means of individual +samples do not often diverge from it further than ± 47 milliseconds +(double standard deviation). We also configure the RTS to collect GC +statistics, which enables tasty-bench to estimate and report memory usage. +This data is reported as per RTSStats fields: allocated_bytes, +copied_bytes and max_mem_in_use_bytes. So, the output of the first +benchmark says that a total of 2.1 GB of memory was allocated, that a +total of 544 MB of memory were copied, and that the peak memory in usage +was 2.2 GB. We read the output for the second benchmark in the same way.

      Furthermore, the benchmark compares the mean CPU times for +both the anti-diff and legacy approaches: In this case, the mean CPU time +for the anti-diff approach is ~0.23x the mean CPU time for the legacy +approach. Conversely, the mean CPU time for the legacy approach is +1 / 0.23 ~= 4.35x the mean CPU time for the anti-diff approach. We will +call 0.23x the improvement factor. We will call 4.35x the speedup.

      Note that these improvement factors (and reported results) are subject to +noise, randomness, the specific configuration parameters, and the whims +of statistics. Data reported by tasty-bench is only of indicative and +comparative significance.

      Results

      For each of the 4 scenarios, we list the results of running the anti-diff and +legacy approaches 5 times. We run the benchmarks 5 times to get an indication +of whether the results are similar across multiple runs. Furthermore, we +calculate the accompanying ranges (if applicable) of improvement factors and +speedups.

      Note also the decrease in total bytes allocated and total bytes copied for +the anti-diff approach compared to the legacy approach.

      Default configuration

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff2.533 s (0.23x)4.7 ms2.1 GB557 MB2.4 GB
      Run 1: LegacyDiff10.792 s162 ms6.8 GB2.3 GB2.4 GB
      Run 2: AntiDiff2.508 s (0.23x)245 ms2.1 GB515 MB2.2 GB
      Run 2: LegacyDiff10.850 s30 ms6.9 GB2.3 GB2.2 GB
      Run 3: AntiDiff2.562 s (0.23x)5.0 ms2.1 GB552 MB2.2 GB
      Run 3: LegacyDiff10.993 s149 ms6.9 GB2.3 GB2.2 GB
      Run 4: AntiDiff2.168 s (0.22x)5.3 ms1.8 GB434 MB2.0 GB
      Run 4: LegacyDiff9.976 s39 ms6.3 GB2.0 GB2.0 GB
      Run 5: AntiDiff2.527 s (0.23x)47 ms2.1 GB544 MB2.2 GB
      Run 5: LegacyDiff10.829 s148 ms6.8 GB2.3 GB2.2 GB
      • Improvement factor: [0.22, 0.23]
      • Speedup : [1 / 0.23 ~= 4.35, 1 / 0.22 ~= 4.55]

      No rollbacks

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff1.638 s (0.19x)36 ms1.4 GB181 MB2.4 GB
      Run 1: LegacyDiff8.656 s207 ms5.7 GB1.5 GB2.4 GB
      Run 2: AntiDiff1.638 s (0.19x)75 ms1.4 GB181 MB2.2 GB
      Run 2: LegacyDiff8.654 s322 ms5.7 GB1.5 GB2.2 GB
      Run 3: AntiDiff1.663 s (0.19x)74 ms1.4 GB181 MB2.2 GB
      Run 3: LegacyDiff8.799 s216 ms5.7 GB1.5 GB2.2 GB
      Run 4: AntiDiff1.645 s (0.19x)51 ms1.4 GB181 MB2.0 GB
      Run 4: LegacyDiff8.732 s261 ms5.7 GB1.5 GB2.0 GB
      Run 5: AntiDiff1.639 s (0.19x)19 ms1.4 GB181 MB2.2 GB
      Run 5: LegacyDiff8.653 s234 ms5.7 GB1.5 GB2.2 GB
      • Improvement factor: 0.19
      • Speedup : 1 / 0.19 ~= 5.25

    Only small rollbacks

    NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
    Run 1: AntiDiff1.833 s (0.18x)36 ms1.5 GB185 MB2.4 GB
    Run 1: LegacyDiff10.362 s867 ms5.8 GB1.6 GB2.4 GB
    Run 2: AntiDiff1.696 s (0.19x)30 ms1.5 GB185 MB2.2 GB
    Run 2: LegacyDiff8.822 s106 ms5.8 GB1.5 GB2.2 GB
    Run 3: AntiDiff1.702 s (0.19x)44 ms1.5 GB186 MB2.2 GB
    Run 3: LegacyDiff8.906 s147 ms5.8 GB1.5 GB2.2 GB
    Run 4: AntiDiff1.701 s (0.19x)47 ms1.5 GB185 MB2.0 GB
    Run 4: LegacyDiff8.949 s197 ms5.8 GB1.5 GB2.0 GB
    Run 5: AntiDiff1.677 s (0.19x)55 ms1.5 GB186 MB2.2 GB
    Run 5: LegacyDiff8.856 s177 ms5.8 GB1.5 GB2.2 GB
    • Improvement factor: [0.18, 0.19]

    • Speedup : [1 / 0.19 ~= 5.25, 1 / 0.18 ~= 5.55]

      No rollbacks, larger flushes (every 100 pushes)

      NameMean CPU time2*Stdev (CPU time)Total bytes allocatedTotal bytes copiedPeak memory
      Run 1: AntiDiff1.643 s (0.25x)21 ms1.5 GB196 MB2.4 GB
      Run 1: LegacyDiff6.591 s351 ms4.0 GB1.4 GB2.4 GB
      Run 2: AntiDiff1.616 s (0.25x)47 ms1.5 GB196 MB2.2 GB
      Run 2: LegacyDiff6.520 s232 ms4.0 GB1.4 GB2.2 GB
      Run 3: AntiDiff1.640 s (0.25x)34 ms1.5 GB196 MB2.2 GB
      Run 3: LegacyDiff6.540 s150 ms4.0 GB1.4 GB2.2 GB
      Run 4: AntiDiff1.635 s (0.25x)76 ms1.5 GB196 MB2.0 GB
      Run 4: LegacyDiff6.589 s131 ms4.0 GB1.4 GB2.0 GB
      Run 5: AntiDiff1.628 s (0.25x)19 ms1.5 GB196 MB2.2 GB
      Run 5: LegacyDiff6.490 s5.9 ms4.0 GB1.4 GB2.2 GB
    • Improvement factor: 0.25

    • Speedup : 1 / 0.25 ~= 4

    Genesis

    • We elaborated a draft of the specification of the Genesis implementation and +the ChainSync Jumping optimization. In particular, this includes a proof +sketch that the latter preserves liveness and safety in all cases (Issue +3964).
      • @nfrisby's main realization during this sprint was that he had been +focusing so far on the case where the selected chain is an extension of +the intersection of our peers' ChainSync candidates.
      • This is the main case, ie an "absorbing" state, but it's not the only +case.
      • The new proof sketch begins by case splitting on that predicate, and +that made the sketch quite a bit easier to follow.
    • We continued working on the "happy path" ChainSync Jumping prototype (Issue +3960).

    Technical debt

    • We started working on the issues required to re-enable nightly CI runs.. +Nightly CI runs have far more lax time constraints, which gives the option to +run significantly more property tests than in our regular CI. To this end, we +merged a PR to easily adapt the number of tests globally (PR +#3947).
    + + + + \ No newline at end of file diff --git a/tags/crypto/index.html b/tags/crypto/index.html new file mode 100644 index 0000000000..d37d6529aa --- /dev/null +++ b/tags/crypto/index.html @@ -0,0 +1,35 @@ + + + + + +18 posts tagged with "crypto" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    18 posts tagged with "crypto"

    View All Tags

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
    • mithril: Full node verifier
    • musig2: Include MuSig2 description in cryptography handbook
    • kes_agent: Finilising test and CI. Working on KES binary

    Low level summary

    Mithril

    • Full Node Verifier merged #939.

    MuSig2

    • Started describing MuSig2 to include it as part of the cryptography handbook

    Sidechains

    • Analysis of Halo2 verifier with the goal of implementing SNARK verifier in Plutus. Implemented ad-hoc IPA verifier. Work progress in this fork.

    KES agent

    • KES agent is ready:
      • CI ready #19
      • Receipt confirmation message #20
      • KES agent binary ready #21
      • Control client implemented #11

    · 4 min read
    Iñigo Querejeta Azurmendi

    Security Issue Report: SECP256k1 bug

    Date Occurred: July 15, 2022 +Severity: Potentially Very High if exploited on Mainnet +Authors: Iñigo Querejeta Azurmendi

    Date of Report: August 17, 2023

    Summary of Issue

    Criticality Level

    Actually low (since the issue was detected prior to deployment) but potentially very high if it had been deployed to mainnet +Context

    New SECP256k1 Plutus bindings were being introduced in order to support interoperability with other major chains, such as Bitcoin and Ethereum. The intention was to deploy these as part of the Vasil hard-fork. The bindings were considered to be a low-security risk since the underlying library functions were well tested and had been deployed on other blockchains. +How was the Issue Detected

    The issue was detected via specific End-to-End tests that had been commissioned. It was (accidentally) triggered on the Cardano Testnet before a fix could be deployed there.

    What Action was Taken

    The Cardano Testnet was permanently halted, and new test environments were deployed (Preview and Pre-Prod). +Fixes were applied to prevent the use of the primitives. +A full security audit was carried out on the bindings. +The rollout of the primitives was postponed to a new hard fork (Valentine)

    Potential Effect

    The potential effect was that an adversary might be able to craft invalid Plutus transactions to crash any node, requiring execution of the Cardano disaster recovery plan to revert to a safe state and bypass the transaction.

    Actual Effect

    • Delay to the Vasil hard-fork
    • Temporary removal of SECP256k1 primitives
    • Additional hard-fork to introduce SECP256k1 primitives

    Ongoing Mitigations Needed, if any

    None

    Responsibility for Mitigations

    Core team

    Detailed description of Incident

    New Plutus secp256k1 cryptographic primitives for Plutus v2 failed to apply the necessary validity checks on the input data, meaning that the primitives could theoretically be used in an unsafe environment. The vulnerability was present in recent node versions (1.35.0 onwards), including ones deployed to Cardano Testnet.

    The problem was not in the deserialization functions of the underlying library (Bitcoin's library) but rather that the Haskell functions that implemented the Plutus builtins were not calling them correctly. In particular, the library functions were designed to take structured data as input. However, the Haskell FFI implementation that was produced for the Plutus builtins allowed a caller to pass in (possibly) unstructured data. There were no checks that these data were structured in the correct way. This issue was detected during End-to-End testing.

    • This is the ECDSA signature verification algorithm that was used. It takes a SECP256k1_pubkey as input. That type is an opaque type with an expected structure: a parsed and valid public key. It was not immediately obvious that structured data needed to be passed to allow the function to be used safely.
    • The same happened with the Schnorr verification function. It takes as input a SECP256k1_xonly_pubkey, which is again an opaque structure that holds a parsed and valid public key.

    The FFI skipped checks over these structured keys and directly passed the raw bytes that were given as arguments. If an adversary were to pass in data that was not properly structured, then it could result in unexpected behavior of the library. This could perhaps translate into an adversary being able to crash the nodes that ran these functions. All nodes in the network could be crashed by a single transaction that would then be executed repeatedly, so stalling the network until the disaster recovery process was initiated.

    The fix was addressed in this PR. It consisted of using the external representation that the deserialization function expects and running the deserialization prior to signature verification. This was audited by security experts.

    Recommendations

    • Check all new Plutus bindings for correct use.
    • Audit all new Plutus built-in bindings.
    • Continue to develop specific End-to-End tests for all new Plutus features.
    • Do not assume that any existing library functions are "safe". Treat all external calls circumspectly.

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Sidechains: Analysis of Halo2 SNARK verifier to plan a plutus implementation
    • mithril: Full node verifier
    • musig2: Finalised the missing fuzz tests
    • kes_agent: engineer on PTO. Work halted

    Low level summary

    Mithril

    • Work on a mithril flaky test #1105
    • Keep working on Full Node Verifier #939. +Should be merged in the coming week.

    MuSig2

    • Finalised the fuzz tests #43

    Sidechains

    • Analysis of Halo2 verifier. Necessary for a future implementation of a plutus verifier.

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Sidechains: First version of snark-based ATMS
    • mithril: Full node verifier
    • kes_agent: Keep progress, and prepare CIP and CPS
    • CIPs and community: Finishing BLS12-381 CIP and working on a KECCAK CIP

    Low level summary

    kes_agent

    Mithril

    • Final review of the implementation of Full Node Verifier #939. +Included benchmarks and further tests.

    Sidechains

    • Schnorr signature implemented
    • ATMS signature implemented
    • First benchmarks show that for the committe size we expect, we need 2^21 constraints.

    CIPs and community

    • Addressed some review comments in #PR506
    • Worked with the communityt on #PR524 to include Keccak as part of the next Plutus release.

    · One min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • cardano-base: E2E tests for BLS bindings and KES agent
    • Sidechains: Implement ECC chip and Rescue hash primitives for ATMS
    • mithril: Full node verifier

    Low level summary

    cardano-base

    • RawBearer API in ouroboros-network-framework (https://github.com/input-output-hk/ouroboros-network/pull/4395); blocked due to issue with windows' localSnocket. Trying to resolve.
    • Adapting cardano-base for direct memory transfers between mlocked RAM and file descriptors #317.
    • Above, blocked by the simplification of typeclasses #404.
    • Provided e2e test cases to the testing team with aggregated signatures and schnorr signatures for the BLS bindings

    Mithril

    • Implementation of Full Node Verifier #939

    Sidechains

    • ECC chip implemented for JubJub over BLS12-381
    • Rescue chip implemented for hashing.
    • Currently working on Schnorr signature (which uses the above constraints)
    + + + + \ No newline at end of file diff --git a/tags/crypto/page/2/index.html b/tags/crypto/page/2/index.html new file mode 100644 index 0000000000..1a3d64c4c4 --- /dev/null +++ b/tags/crypto/page/2/index.html @@ -0,0 +1,26 @@ + + + + + +18 posts tagged with "crypto" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    18 posts tagged with "crypto"

    View All Tags

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • cardano-base: Include final tests for BLS signature. Further adaptations for KES agent.
    • Sidechains: Implement BLS and JubJub using upstream's macros to merge these curves in halo2curves.

    Low level summary

    cardano-base

    Sidechains

    • Opened PR in halo2curves to include BLS12-381 and JubJub, #38
    • Addition constraint over JubJub merged #10

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • cardano-base: New KES structure finally merged. Included additional tests to BLS, and including test vectors created with zkcrypto's library.
    • KES agent: Reaching state of MVP. Rewriting KES agent networking code to use the Snockets abstraction.
    • Sidechains: Started implementing ECC chip of JubJub over BLS12-381.

    Low level summary

    cardano-base

    • #255 finally merged 🎉
    • Additional tests for BLS bindings #384
    • Open PR for including test vectors created with zkscrypto's library, PR#397

    KES agent

    • Introducing the SignKeyWithPeriodKES wrapper type, which bundles a KES key with its corresponding KES period PR#389.
    • Introducing the DirectSerialise API into cardano-base, which allows us to write mlocked memory directly to a file descriptor, without going through intermediate encodings stored on the GHC heap (which is a no-no due to secure forgetting requirements) #317.
    • Figuring out how to generalize the KES, DSIGN, and mlocking code in cardano-base such that it can run in IOSim
    • Rewriting KES agent networking code to use the Snockets abstraction, which gives us a platform-independent sockets layer (i.e., it will also work on Windows), and also allows us to run networked code in IOSim for testing purposes
    • Refactor MonadSodium into MonadMLock PR#388.

    Sidechains

    • Started working on ECC chip for JubJub over BLS (problems still with the multiplication constraint)
    • Use macros used by PSE library to try and merge our fork of halo2curves into PSE's repo

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Started looking into full-node verifier
    • cardano-base: BLS12-381's PR merged. Creating test-vectors for verifying basic pairing properties.
    • KES agent: Blockers overcome. Reaching a first MVP level of the KES-agent.
    • Sidechains: Included BLS12-381 & JubJub to halo2curves
    • MuSig2: Final modifs to C version.

    Low level summary

    Mithril

    • Started designing how a full-node verifier would work. Issue comming in the next couple of weeks.

    cardano-base

    • BLS12-381 branch merged PR#266.
    • Testing strategy for BLS bindings:
      • Test-vectors for Groth16, and simple BLS signatures ready.
      • Test-vectors with different library, and created by different engineer.

    KES agent

    • Resolved issues of circular dependency
    • Got rid of separate DSIGN and DSIGNM, we now have DSIGN over mlocked keys, but the phantom type is the same.
    • Opened a PR for raw bearer branch in ouroboros network PR4395
    • Resolved a bug where the agent node did not properly closed connections
    • Updated version of IOSim allowed us to finish a first version of KES agent.

    Sidechains

    • Included BLS12-381 curve to our branch of halo2curves
    • Included JubJub to our branch of halo2curves

    MuSig2

    • Minor reorg PR#42
    • Started including fuzz testing for deserialisation PR#

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: RFP finished. Code ready for audit.
    • cardano-base: BLS12-381's PR approved, only blocker is Windows' CI. Preparing extensive testing strategy together with Plutus and Testing teams.
    • KES agent: Working on a desing on how to use IO sim in order to allow for proper network simulation testing.
    • Sidechains: Preparing proving system to use the curves needed for main-net PoC.

    Low level summary

    Mithril

    • Merged PR#783
    • RFP for crypto audit ready.

    cardano-base

    • BLS12-381 branch approved PR#266. Blocker is Windown's CI. Working on it
    • Testing strategy for BLS bindings:
      • Preparing test-vectors for Groth16, and simple BLS signatures
      • Finding community projects to help write their use cases
      • Designing AC, and expected tests for higher levels of development (Plutus team, E2E tests, etc)
    • Wrote blogpost on how using the same key for ed25519 and VRF completely breaks the security of both systems

    KES agent

    • Started integration of sockets interface used in consensus
    • Use that for de/ser
    • Resolving problems with block memory in IOSim. Can't use withForeignPtr in IOSim
    • Results in having to parametrise for IOSim in KES and DSIGN for testing

    Sidechains

    • Prepared an API for proof generation in sidechains, with it's C API for integration with JVM languages.
    • Design document and start interacting with researchers for concrete instantiation of SNARK-based ATMS.
    • EdDSA over JubJub ready

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.
    • cardano-base: BLS branch is now ready for review. We are workign forward its merge.
    • KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.
    • Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs

    Low level summary

    Mithril

    • Bumped to version 0.2.0 the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using mlock.
    • Opened PR#783 to update dependency
    • Improved testing for batch opening of mtree, PR#773
    • Improved testing for batch verification of STM sigs PR#774
    • RFP for crypto audit almost ready.

    cardano-base

    • BLS12-381 branch finally ready for review PR#266

    KES agent

    Team off for one week. Other progress:

    • Learning about raw direct-bearer abstraction. An interface for sockets in consensus.
    • use that for direct ser/deser
    • written those syntaxes for ouroboros (coming PR)
    • the kes agent will depend on that.

    Sidechains

    Progress with familiarisation of Halo2 library to write circuits.

    + + + + \ No newline at end of file diff --git a/tags/crypto/page/3/index.html b/tags/crypto/page/3/index.html new file mode 100644 index 0000000000..1082f46795 --- /dev/null +++ b/tags/crypto/page/3/index.html @@ -0,0 +1,26 @@ + + + + + +18 posts tagged with "crypto" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    18 posts tagged with "crypto"

    View All Tags

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: Helper functions finished. Continue preparing a RFP for an audit of mithril's core library (decided to add audit of KES). Design proposal for viable registration.
    • cardano-base: Praos to PraosBatchCompat ready. KES secure forgetting finished, but holding merge for delivery strategy (breaking changes). Tested real world SNARK verification on plutus.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: started implementation in rust.

    Low level summary

    Mithril

    • Transmute helpers merged PR#722
    • We have progressed with the RFP document for the mithril-stm library. Progressing with description of octopus algorithm. Included KES in scope.
    • We are working in a modification of KES to require caller to allocate the secret key buffer.
    • Proposed a solution for signer registration of Mithril.

    cardano-base

    • Progressing with BLS12-381. Worked with plutus team to have a plutus script verifying a Groth16 proof.
      • Results are promising, with using only 23% of the execution budget to verify a realistic proof.
      • Next step is to build a real world use case (and not use a dummy proof). Projects being considered are Sidechains, Hydra or Mithril.
    • KES secure forgetting merge is being held off, due to breaking changes. We are considering handling several branches in cardano-base for this.
    • Conversion finally merged PR#344.

    KES agent

    • Figuring out how to use sockets to write directly into the file descriptor. Digging into the sockets implementation
    • Figuring out how to go from fake file descriptor to write the raw bytes

    MuSig2

    • Started implementing MuSig2 in Rust using the Ristretto prime order group. Still experimental.

    · 3 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We are creating helper functions to single out the usage of unsafe to facilitate auditing. We are also preparing a RFP for an audit of mithril's core library. Exploring future paths of mithril.
    • cardano-base: Decision of whether to continue with BLS12-381 or switch curves. Conversion Praos to PraosBatchCompat ready, as well as KES secure forgetting.
    • KES agent: using snockets and making things testable in IOSim
    • MuSig2: GH actions updated for checking the files whether they end with an empty line. Also, we reorganized the library.

    Low level summary

    Mithril

    • Given that removing the usage of transmute really affects the benchmarks, we decided to group all unsafe functions to facilitate auditing PR#722
    • We have progressed with the RFP document for the mithril-stm library. We are documenting the differences with respect with the original paper.
    • We are exploring possible paths of how mithril could be used 'as-a-service'. Other projects such as sidechains or Catalyst would benefit of such a service. We are at a very early stage of brainstorming how it could work.

    cardano-base

    • There has been a very thorough discussion with potential users of the BLS12-381 bindings if that is the best curve. We have considered alternatives such as Pasta curves, Pluto-Eris or BLS12-377, and considering it's trade-offs. Seems that the most interesting curve to have on main-net is still 381.
    • The team is gaining expertise in SNARKs to be able to experiment with them, and conclude whether the bindings will allow for SNARK verification on main-net in a timely manner.
    • The update VRF PR#341 is finally merged, and we are ready to merge PR#344, which implements conversion functions from the compatible types between Praos and PraosBatchCompat.

    KES agent

    • Use of snockets to send the data directly from the socket to secure memory.
    • We realized that in order for the DirectSerialise / DirectDeserialise classes to work against IOSim, we have to generalize a bunch of additional primitives
    • Our plans are to: (1) Split up MonadSodium into separate typeclasses, each capturing a more sensible concern; (2) Rename those typeclasses to something that reflects their nature better.

    MuSig2

    The GitHub Action linelint is used to check the files.

    • A new job for linting is added to the file /.github/workflows/ci.yml. The rules are configured in the file /.github/workflows/.linelint.yml. Some files from the configuration of libsecp were failing, so in the rules in .linelint.yml the failing files are denoted to be ignored by the linter.
    • Folders are reorganized. We created a folder to handle the example. This folder includes the examplemusig2.c, a distinct config.h, and helper.c. The example is enhanced by implementing the functions in the helper for the configuration given in config.h. The number of messages is different than the tests. The example is made more generic to run with a loop.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The open fronts that the crypto team is working on are:

    • Mithril: We explored whether some uses of transmute could be removed, but it resulted in considerable regression.
    • cardano-base: Some issues with Nix are blocking merge of VRF update. BLS12-381 benchmarks where quite satisfactory. Next steps will be defined by cryptography strategic decision.
    • KES agent: An inconsistency between contra-tracer available in hackage and the one in cardano-haskell delayed our progress. Now we are adapting PRs to the contra-tracer used by consensus.

    Low level summary

    Mithril

    • We removed the usage of transmute in mithril-core (and exchanged it with ser/deser, as unfortunately there is no other way with the library we currently use). However, the benchmarks showed an important regression - ~30% worse on average PR#675. We decided to keep transmute, but instead group all its usage in helper functions, to facilitate auditing.
    • We are writing a RFP for the audit of the core library.

    cardano-base

    • A problem with Nix is blocking merge of PR#341
    • Plutus team ran benchmarks of BLS12-381 built-ins. The results are satisfactory, and while we have yet not implemented SNARK verification in plutus, it all seems to point that we'll be able to verify some proofs in a single script execution.
    • Team is fully digesting the Plonk paper.
    • There's been a lot of discussions (with internal and external projects) regarding pairings in plutus, and what elliptic curve should be used.

    KES agent

    • A little unforseen delay has been caused by a mismatch in the use of contra-tracer. The one in hackage and that in cardano-haskell are not compatible. Unfortunately, for secure forgetting we use that of hackage, and now realised. We are doing the change, but still the CI is not happy.
    • The same was needed for the KES agents prerequisites PR#317.
    • We've started working with the agent itself again, upgrading the cardano-base dependency and adding ouroboros-network-framework dependency

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: The API features (error handling) has been merged.
    • Mithril: We update the KES library and published it in crates.io. Similarly, we merged batch verification of STM signatures.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI.
    • KES agent: We keep progressing with KES secure forgetting implementation.

    We also started working in the cryptography engineering handbook, which will be a cross team effort.

    Low level summary

    MuSig2

    • Merged the more granular error handling mechanism PR#33

    Mithril

    • Adapted KES library so that sk contains its corresponding period, making key handling easier. Avoid making unnecessary copies of the KES key. Expose function to get associated period. All included in Version 0.1.1, which was published in crates.io.
    • Updated new KES format to mithril library PR 674
    • We implemeneted batch verification of stm signatures, which improves the benchmarks for mithril chain-sync PR 531
    • We keep progressing on reducing the use of transmute in mithril-stm.

    cardano-base

    • Nothing new to report. Still working in merging these PRs. We are only missing nix merge of PR#520 and the updates on VRF will be merged.

    KES agent

    • We keep progressing in the secure forgetting PR. Added NoThunks tests, error hasndling to detect when mlocking fails, resolved bugs due to incorrect usage of mlocked memory and wrote more efficient tests PR#255.

    Cryptography handbook

    We have made available the (temporary) cryptography handbook https://input-output-hk.github.io/cryptography_spec/, and included the description of some primitives (Ed25519, KES and VRF). This is an ongoing effort, and we plan on further expanding the list of available primitives.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We were blocked with a CI issue, that we finally resolved. Similarly, we merged the redesig of the API to mantain consistency.
    • Mithril: Merged the reformat of the signle signature. Similarly, we started working in ensuring KES implementation in rust is safe.
    • cardano-base: VRF and BLS are still waiting to be merged, as we have some problems with the CI. Moreover, we started experimenting how rust can be included in the cardano-base code-stack.
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • [Still in progress] We are introducing a more granular error handling mechanism PR#33
    • We merged the API redesig PR#35
    • We were blocked for a while with a CI issue, for which we are currently simply using a simpler version of Ubuntu. We'll probably circle back to this in the future PR#36

    Mithril

    • We merged the individual signature PR#620
    • We are modifying important parts of the KES mplementation to guarantee there are no unnecessary copies during Ser/Deser (kes repo)

    cardano-base

    • Nothing new to report. Still working in merging these PRs.
    • We started experimenting on how we can use cabal-pack to create haskell libraries out of rust libraries, and how this would affect the cardano-base fork. We encountered what seems to be a bug in GHC

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Fixed a 'use-after-free' bug in the KES agent.
    + + + + \ No newline at end of file diff --git a/tags/crypto/page/4/index.html b/tags/crypto/page/4/index.html new file mode 100644 index 0000000000..05d2db6387 --- /dev/null +++ b/tags/crypto/page/4/index.html @@ -0,0 +1,30 @@ + + + + + +18 posts tagged with "crypto" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    18 posts tagged with "crypto"

    View All Tags

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level summary

    The four open fronts that the crypto team is working on are:

    • MuSig2: We are almost ready to reach a point where the MuSig2 library is ready for usage by the Hydra team.
    • Mithril: We started to think how Mithril-core can be designed such that it can be leverage by contexts where the verifiers run full nodes
    • cardano-base: The VRF and BLS branchs are still open and in progress
    • KES agent: We keep progressing with KES secure forgetting implementation as well as the KES agent.

    Low level summary

    MuSig2

    • We redesigned the library so that MuSig2 lib users don't need to be aware of the underlying secp256k1 library PR#31
    • We are introducing a more granular error handling mechanism PR#33
    • We rethought the API and made it more consistent with the underlying secp256k1 library PR#35

    Mithril

    • The mithril crates in general will be published in crates.io, and we adapted the core library's README PR#616
    • We are modifying the individual signature to not contain the VK and stake. This was not necessary, as the current design requires the aggregator of Mithril certificates to know this information PR#620

    cardano-base

    • We've been still working in updating to the latest version of the VRF. In particular we modified the cbits to use the latest version of libsodium stable (1.0.18) PR#341
    • SKs, VKs and VRF outputs will be compatible across the different versions. We are implementing conversion functions for simple transitions PR#344
    • Benchmarks on pairing built-ins have already started, so we were finalising some CI concerns and final remarks on the BLS PR, so that it can be merged as soon as we have green light from plutus PR#266

    KES agent

    • We keep progressing in the secure forgetting PR and resolving some bugs on memory handling PR#255
    • Increasing the test framework to make sure concurrency is properly treated by the KES Agent, for which we are including refcounted references. General progress in the implementation.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The SECP primitives AC has been met, and the test-vectors PR has been merged. Another of the main short-term goals is to implement KES secure forgetting. In the past week the mempool PR has been merged, and we've adapted the KES secure PR to the new mempool design. On top of this, we are working in updating the VRF batch compat version to use the audited version of the libsodium fork (PR#). Finally, we've 'cleaned' our libsodium fork, and we directly fork upstream, rather than forking Algorand's fork.

    Low level overview

    • With the AC met, there was no more blockers from crypto to release the node tag with the SECP primitives. We are now working closely with dQuadrant to to implement some E2E tests with an actual bridge implementation.
    • We previously had a C implementation of a memory pool for usage in KES secure forgetting. After a discussion with Alexey, we decided to use his implementation of a mempool in Haskell. We are working in adapting KES Secure forgetting to use this Haskell mempool.
    • In parallel, we keep progressing on the KES agent
    • VRFBatchCompat was deactivated due to a lack of an external audit. This audit was finished a few weeks back, and we are updating cardano base to use this new librar. In particular, this library implements the latest changing version of the VRF draft (13, which seems to remain stable), and links to the libsodium fork which implements batch verification.
    • Our libsodium fork now links directly to upstream libsodium.

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The crypto team is primarily focusing in enabling SECP primitives, and preparing the KES agent. We are close to +meeting the acceptance criteria in cardano-base, +which lacks some editorial comments on the style of dQuandrant's PR, the inclusion of one additional test, and +we are good to mark it as done. For the KES agent, we are still iterating over the best design of the solution, +but also progressing on the implementation.

    Low level overview

    SECP built-ins

    • (missed last two weeks update) Audit was succesfully completed by bCryptic, and some minor changes where addressed in PR 313
    • CIP-0049 was addressed in the editors meeting, and PR 250 was merged
    • The unit-tests PR 320 is opened. Some editorial concerns still need to be addressed, and an additional (negative) test has been requested for addition.

    KES agent

    • We were working in investigating how to send OpCerts to KES agents, but turns out to be not necessary. OpCerts can be stored on-disk, so the agent does not need to be aware of them.
    • We are redesigning the architecture. Instead of connecting the control server to the agent, and then the latter to the node, we are directly connecting the control server to the node, and the latter to the agent(s).
    + + + + \ No newline at end of file diff --git a/tags/db-sync/index.html b/tags/db-sync/index.html new file mode 100644 index 0000000000..cdb5c06647 --- /dev/null +++ b/tags/db-sync/index.html @@ -0,0 +1,75 @@ + + + + + +16 posts tagged with "db-sync" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    16 posts tagged with "db-sync"

    View All Tags

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team has released 1 version for mainnet 13.2.0.1 and 3 pre-releases for sanchonet +4.0.0, 4.1.0, 4.2.0. We have continued the integration of Conway (CIP-1694) and the support +of off-chain data (CIP-100)

    Lower level summary

    • CI build and docker fixes +#1670 +#1668 +#1667 +#1662

    • Improved committee representation +#1662 +#1571 +#1633

    • Offchain metadata partial support +#1654

    • Refactoring and tech-debt +#1635

    • Fixing epoch_stake_progress +#1620

    • Config and modulatirty improvements +#1653 +#1652

    • Updating to node-8.10-pre. Better support for deposits, refunds and proposal state +#1673

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team has prepared and tested a new db-sync version for mainnet, we have continued our +integration and update for Conway and have extended its modularity.

    Lower level summary

    • We attempt to turn db-sync into a modular project that can run with wither low or high recourses +#1610 +#1613 +#1590

    • Moving the flags above to a config file +#1609

    • Optimizations +#1595 +#1607

    • Conway Support and updates +#1581 +#1573 +#1570

    · One min read
    Kostas Dermentzis

    High level summary

    We have created new tag sancho-2-2-0, which integrates missing Conway feautures and some minor fix +tags sancho-2-1-0, sancho-2-0-1. +We have completed the initial implementation for the bootstrap instance objective.

    Lower level summary

    • Add a new --disable-gov flag which disabled Conway ferautures +#1558
    • Fix of the committee key size +#1544
    • Workaround a ledger issue with unregistered pools +#1542
    • Implemented a mechanism that loads the UTxO from the ledger resulting is way faster syncs +#1539
    • Rename offline to offchain +#1533
    • Transfer existing tests to Conway era +#1529#1547

    · One min read
    Kostas Dermentzis

    High level summary

    We have created a DBSync tag sancho-1-1-0 which can follow sanchonet. Also +the team has ran a number of benchmarks and tests for the new options/flavours of DBSync +and prepared a blogpost which summorises them, for downstream components.

    Lower level summary

    • Integration of node-8.3.x and support for Sanchonet on Conway +#1498
    • Simplifications of new feautures +#1496
    • Makes it impossible to restart DBSync with different schema options and adds +tests for them +#1466
    • CI fixes +#1494#1491
    • Prepared a blogpost about different DBSync options +blog

    · One min read
    Kostas Dermentzis

    High level summary

    We have integrated many new Conway feutures and allow db-sync to sync sanchonet. +We also continued testing and improving the new db-sync options.

    Lower level summary

    • Conway integration +#1484
    • Support for Sanchonet +#1476
    • Stake distribution is computed earlier +#1484
    • Deposit ledger events are now used. This reduces the db queries and makes syncing faster +#1484
    • Testing new db-sync options +#1466
    • Added support for ghc-9.6 +#1479
    • Tech debt: improve exceptions +#1471
    + + + + \ No newline at end of file diff --git a/tags/db-sync/page/2/index.html b/tags/db-sync/page/2/index.html new file mode 100644 index 0000000000..a9711e365b --- /dev/null +++ b/tags/db-sync/page/2/index.html @@ -0,0 +1,64 @@ + + + + + +16 posts tagged with "db-sync" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    16 posts tagged with "db-sync"

    View All Tags

    · One min read
    Kostas Dermentzis

    High level summary

    We've made progress in all high level objectives

    • CIP-1694 integration design
    • UTxO-HD integration proof of concept
    • schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2 and tested
    • Many devx issues resolved

    Lower level summary

    • We have improved and validated the design for the Conway integration in db-sync
    • Improved the initial integration of the UTxO-HD feauture branches which are under test
    • Prepared a new release 13.1.1.3 which supports node 8.1.1 +#1455.
    • This also fixes a bug +#1451
    • Added new tests to the new tx_out options +#1429
    • Fixed a chronic issue in db-sync related to exception handling and concurrency +This fixes many other issues and simplifies the logic in db-sync +#1447
    • A number of fixes and improvements in ci, docker, devx, docs +#1436#1442#1448#1452

    · One min read
    Kostas Dermentzis

    High level summary

    We've made progress in all high level objectives

    • CIP-1694 integration design
    • UTxO-HD integration proof of concept
    • schema migrations with a focus on speeding up frequent queries is part of release 13.1.1.2
    • A new hire will help us with devx issues.

    Lower level summary

    · One min read
    Kostas Dermentzis

    High level summary

    Lower level summary

    • Prepared a schema change which is expected to speed up queries and help clients +#1389.
    • Ran a big number of benchmarks on the above to evaluate if this change is reasonable.
    • Performance optimization related to rewards +#1382
    • Using the cache in more places to reduce recourses usage +#1380
    • Evaluated risks related to UTXO-HD integration
    • Worked on a feauture request to split the tx_out to an address table +#1396
    • Worked on another feauture request to prune the consumed entries from the tx_out table +#1398
    • Prepared for CIP-1694 integration

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team worked in performance enhancements issues, on providing new db-sync options and on +technical debt and bug fixing. The DBSync team also on boarded a new member.

    Low level summary

    • Worked on an issue which causes ada_pots tables to include the values related not only to an +epoch, but also the first epoch of the last epoch. +#1367
    • Fixed an issue where the epoch table didn't rollback and caused wrong values +#1370
    • Fixed an issue were users with disable-ledger option had to provide the state dir option, even +though it was never used. Also refactored the no ledger part of the codebase. +#1378
    • Improved the perforance by using the cache more. Also provided many new options which enables or +disables parts of db-sync. In addition a new --turbo mode is enables which allows db-sync to sync +mainnet in hours. +#1379

    · One min read
    Kostas Dermentzis

    High level summary

    The db-sync team created a new tag 13.1.0.2 which is ready to release. +We also investigated and had the first working UTxO-HD integration which is one +of the potential future risks for db-sync.

    Low level summary

    • Integrated the UTxO-HD feauture branch in kderme/utxo-hd-1. This doesn't +use the full on disk storage but keeps things in memory and the plan is to keep +it this way for the first iteration. The integration still has some performance +issues which we investigate
    • Created tag 13.1.0.2 which upgrades the dependencies of db-sync
    • Fixed an issue related to errors appearing in SMASH +#1353
    • Continued with ghc-9.2 integration +#1339
    • Worked on an new fixing procedure for +#1348. +We try to make these procedures work also on older schema version, without the +need to migrate to newer schema, which can be very useful for fixing existing +snapshots.
    + + + + \ No newline at end of file diff --git a/tags/db-sync/page/3/index.html b/tags/db-sync/page/3/index.html new file mode 100644 index 0000000000..15cd61bddc --- /dev/null +++ b/tags/db-sync/page/3/index.html @@ -0,0 +1,82 @@ + + + + + +16 posts tagged with "db-sync" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    16 posts tagged with "db-sync"

    View All Tags

    · One min read
    Kostas Dermentzis

    High level summary

    After spending the last months on improving DBSync and releasing 13.1.0.0 the DBSync team focused +the last weeks on integrating upstream changes and tech debt. This includes integrating CHaP, the +new leger core and ghc-9.2.4

    Lower level summary

    • Integrate CHaP +#1331
    • Integrate new ledger core 0.1.1.1 and ghc-9.2 +#1332
    • Technical debt: Add code formatter fourmolu +#1334
    • Preparing and tracking Conway and UTxO integration

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team continued testing release 13.1.0.0. The QA team has reported that no issues have +been found. The DBSync team also worked on cherry-picks back to master and on fixing bugs.

    Lower level summary

    • Release is cherry-picked back to master, which uses the new rollback mechanism which uses +reverse indexes, same as the release +#1320 +This also fixes a bug number of issues on master.
    • Depenencies upgrade and CHaP integration +#1324
    • AdaPots fix #1323. This +fixes an issue where the per epoch AdaPots didn't match the epoch boundary, but +they also included changes from the first block of the epoch.
    • Deposits Event fix #3212. This pr +adjusts the Deposits ledger events, so that it can be better used by db-sync. This can reduce the +number of queries that db-sync does during syncing an make syncing faster.

    · One min read
    Kostas Dermentzis

    High level summary

    The DB Sync team prepared a release 13.1.0.0-rc2 which includes many improvements for db-sync, +it makes rollbacks and syncing much faster, simplifies the schema, fixes bugs and introduces +migrations. This release finalises the objectives that were set for db-sync for the previous +3 months period and part of the syncing speed objective set for the next period +Changelog

    Lower level summary

    • Branch release/13.1.0.x +includes all the improvements related to the release. The release is passing through the testing +phase and a number of bugs and issues have been fixed, like +#1312 +#1311. +Also many new unit tests have been added.

    • Part of the release branch is cherry-picked back into master, in a way that it respects the new +release and development process, so that it takes into account migrations +release process

    • The DB Sync team has also tagged release 13.0.6 which better supports preview and preprod for +docker.

    · One min read
    Kostas Dermentzis

    High level summary

    The DBSync team is preparing a release which introduces schema simplifications, removes indexes, +unique and foreign keys. It also provides a way to fix older values and migrates without the need to +resync from genesis.

    Lower level summary

    Schema simplifications

    Indexes, Unique and Foreign keys are removed in order to speedup syncing +#1295 +The same pr also introduces a different way to rollback, which doesn't rely on foreign keys and +indexes.

    Performance

    The DBSync team ran a big number of benchmarks and investigated ways to speedup syncing. A +conservative number of these will be included in the next release and the rest can be found in +performance view.

    Migrations and resyncing

    The next release will be 13.1.0, it will enable a migration without the need to resync. It will also +introduce a procedure that fixes bytes values of Datum and RedeemerData in existing databases +#1294

    Release

    The release has been mostly cherry-picked from master +#1294 and its scope can be seen +release view

    · 2 min read
    Kostas Dermentzis

    DBSync Update

    Fast restarts

    We fixed a long overdue issue in db-sync which caused long delays on restarts +1266. This has been +one of db-sync main objectives for this period. Restarts are now very fast, +because db-sync deletes almost nothing from the db, it just replays the ledger rules until it +reaches the tip of the db. The fix also improves reconnection speed, in cases where the node +restarts or the connection is temporarily lost. It also speeds up even more in cases where due to a +deployment mess up a very old snapshot or no snapshot at all is used.

    Property based testing

    We added stateful property based testing, using quickcheck-state-machine +1269. These tests use empty or +almost empty blocks to test the new behaviour of restarts and rollbacks.

    These tests generate arbitrarily a list of symbolic commands from these:

    RollForward Int
    RollBack BlockNo
    StopDBSync
    StartDBSync
    RestartNode
    AssertBlockNo BlockNo

    The commands are translated into real commands. For example RollForward Int will forge a new block +that fits on the current chain. These real commands are executed against db-sync using the mock +chain-sync server. The symbolic commands are executed against a vesy simplistic Model of db-sync +which looks like this:

      Model
    { serverTip :: BlockNo
    , dbSyncTip :: BlockNo
    , dbSynsIsOn :: Bool
    , dbSynsHasSynced :: Bool
    }

    Finally a number of postconditions are checked, related to the eventual block number of db-sync.

    Tech Debt

    We handled a number of tech debt in +1275 +This improves the code format of db-sync, deletes many queries that were never used and groups the +others. This tech debt resolution not only improves the experience of working in db-sync, but can +facilitate some of our other objectives, as it makes it very explicit which queries are used +during syncing and which indexes are necessary.

    Smash

    We worked on fixing an issue related to fetching pool metadata +1276. +The issue which is described in +1270

    + + + + \ No newline at end of file diff --git a/tags/db-sync/page/4/index.html b/tags/db-sync/page/4/index.html new file mode 100644 index 0000000000..3c9c7e133d --- /dev/null +++ b/tags/db-sync/page/4/index.html @@ -0,0 +1,45 @@ + + + + + +16 posts tagged with "db-sync" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    16 posts tagged with "db-sync"

    View All Tags

    · 2 min read
    Kostas Dermentzis

    DBSync Update

    New Tag

    We created a new db-sync tag 13.0.5 which addresses shortcomings of the last +release 13.0.4. It is currently under testing. +The Changelog is +here and in more details:

    • We fixed fees for tx with phase 2 failure that didn't include a total collateral field. +1248

    • We fixed an issue that could cause db-sync to crash if a specific rollback occured. +1247

    • DBSync will now avoid reserialising data, especially Datums, which not only slows down db-sync but +could result in the wrong CBOR encoding being inserted. +1217

    • All the fixes above come with unit tests which validates the fix.

    • Added support for preprod and preview from docker. DBSync no longer needs to include the configs +for different networks, these are directly fetched from the cardano world. +1254

    • We added better support from docker for the new disable options and the overall documentation. +1260

    All the above were also backported to the master branch

    Open source

    We made the db-sync board public, so +everyone can have access on the issues we prioritise. +We also added new tasks to the board, some of them could be approachable to newcomers or people who +want to contribute.

    Progress on tech debt and new features

    • 1223 was merged, which removes the +foreign keys from the db schema. This opens the road to a number of optimizations.

    • An additional fix on top of the previous work was added +1250

    • An initial version where DBSync does not rollback on restart is done here +1266. +This allows db-sync to restart much faster, without the need to delete data and reinsert them. In +the future it can also facilitate migrations in cases where the ledger snapshots have a breaking +change, without the need to resync everything from genesis.

    + + + + \ No newline at end of file diff --git a/tags/devx/index.html b/tags/devx/index.html new file mode 100644 index 0000000000..c394bc9ca9 --- /dev/null +++ b/tags/devx/index.html @@ -0,0 +1,26 @@ + + + + + +2 posts tagged with "devx" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    2 posts tagged with "devx"

    View All Tags

    · 2 min read
    Moritz Angermann

    High level summary

    The Developer Experience team has been dealing with day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, CI migration from Cicero to Hydra, and Buildkite to GitHub Actions. iohk-nix, haskell.nix, and devx have seen improvements.

    Lower level summary

    build support & maintainance

    The DevX team has helped troubleshoot a few CI issues, and focused on helping to migrate from Cicero to Hydra, as well as from Buildkite to GitHub Actions.

    compiler upgrades

    Compatibility with 9.6 has been continued and most of our libraries are not 9.6 compatible. Only a few are not, we hope to have this done by the end of the month. We've also started preliminarily adding GHC 9.8 to our infrastructure for early compiler regression tests.

    Hydra Tools

    Our repository, input-output-hk/actions, has seen quite some improvements to facility the hydra <-> github integration.

    haskell.nix

    Haskell.nix has been maintained and updated with the addition of preliminary GHC 9.8 support.

    devx

    The devx repository has seen significant improvements, including the addition of GitHub Codespaces, and DevContainers. Integrated with our actions/devx GitHub Actions, we have a consistent set of tooling for

    • nix develop shells
    • GitHub CodeSpaces integration
    • VSCode DevContainer support
    • GitHub Actions integration

    upstream tooling

    Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

    · 3 min read
    Moritz Angermann

    High level summary

    The Developer Experience team has been devoted to day-to-day troubleshooting and support of various elements including build failures, compiler upgrades, the maintaince of our cardano-haskell-packages (CHaP), and infrastructure like GitHub Actions, iohk-nix, haskell.nix, and devx. Furthermore, we have also contributed to upstream tooling improvements.

    Lower level summary

    build support & maintainance

    Our DevX team has been instrumental in troubleshooting and fixing a wide range of issues, from broken windows builds and obscure LoadDLL errors to blst integration across Nix and Github CI. We've also initiated automatic uploads for release assets. Our efforts in streamlining complex CI setups have paid off, with some repositories like cardano-base experiencing significant reductions in CI complexity.

    compiler upgrades

    After the support for 9.2 across our libraries, we have started working on 9.6 compabilitiy as well. This move brings us closer to the upstream compiler, facilitating the contribution of patches and enabling early detection of regressions. In addition, we're prioritizing compaining even stronger for better backwards compatibility.

    CHaP (cardano-haskell-packages)

    We relocated the underlying tooling, (foliage), for CHaP into the IOG organization. Furthermore, we have introduced improved tooling to quickly add constraints to packages, better error reporting for add-revision and better hackage url compatibility to facilitate easer usage of CHaP.

    GitHub Actions

    Our repository, input-output-hk/actions, now houses the necessary actions for installing pre-requisites to build Cardano projects using GitHub Actions. Leveraging the base and haskell install actions has allowed us to simplify workflows in the repos, focusing primarily on invoking cabal.

    iohk-nix

    The iohk-nix repository has undergone a major revamp and now provides pre-built packages of the cryptographic libraries IOG utilizes for GitHub Runners. The key components we use, sodium, blst, and secp256k1, are also fixed to certain revisions within the iohk-nix repository.

    haskell.nix

    Haskell.nix has been maintained and updated with the addition of GHC 9.6.2 and GHC 8.2.8. After discovering performance regression in the native bignum backend, we switched the default bignum backend to gmp.

    devx

    The relatively new devx repository is where we experiment with a single nix development shell that aims to suffice for most use-cases at IOG. This initiative is expected to eliminate a number of CI failures related to project-build and shell interaction problems. The devx repository's readme has been updated to reflect its purpose and usage guidelines.

    upstream tooling

    Our team remains committed to enhancing upstream tooling, with ongoing contributions to GHC, Cabal, and Nix.

    + + + + \ No newline at end of file diff --git a/tags/embedding-quality/index.html b/tags/embedding-quality/index.html new file mode 100644 index 0000000000..3ec7164c1d --- /dev/null +++ b/tags/embedding-quality/index.html @@ -0,0 +1,27 @@ + + + + + +One post tagged with "embedding-quality" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    One post tagged with "embedding-quality"

    View All Tags

    · One min read
    Dorin Solomon

    High level summary

    We made good progress on most of the Action Items we agreed on Lisbon, like:

    • Cardano System Tests was fully open to public (tools, tests, results) +See cardano-node-tests webpage
    • We defined an user-facing-functionality template that is used with the cardano-cli team
      • this includes acceptance criteria & user stories, and definition of done
    • We are in the process of running the cardano-node-tests at commit & PR level in cardano-node (we are affected by the Cicero migration right now but we did most of the work already)
    • We started to apply a labelling convention on cardano-node issues that will be used to generate some visual dashboards with some metrics [TBD]
    • Ziyand Liu started an End-to-End Development and Testing Process for Plutus Features
    + + + + \ No newline at end of file diff --git a/tags/goedel/index.html b/tags/goedel/index.html new file mode 100644 index 0000000000..744bca5ceb --- /dev/null +++ b/tags/goedel/index.html @@ -0,0 +1,43 @@ + + + + + +23 posts tagged with "goedel" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    23 posts tagged with "goedel"

    View All Tags

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols, working on a +performance modelling paper and working on a performance modelling +prototype tool

    Details

    • completing work on chain sync mini-protocol

    • proof sketch of conformance property of chain sync mini-protocol

    • new content for JLAMP paper

    • NWPT talk

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and working on a +performance modelling paper

    Details

    • completing work on chain sync mini-protocol

    • proof sketch of conformance property of chain sync mini-protocol

    • onboarding new performance modelling intern

    • new content for JLAMP paper

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and working on a +performance modelling paper

    Details

    • completing work on chain sync mini-protocol

    • specifying correctness property of chain sync mini-protocol

    • creating diagrams for JLAMP paper

    • finalising structure of JLAMP paper

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and writing a paper +on performance modelling

    Details

    • completing work on chain sync mini-protocol

    • outline for JLAMP journal paper submission

    • analysing timeouts

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and testing the +performance analysis tool

    Details

    • extending thorn-calculus to support synchronous channels

    • extending mini-protocol framework to support communication with the +environment

    • working on chain sync mini-protocol

    • planning for JLAMP journal paper submission

    • analysying any-to-finish

    + + + + \ No newline at end of file diff --git a/tags/goedel/page/2/index.html b/tags/goedel/page/2/index.html new file mode 100644 index 0000000000..653a8abd9d --- /dev/null +++ b/tags/goedel/page/2/index.html @@ -0,0 +1,51 @@ + + + + + +23 posts tagged with "goedel" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    23 posts tagged with "goedel"

    View All Tags

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and testing the +performance analysis tool

    Details

    • drafting processs calculus semantics of mini protocol programs

    • testing the new performance modelling tool

    • further work on specification of mini protocols

    • extension of mini protocol framework to support communication of +programs with local environments via synchronous channels

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

    Details

    • working on collating and open sourcing performance analysis prototype

    • improvements to Ouroboros Praos specification in Isabelle

    • working on formalising chain sync mini-protocol

    • reviewing an alternatice semantics for DeltaQ

    • Seminar talk at U. Bergen on algebraic properties of timeliness

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

    Details

    • finalising a presenting performance analysis internship work to the +formal methods team

    • developed a new Isabelle mini-protocol framework and examples

    • planning an extended version of the ICE DeltaQ paper

    • working on algebraic rules for properisation of any-to-finish

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is currently formalising mini protocols and also further +developing the performance modelling prototype.

    Details

    • Development of an automated prover for showing conformance of +programs to state machines (as part of the mini-protocol framework)

    • Completion of the documentation of the (current state of the) +mini-protocol framework

    • Discussion about two DeltaQ lectures with two practical sessions as part +of 4th year masters course on distributed systemsby colleagues at UC +Louvain in the Autumn

    • Discussion about four DeltaQ lectures by colleagues at U. Bergen as part +of a 5th year Masters course in the Autumn

    • Adapted original DeltaQ implementation to the new typeclasses and +wrote property tests for its algebraic laws

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is formalising mini protocols and also further developing the +performance modelling prototype.

    Details

    • Developing new framework for specification and verification of +mini-protocols which is closer to the Haskell implementation.

    • Developed a new internal representation for the DeltaQ algebra that +allows for more modularity in backend implementations

    • Discussions regarding the Cardano networking specification

    + + + + \ No newline at end of file diff --git a/tags/goedel/page/3/index.html b/tags/goedel/page/3/index.html new file mode 100644 index 0000000000..ca623d2b86 --- /dev/null +++ b/tags/goedel/page/3/index.html @@ -0,0 +1,48 @@ + + + + + +23 posts tagged with "goedel" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    23 posts tagged with "goedel"

    View All Tags

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is working on formalising mini protocols, the performance +modelling prototype and also finishing off their ICE papers.

    Details

    • Formalization of the chain synchronization mini-protocol in the +thorn calculus

    • Final pre-publication steps for ICE 2023 papers

    • Developing approach for specification and verification of +mini-protocols

    • Started work on porting the DeltaQ framework to a new, more concrete +backend based on piecewise-polynomials

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the teams have been working on finalising their ICE papers +for publication in EPTCS, formalising concensus, and investigating chain +sync.

    Details

    • Preparing final versions of ICE papers

    • Reviewing the chain sync design and documentation

    • Refactoring the thorn calculus

    • First draft of Praos specification

    • Developing bounding factors on timeouts

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the teams presented two papers at ICE 2023.

    Details

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on giving and preparing public +talks, also on preparing final versions of their ICE 2023 papers, and +on analysing chain selection.

    This sprint the team has been working on final revisions for the +pre-proceedings versions of two ICE 2023 papers.

    Details

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on final revisions for the +pre-proceedings versions of two ICE 2023 papers.

    Details

    + + + + \ No newline at end of file diff --git a/tags/goedel/page/4/index.html b/tags/goedel/page/4/index.html new file mode 100644 index 0000000000..20988414ae --- /dev/null +++ b/tags/goedel/page/4/index.html @@ -0,0 +1,48 @@ + + + + + +23 posts tagged with "goedel" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    23 posts tagged with "goedel"

    View All Tags

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team had two paper accepted for ICE 2023 +(https://www.discotec.org/2023/ice). The event will be held in Lisbon +on 19th June 2023. The papers will be published in EPTCS.

    Details

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    The team is working on porting an existing formalisation of Ouroboros +Praos to a newer foundation.

    Details

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has submitted two papers for publication, carried +out consultancy with other teams and has an opening for an intern.

    Details

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on final drafts of two papers +for internal review and planning next steps of analysis of consensus +design refiniments.

    Details

    • Preparing final draft of DeltaQSD algebra paper for internal review

    • Preparing final draft of verifying design refinements for +distributed system design for internal review

    • Planning next phase of consensus design refinement analysis

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers +improving the deltaQ tutorial, consulting on performance design, and +the final version of the Djed paper.

    Details

    • Preparing draft of DeltaQSD algebra paper for ICE 2023

    • Successful outcome of Marlowe consultancy leading to substantial +improvement in performance

    • Preparing sections on the communication language and bisimulation +proofs for draft paper about verifying design refinements for +distributed system design

    • Camera ready version of Djed paper under preparation

    + + + + \ No newline at end of file diff --git a/tags/goedel/page/5/index.html b/tags/goedel/page/5/index.html new file mode 100644 index 0000000000..1973d39d15 --- /dev/null +++ b/tags/goedel/page/5/index.html @@ -0,0 +1,49 @@ + + + + + +23 posts tagged with "goedel" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    23 posts tagged with "goedel"

    View All Tags

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers and one +technical report, improving the deltaQ tutorial, consulting on +performance design, and the Djed paper has been accepted for +publication.

    Details

    • Preparing draft of DeltaQSD algebra paper for FORTE 2023

    • Extending the technical report on which the above paper is based

    • Consulting with an external company on performance engineering of Plutus contracts

    • Planning improvements and collecting material for the deltaQ +tutorial based on experience with systems that manage risk at +multiple timescales

    • Preparing sections on the communication language and idempontency +laws for draft paper about verifying design refinements for +distributed system design

    • Studying Cardano chain sync protocol

    • "Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin +Protocol" has been accepted for publication at IEEE ICBC 2023

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been working on drafts of two papers and one +technical report, distributivity properties of deltaQ, and consulting +on performance design with the Marlowe team.

    Details

    • Processing reviews on performance engineering paper and planning +paper revisions accordingly

    • Investigating distributivity properties of DeltaQ

    • Preparing sections on the thorn calculus and idempotency laws for +draft paper about verifying design refinements for distributed +system design

    • Consulting on performance design with Marlowe team

    · One min read
    James Chapman

    The team works on applied research and consulting in formal methods +that is directly applicable to evidence based engineering in Core Tech +and beyond.

    High level summary

    This sprint the team has been preparing several papers for peer review +and knowledge sharing and consulting within IO and the community.

    Details

    • R&D Seminar on experience participating in a member based organisation
    • Full day tutorial on performance engineering presented at HiPEAC +2023 conference
    • Finished preparing and submitted a paper on performance engineering +to an ACM workshop
    • Preparing a draft paper for future submission about verifying design +refinements for distributed system design
    • Consulting on performance design of other IO projects
    + + + + \ No newline at end of file diff --git a/tags/hydra/index.html b/tags/hydra/index.html new file mode 100644 index 0000000000..1c903a11ac --- /dev/null +++ b/tags/hydra/index.html @@ -0,0 +1,33 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · One min read
    Noon van der Silk

    High-level summary

    This week, the Hydra team made significant progress on incremental decommits +by closing the last gaps and cleaning up the specification. They collected +scenarios and prepared for incremental commits, updated dependencies for +compatibility with cardano-node 9.0.0, and continued tidying up documentation. +Work continued on an easy spin-up of the getting-started demo via +process-compose. Additionally, the team onboarded a new contributor and held +an early design meeting about payment channels and Blockfrost. They also +refined the SDK wallet idea.

    What did the team achieve?

    • Incremental decommit progress: closed last gaps, cleanup specification #1483
    • Collected scenarios and preparing for incremental commit #1484
    • Updated dependencies, compatibility cardano-node 9.0.0 #1481
    • Continued documentation tidyups
    • WIP easy spin-up of the getting-started demo via process-compose #1503
    • Onboarded new contributor
    • Early design meeting about payment channels and Blockfrost #1305
    • SDK wallet idea refinement #1509

    What's next?

    • Merge and release incremental decommit
    • Continued work on incremental commit
    • Support Hydra demo at Rare Evo
    • Have a Head open on preview to see it working through the upcoming hard fork

    · One min read
    Daniel Firth

    High-level Summary

    This sprint, the Hydra team updated the node to be compatible with cardano-node 8.11-pre. We continued work on increment decommits, investigating adversarial attacks on the smart contract and preparing it to be merged. We also discussed options for the incremental commit work, including designs for a hydra-ledger.

    Next sprint we aim to merge incremental decommits and make further progress on the incremental commit design.

    What did the team achieve this sprint?

    • Update to cardano-node 8.11-pre #1439
    • Allow committing internal wallet utxos #1442
    • Rewrite introduction section and fknown issues section. #1451
    • Make specification editing in markdown possible #1187
    • Fix ignored hydra-plutus tests #1458
    • Re-open internal head with blueprint commits.

    What are the goals of the next sprint?

    • Incremental decommit #1057
    • Make progress on the design for incremental commit #199
    • Test combinations of decrement/close/fanout #1390

    · One min read
    Daniel Firth

    High-level Summary

    This sprint, the Hydra team released version 0.17.0 of the hydra-node, containing the new blueprint commit transaction mechanism and upgrades to the networking protocol incorporated over the last several weeks. We also completed several documentation upgrades.

    Next sprint, we aim to focus the outstanding increment decommit work, completing the model tests for it as well as investigating adversarial attacks on the smart contract.

    What did the team achieve this sprint?

    • Combine blueprint and commit tx metadata #1409
    • Diagnose currently stuck head. #1415
    • Document offline mode #1414
    • Document writing an Event Sink and Source #1413
    • Streaming Plugins #1325
    • Ensure -Werror is running in CI. #1426
    • Release hydra-node-0.17.0

    What are the goal of the next sprint?

    • Update to cardano-node 8.11-pre #1439
    • Incremental decommit #1057
    • Make progress on the design for incremental commit #199
    • Reopen a head to test blueprint commits.
    • Test combinations of decrement/close/fanout #1390

    · One min read
    Daniel Firth

    High-level summary

    This week, the Hydra team upgraded the hydra-node networking layer to use a versioned handshake protocol, as well as extensive documentation restructuring and bug fixes to the hydra-tui.

    What did the team achieve this week

    • Use versioned hadshake when connecting hydra-nodes.
    • Restructure documentation.
    • Fixed the transaction envelope type parsing in order to be compatible with cardano-cli and update our docs.
    • Show the contestations in the hydra-tui
    • Experiment with removing persistence in the reliability layer and adding custom command to Reset the head state to the last confirmed snapshot

    What are the goals of next week

    • Provide aarch64-linux docker images for hydra-node.
    • Release hydra-node 0.17.0
    • Finish new model spec changes related to decommit testing

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has been working on refactoring and detecting network protocol version mismatches. They have also merged the /commit endpoint changes including a follow-up fix about fee calculation. Besides this, they applied minor workflow fixes by adding docker images to nix checks and disabling mithril integration testing on preview (until mithril 2418 is released).

    What did the team achieve this week

    • Refactor connectivity and detect network protocol version mismatches #1381
    • Merged and completed #1350, including a follow-up fix about fee calculation
    • Add docker images to nix checks
    • Disable mithril-client testing on Preview

    What are the goals of next week

    • Restructure documentation including a how to about streaming plugins #1325
    • Add arm64 docker images as requested in #1404
    • Release 0.17.0
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/10/index.html b/tags/hydra/page/10/index.html new file mode 100644 index 0000000000..d35cdb0faf --- /dev/null +++ b/tags/hydra/page/10/index.html @@ -0,0 +1,62 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team wrote and published the monthly report for June, +implemented the end-to-end functionality for external commits, and tested it on +the preview environment. They also listed Hydra as a tool on the Cardano +developer portal, providing more visibility for the project. The team clarified +the path forward for L2 protocol improvements and explored an alternative CI +approach using cabal instead of nix. Additionally, they released version 0.11.0, +marking another milestone in the projects development.

    What did the team achieve this week

    • Written and published the monthly report for June
    • Implemented external commits end-to-end incl. tested it on preview #215
    • Listed Hydra as a tool on cardano developer portal
    • Cleared up path forward on L2 protocol improvements #728
    • Established an alternative CI using more cabal tools #923
    • Release version 0.11.0

    What are the goals of next week

    • Spike on performance improvements of event sourced persistence #913
    • Complete ReqSn only sends transaction ids #728
    • Groom and plan last items for 0.12.0 (remove internal commit)
    • Improve reliability of benchmarks

    · One min read
    Franco Testagrossa
    Pascal Grange

    High-level summary

    This week, the Hydra team shared progress updates during the monthly review +meeting (monthly report and video recording available soon) and started +experimenting on preview network with the new commit from external wallet +feature.

    What did the team achieve this week

    • Monthly report & review meeting, demonstrating commit from external +wallet
    • Published regular benchmarks for +Hydra
    • Moved forward the journey for external commits using multiple script UTxOs +#903
    • Changed the API to only put transaction id in snapshots, instead of the full +transactions #922 -> this +is now evolved into fully addressing #728
    • Fuel marking is now optional as one can now commit from an external wallet +#924
    • Add flag option to display node version on tui +#934

    What are the goals of next week

    • Complete external commits using multiple script UTxOs #903
    • New release 0.11.0
    • Dirtroad solution of improved persistence performance #913

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team focused their efforts on continuing to investigate and +experiment operating a head on mainnet. They collected several bugs and issues +and worked on fixing them. Now the team is soon to release a new version, +0.11.0, which comes with a lot of improvements and bug fixes.

    What did the team achieve this week

    • Restored and fixed a bug which stalled our head on mainnet #927
    • Solved one user issue #914
    • Reduced significantly local state size and logs by removing the full scripts from it #928
    • (pending review) Reduced snapshot size in the API, by only including tx ids #922

    What are the goals of next week

    • New release 0.11.0
    • Monthly report & review meeting.
    • Fix some minor bugs discovered when operating our head on mainnet
    • Complete journey for external commits using multiple script UTxOs #903
    • Publish benchmarks and provide regular benchmarks for Hydra #186

    · 2 min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team worked on multiple fronts. They finished the +investigation about the broken head on mainnet and re-opened their persistent +head instance. The team also fixed the monthly report publication on their +website and started sketching ideas and further improvements. Also, they are on +the last mile to deliver a new feature which will allow parties to commit funds +from extern wallets. Finally the team started to work on optimizing the +performance on their benchmarks.

    What did the team achieve this week

    • Finished investigation on broken head on mainnet #897 and re-opened it.
    • Added support for externally committing regular utxo #887
    • Fix monthly report publication on docs website and published the monthly report. Odd problems when publishing monthly report:
      • Make us think about if we should change something about the website #908
      • Open issue to docusaurus #9036
    • Fixed a bug in the benchmark process #910
    • Explored performance of the hydra-node{.verbatim} and identified a +bottleneck.
    • Timed transaction feature is being used by the auction project 🎉

    What are the goals of next week

    • Complete performance analysis and start/plan improvements and provide +regular benchmarks for Hydra #186
    • Add hydra as tool to developer platform #872.
    • Authenticate network messages #727.
    • Complete journey for external commits using multiple script UTxOs #903
    • Start implementing Option B for external commits #215.

    · 2 min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team has put their effort on finding solutions on many +different problems, such as our broken head on mainnet +#897, our fragile monthly +report publications on the website and implementing Option A for +external commits #215. +Although most of these items are still open, huge progress has been made. To +accelerate the investigation, they improved their logging to give more precise +errors when a transition requirement fails, and to reduce duplication on effets +logged content. Last but not least, the team is exploring formal methods and +attended a workshop on formalizing cryptographic protocols in Agda.

    What did the team achieve this week

    • Continued investigating broken head and opened an issue to keep track #897.

      As part of this issue, improvements were made to the node logs:

      • Give a precise error when a transition requirement fails #895.

      • Reduce duplication for effects logged content by using sequential eventId and effectId pair #896.

    • Fixed references in the hydra specification #893.

    • Attended a workshop on formal methods and crypto in Agda.

    What are the goals of next week

    • Investigate and re-open our team-internal head on mainnet.
    • Improve and provide regular benchmarks for Hydra #186.
    • Complete journey for external commits implementing Option A and start implementing Option B #215.
    • Authenticate network messages #727.
    • Add hydra as tool to developr platform #872.
    • Fix monthly report publication on docs website.
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/11/index.html b/tags/hydra/page/11/index.html new file mode 100644 index 0000000000..f2d78f68c5 --- /dev/null +++ b/tags/hydra/page/11/index.html @@ -0,0 +1,59 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team accomplished several important tasks. They held their +monthly review meeting and drafted the report for May. They made progress on +implementing the first end-to-end journey for external commits using "Option A" +for normal UTxOs, while still considering "Option B". The team also integrated a +Spanish translation contributed by the community, created micro-benchmarks for +transaction validation and deserialization, and made improvements to +hydra-node's version reporting. Last but not least, they implemented the ability +to commit multiple UTxOs to a head at once.

    What did the team achieve this week

    • Held the monthly review meeting (recording + slides) & drafted the report for May.
    • Have a first end-to-end journey for external commits implementing Option A +for normal UTxOs #887 (still considering Option B).
    • Integrated the spanish translation #866.
    • Created micro-benchmarks for transaction validation and deserialization #884.
    • Improve hydra-node version reporting on non-released builds #849
    • Some minor CI improvements following up last weeks changes.
    • Allow commit transactions with multiple UTxO #774.

    What are the goals of next week

    • Investigate and re-open our team-internal head on mainnet.
    • Improve and provide regular benchmarks for Hydra #186.
    • Complete external commits with script UTxOs #215.
    • Authenticate network messages #727.
    • Add hydra as tool to developr platform #872.

    · 2 min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team has worked on several fronts, including improvements of their CI speed, logs, documentation pages and adding the support for timed transactions. They also updated the "Coding Standards" for the project, improved the troubleshooting page on their website and wrote a section about how to operate a hydra node. Finally the team completed a feature request that allows clients to submit and validate transactions to their hydra nodes using time validity ranges, ensuring isomorphism with L1.

    What did the team achieve this week

    • Complete validation of timed transactions feature #196.
    • Write ops instructions and troubleshooting #569 and improve logs.
    • Remove --ledger-genesis argument to hydra-node options #863.
    • Fix issue with garbage collected caches by using a new cardano-scaling.cachix in more workflows #877.
    • Use nix to build test binaries to increase CI speed #867.
    • Updated our Coding Standards.

    What are the goals of next week

    • Monthly report & review meeting.
    • Have a first end-to-end journey for external commits implementing "Option A" #215.
    • Integrate spanish translation #866.
    • Improve and provide regular benchmarks for Hydra #186.
    • Allow commit transactions with multiple UTxO #774.
    • Explored stateless observation and refined hydra explorer ticket #696.

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team achieved a number of milestones, including the release +of the first mainnet compatible version. Besides this they also addressed +inconsistencies in rollback handling, added an architecture page to the website, +reducing the size of logs using event IDs. They also had productive discussions +with researchers on plans for incremental commits/decommits and had a whiteboard +session on DeFi and lending protocols. The goals for next week include +completing the validation of the timed transactions feature, exploring stateless +observation, refining the Hydra explorer ticket, writing ops instructions and +troubleshooting, and implementing the first end-to-end journey for external +commits.

    What did the team achieve this week

    • Released first mainnnet compatible version 0.10.0
    • Addressed inconsist handling of rollbacks #784
    • Added architecture page and fixed haddock links on our website #838
    • Opened a new hydra head on mainnet
    • Talked with researchers on initial plan for incremental commits/decommits
    • Had a Whiteboard session on DeFi and lending protocols
    • Reduced size of logs using event ids #859
    • Published the monthly report for April

    What are the goals of next week

    • Complete validation of timed transactions feature #196
    • Explored stateless observation and refined hydra explorer ticket #696
    • Write ops instructions and troubleshooting #569 and improve logs
    • Have a first end-to-end journey for external commits implemented #215

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team held their Monthly review meeting and drafted the +report which likely is published next week. They put the spec into the +repository and website, addressed a user issue and fixed the TUI peer list. +Furthermore, they updated dependencies, conducted a Twitter space on Auctions +use cases, covered the rollback bug with tests and implemented a solution. +Looking ahead, their goals for next week include releasing 0.10.0, implementing +timed transactions support, writing a Query API ADR, and grooming work items +like off-chain benchmarks.

    What did the team achieve this week

    • Held the Monthly review meeting and drafted the report (to be published next week)
    • Added the spec into the repository +#693 and published on +the +website
    • Groom and addressed user issue #823
    • Covered the rollback bug with tests and implemented a solution (to be reviewed) #784
    • Fixed the TUI peer list
    • Updated dependencies to match cardano-node master
    • Conducted a twitter space on Auctions use cases

    What are the goals of next week

    • Release 0.10.0
    • Support timed transactions solution drafted and validated API with users
    • Write Query API ADR and groom a concrete step
    • Groom and solve PostTxOnChainFailed UX problem #832
    • Groom off-chain benchmarks idea #186 and turn it into a feature

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team worked on several fronts, including fixing state +machine continuity on-chain, discussing voting project solutions, exploring +adding Hydra support to kupo, and improving API navigation with a sidebar. The +team also updated dependencies and fixed issues in their test suites. Moving +forward, the team plans to hold the next monthly review meeting, address a user +issue, prepare for the 0.10.0 release, and work on a dirt road fix for the +rollbacks issue with proper test coverage.

    What did the team achieve this week

    • Fixed scripts to enforce state machine continuity on-chain #777.
    • Took part in a twitter space on Scaling Cardano.
    • Joined a CBIA meeting to discuss Cardano network protocols & how to specify them.
    • Discussed potential solutions of ensuring vote uniqueness in the voting project.
    • Updated dependencies to match cardano-node master to prepare for upcoming releases and hard-forks
    • Explored adding Hydra support to kupo, a lightweight Cardano chain indexer - some more work required.
    • Improved navigation of the API Reference with a sidebar, see unstable API version.
    • Fixed two things in our test suites (random port conflicts and an arithmetic underflow in smoke test)

    What are the goals of next week

    • Monthly review meeting (join via Discord or AddEvent) & report
    • Dirt road fix for rollbacks #784 properly covered by a test.
    • Groom and ideally address user issue #823.
    • Put the spec into the repo #693 and prepare release 0.10.0.
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/12/index.html b/tags/hydra/page/12/index.html new file mode 100644 index 0000000000..b29f9d067a --- /dev/null +++ b/tags/hydra/page/12/index.html @@ -0,0 +1,61 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team focused on improving the smoke test, fixing developer +tooling, and improving the API for voting use cases. They reviewed progress on +auction, payments, and voting projects and made worked on reproducing a bug with +handling rollbacks. Moving forward, the team plans to update dependencies, +implement a dirt road fix for the rollbacks bug, and explore adding Hydra +support to kupo.

    What did the team achieve this week

    • Reviewed progress on auction, payments and voting projects
    • Improved smoke tests so they can run on mainnet
    • Fixed a regression in the development environment and updated cardano-node +used in tests
    • Improved API with more configurability to unblock voting use case
      • Exclude utxo in SnapshotConfirmed outputs #808
      • Addressed a user request by only sending Greetings once #813
    • Reproduced the rollback bug by improving our model-based test suite #784

    What are the goals of next week

    • Update dependencies to match cardano-node master
    • Dirt road fix for rollbacks #784
    • Update Hydraw to maintain state locally
    • Explore adding Hydra support to kupo
    • Put disclaimer texts and closing mainnet compatibility feature #713

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team published the monthly report for March, created +separate links for different versions of documentation, and clarified potential +solutions for the Rollbacks bug. The team also discussed Query API requests for +the Hydra Voting project and met with community members to answer questions +about Hydra. Moving forward, the team plans to integrate the specification into +the repository, implement a short-term fix for the Rollbacks issue, and draft a +Query API ADR.

    What did the team achieve this week

    • Published monthly reports on website
    • Separate last released and latest versions of docs (e.g. normal released vs. /unstable)
    • Discussed Query API concerns from Hydra Voting project (link)
    • Clarified rollbacks bug and defined possible solutions (short and long term) #784
    • Met with community members to answer questions about Hydra

    What are the goals of next week

    • Finally get the docs integrated into the repository #693
    • Dirt road fix for rollbacks #784
    • Disclaimer text and detail known issues about mainnet compatibility +#713

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra continued work on finishing mainnet compatibility. The +semi-automated smoke tests and some missing documentation is still preventing +from calling that fully done. They fixed smaller issues and made a step in the +Head protocol more robust. Besides development, they met with interested people +from the community who want to get started collaborating on communication and +marketing materials.

    What did the team achieve this week

    • Groomed and followed-up on GetUTxO user request discussion #797
    • Fixed hydra-node crashes after forks #560
    • Made collectCom more robust and aligned with spec #786
    • Completed configurable API feature #380
    • Met potential contributors about Hydra communication and marketing materials
    • Versioned documentation: we have a unstable bleeding edge version available as well now, seperate from the last released version

    What are the goals of next week

    • Follow-up backlog and roadmap clean-up
    • Complete mainnet compatibility feature #713 (documentation updates)
    • Integrate Hydra specification into repository #693

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra had a team workshop and conducted the monthly review +meeting for March. They demonstrated a Hydra Head on mainnet, which was running +the hydraw demo application. While this marks an important milestone, they also +emphasized that more features are still to be added as needed for applications +to run on Hydra. Besides this, the roadmap is getting cleaned up to encourage +discussions and provide more space for user requests.

    What did the team achieve this week

    • Monthly review meeting slides/recording, full report of March next week
      • Opened a head on mainnet with hydraw demonstration
      • Hydra pay updates
    • Team workshop in Austria
      • Hydra presentation at the Cardano Foundation in Zurich
      • In-person grooming session, marked many items as candidates to be rather :idea: dicussions
      • Improved head protocol #786 and investigated a potential bug in rollback handling #784
      • Team building and retrospective

    What are the goals of next week

    • Follow-up on backlog and roadmap clean-up
    • Complete mainnet compatibility feature (documentation updates)
    • Make API more configurable #380
    • Integrate Hydra specification into repository #693

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has continued work on the mainnet compatibility of the +hydra-node. They added a golden test suite for hydra-plutus scripts, added +some detection of hydra-node misconfiguration, established a limit of 100 ADA +per commit and other smaller tasks to prepare for a mainnet beta release.

    Next week there will be a small team workshop to push for demonstrating a Hydra +Head on the Cardano mainnet, ideally just in time for the monthly review +meeting. See the hydra channels on the IOG Technical Community discord server +for details.

    What did the team achieve this week

    • Implement a 100 ADA hard-coded commit limit in the hydra-node +#763
    • Pay back funds to faucet after smoke-test run +#773
    • Setup custom github runner for smoke-tests on mainnet +#775
    • Created golden tests to assure the script hash stays the same between +changes #772
    • Removed hardcoded error codes in plutus scripts +#768
    • Detect misconfiguration of a hydra-node given persistent state +#767
    • Met with potential users for hydra-pay
    • Prepared hydra workshop

    What are the goals of next week

    • Hydra monthly meeting
    • Open a multi-party head on mainnet
    • Complete mainnet compatibility feature
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/13/index.html b/tags/hydra/page/13/index.html new file mode 100644 index 0000000000..c20a39e6de --- /dev/null +++ b/tags/hydra/page/13/index.html @@ -0,0 +1,63 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team addressed issues with committing complex UTxOs into a +Hydra Head, prepared the hydra-node to be run on mainnet (soon) and improved +the test suite of the hydra-plutus scripts. The specification is constantly +getting improved upon reviewer feedback on overleaf - this week the graphical +notation was refined to be more transaction-focused.

    What did the team achieve this week

    • Clarified bug of committing UTxOs with reference scripts to a Hydra head #737
    • Prepare usage of hydra-node on mainnet by updating command line options #715
    • Improved our mutation test suite to all expected errors #705
    • Re-opened our persistent hydraw demo head on preprod using version 0.9.0
    • Updated on-chain graphs to be more transaction-focused in the specification

    What are the goals of next week

    • Complete mainnet compatibility feature
    • Prepare the Hydra workshop
    • Address all todo’s in the Hydra specification
    • Unblock the auctions project with commit from script a solution

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version +0.9.0 - a version +of the hydra-node with fully specified behavior of on-chain scripts and +off-chain head-logic, decreased costs for opening/closing a Head and scalable +contestation deadline semantics. Check out the full release notes for details.

    Furthermore, they published the monthly +report of the Hydra project +and conducted a review meeting with an increasingly wider audience. The team +plans to extend invitations through the new Hydra +#announcements discord channel for the next +months, stay tuned!

    What did the team achieve this week

    • Monthly review meeting with report published on website
    • Fixed smoke tests #726
    • Reduced the cost of opening/closing a Head (error codes #748 + head reference script #701)
    • Released version 0.9.0
    • Conducted a first experiment on mainnet compatibility #713
    • New discord category with #announcements channel
    • Received a demo about the Hydra for Voting project
    • Lightning talk on mutation-based testing (to be shared)
    • New themes view in on our roadmap and some rearranging as we align it with high-level objectives
    • Clarified things with researchers, but mostly identified action items for them

    What are the goals of next week

    • Redraw transaction graphs and address TODOs specification
    • Run hydraw with 0.9.0 on preprod
    • Make smoke tests on mainnet possible
    • Groom the explorer item
    • Unblock the auctions projecth with commit from script a solution

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team continue closing many gaps and aligning the +implementation with the specification. More over, they have groomed a plan to +make Hydra Mainnet compatible. Also, they continue moving forward with the +internal auditing and have published some auditing guidelines to receive +contributions from the community.

    What did the team achieve this week

    • Completed #452 (what is +remaining in there)
    • Aligned the Head protocol logic implementation with the specification
    • Completed full minting policy implementation and spec +#720
    • Clarified message authentication with researchers
    • Groomed what is left to do for Mainnet compatibility +#713 and drafted a +0.10.0 version
    • Added a tutorial by @perturbing to the +website LINK
    • Published auditing guidelines +LINK
    • Made hydra-node work for macos +#746 and added support +for building on aarch64 +#673
    • Met with a potential customer of Hydra for Payments

    What are the goals of next week

    • Have the monthly review meeting incl. the report
    • Have smoke tests fixed and running regularly
    • Release 0.9.0 with updated scripts
    • Redraw transaction graphs for specification

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed work on dealing differently with contests +during the contestation period. These will now always push out the deadline and +hence contestation periods are easier to pick (depending on the network a Head +runs on). Furthermore, they added an important acceptance test and completed +internal refactoring of the protocol logic making future changes easier.

    What did the team achieve this week

    • Push contestation deadline on each contest #716
    • Wrote an acceptance (property) test can always close/fanout when collect is successful
    • Internal refactoring of our HeadLogic
    • Groomed remaining things from #452 into dedicated features

    What are the goals of next week

    • Complete full minting policy #720
    • Release 0.9.0 with updated scripts
    • Plan mainnet milestone and a 0.10.0 version
    • Redraw transaction graphs for specification (upon feedback)
    • Have smoke tests fixed and running regularly

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team closed several gaps to align the Hydra scripts +implementation further with the specification. This also resulted in a slight +improvement on Hydra script size and costs. They consequently analysed the +asymptotic complexity of collect and fanout and how they relate. Also plutus-tx +profiling toolchain was evaluated and set up for future improvements on Hydra +on-chain performance. In discussions with researchers and internal auditors, +they also uncovered next steps on further securing the Head protocl using a +"full" minting policy.

    What did the team achieve this week

    • Closed several gaps to align script implementation with specification #452
      • Allow contest only once #680
      • Optimization through head output at index 0 #700
      • Value is preserved #702 + optimized exact value equality #709
    • Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to #721
    • Fixed our tooling around the Haskell language server
    • Discussed full minting policy with researchers
    • Started grooming “what we need for mainnet” on this idea ticket and milestone

    What are the goals of next week

    • Implement full minting policy
    • All remaining protocol discrepancies are implemented or groomed as individual features
    • Ideally release 0.9.0 with updated scripts
    • Discuss what we need for mainnet (milestone planning)
    • Redraw transaction graphs for specification (upon feedback)
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/14/index.html b/tags/hydra/page/14/index.html new file mode 100644 index 0000000000..ecf76869ca --- /dev/null +++ b/tags/hydra/page/14/index.html @@ -0,0 +1,61 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team completed the Hydra specification with a section about +rollbacks and updated graphs +(#448). In a next step, +the specification will be made more approachable and an open standard. They +improved their hydra-cluster tool to launch a local --devnet sandbox +environment and continued aligning the hydra-plutus scripts with the +specification by hardening the checks on close and contest transactions.

    What did the team achieve this week

    • Completed the specification with a section about rollbacks and updated graphs +#448, with a follow-up on making it more approachable and an open standard.
    • Continued spec review with internal auditor and incorporated changes.
    • Talked to TxPipe about how Demeter and Hydra could work together
    • The hydra-cluster executable can be used to launch a local --devnet sandbox environment.
    • Reproduced the “head being stuck on network outage” bug
      • relates to what liveness guarantees we can / want to give on the protocol level and needs to be discussed.
    • Progressed with higher velocity by addressing more and more gaps #677

    What are the goals of next week

    • Upstream our JSON instances to the ledger
    • Close all transaction security related on-chain gaps
    • Ideally release 0.9.0 with updated scripts
    • Groom & plan (or not) protocol changes yielded from specification discussions -> updated roadmap

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team had a monthly review meeting with their stakeholders, +contributors and interested people from the community. The monthly repot for +January 2023 is a digest +of the things presented and also includes a summary of the meeting. The Hydra +specification was getting discussed and the team is incorporating suggested +changes of reviewers. Last but not least, they compute and publish script +information on every PR and also on the +website +now.

    What did the team achieve this week

    • Had the monthly review meeting with a broader audience
    • Published the monthly report for January 2023
    • Reviewed the spec and discussed individual aborts with researchers
    • Compute and publish script information along benchmarks on every PR and website

    What are the goals of next week

    • Add rollback section to Hydra spec, update pictures and publish it as part of repository
    • Discuss bigger spec findings (full minting policy, individual aborts, split fanout) as change/pull requests on the spec in the repository.
    • Groom & plan actions required for a maintainable Head explorer + break down align gaps feature.

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has been focusing on the write-up of the Hydra HeadV1 +specification. Of which a first version has been aggregated and is currently +under review. They aligned the on-chain scripts of reimbursing funds on abort +like defined in the specification, improved the mutation test framework to have +more control when testing plutus scripts. The added HeadId in the API and the +TUI example client make hydra-node easier to use and a first experiment of a +Hydra Head explorer was showing the utility of this - see what Heads exist on +the preview network here.

    What did the team achieve this week

    • HeadId to API and display in the TUI #678
    • Experiment of creating a hydra explorer, first result hosted here
    • Improved mutation framework allowing to fail for the right reason #679
    • Correctly reimburse funds in abort (matching the spec) #670
    • Finished a first write-up of the Hydra HeadV1 spec: Read it on overleaf (Communication channels for feedback)

    What are the goals of next week

    • Monthly review meeting with a broader audience
    • Groom & plan actions required for a maintainable Head explorer
    • Break “align gaps” feature into smaller chunks (at least on- /off-chain) and groom it
    • Review the spec & discuss individual aborts with researchers (a bigger open question)

    · 2 min read
    Sebastian Nagel

    High-level summary

    Since last weekly update before christmas, the Hydra team worked on the +technical specification, closed gaps in hydra-plutus scripts, made the unique +headId available to Hydra clients through the API, allow the hydra-node to +explicitly synchronize from genesis (if configured), and fixed smaller log and +build issues reported by new users.

    Besides this, a retrospective blog +post +was published by Matthias Benkort (CF) on Hydra, summarizing our progress made +in 2022 also an outlook where Hydra is headed for in 2023. Also, the team had +some first sessions on the voting project with Catalyst and the CF.

    A full digest monthly digest for December 2022 can be found on the hydra +website.

    What did the team achieve this week

    • Had some first sessions on the voting project with Catalyst and CF
    • Published retrospective blog +post +by Matthias Benkort (CF) on Hydra, summarizing our progress made in 2022 also +an outlook where Hydra is headed for in 2023.
    • Worked on the LaTeX spec for HydraHeadV1, not final or published yet - latest +version in this repository.
    • Add unique headId to API and hence make it available to clients.
    • Allow hydra-node to explicitly synchronize from genesis using --start-chain-from 0.
    • Closed gaps in hydra-plutus scripts
      • bounded transaction validity (ADR21)
      • enforcing contract continuity via state token in output
    • Fixed JSON for some logs and smaller build issues reported by new users.

    What are the goals of next week

    • Reach out to have hydra-tutorial integrated.
    • Plan the next couple of months.
    • Complete checking reimbursing of commits in head validator.
    • Align plutus scripts to spec and simplify them (identified some simplifications)
    • Improve mutation framework to be sure we fail tests for the right reasons
    • Complete the spec except the open points (<5) and also discuss them with researchers.

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team kicked off a new project together with Catalyst, the Cardano Foundation and researchers from IO: a proof of concept for voting on Hydra. The concluded work on validating the Head protocol using model-based testing and formulated next steps, fixed the transaction cost benchmark reporting on the website and reduced the cost for commit transactions by ~30% with the help of reference scripts.

    The year is coming to an end and velocity will slow down a bit while the team focuses on wrapping up loose ends. The updates here will pause until January 2023.

    What did the team achieve this week

    • Kicked-off Hydra Voting project with Catalyst, CF, and IO Research.
    • Reduce commit transaction costs by ~30% with reference scripts.
    • Prepared an RFP for external audit of the Hydra Head solution.
    • Fixed transaction cost benchmarks for abort tx #631.
    • Recorded decision to use model-based testing (ADR22) and improved Model documentation.
      • Concluding the first increment on Validate coordinated Head protocol #194.
      • Formulated next step / follow-up on testing the Soundness property of our protocol #656.
    • Switched to using nix flakes for development setup and CI build #646.

    What are the goals of next week

    • Push ADR21 & tx validity gap over the finish line (smoke tests missing).
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Close & recap on the year with another monthly report (+ blog post).
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/15/index.html b/tags/hydra/page/15/index.html new file mode 100644 index 0000000000..7952507de9 --- /dev/null +++ b/tags/hydra/page/15/index.html @@ -0,0 +1,34 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on completing to "Validate coordinated head protocol against formal model", this is a huge step to verify the implementation is secure. They also worked on implementing ADR21 related to bounded tx validity which is now under review. HydraPay project, from Obsidian Systems, is coming to an end of the first phase at least, so team did a review and submitted couple of issues they found in the process. The team had a meeting with the Director of CyberSecurity - topic was the RFP that is currently in flight that should scope the work of future auditors. Also, the team completed the hydra-tutorial review created by our colleague Thomas Vellecoop from the education team, and we are close to integrate it to our official site. From the development side, they have fixed a bug on the CI when running the benchmark jobs to calculate the cost of abortTx and a flaky spec which checks a plutus merkle-tree is always balanced.

    What did the team achieve this week

    • Document model based testing #194 & #641
    • Got ADR21, reducing gaps between implementation and specification, under review.
    • Complete review on hydra-tutorial.
    • Complete first round of review on HydraPay work #634
    • Meeting with Director of CyberSecurity frio IOG to unblock "the RFP prepared for the external audit" #606
    • Remove vasil-dev and testnet from smoke-test because they were not working #630
    • Fix flaky plutus-merkle-tree test #642
    • Refactor NetworkSpec to improve legilibility.
    • Fix benchmark cost for abortTx #631
    • Adapt nix.conf to the recent hydra-ci nix cache migration.

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation.
    • Integrate the hydra-tutorial.
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec.
    • Get Cicero (new CI) working.
    • Use reference inputs to reduce the cost of the commitTx.

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has worked on cleaning up several things in progress +after last week's summit. They have extended their model-based testing (MBT) +approach with transaction creation & observation +#410, solved +AcquirePointTooOld problems of the hydra-node with by changing the wallet +initialization #439. +Also, the Hydra researchers updated the security proofs of the Coordinated Hydra +Head, which are bound to be included in the Hydra HeadV1 specification.

    What did the team achieve this week

    • Monthly review & report - will also be published on our website #644
    • Extended the model-based testing (MBT) with transaction creation/observation #410
    • Solve AcquirePointTooOld problems with new wallet initialization #439
    • Fixed our hydraw deployments (EC2 instances)
    • Created & discussed ADR21 within tx validity work
    • Received & discussed security proofs of Coordinated Hydra Head (requires more work)

    What are the goals of next week

    • Get ADR21 accepted & close tx validity gap in our implementation
    • Complete review & integrate the Hydra tutorial
    • Review latest hydra-pay work
    • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec
    • Get Cicero (new CI) working

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team attended the Cardano Summit in Lausanne, where Sebastian gave a presentation about Hydra and the whole team connected with the Cardano Community. After the public event, th Hydra team also conducted a workshop, which provided room for a retrospective, various planning sessions and they hacked together on different ideas.

    What did the team achieve this week

    What are the goals of next week

    • Monthly report & review meeting
    • Tie up several loose ends / branches.
    • Resolve Tx validity discussions & PRs.
    • Review cicero PR & try it out.

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version 0.8.1, which includes several fixes and a user-wished extension of the persistence introduced by 0.8.0 of replaying server outputs to make clients like the hydra-tui be aware of the latest hydra-node state. The team also worked on the specification and closing gaps in the on-chain scripts, collaborated with the education team on a Hydra tutorial and also renamed the repository from hydra-poc to hydra!

    What did the team achieve this week

    • Implemented replaying of server outputs to address #580
    • Released version 0.8.1 containing this and other fixes Release notes
    • Worked on the bounded tx validity as one of the on-chain script fixes, but couldnt finish it just yet #615
    • Collaborated with the education team on a Hydra tutorial.
    • Discovered and discussed issues with the seen ledger.
    • Renamed the Hydra repository hydra-poc -> hydra

    What are the goals of next week

    • Create and discuss an ADR about handling tx validity correctly.
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
    • Have a team workshop / hackathon after the summit:
      • Retrospective
      • Roadmapping session
      • Hack on something complex or useful

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team published together with Obsidian Systems a light paper +on our "Hydra for Payments" project (Link). They have created a draft scope RFP for the external audit and worked with the internal audit team to clear up the specification. From the development side, they have fixed a bug with chain-following when using persistence and improved logs for better observability of hydra-node processes.

    What did the team achieve this week

    • Published Hydra for Payments light paper (Link)
    • Have a draft RFP ready for a first review internally
    • Answered the internal auditors questions
    • Fixed a bug with following the chain when starting with persistence (#599)
    • Minor improvements to logging for better observability (#598, #600)
    • Non-achievement: Needed to work around flaky TUI ci, follow-up issue if anyone wants to have a look (#590)

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Close more gaps #452
    • Attend the Cardano Summit in Lausanne. Hydra will be topic of one talk! Save the date+time: "Developing Hydra" on Day 2, Nov 21st, 13:50 CET
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/16/index.html b/tags/hydra/page/16/index.html new file mode 100644 index 0000000000..c5f43f1840 --- /dev/null +++ b/tags/hydra/page/16/index.html @@ -0,0 +1,36 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team first re-deployed the latest Hydra scripts to the re-spun preview network, see 0.8.0 release notes. They also completed implementation of ADR18 and worked on the validators, but development got impacted by some CI flakyness. The team also met to discuss hard forks & protocol parameter updates #195 and alignment of the specification document with auditors.

    What did the team achieve this week

    • Complete and merge ADR18 #579
    • Re-deploy hydra scripts to respun preview network, see 0.8.0 release notes #595
    • Have first gap of #452 in review.
    • Non-achievement: Flaky CI for TUI was impacting us, so we investigated this a lot.
    • Engineering meeting to discuss hard forks and protocol parameter updates #195
    • Met the internal audit team on the specification to set scope, expectations and collected requirements/open questions.
    • Drafted project scope for an external audit RFP.

    What are the goals of next week

    • Implement event-sourced persistence #580
    • Answer the internal auditors questions
    • Have a draft RFP ready for a first review internally
    • Close some gaps #452

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team completed several user experience improvements to the +hydra-tui and hydra-node, and delivered a first version of persisted head +states by publishing release version +0.8.0. +Besides this, they met with researchers on topic of the HeadV1 specification and +kicked-off work on the RFP for an external audit of the Hydra Head protocol and implementation.

    What did the team achieve this week

    • Completed the UX improvements on the hydra-tui
    • Released version 0.8.0, which delivers a first version of persisted head states
    • Met with researchers on the HeadV1 specification
    • Started work on the RFP for our external audit

    What are the goals of next week

    • Complete ADR18 implementation and get it merged
    • Start work on event-sourced persistence #580
    • Have a first plutus script gap closed #452
    • Revamp CI to use flakes and build macos artifacts (stretch goal: migrate to cicero for nix builds)

    · One min read
    Sebastian Nagel

    High level summary

    This week, the hydra team reviewed and addressed several open comments on the +new HeadV1 specification, completing a list the of identified gaps between +specification and implementation while doing so. In the wake of the recent +demonstration of SundaeSwap running their DEX in a Hydra Head, they met with +them to capture feature ideas & incorporate their feedback on the roadmap, as +well as potential research avenues.

    What did the team achieve this week

    What are the goals of next week

    • Complete the last two items required for a version 0.8.0.
    • Cut the next release, version 0.8.0
    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Have the CI build macos artifacts

    · 2 min read
    Sebastian Nagel

    High level summary

    This week, the hydra team worked on implementing ADR18 to get backup & restore functionality of the hydra-node over the line. Although not fully there yet, an early version of that feature was already needed and succesfully tested by SundaeSwap in their recent demonstration of their DEX running on Hydra. The team also worked on the updated specificaton, met with the researchers and discussed a solution for how to secure rollbacks "past the opening of a Head". We also reponded to recent requests for static executables and prioritized that feature higher, implemented it and merged it.

    What did the team achieve this week

    • Last week we thought we were done with ADR18, but were not ...
    • ... instead, SundaeSwap has been preparing their Rare bloom Hydra demo & needed assistence.
    • Implemented a first version for persistence #187 in response.
    • Enhanced CI to publish test results on our website
    • Engineering meeting -> discussed rollbacks and discovered a solution for the rollback past open problem!
    • Pulled static executable feature #200 into scope, implemented it and merged it!
    • Received and read through a project proposal by a vendor (building a Hydra platform).

    What are the goals of next week

    • Get backup/recovery #187 done with proper event sourcing (ADR18)
    • Cut the next release, version 0.8.0
    • Address open comments on specification document & complete the list of identified gaps between specification and implementation #452
    • Have the CI build macos artifacts
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/2/index.html b/tags/hydra/page/2/index.html new file mode 100644 index 0000000000..a783f3705f --- /dev/null +++ b/tags/hydra/page/2/index.html @@ -0,0 +1,34 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team refactored the heartbeat logic to prepare for the versioned network protocol. They have also switched http://explorer.hydra.family to run on the preview network. Additionally, the team has added property tests to the /commit endpoint changes.

    What did the team achieve this week

    • Refactor heartbeat logic to prepare for versioned network protocol.
    • Switch http://explorer.hydra.family to run on preview network.
    • Add property tests to /commit endpoint changes

    What are the goals of next week

    • Attend and connect with community on Cardano Builder Fest
    • Merge new /commit endpoint changes

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team fixed a bug in the smoke test and refactored to allow network functions to distinguish between inbound and outbound. The team also prepared a cardano-api 8.44 branch for cardano-node 8.10 once it gets released. They also contributed to the cardano-ledger-api by undeprecating and exposing redeemerPointer.

    What did the team achieve this week

    • Fix FaucetFailedToBuildTx in smoke test #1384
    • Refactoring to allow network functions to distinguish between inbound and outbound
    • Prepared a cardano-api 8.44 branch, but got blocked 👇
    • Undeprecate redeemerPointer and expose it in cardano-ledger-api cardano-ledger#4259

    What are the goals of next week

    • Complete new /commit endpoint interface #1350
    • Refactor to allow NodeLogic to pass through connection messages, to unblock 👇
    • Use versioned handshake when connecting hydra-nodes #1010
    • Test all combinations of decrement/close/fanout for #1057
    • Meet with tech writers about the landing page

    · One min read
    Daniel Firth

    High-level summary

    This week, the Hydra team released hydra 0.16.0, which supports cardano-node 8.9.0 +and can interpret conway blocks on the cardano-node. We have also updated some hydra +clients to be compatible with the new hydra api format, including hydraw and kupo.

    What did the team achieve this week

    • Update our head and hydraw instance to master (a release candidate)
    • Release 0.16.0 (without incremental decommits)
    • Reproduce close > contest > contest scenarios using stateful testing
    • Have end-to-end scenarios working for the improved /commit endpoint

    What are the goals of next week

    • Complete the improved /commit endpoint to unblock users
    • Potentially release 0.17.0 (with improved /commit endpoint)
    • Wrap up the incremental decommit work including the decommit action into the new TxTrace tests
    • Use Versioned Ouroboros protocol for handshaking between nodes.
    • Update to cardano-api-8.44.

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team conducted the monthly review meeting and investigated +a broken head situation. The team slightly improved conway forward compatibility +in explorer / hydra-node, enhanced hydra-cluster --devnet which allows e2e +testing of kupo, extended smoke test to also include committing ADA into the +head, documented the anticipated behavior of incremental decommits, and added +decommits to the tutorial.

    What did the team achieve this week

    • Conducted the monthly review meeting (link to recording already?)
    • Investigated a broken head situation #1374
    • Slightly improved conway forward compatibility in explorer / hydra-node #1373
    • Busy hydra-cluster --devnet sandbox which allows e2e testing of kupo #1378
    • Extended smoke test to also include committing ADA into the head #1377
    • Documented the anticipated behavior of incremental decommits and added decommits to tutorial
    • Another write-up of how the incremental commit/decommit could work (without needing merkle trees or L2/L1 interleaving) on this issue

    What are the goals of next week

    • Complete the written monthly report
    • Update our head and hydraw instance to master (a release candidate)
    • Complete the improved /commit endpoint to unblock users
    • Release 0.16.0 (likely without incremental decommits)
    • Reproduce close > contest > contest scenarios using stateful testing

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team restored test compatibility with all networks, reviewed and merged streaming plugins contributed by SundaeLabs. The team also fixed tutorial instructions for downloading the latest cardano-node, fixed the observed contesters bug, prepared a PRs for downstream clients to use the new API format for transactions (preparing the release with this breaking change). Finally, they also recorded a walkthrough video on how the hydra project is run: https://www.youtube.com/watch?v=JGUeO7A6mMU

    What did the team achieve this week

    • Restored compatibility with all networks #1355.
    • Reviewed and merged streaming plugins (only missing a how-to) #1325.
    • Fixed tutorial instructions for downloading cardano-node 8.9.0 #1367.
    • Fixed the observed contesters bug #1266.
    • Prepared a PR for Kupo using new Hydra transaction format kupo#166.
    • Recorded a walkthrough on how the hydra project is run (uncut) https://www.youtube.com/watch?v=JGUeO7A6mMU.

    What are the goals of next week

    • Conduct the monthly review meeting
    • Improve the /commit endpoint to unblock users
    • Stateful testing of transaction traces to verify corner cases for +incremental decommit
    • Release 0.16.0
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/3/index.html b/tags/hydra/page/3/index.html new file mode 100644 index 0000000000..a457c875fd --- /dev/null +++ b/tags/hydra/page/3/index.html @@ -0,0 +1,36 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team worked on aligning the specification with the current +incremental decommit implementation, added decommit to model-based tests and +also discussed the incremental commit protocol extension with researchers. The +team also updated to cardano-api 8.40 and tests against cardano-node 8.9.0, +which unblocked a possible release and re-enabled smoke tests on public +networks. They also groomed a new /commit endpoint interface from a user +discussion and discussed restructuring of the Hydra documentation. The team also +prepared a Conway-supporting hydra-node on branch lc/conway-support for +early adopters (Hi @Juantxu and @ash 👋). Some internal refactoring prepared for +upcoming streaming plugins by SundaeLabs and minor fixes to the TUI and +hydra-explorer rounded off the week.

    What did the team achieve this week

    • Aligned specification with current incremental decommit implementation and added Decommit to model based tests.
    • Discussed and explored further on incremental commits with researchers.
    • Refactored Event -> Input #1348 to prepare for streaming plugins #1325.
    • Minor fixes to the TUI and hydra-explorer clients.
    • Updated to cardano-node 8.9.0 and cardano-api 8.40 - this unblocked a possible release and re-enabled smoke tests on public networks.
    • Groomed new /commit endpoint interface #1350 from a user discussion #1337.
    • Discussed restructuring of the Hydra documentation #1349.
    • Prepared a Conway-supporting hydra-node on branch lc/conway-support #1178 (will be merged only after the hard-fork).

    What are the goals of next week

    • Prepare a PR for Kupo using new Hydra transaction format (to prepare for 0.16.0 release)
    • Review and merge streaming plugins #1325
    • Improve the /commit endpoint to unblock users
    • Test corner cases of incremental decommit transaction traces

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team has been working on a new library cardano-api-classy containing type class instances for era witnesses and also switched nix code to use flake-parts. They also further improved the Hydra Head [explorer](http://explorer.hydra.family) UI. The team also improved error reporting on integration tests and refactored the outcome algebra in the hydra-node protocol logic. Finally, they reviewed the incremental decommit specification with researchers. Meanwhile, SundeaLabs already implemented first UDP and Kinesis event sinks based on the EventSource / EventSink refactoring.

    What did the team achieve this week

    • New library cardano-api-classy containing type class instances for era witnesses.
    • Switched the nix code to use flake-parts.
    • Completed another increment on the head explorer UI #1333.
    • Improved error reporting on integration tests #1335.
    • Refactored the outcome algebra in the hydra-node protocol logic #1340.
    • Reviewed incremental decommit specification with researchers.
    • SundaeLabs implemented first UDP and Kinesis event sinks based on #1267.

    What are the goals of next week

    • Prepare #1178 on a branch for users to try out Conway on hydra.
    • Align specification with incremental decommit implementation
    • Improve MTB in terms of new Decommit input
    • Prepare a PR for Kupo using new Hydra transaction format
    • Spike on literate Agda specification pdf

    · 2 min read
    Sebastian Nagel

    High-level Summary

    This week the Hydra team, in addition to the usual maintenance and bug fixing, has been working on the preparation for the switch to Conway making the codebase less babbage specific. The team also conducted the monthly review meeting and published the monthly report on a new website (to keep those reports separate of main repository). They also added a basic UI to the Hydra explorer, switched to aggregating sanchonet data and also fixed the smoke tests to work on sanchonet. Finally, they continued progress the off-chain incremental commit protocol changes.

    What did the team achieve this week

    What are the goals of next week

    • Complete preparation for #1178 to switch to Conway (by "flipping" a switch)
    • Complete off-chain incremental commit protocol changes #199 (and focus on the on-chain part after).
    • Re-align with SundaeLabs on EventSource and EventSink refactoring.

    · One min read
    Sebastian Nagel

    High-level Summary

    This week, the Hydra team successfully fixed the fanout after contest bug using their significantly improved model-based test suite. Additionally, they transitioned to cardano-api version 8.38 and started testing against cardano-node version 8.8. Furthermore, they enhanced fee estimation within the hydra-node internal wallet resulting in cheaper head opening / closing transactions and added transaction metadata to help identifying Hydra protocol transactions.

    What did the team achieve this week

    • Fixed the fanout after contest bug using our signifcantly improved model-based test suite #1260
    • Switched to cardano-api 8.38 and run tests against cardano-node 8.8 #1297
    • Improved fee estimation in hydra-node internal wallet #1315
    • Added transaction metadata to identify Hydra protocol transactions (on L1) #1311

    What are the goals of next week

    • Have the monthly review meeting + write a report
    • Explorer targeting and showing data of the latest released hydra version
    • Implement off-chain incremental commit protocol changes
    • Review EventSource and EventSink refactor done by SundaeLabs
    • See smoke tests passing consistently on Sanchonet

    · One min read
    Sebastian Nagel

    High-level Summary

    This week, the team made finally progress on the model based testing framework (and reproducing a bug) by fixing issues related to fully validating Cardano transactions. They also enabled continuous deployment of hydra-explorer to http://explorer.hydra.family/heads, facilitating easier access for users. Furthermore, they improved code quality by incorporating Haskell linting into their CI workflow and addeda user-ished conversion of HeadId to CurrencySymbol.

    What did the team achieve this week

    • Fixed model based testing framework to fully validate Cardano transactions
    • Enabled continuous deployment of hydra-explorer to http://explorer.hydra.family/heads
    • Identified need for cardano-node 8.8 and cardano-api 8.38 (breaking changes) to continue integration with Conway networks
    • Added Haskell linting to our CI workflow - Minor addition to convert HeadId into CurrencySymbol #919
    • Reviewed a small refactor PR on our model-based test runner #1300

    What are the goals of next week

    • Fix the fanout after contest bug
    • Bite the bullet and have a non-mainnet compatible master to complete smoke tests on sanchonet
    • Specify the on-chain validators for incremental decommits
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/4/index.html b/tags/hydra/page/4/index.html new file mode 100644 index 0000000000..edd774a995 --- /dev/null +++ b/tags/hydra/page/4/index.html @@ -0,0 +1,50 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · One min read
    Daniel Firth

    High-level Summary

    This week, the Hydra team worked on forward compatibility for Conway support, deployed the hydra explorer tool, and improved the model based testing to support more actions (Fanout and Rollbacks).

    What did the team achieve this week

    • Addressed flakyness in two types of integration tests
    • Fixed our tooling (HLS 2.6 on GHC 9.6.4)
    • Fixed configuration of running head in preview
    • Added Fanout and Rollbacks to our Model basd test suite #1296
    • Deployed the hydra explorer to http://explorer.hydra.family:9090/heads (url will change a bit more)
    • Updated smoke test to run sanchonet

    What are the goals of next week

    • Fix the fanout after contest bug
    • Specify the on-chain validators for incremental decommits
    • Complete smoke tests on sanchonet

    · One min read
    Sebastian Nagel

    High-level Summary

    This week, the Hydra team authored and published the monthly report for January 2024, enhanced user feedback for failed commands, updated cardano-api dependency and GHC to newer versions, re-opened their persistent head in preparation for the hard-fork, extended the model-based testing suite to cover the closing of heads, fixed a bug in io-sim, and contributed to cardano-node.

    What did the team achieve this week

    What are the goals of next week

    • Fix the fanout after contest bug #1260
    • Run Hydra smoke tests on sanchonet #1257
    • Specify the on-chain validators for incremental decommits #1057
    • Have the explorer hosted #696
    • Prepare PRs for dropped JSON instances from API #1213

    · One min read
    Sebastian Nagel

    High-level Summary

    This week, the Hydra team conducted yearly roadmapping sessions, introduced a +breaking API change to eliminate JSON encoding of transactions (refer to issue +#1213 for details), completed off-chain logic for incremental decommits through, +and implemented a hydra-explorer backend.

    What did the team achieve this week

    • Conducted yearly roadmapping sessions
    • Merged a breaking API change to drop JSON encoding of transactions #1213 - contact us if you were relying on this.
    • Completed off-chain logic for incremental decommits #1223
    • Implemented a hydra-explorer backend #1235

    What are the goals of next week

    • Publish the monthly report
    • Prepare PRs for hydra clients to switch to CBOR due to the changed API (see above)
    • Enhance the model testing framework to cover close/contest (needed to fix a bug and incremental decommit development)
    • Fix new bugs (all minors) and finish things before starting new

    · 2 min read
    Arnaud Bailly

    High-level Summary

    The team made good progress this week, with the release of version +0.15.0 marking a milestone, along with the monthly review including +both Mithril and Hydra work. We addressed issues in smoke tests and +website publishing workflows, ensuring a more robust development +environment, and along the way included more "dogfooding" through the +use of Mithril to synchronize nodes in smoke tests.

    What did the team achieve this week

    • Release of Version +0.15.0. This +release enhances the overall stability and functionality of our +product.
    • Monthly Review and Community Demos
    • Smoke Tests and Website Publishing Workflow Fixes: #1246
      • Resolved glitches in the website publishing workflows, enhancing +the efficiency of our deployment processes.
    • Integration of Mithril for Smoke Test Synchronization: #1252
    • Polishing of Hydra-Chess v0.1.0: #1237
      • Worked on polishing hydra-chess v0.1.0, treating it as an example +application running on Hydra. This not only demonstrates the +capabilities of our platform but also aims at providing a reference for future Hydra +developers.

    What are the goals of next week

    • Merge Off-Chain Protocol Logic for incremental decommits
    • Initiate work on the on-chain portion of incremental decommits
    • Merge CBOR API Change #1240
    • Troubleshoot Dangling Fanout Issue #1260

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team improved Github actions workflows, addressed protocol +parameter schema consistency in hydra-node, and made enhancements to log schema +tests. They created an Architectural Decision Record (ADR) for Cardano +transactions serialization in APIs, moved the hydra-chess project to a dedicated +repository, and resolved a bug in quickcheck-dynamic and model tests.

    There will be the monthly review meeting with demos on Hydra, Mithril and +related projects. If this sounds interesting, join us in Google Meet +https://meet.google.com/udc-zgyw-agd next week, January 19 2024 at 17:30 UTC.

    What did the team achieve this week

    • Github actions improvements and small fixes to the smoke tests #1242, #1233
    • Fixed protocol parameter schema consistency around hydra-node #1234
    • Log schema tests improvements and fixes #1244
    • Created ADR about Cardano transactions serialisation in our APIs +#1215
    • Moved hydra-chess #1237 to a dedicated cardano-scaling organisation repository https://github.com/cardano-scaling/hydra-chess
    • Identified bug on quickcheck-dynamic / our model tests #1239

    What are the goals of next week

    • Monthly review meeting (January 19, 17:30 UTC) including several demos (from team and contributors)
    • Do release 0.15.0
    • Improve quickcheck-dynamic model to be more robust and cover more +behaviour.
    • Draft POC about backend for a hydra-explorer that can track all +heads on-chain.
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/5/index.html b/tags/hydra/page/5/index.html new file mode 100644 index 0000000000..77ae33f576 --- /dev/null +++ b/tags/hydra/page/5/index.html @@ -0,0 +1,88 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · One min read
    Sebastian Nagel

    High-level summary

    In between the end-of-year holidays, the Hydra team completed the implementation +of the Conway support feature, fixed a minor bug that was hindering tests from +running on MacOS, and addressed a regression in the protocol-parameter formats +used by the hydra-node. They also worked on off-chain code for incremental +decommits, specifically focusing on transaction creation. Furthermore, they +conducted a spike on implementing a Chess game using Hydra, with an experience +report provided.

    What did the team achieve this week

    • Fixed a regression on protocol-parameter formats used by the hydra-node #1226
    • Fixed a minor bug prohibiting tests running on MacOS #1218
    • Complete conway support feature #1227
    • Transaction creation off-chain code for incremental decommits #1218
    • First spike on implementing a Chess game on Hydra report, related to: #1098

    What are the goals of next week

    • Fully resolve protocol parameter misalignment #1234
    • Cut a release 0.15.0 to ship offline-mode and conway support
    • Prepare demo for conway support
    • Complete transaction creation and observation for incremental decommits
    • Backend for a hydra-explorer that can track all heads on-chain

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team made significant progress, implementing an offline mode with associated refactoring. They enhanced user experience by detecting incompatible eras in hydra-node. Protocol changes were implemented for incremental decommits, addressing off-chain logic. Additionally, the team contributed fixes to cardano-ledger and coordinated with the Eternl team on enabling committing into a head from their wallet.

    What did the team achieve this week

    • Offline mode implementation +#1118 and +refactoring +#1222
    • Detect incompatible era in hydra-node and provide better UX +#1216
    • Implemented protocol changes for incremental decommits (off-chain +logic) #1057
    • Contributed fixes to cardano-ledger#3949 and +#3953
    • Synced up with the Eternl team on enabling committing into a head from +their wallet

    What are the goals of next week

    • Maybe cut a release 0.15.0 to ship offline-mode and unsupported era UX
    • Full conway support in hydra-node
    • Transaction creation and observation for incremental decommits

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team identified and resolved issues with a malfunctioning +head on mainnet, implementing preventive measures. They edited and merged a new +Architectural Decision Record (ADR) proposed by SundaeLabs, upgraded +cardano-node to version 8.7.2, and improved the TUI user experience. +Preparations for "Conway support" were initiated, and updates were made to logs +and API schemas. Additionally, initial steps were taken towards incremental +decommits.

    What did the team achieve this week

    • Troubleshoot and recover a broken head on mainnet. Opened issue +#1202 and PR +avoiding this in-flight +#1211
    • Designed and proposed a new ADR to generalize EventSource and +EventSinks#1157, +contributed by SundaeLabs.
    • Upgrade cardano-node to 8.7.2 +#1199 and +re-enables e2e nix-shell support on Darwin +#1203
    • UX enhancement on TUI +#1201
    • Preparations for "Conway support" +#1177[#1206 & +#1207]
    • Update logs and api schemas +#1212
    • First steps on incremental decommits +#1057:
      • Drafted the e2e workflow +#1205
      • Added decommit API endpoints +#1209

    What are the goals of next week

    • Detect incompatible blocks and provide better UX
    • Conway support in hydra-node
    • Off-chain logic for incremental decommits

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team made progress by releasing version +0.14.0, +incorporating updates and improvements. They also updated dependencies +in preparation for Conway support, addressing +#1114. +Additionally, the team completed substantial refactoring in hydra-node +using stateless observation, aiming to enhance system efficiency and +performance +#1096. Lastly, +they investigated regressions related to JSON serialized transactions +and consider dropping this in favor of CBOR only submission.

    What did the team achieve this week

    • Released version +0.14.0
    • Updated dependencies to prepare for Conway support +#1114
    • Completed substantial refactoring in hydra-node using stateless +observation +#1096
    • Investigated regressions about JSON serialized transactions

    What are the goals of next week

    • Analysed our mainnet head and why some transactions were invalid
    • Detect incompatible blocks and provide better UX
    • Update to newer cardano-node and Conway support in hydra-node
    • Draft the end-to-end workflow for incremental decommits

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team conducted a packed Monthly Review meeting, +featuring demonstrations and the preparation of the monthly report. They +addressed flakiness in tests and enhanced the logs json schema, +improving overall test reliability. Additionally, the team successfully +built MacOS ARM64 (aarch64-darwin) binaries in CI, expanding platform +support. They further improved the network configuration by detecting +incompatible persisted states, contributing to overall system +robustness. Finally, the team released version 0.14.0, highlighting +their commitment to delivering regular updates and improvements.

    What did the team achieve this week

    • Monthly Review +meeting +packed with demonstrations and prepared monthly report +#1189
    • Fixed several flaky tests and improved the logs json schema +#1188#1190#1192
    • Built MacOS ARM64 (aarch64-darwin) binaries in CI +#1182
    • Improved network configuration by detecting incompatible persisted +states #1174
    • Released version 0.14.0

    What are the goals of next week

    • Start work on incremental decommit
    • Continue shepherding contributed PRs to completion
    • Finish stateless-observation work
    • Open a head on a Conway network
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/6/index.html b/tags/hydra/page/6/index.html new file mode 100644 index 0000000000..11db029fb5 --- /dev/null +++ b/tags/hydra/page/6/index.html @@ -0,0 +1,95 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team spent significant time opening a head among +themselves on mainnet using the release candidate, revealing and +addressing lurking bugs such as +#1174. Also +required was this change to dynamically calculate the min utxo value +#1176, a +necessary adjustment following the switch to inline datums. The team +engaged with cardano-cli / cardano-api maintainers to discuss recent +changes and collaborated on drafting feature ideas, including providing +Conway support +for the Hydra roadmap. As part of ongoing improvements, they +experimented with writing the specification in markdown instead of +LaTex.

    What did the team achieve this week

    • Opened head among us on mainnet and uncovered a few lurking bugs like +#1174 in the +release candidate
    • Calculate the min utxo value instead of hard-coding it +#1176, which is +needed since we switched to inline datums.
    • Met with the cardano-cli / cardano-api maintainers to discuss +recent changes and way forward
    • Drafted features ideas to provide Conway +support on the +Hydra roadmap
    • Experimented in writing the specification in markdown instead of LaTex

    What are the goals of next week

    • Have the Monthly review meeting with several demos
    • Release version 0.14.0 with this +scope
    • Complete tidying up chain layer via stateless observation changes in +hydra-node +#1096
    • Update dependencies to prepare for Conway +#1114

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team made several impactful updates. They addressed +misleading errors regarding collect com transactions, resolved a security +advisory (CVE-2023-42806), and simplified the Hydra Head protocol by using +inline datums. The team also tackled minor inconsistencies in specifications and +implementation, documented reasons for potentially dropped close transactions by +the cardano-node, and collaborated with SundaeLabs on an offline mode for +hydra-node. Additionally, they engaged in discussions with researchers about +incremental de-/commits.

    What did the team achieve this week

    • Removed misleading errors about collect com transactions #839
    • Addressed security advisory CVE-2023-42806 in PR #1161
    • Changed the head protocol to use inline datums, simplifying things in the hydra-node #1162
    • Addressed minor inconsistencies in spec and implementation #1104
    • Documented why close transacations might be dropped by the cardano-node (cant fix) #1039
    • Tidy up a few things here and there
    • Worked with SundaeLabs on the offline mode for hydra-node
    • Discussed incremental de-/commits with researchers

    What are the goals of next week

    • Start work on incremental decommits protocol specification #1057
    • Provide support to Hypix
    • Address all open bugs
    • Release version 0.14.0 with this scope
    • Update dependencies to prepare for Conway #1114
    • Shepherd off-line mode PR over the finish line
    • Complete tidying up chain layer via stateless observation changes in hydra-node #1096

    · 2 min read
    Sebastian Nagel

    High-level summary

    The last two weeks, the Hydra team achieved several milestones. They published +the monthly report for October, providing updates on project developments. The +team delivered a presentation and workshop at the Cardano Summit, contributing +to community engagement. They implemented a \"dirt road\" solution for the +\"Ignored init tx\" notification and moved the hydra-poll example project to a +dedicated repository. Additionally, the team built a hydra-chain-observer tool +for Hydra Heads, updated the toolchain to GHC 9.6.3, and made various +improvements to tooling and code formatting. They addressed specific issues, +such as fixing the gen-hydra-keys command and resolving concerns with the +rewritten hydra-tui. The team also enhanced the hydra-cluster smoke test +suite by fetching network configurations dynamically. Lastly, they actively +reviewed pull requests and architectural decision records from the community, +including contributions from SundaeSwap. An experiment, the Hydra tally, was +completed and successfully deployed to the mainnet by the Cardano Foundation.

    What did the team achieve this week

    • Published the monthly report for +october
    • Given a presentation / workshop at the Cardano summit +#1109
    • Dirt road implementation for \"Ignored init tx\" notification +#529 (without +stateless observation)
    • Completed and moved hydra-poll example project into a +dedicated +repository
    • Built a first version of a chain observation tool for Hydra Heads +#1096
    • Switched toolchain to GHC 9.6.3 and various improvements on tooling +and code formatting +#1135#1152#1151#1154
    • Fix gen-hydra-keys command to not overwrite existing +keys #1136
    • Fixed the rewritten hydra-tui#1113#1137
    • Fetch network configurations instead of packaging them into +hydra-cluster (smoke) test suite +#1156
    • Reviewing PRs and ADRs from the community (SundaeSwap) +#1118#1157
    • Hydra tally experiment (Cardano Foundation) deployed to mainnet

    What are the goals of next week

    • Tackle reported bugs
    • Shepherd contributed off-line mode PR to the main codeline
    • Improve chain observation tool to include more data and refactor +existing code towards more stateless observation
    • Start work on incremental decommits

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team fixed the gen-hydra-keys command to avoid +overwriting existing keys, and resolved issues related to the rewritten +hydra-tui. They also worked on a \"dirt road\" implementation for the +\"Ignored init tx\" notification, improving the robustness of the system.

    The team finalized preparations for the Cardano Summit presentation, including +implementation of the hydra-poll example DApp.

    If you happen to read this and attend the Summit in Dubai, make sure to check +out our Masterclass about \"Developing Hydra + Mithril for Scaling Cardano\" on +Friday, November 3 at 14:00-15:30 local time in the \"Al Dar\" room!

    What did the team achieve this week

    • Fix gen-hydra-keys command to not overwrite existing keys +#1136
    • Fixed the rewritten hydra-tui#1113#1137
    • Finalized cardano summit preparation +#1109
    • Implemented the hydra-poll example DApp link to +repository
    • Dirt road implementation for \"Ignored init tx\" notification +#529

    What are the goals of next week

    • Attend cardano summit and deliver presentation
    • Clarify / close user created issues
    • Build aarch64-darwin binaries in CI

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team mainly focused on preparing a masterclass and workshop for #CardanoSummit2023.

    In addition, they improved the Hydra node API's submit-transaction endpoint to accept three different encoding types: Base16 encoded CBOR string, TextEnvelope type, and JSON. +This improvement offers users greater flexibility and ease of interaction with the API.

    Finally, the team has followed up on the TUI brick upgrade to version 1.10. +This effort has resulted in addressing minor details and enhancing the overall user experience with the TUI.

    What did the team achieve this week

    • Prepare presentation and workshop for Cardano Summit.
    • More TUI fixes and improvements.
    • Upgrade GHC from 9.2.8 -> 9.6.2 #1105
    • Solved user issue related to submitting transactions in cbor format #1111.
    • Fix hydraw connection issue making it more stable #1121.

    What are the goals of next week

    • Work on hydra-poll dApp for Cardano summit.
    • Start the work on packaging hydra-node and related services.
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/7/index.html b/tags/hydra/page/7/index.html new file mode 100644 index 0000000000..a1b2327199 --- /dev/null +++ b/tags/hydra/page/7/index.html @@ -0,0 +1,57 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team's primary focus was on finalizing the new network resilience layer. This involved adding persistency to ensure data integrity.

    They also completed the exploration of potentially moving the Plutus validator scripts to Aiken.

    Additionally, the team dedicated some attention to our TUI by upgrading the Brick framework. They also undertook a comprehensive refactoring of the project's structure and addressed various bug fixes. These efforts are aimed at enhancing the overall user experience of our project.

    What did the team achieve this week

    • Network Resilience Persistence (#1101)[https://github.com/input-output-hk/hydra/pull/1101].
    • Upgrade brick on TUI (#1103)[https://github.com/input-output-hk/hydra/pull/1103].
    • Aiken commit validator translation (#1072)[https://github.com/input-output-hk/hydra/pull/1072].
    • Fixed some bugs in our TUI client.

    What are the goals of next week

    • Prepare presentation and workshop for Cardano Summit.
    • Work on hydra-poll dApp for Cardano summit.
    • Start the work on packaging hydra-node and related services.

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team released version 0.13.0, which includes fixes and extensions for state persistency and the ability to draft a commit transaction using inline datums.

    The team also delivered the first version of the network resilience layer, significantly increasing head availability.

    Additionally, they have been providing support to several funded Catalyst projects that want to build on Hydra.

    Last but not least, they updated and published security policy and vulnerability disclosure policy reports on how to handle security vulnerabilities within Hydra.

    What did the team achieve this week

    • Release 0.13.0
    • Published vulnerability reports #1088
    • Merged network resilience work part I #1074
    • Planning for Cardano Summit participation
    • Discussions with funded Catalyst projects wanting to build on Hydra for support
    • Merged typos fix PR from @omahs #1095

    What are the goals of next week

    • Complete Aiken commit validator script #1072
    • Complete Kupo integration #1078
    • Brick upgrade on TUI #1103
    • Clean backlog
    • Prepare and rehearse demo and talk for Cardano Summit

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team mainly focused on having a working new reliability +network layer; and specified its expected behavior in a new ADR.

    They also revisited the security policy and vulnerability disclosure policy on +how to handle security vulnerability within Hydra, and in particular how to +handle so-called "Silent fixes".

    What did the team achieve this week

    • Updated security policy and vulnerability disclosure policy #1088
    • Adr/network reliability #1082

    What are the goals of next week

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team conducted the monthly review meeting in +collaboration with Mithril, enhancing project coordination.

    The team improved the gen-hydra-key node command for smoother usability +and identified concrete steps to enhance network resiliency in feature +items #188, +#1080, and +#1079. +Additionally, they contributed the aiken-mode editor integration to the +aiken-lang organization, updated dependencies to utilize cardano-api +8.20, and published the Hydra security advisory CVE-2023-42806 with a +workaround available for users.

    These efforts demonstrate the team\'s commitment to project improvement, +security, and open-source community collaboration.

    What did the team achieve this week

    • Conducted the monthly review meeting together with Mithril
    • Improved gen-hydra-key node command +#1077
    • Established a clear plan to improve resiliency of network and manifested +feature items #188, +#1080 and +#1079
    • Moved aiken-mode (created by SN) +to aiken-lang organization
    • Updated dependencies to using cardano-api 8.20 +#1075
    • Published security advisory +CVE-2023-42806 +(workaround available)

    What are the goals of next week

    • Write-up the monthly report for September
    • Finish "network resilience to disconnects" +#188
    • Finish kupo integration with hydra +#1078
    • Discuss and decide on using aiken or not
    • Address the published security advisory +CVE-2023-42806 +(to not require workaround)
    • Ideally, release 0.13.0

    · One min read
    Sasha Bogicevic
    Sebastian Nagel

    High-level summary

    This week, most of the Hydra team was attending a cardano scaling workshop in +Nantes, France. They used this oportunity to meet fellow mithril team and spend +some time together to hack on some code and, as always, reflect on the past work +and find optimal path forward for both projects. They also fixed a bug that +caused hydra-node to crash when querying L1, worked on a new network resillience +proof-of-concept and accepted a new ADR related to stateless transaction +observation.

    What did the team achieve this week

    • Cardano scaling workshop with members of hydra and mithril teams
    • Accepted user contribution for possible new use-case #1048
    • Fix for the hydra-node crash related to internal wallet query #1053
    • Collected experimental CI findings #1070
    • Propose first POC for the network resilience #1074

    What are the goals of next week

    • Monthly review meeting & report including updates from Mithril
    • Review POC and discuss our options for the network resilience
    • Update cardano-api to version 8.20
    • Address TODOs on aiken commit validator #1072
    • Complete hydra-support in kupo kupo#117
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/8/index.html b/tags/hydra/page/8/index.html new file mode 100644 index 0000000000..9aecd17524 --- /dev/null +++ b/tags/hydra/page/8/index.html @@ -0,0 +1,71 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team improved the commit process with support for inline +datums. They simplified the chain layer by refactoring how the chain state is +persisted. Updates to the Hydra tutorial were completed, including CI workflows +to keep it up-to-date. The team engaged in discussions with researchers about +incremental commits & decommits, and drafted an architectural decision record +for a resource-based API. They also explored simpler solutions for the upcoming +network resilience feature.

    What did the team achieve this week

    • Support InlineScriptDatum in commit +#1043
    • Refactored chain state persistency +#1049
    • Completed tutorial updates (by adding CI and some cleanup) +#997
    • Intersect Open Source committee meeting
    • Experimented with various models to better express the \"Network +resilience problem\" to find a KISS solution for +#188
    • Drafted and discussed incremental de-/commit features within team +and with researchers +#199 and +#1057
    • Created ADR for a resource based overhaul of the API +#1028

    What are the goals of next week

    • Meetup of Hydra & Mithril contributors in Nantes, France
    • Integrated cardano-api 8.15 to have GHC 9.6 support
    • A clear design for incremental commits (decommits are already +understood)
    • An ADR for improving tx construction & observation to not need chain +state

    · One min read
    Sasha Bogicevic

    High-level summary

    This week, the Hydra team focused primarily on changes needed in the network +layer and have the first draft document related to needed design. They also +improved the user experience by allowing a commit using inline datums. +Discussed the off-chain governance with researchers and improved internal model +tests.

    What did the team achieve this week

    • Monthly report published
    • Small changes to hydraw and tutorial in light of the Masterclass
    • Investigated a bug and saw it was solved by recent developments
    • Improved the model tests by fully validating L1 transactions
    • Enhanced the /commit API to also allow commit from scripts with inline datums (user request)
    • Discussed off-chain governance with IOG and CF researchers
    • Drafted a first network specification document in the context of Network resilience

    What are the goals of next week

    • Have a clear understanding of the changes we need for the "Improve network resiliency" feature
    • Groomed and agreed plan on incremental commits/decommits
    • Updated tutorials including CI workflows to check consistency
    • Update to GHC 9.6 and latest cardano dependencies (ledger/plutus)

    · One min read
    Franco Testagrossa

    High-level summary

    This week, the Hydra team conducted the monthly review meeting for Agust,which +continously ensures transparent communication and project evaluation.

    In terms of community engagement, the Hydra team gave a Hydra master-class at +RareEvo workshop as an educational initiative for the community. +Additionally, the team updated the Hydra demo and tutorial to include Mithril +and latest release changes.

    They also focused on exploring the Hydra network resiliance in order to improve +hydra-node availability, as it becomes stuck very easily and that leads to a +bad user experience.

    What did the team achieve this week

    • Hydra master-class at RareEvo workshop!
    • Monthly report & review meeting
    • Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff
    • Groomed network resilience and explorer features #188
    • New ADR for “Resourced based API” #1028

    What are the goals of next week

    • Have a poc on network resilience working #188
    • Fix issue #931: “Chain state in head state not updated on replayed observation”
    • Fix issue #1039: "Close transaction dropped from cardano-node"

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team released version 0.12.0, a significant update that +brings support for cardano-node 8.1.2, along with performance enhancements and +various API improvements. Additionally, the team successfully onboarded a new +contributor who is now actively participating in operating a Hydra Head. They +took part in a meeting of the Intersect open source committee and prepared the +Hydra master-class for RareEvo, an educational initiative for the community.

    If you happen to be at RareEvo, register for the Hydra master-class using this +form. +We hope to make it possible to follow along on-line as well and will announce +details on the Hydra announcements channel on the IOG discord +server.

    What did the team achieve this week

    • Released version 0.12.0 which adds support for cardano-node 8.1.2, performance +and several API improvements. Release notes
    • Replaced commit via websocket with external draft + submit. #954
    • Onboarded new contributor to the point where he actively participates in operating a Head now.
    • Joined a first meeting of the Intersect open source committee
    • Prepared the Hydra master-class for RareEvo.

    What are the goals of next week

    • Monthly review meeting
    • Run the Hydra master-class at RareEvo!
    • Updated Hydra tutorial including Mithril and re-record demo/tutorial stuff
    • Clear out red bin items (technical debt)
    • Groom network resilience and explorer features

    · One min read
    Franco Testagrossa
    Sebastian Nagel

    High-level summary

    This week, the Hydra team updated hydra-node to support cardano-node version +8.1.2, ensuring compatibility with the latest mainnet release. The team also +participated in discussions about a "cardanonical" JSON schema and added it as a +submodule to the project, contributing to improved data modeling and +interoperability.

    In terms of community engagement, the team successfully onboarded a new +contributor, also participated in a RareEvo Twitter space, and continued +preparations for the Hydra master-class.

    What did the team achieve this week

    • Updated dependencies to support cardano-node 8.1.2 #1007
    • Engaged in discussions about a cardanonical json schema and +add it as submodule to the project +#1013
    • Onboarded a new contributor to the hydra project (@locallycompact)
    • Joined RareEvo twitter space and continued preparation of hydra master-class

    What are the goals of next week

    • Update & streamline tutorial to work with latest version of hydra-node
    • Remove the internal commit functionality #954
    • Release 0.12.0
    + + + + \ No newline at end of file diff --git a/tags/hydra/page/9/index.html b/tags/hydra/page/9/index.html new file mode 100644 index 0000000000..e3ba2e0831 --- /dev/null +++ b/tags/hydra/page/9/index.html @@ -0,0 +1,62 @@ + + + + + +79 posts tagged with "hydra" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    79 posts tagged with "hydra"

    View All Tags

    · 2 min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team achieved notable progress in various aspects of the +project. The team updated the use case section for auctions on the /unstable +branch of the website, improving the understanding of Hydras applicability.

    From the development side, the team successfully completed event-sourced +persistence, a key enhancement in the projects architecture which improves +off-chain transaction processing performance. They also added a +submit-transaction endpoint to the API.

    In addition to project-related progress, the team actively engaged in community +reviews for several catalyst proposals related to Hydra and Mithril, +contributing to the wider Cardano ecosystem.

    Finally, the full report for the month of July was also published here.

    What did the team achieve this week

    • Published the monthly report for July
    • Updated the use case section for auctions (published on /unstable branch)
    • Completed event sourced persistence #913
    • Added a submit-transaction endpoint to the API #966
    • Community reviews for several catalyst proposals related to Hydra and Mithril
    • Created a network testing tool (hydra-net) #1006

    What are the goals of next week

    • Update hydra-node to work with cardano-node version 8.x
    • Remove the internal commit functionality
    • Release version 0.12.0
    • Update & streamline tutorial to work with latest version of hydra-node

    · 2 min read
    Sebastian Nagel

    High-level summary

    During this week, the Hydra team achieved significant progress in various areas. +They conducted the monthly review meeting for July, which continously ensures +transparent communication and project evaluation. The team migrated the core +logic of the node to an event-sourced architecture and incremental writes of +events to persistence, enhancing the projects performance and maintainability. +Furthermore, the team added the ability to read protocol parameters via the API +and fixed the CI workflows to support pull requests from forks of external +contributors, streamlining the development process for community involvement.

    What did the team achieve this week

    • Held the monthly review meeting for July (recording)
    • Migrate the core logic of the node to an event-sourced architecture #999
    • Updated persistence to faster incremental writes of events #1000
    • Added ability to read protocol parameters via API #735
    • Fix CI workflows to support pull requests from forks of external contributors #993
    • Updated to GHC 9.2.8 #1005
    • Prepared an updated use cases section on https://hydra.family (published with next release)

    What are the goals of next week

    • Publish monthly report
    • Complete user transaction submission work #966
    • Remove commit from internal wallet (deprecated) #954

    · One min read
    Sebastian Nagel

    High-level summary

    This week, the Hydra team updated the specification to align with recent +off-chain protocol changes, completed refactoring the snapshot emission +in preparation for event-sourced protocol logic, and updated to GHC +9.2.7, resulting in improved compile times and slightly smaller Plutus +scripts.

    What did the team achieve this week

    • Updated the specification to match the recent off-chain protocol +changes to complete +#728
    • Refactored the snapshot emission logic in preparation for event +sourced protocol logic.
    • Updated to GHC 9.2.7, which led to improved compile times and +slightly smaller plutus scripts.

    What are the goals of next week

    • Monthly review meeting next wednesday and July report
    • Reflect latest information onto our roadmap.
    • Actual implemention of event-sourced persistence +#913.
    • Update the use cases section on https://hydra.family
    • Remove deprecated internal commit +#954.

    · One min read
    Franco Testagrossa
    Sasha Bogicevic

    High-level summary

    This week the team focused on exploring the event sourced persistence in order +to improve hydra-node performance. Because of this work the team noticed we +need to refactor the emit snapshot emission logic and update the spec in the +light of new changes. They also took the time to revisit their goals and product +plans for the next quarter as well as doing some security fixes related to +multisignatures.

    What did the team achieve this week

    • Finished spike about performance improvements of event sourced persistence #963.
    • Refactor snapshot emission in protocol logic.
    • Revisited our roadmap and goals.
    • Prepared and conducated a learning session on lean-waste.
    • Improve security of multi-signature checks, see this Github security advisory.
    • Implemented a cache friendly way to version our binaries #962.

    What are the goals of next week

    • Implement Event sourced persistence #913.
    • Remove deprecated internal commit #954 and close #728.

    · One min read
    Franco Testagrossa
    Sasha Bogicevic

    High-level summary

    This week the Hydra team accomplished some nice progress. They secured the +network layer further by implementing authentication of the messages between the +peers in the Head protocol. In the process they also managed to separate +HeartBeat messages from the protocol ones which somewhat improved the quality of +code in Hydra. The team also finished work related to sending only transaction +ids in ReqSn messages, fixed an issue in the smoke tests, and improved benchmark +publishing on the website.

    What did the team achieve this week

    What are the goals of next week

    • Spike on performance improvements of event sourced persistence #913
    • Add new endpoint for submitting client transactions
    • Remove commit from internal wallet
    + + + + \ No newline at end of file diff --git a/tags/incident/index.html b/tags/incident/index.html new file mode 100644 index 0000000000..253dd92a6b --- /dev/null +++ b/tags/incident/index.html @@ -0,0 +1,36 @@ + + + + + +2 posts tagged with "incident" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    2 posts tagged with "incident"

    View All Tags

    · 4 min read
    Iñigo Querejeta Azurmendi

    Security Issue Report: SECP256k1 bug

    Date Occurred: July 15, 2022 +Severity: Potentially Very High if exploited on Mainnet +Authors: Iñigo Querejeta Azurmendi

    Date of Report: August 17, 2023

    Summary of Issue

    Criticality Level

    Actually low (since the issue was detected prior to deployment) but potentially very high if it had been deployed to mainnet +Context

    New SECP256k1 Plutus bindings were being introduced in order to support interoperability with other major chains, such as Bitcoin and Ethereum. The intention was to deploy these as part of the Vasil hard-fork. The bindings were considered to be a low-security risk since the underlying library functions were well tested and had been deployed on other blockchains. +How was the Issue Detected

    The issue was detected via specific End-to-End tests that had been commissioned. It was (accidentally) triggered on the Cardano Testnet before a fix could be deployed there.

    What Action was Taken

    The Cardano Testnet was permanently halted, and new test environments were deployed (Preview and Pre-Prod). +Fixes were applied to prevent the use of the primitives. +A full security audit was carried out on the bindings. +The rollout of the primitives was postponed to a new hard fork (Valentine)

    Potential Effect

    The potential effect was that an adversary might be able to craft invalid Plutus transactions to crash any node, requiring execution of the Cardano disaster recovery plan to revert to a safe state and bypass the transaction.

    Actual Effect

    • Delay to the Vasil hard-fork
    • Temporary removal of SECP256k1 primitives
    • Additional hard-fork to introduce SECP256k1 primitives

    Ongoing Mitigations Needed, if any

    None

    Responsibility for Mitigations

    Core team

    Detailed description of Incident

    New Plutus secp256k1 cryptographic primitives for Plutus v2 failed to apply the necessary validity checks on the input data, meaning that the primitives could theoretically be used in an unsafe environment. The vulnerability was present in recent node versions (1.35.0 onwards), including ones deployed to Cardano Testnet.

    The problem was not in the deserialization functions of the underlying library (Bitcoin's library) but rather that the Haskell functions that implemented the Plutus builtins were not calling them correctly. In particular, the library functions were designed to take structured data as input. However, the Haskell FFI implementation that was produced for the Plutus builtins allowed a caller to pass in (possibly) unstructured data. There were no checks that these data were structured in the correct way. This issue was detected during End-to-End testing.

    • This is the ECDSA signature verification algorithm that was used. It takes a SECP256k1_pubkey as input. That type is an opaque type with an expected structure: a parsed and valid public key. It was not immediately obvious that structured data needed to be passed to allow the function to be used safely.
    • The same happened with the Schnorr verification function. It takes as input a SECP256k1_xonly_pubkey, which is again an opaque structure that holds a parsed and valid public key.

    The FFI skipped checks over these structured keys and directly passed the raw bytes that were given as arguments. If an adversary were to pass in data that was not properly structured, then it could result in unexpected behavior of the library. This could perhaps translate into an adversary being able to crash the nodes that ran these functions. All nodes in the network could be crashed by a single transaction that would then be executed repeatedly, so stalling the network until the disaster recovery process was initiated.

    The fix was addressed in this PR. It consisted of using the external representation that the deserialization function expects and running the deserialization prior to signature verification. This was audited by security experts.

    Recommendations

    • Check all new Plutus bindings for correct use.
    • Audit all new Plutus built-in bindings.
    • Continue to develop specific End-to-End tests for all new Plutus features.
    • Do not assume that any existing library functions are "safe". Treat all external calls circumspectly.

    · 2 min read
    Kevin Hammond

    Cardano block production temporary outage

    On Sunday, January 22, 2023, an incident occurred resulting in block production pausing for a brief period of time (approximately two minutes, similar to the usual pause at an epoch boundary). Around 50% of block-producing nodes and relays restarted during this period. Having restarted, nodes continued to produce blocks without failure. While the network continued to operate, the issue did have the potential to affect network integrity, so was flagged as a ‘critical’ incident, thus warranting immediate response and investigation by IOG engineers. +The investigation (with SPO & Cardano Foundation collaboration) quickly revealed the cause of the issue – a complex bug in data structure handling code related to the precise order of insertion/deletion of multi-asset tokens into the internal ledger record. Input Output Global (IOG) engineers, along with SPOs and DApp developers, collectively identified how to reproduce the issue as a unit test that could be included in the standard Cardano node test suite. +Following successful testing, this led to a bug fix being implemented, tested, benchmarked, and deployed as a hotfix in the node v.1.35.5 release on Friday, January 27, 2023. Care was taken not to highlight the exact cause of the bug during this process so that it could not be exploited prior to SPOs deploying this new node version. +With the fix deployed, the Cardano SPO and developer community have not seen any further instances of this issue.

    Further Details

    You can read more details on the incident and how it was managed from SundaeSwap’s Pi Lanningham here. Thanks again to all the community for its support in identifying and fixing this bug.

    + + + + \ No newline at end of file diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 0000000000..55fedcce90 --- /dev/null +++ b/tags/index.html @@ -0,0 +1,26 @@ + + + + + +Tags | Cardano Development Updates + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tags/ledger/index.html b/tags/ledger/index.html new file mode 100644 index 0000000000..54ce1d01da --- /dev/null +++ b/tags/ledger/index.html @@ -0,0 +1,58 @@ + + + + + +44 posts tagged with "ledger" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    44 posts tagged with "ledger"

    View All Tags

    · 2 min read
    Alexey Kuleshevich

    High level summary

    This period we added some last minute changes that were necessary for improving resilience +and safety of Conway implementation:

    • Authorization of hot credentials for constitutional committee members is now only possible +for cold credentials that are present in the ledger state, either in the current committee +or in one of the proposals.
    • Voting is restricted to entities that are present in the ledger state
    • DRep votes will be removed whenever DRep unregisters
    • Pricing model for the size of reference scripts was changed from linear to +exponential. Moreover, extra limits on the total size of reference scripts being used +have been put in place.

    Low level summary

    Conway

    • pull-4430 - CostModel json parsing
    • pull-4438 - Fix UTXOW era in diagrams for Conway
    • pull-4443 - Make reference scripts fee grow exponentially with size
    • pull-4436 - Authorize known cc members only
    • pull-4433 - Improve resilience of future PParams
    • pull-4453 - Tx refscript size check
    • pull-4452 - Prevent votes for non existent entities
    • pull-4450 - BBODY refscript size check

    Testing

    • pull-4417 - constrained-generators: use consistent warning pragma
    • pull-4431 - constrained-generators: fix flakyness in set generator
    • pull-4312 - Convert AlonzoValidTxUTXOW to ImpTest (Part 1)
    • pull-4386 - Increase the size of the committee for testing
    • pull-4425 - Conformance test plumbing: EPOCH
    • pull-4442 - Update executable-spec SRP
    • pull-4405 - Add more scripts to alonzo utxosspec
    • pull-4445 - Conformance tests plumbing: NEWEPOCH
    • pull-4460 - Remove unnecessary allocation in non-integral reference code
    • pull-4457 - Conformance: POOL: Translate and adjust

    Infrastructure and releasing

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Major milestone was reached this period. We've implemented +CIP-0069 that improves +PlutusV3 functionality by making spending datums optional and enforcing all scripts to +have exactly one argument. This feature allows for spending scripts to be usable for other +purposes, like minting for example.

    Couple of important bugs have been fixed:

    • Script execution for certificates with the same plutus script did not execute correctly.
    • Prevent delegation to a non-existent pool.

    With this feature complete and a few bug fixes we were also able to mark Conway era and +CIP-1694 as feature +complete and ready for release. Naturally, testing of Conway era will continue all the way +into the hard fork.

    Low level summary

    Conway

    • pull-4374 - CIP-0069
    • pull-4394 - Fix Certifying Redeemer issue
    • pull-4400 - Check that the pool being delegated to exists for ConwayDelegCert
    • pull-4409 - Update to plutus-ledger-api-1.30

    Testing

    • pull-4384 - Re-enabled Full NewEpochstate test
    • pull-4397 - Add a lens to HasSubState
    • pull-4399 - New simple examples for maps
    • pull-4403 - constrained-generators: Add lookup_ for maps
    • pull-4414 - constrained-generators: Hotfix failing test
    • pull-4411 - constrained-generators: introduce a hook for naming variables

    Infrastructure and releasing

    • pull-4424 - GHA: Downgrade the version of actions/upload-artifact
    • pull-4426 - Take care of all compiler warnings for GHC-9.8
    • pull-4407 - Change the default ghc version to 9.6.5
    • pull-4416 - Bump urllib3 from 1.26.18 to 1.26.19 in /doc

    · 3 min read
    Alexey Kuleshevich

    High level summary

    This time around we continued on testing the Conway era and improving our conformance +tests. Thanks to this extensive testing we found and fixed a few more bugs in the Conway +implementation. We fixed bugs related to DRep expiry and the choice of correct threshold for +the committee voting. One important feature that was implemented is ignoring the +minimun committee size during the bootstrap phase, in order to avoid a deadlock situation in +case that enough committeee members were to resign. We've also improved the correctness of +our CDDL specification and improved the safety by restricting some of the types of +protocol parameters.

    Low level summary

    Conway

    • pull-4350 - Add identity instance for Inject
    • pull-4361 - Fixed a bug in RATIFY
    • pull-4358 - DRep expiry update with number of dormant epochs
    • pull-4365 - Create pool stake distribution query for voting
    • pull-4376 - Ignore ppCommitteeMinSize during bootstrap
    • pull-4364 - DRep state query and related tests
    • pull-4357 - Specify numeric ranges explicitly in conway cddl files

    Testing and formal spec

    • pull-4339 - constrained-generators: introduce tools for controlling test case distribution
    • pull-4348 - Conformance: GOVCERT
    • pull-4213 - Utxow Predicate failure tests
    • pull-4351 - Enable retrying flaky tests in nightly CI
    • pull-4345 - constrained-generators: Add explanation :: [String] -&gt; Pred fn -&gt; Pred fn
    • pull-4362 - Threshold translation in conformance testing
    • pull-4369 - constrained-generators: Add flip_ to avoid having to add new native functions
    • pull-4377 - constrained-generators: propagate information backwards in the solver
    • pull-4389 - Fixed issue #4340. Problem with futurePParams not adequate in Conway.
    • pull-4378 - Conformance: POOL
    • pull-4388 - Improved the translation of PParamUpdate in conformance
    • pull-4355 - Fix order of arguments to verifyVrf

    Infrastructure and releasing

    • pull-4352 - Remove dependency on deprecated ansi-wl-print package
    • pull-4344 - constrained-generators: identify and fix an issue with big bodies to ifElse
    • pull-4338 - Add conformance testing for ENACT
    • pull-4354 - Added conformance test for DELEG
    • pull-4367 - Fixed 8.10 not building
    • pull-4368 - Ensure GitHub CI fails when tests are skipped due to a build failure
    • pull-4373 - Add -rtsopts to all test suites

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Most of the focus was on the conformance testing this time around. We had completed +conformance tests for CERT and RATIFY rules and progressed on some of the others. This +also resulted in some improvements to the constraint-generators framework. Besides that +we've also fixed Stake Pool Operator stake distribution calculation that is used for +voting by including proposal deposits that are currently locked in the system. One of the +Ledger team members was also performing duties of a release engineer, so we also +facilitated the latest cardano-node-8.11 release.

    Low level summary

    Features and fixes

    • pull-4324 - Proposal deposits in SPO voting stake
    • pull-4316 - Complete EraScript hierarchy with missing classes
    • pull-4287 - Fix various minor issues in the Shelley & Babbage specs

    Testing

    • pull-4320 - CERT conformance
    • pull-4334 - RATIFY conformance
    • pull-4337 - Fix RATIFY conformance
    • pull-4325 - constrained-generators: soundness tests and bugfixes
    • pull-4323 - constrained-generators: clean up interface
    • pull-4336 - constrained-generators: Introduce fromList_ :: (HasSpec fn a, Ord a) =&gt; Term fn [a] -&gt; Term fn (Set a)

    Infrastructure and releasing

    • pull-4333 - Fix babbage-test and conway-test versions
    • pull-4332 - Update CHANGELOGs
    • pull-4343 - Bump requests from 2.31.0 to 2.32.0 in /doc

    · 3 min read
    Alexey Kuleshevich

    High level summary

    Some of the most important and final Conway features were implemented since the last report:

    • Bootstrap phase is fully implemented
    • HardForkInitiaztion governance action will now correctly take us into the next era +that will follow the Conway era.
    • DRep stake distribution now also includes the amount in the reward account and deposits +that were left for the governance proposals.
    • CostModels updates for plutus scripts made more flexible, which will allow us adding +new primitives for all plutus versions starting with the Conway era.

    As always, besides new features, we also wrote a lot of testing functionality. We now have +our first and fully functional conformance test for a GOV rule, with a few more in the +works. Many improvements and bugfixes to constraint based generating functionality. Last, +but not least, we did a major and long awaited improvement to our CI setup that makes it +much easier to spot failing tests and deal with potential flakiness.

    Low level summary

    Conway

    • pull-4275 - Restrict gov actions during bootstrap
    • pull-4253 - Hardfork Initiation into a new era
    • pull-4273 - DRepDistr: Iterate over the DRep delegations in UMap
    • pull-4309 - Add proposal deposits to DRep active voting stake.
    • pull-4284 - Flexible costmodel params
    • pull-4328 - Disable drep thresholds in bootstrap

    Testing

    • pull-4295 - Improve generator in ImpTestsState
    • pull-4292 - constrained-generators: add genHint for maps
    • pull-4298 - constrained-generators: utility function for asserting over a reified value
    • pull-4300 - constrained-generators: hotfix of latest derp...
    • pull-4297 - constrained-generators: Fix ifElse dependencies
    • pull-4301 - constrained-generators: Add monitoring capability to get a handle on test case distribution
    • pull-4315 - constrained-generators: Improve error messages and make the tree generator reasonably sized
    • pull-4317 - constrained-generators: Fix bug in reifies
    • pull-4299 - Fix strange CI failure.
    • pull-4285 - Start Conway Imp tests with an initial committee and constitution
    • pull-4303 - Fix test caused by erroneous merge
    • pull-4310 - Fix OMap.assocList
    • pull-4268 - Enable conformance tests for GOV rule

    Infrastructure and releasing

    • pull-4276 - Use a separate job for each test suite in GitHub CI
    • pull-4304 - Ensure the CI complete step fails when tests fail
    • pull-4308 - Add a CI status check to prevent merging PRs that contain merges
    • pull-4305 - Use the correct iohk action for installing Haskell in GitHub CI
    • pull-4322 - Bump jinja2 from 3.1.3 to 3.1.4 in /doc
    + + + + \ No newline at end of file diff --git a/tags/ledger/page/2/index.html b/tags/ledger/page/2/index.html new file mode 100644 index 0000000000..c74c784929 --- /dev/null +++ b/tags/ledger/page/2/index.html @@ -0,0 +1,42 @@ + + + + + +44 posts tagged with "ledger" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    44 posts tagged with "ledger"

    View All Tags

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Ability to specify CostModel for PlutusV3 in the genesis file was implemented, which +will allow us to execute PlutusV3 as soon as we enter Conway era, which is essential +for guardrails script. Important bugs that have been fixed:

    • Invalid reporting of InsufficientCollateral and ValueNotConservedUTxO predicate +failures. In case of validation failure a confusing deserialization was reported instead +of those predicate failures.
    • Calculation of votes for Constitutional Committee Members did not consider expired +members correctly.
    • Useful function redeemerPointer was deprecated without good justification.

    Besides bugfixes there was a lot of work done on the testing side. Constraint based data +generation is receiving continuous improvements. More unit and property tests for Conway +era functionality.

    Low level summary

    Conway

    • pull-4259 - Undeprecate redeemerPointer and expose it in cardano-ledger-api
    • pull-4252 - Add PlutusV3 CostModel to UpgradeConwayPParams
    • pull-4247 - Change the balance in InsufficientCollateral to DeltaCoin
    • pull-4267 - Expand TxAuxData interface
    • pull-4265 - Inline UTxO and UTxOW PredFailure for Conway
    • pull-4281 - Discount expired CC from CC-size calculation
    • pull-4290 - Add NoThunks instance for UTxO pred failures
    • pull-4288 - Fix burning tokens predicate failure

    Testing

    • pull-4241 - Add fixup combinators to ImpTest framework
    • pull-4229 - Shrinking for constrained-generators
    • pull-4244 - Imptests: CommitteeMinSize affects in-flight props
    • pull-4269 - Fix generation bug for sums of positive member spec
    • pull-4266 - Add imptest to propose and enact unknown costmodels
    • pull-4261 - constrained-generators cleanup for hackage
    • pull-4279 - constrained-generators: Fix bug in toPreds for maps + add additional tests
    • pull-4272 - simplify foldMap interface to higher order syntax
    • pull-4283 - constrained-generators: add new test to test suite
    • pull-4286 - constrained-generators: refactor reify to reduce the number of binding sites + delay simplification more to avoid variable capture in higher order syntax

    Infrastructure and releasing

    • pull-4260 - Bump idna from 3.3 to 3.7 in /doc
    • pull-4277 - Fixed formatting in HowToProfileLedger.md
    • pull-4282 - Bump plutus deps to 1.26
    • pull-4294 - Avoid cancelling scheduled CI when a new merge happens on master

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Most notable progress is on testing. In particular data generation for conformance test +has been improved and the implementation organized. Addition of various Conway related +unit and property tests.

    Conway

    • pull-4236 - Fix typo in ToJSON of ConwayGovState
    • pull-4250 - Add some ToJSON instances needed by cardano-node

    Testing

    • pull-4221 - Fix a NoThunks test failure on nightly builds
    • pull-4214 - Fix estimateMinFeeTx w/ bootstrap test
    • pull-4189 - Imptests - treasury withdrawals
    • pull-4207 - Added tests from a bug report
    • pull-4238 - Imptests: ParameterChange affects ratification for in-flight proposals
    • pull-4243 - Convert small-steps testsuite to Hspec
    • pull-4248 - Fix withdrawals test data generation in EnactSpec
    • pull-4212 - Update and reorganize conformance tests
    • pull-4242 - Added UnitTestTools and IncrementalStakeTest

    Infrastructure and releasing

    Low level summary

    · One min read
    Alexey Kuleshevich

    High level summary

    We continued focusing on adding tests and improving the test frameworks, including the quality of the generated data used in tests.

    Low level summary

    Conway

    • pull-4205 - Disable CC ratification when number of members is below ppCommitteeMinSize
    • pull-4169 - Add GovInfoEvent and add event testing capabilities to ImpTest
    • pull-4208 - Remove missingScriptsSymmetricDifference

    Testing

    • pull-4121 - Newconstraints phase3, Add newtypes: Size, SizeSpec and class Sized.
    • pull-4197 - add unsafeMkProposals to be used for testing
    • pull-4200 - Fix prop_GOV so that it runs again
    • pull-4216 - improve the GOV generator to generate more interesting signals

    Improvements

    Releasing

    · 3 min read
    Alexey Kuleshevich

    High level summary

    Focus has been on testing: adding tests and improving our testing framework to make it easier to write tests for various Conway features. +We also did some cleanup and reorganisation of code, to make it more manageable and easier to release. +We have started work on Hardfork Initiation: support for intra-era hardfork initiation and necessary updates the SPO stake distribution calculation.

    Low level summary

    Conway

    • pull-4140 - Intra era hardfork initiation
    • pull-4154 - SPO stake distr calc for HardForkInitiation
    • pull-4150 - Add ConwayUtxosPredFailure
    • pull-4162 - Add ConwayDRepIncorrectRefund and tests for GovCert
    • pull-4112 - Fail when conway features are present in transactions that use Plutus v1/v2
    • pull-4164 - Change hot credential representation in CommitteeState
    • pull-4178 - Remove code repetition in Conway era CDDL

    Testing

    • pull-4096 - Add a collection of test Plutus scripts for use in ImpTests
    • pull-4144 - Add imptests for delaying actions enactment
    • pull-4104 - Governance policy tests
    • pull-4123 - Add the ability to do constraints over trees in constrained-generators
    • pull-4163 - Reorganise GovSpec, add GovCertSpec
    • pull-4152 - Add extra type-safety to ensure that all predicate failures have roundtrip tests
    • pull-4172 - Add imptests for some more GOV predicate failures
    • pull-4139 - Add extra time from 1 sec to 2 sec for prop_soundness test.
    • pull-4173 - Update profiling instructions
    • pull-4177 - Plutusv3 initialization tests
    • pull-4155 - Fix nightly build failures

    Improvements

    • pull-4141 - Add boom placeholder
    • pull-4157 - Split Conway governance
    • pull-4188 - Simplify implementation of ToJSON1 of ListMap
    • pull-4129 - Modify PParams to use similar naming to ProtocolParams in cardano-api
    • pull-4160 - Make shelley TxWits consistent with other eras
    • pull-4168 - Add missing InjectFailure instances for ConwayUtxosPredFailure
    • pull-4086 - Change applySTS to return NonEmpty (PredicateFailure s)
    • pull-4176 - Add CARDANO_MAINNET_MIRROR to Nix shell
    • pull-4174 - Convert small-steps-test into a sublibrary
    • pull-4159 - Shelley rules cleanup

    Specification

    • pull-4042 - Fix the prose being inconsistent with the figure
    • pull-4151 - Fix an issue with txinfo and unusual notation in Babbage UTXO rule

    Releasing

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Quite a useful and desired feature described in +CIP-0110 of allowing reference +scripts for PlutusV1 has been implemented for Conway.

    For the most part we are now spending time on writing tests and enhancing out tooling that +we use for testing. This is paying out dividends since we are finding and fixing important +Conway related bugs. Notable bugs that were squashed this time around are related to using +incorrect stake distribution for both DReps and Stake Pools.

    Low level summary

    Conway

    • pull-4059 - Enable Plutus v1 reference scripts in Conway
    • pull-4088 - Committee query improvements
    • pull-4115 - Switch to using the correct stake pool distribution for voting
    • pull-4116 - Fix Drep stake distribution

    Testing

    • pull-4100 - PPU wellformedness tests
    • pull-4097 - Test that unwithdrawn rewards contribute to voting power
    • pull-4102 - fix prop_DELEG in STS tests
    • pull-4106 - Imp script fixes
    • pull-4118 - Add test for maps with small domains
    • pull-4119 - NewConstraints phase1. Add BoolFn And and Or and tests
    • pull-4120 - Newconstaints phase2 rename IsUniverse (BaseUniverse), Fn (BaseFn)
    • pull-4130 - Added tests for checking proposal network IDs
    • pull-4114 - Imp Bootstrap address support

    Improvements

    Specification

    Releasing

    • pull-4105 - Update RELEASING with revisioning instructions
    • pull-4117 - Use plutus-ledger-api 1.22.1
    + + + + \ No newline at end of file diff --git a/tags/ledger/page/3/index.html b/tags/ledger/page/3/index.html new file mode 100644 index 0000000000..3c956accf9 --- /dev/null +++ b/tags/ledger/page/3/index.html @@ -0,0 +1,56 @@ + + + + + +44 posts tagged with "ledger" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    44 posts tagged with "ledger"

    View All Tags

    · 3 min read
    Alexey Kuleshevich

    High level summary

    Last few weeks were spent mostly on implementing various fixes, writing tests and +improving capabilities of our testing frameworks. Important bug fixes are:

    • Retention of Anchor for proposal procedures in the ledger state in order for users to be +able to query the node for those anchors
    • JSON serialization of rational numbers in protocol parameters and governance procedures +are encoded without loss of precision

    Feature wise, we've added a new protocol parameter that controls the contribution of +reference scripts sizes in the transaction fee calculation formula.

    Major achievement that is worth announcing is a Haskell package named +cuddle that we developed over the last few +months. Soon we will be transitioning to specifying CDDL in Haskell for all eras using +that package. It will be used to compile the CDDL specification that developers in the +community rely on so much. There are enormous benefits in using this tool, when compared +to writing CDDL specification manually. Namely it allows us to reduce duplication and +reuse common and unchanged specification from previous eras. It also improves safety and +correctness of our specification and decoders, because it ensures that the specification +is well typed and it uses QuickCheck to generate random data for validating that our +decoders are implemented according to the spec.

    Low level summary

    Conway

    • pull-4031 - Further proposals improvements. Take 2
    • pull-3996 - Index aware PlutusPurpose
    • pull-3983 - Include reference scripts size in min fee calculation
    • pull-4040 - Redeemers serialization fixes
    • pull-4033 - Make Conway-specific queries only available in Conway
    • pull-4028 - Embed ProposalProcedure in GovActionState
    • pull-4056 - Reduce duplication in Conway UTXOW rule
    • pull-4055 - Update MinFeeRefScriptCoinsPerByte.
    • pull-4053 - Rename committeeQuorum to committeeThreshold
    • pull-4058 - Fix ToJSON instance of BoundedRatio to avoid precision loss
    • pull-4070 - Rename AsIndex to AsIx
    • pull-4065 - Remove ConwayPool rule definition

    Improvements

    • pull-4037 - Add capability to hash Plutus scripts directly
    • pull-4030 - Report Plutus ScriptHash upon execution failure

    Testing

    • pull-3895 - Constrained v2
    • pull-3981 - Test proposals rewrite
    • pull-4051 - Full support of random and quickcheck-transformers in impTest
    • pull-4050 - Fixed the "All Tx are valid on traces of length 150" intermittent bug
    • pull-4049 - Support for Plutus scripts in ImpTest
    • pull-4075 - Discontinue the mingw target in the nix build
    • pull-4072 - Fix ouroborus-consensus serialization roundtrip test
    • pull-4080 - Test that a resigned CC cannot be reelected without removal
    • pull-4083 - Fix flakyness at the cost of turning test on during development
    • pull-4084 - Fix intermittent test failures in leader-proportion test

    Specification

    • pull-4015 - Shelley ledger spec: amend erratum on nonce stabilization window
    • pull-4064 - Fix wrong prose for new epoch environment
    • pull-4081 - Fix MIR rule using wrong values for treasury and reserves

    Releasing

    · 2 min read
    Alexey Kuleshevich

    High level summary

    One very important Conway feature that became available since last report is the ability +for Stake Pool Operators to vote on some of the security relevant protocol parameter +updates. We organized proposal hierarchy into a cohesive implementation, which together +with good tests gives us confidence in its correctness.

    We also fixed a few important bugs:

    • Preventing Constitutional Committee Members from voting on governance actions that they +should not be allowed to vote on.
    • Prevent deposits from appearing in orphaned reward accounts after the staking credential +has been unregistered, but before the proposal procedure deposit has been returned.
    • Ensure Sets are encoded in CBOR with tag 258 by default

    Further improvements in testing tools and addition of more tests.

    Low level summary

    Conway

    • pull-3982 - Added SPO voting thresholds for security relevant parameters
    • pull-3978 - Proposals pruning rewrite
    • pull-4003 - Prefix Set encoding with tag 258
    • pull-3999 - Add PParamUpdates to the plutus context, by transforming them to Plutus Data
    • pull-4008 - Fixed a bug in GOV rule
    • pull-4013 - Remove EnactState from ConwayGovState
    • pull-4025 - Further improvements to Proposals
    • pull-4021 - Move unclaimed rewards from proposals to treasury

    Testing

    • pull-3997 - Added DRep delegation injections to Conway
    • pull-4023 - Add a function registerInState to EraTransition
    • pull-4005 - Fixes in Shelley Imp framework and other small things
    • pull-4004 - Verify that enacted gov action is removed
    • pull-4016 - Fix Arbitrary instance and invariant checking for Proposals

    Improvements

    Releasing

    · One min read
    Alexey Kuleshevich

    High level summary

    Last week's achievement was that we finished PlutusV3 integration, which a massive piece of work.

    Low level summary

    Conway

    Testing

    • pull-3989 - Fix too many discards.
    • pull-3986 - Remove libs/cardano-ledger-pretty
    • pull-3991 - Imp native script support
    • pull-3993 - Change Test.Cardano.Ledger.Generic.Proof so that there is no more Crypto Evidence.

    Releasing

    • pull-3988 - Bump jinja2 from 3.1.2 to 3.1.3 in /doc

    · 4 min read
    Alexey Kuleshevich

    High level summary

    Major Conway related development was the refactoring of how we distinguish Plutus +language versions in every era, thus drasticly improving the type safety and getting us +much closer to PlutusV3 integration.

    There has also been many bug fixes and improvements since the last update. Some important bug +fixes are:

    • missing "protocolVersion" field in JSON instance for Babbage and Conway protocol parameters
    • requiring witnesses for DRep registration
    • new committee governance action ratification was implemented incorrectly
    • guard against invalid protocol versions in hard fork initiation proposals
    • failures during updates of Plutus CostModels were not retained
    • fixed the types for some protocol parameters in order to prevent values that are too large
    • serialization and CDDL fixes

    A few useful features have been also implemented, like new ledger events, doubling the +limit for Url length, consensus query, JSON instances and so on. It was also required +for testing to implement a reliable transaction fee estimation function, which is now +available not only for testing, but also for cardano-cli.

    Low level summary

    Conway

    • pull-3915 - Utilize Inject type class for Val's inject
    • pull-3899 - Bring Plutus language version to the type level
    • pull-3917 - Ensure DRepRegistration certificate requires a witness
    • pull-3921 - Fix committee validation in Ratify
    • pull-3935 - Fixed a bug in Conway.Rules.Gov
    • pull-3956 - Allow 128 byte Url and DnsNames for decoder version atleast 9.
    • pull-3954 - Fix how we update CostModels
    • pull-3947 - Change the type of some pparam fields to align with how they are represented in Consensus
    • pull-3951 - Conway genesis DRep injection
    • pull-3961 - Switch ContextError to an injective type family from a data family
    • pull-3963 - Abstract getWitsVKeyNeeded
    • pull-3933 - Improve cbor serialization of TxWits in Conway
    • pull-3971 - ToJson instances for context error
    • pull-3977 - Added GetAccountStateQuery
    • pull-3975 - Add policy hash protection to TreasuryWithdrawals and ParameterChange

    Testing

    • pull-3892 - Translate DRep expiry test from ConwayFeatures to Imp GovSpec
    • pull-3913 - Add certs to conformance testing
    • pull-3911 - Add a Preds to generate valid GovActionStates.
    • pull-3929 - Improve comment on unit_interval in cddl
    • pull-3950 - Use discard to avoid bad traces for fixOutput
    • pull-3935 - Add some Imp tests for HardForkInitiation.
    • pull-3964 - Ignore thunks in utxosDeposited
    • pull-3962 - Add estimateMinFeeTx
    • pull-3976 - Introduce accurate min fee calculation function: calcMinFeeTx

    Improvements

    • pull-3930 - Change type of mintedTxBodyL to PolicyID
    • pull-3924 - Split type classes out of eras Core module
    • pull-3934 - Type safety bugfixes
    • pull-3949 - Add FromJSON BabbagePParams instance
    • pull-3953 - Babbage / Conway PParams JSON serialization
    • pull-3946 - Epoch interval instances
    • pull-3932 - Add ledger event TxUTxODiff
    • pull-3969 - Add missing stake key deposit in formal spec
    • pull-3973 - Move functionality of Cardano.Ledger.Pretty to Test.Cardano.Ledger.Generic.PrettyCore

    Releasing

    · 2 min read
    Alexey Kuleshevich

    High level summary

    This period we reached a major milestone, namely we now have an initial version of Conway +conformance testing working. We are now able to generate random valid data with the help +of constraint based testing framework, apply that data to Conway Ledger rules and verify +that the output matches to the one produced by the executable version of the Formal Ledger +Specification, when it is applied to the same random data.

    We also had a couple of Conway bugs fixed and a few new predicate check implemented. Get +Constitutional Committee query is complete and tested. Various improvements to the +testing tools. Addition of more test cases.

    Low level summary

    Conway

    • pull-3888 - Add checks for valid ProtVer when a proposal is a HardFork
    • pull-3902 - Fix pvCanFollow usage in Conway and improve clarity in Shelley
    • pull-3855 - Remove unreachable proposals
    • pull-3903 - Add lenient decoder for Addr
    • pull-3878 - Committee query - implement next epoch change

    Testing

    • pull-3893 - Move tree-diff dependency to tests together with all instances
    • pull-3896 - Fix Brute force failure
    • pull-3904 - New ListWhere Pred added to the Constrained Solver.
    • pull-3907 - cardano-ledger-conformance: Remove CHANGELOG.md from cabal file
    • pull-3883 - Committee QuerySpec Imp Test
    • pull-3909 - Make impAnn a bit more useful, by making the logs scoped by impAnn
    • pull-3908 - Use upstream testing instances for very basic types
    • pull-3912 - Removed call to tail, and the 'watchPulser' test
    • pull-3852 - Added constrained generators to conformance tests - Part 1

    Improvements and releasing

    + + + + \ No newline at end of file diff --git a/tags/ledger/page/4/index.html b/tags/ledger/page/4/index.html new file mode 100644 index 0000000000..9abe0c3f24 --- /dev/null +++ b/tags/ledger/page/4/index.html @@ -0,0 +1,55 @@ + + + + + +44 posts tagged with "ledger" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    44 posts tagged with "ledger"

    View All Tags

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Last two weeks progress was mainly on testing, bug fixes and improvements to clarity of +CDDL specification. Important bugfixes include:

    • Fix deserialization of ValueNotConservedUTxO predicate failure that could not +previously report zero ADA.
    • Fix deserialization of CostModels in the PParamsUpdate. Invalid CostModels are no +longer allowed, only CostModels for unrecognized Plutus versions are allowed starting +with Conway
    • Fix returning of Deposits for ProposalProcedures

    Testing tooling has been improved and new tests have been implemented for Conway era.

    Low level summary

    Conway

    • pull-3858 - Restructure computing Refunds and Deposits in a TxBody across all eras
    • pull-3860 - Removed mock/crypto.cddl, added optional tag to sets
    • pull-3864 - Fix Proposal deposits and add deposit tests to imp tests
    • pull-3859 - Rename ProposalsSnapshot to Proposals
    • pull-3867 - MaryValue fixes
    • pull-3869 - Indicate that tag 258 is optional for OSet. Fix rational CDDL
    • pull-3863 - Improve deposits refunds re-usability
    • pull-3861 - Fail PParamsUpdate deserialization for invalid costmodels in Conway
    • pull-3875 - Fix cddl spec for CostModels in Conway
    • pull-3876 - Change 4 PParam fields from EpochNo to EpochInterval
    • pull-3884 - Relax requirement on the Set tag 258 to be enforced in the next era

    Testing

    • pull-3868 - Improvements to support property tests on Traces with simple Tx with DRep related Certs
    • pull-3792 - RATIFY and GOV constraint tests
    • pull-3885 - Added a test for genTxAndNewEpoch
    • pull-3886 - QuickCheck Imp integration

    Improvements and releasing

    · 6 min read
    Kevin Hammond

    High level summary

    We have undertaken an initial high-level security analysis of the CIP-1694 design. We summarise the analysis and our responses here.

    Initial CIP-1694 Security Analysis and Responses

    Section: The constitutional committee


    • “For example, if we consider the hypothetical Constitution rule "The Cardano network must always be able to produce new blocks" - In this example, if the governance action to reduce block size to 0 is passed, then there will be no way of passing or enacting further proposals. That is, this governance action is completely non-reversable. Suggestion: Instating a built-in mechanism that checks (and perhaps enforces) that the proposed governance actions, if passed, can be reverted in the future.

    There is a 'guardrails document' in preparation which captures issues such as these. Some of them may be automatable, as suggested; others will need to be evaluated by humans.


    Section: Size of the constitutional committee


    • A possible issue with very large committee sizes (or large number of proposals/voters in general) is that it may take longer to have votes appear on-chain, which in extreme cases may require longer voting periods.

    Thanks. Yes, we’ve been thinking about this issue for a long time, see for example the section ‘Final safety measure, post bootstrapping’. We don’t consider this as an issue for the CC since they need to be elected while DReps can just register, so we expect the number of CC members to be much less than the number of DReps


    Section: Terms


    • The following sentence is a bit awkward to read: “For example, a committee of size five with a threshold of 3/5 a minimum size of three and two expired members can still pass governance actions if two non-expired members vote Yes.” —> Suggestion: “For example, if we have a committee of size five with a threshold of 3/5, then a committee of three non-expired and two expired members can still pass governance actions if two non-expired members vote Yes.”

    Thanks. Yes, that suggestion is a bit easier to read.


    Section: Registered DReps


    • “Additionally, registered DReps will need to vote regularly to still be considered active.” - There is a minor issue with requiring “voting regularly”. That is, if there are no proposals to vote on for a long time, this means that no DRep can vote regularly (or they have to issue bogus proposals just to vote on them).

    Thanks. We’ve added a mechanism to prevent that issue in the spec/code where if there’s nothing to vote on for an entire epoch, we increment the epoch that each DRep expires.


    Section: Ratification


    • It is a bit unclear why protocol changes: network group and technical group are two separate groups.

    These correspond exactly to the groups that are administered by the Parameter Committee.


    • I didn’t understand the rationale for requiring 100% “Yes” votes to pass “Info” type governance actions? It seems they have the least potential to harm the system.

    Yes, it’s not about harming the system, since Info +actions have no direct effect on the operation of Cardano. The motivation is simply to record the actual level of support for the action.

    Once an action is enacted it’s no longer possible to vote on it. So if there was e.g. a threshold of 50%, then there is no way of telling whether the support for it might eventually have reached 90% or higher if it was not immediately enacted when the threshold was reached.


    Section: Content


    • For Hard-fork initiation, the changed parameters should probably also be required as part of Additional data.

    Protocol parameters can be changed in arbitrary ways by the hard fork and new ones might be introduced, so anything this action pins down might not actually be the value that will be present after the hard fork.


    Section: Protocol Parameter groups


    • It is a bit unclear to the reader what some of these parameters mean, for example: monetary expansion (rho) and treasury expansion (tau). Suggestion: Include brief explanations for the non-obvious parameters.

    These are existing protocol parameters, described in e.g. https://cips.cardano.org/cips/cip9/9 or The Cardano Protocol Parameters Guide.


    • With the current set of governance actions, it seems that it is not possible to add new types of protocol parameters, or categories of governance voting thresholds. Suggestion: Consider possibility of incorporating governance actions that allow addition of new protocol parameters, deletion of defunct protocol parameters, or modification of governance voting threshold categories.

    All of this needs to be done via a hard fork. If we had an action that added a parameter then there is no way of giving it semantics anyway, since that must be done by logic in the code.


    Section: Votes


    • Is a constitutional committee member also a DRep? If so, do they vote twice, once as a committee member and once as a DRep?

    They may or may not be (and they could also be an SPO). Note that this is fine, since these are completely separate tallies. This is also not preventable, since we don’t have an on-chain mechanism for identity. And yes, each credential gets to vote on each action for all roles in the governance system it has.


    Section: Separation of Hard Fork Initiation from Standard Protocol Parameter Changes


    • It is unclear whether there would be automated checks for whether a proposal is indeed a soft fork or hard fork, which would reduce human error in categorising proposals.

    There is no on-chain mechanism that could enforce this, the best we could do is some kind of certificate. However, this may not be trustworthy, of course. We will consider this in future versions of Voltaire.


    Section: Changes post Edinburgh workshop (July 2023)


    • “All governance actions are enacted one epoch after they are ratified.” - I’m not sure if this line is currently in the main body of the CIP?

    It is, but it is phrased differently: ‘All governance actions are enacted on the epoch boundary after their ratification.’


    Section: Reduced deposits for some government actions


    • Another downside of requiring endorsement from the constitutional committee is that this likely does not apply to constitutional committee-related proposals, such as no-confidence votes.

    Indeed. We have no plans for this at the moment.

    · 3 min read
    Alexey Kuleshevich

    High level summary

    This update contains mostly improvements to quality of Conway era implementation and +tooling that we use for testing Ledger. Major Conway bugs that were discovered and +squashed are:

    • PParamsUpdate proposals will now correctly use DRep thresholds for ratification
    • Treasury withdrawals are now properly enacted.
    • Corrected snapshotting and DRep Stake Distribution Pulser initialization
    • Delegation to non-existent Stake pool is no longer possible

    Other important quality of life improvements are addition of reusable interfaces for an +ordered set OSet and ordered map OMap. Which allowed us to disable duplicate +certificates and proposals in a transaction. As a precursor to PlutusV3 integration, a +serious reorganization of Plutus related functionality was performed.

    Conway related additions that are noteworthy: Conway Ledger events, disallowing voting on +expired proposals, addition of Anchor to Constitutional Committee resignation proposals.

    Significant improvements have been made to a specialized "Imp" test library that allows us +writing concise stateful unit tests for verifying the Ledger logic. Serious progress has +been made on the conformance testing, where we can now interface with Haskell generated +code from the Agda specification. Serialization testing has been extended to increase +binary conformance coverage.

    Low level summary

    Conway

    • pull-3808 - Enhance CommitteeMembersState query to return quorum and NoConfidence
    • pull-3801 - Fix epoch rule and tests
    • pull-3803 - Fix delegation validation
    • pull-3759 - Reshuffle things to the DRepPulser incorporates some snap shot things
    • pull-3779 - Prevent duplicate certs and proposals
    • pull-3794 - Added anchor to resign certs
    • pull-3797 - Cleanup JSON instances for Conway governance
    • pull-3848 - Plutus modules restructure
    • pull-3840 - Fix anomalies in Deposits in the Conway Era
    • pull-3856 - Add governance related ledger events
    • pull-3825 - Prevent voting on expired GovActions
    • pull-3831 - Treasury withdrawal fix
    • pull-3791 - Use a Data.OMap.Strict to replace ProposalsSnapshot
    • pull-3836 - PParamsUpdate enactment fix
    • pull-3846 - Revert argument order swap.

    Testing

    • pull-3782 - Move ImpTest to Shelley testlib
    • pull-3842 - Imp improvements
    • pull-3844 - Add mappings to Agda types
    • pull-3853 - Fix strange assertion failure, which hides real Block too big problem.
    • pull-3809 - CDDL roundtrip testing
    • pull-3832 - Treasury withdrawals tests
    • pull-3839 - Added cardano-ledger-conformance
    • pull-3841 - Add sha256 to cardano-ledger-executable-spec

    Improvements and releasing

    • pull-3843 - Add ...WithLogs versions of evalScripts and friends
    • pull-3795 - Bump plutus to 1.15
    • pull-3798 - Bump urllib3 from 1.26.17 to 1.26.18 in /doc
    • pull-3799 - Changes needed for 8.6 release
    • pull-3807 - Add invalidBeforeL and invalidHereAfterL functions
    • pull-3819 - Fixups needed for a release
    • pull-3829 - Post release CHANGELOG version bumps
    • pull-3830 - Bump aeson to 2.2
    • pull-3833 - Backport release cardano-ledger-conway-1.10.1.0
    • pull-3828 - Add changelog for node release 8.6

    · One min read
    Alexey Kuleshevich

    High level summary

    The Ledger team has been shifting focus from implementing Conway related features to +testing. For this reason there is a very little amount features that are reported this +time aorund. Notable Conway related changes are a specialized ledger query for getting +Constitutional Committee state and prevention of submitting proposal procedures that have +no valid path to enactment.

    Testing related work was mainly on a constraint base system as well as on roundtrip +serialization. As a result of this extra testing a bug in Conway Genesis serialization +was eliminated.

    Low level summary

    Conway era

    Integration and releasing

    Testing

    • pull-3769 - Add roundtrip testing by validating FlatTerm
    • pull-3783 - Update TranslationInstance.hs
    • pull-3775 - Refactor and improve constraint based STS tests
    • pull-3793 - Fix sums with negative RHS.

    · 3 min read
    Alexey Kuleshevich

    High level summary

    Few important Conway related features were completed in this two week period:

    • Constitutional Committee was the last missing Conway related entity that has now been +fully implemented.
    • Treasury withdrawals governance actions have been fixed and now behave as expected.
    • Current treasury amount supplied in the transaction is now enforced by the rules.
    • DRep's expiry is prevented by delaying the expiry for all DReps whenever there are no +proposals to vote on.
    • Semantics of how CostModels are updated with Protocol Parameters have been changed to +allow for individual Plutus language version updates, rather than requiring a complete +replacement of all CostModels

    Besides the new features there were also important performance and testing improvements:

    • In particular stake distribution computation and native script handling received some +optimizations.
    • New testing DSL has been implemented that drastically simplifies writing unit tests for +ledger rules.
    • Integration tests and benchmarks are now possible for Conway era because of the overhaul +of functionality for initial funds and staking injection whenever node starts up in +Conway, while bypassing all previous eras.

    Low level summary

    Conway era

    • pull-3729 - DRep expiry update after a contiguous set of epochs with no proposals to vote on
    • pull-3739 - Rename some PParams to be consistent with Agda specification
    • pull-3743 - Move DRepDistr from VState to ConwayGovState
    • pull-3746 - Implement tcTranslationContextL for Shelley
    • pull-3737 - Implement EraTransition
    • pull-3749 - Add predicate failure: current treasury value mismatch in LEDGER
    • pull-3748 - Apply enacted treasury withdrawals
    • pull-3745 - Constitutional Committee Ratification
    • pull-3763 - Plutus interface improvements
    • pull-3771 - Changed how costmodel updates are applied
    • pull-3766 - Prevent updating protocol version with PParamUpdate

    Performance

    • pull-3765 - Improve native script handling
    • pull-3747 - Use (CompactForm Coin) in IncrementalStake, DRepDistr (and other places) instead of Coin
    • pull-3758 - Cardano-Perf regression: UMap.size regression fix
    • pull-3754 - Use Alonzo-style TxOut encoder when possible

    Releasing

    • pull-3742 - Update fourmolu, ghcid and hls. Update haskellNix and iohkNix flakes
    • pull-3744 - Changelog 8.4
    • pull-3752 - Patch release of cardano ledger conway 1.8.1.0
    • pull-3753 - Minor cleanup and changelog entries
    • pull-3760 - Fixup issues for release
    • pull-3764 - Bump plutus deps to 1.13

    Testing

    • pull-3734 - Removed Shaped instance for Rep
    • pull-3735 - Simplify the implementations of hasOrd and hasEq
    • pull-3728 - STS tests based on constraints
    • pull-3714 - Implement the remaining upgradable families
    • pull-3733 - Add some unit tests for Conway features
    • pull-3762 - Update CDDL for praos headers.
    + + + + \ No newline at end of file diff --git a/tags/ledger/page/5/index.html b/tags/ledger/page/5/index.html new file mode 100644 index 0000000000..224ec2e289 --- /dev/null +++ b/tags/ledger/page/5/index.html @@ -0,0 +1,44 @@ + + + + + +44 posts tagged with "ledger" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    44 posts tagged with "ledger"

    View All Tags

    · 2 min read
    Alexey Kuleshevich

    High level summary

    The Ledger team's focus is still mainly on the Conway era implementation.

    We were able to add ability to specify initial Constitutional Comittee and the initial +version of Constitution. Priority in which Governance Action are now enacted matches the +specification. DRep's deposits are now properly accounted for. Governance actions that are +not allowed to be voted on by Stake Pool operators and Constitutional Committee members +are prevented by transaction submission failure, rather than simply being ignored. There +was a few important CDDL fixes as well as a lot of new round trip serialization +tests. Constraint based testing framework has also received a lot of improvements.

    Low level summary

    Conway era

    • pull-3681 - Conway Genesis additions
    • pull-3690 - Preserve the order of ProposalProcedures
    • pull-3705 - Removed ProtVer from EnactState
    • pull-3700 - Add conway-specific certs to deposit/refunds
    • pull-3704 - Add comments on deprecating certs to Conway CDDL
    • pull-3698 - Reordering of governance actions
    • pull-3712 - Disallow empty fields in ConwayTxBodyRaw
    • pull-3716 - Abstract threshold calculation
    • pull-3725 - Fix mistaken use of dollar sign in cddl files
    • pull-3718 - Predicate failure for mismatched Voter GovAction
    • pull-3721 - Committee expiration, validation and modification

    Improvements and releasing

    Testing

    • pull-3730 - Implement Show instance for Rep using IsTypeable
    • pull-3697 - Rewrite testEql using Typeable to make it impossible to forget cases
    • pull-3709 - Add many new features to the Constrained modues in cardano-ledger-test
    • pull-3726 - Conway and other eras serialization roundtrip tests
    • pull-3713 - Improve CI resiliency against GitHub issues

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Broadly speaking the Ledger team focused on a few main areas of Conway era:

    • Creation of voting state snapshots in order to correctly delay ratification for one epoch
    • Validation of the Governance Actions sequencing and ordering
    • Proper expiry of DReps and Proposal Procedures
    • Expanding Conway Genesis functionality
    • Utilization of some of the new Protocol Parameters in ledger validation rules

    Low level summary

    Conway era

    • pull-3659 - Validate Network for ProposalProcedure and TreasuryWithdrawal
    • pull-3637 - Avoid using sequence of tuples, by adding GovActionId to GovActionState
    • pull-3651 - Inactive DReps
    • pull-3664 - Track proposal expiry
    • pull-3668 - Add min committee size predicate to NewCommittee
    • pull-3669 - Add Proposal deposit check against PParam
    • pull-3676 - Fix inactive PoolStake not counting as Drep Stake
    • pull-3635 - Make snapshots of GovActionsState
    • pull-3670 - Validate previously enacted govAction
    • pull-3694 - Improve error reporting on the positive coin decoder
    • pull-3674 - Added RATIFY thresholds
    • pull-3684 - Add proposal delaying, remove predicate failure from ENACT
    • pull-3688 - DRep Refunds and update evalTransactionBalance

    Improvements and releasing

    • pull-3677 - Minor patch that fixes the DRep distribution computation
    • pull-3686 - Post patch release fixup
    • pull-3695 - Changelog for cardano-node-8.3 release
    • pull-3683 - Add two new bench mark programs

    Testing

    · 2 min read
    Alexey Kuleshevich

    High level summary

    The ledger team made great progress in advancing Conway era forward. In particular, voting +for DRep and Stake Pool Operators is now at the state that can be used by downstream +components. Addition of new ledger state queries makes it possible to verify changes to +the governance state, such as placement of votes, submission of governance proposals, +inspecting DRep stake distribution and more. Addition of treasury withdrawals concludes the +ability to enact all of the governance actions, except for the hard fork initiation.

    Low level summary

    Conway progress

    • pull-3577 - Move PParams to GovState
    • pull-3609 - Adjust thresholds for sanchonet
    • pull-3604 - README: update CIP-1694 link
    • pull-3616 - Switch TreasuryWithdrawals to use RewardAcnt
    • pull-3599 - Add governance action well-formedness check
    • pull-3607 - Rename governance to gov
    • pull-3601 - Added DRep anchors
    • pull-3615 - Add optional previous GovActionId in some ProposalProcedures
    • pull-3596 - Upgradeable families
    • pull-3625 - Change constitution to use Anchor
    • pull-3592 - Added pulsing incremental computation of the DRep distribution
    • pull-3523 - Treasury donations
    • pull-3633 - Prevent state changes on phase2 failure
    • pull-3634 - Disable serialization of protocolVersion param update
    • pull-3630 - Implemented DRep refreshing
    • pull-3640 - Remove crypto parameterization from AnchorData
    • pull-3636 - Implement DRep ratification with an "always passing"; threshold
    • pull-3648 - Governance queries
    • pull-3650 - Change environment for ShelleyPOOLREAP rule
    • pull-3658 - Set DRep ratify threshold to 51%
    • pull-3628 - DELEG, POOL, GOVCERT conformance with Spec v0.8

    Testing

    Improvements and releasing

    • pull-3660 - Fix bounds and versions
    • pull-3661 - Adjust versions, bounds and CHANGELOGs to account for the latest release

    · 2 min read
    Alexey Kuleshevich

    High level summary

    The ledger team was working almost exclusively on the Conway era implementation. In +particular, the main focus was directed towards solidifying transaction related types and +their binary representation. We also directed some effort into unblocking Plutus team with +respect to PlutusV3 integration.

    Low level summary

    Conway progress

    • pull-3552 - Allow Constitutional Committee Hot Key to be ScriptHash
    • pull-3581 - Make Constitutional Committee Cold Key to be ScriptHash
    • pull-3571 - Implement a portion of the TICKF rule.
    • pull-3556 - Add Script to Constitution
    • pull-3576 - Add optional Anchor to ConwayRegDRep certificate
    • pull-3495 - Implement refund logic for Proposal deposits
    • pull-3579 - Change voting procedure in the transaction to a nested Map
    • pull-3585 - Rename CommitteeCert into a GovCert
    • pull-3587 - Remove DelegStakeTxCert from the COMPLETE pragma for TxCert
    • pull-3586 - Add CurrentTreasuryValue to TxBody
    • pull-3588 - Rename key roles
    • pull-3557 - Update NewCommittee action to use RewardAcnt and add more info
    • pull-3595 - Add ConwayUpdateDRep constructor to ConwayTxCertGov type
    • pull-3600 - Filter out zero TxOuts on Byron/Shelley boundary instead of Babbage/Conway
    • pull-3597 - Update ProposalProcedure return address to be a RewardAcnt

    Testing

    • pull-3374 - New features for generation subject to constraints
    • pull-3519 - Basic Conway features test

    Bugfixes

    Plutus integration

    • issue-3538 - A fairly complete specification was created for the PlutusV3 context
    • pull-3593 - Conway TxInfo for PlutusV3 is now compatible with all pre-Conway functionality

    Improvements and releasing

    • pull-3574 - Improve clarity and performance of collateral Non-ADA validation:
    • pull-3573 - Update top-level CHANGELOG.md with cardano-node relevant changes
    • pull-3555 - Bump pygments from 2.12.0 to 2.15.0 in /doc
    • pull-3575 - Bump certifi from 2022.12.7 to 2023.7.22 in /doc
    • pull-3567 - Backport mint field translation bugfix
    • pull-3568 - Fixed typo in byron ledger spec
    • pull-3572 - Release/backport tickf bugfix

    · 2 min read
    Alexey Kuleshevich

    High level summary

    Our focus was on planning and implementing Conway features that we would like to see deployed and running on Sanchonet. +All members of the ledger team participated in the CIP-1694 workshop and had an in-person meeting, where we discussed plans forward for the Conway era. +We also investigated some transaction validation issues that occurred on preview with the latest node (for 8.2 release). +Additionally, we did some preparatory work that will help us define the types we need for Plutus V3 and integrate with the new version when it will become available. +We also made progress on the constraint-based generators, which can now generate valid transactions and ledger states.

    What we achieved

    • [pull-3521] [pull-3554] Improved Governance model (GovernanceProcedures, ProposalProcedure)
    • [pull-3520] Improved Governance-related naming (Renamed Tally to Gov and VDel to GovCert )
    • [pull-3531] Refactored and simplified code interacting with Plutus
    • [pull-3558] Fixed a bug that was breaking validation on preview, related to refernce inputs witnesses. We backported and released the fix.
    • [pull-3550] For Conway to run on Sanchonet, we updated the era Translation to remove zero-ADA outputs. This was necessary because such outputs exist on mainnet, but in Conway they are not allowed.
    • [pull-3551] [pull-3546] [pull-3472] Updated tools and added some small improvements
    • [issue-3146] [pull-3498] Introduced Conway protocol parameters
    • [issue-2948] [pull-3499] Implemented ConwayGenesis with the new protocol parameters

    What is currently in progress

    + + + + \ No newline at end of file diff --git a/tags/ledger/page/6/index.html b/tags/ledger/page/6/index.html new file mode 100644 index 0000000000..e7bbf4c80d --- /dev/null +++ b/tags/ledger/page/6/index.html @@ -0,0 +1,61 @@ + + + + + +44 posts tagged with "ledger" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    44 posts tagged with "ledger"

    View All Tags

    · 2 min read
    Jared Corduan

    High level summary

    The ledger team made progress on the conway ledger era. In particular, the design and implementation +of the new certificates is near complete, we refactored some of our data structures +to be able to support DReps, we cleaned up the serialization format, and renamed things to make +clearer the differences with Shelley.

    The team also completed integration work for the next node release, namely 8.1.0. +And, as always, we continue to address technical debt.

    Low level summary

    Conway progress

    • pull-3408 - Improve conway delegation certificates
    • pull-3428 - Get rid of Constitutional in favor of Genesis and Committee
    • pull-3426 - Add DRep to internal data struture (UMap)
    • pull-3425 - Improve witness logic needed for conway
    • pull-3423 - Rename ShelleyDelegCerts constructors to distinguish them from Conway
    • pull-3421 - Rename DCert -> TxCert
    • pull-3454 - conway CDDL minor fixes

    Improve testing

    • pull-3403 - Add Plutus script context golden tests

    Integration work

    • pull-3410 - Update chaps index
    • pull-3416 - Bump cardano-ledger-alonzo-test version
    • pull-3414 - Bump cardano-ledger-shelley-test minor version
    • pull-3420 - Bump cardano-ledger-shelley-ma-test version
    • pull-3441 - Release cardano-ledger-[alonzo|babbage]-1.2.1

    Technical debt

    • pull-3409 - Unit test - no such thing as a reference datum
    • pull-3407 - Fixup release process documentation
    • pull-3404 - Create TotalDeposits events during all eras
    • pull-3402 - Fix broken references in the Shelley spec
    • pull-3424 - Remove no longer used cardano-ledger-shelley-ma package
    • pull-3432 - Add an example on how to bump up versions in the changelog
    • pull-3440 - Revert back to the group serialization for ProtVer for PParams

    · 2 min read
    Jared Corduan

    High level summary

    The ledger team focused mainly on the conway ledger era and node integration. +For conway, we completed a large structural change that now allows +for delegation certificates to be parameterized by era, and introducing +new certificates for the first time since Shelley. +We also continue to build out our contraint based generators that we will +use to property test the conway era. +In particular, we can now generate an entire ledger state and a +transaction which is balanced with respect to the ledger state.

    Low level summary

    Conway certificates

    Certificiates are now abstracted as a type family in the ledger codebase. +Moreover, there are new certificates in the Conway era to support CIP-1694, +and MIR certificates have been removed.

    Constraint based testing

    Our plan for property testing in the conway era is to no longer use the trace generators, +but instead generate ledger states and transactions based on constraints. +We hit a milestone this week, namely the ability to generate a balanced transaction in the context +of a ledger state, all based on our ever growing constaint language.

    Integration work

    Technical debt

    · One min read
    Jared Corduan

    High level summary

    We continued to make progress on CIP-1694 and the conway ledger era. +In particular, the conway era now supports Plutus V3. +Finally, we made small improvements to the ledger API and now host +our Haskell code documentation (haddocks) on github pages.

    Low level summary

    Conway ledger era

    Haddocks hosted on github pages

    Small improvements to the API

    Technical Debt

    • [pull-3367] Fix cost model json instances.
    • [pull-3371] UMap cleanup.
    • [pull-3373] Upgrade to ghc 9.2.7 and cabal 3.10.1.
    • [pull-3375] Sadly, we had to revert the TICKF optimizations. There was a regression we do not yet understand.
    • [pull-3377] Fix cabal warnings.
    • [pull-3383] Fix multi-asset test.

    · 2 min read
    Kevin Hammond

    Cardano block production temporary outage

    On Sunday, January 22, 2023, an incident occurred resulting in block production pausing for a brief period of time (approximately two minutes, similar to the usual pause at an epoch boundary). Around 50% of block-producing nodes and relays restarted during this period. Having restarted, nodes continued to produce blocks without failure. While the network continued to operate, the issue did have the potential to affect network integrity, so was flagged as a ‘critical’ incident, thus warranting immediate response and investigation by IOG engineers. +The investigation (with SPO & Cardano Foundation collaboration) quickly revealed the cause of the issue – a complex bug in data structure handling code related to the precise order of insertion/deletion of multi-asset tokens into the internal ledger record. Input Output Global (IOG) engineers, along with SPOs and DApp developers, collectively identified how to reproduce the issue as a unit test that could be included in the standard Cardano node test suite. +Following successful testing, this led to a bug fix being implemented, tested, benchmarked, and deployed as a hotfix in the node v.1.35.5 release on Friday, January 27, 2023. Care was taken not to highlight the exact cause of the bug during this process so that it could not be exploited prior to SPOs deploying this new node version. +With the fix deployed, the Cardano SPO and developer community have not seen any further instances of this issue.

    Further Details

    You can read more details on the incident and how it was managed from SundaeSwap’s Pi Lanningham here. Thanks again to all the community for its support in identifying and fixing this bug.

    · 2 min read
    Jared Corduan

    High level summary

    We are still heavily involved in work related to preparing the next release. +The other main thing we have worked on is experimentation about how we will +handle the DRep stake distribution for CIP-1694 in the conway ledger era. +Lastly, we merged a fix for +node-4826 +into our main branch (there will be a post-mortem shortly).

    Low level summary

    Support for the next release

    • pull-3363 - Fix problems relating to Arbitrary instances used by consensus.
    • pull-3361 - Remove the alonze genesis from the conway genesis.
    • pull-3360 - Translate bad pointer addresses to valid ones in conway.
    • pull-3357 - Fix a bug relating to zero valued ADA in the script context.
    • pull-3356 - Added needed instances (Arbitrary and Serialization) for conway integration.
    • pull-3345 - Added helper functions for the CLI.
    • pull-3342 - Fix a bug with a CLI helper function (having to do with deposit tracking).

    Experiments for DRep stake distribution

    Adding another stake distribution to the ledger state presents some new challenges. +We would like to be able to use the current stake distribution at the epoch boundary +for DRep voting so that people can always vote themselves in time for any proposal. +To this end, we have a prototype of an incremental computation based on the incremental +lambda calculus, together with tests and benchmarks (which are very promising). +See pull-3344.

    Additionally, more of the ledger state is going to need to be rearranged to accomodate +the new incremental computations. +We have two draft PRs up for possibles solution. +See pull-3353 and pull-3364.

    Technical debt and bug fixes

    Documentation changes

    • pull-3354 - Rename "optional datums" with "supplemental datums" in the alonzo spec.
    • pull-3352 - Add a section to the Shelly errata about the individual deposit tracking.
    • pull-3351 - Further clarify the details regarding the script integrity hash.
    • pull-3350 - Some cleanup of the Babbage spec.
    + + + + \ No newline at end of file diff --git a/tags/ledger/page/7/index.html b/tags/ledger/page/7/index.html new file mode 100644 index 0000000000..ef478a463f --- /dev/null +++ b/tags/ledger/page/7/index.html @@ -0,0 +1,104 @@ + + + + + +44 posts tagged with "ledger" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    44 posts tagged with "ledger"

    View All Tags

    · 2 min read
    Jared Corduan

    High level summary

    We made further progress on the conway ledger era. +In particular, we expanded the ledger API significantly, including lots of governance features. +We also made progress on the specification and corresponding work in the Haskell implementation.

    We also continued to integrate the latest ledger packages into cardano node and addressed +technical debt.

    Low level summary

    Expanded ledger API

    The ledger API was significantly expanded to include:

    • a lot of protocol parameter support
    • versioning support (type level ledger eras and protocol versions)
    • auxiliary data support
    • many new lenses
    • support for witnesses
    • support for conway governance

    See pull-3328.

    Conway ledger rules

    We have made progress on the formal ledger specification for the Conway era. +Moreover, the corresponding Haskell updates were also completed:

    Incremental SPO/DRep stake distribution computation

    We have a working (and correct) proof of concept for how to use the incremental lambda calculus +to maintain several of the stake distributions incrementally. +For the per-SPO distribution, this is a performance improvement. +For the (conway) per-DRep distribution, this is will allow those who have delegated their votes +to a DRep to have time to react to any votes that they disapprove of. +(Sorry, no code to share just yet, more to come.)

    Technical debt

    · 2 min read
    Jared Corduan

    High level summary

    We have focused the last two weeks on CIP-1694, integration of the last several months of ledger +work into consensus and node, and testing infrastrutcture that we will use in the conway ledger era.

    Low level summary

    Conway rules

    We made a major update to the conway era so that the implementation is now in sync with the spec +with respect to the ratification and enactment logic.

    See the notes in pull-3291 for more details.

    Constraint based generators

    This week we hit a major milestone in our efforts to build out better property based testing +support for the main ledger properties. +The new constraint based generators can now generate full ledger states with what is probably +very close to the real constraints (if anything, it is under constrained). +Next we will work on generating a transaction in the context of a ledger state, which would allow +us to actually start using these generators for real tests.

    See pull-3219.

    Preparing a release, now with proper versioning

    After quite some time, we are ready to release a version of ledger that will work with a new +version of consensus, using CHaPs.

    See pull-3308.

    Technical debt

    • We cleaned up the redeemer serialization code (to prevent future mistakes). See pull-3269.
    • We added a note to the Alonzo spec, specifying that the transaction inputs are +lexicographically ordered in the Plutus script context. See pull-3306.
    • We fixed a problem with the address deserialiazation +(we mistakenly fixed a bug in the Babbage era which cannot be fixed until Conway). +See pull-3307.
    • We fixed a problem with our nix build. See pull-3311.
    • We fixed a problem with our NoThunks tests. See pull-3310.
    • We improved our nightly tests. See pull-3316.

    · 3 min read
    Jared Corduan

    High level summary

    This past two weeks saw many months worth of ledger changes integrated with the cardano-base +and ouroboros-network repositories. +The vast majority of the effort involved all the changes to the ledger serialization libraries +(and the interplay with cardano-base) which now support proper versioning. +Supporting the conway ledger era, and in particular allowing the ledger state to transition +to a whole new system of governance, also played a noticeable part in the integration.

    Besides the integration work, the team continues to address technical debt, improve the +documentation, make our testing infrastructure better (such as experimenting with better +nightly tests), and formally specifying more parts of CIP-1694.

    Lower level summary

    Integration work

    Below is all the integration work completed, which will enable a release to node from +the current ledger master. Many thanks to +Alexey for this colossal undertaking!

    Technical debt

    Starting in major protocol version 9, zero-valued multi-assets will no longer be permitted +in the CBOR specification. See pull-3241.

    We now have our .cabal files being checked for a consistent formatting given by +cabal format in our CI. See pull-3286.

    We are still experimenting with better nightly tests for our long running +property based tests. See pull-3276 and pull-3296.

    Small documentation improvements

    The hand proofs of the preservation ADA property have been added back to the +Shelley ledger specification. See pull-3295.

    We have clarified how the script integrity hash is computed in the CDDL description. +See pull-3290.

    Specifying CIP-1694

    Our new formal specifications backed by Agda have seen a lot of progress! +Upgrading to Agda 2.6.3 fixed our main build infrastructure problems, +and we no longer have to rely on our custom fork. See pull-50.

    Our progress on formally specifying CIP-1694 can be followed here:

    Constraint based testing

    We are still actively working on our new constraint based property testing framework. +We have nearly all of the constraints for an entire ledger state +hooked into generators, and tests that the generators do indeed obey the constraints. +The variable count in the constraints is over 100! +There is still much work to do on shrinking, making the generators faster, +and writing actual property tests for the ledger, but the approach still seems viable and +we are hopeful that it could replace our trace generators. +The WIP can be followed here: pull-3219.

    · 2 min read
    Jared Corduan

    High level summary

    Much of the work the past two weeks involved integration efforts, +cleaning up and debugging some serialization issues, +adding tests, and work on large projects that are still ongoing. +We also released a CIP this week that aims to make the ledger +a registered CIP category.

    Lower level summary

    Ledger evolution CIP

    We published a +CIP +that will make the Cardano ledger a registered category of the CIP process.

    Serialization issues

    We had previously thought that we had found a serialization problem with the redeemers, +but it turned out to just be particularly confusing code. +We have now clarified the issue for the future.

    See pull-3263, pull-3269, and pull-3268.

    Starting in protocol version 9, we will no longer accept duplicate keys in CBOR maps.

    See pull-3277.

    New tests

    We added a new property test suite for some of our custom containers.

    See pull-3270.

    Progress on a better cost model serialization situation.

    We are still working our way through issue-2902. +Towards this end, we are now properly gating the new flexible encoders +until version 9.

    See pull-3274.

    Nightly tests

    We are still experimenting with moving more CI actions to GitHub actions.

    See pull-3276.

    Constraint based generators

    We continue to add to our proof of concept for constraint based generators. +See the previous ledger update for more information about this project.

    · 3 min read
    Jared Corduan

    High level summary

    The ledger team completed some preliminary ground work in preparation for CIP-1694 +(restructuring the ledger state), +fixed the PDF hosting problem (mostly the formal specs), +built out more of the new user-friendly ledger API, +finished a proof of concept for constraint-based generators for property tests +(with the hopes of being able to replace our trace generators one day), +and addressed technical debt.

    Lower level summary

    Restructuring the ledger state

    The existing governance structures will be replace in the conway ledger era, +as described in CIP-1694. +In particular, the ledger rules will be restructured as follows:

       BBODY
    |
    |-------------------------------|
    v v
    TICK LEDGERS
    | |
    |---------| |
    v v v
    RUPD ~NEWEPOCH~ ~LEDGER~
    | |
    |----------| |--------|-------------------|-----------|
    v v v v v
    ~EPOCH~ +ENACTMENT+ DELEGS UTXOW +TALLY+
    | | |
    |---------|------------| v |
    v v v DELPL v
    SNAP POOLREAP -UPEC- | UTXO
    |--------| |
    v v v
    POOL DELEG ~UTXOS~

    -..- Removed
    +..+ Added
    ~..~ Modified

    Moreover, the ledger state will also be restructured in accordance with the new rules. +In the conway code, we have now removed UPEC, added TALLY, and stubbed ENACTMENT. +We have also adapted all the data structures in the ledger state.

    See:

    PDF hosting

    We now build all of our PDFs using a GitHub action which is triggered by pushing a tag +with a specific form, cardano-ledger-spec-YYYY-MM-DD. +The action creates a GitHub release containing the PDFs. +The links in the main ledger README now point to the PDFs in the latest release.

    See:

    Powering the new ledger API

    We have now removed all the HasField instances from the protocol parameter data types, +and replaced them with lenses. +This is probably the last major restructuring that the ledger team will do on the code base +for the API for a while +(the Plutus tools team will be working on it next, see here). +We also added a new helpful function ensureMinCoinTxOut.

    See:

    Constraint-based generators

    Our largest scale property tests generate an initial ledger state and a long sequence of valid blocks +which span several epochs, mimicking a real network. +These tests are, in theory, excellent for checking properties. +They are, however, very difficult to maintain and are not as random as we would like +(a lot of bias has to be introduced to keep the ledger state in enough order to keep generating blocks).

    We would like to switch to tests which instead generate a random ledger state representative +of not just an initial state, generate a single random valid block, and then test our properties. +The hope is that these will be much more random and easier to maintain.

    We have finished a proof of concept are encouraged that this approach could work!

    See:

    Technical debt

    • pull-3244 massive CI speedup
    • pull-3249 better types for fees in the protocol parameters
    • pull-3264 move our annotator code to the cardano-ledger-binary package where it belongs
    • pull-3239 move the Wdrls type to the Core module.
    + + + + \ No newline at end of file diff --git a/tags/ledger/page/8/index.html b/tags/ledger/page/8/index.html new file mode 100644 index 0000000000..3505d0cfb5 --- /dev/null +++ b/tags/ledger/page/8/index.html @@ -0,0 +1,194 @@ + + + + + +44 posts tagged with "ledger" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    44 posts tagged with "ledger"

    View All Tags

    · 5 min read
    Jared Corduan

    High level summary

    The ledger team finished up the remaining work for tracking individual depots, +built out the new Conway era transaction body (in line with CIP-1694), +greatly reduce some problematically large calculations on the epoch boundary, +and addressed technical debt.

    Lower level summary

    Finishing the deposit tracking

    The initial work on the individual deposit tracking project focused only on correctness. +As this is a large data structure +(since its size is linear with respect to the number of registered stake credentials), +it is very important that we also reduce the memory overhead as much as possible. +Fortunately, we were able to add very little overhead for the deposits by using existing +efficient data structures. The extra tracking now only incurs one word (8 bytes) +per registered stake credential.

    See:

    New Conway era transaction

    We implemented the Conway era transaction body, which is in line with CIP-1694. +Note that the Conway era implements, losing speaking, the parts of CIP-1694 that are not +related to the liquid democracy (the "DReps"). +The new transaction body adds the new governance actions and votes, +while also deprecating the old governance structures +(i.e. the old protocol parameter updates and MIR certificates).

    We also now have the wire specification (CDDL file) and serialization code in place. +The wire specification is still subject to change while we work on the Conway era, +but it is now usable and has proper testing support +(so that, for example, the serialization round-trips, etc).

    See:

    Optimizing the TICKF transition

    Every since the release of the Shelley era, we have been working to reduce the computational load +placed on the node by the ledger at the epoch boundary. +While still not perfect, we believe that we have removed one of the final problematically long +epoch boundary computations that exacerbate situations like +this. +In particular, the problem involved the way in which the consensus layer obtains a view of the +ledger for the purposes of checking the leadership schedule in a new epoch. +We implemented a stopgap measure which now only incurs a single multi-second cost once per epoch +instead of potentially several multi-second costs while the networks waits for the first block +of a new epoch to be minted.

    See:

    Technical debt

    We closed the year out with a lot of reduction to the technical debt!

    Improved ledger event

    • pull-3212 - The ledger events are not guaranteed to appear in any given order within a block. +For this reason, motivated by the use case in db-sync, the TotalDeposits event now +includes a transaction ID and emits the change in deposits instead of the value.

    Improved type saftey

    • pull-3208 - We replaced NominalDiffTime with a newtype wrapper. The problem was that our CBOR +encoders and decoders were using the wrong level of precision, having to due with with +the Shelley genesis file. We removed the potential problem with a newtype wrapper.
    • pull-3167 - We now use a GADT to ensure consistency of the Plutus language in the types +for TransactionScriptFailure and PlutusDebug.

    Code/Module organization

    • pull-3175 - The Allegra and Mary eras had an unusual relationship in our codebase, +due to the uncertainly of release dates while we were implementing them. +In particular, they were coupled in way that is different from the rest of the code base. +With hindsight on our side, we split the combined shelley-ma Haskell package into two +separate ledger era packages, which is now consistent with the rest of the repository +and module structure.
    • pull-3184 - We created a core test sub-library, cleaning up a lot of our property test +generator code.
    • pull-3210 - We moved the KeyPair type to the test library. Outside of testing, +the ledger does not need to deal with signing keys, and since this is a topic that +deserves the utmost care, it is best to make it clear that our use of signing keys +is only for testing.
    • pull-3229 - We split the Cardano.Ledger.Alonzo.Data module, which is more consistent with the rest +of the codebase.

    Revert pointer address deprecation

    Thanks to one of our excellent internal auditors, +@jmhrpr, +we now have a better plan for deprecating pointer addresses. +This meant that we had to revert the previous work to deprecate them.

    See:

    Miscellaneous

    • pull-3205 - We removed deprecated type synonyms.
    • pull-3218 - We cleaned up the address deserialization.
    • pull-3223 - We fixed faulty address deserialization tests.
    • pull-3222 - We switched to a general type family TxOut from concrete ones, +reducing many constraints.
    • pull-3224 - ShelleyGenesis is now parameterized by crypto instead of by era.
    • pull-3170 - We set the cabal-version to 3.0 in our projects.
    • pull-3172 - We removed the now useless EncodeMint/DecodeMint classes.
    • pull-3225 - We switch from ormolu to +fourmolu. +The reason was to be able to finally have more diff friendly code!

    · 3 min read
    Jared Corduan

    High level summary

    The Plutus tools team at IOG has started helping the ledger team to build out a user friendly +cardano-ledger-api package! +A GitHub project +will be filled out in the days ahead, +people interested in the API can use it to follow along and join in on the conversations.

    The ledger team has started using +architectural decision records +to leave a record of important decisions that the team makes. +We will retroactively go back through past decisions and make ADRs for them.

    The logic to track individual deposits is now nearly in place. +We are prioritizing correctness with our first pull request, and will follow up with +performance optimizations and general cleanup next.

    Pointer addresses are being deprecated with the Cardano major protocol version 8. +See CPS-0002 +for more context.

    Lower level summary

    Cardano ledger API

    The Plutus tools team has taken our minimal cardano-ledger-api package and started filling it +out and adding much needed documentation. +They have also added doctests! +In the days to come, the Plutus tools team will map out a lot more work for the API and record +it in this +GitHub project.

    See

    Architectural Decision Records (ADRs)

    We are now providing more context and leaving a record of important decisions that are made +in the ledger. The first ADR explains the very lightweight process.

    See

    Tracking individual deposits

    See ADR-3 +for background. +We now have the logic in place to track individual deposits, and a host of property tests +to make sure that the logic is correct. +The current implementation uses more memory than it needs to, and we will address that next, +with our hope being to only use one word (8 bytes) per registered stake credential. +There is a fair amount of other cleanup needed for general maintainability.

    See

    Removing pointer addresses

    Pointer addresses, which have never seen any real use +(there are something like eleven on mainnet), are being deprecated starting at Cardano major +version 9. +CPS-0002 gives the context. +We are disabling them by first preventing transaction outputs containing them +from being serialized by the node at the moment we switch to version 9. +At the hard fork after that, we will translate the existing few pointer addresses +to enterprise addresses.

    See

    Technical debt

    • pull-3162 - Sometimes we have to put safeguards in place for hard forks which may never +be exercised. After we have passed the given hardfork, we are able to clean up the code +and simplify our logic. We removed all of the ones that we are currently easily able to.
    • pull-3165 - We improved the type safety of our code while also discovering and fixing +a serialization bug.
    • pull-3172 - We removed dead code.
    • pull-3175 - The Allegra and the Mary code used to be coupled in a particular way the we grew to +dislike. We made these two ledger eras now uniform with the rest of our code base.
    • pull-3184 - We organized our property testing code.
    • pull-3200 - The Plutus tools teams fixed an outstanding bug in the translation from the +ledger state to the Plutus script context.

    · 3 min read
    Jared Corduan

    High level summary

    We released CIP-1694, +our proposal for entering the Voltaire phase. +Please come join the discussion, this will be an incredibly exciting transition for +Cardano and we want everyone to participate!

    We now have a sensible way to version all of the serialization schemes used in the ledger. +The draft pull request was polished, reviewed, and merged this week. +This solves many problems that have vexed us since the beginning of the Shelley ledger era.

    Everyone working on the Cardano node is working together to improve our release process, +and the ledger team in particular dedicated one engineer to help with these efforts +for the next release.

    Lower level summary

    The Conway ledger era

    The current proposal in CIP-1694 encompasses two new ledger eras. +The first era will be called Conway, after the English mathematician John Horton Conway. +The community facing aspects of the Conway ledger era will be very minimal, +but it will pave the way for introducing liquid democracy. +The details can be viewed here. +We do not yet have a formal specification for the Conway era. +Our plan is to debut the +formal ledger model. +Briefly, the Conway ledger era will:

    • introduce SPO voting for hard forks (in the spirit of the now abandoned CIP-47)
    • provide an on-chain mechanism for rotating the governance keys
    • re-plumb the ledger rules involving governance to be in line with CIP-1694

    Versioned CBOR

    We now have the ability to easily tie our serialization schemes to the Cardano +major protocol version. +We still aim to preserve backwards compatibility as much as possible, but we now have a principled +plan for resolving problems (see CIP-ledger-cbor). +In particular, we can now address several long standing issues, such as +issue-2444, issue-2965, and issue-3003.

    The final (and massive!) pull request which brought us the versioning is pull-3138.

    Deposit tracking

    The draft pull request which was exploring how best to track individual deposits +is much closer now to being ready to take out of draft (pull-3127). +For background on the issue, see issue-3113. +This is quite an invasive change which effects many of our tests, which we are now addressing.

    Technical debt

    As always, we keep working on technical debt. +We have deduplicated a some things: pull-3129, pull-3162. +We have memoized a problematic computation (though more due diligence is needed before we can +merge): pull-3141.

    Node release

    We have been helping with the node release efforts. See pull-4608.

    · 3 min read
    Jared Corduan

    High level summary

    I am extremely excited to say that we now have a pull request up which introduces our new versioned +CBOR serialization. This was an enormous effort, but it will solve a host of problems that we have +had since the Shelley phase. It will take time to properly review it, and we will +need to put in a lot of effort to integrate it with the downstream components, but this is a huge +milestone. Additionally, we have a new CIP proposing a deprecation cycle for the transaction +serialization schemes.

    We also have a draft pull request that reworks how deposits are tracked. Users of the system will +not notice any difference, but it is a necessary change needed to prepare the way for +decentralizing the governance of Cardano.

    Finally, we continued to address technical debt. In particular, we continued to make progress on +bringing coherency and consistency to the code base with a common naming convention, and +improving some error messages.

    Lower level summary

    • We have a pull request up for our new versioned CBOR serialization. +When we encounter a problem with our deserializers, it can be very difficult to implement a fix. +It is difficult because we can only fix such issues during a hard fork, and leading up to the +hard fork we must maintain two serializations for the same type in order to not cause unintended +network splitting (the problematic version must be used before the hard fork, +and the fixed version is used afterwards). +This can be especially tricky with the FromCBOR typeclass, since it is not always easy to +search for where all the problematic uses are located. +The new versioned CBOR serialization allows us to gracefully handle this transition. +See [pull-3138].
    • We proposed a CIP for backwards compatibility of the transaction serialization schemes. +See [pull-372].
    • We have draft for the new deposit tracking. +This draft is not as memory efficient as the final version will be, +but it is a sufficient proof of concept that we can write property tests against, ensuring +that we have not changed the semantics. +We will optimize after we are sure of the correctness. +See [pull-3127].
    • We now provide better support for debugging failed Plutus scripts in an important helper +function, named evaluateTransactionExecutionUnits. +In particular, it now returns all the information needed to rerun the script with exactly the +same arguments. This feature will end up appearing in the CLI and other tools from the Plutus +tools team. +See [pull-3135].
    • We did a lot more renaming to bring coherency and consistency to the code base. +See [pull-3126], [pull-3120], [pull-3118], and [pull-3116].
    • We have added a few things to the ledger repository to make it conform to the +Cardano Engineering Handbook +See [pull-3139].

    · 3 min read
    Jared Corduan

    High level summary

    We have made the decision to use the +formal ledger repository +in place of a LaTeX spec for the next ledger era, and have added a lot of basic infrastructure +to the model. In particular, we now have a lot of support for axiomatic set theory. +While the next ledger era is still in the design phase, most of the team remains working +on technical debt. +In particular, we have moved a lot more code out of the Shelley specific modules and into +a ledger core module, we have finished up our benchmarking around the problematic TICKF +ledger transition (while improving the performance), made conveniences to the development +environment, cleaned up all the recent changes to the cost model, added a lot of documentation, +fixed some flaky tests, and deleted some dead code.

    Lower level summary

    Axiomatic Set Theory

    The formal ledger model now has support for much of the set theory that we make use of in +the formal ledger specifications. See [pull-20].

    Completed Technical Debt

    • We have addressed issues with two of our most problematic and flaky tests. +See [pull-3039] and [pull-3093].
    • We have added more documentation and tests to the Twiddler module. This is a module which +makes our CBOR serialization round-trip tests much more robust, and will also hopefully +help enforce the mandate for downstream libraries to never re-serialize data that needs +to be hashed. See [pull-3073] and [pull-3095] +(we cannot merge 3095 just yet, due to a preference for merging other features).
    • We have finished our long analysis of the problematic TICKF transition. +We now have a lot of benchmarks surrounding this code, and have added performance improvements. +See [pull-3068] and [issue-3035].
    • We have restored support for +ghcid +in our repository. This is a tool for developing with Haskell that many of us find greatly +improves our productivity by providing us with constant feedback from the type checker. +See [pull-3112].
    • After much activity on the cost model, we have done some final clean up of the code. +See [pull-3075] and [pull-3101].
    • We moved a lot of the existing user facing documentation regarding native tokens into the +ledger repository, and cleaned it up +(most of the heavy lifting was done by our amazing technical writers). +See [pull-3091].
    • We removed dead code. See [pull-3089].
    • We moved a lot of code from the Shelley specific libraries to the ledger core library. +See [pull-3109] and [pull-3110].
    • We've removed more of the awkward legacy template Haskell names. +See [pull-3108].
    + + + + \ No newline at end of file diff --git a/tags/ledger/page/9/index.html b/tags/ledger/page/9/index.html new file mode 100644 index 0000000000..05311eaa64 --- /dev/null +++ b/tags/ledger/page/9/index.html @@ -0,0 +1,128 @@ + + + + + +44 posts tagged with "ledger" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    44 posts tagged with "ledger"

    View All Tags

    · 3 min read
    Jared Corduan

    High level summary

    The ledger team is still primarily focused on addressing +technical +debt. +We now have the infrastructure for versioning our serialization schemes, +which we continue to put into action. +We have made first steps towards getting proper support for the +formal ledger repository +(in particular, we've added nix builds and +continuous integration support). +We are wrapping up an investigation of the performance of a critical +function used by the consensus layer for leader checks. +Finally, we are improving the packaging and versioning of our code.

    Lower level summary

    Completed Technical Debt

    • Because the Shelley ledger era was a complete re-write of the Byron ledger era, a lot of +our code lives in the cardano-ledger-shelley package, though with hindsight we can say that +much of it should live in cardano-ledger-core. +We continue to move things to cardano-ledger-core, and have much more to come. [pull-3059]
    • We now have the infrastructure to support versioned serialization schemes. +The inability to do this has caused us a lot difficulties, +such as [issue-3003], [issue-2965] and [issue-2444]. +We are still in the process of switching to the versioned serialization scheme +(such as [pull-3078]), +but the infrastructure was completed in [pull-3063].
    • We now have proper nix and CI support for the formal ledger project. [pull-19]
    • A separate team is helping bring support for +CHaP +to all the cardano-node repositories. +We have been helping out with this effort.
    • A separate team continues working on upgrading all the +cardano-node repositories to work with ghc 9.2.4. +We have been helping out with this effort.

    In-progress Technical Debt

    We also have several fairly large pull-requests in review +that we are working on.

    • In an on-going attempt to build out a more user-friendly API, +we continue to remove HasField instances in place of using micro-lenses. +The protocol parameters, in particular, are being worked on. [pull-3045]
    • We are also renaming record fields to be consistent across the repository. [pull-3062]
    • We are now cleaning up all the work we did to understand the performance +of the TICKF transition. We have some improvements to the computatation +as well. [pull-3068]
    • We are adding more documentation, in particular to our Twiddler functionality. [pull-3073]
    • The formal ledger is adding support for finite set theory. [pull-20]

    · 3 min read
    Jared Corduan

    Ledger Update

    We have continued focusing nearly entirely on addressing technical debt. +A lot of design work has begun for the next ledger era, +but we do not yet have anything concrete to share.

    Technical debt issues completed

    • [issue-1676][pull-2992] We have finally removed the ledger dependency on the +cardano-prelude package. It was barely used in the ledger repository, and it added a dependency +that we did not want to maintain. It was a bit difficult to remove, and we had +to coordinate removing it from cardano-base. +A lot ended up going into pull-2992, due to the coordination effort, and we ended +up updating Plutus as well. +This means that we've now also made a lot of progress on the problematic cost model serialization +issues described in issue-2902. +In particular, after we resolve issue-3014, we will not have to wait an epoch before +releasing a cost model for a new version of Plutus, as we had to do for the Vasil HF.
    • [issue-3046][pull-3055] We moved a module that is now only used in Byron to a Byron package.
    • [issue-3047][pull-3054] We improved the interface to the Value (multi-asset) type.
    • [pull-3044] We debugged and fixed a tricky compilation issue. Certain kinds of field updates +were adding approximately 20 minutes to our compile time!
    • [issue-2932][pull-3036] As a part of our ongoing re-organization of the codebase, we +have added a Cardano.Ledger.[Era].Core module to each ledger era that has a TxBody class. +Most classes defined in the era should go in this new module. +We also re-export the Cardno.Ledger.Core module and the previous Cardano.Ledger.[Era].Core +modules from each era.

    Technical debt in progress

    • [issue-3034][issue-3035][node-issue-4421] We are continuing to write benchmarks to understand exactly where +all the time is being spent on executing the TICKF transition. +The consolidation of the per-stake-credential stake distribution to the per-stake-pool +distribution does seem to account for a large amount of time (near a second as written, which we +have down to about half a second with some optimizations), +but this does not account for everything. +Applying the reward update may also be a big contributing factor.
    • [pull-3033][pull-3038][pull-3041] A separate team is working on upgrading all the +cardano-node repositories to work with ghc 9.2.4. We have been helping out with this effort.
    • The nix scripts used to build our new +formal ledger model +do not work consistently for everyone, and we have been working on fixing these issues.
    • [issue-3014] We are still working on adding a versioning scheme to all of the ledger +serializers.

    · 2 min read
    Jared Corduan

    Ledger Update

    We have been focused nearly entirely on addressing technical debt.

    • We introduced more consistent naming across eras, this time for the auxiliary data. +See 3032.
    • We made clear how the consumed functions differs between eras (which was a previous source of +confusion), and added some related support to the fledgling ledger API. +See 3016.
    • We added clarity and organizational consistency to the main ledger era type synonyms. +See 3017.
    • We removed code duplication related to the input data hashes. +See 3018.
    • We split up a large module into smaller components. The large module was actually causing our +CI to time out. +See 3020.
    • We cleaned up stale information in our cabal files, and upgraded cabal 3.8. +See 3023, +3031, +and 3028.
    • We made consistent, standalone TxOut (transaction output) modules for every era. +See 3024.
    • We brought consistency to a maddening inconsistent use of type variables indicating the specific +choice of cryptographic primitives. In particular, all uses of crypto have been renamed to c. +See 3027.
    • We did a clean up of the types in the Alonzo era. In particular, we switched to more parametric +types that will compose better in the future and which simplifies the constraints. +See 3029.
    • We consolidated some existing fragmented logic regarding how we gather the scripts needed for a +given transaction. This is a much needed cleanup to prevent future mistakes. +See 3019.
    • We fixed a problem with our generators that was causing a fair number of our property tests to +fail in CI. +See 3039.
    • We have started the work to update Plutus. This will bring support for SECP in the next major +protocol version, and also address a +problem +that we current have evolving the cost models. +See 3030.
    • We addressed a small issue that came up when integrating the conway era downstream, namely +the lack of some serialization instances. +See 3022.

    · 2 min read
    Jared Corduan

    Ledger Update

    Since finishing up support for the Vasil Hardfork, the ledger team has been +focused on two main things: a new ledger era and technical debt.

    New minimal ledger era

    We have implemented a new ledger era named conway which is nearly identical +to the babbage era. This has been the first time that we have been able to see +what a minimal ledger era looks like. We have finished this task, modulo any +integration issues that might come up. The only thing that the conway era +does differently from the babbage era is provide support for rotating +the master keys using the hardfork combinator's state translation. +We may end up adding features to the conway era, but it is a nice exercise +seeing what it looks like to get a minimal ledger era supported in all the +downstream components.

    Addressing technical debt

    We have been addressing technical debt, mostly in an effort to make the +repository a more friendly code base to work in.

    • We have begun work on a ledger API, called cardano-ledger-api.
    • We have done a big re-design of the major type classes used in the ledger. +With hindsight on our side, we now have something much more organized and +easier to use.
    • We have done a lot of re-naming. The names across eras are now much more +uniform, avoid certain confusions that plagued us, and are clearer in where +they are from.
    • We have reduced a lot of code duplication that could lead to bugs if you +do not have the whole code base in your head.
    • We have added a handful of performance improvements.
    • We added type safety in a number of locations. In particular, the type of +values that can be minted in a transaction no longer allow for Lovelace +in the type, and some functions which used to handle both timelock scripts +and plutus script now correctly enoforce at the type level that only one of +them can be used.
    • We made our generators so that they now produce a much richer set of +valid serializations. There is room within CBOR to serialize the same +data structure in multiple ways, and it is helpful to have the generators +use a wide variety.
    • We have begun re-organizing our test suites.
    + + + + \ No newline at end of file diff --git a/tags/mithril/index.html b/tags/mithril/index.html new file mode 100644 index 0000000000..5b6df22a74 --- /dev/null +++ b/tags/mithril/index.html @@ -0,0 +1,26 @@ + + + + + +63 posts tagged with "mithril" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    63 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released the new distribution 2428.0, which includes support for Cardano node version 9.0.0, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks by calibrating the signature parameters for mainnet, fixing a bug preventing the signature of the last block advertised as certified, optimizing a part of the artifact production that was blocking the certification, and starting removing the code reading transactions from the immutable files.

    Finally, the team started working on the certification of the Cardano stake distribution and continued redacting a CIP for the diffusion of Mithril signatures through the Cardano network.

    Low level overview

    • Released the new distribution 2428.0
    • Completed the issue Release 2428 distribution #1810
    • Completed the issue Calibrate Cardano transaction signature parameters #1814
    • Completed the issue Non blocking artifact production in aggregator #1792
    • Completed the issue Cardano transaction importer does not import the last block advertised as certified #1785
    • Completed the issue A recorded but non certified Cardano transaction creates an error in prover #1819
    • Completed the issue Signer make test command fails #1816
    • Completed the issue Document Prometheus metrics and Grafana Dahsboard for signer #1834
    • Completed the issue Explorer keeps previous Cardano transaction error #1818
    • Worked on the issue Implement signable and artifacts builders for Cardano Stake Distribution #1832
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Cleanup Immutable File in Cardano transaction #1825
    • Worked on the issue Upgrade testing-sanchonet for respin with Cardano 9.0.0 #1822

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team worked on supporting Cardano node version 9.0.0 and started working on a new Mithril distribution. They also continued implementing the certification of Cardano transactions in Mithril networks. They fixed some bugs blocking the REST API during transactions import, causing resource exhaustion on the aggregator Cardano node, and creating some exceptions in the explorer. They also kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

    Finally, the team worked on enhancing the artifact production in the aggregator to avoid blocking the certification and finalized enforcing the linting of all the files in the repository with the CI.

    Low level overview

    • Completed the issue Upgrade Cardano node 9.0.0 #1787
    • Completed the issue Aggregator/Signer preload transactions when Cardano transactions certification is not activated #1782
    • Completed the issue Explorer does not handle invalid transaction hashes #1784
    • Completed the issue Cardano transactions import blocks aggregator and signer #1797
    • Completed the issue Resource exhausted on Cardano node socket #1803
    • Completed the issue Certificate pending route overwhelms the Cardano node in aggregator #1804
    • Completed the issue Optimize Cardano transaction prover performances with parallelization #1756
    • Completed the issue Lint Markdown/JavaScript files in repository #1754
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Release 2428 distribution #1810
    • Worked on the issue Non blocking artifact production in aggregator #1792
    • Worked on the issue Cardano transaction importer does not import the last block advertised as certified #1785

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They completed the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas and worked on fixing some bugs occurring during the warmup phase of the signer and aggregator. They also worked on supporting the new Cardano node version 8.12 and kept redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

    Finally, the team fixed a bug that prevented the parsing of some blocks in the SanchoNet network and made some optimizations on the databases of the signer and aggregator.

    Low level overview

    • Completed the issue Import Cardano transactions with ChainReader #1705
    • Completed the issue Cardano signatures are not produced on testing-sanchonet #1750
    • Completed the issue SQLite WAL files are not truncated in signer and aggregator #1707
    • Completed the issue Conditional embedding of Cardano CLI in Docker images #1725
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Optimize Cardano transaction prover performances with parallelization #1756
    • Worked on the issue Upgrade Cardano node 8.12.2 #1787
    • Worked on the issue Aggregator/Signer preload transactions when Cardano transactions certification is not activated #1782
    • Worked on the issue Cardano transaction importer does not import the last block advertised as certified #1785
    • Worked on the issue Lint Markdown/JavaScript files in repository #1754

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released the threat modeling explainer for the documentation website. They also continued implementing the certification of Cardano transactions in Mithril networks and the low-latency certification with the retrieval of transactions using the chain sync mini-protocol and Pallas. Additionally, the team started redacting a draft CIP for the diffusion of Mithril signatures through the Cardano network.

    Finally, they fixed a bug that prevented the verification of the transactions included in the last certified block and improved the WASM client's documentation.

    Low level overview

    • Completed the issue Threat modeling and risk analysis #1350
    • Completed the issue Implement database connection pooling for Cardano transaction repository #1760
    • Completed the issue Import Cardano transactions by sequences of block ranges #1766
    • Completed the issue Limit Cardano transactions prover input #1757
    • Completed the issue Transactions of the block number in the artifact are never certified by the prover #1762
    • Completed the issue Add missing pre-requisite to build WASM client #1753
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue CIP for Mithril signature diffusion through Cardano network #1775
    • Worked on the issue Optimize Cardano transaction prover performances with parallelization #1756
    • Worked on the issue Cardano signatures are not produced on testing-sanchonet #1750
    • Worked on the issue Lint Markdown/JavaScript files in repository #1754

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They implemented a warmup strategy for the signer and aggregator to begin importing transactions as early as possible, thus minimizing the impact of network activation on certification. They also significantly improved the throughput of the prover route of the aggregator by addressing database access bottlenecks. Additionally, the team made progress on low-latency certification by completing the handling of chain rollbacks and nearly completing the retrieval of transactions using the chain sync mini-protocol and Pallas.

    Finally, they made final modifications to the threat modeling explainer for the documentation website, which will be released shortly, and worked on a bug that occurs when parsing some blocks of the SanchoNet network.

    Low level overview

    • Completed the issue Handle rollbacks in Cardano transactions #1724
    • Completed the issue Pooled resources should be reset when given back #1743
    • Completed the issue Lock signature of signed entity types during warm-up #1693
    • Completed the issue Warmup import Cardano transactions at node startup #1692
    • Completed the issue Build, test and package arm64 binaries in CI #1751
    • Worked on the issue Threat modeling and risk analysis #1350
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue Import Cardano transactions by sequences of block ranges #1766
    • Worked on the issue Implement database connection pooling for Cardano transaction repository #1760
    • Worked on the issue Cardano signatures are not produced on testing-sanchonet #1750
    + + + + \ No newline at end of file diff --git a/tags/mithril/page/10/index.html b/tags/mithril/page/10/index.html new file mode 100644 index 0000000000..20de883ba4 --- /dev/null +++ b/tags/mithril/page/10/index.html @@ -0,0 +1,26 @@ + + + + + +63 posts tagged with "mithril" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    63 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team created a new 2327.0 distribution. They focused on preparing the beta launch on the mainnet: they tested the new production signer deployment model with the pioneer SPOs, they prepared an SPO on-boarding guide, and they kept working on the deployment and monitoring of the mainnet infrastructure. The team also worked on the implementation of a simple stress test tool for benchmarking the aggregator. Additionally, they completed the refactoring of the interface to the cryptographic library.

    Finally, they fixed a bug that sporadically prevented the latest signer registration of a SPO to be used in the associated signing epoch, they fixed a bug in the epoch gap detection of the certificate chain in the aggregator, and worked on multiple other optimizations and bugs.

    Low level overview

    • Released the new distribution 2327.0
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Add infrastructure monitoring #987
      • Worked on the issue Deploy 'mainnet' infrastructure #988
      • Worked on the issue Handle Secrets management #989
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on optimizations:
      • Completed the issue Remove certificate hash from Artifact #932
      • Completed the issue Check vulnerabilities in CI #1037
      • Completed the issue Add 'created_at' in Mithril Stake Distribution messages #1030
      • Completed the issue Add a 'run-only' option in end to end test #1048
    • Worked on refactoring:
      • Completed the issue Factorize protocol crypto operations #669
      • Completed the issue Refactor aggregator dependency injection and services #1058
      • Completed the issue Build static binaries in CI #874
    • Worked on documentation:
      • Completed the issue Prepare SPO on-boarding guide #1049
      • Completed the issue Add instructions to set firewall using iptables #1040
      • Completed the issue Update ufw command to set firewall on Mithril Signer installation instructions #1041
    • Worked on bugs:
      • Completed the issue Aggregator does not detect certificate chain epoch gap #952
      • Completed the issue 'testing-preview' network does not create certificates #1015
      • Completed the issue SQLite compatibility in aggregator #837
      • Completed the issue Q&A followup fixes #1035
      • Completed the issue E2E tests are flaky in CI #1023

    · 3 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the design of the signer deployment model for the SPOs to run Mithril on their Cardano mainnet infrastructure, and implemented the associated Mithril Relay in the Mithril networks. They started working on the design and implementation of a stress test tool for benchmarking the aggregator performances. They worked on the refactoring of the Mithril Stake Distribution entity and the uniformization of the date types in the nodes. They also worked on implementing a new tool command in the aggregator and its first sub-command that helps avoiding re-genesis of the certificate chain when the structure of the certificate is updated. Additionally, they worked on implementing some monitoring for the Mithril infrastructure, and worked on a retry mechanism for the artifact creation of the aggregator.

    Finally, they fixed some bugs, and they completed the upgrade of the Mithril networks to Cardano node v.8.1.1.

    Low level overview

    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Add infrastructure monitoring #987
    • Completed the epic Prepare Mithril Signer deployment model for SPO #862:
      • Completed the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
      • Completed the issue Adapt infrastructure to use Mithril Relay #1018
      • Completed the issue Announce the new signer deployment model in a dev blog post #1017
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on bugs:
      • Completed the issue Aggregator does not exit on critical error #993
      • Completed the issue Computation of master certificate of an epoch is incorrect #1006
      • Completed the issue End to end tests are flaky #954
      • Worked on the issue 'testing-preview' network does not create certificates #1015
    • Worked on optimizations:
      • Completed the issue Dates format is not standardized #946
      • Completed the issue Add 'recompute-certificates-hash' command to aggregator #1001
      • Completed the issue Add a retry mechanism for artifact creation in aggregator #984
      • Completed the issue Log node version at startup in Aggregator/Signer #944
      • Completed the issue Reactivate Publish Results job in CI #978
      • Completed the issue Clean 'pending_snapshot' directory of aggregator #983
      • Completed the issue Update OpenAPI spec examples #1000
    • Worked on refactoring:
      • Completed the issue Refactor 'MithrilStakeDistribution' entity #967
      • Completed the issue Refactoring client #982
      • Completed the issue Refactor download code in client #1010
      • Worked on the issue Factorize protocol crypto operations #669
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.1' #973

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the implementation of the new sub-command for restoring a Mithril stake distribution in the client. They also updated the client’s developer documentation and architecture documentation, and did some refactoring on the client and its dependency injection mechanism. Additionally, they completed and deployed infrastructure enhancements on the test Mithril networks. They also completed the performance tests of the new stake distribution computation on the Cardano mainnet.

    Finally, the team worked on fixing a bug on the client multi-platform test, a bug on the aggregator state machine, and some flakiness on the CI.

    Low level overview

    • Completed on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the issue Create the sub-command for 'Mithril Stake Distribution' in client #896
      • Completed the issue Adapt end to end tests to handle new types of data #899
      • Completed the issue Update client documentation #897
      • Completed the issue Update architecture documentations for new types of data #898
      • Completed the issue Refactoring client #960
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Enhance terraform infrastructure #930
    • Completed the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the issue Check performance impact of new stake distribution command on the 'mainnet' #962
    • Worked on the epic Prepare Mithril Signer deployment model for SPO #862:
      • Worked on the issue Design recommended deployment model for SPOs on 'mainnet' and 'preview'/'preprod' #961
    • Worked on bugs and optimizations:
      • Completed the issue Aggregator does not always detect new immutable file #953
      • Completed the issue CI tests fail with Rust '1.70.0' #958
      • Worked on the issue End to end tests are flaky #954
      • Worked on the issue Certificate dates in metadata are not on the same timezone #946
      • Worked on the issue Refactor 'MithrilStakeDistribution' entity #967
      • Completed the issue Fix 'Mithril Client multi-platform test' with new client interface #956
      • Completed the issue Enhance 'ImmutableDigesterError::NotEnoughImmutable' error #969
      • Completed the issue Client 'snapshot download' command fails with option '--download-dir' #979

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2321.1 distribution that fully implements the mechanism developed to sign generic data. They completed the upgrade of the Cardano node in the Mithril networks to v.8.0.0 and the implementation of the new computation of the stake distribution. They refactored the state machines of the signer and aggregator, and the signed entity service of the aggregator. Additionally, they worked on adapting the client and implementing a new sub-command for restoring the Cardano immutable file snapshots.

    Finally, the team worked on adding a new certificate list route in the aggregator REST API, and started enhancing the infrastructure of the Mithril networks.

    Low level overview

    • Released the new distribution 2321.1
    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the issue Enhance MessageAdapter for Artifact in aggregator REST API #925
      • Completed the issue Create the sub-command for 'Cardano Immutable Files Full' in client #895
      • Completed the issue Enhance state machines Aggregator/Signer #933
      • Completed the issue Adapt the aggregator REST API to list certificates #892
      • Worked on the issue Adapt end to end tests to handle new types of data #899
      • Worked on the issue Update client documentation #897
      • Worked on the issue Update architecture documentations for new types of data #898
    • Worked on the epic that prepares the Mithril infrastructure for mainnet #767:
      • Worked on the issue Enhance terraform infrastructure #930
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the issue Upgrade Cardano node to '8.0.0' #920
    • Completed the issue Add export path in Client CLI #512

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2318.0 distribution that implements the last migration phase of the aggregator stores and embeds a bug fix for the signer registration. They also completed the implementation of the interfaces defined to provide certification for the immutable full snapshot of Cardano files and Mithril stake distribution. They finalized the implementation of the framework to sign generic types of data in the aggregator and the signer nodes. They also updated the runtime of the aggregator to handle open messages associated with the available types, and evolved the REST API of the aggregator to deliver the artifacts for these types. Additionally, they have upgraded the network explorer in order to display the artifacts and certificates for these different types.

    Finally, the team started designing an on-chain decentralized signer registration process, and started implementing the new stake distribution computation available from Cardano node 8.0.0 (along with the backward compatibility for previous 1.35.x versions).

    Low level overview

    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the handling of multiple types of signed entity in the aggregator runtime #907
      • Completed the adaptation of the signer runtime to use the signable builder service #854
      • Completed the adaptation of the aggregator runtime to use the artifact builder service #869
      • Completed the appending of the next AVK to all protocol messages #888
      • Completed the adaptation of the aggregator REST API to retrieve the list/details of the artifacts produced #893
      • Completed the adaptation of the explorer to handle new artifact routes of the aggregator #927
    • Worked on the epic that implements the computation of the stake distribution for mainnet #880:
      • Completed the implementation of the new stake distribution computation in the chain observer #919
      • Worked on upgrading the Cardano node to 8.0.0 #920
    + + + + \ No newline at end of file diff --git a/tags/mithril/page/11/index.html b/tags/mithril/page/11/index.html new file mode 100644 index 0000000000..bf3d716275 --- /dev/null +++ b/tags/mithril/page/11/index.html @@ -0,0 +1,26 @@ + + + + + +63 posts tagged with "mithril" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    63 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the implementation of the new certifier service of the aggregator, which is in charge of producing certificates for multi-signatures. They also finished implementing the interfaces defined to provide certification for the full immutable Cardano files snapshot and the Mithril stake distribution. Additionally, they have completed the refactoring of the multi-signer in the aggregator. The team also fixed the bug in the signer registration that was responsible for gaps during the signature phase for some signers, and they upgraded the Cardano node used in the Mithril testnets and devnet to version 1.35.7.

    Finally, they have worked on designing a decentralized registration for the signers that takes place on the Cardano chain.

    Low level overview

    • Worked on the epic that designs and implements generic signing/verification of entity services #780:
      • Completed the implementation of the Certifier service in the aggregator #850
      • Completed the implementation of the signable builder for the Mithril Stake Distribution #851
      • Completed the implementation of the artifact builder for the Mithril Stake Distribution #870
      • Completed the implementation of the signable builder for the Full Immutables Snapshot #852
      • Completed the implementation of the artifact builder for the Full Immutables Snapshot #871
      • Completed the adaptation of the aggregator runtime to use the signable builder service #853
      • Worked on the adaptation of the signer runtime to use the signable builder service #854
      • Completed the definition of the entity service interface for verification/restoration #868
      • Completed the refactoring of the OpenMessage type #878
    • Completed the epic that simplifies the multi-signer in the aggregator #398:
      • Completed the extraction of the single signature registration from the multi-signer #643
    • Completed the upgrade of the Cardano node to version 1.35.7 #881
    • Fixed the bug that created a discrepancy of the signer verification keys between signers and aggregators #873

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2315.0 distribution that implements the first part of the migration of the aggregator stores along with minor improvements and bug fixes. They finished the migration of the aggregator stores to a relational design by completing the adaptation and migration of the signed entity, signer and single signature stores. They also created a new tick service that provides beacons to other services of the aggregator. Additionally, they started implementing the new new certifier service of the aggregator that is in charge of producing certificates for multi-signatures.

    Finally, they completed the design and definition of the interfaces that must be implemented to provide certification for a new type of data in a Mithril network.

    Low level overview

    • Released the new distribution 2315.0
    • Completed the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the signed_entity table #816
      • Completed the creation of the signer table #814
      • Completed the migration/adaptation of the single_signature table #829
    • Worked on the epic that designs and implement generic signing/verification of entity services #780:
      • Completed the definition of the interface of the generic entity service for signing #847
      • Worked on the implementation of the Certifier service in the aggregator #850
      • Completed the extension of the SignedEntityType type #848
      • Completed the implementation of the Tick service in the aggregator #849
      • Worked on implementing the signable builder for the Mithril Stake Distribution #851

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2313.0 distribution that implements minor improvements and bug fixes. They continued implementing the migration of the aggregator stores to a relational design. They finished adaptating and migrating the certificate, epoch settings, signed entity type, signer registration and open message stores. Additionally, they completed the refactoring of the dependency injector of the aggregator and simplified its multi-signer in order for it to sign multiple concurrent messages.

    Finally, the team has worked on designing the new architecture of the network to support signing multiple types of data and upgraded the version of the Cardano node used in the Mithril testnets and devnet to 1.35.6.

    Low level overview

    • Released the new distribution 2313.0
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed the migration/adaptation of the epoch_settings table #813
      • Completed the migration/adaptation of the signed-entity-type table #815
      • Completed the migration/adaptation of the certificate table #817
      • Completed the migration/adaptation of the open_message table #827
      • Completed the migration/adaptation of the signer_registration table #828
    • Completed the refactoring of the dependency injection of the aggregator #823
    • Completed the cleanup of the multi-signer of the aggregator #824
    • Completed the upgrade of the Cardano node to 1.35.6 #843

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2310.0 distribution that activates the era switch mechanism. They also kept implementing the migration of the aggregator stores to a relational design with the first adaptation of the stake pool store, and then the adaptation of the epoch settings & signed entity type stores. They have implemented the handling of the network API version from the Open API specifications and its automatic switch at era transition. Additionally, they optimized the stake distribution computation that now happens only once per epoch, and also enhanced the client multi-platform workflow to test the Docker images.

    Finally, they have successfully completed the tests to create certificates and snapshots on a network running on the Cardano mainnet and they have fixed some bugs.

    Low level overview

    • Completed the epic that implements eras behavior switch #707:
      • Completed handling the API version switch at era transition #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Completed on the migration/adaptation of the stake_pool table #787
      • Worked on the migration/adaptation of the epoch_settings table #813
      • Worked on the migration/adaptation of the signed-entity-type table #815
      • Completed the creation of a stake distribution service #799
    • Completed the testing of Mithril with Cardano mainnet network #777
    • Completed qualifying the computation of the stake distribution #810
    • Completed the testing of the Docker client in the Mithril Client multi-platform test workflow #794
    • Worked on bugs and optimizations:
      • Fixed a bug that made computation of the stake distribution occur multiple times during an epoch #804
      • Fixed a bug that created deadlocks on the SQLite connection #807
      • Optimized the error message and the behavior of the signer node when KES keys have expired #820
      • Upgraded the infrastructure of the testing-preview and pre-release-preview networks #801
      • Re-genesis of the testing-preview network #803
      • Re-genesis of the pre-release-preview network #818

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on deploying the era activation mechanism to their test networks and preparing the upgrade procedure to be implemented on the signer nodes run by the SPOs. They also refactored the state machines of the aggregator and signer nodes so that they can better handle critical errors, which lead to node panic, from recoverable errors. Additionally, the team continued the deployment of a new test network that runs on the Cardano mainnet and computes the stake distribution with the optimized unreleased Cardano CLI command.

    Finally, they have designed the certification of generic types of data by a Mithril network and they have started implementing its first phase. Also they fixed a bug that made the client Docker image crash at startup.

    Low level overview

    • Worked on the epic that implements eras behavior switch #707:
      • Completed the deployment of the era behavior switch to the test networks #752
      • Completed the enhancement of datum generation for era markers #786
      • Worked on handling the API version with an era switch #727
    • Worked on the epic that implements a relational store in the aggregator #779:
      • Worked on the migration/adaptation of the stake_pool table #787
    • Completed the refactoring of errors in the signer and aggregator state machines #665
    • Worked on testing Mithril with a mainnet Cardano network #777
    • Worked on fixing bugs with the Docker client image:
      • Fixed a bug that made the Docker client container crash at startup #769
      • Fixed a bug that prevented the restoration of a snapshot with a Docker client #791
      • Worked on testing the Docker client in the Mithril Client multi-platform test workflow #794
    + + + + \ No newline at end of file diff --git a/tags/mithril/page/12/index.html b/tags/mithril/page/12/index.html new file mode 100644 index 0000000000..7d2d86a438 --- /dev/null +++ b/tags/mithril/page/12/index.html @@ -0,0 +1,26 @@ + + + + + +63 posts tagged with "mithril" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    63 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2306.0 distribution that implements minor fixes and updates and completes the wiring of the era activation markers reader into the signer and aggregator nodes. They also designed an event store in the aggregator and completed its implementation as a monitoring solution to provide figures for deployment rates of versions on signer nodes before activating an era switch. Additionally, the team created a dedicated command on their nodes’ CLI that allows generating and signing an era marker’s payload to be stored on the Cardano chain, as well as creating dynamic cases for the end-to-end tests they run on the CI.

    Low level overview

    • Released the new distribution 2306.0
    • Completed the epic that implements signer versions deployment monitoring #718:
      • Completed the implementation an event producer/consumer via channel #738
      • Completed the creation of a database and its configuration to save the events on the consumer side #740
      • Completed the creation of events and sending them on the channel on the producer side #741
      • Completed the creation of the signer registration event #742
      • Completed the creation a query to extract the node versions stakes distribution #743
    • Worked on the epic that implements eras behavior switch #707:
      • Completed the loading of era reader adapters from config in the signer and the aggregator #732
      • Completed the implementation of an era cli command in the aggregator #755
      • Completed the implementation of a dynamic matrix of cases in CI end to end tests #760
    • Fixed some bugs:
      • Fixed the unsupported unixepoch() function #757
      • Fixed the problem that prevented some signers from signing on the testing-preview network #730
      • Update SQLite version to 3.40 in aggregator infrastructure #765

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2304.1 distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.

    Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version 1.35.5 on their devnet and infrastructure.

    Low level overview

    • Released the new distribution 2304.1
    • Fixed a bug that prevented some signers to sign with 2304.0-prerelease #716
    • Completed the implementation of an EraChecker that checks if an era is active #708
    • Completed the implementation of an EraReader that gathers era activation data #709
    • Completed the implementation of an EraReader adapter with on chain transaction as source #710
    • Completed the relational design of the aggregator store #476
    • Completed adding a new SPO on the testing-preview network #729
    • Completed the upgrade of the Cardano node to 1.35.5 #725
    • Fixed flakiness in the CI #734

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team released a new 2302.0 distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.

    Finally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.

    Low level overview

    • Released the new distribution 2302.0
    • Implemented a backward/forward compatibility mechanism for API messages #688:
      • Implement the mechanism for the signer registration #689
      • Implement the mechanism for the signature registration #693
      • Implement the mechanism for epoch settings #695
      • Implement the mechanism for certificate pending #696
      • Implement the mechanism for certificate #697
      • Implement the mechanism for snapshots list #698
      • Implement the mechanism for snapshot #699
      • Update enforcement of API version with Semver #705
    • Completed the PoC implementation of backward compatibility with protobuf #677
    • Completed the PoC implementation of backward compatibility with avro #678
    • Completed the PoC to Read/Write transaction on chain for Era activations #672
    • Completed the upgrade Cardano devnet to 1.35.4 #523

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has been designing a mechanism for handling seamless updates of the Mithril networks in case of breaking-changes that require synchronous update of the signer nodes. This design has been formalized in an ADR. They have been working on an implementation of a proof of concept to rely on an on-chain transaction to synchronously trigger the version switch of all the signer nodes. They have also worked on implementing prototype solutions to minimize the use of breaking changes where soft updates are possible.

    Finally, they have worked on upgrading the devnet and fixing some flakiness in the end to end tests of the CI.

    Low level overview

    • Implemented the redaction of an ADR for handling graceful updates of the Mithril Network #671
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with protobuf #677
    • Worked on a proof of concept to handle backward compatibilty of exchanged messages with avro #678
    • Worked on a proof of concept for reading/writing era activation markers with a Cardano chain transaction #672
    • Worked on upgrading the Cardano node of the Mithril devnet, as well as fixing flakiness of the CI #523
    • Prepared and tested the new 2302 distribution pre-release 2302.0-prerelease
    • Updated the documentation for SPO to build a signer node in order to better reflect the new release process #681

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released the new distribution 2248.1 of their nodes. They have published the first version of the Mithril cryptographic library on crates.io, the Rust community’s crate registry. They have implemented an optimization on the individual signatures that no longer embed the verification key and stake. They have also enhanced their testing strategy by implementing a workflow that tests that the client binaries produced for multiple platforms (Linux, MacOS and Windows) are able to verify and restore snapshots.

    Finally, they have kept on simplifying the aggregator node's multi-signer by removing the signer registration and the certificate creation from its responsibilities.

    Low level overview

    • Implemented removing verification key and stake from single signatures #619
    • Completed the extraction of the signer registration from the multi-signer #642
    • Completed the extraction of the certificate creation from the multi-signer #638
    • Implemented a workflow to test client binaries (Linux / MacOS / Windows) #601
    • Completed the signature of the artifacts produced by the CI #587
    • Fixed the protocol parameters transition #627
    • Worked on optimizing the snapshot digest computation #510
    • Worked on enforcing the API protocol versions in the client and signer #633
    • Worked on deactivating the non certified signer registration mode #621
    • Worked on the re-genesis of the test networks #651
    + + + + \ No newline at end of file diff --git a/tags/mithril/page/13/index.html b/tags/mithril/page/13/index.html new file mode 100644 index 0000000000..68cefb0137 --- /dev/null +++ b/tags/mithril/page/13/index.html @@ -0,0 +1,26 @@ + + + + + +63 posts tagged with "mithril" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    63 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes.

    Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.

    Low level overview

    • Implemented custom Mithril SPOs on testing/pre-release networks #563
    • Deprecated Signer Declarative Pool Id registration mode #585
    • Completed the second stage of the store automatic migration process #600
    • Completed the deployment pipelines to crates.io registry #588
    • Completed automatic generation of nodes/libraries versions manifest in releases notes #599
    • Completed CI/CD handling of PR from forks #597
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #586
    • Worked on signing the artifacts released in the distributions by the CI/CD #587
    • Worked on multi-platforms end to end test #601
    • Worked on the refactorizaton of the aggregator multi-signer engine #398

    · 2 min read
    Iñigo Querejeta Azurmendi

    High level overview

    The Mithril team has released their second distribution 2246.1 following the activation of the alpha version of the new release process. They continued refining its implementation and added a new set of artifacts to the distributions, such as Debian packages and macOS/Windows binaries. The team also enhanced the Mithril Explorer, which now provides more detailed information about epoch settings and easier access to multiple aggregators for the users. They have also worked on an enhanced mechanism for node versioning, storage, and communication protocol. They also implemented version detections for the signer and aggregator nodes, designed the automatic store upgrade feature for these nodes, and enhanced the documentation of the configuration parameters of the several Mithril networks.

    Finally, the team continued working on the elaboration of the CIP that will allow the decentralization of Mithril by relying on the Cardano node network layer.

    Low level overview

    • Released a new Mithril distribution 2246.1
    • Completed the first stage of the store migrations process #562
    • Added a Mithril API version that is now exposed in the headers of the requests sent and received by the nodes #565
    • Enhanced the explorer UI with epoch settings information and aggregators management on browser local storage #576
    • Prepared a Daedalus synchronization benchmark video with/without Mithril #606
    • Upgraded the Cardano nodes of the testing Mithril networks to 1.35.4 #594
    • Worked on implementing SPO tests nodes on testing Mithril networks #563
    • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #588
    • Worked on the refactorizaton of the aggregator multi signer engine #398

    · 2 min read
    Iñigo Querejeta Azurmendi

    This sprint, the team has been working on the new continuous integration and delivery (CI/CD) pipelines and the automated deployment of environments as part of the new version of the release process. They also coordinated the migration of the pioneer SPO nodes to these new Mithril networks. They have been implementing the automatic data storage upgrade of the signer and the aggregator nodes. Finally, on the crypto side of things, we've implemented an efficiency improvement on the size of the mithril certificates.

    Low level overview

    • We have been moving forward on the implementation of the release process #500:
      • Setup of the new hosted environments for testing-preview, pre-release-preview and release-preprod with their terraform and GitHub environments #542
      • Adapted the CI workflows to work with the new release process #543
      • Publication of an ADR3
      • Publication of a dev blog post about Mithril networks evolution
      • Releasing our first Mithril distribution 2244.0
    • Worked on the API versioning mechanism #565
    • Worked on the implementation of the stores migration process for the signer and aggregator nodes #562
    • Prepared a Mithril devnet video demo #526
    • Implemented a batch Merkle Tree proof, which reduces the size of certificates considerably #484
    + + + + \ No newline at end of file diff --git a/tags/mithril/page/2/index.html b/tags/mithril/page/2/index.html new file mode 100644 index 0000000000..b69a8e10ad --- /dev/null +++ b/tags/mithril/page/2/index.html @@ -0,0 +1,26 @@ + + + + + +63 posts tagged with "mithril" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    63 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released the new distribution 2423.0, which includes the removal of the snaphot command of the client CLI, as well as bug fixes and optimizations. They also continued implementing the certification of Cardano transactions in Mithril networks and improved the throughput of the prover route of the aggregator by fixing some bottlenecks in the Merkle proof computation. Additionally, the team made progress on low-latency certification by working on the retrieval of the transactions with the chain sync mini-protocol and Pallas, as well as the handling of rollbacks of the chain.

    Finally, they kept working on the threat modeling explainer for the documentation website and provided support for multiple TLS implementations in the client library thanks to a community contribution.

    Low level overview

    • Released the new distribution 2423.0
    • Publication of a dev blog post about the removed Mithril client CLI 'snapshot' command
    • Completed the issue Client verification fails with an already stored but non certified yet transaction #1719
    • Completed the issue Computation of Merkle proof has bottleneck with multiple transactions #1730
    • Completed the issue Automatic rollback on SQL transactions #1741
    • Completed the issue Allow the underlying TLS implementation to be selectable when using a library. #1737
    • Completed the issue Release 2423 distribution #1695
    • Completed the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    • Worked on the issue Handle rollbacks in Cardano transactions #1724
    • Worked on the issue Pooled resources should be reset when given back #1743
    • Worked on the issue Threat modeling and risk analysis #1350
    • Worked on the issue Import Cardano transactions with ChainReader #1705

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They improved the throughput of the prover route of the aggregator by using resource pooling and made progress on low-latency certification by transitioning to a chain point-based beacon, which allows for faster transaction signing. They also kept investigating prover performance bottlenecks, worked on fixing a bug that caused unsigned transactions to appear as signed, and continued implementing the import of transactions with the ChainSync mini-protocol and Pallas.

    Additionally, the team started preparing the threat modeling explainer for the documentation website and kept investigating some Cardano node error messages that could be caused by how the Pallas client handles connections to mini-protocols.

    Low level overview

    • Completed the issue Implement Resource Pooling for Block Range Merkle maps #1698
    • Completed the issue Sign Cardano transactions with ChainPoint based beacon #1697
    • Completed the issue Cardano transactions prover performances drop with more than 5 transactions #1722
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue Client verification fails with an already stored but non certified yet transaction #1719
    • Worked on the issue Computation of Merkle proof has bottleneck with multiple transactions #1730
    • Worked on the issue Threat modeling and risk analysis #1350
    • Worked on the issue Release 2423 distribution #1695
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released a new Mithril protocol insights dashboard and a new explorer page displaying active and deregistered SPOs for the latest Cardano epochs. They also continued implementing the certification of Cardano transactions in Mithril networks by improving the throughput of the prover route of the aggregator and making progress on low-latency certification by completing the implementation of a chain block reader from the Cardano mini-protocol with Pallas.

    Additionally, the team started working on a new beacon for signing Cardano transactions based on the chain point. Finally, they refactored the persistence library, enhanced their testing tools for Cardano transactions, and fixed a block parsing problem that prevented the signature of Cardano transactions in the test networks.

    Low level overview

    • Released the Mithril Protocol Insights Dashboard
    • Completed the issue Prototype optimizations for increasing Cardano transactions proof generation throughput #1687
    • Completed the issue Retrieve Cardano blocks with chainsync in pallas PoC #1590
    • Completed the issue Explorer display in/out SPOs in registered signers page #1686
    • Completed the issue Create a test Cardano transactions builder #1667
    • Completed the issue Cardano signatures are not produced on testing-sanchonet and testing-mainnet #1681
    • Completed the issue Remove snapshot command in client CLI #1690
    • Completed the issue Block Streamer returns ChainScannedBlocks #1704
    • Completed the issue Remove connections coupling with providers in database #1711
    • Worked on the issue Implement Resource Pooling for Block Range Merkle maps #1698
    • Worked on the issue Sign Cardano transactions with ChainPoint based beacon #1697
    • Worked on the issue Import Cardano transactions with ChainReader #1705
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling proof generation for mainnet by prototyping optimizations and benchmarking performance improvements. They also made progress on low-latency certification by completing the retrieval of the chain tip and importing transactions from the Cardano mini-protocol with Pallas. Additionally, they worked on a new explorer page to display in/out SPOs for the latest Cardano epochs.

    Finally, the team upgraded the testing-sanchonet network following the SanchoNet network respin, created a module for building test transactions, and began removing the deprecated snapshot command from the client CLI.

    Low level overview

    • Completed the issue Aggregator stress test crashes during signer registration #1676
    • Completed the issue Prune Cardano transactions stored on signer #1645
    • Completed the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Completed the issue Prepare testing-sanchonet for respin with Cardano 8.11-pre #1694
    • Completed the issue MacOS Rust tests are flaky in CI #1556
    • Worked on the issue Prototype optimizations for increasing Cardano transactions proof generation throughput #1687
    • Worked on the issue Retrieve Cardano blocks with chainsync in pallas PoC #1590
    • Worked on the issue Explorer display in/out SPOs in registered signers page #1686
    • Worked on the issue Create a test Cardano transactions builder #1667
    • Worked on the issue Cardano signatures are not produced on testing-sanchonet and testing-mainnet #1681
    • Worked on the issue Remove snapshot command in client CLI #1690
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released the new distribution 2418.1, which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes aimed at preventing memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet. Specifically, they completed the implementation of compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges and initiated testing and assessing performance on mainnet in a test Mithril network. Additionally, they started working on minimizing the extra disk space requirements for the signer on the SPO infrastructure.

    Finally, the team implemented some optimizations for the aggregator, fixed some bugs on the client, and introduced new documentation for compiling the Mithril relay from source.

    Low level overview

    • Released the new distribution 2418.1
    • Completed the issue Use Block Range Merkle roots to sign Cardano transactions #1634
    • Completed the issue Use Block Range Merkle roots to prove Cardano transactions #1635
    • Completed the issue Deploy Cardano transactions to testing-mainnet #1647
    • Completed the issue Consistent sorting of transactions from GetCardanoTransactionProvider in signer and aggregator #1657
    • Completed the issue Use SQLite transactions when inserting Cardano Transactions and Block Range Roots #1656
    • Completed the issue Implement Ord on SignedEntityTypeDiscriminants #1648
    • Completed the issue Merkle roots don't have fixed size in the block_range_root table #1668
    • Completed the issue Refactor Cardano transactions database layer in persistence for signer and aggregator #1677
    • Completed the issue Some timing tests fail on ARM #1466
    • Completed the issue Add Mithril networks configurations in networks.json #1638
    • Completed the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Aggregator stress test crashes during signer registration #1676
    • Worked on the issue Prune Cardano transactions stored on signer #1645
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Retrieves Cardano blocks with chainsync in pallas PoC #1590
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632
    + + + + \ No newline at end of file diff --git a/tags/mithril/page/3/index.html b/tags/mithril/page/3/index.html new file mode 100644 index 0000000000..9d686e9b7b --- /dev/null +++ b/tags/mithril/page/3/index.html @@ -0,0 +1,26 @@ + + + + + +63 posts tagged with "mithril" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    63 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team prepared a new pre-release distribution 2418.1-pre, which includes broader CPU support for pre-built binaries and a new memory allocator for the signer and aggregator nodes to prevent memory fragmentation. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet by leveraging the compression of the transaction Merkle tree using sub-Merkle trees based on transaction block ranges during signature and proving. Additionally, they implemented a stream mechanism for importing transactions into the signer and aggregator stores.

    Finally, the team started implementing a global Mithril networks configuration file and continued investigating some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.

    Low level overview

    • Created a pre-release for the new distribution 2418.1-pre
    • Completed the issue Store Block Range Merkle roots in signer and aggregator databases #1633
    • Completed the issue Stream import of Cardano transactions #1646
    • Completed the issue Memory leak in Cardano transactions signature/proof #1629
    • Completed the issue Handle unparsed blocks in Cardano transactions parser #1567
    • Worked on the issue Use Block Range Merkle roots to sign Cardano transactions #1634
    • Worked on the issue Use Block Range Merkle roots to prove Cardano transactions #1635
    • Worked on the issue Use SQLite transactions when inserting Cardano Transactions and Block Range Roots #1656
    • Worked on the issue Add Mithril networks configurations in networks.json #1638
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, most of the Mithril team attended the Cardano Buidler Fest #1 in Toulouse, France. They also continued implementing the certification of Cardano transactions in Mithril networks and worked on scaling the signature and proof generation for mainnet by compressing the transaction Merkle tree using sub-Merkle trees based on transaction block ranges. The team identified the source of an issue preventing proper memory release during the signing/proving of a large set of transactions and developed a fix for it. Additionally, they completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network.

    Finally, the team implemented a configurable feature for test networks to log unparsable blocks instead of panicking and investigated some unexpected error logs occurring on the Cardano node when the signer and aggregator connect to the mini-protocols.

    Low level overview

    • Completed the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue Store Block Range Merkle roots in signer and aggregator databases #1633
    • Worked on the issue Stream import of Cardano transactions #1646
    • Worked on the issue Memory leak in Cardano transactions signature/proof #1629
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They worked on scaling the signature and proof generation for mainnet with the compression of the transaction Merkle tree by using sub-Merkle trees of transactions by block ranges. They also made progress in designing low latency certification, investigated a memory leak in the signature/proof process, and worked on retrieving the tip of the chain with the Pallas chain observer. The team almost completed the prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they completed the refactoring of the database providers of the aggregator and re-span the testing-sanchonet network following the release of Cardano node 8.10.0-pre.

    Finally, the team made some optimizations on the compilation of their pre-built binaries to fix panics occurring on CPUs without ADX instructions, and created a network configuration file on the repository to facilitate automatic compatibility checks.

    Low level overview

    • Completed the issue Create file with Cardano minimum versions in repository #1615
    • Completed the issue Deploy testing-mainnet network #1617
    • Completed the issue Refactor database module in aggregator #1583
    • Completed the issue Client deprecation notice should be written in JSON when --json option is used #1616
    • Completed the issue Activate portable feature in mithril-stm by default #1613
    • Completed the issue Prepare testing-sanchonet for respin with Cardano 8.10 #1618
    • Worked on the issue Store Block Range Merkle roots in signer and aggregator databases #1633
    • Worked on the issue Memory leak in Cardano transactions signature/proof #1629
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Worked on the issue Mithril Signer Local Error Policy : Error 182 - MuxError #1632

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed the incremental storage of transactions, activated the signature of the transactions on the testing-preview network, and prepared a new network to test the scaling on mainnet data. The team also made progress on a prototype for decentralizing signer registration with the relay and a peer-to-peer (P2P) network. Additionally, they worked on refactoring the database providers of the aggregator.

    Finally, the team delivered a community requested feature that displays the minimum versions of the Cardano node that the signer supports in a machine-readable format. They also provided a manual setup guide for the relay in the SPO user guide.

    Low level overview

    • Completed the issue Implement incremental storage of Cardano transactions in signer/aggregator #1591
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue Refactor database module in aggregator #1583
    • Worked on the issue ChainObserver supports retrieving the Chain Point of the tip of the chain #1589
    • Worked on the issue Create file with Cardano minimum versions in repository #1615
    • Worked on the issue Deploy testing-mainnet network #1617
    • Worked on the issue Add section for manual setup of squid in SPO guide #1610
    • Completed the issue Signer metrics server displays confusing log message #1620

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed the implementation of a more versatile beaconing mechanism, worked on implementing incremental storage of transactions, and fixed the bug in the block parser that prevented some Conway transactions from being signed. Additionally, they continued working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.

    Finally, they enhanced the internal storage of data on the test aggregator server and addressed a source of flakiness in the CI end-to-end test.

    Low level overview

    • Worked on the issue Implement incremental storage of Cardano transactions in signer/aggregator #1591
    • Completed the issue Support multiple beacon types in signer/aggregator #1562
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Completed the issue Provide fake aggregator data in an aggregated form #1594
    • Completed the issue Some transactions are not signed in testing-sanchonet #1577
    • Completed the issue End to end tests are flaky in CI #1558
    • Completed the issue npm publication fails in the release workflow #1595
    • Completed the issue Add indexes on foreign keys of SQLite stores #1603
    + + + + \ No newline at end of file diff --git a/tags/mithril/page/4/index.html b/tags/mithril/page/4/index.html new file mode 100644 index 0000000000..d844a9e191 --- /dev/null +++ b/tags/mithril/page/4/index.html @@ -0,0 +1,27 @@ + + + + + +63 posts tagged with "mithril" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    63 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released a new Mithril distribution 2412.0. This release includes several critical updates and enhancements, such as support for the Prometheus metrics endpoint in signer, deprecation of the snapshot command in the client CLI, full Pallas-based implementation of the chain observer, and support for Cardano node v.8.9.0.

    The team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, kept implementing a more versatile beaconing mechanism, reducing the latency of transactions signature, and continued investigating a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they started working on a prototype to decentralize signer registration with the relay and a peer-to-peer (P2P) network.

    Finally, the team completed the implementation of some community-requested features to verify the output folder structure made by the client, and kept investigating a source of flakiness in the CI end-to-end test.

    Low level overview

    • Released the new distribution 2412.0
    • Publication of a dev blog post about the Mithril signer Prometheus endpoint release
    • Publication of a dev blog post about the Mithril client CLI snapshot command deprecation
    • Completed the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Completed the issue Do not require the mithril client to create the DB directory #1572
    • Worked on the issue Support multiple beacon types in signer/aggregator #1562
    • Worked on the issue Mithril relay broadcasts signer registrations with P2P PubSub #1587
    • Worked on the issue Provide fake aggregator data in an aggregated form #1594
    • Worked on the issue Some transactions are not signed in testing-sanchonet #1577
    • Worked on the issue End to end tests are flaky in CI #1558

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing the certification of Cardano transactions in Mithril networks. They focused on scaling the signature and proof generation for mainnet, completed UI improvements for the explorer, provided metadata about the point of the chain used during the verification process, and investigated a bug in the block parser that prevents some Conway transactions from being signed. Additionally, they began prototyping the implementation of a more versatile beaconing mechanism to sign transactions with low latency.

    Finally, the team started implementing some community-requested features to verify the output folder structure made by the client, and fixed a source of flakiness in the CI end-to-end test.

    Low level overview

    • Completed the issue Upgrade Cardano node to 8.9.0 #1570
    • Completed the issue Explorer improvements for Cardano transactions #1554
    • Completed the issue Refactor the Cardano transactions parser with pallas-hardano #1557
    • Completed the issue Provide latest immutable file number with certified transactions in client #1536
    • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Worked on the issue Support multiple beacon types in signer/aggregator #1562
    • Worked on the issue Do not require the mithril client to create the DB directory #1572
    • Worked on the issue Some transactions are not signed in testing-sanchonet #1577
    • Worked on the issue End to end tests are flaky in CI #1558
    • Worked on the issue P2P threat modeling and risk analysis #1350

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the adaptation of the Mithril explorer to support Cardano transaction verification, kept improving its UI, fixed the bug that prevented the signature of some Conway era transactions, implemented a more robust transactions parser, and started providing metadata about the point of the chain used during the verification process. Additionally, they have completed the optimization of the communications of the Mithril nodes and the Cardano node with the finalization of the Pallas chain observer.

    Finally, the team enhanced the handling of logs in the CLI of the Mithril nodes and investigated some remaining flakiness in the end-to-end test in the CI.

    Low level overview

    • Completed the issue Output CLIs logs to stderr #1515
    • Completed the issue Implement Cardano Transactions in explorer #1497
    • Completed the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue npm publish fails on latest when next exists #1531
    • Completed the issue Cardano transactions are not all signed in testing-sanchonet #1537
    • Completed the issue Enhance www demonstration in mithril-client-wasm #1552
    • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Worked on the issue Provide latest immutable file number with certified Cardano transactions in client #1536
    • Worked on the issue Explorer improvements Cardano transactions #1554
    • Worked on the issue Refactor the Cardano transactions parser with pallas-hardano #1557
    • Worked on the issue End to end tests are flaky in CI #1558
    • Worked on the issue P2P threat modeling and risk analysis #1350

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team kept implementing the data type for certifying Cardano transactions within Mithril networks: they worked on adapting the Mithril explorer to support Cardano transaction verification, started implementing a more efficient transaction signing scheme, stabilized the type names in the API, and kept investigating a bug that prevents the signature of some Conway era transactions. Additionally, they have completed the first version of the Prometheus monitoring endpoint for the signer.

    Finally, the team fixed a bug occuring in the publication of the npm packages of the client, enhanced the HTTP tests of the aggregator, and kept working on the KES period computation in the Pallas chain observer.

    Low level overview

    • Completed the issue Expose Prometheus metrics for Mithril signer #1096
    • Completed the issue Make HTTP server tests more robust #1524
    • Completed the issue Stabilize namings in Cardano Transactions API #1535
    • Completed the issue Reorganize crates in the repository #1528
    • Worked on the issue Implement Cardano Transactions in explorer #1497
    • Worked on the issue Implement a Block Range Merkle Tree for Cardano Transactions #1533
    • Worked on the issue Output CLIs logs to stderr #1515
    • Worked on the issue npm publish fails on latest when next exists #1531
    • Worked on the issue Cardano transactions are not all signed in testing-sanchonet #1537
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue P2P threat modeling and risk analysis #1350

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week the Mithril team announced the release of a new Mithril distribution 2408.0. This release includes several critical updates and enhancements, such as improved support for stake distribution, Mithril era markers retrieval in the Pallas chain observer, enhanced support for the Conway era and Sanchonet network, as well as various bug fixes and performance improvements. +In addition, the team has made changes to the Mithril client CLI, changing the log output from stdout to stderr from v0.7.0. This announcement was made in the developer blog post.

    The team kept implementing the data type for certifying Cardano transactions within Mithril networks: they completed the support for the verification in the browser with the WASM client, they worked on enhancing the associated client CLI API, and implemented smoke tests. Additionally, the team has activated the signature of Cardano transactions on the testing-sanchonet network, and they have investigated a bug that prevents the signature of some transactions on this network.

    Finally, the team worked on reorganizing the repository structure, fixed an issue with test folder generation on MacOS, and worked on some documentation improvements.

    Low level overview

    • Released the new distribution 2408.0
    • Publication of a dev blog post about the Mithril SanchoNet network release.
    • Publication of a dev blog post about a breaking change in the Mithril client CLI.
    • Completed the issue Implement Cardano Transactions commands in the client binary #1469
    • Completed the issue Implement Cardano Transactions verification in the WASM client #1470
    • Completed the issue Some end to end tests are flaky in the CI #1147
    • Completed the issue Release 2408 distribution #1500
    • Completed the issue Unify test folder generation #1508
    • Completed the issue Adapt Mithril Client multi-platform test for Cardano Transactions #1510
    • Completed the issue Document Mithril signer footprint #1519
    • Completed the issue Add a runbook for running Client multi-platform tests #1530
    • Completed the issue Update workflow github actions to node-20 #1520
    • Worked on the issue Cardano transactions are not all signed in testing-sanchonet #1537
    • Worked on the issue Make HTTP server tests more robust #1524
    • Worked on the issue Stabilize namings in Cardano Transactions API #1535
    • Worked on the issue Reorganize crates in the repository #1528
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue P2P threat modeling and risk analysis #1350
    + + + + \ No newline at end of file diff --git a/tags/mithril/page/5/index.html b/tags/mithril/page/5/index.html new file mode 100644 index 0000000000..723eb74389 --- /dev/null +++ b/tags/mithril/page/5/index.html @@ -0,0 +1,26 @@ + + + + + +63 posts tagged with "mithril" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    63 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They worked on enhancing the client CLI output and almost completed the support for the verification of Cardano transactions in the browser with the WASM client. The team also worked on a new feature of the Pallas chain observer to support stake distribution retrieval, and fixed the majority of the flakiness occurring in the CI end-to-end tests. Additionally, they have deployed the new Mithril network running on SanchoNet.

    Finally, the team created a new example crate for using the client library to verify Cardano transactions, kept working on the threat modeling and risk analysis for the Mithril network, and completed their new tool for automatic documentation generation for the CLIs.

    Low level overview

    • Worked on the issue Implement Cardano Transactions commands in the client binary #1469
    • Worked on the issue Implement Cardano Transactions verification in the WASM client #1470
    • Worked on the issue Some end to end tests are flaky in the CI #1147
    • Completed the issue Re-spin Sanchonet network #1503
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue Add signing capabilities to the root route of the aggregator #1496
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Completed the issue Add an example crate for the CardanoTransactions type #1495
    • Worked on the issue Unify test folder generation #1508
    • Completed the issue Generate automatic documentation for CLIs #1471

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the upgrade of the client library and the CLI to support the verification of Cardano transactions. They also released the new Mithril network running on SanchoNet. Additionally, the team rolled out a new feature of the Pallas chain observer (that now supports the retrieval of Mithril era markers), and kept investigating some flakiness occurring in the CI end-to-end tests.

    Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and updated the Mithril network architecture documentation.

    Low level overview

    • Published a development blog post Mithril SanchoNet network released
    • Completed the issue Implement transactions verification in client library #1468
    • Completed the issue Implement Cardano Transactions commands in the client binary #1469
    • Completed the issue Create a test network on SanchoNet #1173
    • Completed the issue Update Mithril network architecture documentation #1488
    • Completed the issue Upgrade http dependency #1474
    • Completed the issue Extract database feature from common crate #1492
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue Some end to end tests are flaky in the CI #1147
    • Worked on the issue Add an example crate for the CardanoTransactions type #1495
    • Worked on the issue Generate automatic documentation for CLIs #1471

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team kept implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the aggregator routes responsible for generating proofs of membership for a list of Cardano transactions and for listing produced artifacts. Additionally, they worked on extending the Mithril client library to support the verification of Cardano transactions, and on the creation of the new Mithril network running on SanchoNet.

    Finally, the team kept working on the threat modeling and risk analysis for the Mithril network and investigated some flakiness occurring in the end-to-end tests in the CI.

    Low level overview

    • Completed the issue Implement proof generation route in the aggregator #1467
    • Completed the issue Implement artifact routes in the aggregator #1478
    • Completed the issue Enhance ImmutableFile list computation resilience #1450
    • Completed the issue Add WASM client step in Mithril Client multi-platform test #1408
    • Completed the issue Enhance end to end test for Cardano hard forks #1464
    • Worked on the issue Implement transactions verification in client library #1468
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue Some end to end tests are flaky in the CI #1147
    • Worked on the issue Handle cancellation of certificate verification in WASM client #1480
    • Worked on the issue Upgrade http dependency #1474
    • Worked on the issue Generate automatic documentation for CLIs #1471

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued implementing a new data type for certifying Cardano transactions within Mithril networks. They completed the signature of the transactions set and implemented the aggregator route, responsible for generating proofs of membership for a list of Cardano transactions. Additionally, they finalized the manual workflow to test the NPM client package in the CI and enhanced the resilience of computing the list of immutable files in a Cardano node database. The team also expanded the coverage of end-to-end tests in the CI to accommodate multiple versions of the Cardano node and various hard fork scenarios.

    Finally, they completed the enhanced node communications between Mithril and Cardano for retrieving UTXOs and kept working on the threat modeling and risk analysis for P2P networking.

    Low level overview

    • Completed the issue Light Wallet: Compute message to sign for CardanoTransactions #1436
    • Completed the issue Light Wallet: Implement proof generation route in the aggregator #1467
    • Completed the issue Enhance ImmutableFile list computation resilience #1450
    • Completed the issue Enhance end to end test for Cardano hard forks #1464
    • Completed the issue Add WASM client step in Mithril Client multi-platform test #1408
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue Generate automatic documentation for CLIs #1471

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released the initial version of the Mithril client NPM package, enabling developers to integrate core Mithril features into their web applications running in a browser. They also released a new distribution, 2403.1, which includes support for Cardano node version 8.7.3, a new chain observer based on the Pallas library, along with bug fixes and performance improvements.

    The team kept implementing a new entity type for certifying the Cardano transactions set in Mithril networks and made good progress on retrieving transactions and combining them into a Mithril protocol message. Additionally, they finished implementing a mock aggregator and using it in the browser tests for the Mithril client in WASM.

    Finally, they worked on enhancing node communications between Mithril and Cardano and continued working on threat modeling and risk analysis for P2P networking.

    Low level overview

    • Release of the mithril-client npm package library crate
    • Publication of a dev blog post about the released Mithril client npm package
    • Released the new distribution 2403.1
    • Completed the issue Light Wallet: Gather transactions from immutable files and store them in the database #1435
    • Completed the issue Light Wallet: Implement browser tests with fake aggregator #1407
    • Completed the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Light Wallet: Compute message to sign for CardanoTransactions #1436
    • Worked on the issue Enhance ImmutableFile list computation resilience #1450
    • Worked on the issue Add WASM client step in Mithril Client multi-platform test #1408
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue Add warn missing docs in mithril client cli #1439
    + + + + \ No newline at end of file diff --git a/tags/mithril/page/6/index.html b/tags/mithril/page/6/index.html new file mode 100644 index 0000000000..e60380d237 --- /dev/null +++ b/tags/mithril/page/6/index.html @@ -0,0 +1,26 @@ + + + + + +63 posts tagged with "mithril" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    63 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team completed the implementation of the client in the explorer, enabling direct certificate verification from the browser. They initiated the implementation of a new entity type for signing to certify the Cardano transactions set in Mithril networks. The team also upgraded the devnet to support the Conway era and activated the Mithril era marker reader on the Cardano chain in the end-to-end test. Additionally, they kept implementing a mock aggregator to strengthen Mithril client tests in WASM and continued working on threat modeling and risk analysis for P2P networking.

    Finally, they worked on enhancing node communications between Mithril and Cardano, and they started rolling out the Cardano node in the infrastructure to version 8.7.3.

    Low level overview

    • Completed the issue Light Wallet: Create new signed entity type for CardanoTransactions #1434
    • Completed the issue Implement the mithril client WASM package in the explorer #1409
    • Completed the issue Activate babbage/conway eras on devnet #1425
    • Completed the issue Transition Mithril Era Reader adapter to CardanoChain in devnet #1428
    • Completed the issue Upgrade Cardano node to 8.7.3 #1410
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team worked on implementing the client in the explorer to enable direct verification of certificates from the browser. They also addressed the configuration issue in the signer node service, which occasionally resulted in signers not registering their keys after a restart. Additionally, the team kept implementing a mock aggregator to strengthen Mithril client tests in WASM, continued working on threat modeling and risk analysis for P2P networking, and progressed with the devnet upgrade to support the Conway era.

    Finally, they worked on enhancing node communications between Mithril and Cardano and completed the upgrade of the Cardano node topology used in the Mithril networks' infrastructure.

    Low level overview

    • Published a development blog post Mithril signer service new configuration
    • Completed the issue Simplify Mithril client CLI download command #1406
    • Completed the issue Make all infra Cardano nodes use P2P topology #1405
    • Completed the issue Implement ChainObserver adapter configuration in aggregator #1396
    • Completed the issue Fix signer node service setup #1404
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Implement the mithril client WASM package in the explorer #1409
    • Worked on the issue Light Wallet: Implement browser tests with fake aggregator #1407
    • Worked on the issue Activate babbage/conway eras on devnet #1425
    • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Enhance Mithril/Cardano node communication #1315

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team completed aggregator optimizations, enabling the certification of new data types without introducing a new era. They also facilitated the selection of these data types through a simple configuration parameter. Additionally, the team started implementing a mock aggregator to strengthen Mithril client tests in WASM, kept working on threat modeling and risk analysis for P2P networking, and progressed with the implementation of a testing Mithril network for SanchoNet.

    Finally, they worked on some optimizations and refactoring of the Mithril client CLI and started upgrading the Cardano node topology used in the Mithril networks' infrastructure.

    Low level overview

    • Completed the issue Implement open_message timeout in aggregator #1387
    • Completed the issue Implement configurable signed entity types in aggregator #1388
    • Completed the issue Enhance machine readable logs in client #1234
    • Completed the issue Manual publication to npm registry with GitHub action #1411
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on SanchoNet #1173
    • Worked on the issue Implement a fake standalone aggregator #1397
    • Worked on the issue Simplify Mithril client CLI download command #1406
    • Worked on the issue Make all infra Cardano nodes use P2P topology #1405
    • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
    • Worked on the issue Enhance Mithril/Cardano node communication #1315

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team completed the adaptation of the Mithril client library for WASM compilation, providing a JavaScript API for it. They also completed the proof of concept to demonstrate that a subset of Cardano transactions is part of the entire transactions set. The refactoring of the Mithril client CLI with the Mithril client library was also finalized. Additionally, the team kept working on the threat modeling and risk analysis for P2P networking, along with progressing in the implementation of a testing Mithril network for SanchoNet.

    Finally, they started implementing an expiration mechanism for the open messages in the aggregator, and they completed the upgrade of Rust dependencies with breaking changes.

    Low level overview

    • Completed the issue Light Wallet: Implement mithril-client WASM library #1336
    • Completed the issue Light Wallet: Certify Cardano UTXO/transactions set PoC #1393
    • Completed the issue Refactor mithril-client-cli with mithril-client library #1335
    • Worked on the issue Implement open_message timeout in aggregator #1387
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Enhance machine readable logs in client #1234
    • Worked on the issue Create a test network on SanchoNet #1173
    • Completed the issue Upgrade breaking changes crates #1357
    • Worked on the issue Enhance Mithril/Cardano node communication #1315

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team made progress in adapting the Mithril client library for WASM compilation and providing a JavaScript API for it. They also completed the optimization of the aggregator's performance. Additionally, the team initiated the implementation of a testing Mithril network for SanchoNet and conducted threat modeling and risk analysis for P2P networking.

    Finally, they enhanced the developer experience of the Mithril client library by providing ready-to-run examples in the repository and implemented a workflow to manually publish libraries on crates.io.

    Low level overview

    • Worked on the issue Light Wallet: Release mithril-client WASM library #1336
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Create a test network on Sanchonet #1173
    • Worked on the issue Upgrade breaking changes crates #1357
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Completed the issue Enhance aggregator REST API performances #1327
    • Completed the issue Signer runtime is stuck for some SPO #1312
    • Completed the issue Make mithril-client examples full crates #1385
    • Completed the issue Manual publication to crates.io with GitHub action #1380
    • Completed the issue Remove sqlite dependency from mithril-client crate #1390
    + + + + \ No newline at end of file diff --git a/tags/mithril/page/7/index.html b/tags/mithril/page/7/index.html new file mode 100644 index 0000000000..46fc893431 --- /dev/null +++ b/tags/mithril/page/7/index.html @@ -0,0 +1,26 @@ + + + + + +63 posts tagged with "mithril" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    63 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released the initial version of the Mithril client library, enabling developers to integrate core Mithril features into their applications. They also released a new distribution, 2347.0, which includes support for slim certificate production by the aggregator, along with bug fixes and performance improvements.

    The team also introduced the initial version of Cardano/Mithril node communication enhancements, implemented by TxPipe as part of the Catalyst project. They made progress in decentralizing Mithril networks, including testing the Mithril peer-to-peer (P2P) relay on a test network and conducting threat modeling and risk analysis for P2P networking. Additionally, they started working on adapting the Mithril client library for WASM compilation and made progress in optimizing aggregator performance.

    Finally, they fixed inaccuracies in the verbosity level of logs across most nodes and worked on troubleshooting for some users.

    Low level overview

    • Release of the mithril-client library crate
    • Publication of a dev blog post about the released Mithril library
    • Released the new distribution 2347.0
    • Worked on the issue Light Wallet: Release mithril-client WASM library #1336
    • Worked on the issue Enhance Mithril/Cardano node communication #1315
    • Worked on the issue P2P threat modeling and risk analysis #1350
    • Worked on the issue Enhance aggregator REST API performances #1327
    • Worked on the issue Signer runtime is stuck for some SPO #1312
    • Completed the issue Support P2P relay in infrastructure #1361
    • Completed the issue Make Cardano node version custom in CI/CD #1355
    • Completed the issue Manually deploy a test Mithril network #1356
    • Completed the issue mithril-client verbosity not following usage menu #1325
    • Completed the issue Error message for mithril-client snapshot download #1375

    · One min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team made progress in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, completing the first prototype implementation of the Mithril relay, which enables P2P signature broadcasting. They also made progress in optimizing the performance of the aggregator. Additionally, the team completed some enhancements on the CI/CD that will help manually deploy experimental Mithril networks for SanchoNet, as well as for the new P2P network layer.

    Finally, they investigated occasional runtime issues causing delays for certain SPOs and started preparing for the next distribution release.

    Low level overview

    • Completed the issue Prototype a P2P relay with libp2p #1326
    • Worked on the issue Enhance aggregator REST API performances #1327
    • Worked on the issue Signer runtime is stuck for some SPO #1312
    • Completed the issue Manually deploy a test Mithril network #1356
    • Completed the issue Make Cardano node version custom in CI/CD #1355
    • Worked on the issue Support P2P relay in infrastructure #1361
    • Completed the issue mithril-client fails to extract archive #1352

    · One min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team completed the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof-of-concept, achieving the implementation of P2P signatures broadcast with the relay in the end-to-end tests. Additionally, the team completed the proof-of-concept for the deterministic computation of the UTXO/transactions set from the immutable files.

    Finally, they continued addressing some performance issue associated with the 'release-mainnet' aggregator, and fixed a bug with the tool used to process batch certificate hash re-computation.

    Low level overview

    • Worked on the issue Prototype a P2P relay with libp2p #1300
    • Completed the issue Light Wallet: Release mithril-client library #1311
    • Completed the issue Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283
    • Completed the issue release-mainnet aggregator is unreachable #1310
    • Completed the issue Fix certificate hashes re-computation in aggregator #1343
    • Completed the issue Remove unstable tag in unstable release #1235
    • Worked on the issue Enhance aggregator REST API performances #1327
    • Worked on the issue Signer runtime is stuck for some SPO #1312

    · One min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team continued working on completing the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, achieving the implementation of a very basic working demo with a peer-to-peer publish-subscribe (pub-sub) mechanism. Additionally, the team continued working on the deterministic computation of the UTXO/transactions set from the immutable files.

    Finally, they resolved the naming issue of the Docker package responsible for storing images of the new Mithril client CLI, and continued addressing a performance issue associated with the 'release-mainnet' aggregator.

    Low level overview

    • Worked on the issue Prototype a P2P relay with libp2p #1300
    • Worked on the issue Light Wallet: Release mithril-client library #1311
    • Worked on the issue Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283
    • Worked on the issue release-mainnet aggregator is unreachable #1310
    • Completed the issue Client Docker package is incorrect #1322

    · One min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept. They progressed with the adaptation of the Mithril client as a library, and worked on its full WASM compatibility in a proof of concept. The team kept working on the deterministic computation of the transactions from the immutable files, and fixed some unreachability issue on the release-mainnet aggregator.

    Finally, they implemented new Docker images that build the Mithril nodes on the 'devnet' faster and fixed some regressions in the Mithril client CLI.

    Low level overview

    • Worked on the issue P2P Networking - Proof of Concept #1300
    • Completed the issue Build mithril-common and mithril-client in WASM PoC #1284
    • Completed the issue Fix devnet Mithril Docker images [#1272](https://github.com/input-output-hk/mithril/issues/1272
    • Worked on the issue Light Wallet: Release mithril-client library #1311
    • Worked on the issue Compute deterministic Cardano UTxO set PoC #1283
    • Worked on the issue release-mainnet aggregator is unreachable #1310
    • Completed the issue Client regressions in snapshot list and download #1321
    + + + + \ No newline at end of file diff --git a/tags/mithril/page/8/index.html b/tags/mithril/page/8/index.html new file mode 100644 index 0000000000..96bccf1b7a --- /dev/null +++ b/tags/mithril/page/8/index.html @@ -0,0 +1,26 @@ + + + + + +63 posts tagged with "mithril" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    63 posts tagged with "mithril"

    View All Tags

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team released a new distribution 2342.0. This release includes support for SPO tickers displayed in the Mithril explorer and the ability to produce slim Docker images for Mithril nodes.

    They also kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, progressed with the adaptation of the Mithril client as a library, and worked on the deterministic computation of the UTXO set from the immutable files.

    Finally, they fixed the bottleneck of the key registration in the aggregator, investigated some unreachability on the release-mainnet aggregator, and enhanced the Mithril explorer UI.

    Low level overview

    • Worked on the issue P2P Networking - Proof of Concept #1300
    • Completed the issue Make mithril-client crate a library #1141
    • Worked on the issue Compute deterministic Cardano UTxO set PoC #1283
    • Completed the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
    • Worked on the issue Fix devnet Mithril Docker images #1272
    • Worked on the issue release-mainnet aggregator is unreachable #1310
    • Worked on the issue Build mithril-common and mithril-client in WASM PoC #1284
    • Completed the issue Display a summary of signers before the full list in explorer #1133
    • Completed the issue Add certificates list in explorer #1184
    • Completed the issue CoreVerifier setup does not compute total_stake correctly #1306

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team started working on the decentralization of the Mithril networks with a proof of concept of peer-to-peer (P2P) networking between nodes. The team kept working on the adaptation of the Mithril client as a library, on the deterministic computation of the transaction history of an address from the immutable files, and on the refactoring that will fix the bottleneck of the key registration in the aggregator. Additionally, they published a security advisory for the Mithril relay.

    Finally, they enhanced the CI/CD to publish multiple packages to crates.io and started improving the developer experience with the Mithril devnet.

    Low level overview

    • Published the security advisory Mithril relay could expose Cardano block producer internal IP when updated #GHSA-9m3h-72xj-x2gq
    • Worked on the issue P2P Networking - Proof of Concept #1300
    • Worked on the issue Make mithril-client crate a library #1141
    • Worked on the issue Compute deterministic Cardano transactions history PoC #1283
    • Worked on the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
    • Completed the issue Publish multiple packages to crates.io #1298
    • Completed the issue Rename public key published in releases #1292
    • Completed the issue Mithril networks infrastructure maintenance #1218
    • Worked on the issue Fix devnet Mithril Docker images #1272

    · One min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team worked on the distribution of the Mithril client as a library that will be distributed on crates.io, the Rust dependencies repository. The team also worked on the deterministic computation of the transaction history of an address from the immutable files and started fixing a bottleneck in the aggregator that limits the ingestion of signatures.

    Finally, they kept working on the activation of Cloudflare on the infrastructure and fixed some bugs in the Nix CI.

    Low level overview

    • Worked on the issue Make mithril-client crate a library #1141
    • Worked on the issue Compute deterministic Cardano transactions history PoC #1283
    • Worked on the issue ProtocolKeyRegistration creates performance bottleneck in aggregator #1187
    • Completed the issue Update Rust compiler in nix CI #1282
    • Worked on the issue Mithril networks infrastructure maintenance #1218
    • Worked on the issue Activate Cloudflare protection of infrastructure #1230

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team updated a proposal for implementing Mithril in a light wallet and created a discussion on implementing Mithril in a light wallet to receive feedback and contributions from the community.

    They also completed a proof of concept to run a Mithril client in a browser with WASM and worked on enhancing the explorer UI with SPO tickers displayed next to the pool IDs. Additionally, the team finalized a tool for benchmarking aggregator performance over a range of signer and client loads and for visualizing the results of these benchmarks.

    Finally, the team added a root page to the aggregator endpoint, created a status page for the Mithril networks, and added a section about KES key rotation in the signer documentation for SPOs.

    Low level overview

    • Created the discussion Implement Mithril in a light wallet #1273
    • Completed the issue Run client in browser WASM PoC #1254
    • Completed the issue Benchmark aggregator performances #1220
    • Worked on the issue Add SPO tickers in explorer #1185
    • Completed the issue Add a non 404 status code on the aggregator endpoint #1103
    • Completed the issue Use source attribute in errors #1265
    • Completed the issue Create a SPO checklist for KES keys update #1267
    • Completed the issue Configure status page and alerting #1277
    • Completed the issue Upgrade dependencies #1274

    · One min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released a new distribution 2337.0, which includes the following enhancements: support for zstandard compression of snapshot archives, support for the Cardano node version in snapshot metadata, and support for recording snapshot download statistics in the aggregator.

    They also completed the refactoring and standardization of the errors in the Mithril nodes and published an Architectural decision record on the documentation website. Additionally, they kept working on adding Cloudflare protection to the infrastructure.

    Finally, the team fixed a performance issue on the stress test tool for the aggregator and made some improvements to the documentation for SPOs.

    Low level overview

    • Completed the issue Release new 2337 distribution #1219
    • Completed the issue Errors refactoring #798
    • Completed the issue Client traffic creates performance bottleneck in aggregator #1207
    • Completed the issue Record statistics about the downloaded snapshot in the aggregator #1127
    • Completed the issue Create a SPO checklist for KES keys update #1267
    • Worked on the issue Spike: Run client in browser WASM PoC #1254
    • Worked on the issue Benchmark aggregator performances #1220
    • Worked on the issue Activate Cloudflare protection of infrastructure #1230
    + + + + \ No newline at end of file diff --git a/tags/mithril/page/9/index.html b/tags/mithril/page/9/index.html new file mode 100644 index 0000000000..56ab47b2d6 --- /dev/null +++ b/tags/mithril/page/9/index.html @@ -0,0 +1,26 @@ + + + + + +63 posts tagged with "mithril" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    63 posts tagged with "mithril"

    View All Tags

    · One min read
    Jean-Philippe Raynaud

    High level overview

    This week, the Mithril team has completed the refactoring of the terraform deployment workflows in GitHub actions, and the implementation of snapshot compression parameters in the deployments. They kept working on the refactoring and standardization of the errors in the Mithril nodes. The team also completed the implementation of Cloudflare protection for the aggregator infrastructure and started working on its deployment and activation in the Mithril networks. Additionally, they worked on recording download statistics on the aggregator which will be used to produce usage reports.

    Finally, they kept working on the aggregator performance bottleneck that occurs with high client traffic and started creating a new distribution.

    Low level overview

    • Completed the issue Add snapshot compression parameters in infrastructure deployments #1200
    • Completed the issue Add Cloudflare protection of infrastructure #986
    • Worked on the issue Record statistics about the downloaded snapshot in the aggregator #1127
    • Worked on the issue Error refactoring #798
    • Worked on the issue Activate Cloudflare protection of infrastructure #1230
    • Worked on the issue Release new 2337 distribution #1219
    • Completed the issue Upgrade dependencies #1238

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team has released a new distribution 2335.0 which brings enhancements to the client: support for simultaneous downloading and unpacking of the snapshot archives, support for one line command restoration of the latest snapshot, and availability of machine readable progress information.

    They have also worked on snapshots enhancements: implementation of the zstandard compression to produce smaller archives, and providing the version of the Cardano node used to create the archive in the snapshot artifacts. They have completed the second phase of the implementation of the stress test tool to benchamrk the aggregator. Additionally, they have kept working on refactoring and standardizing errors in the Mithril nodes.

    Finally, they have worked on adding Cloudflare protection to the infrastructure, and they have fixed some bugs that occurred during restoration of a snapshot by a client.

    Low level overview

    • Completed the issue Use 'zstandard' compression for snapshot archives #876
    • Completed the issue Design & implement stress test tool for aggregator - phase 2 #1155
    • Completed the issue Provide progress information with '--json' option in Client #1095
    • Completed the issue Make client download and extract the archive simultaneously #1115
    • Completed the issue Add aggregator Cardano node version in snapshot artifact #948
    • Completed the issue Make Cardano node version part of the Mithril network configuration #947
    • Completed the issue Post deployment 'mainnet' infrastructure #1091
    • Worked on the issue Errors refactoring #798
    • Worked on the issue Add Cloudflare protection of infrastructure #986
    • Completed the issue Failed to restore recent snapshot with strange error #1160
    • Completed the issue Update 'ed25519-dalek' to '2.0.0' #1188
    • Completed the issue Add target networks blocks in release notes #1151
    • Completed the issue Fix end to end 'wait_for_the_expected_time' test #1191
    • Completed the issue Fix docs 'git checkout' command #1174

    · One min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team created an explorer page with the registered signers to give recognition to the SPOs already running on mainnet. They also worked on refactoring and standardizing errors in the Mithril nodes, and they enhanced the clarity and reduced verbosity of the logs for the signer and aggregator nodes. Additionally, they started working on the implementation of zstandard compression of the snapshot archive, and streaming its download and decompression in the client.

    Finally, they implemented machine readable progress information in the client, and streamlined the process of verifying the registration status of a signer.

    Low level overview

    • Completed the issue Create explorer page with registered signers #1097
    • Completed the issue Simplify logs on the Signer/Aggregator #1106
    • Completed the issue Refactor (de)serialization of crypto entities #668
    • Completed the issue Mithril client last snapshot download #1078
    • Completed the issue Use the '/signers/registered' route to verify if a signer is registered #1152
    • Worked on the issue Provide progress information with '--json' option in Client #1095
    • Worked on the issue Use 'zstandard' compression for snapshot archives #876
    • Worked on the issue Make client download and extract the archive simultaneously #1115

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team completed the Mithril protocol’s mainnet beta launch: the release-mainnet network is now consistently producing new certificates and snapshots! The team has released a new distribution 2331.1 which includes some optimizations and bug fixes: the bootstrap time of a Cardano node restored from a Mithril snapshot has been significantly reduced, and a bug that made the aggregator produce corrupted archives has been fixed. They also kept working on the implementation of the stress test tool for benchmarking the aggregator: the first phase has been implemented, as well as a monitoring feature. Additionally, they kept implementing the refactoring of the serialization/deserialization of the entities of the cryptographic library, and working on the post deployment of the mainnet infrastructure.

    Finally, they completed the rewriting and enhancements of the documentation website, and they completed the runbook for operating a production Mithril network.

    Low level overview

    • Released the new distribution 2331.1
    • Completed the epic Release 'mainnet' Mithril network #918
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Completed the issue Design & implement basic stress test tool for aggregator - phase 1 #991
    • Worked on the epic Post deployment 'mainnet' infrastructure #1091:
      • Completed the issue Create Production Infrastructure Runbook #1085
      • Completed the issue Ingest 'mainnet' metrics/logs in Grafana #1122
    • Worked on optimizations:
      • Completed the issue Add a 'clean' file to extracted database in client #1131
      • Worked on the issue Create explorer page with registered signers #1097
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on bugs:
      • Completed the issue Client fails to unpack some snapshot archive #1137
      • Completed the issue The 'release-preprod' network stopped producing certificates #1114
      • Completed the issue The 'release-mainnet' network does not show up in the explorer #1111
    • Worked on dependencies:
      • Completed the issue Upgrade Cardano node to '8.1.2' #1090
    • Worked on troubleshooting:
      • Completed the issue Signer can't sign with 'Invalid signature for party' error #1125

    · 2 min read
    Jean-Philippe Raynaud

    High level overview

    The Mithril team launched Mithril protocol’s mainnet beta: the release-mainnet network is now open for signer registrations, and its genesis certificate has been created. The team is monitoring the network, and expects it to start producing certificates during the next Cardano epoch.

    They have released a new distribution 2329.0, which is running on the release-mainnet network. They also kept working on the implementation of the stress test tool for benchmarking the aggregator. The team kept working on the refactoring of the serialization/deserialization of the entities of the cryptographic library. Additionally, they completed the cleanup of the legacy store adapters in the aggregator.

    Finally, they have worked on enhancing the documentation for onboarding SPOs and setting up a Mithril signer, and fixing installation bugs of the binary artifacts produced in the CI.

    Low level overview

    • Created the dev blog post Mithril Protocol’s Mainnet Beta Launch
    • Released the new distribution 2329.0
    • Closed the epic that prepares the Mithril infrastructure for mainnet #767:
      • Completed the issue Deploy 'mainnet' infrastructure #988
      • Completed the issue Handle Secrets management #989
    • Worked on the epic Release 'mainnet' Mithril network #918
      • Completed the issue Prepare SPO on-boarding guide #1049
    • Worked on the epic Benchmark performances of Mithril Aggregator #904:
      • Worked on the issue Design & implement basic stress test tool for aggregator #991
    • Worked on optimizations:
      • Completed the issue Enhance the configuration of Mithril relay #1080
      • Completed the issue Remove legacy store adapters from aggregator #1053
      • Completed the issue Add a 'sign' sub-command to 'genesis' command in aggregator #1081
    • Worked on refactoring:
      • Worked on the issue Refactor (de)serialization of crypto entities #668
    • Worked on documentation:
      • Completed the issue Enhance 'Run a Mithril Signer node (SPO)' guide #1055
    • Worked on bugs:
      • Completed the issue Shared library error in CI binaries #1073
      • Completed the issue Debian package does not install cleanly on older ubuntu versions #834
      • Completed the issue Aggregator panics with new (de)serialization of 'ProtocolVerificationKey' #1083
    + + + + \ No newline at end of file diff --git a/tags/network/index.html b/tags/network/index.html new file mode 100644 index 0000000000..c039e87877 --- /dev/null +++ b/tags/network/index.html @@ -0,0 +1,119 @@ + + + + + +35 posts tagged with "network" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    35 posts tagged with "network"

    View All Tags

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 65

    Karl Knutsson (CF) fixed a bug which prevented a node using bootstrap peers +to sync using them, for a more detailed description see ouroboros-network#4899.

    Earlier this year we fixed bugs in IOSimPOR which prevent us from using it in +ouroboros-network (io-sim#153, io-sim#159); since +ouroboros-network#4872 was merged we have a large number of tests that are +using IOSimPOR's schedule exploration. In the last sprint we fixed +some bugs discovered by IOSimPOR in ouroboros-network:

    We continued working on new tx-submission logic: ouroboros-network#3311 as +well as on Genesis. The work on Genesis is split in a few PRs which are +currently in review process:

    • Big Ledger Peer Targets for Genesis - ouroboros-network#4832
    • Feed peer selection governor with big ledger peers obtained from a snapshot - ouroboros-network#4850
    • Introduction of serialization instances in support of ledger peer snapshot - ouroboros-network#4851
    • Verification of big ledger peer snapshot file - [ouroboros-network#4888]

    High-level overview of sprint 64

    Karl Knutsson (CF) modified peer sharing behaviour to not share peers whith +which connections failed, see ouroboros-network#4883 for more details.

    We fixed inbound governor counters tracer, see ouroboros-network#4885.

    · 3 min read
    Marcin Szamotulski

    High-level overview of sprint 60

    Edited on 8th of May: new EGK counters will be included in `cardano-node-8.9.3`, added links to `cardano-node-8.9.3` PR and `ouroboros-network-0.15` release.

    Peer-Sharing Improvements

    We continued working on improving peer sharing. As part of this work light +peer sharing (e.g. including inbound peers to the known set of outbound +governor), was restructured. Now, sending more peers than what was requested by +the peer-sharing client is a protocol error, and the connection will be terminated; +This hasn't been a resource attack vector since we always limited the number of +peers taken by the outbound-governor and the number of peers has always been +limited by the size of the mux ingress queue reserved for peer-sharing +mini-protocol. These changes will be released in cardano-node-8.9.3. See +ouroboros-network#4868

    We also merged the work on outbound governor counters, which initially started +as just an extension for peer-sharing counters but turned into a larger +refactorisation. We announced it in the previous report. These changes will +be included in 8.9.3. See ouroboros-network#4845, +ouroboros-network#4861.

    Light peer sharing (inbound peers) refactorisation allowed us to refactor the +inbound governor loop: we restructured it so that the internal state is kept +pure (and thus not shared with other threads), while the public part is +computed incrementally (with good amortised costs and thus leading to good performance) and exposed to other +components (e.g. the outbound-governor), see ouroboros-network#4871 (which +is built on top of ouroboros-network#4868).

    The PR [cardano-nod#5831] integrates ouroboros-network-0.15 with +cardano-node-8.9.x branch. All included PRs / issues in +ouroboros-network-0.15 are listed here.

    Genesis

    We implemented the API needed by the consensus layer for Genesis; see +ouroboros-network#4815, ouroboros-network#4846.

    We continued working on outbound governor changes to support Genesis:

    Bootstrap Peers

    Karl Knutsson ([CF]) found and fixed some problems related to big-ledger and +public root peers. Here's an excerpt from the changelog file:

    • updated the big-ledger retry state in case of an exception;
    • reset public root retry state when transitioning between LedgerStateJudgements;
    • reduced public root retry timer;
    • don't classify a config file with public-root/bootstrap-peers IP addresses only +as a DNS error. +See ouroboros-network#4867.

    Churn

    We merged a refactorisation which synchronises churn with the outbound +governor, see ouroboros-network#4617.

    Minor Improvements

    A few other minor improvements were merged:

    Testing

    We added quickcheck-monoids package and also submitted an upstream patch to +QuickCheck to include a version of the standard All / Any monoids, which +are helpful when writing more complex properties. We will use +quickcheck-monoids until the upstream PR will be released. It will be +available from CHaP. See quickcheck#397.

    · 4 min read
    Marcin Szamotulski

    High-level overview of sprint 58 and sprint 59

    Releases

    We released cardano-node-8.9.1, and we tagged a soon to be released +cardano-node-8.9.2 +The 8.9.2 release will have a fixed peer sharing support, which we +incidentally broke in 8.9.1. We expanded our test suite to cover discovered +bugs (see below for more details). Please also see the release +tab in our project to see which PRs / issues were +included in a given release, the following mapping might also be useful:

    • ouroboros-network-0.13.1.0 -> cardano-node-8.9.1
    • ouroboros-entwork-0.14.0.0 -> cardano-node-8.9.2

    Genesis

    We continued working on network Genesis support:

    • ouroboros-network#3396 - churn policy for Genesis;
    • ouroboros-network#4813 - outbound governor support for Genesis;
    • support for cardano-cli to write a big ledger peers snapshot to disk and +for cardano-node to pass it to ouroboros-network.

    As well as a feature required by consensus:

    TxSubmission

    Only a little progress was made due to one of us being on vacation.

    Churn and EKG metrics

    While working on ouroboros-network#4815, we addressed technical debt +in churn. The PR removes implicit synchronisation (in terms of delays) in +favour of explicit synchronisation with the outbound governor. The PR extends +EKG counters traced by the node. See below for some graphs.

    Documentation

    We updated the documentation on peer sharing, see +cardano-node-wiki#44.

    Low level details

    Peer Sharing Testing

    We wrote a testing scenario for peer sharing, which simulates a node setup: +A -> B <- C, where neither of the nodes B and C have any local roots; they only learn about other nodes through (light) peer sharing. B learns +about A and C because they connect to it, while C should learn about A +through peer sharing. This test scenario should prevent us from breaking peer sharing in the +future in some obvious ways. In the future, we will also work on extending our +test suite with peer sharing in mind. See ouroboros-network#4839, +ouroboros-network#4841.

    EKG / Prometheus Counters

    Note that this is in progress, so some things might still change.

    We will provide counters for active (also known as hot) peers, +established (e.g. hot & warm) peers and known (e.g. hot, warm and +cold) peers. This is the same way one specifies targets in the node's +configuration. In addition, the three groups are split into five categories:

    • ledger peers
    • big ledger peers
    • local root peers
    • bootstrap peers
    • shared peers

    In addition, we also provide a counter for root peers, which counts ledger peers, +big ledger peers, local roots and bootstrap peers, which correspond to the +root peers target TargetNumberOfRootPeers in the configuration.

    We also provide counters for ongoing promotions and demotions.

    Ledger peers are affected by TargetNumberOf{Known,Established,Active}Peers and TargetNumberOfRootPeers. +The gap between TargetNumberOfRootPeers and TargetNumberOfKnownPeers will +be filled either with ledger peers or peers, which the node discovered through +peer sharing. +Big ledger peers are affected by TargetNumberOf{Known,Established,Active}BigLedgerPeers.

    Below are some Grafana graphs from an experimental cardano-node branch:

    Deprecation policy

    The previous hot, warm / cold EKG counters will also be available, +although deprecated after the new ones are released. Sometime in the future +they will be removed.

    Grafana graphs

    The screenshots are from a node, which is configured without any bootstrap +peers, which is why all bootstrap metrics are 0. The node is configured with the following targets:

      "TargetNumberOfRootPeers": 60,
    "TargetNumberOfKnownPeers": 100,
    "TargetNumberOfEstablishedPeers": 40,
    "TargetNumberOfActivePeers": 15,
    "TargetNumberOfKnownBigLedgerPeers": 15,
    "TargetNumberOfEstablishedBigLedgerPeers": 10,
    "TargetNumberOfActiveBigLedgerPeers": 5,

    and has a small number of local root peers and one peer in its publicRoots +configuration.

    Active Peers Metrics

    P2P relays

    Established Peers Metrics

    P2P relays

    Known Peers Metrics

    P2P relays

    Churn Metrics

    P2P relays

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 57

    We released cardano-node-8.9.0 (which includes +ouroboros-newtork-0.12.0.0). This release contains the following network +upgrades:

    Soon we will release [cardano-node-8.9.1] (which includes +ouroboros-network-0.12.0.0). This release will contain:

    • Peer sharing improvements & fixes. Contributed and tested by Karl Knutsson CF.
    • cardano-ping updates to support NodeToNode_V13 & peer sharing.
    • Some smaller maintenance changes.

    The list of network features included in ouroboros-network-0.12.0.0 and +ouroboros-network-0.13.0.0 can be found here.

    We also continued working on tx-submission, ouroboros-network#3311. Mostly +working on the pure internal API for decision-making and testing it with +property-based tests. The next step is to get all the information needed to run +the decision logic in an efficient way and later write a mini-protocol client +which is using the new API and testing it.

    We also started working on thing to finalise the Genesis support from the +network. We have a PR under review, ouroboros-network#4832. We also started +to investigate how to support big ledger peer snapshots. This requires changes +in the topology file as well as cardano-node & ouroboros-network to +understand the snapshots; and on the other hand creation of such snapshots by +cardano-cli.

    Low-level summary

    This time everything was high-level, 😉.

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 56

    Cardano-Node, Cardano-API, Cardano-CLI

    In the last sprint, the network team was designated to take the Release +Engineering Role, as the coming release contains mostly network advances. +Armando Santos has been making progress on it. The following packages were +published to CHaP:

    and other ouroboros-network packages with minor changes. The following +packages were also published:

    The work on cardano-node is in progress, see cardano-node#5485

    We would like to thank Karl Knutsson (CF) for helping us to test the upcoming +cardano-node release.

    Ouroboros-Network

    We continued working on tx-submission, ouroboros-network#3311

    We started to execute an idea to put all configuration values used by the +diffusion layer Ouroboros.Network.Diffusion.Configuration module. Currently, +default values are spread in different repositories (e.g. cardano-node, +ouroboros-consensus). See ouroboros-network#4805.

    We restored how syncing works in bootstrap mode to get the same performance +characteristics, see ouroboros-network#4809, ouroboros-network#4810.

    We started working on Outbound-Governor Genesis mode, see +ouroboros-network#4813.

    Ouroboros-Consensus

    We requested to modify how bulk-sync mode works to make it use the same +mechanism that the newly added LedgerStateJudgement. See +ouroboros-consensus#958.

    Low-level summary

    We also addressed a minor issue regarding tracing LedgerStateJudgement +changes, see ouroboros-network#4816.

    + + + + \ No newline at end of file diff --git a/tags/network/page/2/index.html b/tags/network/page/2/index.html new file mode 100644 index 0000000000..836500f38c --- /dev/null +++ b/tags/network/page/2/index.html @@ -0,0 +1,101 @@ + + + + + +35 posts tagged with "network" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    35 posts tagged with "network"

    View All Tags

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 55

    This sprint the networking was nominated for the Cardano Release Engineer role and +we've been working on the integration of bootstrap peers with cardano-node. This +is a work in progress: cardano-node-5485. cardano-node-8.9 will be the first +node which supports the bootstrap peers feature, but we anticipate additional +improvements needed before this is used at scale.

    We disabled mean reward for new peers in the churn mechanism which was hurting +connection in remote destinations. Thanks to Karl Knutsson (CF) for +providing evidence and a patch. In future, this mechanism will be further +changed, but this requires more analysis. ouroboros-network#4800

    We continued working on tx-submission, ouroboros-network#3311

    We welcome Marcin Wójtowicz as part of the Networking +Team of Cardano Core Tech. He reviewed our documentation as part of his +onboarding process: ouroboros-network#4802.

    Andrew Westberg (DripDropz) corrected documentation regarding which +node-to-node protocol version introduced P2P.

    Low-level summary

    Open Source Contributions

    IOSim

    We released io-sim-1.4.1.0 with some new features & improvements:

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 54

    In this sprint, we merged the bootstrap peers (aka weak genesis) changes to +the ouroboros-network repository (ouroboros-network#4615). We continued +working on integration & testing it using an early development version of +cardano-node (cardano-node#5485).

    Andrew Westberg (DripDropz) noticed and fixed a mistake in the cddl spec which resulted in +misleading documentation; ouroboros-network#4790. The Handshake protocol flag +should be called initiatorOnlyDiffusionMode. Library authors providing +connectivity with other nodes via the node-to-node protocol are advised to review +their implementation.

    We continued working on the tx-submission decision logic; +ouroboros-network#3311.

    Karl Knutsson (CF) implemented:

    Open Source Contributions

    IOSim

    We released a new version of io-sim to Hackage:

    NoThunks

    We released a new version of nothunks to Hackage:

    Low-level summary

    · 2 min read
    Marcin Szamotulski

    High level overview of sprint 53

    We integrated bootstrap peers with cardano-node in an experimental branch +([cardano-node-5485], ouroboros-network-4615). We continued working on +tx-submission: ouroboros-network-3311.

    Karl Knutsson (CF) worked on peer sharing improvements: ouroboros-network-4778.

    Erik de Castro Lopo made ouroboros-network packages compile with GHC-9.8: +ouroboros-network-4727.

    Nick Frisby (Tweag, Consensus Team), modified local-state-query mini-protocol +so that one can acquire the immutable tip and thus get information which is not +subject to rollbacks: ouroboros-network-4765.

    Low level summary

    Other, less significant changes / improvements include:

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 52

    Happy New Year!

    In this short sprint we analysed a failure which happened on a new large +cluster that's run by IOG. The process exhausted all file handles and was left +without any functional connections. The issues apparently is rare, and thus +doesn't impose a high risk.

    We also continued working on tx-submission: ouroboros-network-3311.

    Detailed description

    It turned out that the process exhausted the number of file handles leaking +multiple /proc/{PID}/stat files open. We suspect that the bug is caused by

    • using lazy IO in iohk-monitoring-framework, and
    • using a recent kernel version

    With lazy IO file handles are read as long as the data is required and they are +closed only when EOF is reached. We currently suspect that a new linux kernel +added something at the end of the /proc/{PID}/stat which is not parsed by +iohk-monitoring-framework, so whenever the file is read we leak it (it's +never closed) and eventually, there are no file handles to be used by the +network layer: the accept loop doesn't return any inbound connection, neither +an outbound connection can be created. This issue will be addressed by the +profiling team (which owns the logging subsystem).

    The fix will be proposed in the future release, in the meantime we suggest to +keep observing file handles used by the node.

    I would like to thank John Lotoski (IOG), Karl Knutsson (CF), Neil Davies +(PNSol) and Michael Karg (IOG) who all contributed to this analysis.

    While analysing the log we also found a few smaller issues in the outbound +governor which were fixed in [ouroboros-network-#4764].

    The IO error indicating exhausting file handles is not currently visible. It +is not re-thrown nor logged. This needs to be fixed in a future version. See +ouroboros-network-4769.

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 51

    Outbound Governor Bug in cardano-node-8.7.2

    In the current sprint, we received a bunch of reports from SPOs about nodes not +maintaining some connection when using cardano-node-8.7.2 (running in P2P +mode). Such regressions are very important to us since they can lead to lost +blocks. We were able to reproduce this issue. Every time there's a longer +pause of block production (due to the statistical nature of Ouroboros), there +is a chance that the bug will be armed. For this reason cardano-node-8.7.2 +needs to be closely monitored.

    We found the bug and developed a fix, ref. Karl +Kntusson (CF) wasn't able to reproduce the bug with the patched version of +the node for long enough (almost two weeks now) for us to belive that the fix +is correct.

    Advise for SPOs

    We created a release branch for 8.7.3. The advice from +the network team is to either downgrade to the previous release, e.g. 8.1.2 +or use the above release branch (note that there were no benchmarks made or Q&A +tests yet).

    Testing plans

    We were also able to reproduce the bug using IOSim, ouroboros-network#4757. +However, the bug relies on a particular schedule of two threads which are +involved and we needed to artificailly modify IOSim schedule in production +code - something that we don't want to commit to the master branch. We also +experimented with a randomised scheduler for IOSim, but that did not lead to +finding the schedule which arms the bug: the search space grows exponentially +with the number of steps in the threads, partial order reduction techniques +implemented in IOSimPOR are more appropriate - unfortunatelly the simulation +test is too large to be executed in IOSimPOR even with large amounts of +RAM. To use IOSimPOR we need to implement a test which includes the two +interacting components:

    • connection-manager
    • outbound-governor (where the bug was located)

    which communicate through PeerStateActions, without including all the +diffusion components as we do in our sim-net tests. More in style of +outbound-governor tests where there is just a single outbound-governor, +unlike in the sim-net which runs multiple communicating diffusions.

    Bootstrap peers

    We continued working on bootstrap peers, ouroboros-network#4555

    TxSubmission Decision Logic

    We continued working on tx-submission decision logic, ouroboros-network#3311

    + + + + \ No newline at end of file diff --git a/tags/network/page/3/index.html b/tags/network/page/3/index.html new file mode 100644 index 0000000000..7cecdb2f95 --- /dev/null +++ b/tags/network/page/3/index.html @@ -0,0 +1,91 @@ + + + + + +35 posts tagged with "network" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    35 posts tagged with "network"

    View All Tags

    · 3 min read
    Marcin Szamotulski

    High-level overview of sprint 49 & sprint 50

    Fixed PeerSelection bug

    Karl Knutsson (Cardano Foundation (CF)) found a bug in +the cardano-node-8.7.0 version used on the Sancho Net which was fixed in 8.7.1. +It resulted in a node not being able to reconnect to an upstream peer once it +was demoted by an asynchronous exception. This bug would be caught by Q&A in +a mainet release, but for testnet releases, Q&A test suite is not used. We also +developed a test which covers the bug in the ouroboros-network, we also identified +a missing PeerSelection test which we need to port to our simulation network. +See ouroboros-network#4734, ouroboros-network#4665.

    Bootstrap Peers

    Still under review, ouroboros-network#4555. The consensus team is now +implementing the API we need for bootstrap peers. Once consensus API is implemented we will integrate changes in an experimental branch of +cardano-node.

    Tx-Submission

    We started working on a new implementation of the tx-submission application. No +tx-submission protocol changes are foreseen, but we want to be able to +download each tx from just one upstream peer and share the results between +different connections. We want to distribute the bandwidth between multiple +clients. We also think that this work will prepare us for the future +Ouroboros-Leios changes, which will contain various versions of tx-submission +like mini-protocols. See ouroboros-network#4701.

    Peer Sharing

    Various fixes and improvements were implemented:

    • ouroboros-network#4725

      • disabled peer sharing with initiator-only nodes: currently it's not +possible to get peers from initiator-only nodes (edge nodes, e.g. +wallets). In the future, we might change this, which will require running +a server-side of the peer-sharing protocol by such nodes. See +ouroboros-network#4726.
      • fixed peer-sharing codec
      • fixed a handshake bug which returned a wrong peer-sharing option
    • ouroboros-network#4728

      • disabled peer-sharing for NodeToNodeV_11 and NodeToNodeV_12
    • Karl Knutsson (CF) has been working on additional improvements, e.g. ouroboros-network#4735

    With these fixes, Karl Knutsson (CF) was able to see that two peers on the mainnet +can discover themselves through peer-sharing and keep being mutually useful +and thus the connection surviving outbound-governor churn events.

    IOSim

    We improved the memory footprint of IOSim in io-sim#126, see +ouroboros-network#4721 for heap profile improvements on large test cases.

    We are working on optimising the memory footprint of IOSimPOR. We are +reimplementing VectorClocks using a trie, instead of a map which leads to +significant improvements.

    Cardano-Ping

    cardano-node-0.2.0.10 was released to CHaP, ouroboros-network#4746. This +version exports more APIs which turned out to be useful in cardano-node test +suite, see cardano-node#5536.

    Technical Debt

    We addressed some small tech-debt issues in ouroboros-network#4722:

    • fixed some typos
    • using bracket instead of onException in withSnocket
    • improved haddocks
    • organised TracePeerSelection constructors

    We improved the memory footprint of some of our tests in ouroboros-network#4721.

    · One min read
    Marcin Szamotulski

    High-level overview of sprint 48

    Bootstrap Peers

    We continued reviewing bootstrap peers, ouroboros-network#4555.

    IOClasses / IOSim

    We prepared slides for a Haskell meetup were we presented a talk on IOSimPOR. +The recording will be availble on YouTube.

    We also used the opportunity to do some refactoring of the IOSim code base: io-sim#117. +We released io-sim-1.3.0.0 on Hackage: io-sim#119.

    We also added forkFinally to MonadFork (not included in 1.3.0.0 release): io-sim#123.

    Tech debt

    We refactored Resource used by the DNS subsystem: ouroboros-network#4707. +We continued reviewing the ouroboros-network#4625 PR, which refactors +RootPeersDNS module.

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 47

    Bootstrap Peers

    We continued to review the process of bootstrap peers, see ouroboros-network#4555

    CI / Tests

    We investigated our CI issues. We found a memory leak in typed-protocols +function used for testing codecs which triggered out of memory manager (OOM) on +some platforms (typed-protocols#43); we also found a bug in the connection manager which resulted in CI +timeouts (see connection-manager-fix).

    KeepAlive client

    We found two small issues with the keep-alive client, which were addressed +by Karl Knutsson (Cardano Foundation), ouroboros-network#4689.

    Galois

    We merged two large PRs prepared by Galois:

    Cardano Network Service Assurance (CNSA)

    Galois made the following progress on CNSA:

    • a simple [InfuxDB] database backend has been added;
    • the documentation has been updated;
    • internal improvements to the code;
    • progress on a new "CSNA analysis" that provides, for each sampler node, the +block download throughput in bytes over time.

    New CHaP Release

    We cut a new release of ouroboros-netowrk packages to CHaP: chap#547

    More details

    CI / Tests

    We improved the memory footprint of some of our tests by analysing a stream of +IOSim traces without retaining them, see ouroboros-network#4696

    As a safety measure, we introduced an upper bound for heap memory used by test +artefacts in our nix tests. We use 200MB limit for all tests except for +network-mux tests which use 350MB limit, see ouroboros-network#4702.

    We refactored one of our tests to use ephemeral ports thus allowing it to +run concurrently, see ouroboros-network#4702.

    We merged ouroboros-network#4623 which fixes a bunch of test failures.

    All of them were due to a bug in test logic rather than a bug in production +code.

    Release Process

    We updated our release process & associated scripts, see +ouroboros-network#4705.

    · One min read
    Marcin Szamotulski

    High-level overview of sprint 46

    Bootstrap Peers

    We continued reviewing of bootstrap peers, see ouroboros-network#4555.

    Towards Typed Protocols 0.2.0.0

    We diagnosed the performance regression of the new design. The work on +typed-protocols will be postponed. For more details see the +typed-protocols#3. As an outcome of the performance debugging we prepared +PR which updates the demo-ping-pong and +demo-chain-sync applications.

    Peer Sharing

    We made progress in review of ouroboros-network#4644, which simplifies the +peer sharing and fixes the ouroboros-network#4642 issue.

    Tech Debt

    We reviewed the ouroboros-network#3836 PR which inspects all the uses of +error in ouroboros-network. The PR was prepared by Galois.

    · 3 min read
    Marcin Szamotulski

    High-level overview of sprint 45

    Bootstrap Peers

    We started reviewing the bootstrap peers PR, ouroboros-network#4615.

    Towards Typed Protocols 0.2.0.0

    We discovered a performance regression when using typed-protocols-0.2.0.0, and we +started investigating where it comes from. Currently, we see that +typed-protocols-0.2.0.0 can outperform typed-protocols-0.1.0.0 when running +in isolation with a simple ping-pong protocol, so the regression might be in +the new block fetch implementation which comes with typed-protocols-0.2.0.0 +See typed-protocols#3.

    Tech Debt

    We merged two PRs written by Galois engineers:

    • a pull request which refactors the main entry function for P2P, see ouroboros-network#3834;
    • a pull request which reviews usage of unsafe function in the network code based.

    Galois also made progress with the following two issues:

    IO-Sim

    IOSimPOR

    We found and fixed a bug in IOSimPOR. We'd like to thank Prof. John Hughes +(Quviq AB) for helping us with debugging the issue.

    We also provided a more uniform API for IOSimPOR, and added ways to make the +debugging similar problems in the future easier.

    Technical Details on IOSim refactoring
    We removed the usage of `unsafePerformIO` from `IOSimPOR`, which also means removing parallel evaluation of discovered races. We found out that it gives only 25% better performance. In the future QuickCheck will offer running different cases in parallel which should provide better performance as there are no dependencies between the evaluation of different test cases, while schedules are discovered while running which limits the possible gains from running them concurrently. The performance was not the only factor though. When using parallelism in the lazy `ST` monad we'd need to rely on memory guarantees of `STRefs`. In `GHC-9.6` they share the implementation with `IORef`s, but it might not be the case in the future.

    IOSim

    To prepare for the next release, we consolidate packages taking advantage of +the public sublibraries supported now both by cabal and Hackage. This is +a work in progress, io-sim#114.

    Cardano Newtork Service Assurance

    Galois made the following progress:

    • A test run of spinning up a CNSA instance was done, as a result documentation +was updated.
    • Based on the IOG code review of the CNSA code, updates to the CNSA code were +made.
    • Galois has started the design for adding a CNSA analysis for "fetched bytes +over time while node is syncing".

    P2P adoption

    In the last two weeks, we've seen increase in P2P adoption. +P2P relays

    The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays. +node versions

    Open Source

    We upstreamed our FFI bindings to Windows named pipes to Win32 package, the +PR was accepted and merged.

    We also received an external contribution which enhanced our documentation, see +ouroboros-network#4676.

    + + + + \ No newline at end of file diff --git a/tags/network/page/4/index.html b/tags/network/page/4/index.html new file mode 100644 index 0000000000..3ede8a79b0 --- /dev/null +++ b/tags/network/page/4/index.html @@ -0,0 +1,129 @@ + + + + + +35 posts tagged with "network" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    35 posts tagged with "network"

    View All Tags

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 44

    Bootstrap Peers

    In this sprint, we focused on developing bootstrap peers.

    Thanks to the input from Samuel Leathers (IOG) and John Lotoski (IOG), we +identified a possible improvement to bootstrap peers. A more detailed +description is available here.

    Cardano-Node-8.4.0 Release

    We also were responsible for the cardano-node-8.4.0-pre release. A final +integration PR is currently being merged. We published +new versions of ouroboros-consensus, cardano-api and cardano-cli.

    Towards Typed Protocols 0.2.0.0

    We also updated the future typed-protocols-0.2.0.0 and its integration with +cardano-node. This is towards our goal which we planned for the next +quarter. The identified tasks are to fix breaking tests, and then measure and +address possible performance regressions.

    Tech Debt

    Mark Tullsen (Galois) submitted two more PRs: ouroboros-network-#4663, +ouroboros-network-#4664. We provided feedback on their other pull requests: ouroboros-network-#4661 and +ouroboros-network-#4660.

    P2P adoption

    In the last two weeks, there was a regression in P2P adoption concerning +the number of SPOs or stakes, although the number of overall P2P relays has +increased. Karl Knutsson (Cardano Foundation) is investigating +this issue. +P2P relays

    The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays, which slowly +increase over time. The V9 and earlier versions of the node-to-node +the protocol indicates nodes version 1.35.x or earlier. +node versions

    Data has been kindly provided by Cardano Foundation and their mainnet +monitoring infrastructure.

    Open Source

    We are in the process of upstreaming our ffi to Windows Named Pipes API to the Win32 package, see [win32-220].

    · 3 min read
    Marcin Szamotulski

    High-level overview of sprint 43

    In this sprint, we received contributions from CF & Galois. Karl Knutsson +(CF) has addressed various issues regarding peer churning in P2P, timeouts +and our WireShark dissector. While the Galois developers focused on +addressing issues from their review last year. See below for more details.

    We continued working on bootstrap peers ouroboros-network-#4661.

    We refactored our test suites: they are split into io-tests which require to +be run natively on all platforms (these tests mostly contain tests that +require IO system calls) and sim-tests which are platform independent. We +run io-tests on all supported platforms (e.g. x86_64-linux, +x86-64-darwin, aarch64-darwin and x86_64-w64-mingw32 (Windows)) natively. +The sim-tests are not executed on Windows due to memory limitations on +GitHub Actions runners. ouroboros-network-#4653

    We also started rebasing typed-protocols refactoring branches.

    Marcin was appointed as the cardano-node release engineer for the 8.4.0-pre +version. So far he integrated cardano-ledger-conway-1.8 and +ouroboros-network-0.9.1.0 to ouroboros-consensus, cardano-cli and +cardano-api. Once we will have an integration branch for cardano-node, +cardano-ledger-conway-1.8 and ouroboros-consensus packages can be released +to CHaP and PRs can be merged once they go through review & CI.

    We also fixed some smaller issues regarding peer sharing (both were discovered +by Karl from CF). More details are included below.

    Progress on P2P addoption

    SPO relays

    There are currently ~2000 relays running P2P +enabled nodes that belong to 557 pools with a combined stake of 7900Mil Ada. On +16th of August it was ~1700 relays, 531 pools with a combined stake of 7700Mil +Ada.

    P2P relays

    The following graphs show several different versions of relays running on the mainnet. The +green line NodeToNodeVersionV10.True denotes P2P relays, which slowly +increase over time. The V9 and earlier versions of the node-to-node +the protocol indicates nodes version 1.35.x or earlier. +node versions

    Data has been kindly provided by CF and their mainnet monitoring +infrastructure.

    IOG relays

    As of this week, 90% of IOG relays are running a P2P setup. In the next sprint all +IOG relays will be running P2P.

    Detailed description

    In this sprint, we got a few contributions from CF:

    • Karl made peer churning mechanism less aggressive ouroboros-network-#4656; and
    • he added timeouts for idle states in ChainSync & KeepAlive +miniprotocols. These timeouts help a node remove idle connections from the +responder (server) side ouroboros-network-#4648.
    • he improved the WireShark dissector by adding support for the peer-sharing mini-protocol ouroboros-network-#4656.

    Galois has been making progress in addressing some of the issues they raised in their review (last year):

    Peer Sharing

    • Light peer sharing is only enabled when peer sharing is turned on ouroboros-network-#4652;
    • Handshake incorrectly reports peer sharing value. It's supposed to relay the +remote value, but instead, it returns the local value. ouroboros-network-#4642 (in review).

    Async Demotion Test Fix

    • We fixed an async demotion test failure which turned out to be a weakness of +the test itself rather than a bug in the connection manager. ouroboros-network-#4655

    · 3 min read
    Marcin Szamotulski

    High-level overview of sprint 42

    Eclipse Evasion

    We merged and released a new version of the ouroboros-network package (version +0.9.0.0) which includes big ledger peers feature. +This is the primary peer selection mechanism to defend against eclipses. We +also prepared a PR to updated ouroboros-cosnensus +and ekg-forward packages.

    CDDL specs for protocol codecs

    We made the cddl spec for network codec more inline with the implementation +which is highly polymorphic. cddl doesn't have the notion of polymorphism, +but has any which can generate any valid cbor term. We matched it with an +Any type on the Haskell side and made all remaining tests & specs use it. +This simplified the specifications and made it easier to understand which parts +are defined in the spec, and which parts are left unspecified. See +ouroboros-network#4595.

    Ouroboros-Network-Framework API changes

    We also released ouroboros-network-framework and other network components. +The ouroboros-network-framework package contains a redesign of API exposed to +ouroboros-consensus. We consolidated, cleaned it and made it easier to +extend in the future if there will be new arguments that need to be passed to +mini-protocol initiator and responders which comes from the low-level network +layer.

    Nix setup (CI)

    We also made a major review of our nix setup. With help from our DevX team +we ended up with a clean flake.nix file which can:

    • compile & test the code on x86_64-linux, x86_64-darwin and aarch64-darwin
    • cross-compile to Windows on x86_64-linux

    And provides a shell which contains all the build tools, including ghc-9.6, +hls, cddl, and more. See ouroboros-network#4640, +ouroboros-network#4643.

    Other contributions

    Cardano Network Service Assurance

    • The work and writeup in finishing up the CNSA, first stage (first +contract).
    • Getting Sam Cowger (Galois Inc) up to speed.
    • The IOG Networking team carried a reivew of CNSA project progress: a limitted +code & design review.

    Galois Review

    Sam Cowger and Mark Tullsen (Galois Inc) have made some progress on each of the tech debt issues

    scoping, requirements, and getting started.

    CI

    We added a nightly run for GitHub actions and made the GitHub actions test be +executed with extra concurrency ouroboros-network#4637, ouroboros-network#4649.

    We also added GitHub's dependabot ouroboros-network#4650.

    Bootstrap Peers

    We settled on implementation design of bootstrap peers which is being +implemented, ouroboros-network#4615.

    · 2 min read
    Marcin Szamotulski

    High-level overview of sprint 41

    24th July - 6th August 2023

    We started the implementation of bootstrap peers. Bootstrap peers are designed +to provide a safety guarantee for nodes joining the network while still taking +advantage of the distributed network for nodes that are synced. This will be +an intermediate step before Genesis which will allow for further distribute the +system. The bootstrap peers will be run by some trusted partners like CF, +Emurgo or IOG. They are primarily designed for leaf nodes (e.g. full node +wallets), which often end up syncing and require access to the honest chain. See +ouroboros-network#4615 for a more detailed implementation plan.

    Other contributions

    We started to use nothunks library to discover if we have any unevaluated +thunks which can lead to memory leaks ouroboros-network#4633. We found +a small one in the peer metric component of the P2P networking stack. Fixing +it put us on a small detour of fixing the API of the strict-checked-vars +package: cardano-base#431, cardano-base#432, as well as adding NFData +instance to io-classes. We also improved nothunks +library to make debugging easier and we provided a NoThunks instance for +ThreadId which we will need in the future (see nothunks#33).

    We released a new version of io-classes (version 1.2.0.0) and related +packages to Hackage.

    We addressed all review comments on the eclipse evasion PR which introduces big +ledger peers, ouroboros-network#3886.

    We fixed how SIGHUP signal handlers are registered, so it's not possible to +shutdown a node which was starting while trying to update network topology, +see cardano-node#5421.

    I didn't mention that in the previous update, so here it goes: in the previous +sprint we released ouroboros-network-0.8.2.0 and +ouroboros-network-framework-0.7.0.0.

    · 3 min read
    Marcin Szamotulski

    Network Update (Sprints 39 & 40)

    The network updates got distracted. Mostly because of me leaving for the meeting in Edinburgh, Scotland and the being away. +It was great to see and talk to so many of the community members.

    Sprint 39 (Jun 26 - Jul 09)

    Major changes

    Now the following list of traces will be turned on by default:

    node-to-client protocol
    • LocalConnectionManagerTracer
    • LocalInboundGovernor
    • LocalHandshake
    • LocalServer
    node-to-node protocol
    • Server

    See cardano-node#5353. This will be released in node-8.2.0.

    We made sure that cardano-client-0.1.0.x library (which is db-sync) is not using the experimental node-to-client protocol. +The cardano-client-0.2.0.0 was not affected. +See ouroboros-network#4612.

    We merged the dynamic block production feature to ouroboros-consensus (also available in the cardano-node-8.2.0 release). +Dynamic block production enables hot-swap p2p nodes, which are important for the p2p deployment of block-producing nodes. +See ouroboros-network#3159, [ouroboros-consensu#140].

    We continued to review the implementation of big ledger peers for eclipse evasion, see ouroboros-network#4462.

    Minor changes

    Sprint 40 (Jul 09 - Jul 23)

    Major changes

    We integrated ouroboros-network-0.8.2.0 with the master branch of cardano-node for the 8.2.0 release (the version match between ouroboros-network and cardano-node is purely accidental). +This includes:

    • integration with dynamic block production feature. +This feature is documented in the following PR.
    • Warm valency for local root peers (see below).

    For the full list of features included in the 8.2.0 release from the network side, please take a look at the pre-release nodes.

    We improved the memory footprint of peer metrics measured by the P2P stack. +Peer metrics are used to decide which peers to demote every churn interval (roughly every hour with some probabilistic fluctuation). +See ouroboros-network#4620. +The improvement will be available in cardano-node-8.2.0.

    We added an optional explicit warm valency to local root peers of the P2P topology file. +Previously we used an implicit valency, e.g. the node keeps connections to all of the local roots; with local warm valency the node will pick only that many peers from the local root peers group to connect to. +The hot valency (previously known simply as valency) hasn't changed, but it must be smaller than the warm valency as hot peers are selected from warm ones. +Warm valency is a useful feature to limit resource consumption if one of the domain names in the local root peer group resolves to many IP addresses. +See ouroboros-network#4575, cardano-node#5409.

    + + + + \ No newline at end of file diff --git a/tags/network/page/5/index.html b/tags/network/page/5/index.html new file mode 100644 index 0000000000..bd5be78972 --- /dev/null +++ b/tags/network/page/5/index.html @@ -0,0 +1,92 @@ + + + + + +35 posts tagged with "network" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    35 posts tagged with "network"

    View All Tags

    · 2 min read
    Marcin Szamotulski

    Network Update

    Key contributions

    We held a series of session to review the implementation of big ledger peers +(eclipse evasion). See #4462.

    We get a request from a 3rd party to clarify an inconsistency between CDDL spec +and protocol implementation. We worked out a nice solution which takes +advantage of the any notion available in CDDL. On the Haskell side we +provide Any type which gen generate almost any CBOR term (some are excluded +only because they are not decoded back to the same form, and we relay on that +property). See #4580.

    We fixed a bunch of problems of the cardano-cli ping command. It also now has +a limited support of node-to-client mini-protocol (the -c option is +ignored, as it cannot be supported by node-to-client protocol). Note that +the format of messages has changed, timestamps are printed in ISO8601 format. +See #4601, #5326, #5313, #30

    In order to provide a new flag in the topology file which enables ledger peers +when the chain is close to the tip, we continued to work on #4530. This is +currently in review, the consensus team will need to provide us with the new +api. This feature is useful for two reasons: makes it easier to maintain +a topology file, it will also limit the traffic on public roots generated by +for example full node wallets and distribute it to ledger peers.

    We also continued to work on a blog post which describes the journey of design +& implementation of the dynamic P2P network layer. Too be announced soon :).

    Other smaller changes

    We limit the concurrency of resolving dns names. Up to 8 root peers or ledger +peers DNS names are resolved concurrently, and at most 2 local root peer DNS +names. See #4596.

    We fixed handshake query timeout in #4603.

    We renamed one of the block-fetch decision constructors as requested by the +consensus team, see #4608.

    · 3 min read
    Marcin Szamotulski

    Network Update

    Key contributions and advances

    We merged light peer sharing feature, which allows to include inbound peers +into outbound governor known peers. This is the primary way for new +unregistered nodes to enter the network, which then can be shared using peer +sharing. Note that peer sharing is an experimental feature which is disabled +until genesis & eclipse evasion as fully implemented. See #3596.

    We are making progress reviewing eclipse evasion, #3886.

    We fixed another bug in local root peers. We found out that if the local roots +where ignored until the first domain name was resolved, see #4583. The bug +fix was backported and released in ouroboros-network-0.8.1.1.

    We re-started working on dynamically enabling block forging to address issue +#3159, which will enable us to release P2P on block producing nodes. See #140.

    New cardano-ping / cardano-cli ping release

    We prepared a new release of cardano-ping library which supports the new +query feature (query supported versions). See #4589, #4593 and #5313. +The new version of cardano-cli ping will use ISO8601 formatted +timestamps; also the formatting of ping results is slightly improved, and it +will introduce the new --query-versions (-Q) switch. If the remote site +supports the query parameter, the command will print:

    redacted-ip:port network rtt: 0.064
    redacted-ip:port handshake rtt: 0.064010896s
    redacted-ip:port Queried versions [NodeToNodeVersionV11 764824073 InitiatorAndResponder,NodeToNodeVersionV10 764824073 InitiatorAndResponder,NodeToNodeVersionV9 764824073 Initiat
    orAndResponder,NodeToNodeVersionV8 764824073 InitiatorAndResponder,NodeToNodeVersionV7 764824073 InitiatorAndResponder]

    otherwise it will print the negotiation results

    redacted-ip:port network rtt: 0.045
    redacted-ip:port handshake rtt: 0.101867615s
    redacted-ip:port Negotiated version NodeToNodeVersionV10 764824073 InitiatorAndResponder

    Note that in that case cardano-cli ping offers InitiatorAndResponder, which +allows us to detect whether the remote side is an InitiatorOnly or +InitiatorAndResponder. Also cardano-cli ping will no longer announce +itself as InitiatorAndResponder, except for the case mentioned above.

    Other smaller contributions

    On a request from the Marlow Team, we published haddocks of typed-protocols, +which are now available here (#40, #41).

    We made a new release of strict-stm-1.1.0.1 on Hackage, which fixed a bug in +package description file, #101 .

    We also helped to debug a deadlock when using named pipes on Windows in the new +RawBearer API. The API is being used to store secret keys only in memory. +The PR #4395 is under review.

    We also have two more PRs which are under review:

    • #4530: enabling ledger peers on a fixed number of slots before the tip of the chain;
    • #4580: a PR which fixes inconsistencies in one of our cddl specs.

    · One min read
    Marcin Szamotulski

    High level summary

    We continued working on eclipse-evasion. We also analysed and fixed a bug +when using DNS names in local root peers. We continued working on engineering +blog post about P2P. We released a new version of packages for +cardano-node-8.1.0 release.

    We improved our CI, removed obsolete scripts add extra validation which checks +if CHANGELOG.md files were updated.

    We also improved release scripts.

    Detailed summary

    • Eclipse evasion: #4462
    • Local root peers bug fix: #4559
    • Release to CHaP: #4573
    • CI improvements: #4572
    • Release script improvements: #4573

    · 2 min read
    Marcin Szamotulski

    High level summary

    We started working on a new way to switch between root & ledger peers (see +below). We continued to work on eclipse-evasion. We merged changes to +Handshake contributed by Galois Inc. We made improvements to our tests (fixed +a flaky test, added cddl specs for NodeToNodeVersionData and +NodeToClientVersionData). We improved our CI and automated the process of +releasing new package version to CHaP.

    Detailed summary

    We continued to work on testing eclipse-evasion.

    We came up with an idea to limit how full node wallets relay on root peers +(currently operated by IOG, in future also CF and Emurgo). We designed +a switch to use ledger peers if the node tip is close enough to the current +time. For more details see #4530.

    We merged changes to the handshake mini-protocol which allow one to query +server's node-to-node / node-to-client parameters. We are grateful to +Galois Inc. for implementing it, #4256 and #4538. We published new version +of packages to CHaP chap-#253.

    We added DiffusionError wrapper. Thanks to it, ouroboros-consensus will +not duplicate diffusion errors messages in the log, #4537.

    We fixed an issue which caused one of our tests to be flaky, #4515.

    We added cddl tests for NodeToNodeVersionData and NodeToClientVersionData: +#4540, #4544 (in review).

    We wrote scripts which will help us release packages as well as verify that we +released all the package necessary to build the newest set of packages, +#4542.

    We renamed the consensus startup tracer and make sure it doesn't log +ExitSuccess exceptions, consensus-#71.

    We reviewed PR which adds RawBearer API, #4395.

    We made series of improvements to our CI:

    • #4539: we don't need to install cryptographic libraries in CI;
    • #4545: Javier Sagredo (consensus) cleaned up CI after consensus moved +to a new repo;
    • #4546: we switched to use GitHub merge queues;
    • #4549: we made it possible to trigger building haddocks manually;
    • #4553: we fixed and enhanced caching of building dependencies.

    · 2 min read
    Marcin Szamotulski

    High level summary

    The networking team has released the following packages to Hackage:

    We published an announcement blog post. We made progress +also on another blog post which will describes the design of the P2P networking +layer.

    After moving ouroboros-consensus to its own repository, we made +ouroboros-network compatible with GHC 9.4 and 9.6.

    We made cardano-client library independent of +ouroboros-consensus-diffusion.

    We prepared release of network packages for cardano-node-8.0.

    Detailed log

    Ouroboros-Network

    IO-Sim

    • io-classes-1.0.0.0, and following up releases: 1.0.0.1 (ghc-9.6 +support), 1.1.0.0 (documentation fix).
    • Fixed timeouts and delays in io-sim in a series of PRs: io-sim#81, +io-sim#82, io-sim#86, io-sim#87.
    • Renamed a module: io-sim#88.
    • Fixed a failing registerDelayCancellable test: [io-sim#80].
    • Use GitHub merge queue in io-sim repository.
    • CI: download stylish-haskell: io-sim#83.

    Typed Protocols

    + + + + \ No newline at end of file diff --git a/tags/network/page/6/index.html b/tags/network/page/6/index.html new file mode 100644 index 0000000000..f50d02068c --- /dev/null +++ b/tags/network/page/6/index.html @@ -0,0 +1,85 @@ + + + + + +35 posts tagged with "network" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    35 posts tagged with "network"

    View All Tags

    · 2 min read
    Marcin Szamotulski

    High level summary

    In the last spring we released cardano-node-1.35.6 with dynamic P2P +functionality.

    We received reports from some SPOs who encountered problems with their non +P2P block producing nodes not being able to connect to their P2P relay. Karl +Knutsson (from Cardano Foundation) reproduced this issue between two nodes (a +non P2P and a P2P one) on mainnet. Karl and the IOG Networking Team analysed +it and found a bug in the legacy non p2p code. The bug is only possible to +trigger with a P2P node which is binding its outbound connection port to +a fixed IP address and port (default in p2p). A possible solution was found. +For more information see #4465.

    We released cardano-ping-0.1.0.0 package to CHaP. cardano-ping is no +longer available as a standalone binary, but instead it will become part of +cardano-cli (see #4664)

    We are testing cardano-node with peer sharing functionality (#4019).

    We are working on eclipse evasion. We added new class of peers: big ledger +peers to the outbound governor, implemented tests and fixed found issues +(#4462). We also made the information if a given peer plays the role of +a big ledger peer to the mini-protocols. This will allow to modify +mini-protocol applications for such peers. As part of this functionality we +refactored some core types in the network code which simplifies exposed API.

    Together with Moritz Angerman we started to update io-sim to ghc-9.6.1 (see +#73).

    We merged a fix of configuration of accepted connections limit in +cardano-node (see #4902).

    · 2 min read
    Marcin Szamotulski

    High level summary

    In the current sprint the networking team focused on fixing bugs and pushing +forward implementation of eclipse evasion. We also found a bug in our +simulation testing setup (in integration of test node). We also overviewed the +work on extending handshake protocol which is delivered by Galois Inc.

    We published ouroboros-network-0.4.0.1 and +ouroboros-network-protocols-0.3.0.0 to CHaP.

    We also fixed a bug in cardano-node which results in not being able to +configure inbound connection limits, see PR #4902.

    Together with Karl Knutsson (CF) we realised an issue in cardano-cli: it's +validation of DNS names, IP address & ports when registering a stake pool +should be more strict to protect against common mistakes which we identified on +the chain. See issue #4929.

    Detailed work log

    In PR #4385 we fixed two bugs in peer state actions. First one results in +a busy loop if demotion from hot to warm times outs. This busy loop is +eventually exited when mux exits (we reported this in our previous report). +This fix made it to 1.35.6 release as well.

    In addition the PR #4385 also fixes another bug which results in hot -> warm +-> hot demotion / promotion busy loop.

    The PR #4385 also fixed a bug in a node only used in simulation which +resulted in not using chain-sync or block-fetch mini-protocols. In the +review process, we realised that the header-body split in the simulated node +requires further work (see PR #4419, which is under review).

    The PR #4385 also extend our generators, which together with the above fix, +cover the hot -> warm -> hot demotion / promotion busy loop.

    In PR #4419 we introduce a ChainDB for our simulation node, which plays +similar role to ChainDB in the ouroboros-consensus: a persistent (across +simulated restarts) store of blocks which does chain selection. This ensures +that the simulated node is using block-fetch to download blocks announced by +chain-sync mini-protocol.

    We also made progress with reviewing PR #4019 - peer sharing.

    We also fixed issue #4370 - a connection manager test failure, see PR #4384.

    · One min read
    Marcin Szamotulski

    High level summary

    Recently QA found a bug in P2P code, which results in busy loops. We added one +fix to 1.35.6 release, another one will likely be part of next release. The +first one is already included in ouroboros-network-0.3.0.1 release. These +bugs could only affect nodes which are out of sync and thus should not impose +risk on well maintained nodes on mainnet. We also advertise to deploy at most +one of the relays as a P2P node, which shields from possible consequences.

    We recently finished design phase of eclipse evasion and we started +implementing it (see issue #3886 for progress).

    Galois finished implementing Handshake extension which will allow to query +network protocol versions (see pr #4256).

    We also recently released a newer set of network packages to be integrated with +cardano-node master branch, this includes:

    * monoidal-synchronisation-0.1.0.2
    * cardano-client-0.1.0.2
    * network-mux-0.3.0.0
    * ouroboros-network-api-0.1.0.0
    * ouroboros-network-protocols-0.2.0.0
    * ouroboros-network-testing-0.2.0.1
    * ouroboros-network-mock-0.1.0.0
    * ouroboros-network-framework-0.3.0.0
    * ouroboros-network-0.4.0.0 (it doesn't not yet include the fix we included
    in `0.3.0.1`)

    · 2 min read
    Marcin Szamotulski

    High level summary

    We have been working towards cardano-node-1.35.5 release. QA & benchmarking +teams gave a green light for the release, and we made decent progress with some +CI problem which we encountered on the way (PR #4612). We are also working on +peer sharing, making improvements in our testing infrastructure, reducing +technical debt and making progress towards io-sim-1.0.0.0. Galois is making +progress on Handshake improvements.

    Low level summary

    Our diffusion simulation network now includes a mixed network of initiator +only and initiator and responder nodes. issue #4222

    We are now reviewing the peer sharing pull request.

    We are also reviewing pull request which introduces handshake query flag. PR #4256

    We fixed a bug in our network simulator. The bug was triggered when a node +died when performing a simultaneous TCP open (a corner case of a corner case!). PR #4265

    We also refactored Snocket interface and removed the bearer construction from +its methods. PR #4260

    We are working towards releasing io-sim-1.0.0.0 on Hackage, which includes +reviewing two PRs: PR #57 and PR #60 as well as writing an announcement +blog post.

    · One min read
    Marcin Szamotulski

    High level summary

    In last sprint the team focused on preparations for the conference talk at +OPODIS 2022. We also worked on preparations to publish io-sim and related +packages on Hackage (PR #57, PR #60).

    We also started reviewing:

    • ouroboros-network
    • cardano-node
    • cardano-ledger +repositories for open-source readiness (PR #4128).

    We prepared a PR which changes how node-to-node and node-to-client protocol +versiones are serialised in cardano-node log (PR #4691).

    + + + + \ No newline at end of file diff --git a/tags/network/page/7/index.html b/tags/network/page/7/index.html new file mode 100644 index 0000000000..dd04f6280c --- /dev/null +++ b/tags/network/page/7/index.html @@ -0,0 +1,159 @@ + + + + + +35 posts tagged with "network" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    35 posts tagged with "network"

    View All Tags

    · 4 min read
    Marcin Szamotulski

    Stake-Driven Data Diffusion Release for Relays

    IOG networking team decided to release the Stake-Driven Data Diffusion with +Robust Optimised Peer Selection also more commonly known as P2P. In the +last update, we informed about a performance regression, but it turns out it +only affects block producers, and thus we highly advise against running it on +such nodes. Further investigation is required to find the cause of it.

    On IOG's benchmarking cluster we have seen quite a good performance improvement +on block propagation itself. The cluster is running a static topology with +valency 6 (each node is connected to 6 other nodes). In which every of the 50 +nodes are block producers. The setup of this network is the same as mainnet. +We've seen 40-50% performance improvement on block propagation comparing to the +same cluster deployed with the same topology but using non-P2P nodes. We think +this performance improvement is caused by using full duplex connections. Quite +likely the transaction traffic floating in both directions on the same TCP +connection helps to keep the TCP window open. Note that in a cluster of 50 +nodes with valency 6 the probability of having at least one duplex connection +is more than 50%. We don't expect the same improvement on mainnet because the +network is much wider and the transaction traffic is not as large.

    Just before the release we squashed two small bugs:

    • issue #4163 - top level integration bug in keep-alive;
    • issue #4177 - a bug in outbound-governor;
    • PR #4165 - a fix cardano-ping support of NodeToNodeV_10.

    Peer Sharing

    We were carrying a review of peer sharing PR.

    DeltaQ

    Neil Davies was invited to give a guest lecture entitled Avoiding System Catastrophes at UCLouvain.

    What have we achieve last sprint

    • issue #4163: we found out that a control message is not passed to the +keep-alive mini-protocol, this results in every demotion executing demotion +timeout rather than a graceful termination. With the fix the node will no longer log:

      { "kind": "PeerStatusChangeFailure"
      , "peerStatusChangeType": "WarmToCold (ConnectionId {localAddress = 192.168.0.10:7000, remoteAddress = 3.129.186.40:3000})"
      , "reason": "TimeoutError"
      }
    • issue #4177: we fixed an assertion failure in the outbound-governor; now +we don't try demoted peers which are being demoted already.

    • PR #4155: we refactored ouroboros-network packages. There's a top level +ouroboros-consensus-diffusion package which integrates network +& consensus code. We also introduced:

      • ouroboros-network-api package which contains the API shared between +network & conensus;
      • ouroboros-network-mock package which contains mock API used for testing +(e.g. a mock chain & chain producer, etc.)
      • ouroboros-network-protocols package which contains implementation of all +(but handshake) mini-protocols, exposes a testlib and contains test +and cddl components.

      This made the dependency tree of network & consensus packages much +cleaner.

    • PR #4169: we described the usage of release branches in CONTRIBUTING.md +doc.

    • PR #4165: we fixed cardano-ping support of NodeToNodeV_10 protocol.

    DeltaQ

    The abstract of the talk:

    An essential step to ensuring that distributed systems are fit for +purpose.

    Distributed systems have become an integral part of our society and +daily lives. We are, both implicitly and explicitly, individually as well as +collectively, placing ever more trust in them.

    Are they worthy of this trust? Our need for them to be ‘fit-for-purpose’ goes +well beyond notions of functional correctness (i.e. never getting the wrong +answer). We need them to deliver the desired outcomes in a timely, robust, +reliable, resilient fashion, at scale and in a sustainable way (both +economically and environmentally).

    This all sounds like a worthy aspiration, but what would be a practical +approach to capturing and reasoning about these issues? How can we ensure that +systems can meet their fit-for-purpose objectives, not just in their design but +as they are deployed, encounter the imperfect world, are scaled to become +economic, and proceed into ongoing maintenance?

    This talk will illustrate how the notions of Outcomes and Quality Attenuation +(as captured by ‘∆Q’) are being used to both frame the necessary notions and +provide a basis for assuring the refinement and reification of such systems, +from initial concept to operational infrastructure.

    You can download the slides from here.

    · 2 min read
    Marcin Szamotulski

    High-level summary

    In last sprint we got a performance report of P2P performance testing cluster +(which consists of 50 nodes). There is a performance regression in the header +notification metric. The P2P cluster is constructed with the same +topology as the non-p2p reference one this indicates some regression which +needs to be further investigated. This poses a risk for releasing P2P.

    We also continued to work on peer sharing: pull #4019.

    We continued working on dynamic block production which is required for P2P +release for BP nodes: pull #3159.

    We simplified the P2P topology format: issue #4559, pull #3888.

    We added a new trace point for asynchronous demotions of local peers with +Warning severity. This trace is important for SPOs.

    Detail description

    Performance regression

    Below we include a graph which shows the performance regression of the P2P code base vs non P2P.

    On the x axis is time in seconds which measures the delay from the start of +the slot to when a header was received. The y axis is the percentile of nodes +that received a header. We are currently investigating possible causes of the +regression.

    New P2P topology form

    The new topology file format is described in this issue #4559.

    Tracing improvements

    • We improved a handshake error reporting, pull #4136
    • We added TraceDemoteLocalAsynchronous rendered as DemoteLocalAsynchronous +in json format, pull #4127. Such demotions should be investigated by the +pool operator. They can indicate a problem in the deployed system, but also +they could indicate a remote problem in arranged connections with other SPOs.

    Open Source Improvements

    We improved documentation of io-sim and typed-protocols for open-source +contributors and/or maintenance tasks: pull #22, pull #45, pull #48.

    · 3 min read
    Marcin Szamotulski

    High-level summary

    The team has focused on debuging & fixing bugs for the P2P single relay release, which included

    • diagnosing, fixing and writing tests for a bug in peer-state-actions which +fortunately hasn't been released;
    • diagnosing & preventing misconfiguration of DNS

    We also focused on developing peer sharing. We also held a session with +the scientists on eclipse evasion.

    Detailed description

    P2P Network Stack

    During the past two weeks the team focused on p2p single relay release and peer +sharing. We found and fixed an important bug recently introduced in one of the +components of p2p networking stack (fortunately never released). Together with +a fix, we designed a unit test diffusion simulation as well as quickcheck +property test (both could reproduce it). We also changed the code in a way that +if such a bug is reintroduced in the future, it will be obvious to diagnose. +For more see:

    Initial benchmarking run of the P2P code was executed. The results where +unlike what we see on the mainnet. We found a possible misconfiguration of the +cluster (caused by 0 TTL on domain names), which could be the direct cause of +it. We wrote a PR which rules out such misconfiguration. We are awaiting on +the next benchmarking results. See more at:

    ouroboros-network#4106

    We also started working on P2P single relay release. The PR +ouroboros-network#4120 +includes 108 patches cherry-picked from the master branch. We started +working toward integration these changes against the release branch of +cardano-node. Early next week we ought to be able to have an early version +of cardano-node with non experimental P2P support!

    For more detailed release plan please see P2P - Single +Relay +issue.

    Consensus

    We identified and fixed missing error reporting in consensus +initialisation phase. See more at +ouroboros-network#4015

    Cardano Node

    We also made changes in cardano-node in order to give better experience for +node operators. This includes updating severities of some of the traces as +well as implementing new format of the p2p topology file. For more see:

    Peer Sharing

    We continued working on implementation of peer sharing. We have an early +implementation which will be reviewed and analysed in next weeks. We started +working on cardano-node integration. We need +PR #4392 to be merged +before such integration will be able to land in cardano-node, although this +is not blocking us currently. See more at:

    Eclipse Evasion

    We held a session which included Alexander Russel, Sandro Coretti-Drayton and +Nick Frisby from the consensus team. We discussed high lever design of the +eclipse evasion scheme, which is important for the design and implementation of +ouroboros-genesis. We got a positive feedback from the researchers.

    IO-Sim

    In this period we made little progress towards releasing IO-Sim on Hackage. +A single PR which added +a few missing instances of the STM monad.

    Open Source

    We made sure the CI runs for PRs which comes from forks (which is important to +accept contributions from 3rd parties).

    Mithril Cardano Integration

    We held initial discussions with Arnaud Bailly about possible path to integrate +mithril to cardano-node and take advantage of the ouroboros-network +diffusion layer.

    · 3 min read
    Marcin Szamotulski

    Network Update

    Ouroboros Network

    Ouroboros Consensus

    • Recently we found out that the consensus does not log exceptions thrown during +intiialisation. This was fixed in +PR input-output-hk/ouroboros-network#4015 +As part of this pull request we also changed that all exceptions rethrown by +the connection handler thread are wrapped in ExceptionInHandler.

    Some older items, which were not announced

    • We identified and fixed an issue related to socket activation (socket options +where not set for sockets passed through socket activation). +PR input-output-hk/cardano-node#3979 +This fix will be released in the next cardano-node release.

    Cardano Node

    • We extended the NixOs service module so that one can modify socketPath, +runtimeDir, databasePath, traceSocketPathAccept, +traceSocketPathConnect and stateDir options. +PR input-output-hk/cardano-node#4196

    IO-Sim

    We resolved a number of issues before release of io-sim on hackage:

    See PR #24.

    We also improved experience for contributors of io-sim and typed-protocols by adding issue templates:

    Typed Protocols

    Input Endorsers Simulation

    New features include:

    • Histograms of block arrival frequency, for both network (inbound) and CPU +(block validation). This is interesting to check that we're not overloading +the CPU block validation capacity, or network link capacity. Or alternatively +to observe the behaviour in an overload situation if we set the block +generation rate high enough.

    • Pie chart of utilisation of TCP links. This shows how small a fraction of +links are being used at any one time, and shows that once the system "warms +up" and is operating stably, most block delivery is ballistic.

    • Showing off the new screen layout combinators, that let us put multiple +charts, titles etc on screen at once and scale them to whatever screen or +video resolution we like without having to tweak numbers (this example is +scaled to fit 1080HD video resolution).

    · One min read
    Marcin Szamotulski

    The networking team took an active part in the project iteration (PI) planning +session, see cardano-node backlog for detailed +outcomes.

    • We started working on a detailed design / implementation plan for gossip.

    • We merged input-output-hk/ouroboros-network#3859 which +sets the ouroboros-network repository for the single relay release.

    • We identified a bug in the network simulator, which is fixed in the +input-output-hk/ouroboros-network#3852. +The above PR was reviewed.

    • We set the tracing configuration for nodes which we deploy and fixed and +identified some deployment hiccups. We identified some bugs in the RT view +which were registered by the maintainers. +input-output-hk/ouroboros-network-ops#4

    • We fixed typos in network-mux library: +input-output-hk/ouroboros-network#3921

    • For easy of debugging we renamed a trace point: +input-output-hk/ouroboros-network#3922

    • Duncan iterated on his simulation / visualisation. He also was able to +identify and fix a bug in the simulator. The simulation contains 50 nodes. +Dashed lines indicate and established connection, while solid lines indicate +a TCP connection with fully open TCP window.

    + + + + \ No newline at end of file diff --git a/tags/open-source/index.html b/tags/open-source/index.html new file mode 100644 index 0000000000..5d45ab9bd6 --- /dev/null +++ b/tags/open-source/index.html @@ -0,0 +1,47 @@ + + + + + +One post tagged with "open-source" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    One post tagged with "open-source"

    View All Tags

    · 2 min read
    Marcin Szamotulski

    High Level Summary

    • We've been working toward publishing Cardano Backlog, currently its in +review by the IOG communication team.
    • We identified a number of libraries which can be published.
    • We setup and enhanced cardano-updates.

    Detailed description

    I am glad to announce that I was given the role of open-source advocate for +cardano project. In last few weeks we were making steps towards publishing our +backlog. It's currently under review by the communication team, although most +of the issues are already visible across various repositories.

    The open-source initiatives have their own +project. It is set up +to help us track our major open-source activities. Right now there are two +work streams:

    We identifies a number of libraries across all the teams which contribute to +Cardano which we would like publish to publish, see the following +link. Arnauld Bailly recently published +quickcheck-dynamic +library on Hackage. The networking team is slowly progressing towards +publishing io-sim and related packages, checkout the progress +here.

    Thanks to Arnaud Bailly our Cardano Updates website has +a new look & feel! It's using docusaurus.io.

    Christian Taylor carried recently a detailed analysis of our open-source +repositories. He collected many interesting metrics, which allows us to see +where we need to improve as an open-source project to make the Cardano project +and many smaller related libraries which we maintain be more open and available +for open-source contributors.

    The graph below shows which documents the 55 most important Cardano +repositories are missing the most: +Documentation Adoption +You can expect we will improve in these metrics in the coming weeks.

    + + + + \ No newline at end of file diff --git a/tags/performance-tracing/index.html b/tags/performance-tracing/index.html new file mode 100644 index 0000000000..fa32e41a63 --- /dev/null +++ b/tags/performance-tracing/index.html @@ -0,0 +1,76 @@ + + + + + +34 posts tagged with "performance-tracing" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    34 posts tagged with "performance-tracing"

    View All Tags

    · 4 min read
    Michael Karg

    High level summary

    • Benchmarking: Release benchmarks for Node 8.12.0; DRep benchmarks with 100k DReps.
    • Development: Merged a performance fix on 8.11; kicked off development of governance action workload.
    • Workbench: Adjusted automations to latest 8.12 Conway features and Plutus cost model; implementation of CIP-69 and CIP-117 for our tooling is in validation phase.
    • Tracing: Work on metrics naming ongoing. Factoring out RTView component is completed and has entered testing.
    • IOI Tech Meetup: Our team contributed two presentations at the meetup in Zurich; worked on community report of UTxO scaling benchmarks.

    Low level overview

    Benchmarking

    We've run and analyzed a full set of release benchmarks for Node versions 8.12.0. In comparison with the latest mainnet release 8.9.3, we could not observe any regressions. In fact, 8.12.0 was able to deliver equal network +performance at a slightly reduced resource cost - both for CPU and memory.

    Another benchmark of the Conway ledger with large amounts of DReps has been performed. This time, 100000 DReps were chosen - this amount aims to simulate a scenario where lots of self-delegation takes place. While a performance +impact is observable in this instance, we can still see that the number of DReps scales well overall, and poses no concern for network peformance.

    Development

    We have contributed and merged a performance fix on 8.11 which adresses a regressing metric in the forging loop. The regression was only observable under specific conditions. Benchmarks on 8.12 +have already confirmed the fix to be successful.

    We've kicked off governance action workloads for benchmarking. This will be an entirely new workload type for Conway era, targeting performance measurements of its decentralized decision making process. The workload will feature +registering proposals, acting as multiple DReps to vote on active proposals, vote tallying and proposal enactment. We're very grateful for the Ledger team's helpful support so far in creating a workload design for benchmarking - one that evenly stresses +the network over extended periods of time.

    Workbench

    The workbench automations have been upgraded to handle Node 8.12 and the corresponding integrations of Cardano API and CLI.

    Furthermore, we've updated to the latest PlutusV3 costmodel in our benchmarks - as well as implemented CIP-69 and CIP-117 for all our PlutusV3 benchmarking scripts, pending validation by the Plutus team.

    Tracing

    The work on aligning of metrics naming and semantics of new and legacy tracing is ongoing. Additionally, we're adding a handful of metrics to the new tracing system which currently exist in legacy tracing only.

    Factoring out the RTView ("real-time view") component of cardano-tracer in the new tracing system has finished. This includes a considerable refactoring of cardano-tracer's codebase, so that we're currently running test on the new codebase. Isolating +RTView is due to its being in prototype stage for too long, and the design decisions taken. In the short term, this will make several package dependencies optional, which have become troublesome for CI, as well as making cardano-tracer more lightweight. +RTView remains as an opt-in.

    IOI Tech Meetup

    Our entire team traveled to Zurich, Switzerland to attend ZuriHac'24 and the IOI Tech Meetup. It was fantastic to meet everyone in person, and we all had an amazing and very productive time. A big Thank You to everyone involved in making that happen, and making it a success.

    We contributed two presentations for the meetup: a thourough introduction of the new tracing system aimed at developers - as it's not tailored exclusively to cardano-node, but can be used in other (Haskell) services as well. And secondly, +an overview over the benchmarking framework based on Quantitative Timeliness Agreements which we're building - as well as a show-and-tell of our prototype, implementing part of said framework. We're grateful for the great interest and feedback from all +the participants.

    Last not least, we worked on creating a community report of the UTxO scaling benchmarks performed during March and April - to be released soon.

    · 4 min read
    Michael Karg

    High level summary

    • Benchmarking: Node versions 8.9.3 and 8.11.0; new PlutusV3 plus addtional DRep benchmarks; re-evaluation of network latency.
    • Development: BLST workload for PlutusV3 was implemented; improved error/shutdown behaviour for tx-generator is in testing phase.
    • Workbench: UTxO-HD tracer configs harmonized. New plutusv3 profiles supporting experimental budgets. Work on Haskell profile definition is in validation phase.
    • Tracing: New metrics and handle registry feature merged to master. Work on metrics naming ongoing. Factoring out RTView component has begun.

    Low level overview

    Benchmarking

    Runs and analyses of full sets of release benchmarks have been performed for Node versions 8.9.3 and 8.11.0.

    For comparison of how the Conway ledger performs when injecting large amounts of DReps and delegations versus one with zero DReps we've run additional configurations with existing workloads from release benchmarking. So far we've found +that the number of DReps in ledger scales well and does not lead to notable performance penalties.

    Additionally, we've successfully run the baseline for the upcoming PlutusV3 benchmarks on our Nomad cluster. Those will, given the new V3 cost model, serve to determine headroom, or constraint, regarding resource usage and network metrics when +operating under various execution budgets.

    Last not least, with much appreciated support and feedback from the network team, we performed a re-evaluation of the network the latency matrix for our benchmarking cluster. The cluster stretches over three regions globally. Due to unknown changes in the underlying +hardware infrastructure, a slight delay between Europe and Asia/Pacific regions could be measured. We needed to adjust some existing baselines accordingly - otherwise, this delay could be falsely attributed to a software regression.

    Development

    We have implemented a benchmarking workload using PlutusV3's new BLST internals. As those do little memory allocation, but require more CPU steps, this workload will allow us to focus on that particular aspect of block and transaction budgets.

    The tx-generator service will now label each submission thread with its submission target. Additionally, it has been equipped with custom signal handlers. This will improve both how gracefully shutdowns can be performed, and how +precise error reporting is done when losing connection to a submission target. Last not least, the service now supports a configurable KeepAlive timeout for the NodeToNode mini-protocol - accounting for very long major GC pauses on +submission targets under very specific benchmarking workloads. Those features have entered testing phase.

    Workbench

    Thanks to feedback from the consensus team, we've harmonized tracing configurations for our benchmarks between regular and UTxO-HD node. As the latter is more verbose by default, this is a confounding factor for our metrics: We're analysing north +of 90 traces per second per cluster node, so all node flavours are required to be equally verbose.

    The benchmarks based on the BLST workload now additionally support scaling budget components up or down at will. This means we can run a given cost model against custom execution budgets, controlling the point where the workload will exhaust it. This enables comparison +of performance impact of potential changes to those budgets.

    Porting our performance workbench's profile definitions to Haskell has been nearly completed, and an adequate test suite been implemented. This new component has now entered validation phase to make sure it correctly replicates all existing profile content.

    Tracing

    Two new metrics for cardano-node have landed in master - both for new and legacy tracing systems. They provide detailed build info, and indicate wether the node is a block producer or not.

    We're now working on closing the gap in the metric naming schema between new and legacy tracing. The aim is to allow for a seamless interchange, without additional configuration required, so that all existing monitoring services can rely on identical metric +names with identical semantics.

    Furthermore, work has begun to factor out the RTView ("real-time view") component of cardano-tracer in the new tracing system. Unfortunately, the component has remained in prototype stage for over a year, and has revealed some design shortcomings. It's aim +is to provide an interactive, real-time dashboard based on metrics from all nodes connected to cardano-tracer. The current design has all front-end side code baked into the backend service, requiring to rebuild the entire service in Haskell even for simple changes in the +dashboard. We decided to isolate the component in the current code base, which still allows for optionally enabling it for a build. The long term goal however is to convert it into a downstream service: It will ingest metrics by reforwarding, or querying a REST API, and will provide +a clear separation of frontend facing code. Thus we, and anybody, can use their favourite web technology for visualization of metrics.

    · 5 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed and analysed benchmarks in the Conway era, with DReps injected.
    • Development: Tracing DRep data has been implemented; improved error reporting in tx-generator and analysis quick queries are ongoing work.
    • Workbench: We now fully supports the new CLI create-testnet-data command and DRep injection into Conway genesis. Haskell profile definition work is ongoing.
    • Tracing: Various additions to Node metrics are being worked on, such as build info and block producer role. Metrics naming will be further harmonized.
    • UTxO Growth: We've finalized analysis and reports of all benchmarks targeting UTxO scaling scenarios.
    • UTxO-HD / LMDB: We've performed multiple runs benchmarking the LMDB (on-disk) backend of UTxO-HD.

    Low level overview

    Benchmarking

    We've run and analyzed a full set of benchmarks comparing the Conway ledger against the Babbage one, on Node 8.10.1-pre. For Conway, our additional goal was to measure a vanilla ledger state against one with a large amount of DReps - and delegations to those DReps - present. The +benchmarks used our existing value and Plutus workloads to remain comparable to each other.

    Development

    Additional ledger queries for the tracing system have been implemented and merged to master. Those capture the amount of, and the number +of existing delegations to, DReps as trace output - and thus enable creating a metric on top of it, which can then be monitored.

    The (in our case) non-deterministic nature of shutting down different cluster setups - both local and cloud-based - carries the possibility +that our transaction generation service occasionally misclassifies a regular shutdown as an error. Furthermore, in the case of network malfunctions, the service's errors are too unspecific. By implementing thread labels for submission threads, corresponding to each +submission target, and by adding custom smart signal handlers, we'll improve the generator's error reporting significantly.

    The initial tests for quick queries are being developed further. We're moving towards a principled, and generalized, syntax that supports both +prepared, parametrizable queries from the application code, as well as ad-hoc queries stated e.g. on the command line.

    Workbench

    The performance workbench now fully supports the new cardano-cli command create-test-data. We use it to inject both stake +delegated to stake pools into genesis, and - recently added - stake delegated to DReps as well. It has been proven very useful +and versatile so far, and will eventually replace the current create-staked command.

    Work on porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is still ongoing; currently, we're integrating all new profile families that came out of the UTxO growth scenarios.

    Tracing

    New metrics are being implemented for the tracing system. They will also be part of Prometheus output and as such accessible to +monitoring services. There'll be cardano-node's detailed build info, as well as a node's block producer status, meaning the presence of forger credentials. Those new metrics are being backported to the legacy tracing system, too.

    Furthermore, we've determined the need to revisit metrics naming. There's still a divergence between naming in the legacy +and the new system. While this could be mitigated by passing in extra config options, we think that a transition to the new system +should not impose any unnecessary effort for node operators. A design to fully harmonize the existing naming schemata is currently being +set up.

    UTxO Growth

    The UTxO Growth benchmarking series has been finalized. We've finished analyses and reports for all scenarios that +were tested and explored.

    The overarching questions were, given a network of 32GB host systems, how large can the UTxO set grow in general, +how large can it grow before the nodes have to operate close to the RAM limit over extended periods of time, and how does scaling the UTxO set size affect network metrics, such as block diffusion.

    A dedicated "UTxO Scaling Squad" was set up, who was driving the entire process, and we enjoyed a very focused and productive collaboration with them.

    UTxO-HD / LMDB

    Last not least, we were able to benchmark UTxO-HD's on-disk backend on a network of block producing nodes, on a recent 8.9.1 version +of cardano-node. The setup allowed of using a direct access SSD device for performance critical disk I/O, whereas the bulk of ChainDB and ledger snapshots remained on a standard AWS EBS volume.

    The benchmarks comprised both optimistic and pessimistic RAM assumptions for the host OS to further optimize I/O via page cache, as well as medium and large UTxO set sizes - the latter almost tripling current mainnet's size. The results were promising; the LMDB backend has proven to be able to accomodate large UTxO sets using significantly less RAM than the default all-in-memory node - and with a more than reasonable trade-off performance-wise. Furthermore, running with pessimistic assumptions, the performance impact on LMDB was very moderate only.

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed benchmarks and analyses for Node versions 8.9.2 and 8.10.0.
    • Development: Design phase for implementing quick queries in the analysis pipeline has begun.
    • Workbench: We're finishing up the new features for the reporting pipeline; Haskell profile definition work is ongoing.
    • Tracing: Improving the Prometheus output is ongoing; the node's build info will be accessible as a Prometheus label.
    • UTxO Growth: Our tooling has been augmented to support benchmarks starting with a non-empty chain.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.9.2. Comparing with release 8.9.1, we could not detect any performance risks for that version.

    The benchmarks for 8.10.0 have shown a slight improvement in the time the block forging loop needs to evaluate, whilst additionally, resource usage of the cardano-node process was also slightly reduced - a nice performance improvement.

    Development

    Our analysis pipeline is based on batch analysis of data from over 50 cluster nodes; it consumes very large amounts of trace output ex post facto, when the actual benchmark has terminated. +This is very time-intensive, and not viable for obeserving an additional metric that you later on determine might need consideration.

    We're planning to add quick queries into a benchmarking run's trace data to our analysis pipeline. These will be structured such that parameterizable, ad-hoc querying is supported. Initial tests showed that evaluation speed +of such queries is fast enough to merit designing a principled, and generalized, syntax for them - and a subsequent implementation.

    Workbench

    The reporting pipeline has been augmented with direct support for customizable, and stylable, TeX rendering - currently receiving final touches.

    Porting our performance workbench's profile definitions to Haskell, and providing them with an appropriate test suite, is ongoing work. It is our goal to both increase reliable profile definition and validation, and +facilitate usage by engineers less familiar with the workbench.

    Tracing

    The work to improve system metrics as presented to Prometheus is still ongoing. Type annotations, as well as introducing Prometheus labels for certain metrics to convey (like e.g. build information), will make that interface +more versatile. It also facilitates configuration of monitoring or dashboards like Grafana on top of those Prometheus metrics.

    UTxO Growth

    For the UTxO scaling benchmarks, we've augmented the workbench with the capability to support injection of a custom synthesized chain into the deployment, and start a benchmark only after replaying that chain - whereas +our benchmarks usually start just with a genesis block.

    To achieve that, different components of our tooling needed addition of features: distributing that chain to the node cluster, having analysis work without necessarily providing trace evidence of each block in the chain being forged by a benchmarking node. Cluster timing had to be adjusted to account for the gap between genesis start time and the chain tip. However, this entire mechanism opens up the possibility of having a very distinct ledger state at hand for a benchmark - one, that's been particularly crafted via a series of +pre-defined transactions constituting the blocks during creation of the synthesized chain.

    In the future, we plan to flesh out a more general design of that mechanism, which currently is tied to a very specific use case only.

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: Release benchmarks for 8.9.1 have been performed and analysed.
    • Development: We've implemented a benchmarking setup for UTxO-HD's LMDB (on-disk) backend.
    • Workbench: The now modular, nix-based genesis creation has been merged to master; DRep delegation and integration of a new cardano-cli command are ongoing.
    • Tracing: Benchmarking the new handle registry feature in cardano-tracer is complete; quality-of-life improvements to Prometheus output.
    • UTxO Growth: We've adjusted our framework to support running UTxO scaling benchmarks on both a single node and a cluster.
    • Nomad cluster: new multi-cluster support with the capability to quickly adjust to changes in deployed hardware

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.9.1. Comparing with release 8.9.0, we could not detect any performance risks for that version.

    Development

    In context of UTxO scaling, we want to assess the feasability of the current on-disk solution (which is LMDB) of a UTxO-HD enabled node. Using that, the UTxO set will be kept +in live tables and snapshots on disk, significantly reducing memory requirements.

    We've implemented a benchmark setting, and a node service configuration, supporting direct disk access to a dedicated device which can be initialized with optimized +file system and mount settings. It's purpose is to serve as storage for the highly performance-critical disk I/O of the LMDB component.

    Workbench

    Our automation for creating all flavours of geneses has seen cleanup and refactoring - which has been merged to master. It can now use a more principled, and rigorously checked, modular approach +to define, create and cache the desired genesis files.

    Working on integrating new cardano-cli functionality in our automation is ongoing. The performance workbench will support a different, and updated, CLI command which will allow injection of DRep delegations into genesis.

    Tracing

    Benchmarking cardano-tracer's new handle registry feature has been performed and evaluated. We're satisfied with seeing clear performance improvements along with cleaner code, and much better test coverage. +Especially allocation rate and number of garbage collections (GC) could be significantly reduced, along with the CPU time required for performing GCs. This will allow for higher trace message throughput given +identiacal system resources - plus less system calls issued to the OS in the process.

    Furthermore, the new tracing system is getting improvements for its Prometheus output - like providing version numbers as metrics, or annotating metrics with their type - enhancing the output's overall utility.

    UTxO Growth

    The performance workbench now supports profiles aimed at simulating UTxO growth both for a single node and an entire cluster. Additionally, simulating different +RAM sizes in combination with specific UTxO set sizes is supported. For a single block producing node, the focus is on quick turnaround when running +a benchmark, gaining insight into the node's RAM usage and possible impact on the forging loop.

    The cluster profiles enable capturing block diffusion metrics as well, however they require a much longer runtime. We can now successfully benchmark the node's behaviour +when dealing with UTxO set sizes 4x - 5x of current mainnet, as well as a possible change in behaviour when operating close to phsyical RAM limit due to that.

    Nomad cluster

    Our backend now supports allocating and deploying Nomad jobs for multiple clusters simultaneously - all while keeping existing automations operational. We've taken special precautions +a cluster, as seen by the backend, can be efficiently and easily modified to reflect newly deployed, or changed, hardware. Additionally, we've added support for host volumes inside a Nomad +allocation - which will be needed for benchmarking UTxO-HD's on-disk solution.

    + + + + \ No newline at end of file diff --git a/tags/performance-tracing/page/2/index.html b/tags/performance-tracing/page/2/index.html new file mode 100644 index 0000000000..25e4be1d8a --- /dev/null +++ b/tags/performance-tracing/page/2/index.html @@ -0,0 +1,71 @@ + + + + + +34 posts tagged with "performance-tracing" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    34 posts tagged with "performance-tracing"

    View All Tags

    · 5 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed release benchmarks for Node 8.9.0. Additionally, we benchmarked different GC settings for cardano-node.
    • Development: Ongoing work on the reporting pipeline and high-level profile definitions.
    • Workbench: In conjunction with DRep delegations in genesis, we're working on adjustments to a new cardano-cli command.
    • Tracing: Test coverage for the new handle registry feature in cardano-tracer is complete.
    • UTxO Growth: Currently, we're developing a series of benchmarks targeting performance implications of increased UTxO set size.
    • Nomad cluster: Disk storage safety net; better admin access to Nomad nodes; basic backend support for more than 1 cluster; new latency service.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.9.0. Initially, we identified a performance regression in connection to ledger snapshots. This has been addressed very swiftly. +Having re-run the fixed version, we could detect no performance risks in comparison with 8.7.2 / 8.7.3.

    In an additional set of benchmarks, we targeted the garbage collector (GC) settings that cardano-node is built with by default. Specifically, we compared these (copying, sequential GC) as a baseline +to using the parallel GC, the compacting GC and the non-moving GC - all of which are supported by GHC's runtime system. As GC always is a trade-off between space and time (and as a consequence, responsiveness); +we could measure the parallel GC offering a slight increase in responsiveness at the cost of delaying some evaluations - which is suboptimal for a block forger. The compacting GC could clearly +achieve a smaller RAM footprint, but only at the cost of increased CPU usage - and clearly worsened responsiveness. The non-moving GC could greatly enhance responsiveness - but increased the RAM footprint tremendously, as +well as introduced delays in the forging loop. In conclusion: the existing default is still the best choice by far for cardano-node - validated both on GHC8.10.7 and GHC9.6.3.

    Development

    The work on moving benchmark profile, and genesis, definitions out of the bash scripting / JSON data transformation space is still ongoing. Type safety and a test suite for those tasks +will allow for a much more principled approach.

    The implementation of additional rendering formats and report templates for our reporting pipeline has been completed; it is currently in testing and validation phase.

    Workbench

    We're working on integrating new cardano-cli functionality in our automations. Injecting DRep delegations into genesis - for Conway ledger benchmarks - will require us +to use a new CLI command, which differs in in output structure and options provided from the one we're using to inject stake pool delegations. This requires us to +implement and additional post-processing step for backends to find everything as expected.

    Furthermore, a PR has been merged which refactors and cleans up benchmarking profiles, with a focus on fine-tuning solo-node benchmarks which scrutinize a single cardano-node process.

    Tracing

    The test suite for cardano-tracer's new handle registry feature is complete, and the new feature passes all tests. At the moment, we're +preparing it for merging into master.

    UTxO Growth

    We're developing a series of benchmarks that will provide insight into possible changes to the Node's performance characteristics given different UTxO set sizes and numbers of delegated wallets. +What we aim to capture in these benchmarks is the system's capability to scale with UTxO growth - while simultaneously evaluating hardware requirements. The workloads will be based on existing release benchmarks, but allow for flexibility regarding UTxO set and delegations. They will target the existing in-memory solution, and at the same time permit feasability testing UTxO-HD's on-disk +flavour - which does not keep the entire UTxO set in RAM permanently.

    Nomad cluster

    Implementation of cluster machine disk space checking and garbage collection is complete. A requirement was that no +monitoring process interferes with a running benchmark, so a non-synchronous approach was chosen to guarantee enough disk space. This prevents failing +runs, and thus the necessity to repeat them.

    In the process, the workbench backend was equipped with a wider range of cluster commands and abstractions, which makes administrating cluster +machines more flexible. This includes a new service to create a network latency matrix for deployed cluster hardware - generalizing the approach +chosen during the Nomad cluster's initial validation phase. This can guarantee the validity of existing baselines in case of hardware reboots, or changes +in topology.

    Last not least, the backend is currently receiving an additional feature: supporting more than 1 hardware cluster. This will enable us, +in the future, to benchmark on ephemeral clusters - without interfering with the hard requirements, or the schedule, of release benchmarking +on our default deployment. The motivation is being able to benchmark different hardware configurations, along with varying cardano-node options and +initial ledger states on a parallel schedule - also, without having to keep those clusters running at all times.

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: Release benchmarks for 8.8.0 have been performed; we created a local repro for a residual issue.
    • Performance: We've implemented and benchmarked two candidates investigating residual issues with GHC9.6.
    • Development: Work on the reporting pipeline is ongoing; integration of DReps into benchmarking workloads has begun.
    • Workbench: Implementation of high-level profile definition is ongoing.
    • Tracing: The handle registry feature for cardano-tracer is completed; currently in testing.
    • Nomad cluster: Increased robustness of deployment and run monitoring has been merged; work on garbage collection has started.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for Node 8.8.0-pre. Comparing with release 8.7.2, we could +not detect any performance risks for that version. We even saw a slight improvement in block fetch related metrics, which led to slightly improved block diffusion times.

    Furthermore, we've managed to boil down a complex residual performance issue measured on the cluster to a local reproduction. This enables our DevX team, with highly specialized knowledge of GHC's compiler internals, to +investigate each step in code generation and optimzation, and independently observe the effects of code changes to the affected component.

    Performance

    Work on the remaining performance issue with GHC9.6 led us to produce two candidates based on Node 8.7.2, benchmarking +the implacations local small changes have for GHC9.6's optimizer. Though those candidates did not uncover the +issue's root cause, they were able to disprove a hypothesis as to its nature, and quantify the performance impact of said small changes.

    Development

    Node 8.8.0 comes with capabilities to inject DReps and DRep delegations into Conway genesis. We've started work +on integrating those into our automations, and setting sensible values for benchmarking. The aforementioned +delegations representing a new data structure in the Conway ledger, we aim to run +existing workflows extended with varying sizes of that new structure, measuring their pressure on ledger queries and operations.

    Workbench

    The performance workbench relies heavily on shell scripting and manipulating JSON data for a great part of its features. This approach +is very effective for quick experimentation, but lacks in verifiable properties as well as accessibility for new users of workbench.

    After the successful Haskell port of cluster topology creation, and verification, we're currently applying +the same model in porting the entirety of benchmarking profiles to Haskell. The obvious gains are widening workbench's +audience both for users and developers, as well as implementing a principled approach to all workbench data structures and transformations.

    At the same time, we're porting workbench's many options to create fine-tuned geneses, following the same approach.

    Tracing

    We've outfitted cardano-tracer with a handle registry feature that lets the service work on file handles internally, rather than opening and closing files for each operation. The feature is completed; at the moment we're adding +appropriate test cases to the service's test suite for validation of its behaviour, and for safeguarding future development.

    Nomad backend

    Several improvements for our cluster backend have been merged to master, increasing its overall robustness. We can now safely handle some corner cases where Nomad processes unexpectedly exited, or deployments errored out. Furthermore, an ongoing +run can now reliably survive a temporary loss of heartbeat connection between Nomad client and server, without +the benchmarking metrics being affected.

    Currently, we're working on a reliable automation of garbage collecting old nix store entries on the cluster machines, as they fill up disk space. The design has to consider both not interfering with ongoing benchmarks, and +avoiding deployment overhead caused by cleaning the store too frequently.

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: GHC 9.6.3 benchmarks for node 8.7.2 have been performed.
    • Development: Additional features for our reporting pipeline, while simultaneously reducing dependency footprint.
    • Tracing: Implementation for cardano-tracer to work on handles instead of files; work on New Tracing Quickstart document has begun.
    • Nomad cluster: We're preparing an upgrade to the latest Nomad version.

    Low level overview

    Benchmarking

    We've performed a full set of GHC 9.6.3 benchmarks for node 8.7.2. For recommending GHC9.6 as a default build platform for cardano-node - from a performance perspective - we observe only one residual issue. As a way to +address this, we've decided to create a reproduction benchmark targeting the affected component.

    Development

    Our reporting pipeline will be expanded to support a wider range of rendering formats, as well as report templates. As the pipeline is part of our workbench - and thus gets downloaded and built when entering the workbench shell - it's +good practice to keep a small dependency footprint. When reworking the pipeline, we aim to simultaneously reduce dependencies.

    Tracing

    So far, cardano-tracer has internally been using files, or file names, for the purpose of logging trace messages it receives via forwarding. This is simple, but induces quite some overhead at runtime: files have to be opened and closed for each message. +Using and managing open file handles inside cardano-tracer does remove that overhead, but unsurprisingly introduces some complexity into the application code. Currently, we're working on implementing that change.

    Furthermore, we're working on a Quickstart document for the new tracing system, with end users as its intended audience. It will contain recommended production use setup(s), and how to efficiently configure and run them step by step. Additionally, it +will provide a brief, but comprehensive overview over the features at the user's disposal.

    Nomad backend

    On the Nomad cluster, we've experienced undesired system behaviour when the heartbeat between the Nomad server and a client is interrupted temporarily - although the Nomad job itself is still 100% functional. A Nomad +upgrade to the latest version promises to fix that, but it turn comes with other issues. We're currently working on adapting our automation and deployment around those known issues, before we can eventually +apply the upgrade.

    · 4 min read
    Michael Karg

    High level summary

    • Benchmarking: Release benchmarking for node 8.7.2, as well as P2P benchmarks - the latter being a premiere for the Nomad cluster.
    • Development: Work on automating the submission of Conway transactions for registration of and stake delegation to DReps is ongoing.
    • Infrastructure: We're preparing to safely retire our current benchmarking cluster.
    • Tracing: The documentation for the new tracing system is being reworked. Additionally, we've added a feature to cardano-tracer to capture performance over a long runtime.
    • Nomad cluster: The Nomad backend has been successfully equipped with support for up-to-date P2P topology, as well as deployment for Plutus script data.

    Low level overview

    Benchmarking

    We've performed a full set of release benchmarks for node 8.7.2. From a performance perspective, it has been greenlit for mainnet release. Starting with this version, our team will publish observations alongside the original comparative analysis of benchmarks, providing insight into key metrics and resource usage. Hence, for the post on version 8.7.2, see here.

    Additionally, we're running P2P versus no-P2P benchmarks on the same version. We intend to establish future baseline runs using P2P topology as the default setting. All our cluster nodes being block producers, it is crucial to establish the P2P stack does not exhibit any regression regarding block forging. Furthermore, the evidence gathered from those benchmarks forms the base for a recommended setting for P2P on mainnet block producers.

    It deserves special mention that those P2P benchmarks are our first production runs with the Nomad cluster - and using the new tracing system exclusively. Having finalized all optimization rounds of the latter, and having meticulously eliminated all confounding factors from the Nomad infrastructure, we're confident in the measurements being subject to extremely low variance - which we made sure of in many past validation runs on Nomad.

    Development

    Orchestrating DRep actions into benchmarking workflows has opened up a fairly large design space. Currently, we're focusing on having stake delegated to DReps, in order to trigger ledger pulses for calculations particular to DRep actions. We can benchmark a possible +performance impact of those pulses - even if there are no actions ongoing - as a first step.

    The contributing factors to the cost of those pulses are both the number of DReps registered, and the number of delegations to them. It is still under debate which values represent a probable model for mainnet, and whether we can achieve stake delegation programmatically (i.e. by submitting transactions), or if, for large numbers, we need means to inject those delegations into genesis.

    Infrastructure

    With the switch of all production benchmarks to the Nomad cluster, we will retire the legacy cardano-ops cluster very shortly. Currently, we're making sure that when all its resources are released, we keep an archive for all runs performed, including all raw log data - with the oldest runs dating back as far as December 2019.

    Tracing

    We've outfitted the cardano-tracer service with the same kind of resource tracing machinery that's used by cardano-node - as well as created a dedicated benchmarking profile for it. It puts very little pressure on the node; instead it causes 6 nodes to emit traces at a rate of >35 messages per second, putting pressure on cardano-tracer via trace forwarding at >200 messages per second for an extended period of time. Analysis of these traces will form the ground for various optimizations of cardano-tracer that are currently being worked on.

    As we aim for early 2024 to be able to recommend the new tracing system as default in production use, we're currently also reworking the comprehensive documentation to reflect all changes made over the last months.

    Nomad backend

    In addition to being able to deploy Plutus script data and redeemers seperately (instead of inlining them as the legacy cluster did), the Nomad cluster now supports being set up with recent P2P topology. No-P2P topology format will still be supported +for occasional regression benchmarking of the P2P stack, when desired. Furthermore, we've completed porting all benchmarking profiles from the legacy cluster to Nomad.

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: Release benchmarking for node 8.7.0. Also, we performed the first-ever Conway benchmarks.
    • Development: Conway capability of our workload generator has been implemented and merged to master.
    • Infrastructure: Changes to our workbench facilitating easy access and archiving of raw benchmarking data.
    • Tracing: Quality-of-life improvements to tracing output and addition of a test suite.
    • Nomad cluster: Expand the list of benchmarking profiles that can be run on Nomad; generalize cluster topology generation.

    Low level overview

    Benchmarking

    A full set of benchmarks for node 8.7.0 has been performed, with the focus of enabling the next mainnet release. We've measured slight performance improvements of 8.7.0 over 8.6.0, and can confirm no regressions have been introduced.

    Furthermore, we've run system integration level benchmarks in the Conway era for the first time, on the same node version. +Only Babbage-compatible workloads have entered comparison as to ascertain performance consequences of only changing the ledger version, and nothing else. The results are very promising, as we could show that switching ledger versions for existing workloads does not come with a performance penalty.

    Development

    Our transaction generator has been extended to be able to submit all present benchmarking workflows in the Conway era. +Currently, we're looking into adding Conway-exclusive features, such as DRep registration. Those would be submitted at the very beginning of a run, as we're interested in seeing potential performance implications of maintaining DRep sets of varying size in ledger. Furthermore, this will serve as the basis for future development Conway-exclusive workloads, such as governance actions or vote tallying.

    Infrastructure

    As our workbench will be pivotal in orchestrating and organizing benchmarking runs on the Nomad cloud backend, we've +improved how raw benchmark data is tagged, which metadata is documented in an automated manner. This enhances both access to existing run sets, as well as maintaining an archive for benchmarking data.

    Tracing

    The new tracing system is currently receiving usability improvements as we're reworking the output of several trace messages. +Additionally, we're setting up a rigorous test suite to provide safety for future development of and component integration inte the system.

    Nomad backend

    We've been working on adapting various benchmarking workloads, which are defined by our workbench's profiles, to running on the new infrastructure. This mainly concerns a workload utilizing Plutus, as well as peer-to-peer flavoured workloads. Furthermore, we're implementing a solution to create all possible cluster topologies algorithmically, instead of still using fixed literal definitions for some cases.

    + + + + \ No newline at end of file diff --git a/tags/performance-tracing/page/3/index.html b/tags/performance-tracing/page/3/index.html new file mode 100644 index 0000000000..3710402dd7 --- /dev/null +++ b/tags/performance-tracing/page/3/index.html @@ -0,0 +1,62 @@ + + + + + +34 posts tagged with "performance-tracing" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    34 posts tagged with "performance-tracing"

    View All Tags

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: Release benchmarking for node 8.6.0 as well as benchmarks scrutinizing GHC versions and the new tracing system.
    • Development: PlutusV3 capability of our workload generator has been implemented.
    • Tracing: First round of optimization of the cardano-tracer service has completed, awaiting validation.
    • Nomad backend: A significant PR has landed addressing automation features and debugging capabilites.
    • Workbench: Configurable remote environments and improvements to run documentation have been merged to master.

    Low level overview

    Benchmarking

    We've performed and analyzed a full set of benchmarks for node 8.6.0, both in comparison to recent release tags +and mainnet version 8.1.2. A lot of development work has entered the system since then, so it is crucial +we can rule out any potential performance risks for the next mainnet release.

    Additionally, we've been benchmarking GHC9.6.3 builds of cardano-node. Overall, we've observed reliable optimization behaviour by that compiler version - which is much more in line with expectations than what we've seen on GHC9.2.7. Getting evidence on how predictable (and malleable, by code annotations) performance is when building with a certain compiler version is essential for settling on a version as supported release platform.

    A last set of benchmarks was dedicated to the new tracing system with node 8.6.0. We were able to show that +there is no performance risk to enabling the new system, even when forwarding all trace messages to a cardano-tracer +service on the receiving end. Key metrics for block forging, as well as block diffusion, did not exhibit any regression.

    Development

    For future benchmarks to be built around PlutusV3, we've equipped our transaction generator with basic integration and tests for the upcoming Plutus version. This enables us to target the new cost model and potential changes +to the execution budgets by developing specialized workloads.

    Tracing

    The cardano-tracer service has received its first batch of optimizations. Profiling output is promising; to measure +performance for a long service run time, we're currently equipping the service binary with the same capability to +emit regular resource traces as cardano-node. Analysis of those will be the basis for validating this and possible future optimization efforts.

    Nomad backend

    Many improvements for the nomad backend have been implemented and merged to master. This encompasses a unified naming schema for all nomad profiles, improved internal management of cluster topology, a more fine-grained healthcheck service, +more detailed automated documentation of underlying hardware, as well as lazy resource release. The latter enables +our team to investigate and debug interrupted runs for the exact moment and in the exact cluster state a potential failure occurred.

    Workbench

    Our performance workbench has seen upgrades in documenting and reporting cardano-node builds. This ranges from capturing package versions and commit ids of key dependencies, to querying a deployed node for its build compiler. +When alternating between compiler versions and benchmarking custom built branches, automating such documentation is essential.

    Furthermore, the workbench is now able to access several remote deployments on all active clusters. This allows for fetching data, analyzing, comparing and reporting on all benchmarks from just one centralized workbench instance.

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: Continued benchmarking of UTxO-HD and performed benchmarks for the new tracing system.
    • Consensus QTAs: Our protoype approach is applied to potential regression fixes with GHC 9.2.7.
    • Development: We've developed strategies for future benchmarks of PlutusV3 and UTxO-HD's on-disk backing store.
    • Tracing: The machine-readable tracer configuration has been merged. Optimization of cardano-tracer started.
    • Nomad backend: Ongoing variance analysis and refined cluster topology.

    Low level overview

    Benchmarking

    Performing and analyzing benchmarks for the UTxO-HD feature is an ongoing effort; we can reliably assess the +performance of the in-memory backing store and evaluate possible optimizations (or regressions) for it.

    Furthermore, benchmarks of our new tracing system after several rounds of optimization have been performed. The results +show all key metrics now being unaffected by the choice of tracing system (legacy or new) - with the new system being able to provide more features and flexibility in comparison. The benchmarks also highlighted further points for optimization, with the focus now on the cardano-tracer service.

    Consensus QTAs

    The Quantitative Timeliness Agreements (QTA) prototype is being used in coordination with Consensus and DevX to validate a series of patches that address optmization opportunities which GHC8.10 seizes, but GHC9.2 misses. The +feedback from this approach is much more immediate than running benchmarks at system integration level. But once we eventually do, we expect to reproduce the relevant observations - which would mean a big step towards maturing the prototype.

    Development

    Benchmarking UTxO-HD's on-disk backing store needs special attention: in virtualized environments, disk I/O is not a reliable metric as it passes several layers of indirection. As this is the very metric which will influence overall performance of this UTxO-HD flavour, we developed a plan to monitor such nodes, connected to a running network, on dedicated hardware - having direct SSD access. Replicating this setup for an entire benchmarking cluster of such nodes will be a future effort.

    PlutusV3 will come with new builtins and a new cost model. It will take a specialized benchmark to ascertain the soundness of that model running a full cluster of nodes, possibly stressing expensive builtins. At the same time, +we'd like to validate the many improvements that have gone into the Plutus evaluator.

    Tracing

    The focus for further optimization of the new tracing system has shifted to cardano-tracer - the service +receiving and processing traces from one (or more) nodes. Whilst undisputed that the code living in cardano-node is +more performance critical, the receiving service must still minimize its resource footprint. Moreover, it can +generate load for a running node when querying data points from it - which calls for tight control of that mechanism and its possible configurations.

    Nomad backend

    Variance analysis of new nomad backend has revealed a necessary adjustment of the cluster's topology. We repeated +the same analysis and now see even better confidence in the measurements taken with nomad. This concludes the work on the backend proper for the time being. The last steps before production use will focus on the interface between backend and our workbench, which provides all high-level benchmark definitions and analysis machinery.

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed both low-level network and high-level variance analysis of our benchmarking clusters.
    • Infrastructure: Our reporting pipeline was adjusted to classify various workloads easily reducing rework time.
    • Tracing: Work on machine-readable tracing of tracer configuration is ongoing.
    • Nomad backend: We've been able to eliminate several possible confounders on the nomad cluster.
    • Team: We're currently onboarding a new team member: Welcome to Cardano Performance & Tracing, Baldur Blöndal!

    Low level overview

    Benchmarking

    As part of the effort to bring the Nomad backend into production use, we've been equipping both that and the existing benchmarking +backend with means to measure and document network latency for each run. Furthermore we've implemented means to +capture TCP packets for a limited time window during a benchmarking run - which will allow us to spot differences +in the behaviour of the underlying networking stack at OS level.

    Additionally, we're running variance analysis in parallel on both backends to ascertain confidence in metrics originating from either. We've concluded that baseline profile runs aren't directly comparable between the two, so we decided +to compare standard deviations instead to validate the measurements from nomad.

    Infrastructure

    Reporting on benchmarks does require human time and effort to rework the final document. Improvements to the reporting pipeline +have been merged to master. They reduce the time necessary to do so by various changes to the template and the workload classification logic in analysis.

    Beyond that, we've looked into issues where services would quit with an unjustified exit failure upon shutdown - under rare circumstances. By reworking shutdown logic for trace-dispatcher and tx-generator we were able to address those issues.

    Tracing

    After various steps in constructing a configuration upon node startup, it is vital to document +which runtime configuration the node arrived eventually. We're working on providing a machine-readable JSON/YAML +trace message for that purpose.

    This will facilitate hot-reloading a node's tracer configuration in the future: users will be able to take such a trace message, apply their intended change and hot-reload it immediately into the node.

    Nomad backend

    As with the existing benchmarking cluster, nomad is currently under scrutiny with regard to the reliability of metrics it +produces, as well as the behaviour of its OS-level network stack. For instance, differing kernel versions can have an +impact on our measurements, as we'd be basically using two different instruments to take them.

    Along the way we've already been successful in eliminating some possible confounders that had been introduced by the nomad service +or the slightly different system architecture of the new cluster.

    New team member

    Baldur Blöndal is an extremely capable and experienced Haskell developer. Also, he's an excellent fit for our existing team. +So I'm very pleased to welcome him onboard with IOG, and with Performance & Tracing. He will be working on cardano-tracer, the component receiving, processing and making available node traces and metrics.

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed and analysed feature benchmarks for both UTxO-HD and the current P2P stack.
    • Infrastructure: Various improvements of our analysis pipeline have been merged to master, supporting safe log truncation.
    • Tracing: Namespace consistency checks have been merged to master along with a curated configuration for benchmarking.
    • Nomad backend: We're productively using the new backend to measure new vs. legacy tracing system, adding many quality-of-life improvements.

    Low level overview

    Benchmarking

    We've completed various runs and analyses targeting two distinct features of the node: UTxO-HD and Peer2Peer.

    With our UTxO-HD benchmark we could clearly localize one point where this new way of maintaining ledger state is still costly, but at the same time confirm that in basically all other aspects UTxO-HD makes no difference in performance.

    The Peer2Peer benchmarks focused on the effects that enabling this feature on a block producing node has on propagation times, as well as scrutinized a proposed change to the Peer2Peer network stack.

    Infrastructure

    As a result of optimizing in-memory representation of log objects, which are constructed from a node's traces, we can now analyse runs that last longer in total. For runs that exceed their expected duration, analysis now supports a truncation +operation that keeps the interdependencies of block events intact.

    Truncation might happen at a slightly different point +in time - and therefore in its log object stream - for each node in the cluster. An additional step validating the block hash timeline of the cluster has been implemented for the pipeline. It provides early feedback on whether a specific truncation will lead to a valid full analysis, which requires much more time.

    Tracing

    Consistency checking of namespace implementation and configuration when using the new system has been completed. +This feature enables feedback on when tracer implementation details in some component might have changed. It's also able to detect when a configuration used for operating a cardano-node shows inconsistencies with the namespaces the system provides - and hence needs attention.

    Furthermore, we've created a fine-grained configuration of the new system that caters to benchmarking's need of very many +detailed trace messages. It's aimed at mirroring the same amount of trace messages, and information, we're seeing from our usage of the legacy system; an important step in making benchmarks between systems comparable.

    Nomad backend

    The new backend is currently being used for further validation with regard to the existing cluster. Additionally, we're using it in production mode to comparatively benchmark both tracing systems after merging past month's optimizations - which is the +first real-life application of the nomad cluster. Hands-on experience in that phase translates into many small improvements which can be immediately applied to enhance user experience for the new backend.

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: Benchmarking node version 8.2.1 has concluded. Additionally we're developing benchmarking setups for GHC9.6 and UTxO-HD.
    • Infrastructure: Our analysis pipeline has received improvements reducing memory footprint.
    • Tracing: Another batch of optimizations for the new tracing system has been merged; work on namespace consistency guarantees is ongoing.
    • Nomad backend: We're performing and analysing various runs for validation purposes on the new hardware cluster.

    Low level overview

    Benchmarking

    We've performed and analysed the benchmarks for the 8.2.1 version of cardano-node as part of our release benchmarking cycle.

    Setting up cluster benchmarks requires completing full system integration. This applies to both supporting a new build platform, as is GHC9.6, as well as targeting a specific feature, like a UTxO-HD enabled node. Currently, we're working on respective integrations on both those paths.

    Infrastructure

    As cluster runs increase in duration, more and more data is accumulated for analysis. Batch analysis mode needs all data to be held +in memory, which wouldn't fit anymore even on a 64GB RAM machine. Changes to the in-memory data representation improving on compactness were able to reduce the RAM requirements of our analysis pipeline.

    Tracing

    The next portion of optimizations has been completed and merged to master, getting rid of Haskell's native String representation on critical code paths. This concludes the optimization phase of the new tracing system for all its components used by cardano-node.

    The implementation for validation of consistent naming and configuration is ongoing. We're splitting out everything that's verifiable at compile time into a seperate test case which we hope to integrate into CI - leaving only configuration constraints to be verified at or before node startup.

    Nomad backend

    The verification phase of the nomad cloud backend is ongoing. We're able to perform full runs on the new hardware cluster +and porting profiles and configurations from the legacy one. The goal is to reproduce with confidence known regressions, or improvements, between runs performed on the legacy cluster and runs performed with the new backend.

    + + + + \ No newline at end of file diff --git a/tags/performance-tracing/page/4/index.html b/tags/performance-tracing/page/4/index.html new file mode 100644 index 0000000000..9f5cef1b71 --- /dev/null +++ b/tags/performance-tracing/page/4/index.html @@ -0,0 +1,43 @@ + + + + + +34 posts tagged with "performance-tracing" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    34 posts tagged with "performance-tracing"

    View All Tags

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: We've concluded benchmarking node version 8.2.0.
    • Tracing: Optimization of the new tracing system has been merged; we're currently working on self-documenting tracing configuration.
    • Nomad backend: A PR that makes our backend take advantage of added flexibility of the new hardware cluster has been merged.

    Low level overview

    Benchmarking

    As part of our release benchmarking cycle, we've completed and analysed the runs for the 8.2.0 version of cardano-node. In addition to the adjustment of sanity checks in our automation, we had to implement small changes in the analysis pipeline as well to accomodate the new version.

    Tracing

    A significant amount of optimizations for the new tracing system has finally been merged to master. At the moment, +we're working on having a trace message self-document the final tracing configuration of a running node. Apart from adding +insight into the system, this feature also aims at making future hot reloading of tracing configuration explicit and straightforward.

    Furthermore, we're setting up a final round of system integration level benchmarks comparing new against legacy tracing.

    Nomad backend

    The new hardware cluster permits greater flexibility as far as SSH access is concerned. By using nomad for a consistent +and reliable deployment, but taking advantage of direct connections for healthchecks and data transfer we believe we were +able to reduce overall network latency in the nomad cluster. This improves confidence when capturing all network related measurements during our benchmarks.

    A PR that adds these capabalities to our nomad backend - along with very many quality-of-life improvements - has been merged to master.

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: We're adjusting the benchmarking cluster to handle runs for node version 8.2.0.
    • Tracing: We've finished optimization of the new tracing system and added extra robustness with regard to namespacing.
    • Infrastructure: We've been working on making all benchmarking code compliant with the latest GHC9.6.
    • Nomad backend: The new backend has seen adjustments due to a change of underlying hardware. Additionally, we've successfully performed various benchmarking runs on it.

    Low level overview

    Benchmarking

    The 8.2.0 version of cardano-node required adjustment of some of the sanity checks that are part of our benchmarking +cluster automation. We've pinpointed the necessary changes and are currently setting up the cluster for the new node version.

    Tracing

    The optimization efforts for the new tracing system have been completed and have significantly reduced the resource footprint +when using it as default for a running node.

    A linchpin of the new system is the organization of traces into a namespace hierarchy. This affects configuration, self-documentation as well as rendering of desired trace messages. The new system is now equipped to detect any +inconsistency in the whole set of tracers, defined across all components, even if they are never turned on in a running node. +This feature adds another layer of robustness to the whole system.

    Infrastructure

    A potential switch to GHC9.6 (or higher) required some work on our code bases to make it compliant with recent compiler +versions. We've future-proofed our benchmarking code.

    Nomad backend

    The hardware cluster that our nomad backend was accessing has been changed, and we were able to adjust our backend +accordingly without touching its higher level abstractions and functionality. Moreover, with the new hardware and cluster setup, certain tasks such as retrieving run artifacts or healthcheck monitoring have become more performant.

    The validation phase is ongoing. We were able to perform successful runs and analyses for various 8.x node versions, including 8.2.0-pre. With parallel runs on the current cluster, we hope to measure the same effects we've observed with the +nomad backend - which will be a big step towards production use.

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: The peformance investigation into the compiler switch to GHC9 is ongoing. Additionally, a roadmap for implementing Consensus QTAs has been developed.
    • Infrastructure: Our workbench has undergone some refactoring to seamlessly integrate its profiles into all available backends.
    • Tracing: Optimization of the new tracing system is ongoing and yielding good performance results.
    • Nomad backend: We developed a new feature for the nomad backend which allows pinning deployments to specific machines.

    Low level overview

    Benchmarking

    Our analysis of the GHC9 build of cardano-node has produced several locations in the code base where the new compiler seems to miss opportunities for optimization. Our hypothesis is, that those can account for the difference in resource usage we observe when benchmarking with a full cluster run. Instructing the compiler on how to perform the optimizations which GHC8 apparently applied out of the box requires further investigation.

    In an effort to define Quantitative Timeliness Agreements (QTAs) on a per-component basis, we have coordinated with the Consensus team and developed a roadmap for providing those on consensus level. Making use of the insight that system-level benchmarks allow, we intend to set up and calibrate a benchmark that can reliably predict a regression or optimization for select metrics before needing full integration into cardano-node. This will help tremendously in various ways: catching regressions much earlier, localizing them much easier, avoiding repeated component integration and much shorter feedback cycle.

    Infrastructure

    We have worked on seamless integration of our benchmarking profiles into the many available backends that the workbench provides. The goal was to be backend-agnostic, to guarantee that all benchmarking run artifacts be structurally identical as far as their file name, format and location are concerned. This lead to refactoring work and has already landed in master.

    Tracing

    Much effort went into further optimization of the new tracing system. After working on configuration to align both new and legacy tracing system with regard to their trace frequencies, we could uncover some increase in resource usage. This occurred for corner cases under very heavy load. These cases have been addressed already, and do now surpass the legacy tracing system in terms of performance.

    Nomad backend

    For reliable benchmarking results it is vital to introduce as few confounding factors as possible when performing runs. This includes hardware and network topology. The nomad backend has been outfitted with a mechanism to pin the nomad job for some node in our benhcmarking cluster to a specific machine instance. This greatly increases confidence in the metrics observed from a run.

    Furthermore this feature will detect any change in the underlying hardware or topology so it can be taken into account. The new feature has been merged to master.

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed several new benchmarks and a performance investigation in preparation of switching the default compiler to GHC9.
    • Infrastructure: The first batch of refactoring and documentation for our tx-generator has been merged to master.
    • Tracing: We've looked into an issue where the tracing system's concurrency could prevent a graceful node shutdown.
    • Nomad backend: Our new cloud backend has seen various improvements regarding deployment and monitoring; validation runs for the backend are ongoing.

    Low level overview

    Benchmarking

    The compiler switch to GHC9 as the default build platform for cardano-node and its components still has noticeable effects on system-wide performance metrics. An investigation into the different resource usage profiles of compiler versions does seem to indicate GHC9's significantly different inlining behaviour may produce those effects. We're currently locating the specific places in component code that have the most extensive effect in that regard.

    Using the forge-stress approximation we set up, we could determine that above effect is not due to a range of RTS parameters, as for example the number of capabilites used by the node.

    Infrastructure

    The tx-generator is a crucial part of our tooling responsible for producing very specific workloads for our benchmarking cluster. In an effort to flesh out an API to make it reusable for more general use cases, a first set of refactorings has been merged to master. Additionally, this merge contained systematic documentation both for internal and for exposed areas of the code base.

    Tracing

    The tracing system's concurrency could under certain conditions prevent a graceful shutdown of the node. This issue did occur only after adding specific new traces on a development branch. We could localize and address that issue.

    Nomad backend

    With the data gathered from running the new nomad cloud backend, we've been able to address many, many small and medium-sized improvements. The deployment process has been restructured for better efficiency, and the healthcheck system could be fine-tuned to recognize severity of various conditions that might occur. Optimization of fetching all run data from the cloud for evaluation is in progress.

    Additionally, we're continuing the new backend's validation by setting up test runs and looking into comparative analyses with metrics gathered from the current cluster backend.

    · 2 min read
    Michael Karg

    High level summary

    • Benchmarking: We've continued release benchmarking and established a new baseline for 8.0.0.
    • New tracing: Our benchmarking profile for measuring new vs. legacy tracing performance has been refined.
    • Nomad backend: The healthcheck system for the the nomad cloud has been completed. We've performed the first full runs on the new backend.

    Low level overview

    Benchmarking

    In our release benchmarking cycle, we established a new performance baseline for 8.0.0. Additionally, we've measured +performance under various workloads for 8.1.1-pre; the results look promising and validate the optimization efforts +done on several system components.

    In the meantime, we've finalized a build plan with GHC9.2 that matches the current one with GHC8.10; a requirement for +benchmarking as a large amount of differences in the dependency graph can confound the results for the application code proper.

    Tracing

    The legacy and the new tracing system differ fundamentally in design, implementation and handling. So for metrics to be +meaningful in a comparison, benchmarking profiles have to be tuned such that not only log line frequency but frequency of specific +trace messages are closely aligned. We've found that higher granularity in this regard was necessary, and done additional work on our dedicated profiles.

    Additionally, we've had a first glance of what additional traces could be valuable in the context of benchmarking UTxO-HD.

    Nomad backend

    As the new backend's healthcheck system in its first iteration can now serve as a guardrail to ensure sanity of a full-length run, we've performed our first 52-node cluster runs on nomad cloud. We're currently smoothing the edges around cluster deployment, and analysing the metrics gathered from those runs.

    This means the backend is entering validation phase, where we systematically compare all metrics taken from the new +infrastructure to the existing ones, including determining reproducibility and variance.

    + + + + \ No newline at end of file diff --git a/tags/performance-tracing/page/5/index.html b/tags/performance-tracing/page/5/index.html new file mode 100644 index 0000000000..bb2f8e6744 --- /dev/null +++ b/tags/performance-tracing/page/5/index.html @@ -0,0 +1,79 @@ + + + + + +34 posts tagged with "performance-tracing" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    34 posts tagged with "performance-tracing"

    View All Tags

    · 3 min read
    Michael Karg

    High level summary

    • Benchmarking: We've performed and analysed first benchmarks with GHC9.2 builds. Additionally we have developed an early indicator for how build config changes might reflect on metrics from our model cluster.
    • New tracing: Collaboration with Galois led to the new tracing system to be equipped with a re-forwarding mechanism.
    • Nomad backend: Porting the 52 node model cluster to nomad cloud is ongoing, with the focus on deployment and health checks.

    Low level overview

    Benchmarking

    The first set of runs with GHC9.2 as a build platform are in. We've discovered a significant difference in resource profile usage compared to GHC8.10. Further investigation uncovered the need for benchmarking another parameter change in the build +configuration: As it stands, the ghc-bignum package is using the Haskell native-backend as a default. We strive +to benchmark a build with the gmp-backend next.

    A variant of our forge-stress local benchmark has been set up to serve as an early indicator for the resource usage profile +we'd expect to observe on the model cluster. This provides us with a much tighter feedback loop, as local run duration is way +shorter. This indicator is specific to changes in the configuration of build and the runtime systems, and will be of great +support when evaluating different compiler versions or RTS flags incrementally.

    Tracing

    The hub of the new tracing system cardano-tracer is designed with a fixed output behaviour, which is limited to various +logging options. Thanks to the contribution from Galois, that design is now extended to be able to re-forward all, or a pre-filtered portion, of traces from the node in a configurable manner. This will enable downstream applications to +directly receive the set of trace values relevant to their logic, without any additional cost for the node itself at all.

    Nomad backend

    We're currently working out the details of efficiently deploying and monitoring a fleet of 50+ nodes, along with +job definitions for tracing and transaction generation. Scaling up to those many instances, and monitoring an ongoing +benchmarking run required us to fine-tune communications with the nomad server.

    Related to that, the new cloud backend will provide a monitoring and health-checking mechanism which is far more flexible +and offers more detailed insight than the previous iteration in cardano-ops. The backend will enable you to formulate +very specific conditions for an ongoing run to be considered healthy, and offer automation of certain actions should these conditions not be met.

    · 4 min read
    Michael Karg

    High level summary

    • Benchmarking: We're preparing our model cluster to perform GHC9.2 benchmarks, as well as experimenting with increased dataset sizes.
    • New tracing: After optimization work on the new tracing system, another cycle of validation and documentation is due.
    • Analysis pipeline: First steps on implementing incremental analysis have been untertaken.
    • Open Sourcing: Exhaustive dataflow charts for both our analysis tool locli and our workbanch have been merged to master
    • Nomad backend: The first set of CI-centric workbench profiles have been adjusted and run on the nomad backend; currently we're porting the definition of our model cluster.
    • P&T Meetup: We had a very productive personal meetup in Lugano, Switzerland.
    • Offboarding: Sadly, we have to say goodbye to our team lead. Currently, we're busy with the handover.

    Low level overview

    Benchmarking

    As a compiler switch to GHC 9.2.7 for cardano-node's default build environment is around the corner, we're setting up our benchmarking cluster to +handle the new version. Special attention is given to the fact that we might need more flexibility in switching compiler versions in the future. This +also involves choosing a reliable baseline as reference point for inter-version comparisons.

    Additionally we've been working on refining our model cluster: by increasing UTxO and delegation map sizes to closer match those of current mainnet, +we strive to have a more accurate model - and thus be able to make more detailed predictions regarding performance. However, this still needs to +be balanced against resource demand for all our cluster's nodes.

    Tracing

    For our new tracing system, we're currently validating the behaviour of the system after optimizations have been applied. Furthermore, some +quality-of-life details that have changed required us to revision the system documentation.

    Analysis

    As a mid-term goal, we aim to provide incremental analysis of our benchmarking metrics. While currently, we can only reliably process runs that have been +normally (or abnormally) terminated, we see the possibility of incrementally analysing ongoing runs, or any data source yielding our key metrics, as a +huge opportunity to increase our operational flexibility. All in all, this approach entails building completely new features for our pipeline. A first effort to accomodate incrementally incoming data points has been undertaken.

    Open Sourcing

    A very involved and exhaustive documentation and visualization effort has been undertaken to make the data flow through our key benchmarking +copmonents more accessible. As a result, detailed charts for both our LogObject CLI locli and our workbench have been merged to master.

    Nomad backend

    While our Nomad backend is reaching completion, and hardware setup is being implemented in collaboration with SRE, we've been adjusting +those profiles of our workbench that target CI-oriented workloads to the new backend. Those profiles should demonstrate the full functionality +of the nomad cloud backend.

    Additionally, we're porting a first deployable version of our model cluster to nomad cloud, which will form the basis for validation of our actual key metrics with regard to those from the existing cluster.

    Performance & Tracing Meetup

    We held a personal team meetup in Lugano, Switzerland. In an amazing location, and with a great seminar room to focus, we had 2 very productive +days together. Being able to discuss live and in colour, we could effectively synchronize on where the team is at, and how we want to develop in the future. +Also, it was a great opportunity to finally meet in person.

    Offboarding

    Last not least we regret that our team lead is leaving at the end of May. Currently, he's handing over all his obligations, which requires reorganisation +of team structure, and responsabilities of team members for specific tasks. Serge, we all want to thank you for your excellent and reliable lead; we very much enjoyed the time with you, and wish you all the best for your future endeavours!

    · 2 min read
    Michael Karg
    • Benchmarking: The benchmarks and performance investigations for the new 8.0 release branch are ongoing.
    • New tracing: Performance optimization of the new tracing system is paying off and we could notably shrink its resource footprint.
    • Analysis pipeline: An exhaustive documentation and dataflow diagram for our analyses is being worked on.
    • Infrastructure: The plutus-apps flake input for cardano-node has finally been removed.
    • Nomad backend: A PR implementing placement of benchmarking clusters has been merged.

    Benchmarking

    The performance investigations on the 8.0 release branch have lead to pinpointing and addressing incosistent behaviour. For that, +we created yet another local reproduction with the workbench's forge-stress benchmark.

    Currently we're working on scaling up the dataset size (UTxO and delegations) on the AWS cluster to gain further insight into 8.0 and +subsequent releases.

    Additionally, we've refined the trace-bench family of profiles that target benchmarking our own new tracing system.

    Tracing

    Optimization of the tracing system has identified several locations where inefficient serializations were used; those were not originally +intended to run on a performance-critical codepath. We've worked on improving those, as well as eliminating cases of redundant +conversion between different serialization formats. This has brought down both memory and CPU impact of the tracing system.

    Infrastructure & Analysis

    Dataflow documentation

    The LogObject CLI locli is at the heart of our analysis and reporting pipeline. To increase its accessibility and facilitate +further development, we're creating a detailed and illustrated documentation of all dataflows that happen during analysis and reporting.

    Remove redundant Plutus flake input

    This step is the conclusion of porting Plutus benchmarking scripts to our own library. By finally removing the now unnecessary flake input, +we simplify the dependency graph for cardano-node, as well as enable immediate feedback when developing Plutus benchmarks.

    Nomad backend

    Sophisticated placement of nodes across various regions of the globe is a cornerstone of the model cluster we use for benchmarking. +This capability has now been added to the Nomad backend and can be controlled with Nomad job descriptions. A PR with this, along +with various quality-of-life improvements, has been merged to master.

    · 3 min read
    Michael Karg
    • Benchmarking: We performed a series of benchmarks aimed at the new 8.0 release branch and built a timeline from the 1.35 releases to that branch.
    • New tracing: Work on safeguarding the new tracing system performance-wise is ongoing. A practical use case for data points is being tackled with Galois.
    • Analysis pipeline: We're working on automatically obtaining a detailed manifest for each run.
    • Infrastructure: The library for benchmarking Plutus scripts has been merged. Also, we've laid the ground for including GHC profiling data into our workbench.
    • Nomad backend: The first iteration of a distributed / multi-client Nomad cluster has been merged.

    Benchmarking

    We have performed various cluster runs targeting the 8.0 release branch. That way we were able to catch an inconsistency in behaviour early on. This led to the creation of a specialized workbench profile epoch-transition for local reproduction of what we observed on the benchmarking cluster.

    Furthermore, we bridged the gap between the run data from the 1.35.x releases to the the new 8.0.x release branch. This included walking the +master branch backwards and pinpointing the order, as well as the dates and commits of all relevant component bumps. This timeline is absolutely crucial +in locating possible regressions for the new release branch, as it provides the exact points in history we would need to target with a comprehensive set of +benchmarks.

    Tracing

    In-depth performance analysis of the new tracing system has already yielded results and helped us smoothing some rough edges. However, this work is still +ongoing.

    In coordination with Galois, who are developing a system assurance service by observing a number of cardano-nodes, we're working with the implementation +of data points which the node provides during runtime. While making the view on data points expressive enough for the external service, the computational +burden inside the node needs to be kept to an absolute minimum. We're currently in ideation about whether cardano-tracer could be extended with a richer +feature set to that end.

    Infrastructure & Analysis

    Detailed manifest

    A run manifest documents, among other things, the component dependencies that were used for a specific build the run has been performed with. +These dependencies come from different package sources, have different versioning policies, and an identical package version might provide different +performance characteristics depending on the exact commit used for the build. This manifest will greatly increase insight into where changes in measured behaviour might have originated +by making all component bumps visible and accessible.

    GHC profiling inside workbench

    The workbench has been equipped with a new -profnix profile flavour. This enforces a -fprof-auto build for all node-related packages. The type of +profiling data generated by the GHC runtime can be customized and will enter statistical analysis. The relevant PR for this new feature has already +been merged to master.

    Nomad backend

    The added feature for a multi-client Nomad cluster greatly enhances how jobs are organized by the backend and mapped within specific instances. +This results in great maintainability while not giving up on flexibility. However, work on that feature is still ongoing.

    · 3 min read
    Michael Karg
    • Benchmarking: We worked on adjusting our infrastructure to the new 8.0 release branch and performed a (very) early run.
    • New tracing: We're profiling the new tracing system for minimizing its resource footprint and guarantee high throughput.
    • Analysis pipeline: Variance analysis both for reporting and for serving as a point of comparison has been merged.
    • Infrastructure: A library for Plutus scripts will be integrated in our tooling and benchmarking profiles. Also, a profile family aimed at the tracing systems has been added.
    • Nomad backend: Various specializations of the backend are currently being implemented, along with streamlining credentials management.

    Benchmarking

    We have adapted our benchmarking cluster to the requirements of the 8.0 release branch. Testing runs of a very early feature branch for 8.0 +helped us localize an important issue in collaboration with the other teams. We look forward to gathering preliminary metrics for 8.0 soon.

    Tracing

    Analysis of resource usage profiles of both the legacy and new tracing system, with and without trace forwarding, have lead us to gather very +detailed profiling data for each possible setup. This is to ensure we keep resource usage within the node to an absolute minimum, while still providing +the highest possible throughput of data for forwarding to cardano-tracer.

    Additionally, we've worked on a very practically-oriented document targeted at end users of the new tracing system. It provides tested step-by-step instructions +for tunneling trace forwarding from a node to cardano-tracer via an easy to manage system service, which will match the production setup of most users.

    Infrastructure & Analysis

    General

    Variance analysis as a full-fledged entity in our tooling has been merged. Not only is this type of analysis now part of our reporting pipeline - variance +analysis can be fed back and serve as an additional point of comparison.

    Furthermore, we've created a profile family for the workbench that's specifically aimed at measuring and comparing tracing system configurations.

    Plutus library

    We opened a PR containing a new package for benchmarking - an extendable library that holds all Plutus scripts we use in our benchmarking profiles. +This will enable us in the future to iteratively work on customizing any given script, and the way is called in the context of a specific profile. +It is a refinement of current affairs, where we have additional build inputs solely to generate a static script file tied to an external commit.

    Nomad backend

    The nomad backend is being specialized in three ways: using a podman driver locally, using nomad agents supporting nix installables, and using nomad cloud agents. This supports having a common surface independent of the actual backend driver being used. In addition, vault retrieval and management of cloud access credentials is +being improved to minimize any friction for the backend user.

    + + + + \ No newline at end of file diff --git a/tags/performance-tracing/page/6/index.html b/tags/performance-tracing/page/6/index.html new file mode 100644 index 0000000000..b9e9700f71 --- /dev/null +++ b/tags/performance-tracing/page/6/index.html @@ -0,0 +1,39 @@ + + + + + +34 posts tagged with "performance-tracing" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    34 posts tagged with "performance-tracing"

    View All Tags

    · 3 min read
    Michael Karg
    • Benchmarking: We performed benchmarks for the new tracing system, and started benchmarking for varying GHC RTS configurations.
    • New tracing: Backwards compatibility with legacy tracer nomenclature has been merged; we're currently improving documentation and creating setup guidelines for end users.
    • Analysis pipeline: Our refined metrics PR has been merged. We're working on including variance analysis to our reporting machinery.
    • Infrastructure: Support for Conway genesis in our workbench has been merged. At the moment, we're laying the groundwork for enabling GHC 9.2 in our benchmarks.
    • Open Sourcing: The API demo has reached prototype phase; work on documenting the API and providing exemplifying use cases is ongoing.
    • Nomad backend: The nomad-exec based task driver has been merged. The backend has been equipped with the capability for genesis distribution via S3 bucket.

    Performance

    New tracing

    The new tracing system has undergone various benchmarking runs with variance analysis, and comparison to a baseline using legacy tracing. We could observe +a slight shift in the resource usage profile from memory to CPU, but no regressions in block propagation metrics. Variance was observed to be notably smaller, which gives the new system a much better predictability. From this angle, we consider the new system fit for production use.

    GHC RTS parametrization

    We're currently prerforming various runs on the cluster to explore the space of different GHC RTS settings for running nodes. The main focus lies +on different configurations for the garbage collector, as well as increasing the number of CPU cores the node may use.

    Open Sourcing

    Our API demo has reached prototype stage, and operates on live data from the production database. Making use of the experience gained, we're refining version 1 of the API to provide optimized usability, and creating documentation that both is descriptive of the API endpoints, and focuses on practical, exemplary use cases.

    Tracing

    For the new tracing system we're currently undertaking an effort to multi-layered documentation: a condensed version, as well +as a setup guide with pragmatical focus, will be provided alongside the in-depth documentation. This effort should cater to different audiences, and provide distinct entry points +for users of the new system, depending on their wants and needs.

    Infrastructure & Analysis

    General

    Having included Conway genesis in the workbench, as a next step in future-proofing out benchmarking infrastructure, we're laying the foundation for a switch in compiler version to GHC 9.2. Additionally, we considered variance analysis of our runs to merit inclusion into our reporting pipeling - which will +increase confidence in specific metrics.

    Nomad backend

    We have implemented an appropriate mechanism for genesis distribution: Only after a benchmarking cluster has been deployed successfully, genesis +is patched and uploaded to an AWS S3 bucket for the nodes to retrieve - as a final step before initiating the actual run. We're confident that this deferred approach will provide clearer evidence for genesis patches, as well as minimize startup time for all runs by factoring in deployment re-tries.

    · 2 min read
    Michael Karg
    • Release benchmarking: We again performed benchmarks for the next 1.35.6 release candidate.
    • New tracing: Backwards compatibility with legacy tracer nomenclature is being implemented to smoothe the transition for end users.
    • Analysis pipeline: A major refinement of benchmarking metrics has been realized, along with a structural improvementents regarding metrics denomination.
    • Open Sourcing: Work on going live with our benchmarking data has begun, as well as creating an API demo and documentation.
    • Nomad backend: The backend was adapted to a major refactoring in workbench and is being equipped with a nomad-exec based task driver.

    Performance

    1.35.6 release

    Benchmarking the second release candidate for 1.35.6 could again attest to a perfectly clean bill of health.

    Analysis pipeline

    Our analysis pipeline has seen an introduction of additional metrics, especially when focusing on the block producing node. They allow us to better +differentiate the timing of ledger ticking and mempool snapshotting in the forging loop - a feature that promises much deeper insight into UTxO-HD performance. +Additionally, a restructuring of metrics names has been undertaken along with improvements in their data dictionary; a measure that will make benchmarking +data more easily accessible.

    Open Sourcing

    As a prerequisite for going live with our benchmarking data, we're currently working on consolidation of existing analyses, such as to provide a common foundation when accessing them externally. Additionally, we've begun working on a small visualization demo and interactive API documentation. Those will enable +third parties to make use of that data much more easily, by having reliable guidelines and a working example.

    Tracing

    The new tracing system is being outfitted with a comprehensive mapping of its structure to the legacy tracer nomenclature. This feature will make +the switch to the new system as smooth as possible for end users, allowing them to gradually adapt their tooling without breaking any functionality in the process.

    Infrastructure

    Nomad backend

    The Nomad backend was adapted to the latest major refactoring in workbench. Work was done on making stateful Nomad clients more autonomous, which will greatly facilitate any automation building on that backend. A task driver based on nomad-exec is currently being implemented.

    · 3 min read
    Michael Karg
    • SECP benchmarking: we concluded our benchmarking runs and analyses of the new SECP primitives for the Valentine hard-fork.
    • Release benchmarking: we performed a round of benchmarks for the 1.35.6 release.
    • UTxO-HD benchmarking: we performed first runs for UTxO-HD and are currently refining the benchmarking setup.
    • New tracing: for better accessibility, the new tracing system is being outfitted with introspective capabilities.
    • Infrastructure: with the Nomad cloud workbench backend we were able to perform our first test cluster runs successfully on SRE infrastructure.
    • Infrastructure: the initial NixOps workbench backend has been completed; a PR containing this work, along with many quality-of-life improvements of our tooling, got merged.

    Performance

    SECP

    1. For SECP, we settled on a fixed tx count per block, while simultaneously spending as much as possible of the block budget. Thus we were able to minimize the impact of per-SC-call overhead.
    2. The final runs were performed with various fractions, e.g. half, of the current block budget to ascertain how these workloads would fare compared to a value-only run.
    3. The SECP machinery and profiles are currently being generalized into an approach to aim for very specific aspects of a smart contract for benchmarking.

    UTxO-HD

    1. After analyzing initial UTxO-HD runs, it turned out that mempool snapshotting had to be throttled for benchmarking; it affects a lock that UTxO-HD had to introduce into the forging loop.
    2. We're currently adapting the benchmark setup to that, and will then perform a new combination of baseline and UTxO-HD runs.

    1.35.6 release

    Benchmarking the 1.35.6 release candidate could attest to a perfectly clean bill of health.

    Tracing

    Work on the new tracing system's introspective capabilites is ongoing: Immediate use cases of the new API include being able to statically validate generated tracer documentation, as well as providing information of a specific tracing setup in the node via traces themselves. These features will make the new system both more robust, and more accessible.

    Infrastructure

    Nomad backend

    1. Work on the cloud deployment capability of the Nomad workbench backend continued; for testing we can automate multiple Nomad clients.
    2. Locality assumptions were removed and job monitoring was refactored.
    3. To facilitate directly-executable derivations, Nomad Job specification files are now self contained with GitHub references and configs needed to run a cluster.
    4. We're currently evaluating different options for genesis distribution in said cluster.

    NixOps backend

    The NixOps workbench backend has reached an initial functional stage. Consequently, the relevant PR was merged. It also contained many improvements to our analysis tooling, as well as a structural overhaul of workbench itself. We consider this an important step of future-proofing our benchmarking machinery.

    · 3 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking: we ran several rounds of SECP benchmarks, refining the benchmark setup as we discovered the properties of the system. After formulating an initial suggested change to the protocol parameters, we're currently running what we consider the final benchmark, to validate the underlying assumptions.
    2. Release benchmarking: we've performed a round of benchmarks for the hotfix 1.35 release update and initiated the 1.35.6 benchmarks.
    3. New tracing: the improvement in the tracing API, with the underlying restructuring, was completed and merged into the node.
    4. New tracing: before going live, we're performing the documentation update, as well as reworking the end user migration guide.
    5. Open sourcing: the benchmarking data publishing has been completed and deployed. After populating it with relevant benchmark data and providing basic user documentation we can go live.
    6. Infrastructure: the cloud workbench backend is progressing well, the networking aspects of multi-region deployment are currently being worked on.
    7. Infrastructure: the NixOps workbench backend is still being worked on, as part of migration from cardano-ops and benchmarking infrastructure unification.

    Performance

    We are approaching the end of a chain of SECP benchmarks, as we gradually eliminated deficiencies in the setup as we were discovering them and answering newly appearing questions:

    • we improved the tx/block filling strategy in the generator, to maximise the per-block utilisation of resources and so better approximate the worst-case,
    • after a discovery of what looked like significant per-SC-call overhead, we again tweaked the the tx/block filling strategy,
    • finally, we're redoing all benchmarks together with a value-only run against the backdrop of Mainnet-sized datasets, to balance the suggested adjustment. That also ran into difficulties wrt. limitations of our benchmarking hardware.

    In addition, we started benchmarks of the 1.35.6 release.

    Tracing

    A rework of the new tracing system's internals and API was merged. It extended the system with introspection, which enabled a range of improvements, some of which were implemented along the way.

    Specifically, we were able to completely short-cut processing of messages generated by the tracers that were made provably ineffective by current tracing configuration. Further, now ongoing work enabled by the introspection facilities, includes static validation of documentation and enhanced node state reporting.

    Infrastructure

    On the opensourcing/transparency front, the benchmark data publishing machinery was finally fully assembled and put online. As resources permit, we'll work on populating it with benchmarking data, preparing basic documentation and engaging the stakeholders.

    The work on the cloud deployment capability of the Nomad workbench backend continued with focus on setting up inter-node networking and removal of locality assumptions. A major step besides those, was completion of a switch-over to the directly-executable derivations, which eliminate the need for creation and distribution of images -- thereby increasing the speed of deployment.

    The Nixops workbench backend progressed steadily, reaching minimal deployment capability. The remaining parts are proper shared configuration generation, and porting of the run control functionality from cardano-ops.

    · 2 min read
    Serge Kosyrev

    High level summary

    Since our last update, we focused on infrastructure work: benchmark enablement, tracing system, benchmark environment merge and open source support:

    1. SECP benchmarking enablement is underway: enabling SECP runs in our cardano-ops benchmarking environment is still in progress.
    2. The new tracing system: the improved API of the new tracing system was implemented, and we're now porting the tracing integration layer over.
    3. Infrastructure: the mainnet protocol parameter history is now encoded in the workbench profile machinery at epoch-level granularity, which gives us a systematic approach towards description of past and future benchmarks.
    4. New benchmark deployment infrastructure: we've made some progress on Nomad deployment backend, shared by both of the data publishing and benchmarking needs.
    5. Legacy benchmarking: we've started merging the legacy benchmark deployment infrastructure into the workbench.
    6. Open sourcing: the benchmarking data publishing tool was adapted to the Nomad execution environment provided by SRE, pending final deployment.

    Performance

    The AWS cluster infrastructure necessary for SECP benchmarking is still being worked on.

    Tracing

    The improved tracing internals were implemented, and we're now into the phase of updating the tracing integration, which is also mostly done.

    Infrastructure

    Thanks to collaboration with the DevX team, we have identified and pursued a design that would enable our Nomad workbench backend to execute deployments of both the benchmarking cluster and our data publishing components.

    On the benchmark parametrisation front, we have eliminated a long-standing weakness in the way we were specifying the protocol parameters. +We now have a very clear and granular method to keep track of protocol parameter evolution -- e.g. the mainnet history changes are now tracked at epoch granularity, while also allowing for systematically described change overlays. This makes the benchmark profile definition much more clear and robust against mistakes.

    We also started a merge of the legacy benchmarking environment (based on cardano-ops) into the workbench. The separation between environments was too costly, causing us to reimplement any benchmarking change twice -- first, during development, in the workbench, then in cardano-ops. In addition, maintenance of compatibility code was incurring additional costs, slowing benchmark data analysis development. +Once this merge is complete, this will allow us to sharply cut the benchmark development cycle and overheads.

    + + + + \ No newline at end of file diff --git a/tags/performance-tracing/page/7/index.html b/tags/performance-tracing/page/7/index.html new file mode 100644 index 0000000000..06e3bbebc0 --- /dev/null +++ b/tags/performance-tracing/page/7/index.html @@ -0,0 +1,32 @@ + + + + + +34 posts tagged with "performance-tracing" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    34 posts tagged with "performance-tracing"

    View All Tags

    · 4 min read
    Serge Kosyrev

    High level summary

    1. SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.
    2. A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery.
    3. The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals.
    4. Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.
    5. Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.

    Performance

    The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload.

    We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.

    Tracing

    After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.

    To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:

    1. We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.
    2. The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.

    All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further.

    In addition, we're still pursuing our performance-enhancing rework of the new tracing internals.

    Infrastructure

    After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.

    Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it. +This means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis. +This will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports.

    A new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches. +Previously we only had automation for two aspects separately, so we only could either:

    • compare individual runs (used for different node configurations / versions)
    • collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version) +Naturally, combining these two capabilities was a long-desired feature of our analysis pipeline.

    · 2 min read
    Serge Kosyrev

    High level summary

    1. Benchmarks for the 1.36 first pre-release bump of the internal components have been delivered, and data shows the component bump is clear for release.
    2. SECP benchmarking enablement is underway: the necessary generator features have been implemented, and are now being integrated into the workbench.
    3. The new tracing system: in response to the performance regression we previously discovered we are working on pre-planned implementation improvements, and doing more benchmarks.
    4. Infrastructure: the Nomad-based workbench backend has been made closer to a cloud deployment scenario. Cleanup in preparation for Cicero CI/CD integration started.
    5. Open sourcing: ongoing SRE collaboration on production deployment of performance data publishing.

    Performance

    We have ran benchmarks for the first component bump of the upcoming 1.36 release, and we don't see any significant performance changes. The component bumps are therefore clear for release.

    Tracing

    For the tracing system regression that we spotted -- even before, we already had plans for further efficiency improvement, and now we are actively pursuing them. +The idea is to collect more statically-available information to enable shifting of more tracing decisions from message delivery time to configuration time.

    To support this effort, we also started running more benchmarks and enhanced data analysis with relevant metrics.

    Infrastructure

    Generation support for Plutus V2 has been implemented and so, with the help of the previously made looped signature-verifying script, the generator is now capable of producing two SECP workloads: verifying either ECDSA or Schnorr signatures. This is now being integrated into the infrastructure -- the generator parametrisation API is being enhanced and the workbench is being extended to handle the new parametrisation.

    In addition the workbench is now being enhanced to handle protocol-version-based choices for the Plutus cost model.

    The intermediate cloud compatibility iteration of the workbench cloud enablement effort was merged. +We are now doing some cleanup work in preparation for starting the Cicero backend, which will bring us nearly completely to the CI/CD integration.

    We continue collaboration with SRE on production deployment of data publishing. We now have a gradual rollout plan, which respects the plans for SRE infrastructure feature availability.

    We are working on recovering the software dependency manifest feature that was lost with the organisation-wide transition to CHaP.

    As usual, a number of smaller workbench, data analysis & reporting improvements have been made.

    · 2 min read
    Serge Kosyrev

    High level summary

    1. P2P performance investigation is ongoing, in support of the networking team.
    2. SECP benchmarking enablement is underway: we already have the script and are working on Plutus V2 generation support.
    3. Unexpected setback in the new tracing system: full scale benchmarks have shown a performance regression: local chain syncing benchmarks were an improvement over legacy tracing.
    4. On the open sourcing front we added an integrated data dictionary, which is necessary for explaining ourselves to the world. SRE collaboration on production deployment of performance data publishing has started.
    5. We have started bringing the Nomad-based workbench backend closer to a cloud deployment scenario.

    Performance

    We are supporting the networking team on P2P performance investigation. Generation support for Plutus V2 was started. We have collaborated with the Plutus team to get a SECP benchmark script, which is now ready for use, pending Plutus V2 support. The transaction generator has also been updated to the cardano-api changes.

    Tracing

    We ran an initial round of full-scale benchmarks for the new tracing system -- which uncovered a regression relative to legacy tracing, which is contrary to the local chain syncing benchmarks, that showed improvement instead. We added tracing to cardano-tracer, fixing some minor bugs on the way. Network and disk IO metrics are now collected once again and are integrated into analysis.

    Infrastructure

    The first iteration of the Nomad-based local workbench backend was completed -- it has reached feature parity with the existing supervisor backend. The next iteration started, bringing it closer to the cloud scenario, by deploying to separate Nomad tasks connected by a virtual network. This will serve as basis for CI and full cloud backends.

    We designed and implemented the authoring pipeline for the performance data dictionary, which will be henceforth embedded in our performance reports. We are collaborating with SRE on production deployment of data publishing.

    A number of smaller workbench, data analysis & reporting improvements have been made.

    · 2 min read
    Serge Kosyrev

    High level summary

    On the performance side, the team ran benchmarks for the the P2P feature and the 1.35.4 release. We finished a prototype for performance data publishing. We almost finished the local deployment backend for the workbench using the new SRE deployment infra. We worked on fixing and improving our data analysis pipeline.

    On the tracing side, the team worked on isolating a critical issue causing message loss in the remote tracing backend. The issue was resolved and we now have proper end-to-end coverage for the scenario.

    Executive summary

    • The new tracing system public release is getting closer, as we're resolving remaining rough edges that are discovered in full-scale deployments. The local benchmarks we ran were already showing improvement relative to legacy tracing, so we expect similar results at full scale.
    • The first (local deployment) iteration of benchmarking adopting the new SRE deployment infra is nearly done. We thank Michael Fellinger and Robin Stumm for their assistance. Two further phases remain: CI integration and cloud deployment.
    • The benchmarking data publishing prototype is ready. This serves as a springboard for both opening our performance assessment workflow (to support the wider Cardano developer community), and for data provision to the business community. Our next steps are to secure a permanent deployment for this mechanism and to integrate it into the benchmarking infrastructure. This requires collaboration with SRE.
    + + + + \ No newline at end of file diff --git a/tags/release/index.html b/tags/release/index.html new file mode 100644 index 0000000000..dd6f600273 --- /dev/null +++ b/tags/release/index.html @@ -0,0 +1,83 @@ + + + + + +5 posts tagged with "release" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    5 posts tagged with "release"

    View All Tags

    · 2 min read
    Marcin Szamotulski

    High level summary

    We have been working towards cardano-node-1.35.5 release. QA & benchmarking +teams gave a green light for the release, and we made decent progress with some +CI problem which we encountered on the way (PR #4612). We are also working on +peer sharing, making improvements in our testing infrastructure, reducing +technical debt and making progress towards io-sim-1.0.0.0. Galois is making +progress on Handshake improvements.

    Low level summary

    Our diffusion simulation network now includes a mixed network of initiator +only and initiator and responder nodes. issue #4222

    We are now reviewing the peer sharing pull request.

    We are also reviewing pull request which introduces handshake query flag. PR #4256

    We fixed a bug in our network simulator. The bug was triggered when a node +died when performing a simultaneous TCP open (a corner case of a corner case!). PR #4265

    We also refactored Snocket interface and removed the bearer construction from +its methods. PR #4260

    We are working towards releasing io-sim-1.0.0.0 on Hackage, which includes +reviewing two PRs: PR #57 and PR #60 as well as writing an announcement +blog post.

    · One min read
    Samuel Leathers

    Node Reelease Update

    2022-11-02 - 2023-01-13

    Executive Summary

    A 1.35.5 release for single relay P2P is nearly completed and should be released this month. This release is based on +release/1.35 branch and does not bump cardano-ledger.

    The team successfully integrated an interim release bump of ledger and consensus into cardano-node master. +This work will not be released in a node version, but will be continued by the current dependency bump in progress.

    We anticipate once this dependency bump is completed, regular 2 week releases will be feasible again.

    The 1.35.4 release is being ran by more than 70% of stake pools. Planning for the mainnet hard fork date is in progress.

    Completed

    In Progress

    · One min read
    Marcin Szamotulski

    High level summary

    In last sprint the team focused on preparations for the conference talk at +OPODIS 2022. We also worked on preparations to publish io-sim and related +packages on Hackage (PR #57, PR #60).

    We also started reviewing:

    • ouroboros-network
    • cardano-node
    • cardano-ledger +repositories for open-source readiness (PR #4128).

    We prepared a PR which changes how node-to-node and node-to-client protocol +versiones are serialised in cardano-node log (PR #4691).

    · 4 min read
    Marcin Szamotulski

    Stake-Driven Data Diffusion Release for Relays

    IOG networking team decided to release the Stake-Driven Data Diffusion with +Robust Optimised Peer Selection also more commonly known as P2P. In the +last update, we informed about a performance regression, but it turns out it +only affects block producers, and thus we highly advise against running it on +such nodes. Further investigation is required to find the cause of it.

    On IOG's benchmarking cluster we have seen quite a good performance improvement +on block propagation itself. The cluster is running a static topology with +valency 6 (each node is connected to 6 other nodes). In which every of the 50 +nodes are block producers. The setup of this network is the same as mainnet. +We've seen 40-50% performance improvement on block propagation comparing to the +same cluster deployed with the same topology but using non-P2P nodes. We think +this performance improvement is caused by using full duplex connections. Quite +likely the transaction traffic floating in both directions on the same TCP +connection helps to keep the TCP window open. Note that in a cluster of 50 +nodes with valency 6 the probability of having at least one duplex connection +is more than 50%. We don't expect the same improvement on mainnet because the +network is much wider and the transaction traffic is not as large.

    Just before the release we squashed two small bugs:

    • issue #4163 - top level integration bug in keep-alive;
    • issue #4177 - a bug in outbound-governor;
    • PR #4165 - a fix cardano-ping support of NodeToNodeV_10.

    Peer Sharing

    We were carrying a review of peer sharing PR.

    DeltaQ

    Neil Davies was invited to give a guest lecture entitled Avoiding System Catastrophes at UCLouvain.

    What have we achieve last sprint

    • issue #4163: we found out that a control message is not passed to the +keep-alive mini-protocol, this results in every demotion executing demotion +timeout rather than a graceful termination. With the fix the node will no longer log:

      { "kind": "PeerStatusChangeFailure"
      , "peerStatusChangeType": "WarmToCold (ConnectionId {localAddress = 192.168.0.10:7000, remoteAddress = 3.129.186.40:3000})"
      , "reason": "TimeoutError"
      }
    • issue #4177: we fixed an assertion failure in the outbound-governor; now +we don't try demoted peers which are being demoted already.

    • PR #4155: we refactored ouroboros-network packages. There's a top level +ouroboros-consensus-diffusion package which integrates network +& consensus code. We also introduced:

      • ouroboros-network-api package which contains the API shared between +network & conensus;
      • ouroboros-network-mock package which contains mock API used for testing +(e.g. a mock chain & chain producer, etc.)
      • ouroboros-network-protocols package which contains implementation of all +(but handshake) mini-protocols, exposes a testlib and contains test +and cddl components.

      This made the dependency tree of network & consensus packages much +cleaner.

    • PR #4169: we described the usage of release branches in CONTRIBUTING.md +doc.

    • PR #4165: we fixed cardano-ping support of NodeToNodeV_10 protocol.

    DeltaQ

    The abstract of the talk:

    An essential step to ensuring that distributed systems are fit for +purpose.

    Distributed systems have become an integral part of our society and +daily lives. We are, both implicitly and explicitly, individually as well as +collectively, placing ever more trust in them.

    Are they worthy of this trust? Our need for them to be ‘fit-for-purpose’ goes +well beyond notions of functional correctness (i.e. never getting the wrong +answer). We need them to deliver the desired outcomes in a timely, robust, +reliable, resilient fashion, at scale and in a sustainable way (both +economically and environmentally).

    This all sounds like a worthy aspiration, but what would be a practical +approach to capturing and reasoning about these issues? How can we ensure that +systems can meet their fit-for-purpose objectives, not just in their design but +as they are deployed, encounter the imperfect world, are scaled to become +economic, and proceed into ongoing maintenance?

    This talk will illustrate how the notions of Outcomes and Quality Attenuation +(as captured by ‘∆Q’) are being used to both frame the necessary notions and +provide a basis for assuring the refinement and reification of such systems, +from initial concept to operational infrastructure.

    You can download the slides from here.

    · One min read
    Samuel Leathers

    Node Reelease Update

    2022-10-19 - 2022-11-02

    Executive Summary

    The team is formalizing the new release process and team structure. Both preview/preprod environments have been reset, +a temporary pv8 environment has been created for testing SECP before preview is updated to protocol version 8.

    1.35.4 release candidates have been created and are being tested internally and externally.

    Completed

    In Progress

    + + + + \ No newline at end of file diff --git a/tags/security/index.html b/tags/security/index.html new file mode 100644 index 0000000000..bac203ffbb --- /dev/null +++ b/tags/security/index.html @@ -0,0 +1,27 @@ + + + + + +One post tagged with "security" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    One post tagged with "security"

    View All Tags

    · 6 min read
    Kevin Hammond

    High level summary

    We have undertaken an initial high-level security analysis of the CIP-1694 design. We summarise the analysis and our responses here.

    Initial CIP-1694 Security Analysis and Responses

    Section: The constitutional committee


    • “For example, if we consider the hypothetical Constitution rule "The Cardano network must always be able to produce new blocks" - In this example, if the governance action to reduce block size to 0 is passed, then there will be no way of passing or enacting further proposals. That is, this governance action is completely non-reversable. Suggestion: Instating a built-in mechanism that checks (and perhaps enforces) that the proposed governance actions, if passed, can be reverted in the future.

    There is a 'guardrails document' in preparation which captures issues such as these. Some of them may be automatable, as suggested; others will need to be evaluated by humans.


    Section: Size of the constitutional committee


    • A possible issue with very large committee sizes (or large number of proposals/voters in general) is that it may take longer to have votes appear on-chain, which in extreme cases may require longer voting periods.

    Thanks. Yes, we’ve been thinking about this issue for a long time, see for example the section ‘Final safety measure, post bootstrapping’. We don’t consider this as an issue for the CC since they need to be elected while DReps can just register, so we expect the number of CC members to be much less than the number of DReps


    Section: Terms


    • The following sentence is a bit awkward to read: “For example, a committee of size five with a threshold of 3/5 a minimum size of three and two expired members can still pass governance actions if two non-expired members vote Yes.” —> Suggestion: “For example, if we have a committee of size five with a threshold of 3/5, then a committee of three non-expired and two expired members can still pass governance actions if two non-expired members vote Yes.”

    Thanks. Yes, that suggestion is a bit easier to read.


    Section: Registered DReps


    • “Additionally, registered DReps will need to vote regularly to still be considered active.” - There is a minor issue with requiring “voting regularly”. That is, if there are no proposals to vote on for a long time, this means that no DRep can vote regularly (or they have to issue bogus proposals just to vote on them).

    Thanks. We’ve added a mechanism to prevent that issue in the spec/code where if there’s nothing to vote on for an entire epoch, we increment the epoch that each DRep expires.


    Section: Ratification


    • It is a bit unclear why protocol changes: network group and technical group are two separate groups.

    These correspond exactly to the groups that are administered by the Parameter Committee.


    • I didn’t understand the rationale for requiring 100% “Yes” votes to pass “Info” type governance actions? It seems they have the least potential to harm the system.

    Yes, it’s not about harming the system, since Info +actions have no direct effect on the operation of Cardano. The motivation is simply to record the actual level of support for the action.

    Once an action is enacted it’s no longer possible to vote on it. So if there was e.g. a threshold of 50%, then there is no way of telling whether the support for it might eventually have reached 90% or higher if it was not immediately enacted when the threshold was reached.


    Section: Content


    • For Hard-fork initiation, the changed parameters should probably also be required as part of Additional data.

    Protocol parameters can be changed in arbitrary ways by the hard fork and new ones might be introduced, so anything this action pins down might not actually be the value that will be present after the hard fork.


    Section: Protocol Parameter groups


    • It is a bit unclear to the reader what some of these parameters mean, for example: monetary expansion (rho) and treasury expansion (tau). Suggestion: Include brief explanations for the non-obvious parameters.

    These are existing protocol parameters, described in e.g. https://cips.cardano.org/cips/cip9/9 or The Cardano Protocol Parameters Guide.


    • With the current set of governance actions, it seems that it is not possible to add new types of protocol parameters, or categories of governance voting thresholds. Suggestion: Consider possibility of incorporating governance actions that allow addition of new protocol parameters, deletion of defunct protocol parameters, or modification of governance voting threshold categories.

    All of this needs to be done via a hard fork. If we had an action that added a parameter then there is no way of giving it semantics anyway, since that must be done by logic in the code.


    Section: Votes


    • Is a constitutional committee member also a DRep? If so, do they vote twice, once as a committee member and once as a DRep?

    They may or may not be (and they could also be an SPO). Note that this is fine, since these are completely separate tallies. This is also not preventable, since we don’t have an on-chain mechanism for identity. And yes, each credential gets to vote on each action for all roles in the governance system it has.


    Section: Separation of Hard Fork Initiation from Standard Protocol Parameter Changes


    • It is unclear whether there would be automated checks for whether a proposal is indeed a soft fork or hard fork, which would reduce human error in categorising proposals.

    There is no on-chain mechanism that could enforce this, the best we could do is some kind of certificate. However, this may not be trustworthy, of course. We will consider this in future versions of Voltaire.


    Section: Changes post Edinburgh workshop (July 2023)


    • “All governance actions are enacted one epoch after they are ratified.” - I’m not sure if this line is currently in the main body of the CIP?

    It is, but it is phrased differently: ‘All governance actions are enacted on the epoch boundary after their ratification.’


    Section: Reduced deposits for some government actions


    • Another downside of requiring endorsement from the constitutional committee is that this likely does not apply to constitutional committee-related proposals, such as no-confidence votes.

    Indeed. We have no plans for this at the moment.

    + + + + \ No newline at end of file diff --git a/tags/sre/index.html b/tags/sre/index.html new file mode 100644 index 0000000000..cbf2e76583 --- /dev/null +++ b/tags/sre/index.html @@ -0,0 +1,183 @@ + + + + + +29 posts tagged with "sre" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    29 posts tagged with "sre"

    View All Tags

    · 3 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 9.0.0 is now deployed to mainnet, preprod, preview, private and +shelley-qa environments. The last several weeks have been very busy with +pre-release and release activity and environment upgrades involving +cardano-node versions 8.9.3, 8.9.4, 8.12.0-pre, 8.12.1, 8.12.2 and +now 9.0.0 as of this update.

    • Sanchonet environment remains pinned at cardano-node version 8.11.0-pre until +the next respin which will support 9.0.0 or greater.

    • Ogmios service and package options were added to cardano-parts.

    • Four documents were added to cardano-playground to better explain some +operational procedures: debugging of peer-to-peer connections; governance +voting with the playground stakepools; faucet setup; faucet pool +de-delegation. Found at: +docs/explain

    • One document was added to cardano-mainnet to explain cardano-snapshot +operations. Found at: +docs/explain

    • Private chain was stopped and re-spun with 2 hr epochs for testing.

    • Hydra and performance cluster machines had their configuration updated to be +more robust to transient nix store caches outages which may re-occur in the +future.

    • All machines in cardano-playground and cardano-mainnet clusters were updated +to nixpkgs 24.05.

    Lower level summary

    Cardano-mainnet

    • Sets cardano-node to 8.12.2 as well as usage of a custom gc delay parameter +branch for bootstrap nodes. Updates all machines to nixpkgs to 24.05 with +openssh 9.8p1. Adds one new explainer readme document, new alerts and various +script, recipe, and other improvements. See the PR description for more +details: +cardano-mainnet-pull-16

    Cardano-ops

    • Bumps to cardano-node 9.0.0, adds coredump metrics, adds OOM/coredump +alerting, adjusts systemd stop timeout to avoid some unneccesary chain +replays: +cardano-ops-compare

    Cardano-parts

    • Sets cardano-node (release) and cardano-node-ng (pre-release) versions to +8.12.2 and cardano-db-sync-ng to sancho-5-0-0. Updates nixpkgs to +24.05. Includes nixosModule, dashboard, metric, alert and recipe +improvements and new features. More detail is available in the PR +description: +cardano-parts-pull-43

    Cardano-perf

    • Adjusts nix config to avoid R2 500 errors on transient cache problems and +adds explorer to perf class: +cardano-perf-compare

    Cardano-playground

    • Sets cardano-node (release) and cardano-node-ng (pre-release) versions to +8.12.2 and cardano-db-sync-ng to sancho-5-0-0. Updates all machines to +nixpkgs to 24.05 with openssh 9.8p1. Respins private chain and KES +rotates multiple chains. Adds four new explainer readme documents, new alerts +and various script, recipe, and other improvements. See the PR description +for more details: +cardano-playground-pull-27

    Iohk-nix

    Ops-lib

    • Updates deployers with recent nixpkgs, nix, refactors to preserve legacy +nixops usage, adds starship and fzf: +ops-lib-pull-134

    • Bumps openssh to 9.8p1 +ops-lib-pull-135

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet was respun for cardano-node 8.11.0-pre

    • Private chain was respun twice for pre-sancho respin testing and short epoch +testing with cardano-node 8.11.0-pre

    • Shelley-qa, two-thirds of preview and one-third of preprod networks were +deployed to cardano-node 8.11.0-pre

    • Sanchonet, private chain and shelley-qa networks had dbsync sancho-4-3-0 +deployed

    • A dbsync show_current_forging prepared statement was added to the +cardano-parts profile-cardano-postgres nixosModule to aid with debugging +chain quality issues

    • Three documents were added to cardano-playground to better explain some +operations procedures: KES rotation, chain quality debugging and new network +creation. Found at: +docs/explain

    • A new mithril dashboard template is available in cardano-parts

    Lower level summary

    Capkgs:

    • Avoid git API rate limit errors on update github action via netrc usage and +corresponding secret: +capkgs-commit

    Cardano-parts

    • Sets cardano-node-ng to 8.11.0-pre and cardano-db-sync-ng to sancho-4-3-0. +Adds a dbsync prepared statement, mithril dashboard template, updates the +node application dashboard template, improves justfile recipe templates and +tunes some systemd dependencies. Iohk-nix-ng was updated for sanchonet and +private chain respins. More detail is available in the PR description: +cardano-parts-pull-41

    Cardano-mainnet

    • Rotates KES, pins iogp4 as -ng, adds a mithril dashboard, updates the node +application dashboard, improves justfile recipes and tunes systemd node and +mithril services to avoid some edge case errors. See the PR description for +more details: +cardano-mainnet-pull-15

    Cardano-ogmios

    Cardano-playground

    • Respins sancho and private chains and deploys cardano-node 8.11.0-pre and +cardano-db-sync sancho-4-3-0 to appropriate envs and machines. Adds a mithril +dashboard template, updates the node application dashboard template, improves +justfile recipe templates. Adds three new explainer readme documents. See the +PR description for more details: +cardano-playground-pull-24

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • A preview of the new cardano tracing system is available by using the +profile-cardano-node-new-tracing new nixosModule from cardano-parts and is +complemented with new tracing system dashboards and alerts

    • Custom cardano metrics can be pushed to a statsd server and then scraped to a +monitoring solution using the profile-cardano-custom-metrics new +nixosModule from cardano-parts

    • A new cardano-parts job for spinning up clusters using a recent cardano-cli +command, create-testnet-data, was implemented: .#job-gen-custom-node-config-data

    Lower level summary

    Cardano-faucet

    Cardano-parts

    • Sets cardano-faucet-ng to 8.10, and mithril[-ng] to 2418-1. A preview +nixosModule for cardano-node's new tracing system has been added as well as a +cardano custom-metrics module. Dashboards have been added for the new tracing +system. Cardano-node alerts have been refactored into several rulesets which +include some new alerts as well as new tracing system alerts. A job for +spinning a cardano cluster up using a new underlying cardano-cli mechanism, +create-testnet-data, was added. More detail is available in the PR description: +cardano-parts-pull-40

    Cardano-mainnet

    • Sets mithril to 2418-1. Cardano-node alerts have been refactored into +several rulesets which include some new alerts as well as new tracing system +alerts. See the PR description for more details: +cardano-mainnet-pull-14

    Cardano-perf

    Cardano-playground

    • Sets cardano-faucet-ng to 8.10 which fixes a sanchonet faucet instability, and +mithril[-ng] to 2418-1. Adds a new cardano-node tracing system preview to some +machines with corresponding dashboards. Cardano-node alerts have been +refactored into several rulesets which include some new alerts as well as new +tracing system alerts. A job for spinning a cardano cluster up using a new +underlying cardano-cli mechanism, create-testnet-data, was added and integrated +with the Justfile start-demo recipe. Includes other misc tuning and +improvements. See the PR description for more details: +cardano-playground-pull-23

    · 3 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.9.2 is now deployed to mainnet, preprod, preview and +shelley-qa environments.

    • Cardano-node 8.10.1-pre is now deployed to sanchonet and also to one-third of +IOGs preprod environment nodes and two-thirds of IOGs preview environment +nodes.

    • Private chain for Voltaire team was paused with plans for a future respin.

    • The network team's ouroboros-network-ops machine cluster was re-written using +the cardano-parts stack to upgrade from the nixops/terraform/niv stack it was +previously using.

    Lower level summary

    Cardano-parts

    • Sets cardano-node to 8.9.2, dbsync-ng to sancho-4.2.0; mithril to 2412.0, +iohk-nix to include new peerSharing defaults and introduce a new block +producer config. Adds a new truncate-chain recipe and improves mithril +related services. More detail is available in the PR description: +cardano-parts-pull-38

    • Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2; mithril pre (-ng) +to unstable, iohk-nix and iohk-nix-ng pin includes new Cardano Foundation +bootstrap relays. Adds new aws machine management and other recipes, metadata +job support for pool creation, misc fixes and improvements. More detail is +available in the PR description: +cardano-parts-pull-39

    Cardano-mainnet

    • Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new +peerSharing defaults and colmena.nix cluster refactor for peerSharing +adjustments and implements all updates in cardano-parts PR#38. See the PR +description for more details: +cardano-mainnet-pull-12

    • Sets dbsync to 13.2.0.2, iohk-nix and iohk-nix-ng to include new CF relays, +adds new aws machine management recipes and implements all updates in +cardano-parts PR#39. See the PR description for more details: +cardano-mainnet-pull-13

    Cardano-node

    • Default peerSharing true and add block producer config to release binaries. +See the PR description for more details: +cardano-node-pull-5789

    Cardano-ops

    Cardano-perf

    • Adds a caddy webserver for run reviews and tunes the NVME FS mounts for performance: +cardano-perf-compare

    Cardano-playground

    • Sets cardano-node to 8.9.2, mithril to 2412.0, iohk-nix to include new +peerSharing defaults, refactors mdbook out of docs dir, adds example chain +manipulation doc and implements all updates in cardano-parts PR#38. See the +PR description for more details: +cardano-playground-pull-21

    • Sets cardano-node pre (-ng) to 8.10.1, dbsync to 13.2.0.2, mithril pre (-ng) +to unstable, iohk-nix and iohk-nix-ng to include new CF relays, adds a public +TLS dbsync user connection option, stops private chain cluster and implements +all updates in cardano-parts PR#39. See the PR description for more details: +cardano-playground-pull-22

    Iohk-nix

    • Creates block producer configurations to accomodate PeerSharing set true by default: +iohk-nix-pull-575

    • Adds Cardano Foundation mainnet bootstrap peers: +iohk-nix-pull-578

    Ouroboros-network-ops

    Sanchonet

    Sanchonet-demo

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Private chain for Voltaire team was respun for cardano-node 8.10.0-pre +pre-release and re-hard forked into Conway era.

    • Sanchonet was respun for cardano-node 8.10.0-pre pre-release and re-hard +forked into Conway era.

    • Cardano-node 8.10.0-pre was also deployed to one-third of IOGs preprod +environment nodes and two-thirds of IOGs preview environment nodes.

    Lower level summary

    Cardano-parts

    • Sets cardano-node|cli-ng to 8.10.0-pre, dbsync-ng to sancho-4.1.0; bumps +nixpkgs (23.11) and nixpkgs-unstable; improves, adds new and fixes a number +of just recipes; allows repo custom recipes to be kept as a separate import +for easy justfile maintenance; refactors ip module checking into its own +nixosModule and adds an extra abort option for safety. Much more detail is +available in the PR description: +cardano-parts-pull-36

    Cardano-mainnet

    • Bumps cardano-parts for a number of recipe additions, improvements, fixes. +Fixes blockperf dnsmasq looksups and adjusts colmena topology code to account +for intra-cluster localRoots now defaulting to trustable true and implements +all updates in cardano-parts PR#36. See the PR description for more details: +cardano-mainnet-pull-11

    Cardano-perf

    • Add a new perf-ssd machine class and deployment for ssd related performance +testing and benchmarking. Add new just recipes and cluster resource tagging. +cardano-perf-compare

    Cardano-playground

    • Bumps cardano-parts for a number of recipe additions, improvements, fixes, +and node 8.10.0-pre. Respins private chain and sanchonet for node 8.10.0-pre +with corresponding book updates and implements all updates in cardano-parts +PR#36. See the PR description for more details: +cardano-playground-pull-20

    Iohk-nix

    • WIP: Prepares block producer configurations to accomodate upcoming peerSharing default change: +iohk-nix-pull-575

    • Provides iohk-nix updates for node 8.10: +iohk-nix-pull-576

    + + + + \ No newline at end of file diff --git a/tags/sre/page/2/index.html b/tags/sre/page/2/index.html new file mode 100644 index 0000000000..f0526aaf36 --- /dev/null +++ b/tags/sre/page/2/index.html @@ -0,0 +1,126 @@ + + + + + +29 posts tagged with "sre" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    29 posts tagged with "sre"

    View All Tags

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.9.1 is now deployed to all environments.

    • The legacy IOG mainnet metadata server has been retired with CF now providing +metadata server services going forward.

    • Cardano-parts PR#35, merged and linked below, offers ip information +integration into nixosConfiguration modules as well as template-diff and +template-patch recipes for easier upgrades going forward.

    Lower level summary

    Capkgs

    • Adds a shortRev suffix to package names, fixes an rclone recipe, fixes a CI +push action, defaults to recursively dereferenced object hashes, cleans up +reference patterns. See the PR description for more details: +capkgs-pull-2

    Cardano-mainnet

    • Bumps to cardano-node 8.9.1 and deploys all machines, makes ip information +available in nixosCfgs, adds new expected machine alerts, tunes snapshot +alerts and implements all updates in cardano-parts PR#35. See the PR +description for more details: +cardano-mainnet-pull-10

    Cardano-ops

    Cardano-parts

    • Upgrades cardano-node to 8.9.1 for both release and pre-release, integrates +machine ip information into nixosConfigurations, enables /etc/hosts file +usage in cardano-node topology, enhances cardano-node topology producer +generation with customizable address types, introduces template patching +recipes for easier cardano-parts updates to existing clusters. Much more +detail is available in the PR description: +cardano-parts-pull-35

    Cardano-playground

    • Bumps to cardano-node 8.9.1 and deploys all envs, rotates KES keys in most +envs, makes ip information available in nixosCfgs and implements all updates +in cardano-parts PR#35. See the PR description for more details: +cardano-playground-pull-18

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.9.0 is now deployed to all environments.

    • A new profile-cardano-db-sync-snapshots nixosModule is available for +snapshotting dbsync state.

    Lower level summary

    Cardano-mainnet

    • Updates cardano node and cli pre-release (-ng) to 8.9.0. Adds a new +cardano-db-sync snapshots server. Bumps mithril and enhances mithril +usability with IOG trusted pool signature verification for clients and +mithril verifier service for signers. Adds miscellaneous other small +improvements, bug fixes and tuning. See the pull request description for +more details: +cardano-mainnet-pull-8

    Cardano-node

    • Adds nixos service and topology updates related to cardano-node 8.9.0 +release: +cardano-node-compare

    Cardano-ops

    • Bumps to cardano-node 8.9.0, fixes metadata server module, removes the legacy +snapshots server: +cardano-ops-compare

    Cardano-parts

    • Updates cardano node and cli pre-release (-ng) to 8.9.0 and enables new +bootstrapPeers features and compatibility in the topology functions. Bumps +mithril and enhances mithril usability with IOG trusted pool signature +verification for clients, mithril verifier service for signers, mithril +capability for process-compose and node entrypoint jobs. Adds miscellaneous +other small improvements, bug fixes and tuning. See the pull request +description for more details: +cardano-parts-pull-34

    Cardano-playground

    • Updates cardano node and cli pre-release (-ng) to 8.9.0. Bumps mithril and +enhances mithril usability with IOG trusted pool signature verification for +clients, mithril verifier service for signers, mithril capability for +process-compose and node entrypoint jobs. Adds miscellaneous other small +improvements, bug fixes and tuning. See the pull request description for +more details: +cardano-playground-pull-18

    Govtool

    • Fixes a coalesce function sql query bug in the govtool backend: +govtool-commit

    Iohk-nix

    • Adds support for bootstrap peers and sanchonet mithril configuration: +iohk-nix-pull-574

    Sanchonet-demo

    • Bumps cardano-parts for cardano-node 8.9.0 and brings the justfile demo +recipes up to 8.9.0 compatibility: +sanchonet-demo-compare

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.8.1-pre is now deployed to sanchonet, two-thirds of preprod, +one-third of preview and also voltaire private chain networks.

    • Catalyst Voltaire private chain was respun and an updated db-sync and govtool +backend deployed after hard fork to Conway era.

    • IOG sanchonet pool block producers are now also signing mithril +certificates.

    • A mithril-signer-verifier service now runs on all IOG SRE mithril signers and +generates alerts if no recent mithril certificates have been signed.

    • All cardano-parts mithril clients, whether via nixosConfiguration, +process-compose jobs or the nix cardano-node entrypoint, will now +automatically verify that a trusted IOG pool has signed a mithril certificate +prior to using the associated mithril state. If no trusted IOG pool has +signed a recent mithril certificate, mithril state usage with be skipped and +a classic sync from genesis to tip will be performed.

    • A significant amount of effort was applied towards the upcoming cardano-node +8.9.x-pre release in order to align nixos service module code between +cardano-node nixos services, iohk-nix topology generation, cardano-ops legacy +code, and cardano-parts module compatibility.

    Lower level summary

    Work in progress

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet state was respun from slot 14255995 for cardano-node 8.8.0-pre
    • Cardano node 8.8.0-pre is now deployed to sanchonet, shelley-qa, two-thirds +of preprod and one-third of preview networks
    • IOG pool block producers are now signing mithril certificates for preview, +preprod and mainnet networks
    • A cardano performance dashboard is now available for both playground and +cardano-mainnet deployments

    Lower level summary

    Cardano-mainnet

    • Adds mithril signers and perf dashboard to the mainnet cluster; improves +network docs, tunes alerts, plus misc fixes: +cardano-mainnet-pull-8

    Cardano-parts

    • Adds mithril signer capability to role-block-producer nixosModule, adds a +profile-mithril-relay nixosModule and includes misc other improvements and +fixes: +cardano-parts-pull-31

    • Updates packages for sanchonet respin, adds a node performance dashboard +template and fixes misc issues: +cardano-parts-pull-32

    Cardano-parts

    • Adds mithril signers and mithril relays to preview and preprod networks and +includes misc other improvements and fixes: +cardano-playground-pull-15

    • Updates machines and pin for sanchonet respin, adds a node performance +dashboard and fixes misc issues: +cardano-playground-pull-16

    Iohk-nix

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano explorer is being sunset and will soon be replaced by a new Cardano +Foundation explorer
    • IOG mainnet pools are now participating in propagation time reporting using +Cardano Foundation's blockperf +tool
    • Cardano-parts node nixosConfigurations, node entrypoint and process-compose +node jobs now utilize mithril +client automatically on preview and preprod networks for faster +synchronization of first start up. Mainnet mithril client use as well as +signer modules will be available soon.

    Lower level summary

    Cardano-mainnet

    Cardano-parts

    • Adds a block performance module which utilizes cardano-foundation's blockperf +for aggregate block propagation reporting: +cardano-parts-pull-29
    • Adds a mithril client for nixosConfigurations, process-compose cardano-node +processes and cardano-node entrypoint: +cardano-parts-pull-30

    Iohk-nix

    • Adds required mithril client environment information for preview, preprod, +mainnet: +iohk-nix-pull-570

    Cardano-world

    Upstream Contributions

    Blockperf

    + + + + \ No newline at end of file diff --git a/tags/sre/page/3/index.html b/tags/sre/page/3/index.html new file mode 100644 index 0000000000..4bb1f434c0 --- /dev/null +++ b/tags/sre/page/3/index.html @@ -0,0 +1,52 @@ + + + + + +29 posts tagged with "sre" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    29 posts tagged with "sre"

    View All Tags

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general +environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-node 8.7.3 is now generally deployed to all testnet and mainnet environments +managed by coretech SRE

    • Dbsync and node stack process-compose jobs are now available from +cardano-parts for users running nix >= 2.17.0 and nix experimental-features += nix-command flakes fetch-closure

    • These can be run with:

       nix run github:input-output-hk/cardano-parts#run-process-compose-node-stack
      nix run github:input-output-hk/cardano-parts#run-process-compose-dbsync-$NETWORK
    • For more details, see the merged cardano-parts process-compose +PR

    Lower level summary

    Cardano-monitoring

    Cardano-mainnet

    • Adds a readme, switches to nonmoving gc for producers, plus misc improvements +from cardano-parts: +cardano-mainnet-pull-6

    Cardano-ops

    • Merged a long standing branch converting legacy mainnet relays to p2p, node -> +8.7.2, db-sync snapshots -> 13.1.1.3, and other improvements: +cardano-ops-pull-417

    Cardano-parts

    • Adds a readme, provides misc improvements, service optimizations, alert tuning, +sql pool performance analysis fix, package updates: +cardano-parts-pull-27
    • Adds process-compose dbsync and node stacks: +cardano-parts-pull-28

    Cardano-playground

    Upstream Contributions

    • Contributions to upstream process-compose related repos were made in order to +complete the process-compose dbsync and node stacks in cardano-parts, +including the following:

    Process-compose-flake

    Services-flake

    · One min read
    John Lotoski

    High level summary

    During the lightly staffed holiday period for node SRE, the emphasis was on +maintaining environment stability, tuning and resolving any noisey alerts.

    Investigation into and testing around the following two topics also +started during this period:

    • Ledger snapshots causing a small number of missed slots for forgers on mainnet: +ouroboros-consensus-issue-868

    • A cardano-node rare file descriptor leak, with a more detailed description +here

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • A new repository was created which enables agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: cardano-monitoring
    • The govtool backend swagger interface was nix flake packaged and deployed for Voltaire private chain testing usage
    • Grafana cloud monitoring stacks were migrated to new EC2 cardano-monitoring servers
    • Cardano-db-sync state snapshots now support client range requests, details here
    • In addition to monitoring server centralized grafana metrics, sysstat collected system metrics are now available locally on all cluster machines at high time resolution
    • Code changes required due to repository migrations to IntersectMBO have largely been completed

    Lower level summary

    Auth-keys-hub

    Cardano-monitoring

    • A new repository enabling agile deployment of EC2 monitoring servers, compatible with OpenTofu grafana and mimir providers: cardano-monitoring

    Cardano-parts

    • Migrate from grafana cloud monitoring to ec2 monitoring, add resource tagging support, declarative route53 CNAME list, and additional improvements and fixes: cardano-parts-pull-25
    • Improve ssh key handling and edge cases, resolve misc issues, add IOPS and throughput gp3 openTofu support: cardano-parts-pull-26

    Cardano-playground

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet was respun to cardano-node 8.7.0-pre, and upgraded to cardano-node 8.7.1-pre shortly afterwards
    • Cardano-node 8.7.2 was released and all environments were then upgraded to 8.7.2
    • Cardano-parts deployed machines were upgraded to nixpkgs 23.11 and nix 2.19.3
    • Cardano-parts resource deployed environments were switched from the use of Terraform to OpenTofu

    Lower level summary

    Capkgs

    • Updated for cardano-node 8.7.2 and process-compose packages: capkgs-compare

    Cardano-parts

    Cardano-ops

    Cardano-playground

    Cardano-world

    • Sanchonet update PR: cardano-world-pull-111
      • Merge the long running sanchonet-updated branch
      • Migrate explorers from ziti to wireguard tunnel usage
      • Remove remaining ziti code and provisioned resources
      • Retire remaining nomad jobs in preference of the cardano-playground environments
      • Downsize the cluster in preference of the cardano-playground environments

    Iohk-nix

    · 4 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • The cardano-node nixos service now supports SIGHUP p2p topology reloading when the useSystemdReload option is enabled

    Lower level summary

    Capkgs

    • Update cardano-db-sync and offchain-metadata-tools package paths and/or references: capkgs-compare

    Cardano-node

    • Optionally have cardano-node nixos service utilize SIGHUP p2p topology reload: cardano-node-pull-5537
      • Creates a useSystemdReload bool option for the cardano-node nixos service
      • This will move the topology file(s) to /etc/cardano-node/topology-$i.yaml and inject systemd reload hooks for p2p configured cardano-node instances
      • Moving topology files to /etc also allows for manual topology updates when a quick test is needed and full service re-deployment isn't desired

    Cardano-parts

    • Adds a metadata server profile and a number of other features and improvements: cardano-parts-pull-20
      • Adds a new metadata-service profile
      • Adds metadata service and pkg configuration options for cardano-groups to utilize the metadata-server profile
      • Adds a cardano-webserver profile for multiple virtualHosts and TLS ACME server aliases for a cluster's static needs, with each cached behind varnish
      • Adds extra node list producers and public producers for cardano-node-topology profile
      • Adds delegation amounts to cardano-postgres psql prepared query show_pools_block_history_in_epoch
      • Adds select systemd metrics reporting to grafana-agent profile
      • Adds a bookRelay multivalue DNS option to disambiguate with groupRelay multivalue DNS
      • Adds an opsLib library to the cardano-parts lib flakeModule and refactors some common code into it
      • Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo
      • Adds job-gen-env-config for both release and pre-release configuration files to support configuration book generation
      • Adds support for grafana recording rules in the template files
      • Improves cardano-group profile handling of producers with respect to multiple instance nodes
      • Improves grafana-agent profile metrics handling for multi-instance cardano-node servers
      • Improves smash service preStart handling while waiting for a node socket
      • Updates Justfile for ERA_CMD demo support
      • Migrates default grafana cloud node exporter, varnish alert and recording rules to grafana alert and recording rule templates
      • Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile
      • Defaults cardano-postgres profile psqlrc use to false

    Cardano-playground

    • Adds a new testnet metadata server, cluster webserver, and other improvements: cardano-playground-pull-6
      • Adds a new metadata server
      • Adds a new webserver for the cluster's static virtualhost needs
      • Adds support for sops secret traversing from target path up instead of cwd up, thereby supporting secrets use-cases outside of the repo
      • Adds systemd metrics monitoring to the cluster
      • Resizes sanchonet machines to support the growing chain
      • Completes migration of preprod from world
      • Updates groups to utilize both bookRelay and groupRelay multivalue DNS attributes
      • Updates Justfile for ERA_CMD demo support
      • Defaults to using an updated systemd reload nixos service feature for p2p networks in cardano-group profile
      • Migrates book static code to playground from world, with refactor, cleanup and updates
      • Migrates default grafana cloud node exporter, varnish alert and recording rules to declarative grafana alert and recording rules

    Offchain-metadata-tools

    • Adds db password option with obfuscation plus misc improvements: offchain-metadata-tools-pull-61
      • Adds db password connection option and obfuscates passwords in output for metadata server, sync, webhook services
      • Updates the nixos service for metadata-webhook service to optionally use an environmentFile for secrets: cfg.environmentFile
      • Moves from std use in the nix flake to standard flake schema
      • Fixes hydra CI failures
      • Builds update-docs in hydra to avoid long local build times
      • Removes deprecated tullia
      • Removes deprecated check-hydra from pkgs
      • Removes deprecated bors files and references
    + + + + \ No newline at end of file diff --git a/tags/sre/page/4/index.html b/tags/sre/page/4/index.html new file mode 100644 index 0000000000..9746f1335c --- /dev/null +++ b/tags/sre/page/4/index.html @@ -0,0 +1,26 @@ + + + + + +29 posts tagged with "sre" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    29 posts tagged with "sre"

    View All Tags

    · 3 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-world testnets of preprod, preview, sanchonet and some private test chains have largely completed their migration to the cardano-playground stack

    Lower level summary

    Capkgs

    Cardano-parts

    • General migration support PR for cardano-world to cardano-playground cardano-parts-pull-18
      • Iohk-nix and iohk-nix-ng were updated support the migration of cardano-world networks to cardano-playground
      • Sops-secrets dependent systemd services were fixed to ensure restart upon sops secrets changes
      • Db chain utilities (db-{analyser,synthesizer,truncater}) had -ng variants created to operate on both release and pre-release network chains
      • The profile-cardano-postgres nixos module received preset variables and prepared statements via pgsqlrc for faster and easier analysis of network state
      • The flakeModule jobs now has support for the cardano-cli era command in each of the job scripts by passing the $ERA_CMD variable
      • Default cardano-node-ng package is now 8.6.0-pre, dbsync on sanchonet is now sancho-2-2-0
      • For scripts using a nix-shell shebang, the cardano-parts devShell menu can be disabled from injecting itself into stdout by passing NOMENU=true
      • Template updates include:
        • Adds optional TF AZ declaration on ec2 resources
        • Adds a cardano node p2p dashboard to the grafana cloud stack
        • Adds a dbsync pool performance analysis query
        • Updates python distribute and delegation scripts from world for playground compatibility
        • Starts a python script lib to reduce shared code among the python scripts
        • Several justfile improvements and new recipes
      • More detail is available in the PR description
    • Update submit action script for 8.6 cardano-parts-pull-19
    • Update scripts for 8.6.0-pre cardano-parts-pull-21
      • Fixes subcommand names based on ERA_CMD
      • Adds deposits to some commands
      • Separates CC cold/hot key generation as host authorization has to occur after action is approved
      • CC voting enabled in vote job

    Cardano-playground

    • Migration PR to largely complete the network migration from cardano-world to cardano-playground: cardano-playground-pull-5
      • Adds re-spun private chain network
      • Migrates shelley-qa chain network from world
      • Justfile improvements and new recipes
      • Improve concurrent environment chain support
      • More detail is available in the PR description

    Iohk-nix

    • Migration to play: iohk-nix-pull-561
      • Migrate cardano-lib networks from world.dev.cardano.org to play.dev.cardano.org
      • Remove deprecated cardano-lib p2p network environment
      • Update sanchonet chain with respin changes
      • Update private chain with respin changes
      • Bump private and shelley-qa chains to sanchonet equivalent conway genesis
      • Bump preview, preprod chains to sanchonet equivalent conway genesis for node 8.6.0-pre pre-release testing

    Sanchonet-demo

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Cardano-world testnets of preprod, preview, sanchonet and some private test chains are in the process of being migrated to the cardano-playground stack

    Lower level summary

    Capkgs

    • Adds offchain-metadata-tools, dbsync sanchonet updates: capkgs-compare

    Cardano-parts

    • General package updates, modules improvements and template recipes to support network migration from world to playground cardano-parts-pull-17
      • Bumps cardano-db-sync-ng to sancho-2-0-0 tag
      • Bumps iohk-nix-ng to mig-sancho branch for sanchonet pool migration from world to play
      • Adds more machine system bins and devShell bins for scripting and debug purposes
      • Adds cardano-show-kes-period alias on any node machine importing profile-cardano-node-group module
      • Adds profile-cardano-node-topology module for a simplified interface to most common topology needs
      • Adds a job-delegate-rewards-stake-key job as an optional follow on to pool creation and registration jobs
      • Adds a topology function to filter self from group machines with an allowList for matching infixes
      • Adds metadata-server and related offchain-metadata-tools bins from capkgs
      • Updates justfile template with:
        • a new query-all recipe for getting status of multiple concurrent running environments
        • a new set-default-cardano-env recipe for fast switching between environments
        • a new start-demo recipe for forking a custom env into conway
        • a new start-node recipe for generic environment start
        • a new stop-node recipe for generic environment stop
        • updated list-machines recipe for handling of empty nixos machine config and empty ssh_config conditions
        • updated query-tip recipe to a generic query tip compatible with each environment

    Cardano-playground

    · 3 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet environment was updated to 8.5.0-pre.
    • Cardano-parts now supports cardano-db-sync, cardano-smash, cardano-faucet and grafana cloud monitoring

    Lower level summary

    Capkgs

    • Various improvements and fixes including:
      • Add GHA cron schedule
      • Add nix auto-gc to avoid running out of storage during large package set builds
      • Add new packages to capkgs
      • Reduce runner storage requirement leaving more room for builds
      • Restructure capkgs attribute names to avoid package name collisions
      • Return to non-musl builds for cardano packages to retain journald compatability
      • Update cache usage to from file level to folder level to reduce network and latency overhead
      • Commit diff: capkgs-compare

    Cardano-parts

    • Updates cardano-node-ng to 8.5.0-pre and adds a Conway era automation job: cardano-parts-pull-16
    • Dbsync, smash, faucet and more: cardano-parts-pull-15
      • Adds cardano-db-sync, cardano-faucet, cardano-postgres, cardano-smash, profiles and/or services and related changes
      • Adds nginx vhost metrics exporter profile
      • Adds smash registered-relay-dump service and exporter for use until legacy relay nodes are scaled down
      • Adds bash *-ng autocompletion compatible wrappers
      • Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview
      • Adds downstream grafana cloud dashboard as templates
      • Adds downstream grafana cloud alerts as templates
      • Updates grafana-agent profile with new exporter scrape hooks: cardano-db-sync, cardano-faucet, nginx-vts, varnish
      • Updates the basic profile with IOG cache and commonly used bins
      • Updates the pre-release profile to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning
      • Updates flakeModule jobs with new conway era automation and additional IO encryption shimming and file type checks
      • Updates .sops.yaml template for supporting faucet secrets, workbench secrets, state-demo secrets
      • Updates the Justfile template with terraform fixes for workspace switching and provider auto-reconfiguration
      • Updates the cloudFormation terraformState template with stack modifications to preserve all resources in case of deletion
      • Updates the colmena template with dbsync, smash, faucet machines profiles and roles
      • Improves prior cardano-postgres modules to now automatically tune pg parameters based on machine cpuCount, memMiB and desired conns
      • Bumps capkgs node-ng to 8.5.0-pre

    Cardano-playground

    • Dbsync, smash, faucet and more: cardano-playground-pull-3
      • Adds a list-machines just recipe using nushell dataframe outer joins and scj ssh_config parser for fast cluster evals of machine state overview
      • Adds dbsync, smash, faucet machines and corresponding metrics exporters, dashboards and alerts
      • Moves the flake.cardano-parts.cluster.group attrSet name to groups to accurately reflect the plurality and the upstream corresponding change
      • Optimizes machine sizes
      • Updates .sops.yaml for supporting faucet secrets, workbench secrets, state-demo secrets
      • Updates the cloudFormation terraformState file with stack modifications to preserve all resources in case of deletion
      • Updates the cluster isNg definition to support cardano-db-sync, cardano-faucet, cardano-smash *-ng versioning
      • Updates the Justfile with terraform fixes for workspace switching and provider auto-reconfiguration

    Cardano-world

    Sanchonet-demo

    • Update for cardano-node 8.5.0, conway job recipes and cardano-parts interface changes: sanchonet-demo-commit

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent changes, updates or improvements include:

    • Sanchonet environment was re-spun starting from slot 7171200 and updated to cardano-node 8.4.0-pre.
    • The use of cardano-node docker hub will be deprecated in preference of GHCR

    Lower level summary

    Capkgs

    • Refactor parsing scripts, add github action automation, various bugfixes and cleanup: capkgs-compare

    Cardano-parts

    • Updates secrets layout scheme, adds sops enc/dec for jobs, adds cloud monitoring profile, updates flake templates and other improvements/fixes: cardano-parts-pull-8

    Cardano-playground

    • Updates for new cardano-parts secrets handling and layout, TF workspace handling, group multivalue DNS support, grafana cloud monitoring and other improvements: cardano-playground

    Cardano-world

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Sanchonet environment was updated to 8.3.0-pre.
    • Cardano-parts now enables downstream consumers to spin up multiple cardano-networks per repository, an example of which is here.

    Lower level summary

    Capkgs

    • Add a readme, optimize flake inputs, improve nu and ruby parsing scripts: capkgs-compare

    Cardano-ops

    Cardano-parts

    • Utilize content addressed binaries to significantly improve eval, build and devShell performance: cardano-parts-pull-8
    • Add an aws flakeModule for obtaining ec2 specs, fix node.socket devShell error: cardano-parts-pull-10
    • Fix warns thrown during some builds and devShell usage: cardano-parts-pull-11
    • Add flakeModules and nixosModules in preparation for cardano-node grouped deployments: cardano-parts-pull-12
    • Enable group deployments by: adding several module, profile and role nixosModules; updating flakeModules; adding sops age secrets handling: cardano-parts-pull-13

    Cardano-perf

    • Modify the wireguard network from mesh to star, enable ICMP, enable Nomad raw_exec and add hydraJobs: cardano-perf-compare

    Cardano-playground

    Cardano-world

    + + + + \ No newline at end of file diff --git a/tags/sre/page/5/index.html b/tags/sre/page/5/index.html new file mode 100644 index 0000000000..3f9b973f85 --- /dev/null +++ b/tags/sre/page/5/index.html @@ -0,0 +1,26 @@ + + + + + +29 posts tagged with "sre" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    29 posts tagged with "sre"

    View All Tags

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Work on cardano-parts repo continues and was utilized by the sanchonet-demo repository for demonstration purposes
    • Work on a new capkgs repository started -- "Content Addressed Packages"
      • This repository provides common Cardano release and pre-release binaries in a pure content addressed nix package type via flake output
      • These packages don't have the associated IFD, long eval times and large source dependencies that the originating source repositories often do
      • Consumers of such packages, such as devShells or nixos machines, can benefit from the improved performance this offers

    Lower level summary

    Capkgs

    • Content addressed packages -- new repo: capkgs

    Cardano-ops

    • Cardano p2p relay updates, dbSync snapshots server update, monitoring adjustments: cardano-ops-compare

    Cardano-parts

    Cardano-perf

    Cardano-world

    Sanchonet-demo

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Sanchonet and shelley-qa environments were updated to 8.2.1-pre.
    • Work on two new repos utilizing flake parts for cardano cluster generation, automation and operation.

    Lower level summary

    Cardano-ops

    Cardano-parts

    Cardano-perf

    Cardano-playground

    Cardano-world

    Inputs-check

    • A flake parts module to check input closure sizes recursively for optimization considerations: inputs-check

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent updates or improvements include:

    • Preprod and preview envionments were updated to 8.1.2.
    • Sanchonet and shelley-qa environments were updated to 8.2.0-pre.
    • Work on a new cardano performance repo which utilizes a lightweight Cloudformation/Rain to Terraform infra bootstrap and Nomad environment has begun.

    Lower level summary

    Cardano-ops

    Cardano-perf

    Cardano-world

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements and general environment maintenance.

    Some notable recent improvements include:

    • Re-spin sanchonet for testing a new node version followed by fork to Conway
    • Deploying a sanchonet compatible faucet to sanchonet
    • Migrate shelley qa legacy environment to cardano-world

    Lower level summary

    Cardano-node

    Cardano-ops

    • Mainnet relays are 50% migrated to p2p topology and 1 relay per region dedicated for ledger peers: cardano-ops-compare

    Cardano-world

    Iohk-nix

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on cardano environment improvements, supporting CI improvements, and general environment maintenance.

    Some notable recent improvements include:

    • Improved cardano-node entrypoint handling to allow for clean restarts in the Nomad environment
    • Explorer component updates
    • Spongix caching server rewrite for R2 Cloudflare support and various performance improvements

    Lower level summary

    Cardano-node

    Cardano-ogmios

    Cardano-ops

    • Improve storage resize script, workaround systemd node signal handling, rescale p2p relays: cardano-ops-compare

    Cardano-rosetta

    Cardano-world

    Spongix

    • Spongix caching server rewrite for Cloudflare R2 backend support plus misc improvements: spongix-simple-branch
    + + + + \ No newline at end of file diff --git a/tags/sre/page/6/index.html b/tags/sre/page/6/index.html new file mode 100644 index 0000000000..c0d58c09ab --- /dev/null +++ b/tags/sre/page/6/index.html @@ -0,0 +1,49 @@ + + + + + +29 posts tagged with "sre" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    29 posts tagged with "sre"

    View All Tags

    · One min read
    John Lotoski

    High level summary

    The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include:

    • A devx-ci cluster containing a Hydra build server and Linux build farm was stood up and is intended to replace Cicero functionality
    • Cardano Sanchonet environment was stood up to test Conway era functionality
    • Cardano-node nixos service was updated to support the latest p2p topology format and non-systemd socket activation use case
    • Cardano-node 8.1.1 was deployed to preview, preprod and mainnet environments

    Lower level summary

    Cardano-node

    • Update cardano-node nixos service for updated p2p topology and non-systemd socket activation: cardano-node-pull-5318

    Cardano-ops

    Cardano-world

    Ci-ops

    Ci-world

    • Add devx-ci cluster integration for caching, monitoring during cicero to devx-ci transition: ci-world-compare

    Devx-ci

    • A CI cluster with a hydra build server was stood up and is intended to replace usage of Cicero: devx-ci-repo

    Iohk-nix

    · 2 min read
    John Lotoski

    High level summary

    The SRE team continues work on CI and cardano environment improvements. Some notable recent improvements include: expanding the darwin CI cluster and providing new aarch64 builder support; adding bare metal bitte cluster capability with network overlay for high IOPS workload performance, such as explorer.

    Lower level summary

    Bitte

    • Equinix bare metal capability was added to bitte: bitte-pull-194
    • Update bitte nixpkgs, nix version, nomad driver, equinix lifecycle, misc bug fixes: bitte-pull-201

    Bitte-cells

    Cardano-graphql

    Cardano-node

    Cardano-ops

    Cardano-world

    Ci-ops

    • Update legacy darwin builders and buildkite agent for ci-world network overlay and monitoring: ci-ops-pull-108

    Ci-world

    Cicero

    • Implement a cicero webhook backoff with exponential decay plus jitter: cicero-pull-79

    Iohk-nix

    Openziti

    · 2 min read
    Michael Fellinger

    High level summary

    The SRE team continues work on Cicero, Tullia, and Bitte, as well as providing +support for cardano-world.

    Lower level summary

    Cicero

    • Fixed various race conditions around transformers.
    • Brought our CI up to date.
    • Migrated to the Nomad exec driver with Nix support for many actions.
    • Moved Nix builds to the Nomad clients for much better cache locality.
    • Ongoing work on vastly improving the action matching and evaluation speed.

    Tullia

    • Made it easier to support cloning from a PR's fork
    • Update to latest std
    • Add workaround for cgroup issue: nomad#12877
    • github preset: add github.ci.remote and (read|get)Repository functions
    • Fix various issues around CUE handling

    Bitte

    • Upgrade to NixOS 22.11
    • Prototype usage of Colmena for deploys instead of deploy-rs
    • Finalized work on Equinix Metal support
    • Prototype better secrets management with ragenix instead of sops-nix
    • Improve CI and bring it up to date

    cardano-world

    • Fixd various OOM issues on preview and preprod
    • Rotated KES keys on preview and preprod
    • Optimize mainnet db-sync to cope with higher load
    • Fix an issue where PostgreSQL would fail after a reboot

    bitte-world

    • Updated to NixOS 22.11

    ci-world

    • Updated to NixOS 22.11
    • Added Equnix cluster
    • Improve caching of Nix builds

    · 4 min read
    Michael Fellinger

    High level summary

    The SRE team is heavily working on the Equinix Metal migration, replacing Hydra +with Cicero, and a new version of Spongix.

    Lower level summary

    OpenZiti

    • Work is ongoing on our OpenZiti integration into Bitte in [bitte-zt].
    • CI-World deployment of Darwin CI Ziti service in [ci-world-commit-d40f4d].
    • Multiple issues filed, and a lot of discussion with the OpenZiti developers, +we're making pretty rapid progress thanks to them.
    • Work on getting Equinix baremetal machines integrated into AWS World Bitte +clusters utilizing a Ziti ZTNA network overlay to bridge the networking of +the two environments and get IAM extension to Equinix machine for Nomad +client onboarding.
    • A Nix Flake for most of our OpenZiti dependencies including the Console, +Controller, Edge Tunnel, and Router is now at [openziti-bins].
    • The Flake also includes a WiP NixOS modules for these components.
    • Tested Ziti Desktop Edge official app for Darwin x86_64 w/ GUI -- works with +no issues seen so far
    • Moved the console to traefik routing service (zac.$DOMAIN) and +controller/edge router stay at zt.$DOMAIN, but have registered consul +services

    Cicero & Tullia Integrations

    Cicero & Tullia Features

    • Improvements to Tullia task aggregation to make [cardano-addresses] build +correctly.
    • Better tullia CUE lib default for tags [tullia-commit-4df3c5d].
    • Put cache.nixos.org back in cache.iog.io's upstreams. This is now +considered a public cache again, and without it some Cicero evaluations had +to build huge packages.
    • Started working on a flake-parts module for Tullia.
    • Started working on cutting down Tullia task build time by putting facts in +JSON files.
    • Fixed running into kernel arg limit by reading tullia's DAG from a file
    • Merged [tullia-pull-9] that fixes several issues related to error reporting. +and escaping.
    • Added Mac builders in Cicero on CI-World.
    • Started work on Tullia invocation caching.

    Spongix

    • A lot of progress on an SQlite backed version of Spongix, it already supports +the full HTTP binary cache protocol but still lacks comprehensive testing and +some tuning, as well as recursive lookups.
    • First steps in the implementation of the nix-daemon ssh-ng protocol so +Spongix can be used via SSH and we can get rid of basic auth.

    Bugs

    • Discovered Cicero bug where Nomad reschedules cause the Github commit status +to get stuck in pending
    • Discovered Cicero race condition bug around concurrent transactions for +codependent actions.
    • Fixed tullia task order bug in [cardano-addresses]
    • Diagnose Cicero action not triggered in [abcirdc]
    • Fixed meta/description of the Tullia package in [tullia-pull-7]
    • Add Vault token loop alerts in [bitte-cells-pull-40]
    • Ongoing investigation on recurring Patroni and nomad-follower issues related +to token rotation.
    + + + + \ No newline at end of file diff --git a/tags/system-test/index.html b/tags/system-test/index.html new file mode 100644 index 0000000000..a022792a4a --- /dev/null +++ b/tags/system-test/index.html @@ -0,0 +1,30 @@ + + + + + +5 posts tagged with "system-test" | Cardano Development Updates + + + + + + + + + + + + + + +
    +

    5 posts tagged with "system-test"

    View All Tags

    · 2 min read
    Martin Kourim

    High level summary

    Since the last update (2023-03-26) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.7 and 8.0.0 releases.

    Workstreams

    Full list of closed PRs

    Framework improvements:

    • Make cardano-submit-api REST API service available and run corresponding regression tests by default
    • Update cabal build testing for 8.0.0
    • Add support for testing governance SPO poll
    • Use Poetry for Python dependency management
    • Check status of known GH issues during tests runtime and finish the test accordingly
    • Generate topology files with both IP addresses and DNS names
    • Log issues like failure to start a cluster instance and report errors during tests runtime

    Testing improvements

    • Add rollback testing:
      1. global consensus is reached after rollback, in situation where less than securityParam blocks were produced since cluster split
      2. global consensus is not reached when more than securityParam blocks were produced, and the result is permanent fork
    • Add tests to governance SPO poll commands

    Node:

    DB-Sync:

    • improvements in db-sync sync tests
    • improvements in db-sync functional tests

    · One min read
    Martin Kourim

    High level summary

    Since the last update (2023-1-13) we did more improvements on our Test Framework, added more automated tests, kept analyzing and fixing nightly jobs failures, tested the 1.35.5 and 1.35.6 releases (and their predecessing release candidates) and ran tests on branch with the UTxO-HD functionality.

    Workstreams

    Framework improvements:

    • improvements in searching for unexpected error messages in log files during test run
    • added support for UTxO-HD testing
    • added support for the new P2P topology format
    • added local cluster variant that has the same properties as mainnet (epoch length, fees, etc.)
    • added preliminary support for the Conway era
    • added support for running tests on the Preview testnet

    Full list of closed PRs

    Node:

    • ran tests on node branch with the UTxO-HD functionality
    • tested the 1.35.5 release
    • tested the 1.35.6 release

    DB-Sync:

    • improvements in db-sync sync tests
    • improvements in db-sync functional tests

    · One min read
    Dorin Solomon

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, ran some sanity tests related to the P2P Single +Relay functionality.

    We also update the Node & DB-Sync sync tets to build with Nix as the prebuilt files are no longer available at PR level.

    Workstreams

    Framework improvements:

    • extended the cardano-node-tests with the ability for anybody to fork the repo and run all our System Tests on GitHub Actions
    • added 2 new nightly pipelines - nightly-mixed and nightly-p2p - details here
    • some optimizations on how our regression tests are scheduled on pytest workers and how cluster instances are assigned to the tests;

    === 743 passed, 67 skipped, 24 xfailed in 9166.64s (2:32:46) === + to + === 753 passed, 67 skipped, 14 xfailed in 4654.80s (1:17:34) ===

    Node:

    • ran a couple of sanity runs of CLI a& sync tests on a local branch with P2P Single Relay enabled
    • started the preparations for testing the next tag - details here

    DB-Sync:

    • some improvements on db-sync sync tests

    · One min read
    Dorin Solomon

    High level summary

    During the last 2 weeks we did more improvements on our Test Framework, planned the testing of the P2P Single +Relay functionality, and also tested some DB-Sync tags.

    Workstreams

    Framework improvements:

    • moved the System Test CLI Pipelines from BuildKite to Github Actions
    • improved the reporting tools to support the rerun of the failled tests and update of the reports
    • added support for Github API in report-aggregator, so reports will be generated from the GitHub nightly jobs from now on
    • added support for mixed topology - P2P, legacy, mixed topologies
    • planned the P2P Single Relay system test activities
    • added support to start regression tests with PV8 + better selection of tests

    DB-Sync:

    • confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)
    • tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2

    · One min read
    Dorin Solomon

    High level summary

    We have been focused on:

    • Fully opening our test results (on top of the existing tests & tools):
      See cardano-node-tests webpage.
    • Started to test and automate the new functionalities added in the 1.35.4-rc1 node tag
      See test results tracking page.
    • Made some improvements to the automated db-sync sync tests
      See db-sync tests.
    • Multiple cleanups and updates to the cardano-node-tests framework
    • Updated the nightly pipelines for the cardano-node-tests after the Babbage HF
    + + + + \ No newline at end of file